Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD HAVING SAFE-ERROR DEFENSIVE MEASURE
Document Type and Number:
WIPO Patent Application WO/2019/233626
Kind Code:
A1
Abstract:
The invention provides a method having a defensive measure designed to protect the calculation against safe-error attacks, said measure comprising the use of a consistency check, which operates without comparison of key results (EK1, EK2, ...) with complementary key results (EK1', EK2'), for example by comparison of key results (EK1, EK2, ...) only among each other and of complementary key results (EK1', EK2') only among each other, or by a consistency check on the key, or by both.

Inventors:
HEMME LUDGER (DE)
Application Number:
PCT/EP2019/000178
Publication Date:
December 12, 2019
Filing Date:
June 06, 2019
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
GIESECKE DEVRIENT MOBILE SECURITY GMBH (DE)
International Classes:
H04L9/06; H04L9/00
Foreign References:
EP2675103A22013-12-18
DE102004008901A12005-09-15
EP2466782A12012-06-20
US20110222684A12011-09-15
EP2675103A22013-12-18
US20110103584A12011-05-05
US8453238B22013-05-28
Download PDF:
Claims:
P a t e n t a n s p r ü c h e

1. Verfahren zur gegen Angriffe geschützten Durchführung einer kryptogra- phischen Berechnung, die in einer Prozessoreinrichtung (PR) implementiert ist, wobei die kryptographische Berechnung dazu eingerichtet ist, durch Anwenden eines kryptographischen Algorithmus (AES) auf Eingabewerte, welche ein Datum (D) und einen kryptographischen Schlüssel (K) umfassen, um ein Rechenergebnis (E) des kryptographischen Algorithmus zu erzeugen, wobei Berechnungen mit dem Schlüssel (K) und dem zum Schlüssel kom- plementären Komplementär-Schlüssel (K') durchgeführt werden;

gekennzeichnet durch

(a) eine Berechnungs-Maßnahme, umfassend folgenden Schritte:

- zweimaliges oder mehrmaliges Durchführen der Berechnung mit dem Da tum (D) und dem Schlüssel (K), um zwei oder mehr Schlüssel-Ergebnisse (EK1, EK2, ...) zu erzeugen,

- zweimaliges oder mehrmaliges Durchführen der Berechnung mit dem Da- tum (D) und dem Komplementär-Schlüssel (K'), um zwei oder mehr Kom- plementär-Schlüssel-Ergebnisse (EKI', EK2', ...) zu erzeugen,

(b) weiter, zum Schutz der Berechnung gegen Safe Error Angriffe, eine Abwehr-Maßnahme umfassend:

- Anwenden einer Konsistenzprüfung, die ohne Vergleich von Schlüssel- Ergebnissen (EK1, EK2, ...) mit Komplementär-Schlüssel-Ergebnissen (EKI', EK2', ...) arbeitet,

- im Fall des Bestehens der Konsistenzprüfung, Ausgabe eines der oder zu mindest eines der Schlüssel-Ergebnisse (EK1, EK2, ...) als Ergebnis (E),

- andernfalls Unterbinden der Ausgabe eines Ergebnisses (E) und optional statt Ausgabe des Ergebnisses Ausgabe eines Fehlercodes.

2. Verfahren nach Anspruch 1, wobei die Abwehr-Maßnahme umfasst oder gestaltet ist als eine Ergebnis-Vergleichsmaßnahme umfassend: - Vergleich der zwei oder mehr Schlüssel-Ergebnisse (EK1, EK2, ...) auf Übereinstimmung miteinander, und Vergleich der zwei oder mehr Kom- plementär-Schlüssel-Ergebnisse (EKI', EK2', ...) auf Übereinstimmung mit- einander,

- im Fall der Übereinstimmung der zwei oder mehr Schlüssel-Ergebnisse (EK1, EK2, ...) und der zwei oder mehr Komplementär-Schlüssel-Ergebnisse (EK , EK2', ...), Ausgabe eines der oder zumindest eines der Schlüssel- Ergebnisse (EK1, EK2, ...) als Ergebnis (E),

- andernfalls Unterbinden der Ausgabe eines Ergebnisses (E) und optional statt Ausgabe des Ergebnisses Ausgabe eines Fehlercodes.

3. Verfahren nach Anspruch 1 oder 2, wobei die Abwehr-Maßnahme um- fasst oder gestaltet ist als eine Schlüssel-Überprüfungsmaßnahme umfas send:

- Überprüfen des Schlüssels (K) und des Komplementär-Schlüssels (K') je- weils daraufhin, ob er manipuliert worden ist,

- im Fall, dass der Schlüssel (K) und der Komplementär-Schlüssel (K') gemäO der Überprüfung nicht manipuliert worden sind, Ausgabe eines der oder zumindest eines der Schlüssel-Ergebnisse (EK1, EK2, ...) als Ergebnis (E),

- andernfalls Unterbinden der Ausgabe eines Ergebnisses (E) und optional statt Ausgabe des Ergebnisses Ausgabe eines Fehlercodes.

4. Verfahren nach einem der vorangehenden Ansprüche, wobei die Berechnungs-Maßnahme umfasst, dass jeweils abwechselnd (i) ein Durchführen der Berechnung mit dem Datum (D) und dem Schlüssel (K) und (ii) ein Durchführen der Berechnung mit dem Datum (D) und dem Komplementär- Schlüssel (K') durchgeführt wird, wobei (iii) zu Beginn der Berechnungs- Maßnahme der Schlüssel (K) oder der Komplementär -Schlüssel (K') zur ers- ten Durchführung der Berechnung festgelegt wird und (iv) bei jeder nach- folgenden Durchführung der Berechnung der zu verwendende Schlüssel (K oder K') durch Komplementierung des Schlüssel (K' oder K) erzeugt wird, der bei der Durchführung der Berechnung gerade verwendet worden ist.

5. Verfahren nach Anspruch 4, wobei (iii) zu Beginn der Berechnungs- Maßnahme zufallsgesteuert der Schlüssel (K) oder der Komplementär- Schlüssel (K') zur ersten Durchführung der Berechnung festgelegt wird.

6. Verfahren nach Anspruch 4 oder 5, wobei die Prozessoreinrichtung ein Schlüsselregister und eine dem Schlüsselregister zugeordnete XOR-Einheit umfasst, und wobei:

- der gemäß (iii) festgelegte Schlüssel zu Beginn der Berechnungs-Maßnahme in ein Schlüsselregister geladen wird,

- beim Durchführen Berechnungs-Maßnahme:

- in (i) und (ii) das Durchführen der Berechnung mit dem Schlüssel (K) oder Komplementär-Schlüssel (K') durchgeführt wird, und

- in (iv) bei jeder nachfolgenden Durchführung der Berechnung der zu ver wendende Schlüssel (K oder K') durch Komplementierung des Schlüssel (K' oder K) erzeugt wird, der bei der Durchführung der Berechnung gerade verwendet worden ist, indem der Schlüsselregisterinhalt und ein Komple mentierungselement, das aus binär nur Einsen gebildet ist, der XOR-Einheit zugeführt wird, durch die XOR-Einheit daraus das Einer-Komplement des Schlüsselregisterinhalts erzeugt wird und das erzeugte Einer-Komplement in das Schlüsselregister zurück gespeichert wird,

- so dass insbesondere jede Durchführen der Berechnung mit dem Schlüssel (K) oder Komplementär-Schlüssel (K') durch Verwenden desselben Schlüs- selregisters durchgeführt wird, welches abwechselnd mit dem Schlüssel (K) und dem Komplementär-Schlüssel (K') belegt (bespeichert) ist.

7. Verfahren nach Anspruch 6, wobei das Komplementierungselement dem Schlüsselregister zugeführt wird: entweder von außerhalb der Prozessorein- richtung oder aus einem innerhalb der Prozessoreinrichtung eingerichteten Speicher.

8. Verfahren nach einem der vorangehenden Ansprüche, wobei die Abwehr- Maßnahme entweder nur eine Ergebnis-Vergleichsmaßnahme oder nur eine

Schlüssel-Überprüfungsmaßnahme oder sowohl eine Ergebnis-Vergleichs- maßnahme als auch eine Schlüssel-Überprüfungsmaßnahme umfasst.

9. Verfahren nach einem der vorangehenden Ansprüche, wobei der krypto- graphische Algorithmus als Advanced Encryption Standard AES oder Data

Encryption Standard DES oder ein anderer symmetrischer kryptographi- scher Algorithmus gestaltet ist.

10. Verfahren nach einem der vorangehenden Ansprüche, wobei die Durch- führung der kryptographischen Berechnung als Verschlüsselung, Entschlüs- selung, Signaturbildung oder Signaturprüfung gestaltet ist.

Description:
Verfahren mit Safe-Error- Abwehrmaßnahme

Gebiet der Erfindung

Die Erfindung betrifft ein gegen Safe-Error- Angriffe geschütztes Verfahren zum Durchführen einer kryptographischen Berechnung in einer Prozessor- einrichtung.

Prozessoreinrichtungen können als Chipkarten wie SIM-Karten oder Zah lungsverkehrskarten gestaltet sein, oder auch als Chipsets für größere Geräte wie z.B. Mobiltelefone. Eine Prozessoreinrichtung wie sie im Zusammen hang mit der Erfindung betrachtet wird, hat einen Prozessor, der dazu ein gerichtet ist, eine kryptographischen Berechnung mit einem kryptographi schen Schlüssel durchzuführen, und vorzugsweise ein Schlüsselregister, das für den Prozessor zugänglich ist, und in dem der kryptographische Schlüssel zur Durchführung der kryptographischen Berechnung zwischengespeichert wird. Die Prozessoreinrichtung kann insbesondere als speziell für einen kryptographischen Algorithmus eingerichteter Krypto-Koprozessor mit ei nem Schlüsselregister gestaltet sein, oder als Kombination eines allgemeinen Prozessors mit einem solchen Krypto-Koprozessor. Der Schlüssel muss zur Durchführung der kryptographischen Berechnung jeweils in das Schlüssel register R geladen und dort zwischengespeichert werden. Als kryptographi sche Algorithmen sind beispielsweise bekannt der Advanced Encryption Standard AES und der Data Encryption Standard DES und weitere symmet rische kryptographische Algorithmen.

Manchen Schlüsselregistern ist eine XOR-Einheit zugeordnet, die dazu ein gerichtet ist, im Schlüsselregister gespeicherte Daten und ein weiteres der XOR-Einheit zugeführtes Datum einer XOR-Operation zu unterziehen. Fig. 1 zeigt eine Prozessoreinrichtung PR, hier gestaltet als für AES eingerichteter Krypto-Koprozessor, mit einer AES-Einheit AES, einem Schlüsselregister REG und einer dem Schlüsselregister REG zugeordneten XOR-Einheit XOR. Die AES-Einheit (In Fig. 1 und Fig. 2 eine Verschlüsselungseinheit, alternativ z.B. eine Entschlüsselungseinheit), ist eingerichtet, einen der AES-Einheit zugeführten Plaintext P (oder allgemeiner Daten D) unter Verwendung eines im Schlüsselregister REG abgelegten Schlüssels K und unter Anwendung des AES- Algorithmus zu einem Ciphertext C (oder allgemeiner zu einem Ergebnis E) zu verarbeiten.

Die XOR-Einheit des Schlüsselregisters REG wird herkömmlicherweise bei spielsweise dazu verwendet, um einen Schlüssel K in einer gegen Seitenka nalangriffe geschützten Weise in das Schlüsselregister zu laden. Hierzu wer den, wie in Fig. 1 gezeigt, folgende Schritte durchgeführt:

i) Lade den maskierten Schlüssel (K XOR M) in das Schlüsselregister, wobei M eine zufällige Maske ist.

ii) VerXORe das Schlüsselregister mit M.

iii) (K XOR M) XOR M ergibt K, so dass nun im Schlüsselregister REG der Schlüssel K in unmaskierter Form enthalten ist.

Der so erzeugte unmaskierte Schlüssel K wird der AES-Einheit zugeführt, um den Ciphertext C zu erzeugen. Dabei wurde außerhalb des Krypto- Koprozessors niemals mit dem unmaskierten Schlüssel K gearbeitet. Der Schlüssel K wird von außerhalb des Krypto-Koprozessors PR in das Schlüs selregister REG geladen. Die Maske M wird von außerhalb des Krypto- Koprozessors PR in den des Krypto-Koprozessor PR geladen.

Die XOR-Operation hat die Eigenschaft, dass VerXORung eines Datums D mit einem Wert W, der aus binär einer Folge von nur Einsen besteht, also 1111...111, das ler-Komplement D', oder gleichbedeutend D , ergibt. Im Fol genden wird für das ler-Komplement eines Datums D meistens die

Schreibweise D' verwendet, und nur ausnahmsweise, falls die Darstellbar- keit es erfordert, die Schreibweise D . Dieser Sachverhalt wird anhand von Fig. 2 erläutert. Fig. 2 zeigt eine ähnliche Prozessoreinrichtung PR wie die in Fig. 1 gezeigte, mit dem Unterschied, dass die Prozessoreinrichtung PR zu- sätzlich einen innerhalb der Prozessoreinrichtung PR, also innerhalb des Krypto-Koprozessors, angeordneten Speicher SP hat, in dem ein Datum ab gespeichert ist, das aus binär lauter Einsen besteht, und der der XOR-Einheit zugeordnet ist. Die Kombination aus dem Speicher SP mit den Einsen und der XOR-Einheit bildet eine ler-Komplementierungs-Einheit. Wird nun auf einen im Schlüsselregister REG abgelegten Schlüssel K die XOR-Einheit an gewandt, wird der Schlüssel K mit 111...111 verXORt und dadurch der Komplementärschlüssel K' erzeugt und zurück in das Schlüsselregister REG geschrieben. Wird der nun im Schlüsselregister REG abgelegte Komplemen tärschlüssel K' der XOR-Einheit zugeführt und dort verarbeitet, wird dessen ler-Komplement erzeugt und zurück in das Schlüsselregister REG geschrie ben, so dass im Schlüsselregister REG nun wieder der nicht-komplementierte ursprüngliche Schlüssel K abgelegt ist.

Angriffsmodell

Ein Angreifer hat mit geeigneten Methoden das Layout einer Prozessorein richtung analysiert und die Koordinaten einzelner Schlüsselbits im Schlüs selregister ermittelt. Ein Angreifer kann mit einer Störung jeweils ein Schlüs selbit entweder in ausschließlich eine Richtung (von Null nach Eins oder von Eins nach Null) oder in beide Richtungen verändern. Die Eigenschaft ein Schlüsselbit wahlweise auf 0 oder 1 zu setzen, wird entweder durch Störpa rameter (z.B. Energie und Pulslänge) oder durch den Ort der Störung be stimmt. Da der Angreifer bei der Analyse die Schlüsselbits selbst setzen kann, besitzt er am Ende der Analyse einen Satz von Chipkoordinaten / Störparametern, die jedem Schlüsselbit zugeordnet werden können. Dieser Angriff funktioniert am besten zu einem Zeitpunkt da der Schlüssel noch nicht benutzt aber bereits in das Schlüsselregister geladen wurde. Der An- greifer kann erkennen, ob die Rechnung gestört wurde. Insbesondere kann er erkennen, wenn die Prozessoreinrichtung selbst eine Störung feststellt.

"Safe Error" Angriffe

Der Angreifer stößt eine Verschlüsselung an und setzt nach dem Laden des Schlüssels und vor dem Beginn der Berechnung das erste Bit des Schlüssel- registers auf 0. Dann beobachtet er, ob das zu einer Störung der Rechnung führt. Falls ja, hat das erste Bit des Schlüssels den Wert 1, falls nicht, hat es den Wert 0. Das wiederholt der Angreifer für alle Bits des Schlüsselregisters. Der entscheidende Punkt ist, dass allein das Feststellen der Störung durch die Prozessoreinrichtung den Angriff nicht verhindert, sondern dem Angrei- fer die entscheidende Information liefert. Mit Kenntnis des Satzes der Chip koordinaten / Störparameter kann der Angreifer gezielt jedes Schlüsselbit angreifen und anhand der Reaktion der Prozessoreinrichtung die Schlüssel- information, d.h. den Schlüssel, ermitteln.

Stand der Technik

Das Dokument EP 2675103 A2 offenbart ein gegen Safe-Error- Angriffe ge- schütztes Verfahren zum Durchführen einer kryptographischen Berechnung unter Verwendung eines kryptographischen Schlüssels, bei dem als Gegen maßnahme gegen Safe-Error- Angriffe die Berechnung zufallsgesteuert mit dem Schlüssel oder dem ler-Komplement des Schlüssels durchgeführt wird.

Das Dokument US20110103584 Al (US8453238B2) off enbart Verfahren, bei dem eine Berechnung zufallsgesteuert mit einem Schlüssel K oder dessen ler-Komplement K' durchgeführt wird und mit dem Schlüssel K erzeugte Rechenergebnisse verglichen werden mit Rechenergebnissen, die mit dem Komplementärschlüssel K' erzeugt worden sind. Die in US20110103584A1 offenbarte konkrete Umsetzung des Verfahrens setzt einen Algorithmus mit Komplementierungs-Eigenschaft voraus, wie beispielsweise den Data Enc- ryption Standard DES. In der nachfolgenden Formel wird zugunsten besse- rer Darstellbarkeit ausnahmsweise das Komplement des Schlüssels K mit K bezeichnet und das Komplement des Plaintext P mit P.

(1) Komplementierungseigenschaft: DES K (P ) = DES^ P)

Denn nur in einem Algorithmus mit Komplementierungseigenschaft können mit dem Schlüssel K und dem Komplementär-Schlüssel K ' (= K ) erzeugte Rechenergebnisse miteinander verglichen werden. Daher ist das in US 2011/ 0103584 Al offenbarte Verfahren auf Algorithmen ohne Komplementie- rungs-Eigenschaft, wie beispielsweise den Advanced Encryption Standard AES, nicht anwendbar.

Zusammenfassung der Erfindung

Der Erfindung liegt die Aufgabe zu Grunde, ein Verfahren zur gegen Angrif fe geschützten Durchführung einer kryptographischen Berechnung in einer Prozessoreinrichtung zu schaffen, bei der Berechnungen mit einem krypto- graphischen Schlüssel und dem zum Schlüssel komplementären Komple- mentär-Schlüssel durchgeführt werden, und das auch auf Algorithmen ohne Komplementierungs-Eigenschaft anwendbar ist, bei gleichzeitiger Gewäh- rung eines guten Schutzes gegen Angriffe, insbesondere Safe-Error- Angriffe.

Weiter sollen Lösungen angegeben werden, die einen Schutz gegen Safe- Error- Angriffe mit einer einzelnen Störung, mit bis zu zwei Störungen des selben Bits, mit bis zu drei Störungen desselben Bits, mit bis zu 2n Störungen desselben Bits, und mit bis zu 2n+l Störungen desselben Bits bieten. Die Aufgabe wird gelöst durch ein Verfahren nach Anspruch 1. Vorteilhafte Ausgestaltungen der Erfindung sind in den abhängigen Ansprüchen ange geben.

Das erfindungsgemäße Verfahren nach Anspruch 1 ist dazu eingerichtet, ei nen Algorithmus auszuführen und als Abwehrmaßnahme eine Konsistenz prüfung anzuwenden, die ohne einen Vergleich von Schlüssel-Ergebnissen, also Ergebnissen, die durch den Algorithmus mit dem Schlüssel erzeugt worden sind, mit Komplementär-Schlüssel-Ergebnissen, also Ergebnissen, die mit dem Algorithmus mit dem Komplementär-Schlüssel erzeugt worden sind, arbeitet. Hierdurch ist das Verfahren auch auf Algorithmen ohne Kom plementierungs-Eigenschaft anwendbar. Durch die Konsistenzprüfung und anschließende Ausgabe oder Zurückbehaltung des Ergebnisses ist ein Schutz vor Safe-Error- Angriffen und anderen Angriffen gewährt.

Daher ist gemäß Anspruch 1 ein Verfahren geschaffen, das auch auf Algo- rithmen ohne Komplementierungs-Eigenschaft anwendbar ist, bei gleichzei- tiger Gewährung eines guten Schutzes gegen Angriffe, insbesondere Safe- Error-Angriffe.

Als Konsistenzprüfung, die ohne einen Vergleich von Schlüssel-Ergebnissen mit Komplementär-Schlüssel-Ergebnissen auskommt, werden zwei alternati ve Lösungen gemäß Anspruch 2 und 3 angegeben, die aber beide das gleiche Konzept verwirklichen, nämlich eine Konsistenzprüfung ohne Vergleich von Schlüssel-Ergebnissen mit Komplementär-Schlüssel-Ergebnissen. Die beiden alternativen Lösungen gemäß Anspruch 2 und 3 können sogar gemeinsam eingesetzt werden. Bei der Ergebnis-basierten Lösung gemäß Anspruch 2 werden zwei oder mehr Schlüssel-Ergebnisse auf Übereinstimmung miteinander verglichen und zwei oder mehr Komplementär-Schlüssel-Ergebnisse auf Übereinstim- mung miteinander verglichen. Hingegen werden niemals Schlüssel- Ergebnisse mit Komplementär-Schlüssel-Ergebnissen verglichen. Hierdurch ist das Verfahren auch auf Algorithmen ohne Komplementierungs- Eigenschaft anwendbar.

Im Übereinstimmungsfall wird das Schlüssel-Ergebnis als Ergebnis der Be- rechnung (Ergebnis des Algorithmus) verwendet. Das Komplementär- Schlüssel-Ergebnis wird verworfen, da es zur Erzeugung des Ergebnisses nicht verwendbar ist. Falls in mindestens einer der Überprüfungen festge- stellt wird, dass keine Übereinstimmung besteht, wird die Ausgabe eines Ergebnisses unterbunden. Zusätzlich kann statt der Ausgabe des Ergebnisses Ausgabe eines Fehlercodes erfolgen, beispielsweise einer wertlosen Bitfolge, beispielsweise einer zufälligen Bitfolge.

Das Ergebnis-basierte Verfahren ist, wie weiter unten anhand der Ausfüh- rungsbeispiele 2 und 4 beschrieben ist, gegen 2-fache Störungen, oder gene reller gegen 2n-fache Störungen, bei guter Effizienz wirksamer als beispiels weise das Verfahren in EP 2675103 A2. Denn wie bei Ausführungsbeispiel 2 erläutert, wirkt es gegen Störungen zu zwei beliebigen Zeitpunkten, wäh rend das Verfahren in EP 2675103 A2 nur gegen 2-fache Störungen wirkt, bei denen die erste im Bereich 2.1-2.2 (bzw. 3.1-3.2) und die zweite im Bereich 2.4-2.5 (bzw. 3.4-3.5) stattfindet. Stört ein Angreifer dagegen z.B. einmal im Bereich 2.4-2.5 (bzw. 3.4-3.5) und macht er diese Störung durch eine weitere Störung im Bereich 2.5-2.6 (bzw. 3.5-3.6) wieder rückgängig, so erhält er unterschiedliche Ergebnisse für die Fälle j=0 bzw. j=l, aus denen er wiederum Rückschlüsse auf das entsprechende Bit von K ziehen kann. Bei einer Schlüssel-basierten Lösung gemäß Anspruch 3 wird der Schlüssel auf Konsistenz geprüft. Auch hierbei werden niemals Schlüssel-Ergebnisse mit Komplementär-Schlüssel-Ergebnissen verglichen. Hierdurch ist das Ver- fahren auch auf Algorithmen ohne Komplementierungs-Eigenschaft an wendbar.

Wie anhand von Ausführungsbeispiel 1 weiter unten beschrieben, ist dieses Verfahren gegen 1 -fache Störungen besonders effizient, da es mit nur einer einzigen Konsistenzprüfung von R auskommt, beispielsweise im Vergleich zum Verfahren aus Dokument EP 2675103 A2, welches zwei Konsistenzprü fungen benötigt.

Werden sowohl Ergebnisse gemäß Anspruch 2 als auch Schlüssel gemäß An- spruch 3 überprüft, so resultiert eine Ergebnis-Schlüssel-basierte Lösung.

Wie anhand von Ausführungsbeispielen 3 und 5 zu erkennen ist, ist es bei einer ungeraden Anzahl von Störungen, die größer als eins ist, d.h. drei oder allgemeiner 2n+l Störungen, vorteilhaft, Ergebnis-basierte Lösung und Schlüssel-basierte Lösung beide gleichermaßen anzuwenden.

Gemäß Anspruch 4 wird eine besonders effiziente Variante eines Verfahrens für eine Schlüssel-basierte Lösung angegeben (auch anwendbar auf die Er gebnis-Schlüssel-basierte Lösung). Hierbei wird immer abwechselnd mit dem Schlüssel und dem Komplementär-Schlüssel gerechnet, und Schlüssel und Komplementär-Schlüssel jeweils auseinander abgeleitet durch Komple mentierung des jeweils anderen Schlüssels, z.B. mittels einer XOR-Operation. Hierdurch ist es möglich, zu jedem Zeitpunkt nur den jeweils zur Berech nung benötigten Schlüssel - Originalschlüssel oder Komplementärschlüssel - bereitzuhalten. Hingegen ist es nicht erforderlich, beide Schlüssel - Original schlüssel oder Komplementärschlüssel - gleichzeitig bereitzuhalten. Bei der ersten Schlüssel-Anwendung wird der Schlüssel festgelegt, beispielsweise zufällig.

Manche Prozessoreinrichtungen (Hauptprozessoren, Koprozessoren, Krypto- Koprozessoren), wie beispielsweise in Fig. 1 und Fig. 2 gezeigt, haben Schlüsselregister, denen eine XOR-Einheit zugeordnet ist. Bei einer Ausfüh- rungsform der Erfindung wird von einer Prozessoreinrichtung mit einem solchen Schlüsselregister mit XOR-Einheit ausgegangen. In diesem Fall wird zu Beginn einer Berechnung der Schlüssel oder der Komplementär-Schlüssel in das Schlüsselregister geladen, beispielsweise zufallsgesteuert der eine o- der der andere Schlüssel. Danach wird mit dem Schlüsselregisterinhalt ge- rechnet. Danach wird der Schlüsselregisterinhalt mit einem Komplementie- rungselement, das aus binär nur Einsen gebildet ist (also 1111...111 bzw. Obllll...lll, mit vorangestelltem Ob um zu kennzeichnen dass das Zahlen format das Binärformat ist), durch die XOR-Einheit verXORt und zurück in das Schlüsselregister geschrieben und wieder mit dem Schlüsselregisterin halt gerechnet usw.. Hierdurch wird in der Prozessoreinrichtung immer ab- wechselnd je einmal mit dem Schlüssel und einmal dem Komplementär schlüssel gerechnet. Auf diese Weise lassen sich mehrere Rechenergebnisse mit dem Schlüssel und mehrere Rechenergebnisse mit dem Komplementär- Schlüssel erzeugen, unter Einsatz nur eines einzigen Schlüsselregisters. Das mit einem Komplementierungselement, das aus binär nur Einsen gebildet ist, kann wahlweise im Binärformat dargestellt sein, so dass es tatsächlich aus lauter Einsen besteht, oder alternativ in einem anderen Zahlenformat, bei spielsweise dem Hexadezimalformat. Das Komplementierungselement kann dem Schlüsselregister zugeführt wer den: entweder von außerhalb der Prozessoreinrichtung, entsprechend dem Beispiel aus Figur 1, oder aus einem innerhalb der Prozessoreinrichtung ein gerichteten Speicher, entsprechend dem Beispiel aus Figur 2. Der Speicher ist vorzugsweise ein Permanentspeicher, in dem das Komplementierungsele ment, das aus binär nur Einsen gebildet ist, permanent (nicht-flüchtig) ge speichert ist, z.B. ein Flash-, EEPROM, ROM, ... Speicher.

Kurze Beschreibung der Zeichnungen

Im Folgenden werden die Zeichnungen erläutert, in denen zeigen:

Fig. 1 eine Prozessoreinheit mit einer XOR-Einheit, geeignet für den Einsatz im Zusammenhang mit der Erfindung;

Fig. 2 eine weitere Prozessoreinheit mit einer XOR-Einheit und einem Spei- cher, geeignet für den Einsatz im Zusammenhang mit der Erfindung;

Fig. 3 ein Schaubild zur Veranschaulichung eines Verfahrens zum Durch- führen eines AES mit einer Abwehrmaßnahme gegen Safe-Error- Angriffe mit nur einer einzelnen Störung, gemäß Ausführungsbeispiel 1;

Fig. 4 ein Schaubild zur Veranschaulichung eines Verfahrens zum Durch führen eines AES mit einer Abwehrmaßnahme gegen Safe-Error- Angriffe mit bis zu zwei Störungen desselben Bits, gemäß Ausführungsbeispiel 2;

Fig. 5 ein Schaubild zur Veranschaulichung eines Verfahrens zum Durch führen eines AES mit einer Abwehrmaßnahme gegen Safe-Error- Angriffe mit bis zu drei Störungen desselben Bits, gemäß Ausführungsbeispiel 3.

Detaillierte Beschreibung von Ausführungsbeispielen

Im Folgenden wird die Erfindung anhand von fünf Ausführungsbeispielen 1-5 und der Zeichnungen erläutert. Alle Ausführungsbeispiele nutzen eine Prozessoreinheit mit einer AES-Einheit und einem Schlüsselregister REG, das erlaubt, den Schlüsselregisterinhalt (oder gleichbedeutend„das Schlüs- selregister") mittels einer zugeordneten XOR-Einheit zu komplementieren. Gemäß den Ausführungsbeispielen 1-5 wird ein Verschlüsselungsverfahren W durchgeführt, hier der Advanced Encryption Standard AES, und jeweils eine Abwehrmaßnahme angewandt. Auf andere Verschlüsselungs verfahren VV als den AES, z.B. auf den DES, ist die Erfindung analog anwendbar.

Ausführungsbeispiel 1 zeigt ein Beispiel für eine Schlüssel-basierte Ab wehrmaßnahme (Anspruch 3; Figur 3):

1. Abwehrmaßnahme gegen "Safe Error” Angriffe mit einer einzelnen Störung

Eine Berechnung des Verschlüsselungsverfahrens W zur Verschlüsselung eines Datums D wird wie folgt durchgeführt:

1. Das Gerät wählt zufällig j = 0 oderj = 1

2. Falls j = 0:

2.1. Der Schlüssel K wird in das Schlüsselregister R geladen

2.2. W wird durchgeführt für Datum D - Ergebnis E

2.3. R wird verXORt mit 0b11...1 , so dass R das bitweise Komplement K‘ von K enthält

2.4. W wird durchgeführt für Datum D - Ergebnis E‘

2.5. R wird auf Manipulation geprüft

Falls R konsistent ist, wird E ausgegeben, andernfalls ein Fehlercode

3. Falls j = 1 :

3.1. Das bitweise Komplement K von K wird nach R geladen

3.2. W wird durchgeführt für Datum D - Ergebnis E‘

3.3. R wird verXORt mit 0b11...1 , sodass R den Schlüssel K enthält

3.4. W wird durchgeführt für Datum D -> Ergebnis E

3.5. R wird auf Manipulation geprüft

Falls R konsistent ist, wird E ausgegeben, andernfalls ein Fehlercode

Die Überprüfung von R in 2.5 bzw. 3.5 kann z.B. mit folgenden bereits bekannten Verfahren erfolgen:

1. Falls das Schlüsselregister R lesbar ist, so kann man dieses auslesen und mit einem Referenzwert für K bzw. K' vergleichen. 2. Falls man eine Checksumme über das Schlüsselregister berechnen kann, so kann man diese in nach Schritt 2.4 bzw. 3.5 berechnen und mit einem zuvor oder danach berechneten Referenzwert vergleichen. 3. Man kann nach Schritt 2.4 bzw. 3.4 das Verfahren W für ein Referenzdatum durchführen (unter Verwendung des aktuell geladenen (evtl manipulierten Schlüssels) K bzw. K‘ und das Ergebnis mit einem zuvor oder danach berechneten Referenzergebnis vergleichen. Begründung der Wirksamkeit:

Versucht der Angreifer an einem bestimmten Punkt zwischen 2.1 und 0 bzw. zwischen 3.1 und 3.5 ein bestimmtes Bit im Schlüsselregister R zu stören, so erhalt er in beiden Fällen (j=0 / j=1 ) einen Fehlercode, falls die Störung erfolgreich war. Falls die Störung nicht erfolg- reich war, erhält er in beiden Fällen (j=0 / j=1 ) das korrekte Ergebnis E. Er kann also aus seiner Beobachtung nicht entscheiden, ob er sich im Fall j=0 oder j=1 befindet. Somit kann er keinen Rückschluss auf den Wert eines Bits von K ziehen, da er nicht weiß, ob R gerade den Schlüssel K oder das Komplement K‘ enthält. Grenzen der Wirksamkeit:

Bei zwei Störungen desselben Bits kann die eben beschriebene Abwehrmaßnahme versagen. Kippt der Angreifer z.B. ein bestimmtes Bit in Schritt 2.3 bzw. 3.3 und behebt die Störung wieder durch ein weiteres Kippen desselben Bits zu Beginn von Schritt 2.5 bzw. 3.5 (vor der Überprüfung), so erkennt die Überprüfung keine Inkonsistenz und gibt im Fall j=0 das ungestörte Ergebnis E aus, während es im Fall j=1 ein gestörtes Ergebnis £ ausgibt.

Der Angreifer kann nun also entscheiden, in welchem der beiden Fälle (j=0 / j=1 ) er sich befindet und kann somit auch Rückschlüsse auf das entsprechende Bit des Schlüssels K ziehen.

Ausführungsbeispiel 2 zeigt ein Beispiel für die Ergebnis-basierte Abwehr maßnahme (Anspruch 2; Figur 4):

2. Abwehrmaßnahme gegen "Safe Error" Angriffe mit bis zu zwei Störungen desselben Bits

Eine Berechnung des Verschlüsselungsverfahrens W zur Verschlüsselung eines Datums D wird wie folgt durchgeführt: 1. Das Gerät wählt zufällig j = 0 oder j = 1

2. Falls j = 0:

2.1. Der Schlüssel K wird in das Schlüsselregister R geladen

2.2. W wird durchgeführt für Datum Ergebnis Ei

2.3. R wird verXORt mit 0b1 1...1 , so dass R das bitweise Komplement K‘ von K enthält

2.4. W wird durchgeführt für Datum D -> Ergebnis E‘i

2.5. R wird verXORt mit 0b1 1...1 , so dass R den Schlüssel K enthält

2.6. W wird durchgeführt für Datum D - Ergebnis E2

2.7. R wird verXORt mit 0b11... 1 , so dass R das bitweise Komplement K‘ von K enthält

2.8. W wird durchgeführt für Datum D - Ergebnis E 2

2.9. Falls Ei = E2 und E'i = E‘2 ist,

so wird das Ergebnis Ei (oder E2) ausgegeben, andernfalls ein Fehlercode

3. Falls j = 1 :

3.1. Das bitweise Komplement K' des Schlüssel K wird in das Schlüsselregister R geladen

3.2. W wird durchgeführt für Datum Ergebnis E'i

3.3. R wird verXORt mit 0b11...1 , so dass R den Schlüssel K enthält

3.4. W wird durchgeführt für Datum D - Ergebnis Ei

3.5. R wird verXORt mit 0b11...1 , so dass R das bitweise Komplement K‘ von K enthält

3.6. W wird durchgeführt für Datum D Ergebnis E‘2

3.7. R wird verXORt mit 0b11...1 , so dass R den Schlüssel K enthält

3.8. W wird durchgeführt für Datum D - Ergebnis E2

3.9. Falls E1 = E 2 und E‘1 = E‘ 2 ist,

so wird das Ergebnis Ei (oder E2) ausgegeben, andernfalls ein Fehlercode Begründung der Wirksamkeit:

Ein Angreifer versuche nun, ein bestimmtes Bit des Schlüsselregisters R an bis zu zwei Zeitpunkten zwischen 2.1 und 2.9 bzw. zwischen 3.1 und 3.9 zu stören. Um zu verstehen, warum er damit keine Informationen über den Schlüssel K erhält, betrachten wir die ver- schiedenen Phasen im Leben des Schlüsselregisters R während des gerade beschriebenen Verfahrens für die Fälle j=0 und j=1 :

Die Störung eines Bits in Phase i wirkt sich zunächst so aus, dass das Ergebnis der Durchführung von W in Phase i gestört ist. Da während des Verfahrens das Schlüsselregister nur mit Ob11...1 verXORt wird und nicht etwa neu geladen wird, bleibt der erzeugte Fehler er- halten und wirkt sich auch auf alle folgenden Durchführungen von W aus, die ebenfalls ein gestörtes Ergebnis liefern. Wird das Bit jedoch danach noch einmal gestört, so wird die erste Störung wieder behoben und W liefert ab diesem Zeitpunkt wieder ungestörte Ergebnisse.

Nun betrachten wir für bis zu zwei erfolgreiche Störungen eines bestimmten Bits das jeweils vom Angreifer beobachtete Ergebnis.

': Ausgabe des ungestörten Ergebnisses E

fe: Ausgabe eines gestörten Ergebnisses £

fc: Ausgabe eines Fehlercodes

Zur Verdeutlichung der Tabelle drei beispielhafte Erklärungen:

Wird bei den Störversuchen des Angreifers kein Bit gekippt (Spalte so wird in beiden Fällen (j=0 / j=1 ) das ungestörte Ergebnis E=Ei ausgegeben.

Wird z.B. ein Bit während Phase 1 gekippt, so sind alle vier Ergebnisse Ei, E2, E‘1, E'2 fehlerhaft, und zwar derart, dass die Überprüfung in 2.9 bzw. 3.9 keine Inkonsistenz erkennt und das fehlerbehaftete Ergebnis 8=Ei ausgibt.

Wird z.B. ein Bit während Phase 1 gekippt und während Phase 2 wieder gekippt, so ist für j=0 das Ergebnis Ei fehlerhaft, die Ergebnisse E‘1, E2, E‘2 jedoch ungestört, so dass die Überprüfung in 2.9 eine Inkonsistenz feststellt und die Ausgabe eines Fehlercodes veranlasst. Analog für j=1.

Der Angreifer erhält nun deswegen keine Information über ein Bit von K, da die Tabellenzeilen für j=0 und j=1 identisch sind. Jedes beobachtete Ergebnis kann damit nämlich sowohl durch eine Störung eines Bits von K als auch durch die Störung des entsprechenden Bits von K‘ entstanden sein.

Grenzen der Wirksamkeit:

Bei drei oder vier Störungen desselben Bits kann die eben beschriebene Abwehrmaßnahme versagen, wie man an der entsprechenden Tabelle sieht:

Kippt z.B. ein bestimmtes Bit in den Phasen 2, 3 und 4, so sind im Fall j=0 die Ergebnisse Ei, E2 ungestört und die Ergebnisse E‘1, E'2 gestört, und zwar derart, dass die Überprüfung in 2.9 keine Inkonsistenz erkennt und somit ein ungestörtes Ergebnis E=Ei ausgibt. Im Fall j=1 dagegen sind die Ergebnisse E‘1, E‘2 ungestört und die Ergebnisse Ei, E2 gestört, und zwar wieder so, dass die Überprüfung in 3.9 keine Inkonsistenz erkennt, diesmal jedoch ein gestörtes Ergebnis S=Ei ausgibt. Die gesamte Tabelle für drei und vier Störungen sieht wie folgt aus:

Ausführungsbeispiel 3 zeigt ein Beispiel für eine kombinierte Ergebnis- basierte und zusätzlich Schlüssel-basierte Abwehrmaßnahme (Figur 5): 3. Abwehrmaßnahme gegen "Safe Error" Angriffe mit bis zu drei Störungen dessel- ben Bits

Eine Berechnung des Verschlüsselungsverfahrens W zur Verschlüsselung eines Datums D wird durchgeführt wie in Abschnitt 0, mit der einzigen Änderung, dass die Schritte 2.9 und 3.9 jeweils durch den folgenden Schritt ersetzt werden:

2.9‘ bzw. 3.9' R wird auf Manipulation geprüft.

Falls R konsistent und Ei = E2 und E‘1 = E‘2 ist,

so wird das Ergebnis Ei (oder E2) ausgegeben, andernfalls ein Fehler- code

Begründung der Wirksamkeit: Die zu diesem Verfahren gehörige Ergebnistabelle für bis zu vier Störungen sieht wie folgt aus:

Da durch die zusätzliche Überprüfung des Schlüsselregisters in Schritt 2.9' und 3.9' die Zeilen der Tabelle für bis zu drei Störungen wieder identisch sind, kann man wie in Abschnitt 0 argumentieren, dass der Angreifer mit bis zu drei Störungen keine Informationen über die Bits von K erhält.

Grenzen der Wirksamkeit:

Bei vier Störungen desselben Bits kann die eben beschriebene Abwehrmaßnahme versagen, wie man an der Asymmetrie der letzten Spalte der obigen Tabelle sieht.

Ausführungsbeispiel 4 zeigt ein Beispiel für die Ergebnis-basierte Abwehr maßnahme, das gegenüber Ausführungsbeispiel 2 eine Verallgemeinerung dar stellt (Anspruch 2):

4. Abwehrmaßnahme gegen "Safe Error" Angriffe mit bis zu 2n Störungen desselben Bits (n>=2)

Eine Berechnung des Verschlüsselungsverfahrens W zur Verschlüsselung eines Datums D wird wie folgt durchgeführt:

1. Das Gerät wählt zufällig j = 0 oder j = 1

2. Falls j = 0:

2.1. Der Schlüssel K wird in das Schlüsselregister R geladen

2.2. Für i = 1 , 2, ... , n+1 :

2.2.1. W wird durchgeführt für Datum D - Ergebnis Ei

2.2.2. R wird verXORt mit 0b1 1 ... 1 , so dass R das bitweise Komplement K' von K enthält

2.2.3.W wird durchgeführt für Datum D -4 Ergebnis E’i

2.2.4. Falls i < n+1 :

R wird verXORt mit 0b1 1 ... 1 , so dass R den Schlüssel K enthält 2.3. Falls Ei = E2 = ... En+1 und E'1 = E‘2 = ... = E’n +i ist,

so wird das Ergebnis Ei ausgegeben, andernfalls ein Fehlercode

3. Falls j = 1 :

3.1. Das bitweise Komplement K' von K wird in das Schlüsselregister R geladen

3.2. Für i = 1 , 2, ... , n+1 :

3.2.1. W wird durchgeführt für Datum D -> Ergebnis E‘i

3.2.2. R wird verXORt mit 0b11...1 , so dass R den Schlüssel K enthält

3.2.3. W wird durchgeführt für Datum D -> Ergebnis Ei

3.2.4. Falls i < n+1 :

R wird verXORt mit 0b11...1 , so dass R das bitweise Komplement K' von K enthält

3.3. Falls Ei = E2 = ... En+1 und E’1 = E‘2 = ... = E’n+1 ist,

so wird das Ergebnis Ei ausgegeben, andernfalls ein Fehlercode

Begründung der Wirksamkeit:

Das Verfahren ist eine Verallgemeinerung des in Abschnitt 0 beschriebenen Verfahrens. Die Begründung der Wirksamkeit verläuft analog zu Abschnitt 0.

Grenzen der Wirksamkeit:

Analog zu Abschnitt 0 kann das Verfahren bei 2n+1 Störungen versagen.

Ausführungsbeispiel 5 zeigt ein Beispiel für eine kombinierte Ergebnis- basierte und zusätzlich Schlüssel-basierte Abwehrmaßnahme, das gegenüber Ausführungsbeispiel 3 eine Verallgemeinerung dar stellt:

5. Abwehrmaßnahme gegen "Safe Error" Angriffe mit bis zu 2n+1 Störungen desselben Bits (n>=2)

Eine Berechnung des Verschlüsselungsverfahrens W zur Verschlüsselung eines Datums D wird durchgeführt wie in Abschnitt 4, mit der einzigen Änderung, dass die Schritte 2.3 und 3.3 jeweils durch den folgenden Schritt ersetzt werden:

2.3' bzw. 3.3‘ R wird auf Manipulation geprüft.

Falls R konsistent und Ei = E2 = ... E n+i und E’1 = E‘2 = ... = E’ n+i ist, so wird das Ergebnis Ei ausgegeben, andernfalls ein Fehlercode Begründung der Wirksamkeit:

Analog zu Abschnitt 4.

Grenzen der Wirksamkeit:

Analog zu Abschnitt 4.