-
Die
vorliegende Erfindung befasst sich mit einer Vorrichtung und einem
Verfahren zum Nachweis einer Veränderung
der Daten eines Datensatzes, die beispielsweise bei der Verarbeitung
oder Speicherung von Daten in einem Datenverarbeitungssystem zur
Sicherung der Datenintegrität
angewendet werden können.
-
In
vielen Anwendungsszenarien ist es wünschenswert, gespeicherte Daten
vor dem Zugriff unberechtigter Personen zu schützen, weswegen diese verschlüsselt in
einem Speicher abgelegt werden. Insbesondere Sicherheitsanwendungen
fordern heute den Schutz der Daten durch eine Verschlüsselungseinheit.
Darüber
hinaus muss sichergestellt werden, dass gelesene Daten korrekt sind,
diese also vor dem Lesen nicht verändert wurden. Daten können beispielsweise
bei ihrem Transfer über
ein Bussystem oder während
ihrer Verweildauer im Speicher durch zufällig auftretende Fehler, wie
das Kippen eines einzelnen Bits, verändert werden. Weiterhin gewinnt
auch der Schutz von Datenverarbeitungseinheiten gegen Fehlverhalten
(durch Angriffe auf die Datenverarbeitungseinheit) immer mehr an
Bedeutung. Ein Angreifer, der die Sicherheit eines Datenverarbeitungssystems
durch einen Angriff beeinträchtigen
will, wird gespeicherte Daten mutwillig verändern und dabei meist mehr
als ein Bit eines gespeicherten oder über einen Bus übertragenen
Datenwortes verändern.
Zusätzlich
zur Verschlüsselung der
Daten ist es also erforderlich, eine zufällige oder absichtlich herbeigeführte Veränderung
von Daten zu erkennen.
-
Die
Verschlüsselung
von Daten vor ihrer Speicherung bzw. vor ihrem Transfer über ein
Bussystem, wird dabei durch eine Verschlüsselungseinheit (MED) vorgenommen,
die nach einem kryptographischen Algorithmus einzelne Datenworte
fester, system abhängiger
Wortlänge,
in verschlüsselte
Datenworte derselben Wortlänge
verschlüsselt.
-
Aufgrund
der Notwendigkeit, Datenveränderungen
zu erkennen und einzelne Bitfehler zu korrigieren, wird bisher ein
Fehlerkorrekturpolynom (ECC-Polynom) oder ein anderes auf Redundanzbildung
basierendes Fehlerkorrekturverfahren auf die bereits verschlüsselten
Daten angewendet. Durch die Anwendung der Fehlerkorrekturmechanismen nach
der Verschlüsselung
durch die verschlüsselnde MED
wird die MED selbst in der Regel nicht geschützt, bzw. muss durch aufwendige
Zusatzhardware überprüft werden.
Ebenfalls ist für
die Implementierung der Fehlerkorrektur nach der Verschlüsselung
eine dedizierte Extrahardware vonnöten. Durch das bislang angewendete
Verfahren wird also die erforderliche Hardware in ihrem Umfang deutlich vergrößert bzw.
der Stromverbrauch einer Datenverarbeitungseinrichtung wird durch
die zusätzliche Hardware
erhöht,
was unter anderem im Hinblick auf eine mögliche Verwendung in mobilen
Endgeräten
zu vermeiden ist.
-
Die
Deutsche Patentanmeldung 10 2005 001953.6 beschreibt ein Verfahren
und eine Vorrichtung, bei der die Redundanzinformation, also die Fehlerkorrekturinformation,
durch eine bitweise Exklusiv-Oder-Verknüpfung der einzelnen Datenworte eines
Datensatzes noch vor der Verschlüsselung
der Datenworte durch die MED gebildet wird. Das Fehlercodewort bzw.
die Redundanzinformation hat in diesem Verfahren dieselbe Wortlänge wie
die Datenworte und die MED. In dem in der
DE 10 2005 001 953.6 beschriebenen
Verfahren kann das Fehlercodewort verschlüsselt oder unverschlüsselt zusammen
mit den Datenworten eines Datensatzes übertragen bzw. gespeichert
werden, wodurch das Erkennen von Veränderungen der Daten bei deren Übertragung
oder Speicherung ermöglicht
wird und die Veränderung
eines der Datenworte eines Datensatzes um ein einzelnes Bit korrigiert
werden kann. Das in der
DE
10 2005 001 953.6 vorgeschlagene Verfahren hat dabei den Nachteil,
dass ohne Änderung
der Hardware keine Fehlercodes kleiner der Datenbreite bzw. der Wortlänge der
MED generiert werden können.
Dies ist insbesondere dann nachteilig, wenn die individuellen Schutzanforderungen
bereits mit einer geringeren Bitzahl des Fehlercodes erreicht werden
könnten. Um
eine geringere Bitzahl des Fehlercodes zu erreichen, müssen entweder
massive Änderungen
an der Verschlüsselungseinheit
durchgeführt
werden, oder die eigentlich überflüssigen Bits
des Fehlercodes müssen
zusammen mit den Datenworten gespeichert werden, was den Speicherbedarf
deutlich erhöht.
Dies ist beispielsweise für
mobile Anwendungen oder Anwendungen im embedded-Bereich von Nachteil,
wo oftmals nur begrenzter Speicherplatz zur Verfügung steht.
-
Bei
den bestehenden Lösungen
ist also bei der Implementierung eines Fehlerkorrekturcodes bzw.
einer flexiblen Anpassung des Schutzumfanges an die Sicherheitsanforderungen
eine signifikante Änderung
oder Erweiterung der bestehenden Hardware vonnöten.
-
Die
DE 102 39 062 A1 beschreibt
ein Verfahren zum Übertragen
von verschlüsselten
Nutzdaten-Objekten, wobei eine Prüfsumme des verschlüsselten
Nutzdaten-Objekts erzeugt und diese Prüfsumme zusammen mit dem verschlüsselten
Nutzdaten-Objekt in einem Container-Datenobjekt über einen Datenkanal übertragen
wird. Die Prüfsumme wird
dabei im Klartext übertragen.
-
Die
DE 103 45 385 A1 beschreibt
ein Konzept, wie mittels des Verschlüsselungsteils oder des Entschlüsselungsteils
einer Ver-/Entschlüsselungseinrichtung
sowohl die Verschlüsselung
von zu speichernden Daten als auch das Erzeugen eines adressabhängigen Schlüssels, der
zur adressabhängigen Verschlüsselung
der Daten verwendet wird, realisiert werden kann. Beschrieben wird
also ein Konzept, wie das verschlüsselte Speichern von Daten,
bei dem die Daten mit einem Schlüssel
verschlüsselt
werden, der von der physikalischen Adresse des Speicherorts abhängig ist,
besonders Effizient und Hardware-sparend implementiert werden kann.
-
Die
US -Patentanmeldung 2001/0018741 A1 beschreibt, wie ein bereits
gespeicherter, mit Redundanzinformation versehener Datenblock derart verschlüsselt werden
kann, dass eine Fehlerkorrekturmaßnahme, die Fehler in den gespeicherten
Daten aufgrund der Redundanzinformation beheben kann, auch dann
erfolgreich ist, wenn sie auf die verschlüsselten Daten angewendet wird.
Die Verschlüsselung
erfolgt also so, dass die Integrität der Fehlerkorrekturworte
erhalten bleibt. Das Ziel ist also, gespeicherte Daten, die Fehlerkorrekturinformationen bereits
enthalten, derart verschlüsselt übertragen
zu können,
dass die Fehlerkorrekturinformation dabei nicht kompromittiert wird.
-
Die
US-Patentanmeldung 2002/012090 A1 beschreibt ein Verfahren, mit
dem Datenfehler schnell erkannt werden können und das die Erzeugung
eines Referenz-Syndroms aus Datenbits eines Datenworts umfasst.
Das Referenz-Syndrom umfasst zumindest einen ersten und einen zweiten
Teil, wobei der zweite Teil einen Fehlercode enthält, der von
den Datenbits und dem ersten Teil des Referenz-Syndroms abgeleitet
ist. Dadurch kann auf schnelle Weise entschieden werden, ob ein
Fehler vorliegt und somit eine Fehlerwiederherstellungsprozedur
gestartet werden muss, wenn der Fehlercode lediglich einen einzigen
wahren Wert bzw. eine logische Eins aufweist.
-
Die
Aufgabe der vorliegenden Erfindung besteht darin, eine effizientere
Vorrichtung und ein Verfahren zu schaffen, mit dem die Veränderung
von Daten in einem Speicher oder während der Datenverarbeitung
nachgewiesen werden kann.
-
Diese
Aufgabe wird durch eine Vorrichtung gemäß einem der Ansprüche 1, 7
oder 13 und ein Verfahren gemäß Anspruch
14 oder 15 gelöst.
-
Der
Kerngedanke der vorliegenden Erfindung besteht darin, dass auf die
Veränderung
von verschlüsselten
Datenworten eines verschlüsselten Datensatzes
dadurch geschlossen werden kann, dass eine Redundanzinformation
den dem verschlüsselten
Datensatz zugrundeliegenden Datenworten eines Datensatzes vor der
Verschlüsselung zugeordnet
wird, wobei die Redundanzinformation ebenfalls verschlüsselt und,
zumindest teilweise, als verschlüsseltes
Redundanzdatenwort zusammen mit den verschlüsselten Datenworten des verschlüsselten
Datensatzes gespeichert wird. Auf die Veränderung der gespeicherten ver schlüsselten
Datenworte kann geschlossen werden, indem die durch das Entschlüsseln der
verschlüsselten
Datenworte entstandenen entschlüsselten
Datenworte dazu verwendet werden, ein neues Redundanzdatenwort zu
bilden, welches in ein neues verschlüsseltes Redundanzdatenwort
verschlüsselt
wird. Ein Vergleich des neuen verschlüsselten Redundanzdatenwortes
mit dem verschlüsselten
Redundanzdatenwort ermöglicht
es, zu überprüfen, ob
die verschlüsselten
Daten verändert
wurden. Durch die Tatsache, dass die Konsistenzprüfung durch
Vergleich der Fehlerkorrekturworte nach deren Verschlüsselung
durchgeführt
wird, wird unter Ausnutzung einer Verschlüsselungs-Hardware ein starker
Fehlerschutz ermöglicht,
wobei nur wenige zusätzliche
Hardwarekomponenten erforderlich sind. Anders ausgedrückt reicht
es erfindungsgemäß bereits
aus, beim Ablegen oder Speichern der verschlüsselten Datenworte, nur einen
Teil eines verschlüsselten
Redundanzdatenwortes zu speichern, da es trotzdem möglich ist,
anhand eines nur teilweise gespeicherten Redundanzdatenwortes zu überprüfen, ob
die verschlüsselten
Daten verändert
wurden.
-
Bei
einem Ausführungsbeispiel
der vorliegenden Erfindung wird einem aus mehreren Datenworten bestehenden
Datensatz zunächst
eine Redundanzinformation in Form eines Redundanzdatenwortes hinzugefügt. Vor
dem Speichern des Datensatzes und des dazugehörigen Redundanzdatenwortes
werden die Datenworte wortweise durch eine Verschlüsselungseinrichtung
(MED) verschlüsselt,
wobei auch das Redundanzdatenwort verschlüsselt wird.
-
Beim
Lesen der Daten kann nun anhand des verschlüsselt gespeicherten Redundanzdatenwortes festgestellt
werden, ob die gespeicherten Daten während ihrer Verweildauer im
Speicher verändert
wurden. Dazu werden zunächst
die verschlüsselten
Datenworte des Datensatzes sowie das verschlüsselte Redundanzdatenwort aus
dem Speicher gelesen, das verschlüsselte Redundanzdatenwort wird
zur weiteren Verwendung zwischengespeichert und die verschlüsselten
Datenworte werden von der MED entschlüsselt. Ob die verschlüsselten
Datenworte während ihrer
Verweildauer im Speicher verändert wurden,
die gelesenen entschlüsselten
Datenworte also als integer betrachtet werden können, kann dadurch überprüft werden,
dass aus den entschlüsselten
Datenworten ein neues Redundanzdatenwort gebildet wird, welches
von der MED verschlüsselt
wird. Bei einer Übereinstimmung
dieses neuen verschlüsselten
Redundanzdatenwortes mit dem verschlüsselten Redundanzdatenwort
wird davon ausgegangen, dass die verschlüsselten Datenworte während ihrer Verweildauer
im Speicher nicht verändert
oder manipuliert wurden.
-
In
dem oben beschriebenen Ausführungsbeispiel
der vorliegenden Erfindung wird die MED-Hardware selbst ausgenützt, um
einen hohen Fehlerschutz zu ermöglichen.
Durch die Bildung der Redundanz vor der Verschlüsselung durch die MED werden
dabei selbst Fehler, die in der MED-Operation selbst auftreten,
erkannt.
-
In
einem weiteren Ausführungsbeispiel
der vorliegenden Erfindung wird die Redundanzinformation dadurch
gebildet, dass die einzelnen Datenworte eines Datensatzes bitweise
miteinander durch eine Exklusiv-Oder-Verknüpfung verknüpft werden, so dass ein Redundanzdatenwort
entsteht, dass der Länge
der Datenworte entspricht. Durch diese einfache Form der Redundanzbildung
mittels Exklusiv-Oder-Verknüpfung
ist nur ein minimaler zusätzlicher
Hardwareaufwand erforderlich, somit entsteht eine kleine integrierte
Lösung,
die vollständig
in den normalen Datenfluss bestehender Systeme integriert werden
kann. Durch den sehr geringen zusätzlichen Hardwareaufwand wird
ein Fehlerschutz ermöglicht, der
im Wesentlichen die MED-Hardware selbst ausnutzt und keine signifikante
Erhöhung
des Stromverbrauches hervorruft, bzw. im Betrieb keine signifikanten
Stromspitzen erzeugt.
-
In
einem weiteren Ausführungsbeispiel
der vorliegenden Erfindung wird das verschlüsselte Redundanzdatenwort vor
dem Speichern um eine vom Benutzer festlegbare Anzahl von Bits ge kürzt, so dass
ein verkürztes
verschlüsseltes
Redundanzdatenwort entsteht, welches zusammen mit den verschlüsselten
Datenworten des verschlüsselten
Datensatzes gespeichert wird. Die Länge des gekürzten verschlüsselten
Redundanzdatenwortes hängt
dabei von dem gewünschten
Schutzumfang ab, d.h. von der Wahrscheinlichkeit, mit der ein gespeicherter
Datensatz aus verschlüsselten
Datenworten so verändert
werden kann, dass aus den veränderten
entschlüsselten
Datenworten ein neues Redundanzdatenwort gebildet wird, welches
nach Verschlüsselung und
Beschneidung dem gespeicherten verschlüsselten Redundanzdatenwort
entspricht. Je kleiner diese Wahrscheinlichkeit ist, desto größer ist
der Schutzumfang.
-
Auf
vorteilhafte Art und Weise kann durch die vorliegende Erfindung
somit ein Fehlercode beliebiger Größe generiert werden, ohne dass Änderungen an
der Ver-/Entschlüsselungseinheit
MED selbst vorgenommen werden müssen.
Dies ist z.B. dann besonders vorteilhaft, wenn in einem Datenverarbeitungssystem
parallel mehrere Speicherbereiche mit verschiedenen Sicherheitsanforderungen
(also Redundanzdatenwortlängen
bzw. Codelängen)
existieren. Bereits existierende Hardwaredesigns können leicht
modifiziert werden, um die zusätzliche
Funktionalität
der Fehlerkorrektur zu implementieren.
-
Bei
hohen Schutzanforderungen kann die Codelänge prinzipiell leicht dadurch
erhöht
werden, dass aus den Datenworten des Datensatzes während der
Redundanzbildung auf verschiedene Art und Weise mehrere voneinander
unabhängige
Redundanzdatenworte gebildet werden. Diese unabhängigen Redundanzdatenworte
werden dann wortweise verschlüsselt
und auf die gewünschte
Länge beschnitten,
wobei sich mit der Erhöhung
der Redundanzinformation auch der Schutzumfang erhöht. Dadurch
kann der Schutzumfang in nahezu beliebiger Art und Weise frei bestimmt
werden.
-
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf
die beiliegenden Zeichnungen detailliert erläutert. Es zeigen:
-
1 Ein
System zum sicheren Speichern und Lesen von Daten.
-
2 Eine
Hardwareimplementierung eines Systems zum sicheren Speichern und
Lesen von Daten.
-
Anhand
der schematischen Darstellung in 1 soll im
Folgenden die Funktionsweise des erfindungsgemäßen Systems zum sicheren Handhaben
von Daten dargestellt werden. 1 zeigt
einen Prozessor 2, eine Redundanzeinrichtung 4,
eine Ver-/Entschlüsselungseinrichtung 6,
eine Redundanzverarbeitungseinrichtung 8 und einen Datenspeicher 10.
-
Der
Prozessor 2 verarbeitet bzw. erzeugt Datenworte, die gegen
Fehler gesichert und verschlüsselt
im Speicher 10 abgelegt werden bzw. aus diesem ausgelesen
werden sollen. Zu diesem Zweck ist der Prozessor 2 über Datenverbindungen,
die sowohl das Senden als auch das Empfangen von Daten erlauben,
mit der Redundanzeinrichtung 4 verbunden, welche mit der
Ver-/Entschlüsselungseinrichtung 6 verbunden
ist, die wiederum mit der Redundanzverarbeitungseinrichtung 8 verbunden
ist, wobei die Redundanzverarbeitungseinrichtung 8 mit
dem Datenspeicher 10 verbunden ist.
-
Im
Folgenden soll zunächst
die Funktionsweise der erfindungsgemäßen Vorrichtung beim Schreiben
von Daten in den Speicher beschrieben werden. Dazu werden zunächst vom
Prozessor 2 diejenigen 4 Datenworte 20a bis 20d eines
Datensatzes 21 erzeugt, die im Datenspeicher 10 abgespeichert werden
sollen, wobei in dem hier beschriebenen erfindungsgemäßen Ausführungsbeispiel
ein zu speichernder Datensatz 21 aus genau vier Datenworten 20a bis 20d besteht.
Die Datenworte 20a bis 20d werden zunächst an
die Redundanzeinrichtung 4 übermittelt, wobei die Redundanzeinrichtung 4 aus den
Datenworten 20a bis 20d ein dem Datensatz 21 zugeordnetes
Fehlercodewort 22 bildet. Dabei kann diese Redundanz- bzw.
Fehlercodebildung durch einen beliebigen geeigneten Fehlercodemechanismus erfolgen.
Nach der Bildung des Fehlercodeworts 22 werden die Datenworte 20a bis 20d des
Datensatzes 21 und das Fehlercodewort 22 an die
Ver-/Entschlüsselungseinrichtung 6 übermittelt,
von der sie durch ein vorgegebenes Verschlüsselungsverfahren wortweise
in die verschlüsselten
Datenworte eines verschlüsselten
Datensatzes 24 und in ein verschlüsseltes Fehlercodewort 26 verschlüsselt werden.
-
Der
verschlüsselte
Datensatz 24 und das ihm zugeordnete verschlüsselte Fehlercodewort 26 wird
daraufhin an die Redundanzverarbeitungseinrichtung 8 übertragen,
die eine vorbestimmte Anzahl von Bits des verschlüsselten
Fehlercodewortes 26 am Ende des verschlüsselten Fehlercodewortes 26 verwirft,
so dass am Ausgang der Redundanzverarbeitungseinrichtung 8 der
verschlüsselte
Datensatz 24 und ein reduziertes verschlüsseltes
Fehlercodewort 28 bereitgestellt werden, wobei der verschlüsselte Datensatz 24 zusammen
mit dem ihm zugeordneten reduzierten verschlüsselten Fehlercodewort 28 im
Speicher 10 gespeichert werden.
-
Das
erfindungsgemäße Vorgehen
hat den Vorteil, dass der zur Verfügung stehende Speicherplatz
bestmöglich
genutzt werden kann, da der benötigte
Speicherplatz erfindungsgemäß mit dem
gewünschten
Schutzumfang skaliert, wie im Folgenden kurz erläutert wird.
-
Die
Verschlüsselungseinrichtung
arbeitet natürlicherweise
mit einer Wortbreite, die der Breite der zu verschlüsselnden
Datenworte entspricht. Bislang war es natürlich möglich, einen Fehlercode geringerer
Länge als
der Wortbreite der Verschlüsselungseinrichtung
zu generieren. Dieser musste allerdings aufgrund obiger Einschränkung unverschlüsselt gespeichert
werden, was mit offensichtlichen negativen Auswirkungen auf die
Datensicherheit einher geht. Soll der Fehlercode ver schlüsselt gespeichert
werden, musste die Fehlercodelänge
nach dem Stand der Technik also mindestens der Wortlänge der
MED entsprechen (oder ein ganzzahliges Vielfaches derselben sein),
auch wenn der erforderlichen Schutzumfang prinzipiell mit geringerer
Wortbreite erzielt werden kann.
-
Die
vorliegende Erfindung ermöglicht
es nun auf vorteilhafte Art und Weise, sowohl den Fehlercode verschlüsselt zu
speichern, als auch dessen Länge
beliebig an den Schutzbedarf anzupassen. In diesem Zusammenhang
sei erneut darauf hingewiesen, dass proportional zur Erhöhung der
Anzahl der beim Übergang
vom verschlüsselten
Fehlercode 26 zum reduzierten verschlüsselten Fehlercodewort 28 verworfenen
Bits der Schutzumfang der erfindungsgemäßen Vorrichtung abnimmt.
-
Das
Lesen von verschlüsselt
gespeicherten Daten und die Prüfung,
ob abgespeicherte Daten im Speicher verändert wurden, wird im Folgenden
kurz erläutert.
Dazu wird zunächst
aus dem Speicher 10 ein verschlüsselter Datensatz 30 und
das ihm zugeordnete reduzierte verschlüsselte Fehlercodewort 32 aus
dem Speicher gelesen. In 1 ist dabei der während des
Speichervorganges im Speicher 10 gespeicherte verschlüsselte Datensatz 24 (
) und das ihm zugeordnete reduzierte verschlüsselte Fehlercodewort 28 (
) mit einer vom gelesenen Datensatz 30 ( ) und dem gelesenen
reduzierten verschlüsselten
Fehlercodewort 32 ( ) abweichenden Notation versehen, um
die Möglichkeit
anzudeuten, dass sowohl die ursprünglich gespeicherten Datenworte
des verschlüsselten
Datensatzes 24 als auch das ursprünglich gespeicherte reduzierte
verschlüsselte Fehlercodewort 28 während ihrer
Verweildauer im Speicher 10 verändert wurden.
-
Beim
Lesevorgang wird der verschlüsselte Datensatz 30 und
das reduzierte verschlüsselte
Fehlercodewort 32 zunächst
vom Speicher 10 in die Redundanzverarbeitungseinrichtung 8 übertragen,
welche das reduzierte verschlüsselte
Fehlercodewort 32 zwischenspeichert und den verschlüsselten
Datensatz 30 an die Ver-/Entschlüsselungseinrichtung 6 übermittelt.
-
Von
der Ver-/Entschlüsselungseinrichtung 6 werden
die Datenworte des verschlüsselten
Datensatzes 30 wortweise in entschlüsselte Datenworte eines entschlüsselten
Datensatzes 34 entschlüsselt, woraufhin
der entschlüsselte
Datensatz 34 an die Redundanzeinrichtung 4 übermittelt
wird.
-
Diese überträgt zum einen
den entschlüsselten
Datensatz 34 an den Prozessor 2, zum anderen verarbeitet
sie den entschlüsselten
Datensatz 34, um ein dem entschlüsselten Datensatz 34 zugeordnetes Testfehlercodewort 36 zu
bilden.
-
Das
Testfehlercodewort 36 wird daraufhin an die Ver-/Entschlüsselungseinrichtung 6 übermittelt, welche
aus dem Testfehlercodewort 36 ein verschlüsseltes
Testfehlercodewort 38 bildet. Das verschlüsselte Testfehlercodewort 38 wird
an die Redundanzverarbeitungseinrichtung 8 übermittelt,
welche die vorbestimmte Anzahl von Bits des verschlüsselten
Testfehlercodeworts 38 verwirft, und daraus das reduzierte
verschlüsselte
Testfehlercodewort 40 bildet.
-
Die
Entscheidung, ob der verschlüsselte
Datensatz 30 oder das ihm zugeordnete reduzierte verschlüsselte Fehlercodewort 32 während ihrer
Verweildauer im Datenspeicher 10 verändert wurden, kann nun durch
einen Vergleich des reduzierten verschlüsselten Fehlercodewortes 32 und
des reduzierten verschlüsselten
Testfehlercodewortes 40 bestimmt werden. Ist das reduzierte
verschlüsselte Fehlercodewort 32 und
das reduzierte verschlüsselte Testfehlercodewort 40 identisch,
wird davon ausgegangen, dass im Datenspeicher 10 weder
der verschlüsselte
Datensatz 30 noch das reduzierte verschlüsselte Fehlercodewort 32 verändert wurden,
der an den Prozessor 2 übermittelte
entschlüsselte
Datensatz 34 also unmanipuliert ist und sicher verwendet
werden kann.
-
Im
in 1 beschriebenen Zyklus aus Schreiben und Lesen,
ist bei einer Übereinstimmung des
reduzierten verschlüsselten Fehlercodewortes 32 und
des reduzierten verschlüsselten
Testfehlercodewortes 40 also kein Fehler aufgetreten und
der verschlüsselte
Datensatz 24 und das reduzierte verschlüsselte Fehlercodewort 28 sind
mit dem gelesenen verschlüsselten
Datensatz 30 und dem ihm zugeordneten reduzierten verschlüsselten
Fehlercodewort 32 identisch, die Daten sind also Unmanipuliert.
-
Ergibt
der Vergleich zwischen dem reduzierten verschlüsselten Testfehlercodewort 40 und
dem reduzierten verschlüsselten
Fehlercodewort 32, dass sich die beiden Codeworte unterscheiden,
können geeignete
Maßnahmen
getroffen werden, z.B. kann das Verwerfen des entschlüsselten
Datensatzes 34 ausgelöst
werden.
-
In
der vorliegenden Erfindung werden die starken Nichtlinearitäten und
Bitabhängigkeiten
der Ver-/Entschlüsselungseinrichtung 6 (MED)
verwendet, um auf eine einfache Art und Weise einen starken Fehlerschutz,
sowohl für
die verschlüsselten
Daten als auch für
die Entschlüsselungsoperation
und die Verschlüsselungsoperation
selbst aufzubauen. Dabei wird primär die Ver-/Entschlüsselungseinrichtung 6 (MED)
selbst verwendet und nur ein geringer Extrateil Hardware benötigt, um
die eigentliche Korrektheitsprüfung
durchzuführen.
Die Fehlerprüfung benötigt dabei
selbst nicht mehr Zeit wie eine normale Verschlüsselungsoperation.
-
Der
besondere Vorteil liegt dabei zum einen darin, dass nur wenig zusätzliche
Hardware zur Fehlerüberprüfung implementiert
werden muss, und dass durch das Anbringen der Redundanz vor der
eigentlichen Verschlüsselung
sowohl der Verschlüsselungsvorgang
als auch der Entschlüsselungsvorgang geschützt sind,
während
derer es prinzipiell auch zu fehlerhaften Bittransaktionen kommen
kann.
-
Ein
weiterer wesentlicher Vorteil besteht darin, dass der Schutzumfang über die
Länge des
reduzierten verschlüsselten Fehlercodewortes 28 vom Benutzer
variabel an die Schutzanforderung angepasst werden kann, ohne die
eigentliche Ver-/Entschlüsselungseinheit 6 modifizieren
zu müssen.
Dabei ist zum einen bei verringerten Schutzumfang eine erhebliche
Speicherplatzersparnis im Datenspeicher 10 möglich, da
die Länge
des reduzierten verschlüsselten
Fehlercodewortes 28 deutlich geringer ist als die Länge eines
Datenwortes des verschlüsselten Datensatzes 24.
Durch die erfindungsgemäße Vorrichtung
ist es dadurch sogar möglich,
innerhalb eines Datenverarbeitungssystems bei unterschiedlich sensiblen
Daten unterschiedliche Stärken
des Fehlerschutzes in verschieden Speicherbereichen des Datenspeichers 10 zu
realisieren.
-
Wird
eine MED benützt,
bei der die Erzeugung des verschlüsselnden Schlüssels abhängig von der
physikalischen Speicheradresse ist, an welcher ein Datenwort im
Datenspeicher 10 gespeichert werden soll, so ist durch
die vorliegende Erfindung zusätzlich
die Selektion des auszulesenden Datenwortes, also die Adressierung
des Speicherbereichs im Datenspeicher 10 selbst, geschützt, da
auch bei einer fehlerhaften Adressangabe das reduzierte verschlüsselte Testfehlercodewort 40 nicht
mehr mit dem reduzierten verschlüsselten
Fehlercodewort 32, das direkt aus dem Speicher gelesen
wird, übereinstimmt.
-
Die 2 zeigt
ein System zum sicheren Schreiben und Lesen von Daten und die Implementierung
desselben unter Ausnutzung der stark nichtlinearen Eigenschaften
einer Ver-/Entschlüsselungseinheit
MED.
-
2 zeigt
einen unverschlüsselten
Datensatz 50, bestehend aus vier unverschlüsselten
Datenworten 50a bis 50d, einen ersten Multiplexer 52 mit
einem ersten Dateneingang 52a und einem zweiten Dateneingang 52b,
einen zweiten Multiplexer 54 mit einem ersten Dateneingang 54a und
einem zweiten Dateneingang 54b, eine Verknüpfungseinrichtung 56 und
einen Zwischenspeicher 58 auf einer unverschlüsselten
Seite 60 des Datenpfads. Ferner ist eine Ver-/Entschlüsselungseinrichtung 62 dargestellt,
welche die unverschlüsselte
Seite 60 von einer verschlüsselten Seite 64 des
Datenpfades trennt. Auf der verschlüsselten Seite 64 sind
ein verschlüsselter Datensatz 66,
bestehend aus vier verschlüsselten Datenworten 66a bis 66d,
ein dem verschlüsselten Datensatz 66 zugeordnetes
verschlüsseltes
Fehlercodewort 68 sowie eine Codevergleichseinrichtung 70 gezeigt.
-
Über eine
Datenverbindung können
die unverschlüsselten
Datenworte 50a bis 50d des unverschlüsselten
Datensatzes an den ersten Dateneingang 52a des ersten Multiplexers 52 sowie
an den ersten Dateneingang 54a des zweiten Multiplexers 54 übertragen
werden. Der Datenausgang des ersten Multiplexers 52 ist
mit einem von zwei Dateneingängen
der Verknüpfungseinrichtung 56 verbunden, der
Datenausgang der Verknüpfungseinrichtung 56 ist
mit dem Dateneingang des Zwischenspeichers 58 verbunden,
wobei der Datenausgang des Zwischenspeichers 58 sowohl
mit einem zweiten Dateneingang der Verknüpfungseinrichtung 56 als
auch mit dem zweiten Dateneingang 54b des zweiten Multiplexers 54 verbunden
ist. Der Datenausgang des zweiten Multiplexers 54 ist mit
einem verschlüsselnden
Dateneingang 72 der Ver-/Entschlüsselungseinrichtung 62 verbunden. Über einen
verschlüsselten Datenausgang 74 der
Ver-/Entschlüsselungseinrichtung 62 können verschlüsselte Datenworte
sowohl als verschlüsselte
Datenworte 66a bis 66d des verschlüsselten
Datensatzes 66 gespeichert werden, als auch an einen von
zwei Dateneingängen
der Codevergleichseinrichtung 70 übermittelt werden. Die verschlüsselten
Datenworte 66a bis 66d sowie das verschlüsselte Fehlercodewort
können
an einen entschlüsselnden
Dateneingang 76 der Ver-/Entschlüsselungseinrichtung 62 übertragen
werden, ein entschlüsselter
Datenausgang 78 der Ver-/Entschlüsselungseinrichtung 62 ist
zum Einen mit dem zweiten Dateneingang 52b des ersten Multiplexers 52 verbunden,
zum Anderen können
entschlüsselte
Datenworte vom entschlüsselten
Datenausgang 78 dazu verwendet werden, den vollständigen unverschlüsselten
Datensatz 50, be stehend aus den vier unverschlüsselten
Datenworten 50a bis 50d, zu bilden.
-
Bei
dem in 2 beschriebenen Ausführungsbeispiel der vorliegenden
Erfindung wird das Redundanzdatenwort durch eine einfache, bitweise Exklusiv-Oder-Verknüpfung der
unverschlüsselten Datenworte 50a bis 50d gebildet.
Während
vier erster Schritte eines vollständigen Schreibvorganges werden
zunächst
die vier unverschlüsselten
Datenworte 50a-50d verschlüsselt und als verschlüsselte Datenworte 66a-66d gespeichert,
wobei simultan aus den vier unverschlüsselten Datenworten 50a bis 50d ein Fehlercodewort
gebildet wird, das in einem fünften Schritt
ebenfalls verschlüsselt
und als verschlüsseltes
Fehlercodewort 68 gespeichert wird.
-
Während der
ersten vier Schritte des Schreibvorganges ist der erste Multiplexer 52 so
geschalten, dass die an seinem ersten Dateneingang 52a anliegenden
unverschlüsselten
Datenworte 50a bis 50d an den Datenausgang des
Multiplexers 52 weitergegeben werden, der zweite Multiplexer 54 wird
so betrieben, dass die an seinem ersten Dateneingang 54a anliegenden
unverschlüsselten
Datenworte 50a bis 50d an seinen Datenausgang
durchgeschalten sind, diese also am verschlüsselnden Dateneingang 72 der
Ver-/Entschlüsselungseinrichtung 62 anliegen.
Die Verknüpfungseinrichtung 56 ist
so beschaffen, dass sie die an ihren beiden Dateneingängen anliegende
Datenworte mittels einer bitweisen Exklusiv-Oder-Verknüpfung in
ein neues Datenwort transformiert, welches dann am Datenausgang der
Verknüpfungseinrichtung 56 bereitsteht
und im Zwischenspeicher 58 gespeichert wird. Dabei wird das
im Zwischenspeicher 58 gespeicherte Datenwort als ein Eingangsdatenwort
der Verknüpfungseinrichtung 56 verwendet.
Während
der ersten vier Schritte eines Speichervorganges werden also über den zweiten
Multiplexer 54 die einzelnen unverschlüsselten Datenworte 50a bis 50d von
der Ver-/Entschlüsselungseinrichtung 62 verschlüsselt und
als verschlüsselte
Datenworte 66a bis 66d gespeichert. Zeitgleich
zum Verschlüsseln
und Speichern der entschlüsselten
Datenworte 50a bis 50d wird aus diesen ein Fehlercodewort
bestimmt, wie es im folgenden beschrieben wird.
-
Während des
ersten Schrittes des Speichervorganges wird das erste unverschlüsselte Datenwort 50a über den
Multiplexer 52 an den ersten Dateneingang der Verknüpfungseinrichtung 56 gelegt, wo
es mit einem Datenwort bitweise XOR'iert wird, welches dieselbe Länge hat
wie das unverschlüsselte
Datenwort 50a, dessen Bits jedoch alle Null sind. Daher
wird in dem ersten Schritt das Datenwort 50a nicht verändert, es
wird am Datenausgang der Verknüpfungseinrichtung 56 unverändert ausgegeben und
in dem Zwischenspeicher 58 gespeichert. Im zweiten Schritt
wird das zweite unverschlüsselte
Datenwort 50b an den ersten Eingang der Verknüpfungseinrichtung 56 angelegt,
wobei nun am zweiten Eingang der Verknüpfungseinrichtung 56 das
im Zwischenspeicher 58 gespeicherte erste Datenwort 50a anliegt.
Dadurch wird am Datenausgang der Verknüpfungseinrichtung 56 nun
ein Datenwort zur Verfügung
gestellt und im Zwischenspeicher 58 gespeichert, das durch
bitweise Exklusiv-Oder-Verknüpfung der
Datenworte 50a und 50b gebildet wird. Nach Beendigung
des vierten Schritts befindet sich also im Zwischenspeicher 58 ein
Datenwort, das durch bitweise XOR'ierung der vier unverschlüsselten
Datenworte 50a bis 50d des unverschlüsselten
Datensatzes 50 erzeugt wurde, das also dem gewünschten Fehlercodewort
entspricht. Im fünften
Schritt einer Datenspeicherung wird nun der zweite Multiplexer 54 so
umgeschalten, dass das an seinem zweiten Dateneingang 54b anliegende
Fehlercodewort an den Datenausgang des Multiplexers 54 geschalten
wird, so dass dieses am verschlüsselnden
Dateneingang 72 der Ver-/Entschlüsselungseinrichtung 62 anliegt, um
das Fehlercodewort ebenfalls zu verschlüsseln.
-
In
dem in 2 gezeigten Ausführungsbeispiel wird das Fehlercodewort
nach der Verschlüsselung
zusätzlich
um eine vorbestimmte Anzahl der letzten Bits gekürzt, so dass das ver schlüsselte Fehlercodewort 68 entsteht,
das den verschlüsselten
Datenworten 66a bis 66d des verschlüsselten
Datensatzes 66 zugeordnet ist, und anhand dessen während des
Lesens überprüft werden
kann, ob die unverschlüsselten
Datenworte 50a bis 50d während der Verschlüsselung
oder des Transfers über
eine Datenverbindungen verändert
wurden, ob also die Datenintegrität gesichert ist. Das Lesen
der Daten und das Überprüfen der
Integrität
der Daten wird im Folgenden anhand von 2 beschrieben.
-
Der
Lesevorgang lässt
sich wie der Schreibvorgang in fünf
logische Schritte unterteilen. Während
der ersten vier Schritte werden die verschlüsselten Datenworte 66a bis 66d über den
entschlüsselnden
Dateneingang 76 der Ver-/Entschlüsselungseinrichtung 62 entschlüsselt, um
damit den entschlüsselten
Datensatz 50 zu bilden. Zeitgleich wird aus den entschlüsselten
gelesenen Datenworten 50a-50d auf die selbe Art
und Weise, wie sie beim Schreibvorgang bereits beschrieben wurde,
ein neues Fehlercodewort ermittelt. Dazu ist der erste Multiplexer 52 so
geschalten, dass die an seinem zweiten Dateneingang 52b anliegenden
Datenworte an den Datenausgang des Multiplexers 52 durchgeschalten sind,
so dass während
der vier ersten Leseschritte durch bitweise XOR'ierung der entschlüsselten gelesenen Datenworte
ein neues Fehlercodewort gebildet wird. Im fünften Schritt des Lesevorganges
wird das neue Fehlercodewort über
den zweiten Multiplexer 54 an den verschlüsselnden
Eingang 72 der Ver-/Entschlüsselungseinrichtung 62 weitergeleitet, die
das neue Fehlercodewort in ein neues verschlüsseltes Fehlercodewort verschlüsselt. Das
neue verschlüsselte
Fehlercodewort wird daraufhin um dieselbe Anzahl von Bits gekürzt, wie
es für
das verschlüsselte
Fehlercodewort 68 beim Schreiben der Fall war. Die Codevergleichseinrichtung 70 vergleicht
die an ihren beiden Dateneingängen
anliegenden Datenworte, das neue verschlüsselte Fehlercodewort und das
verschlüsselten
Fehlercodewort 68, welches während des Schreibens des verschlüsselten
Datensatzes 66 erzeugt wurde. Stimmt das neue verschlüsselte Fehler codewort
und das verschlüsselte Fehlercodewort 68 überein,
wird angenommen, dass die gelesenen entschlüsselten Daten des verschlüsselten
Datensatzes 66 den ursprünglichen, unverschlüsselten
Datenworten 50a bis 50d des unverschlüsselten
Datensatzes 50 entsprechen, dass also die Datenintegrität während des
gesamten Schreib- und Lesevorganges gewahrt wurde.
-
Wie
es anhand von 2 zu sehen ist, ist die Erweiterung
eines bestehenden Systems zur Verschlüsselung und Entschlüsselung
von Daten um die Funktionalität
der Fehlererkennung mit einem sehr geringen zusätzlichen Hardwareaufwand möglich, so dass
wenig zusätzliche
Fläche
auf einem Siliziumchip verbraucht wird und sich ein nur minimal
erhöhter
Stromverbrauch ergibt.
-
Durch
die geschickte parallele Erzeugung des Fehlercodeworts und der Speicherung
der verschlüsselten
Daten entsteht durch die Fehlererkennungsmöglichkeit nur ein geringer
zusätzlicher
zeitlicher Aufwand, der dabei im wesentlichen von der Dauer einer
Verschlüsselungsoperation
der Ver-/Entschlüsselungseinrichtung 62 abhängt.
-
Obwohl
in der in 2 beschriebenen Ausführungsform
der vorliegenden Erfindung die Erzeugung des Fehlercodewortes durch
einfache XOR'ierung
der unverschlüsselten
Datenworte 50a bis 50d erfolgt, ist auch jedwede
andere Form der Bildung eines Fehlercodewortes ebenso geeignet,
die Integrität der
Daten erfindungsgemäß sicherzustellen.
So ist beispielsweise die Anwendung eines Fehlerkorrekturpolynoms
oder die Verwendung von Hardware-effizienten Hsiao-Codes denkbar.
-
Entsprechend
den individuellen Anforderungen des Datenschutzes ist es mit der
erfindungsgemäßen Vorrichtung
zum Handhaben von Daten möglich,
den Schutzumfang zu variieren. Das Prinzip, das in dem bevorzugten
Ausführungsbeispiel
der vorliegenden Erfindung in 2 dargestellt
ist, ist gerade bei Codes geringerer Länge als der Wortbreite der Ver-/Entschlüsselungseinrichtung 62 (MED),
eine Verknüpfung
der Klartextdaten zu einem Codewort der Breite der MED zu generieren
(bevorzugt XOR'ierung
aller Worte, auch Anwendung „echter" Fehlercodes ist
natürlich
möglich).
Dieses Wort wird dann einfach verschlüsselt und danach auf die gewählte kürzere Länge geschnitten
(z.B. durch Verwerfen der oberen n MSBs). Dieses so generierte Codewort
wird dann gespeichert. Werden nun die verschlüsselten Daten gelesen und entschlüsselt, so
kann die Korrektheit der Daten festgestellt werden durch die erneute
Verknüpfung
der Klartextdaten zu einem Codewort, dessen Verschlüsselung,
Beschneidung und anschließendem
Vergleich mit dem gespeicherten Codewort. Für gewünschten größeren Schutzumfang, also für größere Codes,
werden in einer alternativen Ausführungsform der vorliegenden
Erfindung einfach die Klartextdaten auf verschiedene Weise miteinander
verknüpft.
Die entstehenden n Codeworte werden daraufhin wie oben beschrieben
verschlüsselt,
auf die benötigte
Gesamtlänge
beschnitten und abgespeichert. Die Überprüfung auf die Datenintegrität hin erfolgt
dabei auf äquivalente
Art und Weise wie bereits anhand des Ausführungsbeispiels in 2 beschrieben.
-
Darüber hinaus
ist es mit einer erfindungsgemäßen Vorrichtung
zum Handhaben von Daten möglich,
einen in den verschlüsselten
Daten aufgetretenen Ein-Bit-Fehler zu korrigieren, wenn auf das
Beschneiden zumindest eines verschlüsselten Fehlercodewortes verzichtet
wird. Dabei wird die hohe Nichtlinearität einer MED dazu verwendet,
einen Fehlercode zu implementieren, der zusätzlich die Möglichkeit
bietet einen Ein-Bit-fehler schnell zu korrigieren.
-
Obwohl
im Ausführungsbeispiel
in 1 ein vollständiges
System zum Lesen und zum Speichern von Daten beschrieben wurde,
kann in einer alternativen Ausführungsform
der vorliegenden Erfindung lediglich die Schreibfunktionalität implementiert
werden, um beispielsweise Daten für eine spätere Ver wendung sicher zu speichern.
Demzufolge kann in 1 auf die Entschlüsselungsfunktion
der Ver-/Entschlüsselungseinrichtung 6 vollständig verzichtet werden,
die Redundanzverarbeitungseinrichtung 8 beschränkt sich
dabei lediglich auf die Funktion, die gewünschte Anzahl von Bits des
verschlüsselten Fehlercodewortes 26 zu
verwerfen, um das reduzierte verschlüsselte Fehlercodewort 28 zu
bilden, welches dann zusammen mit dem verschlüsselten Datensatz 24 in
einem nicht-flüchtigen
Speicher gespeichert werden kann. Die so gespeicherten Daten können beispielsweise
mit dem Speichermedium transferiert werden, wobei durch ein späteres Auslesen
sichergestellt werden kann, dass die Daten während ihres Transports nicht
manipuliert wurden.
-
In
einem weiteren vorteilhaften Ausführungsbeispiel der vorliegenden
Erfindung ist es daher vorteilhaft, die Lesefunktionalität des Systems
zum sicheren Speichern und Lesen von Daten allein in Hardware zu
implementieren. Damit kann beispielsweise überprüft werden, ob Daten, die auf
einem Datenträger
angeliefert werden, während
ihres Transfers bzw. während
des Transports manipuliert wurden oder nicht. Dazu müssen verschlüsselte Datenworte
eines verschlüsselten
Datensatzes 30 von der Ver-/Entschlüsselungseinrichtung 6 entschlüsselt werden,
um einen entschlüsselten
Datensatz 34 zu erhalten. Zusätzlich muss das aus dem Speicher 10 gelesene,
reduzierte verschlüsselte
Fehlercodewort 32 von der Redundanzverarbeitungseinrichtung 8 zwischengespeichert
werden, die Redundanzbildungseinrichtung 4 in 1 wird
für das
Lesen benötigt,
um aus den entschlüsselten
Datenworten des entschlüsselten
Datensatzes 34 ein Testfehlercodewort 36 zu bilden,
das nach Verschlüsselung
durch die Ver/Entschlüsselungseinrichtung 6 und
anschließender
Beschneidung auf die gewünschte
Länge mit dem
reduzierten verschlüsselten
Fehlercodewort 32 durch die Redundanzverarbeitungseinrichtung 8 verglichen
wird, um so ein eventuelles Verändern
der Daten zu entdecken.
-
Abhängig von
den Gegebenheiten kann das erfindungsgemäße Verfahren zum Nachweis einer Veränderung
der Daten eines Datensatzes in Hardware oder in Software implementiert
werden. Die Implementation kann auf einem digitalen Speichermedium,
insbesondere einer Diskette oder CD mit elektronisch auslesbaren
Steuersignalen erfolgen, die so mit einem programmierbaren Computersystem
zusammenwirken können,
dass das erfindungsgemäße Verfahren
zum Nachweis einer Veränderung
der Daten eines Datensatzes ausgeführt wird. Allgemein besteht
die Erfindung somit auch in einem Computer-Programm-Produkt mit
einem auf einem maschinenlesbaren Träger gespeicherten Programmcode zur
Durchführung
des erfindungsgemäßen Verfahrens,
wenn das Computer-Programm-Produkt auf einem Rechner abläuft. In
anderen Worten ausgedrückt
kann die Erfindung somit als ein Computer-Programm mit einem Programmcode zur
Durchführung
des Verfahrens realisiert werden, wenn das Computer-Programm auf
einem Computer abläuft.
-
- 2
- Prozessor
- 4
- Redundanzeinrichtung
- 6
- Ver-/Entschlüsselungseinrichtung
- 8
- Redundanzverarbeitungseinrichtung
- 10
- Datenspeicher
- 20a-20d
- Datenworte
- 21
- Datensatz
- 22
- Fehlercodewort
- 24
- verschlüsselter
Datensatz
- 26
- verschlüsseltes
Fehlercodewort
- 28
- reduziertes
verschlüsseltes
Fehlercodewort
- 30
- verschlüsselter
Datensatz
- 32
- reduziertes
verschlüsseltes
Fehlercodewort
- 34
- entschlüsselter
Datensatz
- 36
- Testfehlercodewort
- 38
- verschlüsseltes
Testfehlercodewort
- 40
- reduziertes
verschlüsseltes
Testfehlercodewort
- 50
- unverschlüsselter
Datensatz
- 50a-50b
- unverschlüsselte Datenworte
- 52
- erster
Multiplexer
- 52a
- erster
Dateneingang
- 52b
- zweiter
Dateneingang
- 54
- zweiter
Multiplexer
- 54a
- erster
Dateneingang
- 54b
- zweiter
Dateneingang
- 56
- Verknüpfungseinrichtung
- 58
- Zwischenspeicher
- 60
- unverschlüsselte Seite
- 62
- Ver-/Entschlüsselungseinrichtung
- 64
- verschlüsselte Seite
- 66
- verschlüsselter
Datensatz
- 66a-66d
- verschlüsselte Datenworte
- 68
- verschlüsseltes
Fehlercodewort
- 70
- Codevergleichseinrichtung
- 72
- verschlüsselnder
Dateneingang
- 74
- verschlüsselter
Datenausgang
- 76
- entschlüsselnder
Dateneingang
- 78
- entschlüsselter
Datenausgang