DE102005031611B4 - Nachweis einer Veränderung der Daten eines Datensatzes - Google Patents

Nachweis einer Veränderung der Daten eines Datensatzes Download PDF

Info

Publication number
DE102005031611B4
DE102005031611B4 DE102005031611A DE102005031611A DE102005031611B4 DE 102005031611 B4 DE102005031611 B4 DE 102005031611B4 DE 102005031611 A DE102005031611 A DE 102005031611A DE 102005031611 A DE102005031611 A DE 102005031611A DE 102005031611 B4 DE102005031611 B4 DE 102005031611B4
Authority
DE
Germany
Prior art keywords
encrypted
data
redundancy
word
data word
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE102005031611A
Other languages
English (en)
Other versions
DE102005031611A1 (de
Inventor
Steffen Marc Sonnekalb
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE102005031611A priority Critical patent/DE102005031611B4/de
Priority to FR0605913A priority patent/FR2890202B1/fr
Priority to KR1020060062873A priority patent/KR100782614B1/ko
Priority to US11/480,826 priority patent/US8199914B2/en
Publication of DE102005031611A1 publication Critical patent/DE102005031611A1/de
Application granted granted Critical
Publication of DE102005031611B4 publication Critical patent/DE102005031611B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Vorrichtung zum Handhaben von Datenworten (20a-20d; 50a-50d) eines Datensatzes (21; 50), mit folgenden Merkmalen:
einer Redundanzeinrichtung (4; 56), die ausgebildet ist, um aus den Datenworten (20a-20d; 50a-50d) des Datensatzes (21; 50) ein dem Datensatz (21; 50) zugeordnetes Redundanzdatenwort (22) zu bestimmen;
einer Verschlüsselungseinrichtung (6; 62), die ausgebildet ist, um die Datenworte (20a-20d; 50a-50d) in verschlüsselte Datenworte (24; 66a-66d) zu verschlüsseln und um das Redundanzdatenwort (22) in ein verschlüsseltes Redundanzdatenwort (26) zu verschlüsseln; und
einer Verarbeitungseinrichtung (8) zum Verarbeiten der verschlüsselten Datenworte (24) und des verschlüsselten Redundanzdatenwortes (26) unter Verwerfen vorbestimmter Bits des verschlüsselten Redundanzdatenwortes (26).

Description

  • 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

Claims (16)

  1. Vorrichtung zum Handhaben von Datenworten (20a-20d; 50a-50d) eines Datensatzes (21; 50), mit folgenden Merkmalen: einer Redundanzeinrichtung (4; 56), die ausgebildet ist, um aus den Datenworten (20a-20d; 50a-50d) des Datensatzes (21; 50) ein dem Datensatz (21; 50) zugeordnetes Redundanzdatenwort (22) zu bestimmen; einer Verschlüsselungseinrichtung (6; 62), die ausgebildet ist, um die Datenworte (20a-20d; 50a-50d) in verschlüsselte Datenworte (24; 66a-66d) zu verschlüsseln und um das Redundanzdatenwort (22) in ein verschlüsseltes Redundanzdatenwort (26) zu verschlüsseln; und einer Verarbeitungseinrichtung (8) zum Verarbeiten der verschlüsselten Datenworte (24) und des verschlüsselten Redundanzdatenwortes (26) unter Verwerfen vorbestimmter Bits des verschlüsselten Redundanzdatenwortes (26).
  2. Vorrichtung gemäß Anspruch 1, bei der die Redundanzeinrichtung (4; 56) ausgebildet ist, um das Redundanzdatenwort (22) durch bitweise Exklusiv-Oder-Verknüpfung aller Datenworte (20a-20d; 50a-50d) des Datensatzes (21; 50) zu bilden.
  3. Vorrichtung gemäß einem der Ansprüche 1 oder 2, bei der die Verschlüsselungseinrichtung (6; 62) ausgebildet ist, um die Datenworte (20a-20d; 50a-50d) und das Redundanzdatenwort (22) abhängig von einer Speicheradresse zu verschlüsseln.
  4. Vorrichtung gemäß einem der vorhergehenden Ansprüche, bei der die Verarbeitungseinrichtung (8) ausgebildet ist, um eine vorbestimmte Anzahl der letzten Bits des verschlüsselten Redundanzdatenwortes (26) zu verwerfen.
  5. Vorrichtung gemäß einem der vorhergehenden Ansprüche, bei der die Verarbeitungseinrichtung (8) ausgebildet ist, um die verschlüsselten Datenworte (24) und das verschlüsselte Redundanzdatenwort (26) nach der Verarbeitung in einem Speicher (10) zu speichern oder über einen Datenbus zu übertragen, wobei die vorbestimmten zu verwerfenden Bits nicht gespeichert beziehungsweise übertragen werden.
  6. Vorrichtung gemäß einem der vorhergehenden Ansprüche, bei der die Redundanzeinrichtung (4; 56) ausgebildet ist, um eine Mehrzahl von Redundanzdatenworten aus den Datenworten (20a-20d; 50a-50d) des Datensatzes (21; 50) zu bestimmen, wobei die Verschlüsselungseinrichtung (6; 62) ausgebildet ist, um aus der Mehrzahl von Redundanzdatenworten eine Mehrzahl von verschlüsselten Redundanzdatenworten zu bilden und wobei die Verarbeitungseinrichtung (8) ausgebildet ist, um die Mehrzahl von verschlüsselten Redundanzdatenworten jeweils unter Verwerfen vorbestimmter Bits der einzelnen Redundanzdatenworte zu verarbeiten.
  7. Vorrichtung zum Handhaben von verschlüsselten Datenworten (30; 66a-66d) eines verschlüsselten Datensatzes (30; 66) mit folgenden Merkmalen: einer Bereitstellungseinrichtung zum Bereitstellen der verschlüsselten Datenworte (30; 66a-66d) des verschlüsselten Datensatzes (30; 66) und eines verschlüsselten Redundanzdatenwortes (32; 68), welches den verschlüsselten Datenworten (30; 66a-66d) zugeordnet ist; einer Entschlüsselungseinrichtung (6; 62), die ausgebildet ist, um die verschlüsselten Datenworte (30; 66a- 66d) des verschlüsselten Datensatzes (30; 66) in entschlüsselte Datenworte (34; 50a-50d) eines entschlüsselten Datensatzes (34; 50) zu entschlüsseln; einer Redundanzeinrichtung (4; 56), die ausgebildet ist, um aus den entschlüsselten Datenworten (34; 50a-50d) ein neues Redundanzdatenwort (36) zu bilden, welches den entschlüsselten Datenworten (34; 50a-50d) zugeordnet ist; einer Verschlüsselungseinrichtung (6; 62), die ausgebildet ist, um aus dem neuen Redundanzdatenwort (36) ein neues verschlüsseltes Redundanzdatenwort (38) zu bilden; und einer Vergleichseinrichtung (8; 70) zum Durchführen eines zumindest teilweisen Vergleiches zwischen dem verschlüsselten Redundanzdatenwort (32; 68) und dem neuen verschlüsselten Redundanzdatenwort (40).
  8. Vorrichtung gemäß Anspruch 7, mit folgenden zusätzlichen Merkmalen: bei der die Bereitstellungseinrichtung zusätzlich ausgebildet ist, um das verschlüsselte Redundanzdatenwort (32) durch Verwerfen vorbestimmter Bits eines vollständigen verschlüsselten Redundanzdatenwortes bereitzustellen; bei der die Vergleichseinrichtung (8; 70) zusätzlich ausgebildet ist, um bei dem Vergleich zwischen dem verschlüsselten Redundanzdatenwort (32; 68) und dem neuen verschlüsselten Redundanzdatenwort (38) diejenigen Teile des neuen verschlüsselten Redundanzdatenwortes (38) unbeachtet zu lassen, die den vorbestimmten Bits des vollständigen verschlüsselten Datenwortes entsprechen.
  9. Vorrichtung gemäß einem der Ansprüche 7 oder 8, bei der die Redundanzeinrichtung (4; 56) ausgebildet ist, um das neue Redundanzdatenwort (36) durch bitweise Exklusiv-Oder-Verknüpfung aus den entschlüsselten Datenworten (34; 50a-50d) zu bilden.
  10. Vorrichtung gemäß einem der Ansprüche 7 bis 9, bei der die Bereitstellungseinrichtung ausgebildet ist, um die verschlüsselten Datenworte (30; 66a-66d) und das verschlüsselte Redundanzdatenwort (32; 68) aus einem Speicher (10) zu lesen oder über einen Datenbus zu empfangen.
  11. Vorrichtung gemäß einem der Ansprüche 7 bis 10, bei der die Entschlüsselungseinrichtung (6; 62) ausgebildet ist, um die verschlüsselten Datenworte (30; 66a-66d) abhängig von einer Speicheradresse zu entschlüsseln und bei der die Verschlüsselungseinrichtung (6; 62) ausgebildet ist, um das neue verschlüsselte Redundanzdatenwort (38) abhängig von einer Speicheradresse zu bilden.
  12. Vorrichtung gemäß einem der Ansprüche 7 bis 11, bei der die Bereitstellungseinrichtung ausgebildet ist, um das verschlüsselte Redundanzdatenwort (32; 68) durch Verwerfen einer vorbestimmten Anzahl der letzten Bits eines vollständigen verschlüsselten Redundanzdatenwortes bereitzustellen, wobei die Vergleichseinrichtung (8; 70) ausgebildet ist, um bei dem Vergleich zwischen dem verschlüsselten Redundanzdatenwort (32; 68) und dem neuen verschlüsselten Redundanzdatenwort (38) die vorbestimmte Anzahl der letzten Bits des verschlüsselten Redundanzdatenwortes (32) und des neuen verschlüsselten Redundanzdatenwortes (38) unbeachtet zu lassen.
  13. System zum sicheren Handhaben von Datensätzen (21, 30) mit folgenden Merkmalen: einer Ver-/Entschlüsselungseinrichtung (6), die ausgebildet ist, um aus Datenworten (20a-20d) eines Datensatzes (21) verschlüsselte Datenworte (24) zu bilden, aus einem den Datenworten (20a-20d) zugeordneten Redundanzdatenwort (22) ein verschlüsseltes Redundanzdatenwort (26) zu bilden, und um aus einem neuen Redundanzdatenwort (36) ein neues verschlüsseltes Redundanzdatenwort (38) zu bilden, wobei die Ver/Entschlüsselungseinrichtung (6) ferner ausgebildet ist, um aus verschlüsselten Datenworten (30) entschlüsselte Datenworte (34) zu bilden; einer Redundanzeinrichtung (4), die ausgebildet ist, um aus den Datenworten (20a-20d) das Redundanzdatenwort (22) zu bilden und um aus den entschlüsselten Datenworten (34) das neue Redundanzdatenwort (36) zu bilden; und einer Vergleichseinrichtung (8) zum Durchführen eines zumindest teilweisen Vergleiches zwischen dem verschlüsselten Redundanzdatenwort (32) und dem neuen verschlüsselten Redundanzdatenwort (38).
  14. Verfahren zum Handhaben von Datenworten (20a-20d; 50a-50d) eines Datensatzes (21; 50) mit folgenden Schritten: Bestimmen eines Redundanzdatenwortes (22) aus den Datenworten (20a-20d; 50a-50d) des Datensatzes (21; 50), welches dem Datensatz (21; 50) zugeordnet ist; Verschlüsseln der Datenworte (20a-20d; 50a-50d) in verschlüsselte Datenworte (24; 60a-60d) und Verschlüsseln des Redundanzdatenwortes (22) in ein verschlüsseltes Redundanzdatenwort (26); und Verarbeiten der verschlüsselten Datenworte (24) und des verschlüsselten Redundanzdatenwortes (26) unter Verwer fen vorbestimmter Bits des verschlüsselten Redundanzdatenwortes (26).
  15. Verfahren zum Handhaben von verschlüsselten Datenworten (30; 66a-66d) eines verschlüsselten Datensatzes (30; 66) mit folgenden Schritten: Bereitstellen der verschlüsselten Datenworte (30; 66a-66d) des verschlüsselten Datensatzes (30; 66) und eines verschlüsselten Redundanzdatenwortes (32; 68), welches den verschlüsselten Datenworten (30; 66a-66d) zugeordnet ist; Entschlüsseln der verschlüsselten Datenworte (30; 66a-66d) des verschlüsselten Datensatzes (30; 66) in entschlüsselte Datenworte (34; 50a-50d) eines entschlüsselten Datensatzes (34; 50); Bilden eines neuen Redundanzdatenwortes (36) aus den entschlüsselten Datenworten (34; 50a-50d), welches den entschlüsselten Datenworten (34; 50a-50d) zugeordnet ist; Verschlüsseln des neuen Redundanzdatenwortes (36) in ein neues verschlüsseltes Redundanzdatenwort (38); und Durchführen eines zumindest teilweisen Vergleiches zwischen dem verschlüsselten Redundanzdatenwort (32) und dem neuen verschlüsselten Redundanzdatenwort (38).
  16. Computerprogramm mit einem Programmcode zur Durchführung des Verfahrens nach Anspruch 14 oder 15, wenn das Programm auf einem Computer abläuft.
DE102005031611A 2005-07-06 2005-07-06 Nachweis einer Veränderung der Daten eines Datensatzes Expired - Fee Related DE102005031611B4 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE102005031611A DE102005031611B4 (de) 2005-07-06 2005-07-06 Nachweis einer Veränderung der Daten eines Datensatzes
FR0605913A FR2890202B1 (fr) 2005-07-06 2006-06-30 Demonstration d'une modification des donnees d'un ensemble de donnees
KR1020060062873A KR100782614B1 (ko) 2005-07-06 2006-07-05 데이터 워드 처리 장치 및 방법, 암호화 데이터 워드 처리장치 및 방법, 데이터세트의 안전 처리 시스템 및 컴퓨터프로그램을 구비한 컴퓨터 판독가능한 기억 매체
US11/480,826 US8199914B2 (en) 2005-07-06 2006-07-06 Detection of a change of the data of a dataset

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102005031611A DE102005031611B4 (de) 2005-07-06 2005-07-06 Nachweis einer Veränderung der Daten eines Datensatzes

Publications (2)

Publication Number Publication Date
DE102005031611A1 DE102005031611A1 (de) 2007-01-11
DE102005031611B4 true DE102005031611B4 (de) 2007-11-22

Family

ID=37562517

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102005031611A Expired - Fee Related DE102005031611B4 (de) 2005-07-06 2005-07-06 Nachweis einer Veränderung der Daten eines Datensatzes

Country Status (4)

Country Link
US (1) US8199914B2 (de)
KR (1) KR100782614B1 (de)
DE (1) DE102005031611B4 (de)
FR (1) FR2890202B1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10368899B2 (en) * 2006-01-13 2019-08-06 Heartware, Inc. Surgical tool for coring precise holes and providing for retrieval of tissue
WO2008068078A1 (en) * 2006-12-07 2008-06-12 International Business Machines Corporation Remote controller having an rfid tag
WO2010112739A1 (fr) * 2009-03-31 2010-10-07 France Telecom Procede pour effectuer une tache cryptographique dans un composant electronique
US8429513B2 (en) * 2009-07-02 2013-04-23 Stmicroelectronics (Research & Development) Limited Loading secure code into a memory
US8416948B2 (en) * 2010-06-04 2013-04-09 Leanics Corporation System for secure variable data rate transmission
US8533557B2 (en) * 2011-01-28 2013-09-10 Infineon Technologies Ag Device and method for error correction and protection against data corruption
US11495145B2 (en) * 2019-09-27 2022-11-08 Wipro Limited Method and system for selectively encrypting dataset

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010018741A1 (en) * 1997-07-17 2001-08-30 Hogan Josh N. Method and apparatus for performing data encryption and error code correction
US20020120901A1 (en) * 1999-07-30 2002-08-29 Poirier Christopher A. Early error detection using ECC
DE10239062A1 (de) * 2002-08-26 2004-04-01 Siemens Ag Verfahren zum Übertragen von verschlüsselten Nutzdatenobjekten
DE10345385A1 (de) * 2003-09-30 2005-06-02 Infineon Technologies Ag Entschlüsselung bzw. Verschlüsselung bei Schreibzugriffen auf einen Speicher

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2258372B (en) * 1991-08-02 1995-05-31 Sony Corp Apparatus for and methods of recording and/or reproducing digital data
US5586185A (en) * 1994-03-15 1996-12-17 Mita Industrial Co., Ltd. Communications system capable of communicating encrypted information
US5668928A (en) * 1995-01-31 1997-09-16 Kor Team International, Inc. Speech recognition system and method with automatic syntax generation
KR0166889B1 (ko) * 1995-12-30 1999-01-15 구자홍 파셜 리스펀스 클래스-4 신호검출장치
US6047069A (en) * 1997-07-17 2000-04-04 Hewlett-Packard Company Method and apparatus for preserving error correction capabilities during data encryption/decryption
JPH11266243A (ja) * 1997-12-09 1999-09-28 Canon Inc 情報処理装置及び方法
US6608861B1 (en) 1998-10-05 2003-08-19 Motorola, Inc. Data terminal and coding method for increased data packet reliability in a frequency hopping system
CN1278236C (zh) * 1999-06-10 2006-10-04 贝勒加特投资公司 在分离的存储区域中存储数据组的不同版本的装置和更新存储器中数据组的方法
FR2805418B1 (fr) 2000-02-23 2003-05-30 Mitsubishi Electric Inf Tech Procede de transmission numerique de type a codage correcteur d'erreurs
US20020048364A1 (en) * 2000-08-24 2002-04-25 Vdg, Inc. Parallel block encryption method and modes for data confidentiality and integrity protection
KR20020060419A (ko) * 2001-01-11 2002-07-18 최웅림 메모리 접근 방법
US7095856B2 (en) * 2002-03-29 2006-08-22 Motorola, Inc. Method and apparatus to maintain encryption synchronization in a multi-modulation TDM system
US20050271246A1 (en) 2002-07-10 2005-12-08 Sharma Ravi K Watermark payload encryption methods and systems
CZ2005209A3 (cs) * 2002-09-10 2005-12-14 Ivi Smart Technologies, Inc. Bezpečné biometrické ověření identity
KR100516304B1 (ko) * 2003-05-16 2005-09-26 주식회사 안철수연구소 프로세스메모리의 악성코드 검출기 및 그 방법
US7680273B2 (en) * 2004-12-08 2010-03-16 Schweitzer Engineering Laboratories, Inc. System and method for optimizing error detection to detect unauthorized modification of transmitted data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010018741A1 (en) * 1997-07-17 2001-08-30 Hogan Josh N. Method and apparatus for performing data encryption and error code correction
US20020120901A1 (en) * 1999-07-30 2002-08-29 Poirier Christopher A. Early error detection using ECC
DE10239062A1 (de) * 2002-08-26 2004-04-01 Siemens Ag Verfahren zum Übertragen von verschlüsselten Nutzdatenobjekten
DE10345385A1 (de) * 2003-09-30 2005-06-02 Infineon Technologies Ag Entschlüsselung bzw. Verschlüsselung bei Schreibzugriffen auf einen Speicher

Also Published As

Publication number Publication date
KR20070005509A (ko) 2007-01-10
KR100782614B1 (ko) 2007-12-06
FR2890202A1 (fr) 2007-03-02
US20070016768A1 (en) 2007-01-18
FR2890202B1 (fr) 2012-11-16
US8199914B2 (en) 2012-06-12
DE102005031611A1 (de) 2007-01-11

Similar Documents

Publication Publication Date Title
DE102005031611B4 (de) Nachweis einer Veränderung der Daten eines Datensatzes
DE102004062825B4 (de) Kryptographische Einheit und Verfahren zum Betreiben einer kryptographischen Einheit
DE10318031A1 (de) Verfahren zur Sicherstellung der Integrität und Authentizität von Flashware für Steuergeräte
DE102005051577B4 (de) Verfahren zur Verschlüsselung bzw. Entschlüsselung von Datenpaketen eines Datenstroms sowie Signalfolge und Datenverarbeitungssystem zur Ausführung des Verfahrens
EP1668515B8 (de) Wortindividuelle schlüsselerzeugung
DE102009000869A1 (de) Verfahren und Vorrichtung zur manipulationssicheren Übertragung von Daten
DE2715631A1 (de) Verschluesselung und absicherung von daten
DE102005025169A1 (de) Kommunikationsvorrichtung und Verfahren zur Übermittlung von Daten
EP2192487A1 (de) Informationsübertragung und integriertes schutzverfahren
EP2235598B1 (de) Feldgerät und verfahren zu dessen betrieb
DE102012200197A1 (de) Vorrichtung und Verfahren zur Fehlerkorrektur und zum Schutz vor Datenverfälschung
DE60116195T2 (de) Vorrichtung und Verfahren zur Verschleierung von Eingangsparametern
WO2011107319A2 (de) Verfahren zum verifizieren eines speicherblocks eines nicht-flüchtigen speichers
EP3552344B1 (de) Bidirektional verkettete blockchainstruktur
EP3254403A1 (de) Vorrichtung und verfahren zum erzeugen eines schlüssels in einem programmierbaren hardwaremodul
WO2009034019A1 (de) Verfahren und vorrichtung zum codieren von datenworten
DE102014007820A1 (de) Datenrahmen für geschützte Datenübertragungen
DE102004061312B4 (de) Vorrichtung und Verfahren zum Detektieren eines potentiellen Angriffs auf eine kryptographische Berechnung
DE102018112742A1 (de) Computerimplementiertes Verfahren zum Übergeben eines Datenstrings von einer Anwendung an eine Datenschutzeinrichtung
DE10316951A1 (de) Verfahren zur Überprüfung der Datenintegrität von Software in Steuergeräten
DE3905667C2 (de)
DE10324507A1 (de) Verfahren zum Laden von Daten in eine Speichereinrichtung
WO2004056035A1 (de) Verschlüsselungsverfahren
DE102019003673B3 (de) Seitenkanalsichere Implementierung
WO2017133939A1 (de) Verschlüsseln des speicherinhalts eines speichers in einem eingebetteten system

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee