-
Ausführungsbeispiele betreffen allgemein Verfahren zum Permutieren von Datenelementen und Permutiervorrichtungen.
-
Die Erzeugung einer zufälligen Permutation unter Verwendung von gleichverteilt und unabhängig generierten Zufallsbits ist eine häufig benötigte Teilkomponente von kryptographischen Verfahren. Gebräuchliche Anwendungsfälle sind das Umkopieren eines aus mehreren Zellen bestehenden Speicherbereichs mit einem geheimen Schlüssel in zufälliger Reihenfolge, Auswertung der Substitutionsboxen einer symmetrischen Chiffre in zufälliger Reihenfolge oder das Permutieren einer Tabelle mit geheimen Zwischenergebnissen einer kryptographischen Berechnung. Entsprechend sind effiziente Verfahren zum Permutieren von Datenelementen wünschenswert.
-
Gemäß einer Ausführungsform wird ein Verfahren zum Permutieren von Datenelementen bereitgestellt aufweisend Empfangen einer Folge von Datenelementen und Durchführen einer Mehrzahl von Vertauschungsoperationen aufweisend zufälliges Auswählen eines Datenelements aus den Datenelementen der Folge, Vertauschen des Datenelements mit einem anderen Datenelement an einer deterministisch vorgegebenen Position der Folge von Datenelementen und Anwenden einer vorgegebenen Permutation auf die deterministisch vorgegebene Position oder auf die Folge von Datenelementen.
-
Gemäß einer weiteren Ausführungsform wird eine Permutiervorrichtung gemäß dem oben beschriebenen Verfahren zum Permutieren von Datenelementen bereitgestellt.
-
Die Figuren geben nicht die tatsächlichen Größenverhältnisse wieder sondern sollen dazu dienen, die Prinzipien der verschiedenen Ausführungsbeispiele zu illustrieren. Im Folgenden werden verschiedene Ausführungsbeispiele mit Bezug auf die folgenden Figuren beschrieben.
-
1 zeigt ein Ablaufdiagramm gemäß einer Ausführungsform.
-
2 zeigt eine Permutiervorrichtung.
-
Die folgende detaillierte Beschreibung bezieht sich auf die beiliegenden Figuren, die Details und Ausführungsbeispiele zeigen. Diese Ausführungsbeispiele sind so detailliert beschrieben, dass der Fachmann die Erfindung ausführen kann. Andere Ausführungsformen sind auch möglich und die Ausführungsbeispiele können in struktureller, logischer und elektrischer Hinsicht geändert werden, ohne vom Gegenstand der Erfindung abzuweichen. Die verschiedenen Ausführungsbeispiele schließen sich nicht notwendig gegenseitig aus sondern es können verschiedene Ausführungsformen miteinander kombiniert werden, so dass neue Ausführungsformen entstehen.
-
Auf einem Chip, beispielsweise einer Chipkarte, werden Datenelemente beispielsweise permutiert, um erfolgreiche Angriffe auf den Chip, beispielsweise wenn der Chip ein kryptographisches Verfahren durchführt, zu vermeiden. Beispielsweise können zur Abwehr von Seitenkanalangriffen Permutationen von Speicherbereichen des Chips mit typischerweise n ≤ 64 Einträgen verwendet werden. Eine zufällig gewählte Permutation π ∊ Sn (Sn: Menge aller Permutationen von n Elementen) vertauscht dann direkt die logischen und physikalischen Adressen bei Speicherzugriffen. Auf diese Weise lassen sich beispielsweise Gegenmaßnahmen gegen Simple-Power-Analyse, Template-Attacken oder Differential-Power-Attacken auf Adress-Bits realisieren.
-
Vor jeder Durchführung des kryptographischen Verfahrens wird typischerweise eine neue Permutation der Speicheradressen berechnet. Daher ist es für diese Anwendung ideal, wenn die benötigte zufällige Permutation π direkt durch eine geeignete Hardware-Komponente, welche sich mit wenigen Gattern beschreiben lässt, oder durch eine geeignete Software-Komponente, welche effizient ist und kompakt programmiert werden kann, erzeugt wird.
-
Bei der Erzeugung zufälliger Elemente aus Sn mit n > 2 besteht dabei das prinzipielle Problem, dass ein Permutationsverfahren entweder keine Gleichverteilung auf Sn erzielt oder keine deterministische Laufzeit hat. Dies liegt typischerweise darin begründet, dass die Anzahl der Permutationen |Sn| möglicherweise keine Zweierpotenz ist und daher approximiert werden muss. Wenn das Verfahren zur Erzeugung der Permutationen (d. h. das Permutationsverfahren) eine endliche deterministische Laufzeit hat, ergeben sich Schiefen in der berechneten Wahrscheinlichkeitsverteilung über der Menge aller Permutationen.
-
Im Folgenden werden einfache Algorithmen zur Approximation von zufälligen Permutationen, d. h. Permutationsverfahren, die approximativ zufällige Permutationen erzeugen, beschrieben. Das heißt, dass diese Verfahren lediglich asymptotisch eine Gleichverteilung der Permutationen erzielen. Dafür haben die Algorithmen eine deterministische Laufzeit, und es ist möglich, obere Schranken für die maximale Abweichung der Wahrscheinlichkeit für das Auftreten einer Permutation von der Gleichverteilung anzugeben. Außerdem kann die maximale Abweichung von der Gleichverteilung über die Anzahl der Wiederholungen der Algorithmen einfach gesteuert werden. Die nachfolgend beschriebenen Algorithmen approximieren eine zufällige Permutation aus Sn durch Anwendung einer Folge zufälliger Transpositionen.
-
Im Folgenden wird eine Permutation aus Sn als Folge (a1, ..., an) der Zahlen 1 bis n dargestellt. Die zugehörige Permutationsabbildung ist i → ai für 1 ≤ i ≤ n. Es wird angenommen, dass die Folge (a1, ..., an) mit der Darstellung einer beliebigen Permutation aus Sn initialisiert ist.
-
Der Fisher-Yates Algorithmus zur Erzeugung einer zufälligen Permutation aus Sn arbeitet folgendermaßen:
- Algorithmus 1:
1) Für i ← 1 bis n – 1
2) wähle zufällig j ∊ {0, ..., n – i}
3) vertausche die Werte ai und ai+j der Folge
-
Das Verfahren erzeugt alle Elemente aus Sn mit gleicher Wahrscheinlichkeit, hat aber (wie die Varianten nach Durstenfeld und Sattolo) das Problem, dass unter Verwendung von glechverteilten Zufallsbits zufällig eine Zahl j ∊ {0, ..., n – i} berechnet werden muss für 1 ≤ i ≤ n – 1. Dazu werden in jeder Iteration mindestens log(n – i + 1) Zufallsbits benötigt. Wenn n – i + 1 keine Zweierpotenz ist, kann es sein, dass die vom Zufallszahlengenerator erzeugte Bit-Folge eine Zahl größer als n – i repräsentiert. In diesem Fall werden die erzeugten Zufallsbits verworfen und der Vorgang muss wiederholt werden. In Abhängigkeit von n kann der Erwartungswert für die Anzahl der notwendigen Versuche zur Erzeugung eines zufälligen Indexes dadurch fast 2 betragen.
-
Ein weiterer Algorithmus, der die grundsätzliche Vorgehensweise einer Approximation beschreibt, ist der folgende Algorithmus:
- Algorithmus 2:
1) Für i ← 1 bis l
2) wähle zufällig Indizes j, k ∊ {1, ..., n}
3) vertausche die Werte aj und ak der Folge
-
Dieser Algorithmus approximiert eine zufällige Permutation aus Sn durch eine Folge zufälliger Transpositionen der Elemente. Obwohl das Verfahren exponentielle Konvergenz in der Anzahl l der Iterationen der Hauptschleife besitzt, ist die konkrete Anzahl an Iterationen, welche notwendig ist, um eine gegebene maximale Abweichung von der Gleichverteilung zu unterschreiten, relativ groß. Außerdem benötigt der Algorithmus eine große Anzahl an Zufallsbits, da in jedem Schleifendurchlauf zwei zufällige Indizes unabhängig voneinander generiert werden müssen. Dabei besteht insbesondere die Fragestellung, wie solche Indizes mit Hilfe gleichverteilter Zufallsbits bestimmt werden können, falls n keine Zweierpotenz ist.
-
Es sollte beachtet werden, dass Algorithmus 2 den Fall j = k explizit zulässt. Ohne diesen Fall würde die erzeugte Permutation bei jeder Ausführung der Schleife zwischen geraden und ungeraden Permutationen wechseln und das Verfahren könnte nicht gegen eine zufällige Permutation konvergieren. Ohne Übergänge eines Zustandes des korrespondierenden Markov-Automaten in sich selbst wäre der zugehörige Graph bipartit.
-
Im Folgenden wird ein Beweis gegeben, dass Algorithmus 2 unabhängig vom Startwert für l → ∞ gegen eine zufällige Permutation konvergiert, wobei die maximale Abweichung der Wahrscheinlichkeit für das Auftreten einer bestimmten Permutation von der Gleichverteilung exponentiell in l gegen 0 geht.
-
Um die Konvergenzgeschwindigkeit der Approximationsverfahren für zufällige Permutationen zu untersuchen, werden die Permutationsverfahren als Markov-Automaten betrachtet.
-
Die Zustandsmenge der Automaten besteht aus der Menger aller Permutationen aus Sn. Sei A ein Algorithmus. Eine Iteration der Schleife von A bildet die Darstellung (a1, ..., an) einer Permutation mit einer durch A gegebenen Wahrscheinlichkeit in die Darstellung (b1, ..., bn) einer anderen Permutation ab.
-
Bezüglich einer festen Ordnung der Permutationen aus Sn kann der Markov-Automat, welcher eine Iteration der Schleife von A ausführt, durch eine stochastische Matrix M = (mi,j) ∊ [0, 1]w×w mit 1 ≤ i, j ≤ w = |Sn| beschrieben werden. Dabei ist mi,j die Wahrscheinlichkeit, dass der Automat von Permutation i in Permutation j übergeht. Sei π = (π1, ..., πw) die Wahrscheinlichkeitsverteilung zu Beginn der Schleife, wobei πi die Wahrscheinlichkeit ist, dass die Folge (a1, ..., an) die Permutation πi repräsentiert. Dann ergibt sich die Wahrscheinlichkeitsverteilung π' nach der Ausführung einer Iteration der Schleife von A zu π' = Mπ. Damit berechnet der Algorithmus A nach l Schleifendurchläufen die Verteilung A(π) = M'π.
-
Algorithmus 2 ist verhältnismäßig einfach zu analysieren, weil die zugehörige Matrix M für eine Iteration der Hauptschleife symmetrisch ist und daher w reelle Eigenwerte λ1, ..., λw hat. O. B. d. A. sei |λ1| ≥ |λ2| ≥...≥ |λw|.
-
In M haben jedoch nicht alle von 0 verschiedenen Einträge den gleichen Wert. Auf der Diagonalen steht der Wert 1/n für den Fall j = k, die anderen von 0 verschiedenen Einträge haben den Wert 2/n2, wenn die betreffenden Permutationen durch Anwendung einer Transposition ineinander überführt werden können. Diese unterschiedlichen Einträge sind der Grund für die Verwendung eines Multigraphen im Beweis zu Lemma 1 unten.
-
Da M symmetrische Übergangsmatrix eines Markov-Automaten ist, beträgt auch die Summe der Einträge in jeder Zeile 1. Daraus folgt, dass der Vektor u = (1/w, ..., 1/w) für die Gleichverteilung aller Permutationen aus Sn ein Eigenvektor von M mit Eigenwert 1 ist. Da außerdem aus der Normierungsbedingung der stochastischen Matrix folgt, dass für alle Eigenwerte |λi| ≤ 1 gilt, kann o. B. d. A. λ1 = 1 angenommen werden.
-
Sei π = (π
1, ..., π
n) eine Wahrscheinlichkeitsverteilung über S
n, dann ist π – u orthogonal zu u, denn es gilt
-
Für eine Wahrscheinlichkeitsverteilung π über S
n gibt es daher einen Vektor π
⊥ mit π = u + π
⊥ und π
⊥ ⊥ u. Ferner folgt aus π – u ⊥ u, dass ∥π
⊥∥ < ∥π∥ ≤ 1 gilt:
Sei {b
i} eine orthogonale Basis aus Eigenvektoren zu den Eigenwerten λ
i und sei
-
Bei den Umformungen wurde mehrmals der Satz des Pythagoras verwendet. Für x = bj wird das Maximum angenommen.
-
Der Rayleigh-Quotient liefert nun einen Zusammenhang zwischen dem betragsmäßig zweitgrößten Eigenwert |λ2| von M und dem Vektor π⊥: |λ2| = maxx⊥u ∥Mx∥ / ∥x∥
-
Damit gilt für die Abweichung der Wahrscheinlichkeitsverteilung π von der Gleichverteilung nach Durchführung einer Iteration der Schleife des Algorithmus die Abschätzung
∥Mπ – u∥2 = ∥M(π – u)∥2 = ∥Mπ⊥∥2 ≤ λ 2 / 2∥π⊥∥2 = λ 2 / 2∥π – u∥2 und für die maximale Abweichung der von dem Algorithmus nach l Schleifendurchläufen berechneten Wahrscheinlichkeitsverteilung von der Gleichverteilung die Abschätzung
-
Dabei wird für (1) wieder die Abschätzung ∥π⊥∥ < ∥π∥ verwendet. Um aus (2) zu folgern, dass das Verfahren aus dem Algorithmus unabhängig vom Startwert für l → ∞ gegen eine zufällige Permutation konvergiert, wobei die maximale Abweichung der Wahrscheinlichkeit für das Auftreten einer bestimmten Permutation von der Gleichverteilung exponentiell in l gegen 0 geht, muss noch eine obere Schranke c mit |λ2| ≤ c < 1 gezeigt werden.
-
Für das folgende Lemma wird ein d-regulärer Multigraph mit Schleifen vorausgesetzt. Ein Graph G heißt d-regulär, wenn jeder Knoten genau d Kanten hat In einem Multigraphen kann es einen beliebige Anzahl an Kanten zwischen zwei Knoten geben. Durch die Schleifen werden bipartite Graphen ausgeschlossen. Die normierte Adjazenzmatrix eines bipartiten Graphen hat den Eigenwert –1. Damit gilt |λ2| = 1, und es ist nicht mehr möglich, mit (2) die Konvergenz der Approximationsverfahren zu folgern. Im Folgenden ist der Durchmesser δ eines Graphen der maximale Abstand (d. h. die Länge des kürzesten Pfades) zwischen zwei beliebigen Knoten des Graphen.
-
Lemma 1:
-
Sei G = (V, E) mit |V| = w ein d-regulärer zusammenhängender Multigraph mit Schleifen an allen Knoten und sei δ der Durchmesser von G. Dann gilt für den betragsmäßig zweitgrößten Eigenwert λ der normierten Adjazenzmatrix von G: |λ| < 1 – 1 / 4dwδ
-
Beweis:
-
Seien u = (1/w, ..., 1/w) und π ⊥ u mit ∥π∥ = 1 Vektoren und M = (mi,j) die normierte Adjazenzmatrix von G. Es werden die Notationen ε = 1/(2dwδ) und v = Mπ verwendet. Aus der Definition des zweiten Eigenvektors mittels des Rayleigh-Quotienten folgt, dass es zum Beweis des Lemmas ausreichend ist, wenn gezeigt wird, dass ∥v∥ < 1 – ε/2.
-
Im Folgenden wird die stärkere Abschätzung 1 – ∥v∥2 > ε bewiesen, woraus die Behauptung des Lemmas folgt.
-
Wenn nämlich im Umkehrschluss angenommen wird, dass ∥v∥ ≥ 1 – ε/2 gilt, erhält man ∥v∥2 ≥ 1 – ε oder äquivalent 1 – ∥v∥2 ≤ ε.
-
-
Dabei wurde ausgenutzt, dass die Zeilen- und Spaltensummen von M den Wert 1 ergeben, dass ∥v∥
2 = 〈Mπ, v〉 gilt und dass π ein Einheitsvektor ist. Zum Beweis des Lemmas genügt es also zu zeigen, dass
gilt.
-
Aus der Orthogonalität von π und u folgt
-
Damit gibt es Knoten i, j mit π
i > 0 und π
i < 0. Da π ein Einheitsvektor ist, gibt es insbesondere Knoten i, j mit
πi – πj > 1/√w . Weil G zusammenhängend ist mit Durchmesser δ, gibt es einen kürzesten Pfad z
0, z
1, ...,z
t ∊ V der Länge t ≤ δ in G, welcher i = z
0 und j = z
t verbindet. Damit gilt
-
Im Schritt zu (3) der Umformungen wird dabei der Zusammenhang ∥x∥1 ≤ √n∥x∥2 zwischen der Betragssummennorm und der euklidischen Norm verwendet, wobei x ein n-dimensionaler Vektor ist.
-
Weil der Graph G an jedem Knoten eine Schleife hat und d-regulär ist, erhält man für jeden Summanden unter der Wurzel in (3) einen Beitrag von mindestens 1/d durch die normierte Adjazenzmatrix des Graphen
und die Aussage des Lemmas folgt.
-
Es kann sich eine bessere Abschätzung ergeben, wenn man in (4) statt 1/d den minimalen von 0 verschiedenen Eintrag in M als Beitrag rechnet. Für die Analyse von Algorithmus 2 verdoppelt sich dann der Wert zu 2/n2. Es gibt viele Abschätzungen für den zweiten Eigenwert der Adjazenzmatrix eines Graphen unter unterschiedlichen Annahmen.
-
Für hinrechend große Werte n gilt daher näherungsweise
-
Damit wären in Algorithmus 2 für d = n2 und δ ≤ n – 1 mindestens l = 4n!(n3 – n2)ln(1/ε) Iterationen der Hauptschleife nötig, um eine maximale Abweichung von höchstens ε der berechneten Wahrscheinlichkeitsverteilung über der Menge der Permutationen aus Sn von der Gleichverteilung zu erzielen. Diese Formel zeigt zwar einerseits, dass die Abweichung ε unabhängig vom Startwert π exponentiell in l gegen 0 geht. Andererseits ist der Vorfaktor groß, so dass sich schon für kleine Werte n eine sehr große Anzahl an benötigten Iterationen ergibt.
-
Hierbei muss allerdings auch berücksichtigt werden, dass die obere Schranke für den betragsmäßig zweitgrößten Eigenwert der Übergangsmatrix des Markov Automaten viele Vereinfachungen enthält und deshalb ungenau ist.
-
Zum Beispiel ergibt n = 4 und ε = 1/1000 den Wert l ≈ 31831. Wird in (4) statt d der Minimalbeitrag von M mit n2/2 berücksichtigt, halbiert sich der Wert.
-
Mittels Techniken der Darstellungstheorie der symmetrischen Gruppe kann für Algorithmus 2 die bessere Schranke l ≥ n/2ln(1/ε) + n/2ln(n) + O(n) bewiesen werden.
-
Gemäß einer Ausführungsform wird das grundlegende Prinzip aus Algorithmus 2 durch Anwendung einer zyklischen Vertauschung aller Elemente in {a1, ..., an} bei jeder Durchführung der Hauptschleife erweitert.
-
Allgemein wird beispielsweise ein Verfahren bereitgestellt, wie es in 1 dargestellt ist.
-
1 zeigt ein Ablaufdiagramm 100 gemäß einer Ausführungsform.
-
In 101 wird eine Folge von Datenelementen empfangen.
-
In 102 werden eine Mehrzahl von Vertauschungsoperationen durchgeführt.
-
Jede Vertauschungsoperation weist auf zufälliges Auswählen eines Datenelements aus den Datenelementen der Folge, Vertauschen des Datenelements mit einem anderen Datenelement an einer deterministisch vorgegebenen Position der Folge von Datenelementen und Anwenden einer vorgegebenen Permutation auf die deterministisch vorgegebene Position oder auf die Folge von Datenelementen auf.
-
In anderen Worten wird in einer Ausführungsform in einer Vertauschungsoperation eine Position eines Permutationsvektors deterministisch festgelegt, eine andere Position des Permutationsvektors zufällig festgelegt, und die Elemente an den beiden Positionen vertauscht. Am Ende der Vertauschungsoperation (beispielsweise bei allen Vertauschungsoperationen bis auf die letzte einer Vielzahl von Vertauschungsoperationen) wird eine vorgegebene Permutation auf die deterministisch vorgegebene Position angewendet (z. B. die deterministisch vorgegebene Position um eins oder mehrere Elemente zyklisch weitergerückt) oder auf die Folge von Datenelemente angewendet (z. B. die Folge zyklisch rotiert), wobei die deterministische Position in diesem Fall beispielsweise konstant bleibt. Auf diese Weise kann sichergestellt werden, dass jede Position der Folge Objekt einer Vertauschungsoperation wird.
-
Beispielsweise werden in einer Ausführungsform Positionen eines Permutationsvektors deterministisch durchlaufen und das aktuelle Element des Permutationsvektors wird mit einem aus allen Elementen des Permutationsvektors zufällig ausgewähltem Element vertauscht.
-
Gemäß einer Ausführungsform werden in 102 mehrere Vertauschungsoperationen gemäß der beschriebenen Vertauschungsoperation nacheinander (iterativ) durchgeführt, beispielsweise bis ein bestimmtes Abbruchkriterium, z. B. eine vorgegebene Anzahl von Iterationen, erreicht ist.
-
Das Permutationsverfahren kann beispielsweise angewendet werden zum Umkopieren eines aus mehreren Zellen bestehenden Speicherbereichs mit einem geheimen Schlüssel in zufälliger Reihenfolge, Auswertung der Substitutionsboxen einer symmetrischen Chiffre in zufälliger Reihenfolge oder für das Permutieren einer Tabelle mit geheimen Zwischenergebnissen einer kryptographischen Berechnung.
-
Gemäß einem Ausführungsbeispiel weist ein Verfahren zur Erzeugung zufälliger Permutationen auf:
- – die iterierte Anwendung von Transpositionen, bei welchen ein Index deterministisch ist und der andere Index durch ein randomisiertes Verfahren bestimmt wird
- – das Ausführen von deterministischen zyklischen Vertauschungsschritten, welche entweder explizit (beispielsweise durch eine Rotation aller Elemente) oder implizit (beispielsweise durch Inkrementieren des deterministischen Indexes der Transpositionen) gegeben sein können
-
Die zyklischen Vertauschungsschritte bewirken, dass innerhalb einer vorhersagbaren Anzahl von Iterationen jede Position mindestens einmal Objekt einer Transposition wird.
-
Die vorgegebene Permutation ist beispielsweise eine zyklische Permutation, z. B. eine zyklische Rotation.
-
Das Verfahren weist beispielsweise ferner Empfangen einer Zufallszahl und zufälliges Auswählen des Datenelements aus allen Datenelementen der Folge basierend auf der Zufallszahl auf.
-
Zum Beispiel weist das Verfahren das Empfangen der Zufallszahl von einem Zufallszahlengenerator auf.
-
Gemäß einer Ausführungsform wird das Datenelement ausgewählt durch Division mit Rest der Zufallszahl durch die Anzahl von Datenelementen und Auswählen des Datenelements als das Datenelement, das durch den Rest gemäß einer Indizierung der Datenelemente indiziert wird.
-
Gemäß einer Ausführungsform wird das Datenelement aus einer Teilmenge der Datenelemente der Folge ausgewählt.
-
Die Teilmenge enthält beispielsweise eine Anzahl von Datenelementen, die gleich einer Potenz von zwei ist.
-
Zum Beispiel ist die Anzahl gleich der größten Potenz von zwei, die kleiner oder gleich der Anzahl von Datenelementen der Folge ist.
-
In dem Fall, dass die vorgegebene Permutation auf die Folge von Datenelementen angewendet wird, kann die deterministisch vorgegebene Position beispielsweise eine konstante Position sein.
-
Gemäß einer Ausführungsform weist das Verfahren das Speichern der Folge von Datenelementen in einem Schieberegister und zyklisches Rotieren der Folge von Datenelementen mittels des Schieberegisters auf.
-
Jeder Vertauschungsoperation der Mehrzahl von Vertauschungsoperationen ist beispielsweise ein eindeutiger Iterationsindex zugeordnet.
-
Beispielsweise ist für eine Vertauschungsoperation das deterministisch vorgegebene andere Datenelement durch den Iterationsindex der Vertauschungsoperation deterministisch vorgegeben.
-
Zum Beispiel ist für eine Vertauschungsoperation das deterministisch vorgegebene andere Datenelement das Datenelement, das gemäß einer Indizierung der Datenelemente einen Index hat, der dem Iterationsindex der Vertauschungsoperation entspricht.
-
Das in 1 dargestellte Verfahren wird beispielsweise von ein Permutiervorrichtung wie in 2 dargestellt durchgeführt.
-
2 zeigt eine Permutiervorrichtung 200.
-
Die Permutiervorrichtung 200 weist einen Eingang 201 auf, der eingerichtet ist, eine Folge von Datenelementen zu empfangen.
-
Die Permutiervorrichtung 200 weist ferner eine Verarbeitungseinrichtung 202 auf, die eingerichtet ist, eine Mehrzahl von Vertauschungsoperationen durchzuführen, wobei jede Vertauschungsoperation zufälliges Auswählen eines Datenelements aus den Datenelementen der Folge, Vertauschen des Datenelements mit einem anderen Datenelement an einer deterministisch vorgegebenen Position der Folge von Datenelementen und Anwenden einer vorgegebenen Permutation auf die deterministisch vorgegebene Position oder auf die Folge von Datenelementen aufweist.
-
Die Verarbeitungseinrichtung 202 weist zum Auswählen und Vertauschen beispielsweise eine Auswahleinrichtung und eine Verstauscheinrichtung (z. B. in Form eines Schieberegisters) auf.
-
Die Komponenten der Permutiervorrichtung können durch ein oder mehrere Schaltkreise realisiert sein. In einer Ausführungsform ist ein ”Schaltkreis” als jegliche Einheit zu verstehen, die eine Logik implementiert, und die sowohl Hardware, Software, Firmware oder eine Kombination daraus sein kann. Somit kann ein ”Schaltkreis” in einer Ausführungsform ein hart-verdrahteter Logik-Schaltkreis oder ein programmierbarer Logik-Schaltkreis sein, wie beispielsweise ein programmierbarer Prozessor, z. B. ein Mikroprozessor. Unter einem ”Schaltkreis” kann auch ein Prozessor zu verstehen sein, der Software ausführt, z. B. jegliche Art von Computer-Programm. Unter einem ”Schaltkreis” kann in einer Ausführungsform jegliche Art der Implementierung der im Weiteren beschriebenen Funktionen zu verstehen sein.
-
Mit der oben für die Algorithmen 1 und 2 verwendeten Notation werden gemäß einem Ausführungsbeispiel beispielsweise Datenelemente gemäß dem folgenden Algorithmus vertauscht:
- Algorithmus 3:
1) Für i ← 1 bis
2) wähle zufällig Index j ∊ {1, ..., n}
3) vertausche die Werte ai und aj der Folge
4) rotiere die resultierende Folge (a1, ..., an) zyklisch um eine Stelle nach links
-
Der zyklische Vertauschungsschritt in 4) von Algorithmus 3 ist für die prinzipielle Konvergenz des Verfahrens nicht notwendig. Der Algorithmus mit Vertauschungsschritt erfordert aber eine deutlich geringere Anzahl l an Iterationen der Hauptschleife, um eine Permutation mit einer maximalen gegebenen Abweichung von der Gleichverteilung zu approximieren. Außerdem benötigt Algorithmus 3 bei jedem Durchlauf nur noch einen zufällig gewählten Index j ∊ {1, ..., n}. Dadurch wird auch die Anzahl der zur Approximation einer Permutation benötigten Zufallsbits (beispielsweise gegenüber Algorithmus 2) wesentlich reduziert.
-
Bei der Analyse von Algorithmus 3 ergibt sich die zusätzliche Schwierigkeit, dass die Übergangsmatrix M des Markov-Automaten für eine Iteration der Hauptschleife durch die Rotation aller Elemente des Zustandsvektors in Schritt 4) nicht mehr symmetrisch ist, wie sie es bei Algorithmus 2 war. Daher kann nicht mehr davon ausgegangen werden, dass die Matrix w reelle Eigenwerte besitzt, was eine wesentliche Voraussetzung für das für Algorithmus 2 verwendete Analyseverfahrens ist.
-
Im Folgenden wird deshalb zunächst eine Variante von Algorithmus 3 betrachtet, bei der die Rotation in Schritt 4) nicht ausgeführt wird. Sei M' die Übergangsmatrix des zugehörigen Markov-Automaten für eine Iteration der Hauptschleife. Es gilt, dass M' wieder symmetrisch ist. Im Gegensatz zu Algorithmus 2 gilt für die Variante von Algorithmus 3, dass d = n und δ ≤ 3n/2 – 1 ist, weil im schlechtesten Fall die Zielkonfiguration des Pfades nur aus Transpositionen besteht und jeweils drei Iterationen der Hauptschleife notwendig sind, um die Elemente einer Transposition an die richtige Stelle zu tauschen. Es folgt, dass auch für die Variante von Algorithmus 3 das Verfahren exponentiell in l gegen die Gleichverteilung konvergiert.
-
Sei nun M = P·M', wobei P die Permutationsmatrix für die Rotation aller Elemente des Zustandsvektors in Schritt 4) ist. Dann gilt weiterhin: ∥Mπ – u∥ = ∥PM'π – u∥ = ∥P(M'π – u)∥ = ∥M'π – u∥
-
Dabei wurde benutzt, dass P Permutationsmatrix mit Pu = u ist. Die Konvergenz von Algorithmus 3 kann nun mit den bereits beschriebenen Techniken analog bewiesen werden. Insgesamt ergibt sich auf diese Weise, dass mindestens l ≈ 2n!(3n2 – 2n)ln(l/∊) Iterationen der Hauptschleife nötig sind, um eine maximale Abweichung von höchstens ε der berechneten Wahrscheinlichkeitsverteilung über der Menge der Permutationen aus Sn von der Gleichverteilung zu erzielen.
-
Bei der hier durchgeführten Analyse von Algorithmus 3 wird aber der Einfluss der Permutation P auf die Konvergenz überhaupt nicht berücksichtigt. Die resultierenden Werte für die Anzahl l der notwendigen Iterationen der Hauptschleife, um eine maximale Abweichung ε von der Gleichverteilung zu garantieren, sind daher ähnlich mit Vorsicht zu behandeln, wie in der vorherigen Analyse von Algorithmus 2.
-
Bisher wurde bei der Beschreibung der Approximationsalgorithmen davon ausgegangen, dass unter Verwendung unabhängiger und gleichverteilter Zufallsbits ein zufälliger Index zum Tauschen von Elementen der repräsentierten Permutation generiert werden kann. Ein solcher Index kann typischerweise nur dann mit Gleichverteilung berechnet werden, wenn die Anzahl n der zu permutierenden Elemente eine Zweierpotenz ist. Im Folgenden werden einfache Varianten der beschriebenen Approximationsverfahren betrachtet, welche für beliebiges n geeignet sind.
-
Es folgt aus der obigen Analyse der Konvergenzbedingungen der Permutationsverfahren 2 und 3, dass die zugehörigen Markov Automaten auch dann gegen eine Gleichverteilung der Zustandsmenge streben, wenn die Kanten für den Random-Walk auf der Zustandsmenge nicht gleichverteilt gewählt werden. In der obigen Analyse wurde bereits ausgenutzt, dass die Beweise auch dann gültig bleiben, wenn die Übergangsrelationen der Automaten durch einen Multigraphen beschreibbar sind. Die verschiedenen Werte für Übergangswahrscheinlichkeiten in Algorithmus 2 wurden bereits auf diese Weise durch Multigraphen repräsentiert. Mit einem solchen Multigraphen können aber umgekehrt beliebige rationale Übergangswahrscheinlichkeiten eines Markov-Automaten kodiert werden. Wenn alle rationalen Übergangswahrscheinlichkeiten auf einen gemeinsamen Nenner transformiert werden, entspricht die Anzahl der Kanten des Graphen zwischen zwei Zuständen dem jeweiligen Zähler der Übergangswahrscheinlichkeit. Auf diese Weise ergeben sich vielfältige Möglichkeiten, um die beschriebenen Permutationsverfahren für beliebige Werte n zu verallgemeinern.
-
Sei u eine ganze Zahl mit 2u ≥ n, dann kann eine Variante von Algorithmus 3 beispielsweise folgendermaßen implementiert werden:
- Algorithmus 4:
1) Für i ← 1 bis l
2) erzeuge zufällige u-Bit Zahl r
3) berechne j ← (r mod n) + 1
4) vertausche die Werte a1 und aj der Folge
5) rotiere die resultierende Folge (a1, ..., an) zyklisch um eine Stelle nach links
-
In 3) von Algorithmus 4 ist jede Abbildung der Zufallszahl r ∊ {0, 1}u nach {1, ..., n} geeignet, um die Konvergenz des Verfahrens sicherzustellen. Der Algorithmus konvergiert besser, wenn diese Abbildung surjektiv ist und alle Elemente aus {1, ..., n} möglichst gleichverteilt als Bilder annimmt.
-
Wenn u die kleinste Zahl mit 2u > n ist, kann die Berechnung j ← (r mod n) + 1 in Hardware mittels einer Subtraktion und Multiplexern, die das Subtraktionsergebnis auswählen, falls kein Unterlauf aufgetreten ist, und r sonst, realisiert werden.
-
Auch wenn das Approximationsverfahren weiterhin exponentiell in l gegen die Gleichverteilung auf Sn konvergiert, haben die Änderungen gegenüber Algorithmus 3 Einfluss auf die Konvergenzgeschwindigkeit. Der Worst-Case tritt ein, wenn n = 2u-1 + 1 gilt. In diesem Fall wird der Beitrag der Adjazenzmatrix, der in (4) der Analyse zur Abschätzung der Summe berücksichtigt werden kann, nahezu halbiert. In Folge verdoppelt sich die Anzahl l der notwendigen Iterationen.
-
Es ist nicht offensichtlich, ob ähnlich einfache Konstruktionen zur Approximation von Permutationen unter Verwendung von Feistel-Chiffren oder Substitutions-Permutations-Netzwerken für den Fall, dass n keine Zweierpotenz ist, existieren.
-
In einem weiteren Ausführungsbeispiel werden die Transpositionen nur auf eine Teilmenge der Elemente angewendet. Sei dazu u eine ganze Zahl mit 1 < 2u < n:
- Algorithmus 5:
1) Für i ← 1 bis l
2) erzeuge zufällige u-Bit Zahl r
4) vertausche die Werte a1 und ar der Folge
5) rotiere die resultierende Folge (a1, ..., an) zyklisch um eine Stelle nach rechts
-
Am Beispiel eines VHDL-Fragments zur Berechnung einer zufälligen Permutation mit 19 Elementen soll demonstriert werden, dass sich Algorithmus 5 einfach und kompakt in Hardware realisieren lässt:
-
Um eine funktionsfähige Schaltung zu erhalten, wird der VHDL-Code um eine Implementierung eines Zufallszahlengenerators zur Berechnung des Signals mg_data ergänzt. Nach 64 Iterationen der Hauptschleife beträgt die komponentenweise Abweichung der Wahrscheinlichkeiten von der Gleichverteilung weniger als 0,001.
-
In weiteren Ausführungsbeispielen kann die deterministische zyklische Vertauschung nur auf eine Teilmenge der Folgenelemente angewendet werden oder aus mehreren zyklischen Permutationen bestehen.
-
Bei einer praktischen Implementierung des erfindungsgemäßen Verfahrens in Hardware kann der zyklische Vertauschungsschritt in den Algorithmen 3 und 4 beispielsweise als Schieberegisteroperation realisiert werden. Dann kann die Vertauschung in einen Takt ausgeführt werden. In Software ist der zyklische Vertauschungsschritt aufwendig, weil dazu alle Elemente der Darstellung der aktuell berechneten Permutation umkopiert werden müssen. Im Allgemeinen sind dazu viele Speicherzugriffe auf die dargestellte Permutation notwendig. Alternativ ist es möglich, den in diesen Algorithmen fest gewählten Index der jeweils ausgeführten Transpositionen rotieren zu lassen und auf die explizite zyklische Vertauschung aller Elemente zu verzichten. Ein solcher Algorithmus könnte beispielweise folgendermaßen arbeiten:
- Algorithmus 6:
1) Für i ← 1 bis l
2) wähle zufällig Index j ∊ {1, ..., n}
3) vertausche die Werte ai und aj der Folge
-
Am Beispiel eines VHDL-Fragments zur Berechnung einer zufälligen Permutation mit 16 Elementen soll demonstriert werden, dass sich Algorithmus 6 einfach und kompakt in Hardware realisieren lässt:
-
Um eine funktionsfähige Schaltung zu erhalten, wird der VHDL-Code um eine Implementierung eines Zufallszahlengenerators zur Berechnung des Signals mg_data ergänzt werden. Nach 31 Iterationen der Hauptschleife beträgt die komponentenweise Abweichung der Wahrscheinlichkeiten von der Gleichverteilung weniger als 0,001.
-
Da es zur Abwehr einer Differential Power Analyse (DPA) erster Ordnung ausreichend ist, wenn ein festes Urbild der Permutationsabbildung gleichmäßig auf alle Werte 1, ..., n abgebildet wird, werden im Folgenden die Wahrscheinlichkeiten hi,j, dass die durch einen Approximationsalgorithmus berechnete Permutation lokal i ↦ j abbildet, für alle Paare 1 ≤ i, j ≤ n bestimmt.
-
Die obige Analyse der Konvergenz der Algorithmen hat eigentlich das stärkere Resultat ergeben, dass die berechnete Permutation als Abbildung gegen die Gleichverteilung konvergiert. Wir betrachten nun stattdessen die Verteilung der Werte, auf welche ein bestimmter Index der berechneten Permutation abgebildet wird. Daher ergeben sich kleinere Werte für l. Soll Resistenz gegen DPA Angriffe höherer Ordnung erreicht werden, muss entsprechend die Verteilung der Werte mehrerer Indizes simultan betrachtet werden.
-
Für einen gegebenen Approximationsalgorithmus wird mit h (l) / i,j die Wahrscheinlichkeit bezeichnet, dass die durch den Algorithmus nach l Iterationen berechnete Permutation die Position i auf j abbildet.
-
Dabei wird der Algorithmus o. B. d. A. mit der Identität als Anfangskonfiguration gestartet. Dies liefert die initialen Wahrscheinlichkeiten h (0) / i,j = δij
-
Rekursiv lassen sich jetzt die folgenden Formeln ableiten: Für Algorithmus 2:
-
Diese Formel ergibt sich wie folgt:
wobei p
k,j die Wahrscheinlichkeit ist, dass eine Transposition ausgewählt wird, die das Element k auf das Element j abbildet. Es gilt
-
Somit ergibt sich
-
-
Die Rekursionsformel für die Variante von Algorithmus 3 ohne den Rotationsschritt lautet:
-
Die Wahrscheinlichkeit des ersten Falls, dass das Element i im letzten Schritt auf der Position 1 landet, ist die Wahrscheinlichkeit, dass die zuletzt ausgeführte Transposition (1, k) ist und dass nach den vorherigen Iterationen k die Position des Elements i ist. Der zweite Fall setzt sich aus zwei Fällen zusammen: Entweder liegt nach l Schritten das Element i bereits auf der Position j ≠ 1 und die zuletzt ausgeführte Transposition lässt die Position j unberührt. Hier ist die Wahrscheinlichkeit, dass die Transposition die Position j unberührt lässt, gleich 1 – 1/n. Oder das Element i liegt gerade auf Position 1 und der letzte Schritt bildet die Position 1 nach j ab. Dafür ist die Wahrscheinlichkeit 1/n.
-
Die Rekursionsformel für Algorithmus 3 (mit Rotation) folgt aus der letzten Formel durch einfache Indexverschiebung:
wobei für j = 1 die Notation ”j – 1” nicht den Wert 0 sondern den Wert n bezeichnet.
-
Die nachfolgende Tabelle listet für die Verfahren nach Algorithmus 2 und Algorithmus 3 und für die Werte n = 12 und n = 16 die Anzahl l der Iterationen der Hauptschleife auf, die notwendig sind, damit die Abweichung aller Wahrscheinlichkeiten h
i,j höchstens ε = 1/1000 von der Gleichverteilung beträgt:
| Algorithmus 2 | Algorithmen 3, 4 |
n = 12 (ohne modulo) | 38 | 24 |
n = 12 (mit modulo) | 51 | 33 |
n = 16 | 52 | 31 |
-
Dabei kann die Konvergenz der Rekursionsformeln für die Wahrscheinlichkeiten unmittelbar aus den Resultaten der obigen Konvergenzanalyse gefolgert werden.
-
Obwohl die Erfindung vor allem unter Bezugnahme auf bestimmte Ausführungsformen gezeigt und beschrieben wurde, sollte es von denjenigen, die mit dem Fachgebiet vertraut sind, verstanden werden, dass zahlreiche Änderungen bezüglich Ausgestaltung und Details daran vorgenommen werden können, ohne vom Wesen und Bereich der Erfindung, wie er durch die nachfolgenden Ansprüche definiert wird, abzuweichen. Der Bereich der Erfindung wird daher durch die angefügten Ansprüche bestimmt, und es ist beabsichtigt, dass sämtliche Änderungen, welche unter den Wortsinn oder den Äquivalenzbereich der Ansprüche fallen, umfasst werden.