DE102014016548A1 - Verfahren zum Testen und zum Härten von Softwareapplikationen - Google Patents

Verfahren zum Testen und zum Härten von Softwareapplikationen Download PDF

Info

Publication number
DE102014016548A1
DE102014016548A1 DE102014016548.5A DE102014016548A DE102014016548A1 DE 102014016548 A1 DE102014016548 A1 DE 102014016548A1 DE 102014016548 A DE102014016548 A DE 102014016548A DE 102014016548 A1 DE102014016548 A1 DE 102014016548A1
Authority
DE
Germany
Prior art keywords
implementation
white box
processor
lookup table
plain texts
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
DE102014016548.5A
Other languages
English (en)
Inventor
Hermann Drexler
Sven Bauer
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.)
Giesecke and Devrient Mobile Security GmbH
Original Assignee
Giesecke and Devrient GmbH
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 Giesecke and Devrient GmbH filed Critical Giesecke and Devrient GmbH
Priority to DE102014016548.5A priority Critical patent/DE102014016548A1/de
Priority to EP15795110.4A priority patent/EP3219042B1/de
Priority to EP15794079.2A priority patent/EP3218893B1/de
Priority to PCT/EP2015/002221 priority patent/WO2016074774A1/de
Priority to PCT/EP2015/002223 priority patent/WO2016074776A1/de
Priority to PCT/EP2015/002222 priority patent/WO2016074775A1/de
Priority to CN201580068364.6A priority patent/CN107005404B/zh
Priority to US15/525,235 priority patent/US10249220B2/en
Priority to CA2966417A priority patent/CA2966417C/en
Priority to US15/525,224 priority patent/US10403174B2/en
Priority to EP15795111.2A priority patent/EP3219043B1/de
Priority to US15/525,239 priority patent/US10438513B2/en
Priority to CN201580070804.1A priority patent/CN107111966B/zh
Priority to EP20020079.8A priority patent/EP3686871A1/de
Priority to CN202010868468.8A priority patent/CN112002210B/zh
Priority to PCT/EP2015/002246 priority patent/WO2016074782A1/de
Priority to US15/525,432 priority patent/US10431123B2/en
Priority to EP15801327.6A priority patent/EP3218894A1/de
Publication of DE102014016548A1 publication Critical patent/DE102014016548A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • G09C1/06Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system wherein elements corresponding to the signs making up the clear text are operatively connected with elements corresponding to the signs making up the ciphered text, the connections, during operation of the apparatus, being automatically and continuously permuted by a coding or key member
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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
    • 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/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • 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
    • 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
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • 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/08Randomization, e.g. dummy operations or using noise
    • 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)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)

Abstract

Es werden Verfahren zum einen zum Testen von und zum anderen zum Härten von Softwareapplikationen zum Durchführen von digitalen Transaktionen bereitgestellt, die eine ”White Box”-Implementierung eines kryptographischen Algorithmus umfassen. Das Verfahren zum Testen einer ”White Box”-Implementierung eines kryptographischen Algorithmus, die mittels eines geheimen Schlüssels aus einem Plaintext einen Ciphertext erzeugt und auf einem Prozessor mit wenigstens einem Register in Form von Maschinenbefehlen vorliegt, umfasst die folgenden Schritte: (a) das Einspeisen eines Plaintexts einer Vielzahl von Plaintexten in die ”White Box”-Implementierung; (b) das schrittweise Auslesen und Abspeichern des Inhalts des wenigstens einen Registers des Prozessors beim schrittweise Abarbeiten der Maschinenbefehle der ”White Box”-Implementierung, wobei beim schrittweise Abarbeiten der Maschinenbefehle der ”White Box”-Implementierung Zwischenergebnisse erzeugt werden können; (c) das N-malige Wiederholen der Schritte (a) und (b) mit einem weiteren Plaintext der Vielzahl von Plaintexten; und (d) das statistische Auswerten der Inhalte der Register und der Plaintexte, der Zwischenergebnisse und/oder der aus den Plaintexten erzeugten Ciphertexte, indem nach Korrelationen zwischen den Inhalten der Register und den Plaintexten, den Zwischenergebnissen und/oder den Ciphertexten gesucht wird, um den geheimen Schlüssel zu ermitteln.

Description

  • Gebiet der Erfindung
  • Die Erfindung betrifft allgemein das technische Gebiet des Schützen von Softwareapplikationen gegen Angriffe. Insbesondere betrifft die Erfindung Verfahren zum einen zum Testen von und zum anderen zum Härten von Softwareapplikationen zum Durchführen von digitalen Transaktionen, die eine ”White Box”-Implementierung eines kryptographischen Algorithmus umfassen.
  • Hintergrund der Erfindung
  • Mehr und mehr werden mobile Endgeräte in Form von Smartphones dazu verwendet, digitale Transaktionen durchzuführen, beispielsweise zum bargeldlosen Bezahlen an einem NFC-Terminal oder zum Kauf einer Ware oder einer Dienstleistung bei einem Online-Versandhändler. Bei der Durchführung einer solchen digitalen Transaktion interagiert in der Regel eine auf dem Smartphone implementierte Softwareapplikation (kurz ”App” genannt) mit einem Terminal bzw. Server. Dabei ist häufig ein kryptographischer Algorithmus, z. B. ein Verschlüsselungsalgorithmus, Teil der auf dem mobilen Endgerät implementierten Softwareapplikation, die auf sicherheitskritische Daten, z. B. PINs, Passwörter, Schlüssel etc., zugreift. In der Vergangenheit sind sicherheitskritische Daten in der Regel auf einem eigenständigen Sicherheitselement des mobilen Endgeräts häufig in Form einer aus dem mobilen Endgerät herausnehmbaren SIM-Karte hinterlegt worden, um diese vor einem Angriff durch unbefugte Person zu schützen.
  • Ein neuerer Ansatz, der insbesondere bei der Durchführung von digitalen Transaktionen mit einem mobilen Endgerät vorteilhaft eingesetzt werden kann, das kein eigenständiges Sicherheitselement zum sicheren Speichern von sicherheitskritischen Daten aufweist, basiert auf der sogenannten ”White Box”-Kryptographie. Bei einer ”White Box”-Implementierung eines kryptographischen Algorithmus wird versucht, die sicherheitskritischen Daten, insbesondere geheime kryptographische Schlüssel, derart in der Implementierung zu verbergen, dass ein Angreifer, der vollen Zugriff auf die Implementierung hat, nicht dazu in der Lage ist, die sicherheitskritischen Daten aus dieser zu extrahieren. Eine ”White Box”-Implementierung des AES-Kryptoalgorithmus (”Advanced Encryption Standard”) ist beispielsweise aus der Veröffentlichung "A Tutorial on White-box AES" von James A. Muir, Cryptology ePrint Archive, Report 2013/104 bekannt. Ebenso werden ”White Box”-Implementierungen von kryptographischen Algorithmen bzw. Routinen kommerziell vertrieben.
  • Der Erfindung liegt die Aufgabe zugrunde, Verfahren zum einen zum Testen von und zum anderen zum Härten von Softwareapplikationen zum Durchführen von digitalen Transaktionen bereitzustellen, die eine ”White Box”-Implementierung eines kryptographischen Algorithmus umfassen.
  • Zusammenfassung der Erfindung
  • Die vorstehenden Aufgaben werden gemäß der vorliegenden Erfindung durch die jeweiligen Gegenstände der unabhängigen Ansprüche gelöst. Bevorzugte Ausführungsformen der Erfindung werden in den abhängigen Ansprüchen definiert.
  • Überraschenderweise hat sich bei den Untersuchungen der Erfinder gezeigt, dass sich bei kommerziell erhältlichen ”White Box”-Implementierungen von kryptographischen Algorithmen bzw. Routinen der geheime Schlüssel ableiten lässt, und zwar mittels des folgenden Verfahrens gemäß einem ersten Aspekt der Erfindung.
  • Gemäß einem ersten Aspekt der Erfindung wird ein Verfahren zum Testen einer auf einem Prozessor ausführbaren ”White Box”-Implementierung eines kryptographischen Algorithmus bereitgestellt, die mittels eines geheimen Schlüssels aus einem Plaintext einen Ciphertext erzeugt und auf dem Prozessor in Form von Maschinenbefehlen vorliegt, wobei der Prozessor wenigstens ein Register umfasst. Dabei umfasst das Verfahren die folgenden Schritte: (a) das Einspeisen eines Plaintexts einer Vielzahl von Plaintexten in die ”White Box”-Implementierung; (b) das schrittweise Auslesen und Abspeichern des Inhalts des wenigstens einen Registers des Prozessors beim schrittweise Abarbeiten der Maschinenbefehle der ”White Box”-Implementierung, wobei beim schrittweise Abarbeiten der Maschinenbefehle der ”White Box”-Implementierung Zwischenergebnisse erzeugt werden können; (c) das N-malige Wiederholen der Schritte (a) und (b) mit einem weiteren Plaintext der Vielzahl von Plaintexten; und (d) das statistische Auswerten der Inhalte der Register und der Plaintexte, der Zwischenergebnisse und/oder der aus den Plaintexten erzeugten Ciphertexte, indem nach Korrelationen zwischen den Inhalten der Register und den Plaintexten, den Zwischenergebnissen und/oder den Ciphertexten gesucht wird, um den geheimen Schlüssel zu ermitteln.
  • Vorzugsweise wird der Inhalt eines Registers für einen Plaintext als Funktion der Anzahl der abgearbeiteten Maschinenbefehle analog zu einer Stromkurve bei der differentiellen Stromanalyse behandelt.
  • Gemäß bevorzugter Ausführungsformen der Erfindung ist die ”White Box”-Implementierung Teil einer Softwareapplikation zum Durchführen einer digitalen Transaktion.
  • Vorzugsweise umfasst der Schritt (d) des statistischen Auswertens der Inhalte der Register und der Plaintexte, der Zwischenergebnisse und/oder der aus den Plaintexten erzeugten Ciphertexte das Auswerten mittels statistischer Verfahren, die aus der differentiellen Stromanalyse bekannt sind.
  • Gemäß bevorzugter Ausführungsformen der Erfindung ist N derart groß gewählt, dass ein statisches Auswerten der Inhalte der Register und der Plaintexte, der Zwischenergebnisse und/oder der aus den Plaintexten erzeugten Ciphertexte möglich ist. Vorzugsweise werden die Schritte (a) und (b) mit wenigstens 10, 100 oder 1000 unterschiedlichen Plaintexten durchgeführt.
  • Vorzugsweise wird beim Schritt (b) das Auslesen des Inhalts des wenigstens einen Registers erst ab einem in der ”White Box”-Implementierung vordefinierten Maschinenbefehl durchgeführt wird.
  • Gemäß bevorzugter Ausführungsformen der Erfindung wird beim Schritt (b) das Auslesen des Inhalts des wenigstens einen Registers ab dem vordefinierten Maschinenbefehl für eine vordefinierte Anzahl M von Maschinenbefehlen durchgeführt.
  • Vorzugsweise handelt es sich bei der ”White Box”-Implementierung eines kryptographischen Algorithmus um eine ”White Box”-Implementierung des AES-Algorithmus.
  • Gemäß bevorzugter Ausführungsformen der Erfindung werden beim Schritt (d) des statistischen Auswertens der Inhalte der Register und der Plaintexte, der Zwischenergebnisse und/oder der aus den Plaintexten erzeugten Ciphertexte solche Zwischenergebnisse und/oder aus den Plaintexten erzeugte Ciphertexte verwendet, die von nur wenigen Bits des geheimen Schlüssels abhängen.
  • Gemäß einem zweiten Aspekt der Erfindung wird ein Verfahren zum Härten einer auf einem Prozessor ausführbaren ”White Box”-Implementierung eines kryptographischen Algorithmus bereitgestellt, die unter Verwendung eines kryptographischen Schlüssels aus einem Plaintext einen Ciphertext erzeugen kann. Dabei ist die ”White Box”-Implementierung derart ausgestaltet, dass bei der Erzeugung des Ciphertextes wenigstens eine Lookup-Tabelle zum Einsatz kommt, um statisch Eingabewerte der Lookup-Tabelle auf Ausgabewerte der Lookup-Tabelle abzubilden. Das Verfahren umfasst den Schritt, dass die Lookup-Tabelle derart statistisch permutiert wird, dass die einzelnen Bits der permutierten Lookup-Tabelle im Wesentlichen nicht mit den Bits der Lookup-Tabelle korrelieren. Mit anderen Worten: die Lookup-Tabelle T wird derart mittels einer Permutation P statistisch permutiert, dass die einzelnen Bits der permutierten Lookup-Tabelle T'(x) = P(T(x)) bei zufällig variierendem Input x nicht mit den Bits T(x) korrelieren.
  • Vorzugsweise umfasst das Verfahren ferner den Schritt des Randomisierens der ”White Box”-Implementierung. Hierbei wird unter ”Randomisieren” im Wesentlichen verstanden, dass bei jeder Ausführung der ”White Box”-Implementierung ein zusätzlicher, variierender Zufall, vorzugsweise in Form von Zufallszahlen, eingestreut wird.
  • Gemäß einem dritten Aspekt der Erfindung wird ein weiteres Verfahren zum Härten einer auf einem Prozessor ausführbaren ”White Box”-Implementierung eines kryptographischen Algorithmus, die unter Verwendung eines kryptographischen Schlüssels aus einem Plaintext einen Ciphertext erzeugen kann. Dabei ist die ”White Box”-Implementierung derart ausgestaltet, dass bei der Erzeugung des Ciphertextes wenigstens eine Lookup-Tabelle zum Einsatz kommt, um statisch Eingabewerte der Lookup-Tabelle auf Ausgabewerte der Lookup-Tabelle abzubilden. Das Verfahren umfasst den Schritt des Randomisierens der ”White Box”-Implementierung. Hierbei wird unter ”Randomisieren” im Wesentlichen verstanden, dass bei jeder Ausführung der ”White Box”-Implementierung ein zusätzlicher, variierender Zufall, vorzugsweise in Form von Zufallszahlen, eingestreut wird.
  • Vorzugsweise umfasst der Schritt des Randomisierens der ”White Box”-Implementierung gemäß dem zweiten oder dritten Aspekt der Erfindung den Schritt des zufälligen Verwürfelns des Programmablaufs der ”White Box”-Implementierung.
  • Gemäß bevorzugter Ausführungsformen der Erfindung umfasst der Schritt des Randomisierens der ”White Box”-Implementierung gemäß dem zweiten oder dritten Aspekt der Erfindung den Schritt des Einbringens von funktional äquivalenten Code-Varianten, aus denen bei der Ausführung der ”White Box”-Implementierung zufällig eine der Code-Varianten ausgewählt werden kann.
  • Vorzugsweise umfasst der Schritt des Randomisierens der ”White Box”-Implementierung gemäß dem zweiten oder dritten Aspekt der Erfindung den Schritt des zufälligen Maskieren von Zwischenergebnissen, Eingabedaten und/oder Ausgabedaten.
  • Gemäß bevorzugter Ausführungsformen der Erfindung umfasst der Schritt des Randomisierens der ”White Box”-Implementierung gemäß dem zweiten oder dritten Aspekt der Erfindung den Schritt des Einbringens von zufälligen Veränderungen, die bei den in der ”White Box”-Implementierung vorgenommenen Operationen wieder herausfallen.
  • Vorzugsweise umfasst der Schritt des Randomisierens der ”White Box”-Implementierung gemäß dem zweiten oder dritten Aspekt der Erfindung den Schritt des Randomisierens von tabellierten Funktionen.
  • Gemäß bevorzugter Ausführungsformen der Erfindung umfasst der Schritt des Randomisierens der ”White Box”-Implementierung gemäß dem zweiten oder dritten Aspekt der Erfindung den Schritt des Ersetzen von in der ”White Box”-Implementierung verwendeten Lookup-Tabellen durch mehrere funktional äquivalente Varianten von Lookup-Tabellen, wobei bei der Durchführung der ”White Box”-Implementierung jeweils eine der funktional äquivalenten Varianten von Lookup-Tabellen zufällig ausgewählt werden kann. Dabei werden die Varianten von Lookup-Tabellen vorzugsweise statistisch derart permutiert, dass die einzelnen Bits der permutierten Lookup-Tabelle im Wesentlichen nicht mit den Bits der ursprünglichen Lookup-Tabelle korrelieren.
  • Gemäß einem vierten Aspekt der Erfindung wird eine ”White Box”-Implementierung eines kryptographischen Algorithmus bereitgestellt, die unter Verwendung eines kryptografischen Schlüssels aus einem Plaintext einen Ciphertext erzeugen kann, wobei die ”White Box”-Implementierung mit einem Verfahren gemäß dem zweiten oder dritten Aspekt der Erfindung gehärtet worden ist.
  • Weitere Merkmale, Vorteile und Aufgaben der Erfindung gehen aus der folgenden detaillierten Beschreibung mehrerer Ausführungsbeispiele und Ausführungsalternativen hervor. Es wird auf die Zeichnungen verwiesen, in denen zeigen:
  • 1 eine schematische Darstellung eines beispielhaften Kommunikationssystems mit einem mobilen Endgerät, bei dem die vorliegende Erfindung vorteilhaft zum Einsatz kommen kann,
  • 2 ein Flussdiagramm, das den Ablauf eines Verfahrens zum Testen einer Softwareapplikation zum Durchführen von digitalen Transaktionen gemäß einer bevorzugten Ausführungsform zeigt, die eine ”White Box”-Implementierung eines kryptographischen Algorithmus umfasst und auf dem mobilen Endgerät von 1 implementiert ist, und
  • 3 ein Flussdiagramm, das den Ablauf eines Verfahrens zum Härten einer Softwareapplikation zum Durchführen von digitalen Transaktionen gemäß einer bevorzugten Ausführungsform zeigt, die eine ”White Box”-Implementierung einer kryptographischen Algorithmus umfasst und auf dem mobilen Endgerät von 1 implementiert ist.
  • 1 zeigt eine schematische Darstellung eines beispielhaften Kommunikationssystems 10, bei dem die Erfindung vorteilhaft zum Einsatz kommen kann. Das Kommunikationssystem 10 umfasst eine Computereinheit 20 in Form eines mobilen Endgeräts, vorzugsweise in Form eines Smartphones. Das mobile Endgerät 20 ist dazu ausgestaltet, über einen Kommunikationskanal 50 mit einem Server bzw. einem Terminal 60 zu kommunizieren. Bei dem Kommunikationskanal 50 kann es sich beispielsweise um das Internet, ein Mobilfunknetzwerk, einen NFC-Kanal oder dergleichen handeln. Der Server 60 könnte ein NFC-Terminal eines Service-Anbieters sein, mit dem eine Softwareapplikation 26b auf dem mobilen Endgerät 20 Transaktionen durchführen kann, z. B. eine Payment-Transaktion, bei dem die Softwareapplikation einen Bezahlvorgang abwickelt.
  • Das mobile Endgerät 20 verfügt über einen Chip 22 mit einer zentralen Verarbeitungseinheit (”central processing unit”; CPU) beispielsweise in Form eines Mikroprozessors 24. Bekanntermaßen gehören zu den primären Aufgaben des Prozessors 24 das Ausführen von arithmetischen und logischen Funktionen und das Lesen und Schreiben von Datenelementen, wie dies durch eine auf dem Prozessor 24 ablaufende Softwareapplikation in Form von Maschinenbefehlen definiert wird. Hierzu umfasst der Prozessor 24 bei der in 1 dargestellten Ausführungsform ein Rechenwerk 30 sowie ein Steuerwerk 40.
  • Das Rechenwerk 30 des Prozessors 24 besteht vorzugsweise im Wesentlichen aus einer arithmetisch-logischen Einheit (”arithmetic logic unit”; ALU) 32 sowie mehreren Arbeits- bzw. Datenregistern, von denen in 1 beispielhaft drei Register, nämlich die Register R0, R1 und R2 dargestellt sind und mit den Bezugszeichen 34, 36 und 38 gekennzeichnet sind. In der Regel wird das Rechenwerk 30 jedoch mehr (wie durch die Punkte in 1 angedeutet) als die in Figur dargestellten drei Register R0, R1 und R2 aufweisen, beispielsweise vier, acht, sechzehn oder mehr Register. Das Rechenwerk 30 ist bekanntermaßen im Wesentlichen dazu ausgestaltet, mittels der ALU 32 Datenelemente gemäß den Maschinenbefehlen der von dem Prozessor 24 ausgeführten Softwareapplikation miteinander zu verknüpfen und die Ergebnisse derartiger Verknüpfungen beispielsweise in den Registern R0, R1 oder R2 zur Weiterverarbeitung abzulegen. Hierbei kann beispielsweise wenigstens eines der Register R0, R1 und R2 als Akkumulator für die ALU 32 dienen.
  • Das Steuerwerk 40 des Prozessors 24 dient bekanntermaßen im Wesentlichen dazu, die Arbeitsweise des Rechenwerks 30 und gegebenenfalls weiterer Komponenten des Prozessors 24 auf Basis der sukzessiven Abarbeitung der Maschinenbefehle einer auf dem Prozessor 24 ablaufenden Softwareapplikation zu steuern. Hierzu umfasst ebenso das Steuerwerk 40 des Prozessors 24 mehrere Register, und zwar vorzugsweise insbesondere einen Befehlszähler (”program counter”; PC) 42, ein Befehlsregister (”instruction register”; IR) 44, ein Statusregister (”status register”; SR) 46 sowie ein Stapelregister (”stack pointer”; SP) 48.
  • Der Befehlszähler PC enthält in der Regel jeweils die Speicheradresse des nächsten auszuführenden Maschinenbefehls der auf dem Prozessor 24 ablaufenden Softwareapplikation. Der aktuell auszuführende Maschinenbefehl ist im Befehlsregister IR hinterlegt. Das Statusregister SR ist dazu ausgestaltet, Rückmeldungen aus dem Rechenwerk 30 und dem Steuerwerk 40 aufzunehmen, welche die Adressfortschaltung in der von dem Prozessor 24 ausgeführten Softwareapplikation beeinflussen können. Das Stapelregister SP 48 des Steuerwerks 40 des Prozessors 24 dient zur Verwaltung eines Stapelspeichers (auch ”Stack” gennannt), der in einer Speichereinheit 26 des mobilen Endgeräts 20 implementiert sein kann. Hierzu enthält das Stapelregister SP 48 des Steuerwerks 40 üblicherweise die Speicheradresse, die das variable Ende des Stapelspeichers in der Speichereinheit 26 definiert.
  • Die Speichereinheit 26, die in Kommunikationsverbindung mit dem Prozessor 24 steht, kann vorzugsweise einen flüchtigen Arbeitsspeicher (RAM) beispielsweise zur Aufnahme der Maschinenbefehle einer von dem Prozessor 24 auszuführenden Softwareapplikation umfassen. Ferner kann die Speichereinheit 26 einen nichtflüchtigen, vorzugsweise wieder beschreibbaren Speicher umfassen, um beispielsweise im unbestromten Zustand die Maschinenbefehle einer von dem Prozessor 24 auszuführenden Softwareapplikation aufzunehmen. Vorzugsweise handelt es sich bei dem nichtflüchtigen, wieder beschreibbaren Speicher um einen Flash-Speicher (Flash-EEPROM). Dabei kann es sich beispielsweise um einen Flash-Speicher mit einer NAND- oder einer NOR-Architektur handeln. Selbstverständlich kann die Speichereinheit 26 auch einen Festwertspeicher (”read only memory”; ROM) umfassen.
  • In 1 ist schematisch dargestellt, dass eine Softwareapplikation 26a zum Durchführen einer digitalen Transaktion des mobilen Endgeräts 10 mit dem Server 60 auf der Speichereinheit 26 hinterlegt ist. Erfindungsgemäß umfasst die Softwareapplikation 26a eine ”White Box”-Implementierung eines kryptographischen Algorithmus, beispielsweise eine ”White Box”-Implementierung des AES-Algorithmus, die in 1 mit der Bezugsziffer 26b gekennzeichnet ist. Dabei ist die ”White Box”-Implementierung 26b dazu ausgestaltet, mittels eines in der ”White Box”-Implementierung 26b verborgenen (d. h. geheimen) kryptographischen Schlüssels aus einem Plaintext einen Ciphertext zu erzeugen.
  • Unter weiterer Bezugnahme auf 2 wird nachstehend eine bevorzugte Ausführungsform eines Verfahrens zum Testen der ”White Box”-Implementierung 26b von 1 beschrieben.
  • In Schritt S1 von 2 wird der zu testenden ”White Box”-Implementierung 26b (bzw. der Softwareapplikation 26a, welche die zu testende ”White Box”-Implementierung 26b umfasst,) ein erster bekannter Plaintext als Input bereitgestellt, um von der ”White Box”-Implementierung 26b mittels des darin verborgenen geheimen Schlüssels verschlüsselt zu werden, d. h. einen entsprechenden Ciphertext zu erzeugen.
  • In Schritt S2 von 2 wird beim schrittweise Abarbeiten der Maschinebefehle, die auf der Speichereinheit 26 hinterlegt sind und die ”White Box”-Implementierung 26b (bzw. die Softwareapplikation 26a, welche die zu testende ”White Box”-Implementierung 26b umfasst,) definieren, schrittweise die Inhalte der Register R0, R1, R2, ... des Prozessors 24 ausgelesen und abgespeichert. Vorzugsweise werden dabei alle Datenregister des Prozessors 24 ausgelesen. Wie dies dem Fachmann bekannt ist, könnte das Auslesen und Abspeichern der Registerinhalte beispielsweise mittels eines Debuggers durchgeführt werden. Vorzugsweise werden die Registerinhalte bei jedem Schritt, d. h. nach jedem Befehl, ausgelesen und abgespeichert. Beim schrittweise Abarbeiten der Maschinebefehle zur Erzeugung eines Ciphertextes aus dem Plaintext können eine oder mehrere Zwischenergebnisse entstehen.
  • Insbesondere für den Fall, dass die ”White Box”-Implementierung 26b eines kryptographischen Algorithmus Teil einer umfangreichen Softwareapplikation 26a ist, kann es erfindungsgemäß vorteilhaft sein, dass das schrittweise Auslesen und Abspeichern der Registerinhalte des Prozessors 24 erst ab einem definierbaren Maschinenbefehl in der Softwareapplikation 26a durchgeführt wird (vergleichbar einem Haltepunkt (”breakpoint”) beim Debuggen).
  • Wie bereits vorstehend erwähnt, ist das Endergebnis der schrittweisen Abarbeitung der Maschinenbefehle der ”White Box”-Implementierung 26b ein zu dem in Schritt S1 eingegebenen Plaintext dazugehöriger Ciphertext, der in Schritt S3 von der ”White Box”-Implementierung 26b ausgegeben wird. Vorzugsweise werden der Ciphertext und/oder der dazugehörige Plaintext in Verbindung mit den bereits in Schritt S2 nach jeder Abarbeitung eines Maschinenbefehls gespeicherten Registerinhalten des Prozessors 24 abgespeichert. Überdies können bestimmte bei der Erzeugung des Ciphertextes berechnete Zwischenergebnisse abgespeichert werden.
  • Erfindungsgemäß werden die Schritte S1 bis S3 von 2 für eine Vielzahl von Plaintexten durchgeführt bzw. wiederholt (siehe Schritt S4 von 2). Vorzugsweise werden die Schritte S1 bis S3 von 2 für mehr als 10, mehr als 100 oder mehr als 1000 unterschiedliche Plaintexte durchgeführt bzw. wiederholt. Wie der Fachmann erkennt, erhält man so für jede Wiederholung der Schritte S1 bis S3 einen jeweiligen Datensatz, der die Registerinhalte des Prozessors 24 zu den jeweiligen Maschinenbefehlen der ”White Box”-Implementierung 26b, den eingegebenen Plaintext, ausgewählte Zwischenergebnisse und den dazugehörigen Ciphertext umfasst.
  • In Schritt S5 von 2 werden die mittels der Schritte S1 bis S4 gewonnenen Datensätze ausgewertet, um Informationen über den für die Erzeugung der Ciphertexte aus den jeweiligen Plaintexten von der ”White Box”-Implementierung 26b verwendeten Schlüssel zu gewinnen. Erfindungsgemäß werden hierzu statistische Verfahren angewendet, wie diese aus der differentiellen Stromanalyse (”Differential Power Analysis”; DPA) bekannt sind, bei der es sich bekanntermaßen um eine Form von Seitenkanalangriffen auf Chipkarten handelt. Erfindungsgemäß lassen sich die statistischen Verfahren, die aus der differentiellen Stromanalyse von auf Chipkarten implementierten kryptographischen Algorithmen bekannt sind, besonders vorteilhaft dadurch anwenden, dass der Inhalt eines Registers des Prozessors als Funktion der Anzahl der bereits abgearbeiteten Maschinenbefehle wie eine Stromkurve (Stromverlauf als Funktion des Maschinenbefehls bzw. der Zeit) bei der differentiellen Stromanalyse behandelt wird.
  • Wie dies dem Fachmann bekannt ist, sucht ein Angreifer bei der differentiellen Stromanalyse für einen geratenen Teil des geheimen Schlüssels in den Stromkurven nach Korrelationen zwischen der Stromaufnahme und Zwischenergebnissen, die für diesen Teilschlüssel und bekannte Plain- oder Ciphertexte berechnet worden sind. Der Angreifer nimmt also an, dass ein Teil des Schlüssel (z. B. ein Byte) einen bestimmten Wert hat und wählt dann einen Rechenschritt im Kryptoalgorithmus, dessen Ergebnis nur von diesem Teil des Schlüssels sowie bekannten Plain- oder Ciphertextdaten abhängt. Für diesen festen Teilschlüsselwert und variierende Plain- oder Ciphertextdaten berechnet er dann das Ergebnis des angegriffenen Rechenschrittes. Findet er signifikante Korrelationen zwischen den berechneten Daten und der bei der Bearbeitung der selben Plain- oder Ciphertextdaten aufgezeichneten Stromaufnahme des angegriffenen Gerätes, dann geht der Angreifer davon aus, dass er den Teilschlüsselwert korrekt bestimmt hat. Finden sich keine signifikanten Korrelationen für diesen Teilschlüsselwert, so wählt der Angreifer einen anderen Wert für den Teilschlüssel. Finden sich für keinen Wert des Teilschlüssels Korrelationen, so schlägt der Angriff auf den Teilschlüssel fehl. Wurde der anzugreifende Rechenschritt geschickt gewählt, ist der in die Rechnung eingehende Teilschlüssel so kurz, dass der Angreifer alle für den Teilschlüssel möglichen Werte ausprobieren kann. Hat der Angreifer einen Teil des Schlüssels erfolgreich bestimmt, wendet er die gleiche Technik an, um weitere Schlüsselteile zu ermitteln. Dabei kann er auch die Tatsache nutzen, dass einige Schlüsselteile bereits erfolgreich bestimmt wurden.
  • Überraschenderweise hat sich gezeigt, dass bei der analogen Anwendung der aus der differentiellen Stromanalyse bekannten statistischen Verfahren im Rahmen der vorliegenden Erfindung, bei der, wie vorstehend erwähnt, der Inhalt eines Registers des Prozessors als Funktion des Maschinenbefehls wie eine Stromkurve behandelt wird, der in der ”White Box”-Implementierung 26b verborgene Schlüssel ermittelt werden kann, indem nach Korrelationen zwischen den Registerinhalten und den Plaintexten, bei der Berechnung erzeugten Zwischenergebnissen und/oder den erzeugten Ciphertexten gesucht wird. Insbesondere sind hier solche bei der Berechnung eines Ciphertextes erzeugte Zwischenergebnisse geeignet, die nur von wenigen Bits des Schlüssels abhängen.
  • Für weitere Details zu der differentiellen Stromanalyse und den dort eingesetzten statistischen Verfahren zur Ermittlung eines geheimen Schlüssels wird auf die Veröffentlichung "Differential Power Analysis", Paul C. Kocher, Joshua Jaffe, Benjamin Jun, Crypto 1999 verwiesen.
  • Die Veröffentlichung "White-Box Cryptogrpahy and an AES Implementation", S. Chow, P. Eisen, H. Johnson, P. C. van Oorschot bildet die wesentliche Grundlage für die aus der Literatur bekannten White Box”-Implementierungen von kryptographischen Algorithmen. In dieser Veröffentlichung wird zum Verbergen des Schlüssels in einer ”White Box”-Implementierung des AES-Algorithmus die Verwendung einer Vielzahl von Lookup-Tabellen zum Abbilden einer Eingangsbitfolge auf eine Ausgangsbitfolge empfohlen. Für Details hierzu wird auf die genannte Veröffentlichung verwiesen.
  • Bei einer kommerziell erhältlichen ”White Box”-Implementierung des AES-Algorithmus, bei der eine Vielzahl von Lookup-Tabellen verwendet werden, ist es den Erfindern mittels des vorstehend im Zusammenhang mit 2 beschriebenen Verfahrens gelungen, unter Verwendung von einigen hundert Plaintexten den in der ”White Box”-Implementierung verborgenen Schlüssel zu extrahieren. Im Detail verläuft der dabei verwendete Angriff auf die ”White Box”-Implementierung des AES-Algorithmus folgendermaßen. Der Angreifer sammelt z. B. für 200 verschiedene Plaintexte die Registerinhalte. Dann wählt er eine Stelle im AES aus, an der nur wenige Bits des geheimen Schlüssels in das Ergebnis eingegangen sind, beispielsweise den Ausgang des ersten S-Box Lookup. Wie dies dem Fachmann bekannt ist, hängt dieser von einem Byte des Schlüssels und einem Byte des Plaintextes ab. Jetzt rät der Angreifer einen Wert für dieses eine Byte des Schlüssels. Damit rechnet er alle 200 S-Box-Ausgänge für die 200 Plaintexte aus. Jetzt prüft er, ob an irgendeiner Stelle die Registerinhalte mit diesem S-Box-Ausgang korrelieren. Falls dem so ist, hat der Angreifer vermutlich das Schlüssel-Byte richtig erraten. Falls der Angreifer keine Korrelation findet, rät er einen neuen Wert für das Schlüssel-Byte und wiederholt den Vorgang. In diesem Beispiel muss der Angreifer also schlimmstenfalls alle Werte für ein Byte ausprobieren, d. h. 256 mögliche Kombinationen, was mit verhältnismäßig geringem Aufwand durchführbar ist. Wie der Fachmann erkennt, ist bei Zwischenergebnissen, die von mehr als einem Byte des Schlüssels abhängen, der Aufwand entsprechend größer.
  • Es hat sich überraschenderweise ergeben, dass sich der in 2 dargestellte Angriff dadurch abwehren oder zumindest erschweren lässt, dass die in einer ”White Box”-Implementierung, z. B. der in 1 angedeuteten ”White Box”-Implementierung 26b, eingesetzten Lookup-Tabellen statistisch geeignet permutiert werden. Unter einer geeigneten statistischen Permutation einer Lookup-Tabelle wird hier eine Permutation verstanden, bei der die einzelnen Bits der permutierten Lookup-Tabelle nicht mit den Bits der ursprünglichen Lookup-Tabelle korrelieren. Mit anderen Worten: unter einer geeigneten Permutation einer Lookup-Tabelle T wird hier eine Permutation P verstanden, bei der die einzelnen Bits der permutierten Lookup-Tabelle T'(x) = P(T(x)) bei zufällig variierendem Input x nicht mit den Bits T(x) korrelieren.
  • 3 zeigt in Form eines Flussdiagramms eine bevorzugte Ausführungsform eines Verfahrens zum Härten der ”White Box”-Implementierung 26b von 1.
  • In einem ersten Schritt S10 von 3 wird eine Lookup-Tabelle in der ”White Box”-Implementierung 26b ausfindig gemacht.
  • Diese Lookup-Tabelle wird, wie vorstehend beschrieben, in Schritt S11 von 3 statistisch derart permutiert, dass die einzelnen Bits der permutierten Lookup-Tabelle im Wesentlichen nicht mit den Bits der ursprünglichen Lookup-Tabelle korrelieren, d. h. die Lookup-Tabelle T wird hier derart mittels einer Permutation P permutiert, dass die einzelnen Bits der permutierten Lookup-Tabelle T'(x) = P(T(x)) bei zufällig variierendem Input x nicht mit den Bits T(x) korrelieren.
  • Für Details zu statistischen Permutationen von Lookup-Tabellen von ”White Box”-Implementierungen im Allgemeinen, d. h. Permutationen, bei denen nicht sichergestellt ist, dass die einzelnen Bits der permutierten Lookup-Tabelle im Wesentlichen nicht mit den Bits der ursprünglichen Lookup-Tabelle korrelieren, wird auf die Veröffentlichung "A Tutorial on White Box AES", James A. Muir, Cryptology ePrint Archive, Report 2013/104, http://eprint.iacr.org/2013/104 verwiesen.
  • Wie in Schritt S12 von 3 dargestellt, kann der Schritt S11 von 3 für weitere, vorzugsweise alle Lookup-Tabellen der ”White Box”-Implementierung 26b durchgeführt werden.
  • Nachdem wenigstens eine Lookup-Tabelle der ”White Box”-Implementierung 26b erfindungsgemäß in Schritt S11 von 3 ”gehärtet” worden ist, können in einem Schritt S13 weitere Maßnahmen ergriffen werden, den in 2 dargestellten Angriff abzuwehren oder zumindest zu erschweren. Allgemein lassen sich diese weiteren Maßnahmen gemäß bevorzugter Ausführungsformen der vorliegenden Erfindung als ein Einstreuen von Zufall in bzw. als ein ”Randomisieren” der ”White Box”-Implementierung 26b bezeichnen. Hierbei wird unter ”Randomisieren” im Wesentlichen verstanden, dass bei jeder Ausführung der ”White Box”-Implementierung 26b ein zusätzlicher, variierender Zufall, vorzugsweise in Form von Zufallszahlen, eingestreut wird.
  • Im Einzelnen können gemäß bevorzugter Ausführungsformen der Erfindung die folgenden weiteren Maßnahmen ergriffen werden:
    • 1. Der Programmablauf der ”White Box”-Implementierung 26b kann zufällig verwürfelt werden. Hierzu werden Abschnitte der ”White Box”-Implementierung 26b, die parallelisiert werden können, in zufälliger Reihenfolge ausgeführt. Dabei wird die Reihenfolge für jeden Durchlauf, d. h. für jeden neuen Plaintext, neu zufällig erzeugt. Wie dies dem Fachmann bekannt ist, kann beispielsweise der S-Box-Lookup bei einer Implementierung des AES-Algorithmus parallelisiert werden.
    • 2. In die ”White Box”-Implementierung 26b können Code-Varianten eingebracht werden, wobei die Code-Varianten trotz unterschiedlichem Programmablauf die gleiche Funktionalität bereitstellen. Bei der Ausführung der ”White Box”-Implementierung kann dann zufällig eine dieser funktional äquivalenten Code-Varianten ausgewählt.
    • 3. Die ”White Box”-Implementierung 26b kann so modifiziert werden, dass Zwischenergebnisse, Eingabedaten und/oder Ausgabedaten zufällig maskiert werden. Hierzu werden die Zwischenergebnisse, Eingabedaten und/oder Ausgabedaten als Summe zerlegt, wobei jeder einzelne Summand zufällig ist. Ist beispielsweise x ein zu maskierendes Datenelement und r eine Zufallszahl, dann können statt des Datenelements x die Datenelemente ”x XOR r” und r verarbeitet werden, wobei die für das Datenelement x ausgelegten Operationen entsprechend an die Arbeit mit den Datenelementen ”x XOR r” und r angepasst werden müssen. Allgemeiner kann das Datenelement x als Summe (arithmetisch oder XOR) von mehreren Datenelementen xi, i = 1, ..., n dargestellt werden. Von den vielen möglichen Darstellungen wird eine zufällig ausgewählt. Die anfangs genannte Darstellung ergibt sich für n = 2 mit x1 = x XOR r und x2 = r.
    • 4. Insbesondere im Zusammenhang mit asymmetrischen Kryptoalgorithmen können in die ”White Box”-Implementierung 26b zufällige Veränderungen eingebracht werden, die bei den in der Implementierung 26b vorgenommenen Berechnungen wieder herausfallen. Vorzugsweise können hierzu die dem Fachmann bekannten Blinding-Techniken verwendet werden, wie diese beispielsweise in Abschnitt 3.4.1.1 des Dokuments "BSI: Minimum Requirements for Evaluating Side-Channel Attack Resistance of RSA, DSA and Diffie-Hellman Key Exchange Implementations", Part of AIS46, https://www.bs.bund.de/SharedDocs/Downloads/DE/BSI/Zertifizierung/Interpretationen/AIS_46_BSI_guidelines_SCA_RSA_V1_0_e_pdf.pdf beschrieben werden.
    • 5. In die ”White Box”-Implementierung 26b können tabellierte Funktionen randomisiert werden. Bei kryptographischen Algorithmen, die auf einem Prozessor ablaufen, sind Funktionen häufig in Form von Tabellen auf einem Speicher hinterlegt, beispielsweise die S-Boxen beim AES- oder DES-Algorithmus. Ist beispielsweise T eine Funktion, die in der ”White Box”-Implementierung 26b in Form der Werte T(0), T(1), T(2), ... hinterlegt ist, kann die ”White Box”-Implementierung 26b dadurch gehärtet werden, dass stattdessen beispielsweise die Werte T'(k) = u XOR T(k XOR v) hinterlegt werden, wobei die Zufallszahlen u und v bei jedem Durchlauf der gehärteten ”White Box”-Implementierung 26b neu gewählt werden.
    • 6. In der ”White Box”-Implementierung 26b verwendete Lookup-Tabellen können jeweils durch mehrere funktional äquivalente Varianten von Lookup-Tabellen ersetzt werden. Dabei sind diese Varianten von Lookup-Tabellen vorzugsweise gemäß dem in 3 dargestellten und vorstehend beschriebenen Schritt S11 gehärtet, d. h. statistisch derart permutiert, dass die einzelnen Bits der permutierten Lookup-Tabelle im Wesentlichen nicht mit den Bits der ursprünglichen Lookup-Tabelle korrelieren. Bei der Durchführung der ”White Box”-Implementierung kann jeweils eine der funktional äquivalenten Varianten von Lookup-Tabellen zufällig ausgewählt werden.
  • Obgleich es bevorzugt ist, dass die vorstehend beschriebenen Maßnahmen 1 bis 6 zum ”Randomisieren” der ”White Box”-Implementierung 26b in Verbindung mit dem in 3 dargestellten und vorstehend beschriebenen statistischen Permutieren von Lookup-Tabellen der ”White Box”-Implementierung 26b eingesetzt werden, wird der Fachmann erkennen, dass diese Maßnahmen prinzipiell auch eigenständig dazu eingesetzt werden können, den in 2 dargestellten Angriff auf die ”White Box”-Implementierung abzuwehren oder zumindest zu erschweren.
  • Bezugszeichenliste
  • 10
    Kommunikationssystem
    20
    Mobiles Endgerät
    22
    Chip
    24
    Prozessor
    26
    Speichereinheit
    26a
    Softwareapplikation
    26b
    ”White Box”-Implementierung eines Kryptoalgorithmus
    30
    Rechenwerk
    32
    ALU
    34, 36, 38
    Register R0, R1 und R2
    40
    Steuerwerk
    42
    Programmzähler PC
    44
    Befehlsregister IR
    46
    Statusregister SR
    48
    Stapelregister bzw. Stapelzeiger (Stack-Pointer) SP
    50
    Kommunikationskanal
    60
    Server bzw. Terminal
  • 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 Nicht-Patentliteratur
    • ”A Tutorial on White-box AES” von James A. Muir, Cryptology ePrint Archive, Report 2013/104 [0003]
    • ”Differential Power Analysis”, Paul C. Kocher, Joshua Jaffe, Benjamin Jun, Crypto 1999 [0046]
    • ”White-Box Cryptogrpahy and an AES Implementation”, S. Chow, P. Eisen, H. Johnson, P. C. van Oorschot [0047]
    • ”A Tutorial on White Box AES”, James A. Muir, Cryptology ePrint Archive, Report 2013/104, http://eprint.iacr.org/2013/104 [0053]
    • ”BSI: Minimum Requirements for Evaluating Side-Channel Attack Resistance of RSA, DSA and Diffie-Hellman Key Exchange Implementations”, Part of AIS46, https://www.bs.bund.de/SharedDocs/Downloads/DE/BSI/Zertifizierung/Interpretationen/AIS_46_BSI_guidelines_SCA_RSA_V1_0_e_pdf.pdf [0056]

Claims (21)

  1. Verfahren zum Testen einer auf einem Prozessor (24) ausführbaren ”White Box”-Implementierung (26b) eines kryptographischen Algorithmus, die mittels eines geheimen Schlüssels aus einem Plaintext einen Ciphertext erzeugt und auf dem Prozessor (24) in Form von Maschinenbefehlen vorliegt, wobei der Prozessor (24) wenigstens ein Register (R0, R1, R2) umfasst und das Verfahren die folgenden Schritte umfasst: (a) das Einspeisen eines Plaintexts einer Vielzahl von Plaintexten in die ”White Box”-Implementierung (26b); (b) das schrittweise Auslesen und Abspeichern des Inhalts des wenigstens einen Registers (R0, R1, R2) des Prozessors (24) beim schrittweise Abarbeiten der Maschinenbefehle der ”White Box”-Implementierung (26b), wobei beim schrittweise Abarbeiten der Maschinenbefehle der ”White Box”-Implementierung (26b) zur Erzeugung des Ciphertextes aus dem Plaintext Zwischenergebnisse erzeugt werden können; (c) das N-malige Wiederholen der vorstehenden Schritte (a) und (b) mit einem weiteren Plaintext der Vielzahl von Plaintexten; und (d) das statistische Auswerten der Inhalte der Register (R0, R1, R2) und der Plaintexte, der Zwischenergebnisse und/oder der aus den Plaintexten erzeugten Ciphertexte, indem nach Korrelationen zwischen den Inhalten der Register (R0, R1, R2) und den Plaintexten, den Zwischenergebnissen und/oder den aus den Plaintexten erzeugten Ciphertexten gesucht wird, um den geheimen Schlüssel zu ermitteln.
  2. Verfahren nach Anspruch 1, wobei der Inhalt eines Registers für einen Plaintext als Funktion der Anzahl der abgearbeiteten Maschinenbefehle analog zu einer Stromkurve bei der differentiellen Stromanalyse behandelt wird.
  3. Verfahren nach Anspruch 1, wobei die ”White Box”-Implementierung (26b) Teil einer Softwareapplikation (26a) zum Durchführen einer digitalen Transaktion ist.
  4. Verfahren nach Anspruch 1, wobei der Schritt (d) des statistischen Auswertens der Inhalte der Register (R0, R1, R2) und der Plaintexte, der Zwischenergebnisse und/oder der aus den Plaintexten erzeugten Ciphertexte den Schritt des Auswertens mittels statistischer Verfahren umfasst, die aus der differentiellen Stromanalyse bekannt sind.
  5. Verfahren nach Anspruch 1, wobei N derart groß gewählt ist, dass ein statisches Auswerten der Inhalte der Register (R0, R1, R2) und der Plaintexte, der Zwischenergebnisse und/oder der aus den Plaintexten erzeugten Ciphertexte möglich ist.
  6. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Schritte (a) und (b) mit wenigstens 10, 100 oder 1000 unterschiedlichen Plaintexten durchgeführt werden.
  7. Verfahren nach Anspruch 1, wobei beim Schritt (b) das Auslesen des Inhalts des wenigstens einen Registers erst ab einem in der ”White Box”-Implementierung (26b) vordefinierten Maschinenbefehl durchgeführt wird.
  8. Verfahren nach Anspruch 7, wobei beim Schritt (b) das Auslesen des Inhalts des wenigstens einen Registers ab dem vordefinierten Maschinenbefehl für eine vordefinierte Anzahl M von Maschinenbefehlen durchgeführt wird.
  9. Verfahren nach einem der vorhergehenden Ansprüche, wobei es sich bei der ”White Box”-Implementierung (26b) eines kryptographischen Algorithmus um eine ”White Box”-Implementierung des AES-Algorithmus handelt.
  10. Verfahren nach einem der vorhergehenden Ansprüche, wobei beim Schritt (d) des statistischen Auswerten der Inhalte der Register (R0, R1, R2) und der Plaintexte, der Zwischenergebnisse und/oder der aus den Plaintexten erzeugten Ciphertexte solche Zwischenergebnisse und/oder aus den Plaintexten erzeugte Ciphertexte zur statistischen Analyse verwendet werden, die von nur möglichst wenigen Bits des geheimen Schlüssels abhängen.
  11. Verfahren zum Härten einer auf einem Prozessor (24) ausführbaren ”White Box”-Implementierung (26b) eines kryptographischen Algorithmus, die unter Verwendung eines geheimen Schlüssels aus einem Plaintext einen Ciphertext erzeugen kann, wobei die ”White Box”-Implementierung (26b) derart ausgestaltet ist, dass bei der Erzeugung des Ciphertextes wenigstens eine Lookup-Tabelle zum Einsatz kommt, um statisch Eingabewerte der Lookup-Tabelle auf Ausgabewerte der Lookup-Tabelle abzubilden, wobei das Verfahren den Schritt umfasst, dass die Lookup-Tabelle derart statistisch permutiert wird, dass die einzelnen Bits der permutierten Lookup-Tabelle im Wesentlichen nicht mit den Bits der Lookup-Tabelle korrelieren
  12. Verfahren nach Anspruch 11, wobei das Verfahren ferner den Schritt des Randomisierens der ”White Box”-Implementierung (26b) umfasst.
  13. Verfahren zum Härten einer auf einem Prozessor (24) ausführbaren ”White Box”-Implementierung (26b) eines kryptographischen Algorithmus, die unter Verwendung eines geheimen Schlüssels aus einem Plaintext einen Ciphertext erzeugen kann, wobei die ”White Box”-Implementierung (26b) derart ausgestaltet ist, dass bei der Erzeugung des Ciphertextes wenigstens eine Lookup-Tabelle zum Einsatz kommt, um statisch Eingabewerte der Lookup-Tabelle auf Ausgabewerte der Lookup-Tabelle abzubilden, wobei das Verfahren den Schritt des Randomisierens der ”White Box”-Implementierung (26b) umfasst.
  14. Verfahren nach Anspruch 12 oder 13, wobei der Schritt des Randomisierens der ”White Box”-Implementierung (26b) den Schritt des zufälligen Verwürfelns des Programmablaufs der ”White Box”-Implementierung (26b) umfasst.
  15. Verfahren nach Anspruch 12 oder 13, wobei der Schritt des Randomisierens der ”White Box”-Implementierung (26b) den Schritt des Einbringens von funktional äquivalenten Code-Varianten umfasst, aus denen bei der Ausführung der ”White Box”-Implementierung (26b) zufällig eine der Code-Varianten ausgewählt werden kann.
  16. Verfahren nach Anspruch 12 oder 13, wobei der Schritt des Randomisierens der ”White Box”-Implementierung (26b) den Schritt des zufälligen Maskieren von Zwischenergebnissen, Eingabedaten und/oder Ausgabedaten umfasst.
  17. Verfahren nach Anspruch 12 oder 13, wobei der Schritt des Randomisierens der ”White Box”-Implementierung (26b) den Schritt des Einbringens von zufälligen Veränderungen umfasst, die bei den in der ”White Box”-Implementierung (26b) vorgenommenen Operationen wieder herausfallen.
  18. Verfahren nach Anspruch 12 oder 13, wobei der Schritt des Randomisierens der ”White Box”-Implementierung (26b) den Schritt des Randomisierens von tabellierten Funktionen umfasst.
  19. Verfahren nach Anspruch 12 oder 13, wobei der Schritt des Randomisierens der ”White Box”-Implementierung (26b) den Schritt des Ersetzen von in der ”White Box”-Implementierung (26b) verwendeten Lookup-Tabellen durch mehrere funktional äquivalente Varianten von Lookup-Tabellen umfasst, wobei bei der Durchführung der ”White Box”-Implementierung (26b) jeweils eine der funktional äquivalenten Varianten von Lookup-Tabellen zufällig ausgewählt werden kann.
  20. Verfahren nach Anspruch 19, wobei die Varianten von Lookup-Tabellen statistisch derart permutiert werden, dass die einzelnen Bits der permutierten Lookup-Tabelle im Wesentlichen nicht mit den Bits der ursprünglichen Lookup-Tabelle korrelieren.
  21. ”White Box”-Implementierung (26b) eines kryptographischen Algorithmus, die unter Verwendung eines geheimen Schlüssels aus einem Plaintext einen Ciphertext erzeugen kann, wobei die ”White Box”-Implementierung (26b) mit einem Verfahren nach einem der Ansprüche 11 bis 20 gehärtet worden ist.
DE102014016548.5A 2014-11-10 2014-11-10 Verfahren zum Testen und zum Härten von Softwareapplikationen Withdrawn DE102014016548A1 (de)

Priority Applications (18)

Application Number Priority Date Filing Date Title
DE102014016548.5A DE102014016548A1 (de) 2014-11-10 2014-11-10 Verfahren zum Testen und zum Härten von Softwareapplikationen
EP15795110.4A EP3219042B1 (de) 2014-11-10 2015-10-30 Gehärtete white box implementierung 2
EP15794079.2A EP3218893B1 (de) 2014-11-10 2015-10-30 Gehärtete white box implementierung
PCT/EP2015/002221 WO2016074774A1 (de) 2014-11-10 2015-10-30 Gehärtete white box implementierung
PCT/EP2015/002223 WO2016074776A1 (de) 2014-11-10 2015-10-30 Gehärtete white box implementierung 1
PCT/EP2015/002222 WO2016074775A1 (de) 2014-11-10 2015-10-30 Gehärtete white box implementierung 2
CN201580068364.6A CN107005404B (zh) 2014-11-10 2015-10-30 实现密码算法的可执行的白盒掩码实施的处理器装置
US15/525,235 US10249220B2 (en) 2014-11-10 2015-10-30 Hardened white box implementation 2
CA2966417A CA2966417C (en) 2014-11-10 2015-10-30 Hardened white box implementation 1
US15/525,224 US10403174B2 (en) 2014-11-10 2015-10-30 Hardened white box implementation
EP15795111.2A EP3219043B1 (de) 2014-11-10 2015-10-30 Gehärtete white box implementierung 1
US15/525,239 US10438513B2 (en) 2014-11-10 2015-10-30 Hardened white box implementation 1
CN201580070804.1A CN107111966B (zh) 2014-11-10 2015-11-09 用于测试并且加固软件应用的方法
EP20020079.8A EP3686871A1 (de) 2014-11-10 2015-11-09 Verfahren zum härten von softwareapplikationen
CN202010868468.8A CN112002210B (zh) 2014-11-10 2015-11-09 用于测试并且加固软件应用的方法
PCT/EP2015/002246 WO2016074782A1 (de) 2014-11-10 2015-11-09 Verfahren zum testen und zum härten von softwareapplikationen
US15/525,432 US10431123B2 (en) 2014-11-10 2015-11-09 Method for testing and hardening software applications
EP15801327.6A EP3218894A1 (de) 2014-11-10 2015-11-09 Verfahren zum testen und zum härten von softwareapplikationen

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102014016548.5A DE102014016548A1 (de) 2014-11-10 2014-11-10 Verfahren zum Testen und zum Härten von Softwareapplikationen

Publications (1)

Publication Number Publication Date
DE102014016548A1 true DE102014016548A1 (de) 2016-05-12

Family

ID=54541013

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014016548.5A Withdrawn DE102014016548A1 (de) 2014-11-10 2014-11-10 Verfahren zum Testen und zum Härten von Softwareapplikationen

Country Status (6)

Country Link
US (4) US10249220B2 (de)
EP (5) EP3219042B1 (de)
CN (3) CN107005404B (de)
CA (1) CA2966417C (de)
DE (1) DE102014016548A1 (de)
WO (4) WO2016074776A1 (de)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102015014038A1 (de) 2015-10-30 2017-05-04 Giesecke & Devrient Gmbh Alternative Darstellung des Krypto-Algorithmus DES
US10249220B2 (en) 2014-11-10 2019-04-02 Giesecke+Devrient Mobile Security Gmbh Hardened white box implementation 2
US10805066B2 (en) 2015-12-08 2020-10-13 Giesecke + Devrient Mobile Security Gmbh Cryptographic algorithm having a key-dependent masked computing step (SBOX call)
CN113541942A (zh) * 2021-07-12 2021-10-22 西安电子科技大学 基于arx白盒分组密码的数字内容加解密方法

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
MX2019006912A (es) * 2016-12-12 2019-10-15 Arris Entpr Llc Criptografia de caja blanca fuerte.
CN106712965B (zh) * 2017-01-17 2020-02-18 数安时代科技股份有限公司 数字签名方法、装置以及密码设备
US10547449B2 (en) * 2017-05-30 2020-01-28 Nxp B.V. Protection against relay attacks in a white-box implementation
EP3651142A4 (de) * 2017-08-10 2021-03-24 Sony Corporation Verschlüsselungsvorrichtung, verschlüsselungsverfahren, entschlüsselungsvorrichtung und entschlüsselungsverfahren
US10630462B2 (en) * 2017-10-27 2020-04-21 Nxp B.V. Using white-box in a leakage-resilient primitive
EP3493457A1 (de) * 2017-11-30 2019-06-05 Gemalto Sa Verfahren zum schutz einer entropiequelle für gegenmassnahmen zur sicherung eines kryptografischen whitebox-algorithmus
CN108090349A (zh) * 2017-12-19 2018-05-29 武汉珈港科技有限公司 一种基于白盒指令和扩展图灵模型的应用程序白盒化保护系统及方法
CN110505054B (zh) * 2019-03-28 2021-03-26 杭州海康威视数字技术股份有限公司 一种基于动态白盒的数据处理方法、装置及设备
US11700111B2 (en) * 2019-06-26 2023-07-11 Cryptography Research, Inc. Platform neutral data encryption standard (DES) cryptographic operation
CN111010266B (zh) * 2019-12-09 2023-04-07 广州市百果园信息技术有限公司 消息的加解密、读写方法、装置、计算机设备和存储介质
US11632231B2 (en) * 2020-03-05 2023-04-18 Novatek Microelectronics Corp. Substitute box, substitute method and apparatus thereof
CN112003687B (zh) * 2020-08-26 2023-04-07 成都卫士通信息产业股份有限公司 一种白盒运算方法、装置、电子设备及计算机存储介质

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6075865A (en) * 1998-07-01 2000-06-13 Tecsec Incorporated Cryptographic communication process and apparatus
GB2345229B (en) * 1998-12-23 2003-12-03 Motorola Ltd Method for encrypting data
CA2298990A1 (en) * 2000-02-18 2001-08-18 Cloakware Corporation Method and system for resistance to power analysis
CA2327911A1 (en) * 2000-12-08 2002-06-08 Cloakware Corporation Obscuring functions in computer software
FR2858496B1 (fr) * 2003-07-31 2005-09-30 Gemplus Card Int Procede pour la mise en oeuvre securisee d'un algorithme de cryptographie de type rsa et composant correspondant
EP1876577A1 (de) * 2005-04-28 2008-01-09 Matsushita Electric Industrial Co., Ltd. Programmkonvertierungsvorrichtung, verschlüsselungseinrichtung und verschlüsselungsverfahren
FR2893796B1 (fr) * 2005-11-21 2008-01-04 Atmel Corp Procede de protection par chiffrement
FR2897216B1 (fr) * 2006-02-08 2008-05-02 Sagem Defense Securite Protection d'un algorithme cryptographique
EP1833190B1 (de) * 2006-03-07 2010-08-04 Research In Motion Limited Tabellenteilung für kryptografische Verfahren
US8479016B2 (en) * 2006-03-10 2013-07-02 Irdeto B.V. Method and system for obfuscating a cryptographic function
WO2008007305A2 (en) * 2006-07-12 2008-01-17 Koninklijke Philips Electronics N.V. Method and system for obfuscating a gryptographic function
BRPI0714242A2 (pt) * 2006-07-12 2013-01-29 Koninkl Philips Electronics Nv sistema e mÉtodo para aumentar a resistÊncia Á adulteraÇço de uma unidade de processamento de dados digitais, e, produto de programa de computador
WO2008059420A2 (en) * 2006-11-17 2008-05-22 Koninklijke Philips Electronics N.V. Cryptographic method for a white-box implementation
WO2008119901A2 (fr) 2007-02-28 2008-10-09 France Telecom Procede de dechiffrement par un algorithme cryptographique de donnees chiffrees
WO2008146482A1 (ja) * 2007-05-30 2008-12-04 Panasonic Corporation 暗号化装置、復号化装置、暗号化方法及び集積回路
JP2011512726A (ja) * 2008-01-31 2011-04-21 イルデト・コーポレート・ビー・ヴイ スマートカードの保護
EP2304552B1 (de) * 2008-05-23 2019-11-06 Irdeto B.V. System und verfahren zum erzeugen von white-box-implementierungen von softwareanwendungen
US8094816B2 (en) * 2008-10-21 2012-01-10 Apple Inc. System and method for stream/block cipher with internal random states
EP2406916A1 (de) 2009-03-10 2012-01-18 Irdeto Corporate B.V. Kryptografisches white-box-system mit eingabeabhängigen codierungen
US10102398B2 (en) * 2009-06-01 2018-10-16 Ab Initio Technology Llc Generating obfuscated data
JP5646612B2 (ja) * 2009-06-19 2014-12-24 イルデト・コーポレート・ビー・ヴイ 中間データ変更を使用する構成可能な鍵を用いるホワイトボックス暗号システム
EP2293487A1 (de) * 2009-09-08 2011-03-09 Thomson Licensing Verfahren zur Diversifikation der Runden eines Verschlüsselungalgorithmus
FR2951599B1 (fr) * 2009-10-20 2011-11-25 St Microelectronics Rousset Procede securise de calcul cryptographique et composant electronique correspondant
EP2520041B1 (de) * 2009-12-30 2016-03-30 Koninklijke Philips N.V. Verfahren zur erzeugung einer verweistabelle für eine kryptografische white-box
EP2369778B1 (de) * 2010-03-26 2018-08-15 Irdeto B.V. Persönliche Weißbox-Entschlüsseler
KR101712850B1 (ko) * 2010-03-31 2017-03-07 이르데토 비.브이. 화이트 박스로부터 암호화설비를 보호하는 시스템 및 그 방법
US8644500B2 (en) * 2010-08-20 2014-02-04 Apple Inc. Apparatus and method for block cipher process for insecure environments
KR20120089396A (ko) * 2010-11-16 2012-08-10 삼성전자주식회사 암호화 장치 및 그 암호화 방법
KR20120068543A (ko) * 2010-12-17 2012-06-27 한국전자통신연구원 화이트박스 암호를 이용한 소프트웨어 설치 장치 및 방법
US8605894B2 (en) * 2011-07-14 2013-12-10 Apple Inc. Cryptographic process execution protecting an input value against attacks
US9544139B2 (en) * 2011-12-29 2017-01-10 Intel Corporation Method and apparatus for a non-deterministic random bit generator (NRBG)
CN104322002B (zh) * 2012-03-20 2018-03-30 爱迪德技术有限公司 更新秘钥信息
EP2831797B1 (de) * 2012-03-30 2018-05-02 Irdeto B.V. Sicherung von zugangssystemen mit dynamischer datenzerstörung
US8976960B2 (en) * 2012-04-02 2015-03-10 Apple Inc. Methods and apparatus for correlation protected processing of cryptographic operations
US9584310B2 (en) * 2014-03-19 2017-02-28 Nxp B.V. Protecting a white-box implementation against attacks
CN104052595B (zh) * 2014-05-23 2017-02-08 戴葵 密码算法定制方法
US9569639B2 (en) * 2014-09-12 2017-02-14 Nxp B.V. Remapping constant points in a white-box implementation
DE102014016548A1 (de) 2014-11-10 2016-05-12 Giesecke & Devrient Gmbh Verfahren zum Testen und zum Härten von Softwareapplikationen
US9819486B2 (en) * 2014-12-19 2017-11-14 Nxp B.V. S-box in cryptographic implementation
US10235506B2 (en) * 2015-05-05 2019-03-19 Nxp B.V. White-box modular exponentiation
DE102015014038A1 (de) * 2015-10-30 2017-05-04 Giesecke & Devrient Gmbh Alternative Darstellung des Krypto-Algorithmus DES

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
"A Tutorial on White Box AES", James A. Muir, Cryptology ePrint Archive, Report 2013/104, http://eprint.iacr.org/2013/104
"A Tutorial on White-box AES" von James A. Muir, Cryptology ePrint Archive, Report 2013/104
"BSI: Minimum Requirements for Evaluating Side-Channel Attack Resistance of RSA, DSA and Diffie-Hellman Key Exchange Implementations", Part of AIS46, https://www.bs.bund.de/SharedDocs/Downloads/DE/BSI/Zertifizierung/Interpretationen/AIS_46_BSI_guidelines_SCA_RSA_V1_0_e_pdf.pdf
"Differential Power Analysis", Paul C. Kocher, Joshua Jaffe, Benjamin Jun, Crypto 1999
"White-Box Cryptogrpahy and an AES Implementation", S. Chow, P. Eisen, H. Johnson, P. C. van Oorschot

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10249220B2 (en) 2014-11-10 2019-04-02 Giesecke+Devrient Mobile Security Gmbh Hardened white box implementation 2
US10403174B2 (en) 2014-11-10 2019-09-03 Giesecke+Devrient Mobile Security Gmbh Hardened white box implementation
US10438513B2 (en) 2014-11-10 2019-10-08 Giesecke+Devrient Mobile Security Gmbh Hardened white box implementation 1
DE102015014038A1 (de) 2015-10-30 2017-05-04 Giesecke & Devrient Gmbh Alternative Darstellung des Krypto-Algorithmus DES
US10615962B2 (en) 2015-10-30 2020-04-07 Giesecke+Devrient Mobile Security Gmbh Alternative representation of the crypto-algorithm DES
US10805066B2 (en) 2015-12-08 2020-10-13 Giesecke + Devrient Mobile Security Gmbh Cryptographic algorithm having a key-dependent masked computing step (SBOX call)
CN113541942A (zh) * 2021-07-12 2021-10-22 西安电子科技大学 基于arx白盒分组密码的数字内容加解密方法
CN113541942B (zh) * 2021-07-12 2022-06-07 西安电子科技大学 基于arx白盒分组密码的数字内容加解密方法

Also Published As

Publication number Publication date
US20170324542A1 (en) 2017-11-09
US20170324547A1 (en) 2017-11-09
US10438513B2 (en) 2019-10-08
US20170324543A1 (en) 2017-11-09
WO2016074774A1 (de) 2016-05-19
CN107005404B (zh) 2020-11-03
EP3219043A1 (de) 2017-09-20
US20170352298A1 (en) 2017-12-07
CN107111966B (zh) 2020-12-29
EP3686871A1 (de) 2020-07-29
CN112002210B (zh) 2024-05-31
CA2966417A1 (en) 2016-05-19
EP3218893A1 (de) 2017-09-20
EP3218893B1 (de) 2019-01-30
EP3219042B1 (de) 2018-12-12
US10249220B2 (en) 2019-04-02
CN107111966A (zh) 2017-08-29
CA2966417C (en) 2020-04-28
WO2016074776A1 (de) 2016-05-19
EP3219043B1 (de) 2018-12-12
EP3218894A1 (de) 2017-09-20
CN112002210A (zh) 2020-11-27
EP3219042A1 (de) 2017-09-20
US10431123B2 (en) 2019-10-01
US10403174B2 (en) 2019-09-03
WO2016074775A1 (de) 2016-05-19
WO2016074782A1 (de) 2016-05-19
CN107005404A (zh) 2017-08-01

Similar Documents

Publication Publication Date Title
DE102014016548A1 (de) Verfahren zum Testen und zum Härten von Softwareapplikationen
EP2605445B1 (de) Verfahren und Vorrichtung zur Absicherung von Blockchiffren gegen Template-Attacken
EP2901611B1 (de) Seitenkanalgeschützte maskierung
EP3593483B1 (de) Übergang von einer booleschen maskierung zu einer arithmetischen maskierung
DE69911815T2 (de) Selbstkorrigierendes zufallsverschlüsselungssystem und -verfahren
DE112015006865T5 (de) Vorrichtung zum Erzeugen eines Nachrichten-Authenticators, Verfahren zum Erzeugen eines Nachrichten-Authenticators und Programm zum Erzeugen eines Nachrichten-Authenticators
EP3387636B1 (de) Kryptoalgorithmus mit schlüsselabhängigem maskiertem rechenschritt (sbox-aufruf)
WO2004070497A2 (de) Modulare exponentiation mit randomisierten exponenten
EP3369205B1 (de) Alternative darstellung des krypto-algorithmus des
DE102014216392A1 (de) Symmetrisches Iteriertes Blockchiffrierverfahren und entsprechende Vorrichtung
DE102018006313A1 (de) Verfahren mit Safe-Error-Abwehrmaßnahme
DE102004001659B4 (de) Vorrichtung und Verfahren zum Konvertieren einer ersten Nachricht in eine zweite Nachricht
DE102015214427A1 (de) Ableitung eines Sitzungsschlüssels mit Zugriff auf eine physikalisch unklonbare Funktion
DE102015201430A1 (de) Intrinsische Authentifizierung von Programcode
DE102022125835A1 (de) Datenverarbeitungsvorrichtung und verfahren zum erzeugen einer zufallszahl
EP2466782A1 (de) Verfahren zum geschützten Ausführen einer kryptographischen Berechnung
DE102018107114A1 (de) Seitenkanalgehärtete Operation
DE10149191A1 (de) Verfahren und Vorrichtung zum Ermitteln von Ursprungsausgangsdaten aus Ursprungseingangsdaten auf der Basis einer kryptographischen Operation
DE102015114234A1 (de) Zufallszahlgenerator und Verfahren zum Generieren von Zufallszahlen
DE102012003968A1 (de) Gegen Ausspähen geschützte Berechnung
EP1760929A1 (de) Geschütztes kryptographisches Verfahren

Legal Events

Date Code Title Description
R163 Identified publications notified
R081 Change of applicant/patentee

Owner name: GIESECKE+DEVRIENT MOBILE SECURITY GMBH, DE

Free format text: FORMER OWNER: GIESECKE & DEVRIENT GMBH, 81677 MUENCHEN, DE

R120 Application withdrawn or ip right abandoned