-
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 seif-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 Innenstrahlung) 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.
Corp. 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
DE 190 37 992 A1 zeigt
einen in verschiedenen Betriebsarten betreibbaren Baustein, von
denen eine der Normalbetrieb und eine weitere ein Online-Selbsttestbetrieb
ist. Insbesondere wird die Unterteilung einer ASIC in mehrere Testgruppen
beschrieben. Eine Testgruppe umfaßt eine kombinatorische Logik,
ein fehlersicheres 10-Bit-D-Flip-Flop, eine Ausgangslogik, ein Schieberegister
sowie einen Testmustergenerator. Sogenannter Testmodus bzw. Testbetrieb
untergliedert sich in Schiebmodus, Signaturbildungsmodus und Verdrahtungsmodus.
Wird ein Fehler entdeckt, wird ein sichere Zustand des Prozessors,
in welchem die ASIC eingesetzt ist, herbeigeführt, bzw. aufrechterhalten
bzw. das System in einem sicheren Zustand gebracht.
-
-
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
13 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 18n (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, c
0 und die Ausgänge c
1 und
s
1. 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, c
0 gezeigt sind, während in
den rechten Spalten 4 und 5 die sich ergebenden Bitwerte an den
Ausgängen
c
1 und s
1 gezeigt
sind. Tabelle 1:
a. | b. | c0 | s1 | C1 |
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 0 |
1 | 0 | 0 | 1 | 0 |
1 | 1 | 0 | 0 | 1 |
0 | 0 | 1 | 1 | 0 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 1 | 0 | 1 |
1 | 1 | 1 | 1 | 1 |
-
Die
Eingänge
a, b, und c0 sind exemplarisch mit jeweils
dem zweiten Ausgang des Zwischenspeichers 14, 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 14, 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 × (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.