DE102014101936A1 - Verfahren zum Permutieren von Datenelementen und Permutiervorrichtung - Google Patents

Verfahren zum Permutieren von Datenelementen und Permutiervorrichtung Download PDF

Info

Publication number
DE102014101936A1
DE102014101936A1 DE102014101936.9A DE102014101936A DE102014101936A1 DE 102014101936 A1 DE102014101936 A1 DE 102014101936A1 DE 102014101936 A DE102014101936 A DE 102014101936A DE 102014101936 A1 DE102014101936 A1 DE 102014101936A1
Authority
DE
Germany
Prior art keywords
sequence
data
data elements
permutation
elements
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102014101936.9A
Other languages
English (en)
Inventor
Wieland Fischer
Bernd Meyer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE102014101936.9A priority Critical patent/DE102014101936A1/de
Priority to US14/623,529 priority patent/US10992466B2/en
Publication of DE102014101936A1 publication Critical patent/DE102014101936A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Complex Calculations (AREA)

Abstract

Gemäß einem Ausführungsbeispiel wird ein Verfahren zum Permutieren von Datenelementen beschrieben aufweisend Empfangen einer Folge von Datenelementen und Durchführen einer Mehrzahl von Vertauschungsoperationen, jeweils 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.

Description

  • 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 Sn, dann ist π – u orthogonal zu u, denn es gilt
    Figure DE102014101936A1_0002
  • Für eine Wahrscheinlichkeitsverteilung π über Sn gibt es daher einen Vektor π mit π = u + π und π ⊥ u. Ferner folgt aus π – u ⊥ u, dass ∥π∥ < ∥π∥ ≤ 1 gilt:
    Figure DE102014101936A1_0003
    Sei {bi} eine orthogonale Basis aus Eigenvektoren zu den Eigenwerten λi und sei
    Figure DE102014101936A1_0004
  • 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
    Figure DE102014101936A1_0005
  • 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 ≤ ε.
  • Es gilt:
    Figure DE102014101936A1_0006
  • 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
    Figure DE102014101936A1_0007
    gilt.
  • Aus der Orthogonalität von π und u folgt
    Figure DE102014101936A1_0008
  • 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 z0, z1, ...,zt ∊ V der Länge t ≤ δ in G, welcher i = z0 und j = zt verbindet. Damit gilt
    Figure DE102014101936A1_0009
  • 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
    Figure DE102014101936A1_0010
    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
    Figure DE102014101936A1_0011
  • 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:
    Figure DE102014101936A1_0012
    Figure DE102014101936A1_0013
    Figure DE102014101936A1_0014
  • 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:
    Figure DE102014101936A1_0015
    Figure DE102014101936A1_0016
    Figure DE102014101936A1_0017
  • 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:
    Figure DE102014101936A1_0018
  • Diese Formel ergibt sich wie folgt:
    Figure DE102014101936A1_0019
    wobei pk,j die Wahrscheinlichkeit ist, dass eine Transposition ausgewählt wird, die das Element k auf das Element j abbildet. Es gilt
    Figure DE102014101936A1_0020
  • Somit ergibt sich
  • Figure DE102014101936A1_0021
  • Die Rekursionsformel für die Variante von Algorithmus 3 ohne den Rotationsschritt lautet:
    Figure DE102014101936A1_0022
  • 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:
    Figure DE102014101936A1_0023
    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 hi,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.

Claims (15)

  1. Verfahren zum Permutieren von Datenelementen aufweisend: Empfangen einer Folge von Datenelementen; und Durchführen einer Mehrzahl von Vertauschungsoperationen, wobei jede Vertauschungsoperation aufweist: 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; Anwenden einer vorgegebenen Permutation auf die deterministisch vorgegebene Position oder auf die Folge von Datenelementen.
  2. Verfahren gemäß Anspruch 1, wobei die vorgegebene Permutation eine zyklische Permutation ist.
  3. Verfahren gemäß Anspruch 1, wobei die vorgegebene Permutation eine zyklische Rotation ist.
  4. Verfahren gemäß einem der Ansprüche 1 bis 3, ferner aufweisend Empfangen einer Zufallszahl und zufälliges Auswählen des Datenelements aus allen Datenelementen der Folge basierend auf der Zufallszahl.
  5. Verfahren gemäß Anspruch 4, aufweisend Empfangen der Zufallszahl von einem Zufallszahlengenerator.
  6. Verfahren gemäß Anspruch 4 oder 5, wobei das Datenelement ausgewählt wird 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.
  7. Verfahren gemäß einem der Ansprüche 1 bis 5, wobei das Datenelement aus einer Teilmenge der Datenelemente der Folge ausgewählt wird.
  8. Verfahren gemäß Anspruch 7, wobei die Teilmenge eine Anzahl von Datenelementen enthält, die gleich einer Potenz von zwei ist.
  9. Verfahren gemäß Anspruch 8, wobei die Anzahl gleich der größten Potenz von zwei ist, die kleiner oder gleich der Anzahl von Datenelementen der Folge ist.
  10. Verfahren gemäß Anspruch 1, wobei die vorgegebene Permutation auf die Folge von Datenelementen angewendet wird und die deterministisch vorgegebene Position eine konstante Position ist.
  11. Verfahren gemäß einem der Ansprüche 1 bis 10, aufweisend Speichern der Folge von Datenelementen in einem Schieberegister und zyklisches Rotieren der Folge von Datenelementen mittels des Schieberegisters.
  12. Verfahren gemäß einem der Ansprüche 1 bis 11, wobei jeder Vertauschungsoperation der Mehrzahl von Vertauschungsoperationen ein eindeutiger Iterationsindex zugeordnet ist.
  13. Verfahren gemäß Anspruch 12, wobei für eine Vertauschungsoperation das deterministisch vorgegebene andere Datenelement durch den Iterationsindex der Vertauschungsoperation deterministisch vorgegeben ist.
  14. Verfahren gemäß Anspruch 13, wobei für eine Vertauschungsoperation das deterministisch vorgegebene andere Datenelement das Datenelement ist, das gemäß einer Indizierung der Datenelemente einen Index hat, der dem Iterationsindex der Vertauschungsoperation entspricht.
  15. Permutiervorrichtung aufweisend: einen Eingang die eingerichtet ist, eine Folge von Datenelementen zu empfangen; eine Verarbeitungseinrichtung, die eingerichtet ist, eine Mehrzahl von Vertauschungsoperationen durchzuführen, wobei jede Vertauschungsoperation aufweist: Zufälliges Auswählen eines Datenelements aus den Datenelementen der Folge; und Vertauschen des Datenelements mit einem anderen Datenelement an einer deterministisch vorgegebenen Position der Folge von Datenelementen; Anwenden einer vorgegebenen Permutation auf die deterministisch vorgegebene Position oder auf die Folge von Datenelementen.
DE102014101936.9A 2014-02-17 2014-02-17 Verfahren zum Permutieren von Datenelementen und Permutiervorrichtung Pending DE102014101936A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102014101936.9A DE102014101936A1 (de) 2014-02-17 2014-02-17 Verfahren zum Permutieren von Datenelementen und Permutiervorrichtung
US14/623,529 US10992466B2 (en) 2014-02-17 2015-02-17 Method for permuting data elements and permuting apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102014101936.9A DE102014101936A1 (de) 2014-02-17 2014-02-17 Verfahren zum Permutieren von Datenelementen und Permutiervorrichtung

Publications (1)

Publication Number Publication Date
DE102014101936A1 true DE102014101936A1 (de) 2015-08-20

Family

ID=53758726

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014101936.9A Pending DE102014101936A1 (de) 2014-02-17 2014-02-17 Verfahren zum Permutieren von Datenelementen und Permutiervorrichtung

Country Status (2)

Country Link
US (1) US10992466B2 (de)
DE (1) DE102014101936A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3220306B1 (de) * 2016-02-22 2018-11-07 Eshard Verfahren zur prüfung des widerstands einer schaltung bei einer seitenkanalanalyse
US11017125B2 (en) * 2016-12-13 2021-05-25 University Of Florida Research Foundation, Incorporated Uniquified FPGA virtualization approach to hardware security
KR102510077B1 (ko) * 2018-04-24 2023-03-14 삼성에스디에스 주식회사 부채널 공격에 안전한 연산 장치 및 방법
US11386227B1 (en) * 2021-02-24 2022-07-12 CyberAdjust, LLC Protection of databases, data transmissions and files without the use of encryption

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60113128T2 (de) * 2001-11-16 2006-03-02 Matsushita Electric Industrial Co., Ltd., Kadoma Hybrides ARQ Verfahren zur Datenpaketübertragung
FR2842052B1 (fr) * 2002-07-05 2004-09-24 France Telecom Procede et dispositifs cryptographiques permettant d'alleger les calculs au cours de transactions
US7085791B2 (en) * 2003-02-14 2006-08-01 Lucent Technologies Inc. Method and apparatus for generating a pseudo random number
US20050021474A1 (en) * 2003-07-24 2005-01-27 Geist Bruce K. System for authenticating self-authenticating documents
US7667871B1 (en) * 2004-01-30 2010-02-23 Roskind James A Visual cryptography and voting technology using a pair of enhanced contrast glyphs in overlay
DE102007018299B3 (de) * 2007-04-18 2008-10-23 Siemens Ag Verfahren zur Verteilung von Ressourcen auf Netzknoten in einem dezentralen Datennetz
US8311222B2 (en) * 2008-08-26 2012-11-13 GlobalFoundries, Inc. Hardware based multi-dimensional encryption
US8654970B2 (en) * 2009-03-31 2014-02-18 Oracle America, Inc. Apparatus and method for implementing instruction support for the data encryption standard (DES) algorithm
WO2011108004A1 (en) * 2010-03-02 2011-09-09 Eko India Financial Services Pvt. Ltd. Authentication method and device

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Englischsprachige Wikipedia zum Begriff Fisher-Yates shuffle. 23.1.2014. URL: http://en.wikipedia.org/w/index.php?title=Fisher%E2%80%93Yates_shuffle&oldid=592088720 [abgerufen am 26.6.2014] *
Englischsprachige Wikipedia zum Begriff Fisher–Yates shuffle. 23.1.2014. URL: http://en.wikipedia.org/w/index.php?title=Fisher%E2%80%93Yates_shuffle&oldid=592088720 [abgerufen am 26.6.2014]
KONG, Jingfei [et al]: Hardware-software integrated approaches to defend against software cache-based side channel attacks. In: High Performance Computer Architecture, 2009. HPCA 2009. IEEE 15th International Symposium on. IEEE, 2009. S. 393-404 *
WANG, Zhenghong; LEE, Ruby B: New cache designs for thwarting software cache-based side channel attacks. In: ACM SIGARCH Computer Architecture News. ACM, 2007. S. 494-505 *

Also Published As

Publication number Publication date
US20150236853A1 (en) 2015-08-20
US10992466B2 (en) 2021-04-27

Similar Documents

Publication Publication Date Title
DE102014101936A1 (de) Verfahren zum Permutieren von Datenelementen und Permutiervorrichtung
DE112007001319T5 (de) Multiplizieren zweier Zahlen
WO2013060467A1 (de) Effiziente primzahlprüfung
DE112019001438T5 (de) Kryptographisches asic mit kombinierten funktionen
DE602004006628T2 (de) Verfahren zur gesicherten ausführung eines rsa kryptographischen algorithmus, sowie diesbezüglicher baustein.
DE102017002153A1 (de) Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung
DE102018212297B4 (de) Verwendung von programmierbaren Switching-Chips als künstliche neuronale Netzwerk Module
DE102016102590A1 (de) Datenverarbeitungseinrichtungen und verfahren zum rekonstruieren eines puf-werts
WO2001088693A2 (de) Kryptographisches verfahren und kryptographische vorrichtung
DE102009007246A1 (de) Pseudozufallszahlengenerator und Verfahren zum Erzeugen einer Pseudozufallszahlenbitsequenz
DE112018002723B4 (de) System, verfahren und vorrichtung zur verschleierung von vorrichtungsoperationen
EP1499954A2 (de) Berechnung eines ergebnisses einer modularen multiplikation
WO2005024606A1 (de) Übergang zwischen maskierten repräsentationen eines wertes bei kryptographischen berechnungen
DE102018116572A1 (de) Schutz gegen seitenkanalangriffe
DE102010051853A1 (de) Verfahren zur Langzahldivision
DE10061315A1 (de) Verfahren und Vorrichtung zum Erzeugen einer Pseudozufallsfolge
DE102011052230B4 (de) Verfahren und Apparat zur Erzeugung von Zufalls-Wartezuständen
DE102015102363A1 (de) Anordnung und verfahren zum überprüfen der entropie einer zufallszahlenfolge
DE112020006160T5 (de) Kryptografische verschleierungsparameter, die bei der elliptische-kurven-kryptografie verwendet werden, und zugehörige systeme und vorrichtungen
DE102020134618A1 (de) Sicherheits-controller und verfahren zur verarbeitung von datenelementen eines datenfeldes
WO2002019065A2 (de) Verfahren und vorrichtung zum durchführen einer modularen exponentiation in einem kryptographischen prozessor
EP1504337B1 (de) Berechnung des modularen inversen eines wertes
DE102014216392A1 (de) Symmetrisches Iteriertes Blockchiffrierverfahren und entsprechende Vorrichtung
EP3504616B1 (de) Modul und verfahren zur abgesicherten berechnung von mathematischen operationen
DE102018006313A1 (de) Verfahren mit Safe-Error-Abwehrmaßnahme

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication