-
Die vorliegende Erfindung bezieht sich auf einen integrierten Schaltkreis.
-
In integrierten Schaltkreisen, insbesondere bei deren Verwendung in Smartcards, ist es für einen potentiellen Angreifer möglich, eine Analyse des integrierten Schaltkreises (IC) durchzuführen, ein so genanntes „Reverse-Engineering“, und die gewonnen Informationen entweder zum Verändern eines Betriebsmodus des Schaltkreises oder zur Durchführung einer Datenmanipulation im zugehörigen Speicher zu verwenden. Dieser Prozess kann zu unerwünschten Konsequenzen führen, insbesondere für den Fall von sicherheitsrelevanten Schaltkreisen, beispielsweise bei verschiedenen Bargeldkarten oder Zugriffsautorisierungsfunktionen.
-
Eine aktive Abschirmung kann den IC schützen. Ein Angreifer kann jedoch versuchen, die aktive Abschirmung des ICs unter Verwendung eines fokussierten Ionenstrom(FIB)-Verfahrens, eines Sondierverfahrens oder eines Forcing-Verfahrens zu umgehen, um den IC zu hacken. Das FIB-Verfahren kann willkürlich metallische Leitungen trennen oder verbinden. Das Sondierverfahren kann eine spezifische metallische Leitung der aktiven Abschirmung unter Verwendung des FIB-Verfahrens trennen und einen Zustandswert der durchtrennten metallischen Leitung lesen. Das Forcing-Verfahren kann eine spezifische metallische Leitung der aktiven Abschirmung unter Verwendung des FIB-Verfahrens durchtrennen und ein spezifisches Signal der durchtrennten Metallleitung zur Verfügung stellen, um Daten zu manipulieren.
-
Aus der früher eingereichten, aber später veröffentlichten Patentanmeldung WO 2007 / 091210 A2 ist ein Verfahren zur Erkennung eines Angriffs auf eine Schaltungsanordnung, die eine aktive Abschirmung aufweist, bekannt, wobei Testdaten erzeugt und über Datenleitungen übertragen werden, wobei die übertragenen Testdaten empfangen und mit erwarteten Testdaten verglichen werden, und wobei eine etwaige Abweichung zwischen den empfangenen Testdaten und den erwarteten Testdaten ermittelt wird.
-
Aus der Patentanmeldung
US 2006 / 0214280 A1 ist eine Halbleitervorrichtung bekannt, bei der Verdrahtungsleitungen für die Zufuhr einer Spannung zu einem integrierten Schaltkreis in einem Halbleiterchip so angeordnet sind, dass sie eine Hauptoberfläche des Halbleiterchips abdecken, so dass, wenn die Verdrahtungsleitungen zu Analyse der in dem Halbleiterchip gespeicherten Information entfernt werden, der integrierte Schaltkreis nicht mehr funktioniert und es unmöglich ist, die gespeicherten Informationen zu analysieren. Darüber hinaus ist eine Verarbeitungsdetektorschaltung vorhanden, mit der erkannt werden kann, ob die Verdrahtungsleitungen manipuliert wurden. Wenn die Verarbeitungsdetektorschaltung eine Änderung im Zustand der Verdrahtungsleitungen erkennt, wird die integrierte Schaltung zurückgesetzt.
-
Der Erfindung liegt das technische Problem zugrunde, einen integrierten Schaltkreis bereitzustellen, welcher verhindert, dass ein Angreifer ihn hackt.
-
Die Erfindung löst dieses Problem durch Bereitstellung eines integrierten Schaltkreises mit den Merkmalen des Patentanspruchs 1, 4 oder 12.
-
Vorteilhafte Weiterbildungen der Erfindung sind in den Unteransprüchen angegeben, deren Wortlaut hiermit durch Bezugnahme in die Beschreibung aufgenommen wird, um unnötige Textwiederholungen zu vermeiden.
-
Vorteilhafte, nachfolgend im Detail beschriebene Ausführungsformen sind in den Zeichnungen dargestellt. Es zeigt/zeigen:
- 1 ein Blockdiagramm eines ICs gemäß einer ersten Ausführungsform der vorliegenden Erfindung,
- 2 ein Blockdiagramm zur Darstellung von internen Blöcken einer in 1 dargestellten Vergleichslogik,
- 3 ein Zeitablaufdiagramm der Vergleichslogik aus 1,
- 4 ein Blockdiagramm zur Darstellung von internen Blöcken einer in 1 dargestellten Vergleichslogik gemäß einer anderen Ausführungsform der vorliegenden Erfindung,
- 5 ein Zeitablaufdiagramm der Vergleichslogik aus 1 gemäß einer anderen Ausführungsform der vorliegenden Erfindung,
- 6 ein Blockdiagramm eines ICs gemäß einer zweiten Ausführungsform der vorliegenden Erfindung,
- 7 ein Blockdiagramm zur Darstellung von internen Blöcken einer in 6 dargestellten Vergleichslogik und
- 8 ein Zeitablaufdiagramm des in 6 dargestellten ICs.
-
Es versteht sich, dass Begriffe wie Logik, Steuereinheit usw., welche verwendet werden, um Elemente zu beschreiben, welche in Blöcken der Figuren dargestellt sind, als Referenz für logische Funktionen verwendet werden, welche sich auf Strukturelemente, wie beispielsweise Schaltkreise beziehen. Entsprechend werden diese funktionalen Begriffe als Bezug zu Elementen verstanden, welche in einem Strukturschaltkreis ausgeführt sind.
-
Ein integrierter Schaltkreis (IC) gemäß der vorliegenden Erfindung kann umfassen: eine aktive Abschirmung, welche ein Testsignal empfängt und über eine Mehrzahl von Signalpfaden eine Mehrzahl von Abschirmsignalen ausgibt; eine Vergleichslogik, welche das Testsignal mit jedem der Mehrzahl von Abschirmsignalen vergleicht, um wenigstens zwei Vergleichssignale in Abhängigkeit von den Vergleichsergebnissen auszugeben; und eine Detektions- und Entscheidungslogik, welche gemäß jedem Muster der wenigstens zwei Vergleichssignale bestimmt, ob die aktive Abschirmung angegriffen wurde oder nicht.
-
Es versteht sich, dass der hier verwendete Begriff „aktive Abschirmung“ Leitungen umfasst, welche ähnlich wie Schaltkreise konfiguriert sind, um vor einem Angriff geschützt zu sein. Insbesondere kann die aktive Abschirmung ähnlich wie ein Netzwerk von Leitungen gestaltet sein, welche den gesamten oder einen Teil des zu schützenden Schaltkreises bedecken. Wenn eine Leitung oder ein Teil der Abschirmung entfernt, getrennt oder mit einer anderen Leitung kurzgeschlossen wird, kann der Bruch detektiert werden, worauf der Chip einige oder alle Funktionen einstellt.
-
1 ist ein Blockdiagramm eines ICs gemäß einer ersten Ausführungsform der vorliegenden Erfindung. Bezugnehmend auf 1 umfasst ein IC 100 eine aktive Abschirmung 110, einen Seed 120, eine Vergleichslogik 130 und eine Detektions- und Entscheidungslogik 140.
-
Die aktive Abschirmung 110 ist eine metallische Leitung zum Schutz des ICs 100 gegen externe Angreifer, welche eine Analyse des ICs versuchen, ein so genanntes „Reverse Engineering“. Der Seed 120 erzeugt zufällige Daten. Der Seed 120 überträgt die gleichen zufälligen Daten R_sig an die aktive Abschirmung 110 und die Vergleichslogik 130. Die Vergleichslogik 130 vergleicht die zufälligen Daten R_sig, welche vom Seed 120 übertragen werden, mit den Daten, welche von der aktiven Abschirmung 110 übertragen werden. Wenn die vom Seed 120 übertragenen zufälligen Daten R_sig und die von der aktiven Abschirmung 110 übertragenen Daten gleich sind, gibt die Vergleichslogik 130 ein zwischen zwei Zuständen wechselndes erstes Vergleichssignal D_sig1 und ein zweites Vergleichssignal D_sig2 aus, welches gegenüber dem ersten Vergleichssignal D_sig1 invertiert ist. Bei Nichtübereinstimmung gibt die Vergleichslogik 130 das zwischen zwei Zuständen wechselnde erste Vergleichssignal D_sig1 und das zweite Vergleichssignal D_sig2 aus, welches identisch mit dem ersten Vergleichssignal D_sig1 ist.
-
Die Vergleichslogik 130 ist dazu konfiguriert, zwei oder mehr Vergleichssignale auszugeben. Ausführungsformen eines ICs gemäß der vorliegenden Erfindung können die zwei oder mehr Vergleichssignale umfassen, um es für einen Hacker schwieriger zu machen, den IC unter Verwendung eines FIB-Verfahrens, eines Sondierverfahrens und/oder eines Forcing-Verfahrens anzugreifen.
-
Die Detektions- und Entscheidungslogik 140 detektiert und verarbeitet das erste und zweite Vergleichssignal D_sig1 und D_sig2, welche von der Vergleichslogik 130 empfangen werden. Wenn das erste und zweite Vergleichssignal D_sig1 und D_sig2 zueinander komplementär sind, ist die aktive Abschirmung 110 in einem stabilen Zustand. Demzufolge arbeitet die Detektions- und Entscheidungslogik 140 nicht. In anderen Worten ausgedrückt, wenn das erste und das zweite Vergleichssignal D_sig1 und D_sig2 komplementär zueinander sind, sind die Ausgaben der aktiven Abschirmung 110 erwartungsgemäß. Andererseits erzeugt die Detektions- und Entscheidungslogik 140 ein Rücksetzsignal Reset, welches den IC 100 initialisiert, oder ein Interruptsignal Interrupt, welches Funktionen des ICs 100 unterbricht, wenn der Angreifer die aktive Abschirmung 110 angreift.
-
Interne Blöcke der Vergleichslogik 130 werden im Detail unter Bezugnahme auf 2 und 3 beschrieben. 2 ist ein Blockdiagramm zur Darstellung von internen Blöcken der in 1 dargestellten Vergleichslogik 130 und 3 ist ein Zeitablaufdiagramm der Vergleichslogik 130 aus 1. Bezugnehmend auf 2 umfasst die Vergleichslogik 130 eine Aktive-Abschirmung-Datenregister 131, ein Seed-Datenregister 132, einen Seed-Datenkomparator 133, einen Akkumulator 134, einen Oszillator 135, einen Inverter 136 und einen Multiplexer (MUX) 137.
-
Das Aktive-Abschirmung-Datenregister 131 speichert Daten, welche von der aktiven Abschirmung 110 empfangen werden. Das Seed-Datenregister 132 speichert die zufälligen Daten R_sig, welche vom Seed 120 empfangen werden. Der Seed-Datenkomparator 133 vergleicht die im Aktive-Abschirmung-Datenregister 131 gespeicherten Daten mit den im Seed-Datenregister 132 gespeicherten Daten. Wenn die im Aktive-Abschirmung-Datenregister 131 gespeicherten Daten und die im Seed-Datenregister 132 gespeicherten Daten gleich sind, gibt der Seed-Datenkomparator 133 einen logischen Wert „0“ an den Akkumulator 134 aus. Wenn nicht, gibt der Seed-Datenkomparator 133 einen logischen Wert „1“ an den Akkumulator 134 aus. Der Akkumulator 134 speichert die vom Seed-Datenkomparator 133 empfangenen Vergleichsergebnisse. Der Akkumulator 134 speichert beispielsweise den logischen Wert „1“, wenn der logische Wert „1“ als Vergleichsergebnis des Seed-Datenkomparators 133 nach dem Speichern des logischen Werts „0“ eingegeben wird. Anschließend hält der Akkumulator 134 den logischen Wert „1“, auch wenn ein nachfolgender logischer Wert „0“ als Vergleichsergebnis vom Seed-Datenkomparator 133 eingegeben wird.
-
Der Oszillator 135 erzeugt ein zwischen zwei Zuständen wechselndes Signal. Der Inverter 136 empfängt und invertiert das zwischen zwei Zuständen wechselnde Signal vom Oszillator 135. Der MUX 137 gibt in Reaktion auf eine Steuerung des Akkumulators 134 das Ausgabesignal des Oszillators 135 oder des Inverters 136 aus.
-
Bezugnehmend auf 1 bis 3 wechselt das erste Vergleichssignal D_sig1 der Vergleichslogik 130 während einer Periode von einem Zeitpunkt t1 bis zu einem Zeitpunkt t2 zwischen zwei Zuständen. Der Inverter 136 invertiert das erste Vergleichssignal D_sig1, um das zweite Vergleichssignal D_sig2 auszugeben. Das bedeutet, dass der IC nicht von einem Angreifer attackiert wird. Das erste Vergleichssignal D_sig1 und das zweite Vergleichssignal D_sig2 weisen an einem Zeitpunkt t13 den gleichen Zustandswert auf. Das bedeutet, dass der IC von einem Angreifer attackiert wird. Daher aktiviert die Detektions- und Entscheidungslogik 140 das Rücksetzsignal Reset oder das Interruptsignal Interrupt an einem Zeitpunkt t14.
-
4 ist ein Blockdiagramm zur Darstellung von internen Blöcken einer in 1 dargestellten Vergleichslogik gemäß einer anderen Ausführungsform der vorliegenden Erfindung und 5 ist ein Zeitablaufdiagramm der Vergleichslogik aus 1 gemäß einer anderen Ausführungsform der vorliegenden Erfindung.
-
Eine grundsätzliche Struktur gemäß 4 ist bis auf die Vergleichslogik 130 und den Oszillator 135 identisch mit der in 2. Das bedeutet, dass eine Vergleichslogik 230 aus 4 einen Zufallssignalgenerator 235 anstelle des Oszillators 135 aufweist. Daher werden redundante Beschreibungen hier vermieden.
-
Bezugnehmend auf 4 umfasst die Vergleichslogik 230 eine Aktive-Abschirmung-Datenregister 231, ein Seed-Datenregister 232, einen Seed-Datenkomparator 233, einen Akkumulator 234, einen Zufallssignalgenerator 235, einen Inverter 236 und einen MUX 237.
-
Der Zufallssignalgenerator 235 erzeugt ein zufälliges Signal. Der Inverter 236 invertiert das vom Zufallssignalgenerator 235 empfangene zufällige Signal. Der MUX 237 gibt in Reaktion auf eine Steuerung des Akkumulators 234 das Ausgabesignal des Zufallssignalgenerators 235 oder des Inverters 236 aus.
-
Bezugnehmend auf 1, 4 und 5 wird das erste Vergleichssignal D_sig1 der Vergleichslogik 230 an einem zufälligen Zeitpunkt während einer Periode von einem Zeitpunkt t1 bis zu einem Zeitpunkt t2 verändert. Der Inverter 236 invertiert das erste Vergleichssignal D_sig1, um das zweite Vergleichssignal D_sig2 auszugeben, welches anzeigt, dass der IC nicht Gegenstand eines Angriffs ist. Wenn im Gegensatz dazu das erste Vergleichssignal D_sig1 und das zweite Vergleichssignal D_sig2 an einem Zeitpunkt t13 den gleichen Zustandswert aufweisen, zeigt dies an, dass der IC angegriffen wird. Daher aktiviert die Detektions- und Entscheidungslogik 140 das Rücksetzsignal Reset oder das Interruptsignal Interrupt an einem Zeitpunkt t14.
-
6 ist ein Blockdiagramm eines ICs gemäß einer zweiten Ausführungsform der vorliegenden Erfindung und 7 ist ein Blockdiagramm zur Darstellung von internen Blöcken einer in 6 dargestellten Vergleichslogik. Eine grundsätzliche Struktur gemäß 7 ist bis auf den Oszillator 135 identisch mit der in 2. 7 unterscheidet sich dadurch von 2, dass ein Oszillator 635 einer Vergleichslogik 630 aus 7 zusätzlich ein zufälliges Frequenzsignal RF_sig von einem Frequenzeinsteller empfängt. Daher werden redundante Beschreibungen vermieden. Ein IC 600 gemäß der vorliegenden Erfindung kann einen Hackversuch unter Verwendung von Hardware- und/oder Softwaredetektierverfahren detektieren.
-
Bezugnehmend auf 6 umfasst der IC 600 eine aktive Abschirmung 610, einen Seed 620, eine Vergleichslogik 630, eine Detektions- und Entscheidungslogik 640, eine Steuereinheit 650 und einen Frequenzeinsteller (SET_FREQ) 660.
-
Die aktive Abschirmung 610 ist eine metallische Leitung bzw. eine Metallleitung zum Schutz des ICs 600 gegen einen externen Angreifer, welcher eine Analyse des ICs versucht, ein so genanntes „Reverse Engineering“. Der Seed 620 erzeugt zufällige Daten. Der Seed 620 überträgt die gleichen zufälligen Daten R_sig an die aktive Abschirmung 610 und die Vergleichslogik 630. Die Vergleichslogik 630 vergleicht die zufälligen Daten R_sig, welche vom Seed 620 übertragen werden, mit den Daten, welche von der aktiven Abschirmung 610 übertragen werden. Wenn die vom Seed 620 übertragenen zufälligen Daten R_sig und die von der aktiven Abschirmung 610 übertragenen Daten gleich sind, gibt die Vergleichslogik 630 ein erstes Vergleichssignal D_sig1 mit einer zufälligen Periode entsprechend dem zufälligen Frequenzsignal RF_sig aus, welches vom Frequenzeinsteller 660 empfangen wird, und gibt ein zweites Vergleichssignal D_sig2 aus, welches gegenüber dem ersten Vergleichssignal D_sig1 invertiert ist. Wenn nicht, gibt die Vergleichslogik 630 das erste Vergleichssignal D_sig1 und das zweite Vergleichssignal D_sig2 aus, welches identisch mit dem ersten Vergleichssignal D_sig1 ist. Die Vergleichslogik 630 ist dazu ausgebildet, zwei oder mehr Vergleichssignale auszugeben (Signal D_sign). Der IC gemäß der vorliegenden Erfindung umfasst die zwei oder mehr Vergleichssignale, um es für einen Angreifer schwieriger zu machen, den IC unter Verwendung eines FIB-Verfahrens, eines Sondierverfahrens und/oder eines Forcing-Verfahrens anzugreifen.
-
Die Detektions- und Entscheidungslogik 640 verwendet ein Hardwaredetektionsverfahren. Die Detektions- und Entscheidungslogik 640 detektiert und verarbeitet das erste und das zweite Vergleichssignal D_sig1 und D_sig2, welche von der Vergleichslogik 630 empfangen werden. Das erste Vergleichssignal D_sig1 wechselt beispielsweise wie ein Taktsignal zwischen zwei Zuständen oder ist ein zufälliges Signal. Das zweite Vergleichssignal D_sig2 ist komplementär bzw. invertiert zum ersten Vergleichssignal D_sig1, wenn die aktive Abschirmung 610 in einem stabilen Zustand ist. Wenn das erste und das zweite Vergleichssignal D_sig1 und D_sig2 komplementär zueinander sind, ist die aktive Abschirmung 610 im stabilen Zustand. Demzufolge zeigt die Detektions- und Entscheidungslogik 140 keinen Angriff an. Andererseits erzeugt die Detektions- und Entscheidungslogik 640 ein Rücksetzsignal Reset, welches den IC 600 initialisiert, oder ein Interruptsignal Interrupt, welches Funktionen des ICs 600 unterbricht, wenn der Angreifer die aktive Abschirmung 610 angreift.
-
Die Steuereinheit 650 verwendet ein Softwaredetektionsverfahren. Der Frequenzeinsteller 660 gibt das zufällige Frequenzsignal RF_sig an die Vergleichslogik 630 in Reaktion auf ein Frequenzsteuersignal F_sig der Steuereinheit 650 aus. Der Frequenzeinsteller 660 setzt in Reaktion auf das Frequenzsteuersignal F_sig von der Steuereinheit 650 Frequenzen beispielsweise auf ungefähr 25MHz, ungefähr 50MHz, ungefähr 75MHz usw. Das bedeutet, dass der Frequenzeinsteller 660 das zufällige Frequenzsignal RF_sig an die Vergleichslogik 630 in Reaktion auf das Frequenzsteuersignal F_sig ausgibt. Die Steuereinheit 650 gibt das Frequenzsteuersignal F_sig aus, damit der Frequenzeinsteller 660 das zufällige Signal erzeugt. Die Steuereinheit 650 empfängt das erste und das zweite Vergleichssignal D_sig1 und D_sig2 von der Detektions- und Entscheidungslogik 640. Die Steuereinheit 650 vergleicht eine Periode des ersten und des zweiten Vergleichssignals D_sig1 und D_sig2 mit dem Frequenzsteuersignal F_sig. Als Ergebnis aktiviert die Steuereinheit 650 ein Detektionssignal Detect, um das aktivierte Detektionssignal Detect an die Detektions- und Entscheidungslogik 640 auszugeben, wenn die Vergleichsergebnisse nicht miteinander übereinstimmen. Wenn das Detektionssignal Detect durch die Steuereinheit 650 aktiviert ist, erzeugt die Detektions- und Entscheidungslogik 640 das Rücksetzsignal Reset, welches den IC 600 initialisiert, oder das Interruptsignal Interrupt, welches Funktionen des ICs 600 unterbricht. Wenn nicht, ist die aktive Abschirmung 610 in einem stabilen Zustand. Demzufolge arbeitet die Detektions- und Entscheidungslogik 640 nicht.
-
8 ist ein Zeitablaufdiagramm des in 6 dargestellten ICs. Bezugnehmend auf 6 bis 8 wird angenommen, dass das erste Vergleichssignal D_sig1 ein zwischen zwei Zuständen wechselndes Signal ist, beispielsweise ein Taktsignal. Das zweite Vergleichssignal D_sig2 hält den relativ zum ersten Vergleichssignal D_sig1 komplementären Zustand für den Fall, dass die aktive Abschirmung 610 in einem stabilen Zustand ist. Das erste Vergleichssignal D_sig1 der Vergleichslogik 630 wird hinsichtlich einer Zeitdauer in einer Periode von einem Zeitpunkt t1 zu einem Zeitpunkt t2 in Reaktion auf das zufällige Frequenzsignal RF_sig des Frequenzeinstellers 660 zufällig verändert. Der Inverter 636 invertiert das erste Vergleichssignal D_sig1, um das zweite Vergleichssignal D_sig2 auszugeben. Das bedeutet, dass der IC nicht von einem Angreifer attackiert wird. Das erste Vergleichssignal D_sig1 und das zweite Vergleichssignal D_sig2 weisen am Zeitpunkt t13 den gleichen logischen Zustand, d.h. den logischen Pegel 1 auf. Das bedeutet, dass der IC von einem Angreifer attackiert wird. Daher aktiviert die Detektions- und Entscheidungslogik 640 das Rücksetzsignal Reset oder das Interruptsignal Interrupt am Zeitpunkt t14.
-
Daher gibt der IC 600 gemäß der vorliegenden Erfindung kontinuierlich variierende Signale an die Mehrzahl von Vergleichssignalen ein, um ein Hacken eines Angreifers zu verhindern. Zusätzlich variiert der IC 600 die Mehrzahl von Vergleichssignalen kontinuierlich, um deren Periode zu verändern, wodurch das Hacken des Angreifers verhindert wird.