PatentDe  


Dokumentenidentifikation DE102004062825A1 13.07.2006
Titel Kryptographische Einheit und Verfahren zum Betreiben einer kryptographischen Einheit
Anmelder Infineon Technologies AG, 81669 München, DE
Erfinder Gammel, Berndt, 85570 Markt Schwaben, DE;
Gössel, Michael, 15831 Mahlow, DE;
Bock, Holger, Graz, AT
Vertreter Schoppe, Zimmermann, Stöckeler & Zinkler, 82049 Pullach
DE-Anmeldedatum 27.12.2004
DE-Aktenzeichen 102004062825
Offenlegungstag 13.07.2006
Veröffentlichungstag im Patentblatt 13.07.2006
IPC-Hauptklasse H04L 9/06(2006.01)A, F, I, 20051017, B, H, DE
Zusammenfassung Eine kryptographische Einheit umfasst eine erste Verarbeitungseinheit (S) zum Bestimmen eines Ausgangssignals (y) auf der Basis des AES-Algorithmus und zum Bestimmen eines ersten Vergleichssignals (v), eine zweite Verarbeitungseinheit (S1) zum Bestimmen eines zweiten Vergleichssignals (v') sowie eine Freigabeeinheit zum Bereitstellen des Ausgangssignals (y), wobei die Freigabeeinheit ausgebildet ist, um eine Abwehrmaßnahme gegen einen externen Abgriff des Ausgangssignals (y) durchzuführen, wenn das erste Vergleichssignal (v) nicht mit dem zweiten Vergleichssignal (v') in einer vorbestimmten Beziehung steht. Das erste Vergleichssignal (v) wird dabei in einer unterschiedlichen Art und Weise gegenüber dem zweiten Vergleichssignal (v') bestimmt, so dass bei der Injektion von Fehlern in die kryptographische Einheit diese Fehler sehr einfach erkannt werden können.

Beschreibung[de]

Die vorliegende Erfindung bezieht sich auf das technische Gebiet der Kryptographie und insbesondere bezieht sich die vorliegende Erfindung auf die Erkennung von sogenannten Fehlerangriffen von kryptographischen Einheiten.

Sogenannte Fehlerangriffe (Fault Attacks, FA) stellen eine ernste Bedrohung für die Implementierung von kryptographischen Algorithmen dar, unabhängig davon ob der Algorithmus in Software oder als Hardwaremodul implementiert ist.

Während asymmetrische Verfahren wie z. B. RSA durch bekannte, publizierte Maßnahmen relativ einfach geschützt werden können, sind symmetrische Verschlüsselungsverfahren, wie z. B. der Advanced Encryption Standard (AES) oder der DES (Data Encryption Standard) nur extrem schwer schützbar. Ein Angreifer ist mit einfachen technischen Mitteln in der Lage, den Algorithmus während der Abarbeitung so zu stören, dass beispielsweise interne Zwischenergebnisse (z. B. Rundenschlüssel oder Zwischenergebnisse von Runden) Einbit-Fehler oder Mehrbit-Fehler aufweisen. Diese Fehler führen zu falschen Verschlüsselungs- oder Entschlüsselungsergebnissen. Aus einer nur geringen Zahl von solchen Ergebnissen kann in einer kryptographischen Analyse der geheime Schlüssel berechnet werden. Dabei ist es nicht einmal nötig, die Bitfehler an gezielten Positionen zu injizieren. Nach einer Veröffentlichung von Giraud („Differential Fault Analysis On AES", Eprint IACR 2003–008, http://eprint.iacr.org/2003/008.ps) genügen bereits 50 falsche Resultate bei Einbit-Fehlern in Zwischenergebnissen der neunten Runde von AES-128 oder etwa 250 falsche Resultate bei Byte-Fehlern in Rundenschlüsseln der achten oder neunten Runde oder in Zwischenergebnissen der neunten Runde.

Für den Fall von Einbit-Fehlern ist eine effiziente Methode der Online-Fehlererkennung bekannt (siehe beispielsweise Wu, Karri, Kusnetsov, Gössel, Low Cost Concurrent Error Detection for the Advanced Encryption Standard, Preprint 008/2003, Okt. 2003, ISSN 0946–7580, Universität Potsdam oder Gössel, deutsche Patentanmeldung DE 10261810.0: „Verfahren zur Fehlererkennung beim kryptographischen Transformieren von binären Daten und Schaltungsanordnung"; oder Bretoni, Breveglieri, Korem, Piuri, „On the propagation of faults and their detection in a hardware implementation of the advanced encryption standard", Proc. ASAP'02, pp.303–312,2002). Ist jedoch ein höheres Sicherheitsniveau nötig, muss das Auftreten von beliebigen Mehrbit-Fehlern erkannt werden. So sind heute keine generellen Lösungen für den Fall von injizierten Mehrbit-Fehlern außer der trivialen Redundanz bekannt wie:

  • a) Mehrfache Wiederholung der Verschlüsslung (oder Entschlüsselung) und Vergleich der Resultate (zeitliche Redundanz).

    Letzteres kann zu Erschwernis des Angriffs auch z. B. als eine Verschlüsselung mit einer nachfolgenden Entschlüsselung und Vergleich des Resultats mit den Ausgangsdaten implementiert werden. In jedem Fall führt diese Methode in etwa zu einer Halbierung des Datendurchsatzes. Um diesen Nachteil zu verringern, können z. B. nur die letzte oder die letzten beiden Runden wiederholt gerechnet (oder zurückgerechnet) werden, da in diesem Angriff (beispielsweise nach in der vorstehend genannten Veröffentlichung von Giraud aus dem Jahre 2003) Fehler in diesen Runden ausgenutzt werden können. Allerdings kann in diesem Fall nicht ausgeschlossen werden, dass weiterentwickelte kryptographische Analysemethoden auch hier zum Erfolg führen können.
  • b) Mehrfache Implementierung mit Vergleich der Resultate (Informationsredundanz)

    Die z. B. doppelte Implementierung erfordert jedoch einen hohen Hardwareaufwand und enthält weiterhin Sicherheitslücken, da in diesem Fall beispielsweise der Vergleich ebenfalls ein Ziel des Angriffes sein kann. Führen injizierte Fehler im Vergleicher zum Nicht-Erkennen der Ungleichheit von Resultaten, kann trotzdem ein falsches Resultat ausgegeben werden. Weiterhin hat identische Verdopplung und Vergleich die Schwäche, dass die Wahrscheinlichkeit für „gleiche Fehler" in beiden Datenpfaden nicht vernachlässigbar ist und so genügend fehlerhafte Resultate nicht erkannt werden und ein erfolgreicher Angriff möglich wird.

Auch kann eine Fehlererkennung beim AES-Algorithmus durch beispielsweise Parity Bits erfolgen, was z. B. aus der zuvor genannten Veröffentlichung von Bretoni et al. oder Wu et al. bekannt ist.

Nachteilig bei der Fehlererkennung durch Parity Bits ist, dass stets nur eine ungerade Anzahl von fehlerhaften Bits, für die die Parität bestimmt wird, erkannt werden kann. Das prinzipiell einfachste und dem Fachmann gut bekannte Verfahren zur Fehlererkennung ist, wie bereits angefügt, die Verdopplung und der Vergleich. Durch Verdopplung und Vergleich werden alle Fehler erkannt, die entweder nur die zu überwachende Schaltung, die verdoppelte Schaltung oder nur den Komparator treffen. Der Aufwand für die Verdopplung und den Vergleich ist jedoch hoch.

6 zeigt eine Schaltung S 31 mit m = 4 binären Eingängen x = x1, x2, x3, x4 und n = 4 binäaren Ausgängen y = y1, Y2, Y3, Y4, die in die Schaltung S1 = S 32 mit den m = 4 Eingängen x = x1, x2, x3, x4 und den n = 4 Ausgängen y = y1, y2, Y3, Y4 verdoppelt ist. Die Ausgänge der Schaltungen S und S1 werden in dem Komparator COMP 33 mit 2n = 8 Eingängen und zwei Ausgängen f1 und f2 verglichen. Liegt kein Fehler vor, dann gibt der Komparator COMP 33 die Werte 0,1 oder 1,0 an seinen Ausgängen f1, f2 aus. Liegt ein Fehler in einer der Schaltungen S, S2 oder in dem Komparator COMP 33 vor, dann gibt der Comparator COMP 33 an seinen Ausgängen f1 und f2 die Werte 0,0 oder 1,1 aus.

Besonderheiten für die Fehlererkennung durch Verdopplung und Vergleich bestehen für kryptographische Schaltungen, die dazu dienen, unverschlüsselte Daten in verschlüsselte Daten zu transformieren oder verschlüsselte Daten in unverschlüsselte Daten zu transformieren. Zunächst sollen, wie bei anderen Schaltungen auch, durch Verdopplung und Vergleich technische Fehler, z. B. stuck-at Fehler und andere technische Fehler erkannt werden. In kryptographischen Schaltungen werden aber auch absichtlich Fehler injiziert, um anhand der dann fehlerhaften Outputs der Schaltung Rückschlüsse auf das Verfahren der Verschlüsselung ziehen zu können und um etwa den verwendeten kryptographischen Schlüssel bestimmen zu können. Werden z. B. zwei gleichartige Fehler in die originale Schaltung und in die verdoppelte Schaltung injiziert, so können diese Fehler durch Verdopplung und Vergleich nicht erkannt werden. Die Möglichkeit, gleiche Fehler in die originale Schaltung und in die verdoppelte Schaltung zu injizieren wird erleichtert, wenn beide Schaltungen gleich aufgebaut sind, was nachteilig ist. Wird zum Vergleich der Schaltungsausgänge ein selbstprüfender Komparator verwendet, der üblicherweise aus einem selbstprüfenden Two-Rail Checker mit invertierten Inputs aufgebaut ist, wie das dem Fachmann gut bekannt ist (und darüberhinaus z. B. in Wakerly, J. Error Detecting Codes, Self-Checking Circuits and Applications, New York, 1978 beschrieben ist), dann lassen sich in relativ einfacher Weise durch gleichzeitiges Injizieren von Fehlern in den Komparator und in die zu überwachende Schaltung ein relativ großer Prozentsatz von in die zu überwachende Schaltung injizierten Fehlern durch Verdopplung und Vergleich nicht erkennen, was ebenfalls nachteilig ist. Da Fehler in kryptographische Schaltungen üblicherweise stochastisch, beispielsweise durch Bestrahlen der Schaltung injiziert werden, ergibt sich dadurch eine relativ große Wahrscheinlichkeit dass Fehler in der zu überwachenden Schaltung nicht erkannt werden und die fehlerhaften Ausgaben ausgewertet werden können. Ein vollständig selbstprüfender Komparator wird dabei zweckmäßig als ein vollständig selbstprüfender Two-Rail-Checker mit invertierten Inputs aufgebaut.

Nach dem Stand der Technik wird ein vollständig selbstprüfender Two-Rail-Checker als eine Baumstruktur aus Two-Rail-Checkern-Zellen TRCZ 48 mit vier Eingängen a1, a'1, b1, b'1 und zwei Ausgängen e1, e'1 entworfen, wie sie in 7A und 7B dargestellt ist, wie das dem Fachmann bekannt ist und darüber hinaus beispielsweise in Wakerly, J. Error Detecting Codes, Self-Checking Circuits and Applications, New York, 1978 dargestellt ist. Eine Two-Rail-Checker Zelle ist ein Two-Rail-Chekcer mit 4 Eingängen und zwei Ausgängen. Sie besteht aus vier UND-Gattern 41, 42, 43 und 44 und zwei ODER-Gattern 45 und 46, deren Ausgänge e1 und e'1 die Ausgänge der Two-Rail-Checker Zelle sind. Ihre vier Eingänge sind mit a1, a'1, b1, b'1 bezeichnet.

Ist die Two-Rail-Checker Zelle TRCZ von 7B fehlerfrei, dann verursacht jeder Two-Rail Input a1, a'1, b1, b'1= a1, a1, a2, a2 stets einen Two-Rail Output e1, e'1 = e1, e1, und jeder nicht Two-Rail-Input führt zu einem nicht Two-Rail Output e1, e'1 = e1, e1.

Ist nun irgendein Eingang oder ein Ausgang eines Gatters der Two-Rail-Checker Zelle TRCZ „stuck-at" 0 oder „stuckat" 1, so dass an diesem Ein- bzw. Ausgang fehlerhafterweise ein konstanter Wert von 0 oder 1 anliegt, so gibt es einen korrekten Two-Rail Input, so dass der Output nicht Two-Rail ist. Ist z. B. die mit 47 markierte Inputleitung des UND-Gatters 41 in 4 „stuck-at" 1, so gibt die Two-Rail Checker Zelle TRCZ bei Eingabe von 0, 1, 1, 0 den Wert e1, e'1 = 1,1 aus, und da der Output 1, 1 nicht Two-Rail ist, wird der Fehler erkannt.

Man bemerkt aber, dass bei Eingabe des fehlerhaften Inputs 0,0,1,0 der betrachtete „stuck-at" 1 Fehler und die betrachtete fehlerhafte Eingabe nicht erkannt werden, da bei dieser Eingabe die Two-Rail-Checker Zelle TRCZ den Two-Rail Wert 1,0 ausgibt, so dass die fehlerhafte Eingabe 0,0,1,0 durch den „stuck-at" 1 Fehler auf der in 7A mit 47 markierten Leitung maskiert wird. Der gleiche Fehler „stuck-at" 1 der Two-Rail-Checker Zelle von 7A maskiert z. B. auch den fehlerhaften Input 0,0,1,1. Ein vollständig selbstprüfender Two-Rail-Checker TRC wird als eine Baumstruktur aus Two-Rail-Checker Zellen TRCZ entworfen, wie sie in 8 für einen Two-Rail Checker mit 8 Eingängen und zwei das Fehlersignal führenden Ausgängen f1 und f2 in 8 dargestellt ist. Der Two-Rail Checker mit 8 Eingängen und 2 Ausgängen ist als ein Baum aus den drei Two-Rail Checker Zellen 51, 52 und 53 aufgebaut, indem die jeweils zwei Bit breiten Ausgänge der Two-Rail Checker Zellen 51 und 52 in den vier Bit breiten Eingang der Two-Rail Checker Zelle 53 geführt sind, deren zwei Bit breiter Ausgang der das Fehlersignal f2 tragende Ausgang des Two-Rail-Checkers 54 ist. Die beiden jeweils 4 Bit breiten Eingänge der Two-Rail-Checker Zellen 51 und 52 bilden den 8 Bit breiten Eingang des Two-Rail Checkers 54.

Injiziert man etwa absichtlich einen Fehler in die Schaltung, die den Two-Rail-Checker realisiert, etwa in die Two-Rail-Checker Zelle TRCZ 53, die direkt mit den Ausgängen des Two-Rail-Checkers verbunden ist und gleichzeitig in die Schaltung S in 8, so gibt es einen relativ hohen Prozentsatz von Fehlern der Schaltungen S die sich als Fehler an den Eingängen des Two-Rail-Checkers TRC als Nicht-Two-Rail Signale auswirken, aber aufgrund des nun gleichzeitig fehlerhaften Two-Rail Checkers nicht als Fehler erkannt werden können, was insbesondere für kryptographische Schaltungen nachteilig ist. Die fehlerhaften Daten an den Ausgängen der Schaltung S können dann nicht abgeschaltet werden und stehen zur Auswertung, etwa zur Bestimmung des Schlüssels der kryptographischen Schaltung zur Verfügung.

Weiterer Stand der Technik zu Fehlerangriffen ist aus folgenden grundlegenden Arbeiten bekannt: E. Biham, A. Shamir, "Differential Fault Analysis of Secret Key Cryptosystems", Springer Lecture Notes in Computer Science, vol. 1294, Advances in Cryptology, Proceedings of CRYPTO'97, pp. 513–525, 1997.

Es ist daher die Aufgabe der vorliegenden Erfindung, eine Möglichkeit zu schaffen, eine kryptographische Einheit mit deutlich verbesserten Charakteristika in Bezug auf die Sicherheit der kryptographischen Einheit zu schaffen.

Diese Aufgabe wird durch eine kryptographische Einheit gemäß den Ansprüchen 1 und 18 sowie ein Verfahren zum Betreiben einer kryptographischen Einheit gemäß den Ansprüchen 19 und 20 gelöst.

Die vorliegende Erfindung schafft einekryptographische Einheit, die bei fehlerfreien Betrieb ein Eingangssignal gemäß dem Runden-basierten AES-Algorithmus in einer Runde i der ersten bis zur vorletzten Runde des AES-Algorithmus in ein verschlüsseltes oder entschlüsseltes Ausgangssignal verarbeitet und ausgibt und im Falle eines Fehlers kein verschlüsseltes oder entschlüsseltes Ausgangssignal ausgibt, mit folgenden Merkmalen:

einer ersten Verarbeitungseinheit, die ausgebildet ist, um aus dem jeweiligen Eingangssignal in der entsprechednen Runde i der ersten bis zur vorletzten Runde des AES-Algorithmus in Teilschaltungen entsprechend den aufeinanderfolgenden Operationen Subbyte, ShiftRows, MixColumns, AddRoundKey des AES-Algorithmus ein ver- oder entschlüsseltes Ausgangssignal zu bestimmen und dieses Ausgangssignal in einer weiteren Teilschaltung, die ausgebildet ist, um eine inverse MixColumns-Operation oder eine bitweise invertierte inverse MixColumns-Operation auszuführen, um ein erstes Vergleichssignal für die entsprechende Runde i des AES-Algorithmus zu erhalten, wobei durch die Variable i die jeweilige Runde i und durch die Variable ki ein in der i-ten Runde zu verwendender kryptographischer Schlüssel bezeichnet ist;

einer zweiten Verarbeitungseinheit, die ausgebildet ist, um aus dem Eingangssignal, das in einer Runde i der ersten bis zur vorletzten Runde des AES-Algorithmus an der ersten Verarbeitungseinheit anliegt, in Teilschaltungen, die den aufeinanderfolgenden Operationen Subbytes, ShiftRows und einer Additionsoperation der inversen MixColumns Operation von der Operation AddRoundKey oder einer bitweise invertierten inverse MixColumns Operation von der Operation AddRoundKey entsprechen, ein zweites Vergleichssignal für die entsprechende Runde i des AES-Algorithmus zu bestimmen, wobei das erste Vergleichssignal und das zweite Vergleichssignal bei fehlerfreiem Betrieb der kryptographischen Einheit in einer vorbestimmten Beziehung zueinander stehen; und

einer Freigabeeinheit zum Bereitstellen des Ausgangssignals, wobei die Freigabeeinheit ausgebildet ist, um eine Abwehrmaßnahme gegen einen zur kryptographischen Einheit externen Abgriff des Ausgangssignals durchzuführen, wenn das ersten Vergleichssignal nicht mit dem zweiten Vergleichssignal in der vorbestimmten Beziehung steht.

Ferner schafft die vorliegende Erfindung ein Verfahren zum Betreiben einer kryptographischen Einheit in einer Runde i eines Ver- oder Entschlüsselungsverfahrens, insbesondere zur Ausführung einer Runde i des AES-Algorithmus, wobei die Variable i die entsprechende Runde des Ver- oder Entschlüsselungsverfahrens bezeichnet, mit folgenden Schritten:

Bereitstellen eines Eingangssignals;

Bestimmen eines Ausgangssignals auf der Basis einer ver- oder entschlüsselten Version des Eingangssignals unter aufeinanderfolgender Ausführung der Operationen Subbytes, ShiftRows, MixColumns und AddRoundKey, unter Verwendung eines kryptographischen Schlüssels ki bei der Ausführung der Operation AddRoundKey;

Ermitteln eines ersten Vergleichssignals auf der Basis einer inversen MixColumns-Operation des Ausgangssignal oder einer bitweise invertierten inversen MixColumns-Operation des Ausgangssignals;

Berechnen eines zweiten Vergleichsignals auf der Basis des Eingangssignals unter Ausführung der Operationen Subbytes und ShiftRows sowie der inversen MixColumns-Operation von der Operation AddRoundKey oder der bitweise invertierten inversen MixColumns-Operation von der Operation AddRoundKey, wobei das erste Vergleichssignal und das zweite Vergleichsignal bei einem fehlerfreien Betrieb der kryptographischen Einheit in einer vorbestimmten Beziehung zueinander stehen;

Vergleichen des ersten Vergleichssignals mit dem zweiten Vergleichssignal, um ein Sperrsignal zu erhalten, wenn das ersten Vergleichsignal und das zweite Vergleichsignal nicht in der vorbestimmten Beziehung zueinander stehen; und

ansprechend auf das Sperrsignal, Ergreifen einer Abwehrmaßnahme gegen einen zur kryptographischen Einheit externen Abgriff des Ausgangssignals.

Die vorliegende Erfindung basiert auf der Erkenntnis, dass eine deutliche Erhöhung der Fehlererkennung dadurch realisiert werden kann, dass in einer kryptographischen Einheit eine erste und eine zweite Verarbeitungseinheit vorzugsweise getrennt eingesetzt werden, die entsprechend ein erstes und ein zweites Vergleichssignal erzeugen und wobei das erste und zweite Vergleichssignal bei einem fehlerfreien Betrieb der kryptographischen Einheit in einer vorbestimmen Beziehung zueinander stehen. Dadurch, dass nun das erste und zweite Vergleichssignal auf eine Art und Weise erzeugt werden, die sich vorzugsweise unterscheidet, lässt sich eine deutlich verbesserte Fehlererkennung realisieren, als dies lediglich durch eine einfache Verdopplung von Strukturen und somit einer gleichartigen Ermittlung der beiden Vergleichsignals ermöglicht wird. Wird nun nämlich bei einem Fehlerangriff versucht (beispielsweise durch Bestrahlung der kryptographischen Einheit) eine Fehlfunktion zu bewirken, durch die ein Schlüssel der kryptographischen Einheit ausgespäht werden kann, ist es nun bei einem solchen Fehlerangriff deutlich schwieriger, einen Fehler zu induzieren, der eine gleiche Wirkung auf die erste sowie die zweite Verarbeitungseinheit entfaltet, so dass das erste und zweite Vergleichssignal in einer gleichen Weise gestört ist. Dadurch, dass sich die erste und zweite Verarbeitungseinheit in der Art und Weise der Erzeugung des ersten bzw. zweiten Vergleichssignals unterscheiden, ist somit eine erheblich Erhöhung einer Fehlererkennung bei einer kryptographischen Einheit gegenüber herkömmlichen kryptographischen Einheiten möglich. Weiterhin kann auch die Freigabeeinheit das erste und zweite Vergleichssignal verwenden und, ähnlich einem Komparator, das Ausgangssignal gegen einen zur kryptographischen Einheit externen Abgriff schützen, wenn das erste und das zweite Vergleichssignal nicht in der vorbestimmten Beziehung zueinander stehen (d.h. wenn wahrscheinlich ein Fehlerangriff erfolgt ist). Ein besonders effizienter Schutz bzw. eine sehr effiziente Fehlererkennung ist weiterhin dann möglich, wenn auch das Ausgangssignal in einer vorbestimmten Weise mit dem ersten Vergleichssignal zusammenhängt, beispielsweise in der Form, dass das Ausgangssignal ein Zwischensignal bei der Verarbeitung des Eingangssignals in das erste Vergleichssignal darstellt. Hieraus kann dann nicht nur eine wahrscheinlich fehlerfreie Funktion der ersten Verarbeitungseinrichtung überprüft werden; vielmehr lässt sich auch das Ausgangssignal selber überprüfen, derart, dass bei einem Auftreten eines Fehlers bzw. einer Inkonsistenz zwischen dem ersten Vergleichssignal und dem zweiten Vergleichssignal mit einer hohen Wahrscheinlichkeit auch das Ausgangssignal fehlerbehaftet ist.

Die vorliegende Erfindung bietet somit den Vorteil, gegenüber einer reinen Verdopplung von Strukturen auch durch die unterschiedliche Ausgestaltung dieser Strukturen eine deutliche Erhöhung der Fehlererkennungsmöglichkeit von derartigen kryptographischen Einheiten zu bieten. Insbesondere durch die numerisch oder Hardware-technisch einfach zu realisierende Möglichkeit, beispielsweise die lineare Operation MixColumns des AES-Algorithmus in der ersten Verarbeitungseinheit zurückzurechnen, um aus dem Ausgangssignal ein erstes Vergleichssignal zu erhalten. Dieses erste Vergleichsignal kann dann mit einem zweiten Vergleichsignal vergleichen werden, das aus dem Eingangssignal unter Verwendung einer einer von der ersten Verarbeitungseinheit verschiedenen zweiten Verarbeitungsvorschrift in einer zweiten Vergleichseinheit berechnet wird, wodurch sich die oben genannte Verbesserung in der Fehlererkennung einer kryptographischen Einheit zur Berechnung des AES-Algorithmus ermöglichen lässt.

Ferner bietet die erfindungsgemäße Lösung den Vorteil, dass keine Verringerung des Datendurchsatzes (wie unter dem Punkt a) vorstehend beschrieben wurde) erfolgt und die unter Punkt b) beschriebenen Schwächen der identischen Verdopplung mit Vergleich vermieden werden, d.h. der Vergleicher oder die Freigabeeinrichtung ist in der im Folgenden beschriebenen Realisierung eines fehlersicheren AES kein „Single Point of Failure" mehr und „gleiche Fehler" in zwei Datenpfaden können prinzipbedingt nicht mehr auftreten. Der Hardware-technische Aufwand der Lösung entspricht in etwa einer Verdopplung – hingegen mit signifikant höherer Fehlererkennungswahrscheinlichkeit.

Die einzelnen Schritte des Verfahrens zum Betreiben einer kryptographischen Einheit können auch in entsprechend ausgebildeten Einrichtungen der kryptographischen Einheit ausgeführt werden.

In einer günstigen Ausführungsform der vorliegenden Erfindung weist die kryptographische Einheit ferner folgende Merkmale auf:

eine dritte Verarbeitungseinheit zum Verarbeiten eines Eingangssignals in der letzten Runde 1 des AES-Algorithmus, wobei die dritte Verarbeitungseinheit ausgebildet ist, um in Teilschaltungen entsprechend aufeinanderfolgenden Operationen Subbytes, ShiftRows, AddRoundKey ki des AES-Algorithmus ein ver- oder entschlüsseltes Ausgangssignal zu bestimmen und dieses Ausgangssignal in einer weiteren Teilschaltung, die die inverse MixColumn-Operation realisiert, in ein Vergleichssignal für die letzte Runde 1 zu verarbeiten, wobei 1 die letzte Runde des AES-Algorithmus und k1 einen kryptographischen Schlüssel der letzten Runde 1 bezeichnet;

eine vierte Verarbeitungseinheit, die ausgebildet ist, um aus dem Eingangssignal, das in der letzten Runde 1 des AES-Algorithmus an der dritten Verarbeitungseinheit anliegt, in Teilschaltungen, die den aufeinanderfolgenden Operationen Subbytes, ShiftRows, der inversen MixColumns-Operation und einer Additionsoperation der inversen MixColumns-Operation von der Operation AddRoundKey oder die bitweise invertierte inversen MixColumns-Operation von der Operation AddRoundKey entsprechen, ein zweites Vergleichssignal für die letzte Runde 1 des AES-Algorithmus zu bestimmen, wobei das erste Vergleichssignal und zweite Vergleichssignal für die letzte Runde 1 des AES-Algorithmus bei einem fehlerfreien Betrieb der kryptographischen Einheit in einer weiteren vorbestimmen Beziehung zueinander stehen; und

wobei die Freigabeeinheit zum Bereitstellen des Ausgangssignals ausgebildet ist, um eine Abwehrmaßnahme gegen einen zur kryptographischen Einheit externen Abgriff des Ausgangssignals auszuführen, wenn das erste Vergleichsignal der letzten Runde 1 nicht in der weiteren vorbestimmen Beziehung mit dem zweiten Vergleichssignal der letzten Runde 1 des AES-Algorithmus steht.

Eine derartig ausgebildete kryptographische Einheit bietet den Vorteil einer weiteren Erhöhung der Fehlererkennungsmöglichkeit, da nunmehr alle auszuführenden Runden eines AES-Algorithmus überwacht werden können und sich somit eine deutliche Erhöhung der Fehlererkennungskapazität ergibt.

Günstig ist es auch, wenn die vorbestimmte Beziehung oder die weitere vorbestimmte Beziehung darin besteht, dass das erste Vergleichssignal mit dem zweiten Vergleichssignal bitweise identisch ist, da dies eine hardware-technisch oder numerisch einfach umzusetzende Vergleichseinrichtung ermöglicht.

Es kann auch in vorteilhafter Weise vorgesehen sein, die vorbestimmte Beziehung oder die weiterer vorbestimmte Beziehung derart auszugestalten, dass das erste Vergleichssignal mit dem zweiten Vergleichssignal bitweise zueinander invers ist, was eine weitere Erhöhung der Sicherheit ermöglicht, bedingt durch die Verwendung einer zusätzlichen Komplexität in der kryptographischen Einheit, die möglicherweise bei einem Fehlerangriff einen bis dahin unerkannten Fehler noch erkennt.

Von Vorteil ist es, wenn die vierte Verarbeitungseinheit ausgebildet ist, um die inverse MixColumns-Operation vor der Additionsoperation auszuführen, da hierdurch eine Erhöhung der Sicherheit der kryptographischen Einheit möglich ist. Dies resultiert insbesondere daraus, dass die inverse MixColuns-Operation doppelt auszuführen ist, nämlich ein erstes Mal zur Transformation des Ergebnisses aus der ShiftRows-Operation und ein zweites Mal zur Transformation des des Rundenschlüssels der entsprechenden Runde ki verwendet wird.

Bei einer kostengünstigen Ausführungsform der vorliegenden Erfindung ist die vierte Verarbeitungseinheit ausgebildet, um die inverse MixColumns-Operation nach der Additionsoperation auszuführen. Dies bietet den Vorteil, eine Struktur für die vierte Verarbeitungseinheit zu verwenden, die der Struktur der zweiten Verarbeitungseinheit entspricht und die somit einfach implementierbar ist.

Weiterhin kann es vorteilhaft sein, dass, wenn der AES-Algorithmus, abhängig von einer Schlüssellänge 10, 12 bzw. 14 Runden umfasst, die kryptographische Einheit ausgebildet ist, um zur Verarbeitung des AES-Algorithmus von der ersten bis zur vorletzten Runde die erste und zweite Verarbeitungseinheit zu verwenden und in der letzten Runde die dritte und vierte Verarbeitungseinheit zur Verarbeitung des AES-Algorithmus zu verwenden. Dies bietet die Möglichkeit, bereits bei Verwendung von zu ver- oder entschlüselnden Nachrichten einer vorbestimmten Bitlänge nach 10, 12, bzw. 14 Runden ein ausreichend sicheres Ergebnis zu erhalten.

Ferner kann beispielsweise das Eingangssignal und das Ausgangssignal je ein Bussignal mit einer Mehrzahl von binären Signalen sein, wobei die Freigabeeinheit ausgebildet ist, um als Abwehrmaßnahme jedes einzelne der binären Signale des Ausgangssignals für einen zur kryptographischen Einheit externen Zugriff auf einen gemeinsamen vordefinierten Signalwert oder einen zufallsbasierten oder pseudozufallsbasierten Signalwert zu setzen. Dies bietet den Vorteil, dass bei einem Erkennen eines Fehlerangriffs das eigentlich durch die kryptographische Einheit ermittelte wahre Ausgangssignal unkenntlich gemacht wird und ferner beispielsweise durch die Verwendung von zufallsbasierten oder pseudo-zufallsbasierten Signalwerten ein potenzieller Angriefer zusätzlich in die Irre geführt werden kann.

Von Vorteil ist es auch, wenn die Freigabeeinheit ausgebildet ist, um als Abwehrmaßnahme eine Zuführung eines für den Betrieb der kryptographischen Einheit erforderlichen Taktsignals zu der kryptographischen Einheit zu unterdrücken, da hierdurch nochmals sichergestellt werden kann, dass das Ausgangssignal der kryptographischen Einheit definitiv gegen einen externen Abgriff geschützt wird.

Außerdem kann auch die Freigabeeinheit ausgebildet sein, um bei der Durchführung einer Abwehrmaßnahme eine Verzögerungsstufe zu verwenden. Dies bietet den Vorteil, einem Angreifer nicht unmittelbar erkennen zu geben, dass der Fehlerangriff erkannt wurde. In Kombination mit der Verwendung der zufallsbasierten oder pseudo-zufallsbasierten Signalwerte als Ausgangssignal kann hierdurch die Fehleranalyse eines Angreifers noch deutlich erschwert werden, was die Sicherheit der kryptographischen Einheit weiterhin erhöht.

Auch kann das erste Vergleichssignal und das zweite Vergleichssignal eine Anzahl von binären Teilsignalen aufweisen, die einer Anzahl von binären Teilsignalen des Ausgangssignal entspricht. Hierdurch lässt sich auf einfache Art und Weise eine Sicherung der einzelnen Teilsignale des Ausgangssignals überwachen, da für jedes Teilsignal des Ausgangssignal ein entsprechendes Teilsignal des ersten oder zweiten Vergleichsignals gegenübersteht.

Insbesondere ist es von Vorteil, wenn die Freigabeeinheit ausgebildet ist, um eine UND-Verknüpfung zwischen jedem binären Teilsignal des ersten Vergleichssignals und jedem binären Teilsignal des zweiten Vergleichssignals durchzuführen, um binäre Teilsignale eines Kontrollsignals zu erhalten und wobei die Freigabeeinheit ferner ausgebildet ist, um eine UND-Verknüpfung zwischen jedem binären Teilsignal des Kontrollsignals und jedem binären Teilsignal des Ausgangssignals durchzuführen, um ein extern abgreifbares Ausgangssignal zu erhalten. Dies bietet den Vorteil durch eine logisch einfach zurealisierende Schaltungsstruktur eine hohe Sicherheit der kryptographischen Einheit zu ermöglichen und dadurch einen Fehlerangriff einfach abwehren zu können.

Ferner kann die erste Verarbeitungseinheit einen ersten Hardware-technischen Aufbau aufweisen und die zweite Verarbeitungseinheit einen zweiten Hardware-technischen Aufbau aufweist, wobei sich der erste Hardware-technische Aufbau von dem zweiten Hardware-technischen Aufbau unterscheidet. Dies bietet den Vorteil, dass sich auch durch die unterschiedliche Hardware-Struktur der ersten und zweiten Verarbeitungseinheiten eine unterschiedliche Wirkung eines Fehlerangriffs auf die beiden Verarbeitungseinrichtungen realisieren lässt, wodurch eine weitere Erhöhung der Sicherheit der kryptographischen Einheit möglich ist.

Insbesondere dann, wenn der erste Hardware-technische Aufbau in einer Bipolar-Technologie und der zweite Hardwaretechnische Aufbau in einer CMOS-Technologie implementiert ist oder der erste Hardware-technische Aufbau in einer CMOS-Technologie und der zweite Hardware-technische Aufbau in einer Bipolar-Technologie implementiert ist, lassen sich besondere Vorteile erreichen, da die Wirkungsweise einer Bestrahlung in beiden Technologien deutlich unterschiedliche Fehlerergebnisse liefert, was ferner dazu beiträgt, dass ein Fehlerangriff leicht erkannt werden kann.

Auch kann sich eine Leiterbahnbreite oder eine Größe eines Transistors in dem ersten Hardware-technischen Aufbau von einer Leiterbahnbreite oder einer Größe eines Transistors in dem zweiten Hardware-technischen Aufbau unterscheidet. Dies wirkt sich ebenfalls vorteilhaft bei der Erkennung eines Fehlers bei einem Bestrahlungsangriff aus, da ein „Kippen" eines Bits von einer Breite einer Leiterbahn oder einer Größe eines Transistors abhängig sein kann.

Vorzugsweise kann sich auch ein Aufbau der Teilschaltung, die die Subbytes-Operation der ersten Verarbeitungseinheit realisiert von einem Aufbau einer Teilschaltung, die die Subbytes-Operation der zweiten Verarbeitungseinheit realisiert unterscheiden, oder sich eine Verarbeitungsvorschrift der Subbyte-Operation der ersten Verarbeitungseinheit von einer Verarbeitungsvorschrift der Subbytes-Operation der zweiten Verarbeitungseinheit unterscheiden. Dies bietet den Vorteil, dass sich nicht nur die MixColumns-Operation bzw. die invertierte MixColumns-Operation verwednet werden kann, um möglichst eine große Anzahl von Fehlern und somit ein hochwahrscheinliches Erkennen von Fehlern zu ermöglichen, sondern auch die Subbytes-Operation aufgrund ihrer Eigenschaft zur Transformation von Einbit-Fehlern in Mehrbit-Fehler zu nutzen.

Insbesondere dann, wenn sich die Subbyte-Operation der zweiten Verarbeitungseinheit von der Subbytes-Operation der ersten Verarbeitungseinheit in einer unterschiedlichen Ausführung einer Inversion in einem Galoisfeld unterscheidet, lassen sich besondere Vorteile bei der Transformation realisieren, da eine solche Unterscheidung mit einer hohen Wahrscheinlichkeit einen einzelnen injizierten Fehler in einen Mehrbit-Fehler transformiert.

Anhand der beiliegenden Zeichnungen werden nachfolgend einige Ausführungsbeispiele der vorliegenden Erfindung näher erläutert. Es zeigen:

1 ein Blockdiagramm eines ersten Ausführungsbeispiels der vorliegenden Erfindung;

2 ein Blockdiagramm einer Erweiterung des ersten Ausführungsbeispiels der vorliegenden Erfindung für die letzte Runde des AES-Algorithmus;

3 ein Blockdiagramm eines möglicherweise zu verwendenden Komparators;

4 ein Blockdiagramm eines weiteren Ausführungsbeispiels der vorliegenden Erfindung;

5 ein Blockschaltbild einer Erweiterung des weiteren Ausführungsbeispiels der vorliegenden Erfindung gemäß der 4;

6 ein Blockschaltbild einer herkömmlichen Fehlererkennungsschaltung;

7A ein Schaltbild einer herkömmlichen vollständig selbstprüfenden Two-Rail-Checker-Struktur zur Erkennung von Fehlern;

7B ein Schaltsymbol einer Two-Rail-Checker-Zelle, deren Struktur gemäß der 7A aufgebaut ist; und

8 ein Schaltbild eines vollständig selbstprüfenden Two-Rail-Checkers.

In der nachfolgenden Beschreibung der Figuren werden gleiche oder ähnliche Elemente mit gleichen oder ähnlichen Bezugszeichen bezeichnet, wobei auf eine wiederholte Beschreibung dieser Elemente verzichtet wurde.

Zuvor ist anzumerken, dass die Verschlüsselung der Daten durch den AES Algorithmus in einer vorbestimmten, von der Schlüssellänge abhängigen Zahl von aufeinanderfolgenden Runden erfolgt, die fortlaufend durchnummeriert werden. So beträgt beispielsweise die Zahl der Runden beim AES 10, 12, bzw. 14 (mit den Nummern 1 bis 10, 12 bzw. 14), abhängig von einer Schlüssellänge von 128, 196 bzw. 256 Bit). In den Runden 1 bis zur vorletzten Runde werden die Operationen SubBytes in S-Boxen, ShiftRow, MixColumns und AddKey (oder AddRoundKey) durchgeführt, in der letzten Runde wird die Operation MixColumns weggelassen. Wird zum Beispiel eine Wortbreite von n = 128 Bit angenommen, so wird die Operation SubBytes durch 16 S-Boxen mit jeweils 8 Bit Eingangswortbreite und 8 Bit Ausgangswortbreite realisiert. Die Operation ShiftRow realisiert eine Permutation. In der Operation AddKey wird ein 128 Bit breiter Key oder Schlüssel ki = ki,1 ki,128 komponentenweise mit den n = 128 Ausgängen der Operation MixColumns verknüpft. Die Operation MixColumns ist eine eindeutig umkehrbare lineare Transformation, die in vier Gruppen jeweils 32 Bit breite Eingänge in 32 Bit breite Ausgänge transformiert. Da die Operation eine umkehrbare lineare Transformation ist, wird sie hier mit dem Symbol L und ihre inverse Operation (Invers MixColumns) mit dem Symbol L–1 bezeichnet. Der AES Algorithmus und seine Implementierung sind dem Fachmann prinzipiell bekannt. Darüber hinaus ist er in Daemen,J. and V. Rijmen, "AES proposal Rijndanel" http://www.esat.kuleuven.ac.be/rjmen/rijndael/ rijndaeldocV2.zip beschrieben.

1 zeigt eine erste erfindungsgemäße Ausgestaltung einer Fehlererkennungsschaltung für den AES Algorithmus für die Runden 1 bis zur vorletzten Runde.

Es ist erkennbar, dass in 1 ein erstes Vergleichssignal v mit einem zweiten Vergleichssignal v' durch einen Komparator verglichen werden, wobei die Vergleichssignale durch strukturell unterschiedliche Schaltungen S (erste Verarbeitungseinheit) und S1 (zweite Verarbeitungseinheit) bereitgestellt werden. Die erste Schaltung (erste Verarebitungseinheit) umfasst die Operationen SubBytes, ShiftRow, MixColumns, AddKey ki und Invers MixColumns L . Die zweite Schaltung (zweite Verarbeitungseinheit) umfasst die Operationen SubBytes, ShiftRow und AddKey L–1 (ki). Durch den unterschiedlichen strukturellen Aufbau der Schaltungen bzw. der unterschiedlichen numerischen Verarbeitungsvorschrift (Vertauschung von unterschiedlichen Verarbeitungsblöcken), deren Outputs verglichen werden, ist die Injizierung gleicher Fehler in diese beiden Schaltungen erschwert. Darüber hinaus wird ein ausgebildeter Entwerfer diese Schaltungen diversitär, etwa in einer unterschiedlichen Bauelementebasis realisieren, um die Injektion gleicher Fehler in die Schaltung S und S1 praktisch unmöglich zu machen. Diese unterschiedliche Bauelementebasis kann einerseits eine unterschiedliche Herstellungstechnologie sein wie die CMOS-(CMOS = Complementary Metal Oxide Semiconductor) oder Bipolar-Technologie. Weiterhin können auch unterschiedliche Leiterbahnbreiten oder unterschiedliche Größen von Bauelementen wie beispielsweise Transistoren dazu verwendet werden, eine unterschiedliche Wirkung von Fehlerangriffen auf die beiden Verarbeitungseinheiten hervorzurufen. Der Komparator gibt r, r > 1, Fehlersignale aus, die zur Abschaltung des Signals „Rundenoutput" verwendet werden können.

2 zeigt eine Erweiterung des in 1 dargestellten Ausführungsbeispiels einer Fehlererkennungsschaltung für den AES Algorithmus für die letzte Runde. Durch den Fortfall der MixColumns-Operation des AES-Algorithmus in der letzten Runde wird die Struktur aus 1 geringfügig abgeändert, indem nunmehr eine inverse MixColumns-Operation L–1 in der zweiten Verarbeitungseinheit eingefügt wird, wobei diese inverse MixColumns-Operation entweder unmittelbar nach der ShiftRows-Operation ausgeführt werden kann (wie dies in 2 dargestellt ist), oder nach einer Additionsoperation einer inversen MixColumns-Operation der AddKeyOperation (nicht in 2 dargestellt).

3 zeigt eine mögliche Erweiterung des in den 1 und 2 dargestellten Komparators einer kryptographischen Einheit für den AES-Algorithmus, wobei diese in 3 dargestellte Erweiterung dann ein Ausführungsbeispiel einer Freigabeeinheit darstellt. Die Ausgänge der in den 1 und 2 gezeigten XOR-Gatter (EXKLUSIV-ODER-Gatter), die den Vergleich zwischen dem ersten Vergleichsignal v und dem zweiten Vergleichsignal v' realisieren, sind die Eingangssignale des Komparators.

Man bemerkt, dass jedes fehlerhafte Outputsignal E1, ... , Er des Komparators, der hier gemäß 3 einfach aus n miteinander verschalteten XOR-Gattern besteht, den Output der Schaltung S (d.h. das Ausgangssignal y mit den binären Teilsignalen y1, ..., yn) durch eine Verschaltung mit UND-Gattern gemäß der Schaltungsstruktur aus 3 vollständig auf den Wert 0 schaltet. In einer anderen Ausführungsform kann die Freigabeeinheit auch ausgebildet sein, um die binären Teilsignale der Ausgangssignale auf einen zufälligen oder pseudo-zufälligen Signalwert zu setzen, um einem Angreifer nicht unmittelbar mitzuteilen, dass der Angriff erkannt worden ist.

Im Folgenden wird die Verschlüsselung gemäß AES-Algorithmus beschrieben. Die entsprechende Entschlüsselung erfolgt in offensichtlicher Weise dem selben Schema.

Der AES-Algorithmus wird, wie in dem in 4 dargestellten Ausführungsbeispielverdeutlicht, im Wesentlichen verdoppelt (AES1 links und AES2 rechts), jedoch mit einigen wichtigen Modifikationen.

In der ersten Verarbeitungseinheit AES1 wird nach der Operation Addkey (+ki) die inverse Operation L–1 der linearen Transformation L = „MixColumn" ausgeführt. In der zweiten Verarbeitungseinheit AES2 wird der AES-Algorithmus etwas abgewandelt und reduziert: „MixColumn" wird weggelassen und „Addkey" (+ki) wird durch die Transformation L–1 (ki) ersetzt, wobei ki den Rundenschlüssel in der i-ten Runde darstellt. Die Resultate aus AES1 nach L–1 und aus dem reduzierten AES2 nach L–1 (ki) werden verglichen, d.h. bitweise modulo 2 addiert. Jedes dieser 128 Vergleichsergebnisse schaltet bei Ungleichheit jeden der Ausgänge y1, y2, ..., y128 ab, ansonsten wird das Ergebnis von AES1 (vor L) ausgegeben. Mit der Abschaltung kann auch ein Fehlersignal generiert werden (nicht dargestellt), welches einem Kontrollprozessor oder der Steuersoftware den Fehlerfall signalisiert.

AES2 wird gegenüber AES1 diversitär realisiert, so dass es keine identischen Knoten mehr in den jeweiligen Schaltungen gibt. Dies kann auf verschiedene Weisen realisiert werden, z. B. indem die S-Boxen auf anderen Weise als in AES1 implementiert werden (z. B. als ROM (= read-only-memory = Nur-Lese-Speicher), Inversion im Galoisfeld nach verschiedenen Methoden).

Die lineare Transformation die in AES1 nachgeschaltet wird, hat die Eigenschaft, Einbit-Fehler sehr effizient in Mehrbit-Fehler zu transformieren, so dass das gleichzeitige Injizieren von sich aufhebenden Fehlern in AES1 und AES2 erheblich erschwert wird.

In diesem Zusammenhang ist anzumerken, dass bei dem in 4 dargestellten Ausführungsbeispiel insbesondere die Beziehungen v = L–1(ki ⨁ L(u)) = L–1(ki) ⨁ u und v' = u ⨁ L–1(ki) → v = v' für u = u' berücksichtigt wurden, wobei das Symbol ⨁ eine Addition (die auch als binäre EXKLUSIV-ODER-Verknüpfung realisiert sein kann), v das Vergleichsignal der ersten Verarbeitungseinheit S, v' das Vergleichsignal der zweiten Verarbeitungseinheit S1, L die MixColumns-Operation, L–1 die inverse MixColumns-Operation, ki den Rundenschlüssel für die i-te Runde, u das Ergebnissignal der ShiftRows-Operation der ersten Verarbeitungseinheit S und u' das Ergebnissignals der ShiftRows-Operation der zweiten Verarbeitungseinheit S1 bezeichnet. Hierdurch wird ersichtlich, dass im ersten Ausführungsbeispiel die Linearität der MixColumns-Operation ausgenutzt wird, um auf zwei verschiedenen Berechnungsweisen zu dem gleichen Ergebnis zu gelangen, wenn die kryptographische Einheit fehlerfrei arbeitet.

Die Implementierung der letzten Runde unterscheidet sich gemäß der AES-Spezifikation von den anderen Runden. Die entsprechende Modifikation für die Fehlererkennung ist in 5 dargestellt. Hierbei kann wiederum die Linearität der MixColumns-Operation ausgenutzt werden, was durch die nachfolgenden Formeln näher dargestellt werden kann: v = L–1(u ⨁ k1) = L–1(u) ⨁ L–1(k1)

v' = L–1(u) ⨁ L–1(k1)

→ v' = v für u = u

Die Variablen in der oben genannte Formel sind mit den Variablen bzgl. der Formel zu 4 identisch; allerdings bezeichnet nunmehr k1 den Rundenschlüssel der letzen Runde des AES-Algorithmus. Hieraus ergibt sich ebenfalls wieder, dass bei einem fehlerfreien Betrieb der kryptographischen Einheit das ersten Vergleichssignal und das zweite Vergleichsignal identisch sind, woraus der fehlerfreie Betrieb der kryptographischen Einheit erkennbar ist.

Ferner ist anzumerken, dass in der zweiten oder vierten Verarbeitungseinheit auch ein Vergleichssignal erzeugt werden kann, das dem bitweise invertierten Vergleichssignal der ersten Verarbeitungseinheit entspricht. Dieses bitweise invertierte Vergleichssignal kann durch eine Invertierung jedes einzelnen Bits des Vergleichssignals der zweiten oder vierten Verarbeitungseinheit durchgeführt werden, wobei dann auch der Komparator entsprechend auszulegen ist.

In Bezug auf eine Entschlüsselung ist zu sagen, dass diese auf einer Umkehrung der entsprechenden Reihenfolge sowie einer Verwendung von inversen Operationen der beim Verschlüsseln verwendeten Operationen basiert. Insbesondere werden statt der Verwendung der Operationen SubBytes, ShiftRows, MixColumns und AddKey die Operationen AddKey, inverse MixColumns, inverse ShiftRows und inverse SubBytes verwendet. Die Ausgestaltung der zweiten Verarbeitungseinheit erfolgt dann analog, d.h. dass bei der Verwendung einer inversen MixColunms-Operation in der ersten Verarbeitungseinheit in der zweiten Verarbeitungseinheit die MixColumns-Operation verwendet wird oder umgekehrt. Die nähere Ausgestaltung der Kryptographischen Einheit ist einem Fachmann jedoch aus der Kenntnis des hier vorgestellten Ansatzes bekannt.

Abhängig von den Gegebenheiten kann das erfindungsgemäße Verfahren zum Betreiben einer kryptographischen Einheit in Hardware oder in Software implementiert werden. Die Implementierung kann auf einem digitalen Speichermedium, insbesondere einer Diskette oder CD mit elektronisch auslesbaren Steuersignalen erfolgen, die so mit einem programmierbaren Computersystem zusammenwirken können, dass das entsprechende Verfahren ausgeführt wird. Allgemein besteht die Erfindung somit auch in einem Computerprogrammprodukt mit einem auf einem maschinenlesbaren Träger gespeicherten Programmcode zur Durchführung des erfindungsgemäßen Verfahrens, wenn das Computerprogrammprodukt auf einem Rechner abläuft. Mit anderen Worten ausgedrückt, kann die Erfindung somit als ein Computerprogramm mit einem Programmcode zur Durchführung des Verfahrens realisiert werden, wenn das Computerprogramm auf einem Computer abläuft.

xEingangssignal Serste Verarbeitungseinheit S1zweite Verarbeitungseinheit SB1,...SB16Subbytes-Operationsblöcke uSignal nach der Operation ShiftRow in der ersten Verarbeitungseinheit S u'Signal nach der Operation ShiftRow in der zweiten Verarbeitungseinheit S1 LMixColumns Operation L–1invers MixColumns-Operation IZählindex für eine Runde des AES-Algorithmus kiOperation der Addition eines Rundenschlüssels für die i-te Runde; Rundenschlüssel für die i-te Runde verstes Vergleichssignal v'zweites Vergleichssignal E1, E2,..., Erbinäre Teilsignale des Kontrollsignals yAusgangssignal Y1, Y2,..., Ynbinäre Teilsignale des Ausganssignals y EKontrollsignal AES1erste Verarbeitungseinheit AES2zweite Verarbeitungseinheit 31erste Verarbeitungseinheit 32zweite Verarbeitungseinheit 33Komparator f1, f2,Ausgänge des Komparators 33 41, 42, 43, 44UND-Gatter 45, 46ODER-Gatter a1, a'1, b1, b'1Eingänge der UND-Gatter 41 bis 44 e1, e2Ausgänge der ODER-Gatter 45 und 46 TRCZTwo-Rail-Checker-Zelle 51, 52, 53Two-Rail-Checker-Zellen 54, TRCTwo-Rail-Checker

Anspruch[de]
  1. Kryptographische Einheit, die bei fehlerfreien Betrieb ein Eingangssignal gemäß dem Runden-basierten AES-Algorithmus in einer Runde i der ersten bis zur vorletzten Runde des AES-Algorithmus in ein verschlüsseltes Ausgangssignal verarbeitet und ausgibt und im Falle eines Fehlers kein verschlüsseltes Ausgangssignal ausgibt, mit folgenden Merkmalen:

    einer ersten Verarbeitungseinheit (S), die ausgebildet ist, um aus dem jeweiligen Eingangssignal (x) in der entsprechenden Runde i der ersten bis zur vorletzten Runde des AES-Algorithmus in Teilschaltungen entsprechend den aufeinanderfolgenden Operationen Subbyte (SB1, ...SB16), ShiftRows, MixColumns (L), AddRoundKey (ki) des AES-Algorithmus ein verschlüsseltes Ausgangssignal zu bestimmen und dieses Ausgangssignal in einer weiteren Teilschaltung, die ausgebildet ist, um eine inverse MixColumns-Operation (L–1) oder eine bitweise invertierte inverse MixColumns-Operation (L–1) auszuführen, um ein erstes Vergleichssignal (v) für die entsprechende Runde i des AES-Algorithmus zu erhalten, wobei durch die Variable i die jeweilige Runde i und durch die Variable ki ein in der i-ten Runde zu verwendender kryptographischer Schlüssel bezeichnet ist;

    einer zweiten Verarbeitungseinheit (S1), die ausgebildet ist, um aus dem Eingangssignal (x), das in einer Runde i der ersten bis zur vorletzten Runde des AES-Algorithmus an der ersten Verarbeitungseinheit (S) anliegt, in Teilschaltungen, die den aufeinanderfolgenden Operationen Subbytes (SB1, ...,SB16), ShiftRows und einer Additionsoperation der inversen MixColumns Operation von der Operation AddRoundKey (L–1(ki)) oder einer bitweise invertierten inverse MixColumns Operation von der Operation AddRoundKey (L–1(ki)) entsprechen, ein zweites Vergleichssignal (v') für die entsprechende Runde i des AES-Algorithmus zu bestimmen, wobei das erste Vergleichssignal (v) und das zweite Vergleichssignal (v') bei fehlerfreiem Betrieb der kryptographischen Einheit in einer vorbestimmten Beziehung zueinander stehen; und

    einer Freigabeeinheit zum Bereitstellen des Ausgangssignals (y), wobei die Freigabeeinheit ausgebildet ist, um eine Abwehrmaßnahme gegen einen zur kryptographischen Einheit externen Abgriff des Ausgangssignals (y) durchzuführen, wenn das ersten Vergleichssignal (v) nicht mit dem zweiten Vergleichssignal (v') in der vorbestimmten Beziehung steht.
  2. Kryptographische Einheit gemäß Anspruch 1, die ferner folgende Merkmale aufweist:

    eine dritte Verarbeitungseinheit zum Verarbeiten eines Eingangssignals in der letzten Runde 1 des AES-Algorithmus, wobei die dritte Verarbeitungseinheit ausgebildet ist, um in Teilschaltungen entsprechend aufeinanderfolgenden Operationen Subbytes (SB1, ...SB16), ShiftRows, AddRoundKey (k1) des AES-Algorithmus ein verschlüsseltes Ausgangssignal zu bestimmen und dieses Ausgangssignal in einer weiteren Teilschaltung, die die inverse MixColumn-Operation (L–1) realisiert, in ein Vergleichssignal (v) für die letzte Runde 1 zu verarbeiten, wobei 1 die letzte Runde des AES-Algorithmus und k1 den Schlüssel der letzten Runde 1 bezeichnet;

    eine vierte Verarbeitungseinheit, die ausgebildet ist, um aus dem Eingangssignal (x), das in der letzten Runde 1 des AES-Algorithmus an der dritten Verarbeitungseinheit anliegt, in Teilschaltungen, die den aufeinanderfolgenden Operationen Subbytes (SB1, ...SB16), ShiftRows, der inversen MixColumns-Operation (L–1) und einer Additionsoperation der inversen MixColumns-Operation von der Operation AddRoundKey (L–1(k1)) oder die bitweise invertierte inversen MixColumns-Operation von der Operation AddRoundKey (L–1(k1)) entsprechen, ein zweites Vergleichssignal (v') für die letzte Runde 1 des AES-Algorithmus zu bestimmen, wobei das erste Vergleichssignal (v) und zweite Vergleichssignal (v') für die letzte Runde 1 des AES-Algorithmus bei einem fehlerfreien Betrieb der kryptographischen Einheit in einer weiteren vorbestimmen Beziehung stehen; und

    wobei die Freigabeeinheit zum Bereitstellen des Ausgangssignals ausgebildet ist, um eine Abwehrmaßnahme gegen einen zur kryptographischen Einheit externen Abgriff des Ausgangssignals (y) auszuführen, wenn das erste Vergleichsignal (v) der letzten Runde 1 nicht in der weiteren vorbestimmen Beziehung mit dem zweiten Vergleichssignal (v') der letzten Runde 1 des AES-Algorithmus steht.
  3. Kryptographische Einheit gemäß einem der Ansprüche 1 oder 2, bei der die vorbestimmte Beziehung oder die weitere vorbestimmte Beziehung darin besteht, dass das erste Vergleichssignal (v) mit dem zweiten Vergleichssignal (v') bitweise identisch ist.
  4. Kryptographische Einheit gemäß einem der Ansprüche 1 oder 2, bei der die vorbestimmte Beziehung oder die weiterer vorbestimmte Beziehung darin besteht, dass das erste Vergleichssignal (v) mit dem zweiten Vergleichssignal (v') bitweise zueinander invers ist.
  5. Kryptographische Einheit gemäß Anspruch 2, bei der die vierte Verarbeitungseinheit ausgebildet ist, um die inverse MixColumns Operation (L–1) vor der Additionsoperation auszuführen.
  6. Kryptographische Einheit gemäß Anspruch 2, bei der die vierte Verarbeitungseinheit ausgebildet ist, um die inverse MixColumns Operation (L–1) nach der Additionsoperation auszuführen.
  7. Kryptographische Einheit gemäß Anspruch 1 in Verbindung mit Anspruch 2, bei der der AES-Algorithmus 10, 12 oder 14 Runden umfasst, wobei die kryptographische Einheit ausgebildet ist, um zur Verarbeitung des AES-Algorithmus von der ersten bis zur vorletzten Runde die erste und zweite Verarbeitungseinheit zu verwenden und in der letzten Runde die dritte und vierte Verarbeitungseinheit zur Verarbeitung des AES-Algorithmus zu verwenden.
  8. Kryptographische Einheit gemäß einem der Ansprüche 1 bis 7, bei der das Eingangssignal (x; x1, ..., xn) und das Ausgangssignal (y; y1, ..., yn) je ein Bussignal mit einer Mehrzahl von binären Signalen ist, wobei die Freigabeeinheit ausgebildet ist, um als Abwehrmaßnahme jedes einzelne der binären Signale des Ausgangssignals (y1, ..., yn) für einen zur kryptographischen Einheit externen Zugriff auf einen gemeinsamen vordefinierten Signalwert oder einen zufallsbasierten oder pseudo-zufallsbasierten Signalwert zu setzen.
  9. Kryptographische Einheit gemäß einem der Ansprüche 1 bis 8, bei der die Freigabeeinheit ausgebildet ist, um als Abwehrmaßnahme eine Zuführung eines für den Betrieb der kryptographischen Einheit erforderlichen Taktsignals zu der kryptographischen Einheit zu unterdrücken.
  10. Kryptographische Einheit gemäß einem der Ansprüche 1 bis 9, bei der die Freigabeeinheit ausgebildet ist, um bei der Durchführung einer Abwehrmaßnahme eine Verzögerungsstufe zu verwenden.
  11. Kryptographische Einheit gemäß einem der Ansprüche 1 bis 10, bei der das erste Vergleichssignal (v) und das zweite Vergleichssignal (v') eine Anzahl von binären Teilsignalen aufweist, die einer Anzahl von binären Teilsignalen des Ausgangssignal (y) entspricht.
  12. Kryptographische Einheit gemäß Anspruch 11 in Rückbeziehung auf Anspruch 8, bei der die Freigabeeinheit ausgebildet ist, um eine UND-Verknüpfung zwischen jedem binären Teilsignal des ersten Vergleichssignals und jedem binären Teilsignal des zweiten Vergleichssignals (v') durchzuführen, um binäre Teilsignale eines Kontrollsignals (E1, E2, ..., Er) zu erhalten und wobei die Freigabeeinheit ferner ausgebildet ist, um eine UND-Verknüpfung zwischen jedem binären Teilsignal des Kontrollsignals und jedem binären Teilsignal des Ausgangssignals (...) durchzuführen, um ein extern abgreifbares Ausgangssignal zu erhalten.
  13. Kryptographische Einheit gemäß einem der Ansprüche 1 bis 12, bei der die erste Verarbeitungseinheit (S) einen ersten Hardware-technischen Aufbau aufweist und bei dem die zweite Verarbeitungseinheit (S1) einen zweiten Hardwaretechnischen Aufbau aufweist, wobei sich der erste Hardwaretechnische Aufbau von dem zweiten Hardware-technischen Aufbau unterscheidet.
  14. Kryptographische Einheit gemäß Anspruch 13, bei der der erste Hardware-technische Aufbau in einer Bipolar-Technologie und der zweite Hardware-technische Aufbau in einer CMOS-Technologie implementiert ist oder der erste Hardware-technische Aufbau in einer CMOS-Technologie und der zweite Hardware-technische Aufbau in einer Bipolar-Technologie implementiert ist.
  15. Kryptographische Einheit gemäß einem der Ansprüche 13 oder 14, bei der sich eine Leiterbahnbreite oder eine Größe eines Transistors in dem ersten Hardware-technischen Aufbau von einer Leiterbahnbreite oder einer Größe eines Transistors in dem zweiten Hardware-technischen Aufbau unterscheidet.
  16. Kryptographische Einheit gemäß einem der Ansprüche 1 bis 15, bei der sich ein Aufbau einer Teilschaltung, die die Subbytes-Operation der ersten Verarbeitungseinheit (S) realisiert von einem Aufbau einer Teilschaltung, die die Subbytes-Operation der zweiten Verarbeitungseinheit (S1) realisiert unterscheidet, oder bei der sich eine Verarbeitungsvorschrift der Subbyte-Operation der ersten Verarbeitungseinheit (S) von einer Verarbeitungsvorschrift der Subbytes-Operation der zweiten Verarbeitungseinheit (S1) unterscheidet.
  17. Kryptographische Einheit gemäß Anspruch 16, bei der sich die Subbyte-Operation der zweiten Verarbeitungseinheit (S1) von der Subbytes-Operation der ersten Verarbeitungseinheit (S) in einer unterschiedlichen Ausführung einer Inversion in einem Galoisfeld unterscheidet.
  18. Kryptographische Einheit, die bei fehlerfreien Betrieb ein Eingangssignal gemäß dem Runden-basierten AES-Algorithmus in einer Runde i der ersten bis zur vorletzten Runde des AES-Algorithmus in ein entschlüsseltes Ausgangssignal verarbeitet und ausgibt und im Falle eines Fehlers kein entschlüsseltes Ausgangssignal ausgibt, mit folgenden Merkmalen:

    einer ersten Verarbeitungseinheit (S), die ausgebildet ist, um aus dem jeweiligen Eingangssignal (x) in der entsprechenden Runde i der ersten bis zur vorletzten Runde des AES-Algorithmus in Teilschaltungen basierend auf den Operationen AddRoundKey (ki), inverse MixColumns (L–1), inverse ShiftRows, und inverse Subbyte (SB1, ...SB16) des AES-Algorithmus ein entschlüsseltes Ausgangssignal zu bestimmen und dieses Ausgangssignal in einer weiteren Teilschaltung, die ausgebildet ist, um eine MixColumns-Operation (L) oder eine bitweise invertierte MixColumns-Operation (L) auszuführen, um ein erstes Vergleichssignal (v) für die entsprechende Runde i des AES-Algorithmus zu erhalten, wobei durch die Variable i die jeweilige Runde i und durch die Variable ki ein in der i-ten Runde zu verwendender kryptographischer Schlüssel bezeichnet ist;

    einer zweiten Verarbeitungseinheit (S1), die ausgebildet ist, um aus dem Eingangssignal (x), das in einer Runde i der ersten bis zur vorletzten Runde des AES-Algorithmus an der ersten Verarbeitungseinheit (S) anliegt, in Teilschaltungen, die einer Additionsoperation der MixColumns Operation von der Operation AddRoundKey (L(ki)) oder einer bitweise invertierten MixColumns Operation von der Operation AddRoundKey (L(ki)) und den Operationen inverse ShiftRows, inverse Subbytes (SB1, ...,SB16) entsprechen, ein zweites Vergleichssignal (v') für die entsprechende Runde i des AES-Algorithmus zu bestimmen, wobei das erste Vergleichssignal (v) und das zweite Vergleichssignal (v') bei fehlerfreiem Betrieb der kryptographischen Einheit in einer vorbestimmten Beziehung zueinander stehen; und

    einer Freigabeeinheit zum Bereitstellen des Ausgangssignals (y), wobei die Freigabeeinheit ausgebildet ist, um eine Abwehrmaßnahme gegen einen zur kryptographischen Einheit externen Abgriff des Ausgangssignals (y) durchzuführen, wenn das ersten Vergleichssignal (v) nicht mit dem zweiten Vergleichssignal (v') in der vorbestimmten Beziehung steht.
  19. Verfahren zum Betreiben einer kryptographischen Einheit in einer Runde i eines Verschlüsselungsverfahrens, insbesondere zur Ausführung einer Runde i des AES-Algorithmus, wobei die Variable i die entsprechende Runde des Verschlüsselungsverfahrens bezeichnet, mit folgenden Schritten:

    Bereitstellen eines Eingangssignals (x);

    Bestimmen eines Ausgangssignals (y) auf der Basis einer verschlüsselten Version des Eingangssignals (x) unter aufeinanderfolgender Ausführung der Operationen Subbytes (SB1, ..., SB16), ShiftRows, MixColumns (L) und AddRoundKey (ki), unter Verwendung eines kryptographischen Schlüssels ki bei der Ausführung der Operation AddRoundKey (ki);

    Ermitteln eines ersten Vergleichssignals (v) auf der Basis einer inversen MixColumns-Operation (L–1) des Ausgangssignal (y) oder einer bitweise invertierten inversen MixColumns-Operation (L–1) des Ausgangssignals (y);

    Berechnen eines zweiten Vergleichsignals (v') auf der Basis des Eingangssignals unter Ausführung der Operationen Subbytes (SB1, ..., SB16) und ShiftRows sowie der inversen MixColumns-Operation von der Operation AddRoundKey (L–1(ki)) oder der bitweise invertierten inversen MixColumns-Operation von der Operation AddRoundKey (L–1(ki)), wobei das erste Vergleichssignal (v) und das zweite Vergleichsignal (v') bei einem fehlerfreien Betrieb der kryptographischen Einheit in einer vorbestimmten Beziehung zueinander stehen;

    Vergleichen des ersten Vergleichssignals (v) mit dem zweiten Vergleichssignal (v'), um ein Sperrsignal (E) zu erhalten, wenn das ersten Vergleichsignal (v) und das zweite Vergleichsignal (v') nicht in der vorbestimmten Beziehung zueinander stehen; und

    ansprechend auf das Sperrsignal (E), Ergreifen einer Abwehrmaßnahme gegen einen zur kryptographischen Einheit externen Abgriff des Ausgangssignals (y).
  20. Verfahren zum Betreiben einer kryptographischen Einheit in einer Runde i eines Entschlüsselungsverfahrens, insbesondere zur Ausführung einer Runde i des AES-Algorithmus, wobei die Variable i die entsprechende Runde des Entschlüsselungsverfahrens bezeichnet, mit folgenden Schritten:

    Bereitstellen eines Eingangssignals (x);

    Bestimmen eines Ausgangssignals (y) auf der Basis einer entschlüsselten Version des Eingangssignals (x) unter aufeinanderfolgender Ausführung der Operationen AddRoundKey (ki), inverse MixColumns (L–1), inverse ShiftRows und inverse Subbytes (SB1, ..., SB16) unter Verwendung eines kryptographischen Schlüssels ki bei der Ausführung der Operation AddRoundKey (ki);

    Ermitteln eines ersten Vergleichssignals (v) auf der Basis einer MixColumns-Operation (L) des Ausgangssignal (y) oder einer bitweise invertierten MixColumns-Operation (L) des Ausgangssignals (y);

    Berechnen eines zweiten Vergleichsignals (v') auf der Basis des Eingangssignals unter Ausführung der MixColumns-Operation von der Operation AddRoundKey (L(ki)) oder der bitweise invertierten MixColumns-Operation von der Operation AddRoundKey (L (ki)) sowie der Operationen inverse ShiftRows und inverse Subbytes (SB1, ..., SB16), wobei das erste Vergleichssignal (v) und das zweite Vergleichsignal (v') bei einem fehlerfreien Betrieb der kryptographischen Einheit in einer vorbestimmten Beziehung zueinander stehen;

    Vergleichen des ersten Vergleichssignals (v) mit dem zweiten Vergleichssignal (v'), um ein Sperrsignal (E) zu erhalten, wenn das ersten Vergleichsignal (v) und das zweite Vergleichsignal (v') nicht in der vorbestimmten Beziehung zueinander stehen; und

    ansprechend auf das Sperrsignal (E), Ergreifen einer Abwehrmaßnahme gegen einen zur kryptographischen Einheit externen Abgriff des Ausgangssignals (y).
  21. Computerprogramm mit Programmcode zur Durchführung des Verfahrens gemäß Anspruch 19 oder 20, wenn das Computerprogramm auf einem Computer abläuft.
Es folgen 7 Blatt Zeichnungen






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com