DE102012003968A1 - Gegen Ausspähen geschützte Berechnung - Google Patents

Gegen Ausspähen geschützte Berechnung Download PDF

Info

Publication number
DE102012003968A1
DE102012003968A1 DE102012003968A DE102012003968A DE102012003968A1 DE 102012003968 A1 DE102012003968 A1 DE 102012003968A1 DE 102012003968 A DE102012003968 A DE 102012003968A DE 102012003968 A DE102012003968 A DE 102012003968A DE 102012003968 A1 DE102012003968 A1 DE 102012003968A1
Authority
DE
Germany
Prior art keywords
calculation
processor
blocks
computation
context
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.)
Withdrawn
Application number
DE102012003968A
Other languages
English (en)
Inventor
Helmut Köglmeier
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 GmbH
Original Assignee
Giesecke and Devrient 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 GmbH filed Critical Giesecke and Devrient GmbH
Priority to DE102012003968A priority Critical patent/DE102012003968A1/de
Priority to PCT/EP2013/000559 priority patent/WO2013127519A2/de
Priority to US14/382,026 priority patent/US20150026481A1/en
Publication of DE102012003968A1 publication Critical patent/DE102012003968A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • 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
    • G06F2207/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7252Randomisation as countermeasure against side channel attacks of operation order, e.g. starting to treat the exponent at a random place, or in a randomly chosen direction

Abstract

Die Erfindung schafft ein Verfahren zum gegen Ausspähen von Geheimdaten geschützten Durchführen einer eine Mehrzahl von Blöcken umfassenden kryptographischen Berechnung unter Verwendung von Geheimdaten in einem Prozessor. Um ein Rechenergebnis der Berechnung zu erzielen, wird eine Mehrfachberechnung durchgeführt, bei welcher die Berechnung mehrmals, zumindest zweimal, durchgeführt wird. Innerhalb der Mehrfachberechnung werden Blöcke der mehreren, zumindest zwei, Durchführungen der Berechnung in verschachtelter Reihenfolge durchgeführt.

Description

  • Die Erfindung betrifft ein Verfahren zum Durchführen einer mehrfach durchgeführten kryptographischen Berechnung unter Verwendung von Geheimdaten, das gegen Ausspähen der Geheimdaten geschützt ist.
  • Kryptographische Berechnungen werden z. B. von allgemeinen Prozessoren (CPUs) durchgeführt, alternativ häufig von Krypto-Coprozessoren, die den allgemeinen Prozessoren zugeordnete spezielle Prozessoren sind. Insbesondere Chipkarten für Zahlungsverkehr- oder Mobilfunkanwendungen haben Prozessoren mit Krypto-Coprozessoren. Geheimdaten, z. B. Schlüssel, für eine auf dem Prozessor (allgemeiner Prozessor oder Krypto-Coprozessor) auszuführende Berechnung werden in der Regel in ein oder mehreren dem Prozessor zugeordneten Registern, z. B. Schlüsselregistern, bereitgehalten.
  • Manche Prozessoren, z. B. solche mit Multitasking- oder Multithreadingfähigkeit, sind in der Lage, bei ihrem Betrieb mehrere Kontexte zu betreiben, d. h. mehrere voneinander isolierte Ausführungsumgebungen für durch den Prozessor auszuführende Programmcodes. Nur ein einziger Kontext ist auf einmal aktiv, die anderen Kontexte sind in Wartestellung. Der Programmcode im gerade aktiven Kontext wird vom Prozessor abgearbeitet. Die Programmcodes in den nicht aktiven Kontexten sind währenddessen zurückgestellt und werden erst ausgeführt, wenn der zugehörige Kontext aktiviert wird. Soll von der Abarbeitung eines Programmcodes in einem ersten, gerade aktiven Kontext zur Abarbeitung eines anderen Programmcodes in einem zweiten, gerade nicht aktiven Kontext gewechselt werden, schaltet der Prozessor vom ersten Kontext zum zweiten Kontext. Typischerweise laufen z. B. unterschiedliche Applikationen, Threads, oder Tasks in unterschiedlichen Kontexten. Viele Prozessoren, z. B. der ARM7-Prozessor, sehen zudem einen User-Modus und System-Modus als voneinander getrennte Kontexte vor.
  • Im allgemeinsten Fall werden durch eine kryptographische Berechnung Eingangsdaten unter Verwendung von Geheimdaten, z. B. eines geheimen Schlüssels, zu Ausgangsdaten verarbeitet, z. B. Klartextdaten mit einem Schlüssel zu Chiffredaten verschlüsselt oder umgekehrt Chiffredaten mit einem Schlüssel zu Klartextdaten entschlüsselt.
  • Viele kryptographische Berechnungen lassen sich in eine Mehrzahl von Blöcken unterteilen, die in ihrer Gesamtheit die Berechnung bilden. Als Blöcke können insbesondere Runden eines zyklischen Verfahrens vorgesehen sein. So umfasst beispielsweise das kryptographische Berechnungsverfahren DES (Data Encryption Standard) 16 Runden, wobei in jeder Runde ein Teil der Eingangsdaten mit einem Teil des Schlüssels verarbeitet wird. Es gibt aber auch nicht-zyklische kryptographische Verfahren, wobei jeder Block eine Programmcode-Sequenz darstellt.
  • In kryptographischen Berechnungen werden Geheimdaten, wie beispielsweise kryptographische Schlüssel, verarbeitet, die geheim bleiben sollen. Mittlerweile existieren ausgeklügelte Spähangriffe, mit denen sich die Geheimdaten aus einer ungeschützten Berechnung ausspähen lassen. Bei Seitenkanalangriffen wird z. B. der Stromverbrauch oder die elektromagnetische Abstrahlung des Prozessors, der die Berechnung durchführt, gemessen und daraus auf die Geheimdaten rückgeschlossen. Maskierung der Geheimdaten bietet hiergegen einen gewissen Schutz. Bei DFA-Angriffen (DFA = Differential Fault Analysis) werden gezielt Fehler in den Prozessor injiziert und aus der resultierenden Störung des Ergebnisses der Berechnung auf die Geheimdaten geschlossen. Bei kombinierten Spähangriffen wird über Seitenkanäle wie z. B. Stromverbrauch oder elektromagnetische Abstrahlung ein geeigneter Zeitpunkt für eine gezielte Störung, z. B. DFA, ermittelt und an diesem Zeitpunkt die Störung durchgeführt. Beispielsweise können signifikante Merkmale im Stromverbrauch wie z. B. Peaks auf geeignete Zeitpunkte zum Einbringen einer Störung hinweisen.
  • Als Gegenmaßnahme gegen Spähangriffe werden sicherheitskritische Berechnungen von Algorithmen wie z. B. DES (Data Encryption Standard) oft doppelt oder mehrfach ausgeführt. Die zwei oder mehreren Rechenergebnisse der mehreren Durchführungen werden verglichen. Falls gemäß dem Vergleich der Verdacht einer Störung bei einer der Durchführungen auftaucht, wird das Rechenergebnis verworfen. Ggf. werden weitere Maßnahmen ergriffen, wie beispielsweise Sperren des Prozessors oder Co-Prozessors bzw. der Chipkarte, Löschen von Speicherbereichen oder dergleichen.
  • So beschreibt EP 1 569 118 B1 ein Verfahren zum sicheren Berechnen eines Ergebniswerts E (z. B. einer Speicheradresse) ausgehend von einem Parameter P (z. B. einer Basis-Speicheradresse), bei dem der Ergebniswert zweimal berechnet wird, die beiden Ergebniswerte verglichen werden und der Ergebniswert nur bei zufriedenstellendem Vergleichsergebnis verwendet wird, und sonst der berechnete Ergebniswert als fehlerhaft verworfen wird. Bei den beiden Berechnungen wird einmal der Parameter P und das andere Mal der Komplementärwert ~P des Parameters verwendet.
  • Die mehrfache Durchführung ein- und derselben Berechnung ermöglicht zwar eine Überprüfung des Rechenergebnisses, erhöht aber andererseits die Erfolgschancen eines Angreifers bei Manipulationen wie z. B. DFA-Angriffen, da er mehrmals dieselbe Rechnung gezielt angreifen kann.
  • US-2009/0285398 A1 beschreibt ein Verfahren zur Verifizierung der Integrität eines Schlüssels eines symmetrischen kryptographischen Algorithmus wie beispielsweise DES (Data Encryption Standard). Hierbei wird der Algorithmus zweimal ausgeführt, einmal mit einem kryptographischen Schlüssel, und einmal mit dem 1er-Komplement des Schlüssels. Hierdurch sind die beiden Durchführungen nicht mehr identisch, reagieren somit unterschiedlich auf Manipulationen. Folglich werden auch Manipulationen erkannt, die beispielsweise bei jeder Ausführung des Algorithmus dasselbe Schlüsselbit auf dieselbe Weise manipulieren.
  • Für einen Datenträger mit einem Betriebsprogramm mit mehreren Operationen offenbart DE 198 22 218 A1 Maßnahmen zum Schutz des Betriebsprogramms gegen Seitenkanal-Angriffe. Sofern sicherheitsrelevante Operationen vorkommen, werden manche Operationen, bei denen das Gesamtergebnis nicht von der Reihenfolge der Berechnung abhängt, in geänderter Reihenfolge durchgeführt, beispielsweise in zufallsgesteuert festgelegter Reihenfolge. Durch die Vertauschung der Operationen wird vor einem Angreifer verheimlicht, zu welchem Zeitpunkt welche Operation durchgeführt wird. Daher kann beispielsweise ein Stromprofil nicht mehr eindeutig einer Operation zugeordnet werden, so dass die Auswahl einer bestimmten Operation für einen gezielten Angriff anhand des Stromprofils nicht möglich ist.
  • Der Erfindung liegt die Aufgabe zu Grunde, ein Verfahren zu schaffen, bei dem eine kryptographische Berechnung, die mehrfach durchgeführt wird, gegen Ausspähen von Geheimdaten geschützt ist.
  • Die Aufgabe wird gelöst durch ein Verfahren nach Anspruch 1. Vorteilhafte Ausgestaltungen der Erfindung sind in den abhängigen Ansprüchen angegeben.
  • In Anspruch 1 ist ein Verfahren zum gegen Ausspähen von Geheimdaten geschützten Durchführen einer kryptographischen Berechnung angegeben. Die Berechnung umfasst eine Mehrzahl von Blöcken. Bei der Berechnung werden Geheimdaten verwendet, um ein Rechenergebnis zu erzeugen; in der Regel werden aus Eingangsdaten und den Geheimdaten Ausgangsdaten, die das Rechenergebnis darstellen, erzeugt. Das Verfahren wird in einem Prozessor durchgeführt. Um das Rechenergebnis der Berechnung zu erzielen, wird eine Mehrfachberechnung durchgeführt, d. h. ein die Berechnung bildender Algorithmus wird mehrmals, zumindest zweimal, (oder dreimal, viermal, ...) durchgeführt. Dies geschieht, damit nachfolgend eine Verifizierung des Rechenergebnisses durch Vergleich der einzelnen Rechenergebnisse der mehreren Durchführungen erfolgen kann. Wahlweise wird, wie für sich betrachtet aus dem Stand der Technik bekannt, eine solche Verifizierung des Rechenergebnisses durch Vergleich der Rechenergebnisse der mehreren Durchführungen durchgeführt und je nach Ergebnis das Rechenergebnis verwendet oder verworfen.
  • Das Verfahren zeichnet sich dadurch aus, dass innerhalb der Mehrfachberechnung Blöcke der mehreren Durchführungen – zumindest zwei Durchführungen – der Berechnung in verschachtelter Reihenfolge durchgeführt werden. Mit anderen Worten werden nicht zuerst alle Blöcke der einen Durchführung abgearbeitet, und erst anschließend die Blöcke der anderen oder nächsten Durchführung abgearbeitet, sondern es wird in wechselnder Abfolge mal ein Block der einen Durchführung, mal ein Block einer anderen Durchführung ausgeführt. Beispielsweise werden Blöcke (oder zumindest ein Block) einer zweiten Durchführung zwischen die Blöcke einer ersten Durchführung eingestreut.
  • Durch das Verschachteln der Blöcke unterschiedlicher Durchführungen hat ein potentieller Angreifer keine zwei identischen Berechnungen (Durchführungen) mehr zur Verfügung, in denen er gezielt nach Angriffszeitpunkten suchen könnte. Von außen gesehen erscheint die Mehrfachberechnung, umfassend die mehreren Durchführungen, wie eine wirre Abfolge von Code-Blöcken. Hierdurch ist das Auffinden von guten Zeitpunkten für eine Störung der Berechnung stark erschwert oder verhindert.
  • Daher ist gemäß Anspruch 1 eine gegen Ausspähen geschützte Mehrfachberechnung einer kryptographischen Berechnung geschaffen.
  • Wahlweise bleibt die Abfolge der Blöcke innerhalb jeder einzelnen Durchführung unverändert. Hierdurch ist das Verfahren auch dann anwendbar, wenn aufeinanderfolgende Blöcke voneinander abhängig sind, so dass also ein nachfolgender Block einer einzelnen Durchführung als Eingangsdaten Ausgangsdaten zumindest eines vorangehenden Blocks benötigt. Unterschiedliche Durchführungen sind dagegen voneinander unabhängig und können daher verschachtelt durchgeführt werden, also mit Einstreuen von Blöcken einer zweiten (dritten, vierten, ...) Durchführung zwischen Blöcke einer ersten Durchführung der Berechnung.
  • Wahlweise werden zumindest eine erste Durchführung und eine zweite Durchführung der Berechnung durchgeführt. Dabei werden die Blöcke der mehreren, zumindest zwei, Durchführungen der Berechnung dahingehend in verschachtelter Reihenfolge durchgeführt, dass es zumindest einen Block der ersten Durchführung gibt, der in der Abfolge vor einem Block der zweiten Durchführung durchgeführt wird, und zumindest einen weiteren Block der ersten Durchführung gibt, der nach einem Block der zweiten Durchführung durchgeführt wird.
  • Wahlweise wird als Berechnung eine zyklische kryptographische Berechnung mit mehreren Runden durchgeführt, beispielsweise DES (Data Encryption Standard). In diesem Fall sind als Blöcke Runden vorgesehen, beim DES z. B. 16 Runden.
  • Wahlweise ist als Berechnung eine nicht-zyklische kryptographische Berechnung vorgesehen, wobei die Berechnung also aus einer Abfolge von Blöcken besteht, die sich nicht zyklisch wiederholen.
  • Wahlweise wird für jede Mehrfachberechnung eine neue verschachtelte Reihenfolge festgesetzt. Andernfalls könnte ein Angreifer aus der immer gleichen Verschachtelung Muster erkennen und für Angriffe nutzen. Wahlweise werden die Blöcke in zufallsgesteuerter Weise verschachtelt.
  • Wahlweise wird jede Durchführung von den mehreren Durchführungen der Berechnung, die zu einer einzelnen Mehrfachberechnung gehören, in einem eigenen Kontext des Prozessors durchgeführt (ausgeführt). Dabei werden die Blöcke der mehreren Durchführungen der Berechnung dadurch in verschachtelter Reihenfolge durchgeführt, dass der Prozessor (ggf. optional der allgemeine Prozessor oder der Krypto-Coprozessor) entsprechend der verschachtelten Reihenfolge zwischen den Kontexten schaltet. Soll also ein Block einer ersten Durchführung in einem ersten Kontext abgearbeitet werden, ist der erste Kontext aktiv. Soll nachfolgend ein Block zu einer zweiten Durchführung in einem zweiten, im Moment inaktiven Kontext abgearbeitet werden, schaltet der Prozessor vom ersten Kontext zum zweiten Kontext, so dass nun nicht mehr der erste sondern der zweite Kontext aktiv ist, und der Block der zweiten Durchführung wird auf dem Prozessor abgearbeitet.
  • Wahlweise ist als ein erster Kontext ein User-Modus und als ein zweiter Kontext ein System-Modus des Prozessors vorgesehen, oder umgekehrt. Wahlweise ist der Prozessor ein Prozessor, bei welchem ein solcher User-Modus und System-Modus als voneinander getrennte Kontexte vorgesehen sind, wie z. B. der ARM7-Prozessor.
  • Wahlweise werden mehr als zwei (drei, vier, fünf, sechs, ...) Durchführungen der Berechnung in mehr als zwei (drei, vier, fünf, sechs, ...) Kontexten durchgeführt und wird das Verschachteln durch (insbesondere zufallsgesteuertes) Schalten zwischen diesen mehr als zwei Kontexten bewirkt.
  • Wahlweise schaltet der Prozessor durch eine zufallsgesteuerte Zeitintervalls-Unterbrechungsroutine (Timer-Interrupt), die jedem Kontext jeweils ein Zeitintervall mit einer zufallsgesteuerten Länge an Rechenzeit auf dem Prozessor zuweist, und dann zu einem anderen Kontext schaltet, zwischen den Kontexten.
  • Wahlweise werden die Geheimdaten für in unterschiedlichen Kontexten durchzuführende Berechnungen in unterschiedlichen Registern des Prozessors bereitgehalten. Hierdurch greift der Prozessor beim Abarbeiten von Programmcode für Durchführungen in unterschiedlichen Kontexten jeweils auf unterschiedliche Register zu. Ein räumlich stets an derselben Stelle auf dem Chip des Prozessors erfolgender physikalischer Störungsangriff trifft so z. B. in einem ersten Kontext ein benutztes Register, in einem anderen zweiten Kontext aber ein nicht verwendetes Register. Somit ist der Angriff, während der Prozessor im zweiten Kontext arbeitet, wirkungslos. Hierdurch kann ein aktiv störender Angreifer kaum oder keine Rückschlüsse aus seinen Störungen auf die bei der Berechnung verwendeten Geheimdaten ziehen.
  • Wahlweise wird innerhalb der Mehrfachberechnung zumindest eine weitere Gegenmaßnahme durchgeführt aus der Gruppe von Gegenmaßnahmen umfassend: zufallsgesteuerte Zeit-Verzögerungen; wiederholtes Berechnen zumindest eines Blocks, d. h. Einstreuen von Dummy-Ausführungen einzelner Blöcke.
  • Ein erfindungsgemäßer Prozessor ist eingerichtet mit Mitteln zur Durchführung eines erfindungsgemäßen Verfahrens, insbesondere mit Mitteln, um innerhalb der Mehrfachberechnung Blöcke der mehreren, zumindest zwei, Durchführungen der Berechnung in verschachtelter Reihenfolge durchzuführen. Wahlweise sieht der Prozessor mehrere voneinander getrennte Kontexte vor, hat wahlweise Multithreadingfähigkeit, wobei unterschiedliche Kontexte unterschiedlichen Threads zugeordnet sind. Wahlweise läuft z. B. jede Durchführung der kryptographischen Berechnung als eigener Thread in einem eigenen Kontext ab.
  • Im Folgenden wird die Erfindung an Hand von Ausführungsbeispielen und unter Bezugnahme auf die Zeichnung näher erläutert, in der zeigen:
  • 1 eine Doppelberechnung des DES nach dem Stand der Technik;
  • 2 eine Doppelberechnung des DES gemäß einer Ausführungsform der Erfindung;
  • 3 eine Vierfachberechnung eines nicht-zyklischen Krypto-Algorithmus, gemäß einer Ausführungsform der Erfindung.
  • 1 zeigt in schematischer Darstellung die Runderfolge bei einer Doppelberechnung des DES (Data Encryption Standard) nach dem Stand der Technik. Der DES umfasst 16 Runden, in 1 mit Runde a, b, ..., o, p bezeichnet. Mit der Ziffer 1 ist die erste Durchführung des DES bezeichnet, mit der Ziffer. 2 ist die zweite Durchführung des DES bezeichnet. Gemäß 1 werden zuerst alle 16 Runden der ersten Durchführung des DES ausgeführt, dargestellt durch die Abfolge 1a-1b-1c-1d-1e-1f-1g-1h-1i-1j-1k-1l-1m-1n-1o-1p. Nachfolgend wird die Abfolge 2a-2b-2c-2d-2e-2f-2g-2h-2i-2j-2k-2l-2m-2n-2o-2p, also die komplette zweite Durchführung der 16 Runden des DES ausgeführt.
  • 2 zeigt in schematischer Darstellung die Rundenfolge bei einer Doppelberechnung des DES (Data Encryption Standard) gemäß einer Ausführungsform der Erfindung. Im Unterschied zur Abfolge aus 1 sind bei der Abfolge aus 2 einige Runden der zweiten Durchführung des DES zwischen die Runden der ersten Durchführung des DES gestreut. Beispielsweise werden die ersten beiden Runden 1a, 1b der ersten Durchführung des DES ausgeführt, dann aber nach der zweiten Runde 1b der ersten Durchführung die erste Runde 2a der zweiten Durchführung des DES eingestreut. Es folgen die dritte, vierte, fünfte Runde 1c, 1d, 1e der ersten Durchführung, anschließend die zweite, dritte, vierte Runde 2b, 2c, 2d der zweiten Durchführung, etc. Die Reihenfolge der Runden innerhalb einer einzelnen Durchführung ist dabei beibehalten, d. h. die Abfolge a-b-c-d-e-f... ist nicht vertauscht.
  • 3 zeigt eine Vierfachberechnung eines nicht-zyklischen Krypto-Algorithmus in einem Prozessor, gemäß einer weiteren Ausführungsform der Erfindung.
  • Der Krypto-Algorithmus wird vier Mal durchgeführt, entsprechend den vier Zeilen 1, 2, 3, 4 in 3. Der Krypto-Algorithmus umfasst sieben Blöcke a, b, c, d, e, f, g, die der Einfachheit halber als identische Kästchen dargestellt sind. Tatsächlich umfasst jeder der sieben Blöcke a, b, c, d, e, f, g nicht notwendig die gleichen, und sogar in der Regel unterschiedliche Rechenschritte.
  • Jede der vier Durchführungen 1, 2, 3, 4 wird in einem eigenen Kontext 1, 2, 3, 4 berechnet. Durch die Pfeile in 3 ist das Schalten zwischen den vier Kontexten 1, 2, 3, 4 angedeutet, wenn zwischen den vier Durchführungen des Krypto-Algorithmus geschaltet wird. Der Prozessor beginnt die Vierfachberechnung in Kontext 1 mit Block a der ersten Durchführung („Start”, Kästchen 1a). Der Prozessor schaltet von Kontext 1 zu Kontext 4 (Pfeil von Kästchen 1a zu Kästchen 4a) und rechnet Block a der vierten Durchführung. Der Prozessor schaltet von Kontext 4 zu Kontext 1 (Pfeil von Kästchen 4a zu Kästchen 1b) und rechnet Block b der ersten Durchführung. Der Prozessor schaltet von Kontext 1 zu Kontext 2 (Pfeil von Kästchen 1b zu Kästchen 2a) und rechnet Block a der zweiten Durchführung. Der Prozessor schaltet von Kontext 2 zu Kontext 4 (Pfeil von Kästchen 2a zu Kästchen 4b) und rechnet Block b der vierten Durchführung. In 3 ist der Prozessor nach einigen weiteren Kontext-Umschaltungen gerade dabei im vierten Kontext Block c der vierten Durchführung zu berechnen. So werden schließlich alle Blöcke a–g aller vier 14 Durchführungen in verschachtelter Reihenfolge berechnet,
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • EP 1569118 B1 [0008]
    • US 2009/0285398 A1 [0010]
    • DE 19822218 A1 [0011]

Claims (12)

  1. Verfahren zum gegen Ausspähen von Geheimdaten geschützten Durchführen einer eine Mehrzahl von Blöcken umfassenden kryptographischen Berechnung unter Verwendung von Geheimdaten in einem Prozessor, wobei – um ein Rechenergebnis der Berechnung zu erzielen, eine Mehrfachberechnung durchgeführt wird, bei welcher die Berechnung mehrmals, zumindest zweimal, durchgeführt wird, dadurch gekennzeichnet, dass innerhalb der Mehrfachberechnung Blöcke (1a, 1b, ..., 1o, 1p; 2a, 2b, ..., 2o, 2p; 1a...1g; 2a...2g; 3a...3g; 4a...4g) der mehreren, zumindest zwei, Durchführungen der Berechnung in verschachtelter Reihenfolge durchgeführt werden.
  2. Verfahren nach Anspruch 1, wobei – zumindest eine erste Durchführung (1) und eine zweite Durchführung (2) der Berechnung durchgeführt werden, und – die Blöcke der mehreren, zumindest zwei, Durchführungen der Berechnung dahingehend in verschachtelter Reihenfolge durchgeführt werden, dass es zumindest einen Block (1a, 1b; 1c, 1d, 1e; ...) der ersten Durchführung gibt, der vor einem Block (2a; 2b; ...) der zweiten Durchführung durchgeführt wird, und zumindest einen weiteren Block (1c, 1d; 1g; ...) der ersten Durchführung gibt, der nach einem Block (2a; 2h; ...) der zweiten Durchführung durchgeführt wird.
  3. Verfahren nach Anspruch 1 oder 2, wobei als Berechnung eine zyklische kryptographische Berechnung mit mehreren Runden (DES) und als Blöcke Runden (1a, 1b, ..., 1o, 1p; 2a, 2b, ..., 2o, 2p) vorgesehen sind,
  4. Verfahren nach einem der Ansprüche 1 bis 3, wobei als Berechnung eine nicht-zyklische kryptographische Berechnung umfassend eine Mehrzahl von Blöcken (a, b, c, ... f, g) vorgesehen ist,
  5. Verfahren nach einem der Ansprüche 1 bis 4, wobei für jede Mehrfachberechnung eine neue verschachtelte Reihenfolge festgesetzt wird.
  6. Verfahren nach einem der Ansprüche 1 bis 5, wobei die Blöcke zufallsgesteuert verschachtelt durchgeführt werden.
  7. Verfahren nach einem der Ansprüche 1 bis 6, wobei jede der mehreren Durchführungen der Berechnung, die zu einer einzelnen Mehrfachberechnung gehören, in einem eigenen Kontext des Prozessors durchgeführt wird, und wobei die Blöcke der mehreren Durchführungen der Berechnung dadurch in verschachtelter Reihenfolge durchgeführt werden, dass der Prozessor entsprechend der verschachtelten Reihenfolge zwischen den Kontexten schaltet.
  8. Verfahren nach Anspruch 7, wobei als ein erster Kontext ein User-Modus und als ein zweiter Kontext ein System-Modus des Prozessors vorgesehen ist.
  9. Verfahren nach Anspruch 7 oder 8, wobei der Prozessor durch eine zufallsgesteuerte Zeitintervalls-Unterbrechungsroutine (Timer-Interrupt), die jedem Kontext jeweils ein Zeitintervall mit einer zufallsgesteuerten Länge an Rechenzeit auf dem Prozessor zuweist, zwischen den Kontexten schaltet.
  10. Verfahren nach einem der Ansprüche 7 bis 9, wobei die Geheimdaten für Berechnungen in unterschiedlichen Kontexten in unterschiedlichen Registern des Prozessors bereitgehalten werden.
  11. Verfahren nach einem der Ansprüche 1 bis 10, wobei innerhalb der Mehrfachberechnung zumindest eine weitere Gegenmaßnahme durchgeführt wird aus der Gruppe von Gegenmaßnahmen umfassend: zufallsgesteuerte Zeit-Verzögerungen, wiederholtes Berechnen zumindest eines Blocks.
  12. Prozessor, eingerichtet mit Mitteln zur Durchführung eines Verfahrens nach einem der Ansprüche 1 bis 11, insbesondere mit Mitteln, um innerhalb der Mehrfachberechnung Blöcke der mehreren, zumindest zwei, Durchführungen der Berechnung in verschachtelter Reihenfolge durchzuführen,
DE102012003968A 2012-02-29 2012-02-29 Gegen Ausspähen geschützte Berechnung Withdrawn DE102012003968A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102012003968A DE102012003968A1 (de) 2012-02-29 2012-02-29 Gegen Ausspähen geschützte Berechnung
PCT/EP2013/000559 WO2013127519A2 (de) 2012-02-29 2013-02-26 Gegen ausspähen geschützte berechnung
US14/382,026 US20150026481A1 (en) 2012-02-29 2013-02-26 Computation Protected Against Spying

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102012003968A DE102012003968A1 (de) 2012-02-29 2012-02-29 Gegen Ausspähen geschützte Berechnung

Publications (1)

Publication Number Publication Date
DE102012003968A1 true DE102012003968A1 (de) 2013-08-29

Family

ID=47845905

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012003968A Withdrawn DE102012003968A1 (de) 2012-02-29 2012-02-29 Gegen Ausspähen geschützte Berechnung

Country Status (3)

Country Link
US (1) US20150026481A1 (de)
DE (1) DE102012003968A1 (de)
WO (1) WO2013127519A2 (de)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19822218A1 (de) 1998-05-18 1999-11-25 Giesecke & Devrient Gmbh Zugriffsgeschützter Datenträger
EP1724933A1 (de) * 2005-05-20 2006-11-22 NTT DoCoMo, Inc. Kommunikationsvorrichtung und Verfahren zur Datenverschlüsselung
EP1569118B1 (de) 2004-02-24 2008-10-22 Giesecke & Devrient GmbH Verfahren zum sicheren Berechnen eines Ergebniswerts bei einem Mikroprozessorsystem
US20090285398A1 (en) 2008-05-16 2009-11-19 Stmicroelectronics (Rousset) Sas Verification of the integrity of a ciphering key

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100672097B1 (ko) * 1998-07-31 2007-01-19 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 데이터 처리 장치 및 데이터 처리 장치용 회로
JP4549303B2 (ja) * 2005-02-07 2010-09-22 株式会社ソニー・コンピュータエンタテインメント パイプラインを用いてメッセージ認証コードを提供する方法および装置
FR2907622A1 (fr) * 2006-10-19 2008-04-25 St Microelectronics Sa Procede de transmission de donnees utilisant un code d'accuse de reception comportant des bits d'authentification caches
ITMI20082364A1 (it) * 2008-12-31 2010-07-01 Incard Sa Metodo per proteggere un dispositivo crittografico contro attacchi spa, dpa e temporali
US20110107338A1 (en) * 2009-11-03 2011-05-05 Tatu Ylonen Oy Ltd Selecting isolation level for an operation based on manipulated objects

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19822218A1 (de) 1998-05-18 1999-11-25 Giesecke & Devrient Gmbh Zugriffsgeschützter Datenträger
EP1569118B1 (de) 2004-02-24 2008-10-22 Giesecke & Devrient GmbH Verfahren zum sicheren Berechnen eines Ergebniswerts bei einem Mikroprozessorsystem
EP1724933A1 (de) * 2005-05-20 2006-11-22 NTT DoCoMo, Inc. Kommunikationsvorrichtung und Verfahren zur Datenverschlüsselung
US20090285398A1 (en) 2008-05-16 2009-11-19 Stmicroelectronics (Rousset) Sas Verification of the integrity of a ciphering key

Also Published As

Publication number Publication date
WO2013127519A3 (de) 2014-01-23
WO2013127519A2 (de) 2013-09-06
US20150026481A1 (en) 2015-01-22

Similar Documents

Publication Publication Date Title
EP2901611B1 (de) Seitenkanalgeschützte maskierung
EP3218894A1 (de) Verfahren zum testen und zum härten von softwareapplikationen
EP2605445B1 (de) Verfahren und Vorrichtung zur Absicherung von Blockchiffren gegen Template-Attacken
DE10319435A1 (de) Verfahren zur Verarbeitung von Daten
EP2742643A1 (de) Vorrichtung und verfahren zum entschlüsseln von daten
EP3593483A1 (de) Übergang von einer booleschen maskierung zu einer arithmetischen maskierung
DE10341096A1 (de) Übergang zwischen maskierten Repräsentationen eines Wertes bei kryptographischen Berechnungen
WO2001048706A1 (de) Tragbarer datenträger mit zugriffsschutz durch nachrichtenverfremdung
DE102015015953B3 (de) Kryptoalgorithmus mit schlüsselabhängigem maskiertem Rechenschritt (SBOX-Aufruf)
EP1468518B1 (de) Vorrichtung und verfahren zum erzeugen eines befehlscodes für ein kryptogramm
EP3369205B1 (de) Alternative darstellung des krypto-algorithmus des
DE102012003968A1 (de) Gegen Ausspähen geschützte Berechnung
WO2014063875A1 (de) Vorrichtung und verfahren zur ausführung eines kryptographischen verfahrens
EP1506473B1 (de) Ausspähungsgeschützte modulare inversion
EP3251281B1 (de) Intrinsische authentifizierung von programcode
DE102018006313A1 (de) Verfahren mit Safe-Error-Abwehrmaßnahme
DE19921633A1 (de) Verfahren zur Implementierung kryptographischer Algorithmen
EP2466782B1 (de) Verfahren zum geschützten Ausführen einer kryptographischen Berechnung
DE10258323A1 (de) Verschlüsselungsverfahren
DE60035349T2 (de) Verfahren zum schutz einer tragbaren karte
EP3504616B1 (de) Modul und verfahren zur abgesicherten berechnung von mathematischen operationen
DE19960047B4 (de) Verfahren und Einheit zur sicheren Informationsbehandlung in einem kryptographischen Informationsverarbeitungssystem
EP1760929B1 (de) Geschütztes kryptographisches Verfahren
DE102004023902A1 (de) Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung
EP3742319A1 (de) Seitenkanalsichere implementierung

Legal Events

Date Code Title Description
R163 Identified publications notified
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee