-
Die
Erfindung betrifft Schaltungsanordnungen und Verfahren zur Funktionsüberprüfung einer Logikschaltung
in einer Schaltungsanordnung.
-
Schaltungsanordnungen,
wie sie beispielsweise in Chipkarten eingesetzt werden, können Angriffen
ausgesetzt sein. Zur Abwehr solcher Angriffe sind üblicherweise
Gegenmaßnahmen
vorgesehen, die nach Detektion eines Angriffes ausgelöst werden. Diese
Gegenmaßnahmen
sollen das Ausspionieren von Daten oder der Funktionsweise der Schaltungsanordnung
zumindest erschweren.
-
Zur
Erkennung eines Angriffes können
beispielsweise analoge Sensoren eingesetzt werden, welche eine Veränderung
der Betriebsbedingungen detektieren. Solche Sensoren können als
Spannungssensor, Frequenzsensor, Temperatursensor oder Lichtsensor
ausgebildet sein. Wenn der gemessene Wert einen vorgegebenen Schwellwert überschreitet,
wird ein Alarm ausgelöst,
infolgedessen die Gegenmaßnahmen
ausgelöst
werden.
-
Um
die Funktionsfähigkeit
der Sensoren zu überprüfen, kann
eine so genannte ”Usermode
Sensor Life Control”,
kurz „UmSLC” eingesetzt
werden. Während
eines Tests werden die Sensoren durch die UmSLC derart verstellt
oder stimuliert, dass ein Alarm ausgelöst wird. In Reaktion auf diesen
Alarm werden im Testbetrieb jedoch üblicherweise keine Gegenmaßnahmen
eingeleitet, sondern es wird lediglich überprüft, ob der Alarm nach Verstellen
oder Stimulieren des Sensors generiert wird. Falls der Alarm ausbleibt,
lässt dieses
auf einen Angriff schließen,
bei dem der Sensor manipuliert oder außer Betrieb gesetzt worden
ist. Dieses Vorgehen dient als Funktionstest von Schaltungsanordnungen
mit analogen Sensoren. Für
Logikschaltungen, deren Funktionalität zu überprüfen ist, kann das herkömmliche UmSLC,
das auf den Test analoger Sensoren ausgerichtet ist, nicht eingesetzt
werden.
-
In
DE 10 2006 001 872
A1 wird eine Recheneinrichtung mit einer Fehlererkennungseinrichtung beschrieben,
die über
eine Kontrolleinrichtung überwacht
wird, wobei die Kontrolleinrichtung ausgebildet ist, die Recheneinrichtung
zu manipulieren.
-
Es
ist Aufgabe der vorliegenden Erfindung, Vorrichtungen und Verfahren
zu schaffen, die eine erhöhte
Sicherheit gegenüber
Angriffen auf eine Schaltungsanordnung ermöglichen.
-
Die
Aufgabe wird gelöst
durch die Gegenstände
der unabhängigen
Patentansprüche.
-
Es
ist eine Schaltungsanordnung mit einer zu testenden Logikschaltung
und einer Testschaltung vorgesehen. Die Logikschaltung ist ausgebildet,
aus Eingangsdaten Ausgangsdaten bereitzustellen, die durch logikschaltungsinterne
Verknüpfungen
aus den Eingangsdaten generiert werden, sodass die Ausgangsdaten
in einem vorgegebenen Zusammenhang mit den Eingangsdaten stehen.
Die Logikschaltung ist ausgebildet, zu detektieren, ob der Zusammenhang
erfüllt
ist und ein Fehlersignal bereitzustellen, wenn der Zusammenhang
nicht erfüllt
ist. Die Testschaltung ist ausgebildet, Zustände der logikschaltungsinternen
Verknüpfungen
zu verändern.
Die Testschaltung ist ferner ausgebildet, das Fehlersignal zu detektieren,
und ist ausgebildet, ein Alarmsignal auszugeben, wenn bei Veränderung
der logikschaltungsinternen Verknüpfungen das Fehlersignal nicht detektiert
wird.
-
Die
Schaltungsanordnung ermöglicht
es, die Funktionsfähigkeit
der Logikschaltung zu testen, um daraus auf einen Angriff zu schließen. Ferner
wird getestet, ob die Logikschaltung funktionsfähig ist, im Falle eines Angriffs
ein Alarmsignal auszugeben.
-
Ein
Verfahren zur Funktionalitätsprüfung solch
einer Logikschaltung, die aus Eingangsdaten Ausgangsdaten bereit stellt,
die durch logikschaltungsinterne Verknüpfungen aus den Eingangsdaten generiert
werden, sodass die Ausgangsdaten in einem vorgegebenen Zusammenhang
mit den Eingangsdaten stehen, wobei die Logikschaltung ausgebildet
ist, zu detektieren, ob der Zusammenhang erfüllt ist und ein Fehlersignal
bereitzustellen, wenn der Zusammenhang nicht erfüllt ist, sieht Folgendes vor: Die
logikschaltungsinternen Verknüpfungen
werden durch eine Testschaltung verändert. Es wird detektiert,
ob das Fehlersignal generiert worden ist, und ein Alarmsignal wird
generiert, wenn das Fehlersignal nicht detektiert worden ist.
-
Es
ist ferner eine Schaltungsanordnung mit einer zu testenden Logikschaltung
und einer Testschaltung vorgesehen. Die Logikschaltung stellt aus Eingangsdaten
Ausgangsdaten bereit, die durch logikschaltungsinterne Verknüpfungen
aus den Eingangsdaten generiert werden, sodass die Ausgangsdaten
in einem vorgegebenen Zusammenhang mit den Eingangsdaten stehen.
Die Testschaltung ist derart an die Logikschaltung gekoppelt, dass
die logikschaltungsinternen Verknüpfungen veränderbar sind, wobei die Testschaltung
ausgebildet ist, ein Alarmsignal auszugeben, wenn bei Veränderung
der logikschaltungsinterne Verknüpfungen
die Ausgangsdaten im vorgegebenen Zusammenhang mit den Eingangsdaten
stehen.
-
Die
Schaltungsanordnungen ermöglichen es,
die Funktionsfähigkeit
der Logikschaltung zu testen, um daraus auf einen Angriff zu schließen.
-
Ein
Verfahren zur Funktionalitätsprüfung einer
Logikschaltung, ausgebildet aus Eingangsdaten Ausgangsdaten bereitzustellen,
die durch logikschaltungsinterne Verknüpfungen aus den Eingangsdaten generiert
werden, sodass die Ausgangsdaten in einem vorgegebenen Zusammenhang
mit den Eingangsdaten stehen, umfasst Folgendes: Die logikschaltungsinternen
Verknüpfungen
werden verändert.
Eingangsdaten werden angelegt. Ausgangsdaten werden generiert und
detektiert. Ein Alarmsignal wird ausgegeben, wenn die Ausgangsdaten
im vorgegebenen Zusammenhang mit den Eingangsdaten stehen.
-
Weitere
vorteilhafte Ausgestaltungen der Erfindung sind in den untergeordneten
Patentansprüchen
angegeben.
-
Nachfolgend
wird die Erfindung unter Bezugnahme auf die Zeichnung anhand von
Ausführungsbeispielen
erklärt.
-
1 zeigt
ein Ausführungsbeispiel
einer Schaltungsanordnung.
-
2 zeigt
ein weiteres Ausführungsbeispiel einer
Schaltungsanordnung.
-
3 zeigt
anhand eines Ablaufdiagramms ein Verfahren zum Testen einer Schaltungsanordnung.
-
4 zeigt
anhand eines Ablaufdiagramms ein weiteres Verfahren zum Testen einer
Schaltungsanordnung.
-
5 zeigt
ein Bussystem.
-
6 zeigt
beispielhafte zeitliche Signalverläufe in einem Bussystem.
-
7 zeigt
ein Ausführungsbeispiel
mit einem kryptografischen Rechenwerk.
-
8 zeigt
ein weiteres Ausführungsbeispiel mit
einem kryptografischen Rechenwerk.
-
9 zeigt
ein Ausführungsbeispiel
eines kryptografischen Rechenwerks.
-
10 zeigt
ein Ausführungsbeispiel
eines kryptografischen Rechenwerks.
-
11 zeigt
ein Ausführungsbeispiel
eines kryptografischen Rechenwerks.
-
12 zeigt
ein Ausführungsbeispiel
eines kryptografischen Rechenwerks.
-
13 zeigt
ein Ausführungsbeispiel
eines kryptografischen Rechenwerks.
-
14 zeigt
ein Ausführungsbeispiel
mit einer Schaltungsanordnung.
-
15 zeigt
ein weiteres Ausführungsbeispiel
mit einer Schaltungsanordnung.
-
16 zeigt
ein Ausführungsbeispiel
mit einem kryptografischen Rechenwerk.
-
17 zeigt
ein Ausführungsbeispiel
mit einer Speicherverschlüsselungsvorrichtung.
-
18 zeigt
ein Ausführungsbeispiel
mit einer Speicherverschlüsselungsvorrichtung.
-
19 zeigt
ein Ausführungsbeispiel
mit einer Speicherverschlüsselungsvorrichtung.
-
20 zeigt
ein Ausführungsbeispiel
mit einer Speicherverschlüsselungsvorrichtung.
-
21 zeigt
ein Ausführungsbeispiel
mit einem Dekoder.
-
1 zeigt
ein Ausführungsbeispiel
der Schaltungsanordnung. Die Schaltungsanordnung umfasst eine zu
testende Logikschaltung 1 und eine Testschaltung 3.
Eine Logikschaltung 1 ist ausgebildet, aus Eingangsdaten
E1, E2, E3 Ausgangsdaten S bereitzustellen, die durch logikschaltungsinterne
Verknüpfungen 2 aus
den Eingangsdaten E1, E2, E3 generiert werden, sodass die Ausgangsdaten
S in einem vorgegebenen Zusammenhang mit den Eingangsdaten E1, E2,
E3 stehen. Die Logikschaltung 1 ist ausgebildet, zu detektieren,
ob der Zusammenhang erfüllt
ist und ein Fehlersignal V an einem Ausgang 19 bereitzustellen,
wenn der Zusammenhang nicht erfüllt
ist. Die Testschaltung 3 ist ausgebildet, die logikschaltungsinternen
Verknüpfungen 2 zu
verändern.
Die Testschaltung 3 ist ausgebildet, das Fehlersignal V
zu detektieren, und ferner ausgebildet, ein Alarmsignal A auszugeben,
wenn bei Veränderung der
logikschaltungsinternen Verknüpfungen 2 das Fehlersignal
V nicht detektiert wird.
-
Die
Testschaltung ermöglicht,
durch gezielte Veränderung
der logikschaltungsinternen Verknüpfungen 2 einen Angriff
zu simulieren, mit dem die Funktionsfähigkeit der Logikschaltung 1 überprüft wird.
-
Es
sei bemerkt, dass Ausführungsbeispiele der
logikschaltungsinternen Verknüpfungen 2 Schaltungselemente
zur digitalen Datenverarbeitung umfassen. Ein Ausführungsbeispiel
umfasst Schaltungen zur Umsetzung logischer Operation, wie eine UND-Verknüpfung oder
eine ODER-Verknüpfung. Ein
Ausführungsbeispiel
umfasst ein Speicherelement. Ein Ausführungsbeispiel umfasst einen
Multiplexer. Ein Ausführungsbeispiel
umfasst eine leitende Verbindung, die unterbrechbar ist. Ein Ausführungsbeispiel
umfasst eine leitende Verbindung, deren Kopplung von einem Potenzialknoten
auf einen anderen hin umschaltbar ist. Ein Ausführungsbeispiel umfasst einen
Schalter. In Ausführungsbeispielen bewirkt
die Änderung
eine Veränderung
des logischen Zustands im Schaltungselement. In anderen Ausführungsbeispielen
bewirkt die Änderung
eine Veränderung
der Kopplungen innerhalb der logikschaltungsinternen Verknüpfungen,
beispielsweise durch Veränderung
der Schalterstellung.
-
2 zeigt
ein weiteres Ausführungsbeispiel einer
Schaltungsanordnung. Es sei bemerkt, dass gleiche Merkmale mit gleichen
Bezugszeichen versehen sind.
-
Die
Schaltungsanordnung umfasst eine Logikschaltung 1 und eine
Testschaltung 3. Die Logikschaltung generiert aus den Eingangsdaten
E1, E2, E3 die Ausgangsdaten S, indem die Eingangsdaten in logikschaltungsinternen
Verknüpfungen 2 verarbeitet
werden. Die Ausgangsdaten S stehen in einem vorgegebenen Zusammenhang
mit den Eingangsdaten E1, E2, E3. Dieser vorgegebene Zusammenhang ist
durch die logikschaltungsinternen Verknüpfungen vorgegeben, mittels
derer die Generierung der Ausgangsdaten S aus den Eingangsdaten
E1, E2, E3 erfolgt.
-
Die
Testschaltung 3 ist ausgebildet, die logikschaltungsinternen
Verknüpfungen 2 zu
verändern. Dadurch
wird in die Generierung der Ausgangsdaten S eingegriffen, sodass
der vorgegebene Zusammenhang in der Regel nicht mehr erfüllt ist.
-
Es
ist ferner eine Fehlerdetektionsvorrichtung 96 vorgesehen,
die an die logikschaltungsinternen Verknüpfungen 2 gekoppelt
ist. Die Fehlerdetektionsvorrichtung 96 ist ausgebildet,
zu überprüfen, ob der
vorgegebene Zusammenhang erfüllt
ist und ein Fehlersignal V bereitzustellen, wenn dieses nicht der Fall
ist.
-
Die
Schaltungsanordnung umfasst ferner eine Alarmvorrichtung 4,
die ausgebildet ist, eine Alarmreaktion auszulösen, wenn das Fehlersignal
V eingangsseitig detektiert wird.
-
Die
Alarmreaktion dient dazu, Angriffen zu begegnen. Sie kann vielfältiger Natur
sein. In einem Ausführungsbeispiel
umfasst die Alarmreaktion die Datenverarbeitung zu unterbrechen.
In einem Ausführungsbeispiel
werden Speicher und/oder Register gelöscht. Alternativ oder zusätzlich kann
vorgesehen sein, den Schaltungsbetrieb herunterzufahren, was auch
als Reset bezeichnet wird.
-
Über einen
Schalter 5 ist der Ausgang 19, an dem das Fehlersignal
V bereitgestellt wird, an die Alarmvorrichtung 4 oder an
die Testschaltung 3 koppelbar.
-
In
einem normalen Betrieb sind die Logikschaltung 1 und die
die Alarmvorrichtung 4 gekoppelt, sodass bei Detektion
des Fehlersignals V die Alarmreaktion ausgelöst wird.
-
In
einem Testbetrieb, bei dem die Funktionsfähigkeit der Logikschaltung,
insbesondere deren Fehlererkennungsfunktion, überprüft wird, ist die Logikschaltung 1 an
die Testschaltung 3 gekoppelt, sodass die Testschaltung 3 das
Fehlersignal V detektieren kann. Wenn das Fehlersignal V nach Zustandsveränderung
der logikschaltungsinternen Verknüpfungen 2 von der
Testschaltung 4 detektiert wird, lässt dies auf die korrekte Funktionsweise
der Fehlerdetektion schließen.
Ein Angriff, der die Fehlerdetektion manipuliert hat, liegt nicht
vor.
-
3 veranschaulicht
ein Verfahren zur Funktionalitätsprüfung einer
Logikschaltung 1, die aus Eingangsdaten E1, E2, E3 durch
logikschaltungsinterne Verknüpfungen 2 Ausgangsdaten
S generiert, sodass die Ausgangsdaten S in einem vorgegebenen Zusammenhang
mit den Eingangsdaten E1, E2, E3 stehen, wobei die Logikschaltung 1 detektiert,
ob der Zusammenhang erfüllt
ist und ein Fehlersignal V bereit stellt, wenn der Zusammenhang
nicht erfüllt
ist. Das Verfahren umfasst: Verändern
der logikschaltungsinternen Verknüpfungen 2 durch eine Testschaltung 3,
wie in Block 110 veranschaulicht; Detektieren, ob das Fehlersignal
V generiert worden ist, wie in Block 120 veranschaulicht,
und Bereitstellen eines Alarmsignals A, wenn das Fehlersignal V nicht
detektiert worden ist, wie in Block 130 veranschaulicht.
-
In
einem normalen Betrieb wird eine Alarmreaktion ausgelöst, wenn
das Fehlersignal V detektiert wird, ohne dass zuvor die Veränderung
der logikschaltungsinternen Verknüpfungen 2 initiiert
worden ist. In solch einem Fall ist das Fehlersignal V Indikator eines
Angriffs. Die Alarmreaktion dient dazu den Angriff abzuwehren, beispielsweise
indem die Schaltung heruntergefahren wird.
-
Die
Alarmreaktion wird in einem Testbetrieb, in dem die Veränderung
der logikschaltungsinternen Verknüpfungen 2 initiiert
worden ist, nicht ausgelöst, wenn
das Fehlersignal V detektiert wird.
-
4 zeigt
ein weiteres Verfahren, das ein Umschalten zwischen dem normalen
Betrieb und dem Testbetrieb veranschaulicht.
-
Zum
Umschalten in den Testbetrieb wird im Schritt 140 der Fehlersignalausgang 19,
an dem das Fehlersignal V bereitgestellt wird, umgeschaltet. Die Umschaltung
erfolgt derart, dass das Fehlersignal V, wenn es generiert wird,
der Testschaltung 3 bereitgestellt wird. Im folgenden Schritt 150 werden
die logikschaltungsinternen Verknüpfungen 2 verändert. Im Schritt 160 wird überprüft, ob das
Fehlersignalsignal V aktiviert worden ist. Wenn dieses nicht der
Fall ist, kann auf einen Angriff geschlossen werden. Alternativ
ist auch denkbar, dass die Logikschaltung 1, insbesondere
die Fehlerdetektionsvorrichtung 96, fehlerhaft ist. Wenn
kein Fehlersignal V detektiert wird, wird ein Alarmsignal bereitgestellt,
wie in Block 170 veranschaulicht.
-
Wenn
das Fehlersignal V im Schritt 160 detektiert worden ist,
wird das Verändern
der logikschaltungsinternen Verknüpfungszustände im Schritt 180 rückgängig gemacht.
Es wird im Schritt 190 überprüft, ob das
Fehlersignal V danach noch aktiviert ist. Ist dieses der Fall, wird
im Schritt 210 abgewartet bis dem nicht mehr so ist. Anschließend wird
im Schritt 200 der Fehlersignalausgang 19 zurückgeschaltet, sodass
die Schaltung in den normalen Betrieb zurückgeschaltet wird.
-
Es
sei bemerkt, dass im normalen Betrieb die Detektion des Fehlersignals
V zur Auslösung
der Alarmreaktion führen
würde.
-
5 zeigt
ein Beispiel, bei dem die Logikschaltung als Bussystem 11, 12 ausgebildet
ist. Das Bussystem 11, 12 umfasst eine Vielzahl
von Busleitungen 12, an denen Daten D1, D2, D3, D4, D5,
D6, D7 anliegen.
-
Das
Bussystem 11, 12 umfasst ferner eine Fehlerdetektionsvorrichtung,
die als Paritätsfehlerkennung 11 ausgebildet
ist. Eine zu überprüfende Gruppe
Bits wird dahin gehend überprüft, ob sie
eine ungerade oder gerade Zahl eines vorgegebenen Zustands umfasst.
Dieses Ergebnis wird mit einem Kontrollbit verglichen, das angibt,
ob eine ungerade oder gerade Zahl des vorgegebenen Zustands vorliegen müsste. Wenn
das Ergebnis und das Kontrollbit sich unterscheiden, liegt ein Fehler
vor. Die Paritätsfehlerkennung 11 ist
ausgebildet, bei Detektion eines Fehlers das Fehlersignal V auszugeben.
-
Ein
Ausführungsbeispiel
der Fehlerdetektionsvorrichtung ist ausgebildet, basierend auf fehlererkennender
Codierung (Error Detection Codes, EDC) eine Fehlerdetektion auszuführen. Damit
sind ein oder mehrere Fehler detektierbar.
-
Die
Fehlerdetektion ist in einem Ausführungsbeispiel für Bitsequenzen
auf einer Busleitung 12 vorgesehen. In einem Ausführungsbeispiel
erfolgt die Fehlerdetektion für
die Bits mehrerer Busleitungen 12 parallel. In einem Ausführungsbeispiel
werden diese Ansätze
kombiniert.
-
Ferner
ist eine Testschaltung 3 mit einem Ausgang 31 und
einer Alarmvorrichtung 4 vorgesehen. Das Fehlersignal V
ist über
einen Schalter 5 an die Testschaltung 3 oder an
die Alarmvorrichtung 4 koppelbar.
-
Die
Testschaltung 3 ist über
ein Kopplungselement 6 an das Bussystem 11, 12 gekoppelt.
Im dargestellten Ausführungsbeispiel
ist das Kopplungselement 6 an eine der Busleitungen 12 gekoppelt.
In einem weiteren Ausführungsbeispiel
ist die Testschaltung 3 an mehrere Busleitungen 12 gekoppelt.
Die Testschaltung generiert ein Testsignal T, das am Kopplungselement 6 anliegt.
Das Testsignal T ist geeignet, die Umschaltung von Zuständen zu
initiieren.
-
Das
Kopplungselement 6 ist in einem Ausführungsbeispiel als Exklusiv-ODER-Verknüpfung ausgebildet,
sodass die Daten der daran gekoppelten Busleitung 12 invertierbar
sind.
-
In
einem Ausführungsbeispiel
werden durch das Kopplungselement 6 vorgegebene Daten auf
die Busleitungen 12 aufgeprägt. Ein solches Aufprägen wird
auch als „Stuck-at-1” beziehungsweise „Stuck-at-0” bezeichnet.
Die Bezeichnung hängt
vom aufgeprägten
Zustand, logisch „1” beziehungsweise logisch „0”, ab.
-
Es
sei bemerkt, dass eine Kombination und/oder eine Nacheinanderschaltung
von Merkmalen der Ausführungsbeispiele,
insbesondere die Kopplungselemente betreffend, denkbar sind.
-
Im
normalen Betrieb ist die Paritätsfehlerkennung 11 an
die Alarmvorrichtung 4 gekoppelt, sodass im Falle eines
detektierten Fehlers die Ausgabe des Fehlersignals V die Alarmreaktion
zur Folge hat.
-
Im
Testbetrieb wird die Funktionsfähigkeit der
Fehlerdetektion überprüft. Wenn
diese nicht gegeben ist, lässt
das auf einen möglichen
Angriff schließen.
-
Das
Umschalten in den Testbetrieb wird von der Testschaltung 3 initiiert.
Der Schalter koppelt den Ausgang der Paritätsfehlerkennung 11,
an dem das Fehlersignal V bereitgestellt wird, an die Testschaltung 3.
Dadurch wird das Fehlersignal V umgeleitet.
-
Danach
wird ein Fehler im Bussystem 11, 12 durch die
Testschaltung 3 simuliert. Das Testsignal T wird an das
Kopplungselement 6 angelegt, sodass das Datensignal D1
der Busleitung 12 verändert
wird. Dadurch wird der vorgegebene Zusammenhang der Daten auf den
Busleitungen 12 verändert.
Die Daten korrespondieren nicht mehr mit dem Kontrollbit. Dieses
wird als Fehler detektiert, und das Fehlersignal V wird ausgegeben.
-
Die
Testschaltung 3 überprüft, ob nach
der erfolgten Fehlersimulation das Fehlersignal V aktiviert worden
ist. Wenn das Fehlersignal V nicht detektiert wird, generiert die
Testschaltung 3 ein Alarmsignal, um die fehlerhafte Funktion
des Bussystems 11, 12 anzuzeigen. Das Alarmsignal
wird am Ausgang 31 bereitgestellt.
-
Wenn
das Fehlersignal V nach der erfolgten Fehlersimulation detektiert
worden ist, wird die Fehlersimulation beendet und die Rücknahme
des Fehlersignals V abgewartet. Der Ausgang der Paritätsfehlerkennung 11,
an dem das Fehlersignal V bereitgestellt wird, wird wieder auf die
Alarmvorrichtung 4 zurückgeschaltet.
-
6 zeigt
Zeitsignalverläufe
auf einer Busleitung 12, die Datenmanipulationen durch
die Testschaltung 3 beispielhaft verdeutlichen.
-
Ein
Datensignal D ist über
der Zeitachse t aufgetragen. Das Datensignal D kann entweder einen
ersten Zustand (logisch „0”) oder
einen zweiten Zustand (logisch „1”) annehmen. Der Verlauf des
von der Testschaltung 3 bereitgestellten Testsignals T über der
Zeitachse t ist ebenfalls dargestellt.
-
Signale
S1, S2, S3 sind Ausgangsignale verschiedener Ausführungsbeispiele
des Kopplungselements 6.
-
Das
erste Signal S1 resultiert aus der Exklusiv-ODER-Verknüpfung des Datensignals D und
dem Testsignal T. Die Exklusiv-ODER-Verknüpfung bewirkt, dass das Datensignal
D und das erste Signal S1 übereinstimmen,
wenn das Testsignals T den ersten Zustand hat. Nach dem Übergang
des Testsignals T in den zweiten Zustand sind das erste Signal S1
und das Datensignal D invers.
-
Das
zweite Signal S2 resultiert aus einer Stuck-at-1-Verknüpfung. Das zweite Signal S2
nimmt den zweiten Zustand an, wenn das Testsignal T in den zweiten
Zustand übergeht.
In einem Ausführungsbeispiel
wird eine Stuck-at-1-Verknüpfung
mittels einer logischen ODER-Verknüpfung generiert.
-
Das
dritte Signal S3 resultiert aus einer Stuck-at-0-Verknüpfung. Das dritte Signal S3
nimmt den ersten Zustand an, wenn das Testsignal T in den zweiten
Zustand übergeht.
In einem Ausführungsbeispiel
wird eine Stuck-at-0-Verknüpfung
mittels einer logischen UND-Verknüpfung mit einem invertierten Test-Signal-Eingang
generiert.
-
7 zeigt
ein Ausführungsbeispiel
einer Schaltungsanordnung mit einem kryptografischen Rechenwerk 9.
Ein kryptografisches Rechenwerk ist ausgebildet, symmetrische Verschlüsselungen
oder asymmetrische Verschlüsselungen
durchzuführen. Ausführungsbeispiel
einer symmetrischen Verschlüsselung
sind DES und AES. Ein Ausführungsbeispiel einer
asymmetrischen Verschlüsselung
ist RSA. Ausführungsbeispiele
von kryptografischen Rechenwerken sind ausgebildet, Sonderfunktionen
bereitzustellen, die die Verschlüsselungsberechnungen
bzw. Entschlüsselungsberechnungen
schnell und effektiv gestalten. In einem Ausführungsbeispiel ist die Verschlüsselungsoperation
oder die Entschlüsselungsoperation
oder Teile davon fest verdrahtet vorgesehen.
-
In
einem Ausführungsbeispiel
ist das kryptografische Rechenwerk 9 ausgebildet, Fehler
durch algorithmische Funktionen in der Ansteuersoftware zu detektieren.
In diesem Fall ist eine entsprechende Steuervorrichtung des kryptografischen
Rechenwerks 9 derart ausgebildet. In einem Ausführungsbeispiel
ist das kryptografische Rechenwerk 9 ausgebildet, Fehler
mittels einer Fehlerdetektionsvorrichtung zu detektieren.
-
Ferner
ist eine Testschaltung 3 mit einem Ausgang 31 und
eine Alarmvorrichtung 4 vorgesehen. Das Fehlersignal V
ist über
einen Schalter 5 an die Testschaltung 3 oder an
die Alarmvorrichtung 4 koppelbar.
-
Es
sei bemerkt, dass die Darstellung des Ausführungsbeispiels, und auch der
folgenden Ausführungsbeispiele,
sich auf die Teile des kryptografischen Rechenwerks 9 konzentriert,
deren Zustand von der Testschaltung 3 veränderbar
ist.
-
Im
dargestellten Ausführungsbeispiel
umfasst das Rechenwerk 9 eine Dual-Rail-Logik 91, 92, 93, 94,
bei der ein Bit über
eine erste Leitung 91 und das invertierte Bit über eine
zweite Leitung 92 zwischen einem ersten Schaltungsbereich 93 und
einem zweiten Schaltungsbereich 94 übertragen werden. Liegt an
der ersten und der zweiten Leitung 91, 92 derselbe
Zustand an, liegt ein Fehler vor, da diese Zustandskombination nach
der Kodierungsvorschrift nicht vorgesehen ist. Derartige fehleranzeigende
Zustände
können
mittels eines so genannten Forbidden-State-Detektors 95,
oder Verbotener-Zustand-Detektor, detektiert werden, welcher die
Zustände
auf den Leitungen 91, 92 der Dual-Rail-Logik 91, 92, 93, 94 detektiert.
Liegt ein Fehler vor, so gibt der Forbidden-State-Detektor 95 das
Fehlersignal V aus.
-
Die
Testschaltung 3 ist derart an die Dual-Rail-Logik 91, 92, 93, 94 gekoppelt,
dass die Daten auf zumindest einer der Leitungen 91, 92 verändert werden.
In diesem Ausführungsbeispiel
ist zu diesem Zweck das Kopplungselement 6 vorgesehen.
In einem Ausführungsbeispiel
ist das Kopplungselement 6 als Exklusiv-ODER-Verknüpfung ausgebildet.
In einem Ausführungsbeispiel
ist das Koppelelement 6 als Stuck-at-0-Verknüpfung ausgebildet.
In einem Ausführungsbeispiel
ist das Kopplungselement 6 als Stuck-at-1-Verknüpfung ausgebildet.
-
Im
normalen Betrieb ist das Fehlersignal V an die Alarmvorrichtung 4 gekoppelt.
-
Der
Funktionstest erfolgt wie beim zuvor beschriebenen Ausführungsbeispiel
in 5. Der Ausgang, an dem das Fehlersignal bereitgestellt
wird, wird während
des Testbetriebs an die Testschaltung 3 gekoppelt. Die
Testschaltung 3 detektiert, ob der Forbidden-State-Detektor 95 nach
Simulation eines Fehlers das Fehlersignal V ausgibt. Wenn dies nicht der
Fall ist, wird das Alarmsignal generiert, dass anzeigt, dass die
Fehlerdetektion nicht funktioniert.
-
Es
sei bemerkt, dass Dual-Rail-Logiken nicht nur in kryptografischen
Rechenwerken eingesetzt werden, sondern beispielsweise auch in Speichern Verwendung
finden.
-
8 zeigt
ein weiteres Ausführungsbeispiel einer
Schaltungsanordnung mit einer Testschaltung 3 und einer
Logikschaltung, die als kryptografisches Rechenwerk 9 ausgebildet
ist.
-
Das
kryptografische Rechenwerk 9 verknüpft Eingangssignale E1, E2,
E3 zu einem Ausgangssignal S. An einem Fehlersignalausgang wird
das Fehlersignal V bereitgestellt.
-
Der
Fehlersignalausgang 19 ist über einen Schalter 5 an
die Testschaltung 3 oder an die Alarmvorrichtung 4 koppelbar.
Die Umschaltung des Schalters 5 wird durch die Testschaltung 3 initiiert.
-
Das
kryptografische Rechenwerk 9 umfasst Schaltungsteile 101,
die ausgebildet sind, Datensignale logisch zu verknüpfen, zu
verarbeiten oder zu speichern. Ein Ausführungsbeispiel eines solchen Schaltungsteils 101 ist
ein Addierwerk. Ein Ausführungsbeispiel
eines solchen Schaltungsteils 101 ist ein Shifter, oder
Schieberegister. Ferner ist eine Steuervorrichtung 103 vorgesehen,
welche über
Ansteuerleitungen 104 die Schaltungsteile 101 ansteuert.
-
Über Kopplungselemente 6 sind
die Ansteuerleitungen 104 mit der Testschaltung 3 gekoppelt. Ausführungsbeispiel
der Kopplungselemente umfassen beispielsweise Exklusiv-ODER-Verknüpfungen, Stuck-at-1-Verknüpfungen
oder Stuck-at-0-Verknüpfungen.
-
Im
normalen Betrieb ist das Fehlersignal V an die Alarmvorrichtung 4 gekoppelt.
Der Testbetrieb verläuft
wie beim zuvor beschriebenen Ausführungsbeispiel in 5.
-
Während des
Testbetriebs werden diese Ansteuerleitungen 104 nach einer
anderen Vorschrift oder Abbildung geschaltet. Die Kopplung mit dem Testsignal
T führt
zu anderen Funktionen der Schaltungsteile 101, die von
der Schaltung gemäß der anderen
Vorschrift oder Abbildung herrührt.
Diese anderen Funktionen werden vom kryptografischen Rechenwerk
detektiert. Dieses erfolgt in einem Ausführungsbeispiel durch einen
Algorithmus, welcher softwaremäßig die
Rechenergebnisse überprüft und bei Detektion
eines Fehlers ein Fehlersignal V ausgibt. In einem Ausführungsbeispiel
wird zu Testzwecken eine Testrechnung durchgeführt und überprüft, ob der Algorithmus die Fehlereinprägung detektiert
und infolgedessen das Fehlersignal V generiert wird.
-
9 zeigt
ein weiteres Ausführungsbeispiel eines
kryptografischen Rechenwerks 9 mit Schaltungsteilen 101,
die von einer Steuervorrichtung 103 über Ansteuerleitungen 104 angesteuert
werden. In diesem Ausführungsbeispiel
ist eine der Ansteuerleitungen 104 über ein Kopplungselement 6 an
das Testsignal T gekoppelt.
-
In
diesem Ausführungsbeispiel
ist ferner eine Fehlerdetektionsvorrichtung 96 vorgesehen,
welche an die Eingangssignale E1, E2, E3 und das Ausgangssignal
S gekoppelt ist. Die Fehlerdetektionsvorrichtung 96 überprüft, ob die
Signale E1, E2, E3, S in einem vorgegebenen Zusammenhang stehen. Wenn
dieses nicht der Fall ist, wird das Fehlersignal V ausgegeben. In
einem Ausführungsbeispiel
ist die Fehlerdetektionsvorrichtung 96 an Leitungen und/oder
Potenzialknoten innerhalb des kryptografischen Rechenwerks 9 gekoppelt,
beispielsweise an die Eingänge
und Ausgänge
eines Schaltungsteils 101. Dadurch können auch Zwischenergebnisse überprüft werden.
-
10 zeigt
ein weiteres kryptografisches Rechenwerk 9, in dem die
Eingangssignale E1, E2, E3 an Speichereinheiten 102 gekoppelt
sind. Ein Ausführungsbeispiel
einer solchen Speichereinheit 102 ist ein Register. Die
Speichereinheiten 102 werden über ein Schaltungsteil 101 zu
einem Ausgangssignal verknüpft.
Ferner ist eine Fehlerdetektionsvorrichtung 96 vorgesehen,
die die Eingangssignale E1, E2, E3 und das Ausgangssignal S abgreift
und das Fehlersignal V bereitstellt, wenn die Eingangssignale E1,
E2, E3 und das Ausgangssignal S nicht in dem vorgegebenen Zusammenhang
stehen.
-
Es
sei bemerkt, dass zur Überprüfung des vorgegebenen
Zusammenhangs nicht die Eingangssignale E1, E2, E3 selbst abgegriffen
werden müssen,
sondern der Abgriff auch an Datenknoten innerhalb des kryptografischen
Rechenwerks 9 erfolgen kann. Auf diese Weise wird indirekt
aus dem Vergleich von Zwischenergebnissen innerhalb der Logikschaltung
auf die Richtigkeit der Eingangs- und Ausgangsdaten E1, E2, E3,
S geschlossen. Allerdings wird bei der Überprüfung basierend auf den Zwischenergebnissen
nur ein Teil der Schaltung überprüft, welcher
zwischen den Abgriffspunkten der Zwischenergebnisse liegt.
-
Im
dargestellten Ausführungsbeispiel
ist das Testsignal T über
ein Kopplungselement 6 an eine der Speichereinheiten 102 gekoppelt.
In einem Ausführungsbeispiel
erfolgt die Kopplung derart, dass Daten in der Speichereinheit 102 auf
einen festen Wert gesetzt werden. Zu diesem Zweck kann eine Stuck-at-1-Verknüpfung oder
eine Stuck-at-0-Verknüpfung
dienen. In einem Ausführungsbeispiel
bewirkt die Kopplung, dass die Daten in der Speichereinheit 102 invertiert
werden. Zu diesem Zweck kann eine Exklusiv-ODER-Verknüpfung verwendet
werden.
-
Eine
andere Berechnung während
des Testbetriebes wird von der Fehlerdetektionsvorrichtung 96 erkannt
und durch die Bereitstellung des Fehlersignals V angezeigt.
-
In
einem weiteren Ausführungsbeispiel
ist keine Fehlerdetektionsvorrichtung vorgesehen, sondern die Richtigkeit
der Berechnung wird algorithmisch detektiert.
-
11 zeigt
ein weiteres Ausführungsbeispiel
eines kryptografischen Rechenwerkes 9, das ausgebildet
ist, die Eingangssignale E1, E2, E3 zum Ausgangssignal S zu verknüpfen. Das
kryptografische Rechenwerk 9 ist ferner ausgebildet, ein
Fehlersignal V bereitzustellen, wenn die Verknüpfung nicht in einem vorgegebenen
Zusammenhang steht.
-
Das
kryptografische Rechenwerk 9 umfasst ein Schlüsselrechenwerk 105.
In einem Ausführungsbeispiel
ist das Schlüsselrechenwerk 105 als
so genanntes Key-Scheduling-Rechenwerk
in einem DES- oder AES-Rechenwerk ausgebildet. Das Schlüsselrechenwerk 105 generiert
einen Teilschlüssel
K oder den gesamten Schlüssel
K zur Berechnung einer kryptografischen Funktion.
-
Die
Testschaltung 3 ist derart an das Schlüsselrechenwerk 105 gekoppelt,
dass die Generierung des Schlüssels
K verändert
wird. In einem Ausführungsbeispiel
bewirkt das Testsignal T, dass Schiebeoperationen ausgelassen werden
oder dass zu weit oder zu kurz geschoben wird.
-
Die
Rechenfehler, die bei verändertem Schlüssel K auftreten,
werden detektiert, und das Fehlersignal V wird ausgegeben. In einem
Ausführungsbeispiel
erfolgt die Detektion durch eine Fehlerdetektionsvorrichtung 96.
In einem weiteren Ausführungsbeispiel
erfolgt die Detektion algorithmisch.
-
12 zeigt
ein weiteres Ausführungsbeispiel
des kryptografischen Rechenwerks 9. Das kryptografische
Rechenwerk 9 umfasst einen Multiplexer 106 und
ein nachgeschaltetes Schaltungsteil 101. An eingangsseitigen
Datenknoten 107 des Multiplexers 106 liegen die
Eingangssignale E1, E2, E3 an. Die Eingangssignale E1, E2, E3 werden
an ausgangsseitigen Datenknoten 107 des Multiplexers 106 bereitgestellt
und Eingängen
des Schaltungsteils 101 zugeführt, um das Ausgangssignal
S zu generieren.
-
Durch
die Kopplung der Testschaltung 3 an den Multiplexer 106 können die
Kopplungen zwischen den ausgangsseitigen Datenknoten 107 und den
eingangssseitigen Datenknoten 107 verändert werden, sodass an Ausgangsknoten 107 des
Multiplexers 106 andere Daten bereitgestellt werden. Durch
die Vertauschungen wird das Ausgangssignal S verändert. Diese Abweichungen können durch
einen Algorithmus erkannt werden.
-
In
einem weiteren Ausführungsbeispiel
ist eine Fehlerdetektionsvorrichtung vorgesehen, die das Fehlersignal
generiert.
-
In
einem Ausführungsbeispiel
ist ein Schaltungsteil vorgesehen, dass Permutationen, also vorgegebene
Vertauschungen, durchführt.
Durch eine Kopplung der Testschaltung an ein solches Schaltungsteil
werden die Permutationen verändert.
-
13 zeigt
ein weiteres Ausführungsbeispiel
eines kryptografischen Rechenwerkes. Das kryptografische Rechenwerk
zur Berechnung von Verschlüsselungen
gemäß DES oder
AES umfasst eine so genannte S-Box 108 zur nichtlinearen
Transformation. Eine S-Box ist eine Tabellenspeichervorrichtung,
in der nichtlineare Transformationsergebnisse gespeichert sind.
Es sei bemerkt, dass derartige Tabellenspeichervorrichtungen beispielsweise auch
in Speichern eingesetzt werden. In einem Ausführungsbeispiel wird die Testschaltung
derart an die S-Box 108 gekoppelt,
dass sie hinsichtlich ihrer Ansteuerung verändert wird. In einem weiteren
Ausführungsbeispiel
ist die Testschaltung derart gekoppelt, dass das Auslesen der S-Box 108 verändert wird.
In einem Ausführungsbeispiel
ist die Testschaltung derart an die S-Box 108 gekoppelt,
dass ihr Inhalt verändert
wird. Die Veränderung
des Inhalts kann beispielsweise durch eine Invertierung mittels
einer Exklusiv-ODER-Verknüpfung
erfolgen. Diese Veränderungen
bewirken, dass falsche Werte von der S-Box bereitgestellt werden.
Diese Verfälschungen
werden durch algorithmische Kontrolle erkannt. In einem Ausführungsbeispiel
erfolgt die Detektion mittels einer Fehlerdetektionsvorrichtung 96.
-
Es
sei bemerkt, dass die Merkmale zur Fehlersimulation in den Ausführungsbeispielen
der kryptografischen Rechenwerke kombinierbar sind. Die Fehlerdetektion
kann algorithmisch und/oder mittels einer Fehlerdetektionsvorrichtung
erfolgen.
-
14 zeigt
das Blockschaltbild eines Ausführungsbeispiels
einer Schaltungsanordnung mit einer Logikschaltung 1, ausgebildet
aus Eingangsdaten E1, E2, E3 Ausgangsdaten S bereitzustellen, die durch
logikschaltungsinterne Verknüpfungen 2 aus den
Eingangsdaten E1, E2, E3 generiert werden, sodass die Ausgangsdaten
S in einem vorgegebenen Zusammenhang mit den Eingangsdaten E1, E2,
E3 stehen. Die Schaltungsanordnung umfasst ferner eine Testschaltung 3,
die derart an die Logikschaltung gekoppelt ist, dass die logikschaltungsinternen Verknüpfungen 2 veränderbar
sind, wobei die Testschaltung 3 ausgebildet ist, ein Alarmsignal
A auszugeben, wenn bei Veränderung
der logikschaltungsinternen Verknüpfungen 2 die Ausgangsdaten
S im vorgegebenen Zusammenhang mit den Eingangsdaten E1, E2, E3
stehen.
-
Die Überprüfung des
vorgegebenen Zusammenhangs umfasst in einem Ausführungsbeispiel den Vergleich
des Ausgangssignals S mit einem vorgegebenen Wert R.
-
Die
Testschaltung 3 ermöglicht
durch gezielte Veränderung
der logikschaltungsinternen Verknüpfungen 2 einen Angriff
zu simulieren, mit dem die Funktionsfähigkeit der Logikschaltung 1 überprüft wird.
-
15 zeigt
ein weiteres Ausführungsbeispiel,
dass sich vom vorhergehenden Ausführungsbeispiel dadurch unterscheidet,
dass die Testschaltung 3 ausgebildet ist, vorgegebene Eingangssignale E1,
E2, E3 an die Logikschaltung 1 anzulegen.
-
Ein
Ausführungsbeispiel
eines Verfahrens zur Funktionsprüfung
einer derartigen Logikschaltung 1 umfasst: Verändern der
logikschaltungsinternen Verknüpfungen 2;
Anlegen von Eingangsdaten E1, E2, E3; Generieren der Ausgangsdaten
S; Detektieren der Ausgangsdaten S und Ausgeben eines Alarmsignals
A, wenn die Ausgangsdaten S im vorgegebenen Zusammenhang mit den
Eingangsdaten E1, E2, E3 stehen.
-
In
einem Ausführungsbeispiel
ist verfahrensgemäß vorgesehen,
die logikschaltungsinternen Verknüpfungen softwaremäßig zu verändern. Eine
derartige softwaremäßige Veränderung
kann beispielsweise in Speicherverschlüsselungen vorgesehen sein,
um einen Schlüsselwechsel
vorzunehmen. In einem Ausführungsbeispiel
wird derart eine Schlüsselveränderung
in einem kryptografischen Rechenwerk vorgenommen. In einem anderen
Ausführungsbeispiel
wird derart eine Schlüsselveränderung
in einem Dekoder vorgenommen.
-
Ein
Alarmsignal wird ausgegeben, wenn die Ausgangsdaten mit vorgegebenen
Daten übereinstimmen.
Zu diesem Zweck können
die bei kryptografischen Rechenwerken zum Funktionstest nach der Fertigung
vorgesehenen Tabellen mit Erwartungswerten bei verschiedenen Schlüsseln verwendet werden.
-
16 zeigt
ein Ausführungsbeispiel,
in dem die Logikschaltung als kryptografisches Rechenwerk 9 ausgebildet
ist. Dieses Ausführungsbeispiel
lehnt sich an das in 8 gezeigte Ausführungsbeispiel
an. Es unterscheidet sich von diesem jedoch dadurch, dass die Überprüfung der
Funktionsweise des kryptografischen Rechenwerks 9 erfolgt, indem
aus den Eingangssignalen E1, E2, E3 das Ausgangssignal S generiert
wird und überprüft wird, ob
dieses von einem vorgegebenen Wert R abweicht. Der vorgegebene Wert
R ist einem Ausführungsbeispiel
in der Testschaltung 3 gespeichert. In einem Ausführungsbeispiel
ist er durch eine vorhergehende Berechnung generiert worden. In
diesem Fall wird ein erstes Ausgangssignal generiert, ohne dass
die Testschaltung 3 Zustände im kryptografischen Rechenwerk ändert. Ein
zweites Ausgangssignal wird generiert, nachdem die Testschaltung 3 Zustände im kryptografischen
Rechenwerk geändert
hat. Wenn sich die generierten Ausgangssignale nicht unterscheiden,
deutet das auf einen Angriff.
-
Es
sei bemerkt, dass die anderen Ausführungsbeispiele eines kryptografischen
Rechenwerks, deren Zustände
in verschiedener Weise durch die Testschaltung 3 veränderbar
sind, in entsprechender Weise durch einen Vergleich von berechneten
Ausgangsdaten S – einmal
ohne Fehlersimulation durch die Testschaltung und einmal mit Fehlersimulation durch
die Testschaltung – hinsichtlich
einer möglichen
Manipulation getestet werden können.
-
17 zeigt
ein Ausführungsbeispiel,
in dem die Logikschaltung als Speicherverschlüsselungsvorrichtung 14 ausgebildet
ist. Eine solche Speicherverschlüsselungsvorrichtung 14 wird
auch als MED (Memory Encryption Decryption Unit), bezeichnet.
-
Die
Speicherverschlüsselungsvorrichtung 14 ist
einem Speicher 15 vorangeschaltet. Der Speicher 15 ist
beispielsweise als RAM oder NVM ausgebildet. Im Speicher 15 zu
speichernde Daten werden vor dem Speichern von der Speicherverschlüsselungsvorrichtung 14 verschlüsselt. Beim
Auslesen werden die verschlüsselt
abgespeicherten Daten durch die Speicherverschlüsselungsvorrichtung 14 entschlüsselt. Die
Speicherverschlüsselungsvorrichtung 14 umfasst
ein Mittel 141 zur Bereitstellung eines Schlüssels K.
Die Testschaltung 3 mit einem Ausgang 31 zur Bereitstellung
des Alarmsignals A ist ausgebildet, den Schlüssel K zu verändern.
-
In
einem weiteren Ausführungsbeispiel
wird die Speicherverschlüsselung
für ein
ROM eingesetzt. In diesem Fall erfolgt lediglich eine Entschlüsselung.
-
Zur Überprüfung der
Funktionsfähigkeit
der Speicherverschlüsselungsvorrichtung 14 wird
der Schlüssel
K verändert
beziehungsweise gesetzt. Ein Referenzwert SR wird aus dem Speicher 15 ausgelesen
und entschlüsselt.
Es wird überprüft, ob der
ausgelesene und entschlüsselte
Wert S1 mit einem vorgegebenen Wert R übereinstimmt. Wenn dieses nicht der
Fall ist, wird das Alarmsignal am Ausgang 31 der Testschaltung 3 ausgegeben.
In einem Ausführungsbeispiel
ist sowohl der Referenzwert SR als auch der vorgegebene Wert R eine
Bitsequenz.
-
In
einem Ausführungsbeispiel
ist der vorgegebene Wert R in der Testschaltung 3 gespeichert.
In einem Ausführungsbeispiel
wird der vorgegebene Wert aus dem Speicher 15 gelesen.
-
18 zeigt
ein weiteres Ausführungsbeispiel
mit einem Speicher 15 und der Speicherverschlüsselungsvorrichtung 14 mit
dem Mittel 141, um den Schlüssel K bereitzustellen. Die
Testschaltung 3 ist derart an das Mittel 141 gekoppelt,
dass der Schlüssel
K veränderbar
ist.
-
Zur Überprüfung der
Funktionsfähigkeit
der Speicherverschlüsselungsvorrichtung 14 wird
ein erster Schlüssel
K bereitgestellt. Ein von der Testschaltung 3 vorgegebener
Wert S1 wird durch die Speicherverschlüsselungsvorrichtung 14 verschlüsselt und
der verschlüsselte
Wert SR wird im Speicher 15 abgespeichert. Dann wird der
erste Schlüssel
K von der Testschaltung 3 verändert, sodass er einem zweiten
Schlüssel
entspricht. Der abgespeicherte Wert SR wird aus dem Speicher 15 ausgelesen. Wenn
sich der abzuspeichernde Wert S1 und der ausgelesene Wert S2 unterscheiden,
funktioniert die Speicherverschlüsselungsvorrichtung 14.
-
In
einem Ausführungsbeispiel
wird ein vorgegebener Wert für
den ausgelesenen Wert S2 in der Testschaltung abgespeichert und
es wird nicht nur überprüfbar, ob
sich der abzuspeichernde Wert S1 und der ausgelesene Wert S2 unterscheiden,
sondern auch, ob der ausgelesene Wert S2 mit dem vorgegebenen Wert übereinstimmt.
-
19 zeigt
ein weiteres Ausführungsbeispiel
einer Speicherverschlüsselungsvorrichtung 14, die
an einen Speicher 15 gekoppelt ist. Die Testschaltung 3 ist
an Schaltungsteile 101 der Speicherverschlüsselungsvorrichtung 14 gekoppelt.
In einem Ausführungsbeispiel
erfolgt die Kopplung über
eine Exklusiv-ODER-Verknüpfung.
In einem Ausführungsbeispiel
erfolgt die Kopplung über
eine Stuck-at-1-Vernüpfung
und/oder über
eine Stuck-at-0-Vernüpfung.
-
Zur Überprüfung der
Funktionsfähigkeit
der Speicherverschlüsselungsvorrichtung 14 wird
zunächst
ein Referenzwert SR aus dem Speicher 15 ausgelesen und
entschlüsselt.
Der erste ausgelesene Wert S1 wird der Testschaltung 3 übermittelt.
Danach werden die Schaltungsteile 101 in der Speicherverschlüsselungsvorrichtung 14 durch
die Testschaltung 3 verändert.
In einem Ausführungsbeispiel
werden Leitungen und/oder Potenzialknoten im Schaltungsteil 101 auf
einen anderen Zustandswert gesetzt.
-
Der
abgespeicherte Referenzwert SR wird nochmals ausgelesen und entschlüsselt. Der
zweite ausgelesene Wert S2 wird der Testschaltung 3 übermittelt.
Dann wird überprüft, ob der
zweite ausgelesene Wert S2 sich vom ersten ausgelesenen Wert S1 unterscheidet.
Wenn dieses der Fall ist, funktioniert die Speicherverschlüsselungsvorrichtung 14.
-
In
einem weiteren Ausführungsbeispiel
wird ein Wert in den Speicher 15 geschrieben und der gleiche
Wert bei veränderten
Zuständen
geschrieben. Die beiden Werte werden ausgelesen und verglichen.
Es sei bemerkt, dass entweder während
des Auslesevorgangs von der Testschaltung nicht in die logikschaltungsinternen
Verknüpfungen
eingegriffen werden darf oder in gleicher Weise während beider Auslesevorgänge die
logikschaltungsinternen Verknüpfungen
verändert
werden müssen.
-
Wenn
die beiden ausgelesenen Werte sich unterscheiden, funktioniert die
Speicherverschlüsselungsvorrichtung 14.
-
20 zeigt
ein weiteres Ausführungsbeispiel,
das sich vom vorherigen Ausführungsbeispiel dadurch
unterscheidet, dass die Schaltungsteile 101 überbrückbar sind,
was auch als Bypass der Speicherverschlüsselungsvorrichtung 14 bezeichnet
wird. Ein Ausführungsbeispiel
umfasst beispielsweise einen Schalter, mit dem Datenverarbeitung
in Schaltungsteilen 101 umgehbar ist. Bei einer solchen Überbrückung erfolgt
keine Verschlüsselung
beziehungsweise Entschlüsselung.
In einem Ausführungsbeispiel
wird lediglich ein Teil der Verschlüsselung beziehungsweise Entschlüsselung überbrückt, sodass
nur eine teilweise Verschlüsselung
beziehungsweise Entschlüsselung
erfolgt. Die Überbrückung wird
durch die Testschaltung 3 initiiert.
-
Die
Funktionsüberprüfung der
Schaltungsanordnung umfasst, dass ein im Speicher 15 abgespeicherter
Referenzwert SR verschlüsselt
ausgelesen wird und unverschlüsselt
ausgelesen wird. Wenn die beiden ausgelesenen Werte S1 und S2 sich
unterscheiden, funktioniert die Speicherverschlüsselungsvorrichtung.
-
Weitere
Ausführungsbeispiele
der Funktionsüberprüfung erfolgen
in entsprechender Weise wie in den zuvor geschilderten Ausführungsbeispielen.
Ein Ausführungsbeispiel
umfasst das zweimalige Auslesen – einmal mit und einmal ohne
Verschlüsselung – und Vergleichen
eines vorbekannten Speicherinhalts. Ein Ausführungsbeispiel umfasst das
zweimalige Schreiben – einmal
mit und einmal ohne Verschlüsselung – eines
Wertes und Vergleichen nach dessen Auslesen.
-
Es
sei bemerkt, dass Kombination der Merkmale in den Ausführungsbeispielen
und/oder deren sequenzielle Nutzung möglich ist.
-
21 zeigt
ein weiteres Ausführungsbeispiel,
in dem die Logikschaltung als Dekoder 16 einer CPU ausgebildet
ist. Der Dekoder 16 ist zwischen einem Speicher 14 und
einem Rechenwerk 17 gekoppelt. Der Dekoder 16 ist
ausgebildet im Speicher 14 bereitgestellte Befehlsdaten
BD in Steuerdaten SD umzuwandeln. Mit den Steuerdaten SD ist die
Abarbeitung eines Befehls BD im Rechenwerk 17 möglich. Die
Testschaltung 3 ist derart an Schaltungsteile 101 des
Dekoders 16 gekoppelt, dass diese veränderbar sind.
-
Es
ist zu Testzwecken vorgesehen, ein oder mehrere Fehler zu forcieren,
um die Dekoderfunktion zu überprüfen. In
einem Ausführungsbeispiel
wird der Fehler forciert, indem die Testschaltung über ein Kopplungselement
das Schaltungsteil 101 verändert. Die Veränderung
erfolgt in einem Ausführungsbeispiel über eine
Exklusiv-ODER-Verknüpfung.
Die Veränderung
erfolgt in einem Ausführungsbeispiel über eine
Stuck-at-0- oder eine Stuck-at-1-Verknüpfung. Die Veränderung
erfolgt in einem Ausführungsbeispiel über einen
Multiplexer.
-
Es
wird zunächst
ein Befehl BD aus dem Speicher 14 gelesen, welcher einer
Funktion des Rechenwerks entspricht. Diese Funktion wird ausgeführt und
von einem Programm kontrolliert. Beispielsweise kann vorgesehen
sein, zwei Werte zu addieren und mit einem Referenzwert zu vergleichen.
Danach verändert
die Testschaltung die Zustände
der Schaltungsteile 101 des Dekoders 16, sodass
in die Umwandlung der Befehlsdaten BD in die Steuerdaten SD eingegriffen
wird. Im Ausführungsbeispiel wird der
vorherige Befehl, der eine Addition umfasst hat, nunmehr als Subtraktion übersetzt.
Nach der Subtraktion der beiden Werte wird das Ergebnis mit dem Referenzwert
verglichen.
-
In
einem Ausführungsbeispiel
wird das Ergebnis der Addition S1 mit dem der Subtraktion S2 verglichen.
Wenn die Werte S1 und S2 übereinstimmen,
lässt dieses
auf einen Angriff schließen.
In einem Ausführungsbeispiel
erfolgt der Vergleich der Ergebnisse gegeneinander oder gegen einen
vorgegebenen Wert durch die Testschaltung 3.
-
Es
sei bemerkt, dass die Merkmale der Ausführungsbeispiele der Schaltungsanordnung
kombinierbar sind.
-
- 1
- Logikschaltung
- 2
- logikschaltungsinterne
Verknüpfung
- 3
- Testschaltung
- 4
- Alarmvorrichtung
- 5
- Schalter
- 6
- Kopplungselement
- 11
- Paritätsfehlererkennung
- 12
- Busleitung
- 14
- Speicherverschlüsselungsvorrichtung
- 15
- Speicher
- 16
- Dekoder
- 17
- Rechenwerk
- 19
- Fehlersignalausgang
- 31
- Testschaltungsausgang
- 91,
92
- erste,
zweite Leitung
- 93,
94
- Schaltungsbereich
- 96
- Fehlerdetektionsvorrichtung
- 95
- Forbidden-State-Detektor
- 101
- Schaltungsteil
- 102
- Speichereinheit
- 103
- Steuervorrichtung
- 105
- Schlüsselrechenwerk
- 106
- Multiplexer
- 107
- Datenknoten
- 108
- S-Box
- 141
- Mittel
zur Bereitstellung eines Schlüssels
- 110,
120, 130,
-
- 140,
150, 160,
-
- 170,
180, 190,
-
- 200,
210
- Verfahrensschritte
- A
- Alarmsignal
- BD
- Befehlsdaten
- E1,
E2, E3
- Eingangsdaten
- K
- Schlüssel
- R
- vorgegebener
Wert
- S
- Ausgangsdaten
- S1,
S2
- Werte
- SD
- Steuerdaten
- SR
- Referenzwert
- T
- Testsignal
- V
- Fehlersignal