-
Die
vorliegende Erfindung bezieht sich auf eine Multiplexerzelle zum
Durchschalten eines von zwei Signalen an einem Ausgang und in speziellen
Ausführungsbeispielen
auf den Einsatz einer solchen Multiplexerzelle in sicherheitskritischen
Anwendungen, wie z.B. in einer ein kryptographisches Verfahren implementierenden
Schaltung.
-
In
einigen kryptographischen Algorithmen werden sogenannte S-Boxen verwendet.
Beispiele solcher kryptographischen Algorithmen sind beispielsweise
der DES- (Data Encryption Standard) und der AES- (Advanced Encryption
Standard = fortgeschrittener Verschlüsselungsstandard) Algorithmus. 5 zeigt schematisch die
Funktionsweise des DES-Algorithmus. Zum Verschlüsseln der Daten werden diese
zunächst
in 64-Bit-Blöcke 900 eingeteilt,
um sie blockweise zu verarbeiten. Die Blöcke 900 werden dann
zunächst
einer Permutation 902 unterzogen. Hernach wird der permutierte
64-Bit-Datenblock in zwei 32-Bit-Datenblöcke 904 und 906 aufgeteilt.
Diese 32-Bit-Blöcke 904 und 906 werden
iterativ in 16 sogenannten Runden folgenden Operationen unterzogen.
Zunächst
wird der Inhalt des Datenblockes 906, der in 5 mit R bezeichnet ist, auf
den Datenblock 904 der nächsten Runde abgebildet, der
in 5 mit L bezeichnet
ist. Diese Abbildung ist mit 908 dargestellt. Um den neuen
Inhalt des Datenblockes R 906 für die nächste Runde zu erhalten, wird
der aktuelle Inhalt des Datenblocks 906 einer Expansions-Operation
E 910 unterzogen, um aus dem 32-Bit-Datenblock nach einer
vorbestimmten Ergänzungsregel,
nach der bestimmte Bits verdoppelt werden, einen 48-Bit-Datenblock
zu erhalten. Letztgenannter wird daraufhin in einem Schritt 912 durch
eine XOR-Verknüpfung 912 mit
einem 48-Bit-Rundenschlüssel
verschlüsselt,
der für
jede Runde unterschiedlich ist aber aus ein und demselben 56-Bit-Schlüssel 914 durch
eine hier nicht näher
erörterte
Operation 916 abgeleitet wird.
-
Der
verschlüsselte
und expandierte 48-Bit-Datenblock wird in den eingangs erwähnten sogenannten S-Boxen
S1, S8 wieder auf einen 32-Bit-Datenblock abgebildet. Hierzu bildet
jede S-Box je sechs unterschiedliche der 48 Bits des verschlüsselten
Datenblocks auf vier Bits ab, wobei die Abbildungsvorschriften der
einzelnen S-Boxen zumeist durch Standards festgelegt sind. Nach
dieser S-Box-Abbildung 918 wird der sich ergebende Wert
wieder einer Permutation P 920 unterzogen und daraufhin
der permutierte 32-Bit-Block mit dem 32-Bit-Datenblock L 904 der
vorhergehenden Runde einer XOR-Verknüpfung 922 unterzogen.
Der XOR-verknüpfte
32-Bit-Datenblock stellt den neuen 32-Bit-Datenblock R 906 für die nächste Runde
dar. Diese durch die Schritte 908, 910, 912, 918, 920 und 922 definierte
Runde wird 16 mal durchgeführt.
Nach den 16 Runden werden die sich ergebenden 32-Bit-Datenblöcke L und
R (904, 906) wieder zu einem 64-Bit-Datenblock
zusammengefaßt
und einer zu der Permutation 902 inversen Ausgangspermutation 924 unterzogen,
wodurch der schließliche
64-Bit-Ausgangsdatenblock in verschlüsselter Form erhalten wird,
der mit 926 angezeigt ist.
-
Die
S-Boxen stellen, allgemein ausgedrückt, eine beliebige, nicht
unbedingt eindeutige Abbildung von einem n-Bit-Vektor auf einen
m-Bit-Vektor dar. In den meisten kryptographischen Algorithmen sind
die Abbildungen nicht linear. Die übliche Implementierung einer
S-Box besteht üblicherweise
in einem Speicher mit einer n-Bit-Eingangsadresse und einem m-Bit-Ausgangsdatum. Eine
solche Implementierung der S-Boxen ist jedoch extrem unsicher gegenüber DPA-
(differential power analysis = differentielle Leistungsanalyse)
Angriffen. Dies läßt sich
folgendermaßen
anhand des DES-Algorithmus von 5 veranschaulichen.
Wie im vorhergehenden erwähnt,
sind die Abbildungsvorschriften der verschiedenen S-Boxen bekannt.
Zudem macht sich jeder Zugriff in dem Leistungsprofil der den DES-Algorithmus
ausführenden
Schaltung durch bestimmte cha rakteristische Verläufe bemerkbar, die mit den
Eingangsadressen in die S-Boxen korrelieren. Insbesondere ist es beim
DES-Algorithmus
gefährlich,
daß die
in die S-Boxen eingehenden Eingangsadressen mit den geheimen Rundenschlüsseln verschlüsselt sind,
die auf bekannte, da zumeist vom Standard vorgegebene Weise, von dem
geheimen Hauptschlüssel 914 abgeleitet
sind. Aus diesem Grunde ist es möglich,
aus Stromprofilanalysen während
der 918 anhand der Korrelation zwischen
Stromprofil der den Algorithmus implementierenden Schaltung auf
den Hauptschlüssel 914 rückzuschließen.
-
Wie
bereits erwähnt,
sind die Kryptoalgorithmen DES und AES nicht die einzigen, die Daten
mittels S-Boxen verschlüsseln.
Bei all diesen Algorithmen erlaubt eine differentielle Stromanalyse
auf die im vorhergehenden beschriebene Weise einen Angriff auf geheimen
Daten. Falls ungeschützte
S-Boxen zur Speicherverschlüsselung
in einem Mikrocontroller verwendet werden, können selbst Software-Kryptoalgorithmen,
welche auf dem Prozessor laufen und Daten aus den verschlüsselten
Speichern beziehen, über
einen DPA-Angriff angegriffen werden.
-
Bisher
wurde dieses Problem noch auf keine adäquate Weise gelöst. Es ist
zwar möglich,
durch den Einsatz einer Full-Custom-Dual-Rail-Schaltungstechnik
die Sicherheit gegen DPA-Angriffe
in dieser Hinsicht zu erhöhen,
allerdings ist der Einsatz dieser Schaltungstechnik mit einem äußerst hohen
Aufwand verbunden, der nicht bei allen Anwendungen gerechtfertigt
erscheint.
-
Es
wäre deshalb
wünschenswert,
eine Möglichkeit
zu besitzen, Abbildungen, wie sie solche S-Boxen darstellen, auf
eine Weise zu implementieren, die in Hinblick auf die verarbeiteten
Werte eine höhere
Sicherheit vor dem Ausspionieren durch DPA-Angriffe bei verhältnismäßigem Aufwand ermöglichen.
-
Die
Aufgabe der vorliegenden Erfindung besteht darin, einen Multiplexer
und ein Verfahren zum Durchschalten eines von zwei Signalen an einem
Ausgang zu schaffen, so daß der
Durchschaltvorgang mehr Sicherheit gegenüber DPA-Angriffen liefert.
-
Diese
Aufgabe wird durch einen Multiplexer gemäß Anspruch 1 und ein Verfahren
gemäß Anspruch 10
gelöst.
-
Eine
erfindungsgemäße Multiplexerzelle
umfaßt
einen ersten Dateneingang, einen zweiten Dateneingang, einen Datenausgang,
einen Steuereingang und einen Schlüsseleingang. Sie schaltet abhängig von
einem Steuersignal an dem Steuereingang an dem Datenausgang ein
erstes Datensignal an dem ersten Dateneingang oder ein zweites Datensignal
an dem zweiten Dateneingang durch. Sie umfaßt einen ersten, zweiten und
dritten Elementarmultiplexer, von denen jeder zwei Dateneingänge, einen
Datenausgang und einen Steuereingang aufweist, wobei die Dateneingänge des
ersten Elementarmultiplexers auf eine erste Weise mit den Dateneingängen der
Multiplexerzelle und die Dateneingänge des zweiten Elementarmultiplexers
auf eine zweite, zu der ersten umgekehrten Weise mit den Dateneingängen der
Multiplexerzelle verbunden sind. Die Datenausgänge des ersten und des zweiten
Elementarmultiplexers sind mit jeweils einem der Dateneingänge des
dritten Elementarmultiplexers verbunden, und der Schlüsseleingang
der Multiplexerzelle ist mit dem Steuereingang des dritten Elementarmultiplexers
oder den Steuereingängen
des ersten und des zweiten Elementarmultiplexers verbunden. Die
Multiplexerzelle umfaßt
ferner eine Verschlüsselungseinrichtung
zur Verschlüsselung
des Steuersignals an dem Steuereingang der Multiplexerzelle mit
einem Schlüssel
an dem Schlüsseleingang,
um ein verschlüsseltes
Steuersignal zu erhalten, und zum Ausgeben des verschlüsselten
Steuersignals an dem Steuereingang des dritten Elementarmultiplexers,
falls der Schlüsseleingang
der Multiplexerzelle mit den Steuereingängen des ersten und des zweiten
Elementarmultiplexers verbunden ist, oder an den Steuereingängen des
ersten und des zweiten Elementarmultiplexers, falls der Schlüsseleingang
der Multiplexerzelle mit dem Steuereingang des dritten Elementarmultiplexers
verbunden ist.
-
Der
Kerngedanke der vorliegenden Erfindung besteht darin, entdeckt zu
haben, daß es
möglich
ist, einen Elementarmultiplexer mit einem verschlüsselten
Steuersignal anzusteuern und dabei trotzdem das richtige der beiden
Datensignale am Datenausgang desselben zu erhalten – wodurch
die Sicherheit gegenüber DPA-
oder SPA-Angriffen erhöht
wird, da der Stromverbrauch weniger mit dem eventuell geheimen Steuersignal
korreliert –,
indem dem Elementarmultiplexer weitere zwei Elementarmultiplexer
beigefügt
werden und diese drei Elementarmultiplexer baumartig stufenweise
angeordnet werden, so daß an
den Dateneingängen der
Elementarmultiplexer der ersten Stufe die Datensignale auf unterschiedliche
bzw. umgekehrte Weise anliegen und die Datenausgänge der selben an mit den Dateneingängen des
anderen Multiplexers verbunden sind, und eine der Stufen mit dem
verschlüsselten
Steuersignal angesteuert wird, während
die andere Stufe mit dem Schlüssel
angesteuert wird, um das Durchschalten des falschen Datensignals
zu korrigieren. Auf diese Weise unterscheidet sich die so gebildete
Multiplexerzelle nach außen
hin nicht in ihrer Funktionsweise in Hinblick auf die beiden Dateneingänge, den
Steuereingang und den Datenausgang von einem Elementarmultiplexer.
-
Die
Verschlüsselung
ist derart ausgelegt, daß unabhängig von
dem aktuellen Wert des Schlüssels
für ein
und denselben Wert des Steuersignals am Steuereingang der Multiplexerzelle
stets dasselbe Datensignal am Datenausgang ausgegeben wird, so daß ein stetiger
Wechsel des Schlüssels
auf beispielsweise zufällige Art
und Weise ermöglicht
wird, ohne daß sich
die Funktionsweise der Zelle in Hinblick auf ihre Funktion als Durchschaltelement
von den Dateneingängen
auf den Datenausgang abhängig
von dem Steuersignal am Steuereingang ändert, so daß DPA Angriffe
aufgrund der geringeren Korrelation zu dem Stromverbrauch zusätzlich erschwert
werden.
-
Gemäß Ausführungsbeispielen
der vorliegenden Erfindung ist es möglich, aus erfindungsgemäßen Multiplexerzellen
eine Vorrichtung zur Abbildung eines abzubildenden Eingangswertes
auf einen abgebildeten Ausgangswert oder einen verschlüsselten
abgebildeten Ausgangswert gemäß einer
Abbildungsvorschrift zu schaffen, wie z.B. eine S-Box. Die Multiplexerzellen
werden in einem Multiplexerbaum angeordnet, bei dem die Steuereingänge der
Multiplexerzellen einer Stufe stets von einem unterschiedlichen
Steuersignal angesteuert werden, wobei die Steuersignale aller Stufen
des Multiplexerbaumes zusammen bei einem ersten Ausführungsbeispiel
eine eindeutige Darstellung des abzubildenden Eingangswertes bilden.
An den Dateneingängen
der Multiplexerzellen der Anfangsstufe des Multiplexerbaumes liegen
Datensignale an, und zwar in einer Art und Weise, die durch die
Abbildungsvorschrift festgelegt ist. Durch Anlegen der den abzubildenden
Eingangswert anzeigenden Steuersignale an den Multiplexerbaum wird
eines der Datensignale am Datenausgang der Multiplexerzelle der
Ausgangsstufe des Multiplexerbaumes ausgegeben. Da durch die Multiplexerzellen
das Stromprofil durch das Anlegen sich ändernder Schlüssel an
den Schlüsseleingängen der
Multiplexerzellen verfälscht
werden kann, wird es bei DPA-Angriffen erschwert, Informationen über das
an dem Multiplexerbaum anliegende Steuersignal zu erhalten.
-
Eine
weitere Erhöhung
der Sicherheit läßt sich
dadurch realisieren, daß die
Datensignale an den Dateneingängen
der Multiplexerzellen der Anfangsstufe mit einem sich ändernden
Verschlüsselungsschlüssel verschlüsselt werden,
bevor sie an die Dateneingänge
angelegt werden. Auf diese Weise wird sichergestellt, daß die Durchschaltvorgänge völlig unabhängig von
den zu sichernden Informationen, nämlich den den abzubildenden
Eingangswert anzeigenden Steuersignalen, durchgeführt werden.
Bei zufälligem
Wechsel des Verschlüsselungsschlüssels sowie
der Schlüssel
an den Schlüsseleingängen der
Multiplexerzellen ist ein erfolgreicher DPA-Angriff nahezu aussichtslos.
-
Gemäß einem
Ausführungsbeispiel
wird der Aufbau einer Vorrichtung zur Abbildung eines abzubildenden
Eingangswertes auf einen entsprechenden Ausgangswert basierend auf
einem Multiplexerbaum aus Kryptomultiplexern dadurch vereinfacht,
daß die
Anfangsstufe des Multiplexerbaumes eingespart wird, die Steuersignale
an den Stufen des Multiplexerbaumes die Bitdarstellung des abzubildenden
Eingangswertes nur noch bis auf ein Bit eindeutig anzeigen, und
an den Eingängen
der Multiplexerzellen der Anfangsstufe Datensignale angelegt werden,
die jeweils aus einem Bitsignal, das das fehlende Bit der Bitdarstellung
anzeigt, einem inversen Bitsignal, einem Schlüsselbit und einem inversen
Schlüsselbit
ausgewählt
sind, derart, daß unabhängig davon,
welchem der möglichen
Eingangswerte der abzubildende Eingangswert entspricht, am Datenausgang
der Multiplexerzelle der Ausgangsstufe des Multiplexerbaumes ein
verschlüsselter
abgebildeter Ausgangswert ausgegeben wird, der mit dem Schlüssel durch
eine Verschlüsselung
aus demjenigen möglichen
Ausgangswert ableitbar ist, dem der abzubildende Eingangswert zugeordnet
ist.
-
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf
die beiliegenden Zeichnungen näher
erläutert.
Es zeigen:
-
1a und 1b Schaltungsbilder für zwei Ausführungsbeispiele einer Kryptomultiplexerzelle
gemäß der vorliegenden
Erfindung;
-
2 ein Blockschaltbild einer
verschlüsselten
3-Auf-1-S-Box gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung;
-
3 ein Blockschaltbild einer
verschlüsselten
3-Auf-1-S-Box gemäß einem
weiteren Ausführungsbeispiel
der vorliegenden Erfindung;
-
4 ein Blockschaltbild einer
vereinfachten, verschlüsselten
3-Auf-1-S-Box gemäß einem
weiteren Ausführungsbeispiel
der vorliegenden Erfindung; und
-
5 ein Diagramm zur Veranschaulichung
des DES-Algorithmus.
-
Bevor
Bezug nehmend auf die nachfolgenden Figuren Ausführungsbeispiele der vorliegenden
Erfindung näher
erläutert
werden, wird darauf hingewiesen, daß gleiche Elemente in den Figuren
mit gleichen Bezugszeichen versehen sind, und daß eine wiederholte Beschreibung
sich in den Figuren wiederholender Elemente vermieden wird.
-
1a zeigt eine mögliche Kryptomultiplexerzelle,
die eines von zwei Datensignalen an zwei Dateneingängen an
einem Datenausgang abhängig
von einem Steuersignal ausgibt, wobei es erschwert ist, anhand eines
DPA-Angriffs auf das Steuersignal rückzuschließen, da das Steuersignal vor
seiner Verwendung verschlüsselt
wird, wie es im folgenden beschrieben wird.
-
Die
Kryptomultiplexerzelle von 1a,
die allgemein mit 50 angezeigt ist, hat einen ersten Dateneingang 52a,
einen zweiten Dateneingang 52b, einen Steuereingang 54,
einen Schlüsseleingang 56 und
einen Datenausgang 57. Der Kryptomultiplexer 50 umfaßt drei
Elementarmultiplexer 58, 60 und 62. Ihm
ist ferner ein XOR-Gatter 64 zugeordnet, wie es in der
figur dargestellt ist.
-
Jeder
der Elementarmultiplexer 58, 60 und 62 umfaßt zwei
Dateneingänge,
einen Steuereingang und einen Datenausgang. Ein erster, in 1a linker Dateneingang des
Elementarmultiplexers 58 ist mit dem ersten Dateneingang 52a der
Multiplexerzelle verbunden, während
der zweite, in 1a rechte
Dateneingang des Elementarmultiplexers 58 mit dem zweiten
Dateneingang 52b der Multiplexerzelle 50 verbunden
ist. Der zweite Elementarmultiplexer 60 ist zu dem Elementarmultiple xer 58 funktionsgleich
aufgebaut, wobei jedoch seine Dateneingänge auf umgekehrte Weise mit
den Dateneingängen 52a und 52b der
Kryptomultiplexerzelle 50 verbunden sind. So ist ein erster,
in 1a rechter Dateneingang
mit dem zweiten Dateneingang 52b der Multiplexerzelle 50 verbunden,
während
ein zweiter, in 1a rechter
Dateneingang des Elementarmultiplexers 60 mit dem ersten
Dateneingang 52a der Multiplexerzelle 50 verbunden
ist. Beide Elementarmultiplexer 58 und 60 sind
mit ihrem Steuereingang mit dem Schlüsseleingang 56 der
Multiplexerzelle 50 verbunden. Die Ausgänge der Elementarmultiplexer 58 und 60 sind
mit jeweils einem unterschiedlichen der Dateneingänge des
Elementarmultiplexers 62 verbunden. Der Ausgang des Elementarmultiplexers 62 bildet
den Datenausgang 57 der Multiplexerzelle 50. Der
Steuereingang des Elementarmultiplexer 62 ist mit einem
Ausgang des XOR-Gatters 64 verbunden. Das XOR-Gatter 64 umfaßt zwei
Eingänge,
wobei ein erster Eingang mit dem Schlüsseleingang 56 und
der zweite Eingang mit dem Steuereingang 54 des Elementarmultiplexers 50 verbunden
ist.
-
Nachdem
im vorhergehenden der Aufbau der Kryptomultiplexerzelle 50 von 1a beschrieben worden ist,
die auch mit CM (crypto multiplexer) angezeigt wird, wird im folgenden
deren Funktionsweise beschrieben. Die Kryptomultiplexerzelle 50 ist
vorgesehen, um abhängig
von einem Steuersignal an dem Steuereingang 54 eines von
zwei Datensignalen, die an den Dateneingängen 52a und 52b anliegen,
am bzw. zum Datenausgang 57 durchzuschalten. Um hierbei
den Beitrag der Kryptomultiplexerzelle 50 zum Stromprofil
einer Schaltung, in die sie eingebaut ist, möglichst unabhängig von
dem Steuersignal am Steuereingang 54 zu machen, um dasselbe
vor dem Ausspionieren durch DPA-Angriffe zu schützen, wird das Steuersignal
vor seiner Verwendung beim Durchschalten durch einen am Schlüsseleingang 56 anliegenden
Schlüssel
verschlüsselt.
-
Alle
Signale, d.h. Schlüssel,
Steuersignal, die Datensignale an den Dateneingängen 52a und 52b und das
Datensignal am Da tenausgang 57, sind vorliegend binäre Signale
bzw. Bitsignale, die einen von zwei logischen Zuständen, d.h.
logisch hoch oder logisch niedrig, annehmen können.
-
Um
nun zur Veranschaulichung, warum sich die Verschlüsselung
des Steuersignals an dem Steuereingang 54 vor seiner Verwendung
zum Durchschalten nicht negativ auf das Ergebnis des Durchschaltens auswirkt,
so daß das
falsche Datensignal an den Dateneingängen 52a und 52b zum
Ausgang 57 durchgeschaltet wird, wird zunächst die
Funktionsweise des Elementarmultiplexers 62 in der Ausgangs-
bzw. Abschlußstufe
betrachtet. In dem Fall daß der
Schlüssel
an dem Schlüsseleingang 56 einen
logisch niedrigen Zustand, im folgenden auch manchmal als 0 bezeichnet,
aufweist, entspricht das verschlüsselte
Steuersignal, welches das XOR-Gatter 64 an den Steuereingang
des Elementarmultiplexers 62 ausgibt und welches in 1a mit cryptsel bezeichnet
ist, unabhängig
von dem jeweiligen aktuellen Zustand des zu verschlüsselnden Steuersignals
am Steuereingang 54 diesem letztgenannten Steuersignal
am Steuereingang 54. Abhängig vom Zustand des Steuersignals
am Steuereingang 54 wählt
der Elementarmultiplexer 62 folglich den linken oder den
rechten seiner Dateneingänge
aus und schaltet das Signal an demselben zum Ausgang 57 durch.
-
Ist
der Schlüssel
an dem Schlüsseleingang 56 jedoch
in einem logisch hohen Zustand, entspricht unabhängig von dem jeweiligen Zustand
des Steuersignals am Steuereingang 54 das verschlüsselte Steuersignal,
welches das XOR-Gatter 64 an den Steuereingang des Elementarmultiplexers 62 ausgibt,
nämlich
cryptsel, dem Inversen des Steuersignals am Steuereingang 54.
Folglich wird der Elementarmultiplexer 62 in diesem Fall,
d.h. dem Fall, da der Schlüssel
am Schlüsseleingang 56 einen
logisch hohen Zustand aufweist, genau den zum umgekehrten Fall,
da der Schlüssel
einen logisch niedrigen Zustand hat, anderen Dateneingang aus und
schaltet diesen zum Ausgang 57 durch.
-
Um
einen hierdurch bewirkten Fehler im Ausgabeergebnis des Kryptomultiplexers 50 zu
verhindern, sind die weiteren Elementarmultiplexer 58 und 60 vorgesehen.
Beide erhalten an ihrem Steuereingang den Schlüssel am Schlüsseleingang 56 als
Steuersignal. Beide wählen
deshalb, da funktionsgleich aufgebaut, abhängig von dem Schlüssel denselben
Dateneingang unter ihren Dateneingängen aus und schalten das Signal an
demselben zu ihrem Ausgang durch, wie z.B. den linken ihrer Dateneingänge, wenn
der Schlüssel
0 ist. Da jedoch ihre Dateneingänge
auf umgekehrte Weise mit den Dateneingängen 52a und 52b der
Kryptomultiplexerzelle 50 verbunden sind, geben sie effektiv
jeweils ein unterschiedliches der Datensignale an den Dateneingängen 52a und 52b aus.
-
Ebenfalls
unterschiedliche der Datensignale an den Dateneingängen 52a und 52b geben
die Elementarmultiplexer 58 und 60 in dem Fall
aus, daß der
Schlüssel 56 den
anderen Zustand aufweist, also beispielsweise einen logisch hohen
Zustand. In diesem Fall geben jedoch verglichen zum vorhergehenden
Fall die Elementarmultiplexer 58 und 60 jeweils
das andere Datensignal aus. Abhängig
vom Zustand des Schlüssels 56 wechselt
folglich die Art und Weise, in der die zwei Datensignale, die an
den Dateneingängen 52a und 52b der Multiplexerzelle 50 anliegen,
an die Dateneingänge
des Elementarmultiplexers 62 angelegt werden. Genau diese
Umkehr korrigiert aber den im vorhergehenden beschriebenen Wechsel
in der Auswahl des Dateneingangs, den der Elementarmultiplexer 62 unter
seinen Dateneingängen
auswählt,
um ihn an seinem Ausgang auszugeben, je nach Zustand des Schlüssels am
Schlüsseleingang 56.
Auf diese Weise wird unabhängig
vom Zustand des Schlüssels
am Schlüsseleingang 56 immer
dasjenige Datensignal an den Dateneingängen 52a und 52b an
den Datenausgang 57 durchgeschaltet, welches an dem Dateneingang 52a bzw. 52b anliegt,
wie er durch das Steuersignal an dem Steuereingang 54 angezeigt
wird, also beispielsweise das Signal am Eingang 52a bei
Steuersignal = 0 und das Signal am Eingang 52b bei Steuersignal
= 1 unabhängig
vom Schlüssel am
Eingang 56.
-
Durch
den in 1a dargestellten
Aufbau aus drei Zweieingangselementarmultiplexern 58, 60 und 62 ist
sichergestellt, daß keiner
dieser Elementarmultiplexer mit dem eventuell geheimen Steuersignal
an dem Steuereingang 54 angesteuert wird. Auf inhärente Weise
sorgt der Aufbau dafür,
daß die
Elementarmultiplexer 58 und 60 von dem Elementarmultiplexer 62 stromtechnisch
unabhängig
arbeiten. DPA-Angriffe werden somit sehr erschwert, da der Grad
an Korrelation zwischen entstehendem Stromprofil und Steuersignal
reduziert ist.
-
Da
der Schlüssel
an dem Schlüsseleingang 56 keinen
Einfluß auf
das Ergebnis an dem Datenausgang 57 hat, kann er ständig variiert
werden, wie z.B. durch einen Zufallsgenerator oder eine sonstige
Variationseinrichtung.
-
In 1b ist eine zu der Kryptomultiplexerzelle 50 von 1a abgewandelte Kryptomultiplexerzelle 50' dargestellt.
Sie weist dieselben Komponenten auf wie die Kryptomultiplexerzelle
von 1a. Es wurden deshalb
dieselben Bezugszeichen wie in 1a verwendet.
Lediglich in Hinblick auf das Anlegen der Steuersignale an die Elementarmultiplexer 58-62 unterscheidet
sich das Ausführungsbeispiel
von 1b von demjenigen
nach 1a.
-
Wiederum
sind die beiden Eingänge
des XOR-Gatters 64 mit dem Schlüsseleingang 54 bzw.
dem Steuereingang 56 der Zelle 50' verbunden. Der Ausgang, an dem
das XOR-Gatter 64 das verschlüsselte Steuersignal ausgibt,
ist jedoch diesmal mit den Steuereingängen der Elementarmultiplexer 58 und 60 verbunden. Der
Steuereingang des Elementarmultiplexers 62, d.h. des Elementarmultiplexers
der Ausgangsstufe im Gegensatz zu der durch die Elementarmultiplexer 58 und 60 gebildeten
Eingangsstufe, ist mit dem Schlüsseleingang 56 verbunden. Ähnliche Überlegungen
wie sie im vorhergehenden Bezug nehmend auf 1a angestellt wurden, ergeben, daß ein durch
die Verschlüsselung
des Steuersignals an dem Steuereingang 54 bewirktes ver ändertes
Anlegen des Paars von Datensignalen an die Dateneingänge des
Elementarmultiplexers 62 durch das Anlegen des Schlüssels als
Steuersignal an dem Steuereingang des Elementarmultiplexers 62 korrigiert wird,
so daß wiederum
unabhängig
davon, welchen Zustand der Schlüssel 56 annimmt,
immer dasjenige Datensignal an den Dateneingängen 52a und 52b am
Datenausgang 57 durchgeschaltet wird, das dem jeweiligen
Zustand des Steuersignals am Steuereingang 54 entspricht.
-
In
Bezug auf die vorhergehende Beschreibung wird darauf hingewiesen,
daß es
nicht unbedingt notwendig ist, daß die drei Elementarmultiplexer 58, 60 und 62 identisch
aufgebaut sind. So kann beispielsweise ein Invertierer vorgesehen
werden, um das Steuersignal zu einem der Elementarmultiplexer 58 und 60 gegenüber dem
Steuersignal des jeweils anderen zu invertieren, wobei die Dateneingänge der
Zelle dann auf geeignete Weise an die Dateneingänge der Elementarmultiplexer 58 und 60 anzuschließen sind.
Ein solcher Aufbau entspräche
vorhergehender Beschreibung im wesentlichen, sähe man in einem solchen Falle
Invertierer und Multiplexer zusammen als einen Elementarmultiplexer
nach obiger Beschreibung an.
-
Obige
Ausführungsbeispiele
betrafen ein Einfaches Ausführungsbeispiel,
bei dem die erwähnten
Signale lediglich Bitsignale waren bzw. die Multiplexerzelle lediglich
eine 2-auf-1-Durchschaltung
durchführte. Freilich
sind auch andere Ausführungsbeispiele
mit Mehrbitsignalen und entsprechend anderer Verschlüsselung
als der erwähnten
XOR-Verschlüsselung
denkbar.
-
Nachdem
im vorhergehenden zwei Ausführungsbeispiele
für eine
Kryptomultiplexerzelle beschrieben wurden, die es ermöglichen,
unter erhöhter
Sicherheit gegen DPA-Angriffe abhängig von einem geheimen Steuersignal
eines von zwei Signalen an einen Ausgang durchzuschalten, werden
im folgenden bezugnehmend auf die 2 bis 4 Ausführungsbeispiele für S-Boxen
beschrieben, die unter Verwendung dieser Kryptomultiplexer zellen
aufgebaut sind, so daß dieselben
eine erhöhte
Sicherheit vor dem Ausspionieren von Informationen über die
in die S-Box eingehenden Adreßwerte
durch DPA-Angriffe liefern.
-
Zur
Vereinfachung der Darstellung werden zunächst Bezug nehmend auf die 2-4 lediglich Ausführungsbeispiele für eine 3-Auf-1-S-Box
beschrieben, bei denen ein Drei-Bit-Eingangswert bzw. -Adreßwert auf einen
Ein-Bit-Ausgangswert abgebildet wird. Anschließend wird beschrieben, wie
diese Ausführungsbeispiele ohne
weiteres auch auf jedwede andere S-Box übertragen
werden können,
so z.B. auf die beim DES-Verfahren
verwendeten 6-Auf-4-S-Boxen.
-
Bevor
jedoch Bezug nehmend auf die 2-4 die Ausführungsbeispiele
für die
S-Boxen näher
erläutert
werden, soll im folgenden noch einmal kurz auf 5 Bezug genommen werden, um zu veranschaulichen, worin
das Problem bei dem Einsatz der S-Boxen im DES-Verfahren in Hinblick
auf DPA-Angriffe besteht, um bei der Beschreibung der 2-4 auf diese Problematik Bezug nehmen
zu können.
-
Wie
es 5 zu entnehmen ist,
die in der Beschreibungseinleitung bereits beschrieben worden ist, sind
die S-Boxen, bzw. die durch dieselben definierten 918 Teil
einer 16 mal durchgeführten
DES-Runde bestehend aus den Schritten 908, 910, 912, 918, 920 und 922.
In jeder Runde wird ein Zwischenergebnis, nämlich der erweiterte Datenblock
nach der Expansion 910, mit einem Rundenschlüssel verknüpft, der
aus einem geheim zu haltenden Hauptschlüssel 914 auf eine
bekannte Art und Weise 916 hergeleitet wird. Die Verknüpfung besteht
in der XOR-Verknüpfung 912.
Das so verschlüsselte
Ergebnis wird abschnitt- bzw. 6-Bit-weise in die S-Boxen S1-S8 eingegeben.
Die Abbildungsvorschriften der S-Boxen sind aufgrund der Standardisierung
des DES-Algorithmus grundsätzlich
bekannt.
-
Das
Problem besteht nun darin, daß bei
der Verarbeitung des verschlüsselten
Datenblocks nach der Verknüpfung 912 in
den S-Boxen S1-S8 ein Stromprofil entstehen könnten, aus dem mittels des
DPA-Angriffes Rückschlüsse auf
die Rundenschlüssel
und somit auf den geheim zu haltenden Hauptschlüssel 914 gezogen werden
können.
Eine S-Box sollte deshalb stets eine möglichst geringe Korrelation
zwischen Stromprofil und abzubildenden Adreßwert, hier dem verschlüsselten
Datenblock nach der Verknüpfung 912,
besitzen.
-
2 zeigt ein Ausführungsbeispiel
einer 3-Auf-1-S-Box, die einen abzubildenden Drei-Bit-Eingangs- bzw.
-Adreßwert
sel={sel1, sel2, sel3} auf einen verschlüsselten Ein-Bit-Ausgangswert abbildet,
der aus einem durch die der S-Box zugrundeliegenden Abbildungsvorschrift
festgelegten Ausgangswert durch eine XOR-Verknüpfung mit einem Verschlüsselungsbit
outkey1 hervorgeht.
-
Die
S-Box von 2, die allgemein
mit 100 angezeigt ist, umfaßt acht Dateneingänge 102a-102h,
einen Datenausgang 103, drei Steuereingänge 104a, 104b und 104c,
die mit csel bezeichnet sind, wobei „csel" gleichbedeutend mit „cryptsel" ist, drei Schlüsseleingänge 106a, 106b und 106c sowie
einen Verschlüsselungsschlüsseleingang 108.
An jedem Eingang liegt vorliegend ein binäres Signal an, das entweder
einen logisch hohen oder einen logisch niedrigen Zustand hat. Die
Zustände
der Signale an den Dateneingängen 102a-102h definieren
auf eine vorbestimmte Weise, die sich noch aus der nachfolgenden
Beschreibung ergibt, die Abbildungsvorschrift der S-Box 100,
sind fest und sind zudem mit v1-v8 dargestellt. Wie es aus dem Vergleich
von 2 und 1 zu sehen ist, wird das
Signal cryptsel (csel) durch ein in 2 bzw. 3 nicht gezeigtes XOR-Gatter
(64 in 1a)
aus dem Select-Signal erzeugt.
-
An
den drei Dateneingängen 104a-104c liegen
die Signale csel1-csel3 an, die zusammen eine eindeutige Bitdarstellung
des Drei-Bit-Eingangswertes sel bilden, wobei vorliegend exemplarisch
csel1 das niedrigstwertige und csel3 das höchstwertige Bit sein soll.
Die Signale an den Schlüsseleingängen 106a-106c sind
mit key1-key3 bezeichnet und bilden zusammen eine eindeutige Bitdarstellung
eines 3-Bit-Schlüssels
key, wobei wiederum key1 das niedrigstwertige und Key3 das höchstwertige
Bit sein soll. Das mit outkey1 bezeichnete Verschlüsselungsschlüsselbit
liegt an dem Verschlüsselungsschlüsseleingang 108 an.
-
Grob
ausgedrückt
besteht die S-Box 100 zunächst aus einem Verschlüsselungsteil 110 und
einem Multiplexerteil bzw. einer Multiplexereinrichtung 112.
Der Verschlüsselungsteil 110 wird
gebildet durch acht XOR-Gatter 110a-110h. Jedes
XOR-Gatter weist zwei Eingänge
und einen Ausgang auf. Ein erster Eingang jedes XOR-Gatters 110a-110h ist
mit dem Verschlüsselungsbiteingang 108 verbunden.
Der zweite Eingang jedes XOR-Gatters ist mit einem unterschiedlichen
der acht Dateneingänge 102a-102h verbunden.
-
Der
Multiplexerteil 112 wird durch einen dreistufigen Multiplexerbaum
aus Kryptomultiplexerzellen des Typs von 1a oder 1b gebildet
(einschließlich
der zugeordneten Gatter, wie z. B. 64 in 1a). Kryptomultiplexerzellen einer ersten
bzw. Anfangsstufe sind mit 114a, 114b, 114c und 114d angezeigt.
Kryptomultiplexerzellen einer zweiten Stufe des Multiplexerbaumes
sind mit 116a und 116b gezeigt, während eine
Kryptomultiplexerzelle einer Abschlußstufe des Multiplexerbaumes
mit 118a angezeigt ist. Die Stufen des Multiplexerbaumes
sind allgemein mit 114, 116 und 118 angezeigt.
Der Aufbau des Multiplexerbaumes, im folgenden mit 112 bezeichnet,
ist derart, daß stets
die Datenausgänge
der Kryptomultiplexerzellen einer vorhergehenden Stufe mit jeweils
einem unterschiedlichen der Dateneingänge der Kryptomultiplexerzelle
bzw. der Kryptomultiplexerzellen der nachfolgenden Stufe verbunden
sind, so daß sich
die Anzahl der Kryptomultiplexer von Stufe zu Stufe halbiert. Die
Steuereingänge
der Kryptomultiplexerzellen sind mit jeweils einem unterschiedlichen
der Steuereingänge 104a-104c verbunden.
Insbesondere sind die Steuereingänge
der Multiplexerzellen 114a-114d der Anfangsstufe 114 mit
dem Steuereingang 104a der S-Box 110, die Steuereingänge der
Multiplexerzellen 116a und 116b mit dem Steuereingang 104b und
der Steuereingang der Kryptomultiplexerzelle 118a mit dem
Steuereingang 104c verbunden. Auf entsprechende Art und
Weise sind die Kryptomultiplexerzellen jeweils einer Stufe mit ein
und demselben aber zu einer anderen Stufe jeweils unterschiedlichem
der Schlüsseleingänge 106a-106c verbunden.
-
Jedes
XOR-Gatter 110a-110h umfaßt einen Ausgang. Der Ausgang
jedes XOR-Gatters 110a-110h ist mit einem unterschiedlichen
der Dateneingänge
der Kryptomultiplexerzellen 114a-114d der Anfangsstufe
des Multiplexerbaumes 112 verbunden. Der Datenausgang der
Kryptomultiplexerzelle 118a der Abschlußstufe 118 bildet
zugleich den Datenausgang 103 der S-Box 100.
-
Nachdem
im vorhergehenden der Aufbau der S-Box 100 beschrieben
worden ist, wird im folgenden die Funktionsweise derselben beschrieben.
Es wird zunächst
der Fall betrachtet, daß der
Zustand des Verschlüsselungsschlüsselbits
outkey1 logisch niedrig ist, bzw. 0 ist. In diesem Fall wird, wie
nachfolgender Tabelle 1 entnommen werden kann, am Ausgang jedes
XOR-Gatters das
jeweilige Signal v1...v8, wie es am Eingang des jeweiligen XOR-Gatters
anliegt, am Ausgang desselben unverändert ausgegeben.
-
-
In
dem Fall von outkey1 = 0 liegen folglich die Zustände v1-v8 durch die XOR-Gatter
unverändert
an den Dateneingängen
der Kryptomultiplexer 114a-114d an.
-
Von
diesen Signalen v1-v8 wird durch den Multiplexerbaum 112 abhängig von
dem Eingangswert sel aber unabhängig
von dem Schlüssel
key eines auf den Ausgang 103 durchgeschaltet. Dies wird
im folgenden veranschaulicht. Wie im vorhergehenden Bezug nehmend
auf 1a–1b beschrieben, schaltet
jede Kryptomultiplexerzelle unabhängig von dem Zustand des Signals
am Schlüsseleingang
eines der Signale an seinen Dateneingängen abhängig von dem Steuersignal am
Steuereingang auf den Ausgang durch. Vorliegend seien die Kryptomultiplexer
exemplarisch derart angeordnet, daß sie bei einem logisch niedrigen
Zustand des Steuersignals, d.h. 0, an ihrem Steuereingang den linken
ihrer Dateneingänge
auf ihren Ausgang durchschalten. Dasselbe gelte für die übrigen Kryptomultiplexerzellen 116a, 116b und 118a.
Auf diese Weise wird eine eindeutige Zuordnung zwischen einerseits
den möglichen
Eingangswerten, die der abzubildende Eingangswert sel annehmen kann,
und den Dateneingängen
der Kryptomultiplexerzellen 114a-114d definiert,
die jedem möglichen
Eingangswert von sel einen unterschiedlichen dieser acht Dateneingänge zuordnet,
der bei Anliegen dieses Eingangswertes an den Steuereingängen 104a-104c durch
den Multiplexerbaum 112 auf den Ausgang 102 durchgeschaltet
wird.
-
Unter
den vorhergehend gemachten Annahmen über die Anordnung der Kryptomultiplexerzellen
und unter der Annahme, daß outkey1
gleich 0 ist, kann die Zuordnung durch folgende Tabelle 2 veranschaulicht werden,
die abhängig
von den Werten von sel1-sel3 (erste drei Spalten) für den Fall
von outkey1 = 0 zeigt, welches der Signale v1-v8 an dem Ausgang 103 durchgeschaltet
wird (rechte Spalte):
-
-
Jedem
möglichen
Drei-Bit-Eingangswert sel ist folglich ein spezielles Signal v1-v8
bzw. ein spezieller Dateneingang 102a-102h zugeordnet.
-
Jedes
Signal v1-v8 kann wie bereits erwähnt lediglich einen von zwei
logischen Zuständen
annehmen. Dies sind die möglichen
zwei Ausgangswerte, die an dem Ausgang 103 der S-Box 100 ausgegeben
werden können.
Welchen der beiden Zustände
die Signale v1-v8 aufweisen müssen,
hängt von
der gewünschten Wahrheitstabelle
bzw. der gewünschten
Abbildungsvorschrift der S-Box 100 ab. Bestimmte sind die
Zustände also über die
Zuordnung, wie sie sich aus Tabelle 2 ergibt, indem v1-v8 in Tabelle
2 auf jeweils den möglichen Ausgangswert,
d.h. o oder 1, eingestellt werden, wie es der Abbildungsvorschrift
der S- Box entspräche, die jedem
der acht möglichen
Eingangswerte einen möglichen
Ausgangswert zuordnet.
-
Die
vorhergehende Erörterung
hat gezeigt, daß in
dem Fall von outkey1 = 0 der Ausgangswert, der sich abhängig von
Eingangswert sel am Ausgang 103 der S-Box einstellt, derjenige
unter den möglichen
Ausgangswerten ist, auf den der jeweilige abzubildende Eingangswert
durch die Abbildungsvorschrift der S-Box abgebildet wird. Durch das Vorsehen
der Kryptomultiplexerzellen jedoch ist es durch Variieren des Schlüssels key
möglich,
die Korrelation zwischen dem Stromprofil einerseits und dem abzubildenden
Eingangswert sel weitestgehend zu zerstören, so daß DPA-Angriffe erschwert werden.
-
Ein
gewisses Maß an
Korrelation zwischen abzubildenden Eingangswert sel und dem Stromprofil
ergibt sich lediglich noch dadurch, daß die die Abbildungsvorschrift
definierenden Signale v1-v8 fest eingestellt und in einer festen
Zuordnung zu dem abzubildenden Eingangswert sel stehen. Diese Korrelation
wird noch durch den Verschlüsselungsschlüssel outkey1
zerstört.
-
Wie
im folgenden noch detaillierter erörtert werden wird, bewirkt
das Verschlüsselungsbit
outkey1, daß anstelle
des gemäß der Abbildungsvorschrift
der S-Box gemäß dem abzubildenden
Eingangswert sel1-3 abgebildeten Ausgangswertes in unverschlüsselter
Form derselbe in verschlüsselter
Form ausgegeben wird und dabei in verschlüsselter Form den Multiplexerbaum 112 durchläuft. Durch
Variation des Verschlüsselungsschlüssels outkey1
kann folglich jegliche Korrelation zwischen Stromprofil einerseits
und abzubildenden Eingangswert sel1-3 andererseits zerstört werden,
wobei lediglich die variierende Verschlüsselung des Ausgangswertes
mit dem Schlüsselbit
outkey1 bei der weiteren Verarbeitung zu berücksichtigen ist.
-
In
dem vorliegenden Fall wird die Verschlüsselung durch den Verschlüsselungsteil 110 durch
eine signalweise XOR- Verknüpfung der
Signale v1-v8 mit dem Verschlüsselungsbit
outkey1 bewirkt. Die Folge ist, daß wenn outkey1 gleich 0 ist,
wie im vorhergehenden erwähnt,
der Ausgangswert, der sich am Ausgang 103 einstellt, dem
Ausgangswert entspricht, auf den der jeweilige Eingangswert sel1-3
durch die Abbildungsvorschrift der S-Box abgebildet wird, d.h. dem
abgebildeten Ausgangswert. Wenn outkey1 gleich 1 ist, wird, wie es
aus Tabelle 1 hervorgeht, jedes der Signale v1-v8 invertiert, bevor
es den jeweiligen Dateneingang unter den Dateneingängen der
Kryptomultiplexerzellen 114a-114d erreicht, weshalb
am Ausgang 103 sich ein Ausgangswert einstellt, der zu
dem Ausgangswert invertiert ist, der sich bei selbem Eingangswert
sel1-3 in dem Fall von outkey1 gleich 0 einstellt. Folglich bewirkt
die S-Box von 2 eine
Abbildung eines Eingangswertes sel1-3 auf ein durch XOR-Verknüpfung mit
dem Verschlüsselungsbit
outkey1 verschlüsselten
gemäß der Abbildungsvorschrift
abgebildetem Ausgangswert dar.
-
Durch
zufälliges
Variieren des Verschlüsselungsbits
outkey1 sowie des Drei-Bit-Schlüssels
key ist es nun möglich,
die Umschaltvorgänge
in dem Kryptomultiplexern vollständig
unabhängig
von dem vor DPA-Angriffen zu schützenden
Eingangswert sel zu machen. Dieser Vorteil wird detaillierter noch
in Zusammenhang mit 5 beschrieben.
Zuvor werden jedoch noch Bezug nehmend auf die 3 und 4 weitere
Ausführungsbeispiele
für eine
3-Auf-1-S-Box beschrieben, die eine Variation zu der S-Box von 2 darstellen.
-
3 zeigt eine 3-Auf-1-S-Box 100', die sich von
der in 2 gezeigten lediglich
dadurch unterscheidet, daß der
Schlüsselbiteingang
mit einem der Steuereingänge
der S-Box zusammengelegt wurde, vorliegend exemplarisch dem Steuereingang 106a.
Dieser zusammengefaßte
Eingang ist in 3 mit 106a' angezeigt. Wie
es zu sehen ist, ist in 3 exemplarisch
der Verschlüsselungsbiteingang
mit dem Steuereingang der ersten Stufe 114 des Multiplexerbaumes 112 zusammengefaßt worden,
so daß an
den ersten Eingängen
der XOR-Gatter des Verschlüsselungsteils 110 als
Verschlüsselungsbit
das niedrigstwertige Bit in der Bitdarstellung des Schlüssels key
anliegt, d.h. key1. Freilich wäre
es auch möglich,
den Verschlüsselungsbiteingang
mit einem beliebigen anderen der Steuereingänge 106b und 106c zusammenzufassen.
-
Das
Ausführungsbeispiel
von 3 ist darin zu dem
Ausführungsbeispiel
von 2 vereinfacht, daß lediglich
noch drei Bits, nämlich
key1, key2 und key3 variiert werden müssen, um die oben erläuterte Zerstörung der
Korrelation des Leistungsverbrauchs von den abzubildenden Eingangswerten
zu erzielen.
-
4 zeigt eine weitere Vereinfachung
des Ausführungsbeispiels
von 2, wobei die Vereinfachung hierbei
darin besteht, daß die
bei dem Ausführungsbeispiel
von 2 verwendete aktive
Verschlüsselung
der die Abbildungsvorschrift definierenden Signale v1-v8 vor der
ersten Stufe des Multiplexerbaumes durch eine passive Verschlüsselung
unter Weglassung der ersten Stufe des Multiplexerbaumes ersetzt
wird, gemäß der das
Verschlüsselungsbit
outkey1 und das niedrigwertige Steuerbit sel1 in form und Verteilung
geeignet jeweils einzeln an die Dateneingänge der nächstfolgenden Stufe 116 angelegt
werden, wobei von dem Umstand Gebrauch gemacht wird, daß ja die
die Abbildungsvorschrift darstellenden Signale v1-v8 bekannt sind.
-
Das
Ausführungsbeispiel
von 4 stellt eine Vereinfachung
der S-Box in 2 für den exemplarischen
Fall einer konkreten Abbildungsvorschrift dar. Genauer ausgedrückt, stellt
die S-Box 100'' von 4 eine Vereinfachung der
S-Box von 2 für eine Abbildungsvorschrift
dar, bei der die Zustände
der Signale v1-v8 die in 4 bei 115 jeweils
unter v1-v8 stehenden Werte annehmen. 4 stellt
folglich eine 3-Auf-1-S-Box
dar, die einen 3-Bit-Eingangswert mit den Bits sel1, sel2 und sel3
in aufsteigender Wertigkeit auf einen Ein-Bit-Ausgangswert gemäß folgenden Abbildungsvorschrift
bzw. Wahrheitstabelle abbildet, so lange outkey1 gleich 0 ist:
-
-
Die
S-Box von 4 hat einen
Datenausgang 103, drei Steuereingänge 104a, 104b und 104c,
zwei Schlüsseleingänge 106b und 106c sowie
einen Verschlüsselungsbiteingang 108.
-
Grob
ausgedrückt
besteht die S-Box 100'' aus einem Datensignalbereitstellungsteil 110', sowie einem Multiplexerteil 112'. Der Multiplexerteil 112' entspricht
den letzten beiden Stufen des Multiplexerbaumes von 2 bzw. dem Multiplexerbaum von 2 ohne die Anfangsstufe.
Insbesondere besteht der Multiplexerteil 112' folglich aus einem zweistufigen
Multiplexerbaum mit einer Anfangsstufe 116' und einer Abschlußstufe 118', wobei die
Anfangsstufe 116' zwei
Kryptomultiplexerzellen 116a und 116b und die
Abschlußstufe
eine Kryptomultiplexerzelle 118a aufweist. Die Datenausgänge der
Kryptomultiplexerzellen 116a, 116b sind mit den beiden
Dateneingängen
der Kryptomultiplexerzelle 118a verbunden. Der Datenausgang
der Kryptomultiplexerzelle 118a bildet den Datenausgang 103 der
S-Box 100''. Die Steuereingänge der
Kryptomultiplexerzellen 116a, 116b sind mit dem
Steuereingang 104b verbunden, während der Steuereingang der
Kryptomultiplexerzelle 118a mit dem Steuereingang 104c verbunden
ist. Auf ähnliche
Weise, sind die Schlüsseleingänge der Kryptomultiplexerzellen 116a, 116b mit
dem Schlüsseleingang 104b und
der Schlüsseleingang
der Kryptomultiplexerzelle 118a mit dem Schlüsseleingang 106c verbunden.
-
Der
Datensignalbereitstellungsteil 110' besteht im wesentlichen aus Leiterbahnen,
die an einem Ende mit dem Verschlüsselungsbiteingang 108 bzw.
dem Steuereingang 104a verbunden sind, um die an denselben anliegenden
Signale an die Dateneingänge
der Kryptomultiplexerzellen 116a, 116b der Anfangsstufe 116' auf geeignete
Weise zu verteilen. Invertierer, hier Invertierer 152a und 152b,
sind vorgesehen, um die Signale von den Eingängen 108 und 104a vor
ihrem Anlegen an bestimmte Dateneingänge unter den Dateneingängen der Kryptomultiplexer 116a, 116b zu
invertieren. In dem vorliegenden Fall ist der Datensignalbereitstellungsteil 110' derart ausgebildet,
daß an
dem linken Dateneingang der Kryptomultiplexerzelle 116a das
Verschlüsselungsbit,
an dem rechten Dateneingang der Kryptomultiplexerzelle 116a das
niedrigstwertige Bit des Drei-Bit-Eingangswertes sel, d.h. sel1, am linken Dateneingang
der Kryptomultiplexerzelle 116b der durch den Invertierer 152a invertierte
Wert von sel1, d.h. sel1, und an dem rechten Dateneingang der Kryptomultiplexerzelle 116b der
durch den Invertierer 152b invertierte Wert von outkey1
anliegt, d.h. outkey1 (der
obere Querstrich gebe jeweils das bitweise Inverse des unter ihm
stehenden Ausdrucks an).
-
Diese
Art und Weise der Belegung der Dateneingänge der Kryptomultiplexerzellen 116a und 116b führt zu der
gewünschten
Abbildungsvorschrift und der Verschlüsselung des auszugebenden Ausgangswertes 103 unter
der Annahme wie sie auch bereits einmal in der Beschreibung von 2 verwendet wurde, nämlich daß ein Steuersignal
mit dem Wert 0 an einem Steuereingang eines der Kryptomultiplexerzellen 116a-118a zum
Durchschalten des linken Dateneingangs auf dem jeweiligen Datenausgang
führt,
während
ein Steuersignal von 1 zum Durchschalten des Signals am rechten
Dateneingang führt.
-
Die Überlegungen,
die zu der Belegung der Signale von den Eingängen 108 und 104a an
die Dateneingänge
der Kryptomultiplexer 116a und 116b führen, werden
im folgenden erläutert.
Ausgangspunkt bildet die S-Box wie in 2 gezeigt.
Dort seien die Signale v1-v8 durch die Abbildungsvorschrift der
S-Box 100'' auf die bei 115 gezeigte
Weise festgelegt. Betrachtet man nun die XOR-Gatter 110a-110h und
die Kryptomultiplexerzellen 114a-114d näher, so
erkennt man, daß jeweils
eine Kryptomultiplexerzelle 114a-114d zusammen
mit ihren zwei verbundenen XOR-Gattern jeweils eine Einheit bilden,
deren Wert am Datenausgang des jeweiligen Kryptomultiplexers lediglich
von den Variablen outkey1 und sel1 abhängt, nicht jedoch von key1,
da sich dieser ja nicht auf das Durchschaltergebnis der Kryptomultiplexer
auswirkt, und nicht von v1-v8, da diese ja fest und nicht variabel
sind.
-
So
sind in dem Fall von v1 und v2 diese auf die festen Werte 0 und
0 eingestellt. Aus der Tabelle 1, die die XOR-Verknüpfung betrifft, ergibt sich,
daß an
beiden Dateneingängen
der Kryptomultiplexerzelle 114a outkey1 anliegt. Unabhängig von
dem genauen Zustand des Signals sel1 gibt die Kryptomultiplexerzelle 114a folglich
outkey1 an den linken Dateneingang der Kryptomultiplexerzelle 116a der
nachfolgenden Stufe 116 aus. Ähnliche Überlegungen führen dazu,
daß die
Kryptomultiplexerzelle 114d an ihrem Datenausgang auf jeden Fall
den Wert outkey1 an den rechten
Dateneingang der Kryptomultiplexerzelle 116b der nachfolgenden
Stufe 116 ausgibt, da ihre zugehörigen Signale v7 und v8 beide
1 sind.
-
Anders
gestaltet sich der Fall bei v3 und v4. Diese Signale haben die Werte
1 für v3
und 0 für
v4. Die Werte an v3 und v4 sind folglich invertiert zueinander.
In dem Fall von outkey1 = 0 liegen dieselben in dieser Form auch
an der Kryptomultiplexerzelle 114b an. Ist der Wert von
sel1 gleich 0 wählt
die Kryptomultiplexerzelle 114b den linken Dateneingang
aus, an dem dann der Wert v3 = 1 anliegt. In dem Fall von sel1 =
1 und outkey1 = 0 gibt die Zelle 104b 0 aus. Genau umgedreht gestaltet
sich der Fall bei dem Paar v5 und v6, die zu dem Paar v3 und v4
genau umgekehrt an den Dateneingängen
der Kryptomultiplexerzelle 114c anliegen, wenn outkey1
gleich 0 ist. Auf diese Weise lassen sich die Ergebnisse, die die
Kryptomultiplexerzellen 114b und 114c an ihrem
jeweiligen Datenausgang der nachfolgenden Kryptomultiplexerzelle 116a bzw. 116b ausgeben,
durch sel1 auf der einen und sel1 auf
der anderen Seite darstellen.
-
Obige Überlegungen
sind allgemein gültig
und auf jegliche Abbildungsvorschrift, bzw. auf jegliche Zuweisung
von Werten zu den Signalen v1-v8 anwendbar und sind in Tabelle 4
noch einmal zusammengefaßt:
-
-
In
Anwendung der Tabelle 4 kommt man folglich zu dem Aufbau des Datensignalbereitstellungsteils 110', wie er in 4 gezeigt ist. Denn v1 und
v2 betragen in diesem Fall 0 und 0, weshalb das Signal outkey1 an
den linken Dateneingang der Kryptomultiplexerzelle 116a angelegt
wird. Das Signal v3 v4 beträgt
1 0, weshalb nach Tabelle 4 an den rechten Dateneingang der Kryptomultiplexerzelle 116a der
Wert sel1 angelegt wird usw.
-
Das
Ausführungsbeispiel
von 4 stellt folglich
eine Vereinfachung zu 2 dar,
darin, daß weniger Kryptomultiple xerzellen
und keine XOR-Gatter notwendig sind. Die Funktionsweise im übrigen ist
dieselbe.
-
Im
vorhergehenden wurden folglich Bezug nehmend auf die 2-4 drei Ausführungsbeispiele für 3-Auf-1-S-Boxen
beschrieben, die abhängig
von einem 3-Bit-Eingangswert sel einen abgebildeten Ausgangswert
gemäß einer
Abbildungsvorschrift ausgaben, die die möglichen acht Eingangswerte,
die der abzubildende Eingangswert annehmen konnte, nämlich {0
0 0}, {0 0 1}, {0 1 0}, {0 1 1}, usw., einem von zwei möglichen
Ausgangswerten zuordenbar machte, nämlich 0 oder 1, wobei der abgebildete
Ausgangswert in verschlüsselter Form
ausgegeben wurde, hier in diesem Fall XOR-verknüpft mit dem Verschlüsselungsbit
outkey1.
-
Die
S-Boxen von 2-4 können ohne weiteres auch auf
Eingangswerte mit mehr oder weniger Bit übertragen werden. Auf diese
Weise können
ohne weiteres 6-Auf-1-S-Boxen erhalten werden. Um nun zu dem vom
DES-Verfahren benötigten
6-Auf-4-S-Boxen
zu gelangen, werden vier 6-auf-1-S-Boxen des Typs nach 2, 3 oder 4 verwendet.
Die Schlüsselbits
key# jeder der vier 6-Auf-1-S-Boxen können zu den Schlüsselbits key#
der jeweils anderen identisch oder unterschiedlich sein. Ebenso
kann das Verschlüsselungsbit
outkey1 für
alle diese 6-Auf-1-S-Boxen
gleich sein. Sicherer ist es aber, wenn das Verschlüsselungsbit
outkey# für
jede der vier 6-Auf-1-S-Boxen unterschiedlich ist, d.h. outkey1
für die
erste, outkey1 für
die zweite usw.
-
Die
Abbildungsvorschriften der vier 6-Auf-1-S-Boxen wären aus
der Gesamtabbildungsvorschrift abzuleiten, die für die 6-Auf-4-S-Box gelten soll, die sich aus den
vier 6-Auf-1-S-Boxen zusammensetzt. Die Gesamtabbildungsvorschrift
bildet 6-Bit-Eingangswerte
auf 4-Bit-Ausgangswerte ab. Jedes Bit des Vier-Bit-Ausgangswerts wird durch eine 6-Auf-1-S-Box
ausgegeben. Dementsprechend bestimmt sich aus der Gesamtabbildungsvorschrift,
die sechs auf vier Bits abbildet, die Abbildungsvor schrift jeder
einzelnen 6-Auf-1-S-Box durch die Werte in der entsprechenden Bitposition
des Ausgangswertes gemäß der Gesamtabbildungsvorschrift,
die ja durch die 6-Auf-4-S-Box ausgegeben werden sollen.
-
Dies
sei an einem einfachen 3-Auf-2-S-Box-Fall veranschaulicht. Soll
eine 3-Auf-2-S-Box mit der in Tabelle 5 gezeigten Abbildungsvorschrift
erzeugt werden, so müssen
zwei 3-Auf-1-S-Boxen
zusammen verwendet werden, von denen die erste das höherwertige
Bit des Ausgangswertes ausgibt und die Abbildungsvorschrift von
Tabelle 6 aufweist, und von denen die zweite S-Box das niedrigwertigere
Bit des Zwei-Bit-Ausgangswertes
ausgibt und die in Tabelle 7 gezeigte Abbildungsvorschrift aufweist.
-
-
-
Bei
einer Anwendung einer entsprechend zusammengesetzten 6-Auf-4-S-Box für die S-Boxen
s1-s8 in dem DES-Algorithmus, der in 5 gezeigt
ist, würde
folglich ein DPA-Angreifer aufgrund der Zerstörung der Korrelation zwischen
dem durch die Durchschaltvorgänge
bewirkten Stromprofil und den Eingangswerten in die S-Boxen s1-s8
keine Rückschlüsse mehr
auf die geheimen Eingangswerte und damit nicht auf den Hauptschlüssel bzw.
die Rundenschlüssel
ziehen können.
Die Ausgangswerte der S-Boxen werden verschlüsselt mit den sich ändernden
Vier-Bit-Verschlüsselungsschlüssel outkey1-outkey4.
-
Bezug
nehmend auf die vorhergehende Beschreibung wird darauf hingewiesen,
daß dieselben
verschieden variiert werden können.
Anstelle der in der vorhergehenden Figurenbeschreibung zur Verschlüsselung
verwendeten XOR-Verknüpfung
könnte
ferner eine NXOR-Verknüpfung
verwendet werden. Ferner könnte
die vorhergehende Beschreibung der Figuren ohne weiteres auch auf
Fälle übertragen
werden, bei denen die Signale nicht nur aus einem Bitsignal sondern
aus Mehrbitsignalen bestehen. So könnten beispielsweise die Signale
v1-v8 bereits Zwei-Bit-Signale
sein. In diesem Fall müßten auch
die Kryptomultiplexer und die Elementarmultiplexer innerhalb derselben
auf eine für
einen Fachmann leicht verständliche
Art und Weise ange paßt
werden, um jeweils paarweise die Bits der 2-Bit-Signale durchzuschalten.
In diesem Fall könnte
auch eine komplexere Verschlüsselung
der Signale v1-v8 gewählt
werden.
-
Bezüglich des
Multiplexerteils 112 wird darauf hingewiesen, daß derselbe
nicht ausschließlich
aus Kryptomultiplexerzellen aufgebaut sein muß, sondern daß derselbe
gemischt aus Kryptomultiplexerzellen und Elementarmultiplexern aufgebaut
sein kann. Ferner könnten
mehrere Multiplexer zu einem komplexeren, beispielsweise Vier-Auf-Eins-Multiplexer
zusammengefaßt
werden.
-
Ferner
bezogen sich die Ausführungsbeispiele
von 2-4 zwar auf S-Boxen des DES-Algorithmus, aber
die Ausführungsbeispiele
sind natürlich
ohne weiteres auch auf andere Anwendungen übertragbar. So könnten die
dort gezeigten Abbildungsvorrichtungen auch genutzt werden, um beispielsweise
einen Dekoder bzw. Dekodierer, der ja auch nur eine Abbildungsfunktion
darstellt, DPA- oder SPA-sicher zu implementieren.
-
Die
vorhergehend Bezug nehmend auf die 2-4 beschriebenen Ausführungsbeispiele
stellen randomisierte S-Boxen dar, die DPA-Angriffe auf die auf
ihnen basierenden kryptographischen Algorithmen vereiteln. Anders
ausgedrückt
ermöglichen
sie eine DPA-sichere Hardwareimplementierung mit Semi-Custom-Schaltungstechnik,
wie z.B. der Synthese. Durch die randomisierte S-Box in Verbindung
mit der Verwendung des variierenden Schlüssels key gemäß der Sparkling-Schaltungstechnik,
wird es so möglich,
einfach, schnell und mit geringem Aufwand sichere Verschlüsselungsalgorithmen
in Hardware zu implementieren. Sowohl der geheime Schlüssel als
auch die Daten, was besonders wichtig für Speicherverschlüsselungen
ist, die beispielsweise im Speicher liegen, wie z.B. Koeffizienten
von Softwarekryptographiealgorithmen, können so effizient vor DPA-
bzw. SPA-Angriffen geschützt
werden. Die Ausführungsbeispiele
der S-Boxen vervollständigen
somit die Sparkling-Schaltungstechnik
zum DPA-sicheren Prozessieren von Daten, wobei Ziel der Sparking-Schaltungstechnik
allgemein darin besteht, verwendete Daten oder Adressen mit einem
sich zeitlich ändernden
Zufallsschlüssel,
Sparkling-key genannt, einer XOR-Verknüpfung zu
unterziehen.
-
In
den Ausführungsbeispielen
der S-Boxen wurde durch konsequente Trennung des Sparkling-keys (key)
und der damit verschlüsselten
Daten (sel) jede Korrelation zwischen den Daten gebrochen und somit eine
DPA unmöglich
gemacht. Die Sparkling-Technik wurde bei den S-Boxen der 2-4 zudem so eingesetzt, daß die Sparkling-verschlüsselten
Eingangsdaten (sel) der S-Boxen effizient und ohne sie zu entschlüsseln in
den S-Boxen verarbeitet wurden, um die Ausgangswerte der S-Boxen zu bestimmen.
-
Die
Ausgangswerte der S-Boxen werden zudem niemals unverschlüsselt verarbeitet
und erscheinen mit einem weiteren Sparkling-key (outkey) versehen
am Ausgang der S-Box. Auf diese Weise ist sichergestellt, daß zu keinem
Zeitpunkt eine Korrelation der Daten bestimmbar ist und so ein DPA-Angriff
ermöglicht
würde. Die
Schaltungen der 2-4 sind zudem einfach und
regulär,
wobei die letztere Eigenschaft den Einsatz einer Spezialzelle auf
Transistorebene zur Flächenminimierung
erlaubt. Sie erlauben über
Synthese eine Nicht-Vermischung
des Sparkling-key outkey und der Sparklingverschlüsselten
Eingangsdaten (sel) sicherzustellen. Die möglichen Ausgangsdaten (v1-V8)
sind von Anfang an durch einen Sparkling-key outkey1 geschützt.
-
Grundstock
der Ausführungsbeispiele
von 2-4 bildet der Multiplexerbaum, welcher
sich aus den Kryptomultiplexern zusammensetzte. Der Kryptomultiplexer
erlaubt ein Multiplexen von Daten über ein verschlüsseltes
Steuersignal. Er baute sich prinzipiell aus drei einfachen Zwei-Eingangs-Multiplexern auf.
Dabei werden in der ersten Stufe die zum multiplexenden Daten entweder
mit dem Sparkling-key outkey1 oder dem Sparkling-Steuersignal key1
geschaltet, und zwar in der Art, daß ein Multiplexer mit dem positiven
ansteuernden Signal und ein zweiter mit dem invertierten Signal
betrieben wird. Der dritte Multiplexer innerhalb des Kryptomultiplexers
selektiert dann das Ergebnis der ersten beiden Multiplexer mit dem
zu Beginn nicht verwendeten Signal (Sparkling-Steuersignal oder Sparkling-key). So
lange die ersten beiden Multiplexer also nicht mit dem dritten in
einer Schaltung verschmolzen werden, wie dies beispielsweise durch
eine Synthese beim Schaltungsentwurf automatisch geschehen würde, agieren
dieselben stromtechnisch unabhängig
voneinander und die Schaltung ist DPA-sicher. In der Synthese läßt sich
dies durch einfaches Gruppieren der Gatter sicherstellen oder es
ist möglich
eine entsprechende Spezialzelle der Zellbibliothek der Entwicklungsumgebung
bzw. -bibliothek hinzuzufügen,
die ein großes
Flächenpotential
in sich hat.
-
Wie
es ferner beschrieben wurde, läßt sich
für eine
m-auf-n-S-Box ein
Multiplexerbaum für
jedes der n Ausgangsbits aufbauen. In diesem Baum wird jeweils das
Ausgangsbit einer bestimmten Bitposition des Ausgangswertes für den Eingangsvektor
selektiert. Das ergibt einen binären
Baum. Die Startwerte der S-Box, d.h. die Werte v1-v8, an den Blättern des
Baums selbst werden schon zu Beginn mit einem Sparkling-key (outkey1) verschlüsselt und
werden so verschlüsselt
durch den gesamten Baum gereicht. Dies erlaubt keine DPA der Ausgangsdaten
der S-Box. Aus Last- und schaltungstechnischen Gründen, d.h.
für ein
balanciertes Design, sollten die Ansteuerungsleitungen, auf denen
die Eingangsdaten zu der S-Box gelangen, für die verschiedenen Ausgangsbits
eingangskapazitive umverteilt werden, damit an jedem Sektionsbit
bzw. jedem Steuereingang in etwa die gleiche Last anhängt. Da
bei der S-Box die Ausgangsdaten, d.h. v1-v8, fest sind, kann, wie Bezug
nehmend auf 4 beschrieben,
auf der Blattebene (Anfangsstufe) des Baums die Kryptomultiplexerstruktur
verschmolzen werden. Hierbei lassen sich auch die Ausführungsbeispiele
von 3 und 4 verbinden, wenn das Sparkling-key
der Blattebene, d.h. key1, auch als Sparkling-key für das Ausgangsbit (outkey1)
verwendet wird, d.h. outkey1=key1. Die erste Stufe kann deswegen
zu einem Stück
Leitung bzw. einem Inverter reduziert werden. Dies halbiert die
Größe des Multiplexerbaums.
-
- 50
- Kryptomultiplexerzelle
- 52a-52b
- Dateneingänge
- 54
- Steuereingang
- 56
- Schlüsseleingang
- 57
- Datenausgang
- 58
- Elementarmultiplexer
- 60
- Elementarmultiplexer
- 62
- Elementarmultiplexer
- 64
- XOR-Gatter
- 100
- S-Box
- 102a-102h
- Dateneingänge
- 103
- Datenausgang
- 104a-104c
- Steuereingänge
- 106a-106c
- Schlüsseleingänge
- 108
- Verschlüsselungsschlüsseleingang
- 110
- Verschlüsselungseinrichtung
- 112
- Multiplexerbaum
- 114
- Anfangsstufe
- 116
- zweite
Stufe
- 118
- Abschlußstufe
- 114a-114d
- Kryptomultiplexerzellen
- 116a,116b
- Kryptomultiplexerzellen
- 118a
- Kryptomultiplexerzelle
- 150
- Abbildungsvorschrift
- 152a
- Inverter
- 152b
- Inverter
- 900
- 64-Bit-Eingangsblock
- 902
- Eingangspermutation
- 904
- linke
Hälfte
des 64-Bit-Rundenergebnis
- 906
- rechte
Hälfte
des 64-Bit-Rundenergebnis
- 908
- Abbildung
- 910
- Expansion
- 912
- XOR-Verknüpfung
- 914
- 56-Bit-Hauptschlüssel
- 916
- Rundenschlüsselerzeugung
- 918
- S-Box-Abbildung
- 920
- Permutation
- 922
- XOR-Verknüpfung
- 924
- Ausgangspermutation
- 926
- 64-Bit-Ausgangsblock