DE60035290T2 - Verfahren und Vorrichtung zum Auffinden unerlaubter Kopien digitaler Objekte mittels Fingerabdruck - Google Patents

Verfahren und Vorrichtung zum Auffinden unerlaubter Kopien digitaler Objekte mittels Fingerabdruck Download PDF

Info

Publication number
DE60035290T2
DE60035290T2 DE60035290T DE60035290T DE60035290T2 DE 60035290 T2 DE60035290 T2 DE 60035290T2 DE 60035290 T DE60035290 T DE 60035290T DE 60035290 T DE60035290 T DE 60035290T DE 60035290 T2 DE60035290 T2 DE 60035290T2
Authority
DE
Germany
Prior art keywords
fingerprint
gamma
word
blocks
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60035290T
Other languages
English (en)
Other versions
DE60035290D1 (de
Inventor
Yacov Mercer Island YACOBI
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of DE60035290D1 publication Critical patent/DE60035290D1/de
Application granted granted Critical
Publication of DE60035290T2 publication Critical patent/DE60035290T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0021Image watermarking
    • G06T1/005Robust watermarking, e.g. average attack or collusion attack resistant
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N1/32101Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2201/00General purpose image data processing
    • G06T2201/005Image watermarking
    • G06T2201/0051Embedding of the watermark in the spatial domain
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2201/00General purpose image data processing
    • G06T2201/005Image watermarking
    • G06T2201/0061Embedding of the watermark in each block of the image, e.g. segmented watermarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2201/00General purpose image data processing
    • G06T2201/005Image watermarking
    • G06T2201/0063Image watermarking in relation to collusion attacks, e.g. collusion attack resistant
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N2201/3201Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
    • H04N2201/3225Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of data relating to an image, a page or a document
    • H04N2201/3233Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of data relating to an image, a page or a document of authentication information, e.g. digital signature, watermark
    • H04N2201/3235Checking or certification of the authentication information, e.g. by comparison with data stored independently
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N2201/3201Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
    • H04N2201/3225Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of data relating to an image, a page or a document
    • H04N2201/3233Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of data relating to an image, a page or a document of authentication information, e.g. digital signature, watermark
    • H04N2201/3236Details of authentication information generation

Description

  • TECHNISCHES GEBIET
  • Diese Erfindung betrifft Verfahren und Systeme zum Sichern digitaler Daten mittels Fingerabdrücken.
  • HINTERGRUND DER ERFINDUNG
  • Die Fingerabdruck-Sicherung ist eine Technik, welche die einzigartige Markierung jeder Kopie eines speziellen Objektes und die Zuordnung jeder einzigartig markierten Kopie zu einer speziellen Einheit, an welche die Kopie verteilt wurde, beinhaltet.
  • Als ein Beispiel werde eine Karte betrachtet. Wenn ein Kartenhersteller eine Karte herstellt, möchte er sicherstellen, dass diejenigen Personen, an welche die Karte verteilt wird, keine unerlaubten Kopien der Karte erstellen und diese an andere weiter verteilen. Eine Möglichkeit, mit der der Kartenhersteller seine Karten schützen könnte, besteht in der Einführung eines unterschiedlichen einfachen Fehlers oder eines Fingerabdrucks (z.B. einer nicht existierenden Straße) in jede Kopie der Karte, die verteilt wird. Jeder Fingerabdruck wird dann einer Einzelperson zugeordnet, an die die Karte zu verteilen ist. Indem jeweils ein unterschiedlicher Fingerabdruck einer anderen Einzelperson zugeordnet wird, können, sobald unerlaubten Kopien dieser Kopie der Einzelperson entdeckt werden, diese zu der ursprünglichen Einzelperson aufgrund des einzigartigen Fingerabdruckes zurückverfolgt werden, den die Karte enthält.
  • Ein Problem bei dieser Art von Fingerabdruck-Sicherung kann entstehen, wenn zwei oder mehr Einzelpersonen für den Zweck der Aufdeckung ihrer Fingerabdrücke zusammenarbeiten. D.h., wenn zwei oder mehr Einzelpersonen (Colluder) zusammenkommen und ihre Karten vergleichen, können sie, vorausgesetzt dass ausreichend Zeit vorhanden ist, ihre einzigartigen Fingerabdrücke feststellen, indem sie lediglich auf die Unter schiede zwischen ihren Karten achten. Wenn sie ihren Fingerabdruck erkennen, können sie ihn ändern und daher möglicherweise eine Detektion verhindern.
  • In der heutigen Zeit und insbesondere mit dem Aufkommen des Internets und der elektronischen Verteilung wurde die Fingerabdruck-Sicherung von digitalen Daten (z.B. Software, Dokumenten, Musik und Video) zum Zwecke der Detektion und Abschreckung vor unerlaubtem Kopieren besonders wichtig. Wie in dem vorstehenden Kartenbeispiel kann das Zusammenarbeiten bzw. dem Collusion unterschiedlicher Einzelpersonen in dem digitalen Kontext Herausforderungen für die Eigentümer und Verteiler derartiger digitaler Daten darstellen. Obwohl Fortschritte auf dem Gebiet der digitalen Fingerabdruck-Sicherung erzielt wurden, sind weitere Schritte erforderlich, um den Schutzumfang, der durch digitale Fingerabdruck-Sicherung erzeugt wird, zu erhöhen. Beispielsweise ist in einem Fingerabdrucksystem (dem nachstehend detaillierter diskutierten "Boneh-Shaw System") ein gewisser Schutz gegenüber Collusion vorgesehen, jedoch nur wenn die Zahl der Zusammenarbeiter bzw. Colluder relativ klein ist. Somit besteht ein Bedarf, den Schutz zu erhöhen, der durch digitale Fingerabdruck-Sicherung geleistet wird, um eine Detektion der Colluder selbst dann zu ermöglichen, wenn die Anzahl der Colluder groß ist.
  • Demzufolge entstand diese Erfindung aus Überlegungen bezüglich der Bereitstellung verbesserter Verfahren und Systeme für die Fingerabdruck-Sicherung von digitalen Daten.
  • Cox et al., "Secure Spread Spectrum Watermarking for Multimedia", IEEE Transactions on Image Processing, Vol. 6, No. 12. December 1997, pages 1673 to 1687 offenbart ein sicheres Spreizspektrum-Wasserzeichen für Multimediazwecke. Ein Wasserzeichen wird als ein unabhängiger und identisch verteilter Zufallsvektor aufgebaut, der nicht wahrnehmbar in einer Spreizspektrum-ähnlichen Weise in die wahrnehmbar signifikantesten Spektralkomponenten eingefügt ist. Das Originalbild kann erfolgreich gegenüber dem transformierten Wasserzeichenbild registriert werden, um unzweideutig den Eigentümer zu identifizieren. Ein Identifikationscode ist permanent in den Daten eingebettet. Die Daten enthalten keine ASCII-Darstellungen von Text. Ein Wasserzeichen kann die Identität des Käufers einer speziellen Kopie enthalten. Das Wasserzeichen sollte gegen das Kombinieren von Kopien desselben Datensatzes zum Zerstören des Wasserzei chens robust sein. Ein Frequenz-basierendes Verfahren wird zur Wasserzeichen-Sicherung in dem Frequenzbereich durch Spreizspektrumscodierung eines Wasserzeichens beschrieben. Das Wasserzeichen wird über das gesamte Spektrum eines Bildes gespreizt. Ein Wasserzeichen besteht aus einer Sequenz von realen Zahlen, und es werden Wasserzeichen mit kontinuierlichen Werten verwendet. Binäre Wasserzeichen werden unterdrückt, da sie weniger robust gegen Angriffe auf der Basis von Collusion verschiedener unabhängiger mit Wasserzeichen gekennzeichneter Kopien eines Bildes sind. Ein ähnlicher Stand der Technik ist in US 5,930,369 beschrieben.
  • WO 97/34391A1 offenbart einen Wasserzeichenprozess, der gegenüber Collusions-Angriffen nachgiebig ist. Wasserzeichen werden verwendet, um ungesetzliches Kopieren von Audio, Video und anderen Medien zu verhindern, die digitalisiert werden können. Collusions-Angriffe werden verhindert, indem ein Wasserzeichen unter Nutzung von Zufälligkeit in einer spezifischen Weise aufgebaut wird.
  • D. Boneh et. al., "Collusion-Secure Fingerprinting for Digital Data", Proceedings of the Annual International Cryptology Conference, Berlin, August 27, 1995. pages 452 to 465 diskutiert ein Verfahren zur Zuordnung von Codeworten für den Zweck einer Fingerabdruck-Sicherung digitaler Daten.
  • EP 0 951 183 A2 beschreibt eine elektronische Wasserzeichen-Verarbeitungsvorrichtung.
  • Es ist die Aufgabe der Erfindung, ein verbessertes Verfahren und System zum Schützen von Objekten bereitzustellen, die digitale Daten enthalten, und ein Fingerabdruck-Wort zu detektieren.
  • Diese Aufgabe wird durch die Erfindung gemäß Anspruch in den unabhängigen Ansprüchen gelöst. Bevorzugte Ausführungsformen sind in den abhängigen Ansprüchen definiert.
  • Verfahren und Systeme zur Fingerabdruck-Sicherung digitaler Daten werden beschrieben. In der beschriebenen Ausführungsform wird eine Direktsequenz-Spreizspektrum-(DSSS)-Technologie eingesetzt. Einzigartige Fingerabdruck-Worte werden definiert, wovon jedes wenigstens eine Spreizsequenz enthält. In der beschriebenen Ausführungsform weist ein Fingerabdruck-Wort eine Vielzahl von als "Gamma-Symbole" bezeichneten Symbolen auf. Jedes Gamma-Symbol besteht aus zwei 2c-1 Blöcken, wobei c die Anzahl der Colluder darstellt, gegen welche ein Schutz erwünscht ist. Jeder Block enthält d Spreizspektrum-Chips. Die Fingerabdruck-Worte werden einer Vielzahl von Einheiten zugeordnet, an welche die geschützten Objekte mit den eingebetteten Fingerabdrücken zu verteilen sind.
  • Um die Identität einer Einheit festzustellen, die ihr einzigartiges Fingerabdruck-Wort verändert hat, wird das relative Gewicht jedes Blockes gemäß einer definierten Funktion berechnet und Blöcke, deren Gewichte einer vorbestimmten Beziehung genügen, werden "auf einem so genannten Arbeitsbereich" beschränkt. Jedes Gamma-Symbol des geänderten Fingerabdruck-Wortes wird dann bearbeitet, um einen Satz von einer oder einer Vielzahl von "Farben" zu erzeugen, die der Gegenstand einer Collusion sein könnten. Jedes Gamma-Symbol in dem Fingerabdruck-Wort für jede Einheit wird dann gegenüber einem entsprechenden erzeugten Satz bewertet, und die Einheit mit den meisten insgesamt belastenden "Farben" wird belastet.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist eine Darstellung eines Computersystems, das in Verbindung mit verschiedenen Aspekten der Erfindung verwendet werden kann.
  • 2 ist eine Tabelle, die eine Vielzahl von Werten enthält, die verschiedenen Nutzern in Verbindung mit dem Boneh-Shaw System zugeordnet werden können.
  • 3 ist eine Tabelle, die eine Vielzahl von Werten enthält, die verschiedenen Nutzern in Verbindung mit der beschriebenen Ausführungsform zugeordnet werden können.
  • 4 ist ein Flussdiagramm, das Schritte in einem Einbettungsverfahren gemäß der beschriebenen Ausführungsform beschreibt.
  • 5 ist ein Flussdiagramm, das Schritte in einem Detektionsverfahren gemäß der beschriebenen Ausführungsform beschreibt.
  • 6 ist ein Flussdiagramm, das Schritte in einem Detektionsverfahren gemäß der beschriebenen Ausführungsform beschreibt.
  • DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
  • Übersicht
  • In der beschriebenen Ausführungsform werden digitale Daten oder Objekte mit Fingerabdrücken gesichert, d.h. mit einzigartigen Fingerabdruck-Worten eingebettet. Jedes Fingerabdruck-Wort wird einer von einer Anzahl von Einheiten oder Nutzern zugeordnet, an welche das mit Fingerabdruck gesicherte Objekt zu verteilen ist. In dem beschriebenen Schema enthält jedes Fingerabdruck-Wort eine Vielzahl von Gamma-Symbolen und jedes Gamma-Symbol enthält eine Vielzahl von Blöcken. Jeder Block weist wiederum eine Spreizsequenz auf, die eine Vielzahl von Spreizsequenz-Chips besitzt.
  • Wenn ein geändertes Objekt erhalten wird, wird es zuerst bearbeitet, um die eingebetteten Spreizsequenz-Chips zu identifizieren. Sobald die Chips identifiziert sind, wird eine relative Gewichtsfunktion definiert und zum Berechnen des relativen Gewichtes für jeden Block verwendet. Die relativen Gewichtsberechnungen für jeden Block werden gemäß einer vorbestimmten Beziehung analysiert, welche bestimmt, welcher von den Blöcken auf einem vorbestimmten Arbeitsbereich "beschränkt" wird. Die beschränkten Blöcke sind diejenigen, die wahrscheinlich in dem Sinne "nicht gesehen" sind, dass die Colluder, welche zusammenarbeiteten, um das geänderte Objekt zu erzeugen, wahrscheinlich nicht in der Lage waren, diese Blöcke zu sehen, d.h., dass diese dieselben waren. Die Blöcke, die nicht beschränkt werden, stellen diejenigen Blöcke dar, die wahrscheinlich "gesehen" wurden und daher möglicherweise von den Colludern geändert wurden.
  • Nachdem die relativen Gewichte jedes Blocks berechnet und der Arbeitsbereich definiert wurde, wird jedes Gamma-Symbol des geänderten Objektes verarbeitet, um einen Satz möglicher Gamma-Symbole zu erzeugen, die der Gegenstand einer Collusion gewesen sein könnten. Die Sammlung von Sätzen definiert eine Matrix. Jedes Gamma-Symbol für den einzigartigen Fingerabdruck eines Nutzers wird dann mit dem Satz für jedes entsprechende Gamma-Symbol in der Matrix verglichen und die Anzahl der Male gezählt, mit der das Gamma-Symbol jedes Nutzers mit einem Gamma-Symbol übereinstimmt, das in einem speziellen Satz gefunden wird. Wenn alle Nutzer auf diese Weise untersucht wurden, wird der Nutzer mit dem höchsten Zählwert als ein Colluder ausgewählt, der das geänderte Objekt erzeugte.
  • Exemplarisches Computersystem
  • 1 stellt ein allgemeines Beispiel eines Computers 130 dar, der gemäß der Erfindung verwendet werden kann. Verschiedene Anzahlen von Computern, wie z.B. die Dargestellte können in dem Zusammenhang einer verteilten Computerumgebung verwendet werden.
  • Der Computer 130 enthält einen oder eine Vielzahl von Prozessoren oder Verarbeitungseinheiten 132, einen Systemspeicher 134 und einen Bus 136, der die verschiedenen Systemkomponenten einschließlich des Systemspeichers 134 mit den Prozessoren 132 verbindet. Der Bus 136 stellt eine oder eine Vielzahl von verschiedenen Typen von Busstrukturen einschließlich eines Speicherbusses oder einer Speichersteuerung, eines Peripheriebusses, eines beschleunigten Grafik-Ports und eines Prozessor- oder Lokalbusses unter Verwendung einer beliebigen von einer Vielfalt von Busarchitekturen dar. Der Systemspeicher 134 enthält einen Nur-Lese-Speicher (ROM) 138 und einen Arbeitsspeicher (RAM) 140. Ein Basiseingabe/Ausgabe-System (BIOS) 142, das die Basisroutinen enthält, die zum Übertragen von Information zwischen Elementen innerhalb des Computers 130 z.B. während des Startvorgangs beitragen, ist im ROM 138 gespeichert.
  • Der Computer 130 enthält ferner ein Festplattenlaufwerk 144 zum Lesen von und Schreiben auf einer (nicht dargestellten) Festplatte, ein Magnetplattenlaufwerk 146 zum Lesen von und Schreiben auf einer entnehmbaren magnetischen Platte 148 und ein optisches Plattenlaufwerk 150 zum Lesen von oder Schreiben auf einer entnehmbaren optischen Platte 152, wie z.B. einer CD-ROM oder einem anderen optischen Medium. Das Festplattenlaufwerk 144, Magnetplattenlaufwerk 146 und optische Plattenlaufwerk 150 sind mit dem Bus 136 über eine SCSI-Schnittstelle 154 oder irgendeine andere geeignete Schnittstelle verbunden. Die Laufwerke und deren zugeordneten Computerlesbaren Medien stellen eine nicht flüchtige Speicherung von Computer-lesbaren In struktionen, Datenstrukturen, Programmmodulen und anderen Daten für den Computer 130 bereit. Obwohl die hierin beschriebene exemplarische Umgebung ein Festplattenlaufwerk, eine entnehmbare magnetische Platte 148 und eine entnehmbare optische Platte 152 verwendet, dürfte es sich für den Fachmann auf diesem Gebiet verstehen, dass weitere Typen von Computer-lesbaren Medien, welche Daten speichern können, die für einen Computer zugänglich sind, wie z.B. Magnetkassetten, Flash-Speicherkarten, digitale Videoplatten, Arbeitsspeicher (RAMs), Nur-Lese-Speicher (ROMs) und dergleichen ebenfalls in der exemplarischen Betriebsumgebung verwendet werden können.
  • Eine Anzahl von Programmmodulen kann auf der Festplatte 144, der Magnetplatte 148, der optischen Platte 152, im ROM 138 oder RAM 140 einschließlich eines Betriebssystems 158, eines oder einer Vielzahl von Anwendungsprogrammen 160, weiterer Programmmodule 162 und Programmdaten 164 gespeichert sein. Ein Nutzer kann Befehle und Information in den Computer 130 über Eingabevorrichtungen, wie z.B. eine Tastatur 166 und eine Zeigevorrichtung 168, eingeben. Weitere (nicht dargestellte) Eingabevorrichtungen können ein Mikrofon, ein Joystick, eine Spielekonsole, Satellitenschüssel, Scanner oder dergleichen sein. Diese und weitere Eingabevorrichtungen sind mit der Verarbeitungseinheit 132 über eine Schnittstelle 170 verbunden, die mit dem Bus 136 verbunden ist. Ein Monitor 172 oder eine andere Art von Anzeigevorrichtung ist ebenfalls mit dem Bus 136 über eine Schnittstelle, wie z.B. einen Videoadapter 174, verbunden. Zusätzlich zu dem Monitor enthalten Personal Computer typischerweise weitere (nicht dargestellte) periphere Ausgabevorrichtungen, wie z.B. Lautsprecher und Drucker.
  • Der Computer 130 arbeitet normalerweise in einer vernetzten Umgebung unter Verwendung logischer Verbindungen zu einem oder einer Vielzahl von entfernt aufgestellten Computern wie z.B. einem entfernt aufgestellten Computer 176. Der entfernte aufgestellt Computer 176 kann ein weiterer Personal Computer, ein Server, ein Router, ein Netz-PC, eine Peer-Vorrichtung oder ein anderer üblicher Netzknoten sein und enthält typischerweise viele oder alle von den vorstehend in Bezug auf einen Computer 130 beschriebenen Elementen, obwohl nur eine Speichervorrichtung 178 in 1 dargestellt wurde. Die in 1 dargestellten logischen Verbindungen beinhalten ein lokales Netz (LAN) 180 und ein Weitverkehrsnetz (WAN) 182. Derartige Netzumgebungen sind in Büro-, Unternehmens-Computernetzen, Intranets und im Internet üblich.
  • Wenn er in einer LAN-Netzumgebung eingesetzt wird, ist der Computer 130 mit dem lokalen Netz 180 über eine Netzschnittstelle oder Adapter 184 verbunden. Wenn er in einer WAN-Netzumgebung eingesetzt wird, enthält der Computer 130 typischerweise einen Modem 186 oder eine andere Einrichtung zum Aufbau von Kommunikationen über das Weitbereichsnetzwerk 182, wie z.B. das Internet. Der Modem 186, welcher intern oder extern vorhanden sein kann, ist mit dem Bus 136 über eine Seriell-Port-Schnittstelle 156 verbunden. In einer vernetzten Umgebung können in Bezug auf den Personal Computer 130 oder Abschnitte davon dargestellte Programmmodule in der entfernten Speichervorrichtung gespeichert sein. Man wird erkennen, dass die Netzverbindungen exemplarisch dargestellt sind und weitere Einrichtungen zum Aufbau einer Kommunikationsverbindung zwischen den Computern verwendet werden können.
  • Im Allgemeinen werden die Datenprozessoren des Computers 130 mittels Instruktionen programmiert, die zu unterschiedlichen Zeitpunkten in den verschiedenen Computerlesbaren Speichermedien des Computers gespeichert wurden. Programme und Betriebssysteme sind typischerweise verteilt, wie z.B. auf Floppy Disk's oder CD-ROMS. Von dort werden sie in den sekundären Speicher eines Computers installiert oder geladen. Bei der Ausführung werden sie wenigstens teilweise in den primären elektronischen Speicher des Computers geladen. Die hierin beschriebene Erfindung beinhaltet diese und weitere verschiedenen Typen von Computer-lesbaren Speichermedien, wenn derartige Medien Instruktionen oder Programme zum Implementieren der nachstehend in Verbindung mit einem Mikroprozessor oder anderem Datenprozessor beschriebenen Schritte enthalten. Die Erfindung beinhaltet auch den Computer selbst, wenn er gemäß den nachstehend beschriebenen Verfahren und Techniken programmiert ist.
  • Zum Zwecke der Darstellung werden Programme und andere ausführbare Programmkomponenten, wie z.B. das Betriebssystem hierin als diskrete Blöcke dargestellt, obwohl man erkennt, dass derartige Programme und Komponenten sich zu verschiedenen Zeitpunkten in verschiedenen Speicherkomponenten des Computers befinden und durch den (die) Datenprozessoren) des Computers ausgeführt werden.
  • Das Boneh-Shaw System
  • Das Boneh-Shaw System (hierin nachstehend als "das BS-System" bezeichnet) ist ein Fingerabdrucksystem zur Verwendung mit digitalen Daten. Das BS-System versucht das Collusion-Problem bei der Fingerabdruck-Sicherung digitaler Daten zu überwinden. Aspekte des BS-Systems sind in einem Artikel mit dem Titel "Collusion-Secure Fingerprinting for Digital Data" authored by Boneh and Shaw, appearing in IEEE Transactions on Information Theory, No. 5, September 1998 beschrieben.
  • Eine von den Hauptannahmen in dem BS-System ist als die "Markierungsannahme" bekannt: dass Nutzer Markierungen nicht verändern können, wenn sie nicht erkennen können, welche Daten die Markierungen bilden. Wenn ein Objekt mit Fingerabdruck gesichert wird, wird es mit einem Fingerabdruck-Wort, das für jede Einheit oder jedem Nutzer einzigartig ist, eingebettet. Durch Collusion können Nutzer eine spezifische Markierung erkennen, wenn sie sich zwischen deren Kopien unterscheidet; ansonsten kann eine Markierung nicht detektiert werden. Dieses ist die Basis der Markierungsannahme – d.h., Nutzer können Markierungen nicht ändern, die sie nicht sehen können. Diese Markierungen werden als "ungesehene" Markierungen bezeichnet.
  • In dem BS-System wird jedem Nutzer ein einzigartiges Fingerabdruck-Wort zugeordnet. Ein Beispiel von Fingerabdruck-Wort-Zuordnungen ist in 2 für fünf Nutzer dargestellt. Jede Reihe entspricht einem Nutzer und stellt Blöcke dar, die das Fingerabdruck-Wort für diesen Nutzer bilden. Beispielsweise hat der Nutzer 1 ein Fingerabdruck-Wort "1111111111111111 ", ein Nutzer 2 ein Fingerabdruck-Wort "0000111111111111" usw. für jeden Nutzer. Die Sammlung von Fingerabdruck-Worten für alle Nutzer definiert eine Stufenstruktur, die durch eine durchgezogene Linie durch die Tabelle dargestellt ist. Diese Stufenstruktur dient der Ermittlung potentieller Colluder, wie es nachstehend ersichtlich wird.
  • Jedes Fingerabdruck-Wort ist in eine Anzahl von Blöcken unterteilt, die wiederum eine Anzahl von Bits enthalten. In diesem Beispiel gibt es vier Blöcke, die als Block 0, Block 1, Block 2 und Block 3 bezeichnet sind. Jeder von den Blöcken enthält in diesem Beispiel vier Bits. Für die Zwecke dieser Diskussion ist die Matrix, die durch die Fingerabdruck-Wortzuordnungen definiert wird, als ein "Gamma-Code" definiert. Da es sehr viele Nutzer geben kann, wird der für die Erzeugung von Fingerabdruck-Worten für alle Nutzer erforderliche Gamma-Code ziemlich groß.
  • Gemäß dem BS-System wird eine einzige Permutation der Spalten des Gamma-Codes durchgeführt, bevor ein Objekt mit einem Fingerabdruck-Wort eingebettet wird. Eine exemplarische Permutation ist in der nachstehenden Tabelle 1 dargestellt, in welcher die Reihenfolge der Blöcke verändert wird. Zur Vereinfachung erscheint die Permutation, wie sie in der vorstehenden Tabelle dargestellt wird, über allen Blöcken. In der Realität erfolgt die Permutation auf der Bitebene. Beispielsweise kann die Spalte der am weitesten links liegenden Bits auf die Bitposition 12 verschoben werden. Diese Permutation ist für alle Nutzer gleich und ist nur dem Codierer oder Einbetter und dem Decodierer bekannt:
    Figure 00100001
    Tabelle 1
  • Wenn ein Objekt mit einem Fingerabdruck gesichert wird, wird es mit einem permutierten Fingerabdruck-Wort eingebettet, das einem der Nutzer entspricht. Für die Zwecke der Diskussion sind ein "Objekt" irgendwelche beliebige digitale Daten, die zur Fingerabdruck-Sicherung geeignet sind. Beispiele derartiger Objekte umfassen, ohne Einschränkung, Dokumente, Musik und Video. Wenn eine illegale Kopie eines geschützten Objektes hergestellt wird, wird ein Nutzer typischerweise versuchen, dessen Fingerabdruck-Wort zu verändern, um so eine Erkennung zu vermeiden. Das BS-System ist darauf ausgelegt, mit einem wünschenswerten Grad an Sicherheit die Identität von einem oder einer Vielzahl von Nutzern festzustellen, die bei der Änderung des geschützten Objektes zusammengearbeitet haben können. Dieses erfolgt durch Überprüfung des geänderten Objektes.
  • In der Diskussion, die folgt, wird das geänderte Objekt als x dargestellt, wobei x ein Binärwort der Länge u ist und I = {i1...ir} ein Untersatz von Bitstellen von x, d.h., I ⊆ {1..} ist. Die Schreibweise x↓I bezeichnet die Beschränkung des Wortes x auf die Bitstellen von I. W(x) möge das Hamming-Gewicht des Strings x bezeichnen. Das Hamming-Gewicht eines binären Strings von 1's und 0's ist die Anzahl von 1's in dem String. Ebenso könnten wir, wenn der String aus +1's und –1's besteht, definieren, dass die Anzahl der +1's in dem String das Gewicht ist.
  • Der erste Algorithmus
  • Das BS-System verwendet einen ersten Algorithmus, der darauf ausgerichtet ist, einen Untersatz einer Koalition zu finden, die ein geändertes Objekt x erzeugt haben. Somit ist an diesem Punkt ein geändertes Objekt durch zwei oder mehr Nutzer erzeugt worden und es wird gerade ein Versuch gemacht einen Untersatz von Nutzern zu identifizieren, die wahrscheinlich das Objekt x erzeugt haben. Bevor der Algorithmus beschrieben wird, der einen Untersatz von wahrscheinlichen Nutzerkandidaten erzeugt, werde folgendes betrachtet. Wenn ein geändertes Objekt x erhalten wird, enthält es unvermeidlich eine bestimmte Form eines Fingerabdruck-Wortes. Man erinnere sich, dass jedem Nutzer ein einzigartiges permutiertes Fingerabdruck-Wort zugeordnet ist, wovon ein Beispiel in der vorstehenden Tabelle 1 angegeben ist. Da jedem Nutzer ein einzigartiges Fingerabdruck-Wort zugeordnet ist, sind bestimmte Aspekte des Fingerabdruck-Wortes für jeden Nutzer einzigartig. Beispielsweise besteht ein einzigartiger Aspekt des Fingerabdruck-Wortes des Nutzers 1 in 2 darin, dass der Block 0 nur 1's enthält. Jeder von den anderen Nutzern hat nur 0's in seinem entsprechenden Block 0. Somit wird, wenn Nutzer außer dem Nutzer 1 Colluder sind, dann gemäß der Markierungsannahme (welche besagt, dass Nutzer keine "nicht gesehenen" Bits ändern können) keines von den Bits in Block 0 modifiziert. Demzufolge sind alle von den Bits in Block 0 gleich 0 und der Nutzer 1 kann als ein Colluder ausgeschieden werden. Andererseits kann, wenn irgendeines von den Bits in Block 0 des geänderten Objektes x als 1 ermittelt wird, dann der Nutzer 1 als ein Colluder beschuldigt werden. Wiederum beruht dieses darauf, dass die Bits des Blocks 0 nur durch eine Collusion "gesehen" werden können, die den Nutzer 1 beinhaltet, dass sie sich von den Bits in Block 0 für alle von den anderen Nutzern unterscheiden. Somit achtet der erste Algorithmus einfach auf das Fingerabdruck-Wort in dem geänderten Objekt und versucht mit einem gewünschten Grad an Sicherheit zu identifizieren, welche Nutzer mögliche Kandidaten für eine Beschuldigung sind, vorausgesetzt, dass bestimmte Bits oder Blöcke modifiziert wurden. Er führt dieses durch eine Betrachtung des Hamming-Gewichtes spezieller Blöcke aus, die einzigartig von speziellen Nutzern gesehen oder gesehen werden können.
  • Als ein konkreteres Beispiel werde angenommen, dass die Nutzer 3 und 4 zusammenarbeiten, um ein Fingerabdruck-Wort auf ihren geschützten Objekten zu ändern. Die Nutzer 3 und 4 werden somit ihre permutierten Fingerabdruck-Worte vergleichen. Aus der vorstehenden Tabelle ist dieser Vergleich wie folgt:
    Figure 00120001
  • Wenn die Nutzer 3 und 4 ihre Fingerabdruck-Worte vergleichen sind die in den Blöcken 1, 3 und 0 erschienenden Bits für die Nutzer "nicht zu sehen". Dieses ist so, da sie dieselben Werte enthalten. Somit können gemäß der Markierungsannahme die Nutzer nicht die Werte von einem dieser Bits an diesen Stellen ändern. Die Bits, die in Block zwei erscheinen sind jedoch zwischen den Nutzern unterschiedlich, demzufolge erkennen die Nutzer 2 und 3, aufgrund dieser Differenz, dass ein Fingerabdruck im Block 2 vorliegen muss. Indem sie dieses erkennen können sie den Fingerabdruck des Blockes 2 so modifizieren, dass sie eine Detektion vermeiden. In diesem Beispiel können die entsprechenden Fingerabdruck-Worte aussehen wie:
    Figure 00120002
  • Hier änderten sich die zwei Bits in Block 2 von "1" auf "0". Man beachte, dass sie nicht alle von den Bits des Blockes 2 ändern, weil dann das Ergebnis des Fingerabdruck-Wortes das des Nutzers 4 wäre und zu einer Beschuldigung des Nutzers 4 als ein Col luder führen würde. Wenn die Blöcke permutiert werden, sieht der sich ergebende Gamma-Code aus wie:
    Figure 00130001
  • Eine Sache, die der Leser erkennen wird, besteht darin, dass immer noch ein bestimmter Anschein einer Stufenfunktion vorliegt, die für den Nutzer 3 durch die Blöcke 1 und 2 definiert ist. Diese Stufenfunktion ist, wie vorstehend erwähnt für den Nutzer 3 an der Stelle der Blöcke 1 und 2 einzigartig. Das heißt, alle anderen Nutzer, entweder über oder unter dem Nutzer 3 haben jeweils nur 1's oder nur 0's ihren Blöcken 1 und 2.
  • Was der erste Algorithmus macht ist, dass er nach der Umkehrung der Permutierung der Spalten auf diese einzigartige Stufenfunktion oder gewissen Anschein davon für andere Nutzer als die ersten und letzten Nutzer achtet. Für die ersten und letzten Nutzer achtet der Algorithmus einfach auf die einzigartigen Bits in den Blöcken, die für die ersten und letzten Nutzer einzigartig sind. Wenn eine Stufenfunktion (oder einzigartige Bits) lokalisiert werden, kann ein entsprechender Nutzer beschuldigt werden. In diesem Beispiel kann, da die Stufenfunktion noch für den Nutzer 3 existiert, der Nutzer 3 beschuldigt werden. Dieses kann mathematisch wie folgt dargestellt werden (ε ist die Beschuldigungs-Fehlerwahrscheinlichkeit):
  • Algorithmus 1
    • 1. If W(x↓Block 1) > 0, wird dann der Nutzer 1 beschuldigt.
    • 2. If W(x↓Block (n-1)) < d, wird dann der Nutzer n beschuldigt.
    • 3. For all s = 2 to n-1 do: Let Rs = (Bs-1∪Bs,(d.h., die Bitlagen von diesen zwei benachbarten Blöcken) Let K = W(x↓Rs). If W(x↓Block (s-1)) < K/2 – ((K/2)log(2n/ε))1/2, dann wird der Nutzer "s" beschuldigt.
  • Der zweite Algorithmus
  • Wie vorstehend erwähnt kann die Anzahl potentieller Nutzer eines gegebenen geschützten Objektes ziemlich groß sein. Somit führt die Verwendung des vorstehend diskutierten Gamma-Code-Lösungsansatzes demzufolge zu Fingerabdruck-Worten, die sehr groß sind. Der zweite Algorithmus des BS-Systems ist auf die Beschuldigung eines Nutzers als Colluder gerichtet, ohne dass ein großer Gamma-Code verwendet werden muss.
  • Wenn dieser Algorithmus verwendet wird, soll c die Anzahl von Colludern vorstellen, gegen die Verteidigung gewünscht ist. Ein Gamma-Code wird dann so gewählt, dass er 2c Reihen enthält. In diesem System wird jede Reihe auch als eine "Farbe" bezeichnet. Somit wird, wenn beispielsweise eine Verteidigung gegen 20 Colluder gewünscht wird, dann ein Gamma-Code gewählt, der 40 Reihen oder Farben aufweist. Jede Reihe oder Farbe in dem Gamma-Code weist eine Vielzahl von Blöcken auf, die ein Gamma-Symbol ausbilden. Jede Farbe oder Gamma-Symbol wird als ein Buchstabe in einem Alphabet verwendet, das durch den Gamma-Code definiert ist. Die Buchstaben in dem Alphabet werden dann dazu genutzt, um ein einzigartiges Fingerabdruck-Wort für jeden von den Nutzern des geschützten Projektes zu erzeugen. Das heißt, das Fingerabdruck-Wort enthält L Farben und Gamma-Symbole, wobei L eine Zahl ist, die so gewählt ist, dass sie groß genug ist, dass bei einer gegebenen Anzahl von Nutzern die den Fingerabdruck-Worten zuzuordnen sind, jedes als ein einzigartiges Fingerabdruck-Wort zugewiesen wird.
  • Als Beispiel werde Nachstehendes betrachtet. Man nehme an, dass eine Verteidigung gegen drei Colludern pro Zeitpunkt gewünscht ist. Somit wird ein Gamma-Code so definiert, dass er 2 (3) = 6 Farben oder Gamma-Symbole enthält. Dieses ist in der nachstehenden Tabelle 2 dargestellt.
    Figure 00150001
    Tabelle 2
  • Man beachte ferner in diesem Beispiel, dass in dem Universum von Nutzern die Anzahl von Gamma-Symbolen, die erforderlich ist, dass jedem Nutzer ein einzigartiges Fingerabdruck-Wort zugewiesen wird, gleich 3 ist, dass heißt L = 3 ist. Somit kann dem Nutzer 1 ein Fingerabdruck-Wort (Gamma4Gamma5Gamma3) zugewiesen werden, dem Nutzer 2 ein einzigartiges Fingerabdruck-Wort (Gamma3, Gamma5, Gamma2), und so weiter für alle Nutzer zugewiesen werden. Alle von den geschützten Objekten werden mit einer permutierten Form von einem der Fingerabdruck-Worte eingebettet. Nun ergibt, wenn ein geändertes Objekt gefunden wird, die Anwendung der Prinzipien des Algorithmus 1 auf jedes der Gamma-Symbole in dem geänderten Objekt einen Satz von Farben oder Gamma-Symbolen, die wahrscheinlich der Gegenstand einer Collusion sind. Somit gibt es in diesem Beispiel drei Gamma-Symbole, die das geänderte Fingerabdruck-Wort enthalten. Der Algorithmus 1 wird auf jedes von den drei Gamma-Symbolen angewendet. Das Ergebnis dieser Berechnung ergibt einen Satz von Farben oder Gamma-Symbolen für jedes Gamma-Symbol des geänderten Fingerabdruck-Wortes. Somit kann für das erste Gamma-Symbol des geänderten Fingerabdruck-Wortes der Satz von Farben (1, 2, 3), das heißt Gamma1Gamma2Gamma3 erzeugt werden. Für das zweite Gamma-Symbol des geänderten Fingerabdruck-Wortes kann der Satz von Farben (2, 4) das heißt Gamma2Gamma4 erzeugt werden. Für das dritte Gamma-Symbol des geänderten Fingerabdruck-Wortes könnte der Satz der Farben 3, 6 (das heißt Gamma3Gamma6 erzeugt werden. Diese Ergebnisse sind in der nachstehenden Tabelle zusammengefasst:
    Figure 00160001
  • Aus der Sammlung möglicher Farbsätze baut das BS-System ein Wort oder einen Vektor auf, indem es zufällig eine und nur eine Farbe aus jedem Farbsatz auswählt. In diesem Beispiel könnte ein Wort durch Auswählen der Farbe 1 aus dem dem ersten Gamma-Symbol zugeordneten Farbsatz, der Farbe 4 aus dem dem zweiten Gamma-Symbol zugeordneten Farbsatz und der Farbe 6 aus dem dem dritten Gamma-Symbol zugeordneten Farbsatz ausgewählt werden. Somit ist das Wort, das aufgebaut wird wie folgt: Gamma1Gamma4Gamma6. Nun wird der Nutzer mit einem Fingerabdruck-Wort, das diesem Wort am nächsten am nächsten kommt, beschuldigt. Detailliertere Information bezüglich des BS-Systems und seiner Beweise kann in dem vorstehend genannten Artikel gefunden werden. Der Algorithmus 2 wird nachstehend zusammengefasst.
  • Algorithmus 2
    • 1. Wende Algorithmus 1 auf jedes von den L Gamma-Symbolen an. Für jede von den L Komponenten wähle beliebig eines von den Ergebnissen des Algorithmus 1. Setze yi auf dieses gewählte Ergebnis (yi ist eine ganze Zahl in [1n]). Bilde das Wort y = (y1...yL).
    • 2. Suche das Fingerabdruck-Wort, das y am nächsten kommt und beschuldige entsprechenden Nutzer oder Einheit.
  • In dem BS-System ist die Länge in Bits des Fingerabdruck-Wortes oder der Sequenz durch die nachstehende Gleichung gegeben: O(c41og(N/εlog(1/ε)), wobei "c" die Größe der Collusion, "N" die Anzahl der Nutzer und ε die Beschuldigungsfehlerwahrscheinlichkeit ist. Es werde angenommen, dass es gewünscht ist, ein 2 Stunden langes Objekt in einem System zu schützen, das in der Lage ist, robust 1 Bit/1 s zu verbergen. Die Anzahl von Colluder, gegen die ein Schutz unter der Annahme von N = 106 und ε = 10-3 erreicht werden kann ist gleich c = 4. Der Schutz gegen vier Colluder, geht, obwohl es ein Schritt in die richtige Richtung ist, nicht weit genug, um sich gegen die Möglichkeit zu verteidigen, dass eine größere Anzahl von Nutzern zusammenkommen und zusammenarbeiten könnte.
  • Erfindungsgemäße Verfahren und Systemübersicht
  • Gemäß den erfindungsgemäßen Verfahren und Systemen werden Aspekte des BS-Systems in Verbindung mit der Verwendung einer Spreizspektrumtechnologie genutzt. Eine Spreizspektrumsequenz wird individuellen Blöcken individueller Fingerabdruck-Worte zugeordnet. Die Spreizspektrumsequenz nutzt eine als "Chip" bezeichnete Datenstruktur, die in dem geschützten Objekt eingebettet ist. Die Verwendung von Spreizsequenzen in dem Einbettungsprozess ermöglicht eine Neudefinition des relativen Gewichtes jedes Blockes sowie eine Neudefinition eines (nachstehend definierten) Arbeitsbereiches. Die neuen Gewichte und der Arbeitsbereich werden in Verbindung mit einer Analyse verwendet, welcher die Robustheit des Schutzes gegenüber den herkömmlichen Verfahren und Systemen erhöht.
  • Spreizspektrum
  • Vor der Diskussion der Details der erfindungsgemäßen Verfahren und Systeme erfolgt etwas Grundlageninformation bezüglich der Spreizspektrumtechnologie. Bezüglich zusätzlicher Grundlageninformation über Spreizspektrumtechnologie sei der Leser auf einen Text mit dem Titel "Spread Spectrum Communications Handbook" authored by Simon, Omura, Scholtz and Levitt, verwiesen.
  • Ein Objekt, das geschützt werden soll, kann als eine Vektor m = (m1,...mu) dargestellt werden. Dieser Vektor kann Pixel in einem Film oder irgendeinem anderen Typ geeigneten digitalen Inhalts, der geschützt werden soll, repräsentieren. Die Komponenten dieses Vektors werden über eine etwas große Alphabetgröße, mj könnte z.B. ein 8-Bit Byte sein, das einen wert zwischen –128 bis +128 annehmen kann, betrachtet werden. Spreizspektrum-Chips x = (xj,...xu) werden verwendet, die Werte haben, die in denselben Einheiten wie die einzelnen Komponenten des geschützten Objektvektors gemessen werden, welche aber Werte haben, die im Vergleich zu den Werten klein sind, die die individuellen Vektorkomponenten haben können, beispielsweise haben die Chips Werte, die in {+1, –1} liegen. D.h., Werte von x werden so gewählt, dass sie klein genug sind, dass sie, wenn sie zu m hinzuaddiert werden, schwierig, wenn nicht unmöglich zu detektieren sind.
  • Eine Spreizsequenz kann dazu genutzt werden, darin Symbole einzubetten, die innerhalb {+1, –1} liegen. Diese eingebetteten Datensymbole unterscheiden sich von den individuellen Werten {+1, –1}, die ein Spreizspektrum-Chip haben kann, und daher wird die Schreibweise {+D, –D} verwendet, um die Datensymbole {+1, –1} darzustellen, um so eine Verwirrung zu vermeiden. Wenn ein Datensymbol +D oder –D einzubetten ist, wird der Vektor m für das Objekt mit den geeigneten Spreizspektrum-Chips kombiniert. Um ein +D einzubetten, addieren wir die Spreizsequenz so wie sie ist, während wir, um –D einzubetten, wir die Chips umändern (d.h., das Einser-Komplement der Sequenz) der Spreizsequenz bilden, bevor wir diese addieren. Somit berechnen wir, um +D einzubetten einen neuen Vektor d wie folgt: (∀j)[bj = mj + xj], und um –d einzubetten berechnen wir (∀j)[bj = mj – xj]. Wenn ein derartiges eingebettetes Objekt detektiert werden soll, kann der Vektor b mit dem Vektor x multipliziert und über alle Vektorkomponenten summiert werden. Die Summierung der sich ergebenden Vektorkomponenten zeigt an, ob ein Datensymbol +D oder –D eingebettet war, wie der Fachmann auf diesem Gebiet erkennen wird.
  • Einbettung
  • In der Diskussion, die folgt, werden vier spezifische Typen von Datenstrukturen definiert und in dem Einbettungs/Detektions-Prozess verwendet, dass heißt Chips, Blöcke, Gamma-Symbole und Fingerabdruck-Worte. Während sich die letzteren drei Datenstrukturen dieselben Namen wie die vorstehend in Verbindung mit dem BS-System diskutierten teilen, machen deren Definitionen diese vollständig unterschiedlich und stellen eine erhebliche Abweichung von dem BS-System dar, wie es nachstehend ersichtlich wird.
  • Ein "Chip" ist die kleinste von den Datenstrukturen und bezieht sich auf einen Spreizspektrum-Chip. Spreizspektrum-Chips werden als x = (x1,...xu) bezeichnet und haben Werte {+1, –1}. Wie in der vorstehenden Diskussion über die Spreizspektrumtechnologie befinden sich die Datensymbole, die durch die Verwendung von Spreizspektrum-Chips eingebettet werden in {+D, –D}. Ein "Block" besteht aus d Chips, wobei d einen Parame ter darstellt, der die Fehlerrate steuert. Die Blöcke werden als C1...Ck bezeichnet, wobei ein individueller Block i als Ci = (ci1...cid) definiert ist, wobei ci1...cid die einzelnen Spreizspektrum-Chips darstellen. Das Einser-Komplement des Blockes Ci wird mit C'i bezeichnet. Ein "Gamma-Symbol" weist eine Vielzahl von Blöcken auf. In der beschriebenen Ausführungsform besteht ein Gamma-Symbol aus 2c-1 Blöcken, wobei c die Anzahl von Colludern darstellt, gegen die eine Verteidigung gewünscht ist. Die letzte von den Datenstrukturen ist das Fingerabdruck-Wort, welches aus L Gammasymbolen besteht, wobei L eine spezielle Anzahl darstellt, die gewählt wird, um sicherzustellen, dass alle Nutzer in dem relevanten Nutzeruniversum einzigartige Fingerabdruck-Worte erhalten.
  • Jedem Nutzer wird zuerst ein einzigartiges Fingerabdruck-Wort zugewiesen. In der beschriebenen Ausführungsform enthalten die Fingerabdruck-Worte eine Spreizspektrumsequenz statt der einzelnen Bits wie in dem BS-System. Insbesondere wird in der beschriebenen Ausführungsform jeder Block Bi des Gamma-Codes in dem BS-System durch eine geeignete Spreizsequenz ersetzt. In diesem Beispiel, werden Blöcke, die mit 1d in dem BS-System angenommen werden durch Ci ersetzt, und Blöcke, die als 0d angenommen werden durch das Einser-Komplement C'i ersetzt. Ein exemplarischer Gammacode gemäß dieser Ausführungsform ist in 3 dargestellt. Sobald den Nutzern ihre Fingerabdruck-Worte zugeordnet sind, werden die Spalten des Gamma-Codes (auf Chipebene) wie vorstehend diskutiert permutiert. Ein Objekt kann nun mit den Fingerabdruck-Worten, die durch den permutierten Gamma-Code definiert sind, mit einem Fingerabdruck versehen werden.
  • 4 stellt ein Flussdiagramm dar, das Schritte in einem Einbettungsverfahren gemäß der beschriebenen Ausführungsform beschreibt. Der Schritt 100 baut oder definiert einen geeigneten Gamma-Code auf, wovon ein exemplarischer in 3 dargestellt ist. Der Schritt 102 permutiert die Spalten des Gamma-Codes in einer Weise, die nur dem Einbetter und dem Decodierer, der schließlich die Fingerabdrücke decodiert bekannt ist. Die Permutation der Spalten kann stattfinden, indem zufällig die Chips für alle Nutzer umgeordnet werden (dieselbe Permutation für alle Nutzer). Die Permutation ist für alle Nutzer dieselbe. Ein Beispiel einer geeigneten Permutation war vorstehend angegeben. Sobald die Spalten permutiert worden sind, bettet der Schritt 104 ein einzigartiges Fingerabdruck-Wort in jedes von einer Anzahl unterschiedlicher Objekte ein, die geschützt werden sollen. Ein Beispiel eines Einbettungsprozesses wird nachstehend gegeben. Nach dem Einbettungsprozess können die geschützten Objekte verteilt werden.
  • Man nehme an, dass ein Vektor m = (m1,...mu) definiert ist, der ein zu schützendes Objekt oder Signal repräsentiert. Eine Spreizsequenz x = (x1,...xu) ist als eine eingebettete Spreizsequenz zu verwenden. Hier ist (∀j)[Xj ∊ {+1, –1}], und das Signal ist über ein großes Alphabet verteilt, dessen Größe für diese Diskussion nicht wichtig ist. Wenn das Objekt mit einem Datensymbol +D (oder –D) eingebettet ist, wird das resultierende markierte Signal als b = {b1...bk} bezeichnet, wobei (∀j)[bj = mj ± xj] ist.
  • Es werde auch angenommen, dass ein Gegner versucht, das geschützte Objektsignal durch Hinzufügen eines Rauschelementes Ji zu jeder Komponente zu stören, wobei Ji sich auf demselben Energiepegel wie die Spreizsequenz befindet (das heißt Ij ∊ {+1, –1}, wobei dieses jedoch zu dem Spreizspektrum unkorreliert ist. Nach dem Störangriff kann das Signal als a = (a1...au) dargestellt werden, wobei (∀j)[aj = mj ± xj + J] ist. Demzufolge stellt der Vektor a das geschützte Objekt dar, wie es von dem Detektor gesehen wird (das heißt, nach der Einbettung und nach Störangriffen).
  • Chip-Detektion
  • Ein erster Schritt in dem Detektionsprozess, wenn ein Objekt erhalten wird, ist die Rückgängigmachung der Permutation der Spalten, die zuvor permutiert wurden. Man erinnere sich, dass nachdem die Fingerabdruck-Worte zugewiesen sind aber bevor ein Objekt eingebettet wird, die Spalten (auf Chipebene) des Gamma-Codes zufällig permutiert werden. Sowohl der Einbetter als auch der Detektor kennen die Zufallspermutation. Nachdem die Permutation der Spalten rückgängig gemacht ist, werden die Chips in dem empfangenen Objekt detektiert. In diesem Beispiel wird das empfangene Objekt als a = (a1...au) dargestellt und die Chips werden detektiert, indem das empfangene Objekt mit einem originalen erwarteten Objekt m = (m1...mu) verglichen wird. Jede Komponente (zum Beispiel das Pixel ai) wird mit der erwarteten Komponente ohne Fingerabdruck zum Beispiel dem Pixel mi verglichen. Die nachstehende Tabelle listet die Vergleiche und deren Ergebnisse auf:
    Figure 00210001
  • Wir verwenden z'i um den detektierte Chip i zu kennzeichnen. Diese kann sich von dem ursprünglichen Chip xi aufgrund von Angriffen unterscheiden.
  • Nachdem nun die einzelnen Chips identifiziert sind, wird nun die Aufmerksamkeit auf die Detektion eines Nutzers gerichtet, der wahrscheinlich ein Colluder ist.
  • Beschränkung
  • In der beschriebenen Ausführungsform weist jeder Block in einem Fingerabdruck-Wort d Chips auf. Diese Chips werden wie vorstehend beschrieben vorab detektiert. Wenn die Chips detektiert worden sind, werden die Blöcke, die das Fingerabdruck-Wort enthalten, zu Beginn in einem Versuch, zwischen so genannten "gesehenen" und "ungesehenen" Blöcken zu unterscheiden. Man erinnere sich, dass die "gesehenen" Blöcke diejenigen Blöcke sind, die von zwei oder mehr Nutzern oder Einheiten aufgrund ihrer Unterschiede festgestellt werden können. Andererseits sind "ungesehene" Blöcke diejenigen Blöcke, die von den Nutzern aufgrund ihrer Identität nicht "gesehen" werden können. Somit unterscheidet die Beschränkung der Blöcke gemäß nachstehender Beschreibung zwischen den "gesehenen" und "ungesehenen" Blöcken.
  • In der Diskussion, die folgt, befasst sich die Analyse mit Blöcken, Gamma-Symbolen und Fehlerkorrekturcodes über einem Alphabet, dessen Symbole die Gamma-Symbole sind. In einem ersten Schritt wird eine Funktion definiert, aus welcher ein relatives Gewicht berechnet werden kann. Die Funktion ist wie folgt definiert:
    Let x ∊ {1, –1} and y ∊ {0, 1, –1}. Definiere die Funktion
    f(x, y) = 1 if x not equal to y, und y not equal to
    0 Otherwise.
  • Let X = (x1,...,xd], where xi ∊ {1, –1} and Y = (y1,...,yd], where yi ∊ {1, –1, 0}. Das Gewicht von Y in Bezug zu X ist w(Y, Y) – was die Summe von 1 = 1 bis d von f(yi, xi) ist. Wenn der Bezugspunkt X aus dem Kontext bekannt ist, lassen wir ihn weg und schreiben w(Y).
  • Es folgt daraus, dass wenn ein Originalblock i einen Wert C'i ("leichte Blöcke") hat, dann dessen Gewicht in Bezug auf C'i Null ist. Dieses gilt selbst nach einem Störversuch. Andererseits hat, wenn der Originalblock C'i ("schwerer Block") war, dann dessen Gewicht in Bezug auf C'i nach einer maximalen Störung eine Mittelwert von d/2 mit einer Abweichung O((d)1/2). Dieses bedeutet, dass der Arbeitsbereich etwa d/2 ist.
  • Wenn die vorstehende Funktion definiert ist, können nun die Gewichtzuordnungs- und Beschränkungsschritte stattfinden. In der beschriebenen Ausführungsform findet dieses statt, indem als Eingangsgröße die als Blöcke von d Chips angeordneten detektierten Chips zi jeweils (B1, B2...) empfangen werden. Die Ausgangsgröße der Gewichtszuordnungs- und Beschränkungsschritte ist das relative Gewicht jedes Blocks, wobei Blöcke. die wahrscheinlich "ungesehen" sind, auf ihren Arbeitsbereich beschränkt sind. Dieses kann mathematisch wie folgt dargestellt werden:
    • Eingangsgröße: Detektierte Chips z = (z1, z2,...), angeordnet als Blöcke von d Chips, jeder als [B1, B2,...]
    • Ausgangsgröße: Für jeden Block Bi ist die Ausgangsgröße ein relatives Gewicht, wi = w(Bi, C'i), wobei Blöcke. die wahrscheinlich "ungesehen" sind, auf ihren Arbeitsbereich beschränkt sind.
    • Verfahren: Definiere μ = d/2 und δ sei ein Parameter, der unmittelbar nachstehend definiert wird. Für jeden Block Bi { Ifw(Bi) > (1 – δ)μ then set wi = (1 – δ)μ; Else, wi = = set w(Bi, C'i); }
  • Parameterwahl:
  • Für N Nutzer wählen wie unter der Annahme, dass eine Verteidigung gegen eine Collusion der Größe c mit einer Fehlerwahrscheinlichkeit ε gewünscht ist, dann:
    • • Anzahl von Gamma-Symbolen für ein Fingerabdruck-Wort – L = 2cln(2N/ε),
    • • Blockgröße = d = 8c2ln(8cL/ε).
    • • f = 2ln(4c2ln(2N/ε)/ε),
    • • δ = f/√1(d/2),
    • • μ = d/2.
  • 5 stellt ein Flussdiagramm dar, das Schritte in einer Gewichtszuordnungs- und Beschränkungsverfahren gemäß der beschriebenen Ausführungsform darstellt, wovon ein Beispiel vorstehend angegeben ist. Der Schritt 200 erhält den ersten Block, der in einem Fingerabdruck-Wort vorhanden ist. Der Schritt 202 berechnet das Gewicht des ersten Blockes. In der beschriebenen Ausführungsform wird das Gewicht eines gegebenen Blockes wie vorstehend dargestellt berechnet. Der Schritt 204 ermittelt, ob der Block wahrscheinlich ein "ungesehener" Block ist, und falls ja, beschränkt der Schritt 206 das Blockgewicht auf seinen Arbeitsbereichswert. Wenn der Block wahrscheinlich "gesehen" ist, wird dessen Gewicht wie vorstehend berechnet (Schritt 208). Der Schritt 210 ermittelt, ob noch zusätzliche Blöcke vorhanden sind. Falls ja, verzweigt das Verfahren zurück zu dem Schritt 202.
  • Detektion eines Untersatzes der ein geändertes Objekt x erzeugte
  • Nachdem die Gewichte für die verschiedenen Blöcke des geänderten Fingerabdruck-Wortes berechnet worden sind, und nachdem der Arbeitsbereich gemäß vorstehender Beschreibung definiert wurde, richtet sich die Aufmerksamkeit nun auf die Feststellung eines Untersatzes der Koalition, die ein geändertes Objekt x erzeugte. Das Verfahren, das zur Feststellung einer derartigen Koalition eingesetzt wird, ist in mancherlei Hinsicht dem Verfahren des vorstehend diskutierten BS-Systems ähnlich. Hauptunterschiede liegen in der Verwendung der neu definierten Gewichte für die Blöcke sowie in der Verwendung des neuen Arbeitsbereichs.
  • Algorithmus 3
  • Unter der Voraussetzung x ∊ {0, 1}dk, k = 2c – 1 werde ein Untersatz der Koalition gesucht, die x erzeugte (innerhalb eines Gamma-Codes sind Blöcke mit 0,..., k-1, und Farben mit 0,...,k nummeriert).
    • 1. If w0 > 0, dann Ausgangsgröße "Farbe 0 ist schuldig".
    • 2. If wk-1 < d/2 – (fd)1/2, dann Ausgangsgröße "Farbe k ist schuldig".
    • 3. For all s = 2 to k –2 do:
    • a. Let K = (x|Rs) (hier ist der Bezugspunkt für die Gewichtsberechnung (C's-1, C's)).
    • b. If ws-1 < K/2 – ((K/2)ln(2n/ε))1/2, dann Ausgangsgröße "Farbe s ist schuldig"
  • Der vorstehend diskutierte Lösungsweg ist insbesondere in dem Kontext einer Verwendung eines Gamma-Codes mit einer reduzierten Größe geeignet. Man erinnere sich, dass in dem BS-System ein Gamma-Code mit einer reduzierten Größe definiert wurde, wenn die Größe des Gamma-Codes im Hinblick auf die Anzahl der Colluder betrachtet wurde, gegen die eine Verteidigung gewünscht ist. In diesem Beispiel definierte jede neue Reihe oder Farbe in dem Gamma-Code ein Gamma-Symbol und eine Vielzahl von Gamma-Symbolen wurden verwendet, um die Fingerabdruck-Worte aller Nutzer aufzubauen. Jedes von den Fingerabdruck-Worten war unterschiedlich und einzigartig. Die permutierten Formen der Fingerabdruck-Worte werden für die Einbettung in einem zu schützenden Projekt verwendet. Jedes von den Fingerabdruck-Worten ergab, wenn die Permutation rückgängig gemacht und es gemäß dem zweiten Algorithmus des BS-Systems analysiert wurde, einen Nutzer, der wahrscheinlich einen Colluder darstellte.
  • In der vorstehend beschriebenen Ausführungsform wird ebenfalls ein Gamma-Code mit reduzierter Größe definiert und enthält eine Vielzahl von Farben oder Reihen. Die Anzahl der Farben oder Reihen ist eine Funktion der Anzahl von Colludern c, gegen die eine Verteidigung gewünscht ist. D.h., die Anzahl der Farben oder Reihen ist in diesem Beispiel als 2c definiert. Jede Farbe oder Reihe definiert ein Gamma-Symbol. Die Gamma-Symbole, die hier definiert werden, sind jedoch sehr unterschiedlich zu den Gamma-Symbolen, die in dem BS-System definiert sind. Insbesondere enthalten die derzeit beschriebenen Gamma-Symbole, die den Gamma-Code ausbilden, Spreizsequenzen statt einer Sammlung von Bits. In dem speziell diskutierten Beispiel besteht ein Fingerabdruck-Wort aus L Gamma-Symbolen, wobei ein Gamma-Symbol aus 2c-1 Blöcken besteht. Ein Block besteht wiederum aus d Chips, wobei ein Chip ein Spreizspektrum-Chip ist. Mit dieser Beziehung ist die Größe eines Vektors, der das geschützte Objekt repräsentiert, 2dcL.
  • Ein exemplarischer Gamma-Code mit reduzierter Größe ist in der unmittelbar nachstehenden Tabelle dargestellt.
  • Figure 00250001
  • Hier gibt es sechs Farben, die den Gamma-Code definieren. Diese individuellen Farben werden als das Alphabet benutzt, um Fingerabdruck-Worte für alle Nutzer in dem speziellen Nutzeruniversum aufzubauen. Nachdem der Gamma-Code definiert ist, wird jedem Nutzer oder jeder Einheit ein Fingerabdruck-Wort mit L von diesen Gamma-Symbolen zugeordnet, wobei L eine Anzahl ist, die so gewählt ist, dass keine zwei Nutzer oder Einheiten dasselbe Fingerabdruck-Wort haben. Dieses steuert auch die Fehlerwahrscheinlichkeit. Bei N-Nutzern und einer Fehlerwahrscheinlichkeit ε benötigen wir L = 2c × log(2N/ε). Dieses Fingerabdruck-Wort dient zu einer späteren Identifizierung eines Nutzers oder einer Einheit, wenn ein geändertes Objekt erhalten wird. Nachdem die Fingerabdruck-Worte zugeordnet sind, werden die Spalten zufällig in einer Weise permutiert, die sowohl dem Einbetter als auch dem Detektor bekannt ist. Nach der Permutation der Spalten werden individuelle Objekte, die geschützt werden sollen, mit einem permutierten Fingerabdruck-Wort eingebettet, das dazu dient, einen zugeordneten Nutzer oder eine Einheit eindeutig zu identifizieren.
  • Man erinnere sich, dass die Art, in der geschützte Objekte typischerweise verändert werden, darin besteht, dass unterschiedliche Einheiten oder Nutzer zusammenkommen und ihre geschützten Objekte vergleichen. Das Konzept von "gesehenen" und "ungese henen" Blöcken wurde vorstehend diskutiert und bezieht sich jeweils auf Blöcke, die Unterschiede haben, die durch unterschiedliche Colluder festgestellt werden können, und Blöcke, die keine Unterschiede haben, und die von den Colludern nicht gesehen werden können. Gemäß der vorstehend diskutierten Markierungsannahme wird logischerweise angenommen, dass Colluder nur die Blöcke manipulieren oder anpassen, die sie sehen können. Demzufolge werden "ungesehene" Blöcke nicht durch die Colluder manipuliert oder angepasst. Somit hat, wenn ein geändertes Objekt erhalten wird, dieses ein Fingerabdruck-Wort, das von zwei oder mehr Colludern manipuliert wurde. Es kann auch der Fall sein, dass eine Zufallsstörung auf den ungesehenen Bits auftritt.
  • Detektion einer Einheit, die wahrscheinlich einen Colluder darstellt
  • Das manipulierte oder geänderte Fingerabdruck-Wort enthält L Gamma-Symbole. In der beschriebenen Ausführungsform wird jedes von den individuellen Gamma-Symbolen in dem geänderten Fingerabdruck-Wort analysiert und ein Satz von einer oder einer Vielzahl von wahrscheinlichen Farben, die Gegenstand einer Collusion sind, aufgebaut. Wenn alle Gamma-Symbole in dem geänderten Fingerabdruck-Wort in dieser Weise analysiert worden sind, wird eine m × L (wobei m die Anzahl von Gamma-Symbolen oder Farben, d.h., m = 2c) Matrix definiert, die eine Anzeige liefert, welche von den Farben der Gegenstand einer Collusion für jedes von den Gamma-Symbolen in dem geänderten Fingerabdruck-Wort sein könnte. Das Fingerabdruck-Wort für jeden von den Nutzern oder Einheiten wird dann mit der Matrix verglichen. Insbesondere wird jedes Gamma-Symbol des Fingerabdruck-Wortes des Nutzers mit dem Satz von wahrscheinlichen Farben für das entsprechende Gamma-Symbol des geänderten Fingerabdruck-Wortes verglichen. Wenn das Gamma-Symbol des Nutzers mit einer der Farben in dem Satz übereinstimmt, wird dann ein Zähler erhöht. Wenn keine Übereinstimmung vorliegt, wird dann der Zähler nicht erhöht, und das nächste Gamma-Symbol für den Nutzer geprüft. Dieser Prozess setzt sich fort, bis alle Gamma-Symbole für alle Nutzer geprüft worden sind. An diesem Punkt in dem Prozess haben alle Nutzer einen ihrem Zähler zugeordneten Wert. Der wahrscheinlichste Colluder ist der Nutzer, der den höchsten Zählerwert hat.
  • 6 stellt ein Flussdiagramm dar, das Schritte in einem Detektionsverfahren gemäß der beschriebenen Ausführungsform beschreibt. Der Schritt 300 erhält ein geschütztes Objekt, das ein Fingerabdruck-Wort aufweist, das durch einen Nutzer oder eine Einheit geändert worden ist. Der Schritt 302 macht die Permutation der Spalten (auf Chip-Ebene) des geänderten Fingerabdruck-Wortes rückgängig. Der Schritt 304 bewertet jedes von den Gamma-Symbolen in dem geänderten Fingerabdruck-Wort. In der beschriebenen Ausführungsform wird jedes von den Gamma-Symbolen durch Anwenden des (vorstehenden) Algorithmus 3 auf das Gamma-Symbol bewertet. Die Anwendung des Algorithmus 3 erzeugt eine Matrix (Schritt 306) von wahrscheinlichen Farben, die Gegenstand einer Collusion sein können. Eine Erzeugung der beschriebenen Matrix findet statt, indem ein Gamma-Symbol gewählt wird, wenn das Gewicht eines Blockes einer vorbestimmten Beziehung genügt, die in diesem Beispiel durch den Algorithmus 3 spezifiziert wird. Der Schritt 308 erhält dann das Fingerabdruck-Wort des ersten Nutzers und der Schritt 310 bewertet das Fingerabdruck-Wort des Nutzers durch Vergleichen des ersten Gamma-Symbols in dem Fingerabdruck-Wort des Nutzers mit einem Satz von einer oder einer Vielzahl von Farben aus der Matrix. In der beschriebenen Ausführungsform weist die Matrix L Spalten auf, wovon jede einem unterschiedlichen Gamma-Symbol eines Fingerabdruck-Wortes entspricht. Für jede einzelne Spalte gibt es einen Satz von einer oder einer Vielzahl von Farben, die durch den Algorithmus 3 erzeugt werden. Jede von den erzeugten Farben in einer Spalte wird für einen Vergleich mit einem entsprechenden Gamma-Symbol in einem Fingerabdruck-Wort des Nutzers verwendet. Dieses wird aus dem Beispiel ersichtlicher, das nachstehend gegeben wird. Der Schritt 312 ermittelt, ob das Gamma-Symbol des speziellen Fingerabdruckes des Nutzers mit einer der Farben in dem Farbensatz in der entsprechenden Spalte in der Matrix übereinstimmt. Wenn eine Übereinstimmung vorliegt, erhöht dann der Schritt 314 den Zähler des Nutzers. Wenn keine Übereinstimmung vorliegt, ermittelt der Schritt 316 dann, ob noch weitere zusätzliche Gamma-Symbole für den Nutzer vorhanden sind. Wenn welche vorhanden sind, holt der Schritt 318 dann das nächste Gamma-Symbol und springt auf den Schritt 310 zurück. Wenn keine weiteren Gamma-Symbole für den Nutzer vorhanden sind, ermittelt der Schritt 320 dann, ob weitere Nutzer vorhanden sind. Wenn weitere Nutzer vorhanden sind, springt dann das Verfahren zurück auf den Schritt 308 und holt das Fingerabdruck-Wort des neuen Nutzers. Wenn keine weiteren Nutzer vorhanden sind, wählt dann der Schritt 322 die Nutzer mit dem höchsten Zählerwert und beschuldigt diesen dann als einen Colluder.
  • Als ein Beispiel zur Unterstützung des Verständnisses des vorstehend beschriebenen Prozesses werde das nachstehende elementare Beispiel unter Verwendung des nachstehenden Gamma-Codes betrachtet:
    Figure 00280001
  • Es werde angenommen, dass jedes Fingerabdruck-Wort eine Länge L hat, die in diesem Beispiel fünf Gamma-Symbole lang ist. Die Anwendung des Algorithmus 3 auf jedes der fünf Gamma-Symbole könnte die nachstehende Matrix ergeben: Matrix
    Figure 00280002
  • Hier entspricht jede von den wenigstens fünf Spalten einem individuellen Gamma-Symbol in dem geänderten Fingerabdruck-Wort und enthält eine Anzahl von "X"-Markierungen. Jedes "X" zeigt für ein spezielles Gamma-Symbol eine Farbe an, die der Gegenstand einer Collusion sein kann. Jedes Gamma-Symbol in dem geänderten Fingerabdruck-Wort weist einen Satz von einer oder einer Vielzahl von ihm zugeordneten Farben auf. In diesem Beispiel könnten für das erste Gamma-Symbol in dem geänder ten Fingerabdruck-Wort die Farben 2 und 3 der Gegenstand der Collusion sein. Für das zweite Gamma-Symbol in dem Fingerabdruck-Wort könnten die Farben 1 und 5 der Gegenstand der Collusion sein usw. Nachdem diese Matrix definiert ist, wird jedes von Fingerabdruck-Wort des dem Nutzers Gamma-Symbol für Gamma-Symbol mit den implizierten Farben für jedes von den entsprechenden Gamma-Symbolen in der Matrix verglichen. Dieser Vergleich ist in der Tabelle zusammengefasst, die nachstehend dargestellt ist:
    Figure 00290001
  • Hier gibt es zwei als Nutzer 1 und Nutzer 2 bezeichnete hypothetische Nutzer. Jeder von den Nutzern hat ein einzigartiges Fingerabdruck-Wort, das numerisch durch seine Bestandteilfarben repräsentiert wird. Beispielsweise ist das Fingerabdruck-Wort für den Nutzer 1 wie folgt [(Farbe 1) (Farbe 4) (Farbe 6) (Farbe 5)]. (Dieses kann auch als (Gamma1 Gamma1 Gamma4 Gamma6 Gamma5) dargestellt werden). Um zu ermitteln, welcher von den zwei Nutzern in diesem Beispiel beschuldigt wird, wird jedes) von den Gamma-Symbolen oder Farben des Nutzers gegen die entsprechenden beschuldigten Farben für das entsprechende Gamma-Symbol in der vorstehenden Matrix geprüft. Wenn das Gamma-Symbol des Nutzers in der Matrix gefunden wird, wird dann der Zähler des Nutzers für dieses Gamma-Symbol erhöht. Somit ist für den Nutzer 1 dessen erstes Gamma-Symbol durch die Farbe 1 definiert. Eine Bezugnahme auf die Matrix zeigt, dass für das erste F-Symbol die Farbe 1 nicht beschuldigt ist. Demzufolge wird der Zähler des Nutzers nicht erhöht. Für das (durch die Farbe 1 definierte) zweite Gamma-Symbol des Nutzers 1 befindet sich jedoch die Farbe 1 unter dem Satz von Farben, die für das zweite Gamma-Symbol des geänderten Fingerabdruck-Wortes beschuldigt sind. Demzufolge wird der Zähler um 1 erhöht. Eine ähnliche Analyse läuft weiter für die restlichen Gamma-Symbole und für jeden der restlichen Nutzer ab. Nachdem alle Nutzer gegenüber der Matrix geprüft worden sind, wird der Nutzer mit dem höchsten Zählerwert (die am weitesten rechts befindliche Zählerspalte) als ein Colluder ausgewählt. In diesem Beispiel hat der Nutzer 2 den höheren von den Zählerwerten, da Übereinstim mungen zwischen seinem Fingerabdruck-Wort und den beschuldigten Farben der Matrix vorhanden sind.
  • Die vorstehend beschriebenen Verfahren und Systeme können erheblich die Anzahl von Colludern, gegen die verteidigt werden kann, gegenüber der durch das Boneh-Shaw System möglichen deutlich erhöht werden. Beispielsweise werde angenommen, dass ein Film 1010 Pixel aufweist und dass 10% der Pixel ausreichend signifikant sind, so dass Daten darin verborgen werden können. Dieses bedeutet, dass 109 Chips in Verbindung mit diesem Film verwendet werden können. Unter der Annahme, dass N = 106 Nutzer und eine Fehlerrate von 10-3 erwünscht sind, ist dann die Anzahl von Colludern, die abgewehrt werden können, c = 78. Man beachte, dass mit den vorstehenden Parametern wir immer noch über 1000 Einheiten anklagen können, wenn tatsächlich nur 78 Colluder vorhanden sind. Daher sollen Anklagen nur stattfinden, wenn diese wiederholt beschuldigt werden. Jedoch ist die Anzahl 78 im Vergleich zu c = 4 für Boneh-Shaw günstig. Die Möglichkeit, gegen eine Vielzahl von Colludern zu verteidigen, erhöht die Breite des Schutzes und macht erwünschtermaßen die Änderung von Fingerabdruck-Worten wesentlich schwieriger. Der erforderliche Wert des Parameters d ist d = 2c2 × log(8cL/ε).
  • In Übereinstimmung mit den gesetzlichen Bestimmungen wurde die Erfindung in einer Sprache beschrieben, die bezüglich der strukturellen und methodischen Merkmale mehr oder weniger spezifisch ist. Es dürfte sich jedoch verstehen, dass die Erfindung nicht auf die beschriebenen spezifischen Merkmale beschränkt ist, da die hierin offenbarten Einrichtungen bevorzugte Ausführungsformen zur Umsetzung der Erfindung beinhalten.

Claims (18)

  1. Verfahren zum Schützen von Objekten, die digitale Daten enthalten, wobei das Verfahren die folgenden Schritte umfasst: Definieren (100) einer Vielzahl einzigartiger Fingerabdruck-Worte, wobei der Schritt des Definierens Definieren einer Code-Tabelle, d.h. Gamma-Code, aus den Fingerabdruck-Worten umfasst, und jede Reihe der Tabelle ein einzelnes individuelles der Fingerabdruck-Worte umfasst, jedes Fingerabdruck-Wort in eine Anzahl von Blöcken (C) segmentiert ist, jeder Block in Verbindung mit den entsprechenden Blöcken in den anderen Fingerabdruck-Worten in der Code-Tabelle eine Spalte der Code-Tabelle definiert und wenigstens ein Block in jedem Fingerabdruck-Wort eine Spreizsequenz umfasst; Verknüpfen jedes Fingerabdruck-Wortes in der Code-Tabelle mit einer entsprechenden Person oder Einheit, die möglicherweise einer unerlaubten Zusammnarbeit nachgeht (Colluder), wobei individuelle Fingerabdruck-Worte dazu dienen, ein Element zu identifizieren, dem es zugeordnet wird; Permutieren (102) der Spalten der Code-Tabelle; und Einbetten (104) jedes einer Vielzahl von Objekten, die digitale Daten enthalten, in ein entsprechendes individuelles Fingerabdruck-Wort, das durch die permutierte Code-Tabelle definiert wird, um geschützte Objekte bereitzustellen.
  2. Verfahren nach Anspruch 1, wobei das Definieren umfasst, dass jedes Fingerabdruck-Wort so definiert wird, dass es eine Vielzahl von Gamma-Symbolen enthält, wobei ein Gamma-Symbol eine Vielzahl der Blöcke umfasst und jedes Gamma-Symbol wenigstens eine Spreizsequenz enthält.
  3. Verfahren nach Anspruch 2, wobei jedes Gamma-Symbol eine Vielzahl von Spreizsequenzen enthält.
  4. Verfahren nach Anspruch 3, wobei jedes Fingerabdruck-Wort die gleiche Anzahl von Gamma-Symbolen enthält.
  5. Verfahren nach Anspruch 3 oder 4, wobei jedes Gamma-Symbol 2c-1 Spreiz-Sequenzen enthält, wobei c die Anzahl von Colludern ist, gegen die Verteidigung gewünscht wird.
  6. Verfahren nach einem der Ansprüche 1 bis 5, wobei das Definieren der Vielzahl der Fingerabdruck-Worte Auswählen einer Länge für die Fingerabdruck-Worte umfasst und die Länge eine Funktion einer Anzahl von Colludern, gegen die Verteidigung gewünscht wird, und einer Fehlerrate (ε) ist.
  7. Verfahren nach einem der Ansprüche 1 bis 6, das des Weiteren umfasst: Verteilen der geschützten Objekte auf individuelle Nutzer.
  8. Verfahren nach den Ansprüchen 1 bis 7, wobei Permutieren der Spalten durchgeführt wird, indem Chips von Spreizsequenzen in der Code-Tabelle willkürlich verschoben werden.
  9. Verfahren zum Erfassen eines Fingerabdruck-Wortes, wobei das Verfahren die folgenden Schritte umfasst: Empfangen (300) eines geschützten Objektes, in das ein Fingerabdruck-Wort eingebettet ist, das eine Vielzahl individueller Blöcke enthält, wobei wenigstens einer der Blöcke eine individuelle Spreizsequenz umfasst; und Verarbeiten des mit dem Fingerabdruck-Wort verknüpften geschützten Objekts, wobei das Fingerabdruck-Wort definiert worden ist, indem eine Code-Tabelle, d.h. Gamma-Code, mit Reihen und Spalten definiert wurde, wobei die Reihen jeweilige einzelne individuelle Fingerabdruck-Worte definieren, die Spalten durch entsprechende Blöcke jedes Fingerabdruck-Wortes in der Code-Tabelle gebildet werden und das Fingerabdruck-Wort des Weiteren durch Permutieren der Spalten der Code-Tabelle definiert wird, und wobei das Verarbeiten des geschützten Objektes umfasst: Rückgängigmachen (302) des Permutierens von Spalten in dem eingebetteten Fingerabdruck-Wort; und Bewerten (304) der Blöcke des Rückgängigmachen des Permutierens unterzogenen eingebetteten Fingerabdruck-Wortes, einschließlich des wenigstens einen individuellen Blocks, der eine separate Spreizsequenz umfasst, und Bestimmen (202) eines Gewichtes jedes Blocks relativ zu einem ursprünglichen Spreizsequenz-Blockwert.
  10. Verfahren nach Anspruch 9, wobei das Verarbeiten des Weiteren umfasst: Beschränken der Gewichte bestimmter Blöcke auf einen vorgegebenen Wert.
  11. Verfahren nach Anspruch 10, wobei das Berechnen Bestimmen des Gewichtes eines Blocks relativ zu dem 1s-Komplement eines ursprünglichen Spreizsequenz-Blockwertes umfasst.
  12. Verfahren nach Anspruch 10, wobei das Einschränken umfasst, dass so vorgegangen wird, wenn es wahrscheinlich ist, dass ein Block von einem möglichen Colluder nicht gesehen wird.
  13. Verfahren nach Anspruch 10, wobei der vorgegebene Wert gleich (1-δ)μ ist, wobei: für N Nutzer zur Verteidigung gegen eine Kollusion von Größe c mit Fehlerwahrscheinlichkeit ε Folgendes gewählt wird: • Anzahl von Gamma-Symbolen pro Fingerabdruck-Word = L = 2cln(2N/ε), wobei ein Gamma-Symbol eine Vielzahl der Blöcke umfasst, • Blockgröße (gemessen in Chips) = d = 8c2ln(8cL/ε) • f = 2ln(4c2ln(2N/ε)/ε) • δ = f/√(d/2), • μ = d/2.
  14. Verfahren nach Anspruch 10, wobei das eingebettete Fingerabdruck-Wort eine Vielzahl von Gamma-Symbolen aufweist, von denen jedes eine Vielzahl von Blöcken umfasst, und wobei jedem einer Vielzahl von Objekten einzigartige Fingerabdruck-Worte mit einer Vielzahl von Gamma-Symbolen zugeordnet werden und die Verarbeitung umfasst: für jedes Gamma-Symbol des eingebetteten Fingerabdruck-Wortes Bestimmen eines Satzes einer oder mehrer wahrscheinlicher Farben, die Gegenstand einer Kollusion sein könnten; für jedes Fingerabdruck-Wort Bewerten jedes Gamma-Symbols, um festzustellen, ob es mit einer Farbe in dem Satz der entsprechenden Gamma-Symbole des eingebetteten Fingerabdruck-Wortes übereinstimmt; und Auswählen eines Objektes, das die größte Anzahl von Farben hat.
  15. Verfahren nach Anspruch 14, wobei das Bestimmen umfasst: Bewerten des Gewichtes jedes Blocks; und Auswählen eines Gamma-Symbols, wenn das Gewicht der Blöcke eine vordefinierte Beziehung erfüllt.
  16. Verfahren nach einem der Ansprüche 1 bis 15, wobei der Gamma-Code eine Datenstruktur ist, die eine Vielzahl von Spreizsequenzen umfasst, und die Spreizsequenzen in Blöcken angeordnet sind, die kombiniert werden können, um Fingerabdruck-Worte zu definieren, die individuellen Nutzern zugeordnet werden können, auf die die geschützten Objekte zu verteilen sind.
  17. Computerlesbares Speichermedium, auf dem durch Computer ausführbare Befehle gespeichert sind, die, wenn sie von einem Computer ausgeführt werden, das Verfahren nach einem der Ansprüche 1 bis 15 durchführen.
  18. Computersystem, das zum Durchführen des Verfahrens nach einem der Ansprüche 1 bis 16 programmiert ist.
DE60035290T 1999-10-28 2000-10-27 Verfahren und Vorrichtung zum Auffinden unerlaubter Kopien digitaler Objekte mittels Fingerabdruck Expired - Lifetime DE60035290T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US437713 1999-10-28
US09/437,713 US6754364B1 (en) 1999-10-28 1999-10-28 Methods and systems for fingerprinting digital data
PCT/US2000/029843 WO2001031910A1 (en) 1999-10-28 2000-10-27 Methods and systems for fingerprinting digital data

Publications (2)

Publication Number Publication Date
DE60035290D1 DE60035290D1 (de) 2007-08-02
DE60035290T2 true DE60035290T2 (de) 2007-10-04

Family

ID=23737576

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60035290T Expired - Lifetime DE60035290T2 (de) 1999-10-28 2000-10-27 Verfahren und Vorrichtung zum Auffinden unerlaubter Kopien digitaler Objekte mittels Fingerabdruck

Country Status (7)

Country Link
US (4) US6754364B1 (de)
EP (1) EP1243126B1 (de)
JP (1) JP4832692B2 (de)
AT (1) ATE365420T1 (de)
AU (1) AU1245201A (de)
DE (1) DE60035290T2 (de)
WO (1) WO2001031910A1 (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6891958B2 (en) * 2001-02-27 2005-05-10 Microsoft Corporation Asymmetric spread-spectrum watermarking systems and methods of use
KR20040000954A (ko) * 2002-06-26 2004-01-07 삼성전자주식회사 이동통신단말기에 있어서 지문인식 방향 선택 방법
US7382905B2 (en) * 2004-02-11 2008-06-03 Microsoft Corporation Desynchronized fingerprinting method and system for digital multimedia data
US7814564B2 (en) * 2005-01-07 2010-10-12 University Of Maryland Method for fingerprinting multimedia content
JP4521871B2 (ja) 2005-01-18 2010-08-11 株式会社ダイヤメット 耐食性、耐摩耗性および高強度を有するモータ式燃料ポンプの軸受
US7760903B2 (en) * 2005-08-30 2010-07-20 Microsoft Corporation Tamper-resistant text stream watermarking
US20070162761A1 (en) * 2005-12-23 2007-07-12 Davis Bruce L Methods and Systems to Help Detect Identity Fraud
US8707459B2 (en) 2007-01-19 2014-04-22 Digimarc Corporation Determination of originality of content
US8738749B2 (en) 2006-08-29 2014-05-27 Digimarc Corporation Content monitoring and host compliance evaluation
JP4941912B2 (ja) * 2007-05-28 2012-05-30 日本放送協会 符号データ特定装置及びそのプログラム、並びに、フィンガープリント検出装置及びそのプログラム
US9195837B2 (en) * 2007-11-30 2015-11-24 Hewlett-Packard Development Company, L.P. Method and system for securely transmitting deterrent data
US8280905B2 (en) * 2007-12-21 2012-10-02 Georgetown University Automated forensic document signatures
US8312023B2 (en) * 2007-12-21 2012-11-13 Georgetown University Automated forensic document signatures
US8612754B2 (en) 2011-06-14 2013-12-17 At&T Intellectual Property I, L.P. Digital fingerprinting via SQL filestream with common text exclusion

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2808672B2 (ja) 1989-05-31 1998-10-08 株式会社日立製作所 オブジェクト指向言語のクラスを用いるメリッド決定方法
US6345104B1 (en) * 1994-03-17 2002-02-05 Digimarc Corporation Digital watermarks and methods for security documents
US20020009208A1 (en) 1995-08-09 2002-01-24 Adnan Alattar Authentication of physical and electronic media objects using digital watermarks
JP2761191B2 (ja) * 1994-08-12 1998-06-04 バンドー化学株式会社 ベルト伝動方法及びベルト伝動装置
US5999911A (en) 1995-06-02 1999-12-07 Mentor Graphics Corporation Method and system for managing workflow
US5692129B1 (en) 1995-07-07 1999-08-17 Novell Inc Managing application programs in a computer network by using a database of application objects
DE69636084T2 (de) * 1995-09-28 2006-09-14 Nec Corp. Verfahren und Vorrichtung zum Einfügen eines Spreizspektrumwasserzeichens in Multimediadaten
US5802511A (en) 1996-01-02 1998-09-01 Timeline, Inc. Data retrieval method and apparatus with multiple source capability
WO1997034391A1 (en) 1996-03-12 1997-09-18 Frank Thomson Leighton Watermarking process resilient to collusion attacks
US5812134A (en) 1996-03-28 1998-09-22 Critical Thought, Inc. User interface navigational system & method for interactive representation of information contained within a database
US5970496A (en) 1996-09-12 1999-10-19 Microsoft Corporation Method and system for storing information in a computer system memory using hierarchical data node relationships
US5875446A (en) 1997-02-24 1999-02-23 International Business Machines Corporation System and method for hierarchically grouping and ranking a set of objects in a query context based on one or more relationships
US6278991B1 (en) 1997-08-22 2001-08-21 Sap Aktiengesellschaft Browser for hierarchical structures
US6223145B1 (en) 1997-11-26 2001-04-24 Zerox Corporation Interactive interface for specifying searches
JP3636272B2 (ja) 1998-02-09 2005-04-06 富士通株式会社 アイコン表示方法、その装置、及び記録媒体
US6442557B1 (en) 1998-02-27 2002-08-27 Prc Inc. Evaluation of enterprise architecture model including relational database
US6064764A (en) * 1998-03-30 2000-05-16 Seiko Epson Corporation Fragile watermarks for detecting tampering in images
JP2000003129A (ja) 1998-04-17 2000-01-07 Digital Vision Laboratories:Kk 電子透かし埋め込み装置
US6243480B1 (en) 1998-04-30 2001-06-05 Jian Zhao Digital authentication with analog documents
US6219677B1 (en) * 1998-05-01 2001-04-17 Emware, Inc. Split file system
US6285366B1 (en) 1998-06-30 2001-09-04 Sun Microsystems, Inc. Hierarchy navigation system
US6317749B1 (en) 1998-09-30 2001-11-13 Daman, Inc. Method and apparatus for providing relationship objects and various features to relationship and other objects
US6345100B1 (en) * 1998-10-14 2002-02-05 Liquid Audio, Inc. Robust watermark method and apparatus for digital signals
JP4130503B2 (ja) * 1998-11-30 2008-08-06 株式会社東芝 電子透かし埋込み装置
US6564263B1 (en) 1998-12-04 2003-05-13 International Business Machines Corporation Multimedia content description framework
US6556984B1 (en) 1999-01-19 2003-04-29 International Business Machines Corporation Hierarchical string matching using multi-path dynamic programming
JP4178647B2 (ja) * 1999-02-15 2008-11-12 松下電器産業株式会社 デジタル情報埋込み・抽出装置および方法並びに当該方法を実行するためのプログラムを記録した記録媒体
JP3607521B2 (ja) * 1999-03-24 2005-01-05 株式会社東芝 電子透かし埋込装置、電子透かし検出装置、デジタル情報配布装置及び記憶媒体
JP2000329710A (ja) * 1999-05-17 2000-11-30 Shimadzu Corp 放射線断層撮影装置、及び、これを用いた物体検査装置
KR100496856B1 (ko) * 1999-05-20 2005-06-22 삼성전자주식회사 어드레스 확장이 가능한 데이터 처리 시스템
US6754666B1 (en) 1999-08-19 2004-06-22 A2I, Inc. Efficient storage and access in a database management system
US6289382B1 (en) 1999-08-31 2001-09-11 Andersen Consulting, Llp System, method and article of manufacture for a globally addressable interface in a communication services patterns environment
JP3735521B2 (ja) 1999-09-30 2006-01-18 株式会社東芝 埋め込み符号生成方法及び装置、埋め込み符号検出方法及び装置並びに電子透かし埋め込み装置
US6489970B1 (en) 1999-11-16 2002-12-03 International Business Machines, Corporation Means for specifying direct manipulation relationships on hierarchically structured visuals
US6807634B1 (en) * 1999-11-30 2004-10-19 International Business Machines Corporation Watermarks for customer identification
US6463420B1 (en) 1999-12-30 2002-10-08 General Electric Company Online tracking of delivery status information over a computer network
US20010047385A1 (en) 1999-12-30 2001-11-29 Jeffrey Tuatini Passthru to shared service funtionality
US6643652B2 (en) 2000-01-14 2003-11-04 Saba Software, Inc. Method and apparatus for managing data exchange among systems in a network
US20020109680A1 (en) 2000-02-14 2002-08-15 Julian Orbanes Method for viewing information in virtual space
WO2001060980A1 (en) * 2000-02-16 2001-08-23 University Of Massachusetts Transgenic, non-human animals containing a coxsackie/adenovirus receptor (car)
US6636250B1 (en) 2000-04-12 2003-10-21 Emc Corp Methods and apparatus for presenting information to a user of a computer system
JP3597761B2 (ja) 2000-07-18 2004-12-08 株式会社日立製作所 イオンビーム装置及び試料加工方法
US6708161B2 (en) 2000-09-26 2004-03-16 I2 Technologies Us, Inc. System and method for selective database indexing
US6891958B2 (en) * 2001-02-27 2005-05-10 Microsoft Corporation Asymmetric spread-spectrum watermarking systems and methods of use
US6938046B2 (en) 2001-03-02 2005-08-30 Dow Jones Reuters Business Interactive, Llp Polyarchical data indexing and automatically generated hierarchical data indexing paths
US6990656B2 (en) 2002-06-27 2006-01-24 Microsoft Corporation Dynamic metabase store
KR100528193B1 (ko) * 2002-06-29 2005-11-15 현대자동차주식회사 아이에스씨에이 작동 소음 감쇄장치
TWI220910B (en) 2003-03-14 2004-09-11 Ez Trend Technology Co Ltd An electric handle

Also Published As

Publication number Publication date
US20050111695A1 (en) 2005-05-26
US7177442B2 (en) 2007-02-13
DE60035290D1 (de) 2007-08-02
EP1243126A1 (de) 2002-09-25
JP2003513364A (ja) 2003-04-08
EP1243126B1 (de) 2007-06-20
WO2001031910A1 (en) 2001-05-03
US7200244B2 (en) 2007-04-03
US20040071314A1 (en) 2004-04-15
US7158655B2 (en) 2007-01-02
ATE365420T1 (de) 2007-07-15
US20050117777A1 (en) 2005-06-02
JP4832692B2 (ja) 2011-12-07
AU1245201A (en) 2001-05-08
US6754364B1 (en) 2004-06-22

Similar Documents

Publication Publication Date Title
DE60035290T2 (de) Verfahren und Vorrichtung zum Auffinden unerlaubter Kopien digitaler Objekte mittels Fingerabdruck
DE60206997T2 (de) Herstellung und Quantizierung von robusten nicht-örtlichen Eigenschaften für blinde Wasserkennzeichnungen
DE69435076T2 (de) Einbetten eines steganographischen Kodes in ein Bildsignal
DE69636084T2 (de) Verfahren und Vorrichtung zum Einfügen eines Spreizspektrumwasserzeichens in Multimediadaten
DE69733992T2 (de) Verfahren zur Verstecken und Extrahieren von Daten
DE69434237T2 (de) Video mit versteckten in-Band digitalen Daten
DE19521969C1 (de) Verfahren zur Markierung binär codierter Datensätze
DE60317265T2 (de) Wasserzeicheneinbettung mittels der Quantisierung der Statistik überlappender Regionen
DE69838692T2 (de) System zur Unterdrückung der illegalen Benutzung von Bilddaten
DE602005002696T2 (de) Erkennung von Änderungen in digitalen Daten mittels empfindlichen Wasserzeichens
Kekre et al. Performance evaluation of pixel value differencing and Kekre's modified algorithm for information hiding in images
DE60213817T2 (de) Video-/bildkommunikation mit wasserzeichen
EP1119960B1 (de) Benutzung eines digitalen Wasserzeichens zum Nachweis des Urhebers eines elektronischen Dokumentes
DE102014207439A1 (de) Maskierung von sensiblen Daten bei der Benutzer-Identifikation
EP1810442B1 (de) Vorrichtung und verfahren zum detektieren einer manipulation eines informationssignals
DE19816356C2 (de) Verfahren zum Einbringen manipulationssicherer digitaler Fingerabdrücke in elektronische Dokumente
EP2122569B1 (de) Verfahren zur kennzeichnung eines digitalen bildes mit einem digitalen wasserzeichen
Watters et al. Visual detection of LSB-encoded natural image steganography
DE10211982B4 (de) Verfahren zur Markierung eines Datensatzes
EP1349368A1 (de) Verfahren zur Markierung eines Datensatzes
DE102010044228B4 (de) Verfahren zur Auswertung von mit Transaktionswasserzeichen markiertem Datenmaterial zwecks Kundenrückverfolgung
EP0993176A2 (de) Verfahren zum Einbringen manipulationssicherer digitaler Fingerabdrücke in elektronische Dokumente
EP3308348B1 (de) Verfahren zum erzeugen eines sicherheitselements mit versteckt codierter information in einer grafischen abbildung, sicherheitselement und verfahren zum verifizieren
DE19847942A1 (de) Verfahren zum Einbringen manipulationssicherer digitaler Fingerabdrücke in elektronische Dokumente
DE10307649A1 (de) Steganographisches Systems sowie hierauf bezogenes Verfahren

Legal Events

Date Code Title Description
8364 No opposition during term of opposition