-
Die
Erfindung betrifft ein Verfahren und eine Schaltungsanordnung zur
Fehlererkennung in einem Datensatz gemäß den nebengeordneten Patentansprüchen.
-
Schaltungsvorrichtungen
zur Datenverarbeitung umfassen Speicheranordnungen, in denen die zu
verarbeitenden Datenworte bereitgestellt werden. Die eigentliche
Verarbeitung der Datenworte erfolgt in einem Rechenwerk. Bei den
Speicheranordnungen kann es sich beispielsweise um Hauptspeicher, zur
Speicherung von Programmen und größeren Datenmengen, oder um
Zwischenspeicher, zur Bereitstellung der Daten für die eigentliche Datenverarbeitung,
handeln. Im Hauptspeicher verbleiben die Daten über einen längeren Zeitraum, im Extremfall,
beispielsweise bei Programm- oder Konfigurationsdaten, während der
gesamten Lebensdauer der Schaltungsvorrichtung. In den Zwischenspeicher,
der einen schnelleren Zugriff erlaubt, werden die Daten geladen,
die von einem Rechenwerk verarbeitet werden. Die Dauer, die die
Daten im Zwischenspeicher verbleiben, variiert. Daten, beispielsweise
häufig
verwendete Routinen, auf die immer wieder zugegriffen wird, können während der
Datenverarbeitung über einen
längeren
Zeitraum im Zwischenspeicher verbleiben.
-
Während der
Bereitstellung der Daten können
Fehler der bereitgestellten Daten auftreten. Zufällige Fehler können beispielsweise
durch Spannungsschwankungen verursacht werden oder durch Strahlung,
beispielsweise Licht. Fehler können
auch auftreten, wenn die Speichervorrichtung durch einen Angriff manipuliert
wird. Hierzu kann die Schaltung beispielsweise durch das Einbringen
externe Signale, dem so genannten „Probing" in ihrer Funktionsweise manipuliert
sein. Es ist auch denkbar, die Daten durch gezielte Strahlung, beispielsweise UV-Licht,
zu manipulieren. Eine weitere Fehlerquelle ist ein Hardwarefehler
in der Schaltungsanordnung.
-
Um
die korrekte Funktion der Schaltungsanordnung und die fehlerfreie
Datenverarbeitung zu gewährleisten,
wird überprüft, ob die
Daten unverändert vorliegen.
Diese Überprüfung ist
insbesondere vor der unmittelbaren Verwendung der Daten im Rechwerk
von Vorteil. Ebenso kann die Überprüfung, beispielsweise
von im Zwischenspeicher bereitgestellten Daten, in regelmäßigen oder
unregelmäßigen Intervallen
erfolgen. Mittels dieser Überprüfung sollen Fehler
in den bereitstellten Daten erkannt werden.
-
Zur
Fehlererkennung der Datenworte werden bisher so genannte Fehlerkodes
verwendet. Dabei werden alle Datenworte, auf die die Fehlererkennung
angewendet werden soll, zunächst
in ein Kontrollwort transformiert. Dieses Kontrollwort dient als Referenz.
Zur Fehlererkennung werden alle Datenworte erneut transformiert.
Aus gegebenenfalls vorkommenden Unterschieden zum vorherigen Kontrollwort
lässt sich
auf Unterschiede der Daten und möglicherweise
einen Fehler schließen.
Dieses Verfahren setzt voraus, dass der Speicherinhalt während des kontrollierten
Zeitintervalls zwischen den beiden Transformationen planmäßig nicht
verändert
wird. Die einfachste Form der Fehlererkennung ist das so genannte
Paritätsbit,
das an ein Datenwort angehängt
wird, und angibt, ob das entsprechende Datenwort eine gerade oder
ungerade Anzahl eines Binärwerts,
z.B. Logisch-Eins, umfasst.
-
Die
Fehlererkennung wird beispielsweise durchgeführt unmittelbar bevor das Rechenwerk
darauf zugreift oder die Daten aus dem Zwischenspeicher in den Hauptspeicher
geschrieben werden sollen.
-
Wenn
ein Datenwort geändert
wird, ist es bei dem beschriebenen Verfahren erforderlich, dass
anschließend
der gesamte Speicherinhalt ausgelesen wird, um das Kontrollwort,
das bei der eigentlichen Fehlererkennung als Vergleich dient, neu
zu berechnen. Dieser Lesevorgang ist zeitaufwändig.
-
Alternativ
kann der Speicherbereich in eine Vielzahl kleinerer Blöcke unterteilt
werden, die jeweils mit einem eigenen Kontrollwort geschützt werden.
Auch in diesem Fall wird bei einer Modifikation eines Datenwortes
in einem der Blöcke
der gesamte Block ausgelesen, um das Kontrollwort neu zu berechnen.
Durch die Unterteilung der Speichervorrichtung in kleinere, einzelne
Blöcke
reduziert sich der Aufwand des Auslesens entsprechend. Allerdings geht
damit der Nachteil einher, dass viele Kontrollworte, eines für jeden
Block, gespeichert und verwaltet werden müssen.
-
Beiden
Verfahren gemeinsam ist, dass sowohl bei der Modifikation eines
Datenwortes in der Speichervorrichtung beziehungsweise in einem Block
als auch bei der eigentlichen Fehlererkennung das Auslesen aller
dem Kontrollwort zugeordneten Datenworte erforderlich ist, um die
Datenworte auf Fehler hin zu überprüfen.
-
Es
stellt sich die Aufgabe, ein Verfahren vorzusehen, das den Aufwand
für die
Fehlererkennung eines in einem Speicher abgespeicherten Datensatzes
reduziert. Des Weiteren ist eine entsprechende Schaltungsanordnung
anzugeben.
-
Die
Aufgabe wird durch ein Verfahren zum Ändern eines in einer Speichervorrichtung
gespeicherten Datensatzes, dem ein Kontrollwort beigeordnet ist,
gelöst,
das die Schritte umfasst:
- – Bereitstellen eines zu verändernden
Teildatensatzes aus dem in der Speichervorrichtung gespeicherten
Datensatz,
- – Bereitstellen
eines den zu verändernden
Teildatensatz ändernden Änderungsdatensatzes,
- – Bereitstellen
des Kontrollwortes,
- – Verändern des
Kontrollwortes durch eine Veränderungstransformation
in Abhängigkeit
des zu verändernden
Teildatensatzes, des ändernden Änderungsdatensatzes
und des bereitgestellten Kontrollwortes,
- – Durchführen der
Datensatzveränderung
in der Speichervorrichtung in Abhängigkeit des Änderungsdatensatzes,
- – Beiordnen
des veränderten
Kontrollwortes zu dem geänderten
Datensatz,
- – Transformieren
des geänderten
Datensatzes in ein transformiertes Kontrollwort.
-
Die
Schaltungsanordnung zur Lösung
der Aufgabe umfasst:
- – eine Speichervorrichtung
mit einem Dateneingang, über
den ein veränderbarer
Datensatz aus mindestens einem Datenwort zum Abspeichern zugeführt wird,
und mit einem Datenausgang, über
den der Datensatz bereitstellbar ist,
- – eine
Transformationsvorrichtung, die an den Datenausgang der Speichervorrichtung
gekoppelt ist, und die ausgebildet ist, abhängig vom Datensatz ein Kontrollwort
zum Abspeichern in einem Kontrollwortspeicher oder zu einem Vergleich
bereitzustellen, und die ausgebildet ist, abhängig von Änderungen an dem Datensatz
und dem bisherigen abgespeicherten Kontroll wort ein verändertes
Kontrollwort zum Abspeichern bereitzustellen, und
- – eine
Vergleichsvorrichtung, die an die Transformationsvorrichtung und
den Kontrollwortspeicher gekoppelt ist und der das abgespeicherte
Kontrollwort und das zum Vergleich bereitgestellte Kontrollwort
zugeführt
werden und die ausgebildet ist zu überprüfen, ob das abgespeicherte
Kontrollwort und das zum Vergleich bereitgestellte Kontrollwort
in einem vorgegebenen Zusammenhang stehen.
-
Weitere
vorteilhafte Ausgestaltungen der Erfindung sind in den untergeordneten
Patentansprüchen
angegeben.
-
Das
Verfahren eignet sich insbesondere für Datensätze mit begrenztem Datenumfang,
wie sie beispielsweise in Zwischenspeichern und Registern bereitgestellt
werden. Der Datensatz ist in Datenworte eingeteilt abgespeichert.
-
Das
Verfahren ist flexibel hinsichtlich möglicher Veränderungen des Datensatzes,
die ein Ersetzen mindestens eines der Datenworte des Datensatzes
mit einem anderen Datenwort oder ein Löschen eines der Datenworte
des Datensatzes oder ein Hinzufügen
eines weiteren Datenwortes zum Datensatz umfassen.
-
Der
Datensatz ist durch ein beigeordnetes Kontrollwort geschützt, das
generiert wird, indem die Datenworte des Datensatzes transformiert
werden. Sinnvoll ist, wenn die Datenworte so gewählt werden, dass sie den kleinsten
adressierbaren Bereich einer Speichereinheit umfassen, beispielsweise
ein Byte. Alternativ können
die Datenworte auch aus einem mehreren adressierbaren Einheiten
umfassenden Block bestehen. Vorteilhafterweise kann die Transformation
zusätzlich
von Informationsworten abhängen,
wobei jedem Datenwort ein Informati onswort zugeordnet ist. Durch
die Informationsworte wird der Schutz erhöht, wenn die Datenworte nur
wenige Bits umfassen, da die Transformation mehr Eingangsparameter
hat.
-
Das
Informationswort hängt
in der Regel von der Art der Bereitstellung des Datenwortes ab,
beispielsweise handelt es sich hierbei um Adressinformation über das
entsprechende Datenwort. Durch die zusätzliche Information wird vermieden,
dass ähnliche
Fehler in verschiedenen Datenworten nicht erkannt werden, weil sie
sich möglicherweise
bei der Transformation aufheben.
-
Vorteilhafterweise
umfasst die Transformation eine Funktion, die auf jedes Datenwort
des Datensatzes angewendet wird, um diesem Datenwort ein so genanntes
Hash-Datenwort zuzuordnen. Dieser Vorgang wird in Anlehnung ans
Englische auch als „Hashen" bezeichnet. Die
entsprechende Funktion wird auch als „Hash-Funktion" bezeichnet. Vorteilhafterweise
kann die Funktion auch vom Datenwort und dem den Datenwort zugeordneten
Informationswort abhängen,
um den Schutz des Verfahrens zu erhöhen. Die Hash-Datenworte eines
Datensatzes werden verknüpft,
um das Kontrollwort zu generieren. Bei dieser Verknüpfung kann
es sich vorteilhafterweise um eine Exklusiv-Oder-Verknüpfung handeln, die einfach
zu realisieren ist.
-
Das
Kontrollwort wird verändert,
wenn der Datensatz verändert
wird. Auf das zu löschende
oder das hinzuzufügende
oder das zu ersetzende und das ersetzende Datenwort wird die Funktion
angewendet. Anschließend
werden die so generierten Hash-Datenworte
und das bisherige Kontrollwort zu einem neuen Kontrollwort verknüpft. Das
veränderte Kontrollwort
wird gespeichert. Es kann nochmals verändert werden. Es ist nicht
erfor derlich, bei einer Veränderung
eines Datenwortes alle Datenworte des Datensatzes erneut auszulesen.
-
Abschließend werden
und das gespeicherte Kontrollwort und ein weiteres Kontrollwort,
das durch die Transformation des geänderten Datensatzes generiert
wird, verglichen und eine Alarmfunktion ausgelöst, wenn kein vorgegebener
Zusammenhang besteht. Der einfachste und auch einfach zu überprüfende Zusammenhang
ist die Identität
der beiden Kontrollworte.
-
Die
Schaltungsanordnung umfasst eine Speichervorrichtung für den Datensatz,
der dahingehend veränderbar
ist, dass ein Teil des Datensatzes hinzufügbar und/oder ein Teil des
Datensatzes löschbar
und/oder ein Teil des Datensatzes ersetzbar ist. Die entsprechenden
Teile des Datensatzes können ein
oder mehrere Datenworte umfassen.
-
Zur
Verbesserung der Fehlererkennung kann jedem Datenwort ein entsprechendes
Informationswort zugeordnet sein. Vorteilhafterweise hängt das
Informationswort von Adressinformationen des Datenwortes ab. Dies
sind beispielsweise die Speicher- oder
Registeradressen, die Position im Zwischenspeicher oder die so genannte
Tag-Adresse des Datenwortes. Die Tag-Adresse bezeichnet eine ursprüngliche
Speicheradresse des Datenwortes, auch wenn dieses mittlerweile in
einem anderen Speicher, beispielsweise einem Zwischenspeicher, bereitgestellt
wird.
-
Des
Weiteren ist die Transformationsvorrichtung dahingehend ausgebildet,
dass auf jedes Datenwort eine Funktion angewendet werden kann, um jedem
Datenwort ein entsprechendes Hash-Datenwort zuzuordnen. Diese Funktion
ist auf aktuelle Datenworte des momentanen Datensatzes und hinzuzufügende und
ersetzende Datenworte anwendbar. Das Hash-Datenwort hängt ent weder
von dem Datenwort oder zur Erhöhung
der Sicherheit zusätzlich von
dem zugeordneten Informationswort ab.
-
Das
Kontrollwort wird generiert, indem die Hash-Datenworte des Datensatzes
durch eine Verknüpfungsvorrichtung
verknüpft
werden. Vorteilhafterweise ist diese Verknüpfungsvorrichtung eine Exklusiv-Oder-Verknüpfung, was
mit einer einfachen Realisierung einhergeht.
-
Zur
einfachen und aufwandsarmen Realisierung werden der Funktionsblock
und die Verknüpfungsvorrichtungen
verwandt, um sowohl Veränderungen
des Kontrollwortes in Abhängigkeit
von Veränderungen
des Datensatzes als auch die Transformation des Datensatzes durchzuführen.
-
Dem
zu löschenden
Datenwort wird dabei ein entsprechendes Hash-Datenwort zugeordnet, das
mit dem bisherigen Kontrollwort verknüpft wird. In gleicher Weise
wird mit einem hinzuzufügenden Datenwort
verfahren.
-
Bei
der Änderung
eines Datenwortes wird sowohl dem ersetzenden als auch dem zu ersetzenden
Datenwort das entsprechende Hash-Datenwort zugeordnet und dieses
mit dem bisherigen Kontrollwort verknüpft.
-
Die
Veränderung
des Kontrollwortes geht nicht mit einem erneuten Auslesen der gesamten
Datenworte innerhalb des Datensatzes einher.
-
Zur
Fehlererkennung wird ein Datenwort aus dem aktuellen, gegebenenfalls
mehrfach veränderten
Datensatz durch die Transformationsvorrichtung generiert und der
Vergleichsvorrich tung, ebenso wie das bisherige gespeicherte Kontrollwort,
zugeführt.
-
Die
Vergleichsvorrichtung ist in einfacher Form dahingehend ausgebildet,
dass sie die Identität der
zugeführten
Kontrollworte überprüfen kann.
-
Nachfolgend
wird die Erfindung unter Bezugnahme auf die Zeichnung anhand von
Ausführungsbeispielen
erklärt.
-
Es
zeigen:
-
1 anhand
eines Blockschaltbildes die Transformation eines Datensatzes mit
Datenworten in ein erstes Kontrollwort;
-
2 ein
Blockschaltbild der Transformation;
-
3 die
Veränderung
des ersten Kontrollwortes;
-
4 die
Veränderung
des ersten Kontrollwortes im Detail;
-
5 die
Transformation des Datensatzes in ein zweites Kontrollwort und einen
anschließenden Vergleich;
-
6 die
Transformation eines Datensatzes mit Datenworten und Informationsworten
in das erste Kontrollwort;
-
7 die
Veränderung
des ersten Kontrollwortes;
-
8 die
Transformation des Datensatzes in das zweite Kontrollwort und den
anschließenden
Vergleich;
-
9 eine
Schaltungsanordnung zur Fehlererkennung; und
-
10 eine
Transformationsvorrichtung der Schaltungsanordnung.
-
1 zeigt
ein Blockschaltbild mit einem Datensatz S, der beispielhaft ein
erstes bis viertes Datenwort D1, D2, D3, D4 umfasst. Die Datenworte
D1, D2, D3, D4 des Datensatzes S werden durch eine Transformation
H1 in ein erstes Kontrollwort P1 transformiert.
-
2 zeigt
eine mögliche
Transformation H1. Zunächst
wird jedes der Datenworte D1, D2, D3, D4 durch eine Funktion F auf
ein Hash-Datenwort F1, F2, F3, F4 abgebildet. Die Hash-Datenworte F1, F2, F3,
F4 des Datensatzes S werden durch eine geeignete Verknüpfung V
in das erste Kontrollwort P1 überführt. Als
Verknüpfung
V ist eine bitweise Exklusiv-Oder-Verknüpfung dargestellt.
-
Die
Funktion zum „Hashen" zeichnet sich dadurch
aus, eine lange Eingabe, nämlich
das Datenwort, in eine kurze Ausgabe zu überführen. Vorteilhafterweise führen ähnliche
Eingaben zu völlig
verschiedenen Ausgaben. Bei der Wahl einer geeigneten Funktion ist
die Effizienz, also die schnelle Berechenbarkeit nicht zu vernachlässigen,
um den Aufwand des Fehlererkennungsverfahrens gering zu halten.
-
Es
ist auch denkbar, die Transformation H1 durchzuführen, wenn die Funktion F die
Datenworte D1, D2, D3, D4 unverändert
als Hash-Datenworte F1, F2, F3, F4 abbildet. Anschaulich bedeutet
dies, die Blöcke
mit der Funktion F in der 2 wegzulassen.
-
3 zeigt,
wie das erste Kontrollwort P1 verändert wird, wenn der Datensatz
S verändert
wird.
-
Die
in 3 angedeutete beispielhafte Veränderung
des Datensatzes S besteht darin, das zweite Datenwort D2 durch ein
neues zweites Datenwort D2a zu ersetzen. In Abhängigkeit der Veränderung des
Datensatzes S wird das erste Kontrollwort P1 aktualisiert. Diese
Aktualisierung oder Veränderung
des ersten Kontrollwortes P1 hängt
von einer Veränderungstransformation
H2 ab, die ihrerseits abhängig ist
von dem bisherigen ersten Kontrollwort, das zur Unterscheidung hier
als P1' bezeichnet
ist, und den Datenworten D2 und D2a, von denen die Veränderung
abhängt.
-
Die
nicht veränderten
Datenworte D1, D3, D4 sind für
die Veränderungstransformation
H2 zur Bestimmung des veränderten
ersten Kontrollwortes P1 nicht relevant.
-
Die
Veränderungstransformation
H2 bewirkt, dass zunächst
ein von D2 herrührende
Anteil des ersten Kontrollwortes P1 entfernt wird und durch einen
von dem neuen zweiten Datenwort D2a herrührende Anteil ersetzt wird.
-
In 4 ist
dargestellt, welche Schritte die Veränderungstransformation H2 umfasst,
wenn zur Bestimmung des ersten Kontrollwortes P1 von der in 2 dargestellten
Transformation H1 ausgegangen wird.
-
Das
bisherige zweite Datenwort D2 wird durch die Funktion F in das zweite
Hash-Datenwort F2 überführt. Auch
das neue zweite Datenwort D2a wird durch die Funktion F in das entsprechende
neue zweite Hash-Datenwort F2a überführt. Die
beiden Hash-Datenworte F2 und F2a werden mit dem bisherigen ers ten
Kontrollwort P1' durch
die Verknüpfung V
verknüpft.
Bei der Verknüpfung
V handelt es sich wieder um eine bitweise Exklusiv-Oder-Verknüpfung, zu
deren Eigenschaften zählt,
dass eine zweimalige Exklusiv-Oder-Verknüpfung eines Wortes mit einem anderen
Wort das andere Wort nicht verändert.
Deshalb wird durch die Exklusiv-Oder-Verknüpfung des, zum zu ersetzenden
zweiten Datenwort D2 gehörenden,
zweiten Hash-Datenwortes
F2 mit dem ersten Kontrollwort P1 der Anteil des zweiten Hash-Datenwortes
F2 am ersten Kontrollwort P1 eliminiert. Der eliminierte Anteil
des zweiten Hash-Datenwortes F2 rührt von der Transformation
H1 in 2 her. Auf diese Weise wird der Anteil des zweiten
Datenwortes D2 aus dem ersten Kontrollwort P1 eliminiert.
-
Um
Information über
das neue zweite Datenwort D2a in das erste Kontrollwort P1 aufzunehmen, wird
das neue zweite Datenwort D2a mittels der Funktion F in das neue
zweite Hash-Datenwort
F2a überführt und
wiederum durch die bitweise Exklusiv-Oder-Verknüpfung V mit dem bisherigen
Kontrollwort P1' verknüpft. Die
Verknüpfung
des bisherigen und des neuen zweiten Datenwortes D2, D2a mit dem
bisherigen ersten Kontrollwort P1' kann in einem Schritt erfolgen, wie
in 4 dargestellt ist.
-
Alternativ
ist es auch denkbar, zunächst
das zu ersetzende zweite Datenwort D2 mit dem bisherigen ersten
Kontrollwort P1' und
dann das ersetzende neue zweite Datenwort D2a mit dem Ergebnis zu
verknüpfen.
Selbstverständlich
kann diese Reihenfolge auch vertauscht werden.
-
Das
oben geschilderte Verfahren funktioniert in ähnlicher Weise, wenn ein Datenwort
zum Datensatz S hinzugefügt
wird. In diesem Fall weist die Veränderungstransformation H2 nur eine
Verknüpfung zweier
Elemente auf, nämlich
des bisherigen ersten Kontrollwortes P1' und des Hash-Datenwortes des hinzuzufügenden Datenwortes,
das über
eine Funktion F mit dem bisherigen ersten Kontrollwort P1' zum aktualisierten
ersten Kontrollwort P1 verknüpft
wird. Auf diese Weise wird das hinzuzufügende Datenwort im ersten Kontrollwort
P1 berücksichtigt.
-
Beim
Löschen
eines Datenwortes aus dem Datensatz S wird in ähnlicher Weise verfahren, nur dass
statt des Hash-Datenwortes
des zu ersetzenden Datenwortes das Hash-Datenwort des zu löschenden
Datenwortes mit dem bisherigen ersten Kontrollwort P1' verknüpft wird.
Auf diese Weise wird der Anteil des zu löschenden Datenwortes am ersten Kontrollwort
P1 eliminiert.
-
Selbstverständlich kann
das erste Kontrollwort P1 in einer oder mehrerer der oben geschilderten
Weisen auch mehrfach verändert
werden.
-
5 veranschaulicht
die eigentliche Fehlererkennung des Verfahrens. Der aktuelle, geänderte Datensatz
S, der die Datenworte D1, D2, D3, D4 umfasst, wird mittels der Transformation
H1 in ein zweites Kontrollwort P2 überführt. Die Transformation H1
stimmt mit der Transformation H1 aus 1 überein,
mit der auch das erste Kontrollwort P1 vor der Veränderung
generiert wird.
-
In
einem Vergleich werden das erste Kontrollwort P1 und das zweite
Kontrollwort P2 überprüft, ob sie
in einem gegebenen Zusammenhang stehen. Wenn während der Bereitstellung und
Veränderung des
Datensatzes keine Fehler aufgetreten sind, stehen das erste und
zweite Kontrollwort P1 und P2 in gegebenem Zusammenhang. Wenn dieses
nicht der Fall ist, kann eine Alarmfunktion ALARM ausgelöst werden.
-
Bei
dem gegebenen Vergleich handelt es sich in der Regel um einen Vergleich,
ob das erste Kontrollwort P1 und das zweite Kontrollwort P2 identisch
sind. Es ist aber auch denkbar, dass ein anderer Zusammenhang besteht.
In diesem Fall würden
sich die Transformationen H1 in den 1 und 5 unterscheiden
und bei gleichen Eingangsdaten unterschiedliche erste und zweite
Kontrollworte P1, P2 liefern, deren Zusammenhang jedoch bei einem
fehlerfreien Datensatz S den im Vergleich V zu überprüfenden Zusammenhang erfüllt.
-
Wenn
eines der Datenworte, sei es eines der ursprünglichen oder eines der veränderten
D1, D2, D2a, D3, D4 beispielsweise durch einen Angriff verändert worden
ist, nachdem dessen Informationen durch die Transformation H1 oder
die Veränderungstransformation
H2 im erste Kontrollwort P1 berücksichtigt
worden ist, so wird diese fehlerbedingte Veränderung durch den in 5 dargestellten
Schritt detektiert. In diesem Fall liefert die Transformation H1 ein
vom ersten Kontrollwort P1 unterschiedliches zweites Kontrollwort
P2, durch das sich auf eine Datenmanipulation oder einen zufälligen Fehler
zurück schließen lässt.
-
Selbstverständlich funktioniert
die Fehlererkennung auch, wenn der Datensatz S nicht verändert wird.
In diesem Fall wird der in 3 dargestellte Schritt
nicht durchgeführt
und das erste Kontrollwort P1 wird nicht verändert.
-
6 unterscheidet
sich von 1 lediglich dadurch, dass ein
Datensatz S nicht nur mit Datenworten D1, D2, D3, D4 sondern auch
mit jeweils den Datenworten zugeordneten Infor mationsworten T1, T2,
T3, T4 bereitgestellt wird und mittels der Transformation H1 in
das erste Kontrollwort P1 überführt wird. Bei
den Informationsworten handelt es sich vorteilhafterweise um vom
Dateninhalt der Datenworte D1, D2, D3, D4 unabhängige Informationen, um den Schutzumfang
zu erhöhen.
-
Die
Transformation H1 ist auch in diesem Fall aufgebaut wie die in 2 dargestellte.
Die Funktion F unterscheidet sich hierbei lediglich darin, dass
das Hash-Datenwort abhängt
sowohl vom Datenwort als auch vom dem Datenwort zugeordneten Informationswort.
Auf diese Weise werden den gleichen Datenworten unterschiedliche
Hash-Datenworte zugeordnet, was den Schutz erhöht. Da das Hash-Datenwort in
der Regel kleiner als das zugehörige
Datenwort ist, können
mehrere verschiedene Datenworte dasselbe Hash-Datenwort erzeugen. Dieses
lässt sich
durch hinreichend große
Eingangsworte, hier das Datenwort und das Informationswort, vermeiden,
sodass Überschneidungen
unwahrscheinlich werden. Dies gilt insbesondere, wenn es sich bei
den Datenworten um die kleinstmögliche adressable
Einheit, beispielsweise ein Byte handelt.
-
Als
Informationswort werden in der Regel Informationen über die
Speicherung des entsprechenden Datenwortes verwendet. Hierbei kann
es sich um die entsprechende Adresse im Speicher oder die entsprechende
Registeradresse handeln oder, falls das Wort zwischenzeitlich in
einem Zwischenspeicher bereitgestellt wird, um die entsprechende
Zwischenspeicheradresse. Alternativ ist auch eine sogenannte Tag-Adresse
als Informationswort denkbar. Die Tag-Adresse gibt an, an welcher
Stelle das Datenwort ursprünglich
gespeichert worden ist, auch wenn es inzwischen in einem anderen
Speicher beziehungsweise Zwischenspeicher bereitgestellt wird.
-
7 und 8 unterscheiden
sich von den 3 beziehungsweise 5 ebenfalls
lediglich dahingehend, dass die Veränderungstransformation H2 oder
die Transformation H1 basierend auf einem Datensatz S mit Datenworten
D1, D2, D2a, D3, D4 und den jeweils den Datenworten zugeordneten
Informationsworten T1, T2, T2a, T3, T4 durchgeführt wird. Auch in diesem Fall
betreffen die Änderungen
lediglich die Funktion F in oben genannter Weise.
-
9 zeigt
eine Schaltungsanordnung mit einer Speichervorrichtung MEM mit einem
Eingang MEM1 zum Anlegen von Datenworten. Der Speicher MEM ist mit
einer Transformationsvorrichtung HS gekoppelt. Über einen ersten Ausgang HS1
und einen zweiten Ausgang HS2 ist die Transformationsvorrichtung
HS an eine Vergleichsvorrichtung COMP gekoppelt.
-
Bei
dem Speicher MEM kann es sich sowohl um einen Hauptspeicher als
auch um einen Zwischenspeicher oder ein Register handeln.
-
Die
Speichervorrichtung MEM ist ausgebildet, einen Datensatz S mit Datenworten
bereitzustellen. Dieser Datensatz S ist veränderbar. Die Datenworte können ersetzt,
hinzugefügt
oder gelöscht
werden.
-
Die
Transformationsvorrichtung HS führt
die bereits geschilderten Transformation H1 und die Veränderungstransformation
H2 für
den im Speicher MEM bereitgestellten Datensatz S durch.
-
Die
Transformationsvorrichtung HS ist ausgebildet, das erste Kontrollwort
P1 über
den Ausgang HS1 und das zweite Kontrollwort P2 über den Ausgang HS2 für die Vergleichsvorrichtung COMP
bereitzustellen. Die Vergleichsvorrichtung COMP prüft, ob das
erste Kontrollwort und das zweite Kontrollwort in einem gegebenen
Zusammenhang stehen und gibt gegebenenfalls einen Alarmsignal ALARM
aus. Für
den gegebenen Zusammenhang gelten die bei der Beschreibung des Verfahrens
gemachten Ausführungen.
-
Hinsichtlich
des Alarmsignals können
die Reaktionen der Schaltungsanordnung darauf vielfältig sein.
Neben dem bloßen
Anzeigen eines erkannten Fehlers ist es auch denkbar, die Schaltungsanordnung
herunterzufahren oder ein so genanntes Reset, also ein Herunterfahren
und ein anschließendes Hochfahren
in einen definierten Anfangszustand, durchzuführen.
-
Der
Datensatz S im Speicher MEM muss nur zur erstmaligen Generierung
des ersten Kontrollwortes P1 als Ganzes ausgelesen und der Transformationsvorrichtung
HS zugeführt
werden. Bei der Veränderung
eines Datenwortes, wird das zu ersetzende Datenwort in die Transformationsvorrichtung
HS ausgelesen und der Veränderungstransformation
H2 unterzogen. Dann wird das ersetzende Datenwort an die Transformationsvorrichtung übermittelt,
der Veränderungstransformation
zur Aktualisierung des ersten Kontrollwortes unterzogen und im Speicher
gespeichert, sodass die Veränderung
des Datensatzes durchgeführt
wird.
-
Alternativ
können
die Datenworte auch direkt an die Transformationseinrichtung HS,
möglicherweise über einen
weiteren Eingang, angelegt werden. In diesem Fall würden die
Daten parallel an den Speicher MEM und die Transformationsvorrichtung
HS angelegt werden. Dadurch ließe
sich ein Auslesen zur Bereitstellung der Daten für die Transformationsvorrichtung
HS umgehen. Denkbar ist ebenso, dass die Daten am Eingang MEM1 des
Speichers MEM auch abgegriffen und zum Ausgang MEM2 durchgeschleift
werden, um die Daten unverzögert
der Transformationsvorrichtung HS bereitzustellen. In diesen Fällen findet
Auslesen des, gegebenenfalls geänderten,
Datensatzes aus dem Speicher MEM im Wesentlichen zur Generierung
des zweiten Kontrollwortes statt.
-
10 zeigt
die wesentlichen Blöcke
der Transformationsvorrichtung HS. Sie umfasst zum Bereitstellen
des ersten Kontrollwortes einen Funktionsblock FB, mit dem die am
Eingang HS3 anliegenden Datenworte oder die Datenworte nebst zugeordneten Informationsworten
in entsprechende Hash-Datenworte überführt werden.
-
Da
bei der erstmaligen Generierung des ersten Kontrollwortes P1, bei
der Generierung des zweiten Kontrollwortes P2 und dem Ersetzen eines
Datenwortes mehrere Hash-Datenworte miteinander verknüpft werden,
ist ein Register M3 zwischen dem Funktionsblock FB und der Verknüpfungsvorrichtung VB
vorgesehen, um mehrere Hash-Datenworte zwischenzuspeichern und zur
Verknüpfung
der Verknüpfungsvorrichtung
VB zuzuführen.
Um Aufwand zu sparen, ist der Funktionsblock FB nur einmal vorgesehen.
Natürlich
ist auch eine parallele Anordnung mehrerer Funktionsblöcke FB, ähnlich dem
Blockschaltbild in 2, denkbar.
-
Die
Verknüpfung
V erfolgt über
eine Verknüpfungsvorrichtung
VB, mit der die vorteilhafte Exklusiv-Oder-Verknüpfung realisiert wird. Die
Exklusiv-Oder-Verknüpfung
mehrerer Datenworte braucht nicht parallel zu erfolgen, sondern
kann auch durch die sukzessive Verknüpfung eines Zwischenergebnisses
mit einem weiteren Datenwort realisiert werden, was den hardwaremäßigen Aufwand
verringert.
-
Des
Weiteren ist in der Transformationsvorrichtung HS ein Register M2
vorgesehen, das das jeweils aktuelle erste Kontrollwort P1 bereitstellt.
Dieses Register ist sowohl eingangsseitig mit der Verknüpfungsvorrichtung
VB verbunden, um das bisherige erste Kontrollwort P1 bereitzustellen.
Es ist auch ausgangsseitig mit der Verknüpfungsvorrichtung VB verbunden,
um nach der Verknüpfung
das aktualisierte erste Kontrollwort P1 zu speichern. Über einen ersten
Ausgang HS1 wird das erste Kontrollwort ausgegeben. Das zweite Kontrollwort
wird über
den zweiten Ausgang HS2 ausgegeben.
-
Das
Register M2 dient als Kontrollwortspeicher. Alternative Ausbildungen
des Kontrollwortspeichers sind denkbar, beispielsweise als separater Block,
als an eine der Vorrichtungen gekoppelter Block, als externer Speicher,
als dafür
reservierter oder flexibel zugewiesener Bereich der Speichervorrichtung
oder einem anderen Speicher der Schaltungsanordnung.
-
Durch
das oben geschilderte Verfahren ist es möglich, auf schnelle Weise die
bereitgestellten Datenworte des Datensatzes zu überprüfen. Eine Überprüfung bietet sich beispielsweise
dann an, wenn Prozessorrechenzeiten nicht anderweitig genutzt werden.
Dafür ist
es von Vorteil, wenn der zu überprüfende Datensatz
S nicht zu groß ist,
um eine schnelle Überprüfung zu
ermöglichen.
Für große Speicher
oder Register ist es deshalb denkbar, diese in einen oder mehrere
Datensätze
S zu unterteilen, und bei Leerlaufzeiten jeweils nur den Datensatz
S eines der Speicher- oder Registerteile zu überprüfen. Ein Datensatz mit beispielsweise
acht jeweils 64 Byte langen Worten hat sich als handhabbar hinsichtlich des
Aufwandes erwiesen.
-
Selbstverständlich ist
es auch denkbar, die Fehlererkennung nicht nur bei freien Prozessorrechenzeiten
zu nutzen, sondern auch parallel im Hintergrund laufen zu lassen
oder zu bestimmten Zeiten durchzuführen, die beispielsweise durch
den Benutzer vorgegeben werden oder fest im System verankert sind.
-
Das
geschilderte Verfahren ist auch für die blockweise Verarbeitung
von Daten, beispielsweise vor einer blockweisen Entschlüsselung,
geeignet. In diesem Fall ändert
sich der Inhalt des Datensatzes blockweise, um große Datenmengen
zu verarbeiten. In diesem Fall kann die Fehlererkennung parallel
zur Verarbeitung eines Blockes ablaufen, in dem beispielsweise das
erste Kontrollwort verändert
wird, während
der vorhergehende Block abgearbeitet wird. Dadurch entsteht nur
eine Zeitverzögerung
zu Beginn der blockweisen Datenverarbeitung.
-
- S
- Datensatz
- D1,
D2, D3, D4, D2a
- Datenworte
- P1,
P2
- erstes,
zweites Kontrollwort
- P1'
- bisheriges
erstes Kontrollwort
- H1
- Transformation
- H2
- Veränderungstransformation
- V
- Vergleich
- ALARM
- Alarmsignal/Alarmfunktion
- MEM
- Speichervorrichtung
- MEM1
- Eingang
der Speichervorrichtung
- MEM2
- Ausgang
der Speichervorrichtung
- HS
- Transformationsvorrichtung
- HS1,
HS2
- erster,
zweiter Ausgang der Trans
-
- formationsvorrichtung
- HS3
- Eingang
der Transformationsvorrich
-
- tung
- COMP
- Vergleichsvorrichtung
- FB
- Funktionsblock
- VB
- Verknüpfungsvorrichtung
- M2
- Kontrollwortspeicher
- M3
- Register