-
Die vorliegende Erfindung bezieht
sich allgemein auf Schaltungen aller Art und insbesondere auf die
Sicherung dieser Schaltungen gegen ein Ausspionieren, wie z.B. das
Sichern von Chipkarten gegen Ausspionieren mittels beispielsweise
DFA-Attacken (DFA
= differential fault attack).
-
In komplexen Logikschaltkreisen,
wie z.B. Mikroprozessoren und Mikrocontrollern, werden in zunehmendem
Maße Online-Self-Checking-Methoden
(OSC; Online-Selbstüberprüfung), wie
z.B. built in self-checking-Methoden (BISC; BISC = Eingebaute-Selbstüberprüfung) und
concurrent-error-detection-Methoden (CED; CED = Mitlaufende Fehler-Erfassung),
implementiert. Dies liegt zum einen daran, daß bei hohen Gatterzahlen interne
Komponenten wegen des wachsenden Gatter/Pin-Verhältnisses nur noch unter hohem
Aufwand, wie z.B. mit einer hohen Testzeit, getestet werden können, zumal
die Struktur- bzw. Patterngrößen stark
anwachsen. Dies gilt insbesondere auch für Chipkarten, wo im allgemeinen
nur ein oder zwei Pin mit geringer Datenübertragungsrate zur Verfügung stehen.
-
Eine bereits häufig existierende Form der Funktionsüberprüfung besteht
in einem sogenannten BIST (built-in self test = eingebauter Selbsttest).
Eine im zu testenden Schaltkreis integrierte Testschaltung überprüft die Funktionsfähigkeit
des Schaltkreises durch Anlegen geeigneter Testmuster am Eingang des
Schaltkreises und Überprüfen der
Ausgabe des Schaltkreises anhand einer Wahrheitstabelle oder dergleichen.
Die BIST-Schaltung
wird nur einmal, nämlich
unmittelbar nach Fertigstellung der zu testenden Schaltung ausgeführt und
nimmt ansonsten lediglich Chipfläche
ein. BIST-Schaltungen können nur
permanente Fehler erkennen und gehören somit zu den sogenannten
Offline-Tests.
-
Aufgrund der zunehmenden Häufigkeit
von transienten Fehlern, d.h. Fehlern, die während des Betriebs der Schaltung
auftreten, sind heutzutage mehr Online-Tests für die Überprüfung von Schaltkreisen notwendig.
Die Häufigkeit
solcher transienten Fehler während
des Betriebs wächst
bereits enorm durch die immer kleiner werdenden Strukturbreiten, durch
die sinkenden Spannungen und die wachsende Komplexität und, damit
verbunden, durch die Empfindlichkeit gegen ionisierende Strahlung,
wie z.B. Neutronen- und Alpha-Strahlung, Störimpulse (glitches), Übersprechen
(cross talk), Verzögerungen (delays),
usw. Bei Sicherheitsanwendungen bzw. Sicherheitsapplikationen, wie
z.B. Chipkartencontrollern oder Trusted-Platform-Module (TPM; Sicherheitsplattformmodul),
kommen bewußt
herbeigeführte
Störungen
und Manipulationen bei Angriffen, wie z.B. DFA-Angriffen, hinzu,
wie z.B. elektrische Spikes bzw. elektrische Spannungsspitzen, Spannungsvariation,
Temperaturvariation, Lichteinstrahlung, Forcing, bzw. Krafteinfluß, FIB (FIB
= Focused Ion Beam = Fokussierte Ionenstrahlung) usw. Ziel dieser
Angriffe ist es, den Schaltkreis in einen Zustand zu bringen, bei
dem derselbe fehlerhaft arbeitet, so daß es ermöglicht wird, anhand beispielsweise
fehlerhafter Ausgaben des Schaltkreises geheime Informationen auszulesen
oder verbotene Transaktionen durchzuführen oder einen geheimen Schlüssel zu
eruieren.
-
Verfahren, die ein vollständiges Selbsttesten mit
der TSC-Eigenschaft
(TSC = totally self-checking = vollständige Selbstüberprüfung) während des
Betriebes ermöglichen,
sind beispielsweise aus „Online Check
and Recovery Techniques for Dependable Embedded Processors" in IEEE Micro, Bd.
21, Nr. 5, S. 24, 2001, von M. Pflanz, H.T. Vierhaus und „An SFS
Berger Check Prediction ALU an Its Application to Self-Checking
Processor Designs",
IEEE Trans. Comp. Design, Bd. 11, Nr. 4, S. 525, 1992, von J.-C. Lo,
S. Thanawastien, T.R.N. Rao, M. Nicolaidis bekannt. Die Überprüfung während des
Betriebes wird ermöglicht,
indem dem zu prüfenden
Schaltungsteil ein weite rer hinzugefügt wird, der dafür sorgt,
daß die Eingangs-
und Ausgangsdaten der kombinierten Schaltung auf eine vorbestimmte
Weise voneinander abhängen,
so daß das
tatsächliche
Ergebnis der zu überprüfenden Schaltung
mit einem. Vorhersageergebnis verglichen werden kann, das basierend
auf den Eingangsdaten erhalten wird. Diese Selbsttest-Verfahren
sind aber mit einem signifikanten Hardwareaufwand verbunden. Eine
Anwendung eines dieser Selbsttest-Verfahren bei Chipkarten ist somit
aufgrund der geringen zur Verfügung
stehenden Chipfläche,
der immensen Größe der Rechenoperanden
von beispielsweise 1024 Bit bei einem Kryptocoprozessor verglichen
zu 32 oder 64 bei einem heutigen Mikroprozessor, und der begrenzten
zur Verfügung
stehenden Energie bei beispielsweise Kontaktloschipkarten, nahezu
ausgeschlossen.
-
Bisherige Lösungen zum Schutz von Chipkarten
vor DFA-Angriffen
sahen deshalb anstelle einer TSC-Schaltung zum Erkennen der Auswirkungen der
Angriffe, nämlich
des funktionalen Fehlverhaltens, Sensoren zum Erfassen der von außen kommenden
Beeinflussungen auf die Chipkarte, um dieselbe zu Fehlern zu veranlassen,
vor, wie z.B. einen Sensor zum Erkennen einer Spannungsvariation, eine
die Schaltung schützend
umgebende meanderförmige
Leiterbahn in einer oberen Metallebene zur Erfassung von Temperaturvariation,
elektromagnetischer Einstrahlung, mechanischen Spannungen usw. Ein
Nachteil an der bisherigen Vorgehensweise zur Erfassung von DFA-Angriffen
besteht darin, daß die Sensoren
nicht das erfassen, was tatsächlich
von Interesse ist, nämlich
ob die Schaltung in einen Zustand versetzt worden ist, in der sie
fehlerhaft arbeitet, oder nicht. Die Sensoren definieren lediglich
einen abschließenden
Katalog von Chipbeeinflussungen, die durch die Sensoren erfaßt werden
können. Mögliche weitere
Chipbeeinflussungen, die die Schaltung ebenfalls in einen fehlerhaft
arbeitenden Zustand versetzen, führen
somit zum Erfolg, da sie nicht erfaßt werden.
-
Die Aufgabe der vorliegenden Erfindung
besteht darin, eine Schaltung mit Schutz vor Ausspionieren derselben
sowie ein Verfahren zum Betreiben derselben zu schaffen, die die
Sicherheit erhöhen und/oder
den Hardwareaufwand der Schaltung verringern.
-
Diese Aufgabe wird durch eine Schaltung
gemäß Anspruch
1 und ein Verfahren gemäß Anspruch 14
gelöst.
-
Die Erkenntnis der vorliegenden Erfindung besteht
darin, daß das
Online-Self-Checking zum Schutz von Schaltungen gegen Manipulation
bzw. gegen hierauf beruhendes Ausspionieren mit vertretbarem und,
in der Gesamtbetrachtung, sogar geringerem Aufwand verwendet werden
kann, wenn man die strenge TSC-Eigenschaft
aufgibt, nämlich
die 100%-ige Überprüfbarkeit
der Richtigkeit der Ergebnisse der zu überprüfenden Schaltung, wie z.B.
eines Addierers, ohne Unterbrechung des normalen Betriebs durch
Anfügen
eines Schaltungsteils, der die korrekten Ausgangsdaten aus den Eingangsdaten der
kombinierten Schaltung vorhersagen läßt. Erfindungsgemäß wird eine
zu testende Schaltung mit einer Überwachungseinrichtung
versehen, die eine Testphase durchführt, in der das Zwischenergebnis in
den Zwischenspeichern der zu schützenden Schaltung,
das eine Recheneinheit der zu testenden Schaltung im Betrieb in
dieselben schreibt, gesichert wird, ein Testmuster in die Zwischenspeicher
geladen wird, ein Inhalt der Zwischenspeicher ausgelesen wird, und
der ausgelesene Inhalt auf einen Fehler hin überprüft wird, wobei ein Alarmsignal
ausgelöst
wird, falls sich bei der Überprüfung ein
Fehler ergibt. Eine Maßnahmeeinrichtung
ergreift ansprechend auf das Alarmsignal eine Maßnahme gegen ein Ausspionieren
der Schaltung, wie z.B. ein Ausschalten der Schaltung oder ein Verhindern
jeglicher Ausgabe der Schaltung bis hin zum Zerstören jeglicher
schützenswerter
Daten auf der Schaltung.
-
Das Sichern des Zwischenergebnisses
ermöglicht
die Restauration des Zwischenergebnisses in dem Zwischenspeicher
vor dem normalen Fortgang des Betriebs der Schaltung nach der Testphase in
dem Fall, daß sich
bei der Überprüfung kein
Fehler ergeben hat, was ja auf das Nichtvorliegen eines Angriffes
rückschließen läßt. Da durch
das Sichern des Zwischenergebnisses die Recheneinheit ihren Betrieb
nach der Testphase ohne weiteres fortsetzen kann, können Testphasen
in jeglichem Zeitintervall aktiviert werden. Mehrmalige Testmuster-Überprüfungsvorgänge können während einer Testphase mit unterschiedlichen
Testmustern durchgeführt
werden, um den Grad an Fehlererkennung und damit Sicherheit gegen
physikalische Angriffe bzw. Manipulationen zu erhöhen.
-
Wird zwischen dem Laden des Testmusters in
die Zwischenspeicher und dem Auslesen des Inhalts der Zwischenspeicher
durch die Überwachungseinrichtung
die Recheneinheit zur Erzeugung eines weiteren Zwischenergebnisses
aus dem Testmuster aktiviert, so kann bei der Überprüfung anhand beispielsweise
einer Wahrheitstabelle oder dergleichen die Funktionstüchtigkeit
der Schaltung überprüft werden.
Ohne Aktivierung der Recheneinheit zwischen Laden des Testmusters
und Auslesen des Zwischenspeicherinhalts kann durch Überprüfung der Übereinstimmung
zwischen ausgelesenem Inhalt und geladenem Testmuster zumindest
die Funktionalität
der Zwischenspeicher überprüft werden,
deren Fehlfunktion ja ebenfalls zu einem fehlerhaften Endergebnis
der Recheneinheit führen
würde.
-
Bevorzugte Ausführungsbeispiele der vorliegenden
Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden
Zeichnungen näher
erläutert.
Es zeigen:
-
1 ein
vereinfachtes Blockschaltbild einer Schaltung gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung;
-
2 die
Verschaltung der Zwischenspeicher untereinander und mit der zu überwachenden Logik
der Schaltung von 1 auf
detailliertere Weise;
-
3 ein
Ablaufdiagramm, das die Funktionsweise der Überwachungseinrichtung der
Schaltung von 1 gemäß einem
Ausführungsbeispiel der
vorliegenden Erfindung zeigt; und
-
4 einen
Volladdierer als Beispiel für
eine zu überwachende
Logik.
-
1 zeigt
eine Schaltung mit Schutz vor Manipulieren derselben, die allgemein
mit 10 angezeigt ist. Die Schaltung 10 umfaßt eine
Recheneinheit 12 oder, wie sie im folgenden bezeichnet
wird, eine kombinatorische Logik 12. Die kombinatorische Logik 12 ist
mit n Zwischenspeichern 14 verbunden, wobei dieselben in 1 exemplarisch mit 1,
2,..., n numeriert sind. Die Zwischenspeicher 14 sind
nicht nur mit den Ein/Ausgängen
der Logik 12 verbunden sondern sind ferner zu einer Scankette 16 hintereinander
geschaltet, wobei die Reihenfolge, in der dieselben zu der Scankette 16 zusammengeschaltet sind,
der Numerierung entspricht.
-
Die Schaltung 10 umfaßt ferner
eine Überwachungseinrichtung 18 sowie
m Extrazellen 20, die ebenfalls mit 1,..., m numeriert
sein. Scankette 16, Überwachungseinrichtung 18 und
Extrazellen 20 sind hintereinander geschaltet, um einen
geschlossenen Ring 22 zu bilden. Wie es im folgenden noch näher erläutert werden
wird, wird der Ring 22 durch die Überwachungseinrichtung 18 in
einer Schieberichtung 24 betrieben, um die gespeicherten
Daten bzw. Bits in den Zwischenspeichern 14 bzw. den Extrazellen 20 in
Schiebevorgängen
in Schieberichtung 24 zyklisch von Zelle zu Zelle zu schieben.
In Schieberichtung 24 gesehen, ist die Überwachungseinrichtung 18 zwischen
dem Ausgang der Scankette 16 und den Extrazellen 20 angeordnet,
und die Extrazellen 20 sind zwischen Überwachungseinrichtung 18 und
einem Eingang der Scankette 16 angeordnet. Ein Ausgang
der Überwachungseinrichtung 18,
an welchem dieselbe ein Alarmsignal ausgeben kann, ist mit einer Maßnahmeeinrichtung 26 der
Schaltung 10 verbunden, deren Aufgabe, wie im folgenden
beschrieben wird, darin besteht, Maßnahmen gegen potentielle Angriffe
zu unternehmen, in dem Fall, daß die Überwachungseinrichtung 18 das
Alarmsignal ausgibt.
-
Bevor Bezug nehmend auf 3 die Funktionsweise der
Schaltung von 1 erläutert wird, wird
anhand von 2 die Verschaltung
der Speicherzellen 14 zu der Scankette 16, sowie
die Verschaltung derselben mit der Logik 12 näher erläutert. 2 zeigt exemplarisch sechs
der Speicherzellen 14, die mit 1, 2, 3, 4, 5 und
n numeriert sind und durch das Bezugszeichen 14 mit der
Nummer als Index angezeigt werden. 2 zeigt
ferner die kombinatorische Logik 12. Die Zwischenspeicher 14 sind
als umschaltbare Flip-Flop-Zellen ausgeführt, wie es im folgenden detaillierter
beschrieben wird. Jeder Zwischenspeicher 14 umfaßt zwei
Eingänge
und zwei Ausgänge.
Jeder Eingang ist dadurch angezeigt, daß die jeweilige Verbindungslinie
an der Speicherzelle 14 eine Pfeilspitze aufweist. Verbindungslinien
an einem Ausgang einer Speicherzelle 14 fußen an dieser Speicherzelle 14 lediglich.
-
Jeweils ein erster Eingang jedes
Zwischenspeichers 14 ist mit einem Ausgang der Logik 12 sowie
mit einem ersten Ausgang derjeniger Speicherzelle verbunden, die
einen um 1 niedrigeren Index aufweist. Der erste Eingang
des Zwischenspeichers 141 ist,
wie es aus 1 hervorgeht,
mit dem Ausgang der Extrazelle 20m und der
erste Ausgang des Zwischenspeichers 14n mit einem Eingang
der Überwachungseinrichtung 18 verbunden.
Der zweite Ausgang jedes Zwischenspeichers 14 ist mit einem
Eingang der Logik 12 verbunden. Ein zweiter Eingang jedes
Zwischenspeichers 14 erhält das ein und dasselbe Signal,
nämlich
eines, welches von der Überwachungseinrichtung 18 erzeugt
wird und angibt, ob eine Testphase vorliegt oder ein normaler Betriebszustand.
-
Die Funktionsweise der Zwischenspeicher 14 ist
derart, daß,
wenn das Testphase-Signal anzeigt, daß eine Testphase der Schaltung 10 vorliegt, ansprechend
auf die Ankunft eines zu speichernden Bits am ersten Eingang das
derzeitig gespeicherte Bit an dem ersten Ausgang an den jeweils
nächsten
Zwischenspeicher mit um 1 höherem Index ausgegeben wird,
um das ankommende Bit zu speichern. Zeigt das Testphase-Signal von
der Überwachungseinrichtung 18 an,
daß keine
Testphase vorliegt, wird ansprechend auf die Ankunft eines zu speichernden Bits
am ersten Eingang das aktuell gespeicherte Bit an dem zweiten Ausgang
an die Logik 12 ausgegeben, die diese Bits in einem nächsten Arbeitszyklus als
Eingangsdaten zur weiteren Verarbeitung verwendet, um am Ende des
Zyklus ein neues Zwischenergebnis in Form von Bits über die
ersten Eingänge
in die Zwischenspeicher 14 zu speichern.
-
Anhand von 3 und unter zusätzlicher Bezugnahme auf 1 und 2 wird nun im folgenden die Funktionsweise
der Schaltung 10 im Hinblick auf den Schutz vor einem Manipulieren
der Schaltung 10 beschrieben, wobei im folgenden exemplarisch
davon ausgegangen wird, daß es
sich bei der Schaltung 20 um einen Chip einer Chipkarte handelt.
Die Aufgabe der Überwachungseinrichtung 18 besteht
darin, intermittierend im Rahmen von Testphasen die Logik 12 auf
ihre Fehlerfreiheit hin zu überprüfen, und
in dem Fall eines erfaßten
Fehlers in der Annahme, daß der
Fehler aus einem physikalischen Angriff von außen bzw. einer Manipulation
im Rahmen eines DFA-Angriffs herrührt, ein Alarmsignal an die
Manipulationseinrichtung 26 auszugeben, die ansprechend
hierauf ihrerseits wiederum Maßnahmen
gegen den vermuteten Angriff ergreift, um das vermutete Ausspähen zu vereiteln.
-
Zunächst erzeugt in einem Schritt
50 die Überwachungseinrichtung 18 ein
geeignetes Testmuster, d.h. ein Testbitmuster der Länge m, und
zwar beispielsweise pseudozufällig
oder auf deterministische Weise durch Optimierung, z.B. nach ATPG
(ATPG = Automated Test Pattern Generation = automatisierte Testmu stererzeugung).
Die deterministische Bestimmung kann vorab, beispielsweise bei Chip-Entwurf,
durchgeführt
worden sein, um eine Liste von Testmustern zu erzeugen, wobei in
Schritt 50 lediglich das nächste
Testmuster aus der Liste ausgewählt
wird. Da das Testmuster wie im folgenden noch erläutert dazu
vorgesehen ist, die Logik 12 auf ihre Funktionsfähigkeit
hin zu überprüfen, kann
das Testmuster derart ausgelegt sein, daß es zusammen mit den davor
und danach noch verwendeten Testmustern in der Liste mit einer möglichst
geringen Anzahl von Testmustern möglichst viele der Logikgatter oder
sonstigen Bestandteile der kombinatorischen Logik 12 überprüft.
-
In einem Schritt 52 lädt die Überwachungseinrichtung 18 die
Extrazellen 20 mit dem in Schritt 50 erzeugten Testmuster.
Hierzu verwendet die Überwachungseinrichtung 18 beispielsweise
eine in 1 nicht gezeigte
direkte Verbindung mit jeder der Extrazellen 20.
-
Während
der Schritte 50 und 52 kann die kombinatorische Logik 12 ihre
Arbeit, wie z.B. eine kryptographische Berechnung, eine Kommunikation mit
einem Terminal der Chipkarte, usw., ungehindert fortsetzen, indem
dieselbe in aufeinanderfolgenden Zyklen arbeitend Zwischenergebnisse
in die Zwischenspeicher 14 lädt, um dieselben beim nächsten Zyklus
auszulesen, zu verarbeiten und das sich wiederum neu ergebende Zwischenergebnis
wieder in die Zwischenspeicher 14 zu speichern, usw. Hierbei ist
es für
die nachfolgende Beschreibung des vorliegenden Ausführungsbeispiels
unerheblich, ob die Logik synchron oder asynchron arbeitet.
-
Zu einem geeigneten Zeitpunkt wird
jedoch der normale Betrieb der Logik 12 durch die Überwachungseinrichtung 18 zugunsten
einer Testphase unterbrochen (Schritt 54). Hierzu trennt beispielsweise die Überwachungseinrichtung 18 die
Logik 12 von der Versorgungsspannung oder gibt ein Leerlauf-Signal
an die Logik 12 aus. Der Zeitpunkt bestimmt sich entweder
basierend auf einem Taktsignal von beispielsweise einem mit der
Chip karte 10 kommunizierenden Terminal, so daß die Testphasen
zeitlich äquidistant
nach einer vorbestimmten Anzahl an Taktzyklen durchgeführt werden,
oder ist beispielsweise durch die Programmierung der Chipkarte 10 an
speziellen Phasen einer Transaktion mit einem Terminal, wie z.B.
an Wartezeiten auf eine Antwort von dem Terminal, vorgesehen. Bevorzugt
sind hierbei im letztgenannten Fall insbesondere Phasen, an denen die
Logik ohnehin nicht ausgelastet ist, wie z.B. während der erwähnten Wartezeit
oder der Programmierung eines Flash-Speichers oder dergleichen.
-
Nach der Unterbrechung 54 befinden
sich in den Zwischenspeichern 14 Bits, die das aktuelle
Zwischenergebnis der Logik 12 darstellen. Wie es aus der
folgenden Beschreibung deutlich werden wird, erfüllen die Extrazellen 20 neben
ihrer Funktion der Einspeisung des Testmusters in die Scankette 16 ferner
die Funktion der Speicherung zumindest eines relevanten Teils des
aktuellen Zwischenergebnisses.
-
In einem Schritt 56 bewirkt dann
die Überwachungseinrichtung 18 n
(n ϵ IN) Schiebevorgänge
in dem Ring 22 in Schieberichtung 24, so daß die Bits in
den Speicherzellen 14 und den Extrazellen 20 um jeweils
n Zellen in Schieberichtung 24 versetzt werden, so daß sich beispielsweise
das Bit in der Speicherzelle 141 nach
dem Schritt 56 in der Extrazelle 201 befindet.
Bei jedem Schiebevorgang läßt die Überwachungseinrichtung 18 das
Bit von der Speicherzelle 141 zu
der Extrazelle 201 durch.
-
In dem Fall, daß n = m, befindet sich das
aktuelle Zwischenergebnis der Logik 12 nach dem Schritt
56 vollständig
in den Extrazellen 20. Dies gilt auch für den Fall n < m. In dem Fall,
daß m < n, befinden sich
nach dem Schritt 56 die Bits m+1, m+2,..., n des aktuellen Zwischenergebnis
in den Zwischenspeichern 141 bis
14n–m.
In diesem Fall ist durch geeignete Auswahl der Reihenfolge der Hintereinanderschaltung
der Zwischenspeicher 14 und/oder durch geeignete Auswahl
des Testmusters dafür
Sorge zu tragen, daß entweder
deren Inhalt im Rahmen des anschließend durchgeführten Testzyklus
nicht überschrieben
wird, oder daß ein Überschreiben
des Inhalts dieser Speicherzellen für den Betrieb der Logik 12 nach
dem Testzyklus keine Auswirkung hat. Nach dem Schritt 56 sind jedoch
zumindest Teile der Zwischenspeicher 14 mit Testmusterbits
belegt bzw. geladen.
-
In einem Schritt 58 aktiviert die Überwachungseinrichtung 18 die
Logik 12 zur Durchführung eines
Testzyklus, d.h. für
die Dauer eines Zyklus, in welchem die Logik 12 basierend
auf dem aktuellen Inhalt der Zwischenspeicher 14 ein neues
Zwischenergebnis berechnet und in die Zwischenspeicher 14 einträgt. Im Anschluß daran
bewirkt die Überwachungseinrichtung 18 in
einem Schritt 60 ein m-faches Schieben der Bits in dem Ring 22 in
Schieberichtung 24, wobei sie zugleich den Wert jedes Bits, das
von dem Zwischenspeicher 14n an die Extrazelle 201 weitergeleitet wird, erfaßt. Nach
den n + m Schiebvorgängen
in den Schritten 56 und 60 ist der Ausgangszustand wieder hergestellt,
der bei Beginn des Testzyklus in Schritt 54 vorlag.
-
Anhand der erfaßten Bits, die den Inhalt der Speicherzellen 14 bzw.
14n–m +
1 – 14n nach dem Testzyklus darstellen, überprüft die Überwachungseinrichtung 18 in
einem Schritt 62, ob die Logik 12 korrekt arbeitet bzw.
fehlerhaft arbeitet. Hierzu umfaßt die Überwachungseinrichtung 18 beispielsweise eine
Nachschlagtabelle, in der zu jedem möglichen Testmuster, welches
in dem Schritt 50 erzeugt werden kann, das zugehörige Sollergebnis gespeichert ist,
welches die Logik 12 in einem fehlerfrei arbeitenden Zustand
nach einem Zyklus mit dem Testmuster als Eingangsdaten ausgeben
würde.
Ergibt die Überprüfung keinen
Fehler, gibt die Überwachungseinrichtung 18 kein
Aktivierungssignal an die Maßnahmeeinrichtung 26 aus,
sondern hebt in einem Schritt 64 die Unterbrechung der Logik 12 wieder
auf, um dieselbe zur Weiterverarbeitung des sich wieder in den Speicherzellen 14 befindenden
Zwischenergebnisses zu aktivieren.
-
Ergibt sich jedoch bei der Überprüfung durch die Überwachungseinrichtung 18 in
Schritt 62 eine fehlerhafte Funktionsweise, so gibt die Überwachungseinrichtung 18 das
Alarmsignal an die Maßnahmeeinrichtung 26 aus,
die in einem Schritt 66 eine Maßnahme
gegen einen vermuteten DFA-Angriff ausführt. Eine solche Maßnahme umfaßt beispielsweise
das Ausschalten der gesamten Schaltung 10, das Verhindern,
daß die
Schaltung 10 nach außen
hin Daten ausgibt, aus denen der potentielle Angreifer Rückschlüsse auf
einen Kryptoschlüssel ziehen
könnte,
und/oder das Vernichten von geheimen Daten auf der Chipkarte 10,
wie z.B. eines Kryptoschlüssels,
eines Guthabens, einer PIN oder dergleichen.
-
Bei der vorhergehenden Beschreibung
ist lediglich vereinfachend davon ausgegangen worden, daß unter
Verwendung der Zwischenspeicher 14 die gesamte Schaltung
vor Angriffen geschützt
wird. Zu groß und
komplex ist jedoch der gesamte Logikaufbau einer Chipkarte. Zur
Realisierung des Ausführungsbeispiels
von 1–3 wird deshalb bevorzugt, wenn
die zu schützende
Schaltung mehrere Scanketten 16 der Länge Li mit
i = 1...N aufweist, die durch extra Flip-Flop-Zellen 20 der
Länge Lm erweitert und zu Ringen geschlossen werden,
wie es in 1 exemplarisch
für eine
Scankette bezüglich
einer Logik gezeigt wurde. Jeder solcher Ring 22 wäre dann
zur Überprüfung desjenigen
Teils der Schaltung 10 vorgesehen, der geeignet ist, zum
Zwischenergebnis in den jeweiligen Zwischenspeichern 14 dieses
Rings 22 beizutragen, und deckte somit einen gewissen Teil der
Schaltung 10 flächenhaft
ab. Jede solche Ringeinheit wirkte folglich als ein Sensor gegen
physikalische Angriffe und Manipulationen bezüglich seines Schaltungsteils,
wobei alle Ringeinheiten zusammen einen mächtigen Sensor gegen physikalische
Angriffe darstellten, der die Eigenschaft besitzt, daß die Integrität flächendec kend,
d.h. über
die ganze Fläche der
Schaltung 10, überprüft wird.
-
Zudem wurde bei der Beschreibung
von 3 lediglich die
Verwendung eines Testmusters beschrieben. Freilich wird durch dieses
Testmuster häufig
lediglich ein Teil aller im Testzyklus zum Ergebnis beitragenden
Logikgatter der Logik 12 sicher getestet. Es ist deshalb
bevorzugt, daß die Überwachungseinrichtung 18 mit
der Erzeugung des Testmusters in Schritt 50 unterschiedliche Testmuster
erzeugt, um die Schaltung 10 in einem gewissen Zeitraum
mit einem Satz von unterschiedlichen Testmustern zu testen. Dies
kann entweder im Rahmen einer Testphase durch Wiederholen der Schritte
56, 58, 60 und 62 mit unterschiedlichen Testmustern oder in aufeinanderfolgenden
Testphasen mit dazwischen angeordneten Normalarbeitsphasen der Logik 12 erfolgen.
Durch geeignete Auswahl der Testmuster und Optimierung derselben
kann auf diese Weise mit relativ wenig Testmustern ein Großteil der
Schaltung 10 auf einen Fehler hin überprüft werden, wodurch äußere Manipulationen
an der Chipkarte durch einen DFA-Angreifer wirksam vermieden werden.
-
Als Beispiel für einen Teil der zu überwachenden
Logik 12 ist in 4 ein Volladdierer 70 gezeigt.
Er umfaßt
die Eingänge
a, b, c0 und die Ausgänge c1 und
s1. Die Funktionsweise des Volladdierers 70 kann
der Wahrheitstabelle in Tabelle 1 entnommen werden, in der in den
linken drei Spalten 1 bis 3 alle möglichen
8 Bitkombinationen für
die Eingangswerte a, b, c0 gezeigt sind,
während
in den rechten Spalten 4 und 5 die sich ergebenden
Bitwerte an den Ausgängen
c1 und s1 gezeigt
sind.
-
-
Die Eingänge a, b, und c0 sind
exemplarisch mit jeweils dem zweiten Ausgang des Zwischenspeichers 141 , 142 und 143 verbunden, während die Ausgänge c1 und s1 des Volladdierers 70 mit
dem ersten Eingang der Zwischenspeicher 144 bzw. 145 verbunden sind. Weiß demnach
die Überwachungseinrichtung 18 aufgrund
des Testmusters nach dem Schritt 56, welche Bitwerte sich in den
Zwischenspeichern 141 , 142 und 143 befinden,
so kann sie unter Verwendung der entsprechenden Zeile als Index
für den
Inhalt der Spalten 1 bis 3 durch Zugriff auf die
Wahrheitstabelle, insbesondere Spalten 4 und 5,
die Inhalte in den Zwischenspeichern 144 und 145 für
den Fall vorhersagen, daß der
Volladdierer 70 korrekt funktioniert. Ergibt der Vergleich
der tatsächlichen
Inhalte dieser Zwischenspeicher 144 und 145 in dem Schritt 62 eine Abweichung
von den vorhergesagten Werten, so ist ein Angriff mit einer Beeinflussung
der Schaltung von außen,
wie z.B. ein stuck-at-1 bzw. ein Festhalten auf Eins eines internen
Logikelements in dem Addierer, anzunehmen, und die Überwachungseinrichtung
gibt ein Alarmsignal aus, wie es im vorhergehenden beschrieben worden
ist.
-
Die im vorhergehenden Bezug nehmend
auf die 1–4 beschriebenen Ausführungsbeispiele stellen folglich
eine Schaltung mit OSC-Eigenschaft zur signifikanten Fehlererkennung
dar. Im Prinzip kann jede Schaltung auf die im vorhergehenden beschriebene
Weise mit einer OSC-Eigenschaft versehen werden. In dem Fall, daß die Schaltung
bereits eine BIST-Logik besitzt, d.h. eine Logik zur einmaligen
Prüfung
der Funktionsfähigkeit
der Schaltung im Rahmen des Herstellungsprozesses durch Anlegen bekannter
Testmuster und Vergleichen des Ergebnisses mit vorbekannten Sollausgangswerten
aus einer Wahrheitstabelle, kann auf diese vorhandene BIST-Logik
zurückgegriffen
werden, um dieselbe geeignet zu modifizieren, nämlich beispielsweise um die
Zwischenspeicher, die Extrazellen, den Ringschluß, und den durch die Überwachungseinrichtung gesteuerten
Ablauf von 3. Die OSC-Eigenschaft wird
dadurch erzielt, daß ein
Online-Selbsttest (OST) in periodischen Abständen aktiviert wird. Die entstehende
Schaltung von 1 kann
hierbei sowohl als Produktionstest unmittelbar bei Herstellung der Schaltung 10 als
auch, wie beschrieben, als CED- bzw.
BISC-Einheit verwendet werden, so daß sich quasi eine Schaltung
mit periodischer OSC-Eigenschaft ergibt. Die Kombination aus Zwischenspeichern, Überwachungseinrichtung
und Extrazellen stellt einen mächtigen
Sensor gegen physikalische Angriffe und Manipulationen dar, der
die Eigenschaft besitzt, daß die
Integrität
flächendeckend,
d.h. über die
ganze Fläche
der Schaltung überprüft werden kann.
Hierbei kann Online-Self-Checking
als eine kostengünstige
Alternative zu einem aktiven Shield bzw. Schutz gelten, der beispielsweise
eine meanderförmige
Leiterbahn umfaßt,
wodurch eine Metallebene eingespart werden könnte.
-
Prozessoren im allgemeinen, insbesondere aber
Chipkarten oder TPM haben eine vergleichsweise geringe Grundlast.
Deshalb könnten
Leerlaufperioden bzw. Leerlaufzyklen für die im vorhergehenden beschriebenen
Testphasen genutzt werden, ohne zu wesentlichen Leistungseinbußen zu führen. Bei Chipkarten
könnten
die Testphasen während
einer NVM- (Non Volatile Memory) Programmierung, einer Coprozessorverarbeitung
oder der Wartezeit auf eine Transaktion durchgeführt werden. Die Testphase könnte beispielsweise
auch nach jeden Sleep-Zustand der Schaltung, wie z.B. einem Taktstop
(clock-stop) oder einem Versorgungsabschaltvorgang (supply shut-down)
aktiviert werden, um die Integrität des aktiven Operationszustands
bzw. des darauffolgenden Operationszyklus zu gewährleisten.
-
Es sei darauf hingewiesen, daß die Dauer der
Testphase und die Testabdeckung, d.h. die durch die Testphase überprüften Logikelemente,
durch die Wahl von n, m und des Testmusters geeignet eingestellt
werden können.
Eine Erhöhung
der Testabdeckung, wie z.B. beim Produktionstest, wird, wie oben beschrieben,
beispielsweise durch K-faches Schieben, mit k x (n+m), k = 1 ...
K, mit wechselnden Testmustern erreicht. In einer Online-Testphase
kann K entsprechend der zur Verfügung
stehenden Zeit dynamisch eingestellt werden.
-
Bezug nehmend auf die vorhergehenden
detaillierte Beschreibung wird darauf hingewiesen, daß es nicht
notwendig ist, zum Schutz der Schaltung 10 vor einem Ausspionieren
die Logik für
einen Testzyklus zu aktivieren. Ein Testmuster der Bitlänge 2 von beispielsweise „01" könnte beispielsweise
dazu verwendet werden, einen stuck-at-1 bzw. stuck-at-0 (Feststecken-auf-1
bzw. Feststecken-auf-0) eines der Zwischenspeicher festzustellen,
indem die Überwachungseinrichtung
in Schritt 62 feststellt, ob ein Übergang von 0 auf 1 bei den
die Überwachungseinrichtung 18 durchlaufenden
Bits in dem Schritt 60 auftritt.
-
Ferner ist die vorliegende Erfindung
nicht nur bei Chipkarten oder TPMs anwendbar, sondern bei Schaltungen
jeglicher Art.
-
Entgegen der vorhergehenden Beschreibung
ist es nicht notwendig, daß die
Zwischenspeicher zu einem Ring geschlossen werden. Vielmehr wäre es möglich, das
Zwischenergebnis der Logik 12 mittels der Scankette am
Beginn der Testphase auszulesen und an einem hierfür extra
vorgesehenen Speicher vorübergehend
zu sichern, bis am Ende der Testphase das Zwischenergebnis wieder
in den Zwischenspeichern restauriert bzw. über die Scankette eingetaktet
werden soll. Freilich ermöglicht
das Schließen
der Scankette zu einem Ring das gleichzeitige Auslesen des aktuellen
Inhalts der Zwischenspeicher sowie das Laden derselben mit dem Testmuster
und schafft inhärent
einen Puffer zum Zwischenspeichern des aktuellen Zwischenergebnisse vor
der Testphase, damit die Logik mit diesem Zwischenergebnis nach
der Testphase wieder weiterlaufen kann.
-
Ferner wäre anstatt des sequentiellen
Auslesens und Beschreibens der Speicherzellen auch ein paralleler
Zugriff auf dieselben durch die Überwachungseinrichtung
möglich.
-
Obwohl im vorhergehenden von lediglich
einem Testzyklus für
ein Testmuster der Rede war, könnte
zur Überprüfung der
Funktionstüchtigkeit
der Logik ferner auch eine höhere
Anzahl an Testzyklen verwendet werden, wenn gleichzeitig auch eine Wahrheitstabelle
verwendet wird, die die Sollergebnisse der Logik nach dieser Anzahl
von Testzyklen angibt.
-
- 10
- Schaltung
- 12
- kombinatorische
Logik
- 14
- Speicherzellen
- 16
- Scankette
- 18
- Überwachungseinrichtung
- 20
- Extrazellen
- 22
- Ring
- 24
- Schieberichtung
- 26
- Maßnahmeeinrichtung
- 70
- Volladdierer