-
Die
vorliegende Erfindung betrifft eine Schaltungsanordnung und ein
Verfahren zur Verarbeitung eines Dual-Rail-Signals.
-
Üblicherweise
sind Schaltnetze mikroelektronisch so ausgeführt, daß jedes Bit der zu verarbeitenden
Information physikalisch durch genau einen elektrischen Knoten dargestellt
wird. Ein solcher Aufbau wird auch als "Single-Rail"-Schaltungstechnik bezeichnet.
Derartige Schaltnetze sind jedoch verhältnismäßig unsicher gegenüber Angriffen
mit der sogenannten differenziellen Stromprofil-Analyse, die beim
Versuch des Zugriffs unberechtigter Dritter auf geheime Informationen
angewandt wird. Die differenzielle Stromprofil-Analyse, englisch als differential power
analysis – DPA – bezeichnet,
ist eine der wichtigsten Methoden zum Angriff auf beispielsweise Chipkarten
für Sicherheitsanwendungen.
Dabei erfolgt ein gezielter Angriff auf vertrauliche Informationen
wie Paßwörter oder
kryptographische Schlüssel. Für ein gegebenes
Programm bzw. einen gegebenen Algorithmus werden mit statistischen
Methoden gemessene Stromprofile der Chipkarte bzw. deren über ein
oder mehrere Takte berechnete Ladungsintegrale ausgewertet, wobei – für eine Vielzahl
von Programmausführungen – aus der
Korrelation von systematischer Datenvariation und jeweiligem Ladungsintegral Rückschlüsse auf
die zu schützenden
Informationen gezogen werden können.
-
Im
Gegensatz zu herkömmlicher
Single-Rail-Schaltungstechnik, bei der jedes Bit innerhalb eines
Daten- oder Signalpfades physikalisch durch genau einen elektrischen
Knoten K dargestellt wird, wird bei der Implementierung mit Dual-Rail-Schaltungstechnik
jedes Bit durch zwei Knoten K und KN dargestellt, wobei jedes Bit
einen gültigen
logischen Wert auf weist, wenn K dem wahren logischen Wert dieses
Bits entspricht und KN dem negierten Wert.
-
Wenn
also der Wert "1" übertragen werden soll, so geschieht
dies durch eine "1" im Knoten K. Gleichzeitig
wird jedoch der Wert "0" am Knoten KN übertragen,
so daß insgesamt
also sowohl eine "1" als auch eine "0" übertragen
wird. Wenn der wert "0" zu übertragen
ist, erfolgt die Übertragung
einer "0" am Knoten K und
einer "1" am Knoten KN. In
beiden Fällen
wird also eine "1" und eine "0" übertragen. Physikalische
Gleichheit der Knoten K und KN vorausgesetzt, ist nun mittels einer
differenziellen Stromprofil-Analyse nicht mehr erkennbar, ob als
Datum eine "1" oder eine "0" übertragen
wird. Dies gilt jedoch nur dann, wenn tatsächlich bei jedem übertragenen
Datum ein Signalwechsel stattfindet, sich also die Information "1" und die Information "0" abwechseln. Werden mehrere gleiche
Daten nacheinander übertragen,
verschlechtern sich die Eigenschaften bezüglich der Angreifbarkeit durch
differenzielle Stromprofil-Analyse.
-
Um
kryptoanalytische Angriffe abzuwehren, ist es bekannt, die gewünschte Invarianz
der Ladungsintegrale dadurch zu erreichen, daß zwischen je zwei Zuständen mit
gültigen
logischen Werten <1, 0> oder <0, 1> ein sogenannter Vorladezustand,
im Englischen auch "precharge" genannt, eingefügt ist, für den sowohl
K als auch KN auf dasselbe elektrische Potential geladen werden,
also logisch ungültige
Werte <1, 1> oder <0, 0> annehmen. Für den Vorladezustand <1, 1> würde eine Zustandsfolge beispielsweise
wie folgt aussehen:
(1, 1) → (0,
1) → (1,
1) → (1,
0) → (1,
1) → (1,
0) → (1, 1)→ (0, 1) → ...
-
In
einer integrierten Schaltung wird dieser Precharge in der Regel
global erzeugt und sternförmig
taktsynchron den Dual-Rail-Schaltungen,
die mit Precharge arbeiten, zugeführt. In den einzelnen Dual-Rail-Schaltungen
kann natürlich
auch lokal ein entsprechender Precharge erzeugt werden.
-
1 zeigt den zeitlichen Verlauf
eines mittels einer Dual-Rail-Schaltung mit Pre-Discharge verarbeiteten
Signals S, welches mittels zweier komplementärer Leitungen S1, S2 kodiert übertragen
wird. Zu Beginn eines Taktes X eines Taktsignals CLK werden in einer
ersten Taktphase X1, in der sogenannten "Pre-Discharge-Phase", die beiden komplementären Leitungen
S1, S2 vorgeladen, so daß sie
den logischen Wert "0", annehmen, wodurch
vorab gespeicherte Informationen gelöscht werden. Da das zu übertragende
Datensignal S den logischen Wert "0" aufweist,
wird in einer zweiten Taktphase X2, der sogenannten "Evaluation-Phase", die Leitung S2
auf den Wert einer logischen "1" vorgeladen. Mit
dem folgenden Takt Y findet ein Signalwechsel des Datensignals S
von der logischen "0" auf eine logische "1" statt. Mit dem Beginn des Taktes Y
des Taktsignals CLK müssen
in einer ersten Taktphase Y1 die beiden komplementären Leitungen
S1, S2 wiederum auf eine logische "0" vorgeladen
werden. Damit das Signal S den logischen Wert "1" annimmt,
erfolgt ein Vorladen der Leitung S1 in einer zweiten Taktphase Y2 auf
den logischen Wert "1". Analoges Vorgehen
betrifft die folgenden Takte, wobei grundsätzlich zu Beginn eines jeden
Taktes die Leitungen S1, S2 auf eine logische "0" vorgeladen
werden und anschließend abhängig vom
logischen Wert des zu treibenden Signals S eine der Leitungen S1,
S2 auf eine logische "1" geladen wird.
-
Bei
Dual-Rail-Schaltungstechniken mit Pre-Discharge bzw. Pre-Precharge besteht
der Nachteil, daß der
Stromverbrauch verhältnismäßig hoch
ist und es sich um unflexible, kundenspezifische Lösungen handelt,
da der Schaltungsaufbau nicht automatisch berechnet werden kann,
d.h. nicht synthetisierbar ist.
-
Weiterhin
ist durch ein Precharge einer Dual-Rail-Schaltung nicht unbedingt
ein gewünschter Signalausgangswert
zuverläs sig
erzielbar. Laufzeitunterschiede von Eingangssignalen einer solchen Schaltung
können
ungewollte Zwischenübergänge am Ausgang
der Schaltung bewirken.
-
Eine
Schaltung weist beispielsweise die UND-Verknüpfungsfunktion Z = A + B auf,
wobei für ein
erstes Signalpaar A, B mit den Werten <A = "1" und
B = "0"> sowie für ein zweites Signalpaar A,
B mit den Werten <A
= "0" und B = "1"> das
Ergebnis Z jeweils gleich "0" sein soll. Aufgrund
eines Laufzeitunterschieds der Signale des zweiten Signalpaares kann
sich bei einem Übergang
der Werte des ersten Signalpaares auf die Werte des zweiten Signalpaares
ein weiteres Signalpaar mit beispielsweise den Werten <A = "1" und B = "1"> einstellen, so daß sich am
Ausgang kurzfristig das Ergebnis Z = "1" einstellt. Es
ergibt sich am Ausgang eine steigende Flanke, ein sogenannter Hazard,
die eigentlich nicht auftreten darf und einen ungewollten Zwischenzustand herbeiführt. Die
mit diesen Zwischenzuständen
verbundenen überflüssigen Signalwechsel
bedeuten physikalisch, daß jeweilige
elektrische Kapazitäten unnötig umgeladen
werden müssen,
wodurch ein erhöhter
Energieumsatz notwendig ist. Darüber
hinaus hängt
das Stromprofil der Schaltung stark von den jeweils zu verarbeitenden
Eingangsdaten ab, so daß die
Schaltung insgesamt trotz Einsatz der Dual-Rail-Technologie mit
Precharge anfällig
für eine differentielle
Stromprofilanalyse ist.
-
In
US 6,225,826 B1 ist
eine „Domino"-Schaltungsanordnung
mit zwei Ausgängen
beschrieben, wobei die Ausgänge
in der Precharge Phase gleiche Werte aufweisen und in der Evaluate
Phase zu einander komplementäre
Werte. Aus
US 6 133
761 A ist eine ähnliche
Anordnung bekannt, die noch über
Reset-Signale verfügt.
-
Weitere
bekannte Maßnahmen
zur Verringerung der Angreifbarkeit durch differenzielle Stromprofil-Analyse
sind verschlüsseltes
Rechnen oder eine sichere Codierung. Dabei sind jedoch zusätzliche Taktzyklen
notwendig sowie eine große
Menge an Zufallszahlen, was neben einer verringerten Arbeitsgeschwindigkeit
einen großen
Flächenaufwand
mit sich bringt.
-
Aufgabe
der Erfindung ist es, eine Schaltungsanordnung zur Verarbeitung
eines Dual-Rail-Signals anzugeben, die sicher gegenüber differenzieller
Stromprofil-Analyse ist, keine Ha zards an den Ausgängen erzeugt
und schaltungstechnisch sehr einfach realisierbar ist. Außerdem soll
ein geeignetes Verfahren angegeben werden.
-
Diese
Aufgabe wird erfindungsgemäß durch eine
Schaltungsanordnung der eingangs genannten Art gelöst, die
dadurch gekennzeichnet ist, daß je zwei
Dateneingänge
zur Zuführung
zumindest eines Dual-Rail-Dateneingangssignals und je zwei Datenausgängen zur
Ausgabe eines Dual-Rail-Datenausgangssignals unter Verwendung des
zumindest einen Dual-Rail-Dateneingangssignals
vorgesehen sind.
-
Die
erfindungsgemäße Schaltungsanordnung
weist den Vorteil auf, daß auf
ein zusätzliches Precharge-Signal
für jedes
Signalpaar verzichtet werden kann. Ein Precharge muß lediglich
an einer Stelle einer integrierten Schaltung, die mehrere der erfindungsgemäßen Schaltungsanordnungen
aufweist, erzeugt werden und beispielsweise dem Eingang einer sogenannten
Domino-Kette, in der mehrere Schaltungsanordnungen gemäß der Erfindung seriell
verbunden sind, einmalig und jeweils vor den Treiben eines neuen
Datums den Dateneingängen einer
ersten Schaltungsanordnung der Domino-Kette zugeführt werden.
Das an den Dateneingängen
anliegende Precharge-Signal mit dem für jeden Dateneingang gleichen
logischen Wert "0" oder "1" wird von der Schaltungsanordnung als
normales Datum verarbeitet, so daß für diesen Fall aufgrund der
Verknüpfungsfunktion
der Schaltungsanordnung ein den Dateneingangssignale der Dateneingänge entsprechendes
Ausgangssignal an den Ausgängen
erzeugt wird. Auch auftretende Laufzeitunterschiede bewirken keine
ungewollten Signalzustände
am Ausgang. Unabhängig
von den zu prozessierenden Daten wird immer die gleiche Anzahl logischer "1"-Werte und logischer "0"-Werte bzw. die gleiche Anzahl steigender und
fallender Flanken in jeder Schaltungsanordnung erzeugt. Die Schaltungslogik
ist synthetisierbar und somit leicht zu realisieren. Sie bietet
die gleiche Sicherheit wie Dual-Rail-Schaltungen mit entsprechendem
Precharge. Dadurch, daß alle
Leitungen vor dem Treiben eines neuen Datums auf einen Standard-Wert
mit einer logischen "1" oder "0" gesetzt werden, kann auf ein globales
Precharge-Netzwerk bzw.
ein lokales prechargen verzichtet werden. Durch die spezielle Struktur
der Grundelemente der Schaltungslogik werden alle einem mit einem "precharge/predischarge"-Zustand beaufschlagten Gatter
nachgeschaltete Gatter ebenfalls mit einem "precharge/predischarge-Zustand vorgeladen.
-
Ein
erfindungsgemäßes Verfahren
zur Verarbeitung eines Dual-Rail-Signals
sieht vor, daß zumindest
ein Dual-Rail-Dateneingangssignal
an Dateneingängen
einer Schaltungsanordnung empfangen wird und an zwei Datenausgängen ein
Dual-Rail-Datenausgangssignal
unter Verwendung des zumindest einen Dual-Rail-Dateneingangssignals
ausgegeben wird. wobei das Dual-Rail-Dateneingangssignal mit gleichen
physikalischen Werten für
zumindest ein Signalpaar der Schaltungsanordnung als Precharge-Signal
zugeführt
wird und jeder logische Wert der Datenausgänge den der Dateneingänge entspricht, wenn
an den Dateneingängen
gleiche logische Werte, d.h. ein predischarge-Zustand mit den physikalischen
Werten "0/0' und precharge-Zustand
mit den physikalischen Werten "1/1", anliegen.
-
Weitere
vorteilhafte Aus- und Weiterbildungen der Erfindung sind in den
Unteransprüchen
angegeben.
-
Die
Erfindung wird im folgenden anhand der in den Zeichnungen dargestellten
Figuren, die Ausführungsbeispiele
der Erfindung darstellen, näher
erläutert.
-
Es
zeigen:
-
1 ein Signalverlauf eines
auf zwei Leitungen kodierten Dual-Rail-Signals mit Precharge,
-
2 eine erfindungsgemäße Schaltungsanordnung
in unterschiedlichen Ausführungsformen,
-
3 eine den in der 2 dargestellten Schaltungsanordnungen
entsprechende logische Verknüpfungsfunktion
anhand einer Tabelle und
-
4 eine Anordnung mit mehreren
erfindungsgemäßen Schaltungsanordnungen,
der über eine
Schaltung ein Dual-Rail-Signal zugeführt wird.
-
1 zeigt den bereits eingangs
beschriebenen Signalverlauf eines Dual-Rail-Signals bei der Verarbeitung
des Signals mittels einer Dual-Rail-Schaltung mit Precharge gemäß dem Stand der
Technik.
-
2 zeigt verschiedene Ausführungsbeispiele
einer erfindungsgemäßen Schaltungsanordnung.
In dem in der 2a dargestellten
Ausführungsbeispiel
ist die Schaltungsanordnung 1 als ein AND-Gatter ausgebildet.
Zum Empfang eines ersten logischen Dateneingangssignals <A, AN> und eines weiteren
logischen Dateneingangssignals <B,
BN> weist das AND-Gatter
vier Eingänge
A1, A2, B1 und B2 auf. Weiterhin sind zwei Ausgänge Z1, Z2 zur Ausgabe eines
Dual-Rail-Datenaungangssignals <Z, ZN> vorgesehen. Die Paare <A, AN>, <B, BN>, <Z, ZN> bilden Dual-Rail-Signale,
wie sie einleitend beschrieben wurden. Die Codierung eines gültigen Dual-Rail-Signals
ist in den folgenden Ausführungsbeispielen
wie folgt gewählt:
Ein
gültiges
logisches Signal mit dem Wert "1" weist physikalische
Signalzustände
mit dem wert "1" für A, B und
Z und physikalische Signalzustände
mit dem Wert "0" für AN, BN
und ZN auf. Ein gültiges
logisches Signal mit dem Wert "0" weist physikalische
Signalzustände
mit dem Wert "0" für A, B und
Z und physikalische Signalzustände
mit dem Wert "1" für AN, BN
und ZN auf.
-
Übereinstimmende
Signalzustände
für A/AN, B/BN
mit den Werten "0"/"0" oder "1"/"1" sind keine gültigen logisch
zugelassenen Signale. Sie führen
ihrerseits aufgrund der Verknüpfungsfunktion
der erfindungsgemäßen Schaltungsanordnung 1 an
den Ausgängen
Z1, Z2 der Schaltungsanordnung zu den gleichen Werten Z/ZN = "0"/"0" oder "1"/"1". Hierzu wird der
Schaltungsanordnung 1 vor jedem zu treibenden und zu verrechnenden
Datum an den jeweiligen Eingängen
A1, A2, B1, B2 ein ungültiges
Signal zugeführt,
wobei die Schaltungsanordnung 1 ein den logischen Werten
des Dateneingangssignals entsprechendes Datenausgangssignal auf
die Datenausgänge
Z1, Z2 unabhängig
von zu realisierenden Gatterfunktionen durchschaltet. Unabhängig von
der Gatterfunktion wird das an den Dateneingängen anliegende Precharge-
oder Predischarge-Signal an die Datenausgänge weitergeleitet.
-
Dateneingangssignale
mit gültigen
logischen Werten werden entsprechend der Verknüpfungsfunktion der Schaltungsanordnung
verarbeitet und als Dual-Rail-Datenausgangssignal an den Ausgängen Z1,
Z2 ausgegeben.
-
Analog
der obigen Beschreibung gilt die Funktionsweise bzw. Verknüpfungsfunktion
der in den 2b und 2c dargestellten Ausführungsbeispiele.
In der 2b ist die Schaltungsanordnung 1 durch
ein OR-Gatter, in der 2c ist
die Schaltungsanordnung 1 durch ein XOR-Gatter gebildet, wobei
die Schaltungsanordnungen 1 sämtlicher Ausführungsbeispiele
wiederum jeweils durch mehrere logische Gatter gebildet sind.
-
3 zeigt eine allen in der 2 dargestellten Schaltungsanordnungen
entsprechende logische Verknüpfungsfunktion
anhand einer Tabelle. Für
gültige
logische Eingangssignale A, B gilt, wie in Tabelle 3a aufgeführt:
Das
Datenausgangssignal Z nimmt den logischen Wert "0" an,
falls eines der Dateneingangssignale A, B den logischen Wert "0" aufweist. Weisen beide Dateneingangssignale
A, B den logischen Wert "1" auf, wird auch das
Datenausgangssignal Z einem logischen Wert "1" annehmen.
-
Analoges
gilt bei der Umsetzung der logischen Signale in Dual-Rail-Technologie
gemäß Tabelle
3b: In den Zeilen 3 bis 6 der linken Spalte sind die logisch zulässigen Werte
der Dateneingangssignale A, B angegeben, in den Zeilen 3 bis 6 der
Spalten 2 bis 5 die hierzu korrespondierenden physikalischen Werte.
Logische Dateneingangssignale <A,AN>, <B,BN> werden
nur für
den Fall zu einem Ausgangssignal <Z,ZN> mit dem logischen
Wert "1" verknüpft, also
mit physikalischen Werten <1/0>, wenn für die Signale
A und B der physikalische Wert "1" und für die Signale
AN und BN der physikalische Wert "0" vorliegt.
-
Ein
ungültiges
logisches Eingangssignal, in diesem Fall ein Pre-Discharge-Signal,
liegt vor, wenn den Eingängen
A1, A2, B1, B2 Signale mit dem gleichen Wert "0",
das heißt,
A, AN, B und BN weisen den Wert "0" auf, wie in Zeile
1, Spalte 2 bis 5 angegeben, zugeführt wird. Für diesen Fall erzeugt die Verknüpfungsfunktion
der Schaltungsanordnung ein den Dateneingangssignalen entsprechendes
Datenausgangssignal wie vorab beschrieben. Wie aus der Tabelle ersichtlich
kann durch die Zuführung
eines ungültigen
logischen Signals eine Dual-Rail-Schaltung
mit quasi Pre-Discharge realisiert werden, wobei die Schaltungsanordnung
die weitere Eigenschaft aufweist, daß ungewollte Zwischenzustände, sogenannte
(Hazards), vermieden werden.
-
4 zeigt eine Anordnung 2 mit
mehreren erfindungsgemäßen Schaltungsanordnungen 1,
der über
eine Schaltung 3 ein Dual-Rail-Signal zugeführt wird. Die Anordnung 2 zeigt
drei Schaltungsanordnungen 1, die in einer Domino-Kette
seriell verknüpft sind
und in einer hier nicht dargestellten integrierten Schaltung beispielsweise
eine Untermenge einer sicherheitskritischen Zell-Funktion in Dual-Rail-Technologie
dar stellen. Die Schaltung 3 kann beispielsweise als ein
Flip-Flop oder eine Übergangsschaltung
von Single-Rail auf Dual-Rail
ausgeführt
sein und erzeugt das einer der Schaltungsanordnungen 1 der
Anordnung 2 zuführbare
Dual-Rail Precharge-Signal.
Dieses Signal kann der Anordnung an beliebiger Stelle zugeführt werden,
so daß den
Schaltungsanordnungen 1 festgelegte Werte eines Precharge-Signals
zugeführt
werden, die jeweils an den Ausgängen
einer Schaltungsanordnung 1 mit gleichen werten ausgegeben
und der nachfolgenden Schaltungsanordnung zugeführt werden. Somit ist eine Untermenge
von Schaltungsanordnungen mit dem quasi Precharge generierbar, der
sich innerhalb der Anordnung selbständig fortpflanzt, wobei eine
Einspeisung des Dual-Rail-Precharge-Signals jedoch nur über eine
Quelle, der Erzeugungsschaltung, erfolgt.
-
Die
erfindungsgemäßen Schaltungsanordnungen
sind nicht auf die dargestellten Ausführungsbeispiele beschränkt. Selbstverständlich können diese
verschiedene sowie in der Anzahl unterschiedliche logische Gatter
aufweisen.
-
- A1,
A2, B1, B2
- Eingänge
- Z1,
Z2
- Ausgänge
- <A, AN>
- Dateneingangssignal
- <B, BN>
- Dateneingangssignal
- <Z, ZN>
- Datenausgangssignal
- CLK
- Taktsignal
- 1
- Schaltungsanordnung
- 2
- Anordnung
- 3
- Schaltung