DE102020129058B3 - Datenverarbeitungseinrichtung und verfahren zum kryptographischen verarbeiten von daten - Google Patents

Datenverarbeitungseinrichtung und verfahren zum kryptographischen verarbeiten von daten Download PDF

Info

Publication number
DE102020129058B3
DE102020129058B3 DE102020129058.6A DE102020129058A DE102020129058B3 DE 102020129058 B3 DE102020129058 B3 DE 102020129058B3 DE 102020129058 A DE102020129058 A DE 102020129058A DE 102020129058 B3 DE102020129058 B3 DE 102020129058B3
Authority
DE
Germany
Prior art keywords
box
bit
data
processed
data block
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.)
Active
Application number
DE102020129058.6A
Other languages
English (en)
Inventor
Florian Mendel
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 DE102020129058.6A priority Critical patent/DE102020129058B3/de
Priority to US17/351,821 priority patent/US20220137929A1/en
Application granted granted Critical
Publication of DE102020129058B3 publication Critical patent/DE102020129058B3/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Quality & Reliability (AREA)

Abstract

Gemäß einem Ausführungsbeispiel wird eine Datenverarbeitungseinrichtung beschrieben, aufweisend eine Verarbeitungsschaltung, die einen 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 mittels einer S-Box verarbeitet. Die S-Box weist mehrere Schichten mit jeweils einem Mehrheitsgatter und einem Exklusiv-ODER-Gatter auf.

Description

  • 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 S = L 1 P L 2 .
    Figure DE102020129058B3_0001
  • 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 ( a , b ) = MAJ ( a , b ,0 )
    Figure DE102020129058B3_0002
    und ODER ( a , b ) = MAJ ( a , b ,1 ) .
    Figure DE102020129058B3_0003
  • Ein Beispiel für eine durch ein 4-Bit-Steuerwort t= t0...t3 parametrisierte 4-Bit-S-Box (d.h. mit einem zu verarbeitenden 4-Bit-Datenwort (a, b, c, d)) ist gegeben durch p = a ;  q = b
    Figure DE102020129058B3_0004
    a = XODER 2 ( c ,  MAJ ( p ,  q , t 0 ) )
    Figure DE102020129058B3_0005
    b = XODER 2 ( d ,  MAJ ( q ,  c , t 1 ) )
    Figure DE102020129058B3_0006
    c = XODER 2 ( p ,  MAJ ( a ,  b , t 2 ) )
    Figure DE102020129058B3_0007
    d = XODER 2 ( q ,  MAJ ( b ,  c , t 3 ) )
    Figure DE102020129058B3_0008
    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 L1 und L2 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 t0, t1, t2, t3 noch weiter Steuerbits t4, t5, t6, t7 vorgesehen sein, die alle zusätzlich maskiert sein können. Die Verarbeitung ist dann beispielsweise gegeben durch: p = a ;  q = b
    Figure DE102020129058B3_0009
    a = XODER3 ( c ,  MAJ ( p ,  q , t 0 ) ,  t 4 )
    Figure DE102020129058B3_0010
    b = XODER3 ( d ,  MAJ ( q ,  c , t 1 ) ,  t 5 )
    Figure DE102020129058B3_0011
    c = XODER3 ( p ,  MAJ ( a ,  b , t 2 ) ,  t 6 )
    Figure DE102020129058B3_0012
    d = XODER3 ( q ,  MAJ ( b ,  c , t 3 ) ,  t 7 )
    Figure DE102020129058B3_0013
    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

Claims (8)

  1. Datenverarbeitungseinrichtung (1400) aufweisend: Einen Dateneingang (1401) zum Empfangen eines kryptographisch zu verarbeitenden Datenblocks; Eine Verarbeitungsschaltung (1402), die einen Steuereingang (1403) zum Empfangen eines Satzes von Steuerparameterbitwerten, abhängig von denen der Datenblock zu verarbeiten ist, aufweist; wobei die Verarbeitungsschaltung (1402) eingerichtet ist, 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 (1402) 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, wobei die S-Box (1404) aufweist: mehrere aufeinanderfolgende Schichten (1405), wobei jede Schicht (1405) aufweist: ein Mehrheitsgatter mit mindestens zwei Eingängen, 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 (1405) der S-Box (1404) 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; ein Exklusiv-ODER-Gatter mit mindestens zwei Eingängen, 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, wobei das Exklusiv-ODER-Gatter eine festverdrahtete Hardware-Schaltung ist oder eine zur Implementierung eines Exklusiv-ODER-Gatters konfigurierte rekonfigurierbare Hardware-Schaltung ist; wobei das durch die S-Box (1404) verarbeitete Datenwort aus Ausgabebits der Schichten (1405) resultiert.
  2. Datenverarbeitungseinrichtung (1400) nach Anspruch 1, wobei das Mehrheitsgatter, - ein Bit des von der S-Box (1404) zu verarbeitenden Datenworts und ein Ausgabebit einer vorhergehenden Schicht (1405) der S-Box (1404) und einen der Steuerparameterbitwerte kombiniert oder - zwei Bits des von der S-Box (1404) zu verarbeitenden Datenworts und einen der Steuerparameterbitwerte kombiniert oder - zwei Ausgabebits von ein oder mehreren vorhergehenden Schichten (1405) und einen der Steuerparameterwerte kombiniert.
  3. Datenverarbeitungseinrichtung (1400) nach Anspruch 1 oder 2, wobei die S-Box (1404) derart ausgestaltet ist, dass sie für mindestens ein Paar von unterschiedlichen Sätzen der Steuerparameterbitwerte ein Paar von S-Boxen (1404) implementiert, die nicht affin äquivalent sind.
  4. Datenverarbeitungseinrichtung (1400) nach einem der Ansprüche 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 (1403) zuführt.
  5. Datenverarbeitungseinrichtung (1400) nach einem der Ansprüche 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 (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 und - mindestens einem der Steuerparameterbitwerte und/oder mindestens einem Maskierungsbit einer Maske, die der S-Box (1404) zugeführt wird, kombiniert.
  6. Datenverarbeitungseinrichtung (1400) gemäß einem der Ansprüche 1 bis 5, aufweisend eine Verarbeitungssteuerschaltung, die den Satz von Steuerparameterbitwerten aus einer Menge von Steuerparameterbitwertensätzen auswählt und dem Steuereingang (1403) zuführt.
  7. Datenverarbeitungseinrichtung (1400) gemäß Anspruch 6, wobei die implementierten S-Boxen (1404) für alle Steuerparameterbitwertesätze der Menge von Steuerparameterbitwertensätzen kryptographisch stark sind.
  8. Verfahren zum kryptographischen Verarbeiten von Daten aufweisend: Empfangen eines kryptographisch zu verarbeitenden Datenblocks; Empfangen eines Satzes von Steuerparameterbitwerten, abhängig von denen der Datenblock zu verarbeiten ist; Iteratives 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, zumindest mittels einer S-Box (1404) verarbeitet werden, wobei die S-Box (1404) mehrere aufeinanderfolgende Schichten (1405) implementiert, wobei jede Schicht (1405) implementiert: ein Mehrheitsgatter mit mindestens zwei Eingängen, 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 (1405) der S-Box (1404) 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; ein Exklusiv-ODER-Gatter mit mindestens zwei Eingängen, 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, wobei das Exklusiv-ODER-Gatter eine festverdrahtete Hardware-Schaltung ist oder eine zur Implementierung eines Exklusiv-ODER-Gatters konfigurierte rekonfigurierbare Hardware-Schaltung ist; wobei das durch die S-Box (1404) verarbeitete Datenwort aus Ausgabebits der Schichten (1405) resultiert.
DE102020129058.6A 2020-11-04 2020-11-04 Datenverarbeitungseinrichtung und verfahren zum kryptographischen verarbeiten von daten Active DE102020129058B3 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102020129058.6A DE102020129058B3 (de) 2020-11-04 2020-11-04 Datenverarbeitungseinrichtung und verfahren zum kryptographischen verarbeiten von daten
US17/351,821 US20220137929A1 (en) 2020-11-04 2021-06-18 Data processing device and method for the cryptographic processing of data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102020129058.6A DE102020129058B3 (de) 2020-11-04 2020-11-04 Datenverarbeitungseinrichtung und verfahren zum kryptographischen verarbeiten von daten

Publications (1)

Publication Number Publication Date
DE102020129058B3 true DE102020129058B3 (de) 2021-07-01

Family

ID=76310616

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020129058.6A Active DE102020129058B3 (de) 2020-11-04 2020-11-04 Datenverarbeitungseinrichtung und verfahren zum kryptographischen verarbeiten von daten

Country Status (2)

Country Link
US (1) US20220137929A1 (de)
DE (1) DE102020129058B3 (de)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5682526B2 (ja) * 2011-03-28 2015-03-11 ソニー株式会社 データ処理装置、およびデータ処理方法、並びにプログラム
US9223720B2 (en) * 2013-12-13 2015-12-29 Oracle International Corporation Systems and methods for rapidly generating suitable pairs of hash functions

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Ringsummennormalform. In: Wikipedia, the free encyclopedia. Bearbeitungsstand: 16.10.2020. URL: https://de.wikipedia.org/w/index.php?title=Ringsummennormalform&oldid=204615246 [abgerufen am 22.02.2021] *
SCHNEIER, B. et al.: Twofish: A 128-Bit Block Cipher. 15.06.1998. URL: https://www.schneier.com/academic/archives/1998/06/twofish_a_128-bit_bl.html [abgerufen am 18.02.2021] *
STOIANOV, N.: One Approach of Using Key-Dependent S-BOXes in AES. In: Multimedia Communications, Services and Security - 4th International Conference (MCSS 2011), Krakow, Poland, June 2-3, 2011, S. 317-323. DOI: 10.1007/978-3-642-21512-4_38 *

Also Published As

Publication number Publication date
US20220137929A1 (en) 2022-05-05

Similar Documents

Publication Publication Date Title
DE102012201164B4 (de) Vorrichtung und verfahren zur erzeugung eines nachrichtenauthentifizierungscodes
DE3650365T2 (de) Einrichtung zur Datenverschleierung.
DE102011088502B3 (de) Verfahren und Vorrichtung zur Absicherung von Blockchiffren gegen Template-Attacken
DE102005012098B4 (de) Datenchiffrierprozessor sowie AES-Chiffriersystem und AES-Chiffrierverfahren
DE69031736T2 (de) Verschlüsselungsmethode
DE69728465T2 (de) Nichtparalleler Mehrzyklus-Verschlüsselungsapparat
DE10201449C1 (de) Rechenwerk, Verfahren zum Ausführen einer Operation mit einem verschlüsselten Operanden, Carry-Select-Addierer und Kryptographieprozessor
EP3219042B1 (de) Gehärtete white box implementierung 2
DE102015110431A1 (de) Kryptografischer Prozessor, Verfahren zum Implementieren eines kryptografischen Prozessors und Schlüsselgenerierungsschaltung
DE69911815T2 (de) Selbstkorrigierendes zufallsverschlüsselungssystem und -verfahren
DE102017002153A1 (de) Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung
DE60301750T2 (de) Vorrichtung zur Erzeugung eines erweiterten Schlüssels, Verschlüsselungsvorrichtung und Verschlüsselungssystem
DE102004042826A1 (de) Verfahren und Vorrichtung zur Datenverschlüsselung
DE60038042T2 (de) Einserkomplement-verschlüsselungskombinator
DE102015015953B3 (de) Kryptoalgorithmus mit schlüsselabhängigem maskiertem Rechenschritt (SBOX-Aufruf)
DE60022840T2 (de) Verfahren zum sichern einer oder mehrerer elektronischer baugruppen, unter zuhilfenahme eines privatschlüssel-krypto-algorithmus, sowie elektronische baugruppe
DE102020129058B3 (de) Datenverarbeitungseinrichtung und verfahren zum kryptographischen verarbeiten von daten
DE102004018874B4 (de) Verfahren und Vorrichtung zum Bestimmen eines Ergebnisses
EP3369205B1 (de) Alternative darstellung des krypto-algorithmus des
EP1676394A1 (de) Verfahren und vorrichtung zur ver-/ entschlüsselung
DE69829566T2 (de) Verschlüsselungsgerät
DE102020102796A1 (de) Datenverarbeitungsvorrichtung und verfahren zum verarbeiten von geheimen daten
EP1573955B1 (de) Verschl sselungsverfahren
DE102018208851A1 (de) Vorrichtung und Verfahren zum Umwandeln von Eingangsbitfolgen
EP1400142A2 (de) Authentisierungsverfahren

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R082 Change of representative