-
Technisches Gebiet
-
Ausführungsformen beziehen sich auf ein nichtlinear rückgekoppeltes Schieberegister, das zum Ausgeben einer Folge maskierter Werte konfiguriert ist. Weitere Ausführungsformen beziehen sich auf kryptographische Vorrichtungen, die solche nichtlinear rückgekoppelten Schieberegister umfassen.
-
Hintergrund
-
Rückgekoppelte Schieberegister sind im Gebiet bekannt. In kryptographischen Anwendungen werden rückgekoppelte Schieberegister verwendet, um auf pseudozufällige Art eine Folge von Werten zu erzeugen. Rückgekoppelte Schieberegister (FSR, feedback shift registers) können allgemein in Schieberegister mit nichtlinearer Rückkopplung (NLFSR, nonlinear feedback shift registers) und in Schieberegister mit linearer Rückkopplung (LFSR, linear feedback shift registers) unterteilt werden. Insbesondere nichtlinear rückgekoppelte Schieberegister werden in vielen Typen von Datenstromverschlüsselungen als Sicherheitsgrundelement verwendet. Darüber hinaus werden sie ebenfalls bei Generatoren (DRNG, deterministic random number generators) für deterministische Zufallszahlen und in chipintegrierten Sicherheitsgegenmaßnahmen von Sicherheitscontrollern wie etwa als das Mittel zum Erzeugen von Masken für den Schutz gegen Seitenkanalangriffe (SCA, side-channel attacks) und Sondierungsangriffe verwendet.
-
Es ist möglich, Seitenkanal- und Sondierungsangriffe gegen Implementierungen von NLFSRs zu richten, falls diese nicht dementsprechend geschützt sind. Eine gut bekannte mathematische Gegenmaßnahme gegen SCAs und Sondierung sind Geheimnisteilungsschemata (SSS, secret sharing schemes), die im Gebiet des SCA ebenfalls als Maskierung bekannt sind. Die Anwendung eines SSS auf lineare Funktionen, z. B. lineare Schaltungsnetze und linear rückgekoppelte Schieberegister, ist eine triviale Aufgabe. Die Anwendung des SSS auf nichtlineare Funktionen ist ein nichttriviales Forschungsgebiet.
-
Zusammenfassung
-
Ausführungsformen schaffen ein NLFSR der Länge k, das zum Ausgeben einer Folge maskierter Werte x'i = xi + mi in Übereinstimmung mit einer maskierten Rekursion x'n+k = f(x'n, ..., x'n+k-1) konfiguriert ist, wobei das NLFSR eine nichtlineare Rückkopplungsfunktion, die dafür konfiguriert ist, f(x'n, ..., x'n+k-1) zu berechnen, um einen Rückkopplungswert zu erhalten, eine Korrekturfunktion, die dafür konfiguriert ist, f(mn, ..., mn+k-1) + mn+k + h(mn, ..., mn+k-1, xn, ..., xn+k-1) zu berechnen, um einen Korrekturwert c zu erhalten, und eine Korrektureinrichtung, die dafür konfiguriert ist, den Rückkopplungswert x ^'n+k unter Verwendung des Korrekturwerts c zu korrigieren, um einen korrigierten Rückkopplungswert zu erhalten, der x'n+k bildet, umfasst.
-
Weitere Ausführungsformen schaffen ein entsprechendes Verfahren und ein entsprechendes Verfahren für die pseudozufällige Erzeugung einer Folge maskierter Werte und eine entsprechende kryptographische Vorrichtung wie etwa eine Chipkarte, einen kryptographischen Chip oder ein Mobiltelefon.
-
Kurzbeschreibung der Zeichnungen
-
Im Folgenden werden Ausführungsformen der vorliegenden Erfindung mit Bezug auf die beigefügten Zeichnungen beschrieben. Gleiche oder äquivalente Elemente oder Elemente mit gleicher oder äquivalenter Funktionalität sind in der folgenden Beschreibung durch gleiche oder äquivalente Bezugszeichen bezeichnet.
-
1 zeigt einen Blockschaltplan eines einfachen (im Folgenden ”unmaskiert” genannten) NLFSR;
-
2 zeigt einen Blockschaltplan eines maskierten NLFSR in Übereinstimmung mit einer Ausführungsform, die beispielhaft zu einer maskierten Version der Wertfolge des NLFSR aus 1 führt;
-
3 zeigt einen Blockschaltplan eines NLFSR zum Ausgeben einer maskierten Wertfolge in Übereinstimmung mit einer allgemeineren Ausführungsform;
-
4 zeigt eine schematische Darstellung einer möglichen Maskenkorrekturschaltung für das NLFSR aus 2;
-
5 zeigt eine schematische Darstellung eines möglichen Störimpulses und einer DPA-sicheren Implementierung (DPA = differential power analysis, differentielle Strom- bzw. Leistungsanalyse) einer Maskenkorrekturschaltung für das NLFSR aus 2;
-
6 zeigt einen Blockschaltplan einer Vorrichtung zum Erzeugen einer maskierten Wertfolge in Übereinstimmung mit einer Ausführungsform;
-
7a, b zeigen Blockschaltpläne einer möglichen Implementierung eines FSR zum Erzeugen der Maskenwerte;
-
8 zeigt einen Blockschaltplan eines NLFSR zum Ausgeben einer maskierten Wertfolge in Übereinstimmung mit einer Ausführungsform, die eine effiziente Kombination von Störimpulsunterdrückung und Maskenkorrektur ermöglicht;
-
9 zeigt eine schematische Darstellung eines möglichen erzeugenden NLFSR;
-
10 zeigt eine schematische Darstellung einer möglichen Vorrichtung zum Erzeugen einer maskierten Wertfolge; und
-
11 zeigt einen Blockschaltplan einer kryptographischen Vorrichtung in Übereinstimmung mit einer Ausführungsform.
-
Ausführliche Beschreibung
-
In der folgenden Beschreibung sind mehrere Einzelheiten dargelegt, um eine gründlichere Erläuterung von Ausführungsformen der vorliegenden Erfindung zu geben. Allerdings ist für den Fachmann auf dem Gebiet klar, dass Ausführungsformen der vorliegenden Erfindung ohne diese spezifischen Einzelheiten verwirklicht werden können. In anderen Fällen sind gut bekannte Strukturen und Vorrichtungen in Blockschaltplanform anstatt detailliert gezeigt, um die Verdeckung von Ausführungsformen der vorliegenden Erfindung zu vermeiden. Außerdem können Merkmale der verschiedenen im Folgenden beschriebenen Ausführungsformen miteinander kombiniert werden, sofern nicht spezifisch etwas anderes angeben ist.
-
Um das Verständnis für die den im Weiteren skizzierten Ausführungsformen zugrundeliegenden Prinzipien im Folgenden zu vertiefen, wird anhand von 1 ein einfaches Beispiel für ein nichtlinear rückgekoppeltes Schieberegister diskutiert. Das NLFSR aus 1 ist unter Verwendung des Bezugszeichens 10 bezeichnet und umfasst ein Schieberegister 12 und eine nichtlineare Rückkopplungsfunktion 14. Das Schieberegister 12 ist beispielhaft in der Weise gezeigt, dass es unter Verwendung einer Folge von m zwischen einem Eingang 18 und einem Ausgang 20 des Schieberegisters 12 in Reihe geschalteten Registern 16 implementiert ist. Die nichtlineare Rückkopplungsfunktion 14 ist mit Ausgängen der Register 16 wie etwa z. B. mit dem Ausgang des Registers 16 des Schieberegisters 12, das das Letzte in der Zeile ist, d. h. mit dem Ausgang 20, verbunden und gibt an den Eingang 18, d. h. an den Eingang des Registers 16 des Schieberegisters 12, das das erste in der fortlaufenden Folge ist, einen Rückkopplungswert aus.
-
Das Schieberegister 10 mit nichtlinearer Rückkopplung aus 1 weist beispielhaft die Länge n = 4 auf und ist durch die nichtlineare Rückkopplungsfunktion definiert. Allerdings sind auch andere n ebenso wie andere Rückkopplungsfunktionen möglich.
-
Wie üblich bezeichnen die Operationen '+' und '·' die Addition bzw. Multiplikation in GF(2). Somit entsprechen sie den booleschen Operationen XOR und UND. In den schematischen Darstellungen in den Figuren sind sie durch ⊕ bzw. ⊙ bezeichnet. Das NLFSR 10 ist ein Grundelement. Das heißt, es setzt den Zustand nur mit Nullen fest, wobei jeder von null verschiedene Anfangszustand nach 2n – 1 Taktzyklen erstmals iteriert wird. Mit anderen Worten, der Zustand des Schieberegisters wiederholt sich periodisch mit der maximal möglichen kleinsten Periode gemäß = 2n – 1 (gemäß = 15 für N1).
-
Es wird angemerkt, dass die im Folgenden dargelegte Konstruktion nicht auf rückgekoppelte Schieberegister, die Grundelemente sind (mit maximaler Periode), beschränkt ist. Sie ist auch nicht auf Operationen in dem Körper GF(2) beschränkt. Alle Ergebnisse können auf den Körper GF(qn) mit dem Exponenten q = 2, 3, ... und n = 1, 2, ... übertragen werden. In diesem Fall bezeichnen die Operationen '+' und '·' die Additions- und Multiplikationsoperationen des jeweiligen Körpers.
-
Falls der Zustand des NLFSR 10 mit (D0, D1, D2, D3) = (1, 0, 0, 0) initialisiert wird, gibt das NLFSR 10 bei der Koordinate D0 die folgende Folge aus: (1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1)∞. (1)
-
Das NLFSR 10 ist durch folgende 4-Term-Rekursion charakterisiert: xn+4 = f(xn, xn+1, xn+2, xn+3) = xn + xn+1 + xn+2 + xn+1xn+2. (2)
-
Es seien mi ∊ {0, 1} unabhängige und gleichförmig verteilte Binärmaskenwerte. Später wird diskutiert, wie diese effizient erzeugt werden können. Durch Erhöhen jedes Werts xi auf das Paar (xi + mi, mi) wird ein einfaches Maskierungsschema mit zwei gemeinsamen Nutzungen erzielt. Es wird xi + mi der maskierte Wert genannt und Folgendes geschrieben: x'i = xi + mi. (3)
-
Einsetzen von xi = x'i + mi in die Rekursion (2) liefert: x'n+4 = x'n + x'n+1 + x'n+2 + x'n+1x'n+2 + [mn + mn+1 + mn+2 + mn+1mn+2 + mn+4 + mn+1x'n+2 + mn+2x'n+1]
= f(x'n, ..., x'n+3) + [f(m'n, ..., m'n+3) + mn+4 + mn+1x'n+2 + mn+2x'n+1]
= f(x'n, ..., x'n+3) + c(mn, ..., mn+4; x'n, ..., x'n+3).
-
Aus dem additiven Wesen der Maskierungsoperation folgt zweifellos, dass die Terme der ursprünglichen Rekursion f(.) für die maskierten Werte und für die Masken immer wieder erscheinen. Außerdem gibt es gemischte Terme von Masken und maskierten Werten sowie einen Term mit der neuen Maske (mn+4). Alle Terme außerhalb der ursprünglichen Rekursion werden in der sogenannten Maskenkorrekturfunktion gesammelt. c(mn, ..., mn+4; x'n, ..., x'n+3)
= mn + mn+1 + mn+2 + mn+1mn+2 + mn+4 + mn+1x'n+2 + mn+2x'n+1. (4)
-
Aus diesen Betrachtungen wird festgestellt, dass eine maskierte Verwirklichung des NLFSR 10 auf die in 2 gezeigte Struktur gebracht werden kann, die dementsprechend eine Ausführungsform für ein NLFSR in Übereinstimmung mit einer Ausführungsform bildet.
-
Insbesondere ist das NLFSR aus 2 allgemein mit dem Bezugszeichen 30 bezeichnet. Außer den Komponenten aus 1 umfasst das NLFSR 30 aus 2 eine Korrektureinrichtung 32, die zwischen den Ausgang der nichtlinearen Rückkopplungsfunktion 14 und den Eingang 18 des Schieberegisters 12 geschaltet ist, um den Rückkopplungswert x ^'n+k unter Verwendung eines Korrekturwerts c zu korrigieren, indem in der vorliegenden Ausführungsform x ^'n+k + c berechnet wird, um den in den Eingang 18 eingegebenen maskierten Rückkopplungswert x'n+k zu erhalten. Um den Korrekturwert c bereitzustellen, umfasst das NLFSR 30 aus 2 eine Maskenkorrekturfunktion 34, die eine Teilmenge der Maskenwerte empfängt, die den gegenwärtig in den Registern 16, d. h. mn ... mn+3, gespeicherten maskierten Werten x'n ... x'n+3 entsprechen, und die mit Ausgängen eines Registersatzes 16 verbunden ist, um die darin registrierten maskierten Werte x'i zu empfangen, um in Übereinstimmung mit der Formel 4 den Korrekturwert c zu berechnen.
-
Die Erfinder haben festgestellt, dass die Konstruktion einer maskierten Korrekturfunktion c immer möglich ist. Für irgendeine k-Term-Rekursion: xn+k = f(xn, xn+1, ..., xn+k-1) (die ein NLFSR bildet) kann die Zerlegung einer maskierten Rekursion konstruiert werden, x'n+k = f(x'n, ..., x'n+k-1) + c(mn, ..., mn+k; x'n, ..., x'n+k-1), wobei die Maskenkorrekturfunktion die folgende Form aufweist: c(mn, ..., mn+k; x'n, ..., x'n+k-1) = f(mn, ..., mn+k-1) + mn+k + h(mn, ..., mn+k-1; x'n, ..., x'n+k-1)
-
Die Funktion h(.) enthält nur die gemischten Terme x'i und mj. Das heißt, die Funktion h(.) ist z. B. eine Summe von Produkten x'imj mit verschiedenen Paaren i, j.
-
Dementsprechend zeigt 3 eine Ausführungsform für ein NLFSR in Übereinstimmung mit einer Ausführungsform allgemeiner. Das NLFSR aus 3 ist allgemein unter Verwendung des Bezugszeichens 30' bezeichnet und mit einer Länge k gezeigt, die irgendeine ganze Zahl sein kann, wobei aber in sicherheitsrelevanten Anwendungen k > 10 bevorzugt wäre. Wie oben beschrieben wurde, ist das NLFSR 30' zum Ausgeben einer Folge maskierter Werte x'i = xi + mi konfiguriert, wobei xi unmaskierte Werte sind und mi maskierte Werte sind. Genauer weist jeder unmaskierte Wert xi seinen eigenen ihm zugeordneten Maskenwert mi auf, wobei diese vorzugsweise statistisch unabhängig voneinander sind, d. h. mi statistisch unabhängig von mj mit irgendeinem i ≠ j ist. Das NLFSR 30' gibt die Folge maskierter Werte in Übereinstimmung mit der maskierten Rekursion x'n+k = f(x'n, ..., x'n+k-1) aus. Es wird angemerkt, dass irgendeine der Ausgaben 36 der Register 16 des Schieberegisters 32 des NLFSR 30' als eine Ausgabe 38 dienen kann, bei der das NLFSR 30' die Folge maskierter Werte x'i ausgibt, wobei 3 aber die Nutzung der Ausgabe 20 des Schieberegisters 12, d. h. der Ausgabe des letzten Registers 16 in der fortlaufenden Folge von Registern 16 des Schieberegisters 12, darstellt. Das Schieberegister 12 schiebt zyklisch den maskierten Wert x'n in dem letzten Register 16, x'n+1, zu einem nächsten Register in der Zeile heraus, wobei x'n+1-1 für alle 0 < 1 < n zuvor gespeichert worden ist, und nimmt den (korrigierten) Rückkopplungswert als x'n+k-1 an.
-
Das NLFSR 30' aus 3 umfasst eine nichtlineare Rückkopplungsfunktion 14, die zum Berechnen von x ^'n+k = f(x'n, ..., x'n+k-1) konfiguriert ist. Wie in 2 dargestellt ist, kann die nichtlineare Rückkopplungsfunktion 14 eine Schaltung boolescher Logikgatter wie etwa XOR- und UND-Gatter, die Additionen und Multiplikationen innerhalb der nichtlinearen Funktion f(.) implementieren, umfassen. Die Eingänge der Rückkopplungsschaltung der nichtlinearen Rückkopplungsfunktion 14 würden mit den Ausgängen 40 einer Teilmenge der Ausgänge 36 des Registers 16 verbunden, während ein Ausgang der Rückkopplungsschaltung mit dem Eingang des Schieberegisters 18, direkt oder über eine Korrektureinrichtung 32, wie hier dargestellt ist, verbunden ist. Ferner umfasst das Schieberegister 30' mit nichtlinearer Rückkopplung eine Maskenkorrekturfunktion 34, die dafür konfiguriert ist, f(mn, ..., mn+k-1) + mn+k + h(mn, ..., mn+k-1, xn, ..., xn+k-1) zu berechnen, um einen Korrekturwert c zu erhalten, wobei eine Korrektureinrichtung 32, die in dem NLFSR 30' enthalten ist, den Rückkopplungswert x ^'n+k mit c korrigiert, um den Rückkopplungswert x'n+k zu erhalten, der in das Schieberegister 12 des NLFSR 30' rückgekoppelt wird.
-
Wie aus der obigen Diskussion klar wurde, kann die Maskenkorrekturfunktion eine kombinatorische Schaltung umfassen, deren Eingänge mit einer Teilmenge 42 der Ausgänge 36 der Register 16 des Schieberegisters 12 verbunden sind und auf die wenigstens eine Teilmenge 44 jener Maskenwerte 46, die den aktuell in dem Schieberegister 12 registrierten maskierten Werten x'n ... x'k-1 zugeordnet sind, sowie der Maskenwert mn+k, der dem Rückkopplungswert, der x'n+k repräsentiert, zugeordnet ist, angewendet wird. Die Teilmenge 44 umfasst wenigstens jene Maskenwerte, die einem Maskenwert zugeordnet sind, der aktuell in jenen Registern 16 gespeichert ist, deren Ausgänge in der Menge 40 enthalten sind und die mit anderen Worten Eingänge der nichtlinearen Rückkopplungsfunktion 14 bilden.
-
Es wird angemerkt, dass mögliche Implementierungen des NLFSR 30' aus 3 nicht auf fest verdrahtete beschränkt sind. Vielmehr kann ein NLFSR 30' aus 3 ebenfalls unter Verwendung von Software oder konfigurierbarer Hardware, d. h. Firmware, implementiert werden.
-
Wie ebenfalls oben skizziert ist, kann die Funktion h(.) nur gemischte Terme von x'
i und m
j enthalten. Das heißt, h(.) kann geschrieben werden als:
n ≤ s (q) ≤ n + k – 1 für alle 1 ≤ q ≤ Q (p) und für alle 1 ≤ p ≤ P
n ≤ t (r) ≤ n + k – 1 für alle 1 ≤ r ≤ R (p) und für alle 1 ≤ p ≤ P.
-
Es kann sein, dass Q(p) = R(p) = 1 für alle 1 ≤ p ≤ P ist, d. h., dass alle Summanden Produkte zweier Faktoren sind, von denen einer ein maskierter Wert ist und der andere ein Maskenwert ist.
-
Wie im Folgenden ausführlicher skizziert ist, kann die Maskenkorrekturfunktion auf DPA-sichere Weise implementiert werden, so dass irgendwelche Zwischenergebnisse innerhalb der maskierten Korrekturfunktion mit allen unmaskierten Werten statistisch unkorreliert sind.
-
Dementsprechend ist im Folgenden eine DPA-sichere Implementierung der Maskenkorrekturfunktion dargestellt.
-
Eine naive Implementierung der Maskenkorrekturfunktion (4) ist in der folgenden 4 gezeigt. Diese Implementierung ist allgemein für DPA-Angriffe anfällig. Der Grund dafür ist, dass nicht garantiert ist, dass jedes Zwischenergebnis auf irgendeinem Draht mit den einfachen (unmaskierten) Werten statistisch unkorreliert ist. Ebenso wenig ist garantiert, dass diese Eigenschaft auch in Anwesenheit von Störimpulsen gültig bleibt.
-
Ein DPA-sicheres kombinatorisches Netz für die Berechnung der Maskenkorrektur ist beispielhaft in 5 gezeigt. (Wobei die aufeinander folgenden Schaltungselemente im Moment übersprungen werden.) Dieser Summationsbaum ist so konstruiert, dass nur statistisch unabhängige Zwischenergebnisse kombiniert werden. Zum Beispiel wird die Addition von mn+1 zu P1 betrachtet. Dies ist zulässig, da mn+1 statistisch unabhängig von mn+2, d. h. von dem additiven Maskenwert x'n+2, ist. Somit ist das Ergebnis S1 statistisch unabhängig von xn+2. Im Gegensatz dazu wäre eine direkte Summation von P1 und mn+2 in einem DPA schädlich. Die nachfolgende Addition der Maske mn zu S1 liefert S3. Somit ist das Zwischenergebnis S3 nun statistisch unabhängig von mn+1, mn+2 und mn+4 Somit kann S3 sicher mit P2 und S4 (die mit mn+1, mn+2 und mn+4 korreliert sind) kombiniert werden.
-
Um die Schaltung selbst in Anwesenheit von Störimpulsen DPA-sicher zu machen, werden aufeinander folgend weitere Schaltungselemente hinzugefügt, die als Gatter zum Unterdrücken der Störimpulse dienen. Der Hintergrund für diese Maßnahme ist, dass dynamische Gefahren zu einer Situation führen können, dass z. B. das Signal mit nicht vor S1 stabil ist. Dann könnten die Zwischenwerte von S3 und cn+4 mit dem einfachen Wert xn+2 korreliert werden.
-
Allgemeine Regel
-
In einer kombinatorischen Schaltung kann irgendein maskierter Wert x'i nur mit statistisch unabhängigen Werten, d. h. mit Masken mj (j ≠ i) oder mit maskierten Werten x'k (k ≠ i), kombiniert werden.
-
Ein statistisch unabhängiger Maskenwert m kann verwendet werden, um einen Wert x'j zu maskieren, bevor er mit einem korrelierten Wert y = f(x'j, mj, ...) kombiniert wird. Allerdings muss der maskierte Wert x'j + m registriert werden, bevor er mit y kombiniert wird.
-
Eine Erläuterung der obenerwähnten allgemeinen Regel ist wie folgt: Ein bereits maskierter Wert x'j kann zu irgendeinem statistisch unabhängigen Wert addiert werden, wobei das Addieren, wie bereits oben erwähnt wurde, in dem Binärbereich einer Exklusiv-XOR-Operation entspricht.
-
Statistisch unabhängige Mittel
- a) Jede Maske mi mit i ≠ j. (Falls i gleich j wäre, würden die Masken entsprechend
x'j + mj = (xj + mj) + mj = xj + (mj + mj) = xj+ 0 = xj einander aufheben und würde der Wert wieder im Klartext vorhanden sein.)
- b) Außerdem wäre es denkbar, einen weiteren bereits maskierten Wert x'k zu addieren, da dieser statistisch unabhängig von x'j wäre, d. h. x'j + x'k für alle j ≠ k.
-
Allerdings wird hinsichtlich der Aussage, dass ein korrelierter Wert addiert werden kann, sofern dieser im Voraus unter Verwendung einer neuen Maske m unabhängig gemacht worden ist, das Folgende angemerkt: Zum Beispiel wird angenommen, dass zu x'j der Wert y addiert werden soll, wobei y, z. B. wegen y = f(x'j, mj, ...), mit x'k statistisch korreliert ist. In diesem Fall müsste zu x'j eine neue Maske addiert werden, d. h. (x'j + m) + y. Im vorliegenden Fall sind die Klammern wichtig: Die Berechnung von (x'j + y) + m wäre mathematisch äquivalent, während die Addition (x'j + y) bereits Seitenkanalinformationen verraten würde, da x'j und y, wie oben angegeben ist, statistisch abhängig voneinander sind. Das heißt, in einer CMOS-Schaltungsimplementierung sollte z. B. zunächst das Ergebnis z = (x'j + m) berechnet werden und in ein Register geschrieben werden und erst dann, innerhalb eines nächsten Taktzyklus, z + y berechnet werden. Eine rein kombinatorische Schaltung könnte Seiteninformationen verraten, da es allgemein keine genaue Kontrolle der Signalverzögerungen in den einzelnen Zweigen dieses kombinatorischen Baums gibt.
-
Die Tatsache, dass die Addition einer neuen Maske, die noch nicht in dem kombinatorischen Raum enthalten gewesen ist, ein Zwischenergebnis statistisch unabhängig von irgendeinem anderen Term macht, ist in Bezug auf 5 dargestellt. Siehe z. B. die Addition der Maske mn in S3 = S1 + mn. Diese Addition macht S3 statistisch unabhängig von allen anderen Termen. Gleichfalls macht mn+4 in S4 = S2 + mn+4 den Term S4 statistisch unabhängig, so dass P2 zu S3 und S4 addiert werden kann, obwohl P2 mit S1 und mit S2 korreliert ist, da die Masken mn+1 und mn+2 beide Buchstaben beeinflussen.
-
Natürlich sind die obigen Diskussionen DPA-sicherer Implementierungen Maßnahmen zur Unterdrückung von Störimpulsen oder Ähnlichem, die auf die allgemeine Ausführungsform aus 3 übertragbar sind.
-
Nachfolgend ist hinsichtlich auf 6 das NLFSR 30' aus 3 gezeigt, das mit einem FSR 48 verbunden werden soll, das die relevanten Maskenwerte 44 zusammen mit dem Maskenwert mn+k an das NLFSR 30' liefert. Das NLFSR 30' bildet zusammen mit dem FSR 48 eine Vorrichtung zur pseudozufälligen Erzeugung einer Folge maskierter Werte, wobei die Vorrichtung allgemein mit dem Bezugszeichen 50 bezeichnet ist. Wie in 6 durch Strichlinien angegeben ist, wird das rückgekoppelte Schieberegister 48 vorzugsweise durch einen Generator TRNG 52 echter Zufallszahlen (TRNG = true random number generator) bekeimt (engl.: seeded), und/oder es wird sein interner Zustand intermittierend durch den TRNG 52 beeinflusst. In Betrieb wird das rückgekoppelte Schieberegister 48 synchron zu dem NLFSR 30' getaktet. Das heißt, die internen Register oder rückgekoppelten Schieberegister 48 werden in der Weise gesteuert, dass sie Schiebeoperationen synchron zu dem Schieberegister des NLFSR 30' ausführen.
-
7a zeigt eine mögliche Implementierung für das rückgekoppelte Schieberegister 48. Wie zu sehen ist, kann das rückgekoppelte Schieberegister 48 ein Schieberegister 54 umfassen, das eine Folge von Registerstufen 56 umfasst. Hier sind k + 1 Register 56 gezeigt, die in der Weise aufeinander folgend miteinander verbunden sind, dass sie das Schieberegister 54 bilden, wobei die Anzahl aber noch höher sein könnte. Eine Rückkopplungsfunktion des FSR 48 könnte linear sein, falls das rückgekoppelte Schieberegister 48 ein LFSR ist, oder nichtlinear, falls das FSR 48 ein NLFSR 58 ist. Dieses ist so konfiguriert, dass es eine Teilmenge 60 der Ausgänge 62 der Register 46 einer Rückkopplungsfunktion aussetzt, d. h. sie kombiniert, was zu einem Rückkopplungssignal 62 führt, das in den Eingang des Schieberegisters 54, d. h. in den Eingang seines ersten Registers 56, rückgekoppelt wird. Wie in 7a ebenfalls veranschaulichend dargestellt ist, ist zwischen den Ausgang der Rückkopplungsfunktion 58 und den Eingang des Schieberegisters irgendwo in der Schleife, wie in 7a gezeigt zwischen den Ausgang der Rückkopplungsfunktion 58 und den Eingang des Schieberegisters 54, eine Beeinflussungseinrichtung 66 geschaltet, um eine Änderung des wie in den Registern 56 gespeicherten internen Zustands des rückgekoppelten Schieberegisters 48 durch echte Zufallszahlwerte 68, die von dem Generator 52 echter Zufallszahlen ankommen, zu ermöglichen.
-
Da die Anzahl der Ausgänge 62 der Register 56 in Übereinstimmung mit dieser Ausführungsform k + 1 oder höher ist, gibt es kein Problem bei der Teilung der Menge relevanter Maskenwerte 44 zusammen mit dem Maskenwert mn+k auf der Grundlage dieser Ausgaben 62, damit sie in das NLFSR 30' eingegeben werden.
-
Wie in 7b gezeigt ist und wie im Folgenden genauer dargelegt ist, kann die Anzahl der Register 56 des FSR 48 allerdings ebenfalls k, d. h. gleich der Anzahl der Register des Schieberegisters des NLFSR 30', sein. Dies wird dadurch ermöglicht, dass der Rückkopplungswert 62 als Ausgabe durch die Rückkopplungsfunktion 58 in die Menge von Ausgangswerten aufgenommen wird, aus denen die Menge relevanter Maskenwerte 44 zusammen mit den Maskenwerten mn+k erhalten wird. Insbesondere bildet in diesem Fall daraufhin der in das Schieberegister 54 rückgekoppelte Wert den Maskenwert mn+k.
-
Wie aus der obigen Diskussion ebenfalls klar wurde, kann die NLFSR-Maskenkorrekturfunktion 34 eine Pipeline-Struktur umfassen, d. h. kann diese aufeinander folgende Schaltungselemente umfassen, die zu einer oder zu mehreren Pipelinestufen führen, die wiederum zu einer Verzögerung, bei der der Korrekturwert am Ausgang der Maskenkorrekturfunktion relativ zu der nichtlinearen Rückkopplungsfunktion verfügbar ist, d. h. zu einer Verzögerung um eine Anzahl von Taktzyklen des Schieberegisters 12 des NLFSR 30', die gleich der Anzahl der mit der Maskenkorrekturfunktion versehenen Pipelinestufen ist, führen, um Störimpulse und die entsprechenden Probleme hinsichtlich Sicherheitsangriffen zu unterdrücken. In einer bevorzugten Ausführungsform wird diese Verzögerung ohne Nachteile durch die Korrektureinrichtung 32, die den Rückkopplungswert x ^'n+k am Ausgang irgendeiner der Ausgaben der ersten 1 Register 16 des Schieberegisters 12 anstatt am Eingang des Schieberegisters 12 korrigiert, berücksichtigt, indem die nichtlineare Rückkopplungsfunktion 14 des NLFSR in der Weise ausgelegt ist, dass die relevanten Registerausgänge 40 von dem Eingang 18 des Schieberegisters 12 aus gesehen die Ausgänge dieser s ersten Register 16 nicht umfassen. 8 veranschaulicht ein entsprechend ausgelegtes NLFSR 30'. Wie darin dargestellt ist, bilden die ersten s Register 16 des Schieberegisters 12 weder einen Eingang einer nichtlinearen Rückkopplungsfunktion 14 noch einen einer Maskenkorrekturfunktion 34, d. h. der Menge 40 und 32 einer Teilmenge der Ausgänge der verbleibenden Register, wobei die durch ein XOR-Gatter implementierte Korrektureinrichtung 32 dementsprechend vor dem Eingang des ersten Registers 16 des Schieberegisters 12 zwischen seinem Eingang und dem Ausgang der nichtlinearen Rückkopplungsfunktion 14, wie in 3 gezeigt wurde, oder am Ausgang irgendeines der ersten s Register 16 zwischen dem Ausgang irgendeines dieser s ersten Register und dem unmittelbar folgenden Register 16, um dessen Ausgangswert einer XOR-Verknüpfung mit dem Korrekturwert z auszusetzen, positioniert sein kann. s kann 1 oder sogar größer als 1 sein und kann dafür verwendet werden, die in der Implementierung der Maskenkorrekturfunktion 34 potentiell enthaltene Pipelinestufenverzögerung in der Weise anzupassen, dass Störimpulse, wie bereits oben skizziert ist, unterdrückt werden.
-
Um die oben hinsichtlich 6 bis 8 skizzierten Möglichkeiten auf konkretere Weise zu veranschaulichen, wird auf die folgenden Figuren und ihre Beschreibung Bezug genommen, hinsichtlich denen eine Integration eines Pseudozufallsmaskengenerators zum Erzeugen der Maskenwerte erläutert wird.
-
Integration des Pseudozufallsmaskengenerators
-
In diesem Abschnitt ist im Folgenden eine hochoptimierte Architektur für einen wie in 2 gezeigten maskierten NLFSR 30, der N1 genannt ist, beschrieben. Es ist notwendig, eine Schiebefolge von Maskenwerten, die zum Berechnen der Maskenkorrekturen notwendig sind, siehe 2, aufrechtzuerhalten. Somit ist es verlockend, diese Schiebefolge zu einem kompletten NLFSR, das eine Pseudozufallsfolge von Masken erzeugt, technisch zu überarbeiten.
-
Durch g(x0, x1, x2, x3) = x0 + x2 + x1·x3 + x2·x3 (5) wird ein zweites Grundelement NLFSR N2 mit derselben Länge wie N1 definiert. Es erzeugt bei der Koordinate D0 die Folge mit der maximalen Länge (1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0)∞.
-
Das Prinzipschaltbild des NLFSR N2 ist in 9 gezeigt.
-
Der vollständige Stromlaufplan für eine DPA-sichere maskierte Implementierung des NLFSR N1 ist in 10 gezeigt. Einige Anmerkungen sind nützlich:
N2 kann bei der Initialisierung und während des Betriebs durch einen Generator echter Zufallszahlen (durch das echte Zufallsbit rn+4 angegeben) mit einer Rate bekeimt werden, die kleiner als die Taktfrequenz sein kann.
-
Da die Maskenkorrekturschaltung eine Pipelinestufe enthält, muss der Maskenkorrekturwert eine Stufe später, vergleiche 2, addiert werden. Dies ist leicht möglich, da der Wert des Registers D3 nicht in die Rückkopplungsfunktion von N1 eingeht.
-
Somit können NLFSRs in Übereinstimmung mit den obigen Ausführungsformen unter Verwendung eines Geheimnisteilungsschemas mit zwei Shares implementiert werden. Die beschriebene maskierte Implementierung ist sicher vor einer Differentialleistungsanalyse erster Ordnung und vor Sondierungsangriffen erster Ordnung. Die Beständigkeit gegen Angriffe, die die Anwesenheit von Störimpulsen nutzen, ist explizit betrachtet worden. Die in diesem Text gegebenen Beispiele können leicht auf irgendein NLFSR (und LFSR) mit praktisch realistischer Größe erweitert werden.
-
Der Vollständigkeit halber zeigt 11 eine kryptographische Vorrichtung, die die obigen Ausführungsformen verwendet. 11 zeigt eine kryptographische Vorrichtung, die zwei Schaltungsteile 70 und 72 umfasst, wobei eines von ihnen z. B. als ein Sender und das andere als ein Empfänger wirkt, wobei aber zwischen ihnen ebenfalls eine bidirektionale Kommunikation stattfinden kann. Auf jeden Fall umfasst die Vorrichtung aus 11, die allgemein mit dem Bezugszeichen 74 bezeichnet ist, außerdem einen dazwischengeschalteten Übertragungsbus 76, der dafür konfiguriert ist, die Folgen maskierter Werte irgendeiner der oben skizzierten Ausführungsformen zu verwenden, um zwischen den Schaltungsteilen 70 und 72 zu übertragende Daten wie etwa z. B. durch die XOR-Verknüpfung der Folge der Datenwerte einen nach dem andern Wert mit der Folge maskierter Werte einer Maskierung auszusetzen. Zu diesem Zweck könnten zwei Instanzierungen eines NLFSR wie etwa des NLFSR 30', eine bei dem Sender 70 und die andere bei dem Empfänger 72, verwendet werden. Beiden müsste die gleiche Folge von Maskenwerten mi zugeführt werden und zu diesem Zweck könnten beide Instanzierungen des NLFSR 30' wie in 11 gezeigt mit demselben FSR 48 verbunden sein oder könnten alternativ zwei Instanzierungen des FSR 48, eine für jede NLFSR-Instanzierung, verwendet werden. In dem optionalen Fall der Verwendung des Generators 52 echter Zufallszahlen zum Bekeimen und/oder zur intermittierenden Beeinflussung des internen Zustands des FSR 48 werden dieselben wie üblich verwendet.
-
Die kryptographische Vorrichtung 74 in 11 kann z. B. eine Chipkarte, einen kryptographischen Chip, ein Mobiltelefon oder ein anderes tragbares oder nicht tragbares elektrisches Gerät, auf dem kryptographische Funktionen kryptographische Sicherheitsmaßnahmen erfordern, bilden.
-
Die beschriebenen Maskierungsschemata können durch die Setzung: x'i = xi + mi + ni + ..., wobei mi, ni, ... die Masken sind, die die Sicherheit 1. Ordnung, 2. Ordnung usw. sicherstellen, leicht auf eine Maskierung höherer Ordnung erweitert werden. Im Ergebnis besteht die maskierte Schaltung aus r + 1 Schieberegisterketten, wobei r die Ordnung der Gegenmaßnahme ist, zuzüglich einer Maskenkorrekturschaltung h(.). Das heißt, für DPA-Angriffe höherer Ordnung ist es möglich, mehr als eine Maske pro Wert xi zu verwenden. Tatsächlich erfordert dies ein weiteres gleiches Schieberegister pro solchem zusätzlichen Maskenwert, wobei das zusätzliche Schieberegister mit den zusätzlichen Masken ausgeführt wird, so dass sich eine wesentlich kompliziertere Korrekturfunktion ergibt.
-
In der vorstehenden Ausführlichen Beschreibung ist zu sehen, dass verschiedene Merkmale in Ausführungsformen zur effizienteren Beschreibung der Offenbarung miteinander gruppiert sind. Dieses Verfahren der Offenbarung ist nicht so zu interpretieren, dass es eine Absicht widerspiegelt, dass die beanspruchten Ausführungsformen mehr Merkmale als in jedem Anspruch explizit angegeben erfordern. Vielmehr kann der Erfindungsgegenstand, wie die folgenden Ansprüche widerspiegeln, in weniger als allen Merkmalen einer einzelnen offenbarten Ausführungsform liegen. Somit sind die folgenden Ansprüche hier in die ausführliche Beschreibung integriert, wobei jeder Anspruch allein als eine getrennte Ausführungsform stehen kann. Obwohl jeder Anspruch allein als eine getrennte Ausführungsform stehen kann, wird angemerkt, dass – obwohl sich ein unabhängiger Anspruch in den Ansprüchen auf eine spezifische Kombination mit einem oder mit mehreren anderen Ansprüchen beziehen kann – andere Ausführungsformen außerdem eine Kombination des abhängigen Anspruchs mit dem Gegenstand jedes anderen abhängigen Anspruchs oder eine Kombination jedes Merkmals mit anderen abhängigen oder unabhängigen Ansprüchen enthalten können. Solche Kombinationen werden hier vorgeschlagen, es sei denn, dass eine spezifische Kombination nicht beabsichtigt ist. Darüber hinaus ist beabsichtigt, dass auch Merkmale eines Anspruchs zu irgendeinem anderen unabhängigen Anspruch enthalten sein können, selbst wenn dieser Anspruch nicht direkt von dem unabhängigen Anspruch abhängig gemacht worden ist.
-
Ferner wird angemerkt, dass die in dieser Beschreibung oder in den Ansprüchen offenbarten Verfahren durch eine Vorrichtung, die Mittel zum Ausführen jedes der jeweiligen Schritte dieser Verfahren aufweist, implementiert werden können.
-
Darüber hinaus kann in einigen Ausführungsformen ein einzelner Schritt mehrere Teilschritte enthalten oder in sie zerlegt sein. Sofern sie nicht explizit ausgeschlossen sind, können solche Teilschritte enthalten und Teil der Offenbarung dieses einzelnen Schritts sein.
-
Obwohl einige Aspekte im Kontext einer Vorrichtung beschrieben worden sind, ist klar, dass diese Aspekte ebenfalls eine Beschreibung des entsprechenden Verfahrens repräsentieren, wobei ein Block oder eine Vorrichtung einem Verfahrensschritt oder einem Merkmal eines Verfahrensschritts entspricht. Analog repräsentieren im Kontext eines Verfahrensschritts beschriebene Aspekte eine Beschreibung eines entsprechenden Blocks oder Gegenstands oder Merkmals einer entsprechenden Vorrichtung. Einige oder alle der Verfahrensschritte können durch eine Hardwarevorrichtung (oder unter Verwendung einer Hardwarevorrichtung) wie z. B. einen Mikroprozessor, einen programmierbaren Computer oder eine elektronische Schaltung ausgeführt werden. In einigen Ausführungsformen können einige oder mehrere der wichtigsten Verfahrensschritte durch eine solche Vorrichtung ausgeführt werden.
-
In Abhängigkeit von bestimmten Implementierungsanforderungen können Ausführungsformen der Erfindung in Hardware oder in Software implementiert werden. Die Implementierung kann unter Verwendung eines digitalen Speichermediums, z. B. einer Diskette, einer DVD, einer Bluray, einer CD, eines ROM, eines PROM, eines EPROM, eines EEPROM oder eines FLASH-Speichers, auf der bzw. dem elektronisch lesbare Steuersignale gespeichert sind, die mit einem programmierbaren Computersystem zusammenwirken (oder zusammenwirken können), ausgeführt werden, so dass das entsprechende Verfahren ausgeführt wird. Somit kann das digitale Speichermedium computerlesbar sein.
-
Einige Ausführungsformen in Übereinstimmung mit der Erfindung umfassen einen Datenträger, der elektronisch lesbare Steuersignale aufweist, die mit einem programmierbaren Computersystem in der Weise zusammenwirken können, dass eines der hier beschriebenen Verfahren ausgeführt wird.
-
Allgemein können Ausführungsformen der vorliegenden Erfindung als ein Computerprogrammprodukt mit einem Programmcode implementiert werden, wobei der Programmcode zum Ausführen eines der Verfahren betreibbar ist, wenn das Computerprogrammprodukt auf einem Computer ausgeführt wird. Der Programmcode kann z. B. auf einem maschinenlesbaren Träger gespeichert sein.
-
Andere Ausführungsformen umfassen das Computerprogramm zum Ausführen eines der hier beschrieben Verfahren, das auf einem maschinenlesbaren Träger gespeichert ist.
-
Mit anderen Worten, eine Ausführungsform des erfindungsgemäßen Verfahrens ist somit ein Computerprogramm mit einem Programmcode zum Ausführen eines der hier beschriebenen Verfahren, wenn das Computerprogramm auf einem Computer ausgeführt wird.
-
Eine weitere Ausführungsform der erfindungsgemäßen Verfahren ist somit ein Datenträger (oder ein digitales Speichermedium oder ein computerlesbares Medium), der darauf aufgezeichnet das Computerprogramm zum Ausführen eines der hier beschriebenen Verfahren umfasst. Der Datenträger, das digitale Speichermedium oder das aufgezeichnete Medium sind typischerweise konkret und/oder nicht flüchtig.
-
Eine weitere Ausführungsform des erfindungsgemäßen Verfahrens ist somit ein Datenstrom oder eine Folge von Signalen, die das Computerprogramm zum Ausführen eines der hier beschriebenen Verfahren repräsentieren. Der Datenstrom oder die Folge von Signalen kann z. B. dafür konfiguriert sein, über eine Datenkommunikationsverbindung, z. B. über das Internet, übertragen zu werden.
-
Eine weitere Ausführungsform umfasst ein Verarbeitungsmittel, z. B. einen Computer oder eine programmierbare Logikvorrichtung, der bzw. die dafür konfiguriert oder ausgelegt ist, eines der hier beschriebenen Verfahren auszuführen.
-
Eine weitere Ausführungsform umfasst einen Computer, auf dem das Computerprogramm zum Ausführen eines der hier beschriebenen Verfahren installiert ist.
-
Eine weitere Ausführungsform in Übereinstimmung mit der Erfindung umfasst eine Vorrichtung oder ein System, die bzw. das zum (z. B. elektronischen oder optischen) Übertragen eines Computerprogramms zum Ausführen eines der hier beschriebenen Verfahren an einen Empfänger konfiguriert ist. Der Empfänger kann z. B. ein Computer, eine mobile Vorrichtung, eine Speichervorrichtung oder dergleichen sein. Die Vorrichtung oder das System kann z. B. einen der Dateiserver zum Übertragen des Computerprogramms an den Empfänger umfassen.
-
In einigen Ausführungsformen kann eine programmierbare Logikvorrichtung (z. B. eine frei programmierbare logische Anordnung) zum Ausführen einiger oder aller Funktionalitäten der hier beschriebenen Verfahren verwendet werden. In einigen Ausführungsformen kann eine frei programmierbare Gatteranordnung mit einem Mikroprozessor zusammenwirken, um eines der hier beschriebenen Verfahren auszuführen. Allgemein werden die Verfahren vorzugsweise durch irgendeine Hardwarevorrichtung ausgeführt.
-
Die oben beschriebenen Ausführungsformen dienen lediglich zur Veranschaulichung der Prinzipien der vorliegenden Erfindung. Selbstverständlich sind Abwandlungen und Änderungen der Anordnungen und der hier beschriebenen Einzelheiten für den Fachmann auf dem Gebiet klar. Somit sollten sie nur durch den Schutzumfang der nachstehenden Patentansprüche und nicht durch die als Beschreibung und Erläuterung der vorliegenden Ausführungsformen dargestellten spezifischen Einzelheiten beschränkt sein.