Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SYSTEM FOR PRODUCING AN OBJECT PROTECTED BY A VERIFICATION CODE, METHOD FOR PRODUCING A CORRESPONDING OBJECT, METHOD FOR VERIFYING THE AUTHENTICITY OF AN OBJECT
Document Type and Number:
WIPO Patent Application WO/2010/124735
Kind Code:
A1
Abstract:
The invention relates to a system for producing an object protected by a verification code. The verification code thereby efficiently secures the object so labeled against potential counterfeiting. The associated system must have high performance and flexibility. Said aim is achieved by a system for producing an object protected by a verification system, wherein the system comprises: reading device for reading a verification code having a first random partial string and applied to or for applying to an object; randomizer for generating a second random partial string; computational unit for generating a hash code by mapping a random string, comprising the first and the second random partial string according to a hash function, and for selecting a candidate group for storing the second random partial string and the hash code as a data set associated with the candidate group in a database, wherein the candidate group is determined by means of the verification code, particularly the first random partial string.

Inventors:
TRUGENBERGER CARLO (CH)
GELDENHUYS ALBERTUS (CH)
Application Number:
PCT/EP2009/055240
Publication Date:
November 04, 2010
Filing Date:
April 29, 2009
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
NOVELTY GROUP LTD (SC)
TRUGENBERGER CARLO (CH)
GELDENHUYS ALBERTUS (CH)
International Classes:
G06Q10/00
Domestic Patent References:
WO2004070682A22004-08-19
Foreign References:
US5848404A1998-12-08
Other References:
STEPHENA WEIS ET AL: "Security and Privacy Aspects of Low-Cost Radio Frequency Identification Systems", 27 January 2004, ISBN: 9783540208877, pages: 201 - 212, XP019002198
DIMITRIOU T: "A Lightweight RFID Protocol to protect against Traceability and Cloning attacks", SECURITY AND PRIVACY FOR EMERGING AREAS IN COMMUNICATIONS NETWORKS, 20 05. SECURECOMM 2005. FIRST INTERNATIONAL CONFERENCE ON ATHENS, GREECE 05-09 SEPT. 2005, PISCATAWAY, NJ, USA,IEEE, 5 September 2005 (2005-09-05), pages 59 - 66, XP010902872, ISBN: 978-0-7695-2369-9
HAIYING SHEN ET AL: "An Efficient Similarity Searching Scheme in Massive Databases", DIGITAL TELECOMMUNICATIONS, 2008. ICDT '08. THE THIRD INTERNATIONAL CONFERENCE ON, IEEE, PISCATAWAY, NJ, USA, 29 June 2008 (2008-06-29), pages 47 - 52, XP031284213, ISBN: 978-0-7695-3188-5
CHEN M-S ET AL: "DATA MINING: AN OVERVIEW FROM A DATABASE PERSPECTIVE", IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING, IEEE SERVICE CENTER, LOS ALAMITOS, CA, US, vol. 8, no. 6, 1 December 1996 (1996-12-01), pages 866 - 883, XP002950926, ISSN: 1041-4347
KOHONEN T: "Exploration of very large databases by self-organizing maps", NEURAL NETWORKS,1997., INTERNATIONAL CONFERENCE ON HOUSTON, TX, USA 9-12 JUNE 1997, NEW YORK, NY, USA,IEEE, US, vol. 1, 9 June 1997 (1997-06-09), pages PL1 - PL6, XP010238780, ISBN: 978-0-7803-4122-7
Attorney, Agent or Firm:
POPP, Eugen et al. (DE)
Download PDF:
Claims:
System zum Herstellen eines durch einen Verifikationscode geschützten Gegenstands, Verfahren zur Herstellung eines entsprechenden Gegenstands, Verfahren zum Verifizieren der Echtheit eines Gegenstands

Ansprüche

1. System zum Herstellen eines durch einen Verifikationscode geschützten Gegenstands, umfassend:

Leseeinrichtung (21, 41) zum Einlesen eines an dem Gegenstand (50) aufgebrachten oder aufzubringenden Verifikationscodes mit einer ersten Zufallsteil- zeichenkette (S1);

Zufallsgenerator (22) zum Erzeugen einer zweiten Zufallsteilzeichenkette (R1);

Recheneinheit (24) zum Erzeugen eines Hashcodes (h_) durch ein Abbilden einer Zufallszeichenkette (S1R1), umfassend die erste und die zweite Zufallsteil- zeichenkette (S1, R1), gemäß einer Hashfunktion (H) und zur Auswahl einer Kandidatengruppe (1) zum Speichern der zweiten Zufallsteilzeichenkette (R1) und des Hashcodes (h,) als einen der Kandidatengruppe (1) zugehörigen Datensatz (31, 31 ') in einer Datenbank (30), wobei die Kandidatengruppe (1) anhand des Verifikationscodes, insbesondere der ersten Zufallsteilzeichenkette (S1), bestimmt wird.

2. System nach Anspruch 1, d a d u r c h g e k e n n z e i c h n e t, dass der Zufallsgcncrator (22) zur Erzeugung einer zweiten Zufallsteilzeichenkette (R1) angepasst ist, wobei die Kardinahtdt der zweiten Zufallsteilzeichenkette (R1) im Wesentlichen gleich der Kardinalität der ersten Zufallsteilzeichenkette (S1) ist.

3. System nach Anspruch 1 oder 2, d a d u i c h g e k e n n z e i c hn e t, dass die Recheneinheit (24) zur Bestimmung der Kandidatengruppe (1) mindestens eine Gruppenabbildungsfunktion (Hl, H2), insbesondere eine Hashfunktion, verwendet.

4. System nach einem der vorhergehenden Ansprüche, d a d u r c h g e k e n n z e ic h n e t, dass die Recheneinheit (24) zur Auswahl der Kandidatengruppe (1) in einem iterativen Verfahren angepasst ist, wobei innerhalb einer Gruppe (Gl) bis zur Bestimmung der Kandidatengruppe (1) anhand einer Gϊuppcnabbildungsfunktion (Hl, H2) jeweils mindestens eine Untergruppe (GIl, Gl 2, Gl 3) ausgewählt wird.

5. System nach einem der vorhergehenden Ansprüche, insbesondere nach Anspruch

4, d a d u r c h g e k e n n z e i c hn e t, dass die Komplexität der Gruppenabbildungsfunktion (Hl, H2) in einem ersten Iterati¬ onsschritt geringer ist als in einem zweiten.

6. System nach einem der vorhergehenden Ansprüche, insbesondere nach einem der Ansprüche 3 bis 5, d a du r c h g e k e n n z e i c h n e t, dass die Gruppenabbildungsfunktion (Hl1 H2) ein Clusteralgorithmus, insbesondere ein topologieerhaltender Clusteralgorithmus ist.

7. System nach einem der vorhergehenden Ansprüche, insbesondere nach Anspruch

6, d a d u r c h g e k e n n z e i c h n e t, dass der Clusteralgorithmus eine eindimensionale und/oder selbstorganisierende Karte, insbesondere eine Kohonenkarte ist.

8. System nach einem der vorhergehenden Ansprüche, d a d ur c h g e k e n n z ei c h n e t, dass die Hashfunktion (H) eine kryptographische Hashfunktion ist.

9. Verfahren zur Herstellung eines mit einem Verifikationscode versehenen Gegenstands (50), umfassend die Schritte:

a) Erzeugen einer Zufallszeichenkette (S1R1), die sich in eine erste Zufallsteilzeichenkette (S,) und eine zweite Zufallsteilzeichenkette (R1) aufteilen lässt,

b) Erzeugen eines Hashcodes (h,) durch ein Abbilden der Zufallszeichenkette (S1R1) gemäß einer Hashfunktion (H),

c) Auswählen einer Kandidatengruppc (1) zum Speichern der zweiten Zufallsteilzeichenkette (R1) und des Hashcodes (hs) als einen der Kandidatengruppe (1) zugehörigen Datensatz (31, 31'), wobei die Kandidatengruppe (1) anhand der ersten Zufallsteilzeichenkette (S1) bestimmt wird;

d) ein Speichern der zweiten Zufallsteilzeichenkette (R1) und des Hashcodes (Ji1) als einen der Kandidatengruppe (I) zugehörigen Datensatz (31, 3T);

e) Erzeugen einer Darstellung (60) der ersten Zufallsteilzeichenkette (S,) als Verifikationscode.

10. Verfahren nach Anspruch 9, da dur ch geken nz eichne t, dass die Kardinalität der ersten Zufallsteilzeichenkette (S1) im Wesentlichen gleich der Kaϊdinalität der zweiten Zufallsteilzeichenkette (R1) ist.

11. Verfahren nach Anspruch 9 oder 10, gekennz eichn e t durc h das Auswählen der Kandidatengruppe (i) in einem iterativen Verfahren, wobei innerhalb einer Gruppe (Gl) bis zur Bestimmung der Kandidatengruppe (1) anhand einer Gruppenabbildungsfunktion (Hl, H2) jeweils eine Untergruppe (Gl 1, G 12, G 13) ausgewählt wird.

12. Verfahren nach einem der Ansprüche 9 bis 11, insbesondere nach Anspruch 11, dadurch gekennz eichne t, dass die Komplexität der Gruppenabbildungsfunktion (Hl, H2) in einem ersten Iterationsschritt geringer ist als in einem zweiten.

13. Verfahren nach einem der Ansprüche 9 bis 12, insbesondere nach Anspruch 11 oder 12, da d urch geke nnz eichn e t, dass die Gruppen (Gl, G2) und/oder Untergruppen als Cluster, insbesondere als topo- logieerhaltende Cluster organisiert sind und Clusterreferenzwerte umfassen, wobei nach Schritt d) mindestens ein Cmsterreferenzwert mindestens einer Gruppe (Gl, G2) und/oder Untergruppe (GH, G12) in Abhängigkeit von der ersten Zu- failsteilzeichenkette (S1) angepasst wird.

14. Verfahren nach einem der Ansprüche 9 bis 13, insbesondere nach Anspruch 13, dadurch gekennzeichnet, dass der Cluster eine eindimensionale und/oder selbstorganisierende Karte, insbesondere eine Kohonenkarte ist.

15. Verfahren nach einem der Ansprüche 9 bis 14, da durch geke nnzeichne t, dass die Hashfunktion (H) eine kryptographische Hashfunktion ist.

16. Verfahren nach einem der Ansprüche 9 bis 15, da durch geke n n z e ichne t, dass zur Bestimmung der Kandidatengruppe (1) mindestens eine Gruppenabbildungsfunktion (Hl, H2), insbesondere eine Haslifunktion verwandt wird.

17. Verfahren nach einem der Ansprüche 9 bis 16, gekenn z eic hne t durc h ein Erzeugen einer Identifikationsnummer (i), die in Verbindung mit der zweiten Zufallsteilzeichenkette (R1) und dem Hashcode (h;) in der Datenbank (30) gespeichert wird und ein Aufbringen einer Darstellung der Identifikationsnummer (i) auf den Gegenstand.

18. Verfahren nach einem der Ansprüche 9 bis 17, da dur ch gekennz ei chne t, dass die erste Zufallsteilzeichenkette (S;) eine auf dem Gegenstand aufgebrachte Seriennummer oder ein Teil dieser ist.

19. λ7erfahren nach einem der Ansprüche 9 bis 18, da du r c h ge k e n n z e i c h n e t, dass das Erzeugen der zweiten Zufallsteilzeichenkette (R1) mittels eines nichtdeterministischen Zufallszahlengenerators, insbesondere unter Verwendung eines Quanten-Zufallszahlengenerators erfolgt.

20. Verfahren zum Verifizieren der Echtheit eines Gegenstands (50), umfassend die Schritte:

a) Auslesen eines am Gegenstand (50) und/oder dessen Verpackung angebrachten Verifikationscodes mit einer ersten Zufallsteilzeichenkette (S-), insbesondere eines Verifikationscodes, der gemäß einem Verfahren nach einem der Ansprüche 9 bis 19 erzeugt wurde;

b) Bestimmen einer Kandidatengruppe (1) von Datensätzen (31) anhand des Verifikationscodes, wobei die Datensätze (31) jeweils eine zweite Zufallsteilzeichenkette (R;) umfassen und auf einem Server (20) gespeichert sind;

c) Generieren mindestens einer Zufallszeichenkette (SjRj) unter λ^erwendung der ersten Zufallsteilzeichenkette (S1) und mindestens einer der zweiten Zufallsteilzeichenkette (Rj), die in einem Datensatz (31, 31') aus der Kandidaten- gruppe gespeichert ist;

d) Generieren eines ersten Hashcodes (h) durch ein Abbilden der Zufallszeichenkette (SJR1) gemäß einer Hashfunktion (H);

e) Vergleichen des ersten Hashcodes (h:) mit einem zweiten, in dem Datensatz (31, 31') gespeicherten Hashcode Qi)- , um die Echtheit des Gegenstands (50) festzustellen.

21. Verfahren nach Anspruch 20, d a d u r c h g e k e n n z e i c h n e t, dass die Schritte c), d) und e) für mehrere Datensätze (31, 31') aus der Kandidatengruppe (1) von Datensätzen (31, 31') durchgeführt werden, um die Echtheit des Gegenstands (50) festzustellen.

22. Verfahren nach einem der Ansprüche 20 oder 21, da durc h gekennz eichn e t, dass die mindestens eine Kandidatengruppe (1) von Datensätzen (31, 31 J) in einem iterativen Verfahren bestimmt wird.

23. Ver fahren nach einem der Ansprüche 20 bis 22, insbesondere nach Anspruch 22, da durc h geken nz eichn e t, dass in mindestens einem Iterationsschritt des iterativen Verfahrens aus einer Gruppe (Gl) eine Untergruppe (GIl, G 12, G 13) ausgewählt wird, wobei die Untergruppe (GH, G12, G13) mittels einer Gruppenabbildungsfunktion (Hl, H2) anhand des Verifikation s code s, insbesondere anhand der ersten Zufallsteilzeichenkette (S1), bestimmbar ist.

24. Verfahren nach einem der Ansprüche 20 bis 23, insbesondere nach Anspruch 22 oder 23, da d urc h gekennz eichne t, dass die Komplexität der Gruppenabbildungsfunktion (Hl, H2) zur Bestimmung einer Untergruppe (Gl 1, G12, G13) aus der Gruppe (Gl) anhand des Verifikationscodes in einem ersten Iterationsschritt geringer ist als in einem zweiten.

25. Verfahren nach einem der Ansprüche 20 bis 24, insbesondere nach einem der Ansprüche 23 oder 24, geken nz ei ch n e t d urc h ein Vergleichen des Verifikationscodes und/oder eines anhand der Gruppenabbildungsfunktion (Hl, H2) errechneten Wertes mit mindestens einem Clusterrefe- renzwert der Untergruppe (GIl, G 12, G 13) der Gruppe (Gl), wobei die Untergruppe (GIl, Gl 2, Gl 3) ausgewählt wird, deren Clusterreferenzwert die größte Ähnlichkeit hat.

26. Verfahren nach einem der Ansprüche 20 bis 25, insbesondere nach Anspruch 25, dadur ch gekennz eichne t, dass vor einem Einstufen des Gegenstandes als unecht eine Vielzahl von Datensätzen (31, 31') aus einer Vielzahl von Kandidatengruppen (1), insbesondere mit ähnlichen Clusterreferenzwerten, gemäß dem Schritt e) verglichen werden.

27. Verfahren nach einem der Ansprüche 20 bis 26, insbesondere nach Anspruch 26, da d ur ch gekenn zeichne t, dass anhand der Ähnlichkeit der Cmsteϊreferenzwerte eine Vielzahl von Kandidaten- I gruppen (i) so bestimmt ist, dass nach einem Durchführen der Schrittes e) für jeden der enthaltenen Datensätze die Wahrscheinlichkeit für ein falsch negatives Testergebnis gering, insbesondere kleiner als 10%, insbesondere kleiner als 5%, ist.

28. Verfahren nach einem der Ansprüche 20 bis 27, dadurch gekennzeichne t, dass mindestens eine Gruppenabbildungsfunktion (Hl, H2) eine Hashfunktion ist.

Description:
System zum Herstellen eines durch einen Verifikationscode geschützten Gegenstands,

Verfahren zur Herstellung eines entsprechenden Gegenstands, Verfahren zum

Verifizieren der Echtheit eines Gegenstands

Beschreibung

Die Erfindung betrifft ein System zum Herstellen eines durch einen Verifikationscode geschützten Gegenstands, ein Verfahren zum Herstellen eines entsprechenden Gegenstands und ein Verfahren zum Verifizieren der Echtheit eines Gegenstands.

Produktpiraterie stellt bei der Herstellung und dem Vertrieb von Massenartikeln, insbesondere Arzneimitteln, ein gravierendes Problem dar. Produkte, die einen bestimmten hiermit verknüpften Wert haben, werden häufig von Fälschern kopiert und vertrieben.

Diese gefälschten Produkte werden dann in Verkaufs- und Vertriebskanäle eingeschleust und Endabnehmern oder Zwischenhändlern angeboten. Hierbei werden Markenrechte, wettbewerbsrechtliche Vorschriften, Urheberrechte, Geschmacksmuster und Patente verletzt.

Auf Grund der Fälschung werden Endabnehmer und Zwischenhändler im Bezug auf die Herkunft und die Güte der Produkte getäuscht. Insbesondere bei Arzneimitteln kann dies zu schwerwiegenden Folgen führen.

Es ist bekannt (vgl. DE 698 24 291 T2), Produkte mit Labein bzw. Etiketten bzw. Schildern oder Aufklebern zu versehen, die einen Verifikationscode enthalten. Leseeinrichtungen oder optische Einrichtungen können dazu verwendet werden, den Verifikationscode auf einem Produkt zu erfassen und an eine entsprechende Einrichtung weiter zu geben, die feststellt, ob es sich hierbei um einen gültigen Verifikationscode handelt. Die DE 698 24 291 T2 sieht hierfür vor, einen Kombinationscode aus einer Zufallszahl und einem Nichtzufallsabschnitt zu bilden, wobei der nicht-zufällige Abschnitt Aufschluss darüber gibt, ob der Gegenstand echt oder gefälscht ist.

Allgemein müssen Verfahren, die eine Verifikation der Echtheit von Gegenständen ermöglichen, häufig zahlreiche Anforderungen erfüllen:

a) Die Verifikationscodes müssen Teile des Produkts sein oder sich leicht an diesem anbringen lassen. Die Kosten, die für die Ausstattung eines Produkts mit einem Verifikationscode nötig sind, müssen bei Massenprodukten sehr gering sein, da das Produkt sonst nicht mehr marktfähig ist. Vorzugsweise sollten die für die Ausstattung nötigen Kosten sich nur auf wenige Eurocents belaufen.

b) Die Verwaltung und Aufbewahrung der Verifikationscodes muss sehr einfach gestaltet sein, da jährlich eine Vielzahl von Produkten erstellt und gekennzeichnet werden sollen.

c) Die Kontrolle, ob ein Verifikationscode gültig oder ungültig ist, muss sehr effizient und einfach durchführbar sein, da bei entsprechend hohen Stückzahlen des Produkts mit sehr hohen Anfrageraten bezüglich der Authentizität eines Verifikationscodes zu rechnen ist. Beispielsweise müssen pro Stunde mehrere Millionen von Produkten verifiziert werden können. Der Verifikationsvorgang darf, um die Produktion und den Vertrieb nicht unnötig aufzuhalten, nur wenige Sekunden, vorzugsweise weniger als eine Sekunde benötigen.

Es ist bekannt (vgl. EP 1 593 088 Bl), Produkte mit einer Identifizierungsnummer und einem deterministisch bestimmten Verifikationscode zu versehen, wobei sich die Authentizität des Verifikationscodes anhand eines Datenbankeintrags in einer zentralen Datenbank nachprüfen lässt. Hierbei wird ein entsprechender Datenbankeintrag einem Produkt über die Identifizierungsnummer zugeordnet. Häufig ist es nicht gewünscht, beispielsweise neben einer bereits vorhandenen Seriennummer weitere Nummern oder Codes auf ein Produkt aufbringen zu müssen. Der Platz für das Aufbringen derartiger Nummern ist häufig aufgrund der Beschaffenheit des Produkts begrenzt. Daher sollten Verifikationscodes so kompakt als möglich sein. Hierbei muss stets ein schneller Zugriff auf einen entsprechenden Datensatz gewährleistet sein. Aufgrund der deterministischen Erzeugung des Verifikationscodes muss hier eine zentrale Erzeugung des Codes erfolgen. Ein dezentrales Verfahren ist weder angedacht noch möglich.

Ausgehend von diesem Stand der Technik ist es Aufgabe der vorliegenden Erfindung, einen schnellen und sicheren Sicherungsmechanismus für Gegenstände bereit zu stellen. Des Weiteren soll ein System zur Herstellung eines durch einen entsprechenden Verifikationscode geschützten Gegenstands angegeben werden.

Die Aufgabe wird erfindungsgemäß durch das System gemäß Anspruch 1 gelöst.

Insbesondere wird die Aufgabe durch ein System zum Herstellen eines durch einen Verifikationscode geschützten Gegenstands gelöst, wobei das System umfasst:

Leseeinrichtung zum Einlesen eines an dem Gegenstand aufgebrachten oder aufzubringenden Verifikationscodes mit einer ersten Zufallsteilzeichenkette; Zufallsgenerator zum Erzeugen einer zweiten Zufallsteilzeichenkette; Recheneinheit zum Erzeugen eines Hashcodes durch ein Abbilden einer Zufallszeichenkette, umfassend die erste und die zweite Zufallsteilzeichenkette, gemäß einer Hashfunktion und zur Auswahl einer Kandidatengruppe zum Speichern der zweiten Zufallsteilzeichenkette und des Hashcodes als einen der Kandidatengruppe zugehörigen Datensatz in einer Datenbank, wobei die Kandidatengruppe anhand des Verifikationscodes, insbesondere der ersten Zufallsteilzeichenkette, bestimmt wird.

Ein besonderer Vorteil des auf die oben genannte Weise hergestellten Verifikationscodes besteht darin, dass es möglich ist, auf eine Identifikationsnummer zu verzichten, da eine schnelle Zuordnung zwischen dem Produkt und dem zugehörigen Datensatz ohne das Verwenden einer Identifikationsnummer möglich ist. Des Weiteren lassen sich authentische Verifikationscodes nur dann herstellen, wenn Zugriff auf die erste Zufallsteilzeichenkette, die zweite Zufallsteilzeichenkette, den Hashcode und die Hashfunktion besteht. Selbst bei einem Zugriff auf Datensätze aus der Datenbank ist es nicht möglich, gültige Verifikationscodes mit entsprechenden ersten Zufallsteilzeichenketten zu erraten oder abzuleiten. Da die hier verwendeten Hashfunktionen vorzugsweise keine Umkehrfunktionen haben, ist es quasi unmöglich, aus dem Hashcode und der zweiten Zufallsteilzeichenkette zu einem gültigen Verifikationscode zu gelangen. Vorzugsweise ist der Zufallsgenerator zur Erzeugung einer zweiten Zufallsteilzeichenkette angepasst, wobei die Kardinalität der zweiten Zufallsteilzeichenkette im Wesentlichen gleich der Kardinalität der ersten Zufallsteilzeichenkette ist. Durch eine im Wesentlichen symmetrische Verteilung der zugehörigen Teilzeichenketten wird die Sicherheit des Sicherungssystems weiter erhöht. Beispielsweise können 10-Bit lange Teilzeichenketten verwendet werden.

Vorzugsweise verwendet die Recheneinheit zur Bestimmung der Kandidatengruppe mindestens eine Gruppenabbildungsfunktion, insbesondere eine Hashfunktion.

In einem Ausführungsbeispiel kann die Recheneinheit zur Auswahl der Kandidatengruppe in einem iterativen Verfahren angepasst sein, wobei innerhalb einer Gruppe bis zur Bestimmung der Kandidatengruppe anhand mindestens einer Gruppenabbildungsfunktion jeweils mindestens eine Untergruppe ausgewählt wird. Durch ein iteratives Verfahren kann eine hierarchisch aufgebaute Gruppenstruktur initialisiert werden, die eine schnelle Zugriffszeit beim Abfragen der Datenbank gewährleistet.

Vorzugsweise ist die Komplexität der Gruppenabbildungsfunktion in einem ersten Iterationsschritt geringer als in einem zweiten. Vorzugsweise wird der zweite Iterationsschritt unmittelbar oder mittelbar nach dem ersten ausgeführt. In einem Ausführungsbeispiel nimmt die Komplexität der Gruppenabbildungsfunktion mit jedem Iterationsschritt zu. Das heißt, die Komplexität bzw. der Rechenaufwand der zur Auswahl einer bestimmten Untergruppe notwendig ist, nimmt in jedem Iterationsschritt zu. Somit können sehr schnelle und sichere Systeme gestaltet werden. Bei der Suche nach der Kandidatengruppe können zahlreiche Gruppen in einem sehr frühen Stadium verworfen werden. Diese Schritte lassen sich bei einer geringen Komplexität der Gruppenabbildungsfunktion sehr schnell durchführen.

Vorzugsweise ist die Gruppenabbildungsfunktion ein Clusteralgorithmus, insbesondere ein topologieerhaltender Clusteralgorithmus. Das heißt, die einzelnen Datensätze mit der zweiten Zufallsteilzeichenkette und dem Hashcode werden in Cluster abgebildet. Um festzustellen, ob ein bestimmter Verifikationscode authentisch ist, wird anhand der ersten Zufallsteilzeichenkette ein entsprechender Cluster identifiziert, der den zugehörigen Datensatz enthalten sollte. Dieser Cluster kann eine Vielzahl von Datensätzen enthalten. Es ist möglich, sämtliche dieser Datensätze durchzuprobieren, um festzustellen, ob der bereitgestellte Verifikationscode authentisch ist. Soweit es sich um einen topologie- erhaltenden Cluster handelt, befinden sich Datensätze mit ähnlichen Eigenschaften in unmittelbarer Nachbarschaft. Es ist denkbar, in einem nächsten Schritt ebenfalls diese benachbarten Datensätze abzuarbeiten, um festzustellen, ob der bereitgestellte Verifikationscode authentisch ist.

Vorzugsweise handelt es sich bei dem Clusteralgorithmus um eine eindimensionale und/oder selbstorganisierende Karte, insbesondere um eine Kohonenkarte. Somit kann der entsprechende Cluster dynamisch aufgebaut werden, wobei die Topologie der Datensätze erhalten bleibt.

Die eingangs genannte Aufgabe wird des Weiteren durch ein Verfahren zur Herstellung eines mit einem Verifikationscode versehenen Gegenstands gemäß Anspruch 9 gelöst.

Insbesondere wird die Aufgabe durch ein Verfahren zur Herstellung eines mit einem Verifikationscode versehenen Gegenstands gelöst, wobei das Verfahren die folgenden Schritte umfasst:

a) Erzeugen einer Zufallszeichenkette, die sich in eine erste Zufallsteilzeichenkette und eine zweite Zufalls teilzeichenketteaufteilen lässt,

b) Erzeugen eines Hashcodes durch ein Abbilden der Zufallszeichenkette gemäß einer Hashfunktion,

c) Auswählen einer Kandidatengruppe zum Speichern der zweiten Zufallsteilzeichenkette und des Hashcodes als einen der Kandidatengruppe zugehörigen Datensatz, wobei die Kandidatengruppe anhand der ersten Zufallsteilzeichenkette bestimmt wird; und

d) ein Speichern der zweiten Zufallsteilzeichenkette und des Hashcodes als einen der Gruppe zugehörigen Datensatz;

e) Erzeugen einer Darstellung der ersten Zufallsteilzeichenkette als Verifikationscode.

Das beschriebene Verfahren zeichnet sich ebenfalls dadurch aus, dass es besonders sicher und effizient ist. Das heißt, ein entsprechender Verifikationscode kann schnell hergestellt und kontrolliert werden. Hierzu trägt die Strukturierung in Gruppen bei. Vorzugsweise wird eine Einwegfunktion als Hashfunktion verwendet. D.h. eine mathematische Funktion, die im Sinne der Komplexitätstheorie „schwer" umzukehren ist. Vorzugsweise handelt es sich um eine kryptografische Hashfunktion, also eine Einwegfunktion, die weitere Qualitätsanforderungen (geringe Wahrscheinlichkeit von Kollisionen der Hashwerte für den Eingabewertebereich bzw. eine möglichst gleichmäßige Verteilung der Hashwerte, hohe Datenreduktion, ein chaotisches Verhalten der Hashfunktion, Surjektivität, Effizienz) erfüllt.

Auch bei diesem Verfahren kann die Kardinalität der ersten Zufallsteilzeichenkette im Wesentlichen gleich der Kardinalität der zweiten Zufallsteilzeichenkette sein. Eine symmetrische Aufteilung der Zufallszeichenkette gewährleistet eine hohe Sicherheit des zugehörigen Verifikationscodes.

Des Weiteren wird die Aufgabe durch ein Verfahren zum Verifizieren gemäß dem Anspruch 20 gelöst.

Insbesondere wird die Aufgabe durch ein Verfahren zum Verifizieren der Echtheit eines Gegenstands gelöst, wobei das Verfahren die folgenden Schritte umfasst:

a) Auslesen eines am Gegenstand und/oder dessen Verpackung angebrachten Verifikationscodes mit einer ersten Zufallsteilzeichenkette, insbesondere eines Verifikationscodes wie vorab beschrieben;

b) Bestimmen einer Kandidatengruppe von Datensätzen anhand des Verifikationscodes, wobei der Datensatz jeweils eine zweite Zufallsteilzeichenkette und einen Hashcode umfasst und auf einem Server gespeichert ist;

c) Generieren mindestens einer Zufallszeichenkette unter Verwendung der ersten Zufallsteilzeichenkette und mindestens einer der zweiten Zufallsteilzeichenkette, die in einem Datensatz aus der Kandidatengruppe gespeichert ist;

d) Generieren eines ersten Hashcodes durch ein Abbilden der Zufallszeichenkette gemäß einer Hashfunktion, e) Vergleichen des ersten Hashcodes mit einem zweiten, in dem Datensatz gespeicherten Hashcode, um die Echtheit des Gegenstands festzustellen.

Vorzugsweise ist die Anzahl der Datensätze innerhalb der Kandidatengruppe deutlich kleiner als die aller gespeicherten Datensätze.

Aufgrund der hierarchischen Strukturierung der Datenbank lassen sich zu einem bestimmten Verifikationscode gehörende Datensätze oder Kandidaten hierfür schnell und effizient ermitteln. Die Aufteilung in eine erste Zufallsteilzeichenkette und eine zweite Zufallsteilzeichenkette erhöht die Sicherheit des Verfahrens. Weder ein Zugriff auf eine Vielzahl von mit einem entsprechenden Verifikationscode gekennzeichneten Gegenständen noch ein Zugriff auf die Datenbank ermöglicht es, den zu Grunde liegenden Sicherheitsmechanismus zu entschlüsseln.

Die Schritte c), d) und e) können für mehrere Datensätze aus der Kandidatengruppe von Datensätzen durchgeführt werden, um die Echtheit des Gegenstands festzustellen. Es ist also möglich, die Authentizität eines Verifikationscodes dadurch zu bestimmen, dass nach der Identifikation einer Kandidatengruppe mit einer Mehrzahl von Datensätzen, die möglicherweise zu dem Verifikationscode gehören, sämtliche Datensätze abgearbeitet werden. Das heißt, für jede zweite Zufallsteilzeichenkette in Verbindung mit der ersten Zufallsteilzeichenkette wird gemäß der gegebenen Hashfunktion der erste Hashcode generiert und mit dem in dem entsprechenden Datensatz gespeicherten zweiten Hashcode verglichen. Kann ein Datensatz identifiziert werden, bei dem der erste Hashcode mit dem zweiten Hashcode übereinstimmt, so wird der Verifikationscode als authentisch eingestuft. Andernfalls muss davon ausgegangen werden, dass es sich bei dem Verifikationscode und somit bei dem zugehörigen Produkt oder Gegenstand um eine Fälschung handelt.

Die Kandidatengruppe von Datensätzen kann in einem iterativen Verfahren bestimmt werden. Das heißt, es werden mehrere Iterations schritte durchgeführt, bei denen jeweils anhand der ersten Zufallsteilzeichenkette innerhalb einer Gruppe eine bestimmte Untergruppe bestimmt wird, die möglicherweise den oder die zugehörigen Datensätze enthält. So kann in jedem Iterationsschritt des iterativen Verfahrens aus einer Gruppe eine Untergruppe ausgewählt werden, wobei die Untergruppe mittels einer Gruppenabbildungsfunktion anhand des Verifikationscodes, insbesondere anhand der ersten Zufallsteilzeichenkette, bestimmbar ist. Somit können schnell und effizient Gruppen, die nicht als Kandidatengruppe in Frage kommen, verworfen werden.

Vorzugsweise ist die Komplexität zur Bestimmung einer Untergruppe aus der Gruppe anhand des Verifikationscodes in einem ersten Iterationsschritt geringer als in einem zweiten. Das heißt, der Rechenaufwand nimmt in jedem Iterations schritt zu. Somit können am Anfang des Iterationsverfahrens eine Vielzahl von Gruppen schnell und effizient verworfen werden. Nur die letzten zu betrachtenden Gruppen werden mit sehr komplexen Verfahren ermittelt.

Weitere vorteilhafte Aus führungs formen ergeben sich anhand der Unteransprüche.

Nachfolgend wird die Erfindung anhand von einigen Ausführungsbeispielen beschrieben, die mittels Abbildungen näher erläutert werden. Hierbei zeigen:

- Fig. 1 ein System zur Herstellung und zur Verifikation von Verifikationscodes;

- Fig. 2 ein mit einem Verifikationscode gekennzeichnetes Produkt;

- Fig. 3 die Organisation eines Clusters zur Speicherung von zur Verifikation des

Verifikationscodes nötigen Daten;

- Fig. 4 eine Abbildung einer ersten Zufallsteilzeichenkette und einer zweiten

Zufallsteilzeichenkette auf einen Hashcode;

- Fig. 5 eine erste Datenstruktur einer Datenbank; und

- Fig. 6 eine zweite Datenstruktur einer Datenbank.

In der nachfolgenden Beschreibung werden für gleiche und gleich wirkende Teile dieselben Bezugsziffern verwendet.

Wie in Fig. 1 gezeigt, kann ein erfindungsgemäßes System zum Herstellen eines durch einen Verifikationscode geschützten Gegenstands und zur Überprüfung der Echtheit dieses Verifikationscodes einen Server 20 und eine Workstation 40 umfassen, die über ein Netzwerk 5 miteinander kommunizieren. Der Server 20 hat eine Leseeinrichtung 21 , einen Zufallsgenerator 22, eine Recheneinheit 24 und eine Datenbank 30. Die Workstation 40 kann über eine weitere Leseeinrichtung, nämlich einen Scanner 41 verfügen.

Ein zentraler Gedanke der vorliegenden Erfindung besteht darin, einen Verifikationscode zu schaffen, der nur in Kombination mit einem Datenbankeintrag verifiziert werden kann. Der Verifikationsmechanismus umfasst beispielsweise, wie in Fig. 4 gezeigt, eine erste Zufallsteilzeichenkette S 1 und eine zweite Zufallsteilzeichenkette R 1 . Die erste Zufallsteilzeichenkette S 1 bildet in einem ersten Ausführungsbeispiel den Verifikationscode. Der Verifikationscode kann weitere Datenfelder, beispielsweise eine Identifikationsnummer i umfassen. Erfindungsgemäß sind diese weiteren Datenfelder optional. Eine Darstellung des Verifikationscode ist in Form eines Labels 60 (Fig. 2) an einem Produkt 50 befestigt. Bei dem Produkt kann es sich beispielsweise um einen Behälter für Tabletten handeln. Der Verifikationscode sichert in diesem Fall die Echtheit der Tabletten ab. In einem anderen Ausführungsbeispiel kann die Darstellung unmittelbar auf dem zusichernden Produkt 50 angebracht sein. Alternativ kann der Verifikationscode ein Teil des Produkts 50 sein.

Es ist wesentlich, dass die Gültigkeit eines Verifikationscodes nur dann festgestellt werden kann, wenn beide Teile also die erste Zufallsteilzeichenkette S 1 und die zweite Zufallsteilzeichenkette R 1 vorliegen. Die Zufallsteilzeichenketten S 1 , R 1 unterscheiden sich voneinander und bilden nur als Paar eine Zufallszeichenkette S 1 R 1 , die sich mittels einer Hashfunktion H auf einen gültigen Hashcode h, abbilden lässt. Dieser Hashcode h, wird mit der zweiten Zufallsteilzeichenkette R 1 in einer zentralen Datenbank, beispielsweise der Datenbank 30 gespeichert. Eine entsprechende Datenbanktabelle ist in der Fig. 5 gezeigt. Sie umfasst eine Spalte für die zweiten Zufallsteilzeichenketten R 1 , eine für die Hashcodes h, und eine weitere für Statusinformationen mit der Bezeichnung „Status" (optional). Diese Tabelle, die in der Datenbank 30 gespeichert ist, umfasst mehrere Einträge, beispielsweise einen ersten Datensatz 31 und einen zweiten Datensatz 31 '. Jeder dieser Datensätze 31, 31 ' korrespondiert mit einem zulässigen — also echten — Verifikationscode.

Um die Authentizität eines Produkts 50 feststellen zu können, muss also ein entsprechender Verifikationscode (vgl. beispielsweise Fig. 2) mit dem zugehörigen Datensatz (vgl. beispielsweise Datensatz 31) in Bezug gesetzt werden. In einer ersten Aus führungs form kann dieser Bezug durch eine Identifikationsnummer i hergestellt werden, die in der Datenbank 30 gespeichert (vgl. Fig. 6) und auf dem Produkt 50 abgebildet ist.

Ein besonderer Vorteil der vorliegenden Erfindung besteht jedoch darin, dass auf eine Identifikationsnummer i, die auf dem Produkt 50 und in der Datenbank 30 hinterlegt werden muss, verzichtet werden kann. So besteht beispielsweise in einem weiteren Ausführungsbeispiel der Verifikationscode auf dem Produkt 50 nur aus einer ersten Zufallsteilzeichenkette. Es wäre möglich, sämtliche Datensätze 31 , 31 ' in der Datenbank 30 abzuarbeiten, um festzustellen, ob ein Datensatz 31 existiert, der die Authentizität eines derartig gestalteten Verifikationscodes bestätigt. Es lässt sich leicht einsehen, dass je nach Beschaffenheit der Hashfunktion H und Anzahl der Datensätze 31, 31 ' dieser Vorgang sehr lange dauern wird. Daher schlägt die vorliegende Erfindung vor, den Verifikationscode, insbesondere die erste Zufallsteilzeichenkette S 1 , dazu zu verwenden, um eine Auswahl von Datensätzen 31, 31 ' in der Datenbank 30 — also eine Kandidatengruppe 1 - zu identifizieren, die möglicherweise zu einem bestimmten Verifikationscode gehören. Somit müssen nur wenige Datensätze 31, 31 ', vorzugsweise nur ein Datensatz 31 abgearbeitet werden, um festzustellen, ob es sich um einen zulässigen Verifikationscode handelt.

In einem Ausführungsbeispiel ist die Datenbank 30 so organisiert, dass die Datensätze 31 , 31 ' entweder in ein erstes unteres Intervall oder in ein zweites oberes Intervall eingeordnet sind. Verwendet man beispielsweise erste Zufallsteilzeichenketten S 1 aus dem Intervall [0; 1023], also z.B. 10-Bit lange erste Zufallsteilzeichenketten S 1 , so kann das untere Intervall das Intervall [0; 511] , das obere Intervall das Intervall [512; 1023] sein. Bei der Suche nach dem zugehörigen ersten Datensatz 31 kann also durch die Betrachtung des richtigen Intervalls eine Vielzahl von Datensätzen 31, 31 ' ausgeschlossen werden.

Ein Verifikationsvorgang kann also wie folgt ablaufen:

1. Einlesen eines Verifikationscodes, umfassend eine erste Zufallszeichenkette S 1 , mittels der Leseeinrichtung 21 ; 2. Bestimmen eines Intervalls, das eine Kandidatengruppe 1 von Datensätzen 31, 31 ' enthält, anhand der ersten Zufallsteilzeichenkette S 1 durch die Recheneinheit 24;

3. Einlesen eines ersten Datensatzes 31 aus der Kandidatengruppe 1, um festzustellen, ob sich die erste Zufallsteilzeichenkette S 1 in Verbindung mit der zweiten Zufallsteilzeichenkette R 1 des ersten Datensatzes 31 mittels der Hashfunktion H auf den Hashcode h, des ersten Datensatzes 31 abbilden lässt;

4. Wiederholen des Schritts 3 mit den weiteren Datensätzen 31, 31 ' aus der Kandidatengruppe 1 bis entweder ein passender Datensatz 31 identifiziert wurde oder sämtliche Datensätze 31, 31 ' aus der Kandidatengruppe 1 abgearbeitet wurden.

5. Erzeugen einer Ausgabe, die angibt, ob es sich bei dem eingegebenen Verifikationscode um einen zulässigen Verifikationscode handelt (Es konnte ein passender Datensatz 31 identifiziert werden.).

Um die Leistungsfähigkeit des Systems weiter zu verbessern, kann das obere und das untere Intervall in weitere Teilintervalle untergliedert werden. Beispielsweise kann das untere Intervall die beiden Intervalle [0; 255] und [256; 511] aufweisen. Vorzugsweise sind die Intervalle in hierarchischen Gruppen organisiert, so dass es möglich ist, eine entsprechende Kandidatengruppe 1 iterativ zu identifizieren. Um die Anonymität des Verifikationscodes sicherzustellen, ist es wesentlich, dass es keine eindeutige Umkehrfunktion gibt, die es ermöglichen würde, einem bestimmten Intervall genau eine erste Zufallsteilzeichenkette S 1 zuzuordnen. Es ist also nicht möglich, anhand der Einträge in der Datenbank 30 vorhandene Verifikationscodes zu rekonstruieren. Jedes Intervall bzw. jede Gruppe ist derart beschaffen, dass in diesem bzw. dieser, zumindest theoretisch, mehrere Datensätze 31 , 31 ' für mehrere Verifikationscodes abgelegt werden können.

Das vorab beschriebene Iterationsverfahren hat den weiteren Vorteil, dass in jedem Iterationsschritt nur ein Bit der ersten Zufallsteilzeichenkette S 1 betrachtet werden muss. So gibt im ersten Iterationsschritt das erste Bit der ersten Zufallsteilzeichenkette S 1 Aufschluss darüber, ob der zugehörige Datensatz 31 , 31 ' im Intervalle [0; 511] oder im Intervall [512; 1023] zu finden ist. Im zweiten Iterations schritt bestimmt das zweite Bit über eine Einordnung in die kleineren Intervalle, z. B. [0; 255] oder [256; 511] . Im n-ten Iterations schritt wird das n-te Bit betrachtet. Um die Anonymität der ersten Zufallsteilzeichenkette S 1 zu wahren, werden bei einer Bitlänge der ersten Zufallsteilzeichenkette S 1 von k Bits maximal k-1 Iterationsschritte durchgeführt oder eine maximale Aufteilung in 2 k 1 Intervalle erzeugt. Vorzugsweise werden deutlich weniger Intervalle verwendet, um die Datensätze 31, 31 ' zu organisieren. Obwohl vorab ein sehr systematisches Verfahren zur Organisation der Datensätze 31 , 31 ' in Gruppen beschrieben wurde, ist es möglich, beliebige Gruppenabbildungsfunktionen Hl , H2 zu Verwenden, um die Datensätze 31, 31 ' in Gruppen, insbesondere in hierarchisch organisierte Gruppen einzuordnen und eine Kandidatengruppe 1 von Datensätzen 31, 31 ' mittels der ersten Zufallsteilzeichenkette S 1 zu identifizieren.

In einem weiteren Ausführungsbeispiel werden die Datensätze 31 , 31 ' in hierarchisch organisierten Cluster, die wiederum Kandidatengruppen 1 enthalten, abgelegt. Der Grundgedanke hierbei besteht darin, dass ein Referenzvektor auf eine Datengruppe oder einen bestimmten Datensatz 31, 31 ' zeigt, wobei die Einträge des Referenzvektors zunehmend stärker verschlüsselt sind. Das heißt, je kleiner die Gruppe ist, auf die ein entsprechender Vektoreintrag mit entsprechenden Referenzwerten zeigt, umso höher ist die Verschlüsselung. Eine derartige Clusterstruktur kann wie folgt aufgebaut werden:

1. Betrachte die Menge aller möglichen ersten Zufallsteilzeichenketten S 1 und organisiere diese gemäß ihrer Ähnlichkeit mit einem Clusteralgorithmus. Hierbei sollten nur einige wenige relativ große Cluster erzeugt werden.

2. Bilde jede erste Zufallsteilzeichenkette S 1 aus jedem der oben genannten Cluster mittels einer Gruppenabbildungsfunktion Hl ab und verwende die Resultatwerte, um innerhalb einer Gruppe weitere Untercluster oder Subcluster zur Organisation der Datensätze 31, 31 ' anhand der ersten Zufallsteilzeichenketten S 1 zu erzeugen;

3. Wiederhole Schritt 2 für jeden Subcluster aus Schritt 2, wobei eine Gruppenabbildungsfunktion H2 mit einer höheren Komplexität verwendet wird;

4. Wiederhole das genannte Verfahren so lange, wie gewünscht, wobei die Komplexität der verwendeten Gruppenabbildungsfunktionen Hl , H2 jedesmal erhöht wird. Die Fig. 3 zeigt Ausschnitte einer nach diesem Verfahren erzeugten Clusterstruktur. Auf der obersten Ebene befinden sich zwei Cluster, Gl, G2. Datensätze 31, 31 ' für eine bestimmte erste Zufallsteilzeichenkette S 1 lassen sich aufgrund ihrer Ähnlichkeit (bezogen auf die bestimmte erste Zufallsteilzeichenkette S 1 ) entweder in dem Cluster Gl oder in dem Cluster G2 einordnen. Die ersten Zufallsteilzeichenketten S 1 , die dem Cluster Gl zugeordnet wurden, lassen sich mittels einer ersten Gruppenabbildungsfunktion Hl auf einen ersten Vergleichswert abbilden und gemäß diesem Vergleichswert in Subcluster GI l, G12, G13 einteilen. Der Cluster Gl enthält Referenzen auf die Subcluster GI l, G12, G13. Analog lassen sich die ersten Zufallsteilzeichenketten S 1 , die dem Cluster G2 zugeordnet wurden, mittels der ersten Gruppenabbildungsfunktion Hl auf den ersten Vergleichswert abbilden und gemäß diesem Vergleichswert in weitere Subcluster einteilen.

Die ersten Zufallsteilzeichenketten S 1 aus den Subcluster GI l lassen sich wiederum mittels einer zweiten Gruppenabbildungsfunktion H2 auf einen zweiten Vergleichswert H2(H1 (S 1 )) abgbilden, der in drei weiteren Clustern bzw. Subclustern Gl I l , G112. G113 organisiert ist. Die Subcluster Gl H, Gl 12, Gl 13 können weitere Subcluster oder eine Vielzahl von Datensätzen 31, 31 ' enthalten. Vorliegend wird davon ausgegangen, dass diese Subcluster Gl H, G112, G113 Cluster sind, die die Datensätze 31, 31 ' enthalten.

In dieser Datenstruktur lässt sich also ein bestimmter Datensatz 31 zu einem bestimmten Verifikationscode wie folgt bestimmen. Bestimme anhand der ersten Zufallsteilzeichenkette S 1 die Zugehörigkeit zu den Cluster Gl oder G2. Vorliegend wird unterstellt, dass die zu betrachtende erste Zufallsteilzeichenkette S 1 dem Cluster Gl angehört. Berechne Hl (S 1 ) und vergleiche den Wert mit dem Clusterreferenzwerten des Clusters Gl . Im vorliegenden Beispiel identifiziert man als Kandidat den Subcluster GI l . Innerhalb des Subclusters GI l wird der Wert H2(H1 (S 1 )) berechnet und mit den zugehörigen Referenzvektoren verglichen. In dem beschriebenen Beispiel wäre dieser Wert dem Subcluster Gl 12 zuzuordnen. Der Subcluster Gl 12 bildet also die Kandidatengruppe 1 , die den zugehörigen Datensatz 31 für den besagten Verifikationscode enthalten sollte.

Für jeden der enthaltenen Datensätze 31, 31 ' wird also die Zufallszeichenkette S 1 R 1 gebildet und mittels der Hashfunktion H ein Hashcode Ji 1 berechnet (vgl. Fig. 4). Soweit sich ein Datensatz 31 aus der Menge von Datensätzen 31 , 31 ' aus dem Subcluster Gl 12 identifizieren lässt, bei dem der berechnete Hashcode Ji 1 mit dem im Datensatz 31, 31 ' gespeicherten Hashcode Ji 1 übereinstimmt, kann davon ausgegangen werden, dass es sich bei dem eingegebenen Verifikationscode um einen echten Verifikationscode handelt. Andernfalls muss unterstellt werden, dass es sich hierbei um eine Fälschung handelt. Das Kaskadieren der Gruppenabbildungsfunktionen Hl, H2 stellt eine ausreichende Anonymität bei vertretbarem Rechenaufwand sicher. Des Weiteren werden ähnliche erste Zufallsteilzeichenketten S 1 in einem Cluster Gl homogen auf die Subcluster GI l , G12, Gl 3 verteilt.

Vorab wurde ein Ausführungsbeispiel beschrieben, bei dem die einzelnen Cluster Gl , G2 und Subcluster GI l , G12, G13, GH l , G112, G113 statische Clusterreferenzwerte haben. Hierbei ist es möglich, eine Kandidatengruppe 1 deterministisch zu bestimmen, die einen entsprechenden Datensatz 31, 31 ' enthalten muss. In einem weiteren Ausführungsbeispiel ist es möglich, dass oben genannte Verfahren auf eine dynamische Clusterstruktur anzuwenden. Hierbei ändern sich die Clusterreferenzwerte in Abhängigkeit von den ihnen zugeordneten Datensätzen 31, 31 '. Beispielsweise kann der Clusterreferenzwert des Clusters Gl 12 der Mittelwert aller ersten Zufallsteilzeichenketten S 1 von darin enthaltenen Datensätzen 31, 31 ' sein. Verwendet man, wie oben beschrieben, Gruppenabbildungsfunktionen Hl , H2, so ist der Clusterreferenzwert für den Subcluster G112 der Mittelwert aller zweiten Vergleichswerte H2(H1 (S 1 )) der Datensätze 31 , 31 ' aus diesem Subcluster Gl 12. In einem rekursiven Verfahren lässt sich nach dem Einfügen eines neuen Datensatz 31, 31 ' ein neuer Clusterreferenzwert für den Cluster GH berechnen. Hierbei kann es sich um den Mittelwert der Werte Hl (S 1 ) der in diesem Subcluster GI l enthaltenen Datensätze 31, 31 ' handeln. In einem letzten Rekursionsschritt wird der Clusterreferenzwert des Clusters Gl neu berechnet. Mit diesem Verfahren ist es möglich, beliebige Clusterstrukturen für eine Menge von Datensätzen 31 , 31 ' aufzubauen, wobei diese sehr effizient organisiert sind und beliebige Datensätze 31 , 31 ' mit beliebigen Verifikationscodes oder ersten Zufallsteilzeichenketten S 1 gespeichert werden können. Es ist leicht ersichtlich, dass sich in derartig dynamischen Strukturen die Clusterreferenzwerte derart ändern können, dass eine eindeutige Identifikation einer Kandidatengruppe 1 für eine bestimmte erste Zufallsteilzeichenkette S 1 nicht mehr möglich ist. Bei der Suche nach einem zugehörigen Datensatz 31, 31 ' müssen möglicherweise mehrere Cluster Gl , G2 oder Subcluster GI l, G12, G13, Gl I l, Gl 12, Gl 13 berücksichtigt werden, um mit hoher Wahrscheinlichkeit festzustellen, ob ein bestimmter Verifikationscode authentisch ist. Bei der Suche nach entsprechenden Kandidatengruppen 1 wird also als erstes die Kandidatengruppe 1 identifiziert, die Clusterreferenzwerte hat, die der ersten Zufallsteilzeichenkette S 1 am ähnlichsten sind. Soweit der zugehörige Datensatz 31, 31 ' in dieser Kandidatengruppe 1 nicht identifiziert werden kann, müssen weitere Kandidatengruppen anhand der Ähnlichkeit ihrer Clusterreferenzwerte identifiziert und durchsucht werden. Es ist möglich, statistische und deterministische Verfahren zu verwenden, um die Suche zu einem bestimmten Zeitpunkt abzubrechen. Hierbei nimmt man in Kauf, dass eine bestimmte Anzahl von falschpositiven Testergebnissen auftreten kann. Das Verfahren wird jedoch derart gestaltet, dass die Wahrscheinlichkeit für das Einstufen eines Verifikationscodes als nicht authentisch - trotz dessen Authentizität - vernachlässigbar gering ist (z.B. kleiner als 5 % oder 1 % oder 1 %o).

Die Organisation der Cluster und die Suche darin lassen sich weiter verbessern, wenn der hier verwendete Clusteralgorithmus ein topologieerhaltender Clusteralgorithmus ist. Das heißt, erste Zufallsteilzeichenketten S 1 , die sich ähnlich sind (geringer Abstand in einer hierauf definierten Ordnung) werden in demselben oder nahe beieinander liegenden Cluster abgebildet. Beispielsweise kann eine selbstorganisierende Karte (SOM: Seif Organizing Map) verwendet werden. Vorzugsweise wird eine eindimensionale selbstorganisierende Karte verwendet, die die einzelnen Karten auf eine lineare Kette von Cluster abbildet, wobei zueinander benachbarte Glieder dieser Kette sehr ähnliche Referenzvektoren haben. Somit können bei der Suche eines zugehörigen Datensatzes 31 mehrere Cluster mit ähnlichen Referenzvektoren berücksichtigt werden, wobei es nicht notwendig ist, neue Referenzwerte zu berechnen und zu vergleichen. Nach der Identifikation einer Kandidatengruppe 1 können benachbarte Cluster in dieser Kette berücksichtigt werden.

Vorhergehend wurde ein Ausführungsbeispiel beschrieben, bei dem die Datenbank 3 in einem bestimmten Clusterschema organisiert wurde. Es ist leicht einsehbar, dass die Verwendung von Cluster eine hohe Anonymität der einzelnen Datensätze 31, 31 ' sicherstellt und somit das Rekonstruieren des zugehörigen Verifikationscodes unmöglich macht. Somit sind auch andere Clusterschema geeignet, um die erfindungsgemäße Lehre zu verwirklichen.

Die vorab genannten Gruppenabbildungsfunktionen Hl, H2 können beliebige Funktionen sein, die eine gleichmäßige Verteilung von Eingabewerten auf ein vorgegebenes Intervall ermöglichen. Vorzugsweise handelt es sich hierbei um Hashfunktionen, insbesondere kryptografische Hashfunktionen.

Vorzugsweise wird die Zufallsteilzeichenkette S 1 R 1 durch den Zufallsgenerator 22 erzeugt und ein entsprechender Hashcode Ji 1 generiert. Danach wird die Zufallszeichenkette S 1 R 1 in zwei im Wesentlichen gleich große Bestandteile, nämlich die erste Zufallsteilzeichenkette S 1 und die zweite Zufallsteilzeichenkette R 1 aufgeteilt und getrennt voneinander weiter verarbeitet. Das heißt, die erste Zufallsteilzeichenkette S 1 wird auf das Produkt 50 aufgebracht, während die zweite Zufallsteilzeichenkette R 1 mit dem Hashcode h, in einem Datensatz 31, 31' gespeichert wird. Alternativ können bestimmte Produkte 50 bereits einen Code aufgedruckt haben, beispielsweise eine Seriennummer, die von einem Hersteller bereitgestellt wurde. Es ist möglich, diese Seriennummer als erste Zufallsteilzeichenkette S 1 zu verwenden und mittels des Zufallsgenerators 22 eine zugehörige zweite Zufallsteilzeichenkette R 1 zu erzeugen und zusammen mit einem entsprechenden Hashcode h, in einem Datensatz 31, 31' abzuspeichern. Vorzugsweise werden in einer derartigen Konstellation zufällig oder deterministisch Teile der Seriennummer ausgewählt, um als erste Zufallsteilzeichenkette S 1 verwendet zu werden. Das verwendete Auswahlschema kann in der Datenbank 30 abgespeichert werden.

Vorab wurde die Hashfunktion H verwendet, um den Hashcode h, zu berechnen. Bei dieser Hashfunktion H kann es sich um einen sicheren Hash-Algorithmus (SHA: Secure Hash Algorithm) handeln. SHA bezeichnet eine Gruppe von standardisierten kryptografischen Hashfunktionen, die zur Berechnung eines eindeutigen Prüfwerts dienen. Das heißt, die verwendeten Hashfunktionen sollten vorzugsweise kollisionsfrei sein oder zumindest die Wahrscheinlichkeit für eine Kollision so gering als möglich halten.

In den vorab beschriebenen Beispielen wurden die Verifikation eines Verifikationscodes und dessen Erstellung beschrieben, wobei der Server 20 die hierfür nötigen Schritte durchgeführt hat. Es ist möglich, einzelne Schritte der beschriebenen Verfahren durch die Workstation 40 und den zugehörigen Scanner 41 durchführen zu lassen. Des Weiteren sind auch Netzwerke 5 denkbar, an denen eine Vielzahl von Workstations 50 angeschlossen sind, die entsprechende Aufgabe erfüllen können. Ein einziger Server 20 kann also mit einer Vielzahl von Workstations 40 zusammenarbeiten, um Verifikationscodes zu erzeugen oder deren Echtheit zu überprüfen. Bezugszeichenliste

1 Kandidatengruppe

5 Netzwerk

20 Server

21 Leseeinrichtung

22 Zufallsgenerator

24 Recheneinheit

30 Datenbank

31, 31' Datensatz

40 Workstation

41 Scanner

50 Produkt

60 Label

S 1 R 1 Zufallszeichenkette

S 1 erste Zufallsteilzeichenkette

R 1 zweite Zufallsteilzeichenkette

Hashcode

Hl, H2 Gruppenabbildungsfunktion

H Hashfunktion i Identifikationsnummer

Gl, G2,

G11.G12,

G13, Gl I l,

G112, G113 Cluster