-
Ausführungsbeispiele betreffen allgemein Datenverarbeitungseinrichtungen und Verfahren zum kryptographischen Verarbeiten von Daten.
-
Im Rahmen von sicherheitsrelevanten Anwendungen führen Computerchips, wie beispielsweise auf einer Chipkarte oder in einer Steuervorrichtung in einem Fahrzeug typischerweise kryptographische Operationen zur Verschlüsselung, Entschlüsselung und Authentifizierung etc. durch. Eine Klasse von kryptographischen Verfahren enthält als Grundkomponenten sogenannte S-Boxen. Eine S-Box bewirkt eine Substitutionsoperation, bei der eine n-stellige Binärzahl durch eine m-stellige Binärzahl ersetzt wird. Sie werden z.B. in Blockverschlüsselungsverfahren, typischerweise iterative in mehreren sogenannten Runden, eingesetzt, um die Beziehung zwischen Klar- und Geheimtext zu verwischen. Beispiele von kryptographischen Verfahren, die S-Boxen einsetzen, sind der DES- (Data Encryption Standard) und der AES- (Advanced Encryption Standard). Effiziente Implementierungen von S-Boxen, die eine hohe Sicherheit gewährleisten, sind wünschenswert.
-
Der Wikipedia-Artikel über die Ringsummennormalform mit Bearbeitungsstand vom 16.10.2020
(https://de.wikipedia.org/w/index. php?itle=%20Ringsummennormalform&oldid=204615 246) offenbart, dass die Exklusiv-ODER und Konjunktion eine vollständige Basis der booleschen Funktionen bilden.
-
Die Veröffentlichung „Twofish: A 128-Bit Block Cipher" von Schneier, B. et al., 15.06.1998, beschreibt ein Block-Verschlüsselungsverfahren, bei dem mittels eines Schlüssels eine Variante des Verschlüsselungsverfahrens festgelegt werden kann.
-
Die Veröffentlichung„One Approach of Using Key-Dependent S-BOXes in AES" von Stoianov, N., in Multimedia Communications, Services and Security- 4th International Conference (MCSS 2011), Krakow, Poland, June 2-3, 2011, S. 317-323, beschreibt Schlüsselabhängige S-Boxen.
-
Gemäß einer Ausführungsform wird eine Datenverarbeitungseinrichtung bereitgestellt, aufweisend einen Dateneingang zum Empfangen eines kryptographisch zu verarbeitenden Datenblocks, und eine Verarbeitungsschaltung, die einen Steuereingang zum Empfangen eines Satzes von Steuerparameterbitwerten, abhängig von denen der Datenblock zu verarbeiten ist. Die Verarbeitungsschaltung ist eingerichtet, den Datenblock kryptographisch iterativ beginnend von der empfangenden Version des Datenblocks über mehrere verarbeitete Versionen des Datenblocks bis zu einer Ausgangsversion des Datenblocks in mehreren aufeinanderfolgenden Runden zu verarbeiten, wobei die Verarbeitungsschaltung mindestens eine S-Box implementiert und in jeder Runde Datenworte der Version des Datenblocks, die in der Runde zu verarbeiten ist, mittels der S-Box verarbeitet Die S-Box weist mehrere aufeinanderfolgende Schichten auf, wobei jede Schicht aufweist: ein Mehrheitsgatter mit mindestens zwei Eingängen, die jeweils invertierend oder nicht-invertierend sind, das mindestens ein Bit des von der S-Box zu verarbeitenden Datenworts und/oder mindestens ein Ausgabebit einer vorhergehenden Schicht der S-Box mit mindestens einem der Steuerparameterbitwerte kombiniert, wobei das Mehrheitsgatter eine festverdrahtete Hardware-Schaltung ist oder eine zur Implementierung eines Mehrheitsgatters konfigurierte rekonfigurierbare Hardware-Schaltung ist, und ein Exklusiv-ODER-Gatter (auch als XODER-Gatter bezeichnet) mit mindestens zwei Eingängen, die jeweils invertierend oder nicht-invertierend sind, das das Ausgabebit des Mehrheitsgatters der Schicht mit einem Bit des von der S-Box zu verarbeitenden Datenworts oder einem Ausgabebit einer vorhergehenden Schicht der S-Box kombiniert, wobei das Exklusiv-ODER-Gatter eine festverdrahtete Hardware-Schaltung ist oder eine zur Implementierung eines Exklusiv-ODER-Gatters konfigurierte rekonfigurierbare Hardware-Schaltung ist. Das durch die S-Box verarbeitete Datenwort resultiert aus Ausgabebits der Schichten.
-
Gemäß einer weiteren Ausführungsform wird ein Verfahren zum kryptographischen Verarbeiten von Daten entsprechend der oben beschriebenen Datenverarbeitungseinrichtung 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 Beispiel für eine Datenverarbeitungseinrichtung zur Durchführung kryptographischer Operationen.
- 2 zeigt schematisch die Funktionsweise des DES (Data Encryption Standard). 3 zeigt eine Illustration einer S-Box.
- 4 zeigte eine Illustration einer parametrisierten S-Box.
- 5 bis 13 zeigen Beispiele für 4-Bit-S-Boxen gemäß Ausführungsformen der Erfindung.
- 14 zeigt eine Datenverarbeitungseinrichtung gemäß einer Ausführungsform.
- 15 zeigt ein Ablaufidagramm, dass ein Verfahren zum kryptographischen Verarbeiten von Daten veranschaulicht.
-
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. Im Rahmen dieser Beschreibung werden die Begriffe „verbunden“, „angeschlossen“ sowie „gekoppelt“ verwendet zum Beschreiben sowohl einer direkten als auch einer indirekten Verbindung, eines direkten oder indirekten Anschlusses sowie einer direkten oder indirekten Kopplung.
-
1 zeigt ein Beispiel für eine Datenverarbeitungseinrichtung 100 mit einer CPU 101, einem RAM (Random Access Memory) 102, einem nichtflüchtigen Speicher 103 (NVM), einem Krypto-Modul 104, einem Analogmodul 106, einer Eingabe-/Ausgabeschnittstelle 107 und einem Hardware-Zufallszahlengenerator 112.
-
In diesem Beispiel hat die CPU 101 Zugriff auf mindestens ein Krypto-Modul 104 über einen gemeinsamen Bus 105, mit dem jedes Krypto-Modul 104 verbunden ist. Jedes Krypto-Modul 104 kann insbesondere einen oder mehrere Krypto-Kerne umfassen, um bestimmte kryptographische Operationen durchzuführen. Beispielhafte Kryptokerne sind:
- - ein DES-Kern 108,
- - ein AES-Kern 109,
- - ein SHA(Secure Hash Algorithm)-Kern 110, und
- - ein ECC(Error Checking and Correction)-Kern 111.
-
Die CPU 101, der Hardware-Zufallszahlengenerator 112, das NVM 103, das Kryptomodul 104, das RAM 102 und die Eingabe/Ausgabe-Schnittstelle 107 sind mit dem Bus 105 verbunden. Die Eingabe-Ausgabeschnittstelle 107 kann eine Verbindung 114 zu anderen Vorrichtungen ähnlich der Datenverarbeitungseinrichtung 100 haben.
-
Das Analogmodul 106 wird über einen elektrischen Kontakt und/oder über ein elektromagnetisches Feld mit elektrischer Energie versorgt. Diese Energie wird zugeführt, um die Datenverarbeitungseinrichtung 100 zu versorgen, und kann insbesondere ermöglichen, dass die Eingabe/Ausgabe-Schnittstelle über die Verbindung 114 Verbindungen zu anderen Vorrichtungen einleitet und/oder aufrechterhält.
-
Der Bus 105 selbst kann maskiert oder einfach sein. Anweisungen zum Ausführen der Verarbeitung und der Algorithmen, die im Folgenden beschrieben werden, können insbesondere in dem NVM 103 gespeichert und von der CPU 101 verarbeitet werden. Die verarbeiteten Daten können in dem NVM 103 oder in dem RAM 102 gespeichert werden. Zufallszahlen werden von dem Hardware-Zufallszahlengenerator 112 geliefert.
-
Die Verarbeitung und die Algorithmen, die im Folgenden beschrieben werden, können ausschließlich oder zumindest teilweise auf dem Kryptomodul 104 ausgeführt werden. Ein Kryptomodul 104 kann mit hardwarebasierten Sicherheitsmechanismen ausgestattet werden. Solche hardwarebasierten Sicherheitsmechanismen können Schaltungen sein, die Gegenmaßnahmen gegen Seitenkanal-Leistungsanalyse oder Fehlerinjektion implementieren (z. B. unter Verwendung eines Lasers). Solche Gegenmaßnahmen könnten durch Verwendung von Randomisierung, redundanter Hardware oder redundanter Verarbeitung realisiert werden. Im Allgemeinen ist es das Ziel von Gegenmaßnahmen, die intern verarbeiteten Werte und Zwischenergebnisse vor einem Angreifer zu verbergen, der in der Lage ist, den physikalischen Effekt der Verarbeitung solcher Werte zu beobachten.
-
Die Komponenten der Datenverarbeitungseinrichtung 100 können beispielsweise auf einem einzigen Chip implementiert sein. Die Datenverarbeitungseinrichtung 100 kann eine Chipkarte (oder ein Chipkartenmodul) sein, die durch direkten elektrischen Kontakt oder durch ein elektromagnetisches Feld versorgt wird. Die Datenverarbeitungseinrichtung 100 kann eine feste Schaltung sein oder auf rekonfigurierbarer Hardware basieren (z. B. Field Programmable Gate Array, FPGA). Die Datenverarbeitungseinrichtung 100 kann mit einem Personal Computer, Mikrocontroller, FPGA oder einem Smartphone-System auf einem Chip (SoC) oder anderen Komponenten eines Smartphones verbunden sein. Die Datenverarbeitungseinrichtung 100 kann ein Chip sein, der als Trusted Platform Module (TPM) fungiert und kryptografische Funktionalität gemäß einer standardisierten Schnittstelle zu einem Computer, Smartphone, Internet der Dinge (IoT) Gerät oder Fahrzeug bereitstellt.
-
Für bestimmte kryptographische Verfahren kann das Kryptomodul 104 S-Boxen verwenden. Beispiele solcher kryptographischen Verfahren sind DES (Data Encryption Standard) und AES (Advanced Encryption Standard).
-
2 zeigt schematisch die Funktionsweise des DES. Zum Verschlüsseln von Daten werden diese zunächst in 64-Bit-Blöcke 200 eingeteilt, um sie blockweise zu verarbeiten. Die Blöcke 200 werden dann zunächst einer Permutation 202 unterzogen. Danach wird der permutierte 64-Bit-Datenblock in zwei 32-Bit-Datenblöcke 204 und 206 aufgeteilt. Diese 32-Bit-Blöcke 204 und 206 werden iterativ in 16 sogenannten Runden folgenden Operationen unterzogen. Zunächst wird der Inhalt des Datenblockes 206, der in 2 mit R bezeichnet ist, auf den Datenblock 204 der nächsten Runde abgebildet, der in 2 mit L bezeichnet ist. Diese Abbildung ist mit dem Pfeil 208 dargestellt. Um den neuen Inhalt des Datenblockes R 206 für die nächste Runde zu erhalten, wird der aktuelle Inhalt des Datenblocks 206 einer Expansions-Operation E 210 unterzogen, um aus dem 32-Bit-Datenblock nach einer vorbestimmten Ergänzungsregel, nach der bestimmte Bits verdoppelt werden, einen 48-Bit-Datenblock zu erhalten. Letztgenannter wird daraufhin durch eine XODER-Verknüpfung 212 mit einem 48-Bit-Rundenschlüssel verschlüsselt, der für jede Runde unterschiedlich ist, aber aus ein und demselben 56-Bit-Schlüssel 214 durch eine hier nicht näher erörterte Operation 216 abgeleitet wird.
-
Der verschlüsselte und expandierte 48-Bit-Datenblock wird in den eingangs erwähnten sogenannten S-Boxen S1, S8 wieder auf einen 32-Bit-Datenblock abgebildet. Hierzu bildet jede S-Box je sechs unterschiedliche der 48 Bits des verschlüsselten Datenblocks auf vier Bits ab, wobei die Abbildungsvorschriften der einzelnen S-Boxen zumeist durch Standards festgelegt sind. Nach dieser S-Box-Abbildung 2 wird der sich ergebende Wert wieder einer Permutation P 220 unterzogen und daraufhin der permutierte 32-Bit-Block mit dem 32-Bit-Datenblock L 204 der vorhergehenden Runde einer XODER-Verknüpfung 222 unterzogen. Der XODER-verknüpfte 32-Bit-Datenblock stellt den neuen 32-Bit-Datenblock R 206 für die nächste Runde dar. Diese durch 208, 210, 212, 218, 220 und 222 definierte Runde wird 16-mal durchgeführt. Nach den 16 Runden werden die sich ergebenden 32-Bit-Datenblöcke L und R (204, 206) wieder zu einem 64-Bit-Datenblock zusammengefasst und einer zu der Permutation 202 inversen Ausgangspermutation 224 unterzogen, wodurch der 64-Bit-Ausgangsdatenblock 226 in verschlüsselter Form erhalten wird.
-
Die S-Boxen stellen, allgemein ausgedrückt, eine beliebige, nicht unbedingt eindeutige Abbildung von einem n-Bit-Vektor auf einen m-Bit-Vektor dar. In den meisten kryptographischen Algorithmen sind die Abbildungen nichtlinear. Während im Beispiel von 2 S-Boxen eingesetzt werden, die einen 6-Bit-Vektor auf einen 4-Bit-Vektor abbilden, können gemäß verschiedenen Ausführungsbeispielen auch andere Werte für n und m verwendet werden. In den untenstehenden Beispielen werden 4-Bit-S-Boxen beschrieben, bei denen n = m = 4. Es können aber analog auch S-Boxen für andere Werte von n und m implementiert werden, je nachdem, für welches Kryptoverfahren und welche Datenblockgröße etc. sie eingesetzt werden.
-
3 zeigt eine Illustration einer S-Box 300.
-
Die S-Box 300 bewirkt eine Abbildung S von einem Datenwort X (bestehend aus mehreren Eingabebits) auf ein verarbeitetes Datenwort Y. Das Datenwort X wird auch als Eingabewort oder Eingabewert bezeichnet und das verarbeitete Datenwort Y wird auch als Ausgabewort oder Ausgabewert bezeichnet.
-
Gemäß verschiedenen Ausführungsformen wird eine parametrisierte S-Box bereitgestellt.
-
4 zeigte eine Illustration einer parametrisierten S-Box 400.
-
Die parametrisierte S-Box 400 bewirkt eine Abbildung S(.) von einem Datenwort X (bestehend aus mehreren Eingabebits) auf ein verarbeitetes Datenwort Y. Die Abbildung hängt jedoch weiter von einem Steuerwort t, d.h. einem Satz von Steuerparameterbitwerten, ab.
-
Die parametrisierte S-Box 400 ist dadurch so implementiert, dass eine Änderung des Steuerworts t in einer anderen Abbildung S(.,t) resultiert, d.h. die Abbildung S(.,t) von X auf Y hängt von t ab.
-
Die Verwendung von parametrisierten S-Boxen 400 in einem kryptographischen Verfahren, z.B. ein dem Krypto-Modul 104 für einen der Krypto-Kerne 108 bis 111, ermöglicht:
- • Produktdiversifikation: Das Steuerwort kann in einem Chip nur-lesbar abgelegt werden, z.B. mittels mehrerer TIE-Zellen (d.h. Zellen mit jeweils zwei Feldeffekttransistoren, die sich gegenseitig eingeschaltet halten). Damit kann ein Chip hergestellt werden, der (durch Wahl eines neuen Steuerworts) andere Kryptoverfahren als vorhergehende Chips durchführt, ohne dass ein neues Chipdesign oder eine neue Schaltungssynthese erforderlich ist.
- • Schutz gegen Reverse-Engineering: Das Steuerwort kann auf einem Chip durch ein Netzwerk von Camouflage-Zellen gegeben sein, um auf dem Chip eine von mehreren Varianten eines Kryptoverfahrens zu implementieren und die Kosten von Reverse-Engineering des Chips (bei dem die Variante herausgefunden werden muss) zu erhöhen.
- • Schutz gegen physikalische Angriffe: Das Steuerwort kann ein Chip-individueller Wert sein, der in einem nichtflüchtigen Speicher abgelegt; dies erschwert die Reproduzierbarkeit eines Angriffs auf anderen Chips.
-
Es sollte beachtet werden, dass die von einer S-Box bewirkte Abbildung S auch durch Hinzufügen einer linearen Schicht am Eingang und/oder am Ausgang der S-Box bewirkt werden kann, d.h. sodass
-
Typischerweise sind die linearen Schichten L1 und L2 entweder einfache Bit-Permutationen oder die Addition einer Konstante (z.B. festgelegt durch TIE-Zellen). Durch die linearen Schichten werden kryptgraphische Eigenschaften der S-Box (wie differenzielle Wahrscheinlichkeit, lineare Wahrscheinlichkeit und Grad) nicht verändert. Jedoch ist man bei der Verwendung von linearen Schichten L1 und L2 am Eingang und Ausgang hinsichtlich der Flexibilität der Parametrisierung der S-Box eingeschränkt und sie erfordert eine hohen Implementierungsaufwand.
-
Gemäß verschiedenen Ausführungsformen wird die von einer S-Box bewirkte Abbildung deshalb hingegen durch Modifikation der nichtlinearen Operation (d.h. P in der obigen Formel) geändert, d.h. P hängt vom Steuerwort ab. Die kryptographischen Eigenschaften der S-Box können dabei vom Steuerwort abhängen oder unabhängig vom Steuerwort sein.
-
Gemäß verschiedenen Ausführungsformen wird eine parametrisierte S-Box mittels Mehrheitsgattern implementiert, bezeichnet mit MAJ (für „Majorität“). Ein Mehrheitsgitter gibt den Bitwert aus, den die Mehrheit seiner Eingabebits hat.
-
Es sollte beachtet werden, dass gilt:
und
-
Ein Beispiel für eine durch ein 4-Bit-Steuerwort t= t
0...t
3 parametrisierte 4-Bit-S-Box (d.h. mit einem zu verarbeitenden 4-Bit-Datenwort (a, b, c, d)) ist gegeben durch
wobei XODER2 ein Exklusiv-ODER mit zwei Eingängen (jeweils 1 Bit) ist.
-
In diesem Beispiel resultieren alle 16 möglichen Steuerworte in einer kryptographisch starken S-Box.
-
Im Vergleich mit einer unparametrisierten 4-Bit-S-Box lässt sich die parametrisierte 4-Bit-S-Box mit verhältnismäßig geringe Implementierungskosten umsetzten (4 XODER2 + 4 MAJ vs. 4 XODER2 + 4 NAND).
-
Es gibt 16 Klassen von kryptographisch starken 4-Bit-S-Boxen, hier bezeichnet mit C0 bis C15, wobei alle S-Boxen innerhalb einer Klasse affin äquivalent sind aber S-Boxen unterschiedlicher Klassen nicht affin äquivalent sind (d.h. nicht durch lineare Schichten L
1 und L
2 am Eingang und/oder Ausgang auseinander erzeugt werden können). Die Klassen sind in der folgenden Tabelle angegeben, wobei für jede Klasse für jeden 4-Bit-Eingangswert (zwischen 0 und 15) angegeben ist, auf welchen 4-Bit-Ausgangswert er abgebildet wird.
Tabelle 1
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
C0 | 0 | 1 | 2 | 3 | 4 | 6 | 8 | 12 | 5 | 9 | 13 | 15 | 10 | 7 | 11 | 14 |
C1 | 0 | 1 | 2 | 3 | 4 | 6 | 8 | 12 | 5 | 9 | 11 | 13 | 14 | 10 | 7 | 15 |
C2 | 0 | 1 | 2 | 3 | 4 | 6 | 8 | 12 | 5 | 9 | 11 | 13 | 14 | 7 | 10 | 15 |
C3 | 0 | 1 | 2 | 3 | 4 | 6 | 8 | 11 | 5 | 12 | 13 | 7 | 15 | 9 | 14 | 10 |
C4 | 0 | 1 | 2 | 3 | 4 | 6 | 8 | 11 | 5 | 12 | 13 | 7 | 10 | 15 | 9 | 14 |
C5 | 0 | 1 | 2 | 3 | 4 | 6 | 8 | 11 | 5 | 12 | 13 | 7 | 9 | 15 | 10 | 14 |
C6 | 0 | 1 | 2 | 3 | 4 | 6 | 8 | 11 | 5 | 12 | 9 | 13 | 14 | 10 | 7 | 15 |
C7 | 0 | 1 | 2 | 3 | 4 | 6 | 8 | 11 | 5 | 12 | 9 | 13 | 14 | 7 | 10 | 15 |
C8 | 0 | 1 | 2 | 3 | 4 | 6 | 8 | 11 | 5 | 9 | 12 | 15 | 7 | 13 | 10 | 14 |
C9 | 0 | 1 | 2 | 3 | 4 | 6 | 8 | 11 | 5 | 9 | 12 | 14 | 13 | 10 | 7 | 15 |
C10 | 0 | 1 | 2 | 3 | 4 | 6 | 8 | 11 | 5 | 9 | 12 | 14 | 13 | 7 | 10 | 15 |
C11 | 0 | 1 | 2 | 3 | 4 | 6 | 8 | 10 | 5 | 11 | 12 | 15 | 14 | 13 | 9 | 7 |
C12 | 0 | 1 | 2 | 3 | 4 | 6 | 8 | 10 | 5 | 11 | 12 | 15 | 13 | 14 | 7 | 9 |
C13 | 0 | 1 | 2 | 3 | 4 | 6 | 8 | 10 | 5 | 11 | 12 | 15 | 7 | 14 | 9 | 13 |
C14 | 0 | 1 | 2 | 3 | 4 | 6 | 8 | 10 | 5 | 11 | 12 | 15 | 7 | 13 | 9 | 14 |
C15 | 0 | 1 | 2 | 3 | 4 | 6 | 8 | 10 | 5 | 11 | 12 | 15 | 7 | 9 | 13 | 14 |
-
5 bis 13 zeigen Beispiele 500 bis 1300 für 4-Bit-S-Boxen gemäß Ausführungsformen der Erfindung.
-
In 5 bis 13 sind die Bits des Datenworts mit A, B, C und D bezeichnet und werden durch mehrere Schichten mit jeweils einem Mehrheitsgatter und einem Exklusiv-ODER-Gatter verarbeitet, in der Darstellung von 5 bis 13 von oben nach unten.
-
Die Operation jeder Schicht wird angegeben durch „MAJ [Nummer des Ausgabebits] [Nummer des ersten Eingabebits] [Nummer des zweiten Eingabebits]“, wobei die Bits A, B, C, und D nummeriert sind als 0, 1, 2, 3. Die Schichten sind von Null beginnend für jede S-Box durchnummeriert und der i-ten Schicht wird ein Steuerbit Ti zugeführt, das das Mehrheitsgatter der Schicht mit dem „ersten Eingabebit“ und dem „zweiten Eingabebit“ kombiniert.
-
Im Beispiel von 5 bedeutet z.B. „MAJ 3 0 2“ für die oberste Schicht, dass das verarbeitete Bit 3 (also Bit D) sich ergibt als Exklusiv-ODER-Kombination von dem aktuellen Bit 3 mit der Ausgabe des Mehrheitsgatters, wobei das Mehrheitsgatter das Bit 0 (also A) und das Bit 2 (also C) als Eingaben empfängt und mit dem Steuerbit T0 (weil es die 0-te Schicht ist) kombiniert.
-
Es ist außerdem für jede S-Box angegeben, welcher Klasse oder welchen Klassen die für die verschiedenen Steuerworte implementierten S-Boxen gehören.
-
Eine parametrisierte S-Box kann auch maskiert werden, z.B. zum Schutz gegen Probing- und Seitenkanalangriffe, z.B. indem Exklusiv-ODER-Gatter mit mehr als zwei Eingängen verwendet werden, deren Ausgabe von ein oder mehr Maskierungsbits abhängen.
-
In dem obigen Beispiel einer 4-Bit-S-Box können z.B. zu dem Steuerbits t
0, t
1, t
2, t
3 noch weiter Steuerbits t
4, t
5, t
6, t
7 vorgesehen sein, die alle zusätzlich maskiert sein können. Die Verarbeitung ist dann beispielsweise gegeben durch:
wobei XODER3 ein Exklusiv-ODER mit drei Eingängen (jeweils 1 Bit) ist. Für diese 4-Bit-S-Box Y = S(X,t) gilt dass not(Y) = S(not(X),not(t)).
-
Auf diese Weise ist eine 1-Bit-Maskierung vorgesehen. Sie kann ohne zusätzliche Hardwarekosten im Vergleich zu einer 1-Bit-Maskierung einer unparametrisierten S-Box implementiert werden.
-
In diesem Beispiel resultieren alle 256 Möglichkeiten für t0 bis t7 in einer kryptographisch starken S-Box.
-
Zusammenfassend wird gemäß verschiedenen Ausführungsformen eine Datenverarbeitungseinrichtung bereitgestellt, wie sie in 14 dargestellt ist.
-
14 zeigt eine Datenverarbeitungseinrichtung 1400 gemäß einer Ausführungsform.
-
Die Datenverarbeitungseinrichtung 1400 weist einen Dateneingang 1401 zum Empfangen eines kryptographisch zu verarbeitenden Datenblocks auf.
-
Die Datenverarbeitungseinrichtung 1400 weist ferner eine Verarbeitungsschaltung 1402 auf, die einen Steuereingang zum Empfangen eines Satzes von Steuerparameterbitwerten, abhängig von denen der Datenblock zu verarbeiten ist, aufweist.
-
Die Verarbeitungsschaltung 1402 ist eingerichtet, den Datenblock kryptographisch iterativ beginnend von der empfangenden Version des Datenblocks über mehrere verarbeitete Versionen des Datenblocks bis zu einer Ausgangsversion des Datenblocks in mehreren aufeinanderfolgenden Runden zu verarbeiten, wobei die Verarbeitungsschaltung mindestens eine S-Box 1404 implementiert und in jeder Runde Datenworte der Version des Datenblocks, die in der Runde zu verarbeiten ist, mittels der S-Box 1404 verarbeitet.
-
Die S-Box 1404 weist mehrere aufeinanderfolgende Schichten 1405 auf. Jede Schicht weist ein Mehrheitsgatter mit mindestens zwei Eingängen auf, die jeweils invertierend oder nicht-invertierend sind, das mindestens ein Bit des von der S-Box 1404 zu verarbeitenden Datenworts und/oder mindestens ein Ausgabebit einer vorhergehenden Schicht der S-Box 1404 mit mindestens einem der Steuerparameterbitwerte kombiniert. Außerdem weist jede Schicht 1405 ein Exklusiv-ODER-Gatter mit mindestens zwei Eingängen auf, die jeweils invertierend oder nicht-invertierend sind, das das Ausgabebit des Mehrheitsgatters der Schicht 1405 mit einem Bit des von der S-Box 1404 zu verarbeitenden Datenworts oder einem Ausgabebit einer vorhergehenden Schicht 1405 der S-Box 1404 kombiniert.
-
Das durch die S-Box 1404 verarbeitete Datenwort resultiert aus Ausgabebits der Schichten.
-
Gemäß verschiedenen Ausführungsformen wird in anderen Worten ein kryptographische Verarbeitung mittels einer (oder mehrerer) parametrisierter S-Box(en) implementiert. Eine effiziente Implementierung wird dadurch erreicht, dass die S-Box aus mehreren Schichten besteht, die jeweils ein Mehrheitsgatter gefolgt von einem Exklusiv-ODER-Gatter (XODER-Gatter) aufweisen, wobei ein oder mehrere Eingänge des Mehrheitsgatters und/oder des Exklusiv-ODER-Gatters invertierend sein können, wobei zumindest dem Mehrheitsgatter eines mehrerer Steuerparameterbits zugeführt wird, die dadurch die Abbildung festlegen, die von der S-Box implementiert wird.
-
Der Datenblock kann ein Datenblock mehrerer Datenblöcke kryptographisch zu verarbeitender Daten sein. Der Dateneingang (z.B. eine Datenschnittstelle) kann auch eingehende Daten in Datenblöcke unterteilen.
-
Die mehreren aufeinanderfolgenden Schichten einen nichtlinearen Teil der S-Box bilden und die S-Box kann zu dem nichtlinearen Teil lineare Schichten aufweist, die gemäß einer Ausführungsform jedoch lediglich die Identität implementieren (d.h. die S-Box hat nur triviale lineare Schichten um den nichtlinearen Teil).
-
Die Datenverarbeitungseinrichtung eine Verarbeitungssteuerschaltung aufweisen, die den Satz von Steuerparameterbitwerten aus einer Menge von Steuerparameterbitwertensätzen auswählt und dem Steuereingang zuführt. Die Menge von Steuerparameterbitwertensätzen kann alle möglichen Kombinationen von Steuerparameterbits aufweisen oder auch nur einen Teil davon. Die Menge von Steuerparameterbitwertensätzen kann in einem Speicher gespeichert sein.
-
Die S-Box kann derart ausgestaltet sein, dass sie für mindestens ein Paar von unterschiedlichen Sätzen der Steuerparameterbitwerte aus der der Menge von Steuerparameterbitwertensätzen ein Paar von S-Boxen implementiert, die nicht affin äquivalent sind.
-
Die implementierten S-Boxen können aber auch für alle Steuerparameterbitwertesätze der Menge von Steuerparameterbitwertensätzen, affin äquivalent sein.
-
Gemäß einer Ausführungsform sind die implementierten S-Boxen für alle Steuerparameterbitwertesätze der Menge von Steuerparameterbitwertensätzen kryptographisch stark. Dies bedeutet, dass für jede implementierte S-Box alle Ausgabebits der S-Box algebraischen Grad größer gleich zwei in den Eingabebits haben und die maximale differenzielle Wahrscheinlichkeit und Bias der S-Box 1/4 ist.
-
Die Komponenten der Datenverarbeitungseinrichtung 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 (z.B. ein CISC (Complex Instruction Set Computer) - Prozessor oder ein RISC (Reduced Instruction Set Computer) - Prozessor). Unter einem „Schaltkreis“ kann auch ein Prozessor, der Software ausführt, zu verstehen sein, z.B. jegliche Art von Computer-Programm, etwa ein Computer-Programm in Programmiercode für eine virtuelle Maschine (Virtual Machine), wie z.B. ein Java-Computer-Programm. Unter einem „Schaltkreis“ kann in einer Ausführungsform jegliche Art der Implementierung der im Weiteren beschriebenen Funktionen zu verstehen sein.
-
Gemäß einer Ausführungsform sind die Mehrheitsgatter und die Exklusiv-ODER-Gatter Hardware-Gatter, d.h. festverdrahtete Hardware-Schaltungen, z.B. aus entsprechend verschalteten Feldeffekttransistoren, z.B. in CMOS(Complementary Metal-Oxide-Semiconductor)-Technologie.
-
Gemäß verschiedenen Ausführungsformen wird ein Verfahren durchgeführt, wie es in 15 dargestellt ist.
-
15 zeigt ein Ablaufidagramm 1500, das ein Verfahren zum kryptographischen Verarbeiten von Daten veranschaulicht.
-
In 1501 wird ein kryptographisch zu verarbeitender Datenblock empfangen.
-
In 1502 wird ein Satzes von Steuerparameterbitwerten, abhängig von denen der Datenblock zu verarbeiten ist, empfangen.
-
In 1503 wird der Datenblocks beginnend von der empfangenden Version des Datenblocks über mehrere verarbeitete Versionen des Datenblocks bis zu einer Ausgangsversion des Datenblocks in mehreren aufeinanderfolgenden Runden iterativ verarbeitet.
-
In jeder Runde werden Datenworte der Version des Datenblocks, die in der Runde zu verarbeiten ist, zumindest mittels einer S-Box verarbeitet, wobei die S-Box mehrere aufeinanderfolgende Schichten implementiert, wobei jede Schicht implementiert:
- ein Mehrheitsgatter mit mindestens zwei Eingängen, die jeweils invertierend oder nicht-invertierend sind, das mindestens ein Bit des von der S-Box zu verarbeitenden Datenworts und/oder mindestens ein Ausgabebit einer vorhergehenden Schicht der S-Box mit mindestens einem der Steuerparameterbitwerte kombiniert; und
- ein Exklusiv-ODER-Gatter mit mindestens zwei Eingängen, die jeweils invertierend oder nicht-invertierend sind, das das Ausgabebit des Mehrheitsgatters der Schicht mit einem Bit des von der S-Box zu verarbeitenden Datenworts oder einem Ausgabebit einer vorhergehenden Schicht der S-Box kombiniert.
-
Das durch die S-Box verarbeitete Datenwort resultiert aus Ausgabebits der Schichten (beispielsweise durch die Ausgabebits der letzten Schicht, wobei nicht notwendigerweise jede Schicht alle Bits verändert, d.h. ein oder mehrere Ausgabebits gleich den Ausgabebits einer oder mehrerer vorhergehender Schichten sein können).
-
Im Folgenden werden verschiedene Ausführungsbeispiele angegeben.
- Ausführungsbeispiel 1 ist eine Datenverarbeitungseinrichtung, wie sie mit Bezug auf 14 beschrieben ist
- Ausführungsbeispiel 2 ist eine Datenverarbeitungseinrichtung nach Ausführungsbeispiel 1, wobei das Mehrheitsgatter,
- - ein Bit des von der S-Box zu verarbeitenden Datenworts und ein Ausgabebit einer vorhergehenden Schicht der S-Box und einen der Steuerparameterbitwerte kombiniert oder
- - zwei Bits des von der S-Box zu verarbeitenden Datenworts und einen der Steuerparameterbitwerte kombiniert oder
- - zwei Ausgabebits von ein oder mehreren vorhergehenden Schichten und einen der Steuerparameterwerte kombiniert.
- Ausführungsbeispiel 3 ist eine Datenverarbeitungseinrichtung nach Ausführungsbeispiel 1 oder 2, wobei die S-Box derart ausgestaltet ist, dass sie für mindestens ein Paar von unterschiedlichen Sätzen der Steuerparameterbitwerte ein Paar von S-Boxen implementiert, die nicht affin äquivalent sind.
- Ausführungsbeispiel 4 ist eine Datenverarbeitungseinrichtung nach einem der Ausführungsbeispiele 1 bis 3, wobei die Datenverarbeitungseinrichtung einen Speicher aufweist, der den Satz von Eingangsparameterbitwerten speichert und/oder eine Schaltung aufweist, die den Satz von Eingangsparameterbitwerten dem Steuereingang zuführt.
- Ausführungsbeispiel 5 ist eine Datenverarbeitungseinrichtung nach einem der Ausführungsbeispiele 1 bis 4, wobei das Exklusiv-ODER-Gatter mindestens drei Eingänge aufweist, die jeweils invertierend oder nicht-invertierend sind, und
- - das Ausgabebit des Mehrheitsgatter der Schicht
- - mit einem Bit des von der S-Box zu verarbeitenden Datenworts oder einem Ausgabebit einer vorhergehenden Schicht der S-Box kombiniert und
- - mindestens einem der Steuerparameterbitwerte und/oder mindestens einem Maskierungsbit einer Maske, die der S-Box zugeführt wird, kombiniert.
- Ausführungsbeispiel 6 ist eine Datenverarbeitungseinrichtung gemäß einem der Ausführungsbeispiele 1 bis 5, aufweisend eine Verarbeitungssteuerschaltung, die den Satz von Steuerparameterbitwerten aus einer Menge von Steuerparameterbitwertensätzen auswählt und dem Steuereingang zuführt.
- Ausführungsbeispiel 7 ist eine Datenverarbeitungseinrichtung gemäß Ausführungsbeispiel 6, wobei die implementierten S-Boxen für alle Steuerparameterbitwertesätze der Menge von Steuerparameterbitwertensätzen kryptographisch stark sind.
- Ausführungsbeispiel 8 ist ein Verfahren zum kryptographischen Verarbeiten von Daten, wie es mit Bezug auf 15 beschrieben ist.
- Ausführungsbeispiel 9 ist ein Verfahren nach Ausführungsbeispiel 8, wobei das Mehrheitsgatter,
- - ein Bit des von der S-Box zu verarbeitenden Datenworts und ein Ausgabebit einer vorhergehenden Schicht der S-Box und einen der Steuerparameterbitwerte kombiniert oder
- - zwei Bits des von der S-Box zu verarbeitenden Datenworts und einen der Steuerparameterbitwerte kombiniert oder
- - zwei Ausgabebits von ein oder mehreren vorhergehenden Schichten und einen der Steuerparameterwerte kombiniert.
- Ausführungsbeispiel 10 ist ein Verfahren nach Ausführungsbeispiel 8 oder 9, wobei die S-Box für mindestens ein Paar von unterschiedlichen Sätzen der Steuerparameterbitwerte ein Paar von S-Boxen implementiert, die nicht affin äquivalent sind.
- Ausführungsbeispiel 11 ist ein Verfahren nach einem der Ausführungsbeispiele 8 bis 10, aufweisend Bereitstellen des Satzes von Eingangsparameterbitwerten durch einen Speicher oder durch eine Schaltung.
- Ausführungsbeispiel 12 ist ein Verfahren nach einem der Ausführungsbeispiele 8 bis 11, wobei das Exklusiv-ODER-Gatter mindestens drei Eingänge aufweist, die jeweils invertierend oder nicht-invertierend sind, und
- - das Ausgabebit des Mehrheitsgatter der Schicht
- - mit einem Bit des von der S-Box zu verarbeitenden Datenworts oder einem Ausgabebit einer vorhergehenden Schicht der S-Box kombiniert und
- - mindestens einem der Steuerparameterbitwerte und/oder mindestens einem Maskierungsbit einer Maske, die der S-Box zugeführt wird, kombiniert.
- Ausführungsbeispiel 13 ist ein Verfahren gemäß einem der Ausführungsbeispiele 1 bis 12, aufweisend Auswählen des Satzes von Steuerparameterbitwerten aus einer Menge von Steuerparameterbitwertensätzen.
- Ausführungsbeispiel 14 ist ein Verfahren gemäß Ausführungsbeispiel 13, wobei die S-Box für alle Steuerparameterbitwertesätze der Menge von Steuerparameterbitwertensätzen kryptographisch stark ist.
-
Gemäß einem weiteren Ausführungsbeispiel wird eine Datenverarbeitungsvorrichtung bereitgestellt, aufweisend Mittel zum Empfangen eines kryptographisch zu verarbeitenden Datenblocks, Mittel zum Empfangen eines Satzes von Steuerparameterbitwerten, abhängig von denen der Datenblock zu verarbeiten ist, Mittel zum iterativen Verarbeiten des Datenblocks beginnend von der empfangenden Version des Datenblocks über mehrere verarbeitete Versionen des Datenblocks bis zu einer Ausgangsversion des Datenblocks in mehreren aufeinanderfolgenden Runden, wobei in jeder Runde Datenworte der Version des Datenblocks, die in der Runde zu verarbeiten ist, mittels einer S-Box verarbeitet werden, wobei die S-Box mehrere aufeinanderfolgende Schichten implementiert, wobei jede Schicht implementiert:
- ein Mehrheitsgatter mit mindestens zwei Eingängen, die jeweils invertierend oder nicht-invertierend sind, das mindestens ein Bit des von der S-Box zu verarbeitenden Datenworts und/oder mindestens ein Ausgabebit einer vorhergehenden Schicht der S-Box mit mindestens einem der Steuerparameterbitwerte kombiniert;
- ein Exklusiv-ODER-Gatter mit mindestens zwei Eingängen, die jeweils invertierend oder nicht-invertierend sind, das das Ausgabebit des Mehrheitsgatters der Schicht mit einem Bit des von der S-Box zu verarbeitenden Datenworts oder einem Ausgabebit einer vorhergehenden Schicht der S-Box kombiniert;
wobei das durch die S-Box verarbeitete Datenwort aus Ausgabebits der Schichten resultiert.
-
Obwohl die Erfindung vor allem unter Bezugnahme auf bestimmte Ausführungsformen gezeigt und beschrieben wurde, sollte es von derjenigen, 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.
-
Bezugszeichenliste
-
- 100
- Verarbeitungsvorrichtung
- 101
- CPU
- 102
- RAM
- 103
- nicht-flüchtiger Speicher
- 104
- Kryptomodul
- 105
- Bus
- 106
- Analogmodul
- 107
- Eingabe-/Ausgabeschnittstelle
- 108-111
- Krypto-Kerne
- 112
- Hardware-Zufallszahlengenerator
- 200
- Datenblöcke
- 202
- Permutation
- 204, 206
- Datenblöcke
- 208
- Pfeil
- 210
- Expansion
- 212
- XODER-Verknüpfung
- 214
- Schlüssel
- 216
- Operation
- 218
- S-Box-Abbildung
- 220
- Permutation
- 222
- XODER-Verknüpfung
- 224
- Ausgangspermutation
- 226
- Ausgangsdatenblock
- 300
- S-Box
- 400
- parametrisierte S-Box
- 500-1300
- parametrisierte S-Boxen
- 1400
- Datenverarbeitungseinrichtung
- 1401
- Dateneinang
- 1402
- Verarbeitungsschaltung
- 1403
- Steuereingang
- 1404
- S-Box
- 1405
- S-Box-Schichten
- 1500
- Ablaufdiagramm
- 1501-1503
- Verarbeitung