-
Ausführungsbeispiele betreffen allgemein Speicheranordnungen und Verfahren zum Detektieren eines Angriffs auf eine Speicheranordnung.
-
Integrierte Schaltungen, die für sicherheitskritische Anwendungen verwendet werden, beispielsweise auf Chipkarten, sollen typischerweise gegen Angriffe geschützt werden. Ein Typ solcher Angriffe sind Strahlungsangriffe, z. B. Laserattacken oder Ionenstrahl-Attacken, bei denen eine Funktionsstörung eines Bauelements bewirkt werden soll. Möglichkeiten zur Detektion solcher Fehlerangriffe auf digitale Schaltungen wie beispielsweise ROM(Read Only Memory)-Zellenfelder sind wünschenswert.
-
Gemäß einer Ausführungsform wird eine Speicheranordnung bereitgestellt aufweisend eine erste Bitleitung, eine erste Vorladeeinrichtung zum Vorladen der ersten Bitleitung in einen Vorladezustand, eine zweite Bitleitung, eine zweite Vorladeeinrichtung zum Vorladen der zweiten Bitleitung in einen Vorladezustand, eine Speichersteuervorrichtung, die eingerichtet ist, das Vorladen der ersten Bitleitung durch die erste Vorladeeinrichtung für einen Speicherzugriff zu unterbrechen und das Vorladen der zweiten Bitleitung durch die zweite Vorladeeinrichtung für den Speicherzugriff zu unterbrechen, eine Speicherzugriffsvorrichtung, die eingerichtet ist, nach dem Unterbrechen des Vorladens der ersten Bitleitung und dem Unterbrechen des Vorladens der zweiten Bitleitung den Speicherzugriff durchzuführen und den Zustand der zweiten Bitleitung auszulesen und einen Detektor, der eingerichtet ist, basierend auf dem Zustand der zweiten Bitleitung einen Angriff auf die Speicheranordnung zu detektieren.
-
Außerdem wird ein Verfahren zum Detektieren eines Angriffs auf eine Speicheranordnung entsprechend der oben beschriebenen Speicheranordnung bereitgestellt.
-
Die Figuren geben nicht die tatsächlichen Größenverhältnisse wieder sondern sollen dazu dienen, die Prinzipien der verschiedenen Ausführungsbeispiele zu illustrieren. Im Folgenden werden verschiedene Ausführungsbeispiele mit Bezug auf die folgenden Figuren beschrieben.
-
1 zeigt eine Speicheranordnung gemäß einer Ausführungsform.
-
2 zeigt ein Ablaufdiagramm gemäß einer Ausführungsform.
-
3 zeigt ein ROM-Zellenfeld gemäß einer Ausführungsform.
-
4 zeigt ein Beispiel für eine Schaltungsanordnung für eine Bitleitung mit einem Halteglied und ein Vorladeglied.
-
5 zeigt einen Speicher.
-
6 zweigt ein Speicherzellenfeld.
-
7 zeigt eine Ausleseschaltung.
-
Die folgende detaillierte Beschreibung bezieht sich auf die beiliegenden Figuren, die Details und Ausführungsbeispiele zeigen. Diese Ausführungsbeispiele sind so detailliert beschrieben, dass der Fachmann die Erfindung ausführen kann. Andere Ausführungsformen sind auch möglich und die Ausführungsbeispiele können in struktureller, logischer und elektrischer Hinsicht geändert werden, ohne vom Gegenstand der Erfindung abzuweichen. Die verschiedenen Ausführungsbeispiele schließen sich nicht notwendig gegenseitig aus sondern es können verschiedene Ausführungsformen miteinander kombiniert werden, so dass neue Ausführungsformen entstehen.
-
Strahlungsattacken auf ein ROM-Zellenfeld können detektiert werden, indem die Bit-Leitungen des Zellenfeldes so angeordnet werden, dass abwechselnd immer nur eine (die aktive) von zwei benachbarten Bitleitungen ausgelesen wird und die nicht aktive Bitleitung (auch bezeichnet als Detektor-Bitleitung) zur Detektion von Fehlerangriffen benutzt wird, indem sie ebenfalls ausgelesen wird.
-
Wird jedoch diese Detektor-Bitleitung während des Auslesevorgangs im Vorladezustand (Precharge) gehalten, ist sie deutlich weniger sensibel im Vergleich zu der gelesenen (aktiven) Bitleitung. In diesem Fall kann es vorkommen, dass eine aktive Bitleitung angegriffen wird, ohne dass die benachbarte Detektor-Bitleitung einen Alarm meldet.
-
Gemäß einer Ausführungsform wird eine Speicheranordnung (beispielsweise ein ROM-Zellenfeld) bereitgestellt, bei der beim Zugriff (z. B. beim Auslesen) auf eine erste Bitleitung eine zweite Bitleitung ausgelesen wird und dazu verwendet wird, einen Angriff auf die Speicheranordnung zu detektieren, wobei vor dem Zugriff das Vorladen beider Bitleitungen gestoppt wird, d. h. beim Zugriff beide Bitleitungen nicht im Vorladezustand gehalten werden.
-
1 zeigt eine Speicheranordnung 100 gemäß einer Ausführungsform.
-
Die Speicheranordnung 100 weist eine erste Bitleitung 101 und eine erste Vorladeeinrichtung 102 zum Vorladen der ersten Bitleitung 101 in einen Vorladezustand auf.
-
Die Speicheranordnung 100 weist ferner eine zweite Bitleitung 103 und eine zweite Vorladeeinrichtung 104 zum Vorladen der zweiten Bitleitung 103 in einen Vorladezustand auf.
-
Ferner weist die Speicheranordnung 100 eine Speichersteuervorrichtung 105 auf, die eingerichtet ist, eine Speichersteuervorrichtung auf, die eingerichtet ist, das Vorladen der ersten Bitleitung durch die erste Vorladeeinrichtung für einen Speicherzugriff zu unterbrechen und das Vorladen der zweiten Bitleitung durch die zweite Vorladeeinrichtung für den Speicherzugriff zu unterbrechen und eine Speicherzugriffsvorrichtung 106 auf, die eingerichtet ist, nach dem Unterbrechen des Vorladens der ersten Bitleitung und dem Unterbrechen des Vorladens der zweiten Bitleitung den Speicherzugriff durchzuführen und den Zustand der zweiten Bitleitung auszulesen.
-
Die Speicheranordnung 100 weist ferner einen Detektor 107 auf, der eingerichtet ist, basierend auf dem Zustand der zweiten Bitleitung einen Angriff auf die Speicheranordnung zu detektieren.
-
In anderen Worten wird gemäß einem Ausführungsbeispiel eine Detektor-Bitleitung für eine Bitleitung, auf die ein Zugriff erfolgt (d. h. mittels der eine Speicherzelle ausgelesen oder beschrieben wird), verwendet, wobei beide Bitleitungen während des Zugriffs nicht im Vorladezustand gehalten werden. Somit sind gegenüber Fehlerattacken empfindliche Detektorspalten mit empfindlichen Bitleitungen vorhanden.
-
Dieser Detektionsmechanismus kann in Kombination mit anderen Schutz- oder Detektionsmechanismen kombiniert werden, beispielsweise einem Paritätsschutz oder einem Detektionsmechanismus, der auf einer Thyristor-Anordnung in dem ROM-Zellenfeld basiert. Eine solche Kombination kann beispielsweise ermöglichen, auch Strahlungsattacken (z. B. Lichtattacken) mit einem Durchmesser zu detektieren, der kleiner ist als die Breite einer ROM-Speicherzelle und beispielsweise nur eine auszulesende Bitleitung, aber nicht die benachbarte Detektor-Bitleitung beeinflusst.
-
Gemäß einer Ausführungsform ist die Speicherzugriffsvorrichtung eingerichtet, den Zustand der zweiten Bitleitung während des Speicherzugriffs auszulesen.
-
Beispielsweise ist die Speichersteuervorrichtung eingerichtet, das Vorladen der ersten Bitleitung und das Vorladen der zweiten Bitleitung für die Dauer des Speicherzugriffs zu unterbrechen.
-
Der Detektor ist beispielsweise eingerichtet, zu überprüfen, ob die zweite Bitleitung den Vorladezustand hat und das Alarmsignal auszugeben, wenn die zweite Bitleitung nicht den Vorladezustand hat.
-
Gemäß einer Ausführungsform weist die Speicheranordnung eine Ausgabevorrichtung auf, die eingerichtet ist, einen Ausgabewert entsprechend dem Zustand der ersten Bitleitung auszugeben.
-
Die Speicheranordnung kann ferner einen Paritätsspeicher und eine oder mehrere weitere Bitleitungen aufweisen, wobei der Detektor eingerichtet ist, zu überprüfen, ob die Parität des Werts, der durch den Zustand der ersten Bitleitung zusammen mit den Zuständen der ein oder mehreren weiteren Bitleitungen gegeben ist, einer im Paritätsspeicher vorgespeicherten Parität entspricht. Beispielsweise überprüft der Detektor, ob die Parität des binären Wertes, der durch die Zustände der ersten Bitleitung und der ein oder mehreren Bitleitungen (jeweils als Bit-Wert interpretiert) gegeben ist, der vorgespeicherten Parität entspricht.
-
Die zweite Bitleitung ist beispielsweise zwischen der ersten Bitleitung und den ein oder mehreren weiteren Bitleitungen angeordnet.
-
Der Detektor ist beispielsweise eingerichtet, ein Alarmsignal auszugeben, falls die Parität nicht der vorgespeicherten Parität entspricht.
-
Gemäß einer Ausführungsform sind die erste Bitleitung und die zweite Bitleitung in einem Speicherzellenfeld angeordnet.
-
Beispielsweise ist die erste Bitleitung mit einer Vielzahl von Speicherzellen des Speicherzellenfelds gekoppelt und der Zustand der ersten Bitleitung ist durch den Zustand einer Speicherzelle (d. h. einer Speicherzelle des Speicherzellenfeldes, mit der die erste Bitleitung gekoppelt ist) gegeben. Die erste Bitleitung ist beispielsweise eine Bitleitung zum Zugriff (z. B. zum Auslesen) der Vielzahl von Speicherzellen.
-
Das Speicherzellenfeld ist beispielsweise ein ROM-Zellenfeld.
-
Gemäß einer Ausführungsform sind die erste Bitleitung und die zweite Bitleitung Bitleitungen zum Zugriff auf Speicherzellen des Speicherzellenfelds.
-
Die Speicheranordnung kann ferner eine Speicherzugriffssteuervorrichtung aufweisen, die eingerichtet ist, eine Adresse zu empfangen, die ein oder mehrere Speicherzellen des Speicherzellenfelds für den Speicherzugriff adressiert, wobei die erste Bitleitung eine Bitleitung zum Zugreifen auf eine adressierte Speicherzelle ist und die zweite Bitleitung eine Bitleitung zum Zugreifen auf eine andere Speicherzelle als die Speicherzellen, die für den Speicherzugriff adressiert sind, ist.
-
Gemäß einer Ausführungsform ist die zweite Bitleitung eine dedizierte Detektor-Bitleitung. Das heißt beispielsweise, dass die zweite Bitleitung nicht zum Zugriff auf Speicherzellen des Speicherzellenfeldes vorgesehen ist, sondern z. B. nur zum Detektieren von Angriffen.
-
Die Speicheranordnung kann ferner eine Thyristor-Anordnung aufweisen, wobei der Detektor eingerichtet ist, beim Zünden der Thyristor-Anordnung ein Alarmsignal auszugeben.
-
Die erste Bitleitung, die zweite Bitleitung und die Thyristor-Anordnung sind gemäß einer Ausführungsform in einem Speicherzellenfeld angeordnet.
-
Gemäß einer Ausführungsform weist die Speicheranordnung eine Steuereinrichtung auf, die eingerichtet ist, als Reaktion auf das Alarmsignal die Funktion von ein oder mehreren Komponenten eines Chips, der die Speicheranordnung enthält, zu verhindern.
-
Gemäß einer Ausführungsform weist die erste Bitleitung ein erstes Halteglied auf, das eingerichtet ist, die erste Bitleitung nach dem Vorladen im Vorladezustand zu halten, und die zweite Bitleitung weist ein zweites Halteglied auf, das eingerichtet ist, die zweite Bitleitung nach dem Vorladen im Vorladezustand zu halten, wobei das zweite Halteglied schwächer ist als das erste Halteglied.
-
Der Vorladezustand entspricht beispielsweise einem Versorgungspotential (z. B. VDD).
-
Beispielsweise wird ein Verfahren durchgeführt, wie es in 2 dargestellt ist.
-
2 zeigt ein Ablaufdiagramm 200 gemäß einer Ausführungsform.
-
In 201 wird eine erste Bitleitung einer Speicheranordnung in einen Vorladezustand vorgeladen.
-
In 202 wird eine zweite Bitleitung der Speicheranordnung in einen Vorladezustand vorgeladen.
-
In 203 wird das Vorladens der ersten Bitleitung für einen Speicherzugriff unterbrochen.
-
In 204 wird das Vorladens der zweiten Bitleitung für den Speicherzugriff unterbrochen.
-
In 205 wird nach dem Unterbrechen des Vorladens der ersten Bitleitung und dem Unterbrechen des Vorladens der zweiten Bitleitung der Speicherzugriff durchgeführt und der Zustands der zweiten Bitleitung ausgelesen.
-
In 206 wird ein Angriff auf die Speicheranordnung basierend auf dem Zustand der zweiten Bitleitung detektiert.
-
Ausführungsformen, die im Zusammenhang mit der Speicheranordnung 100 beschrieben sind, gelten analog für das Verfahren, das in 2 dargestellt ist.
-
Ausführungsbeispiele werden im Folgenden genauer beschrieben.
-
3 zeigt ein ROM-Zellenfeld 300 gemäß einer Ausführungsform.
-
Das ROM-Zellenfeld 300 weist eine Mehrzahl von in einem Feld angeordneten Speicherzellen 301 auf, die jeweils einen Feldeffekttransistor (FET) 302 aufweisen, der mit einem Source/Drain-Anschluss mit einer jeweiligen Auswahlleitung (sl: select line) 303 verbunden ist und dessen anderer Source/Drain-Anschluss mit einer jeweiligen Verbindungsleitung 304 gekoppelt ist.
-
Wenn eine Speicherzelle 301 eine Null speichert, so ist der andere Source/Drain-Anschluss des FETs der Speicherzelle 301 mittels der Verbindungsleitung 304 mit einer jeweiligen Bitleitung (bl: bit line) 305 gekoppelt.
-
Wenn eine Speicherzelle 301 eine Eins speichert, so ist die Verbindungsleitung 304 durchtrennt.
-
Für jede Spalte des Feldes 300 sind eine Bitleitung 305 bezeichnet mit bl<0>, bl<1>, ... und eine Auswahlleitung 303 bezeichnet mit sl<0>, sl<1>, ... vorgesehen.
-
Außerdem ist für jede Zeile des Feldes 300 eine Wortleitung 306 (bezeichnet mit wl<0>, wl<1>, ...) vorgesehen, die mit den Gate-Anschlüssen der FETs 302 der Speicherzellen der Zeile gekoppelt ist.
-
Zum Auslesen einer Speicherzelle (d. h. für ein Bit als Ausgangsdatum) wird zunächst die Bitleitung 305, die zu der Spalte, in der sich die Speicherzelle befindet, gehört, in einen Vorladezustand versetzt. Der Vorladezustand entspricht dem logischen Wert 1 (z. B. VDD). Außerdem wird die Auswahlleitung 303 die zu der Spalte, in der sich die Speicherzelle befindet, gehört, mit dem logischen Wert 0 entsprechendem Potential verbunden (z. B. VSS) während die Auswahlleitungen der anderen Spalten mit dem Wert 1 entsprechenden Potential verbunden werden (oder bleiben). Dann wird der Transistor mittels eines entsprechenden Signals über die Wortleitung 306, die zu der Spalte, in der sich die Speicherzelle befindet, gehört, durchgeschaltet.
-
Ist die Verbindung 304 vorhanden, so wird die Bitleitung entladen und nimmt somit den Zustand einer logischen 0 an. Ist die Verbindung 304 aufgetrennt, so bleibt die Bitleitung im Vorladezustand und somit im Zustand einer logischen 1. Eine Speicherzugriffsvorrichtung, die mit der Bitleitung gekoppelt ist, kann entsprechend den in der Speicherzelle gespeicherten Wert basierend auf dem Zustand der Bitleitung ermitteln.
-
Zusätzlich zu diesem Auslesen wird gemäß einer Ausführungsform eine benachbarte Spalte des Speicherzellenfeldes als Detektorspalte verwendet. Beispielsweise wird beim Auslesen der Spalte mit Index 0 (mit zugehöriger Bitleitung b<0> und zugehöriger Auswahlleitung s<0>) die Spalte mit Index 1 (mit zugehöriger Bitleitung b<1> und zugehöriger Auswahlleitung s<1>) als Detektorspalte verwendet.
-
Die Bitleitung der Detektorspalte wird ebenfalls in den Vorladezustand gebracht und zusammen mit der Bitleitung, die zu der auszulesenden Speicherzelle gehört, ausgelesen. Ein Fehlerangriff mit einer Energie, die ausreichend hoch ist, der ein oder mehrere Speicherzellen (bzw. zumindest eine mit Null programmierte Speicherzelle) der Detektorspalte trifft, kippt das Potential der Bitleitung der Detektorspalte (d. h. entlädt die Bitleitung der Detektorspalte), beispielsweise indem sie den jeweiligen FET 302 leitend macht.
-
Der aktuelle Zustand der Bitleitung der Detektorspalte wird beispielsweise einer Detektorschaltung zugeführt. Ändert sich der Zustand der Bitleitung der Detektorspalte beim Auslesen (also verliert die Bitleitung der Detektorspalte den Vorladezustand), so erkennt die Detektorschaltung, dass ein Angriff stattgefunden hat und meldet Alarm, d. h. gibt ein Alarmsignal aus, das beispielsweise bewirkt, dass ein oder mehrere Komponenten des Chips, der das Speicherzellenfeld enthält, deaktiviert werden.
-
Dabei wird die Detektor-Bitleitung während des Auslesens nicht im Vorladezustand gehalten.
-
Gemäß einer Ausführungsform werden die Halteglieder der Detektorspalten deutlich schwächer ausgelegt als die für die anderen Bit-Leitungen. Dadurch, dass eine Detektor-Leitung nicht im Vorladezustand gehalten wird und das Halteglied schwächer ausgelegt ist als für die anderen Bitleitungen, ist die Empfindlichkeit der Detektorspalte höher als die der auszulesenden Spalte.
-
4 zeigt ein Beispiel für eine Schaltungsanordnung 400 für eine Bitleitung mit einem Halteglied und ein Vorladeglied.
-
Die Schaltungsanordnung wird mit einer Bitleitung 401, die beispielsweise einer der Bitleitungen 305 entspricht, gekoppelt, wobei die Schaltungsanordnung 400 beispielsweise für jede Bitleitung 305 des Speicherzellenfeldes 300 vorgesehen ist.
-
Ein erster p-Kanal-FET 402 verbindet in Reaktion auf ein (niedrig-aktives) Vorladesignal prq die Bitleitung mit einem Versorgungspotential, das dem Wert 1 entspricht (z. B. VDD). Der erste p-Kanal-FET kann entsprechend als Vorladeglied angesehen werden.
-
Das Vorladesignal ist sowohl für die auszulesende Zellenspalte als auch für die Detektorspalte aktiv, bis die jeweilige Bitleitung den Vorladezustand erreicht hat (ist z. B. für eine bestimmte Zeit aktiv, die basierend auf der Kapazität der Bitleitung etc. vorher ermittelt wurde) und wird nach dem Vorladen und vor dem Auslesen der Bitleitung deaktiviert.
-
Solange die Bitleitung 401 auf dem Wert 1 ist und nicht durch eine Speicherzelle (oder einen Angriff) entladen wird, wird sie durch ein Halteglied, das einen Inverter 403 und einen zweiten p-Kanal-FET 404 aufweist, auf dem Wert 1 gehalten. Konkret invertiert der Inverter 403 den Wert 1 zu einer logischen 0, die den zweiten p-Kanal-Transistor 404 durchschaltet und so die Bitleitung 401 mit dem Versorgungspotential, das dem Wert 1 entspricht (z. B. VDD) verbindet.
-
Wie oben erwähnt wird das Halteglied für eine Detektorspalte beispielsweise schwächer ausgelegt als für eine auszulesende Spalte, damit gewährleistet ist, dass ein Fehlerangriff die Bitleitung 401 trotz des Halteglieds entlädt. Beispielsweise wird der Transistor 404 für eine Detektorspalte schwächer ausgelegt als für eine auszulesende Spalte.
-
Im Folgenden wird ein Speicher beschrieben, in dem beispielsweise das Speicherzellenfeld 400 eingesetzt wird.
-
5 zeigt einen Speicher 500.
-
Der Speicher 500 weist ein Speicherzellenfeld 501 auf. Der Speicher 500 ist beispielsweise auf einem Chip angeordnet, der basierend auf der gespeicherten Information ein kryptographisches Verfahren (z. B. eine Verschlüsselung oder eine Entschlüsselung) durch. Beispielsweise speichert der Speicher 500 eine S-Box für ein DES(Data Encryption Standard)- oder AES(Advanced Encryption Standard)-Verfahren. Entsprechend wird angenommen, dass der Speicher 500 sensible Information speichert und gegen Angriffe geschützt werden soll.
-
Der Speicher 500 ist beispielsweise ein ROM und entspricht beispielsweise dem Speicherzellenfeld 300.
-
Der Speicher 500 weist einen ersten Adressdekoder 502 auf, der die entsprechende Wortleitung aktiviert, wenn eine Speicherzelle ausgelesen werden soll. Der Adressdekoder 502 verarbeitet dazu eine Wortleitungs-Eingangsadresse, die der Speicher 500 über erste Eingangs-Speicherelemente (z. B. Latches) 503 empfängt und die die aktive Wortleitung definiert.
-
Zum Auslesen des Speicherzellenfeldes 501 weist der Speicher einen Block 504 mit Bitleitungsperipherie und Ausgangs-Speicherelementen auf. Jede Bitleitung des Speicherzellenfeldes ist mit einem Ausgangs-Speicherelement gekoppelt.
-
Der Speicher 500 weist einen zweiten Adressdekoder 505 auf, der die Bitleitungen bestimmt, deren Zustände ausgegeben werden. Der zweite Adressdekoder 505 verarbeitet dazu eine Bitleitungs-Eingangsadresse, die der Speicher 500 über zweite Eingangs-Speicherelemente (z. B. Latches) 506 empfängt und die Bitleitungen definiert, deren Zustände ausgegeben werden.
-
Gemäß einer Ausführungsform ermöglicht der zweite Adressdekoder 505 (Bitleitungs-Adressdekoder) eine stromeffiziente Realisierung des Speichers, da er bewirkt, dass nur die Bitleitungen, die wirklich gebraucht werden (d. h. die adressiert sind), ausgelesen werden.
-
Eine Steuereinrichtung (Controller) 507 steuert den Betrieb des Speichers 500 und weist beispielsweise Eingänge für ein Taktsignal und ein Rücksetz-Signal auf.
-
Ein Beispiel für ein Speicherzellenfeld mit 32 (nutzbaren) Speicherzellenspalten ist in 6 dargestellt.
-
6 zweigt ein Speicherzellenfeld 600.
-
Die nutzbaren Speicherzellenspalten (d. h. die nicht als Detektorspalten verwendeten Spalten) sind gepunktet dargestellt und in vier Gruppen 601, 602, 603, 604 mit je 8 Spalten zusammengefasst. Jeder Gruppe ist eine Detektorspalte 605, 606, 607, 608 (durchgezogen dargestellt) zugeordnet, so dass jede neunte Spalte eine Detektorspalte ist.
-
Wie mit Bezug auf 3 erläutert wird davon ausgegangen, dass bei einer Fehlerattacke mit ausreichender Energie, die eine Detektorspalte trifft, bewirkt, dass das Potential der Bitleitung der Detektorspalte umkippt (d. h. die Bitleitung entladen wird). Entsprechend wird ein Alarm ausgegeben, wenn dies detektiert wird. Wie oben erläutert ist dabei die Empfindlichkeit der Detektor-Bitleitungen höher als die der Bitleitungen der anderen (nutzbaren) Spalten, weil das Halteglied für die Detektorspalten deutlich schwächer ausgelegt wird als für die anderen Bitleitungen. Damit wird sichergestellt, dass eine Detektorspalte immer bereits dann einen Alarm liefert, wenn das für eine andere Spalte noch nicht der Fall wäre. Dennoch sind die Detektorspalten unter normalen Verhältnissen, also wenn keine Fehlertattacke erfolgt, dank des Haltegliedes stabil.
-
Die Bitleitungs-Eingangsadresse hat in diesem Beispiel 3 bit und adressiert für jede Gruppe von Speicherzellenspalten eine der acht Spalten. Jede adressierte Spalte gibt den Wert aus, der in der Speicherzelle der Spalte gespeichert ist, die durch die Wortleitungs-Eingangsadresse definiert ist. Somit werden in diesem Beispiel vier Bit (das heißt ein Nibble), bezeichnet als Bit0 bis Bit3, parallel ausgegeben.
-
In Kombination mit der Verwendung von Detektorspalten werden in diesem Ausführungsbeispiele Parität-Bits verwendet, um so einen Schutz gegen kleinflächige und großflächige Fehlerangriffe zu erreichen.
-
Dafür ist eine Gruppe von acht Paritäts-Speicherzellenspalten 609 vorgesehen.
-
Jede Paritäts-Speicherzellenspalte ist vier Speicherzellenspalten zugeordnet, die zu unterschiedlichen Gruppen gehören und innerhalb der jeweiligen Gruppe dieselbe Position haben.
-
Beispielsweise ist die erste Paritäts-Speicherzellenspalte der ersten Speicherzellenspalte der ersten Gruppe, der ersten Speicherzellenspalte der zweiten Gruppe, der ersten Speicherzellenspalte der dritten Gruppe und der ersten Speicherzellenspalte der vierten Gruppe zugeordnet.
-
Der Wert, der in einer Speicherzelle einer Paritäts-Speicherzellenspalte in einer Zeile gespeichert ist, ergänzt die Werte, die in den Speicherzellen der zugeordneten Speicherzellenspalten in der Zeile gespeichert sind beispielsweise derart, dass die Werte zusammen eine gerade Parität haben.
-
Die Speicherzellen, die die Paritätsinformation tragen, also die Paritäts-Speicherzellenspalten 609, sind in diesem Beispiel in einem gesonderten Bereich des Zellenfeldes 600 platziert.
-
Da durch die Anordnung von einer Detektorspalte zwischen zwei Gruppen 601 bis 604 immer nur höchstens ein Bit der ausgelesenen 4 Bit mit einer Strahlungsattacke, die so einen geringen Durchmesser hat, dass sie keine Detektorspalte erfasst, gestört werden kann, wird durch solch eine Fehlerattacke (mit einem Durchmesser der kleiner ist als der Abstand der Detektor-Spalten) zumindest ein Paritätsfehler erzeugt, da das zugehörige Paritätsbit in dem gesonderten Bereich des Zellenfeldes gespeichert ist und somit nicht auch durch den Fehlerangriff verfälscht werden kann. Beispielsweise überprüft die Detektorschaltung die Parität beim Auslesen eines Nibbles und gibt entsprechend ein Alarmsignal aus, falls sie einen Paritätsfehler detektiert.
-
Fehlerangriffe mit einem Durchmesser, der größer ist als der Abstand der Detektor-Spalten, treffen mindestens eine Detektorspalte und können somit mittels der Detektorspalte (und ggf. auch durch die geänderte Parität) detektiert werden.
-
Für ein Zellenfeld mit einer Bitleitungs-Adresse von 3 Bit kann die Ausleseschaltung (die Teil von Block 504 ist) für ein Bit des Ausgangsdatums (des Ausgangs-Nibbles) wie in 7 dargestellt realisiert werden.
-
7 zeigt eine Ausleseschaltung 700.
-
Die Ausleseschaltung 700 ist mit acht Bitleitungen, bl<0> bis bl<7> gekoppelt, die beispielsweise zu derselben Gruppe einer der Gruppen 601, 602, 603, 604 gehören.
-
Für jede Bitleitung ist ein erster p-Kanal-FET 701 vorgesehen, der zwischen die Bitleitung und das hohe Versorgungspotential (z. B. VDD) gekoppelt ist. Den Gate-Anschlüsse der ersten p-Kanal-FETs 701 wird ein Bitleitungs-Aktivierungssignal zugeführt. Ist das Bitleitungs-Aktivierungssignal blEn hoch, so sind die p-Kanal-FETs 701 gesperrt und die Bitleitungen sind aktiv. Ist das Bitleitungs-Aktivierungssignal blEn niedrig, so sind die p-Kanal-FETs 701 eingeschaltet und die Bitleitungen werden auf dem hohen Versorgungspotential gehalten.
-
Außerdem ist für jede Bitleitung ist ein zweiter p-Kanal-FET 702 vorgesehen, der zwischen das hohe Versorgungspotential und den Datenausgang data_o gekoppelt ist, und dessen Gate-Anschluss mit der jeweiligen Bitleitung gekoppelt ist. In diesem Beispiel wird angenommen, dass alle acht Bitleitungen in den Vorladezustand gebracht werden. Entsprechend kann beim Auslesen (im Normalzustand, d. h. ohne Strahlungsattacke) höchstens einer der p-Kanal-FETs 702 durchschalten, nämlich der, der der Bitleitung der auszulesenden Spalte zugeordnet ist. Dieser p-Kanal-FET 702 schaltet durch, falls die auszulesende Zelle eine Null speichert und entsprechend die Bitleitung der auszulesenden Spalte auf 0 schaltet. In diesem Fall wird eine 1 ausgegeben. Die Ausgabe ist in diesem Beispiel also invertierend.
-
Mit den 3 Bit des Bitleitungs-Dekoders wird immer eine aus den 8 Bitleitungen ausgewählt und die entsprechende Auswahl-Leitung auf das niedrige Versorgungspotential gesetzt. Da im Normalbetrieb (d. h. ohne Fehlerattacke) immer nur eine Bitleitung schalten kann, kann die Ausleseschaltung sehr flächeneffizient als eine Wired-OR-Schaltung, wie sie die zweiten p-Kanal-FETs 702 bilden, realisiert werden, da nur jede achte Bitleitung aktiviert wird, d. h. eine Bitleitung pro Gruppe 601 bis 604 durch die jeweilige Auswahlleitung aktiviert wird.
-
In einer Ausführungsform wird die Ausleseschaltung 700 für ein Speicherzellenfeld verwendet, das die Struktur des Speicherzellenfelds 600 hat, bei dem die Detektor-Spalten 605, 606, 607, 608 jedoch nicht vorhanden sind. In diesem Fall sind gemäß einer Ausführungsform für die Detektion von Strahlungsangriffen zwei weitere Wired-OR-Schaltungen vorgesehen, wobei eine Wired-OR-Schaltungen mit den geraden Bitleitungen (also b<0>, b<2> usw.) und eine mit den ungeraden Bitleitungen (also b<1>, b<3> usw.) gekoppelt ist.
-
Dafür ist für jede Bitleitung ist ein dritter p-Kanal-FET 703 vorgesehen, der zwischen das hohe Versorgungspotential und für eine gerade Bitleitung mit einem Ausgang für die geraden Bitleitungen evenOut und für eine gerade Bitleitung mit einem Ausgang für die ungeraden Bitleitungen oddOut gekoppelt ist, und dessen Gate-Anschluss mit der jeweiligen Bitleitung gekoppelt ist.
-
Die Ausgänge evenOut und oddOut bilden die Ausgänge der beiden weiteren Wired-OR-Schaltungen. Die Detektorschaltung wertet die Ausgangssignale an den Ausgängen evenOut und oddOut aus. Im Normalzustand (d. h. ohne Fehlerattacke) darf nur höchstens eine der beiden Ausgänge schalten, d. h. beim Auslesen einer Bitleitung seinen Zustand von 0 auf 1 ändern. Schalten hingegen bei einem Zugriff beide Ausgänge, so interpretiert die Detektorschaltung das so, dass eine Strahlungsattacke stattgefunden hat und generiert ein Alarmsignal. Beispielsweise können die beiden Ausgänge mit einem UND-Gatter verbunden sein, dass entsprechend als Alarm eine 1 ausgibt, wenn beide Ausgänge auf 1 schalten.
-
Wie oben beschrieben werden die Bitleitungen, die aktuell nicht ausgelesen werden, während des Auslesens nicht im Vorladezustand gehalten, so dass eine hohe Empfindlichkeit gegen Attacken gewährleistet ist. Mit der Schaltungsanordnung 700 lassen sich Strahlungsattacken (z. B. mittels Strahlungsbündeln) in der Größenordnung von zwei ROM-Zellbreiten detektieren.
-
Eine Wired-OR-Schaltung kann auch zum Auslesen für das Zellenfeld 600 verwendet werden, wo das Detektieren von Strahlungsattacken mittels der Detektor-Spalten 605, 606, 607, 608 erfolgt, in anderen Worten dedizierte Detektor-Spalten vorgesehen sind, während gemäß 7 alle aktuell nicht auszulesenden Spalten mittels der beiden weiteren Wired-OR-Schaltungen als Detektorspalten verwendet werden. Beispielsweise kann die Schaltungsanordnung 700 als Speicherzugriffsvorrichtung für das Zellenfeld 600 verwendet werden, wobei auf die dritten P-Kanal-Transistoren 703 verzichtet wird und Strahlungsattacken mittels der Detektor-Spalten 605, 606, 607, 608, ggf. in Kombination mit Paritätsbits, detektiert werden. Die Detektor-Spalten 605, 606, 607, 608 werden beispielsweise getrennt ausgelesen.
-
Gemäß einer Ausführungsform werden Detektorspalten (z. B. in der Form zusätzlicher Zellenspalten wie in 6 oder in Form aktuell nicht zu lesender Zellenspalten wie in 7) implementiert und zusätzlich eine oder mehrere Anordnungen inmitten des Zellenfelds vorgesehen, die charakteristisch für einen Thyristor sind, also z. B. eine Kombination p+ Gebiet – n-Wanne – p-Wanne – n+ Gebiet aufweisen.
-
Diese Anordnungen können so ausgebildet werden, dass der parasitäre Thyristor bei einem Lichtangriff zündet. In Reaktion auf das Zünden wird beispielsweise ein Alarm ausgegeben.
-
Beispielsweise ist in dem Substrat des Chips, der das Zellenfeld enthält, eine dotierte Wanne mit einem Wannenanschluss und eine Transistorstruktur mit wenigstens einem Potentialanschluss ausgebildet, wobei die Transistorstruktur einen parasitären Thyristor aufweist, der teilweise in der dotierten Wanne angeordnet ist, wobei der Potentialanschluss und der Wannenanschluss über einen Widerstand verbunden sind, wobei der Widerstand so ausgebildet ist, dass ein Lichtangriff den parasitären Thyristor durchschaltet.
-
Außerdem kann eine Alarmschaltung vorgesehen sein, die so eingerichtet ist, dass bei einem Zünden (Durchschalten) des parasitären Thyristors eine Funktion des Chips zumindest zeitweise blockiert wird.
-
Durch den Abstand zwischen den Detektorspalten, sowie der Dimensionierung des parasitären Thyristors, z. B. den Abstand zwischen den p+-Gebieten in der n-Wanne der Thyristorstruktur lässt sich der minimale Durchmesser der detektierbaren Fehlerattacke festlegen.
-
Obwohl die Erfindung vor allem unter Bezugnahme auf bestimmte Ausführungsformen gezeigt und beschrieben wurde, sollte es von denjenigen, die mit dem Fachgebiet vertraut sind, verstanden werden, dass zahlreiche Änderungen bezüglich Ausgestaltung und Details daran vorgenommen werden können, ohne vom Wesen und Bereich der Erfindung, wie er durch die nachfolgenden Ansprüche definiert wird, abzuweichen. Der Bereich der Erfindung wird daher durch die angefügten Ansprüche bestimmt, und es ist beabsichtigt, dass sämtliche Änderungen, welche unter den Wortsinn oder den Äquivalenzbereich der Ansprüche fallen, umfasst werden.