DE112011102765T5 - Vorrichtung und Verfahren für Blockverschlüsselungsverfahren für unsichere Umgebungen - Google Patents

Vorrichtung und Verfahren für Blockverschlüsselungsverfahren für unsichere Umgebungen Download PDF

Info

Publication number
DE112011102765T5
DE112011102765T5 DE112011102765T DE112011102765T DE112011102765T5 DE 112011102765 T5 DE112011102765 T5 DE 112011102765T5 DE 112011102765 T DE112011102765 T DE 112011102765T DE 112011102765 T DE112011102765 T DE 112011102765T DE 112011102765 T5 DE112011102765 T5 DE 112011102765T5
Authority
DE
Germany
Prior art keywords
permutation
data
lookup table
cryptographic
exclusive
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.)
Withdrawn
Application number
DE112011102765T
Other languages
English (en)
Inventor
Thomas Icart
Augustin J. Farrugia
Mathieu Ciet
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.)
Apple Inc
Original Assignee
Apple Inc
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 Apple Inc filed Critical Apple Inc
Publication of DE112011102765T5 publication Critical patent/DE112011102765T5/de
Withdrawn 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/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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/043Masking or blinding of tables, e.g. lookup, substitution or mapping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Emergency Protection Circuit Devices (AREA)

Abstract

Verfahren und Vorrichtung zur Erhöhung der Sicherheit eines kryptografischen Algorithmus wie beispielsweise Entschlüsselung, Verschlüsselung, oder einer digitalen Signatur unter Verwendung einer blockartigen Chiffre wie beispielsweise dem AES, der z. B. in einem ”Whitebox”-Modell mit dem Codeschlüssel, der zur Berechnungszeit entweder bekannt oder unbekannt war, implementiert wurde. Dieses Verfahren ist für die Verwendung in vertrauenswürdigen Umgebungen sicher, insbesondere zur Sicherung von kryptografischen Schlüsseln. Die Charakteristiken der Nachschlagetabellen solcher Algorithmen sind hier gegen Angriffe geschützt, indem alle solche Tabellen in der gleichen Größe und ununterscheidbar gemacht werden, und weiter indem die Ausgangswerte solcher Tabellen, typischerweise dort wo die Tabellen eine Permutationsfunktion oder einen logischen ausschließlichen OR Ablauf ausführen, maskiert werden.

Description

  • Querverweise zu verwandten Anmeldungen
  • Diese Anmeldung beansprucht die Priorität der US-Patentanmeldung Nr. 12/806,768, eingereicht am 20. August 2010. Der gesamte Inhalt dieser Anmeldung wird hier durch Verweis integriert.
  • Gebiet der Erfindung
  • Diese Erfindung bezieht sich auf Datensicherheit und Kryptografie und allgemeiner auf die Verbesserung der Sicherheit von computergesteuerten Kryptografieverfahren und Algorithmen.
  • Hintergrund
  • Kryptografiealgorithmen sind weit verbreitet zur Verschlüsselung von Nachrichten, Authentifizierung, Verschlüsselungssignaturen und Identifikation. Der wohl bekannte DES (Data Encryption Standard) war sehr lange Zeit in Gebrauch und wurde durch den Triple-DES aktualisiert, welcher in vielen Anwendungen durch den AES (Advanced Encryption Standard) ersetzt worden ist.
  • DES, Triple-DES und AES sind beispielhafte symmetrische Blockcodes. Blockcodes arbeiten auf Blöcken von Klartext und Chiffriertext, normalerweise von 65 und 128 Bits, aber manchmal auch länger. Stromchiffres sind der andere Haupttyp von Codierschlüsseln und betreiben auf Strömen von Klartext und Chiffretext 1 Bit oder Byte (manchmal ein Wort) zu einem Zeitpunkt. Mit einer Blockchiffre wird ein bestimmter Klartextblock immer in den gleichen Chiffretextblock verschlüsselt werden, wenn der gleiche Schlüssel verwendet wird. Im Gegensatz dazu wird das gleiche Klartext-Bit oder -Byte mit einer Stromchiffre jedes Mal, wenn es verschlüsselt wird, in ein anderes Bit oder Byte verschlüsselt. Somit wird in dem ECB (Electronic Code Book) Modus für Blockchiffre jeder Klartextblock unabhängig verschlüsselt.
  • AES ist durch die US-Regierung als ein Verschlüsselungsstandard anerkannt. Im Gegensatz zu DES ist es ein Substitutions-Permutationsnetzwerk. AES ist schnell in der Implementierung sowohl von Computersoftware als auch Hardware, relativ einfach zu implementieren, und benötigt wenig Speicher. AES hat eine festgelegte Blockgröße von 128 Bits und eine Schlüsselgröße von 128, 192 oder 296 Bits. Aufgrund der festgelegten Blockgröße von 128 Bits arbeitet AES auf einem 4 × 4 Feld von Bytes. Es verwendet Erweiterung des Schlüssels und wie die meisten Blockchiffres ein Set von Verschlüsselungs- und Entschlüsselungsdurchgängen (Iterationen). Jeder Durchgang beinhaltet die gleichen Verfahren. Die Verwendung von mehreren Durchgängen erhöht die Sicherheit. Blockchiffres von dieser Art verwenden in jedem Durchgang eine Substitutionsbox oder S-Box. Diese Operation bietet eine Nichtlinearität in der Chiffre und erhöht die Sicherheit in signifikanter Weise.
  • Es ist zu beachten, dass diese Blockchiffres symmetrische Chiffre sind, d. h. dass der gleiche Algorithmus und Schlüssel für Verschlüsselung und Entschlüsselung verwendet wird, außer normalerweise für kleine Unterschiede in dem Key Schedule. Wie es in den meisten modernen Chiffre typisch ist, beruht die Sicherheit eher auf dem (geheimen) Schlüssel als auf dem Algorithmus. Die S-Boxen oder Substitutionsboxen wurden in DES eingeführt und akzeptzieren einen n-Bit Eingang und liefern einen m-Bit Ausgang. Die Werte von M und N variieren mit der Chiffre. Die Eingangsbits spezifizieren einen Eingang in der S-Box in einer bestimmten Weise, die in dem Feld bekannt ist.
  • Die Implementierung von AES (das 128 Bitblocks und 10 Durchgänge hat) in arithmetischer Weise umfasst die folgenden Operationen: (1) 11 AddRoundKey-Operationen (einer vor 10 Durchgängen), (2) 10 Subbyte-Operationen, (3) 10 ShiftRow-Operationen, und (4) 9 Mix-Column-Operationen. Jeder Durchgang von Durchgängen 1 bis 9 besteht aus den Operationen (1) bis (4), wo der Ausgang von einer Operation der Eingang für die nächste Operation ist und der Ausgang von Operation (4) der Eingang für Operation (1) ist. Durchgang 10 besteht aus den Operationen (1) bis (3), wo der Ausgang von Operation (3) der Ausgang ist, der verwendet wird. Arithmetische Implementierungen von AES bieten nicht viel Sicherheit gegen einen Angreifer, der einen geheimen Schlüssel entdeckt, wenn der Angreifer einen privilegierten Zugang zu dem System hat, das die Chiffre implementiert.
  • Viele Verschlüsselungsalgorithmen sind in erster Linie damit beschäftigt, verschlüsselte Daten zu produzieren, die dagegen resistent sind, durch einen Angreifer entschlüsselt zu werden, der in dem Verschlüsselungsalgorithmus nur als ein ”Black Box” (Eingabe/Ausgabe) Model agieren kann, und können aufgrund des Mangels an Systemzugang keine interne Arbeiten des Algorithmus oder Speicherinhalts etc. beobachten. Das Black Box-Modell ist geeignet für Anwendungen, in denen vertrauenswürdige Dritte das Computersystem sowohl für das Verschlüsseln als auch das Entschlüsseln von chiffriertem Material steuern.
  • Viele Anwendungen der Verschlüsselung berücksichtigen jedoch nicht die Annahme, dass der Angreife nicht auf interne Arbeiten des Algorithmus zugreifen kann. Zum Beispiel müssen verschlüsselte digitale Medien oft auf Computersystemen, die vollständig durch einen Gegner (Angreifer) gesteuert werden, entschlüsselt werden. Es gibt viele Grade bis zu denen das Black Box-Modell entspannt sein kann. Eine extreme Entspannung wird ”White Box” Modell genannt. In einem White Box-Modell wird angenommen, dass ein Angreifer vollständigen Zugang zu dem System hat, das die Verschlüsselung durchführt, einschließlich der Fähigkeit direkt einen Status des Speichers, Programmausführung, usw. zu beobachten. In solch einem Modell kann ein Verschlüsselungscode im oder extrahiert von dem Speicher beobachtet werden, und somit sind Wege, um Operationen, die indikativ für einen geheimen Schlüssel sind, zu verschleiern, von Bedeutung.
  • Die Veröffentlichung "White-Box Chryptography in an AES implementation" Lecture Notes in Computer Science Vol. 2595, Revised Papers from the 9th Annual International Workshop an Selected Areas in Chryptography Seiten 250–270 (2002) von Chow et al. offenbart Implementierungen von AES, die die Operationen, die während des AES ausgeführt werden unter Verwendung von Nachschlagetabellen verschleiern, um geheimen Schlüssel innerhalb der Nachschlagetabellen zu verschleiern, und Zwischenstadiumsinformation zu verschleiern, die andernfalls in arithmetischen Implementierungen des AES verfügbar wären.
  • Chow et al. verwenden (für seine ”White Box” Implementierung, in der der Schlüssel zur Computercodekompilierungszeit bekannt ist) 160 separate Tabellen, um die 11 AddRoundKey- Operationen und 10 SubByte-Operationen zu implementieren (10 Durchgänge, mit 16 Tabellen pro Durchgang, wobei je Tabelle für 1 Byte von den 16 Byte lang ist – 128 Bit – AES Block). Diese 160 Tabellen lagern einen bestimmten AES Schlüssel, so dass der Ausgang von Abfragen, die diese Tabellen beinhalten, Daten lagert, die normalerweise aus den AddRoundKey und SubByte Operationen des AES Algorithmus resultieren würden, außer dass diese Daten Eingangs/Ausgangspermutationen umfassen, die es noch mehr erschweren festzustellen, welche Teile dieser Tabellen round key Information repräsentieren, die von dem AES Schlüssel ermittelt wurden.
  • Chow et al. verwenden 1008 separate Tabellen, um die 9 MixColumn-Operationen zu implementieren (es gibt keine MixColumn Operation in dem 10. Durchgang des AES). Ein Typ dieser Tabellen implementiert eine Multiplikation von einem Byte mit dem AES MixColumn Polynom (gemäß der Spezifikation) und ein anderer Typ implementiert den logischen XOR (exklusives OR) Teil des MixColumn. Jede Tabelle wird einmal während der neun Durchgänge verwendet.
  • Die Chow et al. Lösung ist clever, aber es wurden bereits mehrere Angriffe darauf ausgeübt. Chow et al.'s White-Box Implementierung von einem gegebenen Blockchiffreverschlüsselungsverfahren zerlegt die Blockchiffre (mit seinem Schlüssel) als ein Set von Tabellensuchen. Tabellensuchen sind dann unter Verwendung von Permutationsfunktionen maskiert. (Eine Permutation, wie hier verwendet, bezieht sich auf eine bijektive Operation, der die Reihenfolge von Bits in einem Datenbyte oder Wort in einer vorbestimmten Weise ändert.) Dies ist erklärt in Chow et al. und dieses Verfahren kann ausgedehnt werden auf jede Blockchiffre.
  • Die aktuellste und stärkste solcher Ausdehnungen wurde veröffentlicht durch Oliver Billet et al. "Cryptanalysis of a White Box AES Implementation" in SAC 2004, LNCS 3357, Seiten 227–240, 2005. Die Details der verarbeiteten Basisoperationen sind notwendig, um diesen Angriff durchzuführen. Das heißt, der Angreifer muss zwischen den Sätzen von Operationen unterscheiden, um die Operationen pro Durchgang, die MixColumn-Operationen etc. zu extrahieren.
  • Zusammenfassung
  • Das vorliegende Verfahren und seine assoziierte Vorrichtung, die solche Angriffe vereiteln sollen, umfassen das Konstruieren einer AES-(oder anderer kryptografischer Algorithmen, die irgendeinen Blockchiffrealgorithmus aufweisen) Implementierung als ein Satz von Operationen, welche jeweils voneinander ununterscheidbar sind und maskiert sind. Dadurch ist der Angreifer verloren in oder verwirrt durch den Computercode, der die Chiffre verkörpert (für einen passiven Angriff) und/oder in dem Computercodeausführungspfad (für einen aktiven Angriff). Dieser Ansatz ist auch implementierbar in einer Hardware (schaltungsbasierten) Vorrichtung, die zum Ausführen des kryptografischen Verfahrens ausgestaltet ist.
  • Der oben genannte Billet et al. Angriff ist ein Prozess, der in eine Reihe von Basisproblemen zerlegt ist, um Schritt für Schritt Informationen über die Masken zu gewinnen, die verwendet werden, um die Chiffrierungsoperationen und den Schlüssel zu verstecken. Wenn die Masken bekannt sind, ist es einfach den Chiffreschlüssel selbst wieder herzustellen.
  • Der Billet et al. Angriff ermöglicht es dem Angreifer den nichtlinearen Teil der Ausgabetransformationen wieder herzustellen, sobald der Angreifer in der Lage ist Tabellen umzugruppieren, die einen Durchgang des AES Algorithmus abschließen. Zum Beispiel zeigt Billet et al., wie der nichtlineare Teil der Funktionen Q, der in der MixColumn-”Box” 10 wie in 1 von Billet et al. gezeigt, verwendet wird, wieder herzustellen ist, und welche eine der vier Abbildungen in Box 10 zwischen vier Eingangsbytes und vier Ausgangsbytes zeigt. Die Eingangsbytes sind x0, x1, x2, x3, und die Ausgangsbytes sind y0, y1, y2, y3. Jede solcher Boxen ist konstruiert aus vier 8 Bit bis 8 Bit Permutationen mit entsprechenden Ausgangspermutationen Q. Somit entdeckt man in einer ersten Phase die Rolle von jeder der Tabellen, die in dem Speicher erscheinen, um in der Lage zu sein die Tabellen zu berechnen, die in einem AES Durchgang eingeschlossen sind, um die folgende Kombination von Operationen für einen Durchgang zu konstruieren.
  • Das Ziel des vorliegenden kryptografischen Verfahrens ist es, diesen Task schwieriger zu machen. In der Tat sind in der aktuell wohl bekannten Version des AES manche Tabellen größer als andere und manche Operationen sind nicht ”white boxed”. Die MixColumn-Tabelle wie in 1 hat eine Größe von 8 × 32 Elementen anstelle von 8 × 8 Elementen der anderen Tabellen. Darüber hinaus sind bestimmte Tabellenausgänge logisch XORed (exklusives OR), im Gegensatz zu den Ausgängen der anderen Tabellen.
  • Da die Operationen dadurch unterscheidbar sind, ist es möglich für den Angreifer, in einer White-Box-Umgebung festzustellen, wann ein AES-Durchgang endet und wann ein neuer beginnt.
  • Ein Ziel des vorliegenden Verfahrens ist es, solche Tabellen so zu konstruieren, dass sie alle exakt die gleiche Größe haben, und dadurch drastisch gegen solch einen Angriff abzuhärten. Aufgrund der Struktur der Verrechnung des AES-Chiffrealgorithmus kann man die Tabellen 8-Bit-Eingang × 4-Bit-Ausgang (welche eine Größe von 128 Bytes hat), 16-Bit-Eingang × 8-Bit-Ausgang (65 KBytes) oder 32-Bit-Eingang × 16-Bit-Ausgang (8 GByte) verwenden. Eine beispielhafte Wahl sind Tabellen die jeweils die Größe 8-Bit (1 Byte) × 4-Bit (1 halbes Byte) haben. Das Folgende präsentiert diesen Prozess mit einer 8 × 4 Tabellengröße, aber der Prozess ist ohne weiteres auf andere Tabellengrößen verallgemeinbar. Es ist zu beachten, dass diese Tabellen für Permutations- und logische Operationen gedacht sind; sie sind nicht die ”S-Box” Substitutionsoperationen, die charakteristisch sind für die AES-Chiffre.
  • Durch Verweis in ihrer Gesamtheit hier eingebunden sind die gemeinschaftlich besessenen US-Patentanmeldungsveröffentlichungn US 2009/0252327 A1 ”Combination White Box/Black Box Cryptographic Processes and Apparatus”, Ciet et al. und US 2010/0054461 A1 ”Systems and Methods for Implementing Block Cypher Algorithms an Attacker-Controlled Systems”, Ciet et al.
  • 1 zeigt im Stand der Technik eine Abbildung für die AES MixColumn-Operation.
  • 2 zeigt diagrammatisch eine XOR-Operationstabelle oder ”Box”.
  • 3 zeigt eine Permutationsbox.
  • 4A, 4B zeigen die Permutation von 3, zerlegt.
  • 5 zeigt einen Zwilling von einer XOR-Tabelle.
  • 6 zeigt eine allgemeine Form der Tabelle aus 5.
  • 7 zeigt eine vervollständigte XOR-Tabelle.
  • 8A, 8B und 8C zeigen eine Maskenpermutation.
  • 9 zeigt eine Computeranlage.
  • 10 zeigt Details des Systems aus 9.
  • Detaillierte Beschreibung
  • Die Tabellen des oben beschriebenen Typs geben ein Datenbyte ein, aber geben nur ein Datennibble (ein ”nibble” ist ein halbes Byte) wieder zurück. Die AES-Chiffre als ein Beispiel berücksichtigend, haben die vorliegenden Erfinder festgestellt, dass zwei Arten von 8 × 4 Tabellen ausreichend für den AES-Algorithmus sind:
    • (a) Die Tabellen, die 8-Bit-Eingaben (2 Nibbles) mit einer 4-Bit (1 Nibble) Ausgang implementieren, sind somit beschränkt auf ein Nibble auf der Ausgangsseite. In diesem Fall werden, um eine Permutationsfunktion von einem Byte der Eingabedaten zu repräsentieren, zwei jeweils 8 × 4 Tabellen benötigt.
    • (b) Die Tabellen, die die logische XOR Operation auf maskierten Nibbles implementieren. Diese Tabellen geben zwei maskierte Nibbles ein, berechnen das logische XOR der zwei Nibbles bitweise und geben ein einzelnes maskiertes Nibble zurück.
  • Das Vorliegen von Tabellen gleicher Größe gemäß der Erfindung impliziert nicht, dass die Tabellen ununterscheidbar sind. Das ist sogar der Fall, wenn die Tabellen unter Verwendung von Eingangs- und Ausgangspermutationen maskiert sind. Die vorliegenden Erfinder haben den ersten Weg identifiziert, um zwischen den Tabellen, die ein Angreifer verwenden kann, zu unterscheiden. Sogar wenn alle involvierten Tabellen die gleiche Größe haben, sind sie einfach zu unterscheiden. In der Tat ist eine XOR-Operationstabelle die Tabelle von einem Gruppenrecht. Folglich existiert für jedes Nibble ein eindeutiges Nibble, so dass der Ausgang durch die ”Box” (Tabelle) 0 ist. (Der Begriff ”Box” bezieht sich auf eine Tabelle oder mathematische Operation enthalten in einer Tabelle, nicht auf die ”White Box” Umgebung.) Diese Eigenschaft (Unterscheider) ist auch für jeden Wert in der Gruppe [1, 24 – 1] verifiziert, welche die anderen möglichen Ausgaben der XOR-Operationstabelle sind.
  • Diese letzte Eigenschaft gewährleistet, dass jede Ausgabe einer XOR-Operationstabelle exakt 16 Vor-Bilder hat. (Ein Vor-Bild in der Kryptografie ist ein Wert oder Werte, der auf einen bestimmten Ausgang abbildet.) Folglich ist der Angreifer, wenn innerhalb einer Berechnung XOR-Operationstabellen verwendet werden, in der Lage sie unter Verwendung einer bekannten Vor-Bild-Angriffs zu erkennen, und ist in der Lage, nützliche Information über die Implementierung zu erhalten, die die Struktur solcher Tabellen enthalten.
  • Die vorliegenden Erfinder haben auch einen zweiten Weg (Eigenschaft) identifiziert, um zwischen diesen zwei Typen von Tabellen zu unterscheiden. Jede 8 × 4-Tabelle, welche die Hälfte von einer Permutation repräsentiert, hat notwendigerweise eine ”Zwillings”-Tabelle, welche der zweite Teil der Permutation ist. Tabelle B ist ein ”Zwilling” einer bestimmten Tabelle A, wenn die Verknüpfungstabelle C von A und B, in dem Sinne, dass C[i] = A[i]||B[i], A, B und C den gleichen Eingang akzeptieren und für jeden Eingang der Ausgang von Tabelle C die Verknüpfung von den A- und B-Ausgängen ist und C eine Permutation ist, wobei ”||” die Verknüpfung bezeichnet. Somit gibt es in Anbetracht einer bestimmten XOR-Operationstabelle A nicht notwendigerweise in jedem bestimmten kryptografischen Algorithmus eine Zwillingstabelle B. Aber es ist in der Tat möglich, solch eine Tabelle B zu konstruieren. In dem vorliegenden Prozess ist solch eine zusätzliche Tabelle B für jede XOR-Operationstabelle A konstruiert, und diese zusätzlichen Tabellen B werden verwendet. Es ist zu berücksichtigen, dass man, um in einer Softwareausführungsform Computercodes zu sparen, Eingangs- und Ausgangspermutationen von zwei solchen XOR-Operationstabellen derart konstruieren kann, dass sie Zwillinge sind.
  • Eine 8 × 4-Tabelle, die eine XOR-Operation implementiert, hat keinen solchen Zwilling wie oben beschrieben, da es zwei Nibbles eingibt und ein einzelnes Nibble zurückgibt. Somit ist es a priori in einer Reihe von 8 × 4-Tabellen einfach eine XOR-Operationstabelle von anderen Tabellen zu unterscheiden und dies gibt dem Angreifer in unerwünschter Weise Informationen über die Implementierung in Bezug auf die Art der Tabelle.
  • Das Folgende ist ein rechnerisch effizientes Verfahren zum Verstecken des Wesens einer Tabelle, welche entweder Teil einer Permutation ist oder eine XOR-Operationstabelle ist, um diese zwei Wege, Tabellen zu unterscheiden, zu vereiteln. Lassen wir ein Datenbyte, bezeichnet als X, die Verknüpfung von zwei Nibbles, bezeichnet als X0 und X1, sein, algebraisch ausgedrückt als: X0||x1.
  • Hier wird die XOR-Operationstabelle der Eingänge X0 und X1 repräsentiert durch die Box 12 in 2.
  • Lassen wir das Ergebnis einer Permutation, bezeichnet als P, auf dem Eingangsbyte X (= X0||X1) die Verknüpfung von zwei Permutationen sein, bezeichnet als P0, P1, so dass P0 (X0||X1) und P1(X0||X1), wo P0 und P1 auf X angewendet werden und nicht nur auf einen Teil von X, ausgedrückt als: P0(X0||X1)||P1(X0||X1).
  • Einer repräsentiert auch die Permutation P durch die Box 14 von der Größe 8 × 8, wie in 3 gezeigt. Wie oben beschrieben, kann eine Permutation in zwei Untertabellen P016 und P118, wie in den 4A bzw. 4b gezeigt, zerlegt sein.
  • Das Folgende beschreibt das Konstruieren einer Zwillingstabelle für die XOR-Operationstabelle, um den zweiten Weg des Unterscheidens zwischen Tabellen zu vereiteln. Wie oben beschrieben, hat die XOR-Operationstabelle in dem Algorithmus keine Zwillingstabelle, welche als Tabelle definiert ist (siehe oben), die eine Permutation ausführt, wenn es mit der XOR-Operationstabelle assoziiert ist. Das Konstruieren solch einer Tabelle ist jedoch ohne weiteres verwirklicht. In der Tat existieren viele Tabellen, die ein Zwilling der XOR-Tabelle sind. Zum Beispiel ist die Funktion 20, bezeichnet als Q, gezeigt in 5, eine von ihnen. Die allgemeine Form einer solchen Tabelle 22 ist in 6 gezeigt, wo F eine Funktion ist, so dass die Funktion bezeichnet als φ, die als Eingangsbyte (X0, X1) nimmt und: φ(X0, X1) = (X0 ⊕ X1, F(X0, X1)) ausgibt und welche eine Bijektion ist.
  • Das Folgende beschreibt das Ununterscheidbar-Machen der XOR-Tabelle, und vereitelt dadurch den ersten Weg der Unterscheidung. Dies beinhaltet das Verstecken der Eigenschaft auf der Vielzahl von Vor-Bildern der XOR-Operationstabellen. Angenommen, dass es eine Permutation gibt, die eine vervollständigte XOR-Operationstabellen 24 wie oben beschrieben und in 7 gezeigt, ist. Um zu verbergen, dass sein oberer Teil aus einer XOR-Operationstabellen gemacht ist, berechnet man, in einem ersten Schritt, zwei Permutationen, bezeichnet als M bzw. R, so dass für alle Nibbles X0 und X1, wobei M die Maske 26 in 8A ist, und R die Verknüpfung von M–1 und Q in 8B ist, gilt: M(R(X0, X1)) = (X0 ⊕ X1, F(X0, X1)).
  • Der Buchstabe M deutet ”Maske” an, da diese Permutation maskiert, dass diese Tabelle tatsächlich eine XOR-Operationstabellen ist. Die Permutation M26, wie in 8A, ist zufällig gewählt, z. B. von einem vorbestimmten Set von Permutation. Diese Auswahl wird typischerweise durchgeführt, wenn der Computer-Quellcode in ein Objekt (ausführbaren) Code kompiliert ist. Von der inversen Permutation von M, bezeichnet als M–1, berechnet man die Zusammensetzung von M–1 mit der vervollständigten XOR-Operationstabelle. Es gibt jetzt zwei Permutationen M–127 und Q28 wie in 8B gezeigt, welche zur Permutation R29 in 8C kombinieren. In vorteilhafter Weise hat keine dieser Permutationen, separat genommen, irgendeine bestimmte Eigenschaft, welche einen Angreifer dazu befähigen würde, sie von einer willkürlichen Permutation zu unterscheiden.
  • In einem zweiten Schritt der Maskierung maskiert man die Ausgabe der XOR-Operationstabelle. In der Tat ist es für die Sicherheit im Allgemeinen besser niemals die korrekten Daten in der Berechnung zu exponieren. Um dies zu tun, können zwei Verfahren angewandt werden:
    • (a) Das erste Verfahren beinhaltet die Berechnung einer 4 × 4 zufälligen Permutation und das Zusammensetzen mit dem oberen Teil der zweiten Permutation.
    • (b) Das zweite Verfahren beinhaltet die Berechnung einer 8 × 8 zufälligen Permutation und das Zusammensetzen mit der gesamten zweiten Permutation.
  • In beiden Fällen wird die Inverse der zuletzt berechneten Permutation verwendet. In der Tat ist es das Ziel, ein Set von Permutationen zu haben, die verkettet werden kann.
  • Somit ist man gemäß der Erfindung in der Lage jede Tabelle von einer White-Box-Implementierung des AES oder eines ähnlichen kryptografischen Algorithmus unter Verwendung der oben beschriebenen Konstruktion von diesen Tabellen als ein Set von ununterscheidbaren Table Lookups zu repräsentieren.
  • Das resultierende Verschlüsselungsverfahren wird ausgedrückt (in Computercode oder Hardware) als ein Set von ununterscheidbaren Tabellensuchen von Tabellen, wobei jede beispielsweise eine Größe von 8 × 4 hat. Dies erschwert es einem Angreifer aufzuspüren, was einem vollständigen Durchgang entspricht, um seinen Angriff durchzuführen, da es für ihn schwierig ist festzustellen, wann jeder Durchgang beginnt oder endet.
  • Dass ist insbesondere wahr, wenn verschiedene ”nutzlose” Operationen (jeder eine zusätzliche Permutation aufweisend) hinzugefügt sind, wo in dem Verfahren erwünscht ist, Komplexität hinzuzufügen und wo diese zusätzlichen und nutzlosen Tabellen ununterscheidbar sind von den nutzvollen. Diese zusätzlichen Permutationen erhöhen die Sicherheit dadurch, dass sie manche Durchgänge des kryptografischen Algorithmus länger machen als andere. In einer anderen Ausführungsform sind zusätzliche Operationen dieser Art hinzugefügt auf eine Pro-Byte-Basis innerhalb jeden Durchgangs.
  • Das vorliegende Verfahren kann, unter Verwendung von Tabellen anderer Größen wie beispielsweise 18 × 8 oder 32 × 16, ausgedehnt werden auf kryptografische Verfahren. Allerdings können 8 × 4 Tabellen bevorzugt sein.
  • 9 zeigt in einem Blockdiagramm relevante Teile einer Computervorrichtung (System) 30 gemäß der erfinderischen Entschlüsselung. Das heißt z. B. ein Computer, Mobiltelefon, Smartphone, Personal Digital Assistant oder ähnliche Vorrichtungen, oder Teile von solch einer Vorrichtung und umfassend konventionelle Hardwarekomponenten ausführend in einer Ausführungsform (Computercode), die die obigen Beispiele von einem Kryptografieverfahren (z. B. Verschlüsselung oder Entschlüsselung) beinhaltet. Dieser Code kann, z. B. in der C oder C++ Computersprache sein oder seine Funktionalität kann ausgedrückt sein in der Form von Firmware oder Hardware (Schaltungs-)Logik; das Schreiben eines solchen Codes oder das Design eines solchen Codes würde im Lichte der obigen Offenbarung Routine sein.
  • Der Computercode wird üblicherweise in einem Codespeicher (computerlesbares Speichermedium, z. B. ROM) 40 (als Objektcode oder Quellcode) assoziiert mit dem Prozessor 38 für die Ausführung durch den Prozessor 38 gespeichert. Die eingehende Nachricht (Daten), dass chiffriert oder dechiffriert oder anderweitig verarbeitet werden soll, wird beim Port 32 empfangen und in einem computerlesbaren Speichermedium (Speicher, z. B. RAM) 36 gespeichert, wo es an den Prozessor 38 gekoppelt ist. Prozessor 38 partitioniert die Nachricht bei dem Softwarepartitionierungsmodul 42 in konventioneller Weise in geeignet große Blöcke. Andere Software (Code) Module im Prozessor 38 beinhalten das Algorithmus-Modul 46, welche die Blockchiffre kryptografische algorithmische Funktionalität, wie oben ausgeführt, trägt.
  • Ebenso an einen Prozessor 38 gekoppelt ist das computerlesbare Speichermedium (Speicher) 52 zum Speichern der Tabellen, wie auch ein dritter Speicher 58 für die resultierenden Ausgangsdaten, z. B. die entschlüsselten oder verschlüsselten Eingangsdaten. Speicherorte 36, 52, 58 können sich in einem oder mehreren konventionellen physikalischen Speichervorrichtungen befinden (wie beispielsweise Halbleiter RAM oder seine Varianten oder ein Festplattenlaufwerk).
  • Elektrische Signale werden konventioneller Weise zwischen den verschiedenen Elementen von 9 übertragen. Nicht in 9 gezeigt ist die darauffolgende konventionelle Verwendung der resultierenden chiffrierten oder dechiffrierten Nachricht.
  • 10 zeigt in einer Ausführungsform weitere Details der Computervorrichtung. 10 stellt ein typisches und konventionelles Computersystem 60 dar, das verwendet werden kann, um Verarbeitungsfunktionalitäten in einer Ausführungsform der Erfindung zu implementieren und das zusätzliche Details des Systems der 9 zeigt. Die Computersysteme dieser Art können beispielsweise in einem Computerserver oder Benutzer (Client) Computer oder anderen Computervorrichtungen verwendet werden. Der Fachmann wird also erkennen, wie er Ausführungsformen der Erfindung unter Verwendung anderer Computersysteme oder Architekturen implementiert. Das Computersystem 60 kann z. B. ein Desktop, Laptop oder Notebook Computer, handgehaltene Computervorrichtung (Personal Digital Assistant (PDA), Mobiltelefon, Palmtop etc.) Großrechner, Server, Client oder jeden anderen Typ von speziellen oder allgemeinen Universalcomputergeräten präsentieren, erwünscht sein kann oder angemessen sein kann für eine gegebene Anwendung oder Umgebung. Das Computersystem 60 kann einen oder mehrere Prozessoren, wie beispielsweise einen Prozessor 64 (äquivalent zum Prozessor 38 in 9), aufweisen. Der Prozessor 64 kann unter Verwendung eines allgemeinen oder speziellen Zwecksprozessor-Engines, wie beispielsweise z. B. ein Mikroprozessor, Mikrosteuerung oder andere Steuerungslogik implementiert sein. In diesem Beispiel ist der Prozessor 64 verbunden mit einem Bus 62 oder anderem Kommunikationsmedium.
  • Das Computersystem 60 kann auch einen Hauptspeicher 68 aufweisen (äquivalent zu den Speichern 36, 52, 58), wie beispielsweise Random Access Memory (RAM) oder andere dynamische Speicher, zum Speichern von Informationen und Anweisungen, die durch den Prozessor 64 ausgeführt werden sollen. Der Hauptspeicher 68 kann auch zum Speichern von zeitweise variablen oder anderen Zwischeninformationen während der Ausführung von Anweisungen, die durch die den Prozessor 64 ausgeführt werden sollen, verwendet werden. Das Computersystem 60 kann in ähnlicher Weise ein Read Only Memory (ROM) oder andere statische Speichervorrichtungen gekoppelt an den Bus 62 aufweisen, zum Speichern von statischen Informationen und Anweisungen für den Prozessor 64.
  • Das Computersystem 60 kann auch das Informationsspeichersystem 70 aufweisen, welches beispielsweise ein Medienlaufwerk 62 und eine entfernbare Speicherschnittstelle 80 aufweist. Das Medienlaufwerk 72 kann ein Laufwerk oder andere Mechanismen aufweisen, um fixierte oder entfernbare Speichermedien zu unterstützen, wie beispielsweise Flash Memory, Festplattenlaufwerk, ein Floppy Disk Laufwerk, ein Magnetbandlaufwerk, ein optische Diskette Laufwerk, ein Compact Disk Diskette (CD) oder ein Digital Versatile Disk (DVD) Laufwerk (R oder RW), oder andere entfernbare oder fixierte Medienlaufwerke. Das Speichermedium 78 kann beispielsweise eine Festplatte, eine Floppy Disk, ein magnetisches Band, optische Disk, CD oder DVD oder andere fixierte oder entfernbare Medien aufweisen, das durch das Medienlaufwerk 72 gelesen oder beschrieben wird. Wie diese Beispiele darstellen, kann das Speichermedium 78 ein computerlesbares Speichermedium aufweisen, in dem bestimmte Computersoftware oder Daten gespeichert sind.
  • In alternativen Ausführungsformen kann das Informationsspeichersystem 70 andere ähnliche Komponenten aufweisen, um es Computerprogrammen oder anderen Anweisungen oder Daten zu ermöglichen, in das Computersystem 60 geladen zu werden. Solche Komponenten können beispielsweise eine entfernbare Speichereinheit 82 und eine Schnittstelle 80 umfassen, wie beispielsweise ein Programmsteckmodul und eine Steckmodulschnittstelle, einen entfernbaren Speicher (z. B. ein Flash Memory oder andere entfernbare Speichermodule) und Memory Slots und andere entfernbare Speichereinheiten 82 und Schnittstellen 80, die es Software und Daten ermöglichen, von der entfernbaren Speichereinheit 78 zum Computersystem 60 transferiert zu werden.
  • Das Computersystem 60 kann auch eine Kommunikationsschnittstelle 84 aufweisen (äquivalent zum Port 32 in 9). Die Kommunikationsschnittstelle 84 kann verwendet werden, um es Software und Daten zu ermöglichen, zwischen dem Computersystem 60 und an externen Vorrichtungen transferiert zu werden. Beispiele von Kommunikationsschnittstellen 84 können ein Modem, eine Netzwerkschnittstelle (wie beispielsweise ein Ethernet oder andere Netzwerkschnittstellenkarten (NIC)), ein Kommunikations-Port (wie beispielsweise ein USB-Port), ein PCMCIA-Slot und Karte, etc. aufweisen. Software und Daten, die über die Kommunikationsschnittstelle 84 transferiert wurden, sind in der Form von Signalen, welche elektronische, elektromagnetische, optische oder andere Signale sein können, die in der Lage sind, durch die Kommunikationsschnittstelle 84 empfangen zu werden. Diese Signale werden der Kommunikationsschnittstelle 84 über einen Kanal 88 zur Verfügung gestellt. Dieser Kanal 88 kann Signale übertragen und kann implementiert werden zur Verwendung des drahtlosen Mediums, Drahtes oder Kabels, Faseroptik oder anderen Kommunikationsmedien. Manche Beispiele eines Kanals umfassen eine Telefonleitung, ein Mobiltelefonlink, ein RF Link, eine Netzwerkschnittstelle, ein lokales oder Weitverkehrsnetzwerk und andere Kommunikationskanäle.
  • In dieser Offenbarung können die Begriffe ”Computerprogrammprodukt”, ”computerlesbares Medium” und Ähnliches allgemein verwendet werden, um Medien zu bezeichnen wie beispielsweise Speicher 68, Speichervorrichtung 78, oder Speichereinheit 82. Diese oder andere Formen von computerlesbaren Medien können ein oder mehrere Anweisungen für die Verwendung durch den Prozessor 64 speichern, um den Prozessor zu veranlassen, spezifische Operationen durchzuführen. Solche Anweisungen, im Allgemeinen bezeichnet als ”Computerprogrammcode” (welche in der Form von Computerprogrammen oder anderen Gruppierungen gruppiert werden können), ermöglichen es dem Computersystem 60, wenn ausgeführt, Funktionen der Ausführungsformen der Erfindung durchzuführen. Es ist zu berücksichtigen, dass der Code direkt verursachen kann, dass der Prozessor spezifische Operationen durchführt, kompiliert sein kann, und/oder kombiniert mit anderen Software, Hardware und/oder Firmware Elementen (beispielsweise Bibliotheken zur Durchführung von Standardfunktion, um dies zu tun.
  • In einer Ausführungsform, in der Elemente unter Verwendung von Software implementiert sind, kann die Software in einem computerlesbaren Medium gespeichert werden und in das Computersystem 60 geladen werden unter Verwendung beispielsweise eines entfernbaren Speicherlaufwerks 74, Laufwerks 72 oder Kommunikationsschnittstelle 84. Die Steuerungslogik (in diesem Beispiel Softwareanweisungen oder Computerprogrammcode), wenn ausgeführt durch den Prozessor 64, veranlasst den Prozessor 64 dazu, die Funktionen von Ausführungsformen der Erfindung wie hier beschrieben durchzuführen.
  • Die Offenbarung ist illustrativ und nicht beschränkend. Weitere Modifikationen sind dem Fachmann im Lichte dieser Offenbarung offensichtlich und sollen in den Anwendungsbereich der angehängten Ansprüche fallen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 2009/0252327 A1 [0021]
    • US 2010/0054461 A1 [0021]
  • Zitierte Nicht-Patentliteratur
    • ”White-Box Chryptography in an AES implementation” Lecture Notes in Computer Science Vol. 2595, Revised Papers from the 9th Annual International Workshop an Selected Areas in Chryptography Seiten 250–270 (2002) [0010]
    • Chow et al. [0011]
    • Chow et al. [0012]
    • Chow et al. [0013]
    • Oliver Billet et al. ”Cryptanalysis of a White Box AES Implementation” in SAC 2004, LNCS 3357, Seiten 227–240, 2005 [0014]
    • Billet et al. [0016]
    • Billet et al. [0017]

Claims (40)

  1. Ein Verfahren umfassend die Vorgänge: Empfangen von Eingangsdaten; Speichern der empfangenen Daten in einem ersten computerlesbaren Speicher; Anwenden der gespeicherten Daten auf ein blockkryptografisches Verfahren in einem Prozessor, wobei der Prozessor: eine Vielzahl von Permutationsabläufen auf die Daten anwendet, wobei jeder eine Nachschlagetabelle gleicher Größe aufweist; eine Vielzahl von exklusiven OR-Abläufen anwendet, wobei jeder eine Nachschlagetabelle gleicher Größe wie Permutations- Nachschlagetabelle aufweist, und ferner einen maskierten Ausgang hat; und Daten in einem zweiten computerlesbaren Medium speichert, die aus dem blockkryptografischen Verfahren resultieren.
  2. Das Verfahren nach Anspruch 1, wobei jede Nachschlagetabelle ein Datenbyte als Eingang akzeptiert und ein halbes Datenbyte ausgibt.
  3. Das Verfahren nach Anspruch 1, wobei eine Größe von jeder Nachschlagetabelle 8 Bits Eingang und 4 Bits Ausgabe ist.
  4. Das Verfahren nach Anspruch 3, wobei eine Größe von jeder Nachschlagetabelle 16 Bits Eingang und 8 Bits Ausgabe ist.
  5. Das Verfahren nach Anspruch 1, wobei eine Größe von jeder Nachschlagetabelle 32 Bits Eingang und 16 Bits Ausgabe ist.
  6. Das Verfahren nach Anspruch 1, wobei das blockkryptografische Verfahren dem Advanced Encryption Standard entspricht.
  7. Das Verfahren nach Anspruch 1, wobei der Prozess Daten verschleiert, die Schlüssel des kryptografischen Verfahrens aufweisen.
  8. Das Verfahren nach Anspruch 1, wobei das kryptografische Verfahren eines der Verschlüsselung, Entschlüsselung oder Berechnung einer digitalen Signatur ist.
  9. Das Verfahren nach Anspruch 1, wobei ein Eingang zu den exklusiven OR-Ablauf Nachschlagetabellen auch maskiert ist.
  10. Das Verfahren nach Anspruch 1, wobei die Permutationen und exklusiven OR-Abläufe jeweils bitweise ausgeführt sind.
  11. Das Verfahren nach Anspruch 1, ferner umfassend die Vorgänge: Zurverfügungstellen einer entsprechenden Zwillings-Nachschlagetabelle für mindestens eine der exklusiven OR-Ablauf Nachschlagetabellen; Zurverfügungstellen einer Vielzahl von Durchgängen des kryptografischen Verfahrens; und Verwenden der Zwillings-Nachschlagetabelle in mindestens einem der Durchgänge.
  12. Das Verfahren nach Anspruch 11, wobei ein bestimmter Durchgang, der die Zwillings-Nachschlagetabelle aufweist, mehr Abläufe umfasst, als ein anderer der Durchgänge.
  13. Das Verfahren nach Anspruch 11, wobei eine Länge des Durchgangs für jedes Byte der Daten unterschiedlich ist.
  14. Das Verfahren nach Anspruch 1, wobei die Daten für jede exklusive OR-Nachschlagetabelle durch eine Permutation maskiert sind.
  15. Das Verfahren nach Anspruch 14, wobei die Daten durch eine zweite Permutation maskiert sind, welche eine Berechnung der ersten Permutation und eines exklusiven OR-Ablauf ist.
  16. Das Verfahren nach Anspruch 14, wobei die Permutation zwei 4-Elemente mal 4-Element-Permutationen aufweist.
  17. Das Verfahren nach Anspruch 14, wobei die Permutation eine 8-Element mal 8-Element-Permutation aufweist.
  18. Das Verfahren nach Anspruch 1, wobei ein Schlüssel für den kryptografischen Prozess zur Laufzeit des Prozesses bekannt ist.
  19. Das Verfahren nach Anspruch 1, wobei ein Schlüssel für den kryptografischen Prozess zu einer Codekompilierungszeit des Prozesses bekannt ist.
  20. Ein nichtflüchtiges computerlesbares Medium, das Computercode zur Durchführung des Verfahrens nach Anspruch 1 speichert.
  21. Eine Computervorrichtung programmiert zur Durchführung des Verfahrens nach Anspruch 1.
  22. Vorrichtung umfassend: ein Port angepasst zum Empfangen von Eingangsdaten; ein erster computerlesbarer Speicher gekoppelt an den Port und angepasst, um die empfangenen Daten zu speichern; ein Prozessor, der an den ersten computerlesbaren Speicher gekoppelt ist und der die gespeicherten Daten auf den blockkryptografischen Prozess anwendet, wobei der Prozessor: eine Vielzahl von Permutationsabläufen auf die Daten anwendet, wobei jeder eine Nachschlagetabelle gleicher Größe aufweist; eine Vielzahl von exklusiven OR-Abläufen anwendet, wobei jeder eine Nachschlagetabelle von gleicher Größe wie die Permutations-Nachschlagetabellen aufweist und ferner einen maskierten Ausgang hat; und Daten, die von dem blockkryptografischen Prozess in einem zweiten computerlesbaren Medium resultieren, das an den Prozessor gekoppelt ist.
  23. Die Vorrichtung nach Anspruch 22, wobei jede Nachschlagetabelle ein Datenbyte als Eingang akzeptiert und ein halbes Datenbyte ausgibt.
  24. Die Vorrichtung nach Anspruch 22, wobei eine Größe von jeder Nachschlagetabelle 8 Bits Eingang und 4 Bits Ausgang ist.
  25. Vorrichtung nach Anspruch 22, wobei eine Größe von jeder Nachschlagetabelle 16 Bits Eingang und 8 Bits Ausgang ist.
  26. Vorrichtung nach Anspruch 22, wobei eine Größe von jeder Nachschlagetabelle 32 Bits Eingang und 16 Bits Ausgang ist.
  27. Die Vorrichtung nach Anspruch 22, wobei das blockkryptografische Verfahren dem Advanced Encryption Standard entspricht.
  28. Die Vorrichtung nach Anspruch 22, wobei das Verfahren Daten verschleiert, die die Schlüssel des kryptografischen Verfahrens aufweisen.
  29. Die Vorrichtung nach Anspruch 22, wobei das kryptografische Verfahren entweder eine Verschlüsselung, Entschlüsselung oder Berechnung einer digitalen Signatur, ist.
  30. Die Vorrichtung nach Anspruch 22, wobei ein Eingang an die exklusiven OR-Ablauf-Nachschlagetabelle auch maskiert ist.
  31. Die Vorrichtung nach Anspruch 22, wobei die Permutation und exklusiven OR-Abläufe bitweise durchgeführt werden.
  32. Die Vorrichtung nach Anspruch 22, wobei der Prozessor weiter: für mindestens eine der exklusiven OR-Ablauf-Nachschlagetabelle eine entsprechende Zwillings-Nachschlagetabelle zurverfügungstellt; eine Vielzahl von Durchgängen von kryptografischen Verfahren zurverfügungstellt; und die Zwillings-Nachschlagetabelle in mindestens einem der Durchgänge verwendet.
  33. Die Vorrichtung nach Anspruch 32, wobei ein bestimmter Durchgang, der die Zwillings-Nachschlagetabelle aufweist, mehr Abläufe als ein anderer der Durchgänge aufweist.
  34. Die Vorrichtung nach Anspruch 32, wobei für jedes Byte der Daten eine Länge des Durchgangs unterschiedlich ist.
  35. Die Vorrichtung nach Anspruch 22, wobei für jede exklusive OR-Nachschlagetabelle die Datei durch eine Permutation maskiert ist.
  36. Die Vorrichtung nach Anspruch 35, wobei die Datei durch eine Permutation maskiert ist, welche eine Berechnung der ersten Permutation und einer exklusiven OR-Operation ist.
  37. Die Vorrichtung nach Anspruch 35, wobei die Permutation zwei 4-Element mal 4-Element-Permutationen aufweist.
  38. Die Vorrichtung nach Anspruch 35, wobei die Permutation eine 8-Element mal 8-Element-Permutation aufweist.
  39. Die Vorrichtung nach Anspruch 22, wobei ein Schlüssel für das kryptografische Verfahren zur Laufzeit des Verfahrens bekannt ist.
  40. Das Verfahren nach Anspruch 22, wobei ein Schlüssel für das kryptografische Verfahren zu einer Codekompilierungszeit des Verfahrens bekannt ist.
DE112011102765T 2010-08-20 2011-08-03 Vorrichtung und Verfahren für Blockverschlüsselungsverfahren für unsichere Umgebungen Withdrawn DE112011102765T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/806,768 2010-08-20
US12/806,768 US8644500B2 (en) 2010-08-20 2010-08-20 Apparatus and method for block cipher process for insecure environments
PCT/US2011/046483 WO2012024086A1 (en) 2010-08-20 2011-08-03 Apparatus and method for block cipher process for insecure environments

Publications (1)

Publication Number Publication Date
DE112011102765T5 true DE112011102765T5 (de) 2013-09-19

Family

ID=44583403

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112011102765T Withdrawn DE112011102765T5 (de) 2010-08-20 2011-08-03 Vorrichtung und Verfahren für Blockverschlüsselungsverfahren für unsichere Umgebungen

Country Status (10)

Country Link
US (1) US8644500B2 (de)
EP (1) EP2606603A1 (de)
KR (1) KR20130041353A (de)
CN (1) CN103119888A (de)
AU (1) AU2011292312B2 (de)
BR (1) BR112013004010A2 (de)
CA (1) CA2807636A1 (de)
DE (1) DE112011102765T5 (de)
SE (1) SE1350203A1 (de)
WO (1) WO2012024086A1 (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8644500B2 (en) 2010-08-20 2014-02-04 Apple Inc. Apparatus and method for block cipher process for insecure environments
US9274976B2 (en) * 2010-11-05 2016-03-01 Apple Inc. Code tampering protection for insecure environments
US9654279B2 (en) * 2014-03-20 2017-05-16 Nxp B.V. Security module for secure function execution on untrusted platform
US9641337B2 (en) * 2014-04-28 2017-05-02 Nxp B.V. Interface compatible approach for gluing white-box implementation to surrounding program
SG10201405852QA (en) 2014-09-18 2016-04-28 Huawei Internat Pte Ltd Encryption function and decryption function generating method, encryption and decryption method and related apparatuses
US9665699B2 (en) * 2015-03-13 2017-05-30 Nxp B.V. Implementing padding in a white-box implementation
US10015009B2 (en) * 2015-11-25 2018-07-03 Nxp B.V. Protecting white-box feistel network implementation against fault attack
US10171234B2 (en) * 2015-12-16 2019-01-01 Nxp B.V. Wide encoding of intermediate values within a white-box implementation
DE102016008456B4 (de) * 2016-07-12 2018-03-29 Giesecke+Devrient Mobile Security Gmbh White Box AES Implementierung
EP3300291A1 (de) * 2016-09-27 2018-03-28 Gemalto SA Verfahren zum abwehren von dca-angriffen 2. ordnung und höher
FR3061822B1 (fr) 2017-01-10 2019-05-10 Safran Identity & Security Procede de chiffrement ou de dechiffrement d'un n-uplet de donnees avec un n-uplet de cles secretes predeterminees
CN109962768B (zh) * 2017-12-26 2022-03-15 中国航空工业集团公司西安航空计算技术研究所 一种基于白盒aes的航电系统加解密方法
US20200313850A1 (en) * 2019-03-29 2020-10-01 Irdeto Canada Corporation Method and apparatus for implementing a white-box cipher

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090252327A1 (en) 2008-04-02 2009-10-08 Mathieu Ciet Combination white box/black box cryptographic processes and apparatus
US20100054461A1 (en) 2008-09-02 2010-03-04 Apple Inc. Systems and methods for implementing block cipher algorithms on attacker-controlled systems

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6518896B1 (en) * 2000-01-15 2003-02-11 Sony Electronics, Inc. Multiple symbol length lookup table
JP2002261751A (ja) * 2001-03-02 2002-09-13 Hitachi Ltd 暗号処理方法
US8077861B2 (en) * 2004-08-12 2011-12-13 Cmla, Llc Permutation data transform to enhance security
US7577250B2 (en) * 2004-08-12 2009-08-18 Cmla, Llc Key derivation functions to enhance security
EP2082524B1 (de) * 2006-11-15 2013-08-07 Certicom Corp. Implizite Zertifikatverifikation
EP2092684A2 (de) 2006-11-17 2009-08-26 Koninklijke Philips Electronics N.V. Kryptographisches verfahren für eine white-box-implementierung
US7822207B2 (en) * 2006-12-22 2010-10-26 Atmel Rousset S.A.S. Key protection mechanism
CN101578813A (zh) * 2007-01-11 2009-11-11 皇家飞利浦电子股份有限公司 跟踪实现的拷贝
US8644500B2 (en) 2010-08-20 2014-02-04 Apple Inc. Apparatus and method for block cipher process for insecure environments

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090252327A1 (en) 2008-04-02 2009-10-08 Mathieu Ciet Combination white box/black box cryptographic processes and apparatus
US20100054461A1 (en) 2008-09-02 2010-03-04 Apple Inc. Systems and methods for implementing block cipher algorithms on attacker-controlled systems

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"White-Box Chryptography in an AES implementation" Lecture Notes in Computer Science Vol. 2595, Revised Papers from the 9th Annual International Workshop an Selected Areas in Chryptography Seiten 250-270 (2002)
Billet et al.
Chow et al.
Oliver Billet et al. "Cryptanalysis of a White Box AES Implementation" in SAC 2004, LNCS 3357, Seiten 227-240, 2005

Also Published As

Publication number Publication date
SE1350203A1 (sv) 2013-05-20
CN103119888A (zh) 2013-05-22
BR112013004010A2 (pt) 2016-06-28
US8644500B2 (en) 2014-02-04
CA2807636A1 (en) 2012-02-23
KR20130041353A (ko) 2013-04-24
WO2012024086A1 (en) 2012-02-23
AU2011292312A1 (en) 2013-03-14
EP2606603A1 (de) 2013-06-26
AU2011292312B2 (en) 2014-09-11
US20120045050A1 (en) 2012-02-23

Similar Documents

Publication Publication Date Title
DE112011102765T5 (de) Vorrichtung und Verfahren für Blockverschlüsselungsverfahren für unsichere Umgebungen
EP3219042B1 (de) Gehärtete white box implementierung 2
DE602005002349T2 (de) Schlüsselmaskierung für kryptographische Prozesse
DE69931606T2 (de) Datenwandler und aufzeichnungsmedium zur aufnahme eines programms zur datenumwandlung
US8553877B2 (en) Substitution table masking for cryptographic processes
DE102008013785A1 (de) Vorberechneter Verschlüsselungsschlüssel
DE69938539T2 (de) Kryptographische Einrichtung mit parallel geschalteten Verschlüsselungsblöcken
DE69831982T2 (de) Kryptographisches vermittlungsverfahren und gerät
EP2462717B1 (de) Echtzeitfähige quantencomputersichere verschlüsselung von daten aller art
EP3485598B1 (de) White box aes implementierung
DE102014213539A1 (de) Einrichtung und Verfahren zur Speicheradressenverschlüsselung
US8619985B2 (en) Table splitting for cryptographic processes
DE102017215331A1 (de) Kostengünstiger Kryptografiebeschleuniger
DE202023104060U1 (de) Eine mehrstufige randomisierte SALT-Technik für Vertraulichkeit in IoT-Geräten
DE102015015953B3 (de) Kryptoalgorithmus mit schlüsselabhängigem maskiertem Rechenschritt (SBOX-Aufruf)
DE102004018874B4 (de) Verfahren und Vorrichtung zum Bestimmen eines Ergebnisses
EP3369205B1 (de) Alternative darstellung des krypto-algorithmus des
Wadi et al. A low cost implementation of modified advanced encryption standard algorithm using 8085A microprocessor
Rajashekarappa et al. Study on cryptanalysis of the tiny encryption algorithm
DE10149191C2 (de) Verfahren und Vorrichtung zum Ermitteln von Ursprungsausgangsdaten aus Ursprungseingangsdaten auf der Basis einer kryptographischen Operation
DE202022103193U1 (de) Ein System zur Entwicklung einer leichtgewichtigen Blockchiffre für ressourcenbeschränkte Anwendungen
DE102004043243A1 (de) Verfahren zum Schutz von Schlüsseln

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R120 Application withdrawn or ip right abandoned
R120 Application withdrawn or ip right abandoned

Effective date: 20150226