-
Gebiet der Erfindung
-
Die Erfindung betrifft eine Mikroprozessor-Einrichtung mit einem darin implementierten Betriebsprogramm, das umfasst: einen kryptographischen Algorithmus, der eingerichtet ist, mittels eines dem kryptographischen Algorithmus zugeführten kryptographischen Schlüssels Eingangsdaten zu Ausgangsdaten des kryptographischen Algorithmus zu verarbeiten; sowie eine Schlüssel-Prüfungs-Routine, die eingerichtet ist, vor oder nach dem kryptographischen Algorithmus den Schlüssel gemäß vorbestimmten oder vorbestimmbaren Prüfkriterien zu prüfen und gemäß einem Ergebnis des Prüfens die weitere Ausführung des Betriebsprogramms zu steuern.
-
Stand der Technik
-
Kryptographische Algorithmen, speziell symmetrische Algorithmen, werden verwendet, um Authentisierungen in gesicherten Transaktionen wie z.B. Zahlungsverkehrstransaktionen, Identifikationstransaktionen oder dergleichen durchzuführen. Der kryptographische Algorithmus ist zu seiner Ausführung in einer Mikroprozessor-Einrichtung implementiert. Die Mikroprozessor-Einrichtung ist typischerweise in einem Authentisierungs-Gerät (englisch: authentication device) implementiert. Für Zahlungsverkehrstransaktionen ist die Mikroprozessor-Einrichtung beispielsweise in einer Zahlungsverkehrskarte implementiert. Alternativ kann der kryptographische Algorithmus für eine Zahlungsverkehrstransaktion in einer Mikroprozessor-Einrichtung eingerichtet sein, auf die eine Zahlungsverkehrs-Applikation Zugriff hat, die wiederum in einer Mikroprozessor-Einrichtung eines Smartphone oder ähnlichen Geräts eingerichtet ist. Im letzteren Fall können die Mikroprozessor-Einrichtung mit dem kryptographischen Algorithmus und die Mikroprozessor-Einrichtung mit der Zahlungsverkehrs-Applikation dieselbe Mikroprozessor-Einrichtung oder unterschiedliche Mikroprozessor-Einrichtungen sein. Insbesondere kann der kryptographische Algorithmus in einem für Mobiltelefonie eingerichteten Teilnehmeridentitätsmodul eingerichtet sein, z.B. einer SIM-Karte oder einem Universal Integrated Circuit Card UICC oder einem zum Festeinlöten vorgesehenen embedded UICC oder eUICC. Die Zahlungsverkehrs-Applikation kann wahlweise ganz oder teilweise ebenfalls in dem Teilnehmeridentitätsmodul implementiert sein, oder/und ganz oder teilweise direkt in einem Smartphone oder ähnlichen Gerät eingerichtet sein, in dem das Teilnehmeridentitätsmodul betrieben wird, wahlweise teils direkt im Smartphone oder ähnlichen Gerät, teils im Teilnehmeridentitätsmodul.
-
Vom grundlegenden Konzept her wird für jede Transaktion (genau oder mindestens) eine Berechnung des verwendeten kryptographischen Algorithmus mit dem zu verwendenden kryptographischen Schlüssel durchgeführt, um Ausgangsdaten zu erzeugen. Der kryptographische Schlüssel wird geheim gehalten. Anhand der erzeugten Ausgangsdaten wird nachfolgend entschieden, ob die Transaktion durchgeführt werden soll oder nicht. Im Detail können pro Transaktion mehrere Durchführungen des Algorithmus auszuführen sein, was aber am Grundprinzip nichts ändert.
-
Physikalisch ist der kryptographische Algorithmus in einer Mikroprozessor-Einrichtung implementiert. Wird der kryptographische Algorithmus mit dem kryptographischen Schlüssel ausgeführt, werden Ausgangsdaten erzeugt und in einem für die Mikroprozessor-Einrichtung zugänglichen Register abgelegt. Viele für kryptographische Algorithmen eingerichtete Mikroprozessor-Einrichtungen haben einen Hauptprozessor für allgemeine Aufgaben, sowie einen gesonderten Krypto-Coprozessor, auf dem der kryptographische Algorithmus zur Ausführung implementiert ist.
-
Bekannte symmetrische Krypto-Algorithmen sind der Data Encryption Standard DES, der Advanced Encryption Standard AES oder der Triple-DES. Beim AES gibt es drei zulässige Schlüssellängen 16, 24, 32 Bytes für den Eingangsschlüssel, der dem AES eingangs zugeführt wird (Eingangsschlüssel = der dem AES eingangs zugeführte Schlüssel). Aus dem Eingangsschlüssel werden im Lauf einer einzelnen Berechnung des AES durch ein sequentielles Schlüsselableitungsverfahren nacheinander mehrere Rundenschlüssel erzeugt, die unabhängig von der Eingangsschlüssellänge 16 Bytes lang sind und im Laufe des gesamten AES dann an den vorgesehenen Stellen eingearbeitet werden. Der erste Rundenschlüssel entspricht immer den ersten 16 Bytes des Eingangsrundenschlüssels. Bei einer ENTschlüsselung werden die Rundenschlüssel in umgekehrter Reihenfolge genutzt wie bei einer VERschlüsselung.
-
Aus dem Stand der Technik sind Mikroprozessor-Einrichtungen gemäß dem Oberbegriff von Anspruch 1 bekannt, mit einem darin implementierten Betriebsprogramm, das umfasst: einen kryptographischen Algorithmus, der eingerichtet ist, mittels eines dem kryptographischen Algorithmus zugeführten kryptographischen Schlüssels Eingangsdaten zu Ausgangsdaten des kryptographischen Algorithmus zu verarbeiten; sowie eine Schlüssel-Prüfungs-Routine, die eingerichtet ist, vor oder nach dem kryptographischen Algorithmus den zu verwendenden bzw. verwendeten kryptographischen Schlüssel gemäß vorbestimmten oder vorbestimmbaren Prüfkriterien zu prüfen und gemäß einem Ergebnis des Prüfens die weitere Ausführung des Betriebsprogramms zu steuern.
-
Die Motivation, den zu verwendenden bzw. verwendeten kryptographischen Schlüssel zu prüfen, ist, Angriffe auf die Mikroprozessor-Einrichtung, die auf ein Ausspähen des geheimen Schlüssels zielen, zu erkennen und möglichst auch abzuwehren. Die Schlüsselprüfung ist somit eine Abwehrmaßnahme gegen Angriffe auf die Mikroprozessor-Einrichtung, die auf Ausspähen des geheimen Schlüssels gerichtet sind.
-
Interne Fehlerangriffs-Tests beim Anmelder der vorliegenden Anmeldung haben gezeigt, dass bei Fehlerangriffen die Bits der Speicher einer speziellen Mikroprozessor-Einrichtung je nach Hardware-Typ die Neigung haben, entweder immer zu Null oder immer zu Eins zu kippen. Ebenfalls bei internen Tests beim Anmelder der vorliegenden Anmeldung hat sich herausgestellt, dass das Stören von Coprozessor -Registern leichter ist als das gezielte Verändern von Bereichen im RAM, die größer als die Registerbreite sind (derzeit meist 4 Bytes). Dies gilt besonders, wenn die Daten im Coprozessor unmaskiert im Klartext gespeichert werden müssen. Somit wird ein Angriff auf eine Mikroprozessor-Einrichtung, die einen Krypto-Coprozessor hat, mit besonders hoher Wahrscheinlichkeit Auswirkungen auf die Registerinhalte der Register des Krypto-Coprozessors haben, in welchen die Ausgangsdaten des kryptographischen Algorithmus abgelegt werden.
-
Zur Absicherung gegenüber Fehlerangriffen werden in sicheren Krypto-Algorithmen im Laufe der Berechnung, d.h. der Ausführung des Algorithmus, Daten und Status-Werte gesammelt und damit Sicherheitsauswertungen durchgeführt. Die Sicherheitsauswertungen mittels dieser Werte erfolgen am Ende aller Berechnungen - und somit zeitlich möglichst weit entfernt von der Daten-Erhebung und somit dem eigentlichen Auffällig werden des Angriffs. Im Fall, dass diese abschließenden Sicherheitsauswertungen zum Schluss kommen, dass ein Angriff erfolgt sein muss, werden Fehler-Alarm-Markierungen im Speicher gesetzt, und an Stelle der berechneten Daten werden Werte an das aufrufende Programm zurückgegeben, die keine Rückschlüsse auf die tatsächlich während des erkannten Angriffs verwendeten Schlüssel- oder Klartextdaten zulassen.
-
Ein Teil der Sicherheitsauswertungen am Ende eines kryptographischen Algorithmus kann eine sogenannte Nullschlüsselprüfung sein. Bei der Nullschlüsselprüfung werden nach Ausführung des kryptographischen Algorithmus und Ablage der Ausgangsdaten des kryptographischen Algorithmus Sicherheitsauswertungen durchgeführt, bei denen im vorgesehenen Register des Krypto-Coprozessors überprüft wird, welchen Wert (nachfolgend genannt „Ausgangswert“) die Ausgangsdaten haben oder andere Daten (z.B. manche Rundenschlüssel) haben. Falls der Ausgangswert oder die anderen Daten (z.B. Rundenschlüssel) darauf hinweist, dass der kryptographische Algorithmus mit dem Nullschlüssel, also einem Schlüssel, dessen Bits alle Null sind, durchgeführt wurde, wird ein Fehler-Alarm gesetzt, ein sogenannter DFA-Alarm. Wenn der DFA-Alarm gesetzt ist, darf das Ergebnis der Berechnung nicht zur Weiterverwendung an das übrige Betriebsprogramm ausgegeben werden. Die anderen Daten können beispielsweise manche Rundenschlüssel sein, z.B. der Rundenschlüssel der letzten Runde.
-
Bei Mikroprozessor-Einrichtungen, die sowohl einen Hauptprozessor für allgemeine Aufgaben des Chips als auch einen ergänzend existierenden Krypto-Coprozessor zur Ausführung nutzen, können sich die Sicherheitsauswertungen nur über den Krypto-Coprozessor und seine Register erstrecken, oder zudem auch über den Hauptprozessor und seine Register.
-
Eine zur Nullschlüsselprüfung widersprüchliche, aber von Herstellern von Mikroprozessor-Einrichtungen teils dennoch gestellte Forderung ist, dass Sicherheitsmaßnahmen so implementiert werden müssen, dass die volle Funktionalität des Algorithmus bestehen bleibt, insbesondere dass die Verwendbarkeit von Schlüsseln gegeben ist, die vollständig aus Nullen oder Einsen bestehen.
-
Da kryptographische Schlüssel zufällig gewählt werden, ist es sehr unwahrscheinlich, dass kritische Schlüssel wie Nullschlüssel zufällig in einem Kundenprodukt zum Einsatz kommen.
-
Bei der Evaluierungen, und Zertifizierungen und ähnlichen Untersuchungen an Mikroprozessor-Einrichtungen werden standardisierte Tests gemäß Standard-Testspezifikation an den Mikroprozessor-Einrichtungen durchgeführt. Bei solchen Tests, speziell bei sogenannten Known-Answer-Test einer Standard-Testspezifikation (z.B. AES_AVS von NIST), können derartige Schlüssel, z.B. Nullschlüssel, mit sehr viel höherer Wahrscheinlichkeit als Vorgabe vorkommen. Tests gemäß Testspezifikationen, die gezielt Nullschlüssel vorschreiben, sind bei Mikroprozessor-Einrichtungen mit der oben beschriebenen Nullschlüsselprüfung nicht anwendbar.
-
Das Dokument
DE 10 2012 015158 A1 aus dem Stand der Technik offenbart eine gegen Ausspähen geschützte kryptographische Berechnung, bei der zufallsgesteuert mit einem Schlüssel oder seinem 1er-Komplement gerechnet wird, und eine entsprechend eingerichtete Mikroprozessoreinrichtung. Das Dokument
CA 2 327 037 A1 aus dem Stand der Technik offenbart ein Verfahren zur gegen Fehlerangriffe geschützten Verschlüsselung einer Nachricht mit einem Sub-Schlüssel und einem Algorithmus, bei welchem, nachdem der Sub-Schlüssels aus einem Schlüssel und einem Init-Vektor abgeleitet worden ist, eine Prüfsumme über den Sub-Schlüssel und den Init-Vektor gebildet wird und mit einer entsprechenden vorab gebildeten und abgespeicherten Prüfsumme verglichen wird. Im Fall von Nichtübereinstimmung der Prüfsummen wird ein Fehlerangriff erkannt. Als weitere Maßnahme offenbart
DE 10 2012 015 158 A1 , jede Ausführung des Algorithmus zwei Mal auszuführen und die Ausführungsergebnisse zu vergleichen, um Fehlerangriffe zu erkennen. Das Dokument
WO 2004/ 032 411 A1 aus dem Stand der Technik offenbart ein Verfahren zum geschützten Ausführen eines kryptographischen Algorithmus mit mehreren Schlüsselparametern, beispielsweise RSA, insbesondere RSA-CRT, bei welchem als Integritätsprüfung ermittelt wird, ob sich die Schlüsselparameter in einem Bereich zulässiger Werte befinden. Mittels der Integritätsprüfung sollen kryptographische Angriffe vermieden werden, bei denen ein Schlüsselparameter verfälscht wird, um Rückschlüsse auf einen anderen Schlüsselparameter zu ziehen. Das Dokument
DE 101 62 584 A1 aus dem Stand der Technik offenbart ein Verfahren zur Absicherung einer Exponentiations-Berechnung mittels Chinesischem Restsatz CRT, wobei, um das Exponentiations-Ergebnis zu erhalten, zwei Hilfsgrößen mittels eines Zusammenfügungsalgorithmus zusammengefügt werden, und anschließend ein Prüfalgorithmus angewandt wird, der vom Zusammenfügungsalgorithmus unterschiedlich ist.
-
Zusammenfassung der Erfindung
-
Der Erfindung liegt die Aufgabe zu Grunde, eine Mikroprozessor-Einrichtung zu schaffen, die verbesserte Eigenschaften bei Verwendung von speziellen Schlüsseln wie z.B. Nullschlüsseln haben. Speziell soll ein flexiblerer Einsatz von Tests mit Nullschlüsseln möglich sein als bei bekannten Mikroprozessor-Einrichtungen, speziell als bei bekannten Mikroprozessor-Einrichtungen mit Nullschlüsselprüfung. Zudem soll eine verbesserte Verwendbarkeit von möglichst vielen, möglichst allen, Werten für kryptographische Schlüssel, gewährleistet sein.
-
Die Aufgabe wird gelöst durch eine Mikroprozessor-Einrichtung nach Anspruch 1. Vorteilhafte Ausgestaltungen der Erfindung sind in den abhängigen Ansprüchen angegeben.
-
Die erfindungsgemäße Mikroprozessor-Einrichtung nach Anspruch 1 überspringt, falls dem Algorithmus gezielt ein nicht-DFA-Test-konformer Schlüssel wie z.B. ein Nullschlüssel zugeführt wird, eine ansonsten standardmäßig bei jeder Ausführung des Algorithmus zwangsweise durchgeführte Schlüssel-Angriffs-Prüfungs-Routine (z.B. die weiter oben beschriebene Nullschlüsselprüfung). Hierdurch wird verhindert, dass durch die Schlüssel-Angriffs-Prüfungs-Routine fälschlich ein Angriff vermutet wird und das Betriebsprogramm unnötigerweise abgebrochen oder nur mit wertlosen Daten weitergeführt wird.
-
Für alle anderen (kryptografisch sicheren zufälligen) Schlüssel wird am Ende aller Berechnungen zusätzlich zu den bereits bestehenden und bewährten Fehler-Kontrollen überprüft, dass der im besonders anfälligen Coprozessor stehende Schlüsselwert nicht derjenige ist, der bei Verwendung eines Nullschlüssels erwartet werden würde. Im Fall, dass der Test auf einen Nullschlüssel hinweist, werden Maßnahmen ergriffen, die bei entdecktem Fehlerangriff für das Produkt vorgesehen sind. Denn dieser Nullschlüssel kann dann nur durch einen Fehlerangriff auf den Coprozessor erzeugt worden sein.
-
Willentlich vom Nutzer der Funktion übergebene Eingangsschlüssel mit speziellen Eigenschaften (z.B. bestehend aus ausschließlich Null- oder Eins-Bits / oder Schlüssel mit im Einzelfall besonderen ungünstig wirkenden Bitmustern), die normalerweise kritische Schlüssel wären, welche einen Fehleralarm erzeugen würden, werden somit, falls sie vom Nutzer willentlich festgelegt werden, von einigen Angriffs-Prüfungen ausgeschlossen.
-
Daher ist gemäß Anspruch 1 eine Mikroprozessor-Einrichtung geschaffen, die verbesserte Eigenschaften bei Verwendung von speziellen Schlüsseln wie z.B. Nullschlüsseln hat.
-
Gemäß manchen Ausführungsformen der Mikroprozessor-Einrichtung genügt der kryptographische Schlüssel den vorbestimmten oder vorbestimmbaren Prüfkriterien, falls er kein kritischer Schlüssel wie ein Nullschlüssel ist. Falls der kryptographische Schlüssel hingegen ein kritischer Schlüssel wie ein Nullschlüssel ist, genügt er den vorbestimmten oder vorbestimmbaren Prüfkriterien nicht.
-
Die konkrete Gestalt eines kritischen Schlüssels hängt von der konkreten Konstellation von verwendetem Algorithmus, genutzter Chip-Hardware, sowie ggf. eingesetztem Coprozessor ab. Für manche Konstellationen ist beispielsweise ein Schlüssel, bei dem alle Bits Null sind (ein sogenannter „Nullschlüssel“, ein kritischer Schlüssel. Für manche Konstellationen ist ein Schlüssel, bei dem alle Bits Eins sind, ein kritischer Schlüssel. Für manche Konstellationen ist ein Schlüssel, bei dem die ersten 16 Bytes Null sind und die weiteren Bytes beliebige Werte (Null oder nicht Null) haben, ein kritischer Schlüssel. Für manche Konstellationen ist ein Schlüssel, bei dem die ersten 16 Bytes Eins sind und die weiteren Bytes beliebige Werte (Eins oder nicht Eins) haben, ein kritischer Schlüssel.
-
Die Prüfung des Eingangsschlüssels auf die Prüfkriterien hin in Schritt b), durch die Schlüssel-Angriffs-Prüfungs-Routine, wird nicht am Eingangsschlüssel direkt durchgeführt, sondern anhand der Ausgangsdaten oder/ anderer durch den kryptographischen Algorithmus anlässlich dessen Ausführung erzeugter Daten, beispielsweise anhand von Rundenschlüsseln. Beispielsweise kann die Prüfung des Eingangsschlüssels indirekt dadurch erfolgen, dass der Wert eines Rundenschlüssels geprüft wird. Hat der Rundenschlüssel einen Wert, der sich ergeben würde, wenn als Eingangsschlüssel ein kritischer Schlüssel verwendet worden ist, dann wird durch Schlüssel-Angriffs-Prüfungs-Routine festgestellt, dass der dem Algorithmus zugeführte Schlüssel (Eingangsschlüssel) den Prüfkriterien nicht genügt, z.B. ein kritischer Schlüssel ist, z.B. ein Nullschlüssel, oder ein Schlüssel, dessen erste 16 Bytes alle Null sind.
-
In Schritt b), bei der aus dem Stand der Technik bekannten Routine, die erfindungsgemäß überbrückt werden kann, ist, wird z.B., falls der kryptographische Schlüssel ein kritischer Schlüssel wie ein Nullschlüssel ist, eine weitere Ausführung des Betriebsprogramms mit den Ausgangsdaten verhindert.
-
Wahlweise weist die Mikroprozessor-Einrichtung einen Krypto-Coprozessor auf, auf dem der kryptographische Algorithmus implementiert ist.
-
Wahlweise ist in a) der kryptographische Algorithmus weiter eingerichtet, die Ausgangsdaten in ein oder mehreren Registern der Mikroprozessor-Einrichtung, oder ggf. des Krypto-Coprozessors, oder in für die Ablage der Ausgangsdaten reservierten Teilbereichen eines Arbeitsspeichers (z.B. Random Access Memory RAM) der Mikroprozessor-Einrichtung oder ggf. des Krypto-Coprozessors abzulegen.
-
Wahlweise werden die Ausgangsdaten entweder direkt in Form wie vom Algorithmus ausgegeben oder in weiter verarbeiteter, insbesondere maskierter oder/und verschlüsselter, Form in den Registern bzw. Teilbereichen des Arbeitsspeichers abgelegt.
-
Wahlweise ist in b) die Schlüssel-Angriffs-Prüfungs-Routine weiter eingerichtet, falls der dem kryptographischen Algorithmus zugeführte kryptographische Schlüssel den vorbestimmten oder vorbestimmbaren Prüfkriterien nicht genügt, entweder eine weitere Ausführung des Betriebsprogramms vollständig zu verhindern, oder eine weitere Ausführung des Betriebsprogramms lediglich mit wertlosen Daten zu gewähren, die keine Rückschlüsse auf die Ausgangsdaten zulassen.
-
Gemäß manchen Ausführungsformen der Erfindung ist in der Mikroprozessor-Einrichtung weiter ein Schlüssel-Flag implementiert, das zumindest zwei unterschiedliche Werte annehmen kann, gesetzt und nicht gesetzt. In c) ist die Schlüssel-Vorab-Prüfungs-Routine weiter eingerichtet, im Fall, dass der kryptographische Schlüssel den vorbestimmten oder vorbestimmbaren Prüfkriterien genügt oder nicht genügt, das Schlüssel-Flag auf einen unterschiedlichen Wert zu setzen bzw. auf diesem Wert zu belassen. Beispielsweise wird das Schlüssel-Flag, nur falls den Prüfkriterien nicht genügt ist, z.B. ein kritischer Schlüssel vorliegt, gesetzt. Wird den Prüfkriterien genügt, liegt also z.B. kein kritischer Schlüssel vor, wird das Schlüssel-Flag nicht gesetzt. Weiter ist das Betriebsprogramm eingerichtet, den Wert des Schlüssel-Flag zu überprüfen und in Abhängigkeit vom Wert des Schlüssel-Flag die Schlüssel-Angriffs-Prüfungs-Routine gemäß Merkmal b) entweder (i) auszuführen oder (ii) zu überspringen oder anderweitig nicht auszuführen. Beispielsweise wird bei gesetztem Schlüssel-Flag (dies ist dann beispielweise ein Indikator für einen willentlich gesetzten, eigentlich kritischen Schlüssel) die Schlüssel-Angriffs-Prüfungs-Routine gemäß Merkmal b) übersprungen. Wahlweise umfasst das Betriebsprogramm weiter eine Fehlerangriffs-Erkennungs-Routine, wobei das Schlüssel-Flag durch die Fehlerangriffs-Erkennungs-Routine geprüft wird. Anderweitig ist die Fehlerangriffs-Erkennungs-Routine i.W. wie aus dem Stand der Technik bekannt gestaltet.
-
Als kryptographischer Algorithmus ist wahlweise ein symmetrischer kryptographischer Algorithmus vorgesehen, wahlweise AES, DES oder 3DES.
-
Figurenliste
-
Im Folgenden wird die Erfindung an Hand von Ausführungsbeispielen und unter Bezugnahme auf die Zeichnung näher erläutert, in der zeigen:
- 1 ein Schaubild zur Veranschaulichung der Erfindung, anhand von Ausführungsformen, die eine Nullschlüsselprüfung verwenden.
-
Detaillierte Beschreibung von Ausführungsbeispielen
-
1 zeigt ein Schaubild zur Veranschaulichung der Erfindung, anhand von Ausführungsformen, die eine Nullschlüsselprüfung verwenden. 1 geht aus von einer Mikroprozessor-Einrichtung, auf der ein Betriebsprogramm implementiert ist, das ein Betriebssystem und eine Implementierung des kryptographischen Algorithmus AES umfasst, den AES wahlweise auf einem Krypto-Coprozessor. Das Betriebsprogramm umfasst weiter Fehlerangriffs-Erkennungs-Routinen FEHLER-ROUT, d.h. Funktionen, die mittels Sicherheitsauswertungen die vielfältigen durch aktive Fehlerangriffe erzeugbaren Abweichungen in den Berechnungen zu erkennen versuchen (diese sind weitgehend aus dem Stand der Technik bekannt), und diese umfassen wiederum eine Nullschlüssel-Prüfungs-Routine. Die Nullschlüssel-Prüfungs-Routine ist eine Spezialform einer Schlüssel-Angriffs-Prüfungs-Routine. Das Betriebssystem koordiniert den Ablauf u.A. des kryptographischen Algorithmus und der Fehlerangriffs-Erkennungs-Routinen.
-
Im Unterschied zum Stand der Technik ist in der Mikroprozessor-Einrichtung zusätzlich ein Nullschlüssel-Flag eingerichtet. Das Nullschlüssel-Flag ist eine Spezialform eines Schlüssel-Flag. Weiter im Unterschied zum Stand der Technik ist in der Mikroprozessor-Einrichtung eine Schlüssel-Vorab-Prüfungs-Routine eingerichtet, durch welche das Nullschlüssel-Flag gesetzt werden kann.
-
Vor Beginn der Ausführung des kryptographischen Algorithmus, hier AES, wird ein Schlüssel bereitgestellt. Der Schlüssel wird z.B. bereitgestellt, indem er aus einem Speicher geladen wird. Wahlweise wird der Schlüssel unmittelbar vor Ausführung des Algorithmus on the fly erzeugt. Gemäß dem Stand der Technik würde nun der Algorithmus einfach ausgeführt („Führe AES aus“). Erfindungsgemäß wird vor der Ausführung des AES eine Prüfung durchgeführt, ob der zugeführte Schlüssel der Nullschlüssel ist. Falls nein (NEIN), wird der Algorithmus i.W. wie gemäß dem Stand der Technik bekannt gestartet. Falls der Schlüssel hingegen der Nullschlüssel ist (JA), wird das Nullschlüssel-Flag gesetzt. Nachfolgend wird der AES ausgeführt. Nach Ausführung des AES werden die Fehlerangriffs-Erkennungs-Routinen FEHLER-ROUT gestartet. Im Unterschied zu herkömmlichen Fehlerangriffs-Erkennungs-Routinen prüft die erfindungsgemäße Fehlerangriffs-Erkennungs-Routine FEHLER-ROUT, zusätzlich zu den üblichen Sicherheitsauswertungen, den Wert des erfindungsgemäßen Nullschlüssel-Flag. Ist das Nullschlüssel-Flag gesetzt, wird die Nullschlüsselprüfung übersprungen. Ist das Nullschlüssel-Flag nicht gesetzt, wird die Nullschlüssel-Prüfung wie üblich ausgeführt. Vermutet die Nullschlüsselprüfung eine Berechnung des AES mit dem Nullschlüssel (JA), wird eine Fehlermaßnahme ergriffen, z.B. falsche oder wertlose Ausgangsdaten ausgegeben, oder das Betriebsprogramm abgebrochen. Findet die Nullschlüsselprüfung keinen Hinweis auf eine Berechnung des AES mit dem Nullschlüssel (NEIN), wird das Betriebsprogramm regulär weiter ausgeführt. Optional können, wie in 1 gezeigt, weitere DFA-Prüfungen nachfolgen. Wird hierbei ein Hinweis auf einen Angriff gefunden (JA), wird eine Fehlermaßnahme ergriffen, z.B. wie oben beschrieben. Wird hierbei kein Hinweis auf einen Angriff gefunden (NEIN), wird schließlich der Ausgangswert des AES (AES-Ergebnis) an das Betriebssystem zur Weiterverarbeitung übergeben, also das Betriebsprogramm weiter ausgeführt.