-
Die
vorliegende Erfindung betrifft ein Verfahren zur Verarbeitung komprimierter
Daten, sowie Geräte
und Träger
für dessen
Anwendung.
-
Das
Fachgebiet der Erfindung ist das der Herstellung von Verschlüsselungsvorrichtungen
für Audio-
und/oder Videodaten.
-
Die
Erfindung betrifft insbesondere ein Verfahren zur selektiven (partiellen)
Verschlüsselung von
Audio- oder Videodaten durch einen Verschlüsselungsalgorithmus, wobei
die Daten komprimiert und in einem Standardformat organisiert sind
und Codewörter
unterschiedlicher Länge
aufweisen können.
-
Die
gesicherte Verteilung von Videodateien ist zur Zeit auf die Gebührenfernsehübertragung über Kabel
oder Satellit eingeschränkt;
die Sicherung wird durch „private" Verschlüsselungssysteme
sichergestellt, die von einem einzigen Anbieter definiert, ausgeführt und
kontrolliert werden: der Fernsehanstalt.
-
Die
neuen Videonormen mit niedriger Übertragungsrate,
das Internet mit hoher Übertragungsrate
und die tragbaren Endgeräte
in drahtlosen Netzen des Typs 3G-Telephon oder PDA müssten bald
die Verteilung von Videodateien erlauben: insbesondere Telekonferenz,
Multimedia-Mitteilungen, Film-Vorankündigungen, Live-Sportinformationen,
Videos auf Anforderung.
-
Es
treten Sicherheitsanforderungen auf, die von den derzeitigen Lösungen nicht
erfüllt
werden können.
Es gelten folgende Bedingungen:
- a- Die Syntax
des verschlüsselten
Stroms muss so weit wie irgend möglich
der Verschlüsselungsnorm
entsprechen, um den Transport im Netz zu erleichtern; das Datenverarbeitungsverfahren muss
Transparenz für
Umcodierung und Änderungen
der Übertragungsrate
sicherstellen, sowie aus Vertrauensgründen Transparenz für Router und
Server; das Verfahren muss den zufälligen Zugriff und andere Video-Verarbeitungen ohne Entschlüsselung
des gesamten Stromes erlauben und muss den Transport mit Protokollen
ermöglichen,
die für
Standardvideo vorgesehen sind;
- b- die Effektivität
der Kompression darf nicht aufgrund der Sicherung der Daten durch
Verschlüsselung
beeinträchtigt
werden;
- c- die Sicherung muss mit verschiedenen Tools kompatibel sein,
die von den Kompressionsnormen (MPEG4, H264) für Videodaten vorgesehen sind,
insbesondere die Fehlerempfindlichkeit, für die drahtlose Übertragung
und den Verlust von IP-Paketen (Internet-Protokoll), sowie die mehrstufige
Codierung, für
Teilnehmerendgeräte
mit heterogener Bandbreite,
- d- das Niveau der Sicherheit und visuellen Maskierung muss der
Anwendung angepasst sein: Widerstandsfähigkeit gegen Video-spezifische Angriffe,
- e- die erforderliche Rechenleistung muss für Anwendungen wie die drahtlose Übertragung
von Multimedia-Dateien in kontinuierlichem Datenstrom („streaming") mit mitgeführten Endgeräten kompatibel
sein.
-
Nach
der MPEG-Norm besteht eine Videosequenz aus einer Folge von Gruppen
von Bildern, wobei jede Bildgruppe aus einer Folge von Bildern vom Typ
I (intracodiert), P (prädiktiv)
und B (bidirektional) besteht; jedes Bild vom Typ I ist in Makroblöcke aufgeteilt;
jeder Makroblock ist in vier Luminanzblöcke und in zwei Chrominanzblöcke umgewandelt,
wobei diese Umwandlung zu einem ersten Informationsverlust führt.
-
Jeder
Block von 64 Pixeln wird durch eine DCT-Transformation („discrete
cosine transform")
in eine Tabelle von 64 Koeffizienten umgewandelt; diese Tabelle
wird durch Quantisierung („quantization") komprimiert und
dann in Abhängigkeit
von der Anzahl an Koeffizienten des Wertes Null, die bei einer Durchmusterung
der Tabelle im Zickzack angetroffen werden, geordnet und verschlüsselt („zig-zag
ordering" und „run-length
coding"); die sich
daraus ergebenden komprimierten Daten werden in Wörter unterschiedlicher
Länge codiert
(„Huffman
coding"); diese
Umwandlungen führen
ebenfalls zu einem Informationsverlust.
-
Verschiedene
Verfahren zur Verschlüsselung
eines standardisierten Videodatenstroms – insbesondere eines Stroms
nach der MPEG-Norm – wurden
vorgeschlagen, um bestimmten der oben angeführten Anforderungen Rechnung
zu tragen.
-
Wenn
ein Codewort, das Teil einer Tabelle von Codewörtern unterschiedlicher Länge ist,
vollständig
verschlüsselt
wird, entsteht im Allgemeinen ein Codewort, das nicht dieser Tabelle
angehört („nicht
konformes" Wort);
dementsprechend kann ein Decoder, der die Codewörter bitweise analysiert und bei
jedem Bit Entscheidungen trifft, die Grenze des verschlüsselten
Codewortes nicht erkennen, „verirrt" sich und weiß nicht
mehr, welches Datenfeld er gerade analysiert; dieser Nachteil beruht
auf der Tatsache, dass die Codewörter
unterschiedliche Längen haben.
-
Die
Schrift „A
fast MPEG video encryption algorithm", Changgui Shi et al., ACM Multimedia
98, beschreibt ein Verfahren zur Verschlüsselung komprimierter Videodaten
im Format MPEG durch einen Geheimschlüssel; die Vorzeichenbits der
Koeffizienten (AC und DC) von Huffman – die Codewörter unterschiedlicher Länge sind – werden
bitweise durch eine Antivalenzfunktion mit einem Schlüssel bestimmter
Länge verknüpft (d.
h. bitweise mit Hilfe logischer Antivalenzgatter mit den Bits des
Schlüssels verknüpft) und
werden jeweils – im
Videodatenstrom – durch
die Werte von Bits ersetzt, die sich in diesem Vorgang ergeben;
in dieser Schrift wird vorgeschlagen, einen oder mehrere lange(n)
Schlüssel
zu verwenden; als Beispiel wird ein Schlüssel von 128 Bit verwendet.
-
Nach
dieser Schrift werden nur die Vorzeichenbits der Codewörter verschlüsselt, und
nur bei den Codewörtern,
die Nutzdaten darstellen (Bewegungsvektoren und DCT-Koeffizienten,
die die Textur darstellen), was ein konformes Codewort ergibt. Würden die
Codewörter
verschlüsselt,
die etwas anderes darstellen, beispielsweise die Anzahl verschlüsselter Blöcke, würde sich
der Decoder verirren, selbst wenn nach dem Verschlüsseln konforme
Codewörter
erhalten würden.
-
Dieses
Verfahren der selektiven Verschlüsselung,
die auf einen sehr kleinen Teil des Datenstromes angewendet wird,
erfordert geringere Rechenkapazitäten, als die, die von den Verfahren
zur vollständigen
Verschlüsselung
des Stromes gebraucht werden; zum Ausgleich ist die Maskierung der
verschlüsselten
Bilder relativ gering.
-
Nach
der oben genannten Schrift Changgui Shi et al. erlauben Synchronisationspunkte,
die dem Datenstrom hinzugefügt
werden, einem Decoder, der über
den Schlüssel
verfügt,
zu wissen, ab welcher Stelle im verschlüsselten Strom er wieder den
Entschlüsselungsschlüssel anwenden
muss; diese Synchronisationspunkte werden am Anfang jeder Gruppe
von Bildern eingefügt,
zu Beginn jedes Bildes des Typs I oder zu Beginn einer bestimmten
Anzahl von Bildern.
-
Der
Anhang E der Norm ISO 14496-2 definiert mehrere Tools oder nützliche
Modi zur Minimisierung der negativen Folgen von Feh lern bei der Übertragung
eines komprimierten Datenstromes: i) Synchronisationszeichen, ii)
die Trennung zwischen den Texturdaten einerseits, den Kopf- und
Bewegungsdaten andererseits, iii) die Verwendung reversibler Codes
unterschiedlicher Länge
zur Verschlüsselung
der Texturdaten.
-
In
einem Modus „Videopaketsynchronisation" kann ein periodisches
Synchronisationszeichen am Ende eines Makroblocks geschaffen werden, wenn
die Anzahl an Bits seit dem vorangehenden Zeichen einen bestimmten
Schwellenwert überschreitet;
ein Videopaket (Teil des Stromes zwischen zwei aufeinander folgenden
Zeichen) weist so eine variable Anzahl an Makroblöcken auf.
-
Wenn
der Datenstrom teilweise mit einem Blockverschlüsselungsalgorithmus verschlüsselt ist, wie
etwa nach der DES-(Block von 64 Bit) und umso mehr nach der AES-Norm
(128 Bit), kann die Anzahl zu verschlüsselnder Datenbits innerhalb
eines derartigen Videopakets kleiner sein, als die Anzahl der Bits des
Verschlüsselungsblocks,
insbesondere wenn das Paket die Bewegungsvektoren enthält, die
den Bildern vom Typ P und B angehören; ein derartiges Paket wird
in diesem Fall unverschlüsselt übertragen und
die Maskierung der Sequenz wird verringert sein.
-
Das
Patent
US 6 505 299
B1 (Zeng et al.) beschreibt verschiedene Verfahren zur
Verschlüsselung
(teilweise komprimierter) quantisierter Videodaten vor deren Codierung
mit Huffman-Tabellen,
Lauflängencodierung,
arithmetischer Verschlüsselung oder
anderer Entropiecodierung: Auf das Bild wird eine Raum-Frequenz-Transformation
angewandt, was eine Transformationskoeffiziententabelle erzeugt;
diese Koeffizienten werden dann verschlüsselt, entweder durch Verwürfelung
ihrer Vorzeichenbits, oder durch Verwürfelung ihrer niedrigstwertigen Bits
oder durch Mischung von Blöcken
der Tabelle, oder durch Mischung von Koeffizienten, die einem Raumfrequenzbereich
der Tabelle entsprechen.
-
Diese
Schrift schlägt
außerdem
vor, die Bewegungsvektoren der Bilder vom Typ P und B zu verschlüsseln; dies
verstärkt
die Maskierung der verschlüsselten
Bilder.
-
Ein
Nachteil dieser Verschlüsselungsverfahren
besteht darin, dass sie die Effektivität der Datenkompression verringern,
die durch Quantisierung erhalten wird; ein anderer Nachteil besteht
darin, dass sie größere Rechenmittel
erfordern als die, die für eine
Verschlüsselung
nach Huffman-Codierung oder Ähnlichem
erforderlich sind.
-
Die
Patentanmeldung US-2002/0018565 (Luttrel et al.) beschreibt ein
Verfahren zur selektiven Verschlüsselung
eines MPEG4-Datenstroms,
das die Codierungssyntax bewahrt; nach diesem Verfahren werden die
Indizes (fester Länge
gleich n) einer Tabelle von 2n Wörtern unterschiedlicher
Länge verschlüsselt und
für jeden
Index der Tabelle wird das (unverschlüsselte) Wort, das diesem Index
entspricht, durch das (unverschlüsselte)
Wort ersetzt, das dem verschlüsselten
Index entspricht; dieses Verfahren erlaubt nicht, die Beziehung
der unverschlüsselten
Tabelle zwischen der Länge
eines Codewortes und der Häufigkeit
des Auftretens des entsprechenden Symbols in einem Datenstrom zu
erhalten; es verringert dementsprechend die Datenkompression durch
Codierung mit Hilfe der verschlüsselten
Tabelle.
-
Bestimmte
der bekannten Verfahren zur Verschlüsselung eines Videodatenstroms
sind gegen den Verlust eines Datenpaketes unempfindlich; dagegen
reagieren diese Verfahren empfindlich auf den isolierten Verlust
eines oder mehrerer Datenbits, was insbesondere in den drahtlosen Übertragungssystemen
häufig
eintritt.
-
Außerdem sind
diese bekannten Verfahren inkompatibel mit den Verfahren zur Anpassung
des Stromes an eine veränderliche
Bandbreite, die von der Norm MPEG4FGS („fine granularity scalability", MPEG-4 Video Verification
Model version 18.0, Januar 2001) vorgesehen sind, in denen ein Datenstrom zur
Anpassung des Datenstroms an einen Übertragungskanal geringerer
Bandbreite an willkürlichen Stellen
beschnitten wird, sobald die Anzahl Bits, die dem Kanal zugewiesen
sind, erreicht wird, beispielsweise in der Mitte eines Bildes.
-
Die
vorliegende Erfindung hat zum Gegenstand, ein verbessertes Verfahren
zum Verschlüsseln eines
standardisierten Stroms komprimierter Daten vorzuschlagen.
-
Die
vorliegende Erfindung hat ebenfalls zum Gegenstand, ein derartiges
Verfahren vorzuschlagen, das – mindestens
teilweise – den
Nachteilen der bekannten Verfahren zum Verschlüsseln eines standardisierten
Stroms komprimierter Audio- und Videodaten Abhilfe schafft.
-
Im
Sinne der vorliegenden Anmeldung werden die Begriffe „codiertes
Wort", „Codewort" und „Codeword" ohne Unterschied
zur Bezeichnung eines Wortes einer Tabelle von Wörter unterschiedlicher Längen angewandt.
-
Die
Erfindung wird durch die Patentansprüche definiert.
-
Sie
betrifft das Verschlüsseln
eines standardisierten Stroms komprimierter Audio- oder Videodaten,
das das Verschlüsseln
durch Pseudozufallsstrom mindestens eines Teils der Bits von Datenpaketen
umfasst, der von zwei aufeinander folgenden Synchronisationszeichen
begrenzt ist.
-
Da
die Stromverschlüsselung
bitweise erfolgt, ist die Stellung eines verschlüsselten Bits in einem verschlüsselten
Datenpaket dieselbe, wie die, die das entsprechende Datenbit im
Datenpaket vor der Verschlüsselung
einnahm; außerdem
beeinflusst der Zustand eines verschlüsselten Bits (bzw. eines unverschlüsselten
Bits) nicht die benachbarten Bits; dieses Verschlüsselungsverfahren
ist mit den Schwankungen der Anzahl zu verschlüsselnder Bits von einem Paket
zum anderen kompatibel; kein zu verschlüsselndes Datenbit bleibt also
unverschlüsselt;
außerdem
kann das Entschlüsseln
eines stromverschlüsselten
Paketes ausgehend vom Anfangssynchronisationszeichen des folgenden
Pakets rückwärts erfolgen;
die Erfindung erlaubt es zu vermeiden, dass die Verschlüsselung
isolierte Fehler verbreitet, die durch die Übertragung entstanden sind und
nur ein oder mehrere Bits innerhalb eines verschlüsselten
Datenpaketes betreffen, was eine blockweise Verschlüsselung
nicht erlaubt; die Erfindung erlaubt ebenfalls, ein zur Anpassung
des Stroms an eine geringere Bandbreite beschnittenes Paket zu entschlüsseln.
-
Um
Versuchen der betrügerischen
Entschlüsselung
zuvorzukommen, wird ein anderer (einmaliger) Pseudozufallsstrom
bei jedem Paket des Datenstroms verwendet: Bei jedem Synchronisationszeichen
des Datenstroms wird ein neuer Pseudozufallsstrom erzeugt, der bitweise
durch eine Antivalenzfunktion mit den zu verschlüsselnden Datenbits verknüpft wird
(d. h. der an Antivalenzgatter angelegt wird), und werden im Strom
die verschlüsselten
Datenbits wieder an der Stelle eingesetzt, die sie jeweils vor der
Verschlüsselung
einnahmen.
-
Vorzugsweise
wird ein Verschlüsselungsstrom
eines bestimmten Paketes durch Verarbeitung einer nicht verschlüsselten
Information des bestimmten Paketes, zweite unverschlüsselte Information
genannt, durch Verarbeitung einer nicht verschlüsselten Information des Datenstroms,
die nicht dem bestimmten Paket angehört, erste unverschlüsselte Information
genannt, und durch Verarbeitung eines einmaligen vorzugsweise für den Strom
charakteristischen Geheimschlüssels
erzeugt.
-
Ebenfalls
vorzugsweise ist die unverschlüsselte
Information des bestimmten Paketes eine Information des Kopfes des
Pakets, und ist die unverschlüsselte
Information des Datenstromes, die nicht zum bestimmten Paket gehört, ein
Zeitstempel („time stamp") des Stroms.
-
In
einer bevorzugten Ausführungsform
wird zur Erzeugung eines einmaligen (von den anderen Pseudozufallsströmen verschiedenen)
Pseudozufallsstroms für
jedes Paket des Datenstromes eine oder mehrere Informationen aus
dem Kopf des betrachteten Pakets und/oder Datenstroms verwendet, insbesondere
ein Zeitstempel („time
stamp") der Gruppe
von Bildern, zu der das betrachtete Paket gehört, die mit einem Index verbunden
sein kann/können,
wie etwa dem Index des ersten Makroblocks des betrachteten Pakets,
um eine Datenkombination zu bilden, die für das betrachtete Paket spezifisch
ist.
-
Vorzugsweise
werden außerdem
blockweise mit Hilfe eines Geheimschlüssels die ersten und zweiten
nicht verschlüsselten
Daten verschlüsselt;
zu diesem Zweck wird vorzugsweise ein Verschlüsselungsalgorithmus für Blöcke von
64 Bit, 128 Bit, 192 Bit oder 256 Bit verwendet, um für jedes
Datenpaket einen Pseudozufallsstrom ausgehend von einem Schlüssel und
von charakteristischen Daten des betrachteten Paketes zu erzeugen.
-
Zur
Erhöhung
der Widerstandsfähigkeit
der Verschlüsselung
gegen „Angriffe" (betrügerische
Entschlüsselungsversuche),
die die Kenntnis unverschlüsselter
Teile des Datenstroms ausnutzen, wird außerdem vorzugsweise ein Hash-Algorithmus
verwendet, um den Verschlüsselungsstrom
der Daten des bestimmten Pakets ausgehend vom Ergebnis der blockweisen
Verschlüsselung
der ersten und zweiten nicht verschlüsselten Daten zu erzeugen.
-
Wenn,
wie im Fall der Norm MPEG4, mindestens ein Teil der Daten des Stroms
in Wörter
unterschiedlicher Länge
codiert wurde, werden nur die Bits dieser Codewörter verschlüsselt, die
nach Verschlüsseln
und Wiedereinsetzen ins Codewort der Struktur der Codewörter des
zu verschlüsselnden Datenstroms
entsprechen; vorzugsweise wird hierzu für Codewörter einer Codeworttabelle,
die nicht alle dieselbe Länge
haben, vorzugsweise für
jedes Codewort der Tabelle mindestens ein Teil der Bits – und vorzugsweise
alle Bits – verschlüsselt, die
nach zufälliger Ände rung
ihres/ihrer Werte(s) und nach bitweisem Ersetzen der unverschlüsselten
Bits im zu verschlüsselnden
Codewort durch die verschlüsselten Bits
zur Bildung eines zweiten Codewortes der Codeworttabelle führt; die
Länge des
Codewortes bleibt so während
dieses Verschlüsselns
unverändert;
mit anderen Worten werden die Codewörter mindestens einer Gruppe
mehrerer Codewörter
(und vorzugsweise aller Gruppen mehrerer Codewörter) der Tabelle gemischt
(permutiert), die dieselbe Länge
haben.
-
In
einer bevorzugten Ausführungsform
der Erfindung wird der Tabelle von Codewörtern unterschiedlicher Länge ein
Index zur Identifizierung jedes Codewortes der Tabelle hinzugefügt, sowie
mindestens ein Parameter, der für
jedes Codewort der Tabelle die Anzahl – und gegebenenfalls die Stellung
im Codewort – des
oder der zu verschlüsselnden
Bits definiert.
-
Zum
Verschlüsseln
einer Folge von Codewörtern
eines Pakets des Datenstroms wird für jedes Codewort mit Hilfe
dieser Tabelle die Anzahl und Stellung der zu verschlüsselnden
Bits des Wortes ermittelt; dem Wort wird/werden das/die zu verschlüsselnde(n)
Bit(s) entnommen und in einen Pufferspeicher geschrieben, wobei
in diesem Pufferspeicher die zu verschlüsselnden Bits, die den Codewörtern der
Folge der Codewörter
entnommen wurden, verkettet werden; wenn dieser Pufferspeicher voll
ist oder wenn ein Anfangssynchronisationszeichen des folgenden Pakets
erreicht wird, wird die Kette von Bits verschlüsselt, die sich im Pufferspeicher
befindet, und jedes der verschlüsselten
Bits wird jeweils wieder an der Stelle eingesetzt, die sie vor dem
Verschlüsseln
im entsprechenden Codewort in der Codewortfolge des Pakets einnahmen;
so wird nach dem Verschlüsseln
ein Datenstrom erhalten, der der Kompressionsnorm genügt.
-
Um
eine Folge so verschlüsselter
Codewörter
zu entschlüsseln,
werden die umgekehrten Schritte ausgeführt: Jedem Wort des Stroms
werden die verschlüsselten
Bits entnommen, die in einen Pufferspeicher geschrieben werden;
wenn dieser Puffer voll ist oder wenn ein Synchronisationszeichen
des folgenden Paketes erreicht ist, wird die Bitfolge, die er enthält, entschlüsselt und
dann jeweils jedes entnommene verschlüsselte Bit im Strom durch das
entschlüsselte
Bit derselben Stelle im Puffer ersetzt; dann wird der Puffer geleert,
bevor in derselben Weise die Wörter
des folgenden Pakets verarbeitet werden.
-
Alternativ
hierzu wird fortlaufend („dem Strom
folgend") jedes
zu verschlüsselnde
Bit des Datenstroms verschlüsselt,
nachdem es dem Strom entnommen wurde, mit Hilfe einer Antivalenzverknüpfung mit
dem entsprechenden Bit eines Blocks des Verschlüsselungs-Pseudozufallsstroms
verschlüsselt
und dann an die Stelle zurückversetzt,
die es vorher im Datenstrom einnahm. Die Nachführung der Nummer des für die Antivalenzverknüpfung zu
verwendenden Bits im Block des Verschlüsselungs-Pseudozufallsstroms
kann mit einem Zähler erfolgen,
der bei jedem neuen verschlüsselten
Bit erhöht
wird. Dieses Verfahren vermeidet die Notwendigkeit, die zu verschlüsselnden
Bits in einem Puffer zu speichern, wie auch den Rest des Paketes
in Erwartung der fehlenden Bits; es verringert also gleichzeitig
die Kosten für
Speicherplatz und die Verarbeitungsdauern, die durch diese Speicherungen
hervorgerufen werden.
-
Die
Vorteile dieses fortlaufenden Verschlüsselungsverfahrens durch Pseudozufallsstrom
sind besonders wichtig für
die Entschlüsselung,
die im Allgemeinen in Geräten
stattfindet, deren Rechenkapazität
und Speicherplatz knapp sind.
-
Zum
Entschlüsseln
eines Datenstroms, der nach diesem Verfahren verschlüsselt wurde,
wird in gleicher Weise vorgegangen, wie zum Verschlüsseln: Fortlaufend
(„mit
dem Strom") wird
jedes zu entschlüsselnde
Bit des verschlüsselten
Datenstroms, nachdem es dem Strom entnommen wurde, mit Hilfe einer
Antivalenzverknüpfung
mit dem entsprechenden Bit des Entschlüsselungs-Pseudozufallsblocks entschlüsselt.
-
In
einem anderen Aspekt schlägt
die Erfindung einen von einem Computer lesbaren Träger vor, auf
dem ein Programmcode gespeichert ist, der die oben definierten Vorgänge ausführt, um
dem Computer zu ermöglichen,
einen komprimierten Datenstrom zu verschlüsseln oder umgekehrt einen
erfindungsgemäß verschlüsselten
komprimierten Datenstrom zu entschlüsseln.
-
Die
Erfindung erlaubt es, mit reversiblen oder nicht reversiblen Codewörtern unterschiedlicher
Länge mit
oder ohne Vorzeichen codierte Datenströme unter Erhaltung der Codesyntax
des Stroms zu verschlüsseln.
-
Die
Erfindung erlaubt ebenfalls, im Fall von Tabellen von Codewörtern mit
Vorzeichen, eine im Vergleich zu den Verfahren, die nur das Vorzeichenbit
verschlüsseln,
vollständigere
Verwürfelung
der Daten (insbesondere Bilder oder Töne) zu erreichen.
-
In
einem anderen Aspekt schlägt
die Erfindung einen Coder (oder einen Decoder) vor, wie er durch
den Patentanspruch 17 definiert wird.
-
Weitere
Merkmale und Vorteile der Erfindung erscheinen in der folgenden
Beschreibung, die sich auf die beigefügten Zeichnungen bezieht und
die ohne jegliche einschränkende
Wirkung mehrere bevorzugte Ausführungsformen
und -beispiele der Erfindung darstellt. Es zeigen:
-
1a und 1b eine
erfindungsgemäß angewandte
Tabelle, die die Tabelle B-12 des Anhangs B der Norm MPEG4 (ISO
14496-2) umfasst, sowie eine Spalte von Indizes, die jeweils jedem
Wort zugeordnet sind, und eine Spalte von Parametern, die die Anzahl
verschlüsselbarer
Bits jedes Wortes angeben.
-
2 ist
ein Teil der Tabelle B-23 des Anhangs B dieser Norm.
-
3 ist
ein Schema, das die erfindungsgemäße Verschlüsselung einer Folge von Wörtern eines
Paketes eines Datenstroms darstellt.
-
Die
verschlüsselbaren
Bits des durch RVLC („reversible
variable length coding" – reversible
variable Längencodierung)
codierten Teils eines MPEG4-Pakets (siehe 3) werden
nicht blockweise verschlüsselt,
sondern stromweise („stream
cipher" – Stromverschlüsselung)
FC, was die verschlüsselten
Bits an ihrer Stelle belässt.
Dies erlaubt es zu vermeiden, dass die Verschlüsselung zufällige Fehler verbreitet, die
durch die Übertragung
(vom Typ „drahtlos") verursacht wurden.
-
Das
Paket P weist eine Reihe von Makroblöcken MB1, ..., MB3 von Bewegungsdaten
auf, ein Trennungszeichen MM, gefolgt von einer Reihe von Makroblöcken MB4,
..., MB6, ... von Texturdaten.
-
Bei
jedem Anfangssynchronisationszeichen MSI1 eines Pakets P des Stroms 10 von
Videodaten wird ein neuer Pseudozufallsstrom FC erzeugt, der durch
bitweise Antivalenzverknüpfung
mit jedem der zu verschlüsselnden
Nutzdatenbits angewandt wird, die vorher dem Strom 10 entnommen
und in einem Register oder Pufferspeicher 11 gespeichert
wurden. Die so verschlüsselten
Bits werden dann wieder an ihrer Stelle eingesetzt; es werden nur
die Bits verschlüsselt,
die es erlauben, weiterhin der Kompressionsnorm zu genügen, d.
h. die Vorzeichenbits und einige zusätzliche Bits, wie hierunter
beschrieben.
-
Zur
Sicherstellung der Sicherheit muss angesichts dessen, dass die blockweise
Verschlüsselung
für sicherer
angesehen wird, jeder Pseudozufallsstrom zur Verschlüsselung
der Pakete, wie etwa P (begrenzt durch zwei aufeinander folgende
Synchronisationszeichen MSI1 und MSI2), einmalig sein.
-
Zur
Sicherstellung der Fehlertoleranz muss der Pseudozufallsstrom FC
geheim und fehlerlos vom Coder zum Decoder übermittelt werden können, auch
wenn der Strom 10 von Videodaten Fehler enthält.
-
Zur
Sicherstellung der Anpassbarkeit an die veränderliche Band breite muss,
wenn nur der Anfang des verschlüsselten
Pakets P empfangen wurde, der Anfang des Pakets P trotzdem entschlüsselt werden können. Dies
wird durch die Tatsache sichergestellt, dass jedes verschlüsselte Bit
unabhängig
von den anderen verschlüsselten
Bits ist und sich an der Stelle des entsprechenden unverschlüsselten
Bits befindet.
-
Der
Pseudozufallsstrom wird durch einen einmaligen Schlüssel C erzeugt,
der beispielsweise mit der zu verschlüsselnden Videodatei verbunden ist,
und durch Daten, die sich häufig ändern, die
vor Fehlern geschützt
sind und sich nie wiederholen; in einem MPEG-Strom gibt es nach
den Bildanfangsmarken („VOP
start code"), wie
etwa IMT (3), im Allgemeinen einen Zeitstempel
oder „time
stamp": Innerhalb
eines Filmes ist der Zeitstempel nie derselbe; ein von diesen Marken
ausgehend berechneter Verschlüsselungsstrom
wird sich also nie wiederholen; in einem anderen Film oder Datenstrom
können
sich dieselben Zeitstempel befinden, da jedoch der Schlüssel C der
Datei ein anderer ist, sind die Verschlüsselungsströme FC verschieden.
-
Der
Schlüssel
wird dem Decoder unabhängig
vom Strom übermittelt,
beispielsweise durch ein Protokoll mit öffentlichem Schlüssel. Wenn
sich ein Zeitstempel IMT nur am Anfang jedes Bildes (oder „video
object plane") befindet,
kann die dieser Marke entsprechende Information D1 mit einer zweiten
Information D2 verbunden werden, wie etwa dem Index I1M des ersten
Makroblocks des zu verschlüsselnden
Videopakets P. So ist diese Verbindung im ganzen Film einmalig.
-
Um
den Schlüssel
C und die Daten D1 und D2 zur Erzeugung eines Pseudozufallsstroms
FC zu verbinden, der sich sehr stark von einem anderen Pseudozufallsstrom
unterscheidet, der mit demselben Schlüssel und einer Information
D1 (Zeitstempel) erzeugt wurde, die sich nur sehr wenig vom ersten Zeitstempel
des vorangehenden Pakets unterscheidet, werden die kombinierten
Informationen D1 und D2 (auf 64 oder 128 Bit beispielsweise durch „0" aufgefüllt) mit
einem Blockverschlüsselungsalgorithmus ACB
wie etwa DES verschlüsselt,
wobei der Schlüssel
C der einmalige Geheimschlüssel
für die
Gesamtheit der Pakete des Stroms ist. Das Ergebnis wird einem Hash-Algorithmus
(etwa nach der Norm SHA1) unterworfen, der einerseits zum Ziel hat,
eine Meldung FC fester Länge
auszugeben, beispielsweise von 160 Bit bei SHA1, und andererseits
eine sehr verschiedene Meldung auszugeben, wenn der Eingang sich
wenig, sogar nur um ein einziges Bit, ändert.
-
Ein
derartiger SHA1-Algorithmus gibt 160 Bit aus, die durch Antivalenzverknüpfung auf
die zu verschlüsselnden
Nutzbits angewandt werden. Wenn es zwischen zwei aufeinander folgenden
Synchronisationszeichen (wie etwa MSI1 und MSI2 im Paket P) weniger
als 160 zu verschlüsselnde
Bits gibt, werden nur die ersten Bits der SHA1-Ausgabe verwendet; wenn
es dagegen mehr als 160 gibt, genügt es, mit Hilfe des einmaligen
Schlüssels
C, derselben Informationen D1 und D2 und eines Index D3, der erhöht wird,
einen anderen Verschlüsselungsstromblock
FC von 160 Bit zu erzeugen; in dieser Weise werden in dem Fall,
wo ein einziger Verschlüsselungsstromblock
FC nicht ausreichend groß ist,
um alle Bits des betrachteten Pakets P zu verschlüsseln, ein
oder mehrere zusätzliche
Blöcke
FC erzeugt, deren letzter nicht unbedingt vollständig verwendet wird. Um die Einmaligkeit
jedes Verschlüsselungsstromblockes
sicherzustellen, wird ein zusätzlicher
Index D3 in den Anfangsblock eingefügt, der bei jedem neuen Verschlüsselungsstromblock
erhöht
wird, der bei einem bestimmten Paket verwendet wird.
-
Auf
diese Weise kann der Verschlüsselungsstrom
FC der Datenbits des Videopakets nach einer der folgenden Formeln
erhalten werden:
FC = SHA1(einmaliger DESschlüssel ((Zeitstempel) & [Ergänzung auf
64 Bit])),
oder
FC = SHA1(einmaliger AESschlüssel ((Zeitstempel) & Index & [Ergänzung auf
128 Bit])),
je nachdem, ob eine DES- oder AES-Verschlüsselung
verwendet wird, um den Verschlüsselungsstrom FC
zu erzeugen.
-
Es
ist möglich,
Varianten dieses Verfahrens zu verwenden, die einen einzigen Schlüssel und
einen Zeitstempel kombinieren.
-
Um
einen Verschlüsselungsstrom
zu erhalten, der aus einer Folge von Blöcken fester Länge besteht,
können
verschiedene symmetrische blockweise Verschlüsselungsalgorithmen, wie etwa „twofish", „serpent" oder die AES-Varianten
zu 192 oder 256 Bit für
die Daten und/oder den Schlüssel
verwendet werden.
-
Zur
Verringerung der Vorhersagbarkeit der Eingangsdaten des blockweisen
ACB-Verschlüsselungsalgorithmus,
der zur Erzeugung des Verschlüsselungsstroms
verwendet wird, kann ein zweiter Schlüssel (C2 in 3)
in diese Eingangsdaten eingefügt
werden; dieser Schlüssel
kann bei jedem zu verschlüsselnden
Datenstrom (wie etwa einem Film) geändert werden, oder er kann
auch bei einem gegebenen Datenstrom (Film) in regelmäßigen Zeitabständen geändert werden
(beispielsweise jede Minute oder Sekunde), um das Sicherheitsniveau
zu erhöhen;
dieser zweite Schlüssel
kann unabhängig
vom Datenstrom übertragen
werden, was eine geringfügige
Vergrößerung der
zu übertragenden
Datenmenge bewirkt, oder kann auch durch einen dem Decoder bekannten
Pseudozufalls-Algorithmus aus dem ersten Schlüssel (oder Hauptschlüssel) berechnet
werden.
-
Wenn
Fehler in der Übertragung
des Datenstroms 10 auftreten, kann der Pseudozufallsstrom FC
vom Decoder in derselben Weise regeneriert werden, wie sie oben
für die
Verschlüsselung
beschrieben wurde, sofern die unverschlüsselten Daten D1 und D2 von
den Fehlern nicht betroffen sind (der Hauptschlüssel C wird ja getrennt vom
Strom 10 an den Decoder übertragen); dies wird im Allgemeinen der
Fall sein, da ein Zeitstempel etwa zwanzig Bits pro Paket ausmacht,
während
die Nutzdaten eines Pakets mehrere Tausend Bit darstellen können.
-
Dieses
Verfahren ist also mit den Tools der MPEG4-Norm kompatibel, die
erlauben, den Paketfehlern und isolierten Fehlern Abhilfe zu schaffen.
-
Die
Verwendung einer Hash-Funktion zur Erzeugung jedes Blocks des Verschlüsselungsstroms erlaubt
die Erhöhung
der Widerstandsfähigkeit
der Verschlüsselung
gegen Angriffe, die auf der Kenntnis unverschlüsselter Teile des Datenstroms
beruhen.
-
Derartige
unverschlüsselte
Teile können
aus einem oder mehreren vollkommen schwarzen Bildern bestehen oder
aus einem oder mehreren Bildern, die die Marke des Produzenten eines
Videofilms tragen, wie die, die im Allgemeinen im Vorspann eines
Films erscheinen; die Kenntnis dieser unverschlüsselten Bilder und der entsprechenden
verschlüsselten
Daten erlaubt einem „Angreifer", mehrere Blöcke des
Verschlüsselungsstroms
zu bestimmen, indem die verschlüsselten
Daten und die entsprechenden unverschlüsselten Daten an die Eingänge von
Antivalenzgattern angelegt werden; wenn diese Blöcke keiner Verwürfelung
durch ein Hash-Verfahren unterworfen wurden, ist es dann möglich, den
Schlüssel
ganz oder teilweise zu bestimmen; dagegen ist es dank der Verteilereigenschaft
der Hash-Algorithmen schwierig – oder
gar unmöglich – den Schlüssel aus
der Kenntnis von Blöcken
des Verschlüsselungsstromes
abzuleiten, da diese Blöcke
verwürfelt
wurden.
-
Die
Auswahl der zu verschlüsselnden
Nutzdatenbits, die den Makroblöcken
MB1 bis MB3 von Bewegungsdaten und den Makroblöcken MB4 bis MB6 (und folgenden)
von Texturdaten entnommen wurden, wird jetzt unter Bezug auf die 1a, 1b und 2 beschrieben.
-
Das
folgende Beispiel, das unter Bezug auf die 1a und 1b beschrieben
wird, betrifft die Tabelle B-12 von Codewörtern für die Codierung der Bewegungsvektoren.
-
Wie
in den 1a und 1b zu
erkennen, weist die Tabelle 1 vier Spalten 4, 3, 2, 5 auf, die enthalten:
- – Werte
V, in diesem Fall Werte von Differenzen von Bewegungsvektoren, wie
etwa V1 und V2;
- – Codewörter M,
die den verschiedenen zu verschlüsselnden
Werten V zugehören,
wie M1, M2, M3, M4, M33, M65;
- – Indizes
I, die zwischen 1 und 65 liegen, um jedes Wort M der Tabelle zu
kennzeichnen, wie etwa I1, I2, I33, I65;
- – Parameter
NBC, die jeweils jedem Wort M der Tabelle zugeordnet sind, wie etwa
NBC1, NBC2, NBC3, NBC33, zur Festlegung der Anzahl Bits des betrachteten
Wortes, deren Ersatz durch das komplementäre Bit ein anderes Wort der
Tabelle 1 erzeugt.
-
In
dieser Figur ist zu erkennen, dass der größte Teil der Codewörter M von
mindestens acht Bits eine Anzahl NBC verschlüsselbarer Bits von zwei, drei
oder vier aufweist; insbesondere können in der Gruppe der vier
Codewörter
von dreizehn Bits, zu denen das Wort M33 gehört, zwei Bits jedes Wortes komplementiert
(umgekehrt) werden.
-
Wie
oben beschrieben wurde, sind die verschlüsselbaren Bits dieser Tabelle
die Bits, die rechts von jedem Codewort gruppiert sind; wenn dies
nicht der Fall ist, muss die Tabelle außerdem für jedes Codewort M die Angabe
der Stellung jedes verschlüsselbaren
Bits dieses Wortes enthalten.
-
Zur
Verschlüsselung
einer Folge von Codewörtern
M, die einen der Makroblöcke
MB1, ..., MB3 von Bewegungsdaten des Datenpakets bilden, wird der
Tabelle 1 die Anzahl NBC verschlüsselbarer
Bits des 1. Wortes M entnommen; die verschlüsselbaren Bits des Wortes M
werden in den Puffer 11 (3) übertragen; der
Vorgang wird für
die folgenden Wörter
des zu verschlüsselnden
Stroms 10 wiederholt und die verschlüsselbaren, diesen Wörtern entnommenen
Bits werden nacheinander im Puffer 11 verkettet, bis dieser
voll ist oder bis zum Ende des Pakets; zu diesem Zeitpunkt werden
die Bits des Puffers 11 verschlüsselt, indem sie ebenso, wie
der Verschlüsselungsstrom
FC, an die Eingänge
von 160 Antivalenzgattern angelegt werden; die ausgegebenen verschlüsselten
Bits werden bitweise in den Strom von Wörtern an den jeweiligen Stellen
der Bits eingesetzt, die dem Strom 10 entnommen wurden, um
einen verschlüsselten
Strom zu bilden.
-
Alternativ
können
die verschlüsselbaren
Bits fortlaufend („dem
Strom folgend")
verschlüsselt
werden, wie oben beschrieben wurde.
-
Um
ein Paket – oder
einen Teil eines beschnittenen Pakets – eines erfindungsgemäß verschlüsselten
Datenstroms zu entschlüsseln,
erfolgt die Analyse des Stroms von links nach rechts; wenn ein Codewort
von einem MPEG-Decoder analysiert wird, wird bei jedem Bit eine
Entscheidung gefällt; nach
dem Lesen des letzten unverschlüsselten
Bits eines verschlüsselten
Wortes bestimmt der Decoder die Gruppe von verschlüsselten
Wörtern
der Tabelle, die den bereits gelesenen unverschlüsselten Bits entspricht und
bestimmt dementsprechend die Anzahl verschlüsselter Bits, die dem letzten
unverschlüsselten
Bit folgen; wenn beispielsweise die unverschlüsselte Bitfolge „000010" lautet, erlaubt
das Lesen der Tabelle 1 zu bestimmen, dass das verschlüsselte Wort
zwei verschlüsselte
Bits aufweist, die diesen unverschlüsselten Bits folgen.
-
Die
Verarbeitung dieser Bits ist dann identisch mit der zum Verschlüsseln angewandten:
Die zu entschlüsselnden
Bits werden in einem Puffer verkettet, bis er voll ist oder bis
zum Ende des Pakets; der Inhalt des Puffers kann bitweise mit einem
Entschlüsselungsstrom,
der auf dieselbe Weise erzeugt wurde, wie sie oben zum Verschlüsseln angegeben
wurde, an die Eingänge
von Antivalenzgattern angelegt werden; die entschlüsselten
Bits an den Ausgängen
der Gatter werden wieder bitweise an den Stellen, die die verschlüsselten
Bits einnahmen, in den zu entschlüsselnden Strom eingefügt.
-
Eine
identische oder ähnliche
Datenverarbeitung, wie die soeben beschriebene, kann auf die mit
den reversiblen Codewörtern
der Tabelle B-23 komprimierten Daten angewandt werden, deren 11 erste
Codes in 2 erkennbar sind: Auf dunkelgrauem
Hintergrund erscheinen die Zeichenbits, die verschlüsselt werden
können;
auf hellgrauem Hintergrund erscheinen diejenigen, die auch nach
dem oben für
die Tabelle B-12 beschriebenen Verfahren verschlüsselt werden können.