-
Ausführungsbeispiele
der Erfindung beziehen sich auf eine integrierte Schaltung, die
einen Schaltungsteil aufweist, der geschützt werden soll, wobei die
integrierte Schaltung einen Analysierschutz aufweist, und auf ein
Verfahren zum Schützen eines
Schaltungsteils einer integrierten Schaltung, der geschützt werden
soll. Um Informationen über
die Funktionalität
einer integrierten Schaltung (IC; integrated circuit) zu erhalten,
oder um Daten oder Signale auf einer integrierten Schaltung zu ändern, können integrierte
Schaltungen Ziel eines Manipulationsversuchs sein. Eine solche Manipulation
kann z. B. besonders schwerwiegend für sicherheitsrelevante, integrierte
Schaltungen sein. Im Allgemeinen können alle Typen von integrierten
Schaltungen Ziel eines Manipulationsversuchs sein. Zum Beispiel
kann die Funktionalität
einer integrierten Schaltung durch ein Reverse-Engineering untersucht
werden. Eine integrierte Schaltung kann gegen einen solchen unerwünschten
Manipulations- oder Analyseversuch durch unterschiedliche Mittel
geschützt
werden.
-
Es
ist die Aufgabe der vorliegenden Erfindung, eine integrierte Schaltung,
ein Verfahren und ein Computerprogramm mit verbesserten Charakteristika
zu schaffen.
-
Diese
Aufgabe wird durch eine integrierte Schaltung gemäß Anspruch
1, ein Verfahren gemäß Anspruch
15 und ein Computerprogramm gemäß Anspruch
22 gelöst.
-
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf
die beiliegenden Zeichnungen näher
erläutert.
Es zeigen:
-
1 eine
schematische Darstellung einer integrierten Schaltung, die einen
Schaltungsteil, der geschützt
werden soll, der Schutzleitungen und Logikgatter aufweist, die gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung eine logische Schaltung bilden, und eine
Verarbeitungseinheit zum Erfassen einer Manipulation der integrierten
Schaltung aufweist;
-
2 ein
schematisches Detail eines Querschnitts einer integrierten Schaltung
in einem Halbleitersubstrat, und die mehrere Verdrahtungsebenen gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung aufweist;
-
3a gemäß einem
weiteren Ausführungsbeispiel
der vorliegenden Erfindung, eine schematische Draufsicht einer integrierten
Schaltung, die einen Schaltungsteil aufweist, der geschützt werden soll,
wobei die integrierte Schaltung eine logische Schaltung und eine
Verarbeitungsschaltung aufweist, die Eingangs- und Ausgangsregister
aufweist;
-
3b die
schematische Draufsicht einer integrierten Schaltung, die einen
Schaltungsteil aufweist, der geschützt werden soll, wobei die
integrierte Schaltung eine logische Schaltung mit einem Linear-Rückkopplungs-Schieberegister
(LFSR; linear feedback shift register) zum Erzeugen von Pseudozufallstestmustern
für die
schützende
logische Schaltung aufweist; und
-
4 ein
Blockdiagramm, das das Verfahren zum Schützen eines Schaltungsteils
einer integrierten Schaltung betrifft, der geschützt werden soll, gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung.
-
Bezug
nehmend auf 1 bis 4 sind Ausführungsbeispiele
gezeigt, die sich auf eine integrierte Schaltung beziehen, die einen
Schaltungsteil aufweist, der geschützt werden soll, und auf ein
Verfahren zum Schützen
eines Schaltungsteils einer integrierten Schaltung, der geschützt werden
soll.
-
1 zeigt
eine schematische Draufsicht einer integrierten Schaltung (IC),
die einen Schaltungsteil aufweist, der geschützt werden soll, und eine logische
Schaltung, die als ein Manipulations- oder Analyseschutz dient.
Die integrierte Schaltung 10, die einen Schaltungsteil 12 aufweist,
der geschützt werden
soll, weist bei diesem Ausführungsbeispiel der
vorliegenden Erfindung Schutzleitungen 14 auf zumindest
einer Verdrahtungsebene der integrierten Schaltung auf. Eine Verdrahtungsebene
kann z. B. eine Metallisierungsebene eines Halbleiterchips sein. Im
Allgemeinen kann eine Verdrahtungsebene elektrisch leitfähige Verbindungen
zwischen Schaltungselementen der integrierten Schaltung aufweisen,
die darin gebildet sind. Zusätzlich
dazu weist die integrierte Schaltung 10 Logikgatter 16 auf,
die mit den Schutzleitungen 14 gekoppelt sind, wodurch
eine Logikschaltung 18 gebildet wird. Die integrierte Schaltung 10 weist
ferner eine Verarbeitungseinheit 19 auf, die gebildet sein
kann, um eine Erfassung einer Manipulation der integrierten Schaltung 10 oder
eine Beeinflussung der integrierten Schaltung durch Anwenden eines
Testmusters an die Logikschaltung 18 und das Verifizieren
eines Logikausgangswerts der logischen Schaltung für das Testmuster
zu ermöglichen.
-
Die
integrierte Schaltung 10, die Schutzleitungen 14,
die Logikgatter 16 und die Verarbeitungseinheit 19 können somit
gemeinsam auf einem Chip oder Mikrochip integriert sein. Die Logikschaltung, die
in 1 gezeigt ist, ist zufällig ausgewählt und dient nur zur Darstellung
der vorliegenden Erfindung.
-
Die
Gatter können
elementare UND-16a, ODER-16b, NOR-16c, NAND-16d, XOR-16e, XNOR-16f oder
NICHT-Gatter sein, wie schematisch in 1 gezeigt
ist. Diese Gatter können
verbunden sein, um komplexere logische, sequentielle Schaltungen
oder kombinatorische Schaltungen zu bilden, die Rückkopplungs-
und Speicherungsfähigkeiten
aufweisen.
-
Die
logische Schaltung 18 und/oder die Schutzleitungen 14 können z.
B. über
dem Schaltungsteil 12 angeordnet sein, der geschützt werden soll,
und daher als ein Analyseschutz oder Manipulationsschutz für den Schaltungsteil
der integrierten Schaltung dienen, der geschützt werden soll. Die integrierte
Schaltung kann z. B. in einem Halbleitersubstrat gebildet sein.
Die integrierte Schaltung und die Logikgatter können z. B. mit Hilfe einer
Komplementärmetalloxidhalbleitertechnik
(CMOS-Technik; CMOS = complementary metal oxide semiconductor) hergestellt
werden. Die Logikschaltung kann physische Angriffe verhindern oder
zumindest kompliziert machen, wie sie z. B. durch Sondieren von
Signalen und Pulsen oder durch Zwingen von Signalen und Pulsen auf
Funktionsleitungen der integrierten Schaltung zum Manipulieren oder
Analysieren von Daten auftreten können. Solche Angriffe auf eine
integrierte Schaltung können
z. B. verwendet werden, um vertrauliche oder interne Daten aus der
integrierten Schaltung zu erhalten. Dieser Manipulationstyp kann z.
B. an integrierten Schaltungen für
Chipkarten ausgeführt
werden, wobei die Manipulation z. B. den Operationsmodus der integrierten
Schaltung oder Daten innerhalb ihres Speichers ändert. Insbesondere bei sicherheitsrelevanten,
integrierten Schaltungen, wie sie z. B. für Geldautomatenkarten oder
Karten mit Zugriffsautorisierung verwendet werden, kann diese Manipulation
zu unerwünschten
Konsequenzen führen.
-
Das
Manipulieren, Ändern
oder Sondieren von Daten oder Signalen oder das Analysieren der Schaltung
kann z. B. erreicht werden durch Platzieren von Sondenspitzen direkt
auf Leiterleitungen oder Schaltungselemente der integrierten Schaltung. Was
ebenfalls möglich
ist, ist eine Manipulation von Signalen oder Speicherinhalten einer
integrierten Schaltung mit Hilfe von elektrischen oder magnetischen
Feldern. Eine Manipulation kann ebenfalls mit Hilfe elektromagnetischer
Strahlung, so wie z. B. Laserlicht ausgeführt werden. Eine Manipulation
von Daten oder eine Analyse der Schaltung kann sowohl von einer
ersten Hauptoberfläche 20' (2)
(oben) des Chips ausgeführt
werden, in dem die integrierte Schaltung gebildet ist, als auch
von einer zweiten Hauptoberfläche 20'' (hinten) gegenüberliegend zu der ersten Hauptoberfläche. Dementsprechend
ist es bei Ausführungsbeispielen
der vorliegenden Erfindung ebenfalls möglich, dass die Schutzleitungen
sowohl an Verdrahtungsebenen auf der ersten Hauptoberfläche als
auch an Verdrahtungsebenen auf der zweiten Hauptoberfläche angeordnet
sind.
-
Wie
schematisch in 1 gezeigt ist, kann gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung ein Schaltungsteil 12, der geschützt werden
soll, eine Mehrzahl von Schutzleitungen 14 aufweisen, die
z. B. auf einer Verdrahtungsebene der integrierten Schaltung gebildet
sind. Zusätzlich
dazu kann die logische Schaltung 18 Logikgatter 16 aufweisen,
mit denen die Anzahl von Schutzleitungen 14 in einer Zone
der integrierten Schaltung erhöht
werden kann, die einen Schaltungsteil aufweist, der geschützt werden
soll. Zusammen mit den Logikgattern bilden die Schutzleitungen eine
Logikschaltung, mit der ein Testmuster durch eine Verarbeitungseinheit während einer
funktionalen Operation der integrierten Schaltung angelegt bzw.
angewendet werden kann. Wenn ein Versuch ausgeführt wird, Signale und/oder
Pulse dieser logischen Schaltung zu sondieren oder analysieren oder
manipulieren, oder ein Signal auf die logische Schaltung zu zwingen,
kann sich ein logischer Ausgangswert der logischen Schaltung ändern. Durch
Verifizieren des logischen Ausgangswerts, der unter Verwendung der
Verarbeitungseinheit erwartet wird, kann eine Manipulation, eine
versuchte Manipulation oder eine Beeinflussung bzw. Verfälschung
der integrierten Schaltung erfasst werden. Die logische Schaltung 18 kann
eine rein zufällige
logische Verdrahtung aufweisen, wie sie im Lauf eines automatisierten
Syntheseverfahrens der integrierten Schaltung implementiert werden
kann. Die integrierte Schaltung kann unterschiedliche logische Strukturen
oder Vorrichtungen aufweisen, z. B. NUND-, NOR-, UND-, ODER-, XOR-Gatter, Flip-Flops,
Multiplexer etc. Ein VHDL-Programmcode,
der die Beziehung und Operationsmodi der jeweiligen Vorrichtungen
reflektiert, kann durch ein Kompilierprogramm erzeugt werden, als
dessen Ergebnis ein optimiertes Schaltungsdiagramm – z. B. für optimierte
Verdrahtungswege – gebildet
werden kann. Auf der Basis des entworfenen Schaltungsdiagramms können dann
unterschiedliche Maskenebenen und die verschiedene Verdrahtungsebenen
für die
integrierte Schaltung geometrisch in der Layoutphase entworfen werden.
Verdrahtungsebenen können
nicht belegte Bereiche aufweisen, d. h. Bereiche, wo keine Leiterleitungen
oder Verbindungen, die für die
tatsächliche
Funktion der integrierten Schaltung verwendet werden können, angeordnet
sind. Die oben erwähnten
Schutzleitungen 14 und, bei dem Halbleitersubstrat, die
Logikgatter 16, können
dann in diesen nicht belegten Bereichen gebildet werden. Die Schutzleitungen
können
somit in einem ersten Bereich der zumindest einen Verdrahtungsebene
der integrierten Schaltung angeordnet sein, und Funktionsleitungen
des Schaltungsteils der integrierten Schaltung, der geschützt werden
soll, können
in einem zweiten Bereich der zumindest einen Verdrahtungsebene angeordnet
sein. Dies ist schematisch in 2 unten
dargestellt. Die Ausgaben, die bei der Realisierung von mehreren
Schutzleitungen entstehen, können
gemäß Ausführungsbeispielen
der vorliegenden Erfindung dadurch reduziert werden, dass aktive
Logikgatter mit den Schutzleitungen gekoppelt werden, so dass, wenn
die Logikgatter geeignet ausgewählt
werden, Testmuster oder Testmustersignale an eine Mehrzahl von Schutzleitungen
angelegt werden können.
Diese große
Anzahl von Schutzleitungen kann dann möglicherweise über aktive
Logikgatter wieder reduziert werden, und die Testmuster können somit
wiederum zur Verifizierung komprimiert werden. Durch Verwenden der
Logikgatter zusammen mit den Schutzleitungen für die Logikschaltung bzw. logische
Schaltung und die Verarbeitungseinheit, kann somit eine größere Anzahl
von Schutzleitungen auf der zumindest einen Verdrahtungsebene der
integrierten Schaltung realisiert werden, z. B. unter Verwendung
von weniger Senderegistern in der Verarbeitungseinheit und unter
Verwendung von weniger Empfangsregistern als bei einer Schutzstruktur, die
keine Logikgatter aufweist. Was hier wichtig sein kann ist, dass
die Änderung
bei einer Schutzleitung aufgrund einer versuchten Manipulation oder
einer Vermischung der integrierten Schaltung zu einem geänderten
Wert in einem Empfangsregister der Verarbeitungseinheit führen kann.
-
2 zeigt
Details eines schematischen Querschnitts durch einen Halbleiterchip,
der eine integrierte Schaltung 10 aufweist. Zum Beispiel
kann ein dotiertes p-Typ-Halbleitersubstrat 20 n-dotierte Wannen 24 und
p-dotierte Bereiche 26 aufweisen, die, wie bei diesem Beispiel
gezeigt ist, eine Inverterstruktur bilden, die entsprechende p-
und n-Kanal-MOSFET-Transistoren 28 aufweisen.
Diese Inverterstrukturen können
z. B. Teil des Schaltungsteils 12 der integrierten Schaltung
sein, der geschützt
werden soll. Die entsprechenden Anschlüsse der MOSFET-Transistoren 28 können zu
Metallisierungsschichten 29 auf der ersten Verdrahtungsebene 22a über Kontaktierungen 52 oder
in die erste Verdrahtungsebene 22a über Polysiliziumkontakte geroutet sein.
Die Metallisierungsschichten 29 können funktionale Leitungen 29 der
integrierten Schaltung sein. Die Verdrahtungsschicht 22a kann
von der Halbleitersubstratoberfläche 20' durch eine
Isolationsschicht 22d getrennt sein, die die Kontaktierungen 52 aufweist.
Das Halbleitersubstrat 20 kann ferner Logikgatterstrukturen
aufweisen (hier beispielsweise auch als eine Inverterstruktur 30 gezeigt),
die darin gebildet sind. Diese Logikgatter können mit den Schutzleitungen 14 gekoppelt
sein. Bei diesem Ausführungsbeispiel
sind die Schutzleitungen 14 beispielsweise auf einer zweiten
Verdrahtungsebene 22b und einer dritten Verdrahtungsebene 22c angeordnet
und sind über
den funktionalen Leitungen 29 des Schaltungsteils angeordnet,
der geschützt
werden soll. Die Schutzleitungen 14 können zumindest teilweise die funktionalen
Leitungen 29 und die entsprechenden Transistoren 28 des
Schaltungsteils 12 überlappen,
der geschützt
werden soll. Wenn z. B. ein Versuch gemacht wird, die Schaltungsteile 12 zu manipulieren,
die geschützt
werden sollen, unter Verwendung einer Sondenspitze, sind sie zumindest
teilweise durch die Schutzleitung 14 abgedeckt. Jeglicher
physische Kontakt, Unterbrechung, Kurzschluss oder Überbrückung oder
jedes Aufzwingen eines Signals auf die Schutzleitungen 14 kann
dann eine Änderung
bei dem logischen Ausgangswert der logischen Schaltung 18 verursachen.
Die Schutzleitungen können
derart angeordnet sein, dass sie angeordnet sind, um zumindest teilweise
auf unterschiedlichen Verdrahtungsebenen die Schaltungsteile 12 der
integrierten Schaltung zu überlappen,
die geschützt
werden sollen. Die Inverterstruktur 30, die schematisch
in 2 angezeigt ist, kann Teil eines Logikgatters
der Logikschaltung 18 sein. Bei einer versuchten Manipulation
können
die Verarbeitungseinheit und die Testmuster derart implementiert
sein, dass die Verarbeitungseinheit jegliche Unterbrechung, Kurzschluss
oder Überbrückung von
zumindest einer der Schutzleitungen erfassen kann, durch Verifizieren
des logischen Ausgangswerts.
-
Bei
anderen Ausführungsbeispielen
der vorliegenden Erfindung kann der Schaltungsteil der integrierten
Schaltung, der geschützt
werden soll, oder die funktionalen Signalleitungen 29,
die geschützt werden
soll, ebenfalls auf höheren
Verdrahtungsebenen des Chips angeordnet sein. Die Schutzleitungen 14 können ebenfalls
auf derselben Verdrahtungsebene angeordnet sein, benachbart zu oder
zwischen den Schaltungsteilen, die geschützt werden sollen, oder den
funktionalen Leitungen 29, die geschützt werden sollen. Die Schutzleitungen 14 können jedoch
ebenfalls auf anderen Verdrahtungsebenen über oder unter den Schaltungsteilen
angeordnet sein, die geschützt
werden sollen, oder den funktionalen Leitungen, die geschützt werden
sollen.
-
Logische
Signale oder Schutzsignale – die Testmuster – können nun
getaktet werden, mit Hilfe einer Verarbeitungseinheit, in unterschiedlichen Kombinationen über die
schaltbaren, aktiven Logikgatter 16, und können dann
entsprechend in einem Empfangsregister verifiziert werden, das auch
Teil der Verarbeitungseinheit sein kann. Dies bedeutet, dass ein
logischer Ausgangswert oder mehrere logische Ausgangswerte mit einem
erwarteten logischen Ausgangswert oder mit mehreren erwarteten logischen
Ausgangswerten verglichen werden können, und wenn der erwartete
logische Ausgangswert von dem empfangenen logischen Ausgangswert
abweicht, kann eine versuchte Manipulation daraus gefolgert werden.
Durch Verwenden von Logikgattern, z. B. sogenannten exklusiven ODER-Gattern (XOR-Gattern),
kann eine Mehrzahl von Schutzleitungen über den Schaltungsteil der
integrierten Schaltung geroutet werden, der geschützt werden soll,
bei einer relativ geringen Anzahl von Senderegisterzellen.
-
Gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung kann die Verarbeitungseinheit ein Eingangsregister
und ein Ausgangsregister aufweisen, wobei es möglich ist, dass die Anzahl
der Registerzellen des Eingangsregisters und/oder des Ausgangsregisters
geringer ist als die Anzahl von Schutzleitungen, die mit dem Eingangsregister
und dem Ausgangsregister über
die Logikgatter gekoppelt sind. Die Logikschaltung kann somit mehr Schutzleitungen
aufweisen, als Registerzellen in einem Senderegister vorhanden sind.
Im Gegensatz zu einem einfachen Erhöhen der Anzahl von Schutzleitungen
kann die Anzahl von Schutzleitungen, über die unterschiedliche Testmuster
laufen, wegen der Logikgatter durch Verwendung von Logikgattern
erhöht
werden.
-
Eine
Multiplikation oder Erweiterung der Schutzleitungen lokal auf der
integrierten Schaltung kann bewirkt werden, wo die Schaltungsteile,
die geschützt
werden sollen, angeordnet sind und eine erhöhte Anzahl von Schutzleitungen
erwünscht
ist. Natürlich
ist es ebenfalls machbar, dass individuelle Schutzleitungen nicht
erweitert werden. Gemäß Ausführungsbeispielen
der vorliegenden Erfindung können
die Schutzleitungen und die entsprechenden Logikgatter der Logikschaltung
zum Erfassen einer Manipulation der integrierten Schaltung auf automatische
Weise geroutet werden, auf halbautomatische Weise geroutet werden
oder können
manuell in die Schaltungs- und Layoutdiagramme platziert werden.
-
Wie
in einer schematischen Draufsicht in 3a gezeigt
ist, kann eine integrierte Schaltung 10 z. B. eine Verarbeitungseinheit 19 mit
einem Eingangsregister 30 mit Registerzellen 30a–e und einem Ausgangsregister 32 mit
Registerzellen 32a–f
aufweisen. Die Registerzellen können
als Flip-Flops gebildet sein. Zusätzlich dazu bilden die Schutzleitungen 14 und
die Logikgatter 16, die untereinander gekoppelt sind, zusammen
die Logikschaltung 18. In diesem Kontext können die
Logikgatter 16 wiederum verwendet werden, um die Anzahl
von Schutzleitungen zu erhöhen.
Die Testmuster, die in dem Eingangs- oder Senderegister 30 gespeichert
sein können
oder dort erzeugt werden können,
können
dann über
den Teil 12 der integrierten Schaltung übertragen werden, der geschützt werden
soll, über
diese erweiterten Schutzleitungen 14. Die Verarbeitungseinheit 19 kann
Speicherungselemente aufweisen, z. B. die Flip-Flops, wobei die
Testmuster darin gespeichert sind. Die Schutzleitungen können z.
B. lokal über
einem Schaltungsteil 12 der integrierten Schaltung geroutet
werden, der geschützt
werden soll.
-
Bei
einem Ausführungsbeispiel
kann ein Testmuster z. B. von einem 8-Bit-Senderegister 30 über den
Schaltungsteil geroutet werden, der geschützt werden soll, mit Hilfe
von Erweiterungsgattern, die z. B. XOR-Gatter 16e sein
können,
die individuelle Bits verbinden. Die Erweiterung der Schutzleitungen
unter Verwendung der Logikgatter 16 kann dann z. B. bewirkt
werden, wo mehr Schutzleitungen für die integrierte Schaltung
verwendet werden können.
Dies kann viele kurze Schutzleitungen verursachen, die keine gegenseitigen
Schlussfolgerungen im Hinblick auf den Operationsmodus der Logikschaltung 18 ermöglichen.
Es ist ferner möglich,
dass individuelle Schutzleitungen nicht erweitert werden. Nach dem
Abdecken der Schaltungsteile, die geschützt werden sollen, können die
Schutzleitungen wiederum komprimiert und mit einem Ausgangsregister 32 gekoppelt
werden. Gemäß Ausführungsbeispielen
kann die Verifizierung des logischen Ausgangswerts oder der logischen
Ausgangswerte der Schutzsignale auf den Schutzleitungen der Logikschaltung
im Hinblick auf ein Testmuster in einem Ausgangsregister 32 ausgeführt werden,
das ein Teil der Verarbeitungseinheit 19 sein kann. Bei
Ausführungsbeispielen
kann die Verifizierung der logischen Ausgangswerte im Hinblick auf
ein spezifisches Testmuster auch unter Verwendung eines Computerprogramms
ausgeführt
werden oder allgemein einer Software oder eines maschinenlesbaren
Codes. Anders ausgedrückt
kann sowohl die Erzeugung als auch die Verifizierung der Testmuster
oder der Testsignale für
die Schutzleitungen unter Verwendung einer Software, eines Computerprogramms
oder eines maschinenlesbaren Codes ausgeführt werden.
-
Die
Verarbeitungseinheit zum Erfassen einer Manipulation der integrierten
Schaltung ist bei Ausführungsbeispielen
der vorliegenden Erfindung derart implementiert, dass jegliche Änderung
oder jegliche Manipulation eines individuellen oder mehrere Signale
oder eines Logikwerts auf den Schutzleitungen, die mit Hilfe der
Logikgatter erweitert sind, zu einer Änderung bei den Signalen führt, die
wiederum mit Hilfe der Logikgatter komprimiert werden können. Zu
diesem Zweck kann das Exklusiv-ODER-Gatter (XOR-Gatter) als ein
Logikgatter verwendet werden. Die komprimierten Signale können dann
zu der Verarbeitungseinheit geliefert werden, das heißt z. B.
zu dem Ausgangsregister oder dem Empfangsregister 32. Bei
Ausführungsbeispielen
der vorliegenden Erfindung können
mehrere Testmuster über
die Schutzvorrichtung geroutet bzw. geleitet werden, d. h. die Logikschaltung
zum Erfassen einer Manipulation, so dass jegliche Änderung
bei mehreren Schutzleitungen einfacher erfasst werden kann.
-
Wie
schematisch in 3a dargestellt ist, kann bei
einem Ausführungsbeispiel
bei einem ersten Teil 17a der Logikgatter 16 der
Logikschaltung 18, über
die nach dem Anlegen von Testmustern das Testmuster früher läuft ist
als über
einen zweiten Teil 17b der Logikgat ter, die Anzahl von
Schutzleitungen im Vergleich zu der Anzahl von Schutzleitungen erhöht werden,
die vor dem ersten Teil 17a der Logikgatter vorhanden waren.
Zusätzlich
dazu kann über einen
zweiten Teil 17b der Logikgatter die Anzahl von Schutzleitungen,
die nach dem zweiten Teil 17b der Logikgatter vorhanden
sind, im Vergleich zu der Anzahl von Schutzleitungen reduziert werden,
die vor dem zweiten Teil 17b der Logikgatter vorhanden
sind.
-
Bei
einem anderen Ausführungsbeispiel
der integrierten Schaltung kann die Länge aller Schutzleitungen der
Logikschaltung der integrierten Schaltung zumindest fünfmal oder
auch zumindest zehnmal die Länge
einer längsten
Abmessung oder Seite des Mikrochips sein, in dem die integrierte
Schaltung 10 gebildet ist. Durch Verwenden von Logikgattern 16 und
der zugeordneten Erweiterung der Schutzleitungen 14 kann
die verfügbare
Länge der
Schutzleitungen erhöht
werden und somit kann ein verbesserter Schutz der zu schützenden
Schaltungsteile der integrierten Schaltung erreicht werden. Eine
spezifische Verdrahtung der Logikgatter und ein Routen der Schutzleitungen
auf der zumindest einen Verdrahtungsebene kann innerhalb des Rahmens
eines vollständig
kundenspezifischen Entwurfs oder z. B. innerhalb des Rahmens eines
halb kundenspezifischen Entwurfs auftreten. Während integrierte Schaltungen
für herkömmliche
Logikmodule unter Verwendung des im Wesentlichen manuell gesteuerten
Entwurfs erzeugt werden (vollständig
kundenspezifischer Entwurf), ist die manuelle Verarbeitung oder Beeinflussung
mit der synthetisierten Logik komplizierter. Bei diesem Verfahren
können
Funktionen und Beziehungen von Objekten in einer Programmiersprache
formuliert sein, wie z. B. VHDL oder Verilog, und können mit
Hilfe eines Kompilierungsprogramms in ein fertig gestelltes Verdrahtungsdiagramm übersetzt
werden.
-
Gemäß einem
weiteren Ausführungsbeispiel der
vorliegenden Erfindung (3b) kann
die integrierte Schaltung 10 eine Verarbeitungseinheit 19 mit einem
Rückkopplungsschieberegister
(FSR; feedback shift register) aufweisen. Das Rückkopplungsschieberegister
kann z. B. als ein lineares Rückkopplungsschieberegister
(LFSR) implementiert sein. Das lineare Rückkopplungsschieberegister 31 kann
implementiert sein, um mit wenigen Steuersignalen Pseudozufallstestmuster
für viele
Schutzsignale zu erzeugen. Das LFSR kann wiederum über die Schutzleitungen 14 und
die Logikgatter 16 mit einem Ausgangsregister 32 gekoppelt
sein, das ferner Teil der Verarbeitungseinheit 19 sein
kann. Am Anfang kann das LFSR mit unterschiedlichen Keimwerten geladen
werden, und eine Pseudozufallstestmustersequenz für die Logikschaltung
kann unter Verwendung von getakteten Steuersignalen 33 erzeugt
werden. Die Testmuster können
an die Logikschaltung auf serielle oder parallele Weise angelegt
werden und können
erweitert werden, wie oben beschrieben wurde, mit Hilfe von Logikgattern 16,
um einen verbesserten Schutz der zu schützenden Schaltungsteile 12 der
integrierten Schaltung zu ermöglichen.
Im Allgemeinen kann die Verarbeitungseinheit 19 auch einen
Zufallsgenerator aufweisen, der Zufalls- oder Pseudozufallstestmuster
erzeugen kann, d. h. Testmuster, die immer noch deterministisch
sind.
-
Gemäß verschiedenen
Ausführungsbeispielen
kann die Logikschaltung zum Erfassen einer Manipulation auch Speicherungselemente
aufweisen, die implementiert sind, um einen logischen Zustand der
Logikschaltung zwischenzuspeichern. Bei einer komplexeren Realisierung
der Logikschaltung können
Speicherungselemente somit auch in dem Weg der Schutzleitungen 14 verwendet
werden. Das Speicherungselement kann ein Register sein, das auf
statischen Direktzugriffsspeicherzellen basiert (SRAM-Zellen; SRAM
= static random access memory) oder auf dynamischen Direktzugriffsspeicherzellen
(DRAM-Zellen; DRAM
= dynamic random access memory) oder anderen Speicherzellen basiert.
Auf diese Weise kann eine Art von Zustandsmaschine realisiert werden,
so dass eine Verifizierung dahin gehend ausgeführt werden kann, ob ein logischer
Ausgangswert, der erwartet wird, mit dem logischen Ausgangswert
oder dem Zustandswert übereinstimmt, der
dann durch die Zustandsmaschine erzeugt wird. Bei einem Ausführungsbeispiel
kann z. B. ein lineares Rückkopplungsschieberegister
lokal realisiert sein, wobei als Ergebnis davon viele Schutzsignale unter
Verwendung von wenigen Steuersignalen erzeugt werden. Die Logik,
die zusätzlich
zu diesem Zweck implementiert ist, für die Logikschaltung zum Erfassen
einer Manipulation, kann automatisch zusätzlich zu der normalen Prozessausführung getestet werden,
z. B. durch ein LFSR, das durch ein Computerprogramm erzeugt wird,
wie z. B. TestCompress, und eine hohe Ebene einer Testabdeckung
aufweist. Dies bedeutet, dass bei Ausführungsbeispielen der vorliegenden
Erfindung eine Verifizierung der Logikausgangswerte, die z. B. durch
ein LFSR erzeugt wurden, automatisch bewirkt werden kann, und diese Verifizierung
ferner gleichzeitig zu der funktionalen Operation der integrierten
Schaltung ausgeführt
werden kann. Das FSR oder das LFSR kann alternativ auch mit Hilfe
von Software implementiert sein.
-
Ferner
kann die Verarbeitungseinheit 19 auch Speicherungselemente
aufweisen, die Testmuster für
die Logikschaltung 18 darin gespeichert aufweisen.
-
Falls
bei dem Verifizieren eines Logikausgangswerts der Logikschaltung
ansprechend auf Testmuster eine Abweichung des Logikausgangswerts
von einem erwarteten Logikausgangswert auftritt, kann die Verarbeitungseinheit
ein Alarmsignal bei Ausführungsbeispielen
der vorliegenden Erfindung ausgeben. Ein Vergleich eines Logikausgangswerts
mit einem erwarteten Logikausgangswert kann entweder durch Hardware
implementiert sein oder kann ferner mit Hilfe eines Computerprogramms
oder unter Verwendung von Software oder eines maschinenlesbaren
Codes bewirkt werden.
-
Bei
weiteren Ausführungsbeispielen
kann die Logikschaltung 18 derart implementiert sein, dass die
Testmuster, die über
die Schutzleitungen der Logikschaltung laufen, herkömmlichen
Testmustern entsprechen, die üblicherweise
zum Verifizieren von Logikschaltungen erzeugt werden. Diese Testmuster können dann „Haftfehler
an Logikpegel 1” oder „Haftfehler
an Logikpegel 0” erfassen,
z. B. bei einer Manipulation oder einer versuchten Manipulation
der Schutzleitungen oder der Logikgatter der Logikschaltung. Die
Testmuster können
z. B. automatisch erzeugt werden und in sogenannten Abtastketten über Teile
der Logikgatter oder über
die gesamten Logikgatter der Logikschaltung getaktet sein, und somit können „Haftfehler
an Logikpegel 0” oder „Haftfehler an
Logikpegel 1” erfasst
werden. Die Testmuster können
eine Zufallssequenz aus „0” und „1” aufweisen. Die
Verarbeitungseinheit kann derart implementiert sein und die Testmuster
können
derart ausgewählt sein,
dass ein aufgetretener „Haftfehler
an Logikpegel 1” oder
ein aufgetretener „Haftfehler
an Logikpegel 0” bei
mehr als 90% der Schaltungsknoten der Logikschaltung erkennbar sind.
-
4 zeigt
ein Flussdiagramm gemäß einem
Ausführungsbeispiel
des Verfahrens zum Schützen
eines zu schützenden
Schaltungsteils einer integrierten Schaltung. Das Verfahren weist
das Anlegen eines Testmusters 42 an eine Logikschaltung
zum Erfassen jeglicher Manipulation der integrierten Schaltung auf,
wobei die Logikschaltung Logikgatter aufweist, die mit Schutzleitungen
auf zumindest einer Verdrahtungsebene der integrierten Schaltung
gekoppelt sind. Zusätzlich
dazu weist das Verfahren das Verifizieren 44 eines Logikausgangswerts
der Logikschaltung ansprechend auf die Testmuster auf.
-
Wie
in 4 gezeigt ist, kann das Verfahren gemäß Ausführungsbeispielen
der vorliegenden Erfindung ferner das Erzeugen 40 eines
Testmusters vor dem Anlegen 42 des Testmusters aufweisen.
Optional kann das Verfahren gemäß Ausführungsbeispielen
das Erzeugen 46 eines Alarmsignals aufweisen, wenn eine
Abweichung eines Logikausgangswerts der Logikschaltung im Hinblick
auf ein Testmuster von einem erwarteten Logikausgangswert erfasst
wird. Eine Verifizierung kann z. B. in einer Verarbeitungseinheit
ausgeführt
werden. Es ist ferner möglich,
dass ein Überwachungssignal
erzeugt wird, solange keine Abweichung eines Logikausgangswerts
der Logikschaltung im Hinblick auf ein Testmuster von einem erwarteten
Logikausgangswert erfasst wird. Eine Terminierung des Überwachungssignals
kann dann eine Abweichung eines Logikausgangswerts der Logikschaltung
von einem erwarteten Logikausgangswert anzeigen.
-
Bei
Ausführungsbeispielen
des Verfahrens zum Schützen
eines zu schützenden
Schaltungsteils einer integrierten Schaltung kann das Erzeugen 40 von
Testmustern z. B. unter Verwendung eines Rückkopplungsschieberegisters
einer Verarbeitungseinheit bewirkt werden oder mit Hilfe einer Software
oder eines Computerprogramms. Das Rückkopplungsschieberegister
kann ein LFSR sein. Bei anderen Ausführungsbeispielen der vorliegenden
Erfindung kann das Erzeugen von Testmustern auf automatische Weise
bewirkt werden und auf solche Weise, wie es zum Verifizieren herkömmlicher
Logikschaltungen ausgeführt
wird. Die Testmuster, die erzeugt werden, können so genannte Abtastketten
sein, die seriell über
Teile der Logikgatter verschoben werden oder über alle Logikgatter der Logikschaltung
auf getaktete Weise verschoben werden.
-
Es
sollte darauf hingewiesen werden, dass das Anlegen von Testmustern
und das Verifizieren eines erwarteten logischen Ausgangswerts bei
Ausführungsbeispielen
der vorliegenden Erfindung gleichzeitig zu dem funktionalen Betreiben
der integrierten Schaltung ausgeführt werden kann. Das Verifizieren eines
Logikausgangswerts der Logikschaltung im Hinblick auf die Testmuster
kann z. B. bewirkt werden durch Vergleichen eines Logikausgangswerts
ansprechend auf Testmuster mit einem erwarteten Logikausgangswert.
Zu diesem Zweck kann die Logikschaltung ferner z. B. Komparatoren
aufweisen.
-
Das
Verifizieren 44 eines logischen Ausgangswerts bzw. Logikausgangswerts
kann ferner ausgeführt
werden durch Vergleichen eines logischen Ausgangswerts ansprechend
auf Testmuster mit einem erwarteten logischen Ausgangswert aus einer
Wertetabelle oder Wahrheitstabelle oder Nachschlagtabelle, oder
mit Hilfe einer Wertetabelle zum Erzeugen des Vergleichswerts. Es
ist ferner denkbar, dass die Verifizierung 44 ferner das
Berechnen eines erwarteten Logikausgangswerts als eine Funktion der
Testmuster und das nachfolgende Vergleichen des Logikausgangswerts
ansprechend auf Testmuster mit dem berechneten, erwarteten Logikausgangswert
aufweist. Es wird ferner darauf hingewiesen, dass die Werte eines
Eingangsregisters oder Senderegisters unterschiedlich von den Werten
eines Ausgangs- oder Empfangsregisters sein können.
-
Die
Vergleichswerte oder die erwarteten, logischen Ausgangswerte können z.
B. mit Hilfe einer mathematischen Formel oder mit Hilfe einer spezifischen
logischen Spezifizierung bestimmt werden. Die erwarteten, logischen
Ausgangswerte können somit
deterministisch als eine Funktion des angelegten Testmusters abgeleitet
werden oder werden spezifiziert und können entsprechend mit den empfangenen
Logikausgangswerten verglichen werden.
-
Genauer
gesagt sollte daher darauf hingewiesen werden, dass das Verfahren
ferner als Software implementiert sein kann, abhängig von den Bedingungen. Eine
Implementierung kann auf einem digitalen Speicherungsmedium bewirkt
werden, genauer gesagt auf einer Diskette, einer CD oder DVD, die
elektronisch lesbare Steuersignale aufweist, die mit einem programmierbaren
Computersystem derart zusammenwirken können, dass das entsprechende
Verfahren ausgeführt
wird. Im Allgemeinen besteht die Erfindung somit in einem Computerprogrammprodukt
mit einem Programmcode, der auf einem maschinenlesbaren Träger gespeichert
ist, zum Ausführen
des Verfahrens, wenn das Computerprogrammprodukt auf einem Computer
läuft.
Anders ausgedrückt
kann die Erfindung somit als ein Computerprogramm mit einem Programmcode
zum Ausführen
des Verfahrens realisiert sein, wenn dass Computerprogrammprodukt
auf einem Computer läuft.
-
Gemäß der vorliegenden
Erfindung kann bei einem Ausführungsbeispiel
z. B. ein 8-Bit-Senderegister
auf mehreren Erweiterungsgattern geroutet werden, die z. B. XOR-Gatter
sein können,
mit denen individuellen Bits kombiniert werden können. Die erweiterten Werte
werden dann über
mehr als acht Schutzleitungen über
den zu schützenden
Bereich der integrierten Schaltung geroutet. Zusätzlich dazu kann die Erweiterung
der Schutzleitungen unter Verwendung der Logikgatter lokal ausgeführt werden, wo
mehr Schutzleitungen für
die integrierte Schaltung verwendet werden können. Wie bereits oben erwähnt wurde,
besteht kein Bedarf, alle Schutzsignale zu erweitern.
-
Nach
dem Abdecken der zu schützenden Bereiche
der integrierten Schaltung können
die Schutzleitungen wiederum unter Verwendung von Logikgattern komprimiert
werden. Was wichtig ist, ist, dass eine Änderung bei den erweiterten
Signalen zu einer Änderung
bei den komprimierten Signalen führt.
Diese Änderung
kann sich auf individuelle oder mehrere Signale beziehen. Die komprimierten
Signale können
dann zu dem Empfangsregister geliefert werden. Bei diesem Ausführungsbeispiel
kann das Empfangsregister wiederum ein 8-Bit-Empfangsregister sein.
-
Ausführungsbeispiele
der Erfindung beziehen sich auf eine integrierte Schaltung, die
einen zu schützenden
Schaltungsteil aufweist, wobei die integrierte Schaltung einen Analysierschutz
aufweist, und auf ein Verfahren zum Schützen eines zu schützenden
Schaltungsteils einer integrierten Schaltung.
-
Während diese
Erfindung im Hinblick auf verschiedene Ausführungsbeispiele beschrieben
wurde, gibt es Änderungen,
Permutationen und Entsprechungen, die in den Schutzbereich dieser
Erfindung fallen. Es sollte ferner darauf hingewiesen werden, dass
es viele unter schiedliche Möglichkeiten
zum Implementieren der Verfahren und Zusammensetzungen der vorliegenden
Erfindung gibt. Es ist daher die Absicht, dass die nachfolgenden,
angehängten
Ansprüche
derart interpretiert werden, dass sie alle solchen Änderungen,
Permutationen und Entsprechungen umfassen, die in das wahre Wesen
und den Schutzbereich der vorliegenden Erfindung fallen.