-
Die
vorliegende Erfindung bezieht sich auf eine Vorrichtung zum Erzeugen
eines Signalpaares, eine Vorrichtung zum Erzeugen eines rückgewonnenen
Datensignals, eine Vorrichtung zur Durchführung einer Datenpfadoperation
und eine Vorrichtung zum Speichern eines Signalpaares, und insbesondere
auf eine Vorrichtung zum Erzeugen eines Signalpaares sowie einer
Vorrichtung zum Erzeugen eines rückgewonnenen
Datensignals, die eine sichere Übertragung
eines Datensignal über
einen Datenpfad ermöglichen.
-
Integrierte
Schaltungen (IC; IC = integrated circuit) die sicherheitsrelevante
Anwendungen ausführen, müssen gegenüber Angriffen
von außen
geschützt
werden. Die differentielle Stromprofilanalyse (DPA; DPA = differential
power analysis) ist eine der wichtigsten Methoden zum Angriff auf
ICs für
Sicherheitsanwendungen sowie zur Beurteilung der Empfindlichkeit
von ICs gegenüber
gezielten Angriffen auf vertrauliche Informationen wie Paßwörter oder
kryptographische Schlüssel.
Bei der DPA wird für
ein gegebenes Programm bzw. einen gegebenen Algorithmus ein gemessenes
Stromprofil des ICs bzw. dessen über
ein oder mehrere Taktzyklen berechnetes Ladungsintegral mit statistischen
Methoden ausgewertet. Aus einer Korrelation einer systematischen
Datenvariation und dem dazugehörigen
Ladungsintegral können
für eine
Vielzahl von Programmausführungen
Rückschlüsse auf
die zu schützende
Information gezogen werden.
-
Häufig werden
Mikroprozessoren und -controller für sicherheitsrelevante Anwendungen
eingesetzt. Im Kern einer Verarbeitungseinheit moderner Mikroprozessoren
und -controller, der sogenannten CPU (CPU; CPU = central processing
unit), befindet sich der Datenpfad. Der Datenpfad bildet eine Zusammenschaltung sämtlicher
Funktionseinheiten zur Verarbeitung von Daten innerhalb der CPU.
Die Zusammenschaltung erfolgt über
Leitungsbündel,
sogenannte Datenbusse, und umfaßt
charakteristische Funktionseinheiten wie Multiplexer, arithmetrisch-logische
Einheit (ALU), Shifter und als Registerfiles bezeichnete Speicherschaltungen.
-
Ein
im folgenden betrachtetes Registerfile dient einerseits dem Speichern
bzw. Zwischenspeichern von Adressen und Daten, die für die gerade
von der CPU bearbeitete Aufgabe benötigt werden. Damit kann das
Registerfile als ein Notizblockspeicher aufgefaßt werden. Des weiteren dient
das Registerfile zum schnellen, wahlfreien und gleichzeitigen Lesezugriff
auf im allgemeinen mindestens zwei ALU-Operanden sowie einem schnellen,
wahlfreien und mit Lesezugriffen gleichzeitigen Schreibzugriff.
Dazu weist das Registerfile sogenannte Write Back Ports auf, die
zum Zurückschreiben
von Ergebnissen bzw. Zwischenergebnissen von ALU-Rechenoperationen
dienen. Außerdem
dient das Registerfile dem Laden sowie dem Auslagern von Adressen
und Daten in sowie aus dem Registerfile. Dazu weist das Registerfile
Schreib-/Leseports auf, die der Kommunikation mit Systemteilen außerhalb
des CPU Datenpfades dienen.
-
Um
bei einem möglichst
geringen Flächen-
und Energieverbrauch all diesen Anforderungen genügen zu können, werden
Registerfiles oft als Mehrtorspeicher, sogenannten Multi-Port RAMs
(RAM; RAM = random access memory) ausgeführt. Ein RAM besteht aus über ihre
Bitleitungsbündel
zusammengeschalteten Registern, wobei ein Funktionseinheitsregister
hier definiert ist als Menge von gleichartigen sogenannten Ein-Bit-Registerzellen
mit den oben aufgelisteten vier Eigenschaften des Registerfiles.
Die Anzahl von Bits, die in einem Register gespeichert werden können, entspricht
im allgemeinen einer Bitbreite des Datenpfades. Die Anzahl der Ports
entspricht der maximalen Anzahl von verschiedenen Zugriffen, die
auf unterschiedliche Register gleichzeitig möglich sein sollen.
-
6 zeigt
eine Ein-Bit-Registerzelle gemäß dem Stand
der Technik, mit der im obigen Sinne minimalen Anzahl von vier Ports
A, B, C, Z. Port A weist ein Bitleitungspaar bla, blaq sowie eine
Wortleitung wla auf. Port B weist ein Bitleitungspaar blb, blbq
sowie eine Wortleitung wlb auf. Port Z weist ein Bitleitungspaar
blzq, blz und eine Wortleitung wlz und Port C ein Bitleitungspaar
blcq, blc sowie eine Wortleitung wlc auf. Über die Ports A und B werden üblicherweise
Operanden ausgelesen. Über
Port Z wird ein Rechenergebnis zurückgeschrieben und über Port
C werden Speicherinhalte von außerhalb
des Datenpfades geladen bzw. nach dort ausgelagert.
-
Die
Ports A und B werden also als reine Leseports beschrieben. Bei niedrigem
Potentialpegel der Wortleitungen wla und wlb sperren die n-Kanal-Transfertransistoren 612.
Zunächst
werden die den Bitleitungspaaren bla, blaq und blb, blbq jeweils
entsprechenden Knoten auf einen hohen Potentialpegel Vdd vorgeladen und
dann von der dazu pro Bitleitungspaar in der Peripherie des Registerfiles
vorgesehenen Vorladevorrichtung (nicht gezeigt) abgetrennt. Die
Bitleitungspaare bla, blaq bzw. blb, blbq befinden sich dann nach
wie vor auf hohem Potentialpegel Vdd, werden aber nicht mehr aktiv,
d. h. durch leitende Verbindung mit der Versorgungsspannungsquelle
dort gehalten, sondern nur kapazitiv. Dieser als floating state
bezeichnete Zustand wird mit (H, H) bezeichnet. Kurz danach werden
die Bitleitungspaare bla, blaq bzw. blb, blbq durch auf hohen Potentialpegel
angehobene Wortleitungen wla und/oder wlb leitend verbunden mit
den Knoten bit bzw. bitq innerhalb der Zelle 615. Da einer
der beiden Knoten bit, bitq auf niedrigem Potential liegt, wird
auch die mit ihm über den
nun geöffneten
Transfertransistor 612 leitend verbundene Bitleitung bla,
blaq, blb, blbq auf niedriges Potential entladen. Damit liegen die
auszulesenden Bits auf den jeweiligen Bitleitungspaaren bla, blaq
bzw. blb, blbq und können
von anderen Teilen des Datenpfades übernommen werden, während die
Wortleitungen wla, wlb wieder auf niedriges Potential abgesenkt
werden, um die Speicherzelle wieder von den Bitleitun gen abzutrennen,
damit die Bitleitungen auf den folgenden Zugriff vorbereitet werden
können.
Ein logischer Wert 1 eines Bits entspricht einem Bitleitungspaarwert
(1, 0) und ein logischer Wert 0 eines Bits entspricht einem Bitleitungspaarwert
(0, 1).
-
Der
Port Z wird als reiner Schreibport betrieben. Bei geschlossenen
n-Kanal-Transfertransistoren 614 liegt die Wortleitung
wlz auf niedrigem Potentialpegel, so daß die Transistoren 614 sperren.
Zunächst
wird ein zu schreibendes Bit von außen auf das Bitleitungspaare
blz, blzq übertragen,
bevor die Wortleitung wlz auf einen hohen Potentialpegel angehoben
wird, wodurch wiederum die Knoten bit bzw. bitq innerhalb der Zelle 615 leitend
verbunden werden mit dem Bitleitungspaar blz bzw. blzq. Ein unmittelbar
danach bestehender kapazitiver Spannungsteiler mit, im Vergleich
zu Kapazitäten
innerhalb der Zelle, im allgemeinen sehr großen Bitleitungskapazitäten, unterstützt durch
eine äußere Schreibschaltung
(nicht gezeigt) und eine Rückkopplung
innerhalb der Zelle führen
dann dazu, daß der
zuvor in der Zelle gespeicherte Wert des Potentials mit dem an dem
Bitleitungspaar blz, blzq anliegenden überschrieben wird. Damit kann
also die Wortleitung w1z wieder auf niedriges Potential abgesenkt
werden, um die Speicherzellen wieder von den Bitleitungen zu trennen,
damit letztere auf den folgenden Zugriff vorbereitet werden können.
-
Der
in 6 gezeigten Zelle kann nicht angesehen werden,
welche der Ports A, B, C, Z als Leseports und welche als Schreibports
dienen. Dies wird festgelegt durch ein von außen aufgeprägtes zeitliches Verhalten bzw.
durch eine Ansteuerung von Wortleitungen wla, wlb, wlz und Bitleitungen
bla, blaq, blb, blbq, blz, blzq. Dem als Schreib- und Leseport beschriebenen
Port C sind daher in der Peripherie Registerfiles sowohl Vorlade-
als auch Schreib- und Lesetreiberschaltungen (nicht gezeigt in 6)
zugeordnet.
-
Üblicherweise
sind Schaltnetze in ICs in einer sogenannten Single-Rail Schaltungstechnik
ausgeführt. Dabei
ist jedes Bit einer zu verarbeitenden Information physikalisch dargestellt
durch genau einen elektrischen Knoten. Single-Rail Schaltnetze sind
anfällig
gegenüber
DPA-Angriffen.
-
Um
DPA-Angriffe zu verhindern, sollten ICs im Idealfall so ausgelegt
sein, daß sie
unabhängig
von den zu verarbeitenden Daten immer das gleiche Stromprofil liefern.
Für eine
Single-Rail Datenpfad-Implementierung
ist dies jedoch nicht der Fall. Ein, einem zeitlichen Verlauf der
Zustände
einer Schaltung zugeordnetes Ladungsintegral ist eine Funktion derjenigen
Knoten bzw. elektrischen Kapazitäten,
die elektrisch umgeladen werden. Eine Single-Rail Implementierung
weist also eine starke Abhängigkeit
auf, von den zeitlichen Änderungen
der zu verarbeitenden Daten.
-
Zur
Vermeidung des Problems variabler Ladungsintegrale wird die sogenannten
Dual-Rail Logik zur Implementierung der Datenpfade verwendet. Im
Gegensatz zur herkömmlichen
Single-Rail Logik,
bei der jedes Bit innerhalb eines Daten- oder Signalpfades physikalisch
dargestellt wird, durch genau einen elektrischen Knoten k eines
Schaltnetzes oder Schaltwerkes, wird bei Implementierung mit Dual-Rail
Logik jedes Bit durch zwei Knoten k und kq dargestellt, wobei dieses
Bit einen gültigen
logischen Wert aufweist, wenn k dem wahren logischen Wert b dieses
Bits entspricht und kq dem negierten Wert bn = | b. Die in 6 gezeigte
Registerzelle ist in Dual-Rail Technik realisiert.
-
Die
gewünschte
Invarianz der Leitungsintegrale wird bei der Dual-Rail Technik dadurch
erreicht, daß zwischen
je zwei Zuständen
mit gültigen
logischen Werten (b, bn) = (1, 0) oder (0, 1) ein sogenannter Vorlade-Zustand,
auch Precharge genannt, eingefügt
ist. Bei diesem Vorlade-Zustand werden sowohl k als auch kq auf
dasselbe elektrische Potential geladen und nehmen somit logisch
ungültige
Wert von (1, 1) oder (0, 0) an. Für einen Vorlade-Zustand (1,
1) könnte
also eine Zustandsfolge aussehen wie folgt:
(1, 1) -> (0, 1) -> (1, 1) -> (1, 0) -> (1, 1) -> (1, 0) -> (1, 1) -> (0, 1) -> ...,
-
Für eine jede
beliebige solcher Zustandsfolgen gilt, daß bei einem jeden Übergang
(1, 1) -> (b, bn) genau
ein Knoten von 1 nach 0 umgeladen wird, und für alle (b, bn) -> (1, 1) genau ein Knoten
von 0 nach 1, unabhängig
vom logisch gültigen
Wert b des in Frage stehenden Zustandsbits.
-
Analoges
gilt für
Zustandsfolgen mit dem Vorladezustand (0, 0).
-
Daraus
aber folgt, daß die
diesen Zustandsfolgen entsprechenden Ladungsintegrale unabhängig sind von
der Abfolge (b, bn) der logisch gültigen Werte, falls nur dafür Sorge
getragen wird, daß die
Knoten k und kq gleiche elektrische Kapazitäten aufweisen. Das Stromprofil
eines so implementierten Datenpfades hängt also nicht ab von zeitlichen
Variationen der zu verarbeitenden Daten. Es ist somit gegenüber DPA-Angriffen resistent.
In realen Schaltungen weisen die Knoten k und kq jedoch üblicherweise
ungleiche Kapazitäten
auf.
-
7 zeigt
einen Datenpfad bestehend aus zwei Signalleitungspaaren 702, 704.
Der Datenpfad ist in Dual-Rail Technik ausgeführt. Das bedeutet, daß das Leitungspaar 702 eine
Signalleitung x und eine zu der Signalleitung x komplementäre Signalleitung
xq aufweist. Ebenso weist das Leitungspaar 704 eine Signalleitung
y und eine zu der Signalleitung y komplementäre Signalleitung yq auf. Die
Signalleitungspaare (x, xq) und (y, yq) weisen mit C(*) bezeichnete
Kapazitäten 712, 714, 716, 718 zu
einem festen Potential sowie mit C(*,#) bezeichnete Koppelkapazitäten 722, 724, 726 zwischen
den Signalleitungen x, xq, y, yq auf. In 7 sind nur die
Koppelkapazitäten 722, 724, 726 zwischen
benachbarten Signalleitungen x, xq, y, yq dargestellt. Die Signalleitung
x weist die Kapazität
C(x) 712, die Signalleitung xq weist die Kapazität C(xq) 714,
die Signalleitung y weist die Kapazität C(y) 716 und die
Signalleitung yq weist die Kapazität C(yq) 718 auf. Die
Signalleitungen x, xq sind über
die Koppelkapazität
C(x, xq) 722, die Signalleitungen xq, y sind über die
Koppelkapazität
C(xq, y) 724 und die Signalleitungen y, yq über die
Koppelkapazität
C(y, yq) 726 verbunden.
-
Abhängig von
einem Vorladezustand und einem nachfolgenden logisch gültigen Zustand
müssen
einige der genannten Kapazitäten
umgeladen werden. In der nachfolgenden Tabelle sind diejenigen Summen von
Kapazitäten
angegeben, die bei einem Übergang
von einem Vorladezustand (0, 0) in die logisch gültigen Zustände (0, 1) oder (1, 0) aufgeladen
werden:
-
Aus
der obigen Tabelle ist zu entnehmen, daß für Koppelkapazitäten C(*,#) > 0, d. h. für Koppelkapazitäten 722, 724, 726 die
sich von 0 unterscheiden und/oder Kapazitäten C(*) ≠ C(*q), das bedeutet für ungleiche
Kapazitäten 712, 714 des
ersten Leitungspaares 702 sowie für ungleiche Kapazitäten 716, 718 des
zweiten Leitungspaares 704, sich datenabhängige Kapazitätssummen ΔC und somit
datenabhängige
Ladungsintegrale ergeben.
-
Solche
datenabhängige
Kapazitätssummen
und Ladungsintegrale können
weiterhin für
DPA-Angriffe genutzt werden. Die Dual- Rail Technik bietet somit keinen wirksamen
Schutz gegenüber
DPA-Angriffen.
-
Eine
Reduzierung des Problems datenabhängiger effektiver Koppelkapazitäten, die
eine DPA-Analyse ermöglichen,
lässt sich
mittels einer in bestimmten Abständen
im Layout vorgenommenen physikalischen Vertauschung einer Anordnung
von Bitleitungen erreichen. Diese als Auskreuzen von Bitleitungen
bezeichnete Technik wird vor allem in DRAMs eingesetzt. Dadurch
läßt sich
eine Datenabhängigkeit
effektiver Koppelkapazitäten
reduzieren. Eine Datenabhängigkeit
von Leitungskapazitäten
gegenüber
einem festen Potential bleibt jedoch bestehen. Durch das Auskreuzen
lässt sich
somit eine DPA-Analyse nicht verhindern. Ein weiterer Nachteil des
Auskreuzens besteht in dem erheblichen Flächenaufwand, den diese Maßnahme erfordert.
-
Die
DE 199 36 918 A1 beschreibt
ein Verschlüsselungsverfahren
zum Ausführen
von kryptographischen Operationen wobei eine kryptographische Teiloperation
von digital als Datenbitworten gespeicherten Daten ausgeführt und
das jeweilige Ergebnis digital als Datenbitworte abgespeichert bzw.
zwischengespeichert wird. Hierbei wird wenigstens eines der Daten
oder des Ergebnisses in Abhängigkeit
von einem auf Zufallszahlen basierenden Steuersignal wahlweise bitweise
komplimentiert oder nicht komplimentiert.
-
Die
US 6,654,884 B2 beschreibt
Techniken um zu verhindern, dass die Informationen aus kryptographischer
Hardware mittels einer differentiellen Poweranalysis herausgefunden
werden können.
Dazu können Ausgleichsschaltungen
innerhalb kryptographischer Bausteine genutzt werden um die Variation
in der Leistungsaufnahme zu reduzieren. Module können so gebaut werden, dass
die Anzahl der durchgeschalteten Transistoren gleichgehalten wird.
-
SAPUTRA,
H., et al.: Masking the energy behaviour of encryption algorithms.
In: IEE Proc. Computers and Digital Techni ques, 2003, vol. 150,
No. 5, Seite 274 bis 284 beschäftigt
sich mit Angriffen auf Chipkarten. Um Chipkarten vor einer Stromanalyse
zu schützen,
werden kryptische Operationen so ausgeführt, dass gleichzeitig die
normalen und die komplementären
Versionen von Operanden verarbeitet werden.
-
MOORE,
S., et al.: Improving Smart Card Security using Selftimed Circuits.
In: Proc. Int. Symposium on Asynchronous Circuits and Systems, 2002,
Seiten 211-218 beschreibt Schaltungen, die es ermöglichen Chipkarten
resistenter gegenüber
Zeitanalysen, Leistungs- und Abstrahlungsanalysen Taktstörungen und Leistungsstörungen sowie
Fehlereinspeisungen machen. Zur Verschleierung der Leitungsaufnahme
wird dual-real Technik eingesetzt.
-
Es
ist die Aufgabe der vorliegenden Erfindung, eine Vorrichtung zur
Durchführung
einer Datenpfadoperation zu schaffen, die eine sichere Übertragung
und Verarbeitung von Daten ermöglicht.
-
Diese
Aufgabe wird durch eine Vorrichtung zur Durchführung einer Datenpfadoperation
gemäß Anspruch
1 gelöst.
-
Der
Erfindung liegt die Erkenntnis zugrunde, daß sich ein Datensignal über ein
komplementäres
Signalleitungspaar sicher übertragen
läßt, wenn
das Datensignal abhängig
von einem Umstellungssignalwert auf der Signalleitung des Signalleitungspaares
oder der komplementären
Signalleitung des Signalleitungspaares übertragen wird. Die Funktion
von Signalleitung und komplementärer
Signalleitung wird erfindungsgemäß, abhängig von
dem Umstellungssignalwert vertauscht.
-
Der
Umstellungssignalwert ist dabei vorzugsweise unabhängig von
dem Datensignal. Gemäß einem bevorzugten
Ausführungsbeispiel
weist das Umstellungssignal zufallsgesteuert sowie zeitgesteuert
den ersten Wert oder den zweiten Wert auf.
-
Der
Umstellungssignalwert wird sowohl der Vorrichtung zum Erzeugen eines
Signalpaares als auch der Vorrichtung zum Erzeugen eines rückgewonnenen
Datensignals bereitgestellt. Dadurch ist es möglich, ein Datensignal in der
Vorrichtung zum Erzeugen eines Signalpaares in ein Signalpaar zu
wandeln und später
in einer Vorrichtung zum Erzeugen eines rückgewonnenen Datensignals rückzugewinnen.
Unabhängig
davon ob das Datensignal, gemäß dem Umstellungssignalwert über die
Signallei tung oder die komplementäre Signalleitung übertragen
wurde, wird der wahre Wert des Datensignals in der Vorrichtung zum
Erzeugen eines rückgewonnenen
Datensignals zurückgewonnen.
-
Durch
eine bevorzugterweise zufallsgesteuerte Vertauschung der Rollen
von Signal und Komplementärsignal
beim Übertragen
von Datensignalen auf einem Datenpfad zwischen der Vorrichtung zum
Erzeugen eines Signalpaares und der Vorrichtung zum Erzeugen eines
rückgewonnenen
Datensignals wird erreicht, daß sich
für eine
Vielzahl logisch identischer Programmabläufe eines Gesamtsystems ein
Einfluß kapazitiver
Unsymmetrien der Signalleitung und der komplementären Signalleitung
sowie von Koppelkapazitäten
zwischen Signalleitungspaaren und deren jeweiligen physikalisch
benachbarten Signalleitungen auf ein Ladungsintegral der betrachteten
Verarbeitungszyklen im statistischen Mittel aufhebt. Mithin wird
die Relevanz kapazitiver Unsymmetrien und Kopplungskapazitäten eines
Datenpfades oder Bussystems für
DPA-Angriffe eliminiert.
-
Der
erfindungsgemäße Ansatz
eignet sich besonders zum Einsatz in integrierten Schaltungen, deren Datenpfade
in Dual-Rail Technik ausgeführt
sind und in Precharge Technik arbeiten. In Datenverarbeitungssystemen,
die eine Mehrzahl von ICs aufweisen, lässt sich der erfindungsgemäße Ansatz
zur sicheren Übertragung
von Daten zwischen den ICs einsetzen.
-
Der
erfindungsgemäße Ansatz
ist in digitaler Logik implementierbar, weist einen geringen Platzbedarf auf
und ermöglicht
somit eine kostengünstige
und zuverlässige
Methode zur Verhinderung von DPA-Angriffen auf sicherheitsrelevante
Schaltkreise. Auch in nicht-sicherheitsrelevanten Anwendungen kann
die vorliegende Erfindung vorteilhaft eingesetzt werden, um nachteilige
Effekte kapazitiver Unsymmetrien zu vermeiden.
-
Ferner
wird die vorliegende Erfindung vorteilhaft in Verbindung mit funktionalen
Einheiten eines Mikroprozessors oder anderer datenverarbeitender
Schaltungen eingesetzt. Der er findungsgemäße Ansatz ermöglicht eine
sichere Übertragung
von Datensignalen zu den funktionalen Einheiten. Dabei wird zusätzlich ein,
für eine
DPA-Analyse verwendbarer, Einfluß von Verdrahtungen der funktionalen
Einheiten eliminiert.
-
Gemäß der Erfindung
werden die zu übertragenden
Daten einer Datenpfadoperation (DPO; DPO = data path operation)
unterworfen. Um die durchgeführte
Datenpfadoperation bei der Rückgewinnung
des Datensignals in einer Vorrichtung zum Erzeugen eines rückgewonnenen
Datensignals zu berücksichtigen,
weist die Vorrichtung zum Erzeugen eines rückgewonnenen Datensignals in
diesem Ausführungsbeispiel
eine Einrichtung zum Anpassen der komplementären Umstellungsvorschrift an
die durchgeführte
Datenpfadoperation auf.
-
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend anhand beiliegender
Zeichnungen näher
erläutert.
Es zeigen:
-
1 eine
schematische Darstellung einer Übertragungsvorrichtung;
-
2 eine
schematische Darstellung einer Vorrichtung zur Durchführung einer
Datenpfadoperation gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung;
-
3 eine
schematische Darstellung einer Vorrichtung zum Speichern eines Signalpaares;
-
4 eine
schematische Darstellung einer Einrichtung zum Speichern eines Signalpaares;
-
5 eine
schematische Darstellung einer Einrichtung zum Speichern eines Signalpaares;
-
6 ein
Schaltbild einer Speicherzelle gemäß dem Stand der Technik; und
-
7 eine
schematische Darstellung eines in Dual-Rail-Technik ausgeführten Bussystems gemäß dem Stand
der Technik.
-
1 zeigt
eine schematische Darstellung einer Übertragungsvorrichtung, die
eine Vorrichtung 102 zum Erzeugen eines Signalpaares und
eine Vorrichtung 104 zum Erzeugen eines rückgewonnenen
Datensignals aufweist. Ferner weist das Bussystem eine Einrichtung 106 zum
Erzeugen eines Umstellungssignals auf. Die Vorrichtung 102 zum
Erzeugen eines Signalpaares weist einen Datensignaleingang 112 sowie
einen Umstellungssignaleingang 116 auf. Ferner weist die
Vorrichtung 102 zum Erzeugen eines Signalpaares einen Signalausgang 122 und
einen Komplementärsignalausgang 124 auf.
Die Vorrichtung 104 zum Erzeugen eines rückgewonnenen
Datensignals weist einen Signaleingang 132 und einen Komplementärsignaleingang 134 sowie
einen Umstellungssignaleingang 116' auf. Die Vorrichtung 104 zum
Erzeugen eines rückgewonnenen
Datensignals weist ferner einen Datensignalausgang 142 auf.
-
Über die
gezeigte Übertragungsvorrichtung
wird ein Datensignal 152 übertragen. Das Datensignal 152 ist über den
Datensignaleingang 112 mit der Vorrichtung 102 zum
Erzeugen eines Signalpaares verbunden. Die Vorrichtung 102 zum
Erzeugen eines Signalpaares ist ausgebildet, um gemäß einer
Umstellungsvorschrift aus dem Datensignal 152 ein Signalpaar,
bestehend aus einem Signal 162 und einem Komplementärsignal 164,
zu bilden. Hat das Signal 162 den Wert logisch „0", so weist das Komplementärsignal 164 den
Wert logisch „1" auf. Hat das Signal 162 den
Wert logisch „1", so weist das Komplementärsignal 164 den
Wert logisch „0" auf.
-
Das
Signal 162 und das Komplementärsignal 164 werden
von der Vorrichtung 102 zum Erzeugen eines Signalpaares
an dem Signalausgang 122 und dem Komplementärsignalausgang 124 bereitgestellt
und werden von der Vorrichtung 104 zum Erzeugen eines rückgewonnenen
Datensignals an dem Signaleingang 132 und dem Komplementärsignaleingang 134 empfangen.
Die Vorrichtung 104 zum Erzeugen eines rückgewonnenen
Datensignals ist ausgebildet, um, gemäß einer komplementären Umstellungsvorschrift,
aus dem Signalpaar, bestehend aus dem Signal 162 und dem
Komplementärsignal 164 ein
rückgewonnenes
Datensignal 172 zu bilden und an dem Datensignalausgang 142 auszugeben.
-
Die
Einrichtung 106 zum Erzeugen eines Umstellungssignals ist
ausgebildet, um ein Umstellungssignal 158 bereitzustellen,
das von der Vorrichtung 102 zum Erzeugen eines Signalpaares
an dem Umstellungssignaleingang 116 und von der Vorrichtung 104 zum
Erzeugen eines rückgewonnenen
Datensignals an dem Umstellungssignaleingang 116' empfangen wird.
-
Bevorzugterweise
ist die Einrichtung 106 zum Erzeugen eines Umstellungssignals
ausgebildet, um das Umstellungssignal 158 zufallsgesteuert
bereitzustellen. Das Umstellungssignal 158 weist dabei
zufallsgesteuert einen ersten Wert oder einen zweiten Wert auf.
In diesem Ausführungsbeispiel
weist das Umstellungssignal 158 entweder den Wert logisch „0" oder den Wert logisch „1" auf. Die Vorrichtung 102 zum
Erzeugen eines Signalpaares ist ausgebildet, um das Datensignal 152 gemäß der Umstellungsvorschrift
als Signal 162 oder als Komplementärsignal 164 bereitzustellen.
Weist das Umstellungssignal 158 den ersten Wert auf, so schaltet
die Vorrichtung 102 zum Erzeugen eines Signalpaares das
Datensignal 152 auf den Signalausgang 122 durch.
An dem Komplementärsignalausgang 124 stellt
die Vorrichtung 102 zum Erzeugen eines Signalpaares ein
zu dem Signal 162 komplementäres Signal 164 bereit.
Demzufolge wird das Datensignal 152 in Abhängigkeit
von dem Umstellungssignal 158 entweder an dem Signalausgang 122 oder
dem Komplementärsignalausgang 124 ausgegeben.
Wird das Umstellungssignalwert 158 zufallsgesteuert generiert,
so erfolgt die Ausgabe des Datensignals 152 als Signal 162 oder
als Komplementärsignal 164 ebenfalls
zufallsgesteuert und ist somit nicht vorhersagbar.
-
Entsprechend
zu den in 7 erläuterten Kapazitäten, weisen
die in 1 gezeigten Leitungen des Signals 162 und
des Komplementärsignals 164 sowie
jeweils benachbarte Signale und Komplementärsignale (nicht gezeigt) ebenfalls
Kapazitäten
gegenüber
einem festen Potential sowie Koppelkapazitäten auf. Die genannten Kapazitäten sind
in 1 nicht gezeigt. Die bei einem Umschaltvorgang
umzuladende Gesamtkapazität
ist gemäß der vorliegenden
Erfindung nicht nur von den Kapazitätswerten und einem durchgeführten Datensignalumschaltvorgang
abhängig,
sondern zudem noch von dem Wert des Umstellungssignals 158.
Dies resultiert daraus, daß gesteuert
durch das Umstellungssignal 158 das Signal 162 mit
dem Komplementärsignal 164 vertauscht
wird. Erfolgt die Erstellung des Umstellungssignals 158 zufallsgesteuert
so ist eine Zuordnung einer Gesamtkapazität nicht mehr zu einem Datensignalumschaltvorgang
zuordenbar. Ein DPA-Angriff auf die Leitungen des Signals 162 und
des Komplementärsignals 164 ist
somit nicht durchführbar.
-
Nach
einer Übertragung
des Signals 162 und des Komplementärsignals 164 über den
Datenpfad erfolgt eine Rückumstellung der
Signale in der Vorrichtung 104 zum Erzeugen eines rückgewonnenen
Datensignals. Da die Vorrichtung 104 zum Erzeugen eines
rückgewonnenen
Datensignals ebenfalls mit dem Umstellungssignal 158 verbunden
ist, ist eine Rückumstellung,
entgegengesetzt zu der Umstellung, die in der Vorrichtung 102 zum
Erzeugen eines Signalpfades durchgeführt wurde, möglich. Entsprechend
der oben beschriebenen Umstellung in der Vorrichtung 102 zum
Erzeugen eines Signalpaares ist die Vorrichtung 104 zum Erzeugen
eines rückgewonnenen
Datensignals ausgebildet, um ansprechend auf einen ersten Wert des
Umstellungssignals 158 das Signal 162 als rückgewonnenes
Datensignal 172 auszugeben.
-
Das
rückgewonnene
Datensignal 172 entspricht somit dem Datensignal 152.
Die Vorrichtungen r zum Erzeugen eines Signalpaares und die Vorrichtung 104 zum
Erzeugen eines rückgewonnenen
Datensignals ermöglichen
gemäß der vorliegenden
Erfindung, das Datensignal 152 über einen Datenpfad zu übertragen,
ohne daß ein
DAP-Angriff auf die Übertragungsstrecke
des Datenpfades möglich
ist.
-
Gemäß dem in 1 gezeigten
Beispiel sind die Datensignale 152, 172 in Single-Rail
Technik ausgeführt
und die Signale 162, 164 in Dual-Rail Technik,
bevorzugterweise mit precharge Technik, ausgeführt.
-
Gemäß einem
weiteren Beispiel werden die Datensignale ebenfalls in Dual-Rail
Technik ausgeführt.
-
Die
in 1 gezeigte Übertragungsvorrichtung
ist Teil eines Datenbusses. Abweichend von dem gezeigten Ausführungsbeispiel
kann der Datenbus, eine beliebige Anzahl von Datensignalen aufweisen.
Bei einer Vielzahl von Datensignalen ist es vorteilhaft, einzelne
Datensignale in Gruppen zusammenzufassen und für jede Gruppe einen eigenen
Umstellungssignalwert bereitzustellen. Weist der Datenbus also zum
Beispiel zwei Datensignalgruppen auf, so werden bevorzugterweise
zwei Umstel lungssignalwerte in Form zweier unabhängiger, zeitabhängiger Zufallsbits
bereitgestellt.
-
2 zeigt
eine Vorrichtung zur Durchführung
einer Datenpfadoperation gemäß einem
Ausführungsbeispiel
der Erfindung. Die Vorrichtung zur Durchführung einer Datenpfadoperation
weist eine Vorrichtung zum Erzeugen eines Signalpaares 202 in
Form einer Multiplexer-Schaltung Mxin, eine
Vorrichtung 204 zum Erzeugen eines rückgewonnenen Datensignals in
Form einer Multiplexer-Schaltung Mxout sowie
eine Einrichtung 208 zum Durchführen einer Datenpfadoperation
und eine Einrichtung 209 zum Anpassen des Umstellungssignals auf.
In diesem Ausführungsbeispiel
ist die Einrichtung 208 zum Durchführen einer Datenpfadoperation
eine Schiebeeinheit. Anstelle einer Schiebeeinheit, die eine Schiebeoperation
durchführt,
kann die Einrichtung 208 zum Durchführen einer Datenpfadoperation
auch eine beliebige andere Funktionseinheit darstellen, die in einem
Datenpfad einsetzbar ist.
-
Die
Multiplexer-Schaltung 202 ist ausgebildet zum Empfangen
eines Datensignals 252 sowie eines zu dem Datensignal 262 komplementären Datensignals 253.
Ferner ist die Multiplexer-Schaltung 202 ausgebildet zum
Empfangen eines Umstellungssignals 258 und zum Ausgeben
eines Signals 262 sowie eines Komplementärsignals 264.
Entsprechend der in 1 beschriebenen Vorrichtung
zum Erzeugen eines Signalpaares ist die Multiplexer-Schaltung 202 ausgebildet,
um ansprechend auf einen Wert des Umstellungssignals 258 das
Datensignal 252 entweder als Signal 262 oder als
Komplementärsignal 264 auszugeben.
Abhängig
von einem Wert des Umstellungssignals 258 vertauscht die
Multiplexer-Schaltung 202 somit die Rollen der Signale 262, 264.
-
Die
Einrichtung 208 zum Durchführen einer Datenpfadoperation
ist ausgebildet zum Empfangen des Signals 262 und des Komplementärsignals 264.
Abhängig
von einem Datenpfadsteuersignal 259 ist die Einrichtung 208 zum
Durchführen
einer Datenpfad operation ausgebildet um eine Datenpfadoperation
durchzuführen
und entsprechend dieser Operation ein Ausgangssignal 266 und
ein komplementäres
Ausgangssignal 268 bereitzustellen.
-
Der
Multiplexer 204 ist ausgebildet zum Empfangen des Ausgangssignals 266 sowie
des komplementären
Ausgangssignals 268 sowie zum Ausgeben eines rückgewonnenen
Datensignals 272 sowie eines rückgewonnenen komplementären Datensignals 273.
Dazu empfängt
der Multiplexer 204 ein Umstellungssignal 258'. Das Umstellungssignal 258' wird von der
Einrichtung 209 zum Anpassen des Umstellsignals bereitgestellt.
Die Vorrichtung 209 zum Anpassen des Umstellsignals ist
ausgebildet, um das Umstellsignal 258' entsprechend der in der Einrichtung 208 zum
Durchführen
einer Datenpfadoperation durchgeführten Datenpfadoperation anzupassen.
Dazu empfängt
die Einrichtung 209 zum Anpassen des Umstellsignals sowohl
das Umstellungssignal 258 als auch das Datenpfadsteuersignal 259 und
erzeugt daraus das Umstellungssignal 258'.
-
Gemäß dem in 2 gezeigten
Ausführungsbeispiel
stellt das Datensignalpaar 252, 253 ein Datensignalpaar
eines Datensignalpaarbusses der Breite w dar. Das Datensignal 252,
im folgenden als din bezeichnet, steht für eine Mehrzahl
n, n = w – 1,
w – 2,
... 0, von Datensignalen din < n > und das komplementäre Datensignal 253,
im folgenden als dqin bezeichnet, steht
für eine
Mehrzahl n von komplementären
Datensignalen dgin < n >.
Ebenso steht das Signalpaar 262, 264, im folgenden
als (slin, slqin)
bezeichnet für
eine Mehrzahl n von Signalpaaren (slin < n >, slqin< n >), sowie das Ausgangssignalpaar 266, 268,
im folgenden als (slout, slqout) bezeichnet
für eine
Mehrzahl n von Ausgangssignalpaaren (slout < n >, slqout < n >) und das rückgewonnene Signalpaar 272, 273,
im folgenden als (dout, dqout)
bezeichnet, für
eine Mehrzahl n von rückgewonnenen
Ausgangssignalpaaren (dout < n >, dqout < n >).
-
Entsprechend
des in 1 beschriebenen Beispieles sind die Signalleitungspaare
(slin, slqin), (slout, slqout) Teile
eines Datenpfades, der in diesem Ausführungsbeispiel zusätzlich eine
Einrichtung 208 zum Durchführen einer Datenpfadoperation
aufweist. Gemäß diesem
Ausführungsbeispiel
ist die Einrichtung 208 zum Durchführen einer Datenpfadoperation
ein Schiebeeinheit in Form eines Shifters. Eine Verdrahtung (nicht
gezeigt) von der Einrichtung 208 zum Durchführen einer
Datenpfadoperation zu den Signalleitungspaaren (slin, slqin), (slout, slqout) bzw. die Signalleitungspaare (slin, slqin). (slout, slqout) selber,
weisen signifikante Koppelkapazitäten sowie kapazitive Unsymmetrien
zwischen einer Signalleitung sl und deren komplementärer Signalleitung
slq auf. Die Bezeichnung sl steht im folgenden sowohl für die Signalleitung
slin sowie für die Ausgangssignalleitung
slout und die Bezeichnung slq für die komplementäre Signalleitung
slqin und die komplementäre Ausgangssignalleitung slqout. Die genannten Kapazitäten sind
in 2 nicht gezeigt. Wie anhand von 7 beschrieben,
ermöglichen
die Kapazitäten
zwischen den Signalen sl und slq eine DPA-Analyse der Vorrichtung zur
Durchführung
einer Datenpfadoperation. Erfindungsgemäß wird eine solche DPA-Analyse
durch eine zufallsgesteuerte bedingte Permutation der Bedeutung
der Signale sl und slq eines einzelnen physikalischen Signalleitungspaares
(sl, slq) verhindert. Dies geschieht dergestalt bzw. unter der Bedingung,
daß eine
logisch-arithmetische Funktion, die in einem Teil des Datenpfades
durchgeführt
wird, durch diese Permutationen unverändert bleibt. Dazu wird ohne
Beschränkung
der Allgemeinheit angenommen daß die
Signalleitungspaare (sl < n >, slq < n >), wobei n = w – 1, w – 2, ...,
0, und w eine Wortweite des Datenpfades ist, physikalisch, also
im Layout, entsprechend ihrer Wertigkeit n angeordnet sind, so daß die nächsten Nachbarn
von Signalleitungspaaren mit geraden n = 2j bestehen in solchen
mit ungeraden n = 2j + 1 sowie n = 2j – 1 und umgekehrt. Ausgenommen
davon sind die höchstwertigen
bzw. niedrigwertigen Signalleitungspaare mit n = w – 1 bzw.
n = 0.
-
Im
Folgenden wird das Ausführungsbeispiel
der Einrichtung 208 zum Durchführen einer Datenpfadoperation
in Form einer Schie beeinheit näher
betrachtet. Beim Verarbeiten von Daten din < w – 1: 0 > an den eingangsseitigen
Signalleitungspaaren (slin < n >, slgin < n >) der Schiebeeinheit 208,
werden Datenbits gerader Wertigkeit din < 2j > bzw, ungerader Wertigkeit
din < 2j
+ 1 > verschieden
behandelt. Über
die Multiplexer-Schaltung 202 Mxin vor den Signalleitungen (slin < n >, slqin < n >) werden in diesem
Ausführungsbeispiel,
abhängig von
einem Zeitpunkt ts eines Verarbeitungsvorganges
der Datensignale din durch geeignet erzeugte
bzw. vorliegende Zufallsbits rndbit-evn(ts)
und rndbit-odd(ts) auf dem Umstellungssignal 258,
die Signalleitungspaare slin, slqin wie folgt angesteuert:
(slin<n>, slqin<n>) <= (din<n>, dqin<n>)) für rndbit-x(ts),= 0
(slin<n>, slqin<n>) <= (not (din<n>), not (dqin<n>))
für rndbit-x(ts), = 1
wobei x = evn für n = 2j
und x = odd für
n = 2j + 1 gilt.
-
Das
Umstellungssignal 258 weist in diesem Ausführungsbeispiel
somit den Wert rndbit – x
auf, der entweder den logischen Wert „0" oder den logischen Wert „1" aufweist. Das Umstellungssignal
weist in diesem Ausführungsbeispiel
eine zufallsgesteuerte Komponente rndbit und eine zeitgesteuerte
Komponente x(ts) auf. Der Zufallswert rndbit
wird vorzugsweise durch einen Zufallszahlengenerator (nicht gezeigt)
bereitgestellt. Die Zeitgesteuerte Komponente wird über ein
Zeitsignal (nicht gezeigt) gesteuert. Das Zeitsignal kann ein Taktsignal
sein, mit dem eine Einrichtung zum Erzeugen des Umstellungssignals
verbunden ist. Alternativ kann eine Zeitsteuerung von einer Anzahl
empfangener Datensignale abhängig
sein. Analog zu der Multiplexer-Schaltung 202 werden über die
Multiplexer-Schaltung 204 Mxout aus
dem Ausgangssignal slout, slqout die
rückgewonnenen
Datensignale dout, dqout zurückgewonnen.
Dazu werden die oben angegebenen bedingten Permutationen wieder
rückgängig gemacht.
Dies erfolgt vermöge
einer be stimmten Funktion FDPO n {rndbit – evn(ts), rndbit – odd(ts)}
des Wertes des Umstellungssignals 258, der zur eingangsseitigen
Permutation in der Multiplexer-Schaltung 202 verwendet
wurde, so daß am
Ausgang der Multiplexer-Schaltung 204 immer der aus din<w–1:0> folgende wahre logische
Wert dout<w –1:0> zu liegen kommt. Dies
bedeutet:
(dout<n>,
dqout<n>) <= (slout<n>, slqout<n>)
für FDPO n, = 0,
(dout<n>, dqout<n>) <= (not (slout<n>), notslqout<n>))
für EDPO n, = 1
-
Dabei
hängt eine
Gestalt von FDPOn ab von den Datenpfadoperationen,
die in dem in Frage stehenden Teil des Datenpfades, der Einrichtung 208 zur
Durchführung
einer Datenpfadoperation ausgeführt
werden. In dem Ausführungsbeispiel
ist die Datenpfadoperation eine Schiebeoperation mit einer variablen
Anzahl sft von Bitpositionen, um die Eingangsdaten der Schiebeeinheit 208 geschoben
werden können.
Der Wert sft wird der Schiebeeinheit über das Datenpfadsteuersignal 259 bereitgestellt.
Somit gilt mit DPO = sft:
Fsft 2j = rndbit – evn(ts)
für gerade
Werte von sft
Fsft 2j =
rndbit – odd(ts) für
ungerade Werte von sft, und
Fsft 2j+l = rndbit – odd (ts)
für gerade
Werte von sft und
Fsft 2j+l =
rndbit – evn
(ts) für
ungerade Werte von sft
-
Die
Funktion FDPO wird in der Einrichtung 209 zum
Anpassen des Umstellungssignales erzeugt und über das Umstellungssignal 258' an die Multiplexer-Schaltung 204 bereitgestellt.
-
Durch
die anhand von 2 beschriebene von Zufallsbits
abhängige
Vertauschung der Rollen von sl und slq beim Verarbeiten von Datenwörtern din, dqin wird erreicht,
daß sich,
für eine
Vielzahl logisch identischer Programmabläufe eines Ge samtsystems, der
Einfluß kapazitiver
Unsymmetrien von den Signalleitungen sl, slq sowie der Koppelkapazitäten zwischen
den Signalleitungen sl und slq und deren jeweiligen physikalisch benachbarten
Leitungen auf das Ladungsintegral der betrachteten Verarbeitungszyklen
im statistischen Mittel aufhebt. Mithin wird also die Relevanz dieser
kapazitiven Unsymmetrie und Koppelkapazitäten für DPA-Angriffe eliminiert.
-
3 zeigt
eine schematische Darstellung einer Vorrichtung zum Speichern eines
Signalpaares. Die Vorrichtung zum Speichern eines Signalpaares weist
eine Vorrichtung 302 zum Erzeugen eines Signalpaares, eine
Vorrichtung 304 zum Erzeugen eines rückgewonnenen Datensignals sowie
eine Einrichtung 308 zum Speichern eines Signalpaares und
eine Einrichtung 309 zum Speichern eines Umstellungssignalwertes
auf. Entsprechend des in 1 beschriebenen Beispiels ist
die Vorrichtung 302 zum Erzeugen eines Signalpaares ausgebildet,
um ein erstes Datensignal 352 ansprechend auf einen Wert
eines Umstellungssignals 358 als erstes Signal 362 bzw.
als erstes Komplementärsignal 364 auszugeben.
Das erste Signalpaar 362, 364 wird in der Einrichtung 308 zum
Speichern eines Signalpaares gespeichert und wird von der Einrichtung 308 zum Speichern
eines Signalpaares bei einem Auslesevorgang als erstes gespeichertes
Signal 366 und erstes gespeichertes Komplementärsignal 368 ausgegeben.
Entsprechend dem Beispiel in 1 ist die
Vorrichtung 304 zum Erzeugen eines rückgewonnenen Datensignals wiederum
ausgebildet um entweder das erste gespeicherte Signal 366 oder
das erste gespeicherte Komplementärsignal 368 als erstes
rückgewonnenes
Datensignal 372 auszugeben. Dazu ist es erforderlich, daß die Vorrichtung 304 zum
Erzeugen eines rückgewonnenen Datensignals
den Wert des Umstellungssignals 358 erhält, mit dem das ersten Datensignal 352 in
der Vorrichtung 302 zum Erzeugen eines Signalpaares umgestellt
wurde. Dazu wird der Wert des Umstellungssignals 358 in
der Einrichtung 309 zum Speichern eines Umstellungssignals
gespeichert und parallel zur Ausgabe des ersten gespeicherten Signalpaares 366, 368 als
gespeichertes Umstellungssignal 358' an die Vorrichtung zum Erzeugen
eines rückgewonnenen
Datensignals ausgegeben.
-
Die
in 3 gezeigte Vorrichtung zum Speichern eines Signalpaares
ermöglicht
es somit, ein erstes Datensignal 352 in einer Speichereinrichtung
zu speichern und wieder auszulesen. Die Eingangssignale 362, 364 und
die Ausgangssignale 366, 368 der Einrichtung 308 zum
Speichern eines Signalpaares sind dabei wiederum durch die erfindungsgemäße Vorrichtung 302 zum
Erzeugen eines Signalpaares vor einem DPA-Angriff geschützt.
-
4 zeigt
eine Vorrichtung zum Speichern eines Signalpaares in Form eines
sogenannten Single-Port Speichers, wie er für RAMs oder Cache-Speicher
verwendet wird. Aus Gründen
der Übersichtlichkeit sind
in 4 lediglich zwei Speicherzellen gezeigt, die jedoch
stellvertretend für
eine Mehrzahl von Speicherzellen stehen. Entsprechend dem in 3 gezeigten
Beispiel weist der Single-Port Speicher eine Vorrichtung zum Erzeugen
eines Signalpaares und eine Vorrichtung zum Erzeugen eines rückgewonnenen
Datensignals auf. Beide Vorrichtungen sind in einer Multiplexer-Schaltung 403 angeordnet.
Eine Einrichtung zum Speichern eines Signalpaares 408 ist
ebenso wie eine Einrichtung 409 zum Speichern eines Umstellungssignals
in Form einer RAM-Zelle ausgeführt. Über eine
bidirektionale Treiber-Schaltung 410 wird ein Umstellungssignal 458 an die
Einrichtung 409 zum Speichern eines Umstellungssignals
bereitgestellt. Das Umstellungssignal 458 wird dabei in
ein zu speicherndes Umstellungssignal 459 sowie ein dazu
komplementäres
zu speicherndes Umstellungssignal 460 umgewandelt. Die
Signale 459, 460 sind ebenfalls mit der Multiplexer-Schaltung 403 verbunden.
In diesem Beispiel werden die zu speichernden Datensignale in Form
eines Datensignals 452 und eines dazu komplementären Datensignals 453 an
die Multiplexer-Schaltung 403 bereitgestellt. Entsprechend
der Umstellungssignale 459, 460 werden die Datensignale 452, 453 an sprechend
auf ein Lese/Schreib-Signal 484, gemäß der vorliegenden Erfindung
umgestellt und entsprechend eines Wertes der Umstellungssignale 459, 460 als
zu speichernde Signale 463, 465 an die RAM-Zelle 408 bereitgestellt.
Die Signalleitungen 463, 465 dienen in diesem
Beispiel sowohl zum Beschreiben der RAM-Zelle 408 als auch
zum Auslesen, der in der RAM-Zelle gespeicherten Informationen.
Die rückgewonnenen
Datensignale werden von der Multiplexer-Schaltung 403 ebenfalls
auf den Datensignalleitungen 452, 453 ausgegeben.
Die Multiplexer-Schaltung 403 ist
somit in diesem Beispiel bi-direktional ausgebildet. Eine zweite
Speicherzelle und die dazugehörigen Steuerungen
sind mit den gleichen Bezugszeichen wie die der ersten Speicherzelle 408 bezeichnet
aber durch ein „'" gekennzeichnet. Die zweite Speicherzelle 408' wird von einem
dem Umstellungssignal 458 der ersten Speicherzelle 408 entsprechenden
aber unabhängigen
Umstellungssignal 458' angesteuert.
-
Die
Multiplexer-Schaltungen 403, 403' ermöglichen wiederum einen Schutz
der Signalleitungen 463, 465, 463', 465' gegenüber DPA-Angriffen.
Die Signalleitungspaare (463, 465), (463', 465') werden im
folgenden als (bl, blq) bezeichnet und stehen stellvertretend für eine Mehrzahl
von Signalleitungspaaren. Durch eine zufallsgesteuerte Permutation
der Bedeutung der Bitleitung bl und deren komplementärer Bitleitung
blq eines einzelnen physikalischen Bitleitungspaares in der Multiplexer-Schaltung 403, 403' werden die
Leitungen bl, blq vor einer DPA-Analyse geschützt. Dazu wird ohne Beschränkung der
Allgemeinheit angenommen, daß die
Bitleitungspaare (bl<n>, blq<n>), bzw. die zugehörigen Datenwörtern (d<n>, dq<n>), die den Datensignalen
(452, 453), (452', 453') entsprechen, physikalisch entsprechend
ihrer Wertigkeiten angeordnet sind, wobei n = w – 1, w – 2, ..., 0 gilt und w für die Wortweite
der Datenwörter
(d < n >, dq < n >) steht. Im Layout
sind somit die nächsten
Nachbarn von Bitleitungspaaren mit geraden n = 2j, solche mit ungeraden
n = 2j + 1 sowie n = 2j – 1
und umgekehrt. Ausgenommen sind wiederum die höchstwertigen bzw. niedrigwertigen
Bitleitungspaare mit n = w – 1
bzw. n = 0.
-
Beim
Schreiben und Lesen von Datenwörtern
d < w – 1:0 > unter einer Adresse
adr auf die korrespondierenden Bitleitungspaare (bl < n >, blq < n >) werden nun Datenbits
gerader bzw. ungerader Wertigkeit d < 2j > bzw.
d < 2j + 1 > verschieden behandelt.
-
Über die
mit Mx < n > bezeichneten Multiplexer-Schaltungen
innerhalb der einem Schreib/Lese-Eingang einer RAM Zelle zugeordneten
Treiberschaltung (403, 403') für das betrachtete Bitleitungspaar
werden, abhängig
von einem Zeitpunkt ts eines Schreibvorganges
in eine Speicherzelle geeignet erzeugte bzw. vorliegende Zufallsbits
rndbit-evn(ts) und rndbit-odd(ts),
die den Werten des Umstellungssignals 458, 458' entsprechen,
die Bitleitungspaare (bl < n >, blq < n >) und mithin die der
Adresse adr entsprechenden Speicherzellen wie folgt beschrieben:
(bl < n >, blq < n >) < =(d < n >, not (d < n >))
für rndbit – x(ts) = 0;
(bl < n >,
blq < n >) < = > not
(d < n >), d < n >)
für rndbit – x(ts) = 1;
wobei x = evn für n = 2j
und x = odd für
n = 2j + 1 gilt.
-
Zudem
werden die Zufallsbits rndbit – evn(ts) und rndbit – odd(ts)
während
eines Schreibvorganges in zwei zusätzliche, der Adresse adr zugeordnete
und mit fevn und fodd bezeichnete Speicherzellen 409, 409' geschrieben.
-
Beim
Auslesen eines Datenwortes aus einer der Adresse adr zugeordneten
Speicherzelle 408, 408' treibt diese entweder (dadr < n >, not (dadr < n >)) oder (not (dadr < n >), dadr < n >) auf das Bitleitungspaar
(bl < n >, blq < n >), das über die
Mul tiplexer-Schaltungen 403, 403', die als bedingte Inverter-Schaltungen bezeichnet
werden können,
mit Treibern für
die Datenausgänge 452, 453 und 452', 453' verbunden ist.
Abhängig
von den gleichzeitig ausgelesenen Werten von fevnadr und
foddadr werden die an dem Bitleitungspaar
(bl < n >, blq < n >) liegenden Werte entweder
invertiert, für
fevnadr/foddadr =
1 oder unverändert
gelassen, für
fevnadr/foddadr =
0, so daß am
Ausgang des Multiplexers 403, 403' immer der wahre logische Wert
dadr < w – 1:0 > zu liegen kommt.
-
Für das beschriebene
Beispiel genügt
es, nur eine Wortleitung wl < adr > zu verwenden, statt
der in 3 angegebenen getrennten Wortleitungen 480, 482 bzw.
wlf < adr >, wld < adr > für Flags bzw. Daten. Getrennte
Wortleitungen 480, 482 werden für das im
folgenden erläuterte
Beispiel benötigt.
-
Dieses
Beispiel ergibt sich aus der Anforderung, daß es möglich sein soll, nur einen
Teil, wie ein Byte oder Teil eines aus mehreren Bytes bestehenden
Datenwortes, zur Adresse adr zu überschreiben,
ohne eine Integrität
der übrigen
Teile des in Frage stehenden Datenwortes anzutasten. In diesem Falle
dürfen
also die zu der Adresse adr zugehörigen Werte des Umstellungssignals 458, 458', also fevnadr/foddadr nicht
mit Zufallsbits von außerhalb
des Speichers beschrieben werden, da dies den Verlust der übrigen Teile
des in Frage stehenden Datenwortes bedeuten würde. Vielmehr werden fevnadr und foddadr über eine
eigenen Wortleitung wlf < adr > 482 zunächst während eines
ersten Teils eines Schreibzugriffs auf den in Frage stehenden Teil
des Datenwortes ausgelesen und die so erhaltenen Werte irgendwann
zuvor gespeicherter Zufallsbits steuern die Multiplexer-Schaltungen 403, 403' innerhalb der
dem Schreibport zugeordneten Treiber-Schaltungen für die dem
in Frage stehenden Teil des Datenwortes entsprechenden Bitleitungspaare,
und zwar so, daß diese
Treiberschaltungen in einem zweiten Teil des Schreibzugriffs, auf
das in Frage stehenden Teil des Datenwortes nun, entsprechend den
Werten von fevnadr/foddadr,
die jeweiligen Bitleitungspaare mit den logischen Werten (d < n >, not (d < n >)) oder deren inversen
(not (d < n >), d < n >) beschreiben. Hierzu
zeitlich versetzt wird die Wortleitung 480 wld < adr > des ganzen Datenwortes
zur Adresse adr aktiviert, so daß der über die aktiven Treiberschaltungen
des Schreib-Ports ausgewählte
Teil des Datenwortes überschrieben
wird, während
die den inaktiven Treiberschaltungen des Schreib-Ports korrespondierenden übrigen Teile
des Datenwortes aus den entsprechenden Speicherzellen 408 auf
die mit diesen verbundenen Bitleitungspaare 463, 465 ausgelesen werden.
-
Durch
eine solche von Zufallsbits abhängige
Vertauschung der Rollen von bl und blq beim Schreiben und Lesen
von Datenwörtern
auf (bl < w – 1:0 >, blq < w – 1:0 >) wird erreicht, daß sich,
für eine
Vielzahl logisch identischer Programmabläufe des Gesamtsystems, ein
Einfluß kapazitiver
Unsymmetrien von bl und blq sowie der Koppelkapazitäten zwischen
bl bzw. blq und deren jeweiligen physikalisch benachbarten Leitungen
auf das Ladungsintegral der betrachteten Speicherzugriffe im statistischen
Mittel aufhebt und mithin also die Relevanz dieser kapazitiven Unsymmetrien
und Koppelkapazitäten
für DPA-Angriffe eliminiert
wird.
-
5 zeigt
ein weiteres Beispiel einer Vorrichtung zum Speichern eines Signalpaares
in Form von sogenannten Multi-Port
Speicherzellen, wie sie für
RAMs oder Registerfiles eingesetzt werden. Durch eine zufallsgesteuerte
Permutation der Bedeutung einer Bitleitung blX und deren komplementärer Bitleitung
blXq eines einzelnen, einem Port X einer Speicherzelle entsprechenden
physikalischen Bitleitungspaares (blX, blXq) wird die gezeigte Multi-Port
Speicherzelle vor DPA-Angriffen
geschützt.
-
In 5 gezeigte
Elemente, die bereits in 4 erläutert wurden, sind mit den
gleichen Bezugszeichen bezeichnet und werden im folgenden nicht
weiter beschrieben. Anstelle der in
-
4 gezeigten
RAM Zellen 408, 408', 409, 409' weist das in 5 gezeigte
Beispiel Mehrfach-RAM-Zellen 508, 509 auf.
-
Beim
Beschreiben einer Mehrfachspeicherzelle 508 über einen
ihrer Schreibeingänge
eines Datenwortes mit einer Bitbreite w unter einer Adresse adr
wird erfindungsgemäß entweder
der logische Wert des Datenwortes
d < w – 1:0 > = [(d < w – 1 >, not (d < w – 1 >)), (d < w – 2 >, not (d < w – 2 >)), ... (d < 0 >, not (d < 0 >)]
oder der bitweise
komplementäre
Wert
not (d < w – 1:0 >) =[ (not < d < w – 1 >), d < w – 1 >), (not (d < w – 2 >), d < w – 2 >), ... (not (d < 0 >), d < 0 >)]
über ein
physikalisches Bitleitungspaarbündel
(463', 465') bzw. (blX < w – 1:0 >, blXq < w – 1:0 >) in die entsprechende
Multi-Port Speicherzelle 508 geschrieben. Dies geschieht
durch geeignete, mit Mx-X bezeichneten Multiplexer-Schaltungen 403', innerhalb
einer dem Schreibport zugeordneten Treiberschaltung für das betrachtete
Bitleitungspaar 463', 465'. Dabei entscheidet
ein zum Zeitpunkt ts des Schreibvorganges
geeignet erzeugtes bzw. vorliegendes Zufallsbit rndbit(ts) auf dem Umstellungssignal 458', ob dX<w–1:0> oder not(dX<w–1:0>) gespeichert wird.
In diesem Beispiel wird mit rndbit(ts) =
0 über
den Multiplexer 403' der
Wert dX<w–1:0> getrieben und in der
Mehrfachspeicherzelle 508 gespeichert, und mit rndbit(ts) = 1 der Wert not(dX<w–1:0>).
-
Der
Wert des Umstellungssignals 458' rndbit(ts)
wird während
des Schreibvorganges in eine weitere der Adresse adr zugeordnete
und mit d < w > bezeichnete Mehrfachspeicherzelle 509 geschrieben.
-
Beim
Auslesen eines Datenwortes unter der Adresse adr über einen
der Lese-Ausgänge
der Mehrfachspeicherzellen 508, treiben die Leseausgänge zunächst entweder
(dadr < w – 1:0 >, not (dadr < w – 1:0 >)) oder (not (dadr < w – 1:0 >), dadr < w – 1:0 >) auf das Bitleitungspaarbündel (463', 465') bzw. (blX < w – 1:0 >, blXq < w – 1:0 >), das über eine
Multiplexer-Schaltung 403' mit
den Datensignalleitungen 452', 453' verbunden ist.
Abhängig
von dem gleichzeitig ausgelesenen Wert von dadr < w > wird der an den Signalleitungen 463', 465' (blX < w – 1:0 >, blXq < w – 1:0 >) liegende Wert entweder
invertiert (für
dadr < w > = 1) oder unverändert gelassen
(für dadr < w > = 0) so daß auf den
Datensignalleitungen 452', 453' immer der wahre
logische Wert dadr < w – 1:0 > zu liegen kommt, der dann von einer Empfängerschaltung
weiter verarbeitet werden kann.
-
Durch
diese von Zufallsbits abhängige
Vertauschung der Rollen von blX und blXq beim Schreiben und Lesen
von Datenwörtern
auf (blX < w – 1:0 >, blXq < w – 1:0 >) wird erreicht, daß sich,
für eine
Vielzahl logisch identischer Programmabläufe des Gesamtsystems, der
Einfluß kapazitiver
Unsymmetrien von blX und blXq sowie der Koppelkapazitäten zwischen
blX bzw. blXq und deren jeweiligen physikalisch benachbarten Leitungen
auf das Ladungsintegral der betrachteten Speicherzugriffe im statistischen
Mittel aufhebt. Mithin wird also die Relevanz dieser kapazitiven
Unsymmetrien und Koppelkapazitäten
für DPA-Angriffe
eliminiert.
-
- 102
- Vorrichtung
zum Erzeugen eines Signalpaares
- 104
- Vorrichtung
zum Erzeugen eines rückgewonnenen
Da
-
- tensignals
- 106
- Einrichtung
zum Erzeugen eines Umstellungssignals
- 112
- erster
Datensignaleingang
- 114
- zweiter
Datensignaleingang
- 116,
116'
- Umstellungssignaleingang
- 122
- erster
Signalausgang
- 124
- erster
Komplementärsignalausgang
- 126
- zweiter
Signalausgang
- 128
- zweiter
Komplementärsignalausgang
- 132
- erster
Signaleingang
- 134
- zweiter
Komplementärsignaleingang
- 138
- zweiter
Komplementärsignaleingang
- 142
- erster
Datenausgang
- 144
- zweiter
Datenausgang
- 152
- erstes
Datensignal
- 154
- zweites
Datensignal
- 158
- Umstellungssignal
- 162
- erstes
Signal
- 164
- erstes
Komplementärsignal
- 166
- zweites
Signal
- 168
- zweites
Komplementärsignal
- 172
- erstes
rückgewonnenes
Datensignal
- 174
- zweites
rückgewonnenes
Datensignal
- 202
- Vorrichtung
zum Erzeugen eines Signalpaares
- 204
- Vorrichtung
zum Erzeugen eines rückgewonnenen
Da
-
- tensignals
- 208
- Einrichtung
zur Durchführung
einer Datenpfadopera
-
- tion
- 209
- Einrichtung
zum Anpassen des Umstellungssignals
- 252
- erstes
Datensignal
- 253
- erstes
Komplementärsignal
- 258
- Umstellungssignal
- 259
- Datenpfadsteuersignal
- 258'
- angepaßtes Umstellungssignal
- 262
- erstes
Signal
- 264
- erstes
Komplementärsignal
- 266
- Ausgangssignal
- 268
- zweites
komplementäres
Ausgangssignal
- 272
- erstes
rückgewonnenes
Datensignal
- 273
- zweites
rückgewonnenes
Datensignal
- 302
- Vorrichtung
zum Erzeugen eines Signalpaares
- 304
- Vorrichtung
zum Erzeugen eines rückgewonnenen
Da
-
- tensignals
- 308
- Einrichtung
zum Speichern eines Signalpaares
- 309
- Einrichtung
zum Speichern eines Umstellungssignals
- 352
- erstes
Datensignal
- 358
- Umstellungssignal
- 358'
- gespeichertes
Umstellungssignal
- 362
- erstes
Signal
- 364
- erstes
Komplementärsignal
- 366
- erstes
gespeichertes Signal
- 368
- erstes
gespeichertes Komplementärsignal
- 372
- rückgewonnenes
Datensignal
- 403,
403'
- Vorrichtung
zum Erzeugen
- 408,
408'
- Einrichtung
zum Speichern eines Signalpaares
- 409,
409'
- Einrichtung
zum Speichern eines Umstellungssignales
- 410,
410'
- Multiplexer-Schaltung
- 452,
452'
- Datensignal
- 453,
453'
- komplementäres Datensignal
- 458,
458'
- Umstellungssignal
- 459,
459'
- gespeichertes
Umstellungssignal
- 460,
460'
- gespeichertes
Komplementärumstellungssignal
- 480
- Datenzugriffsignal
- 482
- Umstellungssignal
Zugriffssignal
- 484
- Schreib/Lesesignal
- 508
- Vielfachspeicher
für Daten
- 509
- Vielfachspeicher
für Umstellungssignale
- 583
- erstes
Zugriffssignal
- 584
- zweites
Zugriffssignal
- A
- Port
A
- B
- Port
B
- Z
- Port
Z
- C
- Port
C
- 612,
614
- Transistoren
- 702,
704
- Signalleitungspaare
- 712,
714, 716, 718
- Kapazitäten
- 722,
724, 726
- Koppelkapazitäten