Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
WHITE BOX AES IMPLEMENTATION
Document Type and Number:
WIPO Patent Application WO/2018/010843
Kind Code:
A1
Abstract:
The invention relates to a processor device with an executable white box-masked implementation of the cryptographic algorithm AES, said algorithm being implemented on the processor device and comprising a SubByte transformation. The white box-masked implementation is hardened in that white box round input values x' are provided at the round input of rounds instead of the round input values x, said white box round input values being generated from a concatenation of: (i) the round input values x masked by means of the invertible masking image A and (ii) concealment values y which are likewise masked by means of the invertible masking image A; wherein (i) only the round input values x of the SubByte transformation T are supplied from the white box round input values x', and (ii) the masked concealment values y are not.

Inventors:
BAUER SVEN (DE)
Application Number:
PCT/EP2017/000830
Publication Date:
January 18, 2018
Filing Date:
July 12, 2017
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
GIESECKE+DEVRIENT MOBILE SECURITY GMBH (DE)
International Classes:
H04L9/00; H04L9/06
Other References:
CHOW S ET AL: "WHITE-BOX CRYPTOGRAPHY AND AN AES IMPLEMENTATION", SELECTED AREAS IN CRYPTOGRAPHY : 9TH ANNUAL INTERNATIONAL WORKSHOP ; REVISED PAPERS / SAC 2002, ST. JOHN'S, NEWFOUNDLAND, CANADA, AUGUST 15 - 16, 2002; [LECTURE NOTES IN COMPUTER SCIENCE ; 2595], SPRINGER VERLAG, BERLIN (DE), vol. 2595, 15 August 2002 (2002-08-15), pages 250 - 270, XP002521155, ISBN: 978-3-540-00622-0
"Announcing the advanced encryption standard (AES)", FEDERAL INFORMATION PROCESSING STANDARDS PUBLICATION, U.S. DEPT. OF COMMERCE, WASHINGTON, DC, US, 26 November 2001 (2001-11-26), pages 1 - 47, XP002968399, ISSN: 0083-1816
S. CHOW; P. EISEN; H. JOHNSON; P.C. VAN OORSCHOT: "White-Box Cryptography and an AES Implementation", NINTH WORKSHOP ON SELECTED AREAS IN CRYPTOGRAPHY (SAC 2002), 2002, pages 250 - 270
S. CHOW; P. EISEN; H. JOHNSON; P.C. VAN OORSCHOT, NINTH WORKSHOP ON SELECTED AREAS IN CRYPTOGRAPHY (SAC 2002, 2002, pages 250 - 270
ANNOUNCING THE ADVANCED ENCRYPTION STANDARD (AES, 26 November 2001 (2001-11-26)
J. DAEMEN; V. RIJMEN: "The Design of Rijndael: AES - The Advanced Enncryption Standard", 2002, SPRINGER, article "Information Security and Cryptography"
Attorney, Agent or Firm:
GIESECKE+DEVRIENT MOBILE SECURITY GMBH (DE)
Download PDF:
Claims:
P a t e n t a n S p r ü c h e

1. Prozessor-Einrichtung mit einer darauf implementierten ausführbaren White Box maskierten Implementierung des kryptographischen Algorithmus AES, der eine Mehrzahl von Runden umf asst, in denen unter Verwendung von Runden-Eingangswerten x Runden- Ausgangswerte erzeugt werden,

- wobei jede Runde eine AddRoundKey Transformation umf asst, in welcher der Rundenschlüssel k verwendet wird, und eine SubBytes Transformation T umf asst,

- wobei die Implementierung White Box maskiert ist, wozu am Runden- Eingang zumindest einer oder jeder Runde, anstelle der Runden-Eingangs- Werte x, maskierte Runden-Eingangs- Werte bereitgestellt sind, die vorab erzeugt worden sind, indem auf die Runden-Eingangswerte x eine invertierbare Maskierungs- Abbildung A angewandt worden ist,

dadurch gekennzeichnet, dass

die White Box maskierte Implementierung gehärtet ist, indem am Runden- Eingang der zumindest einen oder jeder Runde, anstelle der Runden- Eingangs-Werte x, White-Box-Runden-Eingangswerte x' bereitgestellt sind, welche gebildet sind aus einer Konkatenation von: (i) den mittels der invertierbaren Maskierungs- Abbildung A maskierten Runden-Eingangswerten x und (ii) Verschleierungswerten y, die ebenfalls mit der invertierbaren Maskierungs-Abbildung A maskiert sind; wobei aus den White-Box-Runden- Eingangswerte x' nur die (i) Runden-Eingangswerte x der SubBytes Transformation T zugeführt werden, und die (ii) maskierten Verschleierungswerte y nicht.

2. Prozessor-Einrichtung nach Anspruch 1, wobei die Implementierung weiter innerhalb einer jeweiligen Runde umfasst:

- eine Demaskierungs-Transf ormation der maskierten Eingangswerte x in den Runden-Eingangswerten x' vor der SubBytes-Transformation mittels einer zur Maskierungs- Abbildung A inversen Maskierungs- Abbildung A"1, die eingerichtet ist, der SubBytes Transformation T nicht-maskierte Runden- Eingangswerte x zuzuführen,

- sowie eine Ummaskierungs-Transformation der Verschleierungswerte y in den Runden-Eingangswerten x' von der Maskierungs- Abbildung A auf eine zufällige invertierbare Abbildung σ , die eingerichtet ist, aus mit der Maskierungs-Abbildung A maskierten Verschleierungswerten y mit der zufälligen invertierbaren Abbildung σ maskierte Verschleierungswerte y zu erzeugen.

3. Prozessor-Einrichtung nach Anspruch 1 oder 2, wobei weiter der Runden- Ausgang zumindest einer oder jeder Runde gehärtet wird, indem am Runden-Ausgang zumindest einer oder jeder Runde eine zufällige invertierbare affine Abbildung B angewandt wird, und zwar auf:

(i) die mit zumindest der SubBytes Transformation T bearbeiteten Runden- Eingangswerte x und

(ii) die - ggf. mit zumindest der zufälligen invertierbaren Abbildung σ maskierten - Verschleierungs werte y.

4. Prozessor-Einrichtung nach einem der Ansprüche 1 bis 3, wobei an Stelle der SubBytes Transformation eine kombinierte SubBytes Transformation T verwendet wird, welche durch eine Kombination einer herkömmlichen AES SubBytes Transformation S und einer AES MixColumns Transformation MC gebildet ist, gemäß T(x) = (MC) S(x).

5. Prozessor-Einrichtung nach einem der Ansprüche 1 bis 4, wobei die affine Abbildung A weiter so gestaltet ist, dass jedes Bit in den Ausgabewerten der affinen Abbildung A von mindestens einem Bit aus den Verschleierungswerten y abhängt, wodurch erreicht wird, dass die Ausgabewerte der affinen Abbildung A statistisch ausgeglichen sind.

6. Prozessor-Einrichtung nach Anspruch 5, wobei die statistische Ausgeglichenheit dadurch erreicht wird, dass die Maskierungs- Abbildung A durch eine Matrix A gebildet ist, in der für die Abbildung der Verschleierungswerte y invertierbare Teilmatrices bereitgestellt sind, wobei in jeder Zeile jeder für Verschleierungswerte y bereitgestellten Teilmatrix mindestens ein Wert einen von Null unterschiedlichen Wert hat.

7. Prozessor-Einrichtung nach einem der Ansprüche 1 bis 6, wobei die Maskierungs-Abbildung A

- durch eine invertierbare affine Abbildung gebildet ist; oder

- aus einer oder mehreren affinen invertierbaren Abbildungen und einer o- der mehreren beliebigen invertierbaren Abbildungen zusammengesetzt ist, so dass die Maskierungs-Transformation insgesamt invertierbar ist. 8. Prozessor-Einrichtung nach einem der Ansprüche 1 bis 7, wobei der AES eine letzte Runde umfasst, die keine MixColumns Transformation umfasst, und wobei in der letzten Runde zusätzlich eine Permutation D angewandt wird auf: (i) Ausgangswerte der SubBytes Transformation oder der kombinierten SubBytes Transformation oder der AddRoundKey Transformation; und (ii) Verschleierungswerte y, die ggf. mit der zufälligen invertierbaren Abbildung σ maskiert sind.

9. Prozessor-Einrichtung nach einem der Ansprüche 1 bis 8, wobei die AddRoundKey Transformation in Gestalt einer schlüsselabhängigen kombinier- ten Transformation T* ( T(r) (4i+j) (χ'), j=0,l,2,3; oder: S ( (A(r)j-!(x) xor kj(r) ); oder: A k(°) xor O1 (x) ) vorgesehen ist, in welcher kombiniert sind:

(i) in zumindest einer oder jeder mittleren AES Runde und in der letzten AES Runde, wobei unter mittleren Runden die Runden mit Ausnahme der ersten und der letzten Runde verstanden werden, die AddRoundKey Trans- f ormation, angewandt auf Ausgangswerte der, ggf. kombinierten, SubBytes Transformation T; oder/ und

(ii) in der ersten AES Runde, die AddRoundKey Transformation, angewandt auf unmaskierte, optional durch eine Permutation G bearbeitete, Runden- Eingangswerte x, wobei die Maskierungs- Abbildung A auf die Ausgangswerte der AddRoundKey Transformation angewandt ist.

10. Prozessor-Einrichtung nach Anspruch 9, wobei die Ausgangs werte der, ggf. kombinierten, SubBytes Transformation T durch vier State Bytes x= s], j = 0, 1, 2, 3, gebildet sind, wobei die AddRoundKey Transformation nur auf manche State Bytes angewandt wird, aber nicht auf alle State Bytes angewandt wird.

11. Prozessor-Einrichtung nach Anspruch 9 oder 10, umfassend zumindest eine schlüsselabhängige Tabelle, durch die eine Tabellendarstellung der schlüsselabhängigen kombinierten Transformation gebildet ist.

12. Prozessor-Einrichtung nach Anspruch 11, weiter umfassend eine Schlüssel-Aktualisierungs-Einrichtung, die dazu eingerichtet ist, den Runden- Schlüssel k in der schlüsselabhängigen Tabelle durch eine neuen Rundenschlüssel k' zu ersetzen und hierdurch eine aktualisierte schlüsselabhängige Tabelle zu erzeugen.

13. Prozessor-Einrichtung nach Anspruch 12, wobei die Schlüssel- Aktualisie- rungs-Einrichtung dazu eingerichtet ist, aus dem Rundenschlüssel, dem neuen Rundenschlüssel und ein oder mehrerer zur White Box Maskierung verwendeter Abbildungen, insbesondere der Abbildungen A oder/ und B oder / und σ oder / und C, Differenzschlüsseldaten zu bilden, und durch Anwenden der Differenzschlüsseldaten auf die schlüsselabhängige Tabelle die aktualisierte schlüsselabhängige Tabelle zu bilden.

14. Prozessor-Einrichtung nach einem der Ansprüche 9 bis 13, wobei der AES als AES256 mit einer Schlüssellänge von 256 Bit gestaltet ist und 14 Runden umf asst, und wobei für die auf die Runden-Eingangswerte x angewandte invertierbare affine Abbildung A in den Runden 9, 11 und 13 dieselbe Maskierungs- Abbildung A verwendet wird, oder alternativ als analog zum AES256 gestalteter AES128 oder AES192.

Description:
White Box AES Implementierung

Gebiet der Erfindung

Die Erfindung betrifft eine White Box Implementierung des kryptographi- sehen Algorithmus AES (Advanced Encryption Standard). Genauer betrifft die Erfindung eine Prozessor-Einrichtung mit einer White Box Implementierung des kryptographischen Algorithmus AES.

Unter einer Prozessor-Einrichtung im Sinn der Erfindung wird ein Gerät o- der sonstiger Gegenstand mit einem Prozessor verstanden, oder eine Emulation eines solchen Geräts auf einem anderen Gerät. Beispiele für Geräte sind ein mobilfunkfähiges Endgerät, ein Chipset für ein mobilfunkfähiges Endgerät und eine Smartcard. Beispiele für mobilf unkfähige Endgeräte sind einerseits mobile Endgeräte wie Smartphones und andererseits M2M Device für ein Industrieumfeld. Ein Beispiel für ein Gerät, auf dem eine Emulation eines der erstgenannte Geräte vorgesehen ist, ist ein Personal Computer oder PC, mit einer Emulation z.B. eines mobilf unkfähige Endgeräts / Smartphone, oder eines Smartphone-Chipset etc.. Als Prozessor-Einrichtung wird also beispielsweise auch eine Emulation eines Chipset für ein mobilfunkfähiges Endgerät oder eines mobilfunkfähigen Endgeräts oder einer Smartcard auf einem PC angesehen.

In kryptographischen Algorithmen werden sicherheitskritische Daten verarbeitet, auf die Unbefugte keinen Zugriff haben sollen. Beispielsweise werden Eingangsdaten mittels geheim zu haltender Schlüssel zu Ausgangsdaten verarbeitet. Bei der traditionellen Grey Box Kryptographie werden sicherheitskritische Daten dadurch vor dem Zugriff durch Unbefugte geschützt, dass die Daten in einer Umgebung abgespeichert werden, auf welche Unbefugte theoretisch keinen Zugriff haben. Eine perfekt zugriffsgesicherte Um- gebung wäre Black Box kryptographisch gesichert, Unzulänglichkeiten in einer realen Implementierung der Umgebung können jedoch Zugriffe er- möglichen, weshalb eine reale Implementierung einer zugriffsgesicherten Umgebung lediglich Grey Box gesichert ist.

Authentisierungs- und Verschlüsselungs- Algorithmen für die Mobilfunk- Kommunikation eines mobilen Endgeräts im Mobilfunk-Netzwerk sind aktuell in einem Hardware-technisch eigenständigen Sicherheitselement des mobilen Endgeräts implementiert, beispielsweise einem UICC (Universal Integrated Circuit Card) vom Formfaktor Plug-in oder embedded. Unter einem Plug-in UICC wird eine herausnehmbare (U)SIM-Karte verstanden (SIM = Subscriber Identity Module, U = Universal). Unter einem embedded UICC oder eUICC wird ein Einlötmodul mit ansonsten identischer Funktionalität wie ein Plug-in UICC verstanden. Im UICC sind zudem die sicherheitskritischen Daten, hier kryptographische Schlüssel, für die Authentisierungs- und Verschlüsselungs- Algorithmen gespeichert. Die Zukunft hard- ware-technisch getrennter Sicherheitselemente wie Plugin UICC oder eUICC in mobilen Endgeräten ist ungewiss, und es könnte künftig auch mobile Endgeräte ohne hardware-technisch getrenntes Sicherheitselement geben.

Verbreitet werden auf mobilen Endgeräten Zusatz- Applikationen gespei- chert, die über den originären Anwendungsbereich der Telefonie hinausgehen, und die ebenfalls sicherheitskritische Daten verarbeiten. Die Zusatz- Applikationen werden typischerweise als Apps direkt in einem Prozessor- Chip des mobilen Endgeräts gespeichert. Dort sind die Zusatz- Applikationen und ihre sicherheitskritischen Daten vergleichsweise ungeschützt. Typi- sehe Prozessor-Chips eines mobilen Endgeräts sind ein vergleichsweise gut gesicherter Secure Processor, ein vor allem für das Speichern von Zusatz- Applikationen vorgesehener Application Processor und ein für die Funkkommunikation des Endgeräts im Mobilfunknetz vorgesehener Baseband Processor. Zusatz- Applikationen wie Apps sind typischerweise überwiegend oder ganz im Application Processor gespeichert.

Sofern das UICC es erlaubt, können Zusatz- Applikationen und ihre sicher- heitskritischen Daten (z.B. Schlüssel) im UICC abgespeichert werden. Insbesondere können sicherheitskritische Anteile von im Application Processor gespeicherten Zusatz- Applikationen in das UICC ausgelagert sein, das ein höheres Sicherheitsniveau hat als der Application Processor. Der Speicherplatz in UICCs ist relativ begrenzt. Manche UICC erlauben zudem kein Ab- speichern von Zusatz- Applikationen oder Teilen davon im UICC.

Beispiele für Zusatz- Applikationen sind Zahlungsverkehrs- Applikationen zum Bezahlen mittels des mobilen Endgeräts an einem kontaktlosen (z.B. NFC-basierten) Zahlungsterminal. Weiter werden auf mobilen Endgeräten wie z.B. Smartphones zunehmend Zusatz- Applikationen für kryptographi- sche Dienste wie z.B. Sprachverschlüsselung oder Datenverschlüsselung genutzt. Kryptographische Teilaufgaben der Zusatz- Applikationen (z.B. auch von Zahlungsverkehrs- Applikationen) wie z.B. Verschlüsselung, Entschlüsselung, Signaturbildung oder Signaturverifizierung werden durch Imple- mentierungen kryptographischer Algorithmen durchgeführt.

Stand der Technik

Bei einer White Box Implementierung eines kryptographischen Algorithmus wird der Ansatz verfolgt, die sicherheitskritischen Daten, insbesondere ge- heime kryptographische Schlüssel, derart in der Implementierung zu verbergen, dass ein Angreifer, der vollen Zugriff („total access") auf die Implementierung hat, nicht dazu in der Lage ist, die sicherheitskritischen Daten aus der Implementierung zu extrahieren. White Box Kryptographie ist insbesondere anwendbar und sinnvoll für mobile Endgeräte, die kein eigenstän- diges Sicherheitselement haben, so dass sicherheitskritische Daten in einer nicht vertrauenswürdigen Umgebung abgespeichert sind.

Die Erfindung schafft eine Lösung für den kryptographischen Blockchiffrier- Algorithmus Advanced Encryption Standard AES, der in [3] [NIST- AES] NIST fips 197, " Announcing the ADVANCED ENCRYPTION STANDARD (AES), November 26, 2001 veröffentlicht ist. Der AES umfasst eine Anzahl von Nr Runden. Gemäß [3], Kapitel 5.1 umfasst eine Basis-Runde des AES die vier Transformationen SubBytes, ShiftRows, MixColumns und

AddRoundKey. Die letzte Runde differiert etwas von den übrigen Runden und enthält z.B. keine MixColumn Transformation. Die SubBytes Transformation ist eine nicht-lineare Byte-Substitution, die unter Verwendung einer Substitutionstabelle, genannt S-Box, durchgeführt wird. Fig. 1 zeigt in sche- matischer Darstellung eine mittlere AES-Runde, also eine Runde, die nicht die erste und nicht die letzte AES-Runde ist, und die die Transformationen ShiftRows, AddRoundKey, SubBytes und MixColumns umfasst. Dabei werden Eingangsdaten x und Schlüsseldaten k verarbeitet.

Der Fachartikel [2] [Chow-AES] S. Chow, P. Eisen, H. Johnson, P.C. van Oor- schot, "White-Box Cryptography and an AES Implementation", in proceedings of the Ninth Workshop on Selected Areas in Cryptography (SAC 2002), pages 250- 270, 2002, offenbart, für einen AES-128 mit einer Schlüssellänge von 128 Bit und Nr = 10 Runden, eine White Box Implementierung des AES-Kryptoalgo- rithmus, bei welcher der AES durch Schlüssel-abhängige Tabellen (lookup tables) implementiert ist (vgl. Abstract). Weiter werden in den Tabellen statt einzelner Transformationen Kompositionen von Transformationen implementiert (Abstract). Die Ausführung des AES erfolgt durch eine Serie von Lookups, d.h. Tabellenaufrufen, in den Schlüssel-abhängigen Tabellen. Gemäß [2] Kapitel 3, Kapitel-Eingang auf Seite 6, wird die White-Box- Maskierung dadurch erreicht, dass jeder Schritt im AES- Algorithmus mit zufällig gewählten Bijektionen zusammengesetzt wird. Gemäß [2] Kapitel 3.1 wird der Schlüssel in der S-Box Operation der SubBytes Transformation untergebracht, indem schlüsselabhängige Tabellen (lookup tables) oder„T- Boxen" vom Konstruktionsprinzip T(x) = S(x XOR k) verwendet werden, wobei x ein S-Box Eingabewert ist, k der Schlüssel, S die AES S-Box und XOR eine XOR-Operation. Jede T-Box ist somit eine Komposition aus einer S-Box und der vorangehenden AddRoundKey Transformation. Für die konkrete Konstruktion der T-Boxen gibt [2] Kapitel 4 und Fig. 1 vier Möglichkeiten I- IV an. Insbesondere ist in Fig. 1 als Typ II eine Implementierung einer AES- Runde dargestellt, bei der Runden-Eingangswerte, die einer T-Box Transformation der Runde zugeführt werden, mittels einer bijektiven Abbildung („8x8 mixing bijection") White Box maskiert sind.

Fig. 2 der vorliegenden Anmeldung zeigt eine Möglichkeit, die in [2] [Chow- AES], Fig. 1, Type II angedeutete White Box maskierte T-Box in einem Tabellenaufruf zu verwirklichen. Fig. 2 zeigt, für eine r-te Runden des AES eine Abbildung eines Wertes x' mittels zufällig gewählter Bijektion A(4i+j)(r) (die Bijektionen sind in [2], Kapitel 3 ohne Bezeichnung), schlüsselabhängiger T- Box Tj(x XOR k(4i+j)(r)) und Permutation Bj(r), mit j = 0, ... 3. Durch die Bijektionen A wird Diffusion erzeugt, durch die Permutationen B Konfusion im Sinne kryptographischer Designkriterien.

In der Fachveröffentlichung [3]„Differential Computation Analysis: Hiding your White-Box Designs is Not Enough", J.W. Bos, Ch. Hubain, W. Michiels, and Ph. Teuwen, eprint.iacr.org/2015/753, der Firma NXP, sowie in der Patentanmeldung 102014016548.5 der Anmelderin der vorliegenden Anmeldung sind zwei einander ähnliche Testverfahren offenbart, mit denen sich jeweils aus einer White Box Implementierung eines Kryptoalgorithmus der geheime Schlüssel mit statistischen Methoden ermitteln ließ. Gegenüber solchen Angriffen ist auch die AES White Box Implementierung aus [2] noch anfällig. Im Stand der Technik [4] [DaemenRijmen] wird vorgeschlagen, eine SubBytes Transformation mit einer AddRoundKey Transformation zu kombinieren zu kombinierten Tabellen T' j W gemäß:

T' 0 W (x) = ( k 0 (r+1) , k^ +i) , k 2 (r+1) , k3( r+1 ) ) XOR T 0 (x) ;

T'iW (x) = ( k4( r+1 ), ks^ 1) , k 6 (r+1) , k 7 (r+1) ) XOR Ti (x) ;

T' 2 « (x) = ( ks (r+1) , k 9 (r+1) , ki 0 (r+1) , ku ( ^ i) ) XOR T 2 (x) ;

T' 3 M (x) = ( ki 2 (r+1) , k 13 < r+1) , ku ( * +1 ki 5 (r+1) ) XOR T 3 (x).

Zusammenfassung der Erfindun

Der Erfindung liegt die Aufgabe zugrunde, eine Prozessor-Einrichtung mit einer White Box Implementierung des kryptographischen Algorithmus AES anzugeben, die speziell gehärtet ist, so dass auch mittels auf Seitenkanal- Ausgaben angewandter statistischer Methoden möglichst wenige oder keine geheimen Informationen aus dem Algorithmus gewonnen werden können. Insbesondere sollen spezielle Implementierungsdetails angegeben werden, mittels derer eine speziell gehärtete Implementierung erreicht werden kann.

Die Aufgabe wird gelöst durch eine Prozessor-Einrichtung nach Anspruch 1. Vorteilhafte Ausgestaltungen der Erfindung sind in den abhängigen Ansprüchen angegeben.

Auf der erfindungsgemäßen Prozessor-Einrichtung nach Anspruch 1 ist eine ausführbare White Box maskierte Implementierung des kryptographischen Algorithmus AES implementiert. Der AES umfasst eine Mehrzahl von Runden, in denen unter Verwendung von Runden-Eingangswerten x Runden- Ausgangswerte erzeugt werden. Jede Runde umfasst eine AddRoundKey Transformation, in welcher der Rundenschlüssel k verwendet wird, und eine SubBytes Transformation T. Die Implementierung ist White Box maskiert, wozu am Runden-Eingang zumindest einer oder jeder Runde, anstelle der Runden-Eingangs- Werte x, maskierte Runden-Eingangs-Werte bereitgestellt sind, die vorab erzeugt worden sind, indem auf die Runden-Eingangswerte x eine invertierbare Maskierungs- Abbildung A angewandt worden ist.

Die erfindungsgemäJße Prozessor-Einrichtung ist dadurch gekennzeichnet, dass die White Box maskierte Implementierung gehärtet ist. Die Härtung ist dadurch bewirkt, dass am Runden-Eingang der zumindest einen oder jeder Runde, anstelle der Runden-Eingangs-Werte x, White-Box-Runden- Eingangswerte x' = (x I y) bereitgestellt sind. Diese sind gebildet aus einer Konkatenation x | y von: (i) den mittels der invertierbaren Maskierungs- Abbildung A maskierten Runden-Eingangswerten x und (ii) Verschleierungswerten y, die ebenfalls mit der invertierbaren Maskierungs- Abbildung A maskiert sind. Hierbei werden aus den White-Box-Runden-Eingangswerte χ' = (x I y) nur die (i) Runden-Eingangswerte x der SubBytes Transformation T zugeführt werden, und die (ii) maskierten Verschleierungswerte y nicht. In die AES-Implementierung, z.B. eine Tabelle, werden somit Werte A(x') = A(x I y) eingespeist und dort Runde für Runde abgearbeitet.

Dadurch dass der invertierbaren Maskierungs- Abbildung A zusätzlich zu den eigentlich interessierenden Runden-Eingangswerten x zudem die Verschleierungswerte y zugeführt werden, wertet ein Angreifer bei statistischen Angriffen teils Werte aus, die auf Berechnungen mit echten Runden- Eingangswerten x beruhen, teils Werte, die auf Berechnungen mit Verschleierungswerten y beruhen. Somit schwindet der Einfluss der echten Runden- Eingangswerte x ganz erheblich oder im besten Fall sogar vollständig. Daher ist gemäß Anspruch 1 eine Prozessor-Einrichtung geschaffen, die speziell gehärtet ist, so dass auch mittels auf Seitenkanal- Ausgaben angewandter statistischer Methoden möglichst wenige oder keine geheimen Inf ormati- onen aus dem Algorithmus gewonnen werden können.

Gemäß einer Ausführungsform der Erfindung (Anspruch 2) umfasst die Implementierung weiter innerhalb einer jeweiligen Runde, als zusätzliche Transformationen, eine Demaskierungs-Transformation und eine Ummas- kierungs-Transformation. Durch die Demaskierungs-Transformation werden die maskierten Eingangswerte x in den Runden-Eingangswerten x' vor der SubBytes-Transformation mittels einer zur Maskierungs- Abbildung A inver- sen Maskierungs- Abbildung A" 1 so transformiert, dass die Maskierungs- Abbildung A wieder aufgehoben wird, so dass also der SubBytes Transfor- mation T nicht-maskierte Runden-Eingangswerte x zugeführt werden. Hierdurch werden durch die nicht-lineare SubBytes Transformation die echten Eingangswerte verarbeitet. Dies bedeutet aber nicht, dass nicht-maskierte Runden-Eingangswerte x tatsächlich vorliegen. Vielmehr wird die zusätzliche inverse Maskierungs- Abbildung A _1 in eine kombinierte Tabelle inte- griert sein, in der mehrere Transformationen kombiniert sind. Durch die

Ummaskierungs-Transf ormation werden die Verschleierungswerte y in den Runden-Eingangswerten x' von der Maskierungs- Abbildung A auf eine zufällige invertierbare Abbildung σ ummaskiert, so dass aus mit der Maskierungs-Abbildung A maskierten Verschleierungswerten y mit der zufälligen invertierbare Abbildung σ maskierte Verschleierungswerte y erzeugt werden. Die ursprüngliche Maskierungs- Abbildung A wird in der Regel für einen längeren Zeitraum fest vorgegeben als die Abbildung σ. Gemäß einer Ausführungsform der Erfindung (Anspruch 3) wird weiter der Runden- Ausgang zumindest einer oder jeder Runde gehärtet, indem am Runden- Ausgang zumindest einer oder jeder Runde eine zufällige invertierbare affine Abbildung B angewandt wird. Die Abbildung B wird angewandt: (i) auf die mit zumindest der SubBytes Transformation T bearbeiteten Runden-Eingangswerte x und (ii) auf die - ggf. mit zumindest der zufälligen invertierbaren Abbildung σ maskierten - Verschleierungswerte y.

Gemäß einer Ausführungsform der Erfindung (Anspruch 4) kann wahlweise an Stelle der SubBytes Transformation eine kombinierte SubBytes Transformation T verwendet werden, welche durch eine Kombination einer herkömmlichen AES SubBytes Transformation S und einer AES MixColumns Transformation MC gebildet ist, gemäß T(x) = (MC) S(x). Gemäß einer bevorzugten Ausführungsform der Erfindung (Anspruch 5) ist die affine Abbildung A weiter so gestaltet, dass jedes Bit in den Ausgabewerten der affinen Abbildung A von mindestens einem Bit aus den Verschleierungswerten y abhängt, wodurch erreicht wird, dass die Ausgabewerte der affinen Abbildung A statistisch ausgeglichen sind. Hierdurch wird erreicht, dass Ausgabewerte von Transformationen (z.B. SubBytes Transformationen) nicht mit Ausgabewerten, wie sie bei ungeschützten Implementierungen erwartet werden würden, korreliert sind. Daher ist eine solche statistisch ausgeglichene Gestaltung der Abbildung A besonders vorteilhaft. Die statistische Ausgeglichenheit wird, gemäß einer speziellen Ausführungsform (Anspruch 6) dadurch erreicht, dass die Maskierungs- Abbildung A durch eine Matrix A gebildet ist, in der für die Abbildung der Verschleierungswerte y invertierbare Teilmatrices bereitgestellt sind, wobei in jeder Zeile jeder für Verschleierungs werte y bereitgestellten Teilmatrix mindestens ein Wert einen von Null unterschiedlichen Wert hat. Hierdurch verbleiben keine Eingangswerte x, die ohne Einfluss eines Verschleierungswerts y durch die Abbildung geschleust würden. Wahlweise (Anspruch 7) ist die Maskierungs- Abbildung A durch eine invertierbare affine Abbildung gebildet. Alternativ ist die Maskierungs- Abbildung A aus einer oder mehreren affinen invertierbaren Abbildungen und einer oder mehreren beliebigen invertierbaren Abbildungen zusammengesetzt ist, so dass die Maskierungs-Transformation insgesamt invertierbar ist.

Wahlweise (Anspruch 8) umfasst der AES eine letzte Runde, die keine MixColumns Transformation umfasst, wobei in der letzten Runde zusätzlich eine Permutation D angewandt wird auf: (i) Ausgangswerte der SubBytes Transformation oder der kombinierten SubBytes Transformation oder der AddRoundKey Transformation; und (ii) Verschleierungswerte y, die ggf. mit der zufälligen invertierbaren Abbildung σ maskiert sind.

Gemäß einer speziellen Ausführungsform der Erfindung (Anspruch 9), ist die AddRoundKey Transformation in Gestalt einer schlüsselabhängigen kombinierten Transformation T* ( T(r) (4i+j) (χ'), j=0,l,2,3; oder: S ( Α(τ)^(χ) xor kj(r) ); oder: A k ( ° ) xor C -1 (x) ) vorgesehen. In der schlüsselabhängigen kombinierten Transformation T* sind kombiniert: (i) in zumindest einer oder jeder mittleren AES Runde und in der letzten AES Runde, wobei unter mittleren Runden die Runden mit Ausnahme der ersten und der letzten Runde verstanden werden, die AddRoundKey Transformation, angewandt auf Ausgangswerte der, ggf. kombinierten, SubBytes Transformation T (Fig. 3, Formel (12)); oder/und (ii) in der ersten AES Runde, die AddRoundKey Transformation, angewandt auf unmaskierte, optional durch eine Permutation C bearbeitete, Runden-Eingangswerte x, wobei die Maskierungs- Abbildung A auf die Ausgangswerte der AddRoundKey Transformation angewandt ist (Formel (11)). Die Kombinationen (i), (ii) können einzeln oder gemeinsam vorliegen. Bevorzugt sind (i) und (ii) beide verwirklicht, um die AddRoundKey Transformation wie erforderlich in allen Runden des AES unterzubringen.

Wahlweise (Anspruch 10) sind die Ausgangs werte der, ggf. kombinierten, SubBytes Transformation T durch vier State Bytes x= sj, j = 0, 1, 2, 3, gebildet, wobei die AddRoundKey Transformation nur auf manche State Bytes angewandt wird, aber nicht auf alle State Bytes angewandt wird.

Die in den letzten beiden Absätzen angeführte schlüsselabhängige kombinierte Transformation ist gemäß Ausführungsformen der Erfindung durch zumindest eine schlüsselabhängige Tabelle dargestellt. Diese Tabelle ist in der Prozessor-Einrichtung implementiert. Zur Ausführung des AES werden Tabellenaufrufe in dieser Tabelle ausgeführt.

Die Prozessor-Einrichtung umfasst gemäß einer weiterbildenden Ausführung der Erfindung (Anspruch 11) weiter eine Schlüssel- Aktualisierungs- Einrichtung, die dazu eingerichtet ist, den Rundenschlüssel k in der schlüsselabhängigen Tabelle durch eine neuen Rundenschlüssel k' zu ersetzen und hierdurch eine aktualisierte schlüsselabhängige Tabelle zu erzeugen. In der praktischen Anwendung einer Implementierung des AES auf einer Prozessor-Einrichtung ist es wünschenswert eine solche Schlüssel- Aktualisierungs- Einrichtung zu haben.

Die Schlüssel- Aktualisierungs-Einrichtung ist gemäß Ausführungsformen dazu eingerichtet, aus dem Rundenschlüssel, dem neuen Rundenschlüssel und ein oder mehrerer zur White Box Maskierung verwendeter Abbildun- gen, insbesondere der Abbildungen A oder/ und B oder / und σ oder / und C, Differenzschlüsseldaten zu bilden, und durch Anwenden der Differenzschlüsseldaten auf die schlüsselabhängige Tabelle die aktualisierte schlüsselabhängige Tabelle zu bilden. Mittels der Differenzschlüsseldaten kann auf effiziente Weise die Tabelle für den neuen Rundenschlüssel berechnet werden, da es nicht erforderlich ist, die komplette Tabelle für den neuen Rundenschlüssel von Grund auf neu zu berechnen.

Der AES ist gemäß einer effizienzorientierten Ausführungsform als AES256 mit einer Schlüssellänge von 256 Bit gestaltet und umfasst 14 Runden, wobei für die auf die Runden-Eingangswerte x angewandte invertierbare affine Abbildung A, zugunsten der Effizienz, in den Runden 9, 11 und 13 dieselbe Maskierungs- Abbildung A verwendet wird. Alternativ ist der AES als AES128 oder AES192 gestaltet, wobei in den entsprechenden geeigneten Runden dieselbe Maskierungs- Abbildung A verwendet wird.

Kurze Beschreibung der Zeichnungen

Im Folgenden wird die Erfindung an Hand von Ausführungsbeispielen und unter Bezugnahme auf die Zeichnung näher erläutert, in der zeigen:

Fig. 1 schematisch eine mittlere AES-Runde, nach dem Stand der Technik; Fig. 2 eine Möglichkeit, die in [2] [Chow-AES], Fig. 1, Type II angedeutete

White Box maskierte T-Box in einem Tabellenaufruf zu verwirklichen; Fig. 3 eine von vier Tabellen, die die SubBytes, MixColumns und

AddRoundKey Operationen einer AES-Runde auf State- Words mit den Indizes 0, 4, 8, 12 implementieren, gemäß einer Ausführungsform der Erfindung;

Fig. 4 die entsprechenden kombinierten Tabellen für die übrigen zwölf State - Word Indizes 1, 2, 3, 5, 6, 7, 9, 10, 11, 13, 14, 15. Fig. 5 zwei bei manchen Ausführungsformel gültige Formeln (11), (12).

Detaillierte Beschreibung von Ausführungsbeispielen Fig. 3 zeigt eine von vier Tabellen, die die SubBytes, MixColumns und

AddRoundKey Operationen einer AES-Runde auf State- Words mit de Indizes 0, 4, 8, 12 implementieren. Fig. 4 zeigt die entsprechenden kombinierten Tabellen für die übrigen zwölf State- Word Indizes 1, 2, 3, 5, 6, 7, 9, 10, 11, 13, 14, 15. Die Runden-Eingangs werte x der jeweiligen AES-Runde x werden mit Verse hleierungs werten y konkateniert und mit einer Maskierungs- Abbildung A maskiert. Das Ergebnis dieser Operation sind Eingangswerte x' für die Abbildung T und somit für die in Fig. 3 und Fig. 4. dargestellten Tabellen. Die maskierte und gehärtete AES Implementierung ist somit durch eine Abbildung T gebildet, die aus den vier in Fig. 3 und 4 dargestellten Ta- bellen zusammengesetzt ist, also aus T 4 i+i (r) (χ') | T +2 (χ') | T 1+3W ( χ ') | T 4i+4( r ) (χ'), in Verbindung mit den Eingangswerten x'.

Es gibt drei AES- Varianten, nämlich mit Schlüssellängen 128 Bit, 192 Bit und 256 Bit, die sich nur in der Zahl der Runden und der Berechnung der Run- denschlüssel unterscheiden. Daher ist für jede dieser Schlüssellängen eine erfindungsgemäße Implementierung möglich.

Fig. 3 zeigt genauer eine durch eine Tabelle T i+i (r) (χ') implementierte kombinierte Transformation, in der die Transformationen ShiftRows, SubBytes S, AddRoundKey und MixColumns kombiniert sind, sowie die Verschleierungswerte y. Die Transformationen SubBytes S und MixColumns einer Runde sind zu einer kombinierten SubBytes Transformation T = To,Ti,T2,T3 (d.h. die Tabelle T umfasst vier Einzeltabellen To,Ti,T2,T3) kombiniert, z.B. gemäß T 0 (x) = (02,01,02,03) S(x) ; Ti(x) = (03,02,02,01) S(x) ; T 2 (x) = (01,03,02,01) S(x) ; T 3 (x) = (01,01,03,02) S(x). Durch die vier je vierelementigen Vektoren (der besseren Lesbarkeit halber hier in Zeilenform mit Kommata dargestellt) vor den SubBytes Transformationen S sind die Spalten der MixColumns Transformation dargestellt. Jede Spalte im Ergebnis der MixCo- lumns / SubBytes Transformation ist die Summe der Einträge in den Tabellen Tj, j = 1,2,3,4, z.B. gemäß:

To (so X koW) X Ti (S5 X ksW) X T 2 (sio X ki 0 W) X T 3 (sis X k 15 «) ; mit X = XOR.

Die Maskierungs- Abbildung A selbst ist in Fig. 3 (und 4) nicht dargestellt, lediglich die inverse Maskierungs- Abbildung A -1 , mit der die Maskierungs- Abbildung A vor der SubBytes Transformation S, hier in der Kombination mit MixColumns als T verwirklicht, wieder aufgehoben wird. Mittels der inversen Maskierungs- Abbildung A" 1 wird die Maskierung A auch von den Verschleierungswerten y entfernt. Die hierdurch demaskierten Verschleie- rungs werten y werden mit der - optional für jede Durchführen des AES neu zufällig festgelegten - Maskierungs- Abbildung sigma wieder maskiert, so dass also eine Urnmaskierung von der langfristigen Maske A auf die ggf. bei jeder AES- Ausführung zufällig gewählte Maske sigma durchgeführt wird. Die Abbildung umfasst weiter eine Transformation B, in welcher die Einträ- ge (d.h. die Ausgangswerte) der kombinierten SubBytes/ MixColumns Transformation Tj(x) verschleiert werden.

Gemäß Fig. 3 sind die Eingangswerte x' = A(x | y) 12 Bit groß. Nach der De- maskierung mit der inversen Maskierungs- Abbildung A _1 liegen 8 Bit Run- de-Eingangsdaten und vier Bit Verschleierungswerte y vor. Nach der kombinierten SubBytes / MixColumns Transformation Tj(x) liegen 32 Bit transformierte Runden-Eingangsdaten x vor, die in vier mal 8 Bit aufgespalten werden. Nun werden die Verschleierungswerte y mit den transformierten Runden-Eingangsdaten x zusammengeführt. Das Ergebnis des Zusammenführens wird mittels einer Transformation N expandiert auf 48 Bit.

Die nun vorliegenden 48 Bit liefern das Ausgangsmaterial für die Runden- Eingangswerte der nächsten AES-Runde.

Fig. 4 ist zu Fig. 3 analog aufgebaut, nur mit dem Unterschied, dass keine Rundenschlüssel einfließen. Zitierter Stand der Technik

[1] [Bos] J.W. Bos, Ch. Hubain, W. Michiels, and Ph. Teuwen,„Differential Computation Analysis: Hiding your White-Box Designs is Not Enough", eprint.iacr.org/2015/753, http://ia.cr/2015/753

[2] [Chow-AES] S. Chow, P. Eisen, H. Johnson, P.C. van Oorschot, "White- Box Cryptography and an AES Implementation", in proceedings of the Ninth Workshop on Selected Areas in Cryptography (SAC 2002), pages 250- 270, 2002

[3] [NIST-AES] NIST fips 197, "Announcing the ADVANCED ENCRYPTION STANDARD (AES), November 26, 2001.

[4] J. Daemen and V. Rijmen: The Design ofRijndael: AES - The Advanced En- ncryption Standard. Information Security and Cryptography. Springer, 2002.