DE102017006169B4 - Mikroprozessor-Einrichtung mit Schlüssel-Prüfungs-Routine - Google Patents

Mikroprozessor-Einrichtung mit Schlüssel-Prüfungs-Routine Download PDF

Info

Publication number
DE102017006169B4
DE102017006169B4 DE102017006169.6A DE102017006169A DE102017006169B4 DE 102017006169 B4 DE102017006169 B4 DE 102017006169B4 DE 102017006169 A DE102017006169 A DE 102017006169A DE 102017006169 B4 DE102017006169 B4 DE 102017006169B4
Authority
DE
Germany
Prior art keywords
key
cryptographic algorithm
cryptographic
check
microprocessor device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE102017006169.6A
Other languages
English (en)
Other versions
DE102017006169A1 (de
Inventor
Sabine Kröselberg
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Giesecke and Devrient ePayments GmbH
Original Assignee
Giesecke and Devrient Mobile Security GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Giesecke and Devrient Mobile Security GmbH filed Critical Giesecke and Devrient Mobile Security GmbH
Priority to DE102017006169.6A priority Critical patent/DE102017006169B4/de
Publication of DE102017006169A1 publication Critical patent/DE102017006169A1/de
Application granted granted Critical
Publication of DE102017006169B4 publication Critical patent/DE102017006169B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/004Countermeasures against attacks on cryptographic mechanisms for fault attacks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

Die Erfindung schafft eine Mikroprozessor-Einrichtung, bei der, falls willentlich ein Schlüssel mit bestimmten Eigenschaften gesetzt wird, eine Schlüsselprüfungsroutine übersprungen werden kann, und ein Verfahren zum Betreiben einer solchen Mikroprozessor-Einrichtung.

Description

  • 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.

Claims (12)

  1. Mikroprozessor-Einrichtung mit einem darin implementierten Betriebsprogramm, das umfasst: a) 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 b) eine Schlüssel-Angriffs-Prüfungs-Routine, die eingerichtet ist, im Anschluss an die Ausführung des kryptographischen Algorithmus die Ausgangsdaten oder/ und andere durch den kryptographischen Algorithmus anlässlich dessen Ausführung erzeugte Daten daraufhin zu überprüfen, ob der dem kryptographischen Algorithmus zugeführte kryptographische Schlüssel vorbestimmten oder vorbestimmbaren Prüfkriterien genügt oder nicht genügt, und gemäß einem Ergebnis des Prüfens eine weitere Ausführung des Betriebsprogramms mit den Ausgangsdaten zu gewähren oder zu verhindern; dadurch gekennzeichnet, dass das Betriebsprogramm weiter umfasst: c) eine Schlüssel-Vorab-Prüfungs-Routine, die eingerichtet ist, vor der Ausführung des kryptographischen Algorithmus den dem kryptographischen Algorithmus zugeführten oder bereitgestellten kryptographischen Schlüssels daraufhin zu überprüfen, ob der kryptographische Schlüssel den vorbestimmten oder vorbestimmbaren Prüfkriterien genügt oder nicht genügt, und falls der kryptographische Schlüssel bereits vor der Ausführung des kryptographischen Algorithmus den vorbestimmten oder vorbestimmbaren Prüfkriterien nicht genügt, die Schlüssel-Angriffs-Prüfungs-Routine gemäß Merkmal b) zu überspringen oder anderweitig nicht auszuführen.
  2. Mikroprozessor-Einrichtung nach Anspruch 1, wobei der kryptographische Schlüssel den vorbestimmten oder vorbestimmbaren Prüfkriterien genügt, falls er kein kritischer Schlüssel ist, und vorbestimmten oder vorbestimmbaren Prüfkriterien nicht genügt, falls er ein kritischer Schlüssel ist.
  3. Mikroprozessor-Einrichtung nach Anspruch 1 oder 2, die weiter einen Krypto-Coprozessor aufweist.
  4. Mikroprozessor-Einrichtung nach einem der Ansprüche 1 bis 3, wobei in a) der kryptographische Algorithmus weiter eingerichtet ist, die Ausgangsdaten in ein oder mehreren Registern der Mikroprozessor-Einrichtung, oder des Krypto-Coprozessors, oder in für die Ablage der Ausgangsdaten reservierten Teilbereichen eines Arbeitsspeichers der Mikroprozessor-Einrichtung oder des Krypto-Coprozessors abzulegen.
  5. Mikroprozessor-Einrichtung nach Anspruch 4, wobei die Ausgangsdaten entweder direkt in Form wie vom Algorithmus ausgegeben oder in weiter verarbeiteter Form in den Registern oder Teilbereichen des Arbeitsspeichers abgelegt werden.
  6. Mikroprozessor-Einrichtung nach einem der Ansprüche 1 bis 5, wobei in b) die Schlüssel-Angriffs-Prüfungs-Routine weiter eingerichtet ist, 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.
  7. Mikroprozessor-Einrichtung nach einem der Ansprüche 1 bis 6, wobei - in der Mikroprozessor-Einrichtung weiter ein Schlüssel-Flag implementiert ist, das zumindest zwei unterschiedliche Werte annehmen kann; - in c) die Schlüssel-Vorab-Prüfungs-Routine weiter eingerichtet ist, 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 oder auf diesem Wert zu belassen; und - das Betriebsprogramm eingerichtet ist, 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.
  8. Mikroprozessor-Einrichtung nach Anspruch 7, wobei das Betriebsprogramm weiter eine Fehlerangriffs-Erkennungs-Routine (FEHLER-ROUT) umfasst, und wobei das Schlüssel-Flag durch die Fehlerangriffs-Erkennungs-Routine (FEHLER-ROUT) geprüft wird.
  9. Mikroprozessor-Einrichtung nach einem der Ansprüche 1 bis 8, wobei als kryptographischer Algorithmus ein symmetrischer kryptographischer Algorithmus vorgesehen ist.
  10. Mikroprozessor-Einrichtung nach Anspruch 9, wobei als symmetrischer kryptographischer Algorithmus AES, DES oder 3DES vorgesehen ist.
  11. Verfahren zum Betreiben einer Mikroprozessor-Einrichtung mit einem darin implementierten Betriebsprogramm, das umfasst: a) 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 b) eine Schlüssel-Angriffs-Prüfungs-Routine; das Verfahren umfassend den Schritt: A) Ausführen des kryptographischen Algorithmus und dadurch Erzeugen von Ausgangsdaten und anderen durch den kryptographischen Algorithmus anlässlich dessen Ausführung erzeugten Daten; dadurch gekennzeichnet, dass das Betriebsprogramm weiter umfasst: c) eine Schlüssel-Vorab-Prüfungs-Routine; und dass das Verfahren weiter die Schritte umfasst: B) vor der Ausführung des kryptographischen Algorithmus, Ausführen der Schlüssel-Vorab-Prüfungs-Routine, und dadurch Überprüfen des dem kryptographischen Algorithmus zugeführten oder bereitgestellten kryptographischen Schlüssels daraufhin, ob der kryptographische Schlüssel den vorbestimmten oder vorbestimmbaren Prüfkriterien genügt oder nicht genügt, und falls der kryptographische Schlüssel bereits vor der Ausführung des kryptographischen Algorithmus den vorbestimmten oder vorbestimmbaren Prüfkriterien nicht genügt, Veranlassen, dass die Schlüssel-Angriffs-Prüfungs-Routine gemäß Merkmal b) übersprungen wird oder anderweitig nicht ausgeführt wird.
  12. Verfahren nach Anspruch 11, weiter umfassend in B): falls der kryptographische Schlüssel vor der Ausführung des kryptographischen Algorithmus den vorbestimmten oder vorbestimmbaren Prüfkriterien genügt, Ausführen der Schlüssel-Angriffs-Prüfungs-Routine gemäß b), im Anschluss an die Ausführung des kryptographischen Algorithmus, wobei die Ausgangsdaten oder/ und andere durch den kryptographischen Algorithmus anlässlich dessen Ausführung erzeugte Daten daraufhin überprüft werden, ob der dem kryptographischen Algorithmus zugeführte kryptographische Schlüssel vorbestimmten oder vorbestimmbaren Prüfkriterien genügt oder nicht genügt, und gemäß einem Ergebnis des Prüfens eine weitere Ausführung des Betriebsprogramms mit den Ausgangsdaten gewährt oder verhindert wird.
DE102017006169.6A 2017-06-29 2017-06-29 Mikroprozessor-Einrichtung mit Schlüssel-Prüfungs-Routine Active DE102017006169B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102017006169.6A DE102017006169B4 (de) 2017-06-29 2017-06-29 Mikroprozessor-Einrichtung mit Schlüssel-Prüfungs-Routine

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102017006169.6A DE102017006169B4 (de) 2017-06-29 2017-06-29 Mikroprozessor-Einrichtung mit Schlüssel-Prüfungs-Routine

Publications (2)

Publication Number Publication Date
DE102017006169A1 DE102017006169A1 (de) 2019-01-03
DE102017006169B4 true DE102017006169B4 (de) 2019-01-24

Family

ID=64661592

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017006169.6A Active DE102017006169B4 (de) 2017-06-29 2017-06-29 Mikroprozessor-Einrichtung mit Schlüssel-Prüfungs-Routine

Country Status (1)

Country Link
DE (1) DE102017006169B4 (de)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2327037A1 (en) 2000-11-22 2002-05-22 Gemplus S.A. Method to detect fault attacks against cryptographic algorithms
DE10162584A1 (de) 2001-10-17 2003-05-08 Infineon Technologies Ag Verfahren und Vorrichtung zum Absichern einer Exponentiations-Berechnung mittels dem chinesischen Restsatz (CRT)
WO2004032411A1 (de) 2002-09-11 2004-04-15 Giesecke & Devrient Gmbh Geschützte kryptographische berechnung
DE102012015158A1 (de) 2012-06-13 2013-12-19 Giesecke & Devrient Gmbh Gegen Ausspähen geschützte kryptographische Berechnung

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2327037A1 (en) 2000-11-22 2002-05-22 Gemplus S.A. Method to detect fault attacks against cryptographic algorithms
DE10162584A1 (de) 2001-10-17 2003-05-08 Infineon Technologies Ag Verfahren und Vorrichtung zum Absichern einer Exponentiations-Berechnung mittels dem chinesischen Restsatz (CRT)
WO2004032411A1 (de) 2002-09-11 2004-04-15 Giesecke & Devrient Gmbh Geschützte kryptographische berechnung
DE102012015158A1 (de) 2012-06-13 2013-12-19 Giesecke & Devrient Gmbh Gegen Ausspähen geschützte kryptographische Berechnung

Also Published As

Publication number Publication date
DE102017006169A1 (de) 2019-01-03

Similar Documents

Publication Publication Date Title
DE60126968T2 (de) System zum schutz von dynamischen und statischen daten gegen unerlaubten manipulationen
DE102007057900B4 (de) Authentifikation von verdächtigen Daten unter Verwendung von Schlüsseltabellen
DE102017002153A1 (de) Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung
DE102013013179A1 (de) Verfahren zum Betreiben eines Sicherheitselements
DE112010004580T5 (de) Sichere Pin-Verwaltung einer für Benutzer vertrauenswürdigen Einheit
EP3387636B1 (de) Kryptoalgorithmus mit schlüsselabhängigem maskiertem rechenschritt (sbox-aufruf)
DE102016210788A1 (de) Komponente zur Verarbeitung eines schützenswerten Datums und Verfahren zur Umsetzung einer Sicherheitsfunktion zum Schutz eines schützenswerten Datums in einer solchen Komponente
DE102017006169B4 (de) Mikroprozessor-Einrichtung mit Schlüssel-Prüfungs-Routine
EP3248136B1 (de) Verfahren zum betreiben einer computereinheit mit einer sicheren laufzeitumgebung sowie eine solche computereinheit
DE112019004146T5 (de) Authentifizierung von dateien
DE102022109866A1 (de) System für eine verbesserte sicherheits- und schutzprüfung
DE102012015158A1 (de) Gegen Ausspähen geschützte kryptographische Berechnung
EP1615098A2 (de) Ausspähungsgeschütztes Berechnen eines maskierten Ergebniswertes
EP3667529B1 (de) Verfahren und vorrichtung zum authentisieren einer fpga-konfiguration
DE102018006313A1 (de) Verfahren mit Safe-Error-Abwehrmaßnahme
EP2569726B1 (de) Verfahren zum überprüfen, ob programmanweisungen von einem tragbaren endgerät ausgeführt wurden
DE10218210B4 (de) Verfahren und Vorrichtung zur Steuerung des Zugriffs auf eine Menge von Informationen und/oder Funktionen in Form eines geheimen Signatur-Schlüssels einer Chipkarte
DE102018217432A1 (de) Prüfung der Integrität von eingebetteten Geräten
DE102004032893B4 (de) Ausspähungsgeschütztes Berechnen eines maskierten Ergebniswertes
EP1573955A1 (de) Verschl sselungsverfahren
DE102021005350A1 (de) Autorisieren einer Anwendung auf einem Sicherheitselement
DE102022202688A1 (de) Verfahren zur Validierung von Daten in einer Recheneinheit
DE102015207004A1 (de) Verfahren zum geschützten Zugriff auf Sicherheitsfunktionen eines Sicherheitsmoduls eines Hostsystems
DE102021202444A1 (de) Verfahren zur Aktualisierung eines Konfigurationsregisters in einem vertrauenswürdigen Modul
DE102021005351A1 (de) Autorisieren einer Anwendung auf einem Sicherheitselement

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R081 Change of applicant/patentee

Owner name: GIESECKE+DEVRIENT EPAYMENTS GMBH, DE

Free format text: FORMER OWNER: GIESECKE+DEVRIENT MOBILE SECURITY GMBH, 81677 MUENCHEN, DE