-
Die Erfindung betrifft ein Verfahren zum Generieren eines Bitvektors und eine Schaltungsanordnung zur Durchführung des Verfahrens.
-
Stand der Technik
-
Kryptographische Geräte und kryptologische Algorithmen sind Angriffen ausgesetzt, mit denen geschützte Daten manipuliert oder ausgelesen werden sollen. Bei den heute üblichen Verschlüsselungsverfahren, wie z. B. der ”advanced encryption standard” AES, werden Schlüssel eingesetzt, die auf Grund der Schlüssellänge mit 128 und mehr Bits selbst unter Einsatz schneller Rechentechnik nicht durch ”Ausprobieren” (sogenannte ”brute force” Attacken) ermittelbar sind. Ein Angreifer untersucht deshalb auch Nebeneffekte einer Implementierung, wie den zeitlichen Verlauf des Stromverbrauchs, die zeitliche Dauer oder die elektromagnetische Abstrahlung einer Schaltung bei der Verschlüsselungsoperation. Da die Angriffe nicht auf die Funktion direkt abzielen, bezeichnet man solche Attacken als Seitenkanalattacken.
-
Diese Seitenkanalattacken (side channel attacks) nutzen die physikalische Implementierung eines Kryptosystems in einem Gerät. Dabei wird das Steuergerät mit kryptographischen Funktionen bei der Ausführung der kryptologischen Algorithmen beobachtet, um Korrelationen zwischen den beobachteten Daten und den Hypothesen für den geheimen Schlüssel zu finden.
-
Es sind zahlreiche Seitenkanalattacken bekannt, wie diese bspw. in der Veröffentlichung von
Mangard, Oswald und Popp in "Power Analysis Attacks", Springer 2007, beschrieben sind. Insbesondere mit der ”differential power analysis” (DPA) ist ein erfolgreicher Angriff auf den geheimen Schlüssel des AES praktisch durchführbar.
-
Bei diesen wird der Stromverbrauch eines Mikroprozessors während kryptographischer Berechnungen aufgezeichnet und es werden Spuren der Stromaufnahme durch statistische Methoden mit Hypothesen verglichen.
-
Bei bekannten Verfahren, die die DPA erschweren, greifen diese in den Algorithmus selbst ein. Dabei werden bei einem Maskieren die Operationen mit zufällig veränderten Operanden ausgeführt und im Ergebnis wird der Zufallswert dann wieder herausgerechnet, was bedeutet, dass der Zufall sich nicht auf das Ergebnis auswirkt. Eine weitere Möglichkeit ist das sogenannte Hiding, bei dem man high-low Übergänge durch entsprechende low-high Übergänge zu kompensieren versucht.
-
Aus der Druckschrift
US 6 510 518 B1 ist ein kryptographisches Verfahren für sogenannte Smartcards und andere kryptologische Systeme bekannt. In der Druckschrift ist ein Verfahren zur Verwendung eines geheimen Schlüssels beschrieben, um eine Nachricht kryptographisch zu verarbeiten. Hierbei wird die empfangene Nachricht in einer Hardwareeinheit verarbeitet, wobei eine Vielzahl von Suboperationen durchgeführt wird. Jede Suboperation überträgt eine Eingabe über eine Zwischenstufe zu einer Ausgabe, wobei eine Anzahl von Zustandstransformationen durchgeführt wird, die wiederum unabhängig von der zu verarbeitenden Nachricht und dem verwendeten Schlüssel ist.
-
Die Druckschrift
US 6 327 661 B1 beschreibt ein Verfahren zum Schutz kryptologischer Systeme vor Angriffen von außen. Hierbei wird die Menge an nutzbaren Informationen reduziert. Hierzu werden unvorhersagbare Daten bzw. Informationen bei der kryptographischen Verarbeitung aufgenommen. Es werden Ausführungen beschrieben, die unterschiedliche Techniken, wie bspw. die Verringerung des Signal-Rausch-Abstands, verwenden. Die vorgestellten Techniken können in Hardware oder Software implementiert sein, eine Kombination von digitalen und analogen Techniken verwenden und in einer Vielzahl von kryptologischen Einrichtungen eingesetzt werden.
-
Offenbarung der Erfindung
-
Vor diesem Hintergrund werden ein Verfahren zum Generieren eines Bitvektors mit den Merkmalen des Anspruchs 1 und eine Schaltungsanordnung zum Generieren eines Bitvektors gemäß Anspruch 8 vorgeschlagen. Ausführungen ergeben sich aus den abhängigen Ansprüchen, der Beschreibung und den Zeichnungen.
-
Entgegen dem Stand der Technik greift das vorgeschlagene Verfahren nicht in die Algorithmen ein und ist deshalb für beliebige kryptographische Verfahren anwendbar. Zudem hat es einen geringeren Bedarf an zusätzlicher Hardware und Verarbeitungszeit. Das vorgestellte Verfahren ist sowohl für die Verschlüsselung als auch für die Entschlüsselung geeignet. Dabei können Masken auf Vorrat generiert werden. Diese sind jeweils für mehrere kryptographische Operationen verwendbar. Daher reduziert die Maskengenerierung nicht die Leistungsfähigkeit dieser Operationen, weswegen das Verfahren als Maßnahme gegen Seitenkanalattacken geeignet ist.
-
In einer Ausführung ist somit eine Schaltungsanordnung zur Generierung eines Bitvektors (Maske) aus vorgegebenen Eingangssignalen zur Maskierung mindestens eines geheimen Schlüssels und/oder der Daten (plain text, cipher text) einer kryptographischen Operation vorgesehen, zum Schutz dieser besagten kryptographischen Operation gegenüber Seitenkanalangriffen, wie bspw. DPA(differential power analysis)-Attacken. Dabei weist die Schaltungsanordnung mindestens zwei Anordnungen von jeweils m gleich aufgebauten und gleich angesteuerten Zustandsautomaten mit je n relevanten (d. h. den Zustand des Zustandsautomaten bestimmenden) Speicherelementen auf, wobei m = 2n ist. Diese m Zustandsautomaten werden zu Beginn einer Maskengenerierung bzw. Generierung des Bitvektors mit je einem anderen Anfangszustand initialisiert, wobei alle diese Zustandsautomaten in einer Anordnung mit den gleichen Eingangssignalen gleichartig verbunden sind und mindestens ein Ausgangssignal von jeder Anordnung zur Bildung des besagten Bitvektors benutzt wird. Für die beiden Anordnungen können die Werte m und damit auch n unterschiedlich sein.
-
Es können auch Zählerbits von einem ersten Zähler eingehen. Dieser Zähler zählt die Anzahl der bisher angelegten Eingangsvektoren.
-
In einer weiteren Ausgestaltung sind die benutzten m Zustandsautomaten in einer Anordnung so aufgebaut, dass bei der Initialisierung aller dieser Zustandsautomaten mit m verschiedenen Zuständen gewährleistet ist, dass alle Zustandsautomaten in Abhängigkeit von beliebigen Eingangssignalen immer verschiedene Zustände haben.
-
Weiterhin kann vorgesehen sein, dass aus den Eingangssignalen Umschaltsignale y gebildet werden. Die Umschaltsignale dienen insbesondere dazu, die Übertragungsfunktion der Zustandsautomaten so zu verändern, dass zwischen zwei einfachen linearen Übertragungsfunktionen in Abhängigkeit von den Eingangssignalen umgeschaltet wird. Diese Umschaltung sollte in den verschiedenen Anordnungen möglichst unterschiedlich erfolgen.
-
Durch zusätzliche Paritätsbits der Eingangssignale wird gewährleistet, dass in den Zustandsautomaten mindestens einmal zwischen den verschiedenen linearen Übertragungsfunktionen umgeschaltet wird und damit eine insgesamt nichtlineare Übertragungsfunktion entsteht. Eine nichtlineare Übertragungsfunktion ist dazu notwendig, um den generierten Bitvektor nicht berechenbar gestalten zu können. Es wären sonst ”brute force” Angriffe leichter möglich.
-
Es kann weiterhin vorgesehen sein, dass die Umschaltsignale y gewichtet in einen zweiten Zählerwert z eingehen und die Höhe des Gewichts je nach Anordnung und erstem Zählerwert variiert.
-
In einer Ausgestaltung des Verfahrens wird in Abhängigkeit von dem zweiten Zählerwert z eine Vertauschung der Inhalte der Zustandsautomaten (Zustände) innerhalb einer Anordnung vorgenommen. Diese Vertauschung kann eine Rotation der Zustände innerhalb dieser Anordnung sein. Für verschiedene Anordnungen sind die Zählerwerte z und damit die Rotationen unterschiedlich, weil auch die Umschaltwerte y und die Gewichte unterschiedlich sind.
-
In einer möglichen Ausgestaltung der Schaltungsanordnung sind die Speicherelemente der Zustandsautomaten aus zwei Teilen (Master/Slave) aufgebaut, die aufeinanderfolgend angeordnet sind und die beide sowohl separat löschbar sind (Reset-Wert beliebig 0 oder 1, aber einheitlich für alle Master bzw. Slaves) als auch unabhängig voneinander Daten aufnehmen. Zum Vertauschung der Zustände werden diese typischerweise so angesteuert, dass zuerst die Master gelöscht werden, dann die Master die anliegende Eingangsinformation (von einem anderen Zustand) übernehmen, darauf die Slaves gelöscht werden und anschließend die Slaves den Inhalt der Master übernehmen. Dieses Verfahren ist deshalb notwendig, weil sonst bei einer einfachen Vertauschung (oder Rotation) der Stromverbrauch bei der Vertauschung davon abhängig ist, wie viele 0-1 und 1-0 Übergänge bei der Vertauschung vorliegen. Bei dem vorgeschlagenen Verfahren werden in einer Anordnung beim Löschen der Master auf den Wert 0 genau m·n/2 1-0-Übergänge und beim Laden der neuen Werte genau m·n/2 0-1-Übergänge stattfinden. Diese Anzahl der Übergänge ist jeweils unabhängig von dem jeweiligen Zustand.
-
Deshalb ist die Stromaufnahme immer gleich und deshalb nicht beobachtbar bzw. attackierbar. Die Rotation bzw. Vertauschung der Zustände ist dazu notwendig, damit die einzelnen Bits des generierten Bitvektors im Durchschnitt möglichst von allen oder zumindest von vielen der n·m Bits des Anfangszustands abhängig sind.
-
Weiterhin kann der Bitvektor (Maske) aus der Verknüpfung verschiedener Ausgänge verschiedener Zustandsautomaten von verschiedenen Anordnungen gebildet werden. Außerdem können die Operanden der besagten Verknüpfungsoperation balanciert, d. h. mit gleicher Leitungslänge und/oder Kapazität, zu dem Verknüpfungselement geführt werden.
-
In einer weiteren möglichen Ausführung der Schaltungsanordnung und des Verfahrens werden die Verknüpfungsoperationen teilweise nacheinander ausgeführt und dazu nach jeder Teiloperation die Zustände der Zustandsautomaten vertauscht, wobei die Vertauschung durch das gleichzeitige separate Löschen und das nachfolgende gleichzeitige Beschreiben der Master- bzw. Slave-Elemente aller Speicherelemente vorgenommen wird.
-
Weiterhin kann gegeben sein, dass die Ausgänge aller Zustandsautomaten, die nicht mit einem Verknüpfungselement verbunden sind, mit einem Lastelement verbunden sind und dieses Lastelement das gleiche elektrische Verhalten (z. B. Kapazitätswert) darstellt wie die Last an Ausgängen, die mit den Verknüpfungselementen verbunden sind.
-
Zudem können während einer Vertauschungsoperation der Zustände und auch während der Verarbeitung der Eingangssignale die zu den Verknüpfungs- und Lastelementen führenden Signale alle auf einen gleichen festen Wert (0 oder 1) gesetzt werden.
-
In noch einer weiteren Ausführung sind die zur Generierung des Bitvektors benutzten Eingangssignale zumindest teilweise nicht vorhersagbare (zufällige) Werte und/oder hängen von einem Zähler ab. Aus diesen Eingangssignalen werden dann Paritätsbits erzeugt, die nach einer vorgebbaren Anzahl von Eingangsbits in die Signalfolge eingefügt werden. In einer weiteren Ausführung ist die Anzahl der Eingangsbits zwischen zwei Paritätsbits ungerade und das Paritätsbit selbst ungerade, d. h. die Summe der Einsen in den betreffenden Eingangsbits und dem zugehörigen Paritätsbit ist ungerade.
-
Die vorgestellte Schaltungsanordnung kann derart ausgestaltet sein, dass mehrere Anordnungen mit jeweils m = 2n Zustandsautomaten mit jeweils n relevanten Speicherelementen benutzt werden und verschiedene Anordnungen gleiche oder unterschiedliche Anfangszustände haben und/oder mit der gleichen oder unterschiedlichen Anordnung und/oder Invertierung der Eingangssignale verbunden sind.
-
In noch einer möglichen Ausführungsform der Schaltungsanordnung ist vorgesehen, dass mindestens eine Anordnung mit jeweils m = 2n Zustandsautomaten mit jeweils n relevanten Speicherelementen und mindestens eine Anordnung mit jeweils p = 2q Zustandsautomaten mit jeweils q relevanten Speicherelementen benutzt werden. Alle diese p Zustandsautomaten besitzen jeweils einen anderen Anfangszustand und sind entweder mit mindestens einem gleichen Eingangssignal mittelbar oder unmittelbar verbunden wie die m Zustandsautomaten. Es können aber auch beliebige andere Eingangssignale benutzt werden.
-
Um für den generierten Bitvektor für jedes einzelne Bit eine gleiche Wahrscheinlichkeit für eine 1 und eine 0 zu gewährleisten, werden Bits von einer Anordnung mit Bits von mindestens einer zweiten Anordnung verknüpft. Die Verknüpfungsoperation sollte dabei vorteilhafterweise linear sein (Antivalenz, Äquivalenz), was gleichbedeutend mit EXOR oder EXNOR ist.
-
Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und den beiliegenden Zeichnungen.
-
Es versteht sich, dass die voranstehend genannten und die nachstehend noch zu erläuternden Merkmale nicht nur in der jeweils angegebenen Kombination, sondern auch in anderen Kombinationen oder in Alleinstellung verwendbar sind, ohne den Rahmen der vorliegenden Erfindung zu verlassen.
-
Kurze Beschreibung der Zeichnungen
-
1 zeigt eine Ausführungsform der Schaltungsanordnung.
-
2 zeigt eine Möglichkeit der Maskierung
-
3 zeigt eine weitere Möglichkeit der Maskierung.
-
4 zeigt ein Non-Linear Multiple Input Shift Register
-
5 zeigt Zustandsübergänge.
-
6 zeigt einen vollständigen Satz von Zustandsautomaten.
-
7 zeigt eine Eingangsstufe eines Bitgenerators.
-
8 zeigt die Erzeugung und Einfügung von Paritätsbits.
-
Ausführungsformen der Erfindung
-
Die Erfindung ist anhand von Ausführungsformen in den Zeichnungen schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnungen ausführlich beschrieben.
-
1 zeigt schematisch eine Ausführungsform einer erfindungsgemäßen Schaltungsanordnung, die insgesamt mit der Bezugsziffer 100 bezeichnet ist. Diese Schaltungsanordnung 100 dient zur Bildung eines Bitvektors mit 128 Bit aus einem Eingangssignal 102. Hierzu umfasst die Schaltungsanordnung 100 vier Anordnungen 104, 106, 108 und 110, die jeweils sechszehn Transformationselemente TE_0, TE_1, TE_2, ..., TE_15 umfassen. Der Übersichtlichkeit halber sind in 1 nur jeweils vier der sechzehn Transformationselemente TE_0, TE_1, TE_2, ..., TE_15 dargestellt. In dieser Ausführung ist die Schaltungsanordnung 100 derart ausgebildet, dass jedem Transformationselement TE_0, TE_1, TE_2, ..., TE_15 jeder der Anordnungen 104, 106, 108 und 110 dieselben Eingangsdaten bzw. dasselbe Eingangssignal 102 zugeführt werden bzw. wird.
-
Wichtig ist, dass in jeder Anordnung 104, 106, 108, 110 alle Transformationselemente TE_0, TE_1, TE_2, ..., TE_15 gleichartig mit den Eingangssignalen verbunden sind, aber verschiedene Anordnungen sich voneinander unterscheiden können.
-
Die Transformationselemente TE_0, TE_1, TE_2, ..., TE_15 bilden aus dem ihnen zugeführten Eingangssignal 102 ein vorliegend nicht näher spezifiziertes Ausgangssignal. Diese Ausgangssignale werden kombiniert und darauf eine Signatur S 120 mit 256 Bit erhalten. Die Transformationselemente TE_0, TE_1, TE_2, ..., TE_15 weisen jeweils einen Zustandsautomaten ZA auf, dessen Zustandsinformationen bspw. in Form eines digitalen Datenworts vorgebbarer Breite gespeichert sind. Beispielsweise kann der Zustandsautomat ZA eine Speicherkapazität von 4 Bit aufweisen, so dass insgesamt 16 verschiedene Zustände möglich sind.
-
Die Zustandsautomaten ZA jeweils einer Anordnung 104, 106, 108, 110 sind gleichartig ausgebildet. Gleichartig bedeutet, dass jeder Zustandsautomat ZA, ausgehend von identischen Eingangssignalen 102 und einem identischen Initialisierungszustand, denselben Folgezustand in einem nachfolgenden Verarbeitungszyklus annehmen wird wie ein anderer gleichartiger Zustandsautomat ZA.
-
Es ist weiterhin vorgesehen, dass jeder Zustandsautomat ZA stets jeweils einen anderen Zustand aufweist als alle anderen Zustandsautomaten ZA der entsprechenden Anordnungen 104, 106, 108 oder 110. Dadurch werden DPA-Attacken erschwert, die aus der Analyse einer elektrischen Strom- und/oder Leistungsaufnahme oder von Störabstrahlungen versuchen, Rückschlüsse auf einen internen Verarbeitungszustand der Schaltungsanordnung 100 bzw. der einzelnen Transformationselemente TE_0, TE_1, TE_2, ..., TE_15 zu ziehen.
-
Es ist von Vorteil, wenn die Anzahl der vorgesehenen Transformationselemente TE_0, TE_1, TE_2, ..., TE_15 der Anzahl der maximal möglichen verschiedenen Zuständen des Zustandsautomaten ZA entspricht, in diesem Fall sechzehn. Dadurch liegt stets, d. h. zu jedem Verarbeitungszyklus, jeder theoretisch mögliche Zustand in genau einem Zustandsautomaten ZA vor, so dass nach außen, d. h. gegenüber einem möglichen Angreifer, der eine DPA-Attacke führt, jeweils nur eine Kombination aller sechzehn möglichen Zustände „sichtbar” ist.
-
Auch in einem darauffolgenden Verarbeitungszyklus, bei dem zwar die einzelnen Zustandsautomaten ZA jeweils ihren Zustand entsprechend einer vorgegebenen Regel ändern, liegt wiederum insgesamt in jedem der sechzehn Zustandsautomaten ZA genau einer der sechzehn möglichen Zustände vor, so dass nach außen wiederum alle sechzehn Zustände gleichzeitig „sichtbar” sind.
-
Das hat zur Folge, dass ein möglicher Angreifer aus einer entsprechenden elektromagnetischen Abstrahlung, die bei einer üblichen Realisierung der Schaltungsanordnung 100 gegeben ist, oder auch aus der elektrischen Leistungsaufnahme der Schaltungsanordnung 100, nicht auf einen Zustand der internen Signalverarbeitung in den Transformationselementen TE_0, TE_1, TE_2, ..., TE_15 schließen kann. Bei einer ideal symmetrischen Auslegung aller Komponenten ist die elektrische Leistungsaufnahme stets konstant, so dass das abgestrahlte elektromagnetische Feld jeweils keine signifikanten Änderungen bei einem Zustandswechsel zwischen aufeinanderfolgenden Verarbeitungszyklen erfährt.
-
Aus der Signatur S 120 wird durch eine lineare Verknüpfung in Block 122 ein Bitvektor 130 mit 128 Bit erzeugt. Die lineare Verknüpfung kann bspw. eine EXOR- oder auch eine EXNOR-Verknüpfung sein.
-
Das vorgeschlagene Verfahren und die dargestellte Schaltungsanordnung 100 benutzen die sogenannte nichtlineare Signaturbildung. In 2 ist eine Möglichkeit der Maskierung gezeigt. Hierbei ist ein Maskengenerator 10 dargestellt, dem bis zu 64 (zufällige) Eingabebits (Eingang 12) eingegeben werden. Es können 4·16 Bitwerte (einschließlich Zufälligkeit) gewählt werden, wobei so oft wie notwendig neue Werte genommen werden. An einem weiteren Eingang 14 werden 128 Bits Klartext eingegeben. Weiterhin zeigt die Darstellung ein Block 16 zum Rotieren einiger Bits, einen Schlüssel 18 (key 1), ein Block 20 für eine Verschlüsselung/Entschlüsselung gemäß AES, ein erster EXOR-Glied 22 und ein zweites EXOR-Glied 24. An einem Ausgang 26 wird dann ein 128 Bits Geheimtext ausgegeben.
-
Es werden somit Ein- und Ausgänge einer Verschlüsselungsoperation durch bitweise EXOR-Verknüpfung maskiert. Dabei ist es auch möglich, für Eingang und Ausgang jeweils unterschiedliche Masken zu erzeugen und verwenden.
-
3 zeigt eine ähnliche Anordnung wie 2, wobei in diesem Fall eine Maske 30 mit dem geheimen Schlüssel 18 verknüpft wird.
-
Der in den Zustandsautomaten verwendete Bitgenerator basiert auf dem Non-Linear Multiple Input Shift-Register (NLMISR), das Polynome x
4 + x
3 + 1 und x
4 + x + 1 verwendet. Die Zustandsübergänge sind in Tabelle 1 gegeben. Dabei bezeichnet x
i einen Zustand des NLMISR, i(k) das NLMISR-Eingabebit und y die Eingabe, die verwendet wird, um zwischen den Polynomen umzuschalten.
Tabelle 1
-
Ein 4 Bit NLMISR ist in 4 dargestellt. In Abhängigkeit der Eingabe y wird das Polynom x4 + x3 + 1 oder x4 + x + 1 ausgewählt. Es werden somit sechzehn NLMISR-Instanzen kombiniert, um ein Modul zu bilden, das in 6 dargestellt ist.
-
In 5 sind Zustandsübergänge der verwendeten Zustandsautomaten dargestellt. Ein durchgezogener Pfeil zeigt einen Übergang für i(2) = 0, wobei in diesem Fall auch ein direkter Übergang diagonal nach rechts unten möglich ist, wie durch den Pfeil 180 rechts angedeutet ist. Ein gestrichelter Pfeil steht für i(2) = 1, wobei i(0) = i(1) = i(3) = 0.
-
In 6 ist ein vollständiger Satz von Zustandsautomaten, die ein Modul 200 bilden, dargestellt. Dieses Modul hat eine 4-Bit-Eingabe ri(3:0), vier Umschaltwerte y(i) und eine 64 Bit Ausgabe q. Die Bits von q werden durch die Flipflops der NLMISR Schaltkreise getrieben. Das Modul 200 kann eine der Anordnungen 104, 106, 108 oder 110 aus 1 sein.
-
7 zeigt die Eingangsstufe des vorgeschlagenen Bitgenerators.
-
Um eine Kompensation verschiedener Eingaben zu vermeiden, wird ein Zähler 300 in der Eingangsstufe verwendet. Zur Vermeidung einer konstanten Eingabe wird ein Generator 302 für eine Ungerade-Parität in die Eingangsstufe eingefügt. Dieser Generator 302 berechnet den Ungerade-Parität-Vektor p(3:0) für bspw. 5 aufeinanderfolgende eingegebene 4-Tupel di(3:0), ... di+3(3:0). Der Paritätsvektor p(3:0) wird dann als Eingabe für die Funktion g 304 verwendet.
-
Wenn d'(3:0) eine 4-Bit-Eingabe für die Funktion g bezeichnet, dann wird der Wert y(i) für das polynomische Umschalten der NLMISR-Instanzen der Instanz i entsprechend Tabelle 2 berechnet.
-
Tabelle 2 zeigt die Umschaltbits.
Bit | Ausdruck |
y(0) | d'(1) ⊕ d'(2) ⊕ d'(3) |
y(1) | d'(0) ⊕ d'(2) ⊕ d'(3) |
y(2) | d'(0) ⊕ d'(1) ⊕ d'(3) |
y(3) | d'(0) ⊕ d'(1) ⊕ d'(2) |
Tabelle 2
-
In Tabelle 3 ist die Funktion g beschrieben.
-
-
Tabelle 4 zeigt, wie Ausgabebits mit einem EXOR verknüpft werden. Dabei sind C
0(63:0) die Ausgänge der Anordnung
104, C
1(63:0) die Ausgänge der Anordnung
106 usw.
Bit | Ausdruck |
m(16i + 0) | C0(8i + 0) ⊕ C2(8i + 0) |
m(16i + 1) | C0(8i + 1) ⊕ C2(8i + 4) |
m(16i + 2) | C0(8i + 2) ⊕ C3(8i + 0) |
m(16i + 3) | C0(8i + 3) ⊕ C3(8i + 4) |
m(16i + 4) | C0(8i + 4) ⊕ C2(8i + 1) |
m(16i + 5) | C0(8i + 5) ⊕ C2(8i + 5) |
m(16i + 6) | C0(8i + 6) ⊕ C3(8i + 1) |
m(16i + 7) | C0(8i + 7) ⊕ C3(8i + 5) |
m(16i + 8) | C1(8i + 0) ⊕ C2(8i + 2) |
m(16i + 9) | C1(8i + 1) ⊕ C2(8i + 6) |
m(16i + 10) | C1(8i + 2) ⊕ C3(8i + 2) |
m(16i + 11) | C1(8i + 3) ⊕ C3(8i + 6) |
m(16i + 12) | C1(8i + 4) ⊕ C2(8i + 3) |
m(16i + 13) | C1(8i + 5) ⊕ C2(8i + 7) |
m(16i + 14) | C1(8i + 6) ⊕ C3(8i + 3) |
m(16i + 15) | C1(8i + 7) ⊕ C3(8i + 7) |
Tabelle 4
-
Tabelle 5 zeigt, wie Rotationswerte z(0) bis z(3) berechnet werden. Dabei werden alle Operationen mod16 gerechnet.
c | für c = 0, 4, 8, 12 | für c2 = 1, 5, 9, 13 | für c = 2, 6, 10, 14 | für c = 3, 7, 11, 15 | Bedingung y(i) |
z0 | z0 + 1 | z0 + 2 | z0 + 4 | z0 + 8 | für y(0) = 1 |
z1 | z1 + 2 | z1 + 4 | z1 + 8 | z1 + 1 | für y(1) = 1 |
z2 | z2 + 8 | z2 + 1 | z2 + 2 | z2 + 4 | für y(2) = 1 |
z3 | z3 + 4 | z3 + 8 | z3 + 1 | z3 + 2 | für y(3) = 1 |
Tabelle 5
-
8 zeigt die Erzeugung und Einfügung der Paritätsbits. Die Darstellung zeigt einen 5 Bit Zähler 400, ein erstes Flipflop 402, ein zweites Flipflop 404, ein drittes Flipflop 406 und ein viertes Flipflop 408.
-
Um die Nichtlinearität des NLMISR zu unterstützen, wird für alle 5 Eingabebits eine Paritätsbit für jedes Eingabesignalerzeugt. Für die Eingaben d0 410, d1 412, d2 414 und d3 416 wird ein Ungerade-Paritätsbit erzeugt. Die vier Paritäten (p0, p1, p2, p3) werden in den Eingabestrom jeweils zwischen den 5. und 6. Eingabevektor, zwischen den 10. und 11. Eingabevektor und zwischen den 15. und 16. Eingabevektor (d(0), d(1), d(2), d(3)) eingesetzt (siehe Tabelle 6). 8 verdeutlicht, wie die Parität erzeugt und eingesetzt bzw. eingefügt werden kann.
-
Bei der Bereitstellung von Eingabesignalen für die Maskenerzeugung wird angenommen, dass alle 32 Eingabebits eine unterschiedliche Bedeutung haben. Die ersten 32 Bits in dem Register DMASK_IN_0 werden als ein zufälliger Wert d1 betrachtet, während der Inhalt des Eingaberegisters DMASK_IN_1 als ein zufälliger Wert d2 angenommen wird, wie nachfolgend gezeigt ist. d1 = d1(31:0) = d131 ... d10 = IN0(31:0) d2 = d2(31:0) = d231 ... d20 = IN1(31:0)
-
Die Bedeutung des Eingabewerts kann in Abhängigkeit der verwendeten Funktion variieren.
-
Für die Konstruktion aller Zustandsautomaten werden die Eingaben i0, i1, i2 und i3 in
4 durch die modifizierten Eingänge d'(0), d'(1), d'(2), d'(3) mit den eingefügten Ungerade-Paritäten nach jeweils fünf Eingabewerten ersetzt. Siehe hierzu Tabelle 6.
Tabelle 6
-
Um jedes Maskenbit im Mittel von möglichst vielen Bits des Initialzustands einer Anordnung 200 abhängig zu machen, wird eine Rotation der Zustände innerhalb einer Anordnung vorgesehen.
-
Für diese Rotation ist jedoch auf eine Besonderheit zu achten: Auch wenn die Anzahl der Einsen und Nullen in einer NLMSIR-Struktur definitionsgemäß immer gleich ist, hängt der Stromverbrauch bei der Verschiebung oder Rotation von der Verteilung der Bits ab. Hat man beispielsweise 32 Nullen und 32 Einsen nacheinander, so ist der Stromverbrauch anders, als wenn sich Nullen und Einsen immer abwechseln. Es spielt hier das Hamming-Distance-Problem eine Rolle. Ein Angreifer könnte diese Information ausnutzen.
-
Deshalb muss bei einer Verschiebung oder Rotation immer erst der vorherige Zustand zurückgesetzt werden, bevor der neue Wert beschrieben wird. Aus diesem Grunde wird eine Verschiebeoperation immer in 4 Takten durchgeführt. Jedes Flip-Flop der Zustandsautomaten NLMISR wird dazu aus zwei rücksetzbaren Latches aufgebaut (Bestandteil einer Standard-Library). Die zwei Latches werden nacheinander angesteuert: zuerst wird das Master-Latch zurückgesetzt (RM), danach wird der Eingangswert darin abgespeichert (CM). Danach wird der Slave zurückgesetzt und anschließend der Wert vom Master in den Slave übernommen. Da jeweils 4 Takte benötigt werden, wird vorgeschlagen, die 4 Bits eines Zustandsautomaten NLMISR bei der Rotation parallel zu übertragen.
-
Mit 16 Verschiebeoperationen a 4 Takte wäre der Ausgangszustand wieder erreicht. Die 4 Steuersignale sollten für alle NLMISR gleichzeitig schalten. Man kann diese Signale zentral bereitstellen (und diese dann wie Taktsignale behandeln) oder sie auch vor Ort aus dem Taktsignal generieren.
-
Im letzteren Fall muss nur das Taktsignal synchron anliegen. Während der Rotation sind alle nach extern zu den Verknüpfungselementen gehenden Ausgänge abzuschalten (z. B. auf 0 zu setzen durch Verknüpfung mit einem UND oder NOR).
-
Wenn die Bildung des Maskierungsvektors beispielsweise in Portionen zu 16 Bits erfolgt, ist darauf zu achten, dass alle nicht benutzten Ausgänge der NLMISR-Struktur die gleiche Last treiben müssen wie die aktiven Ausgänge: D. h., es sind geeignete Gatter und Leitungen oder auch einzelne Transitoren oder andere Kapazitäten an die nicht benutzten Ausgänge zu legen.
-
In der Regel sind die Ausgänge der XORs nicht mehr als kritisch im Sinne von angreifbar anzusehen. Ein Angreifer müsste die Hypothesen für alle benutzten Anfangszustände aufstellen. Da ein Maskierungsbit m(i) durch die vorgeschlagene Rotation im Mittel von allen Bits des geheimen Anfangszustands abhängt, hat wegen der hohen Anzahl von notwendigen Hypothesen ein Angreifer keine Chance. Falls dieser Fall nicht zutreffend wäre, könnte man durch gleichartige XNOR-Elemente immer das komplementere Bit zu jedem Maskenbit erzeugen und die Bits gemeinsam weiterverarbeiten.
-
Eine geeignete Art zur Umsetzung der Erfindung sieht vor, alle Zustandsautomaten als reiterierte Layoutstrukturen zu implementieren. Alle Eingabe- und Steuersignale sollten die Zustandsautomaten zum selben Zeitpunkt erreichen. Alle Ausgaben sollten die gleiche Last haben. Während der Rotation und der Berechnungsvorgänge sollten die Ausgaben null sein.
-
Wenn bspw. ein Zustandsautomat eine verzögerte Eingabe hätte, könnte ein Angreifer unter Verwendung einer DPA herausfinden, welche Zustände in diesem Zustandsautomat während des Erzeugungsprozesses eingenommen wurden, wenn die Eingabesignale angenommen wurden. Der gegenwärtige Zustand und damit auch der Anfangszustand könnten mit einem Angriff somit ermittelt werden.
-
Dieselben Überlegungen treffen auch auf die Eingabesignale und das Umschalten der verbundenen kombinatorischen Schaltkreise zu. Es sind zwei kritische Prozessschritte zu beachten, nämlich wenn die Rotation durchgeführt wird und wenn die Ausgaben aktiviert werden. Für beide Schritte ist ein synchrones Umschalten notwendig, um einen erfolgreichen Angriff zu vermeiden. Die Ausgabe muss nur dann getrieben werden, wenn die Zustandsautomaten stabil sind und synchron geschaltet werden.
-
Daher ist ein exaktes Routing des Takts für alle Komponenten unumgänglich. Wenn zusätzlich die Eingabesignalverzögerung für einen Angreifer nicht zu unterscheiden ist, so sollten reiterierte Layoutzellen nicht notwendig sein.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- US 6510518 B1 [0007]
- US 6327661 B1 [0008]
-
Zitierte Nicht-Patentliteratur
-
- Mangard, Oswald und Popp in ”Power Analysis Attacks”, Springer 2007 [0004]