-
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:
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:
-
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:
-
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:
-
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.
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 (Gamma
4Gamma
5Gamma
3) zugewiesen werden, dem Nutzer 2 ein einzigartiges
Fingerabdruck-Wort (Gamma
3, Gamma
5, Gamma
2), 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 Gamma
1Gamma
2Gamma
3 erzeugt werden. Für das zweite Gamma-Symbol des
geänderten
Fingerabdruck-Wortes kann der Satz von Farben (2, 4) das heißt Gamma
2Gamma
4 erzeugt werden. Für das dritte
Gamma-Symbol des geänderten
Fingerabdruck-Wortes könnte
der Satz der Farben 3, 6 (das heißt Gamma
3Gamma
6 erzeugt werden. Diese Ergebnisse sind in
der nachstehenden Tabelle zusammengefasst:
-
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 = (a
1...a
u) dargestellt und die Chips werden detektiert,
indem das empfangene Objekt mit einem originalen erwarteten Objekt
m = (m
1...m
u) verglichen
wird. Jede Komponente (zum Beispiel das Pixel a
i)
wird mit der erwarteten Komponente ohne Fingerabdruck zum Beispiel
dem Pixel m
i verglichen. Die nachstehende
Tabelle listet die Vergleiche und deren Ergebnisse auf:
-
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.
-
-
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:
-
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
-
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:
-
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.