-
Verfahren
und Schaltungsanordnung zur Überprüfung eines
Datensatzes mit mehreren Datenworten
-
Die
Erfindung betrifft ein Verfahren und eine Schaltungsanordnung zur Überprüfung eines
Datensatzes mit mehreren Datenworten gemäß den nebengeordneten Patentansprüchen.
-
Bei
sicherheitsrelevanten Schaltungsanordnungen sind Daten normalerweise
durch Verwendung einer kryptographischen Einheit geschützt. Die kryptographische
Einheit entschlüsselt
die Daten vor deren eigentlicher Verwendung, beispielsweise zur Verarbeitung
in einem Rechenwerk, und verschlüsselt
die Daten, damit sie, beispielsweise bei Ablage in einem Speicher,
nur verschlüsselt
vorliegen, um ein unberechtigtes Auslesen der Daten oder gezielte
Datenmanipulation zu erschweren. Die kryptographische Einheit ist
meist zwischen dem Rechenwerk und dem Speicher angeordnet.
-
Im
Speicher selbst oder im Verlauf der Datenübertragung vom Speicher zur
kryptographischen Einheit können
Fehler auftreten. Hierbei handelt es sich entweder um zufällige Bitänderungen
oder gezielte Manipulationen des Speichers oder eines Übertragungsweges,
der auch als Datenbus bezeichnet wird, zur kryptographischen Einheit.
Bei zufälligen
Bitänderungen
oder kurzzeitig auftretenden Manipulationen sind häufig nur
wenige Bits, manchmal nur ein einziges, betroffen. Um auch in diesen
Fällen, insbesondere
bei den so genannten Einzelfehlern, die Richtigkeit der Daten zu
gewährleisten
und deren Verarbeitung nicht zu beeinträchtigen, werden Fehler korrigierende
Kodes eingesetzt, die auch als ECC für deren englischsprachige Bezeichnung „error
correction codes" abgekürzt werden.
-
Die
Fehler korrigierenden Kodes werden auf die bereits verschlüsselten
Daten angewendet, sodass die Verschlüsselung zwei von ein einander
unabhängige
Verschlüsselungsschritte
umfasst. Dafür ist
neben der eigentlichen kryptographischen Einheit zur Entschlüsselung
und Verschlüsselung
eine dedizierte Extra-Hardware, mit der die Schritte der relativ aufwändigen Fehler
korrigierenden Kodierung nebst Korrektur ausgeführt werden, erforderlich.
-
Der
mit der Extra-Hardware verbundene zusätzliche Stromverbrauch ist
insbesondere bei portablen Anwendungen, beispielsweise in Chipkarten, von
Nachteil. Es ist Aufgabe der vorliegenden Erfindung, ein Verfahren
zur Datenüberprüfung und
-korrektur unter Ausnutzung der von der kryptographischen Einheit
bereitgestellten Funktionen zu beschreiben.
-
Die
Aufgabe wird durch die in den nebengeordneten Patentansprüchen angegebenen
Maßnahmen
gelöst.
Das beanspruchte Verfahren zur Überprüfung eines
Datensatzes mit mehreren Datenworten umfasst ein Bereitstellen eines
verschlüsselten Datensatzes
mit verschlüsselten
Datenworten, ein Bereitstellen eines dem verschlüsselten Datensatz zugeordneten
Fehlerkodewortes, ein Entschlüsseln der
verschlüsselten
Datenworte des verschlüsselten Datensatzes,
ein Prüfen,
ob das Fehlerkodewort den entschlüsselten Datenworten des entschlüsselten Datensatzes
zuzuordnen ist, sowie ein Durchführen einer
Alarmaktion, wenn das Fehlerkodewort nicht den entschlüsselten
Datenworten des entschlüsselten
Datensatzes zugeordnet ist.
-
Des
Weiteren ist eine Schaltungsanordnung zur Überprüfung von Datenworten beschrieben,
die auf dem erfindungsgemäßen Verfahren
basiert.
-
Durch
das erfindungsgemäße Verfahren
ist die Datenübertragung
bis inklusive des Entschlüsselns
des Datensatzes in der kryptographischen Einheit geschützt.
-
Die
verschlüsselten
Datenworte werden durch eine Verschlüsselung aus den zu schützenden Datenworten
generiert.
-
Zur
Generierung des Fehlerkodewortes wird eine kodegenerierte, vorzugsweise
lineare Überlagerung
oder eine beliebige Funktion von Eingangsworten eines Eingangsdazensatzes
verwendet, deren Ausgangsdatenwort das Fehlerkodewort ist. Als Eingangsdatensatz
dient der Datensatz, dem ein Fehlerkodewort zugeordnet ist. Somit
ist die Information aller Datenworte des Datensatzes im Fehlerkodewort verknüpft. Vorteilhafterweise
wird auch das Fehlerkodewort zunächst
verschlüsselt
der kryptographischen Einheit bereitgestellt und dann entschlüsselt.
-
Eine
vorteilhafte Alarmaktion umfasst die Korrektur der entschlüsselten
Datenworte, sodass sich Bitfehler nicht auf die Datenverarbeitung
auswirken. Zur Korrektur der verschlüsselten Datenworte werden die
entschlüsselten
Datenworte des entschlüsselten
Datensatzes und das Fehlerkodewort bereitgestellt. Aus den entschlüsselten
Datenworten und dem Fehlerkodewort wird ein Fehlersyndrom generiert,
das anzeigt, ob beziehungsweise inwiefern sich das Fehlerkodewort
dem entschlüsselten
Datensatz zuordnen lässt.
Die Datenworte werden, wenn erforderlich, korrigiert, indem deren
Bits entsprechend der durch das Fehlersyndrom angezeigten Abweichungen
vom Fehlerkodewort korrigiert werden. Auf diese Weise wird auch
das fehlerhafte Datenwort, das zu Fehleranzeigen im Fehlersyndrom
geführt
hat, korrigiert.
-
Für eine schnelle
Korrektur ist es sinnvoll, dass sich jedes Datenwort aus den übrigen Datenworten
und dem Fehlerkodewort berechnen lässt.
-
Die
kodegenerierte, lineare Überlagerung, die
verwendet wird, um das Fehlerkodewort zu generieren, ist vorteilhafterweise
eine Exklusiv-Oder-Verknüpfung
von Datenworten des Datensatzes, deren Implementierung nicht aufwändig ist.
Hierbei wird ein i-tes Bit aller Datenworte des Datensatzes verknüpft, um
ein i-tes Bit des Fehlerkodewortes zu generieren. Alternativ kann
die Exklusiv-Oder-Verknüpfung
der Datenfolge auch erfolgen, nachdem die Datenworte jeweils in
unterschiedlicher Weise permutiert worden sind, damit aus dem Fehlerkodewort
der Rückschluss
auf die darin verknüpften
Datenworte erschwert ist.
-
Bei
Verwendung einer der oben beschriebenen, kodegenerierten, linearen Überlagerungen
kann das Datenwort durch eine Exklusiv-Oder-Verknüpfung des
dem i-ten Bit des Fehlerkodewortes zugeordneten Bits des Datenwortes
mit dem i-ten Bit des Fehlersyndroms korrigiert werden. Auch diese
Exklusiv-Oder-Verknüpfung ist
in einfacher Weise zu implementieren.
-
Die
weiteren Verfahrensschritte beruhen auf der Annahme, dass sich die
Fehler in einem Wort befinden, beziehungsweise dass es sich um einen Ein-Bit-Fehler
handelt. Dies korrigierten Datenworte werden erneut verschlüsselt und
mit den bereitgestellten, verschlüsselten Datenworten verglichen.
Auf diese Weise sind Abweichungen durch die Korrektur zu erkennen.
Es wird der Abstand zwischen jedem verschlüsselten Datenwort und dem dazugehörigen verschlüsselten,
korrigierten Datenwort für den
gesamten Datensatz bestimmt und das Datenwort mit dem geringsten
Abstand ausgewählt.
-
Unter
der Annahme, dass möglichst
wenig Bitfehler nur bei einem einzigen verschlüsselten Datenwort aufgetreten
sind, wird das Datenwort mit dem geringsten Abstand zwischen dem
entsprechenden verschlüsselten
Datenwort und dem entsprechenden, verschlüsselten, korrigierten Datenwort
ausgewählt,
und dessen Korrektur wird übernommen.
Insbesondere wenn man von Einzelfehlern ausgeht, wird der Vergleich
dadurch erleichtert, dass lediglich nach einer Abweichung um ein
Bit gesucht wird. Auf diese Weise wird die Suche nach dem minimalen
Abstand vereinfacht. Bei den übrigen
Datenworten des Datensatzes wird die Korrektur nicht übernommen, da
von der Anahme ausgegangen wird, dass nur ein Wort fehlerhaft ist.
-
Der
Abstand zweier Datenworte ist als die Anzahl der sie unterscheidenden
Bits definiert.
-
Die
erfindungsgemäße Schaltungsanordnung
zur Überprüfung eines
Datensatzes mit mehreren Datenworten umfasst eine kryptographische
Einheit, die ihrerseits umfasst einen Eingang zum Zuführen eines
Datensatzes mit verschlüsselten
Datenwor- ten und eines Fehlerkodewortes, eine Entschlüsselungseinrichtung,
die ausgebildet ist, um die verschlüsselten Datenworte des verschlüsselten
Datensatzes zu entschlüsseln,
eine Verknüpfungseinrichtung,
die ausgebildet ist, um die entschlüsselten Datenworte mit dem
Fehlerkodewort zu einem Fehlersyndrom zu verknüpfen und eine Vergleichseinrichtung,
die ausgebildet ist, um das Fehlersyndrom mit einem vorgegebenen
Wert zu vergleichen.
-
Die
Ausgestaltung der kryptographischen Einheit umfasst neben der Entschlüsselungseinrichtung
nur wenige zusätzliche,
einfache Hardware-Elemente, um die Umsetzung des Verfahrens zu ermöglichen,
die auf einfache Weise in eine konventionelle kryptographische Einheit
integrierbar sind.
-
Vorteilhafterweise
ist die kryptographische Einheit ausgebildet, ein verschlüsseltes
Fehlerkodewort zu entschlüsseln.
Auf diese Weise liegt auch das Fehlerkodewort an der kryptographischen
Einheit in verschlüsselter
Form vor, sodass Rückschlüsse auf die
verwendete Verschlüsselung
und/oder die verschlüsselten
Daten erschwert werden.
-
Des
Weiteren ist die kryptographische Einheit ausgebildet, die entschlüsselten
Datenworte zu korrigieren, wenn die entschlüsselten Datenworte nicht dem
Fehlerkodewort zuzuordnen sind. Durch dieses Merkmal ist es nicht
nur möglich,
Datenfehler der Datenworte zu erkennen, sondern auch zu korrigieren.
-
Weiterhin
ist die kryptographische Einheit ausgebildet, die korrigierten Datenworte
zu verschlüsseln,
sodass die Entschlüsselung
und die Verschlüsselung
durch eine Einheit bereitgestellt werden.
-
Weiterhin
ist die kryptographische Einheit ausgebildet, jedes der verschlüsselten
Datenworte des verschlüsselten
Datensatzes mit einem entsprechenden verschlüsselten, korrigierten Datenwort
eines verschlüsselten
korrigierten, Datensatzes zu vergleichen und einen Abstand zu bestimmen,
sodass eine Bewertung der Korrektur ermöglicht wird. Unter der Annahme,
dass möglichst
wenig Fehler in nur einem einzigen verschlüsselten Datenwort aufgetreten sind,
wird das Datenwort mit dem geringsten Abstand als das fehlerhafte
Wort ausgewählt.
Eine besonders einfache Ausgestaltung geht von einem Ein-Bit-Fehler aus, sodass
sich die Bewertung des Abstandes lediglich darauf beschränkt, ob
die Abweichung ein Bit: beträgt.
Hei Ausgabe eines Datensatzes von entschlüsselten Datenworten durch die
kryptographische Einheit wird das ausgewählte Datenwort korrigiert ausgegeben,
die übrigen
Datenworte des Datensatzes lediglich entschlüsselt, ohne Korrektur.
-
Die
kryptographische Einheit wird in Schaltungsanordnungen eingesetzt
und zwischen einem Rechenwerk und einem Speicher angeordnet, um
die gesicherte Datenübertragung
zwischen diesen beiden Einheiten zu gewährleisten. In der Regel wird
die kryptographische Einheit direkt dem Speichen vorgeschaltet und
ist in diesen auch integrierbar.
-
Die
Verschlüsselung
der Datenworte durch die kryptographische Einheit kann durch die
Bereitstellung eines weiteren Eingangs zum Anlegen einer Adressinformation
und die Verschlüsselung
der Datenworte in Abhängigkeit
der Adressinformation ausgebildet sein. Auf diese Weise erfolgt
eine zusätzliche
Sicherung, die auch die Zuordnung von Dateninformationen zu einer
Adressinformation beinhaltet. Fehlerhafte Adressabfragen werden
als Fehler erkannt und deuten auf eine mögliche Manipulation hin. Bei
dieser Ausgestaltung bietet sich die Anordnung der kryptographischen
Einheit direkt am Rechenwerk an, das die Adressinformation bereitstellt.
-
Weitere
vorteilhafte Ausgestaltungen der Erfindung sind in den untergeordneten
Patentansprüchen
angegeten.
-
Nachfolgend
wird die Erfindung unter Bezugnahme auf die Zeichnung anhand von
Ausführungsbeispielen
erklärt.
-
Es
zeigen:
-
1 eine
Struktur eines Datenwortes;
-
2 eine
Schaltungsanordnung mit einer kryptographischen Einheit, die einem
Speicher direkt vorgeschaltet ist;
-
3 eine
alternative Schaltungsanordnung mit der kryptographischen Einheit,
die einem Rechenwerk direkt vorgeschaltet ist;
-
4 ein
Ausführungsbeispiel
einer kryptographischen Einheit, der ein Datensatz und ein Fehlerkodewort
zugeführt
werden;
-
5 ein
alternatives Ausführungsbeispiel einer
kryptographischen Einheit, der verschiedene Datensätze und
ein Fehlerkodewort zugeführt
werden;
-
6 den
Ablauf einer Verschlüsselung
eines Datensatzes durch die kryptographische Einheit;
-
7 den
Ablauf einer Entschlüsselung
und einer Korrektur eines verschlüsselten Datensatzes durch die
kryptographische Einheit;
-
8 eine
Tabelle mit einem beispielhaften Datensatz und einem zugeordneten
Fehlerkodewort;
-
9 eine
Tabelle mit einem verschlüsselten
Datensatz und einem verschlüsselten
Fehlerkodewort gemäß 8;
-
10 eine
Tabelle mit einem entschlüsselten
Datensatz, einem entschlüsselten
Fehlerkodewort und einem Fehlersyndrom gemäß 9;
-
11 eine
Tabelle mit einem korrigierter. Datensatz gemäß 10;
-
12 eine
Tabelle mit einem verschlüsselten,
korrigierten Datensatz gemäß 11 und
Abständen
zum verschlüsselten
Datensatz gemäß 9.
-
1 zeigt
eine Struktur eines Datenwortes, das n Bits umfasst. Ein typisches
Datenwort umfasst beispielsweise 32 Bits. Es sei bereits bemerkt,
dass die beispielhaften Datenworte in Tabellen der 8 bis 12 jeweils
acht Bits umfassen, um die Übersichtlichkeit
und das Verständnis
des Verfahrens zu erleichtern.
-
2 zeigt
eine Schaltungsanordnung, die ein Rechenwerk CPU und einen Speicher
MEM umfasst. Zwischen dem Rechenwerk CPU und dem Speicher MEM ist
eine kryptographische Einheit MED angeordnet. Im dargestellten Ausführungsbeispiel
ist die kryptographische Einheit MED dem Speicher MEM unmittelbar
vorgeschaltet. Diese Ausgestaltung ist hinsichtlich einer Integration
der beiden Einheiten von Vorteil.
-
3 zeigt
eine alternative Ausgestaltung der Schaltungsanordnung, bei der
die kryptographische Einheit MED unmittelbar vor dem Rechenwerk CPU
angeordnet ist. Auf diese Weise sind nicht nur Daten im Speicher
MEM geschützt,
sondern die Daten werden zusätzlich
bis zur Übertragung
in das Rechenwerk CPU, also auch auf Buswegen dorthin, geschützt. Erst
vor der eigentlichen Verwendung der Daten im Rechenwerk CPU werden sie
dort in unverschlüsselter
Form bereitgestellt. Auf diese Weise wird die Sicherheit der Schaltungsanordnung
gegenüber
Datenveränderungen
und -manipulationen erhöht.
-
Die
Schaltungsanordnung kann sowohl modular als auch integriert, beispielsweise
zur Verwendung in einer Chipkarte, ausgestaltet sein.
-
4 zeigt
ein einfaches Ausführungsbeispiel
einer erfindungsgemäßen, kryptographischen Einheit
MED, der ein verschlüsselter
Datensatz 20 und ein Fehlerkodewort 110 zugeführt ist.
Der verschlüsselte
Datensatz 20 umfasst mehrere verschlüsselte Datenworte 201, 202, 203, 204.
Die Anzahl der Datenworte ist in diesem Beispiel zu vier gewählt worden.
Auch eine andere Anzahl, beispielsweise acht, ist selbstverständlich denkbar.
Der verschlüsselte
Datensatz 20 und ein Fehlerkodewort 110 ist an
einen Eingang 22 der kryptographischen Einheit MED zugeführt. Die
kryptographische Einheit MED kann auch mit weiteren Eingängen derart
ausgestaltet sein, dass an einem dieser Eingänge das Fehlerkodewort 110 zugeführt ist
und an den übrigen die
verschlüsselten
Datenworte 201, 202, 203, 204 des
verschlüsselten
Datensatzes 20. Die Art der Zuführung ist dabei unerheblich.
Sie kann sowohl parallel als auch seriell erfolgen.
-
Das
Fehlerkodewort 110 kann sowohl in unverschlüsselter
Weise der kryptographischen Einheit MED zugeführt werden als auch in verschlüsselter Form.
Die Art der Zuführung
beeinträchtigt
die Fehlererkennung und Fehlerkorrektur prinaipiell nicht. Dennoch
ist es von Vorteil, wenn auch das Fehlerkodewort 110 in
verschlüsselter
Weise der kryptographischen Einheit zugeführt wird. Durch die Verschlüsselung
liegen alle Daten am Eingang der kryptographischen Einheit, beispielsweise
aus dem Speicher MEM, in verschlüsselter
Form vor, was bei einem Angriff deren unberechtigte Entschlüsselung
erschwert.
-
Das
Fehlerkodewort 110 ist den verschlüsselten Datenworten 201, 202, 203, 204 des
verschlüsselten
Datensatzes 20 zugeordnet und wird vor deren Verschlüsselung
aus diesen mittels einer kodegenerierten Verknüpfung generiert, Bei einer Abspeicherung
des verschlüsselten
Datensatzes 20 wird das Fehlerkodewort 110 ebenfalls
abgespeichert. Auch wenn hierbei verglichen mit den eigentlichen
Daten zusätzlicher
Speicherplatz benötigt
wird, sei anzumerken, dass zusätzlicher
Speicherplatz auch bei Fehler korrigierender Kodierung, wenn dem Datenwort
redundante Information hinzugefügt;
wird, um eventuell auftretende Fehler zu korrigieren, erforderlich
ist.
-
Die
erfindungsgemäße, kryptographische Einheit
MED in 4 ist geeignet, einen verschlüsselten Datensatz 20 mit
einem zugeordneten Fehlerkodewort 110 zu vergleichen. In
der kryptographischen Einheit MED ist eine Entschlüsselungseinrichtung 3 vorgesehen,
um den verschlüsselten
Datensatz 20 zu entschlüsseln.
Wenn das Fehlerkodewort in verschlüsselter Form vorliegt, dient
die Entschlüsselungseinrichtung 3 auch
zu dessen Entschlüsselung.
Die intern vorliegenden, entschlüsselten
Datenworte 301, 302, 303, 304 und
das Fehlerkodewort 110 werden durch eine Verknüpfungseinrichtung 1 zu einem
neuen Fehlersyndrom 320 verknüpft. Das Fehlersyndrom 320 wird
mit einem vorgegebenen Wert in einer Vergleichseinrichtung 5 verglichen,
um festzustellen, ob das Fehlerkodewort 110 sich den entschlüsselten
Datenwörtern 301, 302, 303, 304 zuordnen
lässt,
sodass man von einem fehlerfreien Datensatz ausgehen kann.
-
Bei
der beschriebenen kryptographischen Einheit MED handelt es sich
um eine einfache Ausgestaltung, mit der nur Fehler des anliegenden
verschlüsselten
Datensatzes 20 angezeigt werden können. Eine solche Ausgestaltung
ist geeignet, um lediglich auftretende Fehler beispielsweise durch.
ein auszugebendes Alarmsignal anzuzeigen. Sie wird vorteilhafterweise
parallel zu einer eigentlichen kryptographischen Einheit, die nur
der Entschlüsselung und
Verschlüsselung
dient, betrieben.
-
5 zeigt
eine vorteilhafte Weiterentwicklung einer kryptographischen Einheit
MED. Diese Ausgestaltung ermöglicht
sowohl die Verschlüsselung
eines Datensatzes 10 als auch die Entschlüsselung
eines verschlüsselten
Datensatzes 20 und gegebenenfalls die Korrektur eines fehlerhaften
verschlüsselten
Datenwortes 201, 202, 203, 204.
Die Ausgestaltung weist sowohl eine Verschlüsselungseinrichtung 2,
mittels der die Datenworte 101, 102, 103, 104 des
Datensatzes 10 verschlüsselt
werden, als auch eine Entschlüsselungseinrichtung 3 zur
Entschlüsselung
eines verschlüsselten
Datensatzes 20 und gegebenenfalls eines verschlüsselten
Fehlerkodewortes 210 auf.
-
Zusätzlich zu
den bereits für 4 beschriebenen
Funktionen ist es mit der Ausgestaltung, die in 5 dargestellt
ist, möglich,
den über
einen Eingang 11 zugeführten
Datenworten 1 01, 102, 103, 104 des
Datensatzes 10 durch Verwendung der Verknüpfungseinrichtung 1 ein
Fehlerkodewort zuzuordnen. Dieses wird zusammen über einen Ein-/Ausgang 22 mit
den verschlüsselten
Datenworten 201, 202, 203, 204 entweder
in unverschlüsselter
Form oder vorteilhafterweise in verschlüsselter Form ausgegeben. Selbstverständlich kann
anstatt des Ein-/Ausgangs 22 auch ein separater Eingang
und ein separater Ausgang vorgesehen sein.
-
Bei
der Entschlüsselung
wird der verschlüsselte
Datensatz 20 und das verschlüsselte Fehlerkodewort 210 über einen
Ein/Ausgang 22 zugeführt.
-
Wenn
nach der Entschlüsselung
des verschlüsselten
Datensatzes 20 und der Prüfung mit dem Fehlerkodewort 110 festgestellt
wird, dass das Fehlerkodewort 110 nicht dem Datensatz zuzuordnen
ist, ist eine Korrektur des intern vorliegenden, ent– schlüsselten
Datensatzes 30 möglich.
Die Korrektur bedient sich der Verschlüsselungseinrichtung 2 und
einer Einrichtung zur Bestimmung des Abstandes 4. Die entschlüsselten
Datenworte 301, 302, 304 werden nebst
dem korrigierten Datenwort 403 über einen Ausgang 33 ausgegeben.
Bei Feststellung eines Fehlers im Fehlerkodewort erfolgt die Ausgabe der
entschlüsselten
Datenworte ohne Korrektur.
-
An
dieser Stelle wird darauf hingewiesen, dass die in den 4 und 5 dargestellten
Ausführungsbeispiele
kombinierbar sind.
-
6 zeigt
den Ablauf einer Verschlüsselung,
um den verschlüsselten
Datensatz 20 mit dem zugeordneten Fehlerkodewort 110 zu
generieren. Üblicherweise.
wird dieser Verfahrensschritt ebenfalls durch die kryptographische
Einheit realisiert, die sowohl verschlüsselt als auch entschlüsselt.
-
Ein
Datensatz 10, hier beispielhaft bestehend aus vier Datenworten 101, 102, 103, 104,
wird verknüpft,
um ein Fehlerkodewort 110 zu generieren. Das Fehlerkodewort 110 umfasst
dieselbe Anzahl an Bits wie jedes der Datenworten 101, 102, 103, 104. Zur
Verknüpfung
dient ein Verknüpfungselement 1, das
eine kodegenerierte, lineare Verknüpfung realisiert. In diesem
Fall handelt es sich um eine Exklusiv-Oder-Verknüpfung der Datenworte 101, 102, 103, 104 des
Datensatzes 10. Die Exklusiv-Oder-Verknüpfung erfolgt in folgender,
einfacher Weise: Die ersten Bits der Datenworte 101, 102, 103, 104 werden über eine
Exklusiv-Oder-Verknüpfung
zum ersten Bit des Fehlerkodewortes 110 verknüpft. Ebenso werden
die zweiten Bits der Datenworte 101, 102, 103, 104 über die
Exklusiv-Oder-Verknüpfung zum zweiten
Bit des Fehlerkodewortes 110 verknüpft. Das Gleiche geschieht
mit dem i-ten Bit der Datenworte, die zum i-ten Bit des Fehlerkodewortes
verknüpft werden.
-
Bei
einer alternativen Verknüpfung
werden die Bits eines jeden Datenwortes vor der Exklusiv-Oder-Verknüpfung permutiert.
Folgende Verknüpfung
ist denkbar: Das erste Bit eines ersten Datenwortes 101,
das zweite Bit eines zweiten Datenwortes 102, das dritte
Bit eines dritten Datenwortes 103 und das vierte Bit eines
vierten Datenwortes 104 werden über eine Exklusiv-Oder-Verknüpfung zum ersten
Bit des Fehlerkodewortes 110 verknüpft. Das zweite Bit des Fehlerkodewortes 110 wird
durch eine Verknüpfung
des zweiten Bits des ersten Datenwortes 101, des dritten
Bits des zweiten Datenwortes 102, des vierten Bits des
dritten Datenwortes 103 und des fünften Bits des vierten Datenwortes 104 generiert.
Die übrigen
Bits des Fehlerkodewortes 110 werden in entsprechender
Weise generiert. Selbstverständlich
sind auch andere Permutationen möglich oder
nur die Permutation eines Teils der Datenworte 101, 102, 103, 104.
Bei diesen Verknüpfungen
ist dem i-Bit des Fehlerkodewortes 110 jeweils ein Bit der
Datenworte 101, 102, 103, 104 zu
geordnet. Umgekehrt ist auch jedem Bit eines der Datenworte 101, 102, 103, 104 genau
ein Bit des Fehlerkodewortes 110 zugeordnet.
-
Die
Datenworte 101, 102, 103, 104 des
Datensatzes 10 und das Fehlerkodewort 110 werden mittels
einer Verschlüsselungsein richtung 2 verschlüsselt, sodass
einem ersten Datenwort 101 ein erstes verschlüsseltes
Datenwort 201 zuruordnen ist. Dies gilt auch für die weiteren
Datenworte 102, 103, 104 des Datensatzes 10.
Vorteilhafterweise wird auch das Fehlerkodewort 110 durch
die Verschlüsselungseinrichtung 2 in
ein verschlüsseltes
Fehlerkodewort 210 überführt. Dieses
Vorgehen hat den Vorteil, dass bei einer Abspeicherung des verschlüsselten Datensatzes 20 auch
das Fehlerkodewort 110 in verschlüsselter Form abgespeichert
wird, um eine unberechtigte Entschlüsselung durch einen Angreifer
zu erschweren.
-
Die
gewählte
Verschlüsselung
ist in der Regel eine stark nichtlineare Abbildung, was die unberechtigte
Entschlüsselung
erschwert. „Stark
nichtlinear" bedeutet,
dass ein kleiner Abstand zwischen zwei Datenworten, die sich beispielsweise
um 1 Bit unterscheiden, nach der Verschlüsselung zu gänzlich unterschiedlich
verschlüsselten
Datenworten führt,
die hinsichtlich wesentlich mehr Bits voneinander abweichen. Ebenso
kann es der Fall sein, dass zwei Datenworte, die einen großen Abstand
aufweisen, in ähnliche
verschlüsselte
Datenworten überführt werden, die
sich beispielsweise nur um ein oder zwei Bits unterscheiden. Selbstverständlich handelt
es sich bei der Verschlüsselung
und der dazu gehörigen
Entschlüsselung
um eine eineindeutige Abbildung.
-
Die
Verschlüsselung,
Fehlererkennung und Korrektur durch das erfindungsgemäße Verfahren
ist in den 8 bis 12 anhand
eines beispielhaften Datensatzes 10a in Tabellenform verdeutlicht.
Der beispielhafte Datensatz 10a umfasst vier beispielhaften
Datenworte 101a 102a, 103a, 104a mit
jeweils acht Bits. Zunächst
werden die 8 und 9 betrachtet,
die die Verschlüsselung
verdeutlichen.
-
8 zeigt,
wie durch eine Exklusiv-Oder-Verknüpfung des jeweils i-ten Bits
der beispielhaften Datenworte 101a, 102a, 103a, 104a des beispielhaften
Datensatzes 10a das i-te Bit des Fehlerkodewortes 110a generiert
wird.
-
9 zeigt
die entsprechenden verschlüsselten
Datenworte 201a, 202a, 203a, 204a und
das verschlüsselte,
zugeordnete Fehlerkodewort 210a. Die verwendete Verschlüsselung
ist für
das Verfahren unerheblich, es ist jedoch deutlich zu erkennen, dass
diese stark nichtlinear ist. Ein Einzelfehler, der beispielsweise
durch eine Manipulation nach der Verschlüsselung aufgetreten sein kann,
im dritten verschlüsselten
Datenwort 203a ist fett gekennzeichnet.
-
7 zeigt
die Verfahrensschritte zur Entschlüsselung der verschlüsselten
Datenworte 201, 202, 203, 204 und
deren Überprüfung und
gegebenenfalls Korrektur. Die verschlüsselten Datenworte 201, 202, 203, 204 des
verschlüsselten
Datensatzes 20 werden durch eine Entschlüsselungseinrichtung 3 in
den entschlüsselten
Datensatz 30 überführt, der die
entschlüsselten
Datenworte 301, 302, 303, 304 umfasst.
Wenn das Fehlerkodewort 110 ebenfalls in verschlüsselter
Form vorliegt, wird auch dieses entschlüsselt, wie in 7 dargestellt.
-
Bei
der Verschlüsselungseinrichtung 2 und der
Entschlüsselungseinrichtung 3 handelt
es sich um ein Entschlüsselungs-Verschlüsselungs-Einrichtungspaar,
sodass, wenn die beiden Einrichtungen in Reihe geschaltet, nacheinander
auf einem Datensatz angewendet werden, der Datensatz umverändert ausgegeben
wird.
-
Die
entschlüsselten
Datenworte 301, 302, 303, 304 des
entschlüsselten
Datensatzes 30 werden mit dem Fehlerkodewort 110 verglichen,
indem ein Fehlersyndrom 320 generiert wird. Der Vergleich erfolgt,
indem die entschlüsselten
Datenworte 301, 302, 303, 304 in
derselben Weise wie zur Generierung des Fehlerkodewortes 110 miteinander
verknüpft
werden und das resultierenden Wort mit dem Fehlerkodewort 110 verglichen
wird. Das Fehlersyndrom 320 ergibt sich durch eine Exklusive-Oder-Verknüpfung des
resultierenden Wortes mit dem Fehlerkodewort 110.
-
Dieser
Vergleich erfolgt in einfacher Weise und ohne den Zwischenschritt
des erneuten Generierens des resultierenden Wortes, wenn an eine
Exklusiv-Oder-Verknüpfung 1,
die auch zur Generierung eines i-ten Bits des Fehlerkodewortes verwendet wird,
neben dem i-ten Bit der Datenworte 301, 302, 303, 304,
auch das i-te Bit des Fehlerkodewortes 110 angelegt wird.
Auf diese Weise lässt
sich die Verknüpfung
der entschlüsselten
Datenworte 301, 302, 303, 304 und
der Vergleich des resultierenden Wortes mit dem Fehlerkodewort 110 in
einem Schritt durch die Exklusiv-Oder-Verknüpfung 1 durchführen. Wenn
das Fehlerkodewort 110 den entschlüsselten Datenworten 301, 302, 303, 304 des
entschlüsselten Datensatzes 30 zuordnenbar
ist, so ist das generierte Fehlersyndrom 320 ein Nullvektor,
der nur Bits „0" umfasst. Wenn ein
i-tes Bit des Fehlerkodewortes nicht der entsprechend zugeordneten
Verknüpfung der
Bits der entschlüsselten
Datenworte 301, 302, 303, 304 entspricht,
so ist das i-te Bit des Fehlersyndroms „1",-was einen Fehler anzeigt. Bei der
Exklusiv-Oder-Verknüpfung
lässt das
i-te Bit, das „1" ist, auf einen Fehler
an der i-ten Fosition eines Datenwortes schließen. Selbstverständlich können auch mehr
als ein Bit des Fehlersyndroms 320 ungleich „Ö" sein. Unter der
Annahme, dass ein Einzelfehler innerhalb des verschlüsselten
Datensatzes 20 aufgetreten ist und die Entschlüsselung
stark nichtlinear ist, ist hiervon auszugehen.
-
Wenn
das Fehlersyndrom 320 ungleich dem Nullvektor ist, wird
das folgende Verfahren zur Fehlerkorrektur angewandt. Die den entsprechenden Fehlerposition,
die im Fehlersyndrom 320 angezeigt werden, zugeordneten
Bits eines jeden entschlüsselten
Datenwortes 301, 302, 303, 304 des
entschlüsselten
Datensatzes 30 werden korrigiert, sodass ein korrigierter
Datensatz 40 vorliegt. Wenn lediglich ein Datenwort des
entschlüsselten
Datensatzes 30 fehlerhaft war, so sind nach der Korrektur
alle anderen Datenworte bis auf das vormals falsche fehlerhaft. Auch
wenn für
das weitere Vorgehen zur Korrektur des fehlerhaften Datenwortes
das Fehlerkodewort 110 nicht mehr benötigt wird, kann das folgende
Vorgehen auch auf das Fehlerkodewort in gleicher Weise angewendet
werden. Dieses Vorgehen hat den Vorteil, dass der zu suchende Fehler
natürlich
nicht nur in den verschlüsselten
Datenworten 201, 202, 203, 204 aufgetreten
sein kann, sondern auch in dem Fehlerkodewort 110. Wenn
dieser Fall detektiert wird, ist eine Korrektur der entschlüsselten
Datenworte 301, 302, 303, 304 ebenfalls
nicht erforderlich.
-
10 zeigt
den beispielhaften, verschlüsselten
Datensatz 20a aus 9 nach der
Entschlüsselung.
Das erste Datenwort 301a, das zweite Datenwort 302a und
das vierte Datenwort 304a stimmen nach der Entschlüsselung
mit dem jeweils ursprünglichen
ersten, zweiten und vierten Datenwort 101a, 102a, 104a überein.
Der Einzelbitfehler des verschlüsselten
dritten Datenwortes 203a führt nach der Entschlüsselung
aufgrund der starken Nichtlinearität der Verschlüsselungs-
und Entschlüsselungsoperation
zu fünf
Bitfehlern, die fett gekennzeichnet sind. Das Fehlersyndrom 320a wird
durch eine Exklusiv-Oder-Verknüpfung des
entschlüsselten
ersten Daterwortes 301a mit dem zweiten entschlüsselten Datenwort 302a,
dem entschlüssel ten
dritten Datenwort 303a, dem entschlüsselten vierten Datenwort 304a und
dem entschlüsselten
Fehlerkodewort 101a gebildet. Es ist an den Bitpositionen,
die im dritten entschlüsselten
Datenwort 303a fehlerhaft sind, ungleich „0". Dieses zeigt die
Position der Bitfehler in einem der Datenworte 301a, 302a, 303a, 304a an,
jedoch nicht in welchem.
-
11 zeigt
die korrigierten Datenworte 401a, 402a, 403a, 404a.
Nach der Korrektur der entsprechenden Positionen in jedem der entschlüsselten
Datenworte 301a, 302a, 303a, 304a des
entschlüsselten
Datensatzes 30a liegt das dritte korrigierte Datenwort 403a nunmehr
in korrekter Form vor und stimmt mit dem ursprünglichen dritten Datenwort 103a überein.
Die anderen korrigierten Datenworte 401a, 402a, 404a sind
an den entsprechenden Positionen fehlerhaft.
-
Zur Übersichtlichkeit
wird in den weiteren Wabellen in den 11 und 12 auf
eine Korrektur des Fehlerkodewortes 110 verzichtet.
-
7 zeigt
den weiteren Verfahrensverlauf zur Detektion des fehlerhaften Wortes.
Die nunmehr korrigierten Datenworte 401, 402, 403, 404 werden durch
die Verschlüsselungseinrichtung 2 erneut
verschlüsselt.
Gleiches kann mit dem korrigierten Fehlerkodewort 410 durchgeführt werden.
Die verschlüsselten,
korrigierten Datenworte 501, 502, 503, 504 werden
nunmehr mit den ursprünglich
verschlüsselten
Datenworten 201, 202, 203, 204 verglichen.
Dieses geschieht vorteilhafterweise durch eine Einrichtung zur Abstandsbestimmung 4.
Als Abstand ist die Anzahl der Bits, um die sich zwei Datenworte
unterscheiden, definiert.
-
Aus
den 9 und 12 ist der Unterschied des beispielhaften,
verschlüsselten,
korrigierten Datensatzes 50a mit dem beispielhaften, ursprünglichen,
verschlüsselten
Datensatz 20a ersichtlich. Das fehlerhaft verschlüsselte,
dritte Datenwort 203a und das verschlüsselte, korrigierte, dritte
Datenwort 503a unterscheiden sich nur um ein Bit, obwchl
beim entschlüsselten
dritten Datenwort 303a fünf Bits korrigiert worden sind.
Bei dem korrigierten ersten, zweiten und vierten Datenwort 301a, 302a, 304a sind
ebenfalls fünf
Bits durch die Korrektur verändert worden.
Aufgrund der starken Nichtlinearität der Verschlüsselung
weichen das verschlüsselte,
korrigierte erste, zweite und vierte Datenwort 501a, 502a, 504a um
mehr als ein Bit von den entsprechenden verschlüsselten Datenworten 201a, 202a, 204a ab.
Unter der Annahme, dass nur ein Einzelfehler aufgetreten ist, wird
das Datenwort mit dem geringsten Abstand, in diesem Fall das dritte
Datenwort, als fehlerhaft angenommen und die im vorhergehenden Schritt durchgeführte Korrektur übernommen
und das korrigierte dritte Datenwort 403a ausgegeben. Bei
den anderen Datenworten wird die Korrektur nicht übernommen
und die zuvor ermittelten entschlüsselten Datenworte 301a, 302a, 304a ausgegeben.
-
Wenn
man von einem Einzelfehler ausgeht, lässt sich die Auswahl des fehlerhaften
Datenwortes noch durch eine entsprechende Ausgestaltung der Vergleichseinrichtung 4 vereinfachen.
Anstatt den minimalen Abstand der Datenworte zu bestimmen, ist es
ausreichend, lediglich zu bestimmen, ob der Unterschied ein Bit
beträgt.
Wenn dies der Fall ist, handelt es sich um das zu korrigierende
Datenwort.
-
Obwohl
sich der beispielhafte Datensatz aus den Tabellen der 8 bis 12 und
die Erläuterung
hauptsächlich
auf Einzelfehler beziehen, sind obige Überlegungen auch für mehrere Bitfehler
denkbar, die allerdings nur in einem der Datenworte auftreten dürfen. In
diesem Fall wird das Datenwort ausgewählt, das den geringsten Abstand
hat, auch wenn es sich hierbei um zwei oder drei Fehler handelt.
-
Da
eine stark nichtlineare Verschlüsselungsoperation
verwendet wird, ist es natürlich
auch denkbar, dass der Abstand zwischen einem entschlüsselten
Datenwort, von dem angenommen wird, dass kein Fehler bei dessen
Entschlüsselung
aufgetreten ist, und dem entsprechenden korrigierten Datenwort nach
der erneuten Verschlüsselung
ebenfalls ein Abstand von nur 1 Bit auftritt. In diesem Fall kann
die Korrektur nicht einwandfrei arbeiten, da nicht zwischen dem
korrekten Wort mit dem Abstand 1 Bit und dem fehlerhaften Wort mit
dem Abstand 1 Bit unterschieden werden kann. In solchen Fällen liefert
der Algorithmus entweder kein Ergebnis oder das korrekte Wort wird
möglicherweise
fehlerhaft ausgegeben.
-
Die
Wahrscheinlichkeit, dass ein Bitfehler mit diesem Verfahren auf
diese Weise nicht korrigierbar ist, beträgt bei einem Datensatz, der
vier 32-Bit-lange Worte umfasst, 1:33.000.000. Die Wahrscheinlichkeit,
dass ein fehlerhaftes Wort nicht erkannt wird oder mit einem Bitfehler
ausgegeben wird, beträgt 1:27.000.000.
Damit ist die Sicherheit des beschriebenen Verfahrens im Bereich
herkömmlicher
Fehler korrigierender Kodes.
-
- CPU
- Rechenwerk
- MED
- kryptographische
Einheit
- MEM
- Speicher
- n
- Anzahl
der Bits
- 1
- Verknüpfungseinrichtung
- 2
- Verschlüsselungseinrichtung
- 3
- Entschlüsselungseinrichtung
- 4
- Einrichtung
zur Abstandsbestimmung
- 5
- Vergleicheinrichtung
- 11
- Eingang
- 22
- Ein-/Ausgang
- 33
- Ausgang
- 10
- Datensatz
- 101,
102, 103, 104
- Datenworte
- 20
- verschlüsselter
Datensatz
- 201,
202, 203, 204
- verschlüsselte Datenworte
- 30
- entschlüsselter
Datensatz
- 301,
302, 303, 304
- entschlüsselte Datenworte
- 40
- korrigierter
Datensatz
- 401,
402, 403, 404
- korrigierte
Datenworte
- 50
- verschlüsselter,
korrigierter
-
- Datensatz
- 501,
502, 503, 504
- verschlüsselte,
korrigierte
-
- Datenworte
- 110
- Fehlerkodewort
- 210
- verschlüsseltes
Fehlerkodewort
- 320
- Fehlersyndrom
- 10a
- beispielhafter
Datensatz
- 101a,
102a, 103a, 104a
- beispielhafte
Datenworte
- 20a
- beispielhafter
verschlüsselter
-
- Datensatz
-
-
- 201a,
202a, 203a, 204a
- beispielhafte
verschlüsselte
-
- Datenworte
- 30a
- beispielhafter
entschlüsselter
-
- Datensatz
- 301a,
302a, 303a, 304a
- beispielhafte
entschlüsselte
-
- Datenworte
- 40a
- beispielhafter
korrigierter
-
- Datensatz
- 401a,
402a, 403a, 404a
- beispielhafte
korrigierte
-
- Datenworte
- 50a
- beispielhafter
verschlüsselter,
-
- korrigierter
Datensatz
- 501a,
502a, 503a, 504a
- beispielhafte
verschlüsselte,
-
- korrigierte
Datenworte