Die vorliegende Erfindung bezieht sich auf die Verschlüsselung diskreter
Signale, wie z.B. auf die Verschlüsselung von Sprachinformationen, bzw. die entsprechende
Entschlüsselung.
Bei der Nutzung, Übertragung, Verwaltung und Archivierung von Audiomaterial
ist es häufig wünschenswert, die entsprechenden Inhalte vor einem unbefugten Zugriff
zu schützen. Besonders im Bereich der Sprachaufzeichnung besteht die Notwendigkeit,
daß ein unbefugtes Abspielen oder heimliches Abhören bei der Übertragung verhindert
werden kann. Gleichzeitig soll jedoch das verwendete Datenformat weiterhin gültig
bleiben, damit die zum Abspielen verwendeten Geräte auch bei einem unberechtigten
Zugriff nicht in Fehlerzustände übergehen. Dies gilt insbesondere für komprimierende
Datenformate wie z.B. die Datenformate gemäß den Standards MPEG2 Layer 3 und
MPEG2/4 AAC (AAC = Advanced Audio Coding = fortgeschrittene Audiokodierung) .
Bei den Audioanwendungen kommt hinzu, daß die verschlüsselten
Signale beim Abhören ohne Entschlüsselung der Abhöranlage keinen Schaden zufügen
dürfen. Die verschlüsselten Signale sollten deshalb derart verschlüsselt sein, daß
sie bei Abspielen ohne Entschlüsselung kein Knacksen, Krachen oder andere extreme
Dynamiksprünge erzeugen. Während es bei der Verschlüsselung von Musikdaten häufig
genügt, die Qualität der unauthorisierten Wiedergabe stark einzuschränken, wird
bei Sprachinhalten insbesondere gefordert, daß bei unauthorisierter Nutzung
die Wiedergabequalität der verschlüsselten Daten eine Verständlichkeit der Sprachinformationen,
die beispielsweise Interviews, Reportagen usw. sein können, nicht mehr gestatten
soll.
In der Patentanmeldung W099/51279 mit dem Titel "Vorrichtung und Verfahren
zum Erzeugen eines verschlüsselten Audiound/oder Videostroms", deren Anmelderin
ebenfalls die Fraunhofer-Gesellschaft ist, wird ein Verfahren zur Verwürfelung von
kodierten Audiodaten beschrieben, das auf Vertauschungen von Linien im Frequenzbereich
basiert. Mit diesem Verfahren gelingt es, Musiksignale weitgehend unkenntlich zu
machen. Bei Sprachinhalten jedoch ist die genaue spektrale Zusammensetzung des Signals
für die Verständlichkeit von geringem Belang, so daß, obwohl die Stimme eines
Sprechers stark verfremdet wird, der Inhalt des Gesprochenen bzw. die Sprachinformationen
verständlich bleiben.
Das Dokument Franaszek: "Digital Speech Scrambler", IBM Technical
Disclosure Bulletin, Bd. 23, Nr. 1, S. 403-408, beschreibt eine digitalen Sprachverwürfler.
Um eine Sprachverwürflung zu erzielen, werden die Abtastwerte eines digital abgetasteten
Sprachsignals in Perioden pi eingeteilt, jeweils zwei zufällig ausgewählte
Perioden paarweise miteinander linear kombiniert durch Subtraktion und Addition
und die so kombinierten Periodenpaare in permutierter Reihenfolge übertragen bzw.
ausgegeben.
Es findet bei dem digitalen Sprachverwürfler von Dokument D1 keine
Transformation vom Zeitbereich in den Frequenzbereich und umgekehrt statt. Ferner
sind die Blockgrößen bezüglich der Verwürfelung und der Kodierung der Zeitblöcke
im Sinne der Erfindung bei dem Verwürfler von besagtem Dokument unterschiedlich.
So werden immer Paare von Zeitperioden verlustfrei in zwei linear kombinierte Perioden
kodiert (S. 405, Z. 19-23). Die Verwürfelung findet aber nicht in Einheiten von
Paaren von Perioden sondern in Einheiten von einzelnen Perioden statt (S. 405, Z.
15 sowie S. 406, Z. 11 ff).
Das Dokument Goldburg: "A secure analog speech scrambler using the
discrete cosine transform", Advances in Cryptology - Asiascrypt, proccedings of
the international conference on the theory and application of cryptology, Berlin,
Springer, Konferenz-Band 1, S. 299-311, bezieht sich auf die Sprachverschlüsselung
mit Hilfe der Verwürfelung der DCT-Koeffizienten, die aus einem Vektor von Audio-Abtastwerten
gewonnen wurden (vergleiche Seite 301). Das Dokument beschreibt folglich nicht die
Änderung einer vorbestimmten Reihenfolge von kodierten Datenblöcken gemäß
einer vorbestimmten Vertauschungsvorschrift sondern vielmehr die Änderung der vorbestimmten
Reihenfolge der Transformations-Koeffizienten innerhalb eines kodierten Datenblocks.
Das Dokument EP 0 920 209 A1 bezieht sich auf ein Verfahren und eine
Vorrichtung zur Verwürfelung von digitalen Videodaten. Nach besagtem Dokument werden
die Wechselanteil-Komponenten AC1 aus einem Strom F1 extrahiert, der aus aufeinanderfolgenden
Paketen von Videodaten besteht, die gemäß dem MPEG2-Video-Standard kodiert
sind, wobei diese DCT-Koeffizienten daraufhin permutiert werden.
Die Aufgabe der vorliegenden Erfindung besteht darin, ein Verfahren
und eine Vorrichtung zum Verschlüsseln eines diskreten Signals sowie ein Verfahren
und eine Vorrichtung zur entsprechenden Entschlüsselung zu schaffen, so daß
die Verschlüsselung einerseits möglichst sicher und andererseits keine Fehler bei
einer unauthorisierten Verarbeitung hervorruft und mit bisherigen Kodierungen verträglich
ist.
Diese Aufgabe wird durch ein Verfahren gemäß Anspruch 1 oder
8 und eine Vorrichtung gemäß Anspruch 2 oder 9 gelöst.
Der vorliegenden Erfindung liegt die Erkenntnis zugrunde, daß
eine sehr hohe Sicherheit der Verschlüsselung durch Einführung einer zeitlichen
Diskontinuität erzielt werden kann, und daß das Auftreten von Fehlern bei
einer unauthorisierten Verarbeitung derartig verschlüsselter Signale dadurch verhindert
und die Verträglichkeit mit Standardkodierungen dadurch gewährleistet werden kann,
daß die Änderung der zeitlichen Reihenfolge nach einer Kodierung des diskreten
Signals , d.h. bezüglich kodierter Datenblöcke, in die ein Kodierer das diskrete
Signal kodiert, durchgeführt wird. Auf diese Weise wird einerseits verhindert, daß
ein Dekodierer, der das verschlüsselte Signal empfängt, nicht in undefinierte Zustände
gelangt, da bei der Verschlüsselung die zeitliche Diskontinuität in Einheiten von
kodierten Datenblöcken erzeugt wird. Andererseits wird verhindert, daß beim
Zusammenspiel mit einem beliebigen Kodierverfahren, wie z.B. bei einem komprimierenden
Kodierverfahren, die demselben zugrunde liegenden zeitlichen Annahmen, wie z.B.
die zeitliche und spektrale Verdeckung in dem Fall von psychoakustischen Audioverfahren,
weiterhin gültig bleiben und somit die erfindungsgemäße Verschlüsselung mit
solchen Kodierungen verträglich und die Implementierung der erfindungsgemäßen
Verschlüsselung vereinfacht ist.
Bei einer Verschlüsselung gemäß der vorliegenden Erfindung werden
die aufeinanderfolgenden Abtastwerte eines diskreten Signals in aufeinanderfolgende
Zeitblöcke eingeteilt, die daraufhin in kodierte Datenblöcke mit einer vorbestimmten
Reihenfolge kodiert werden. Anschließend wird die vorbestimmte Reihenfolge
der kodierten Datenblöcke gemäß einer vorbestimmten Vertauschungsvorschrift
geändert.
Bei der Entschlüsselung gemäß der vorliegenden Erfindung wird
die Reihenfolge der kodierten Datenblöcke eines verschlüsselten Signals, das einem
diskreten Signal, das aus aufeinanderfolgenden Abtastwerten besteht, in verschlüsselter
Form entspricht, gemäß einer vorbestimmten Vertauschungsvorschrift bzw. einer
inversen Vertauschungsvorschrift geändert, woraufhin die kodierten Datenblöcke in
geänderter Reihenfolge in aufeinanderfolgende Zeitblöcke mit einer vorbestimmten
Reihenfolge dekodiert werden. Dadurch werden aus den aufeinanderfolgenden Zeitblöcken
die aufeinanderfolgenden Abtastwerte des diskreten Signals erzeugt.
Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung wird
die Änderung der vorbestimmten Reihenfolge der kodierten Datenblöcke bei der Verschlüsselung
durch Permutieren einer vorbestimmten Anzahl von aufeinanderfolgenden Datenblöcken
der kodierten Datenblöcke erreicht, wobei hierzu ein Permutationsvektor als Vertauschungsvorschrift
erzeugt wird. Die Permutation kann bezüglich aufeinanderfolgender Gruppen von kodierten
Datenblöcken mit gleicher Größe bzw. Länge durchgeführt werden. Für jede Permutationsgruppe
kann ein anderer Permutationsvektor erzeugt und verwendet werden. Die Erzeugung
der Permutationsvektoren findet bei der Dekodierung auf eine vorbestimmte Weise
statt, wobei eine korrekte Entschlüsselung dadurch gewährleistet wird, daß
bei der Entschlüsselung zur Rückpermutation der Gruppen von kodierten Datenblöcken
entsprechende inverse Permutationsvektoren erzeugt und verwendet werden.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden
nachfolgend bezugnehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
- Fig. 1
- ein Blockschaltbild einer Verschlüsselungsvorrichtung gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung;
- Fig. 2
- ein Blockschaltbild einer Entschlüsselungsvorrichtung gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung;
- Fig. 3
- eine schematische Skizze, die ein exemplarisches Ausführungsbeispiel einer Verschlüsselung
zeigt; und
- Fig. 4
- eine schematische Skizze, die ein exemplarisches Ausführungsbeispiel einer Entschlüsselung
zeigt.
Bevor im folgenden die vorliegende Erfindung anhand der Fig. 1 bis
4 näher erläutert wird, wird darauf hingewiesen, daß, obwohl sich die nachfolgende
Beschreibung auf die Verschlüsselung von Audiosignalen bezieht, die vorliegende
Erfindung ferner auch auf andere diskrete Signale anwendbar ist, wie z.B. auf die
Verschlüsselung von Bild- und Videosignalen.
In Fig. 1 ist eine Verschlüsselungsvorrichtung gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung gezeigt, die ein diskretes Zeitsignal bzw. ein Audiosignal
in kodierte Datenblöcke in verschlüsselter Form umwandelt. Die Vorrichtung von Fig.
1 umfaßt im wesentlichen einen psychoakustischen Kodierer 10, der das Zeitsignal
empfängt und in kodierte Datenblöcke umwandelt bzw. kodiert, und eine Einrichtung
12 zur Änderung der Reihenfolge der kodierten Datenblöcke.
Der psychoakustische Kodierer 10 umfaßt eine Einrichtung 14
zur Einteilung der aufeinanderfolgenden diskreten Abtastwerte, aus denen das Zeitsignal
besteht, in Zeitblöcke und eine Einrichtung 16 zur Kodierung der Zeitblöcke in kodierte
Datenblöcke.
Die Einrichtung 12 zur Änderung der Reihenfolge umfaßt eine
Einrichtung 18 zur Erzeugung eines Permutationsvektors, eine Schreibeinrichtung
20, einen ersten Zwischenspeicher 22, einen zweiten Zwischenspeicher 24 und eine
Ausleseeinrichtung 26. Ein Eingang der Schreibeinrichtung 20 ist mit einem Ausgang
des psychoakustischen Kodierers 10 bzw. der Einrichtung 16 zur Kodierung verbunden,
während zwei Ausgänge derselben mit jeweils einem Eingang des ersten und zweiten
Zwischenspeichers 22 und 24 verbunden sind. Ein Ausgang der Einrichtung 18 zur Erzeugung
eines Permutationsvektors ist mit einem Eingang der Ausleseeinrichtung 26 verbunden,
um einen Permutationsvektor an dieselbe auszugeben, wobei die Ausleseeinrichtung
zwei weitere Eingänge aufweist, die mit den Ausgängen der Zwischenspeicher 22 und
24 verbunden sind. Die Ausleseeinrichtung 26 ist an einem Ausgang mit einem Ausgangspuffer
28 verbunden, um an denselben kodierte Datenblöcke in verschlüsselter Form auszugeben.
Nachdem im vorhergehenden der Aufbau der Verschlüsselungsvorrichtung
von Fig. 1 beschrieben worden ist, wird nachfolgend die Funktionsweise desselben
beschrieben.
Das Zeitsignal ist ein diskretes Audiosignal, das aus aufeinanderfolgenden
Abtastwerten besteht. Der psychoakustische Kodierer 10 basiert beispielsweise auf
einem Kodierverfahren des AAC-Standards. Die Einrichtung 14 teilt die aufeinanderfolgenden
Abtastwerte beispielsweise in Zeitblöcke mit einer Anzahl aufeinanderfolgender Abtastwerte
ein, die gleich einer Potenz von 2 ist. Zur Handhabung von Aliasingeffekten kann
es vorgesehen sein, eine Einteilung in sich gegenseitig überschneidende Zeitblöcke
vorzusehen, so daß jeder Abtastwert zwei Zeitblöcken zugeteilt wird, wie es
beispielsweise bei der AAC-Kodierung der Fall ist.
Die Einrichtung 16 zur Kodierung der Zeitblöcke in kodierte Datenblöcke
empfängt die Zeitblöcke von der Einrichtung 14 in zeitlicher Reihenfolge und führt
daraufhin die Kodierung derselben durch. Die Kodierung eines Zeitblocks kann entweder
einzeln bzw. isoliert Zeitblock für Zeitblock oder abhängig von vorhergehenden und
nachfolgenden Zeitblöcken durchgeführt werden, um beispielsweise psychoakustische
Modelle, wie z.B. die zeitliche und spektrale Verdeckung, zu berücksichtigen. Die
Einrichtung 16 zur Kodierung der Zeitblöcke gibt die kodierten Datenblöcke an die
Schreibeinrichung 20 in einer vorbestimmten, von dem Kodierverfahren abhängigen
Reihenfolge aus. Die Datenblöcke können entweder alle dieselbe Länge oder unterschiedliche
Längen aufweisen, wie z.B. in dem Fall, daß die Datenblöcke einen MPEG2/4
AAC konformen Aufbau aufweisen.
Die Schreibeinrichtung 20 empfängt die kodierten Datenblöcke und schreibt
die kodierten Datenblöcke nacheinander in einen aktuellen der Zwischenspeicher 22
und 24, wobei dieselben zusammen als ein Wechselpuffer wirken, wie es im folgenden
beschrieben wird. Die Größe der Zwischenspeicher 22 und 24 ist ausreichend
bemessen, um N kodierte Datenblöcke zu speichern, wobei N eine Ganzzahl größer
1 ist (N>1). Die Schreibeinrichtung 20 beschreibt den aktuellen der Speicher
22 und 24 in der Reihenfolge, in der die kodierten Datenblöcke von der Einrichtung
16 übertragen werden so lange, bis sich N kodierte Datenblöcke in dem aktuellen
der Zwischenspeicher 22 und 24 befinden. Wenn der aktuelle der Zwischenspeicher
22 und 24 voll ist, d.h. N gespeicherte kodierte Datenblöcke aufweist, liest die
Ausleseeinrichtung 26 den gerade gefüllten Zwischenspeicher 22 und 24 aus, während
die Schreibeinrichtung 20 den anderen der beiden Zwischenspeicher 22 bzw. 24 mit
den kodierten Datenblöcken von der Einrichtung 16 in der Reihenfolge ihres Empfangs
beschreibt.
Die Ausleseeinrichtung 26 liest den zuletzt vollständig beschriebenen
Zwischenspeicher 22 bzw. 24 in einer anderen Reihenfolge aus, als derselbe beschrieben
wurde. Genauer ausgedrückt liest die Ausleseeinrichtung 26 den jeweiligen Zwischenspeicher
22 bzw. 24 in einer permutierten Reihenfolge aus, die durch einen Permutationsvektor
der Größe N festgelegt wird, der durch die Einrichtung 18 zur Erzeugung eines
Permutationsvektors erzeugt und zugeführt wird, wie es im folgenden beschrieben
werden wird. Durch das permutierte Auslesen wird die Reihenfolge der N kodierten
Datenblöcke gemäß einer Vertauschungsvorschrift geändert, die durch den Permutationsvektor
festgelegt wird. Die in permutierter Reihenfolge ausgelesenen kodierten Datenblöcke
bilden zusammen eine Permutationsgruppe von kodierten Datenblöcken, die die Ausleseeinrichtung
26 an den Ausgangspuffer 28 ausgibt, an den sich beispielsweise eine Computerschnittstelle
(nicht gezeigt) anschließt.
Die Einrichtung 18 erzeugt den Permutationsvektor der Größe
N, der die Vertauschungsvorschrift festlegt, basierend auf welcher die kodierten
Datenblöcke einer Permutationsgruppe permutiert werden, für jede Permutationsgruppe
neu. Die Erzeugung eines Permutationsvektors basiert auf N Pseudozufallszahlen,
die durch den Pseudozufallszahlengenerator 30 erzeugt werden. Der Pseudozufallszahlengenerator
30 erzeugt für die Erzeugung jedes Permutationsvektors der Länge N nacheinander
N Pseudozufallszahlen und gibt dieselben an den Sortierer 34 aus, wobei der Zähler
32 bei der Ausgabe jeder Pseudozufallszahl einen Zählerwert inkrementiert und an
den Umordner 36 ausgibt, wobei der Zähler 32 mit einem Wert von 0 beginnt, um bei
der ersten Pseudozufallszahl einen Wert von 1 auszugeben. Auf diese Weise werden
die Pseudozufallszahlen, die von dem Pseudozufallszahlengenerator 30 ausgegeben
werden, parallel zur Erzeugung nummeriert bzw. mit Indices in der Reihenfolge ihrer
Generierung versehen. Die durch den Pseudozufallszahlengenerator 30 erzeugten Pseudozufallszahlen
bilden zusammen einen Zufallszahlenvektor bzw. ein Zufallszahlenarray aus N Pseudozufallszahlen,
während die durch den Zähler 32 erzeugten Zahlen ein Indexvektor bzw. ein Indexarray
bilden, der bzw. das aus ansteigenden Zahlen von 1 bis N besteht. Der Sortierer
34 empfängt den Zufallszahlenvektor und sortiert denselben mit einem geeigneten
Sortierverfahren zum Beispiel in ansteigender Reihenfolge. Der Sortierer 34 ist
mit dem Umordner 36 gekoppelt, um es zu ermöglichen, daß der Umordner 36 den
von dem Zähler 32 empfangenen Indexvektor parallel zu der Sortierung des Zufallszahlenvektors
umordnet. Das umgeordnete bzw. permutierte Indexarray, das von dem Umordner 36 erzeugt
wird, stellt die Vertauschungsvorschrift für die N kodierten Datenblöcke dar, die
von der Ausleseeinrichtung als nächstes gelesen werden, und wird durch den Umordner
36 als Permutationsvektor an die Ausleseeinrichtung 26 ausgegeben, die dasselbe,
wie es im vorhergehenden beschrieben wurde, zur Definition der Auslesereihenfolge
bezüglich des entsprechenden Zwischenspeichers 22 bzw. 24 verwendet.
Nachdem die Ausleseeinrichtung 26 die N kodierten Datenblöcke aus
dem einen Zwischenspeicher 22 bzw. 24 gelesen hat, und gleichzeitig die Schreibeinrichtung
den anderen Zwischenspeicher mit den nächsten N kodierten Datenblöcken von dem Kodierer
10 gefüllt hat, wechseln die Schreibeinrichtung 20 und die Ausleseeinrichtung 26
zu dem jeweils anderen Zwischenspeicher 22 bzw. 24, wobei der Auslesevorgang bezüglich
der neuen in den Wechselpuffer geschriebenen kodierten Datenblöcken durchgeführt
wird, die daraufhin in permutierter Reihenfolge an den Ausgangspuffer ausgegeben
werden. Insgesamt ergibt sich am Ein- und Ausgang des Ausgangspuffers somit ein
verschlüsseltes Signal aus kodierten Datenblöcken in permutierter Reihenfolge, das
bei unauthorisierter Verarbeitung ohne Entschlüsselung und in dem Fall von Sprache
eine Verständlichkeit der Sprachinformationen verhindert, wie es in Bezug auf Fig.
3 und 4 näher beschrieben werden wird.
Im folgenden wird bezugnehmend auf Fig. 2 eine Entschlüsselungsvorrichtung
gemäß einem Ausführungsbeispiel der vorliegenden Erfindung erläutert. Die
Entschlüsselungsvorrichtung von Fig. 2 ist vorgesehen, um die in verschlüsselter
Form ausgegebenen kodierten Datenblöcke der Verschlüsselungsvorrichtung von Fig.
1 wieder in ein Zeitsignal umzuwandeln, und zwar je nach der verwendeten Kodierung
auf verlustbehaftete oder verlustlose Weise.
Die Vorrichtung von Fig. 2 umfaßt eine Einrichtung 38 zum Ändern
der Reihenfolge der empfangenen kodierten Datenblöcke, die das verschlüsselte Signal
darstellen, sowie einen Dekodierer 40, der mit der Einrichtung 38 verbunden ist
und die Dekodierung der kodierten Datenblöcke vornimmt.
Die Einrichtung 38 weist eine zu der Einrichtung 12 der Verschlüsselungsvorrichtung
von Fig. 1 ähnliche Anordnung auf, und besteht aus einer Schreibeinrichtung 42,
einem Zwischenspeicher 1 44, einem Zwischenspeicher 2 46, einer Ausleseeinrichtung
48 und einer Einrichtung 50 zum Erzeugen eines inversen Permutationsvektors, die
einen zu der Einrichtung 18 der Verschlüsselungsvorrichtung von Fig. 1 ähnlichen
Aufbau aufweist und deshalb aus Übersichtlichkeitsgründen in Fig. 2 nicht detaillierter
dargestellt ist. Die Schreibeinrichtung 42 empfängt an einem Eingang die kodierten
Datenblöcke, die in der verschlüsselten Form vorliegen, und ist an zwei Ausgängen
mit einem Eingang des Zwischenspeichers 44 bzw. des Zwischenspeichers 46 verbunden.
Die Ausleseeinrichtung umfaßt drei Eingänge, von denen einer mit einem Ausgang
der Einrichtung 50 zum Erzeugen eines inversen Permutationsvektors und die anderen
beiden mit jeweils einem Ausgang des Zwischenspeichers 44 bzw. 46 verbunden sind.
Ein Ausgang der Ausleseeinrichtung 48 ist mit dem Dekodierer 40 verbunden, um die
dekodierten Datenblöcke in vorbestimmter Reihenfolge, d.h. in der für die Dekodierung
nach dem jeweiligen Kodierverfahren vorgesehenen Reihenfolge, auszugeben.
Der Dekodierer 40 umfaßt eine Einrichtung 52 zum Dekodieren
der kodierten Datenblöcke, die von der Ausleseeinrichtung 48 ausgegeben werden,
sowie eine sich an die Einrichtung 52 anschließende Einrichtung 54 zum Bilden
der aufeinanderfolgenden Abtastwerte, wobei die Einrichtung 54 das Zeitsignal beispielsweise
an einen Digital/Analog-Wandler (nicht gezeigt) oder dergleichen ausgibt.
Nachdem im vorhergehenden der Aufbau der Entschlüsselungsvorrichtung
von Fig. 2 beschrieben worden ist, wird im folgenden die Funktionsweise derselben
beschrieben.
Die Schreibeinrichtung 42 empfängt die kodierten Datenblöcke, die
in verschlüsselter Form vorliegen, und gibt dieselben in der Reihenfolge, in der
sie übertragen werden, an einen aktuellen der Zwischenspeicher 44 und 46 aus, die
wie bei der Verschlüsselungsvorrichtung von Fig. 1 als Wechselpuffer zusammenwirken.
Während die Schreibeinrichtung 42 einen der beiden Zwischenspeicher 44 und 46 nacheinander
mit N kodierten Datenblöcken füllt, liest die Ausleseeinrichtung 48 den anderen
Zwischenspeicher aus. Während das Befüllen eines Zwischenspeichers mit den kodierten
Datenblöcken in der Übertragungsreihenfolge geschieht, wird das Auslesen des anderen
Zwischenspeichers in permutierter Reihenfolge ausgeführt, die von dem inversen Permutationsvektor
abhängt, der von der Einrichtung 50 erzeugt wird. Ein inverser Permutationsvektor
bedeutet hierin, daß die durch den inversen Permutationsvektor erzeugte Vertauschungsvorschrift
die Vertauschungen, die durch die Entschlüsselungsvorrichtung von Fig. 1 an einer
jeweiligen Vertauschungs- bzw. Permutationsgruppe von N kodierten Datenblökken vorgenommen
worden sind, wieder rückgängig macht.
Die Einrichtung 50 erzeugt die inversen Permutationsvektoren pro Auslesevorgang
beispielsweise mittels einer gleichen Anordnung von Einrichtungen, wie sie für die
Einrichtung 18 in Fig. 1 dargestellt ist, wobei die Einrichtung 50 jedoch aus dem
Permutationsvektor, wie er durch die Einrichtung 18 erzeugt wird, durch eine geeignete
Einrichtung einen inversen Permutationsvektor erzeugt, indem beispielsweise die
durch den Permutationsvektor festgelegte Vertauschungsvorschrift auf einen Vektor
angewendet wird, wie er von dem Zähler (siehe 32 in Fig. 1) ausgegeben wird, d.h.
einen Vektor aus geordneten Zahlen von 1 bis N.
Die von der Ausleseeinrichtung 48 in permutierter Reihenfolge ausgelesenen
N kodierten Datenblöcke werden der Einrichtung 52 zum Dekodieren der kodierten Datenblöcke
zugeführt, wobei dieselben nun in der vorbestimmten Reihenfolge vorliegen, die zur
Dekodierung der kodierten Datenblöcke gemäß dem dem Dekodierer 44 zugrundeliegenden
Kodierverfahren notwendig ist, um ein korrektes Zeitsignal zu erhalten.
Nachdem die Ausleseeinrichtung 48 den jeweiligen Zwischenspeicher
ausgelesen hat bzw. die Schreibeinrichtung 42 den anderen Zwischenspeicher vollständig
gefüllt hat, liest die Ausleseeinrichtung den gerade von der Schreibeinrichtung
42 befüllten Zwischenspeicher aus, während die Schreibeinrichtung 42 den Zwischenspeicher
beschreibt, der von der Ausleseeinrichtung 48 ausgelesen worden ist.
Die Einrichtung 52 dekodiert die kodierten Datenblöcke und gibt Zeitblöcke
mit vorbestimmter Reihenfolge aus. Die Einrichtung 54 empfängt die Zeitblöcke und
bildet aus denselben die aufeinanderfolgenden Abtastwerte, aus denen das Zeitsignal
besteht, und gibt dieselben beispielsweise an einen Analog/Digital-Wandler (nicht
gezeigt) aus.
Nachdem im vorhergehenden Ausführungsbeispiele für eine Verschlüsselungs-
bzw. Entschlüsselungsvorrichtung beschrieben worden sind, wird im folgenden bezugnehmend
auf die Fig. 3 und 4 ein explizites Ausführungsbeispiel beschrieben, bei dem ein
diskretes Signal durch die Vorrichtung von Fig.1 in ein verschlüsseltes Signal verschlüsselt
und letztgenanntes durch die Vorrichtung von Fig. 2 entschlüsselt wird, wobei zusätzlich
auf Fig. 1 und 2 Bezug genommen wird.
In den Fig. 3 und 4 sind mit Rechtecken Abtastwerte des Zeit- bzw.
Audiosignals, Zeitblöcke bzw. Datenblöcke dargestellt, wie es in der Beschreibung
angegeben ist. Um die Datenblöcke voneinander unterscheiden zu können, sind die
Datenblöcke jeweils mit einem großen Buchstaben A - 0 markiert.
Fig. 3 stellt schematisch einen Verschlüsselungsvorgang gemäß
der vorliegenden Erfindung dar. Bei 60 ist eine Aufeinanderfolge von Abtastwerten
62 gezeigt, die das Zeitsignal bzw. das diskrete Signal bilden, wie es der Verschlüsselungsvorrichtung
von Fig. 1 zugeführt wird.
Bei 64 ist eine Aufeinanderfolge von Zeitblöcken 66 gezeigt, wie sie
von der Einrichtung 14 von Fig. 1 erzeugt wird. Wie es bereits erwähnt worden ist,
kann sich jeder Abtastwert in einem oder mehreren der Zeitblöcke 66 befinden, bzw.
die Zeitblöcke können sich gegenseitig überschneiden, um Aliasingartefakte auszumerzen.
Bei 68 ist eine Aufeinanderfolge von kodierten Datenblöcken A - N
gezeigt, die in der vorbestimmten Reihenfolge vorliegen, wie sie von der Einrichtung
16 von Fig. 1 ausgegeben werden. Wie es zu sehen ist, kann jeder kodierte Datenblock
70 eine individuell unterschiedliche Länge bzw. Größe aufweisen, wie es durch
die unterschiedlichen Größen der Blöcke veranschaulicht ist.
Bei 72 ist ein Zustand dargestellt, wie er sich für die aufeinanderfolgenden
kodierten Datenblöcke 70 während der Verschlüsselung bei der Verschlüsselungsvorrichtung
von Fig. 1 ergibt. Bei dem Zustand 72, wie auch bei den folgenden Zuständen der
Fig. 3, sind insbesondere die Inhalte des Zwischenspeichers 1 (22 in Fig. 1), des
Zwischenspeichers 2 (24 in Fig. 1) und des Ausgangspuffers (28 in Fig. 1) für den
jeweiligen Zustand dargestellt. Bei 72 ist der Zustand für den exemplarischen Fall
dargestellt, daß die Vertauschungsgruppengröße bei der Verschlüsselung
bzw. Entschlüsselung auf 5 eingestellt ist. Der bei 72 dargestellte Zustand entspricht
dem Zustand, wie er sich bei der Vorrichtung von Fig. 1 einstellt, nachdem von den
Datenblöcken 70 bei 68 die ersten fünf A - E in den aktiven bzw. aktuellen Zwischenspeicher,
in diesem Fall den Zwischenspeicher 1, geschrieben worden sind. Die Werte in dem
Zwischenspeicher 2 und dem Ausgangspuffer, die beispielsweise dieselbe Länge bzw.
Größe wie der Zwischenspeicher 1 aufweisen können, hängen von vorhergehenden
kodierten Datenblöcken ab, und sind deshalb mit Bindestrichen dargestellt. Wie es
zu sehen ist, sind die kodierten Datenblöcke A - E in ihrer vorbestimmten Reihenfolge
in den Zwischenspeicher 1 abgelegt worden.
Bei 74 ist der Zustand dargestellt, wie er sich nach fünf weiteren
kodierten Datenblöcken ergibt. Die 5 weiteren kodierten Datenblöcke F - J sind in
den Zwischenspeicher 2 geschrieben worden, während die in den Zwischenspeicher 1
abgelegten kodierten Datenblöcke in den Ausgangspuffer ausgelesen worden sind. Zum
Auslesen der in den Zwischenspeicher 1 abgelegten kodierten Datenblöcke ist der
Permutationsvektor verwendet worden, wie er bei 76 angezeigt ist, d.h. (4,3,5,2,1).
Anders ausgedrückt, ordnet der Permutationsvektor 76 jeden kodierten Datenblock
in dem Zwischenspeicher 1 eine Zahl zwischen 1 bis 5 bzw. N zu, die die Auslesereihenfolge
bzw. die Position angibt, an der dieser kodierte Datenblock in den Ausgangspuffer
geschrieben werden soll, so daß in dem Ausgangspuffer die kodierten Datenblöcke
A-E in der Reihenfolge EDBAC vorliegen.
Bei 78 ist der Zustand nach weiteren 5 kodierten Datenblöcken dargestellt.
Wie es zu sehen ist, sind die 5 nachfolgenden kodierten Datenblöcke K - 0 wiederum
in den Zwischenspeicher 1 geschrieben worden, während in der Zwischenzeit der Zwischenspeicher
2 mittels eines Permutationsvektors 80 (5,1,3,2,4) in den Ausgangspuffer ausgelesen
worden ist, wo sich die kodierten Datenblöcke in der Reihenfolge GIHJF ergeben.
Bei 82 ist der Strom bzw. die Aufeinanderfolge von kodierten Datenblöcken
in verschlüsselter Form dargestellt, wie sie in den Ausgangspuffer 28 eingegeben
bzw. von demselben ausgegeben werden. Wie es zu sehen ist, sind die kodierten Datenblöcke
gegenüber der vorbestimmten Reihenfolge, in der dieselben durch die dem Kodierer
10 zugrundeliegende Kodierung üblicherweise ausgegeben werden, verwürfelt bzw. gescrambelt,
weshalb in dem Fall, daß die Audiodaten Träger von Sprachinformationen sind,
diese Sprachinformationen bei Dekodierung ohne Entschlüsselung gemäß der vorliegenden
Erfindung unverständlich sind. Dennoch wird bei Dekodierung ohne Entschlüsselung
verhindert, daß der Dekodierer in ungültige Zustände gerät, da die zeitliche
Diskontinuität in Einheiten von kodierten Datenblöcken definiert ist.
Ist die dem psychoakustischen Dekodierer zugrunde liegende Kodierung
beispielsweise eine nach dem AAC-Standard, tritt, falls das verschlüsselte Signal
von einem standardkonformen Dekoder bzw. Dekodierer dekodiert wird, kein Knacksen
an den Blockgrenzen auf, sondern vielmehr äußert sich die zeitliche Diskontinuität
aufgrund der vertauschten Rahmen bzw. Datenblöcke im Auftreten von Aliasinganteilen,
da die Datenblöcke vermittels der inversen modifizierten diskreten Cosinustransformation
(IMDCT = inverse modified discrete cosine transform) in den Zeitbereich rücktransformiert
werden und an den Überlappungsbereichen der Transformationsfenster keine Aliasing-Auslöschung
mehr stattfindet.
Wird das Signal 82 von einem Decoder bzw. einer Entschlüsselungsvorrichtung
gemäß Fig. 2, d.h. mit einer entsprechenden inversen Vertauschung der Eingangsdaten,
entschlüsselt, dann liegen in dem Zwischenspeicher wieder die Datenblöcke bzw. die
Datenrahmen in der richtigen Reihenfolge vor und die anschließende Dekodierung
kann standardkonform erfolgen. Dieser Entschlüsselungsvorgang wird bezugnehmend
auf Fig. 4 für das explizite Ausführungsbeispiel von Fig. 3 näher erläutert.
Fig. 4 zeigt bei 84 ein Beispiel für eine Folge von kodierten Datenblöcken
in verschlüsselter Form, die in diesem Fall derjenigen von Fig. 3 bei 82 entspricht.
Bei 86 ist ein Zustand dargestellt, wie er sich bei der Entschlüsselungsvorrichtung
von Fig. 2 ergibt, nachdem dieselbe die ersten fünf der kodierten Datenblöcke von
84 empfangen hat. Insbesondere ist bei dem Zustand 84 sowie bei den folgenden Zuständen
in Fig. 4 der Inhalt des Zwischenspeichers 1 (44 in Fig. 2), der Inhalt des Zwischenspeichers
2 (46 in Fig. 2) und die Folge von kodierten Datenblöcken, die von der Einrichtung
38 an den Kodierer 40 ausgegeben wird, gezeigt. Wie es bei 86 zu sehen ist, werden
die dekodierten Datenblöcke in den aktuellen Zwischenspeicher, in diesem Fall den
Zwischenspeicher 1, in der Reihenfolge abgelegt, in der dieselben übertragen werden.
Bei 88 ist der Zustand dargestellt, wie er sich nach fünf weiteren
kodierten Datenblöcken FGHIJ einstellt. Wie es zu sehen ist, sind die nächsten fünf
kodierten Datenblöcke in den Zwischenspeicher 2 geschrieben worden, während mittels
eines inversen Permutationsvektors 90 die kodierten Datenblöcke EDBAC aus dem Zwischenspeicher
1 ausgelesen werden, um zu dem Dekodierer 40 in der Reihenfolge ABCDE übertragen
zu werden, wobei sich der inverse Permutationsvektor aus dem Permutationsvektor
76 von Fig. 3, der sich auf dieselbe Permutationsgruppe bezog, durch Anwenden des
letztgenannten als Vertauschungsvorschrift auf einen Vektor (1,2,3,4,5) ergibt.
Bei 92 ist der Zustand dargestellt, wie er sich nach dem Auslesen
weiterer fünf kodierter Datenblöcke aus dem Strom von kodierten Datenblöcken 84
ergibt. Wie es zu sehen ist, ist wieder der Zwischenspeicher 1 mit den nachfolgenden
kodierten Datenblöcken K - 0 befüllt worden, während zu dem Dekodierer die kodierten
Datenblöcke GHIJF in dem Zwischenspeicher 2 ausgelesen und in permutierter Reihenfolge
bzw. invers permutierter Reihenfolge FGHIJ ausgegeben worden sind. Der Rückpermutation
liegt der inverse Permutationsvektor 94 zugrunde, der sich aus dem Permutationsvektor
80 von Fig. 3 durch Anwenden des letztgenannten auf einen Vektor (1,2,3,4,5) ergibt.
Bei 96 ist schließlich der Strom von aufeinanderfolgenden kodierten
Datenblöcken gezeigt, wie er dem Dekodierer zugeführt wird. Wie es zu sehen ist,
ist die Reihenfolge wieder hergestellt, in der die kodierten Datenblöcke von dem
Kodierer der Verschlüsselungsvorrichtung ausgegeben worden sind, d.h. ABCDEFGHIJKLMN...,
so daß die Dekodierung standardkonform erfolgen kann.
Die im vorhergehenden bezugnehmend auf die Fig. 1 bis 4 gelieferte
Beschreibung bezog sich auf eine Verschlüsselung, die auf der Vertauschung von Datenblöcken
des Zeitsignals innerhalb einer Blockgruppe bzw. Vertauschungsgruppe basiert. Die
Blockvertauschung im Zeitbereich zerstört die zeitliche Modulation eines Sprachsignals
derart, daß in dem Fall eines Sprachsignals die Verständlichkeit erheblich
reduziert wird. Ein Vorteil der obigen Ausführungsbeispiele besteht darin, daß,
obwohl bei den vorhergehenden Ausführungsbeispielen zur Kodierung des Zeitsignals
ein psychoakustisches Kompressionsverfahren verwendet wird, die diesem psychoakustischen
Kompressionsverfahren zugrundeliegenden Annahmen, wie z.B. über die zeitliche und
spektrale Verdeckung, weiterhin gültig bleiben, da die zeitliche Diskontinuität
erst nach der Komprimierung erzeugt wird, d.h. die zeitliche Reihenfolge der bereits
kodierten Datenrahmen vertauscht wird. Die im vorhergehenden beschriebenen Ausführungsbeispiele
sind grundsätzlich für alle kodierten Datenströme anwendbar, die auf einer sequentiellen
Folge in sich abgeschlossener und nach Kodierung sich überlappender Datenrahmen
basieren.
In Bezug auf die im vorhergehenden beschriebenen Ausführungsbeispiele
wird insbesondere darauf hingewiesen, daß die Sprachunverständlichkeit des
verschlüsselten Signals dadurch verbessert werden kann, daß der psychoakustische
Kodierer 10 bzw. eine Einrichtung zwischen demselben und der Einrichtung zur Änderung
der Reihenfolge eine Frequenzbereichsverwürfelung gemäß der in der Beschreibungseinleitung
erwähnten Patentanmeldung W099/51279 durchführt.
Nachdem im vorhergehenden die vorliegende Erfindung anhand spezieller
Ausführungsbeispiele beschrieben worden ist, wird darauf hingewiesen, daß
die vorliegende Erfindung sowohl in Hardware, wie z.B. als eine ASIC, eine integrierte
Schaltung oder dergleichen, als auch in Software, wie z.B. als eine auf einem PC
lauffähige Software, implementierbar ist. Ferner wird darauf hingewiesen, daß,
obwohl im vorhergehenden die vorliegende Erfindung in Bezug auf die Verschlüsselung
von Audiodaten bzw. Sprachsignalen beschrieben worden ist, die vorliegende Erfindung
allgemein auf alle Gebiete anwendbar ist, bei denen diskrete Signale verwendet werden
und gegebenenfalls eine Kodierung derselben stattfindet, wie z.B. bei der Bild-
und Videoverarbeitung oder der Datenübertragung im allgemeinen. Dementsprechend
ist die der Erzeugung der zeitlichen Diskontinuität bei der Verschlüsselung vorangehende
Kodierung nicht auf eine psychoakustische Kodierung begrenzt. Beispielsweise ist
auch eine JPEG-Kodierung bei Bild- oder Videodaten möglich. Allgemein ist die vorliegende
Erfindung mit allen Kodierverfahren implementierbar, die aufeinanderfolgende diskrete
Abtastwerte in Zeitblöcke unterteilen und diese in kodierte Datenblöcke bzw. -rahmen
kodieren oder direkt bereits existierende Zeitblöcke kodieren.
Ferner wird darauf hingewiesen, daß die genaue Implementierung
der Einrichtung zur Erzeugung eines Permutationsvektors eine Einrichtung zur Erzeugung
der Reihenfolge der kodierten Datenblöcke auch anders implementiert sein kann, wie
z.B. insbesondere im Hinblick auf die Länge der Vertauschungsgruppe N oder der Anzahl
und Größe der verwendeten Zwischenspeicher.
Ferner kann die Einrichtung zur Erzeugung eines Permutationsvektors
anders implementiert sein als im vorhergehenden beschrieben. Der Permutationsvektor
könnte beispielsweise für alle Vertauschungsgruppen gleich sein, in welchem Fall
der inverse Permutationsvektor ebenfalls fest wäre. Allgemein wird darauf hingewiesen,
daß von dem in dem vorhergehenden Ausführungsbeispielen verwendeten Prinzip
der Formulierung aufeinanderfolgender Vertauschungsgruppen abgewichen werden kann,
und daß die Änderung der Reihenfolge auch auf andere Weisen durchgeführt werden
kann, wie z.B. durch eine Änderung der Reihenfolge bezüglich der gesamten kodierten
Datenblöcke, in welchem Fall eine Zwischenspeicherung aller kodierten Datenblöcke
vor der Änderung der Reihenfolge bei der Verschlüsselung sowie eine Speicherung
der gesamten kodierten Datenblöcke vor der Änderung der Reihenfolge bei der Entschlüsselung
erforderlich wäre.