DE60034944T2 - Gegenmassnahmeverfahren in einer geheimen und dynamischen Verschlüsselungsalgorithmus ausführenden elektronischen Schaltung - Google Patents

Gegenmassnahmeverfahren in einer geheimen und dynamischen Verschlüsselungsalgorithmus ausführenden elektronischen Schaltung Download PDF

Info

Publication number
DE60034944T2
DE60034944T2 DE60034944T DE60034944T DE60034944T2 DE 60034944 T2 DE60034944 T2 DE 60034944T2 DE 60034944 T DE60034944 T DE 60034944T DE 60034944 T DE60034944 T DE 60034944T DE 60034944 T2 DE60034944 T2 DE 60034944T2
Authority
DE
Germany
Prior art keywords
key
value
data
electronic component
algorithm
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.)
Expired - Lifetime
Application number
DE60034944T
Other languages
English (en)
Other versions
DE60034944D1 (de
Inventor
David Naccache
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.)
Gemplus SA
Original Assignee
Gemplus Card International SA
Gemplus SA
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 Gemplus Card International SA, Gemplus SA filed Critical Gemplus Card International SA
Application granted granted Critical
Publication of DE60034944D1 publication Critical patent/DE60034944D1/de
Publication of DE60034944T2 publication Critical patent/DE60034944T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

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
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • 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
    • 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/77Protecting 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 smart cards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/409Device specific authentication in transaction processing
    • G06Q20/4097Device specific authentication in transaction processing using mutual authentication between devices and transaction partners
    • G06Q20/40975Device specific authentication in transaction processing using mutual authentication between devices and transaction partners using encryption therefor
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Accounting & Taxation (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Finance (AREA)
  • Storage Device Security (AREA)

Description

  • Diese Erfindung betrifft ein Verfahren der Gegenmaßnahme in einem elektronischen Bauelement unter Einsatz eines Geheimschrift-Algorithmus mit Geheimschlüssel. Solche Bauelemente werden in Anwendungen benutzt, bei denen der Zutritt zu Diensten oder Daten streng kontrolliert wird. Sie sind um einen Mikroprozessor und Speicher herum aufgebaut, darunter ein Programmspeicher, der den Geheimschlüssel enthält.
  • Diese Bauelemente werden insbesondere in Chipkarten für manche deren Anwendungen eingesetzt. Dies sind zum Beispiel Anwendungen für den Zugriff auf gewisse Datenbanken, Bankanwendungen, Pay-TV Anwendungen, zum Beispiel für das Fernsehen, den Benzinverkauf oder auch die Durchfahrt an Mautstellen auf der Autobahn.
  • Diese Bauelemente oder diese Karten setzen also einen Geheimschrift-Algorithmus mit Geheimschlüssel ein, unter denen der bekannteste der DES Algorithmus ist (für Data Encryption Standard in der angelsächsischen Literatur). Es gibt noch andere Algorithmen mit Geheimschlüssel, wie der RC5 Algorithmus oder auch der COMP128 Algorithmus. Natürlich ist diese Liste nicht erschöpfend.
  • Allgemein und kurz ausgedrückt haben diese Algorithmen die Funktion, eine verschlüsselte Nachricht ausgehend von einer durch ein Host-System (Server, Geldautomat ...) am Eingang (der Karte) anliegenden Nachricht und dem in der Karte enthaltenen Geheimschlüssel zu berechnen und diese verschlüsselte Nachricht zurück an das Host-System zu geben, was zum Beispiel dem Host-System ermöglicht, das Bauelement oder die Karte zu erkennen, Daten auszutauschen ...
  • Nun hat es sich gezeigt, daß diese Bauelemente oder die Karten für Angriffe anfällig sind, die aus einer Differentialanalyse des Stromverbrauchs bestehen, und die Drittpersonen mit schlechten Absichten ermöglichen, den Geheimschlüssel zu finden. Diese Angriffe werden DPA Angriffe genannt, angelsächsisches Acronym für Differential Power Analysis.
  • Das Prinzip dieser DPA Angriffe beruht auf der Gegebenheit, daß der Stromverbrauch des die Anweisungen ausführenden Mikroprozessors je nach den bearbeiteten Daten variiert.
  • Insbesondere generiert eine Anweisung des Mikroprozessors, der mit einem Datenbit umgeht, zwei verschiedene Stromprofile je nachdem, ob dieses Bit „1" oder „0" wert ist. Wenn die Anweisung ein „0" betrifft, hat man typischerweise in diesem Moment eine erste Amplitude des verbrauchten Stroms, und wenn die Anweisung ein „1" betrifft, hat man eine zweite Amplitude des verbrauchten Stroms, die sich von der ersten unterscheidet.
  • Die Merkmale dieser Geheimschrift-Algorithmen, sind bekannt: durchgeführte Berechnungen, benutzte Parameter. Die einzige Unbekannte ist der im Programmspeicher vorhandene Geheimschlüssel. Dieser kann nicht allein aus der Kenntnis der am Eingang anliegenden Nachricht und der zurückgelieferten verschlüsselten Nachricht abgeleitet werden.
  • Jedoch hängen in einem Geheimschrift-Algorithmus gewisse berechnete Daten allein von der in Klarschrift am Eingang der Karte und dem in der Karte enthaltenen Geheimschlüssel anliegenden Nachricht ab. Auch andere im Algorithmus berechnete Daten können nur ab der verschlüsselten Nachricht (wird im allgemeinen in Klarschrift am Ausgang der Karte an das Host-System geliefert) und dem in der Karte vorhandenen Geheimschlüssel neu berechnet werden. Genauer gesagt: Jedes Bit dieser besonderen Daten kann ausgehend von der Eingangs- oder Ausgangsnachricht und einer begrenzten Anzahl besonderer Bits des Schlüssels bestimmt werden.
  • Somit entspricht jedem Bit von besonderen Daten ein Unterschlüssel, der von einer besonderen Gruppe Bits des Schlüssels gebildet wird.
  • Die Bits dieser besonderen Daten, die vorhergesagt werden können, werden nachstehend Zielbits genannt.
  • Die Grundidee des DPA Angriffs ist somit diejenige, die Differenz des Stromverbrauchsprofils einer Anweisung zu benutzen, die je nachdem entsteht, ob sie mit einem „1" oder einer „0" umgeht, und die Möglichkeit, ein Zielbit durch die Anweisungen des Algorithmus ab einer bekannten Eingangs- oder Ausgangsnachricht und einer Hypothese über den entsprechenden Unterschlüssel zu berechnen.
  • Das Prinzip des DPA Angriffs besteht also darin, eine gegebene Hypothese eines Unterschlüssels zu testen, indem auf eine große Anzahl Strommeßkurven, von denen jede sich auf eine dem Angreifer bekannte Eingangsnachricht bezieht, eine boolesche Auswahlfunktion angewandt wird, die von der Hypothese des Unterschlüssels abhängt und für jede Kurve durch den für ein Zielbit vorhergesagten Wert definiert ist.
  • Wenn man eine Hypothese über den betroffenen Unterschlüssel aufstellt, ist man in der Tat in der Lage, den Wert „0" oder „1" vorherzusagen, den dieses Zielbit für eine gegebene Eingangs- oder Ausgangsnachricht annehmen wird.
  • Man kann dann also als boolesche Auswahlfunktion den vom Zielbit für die betrachtete Hypothese des Unterschlüssels vorhergesagten Wert „0" oder „1" anwenden, um diese Kurven in zwei Pakete aufzuteilen: Ein erstes Paket faßt die Kurven zusammen, bei denen die Bearbeitung des Zielbits mit „0" stattfand, und ein zweites Paket faßt die Kurven zusammen, bei denen die Bearbeitung des Zielbits mit „1" je nach der Hypothese des Unterschlüssels stattfand. Wenn man den Durchschnitt des Stromverbrauchs in jedem Paket errechnet, erhält man eine Kurve des Durchschnittsverbrauchs M0(t) für das erste Paket und eine Kurve des Durchschnittsverbrauchs M1(t) für das zweite Paket.
  • Wenn die Hypothese für den Unterschlüssel richtig ist, faßt das erste Paket wirklich alle Kurven unter den N Kurven zusammen, bei denen das Zielbit bei „0" bearbeitet wurde, und das zweite Paket faßt wirklich alle Kurven unter den N Kurven zusammen, bei denen das Zielbit bei „1" bearbeitet wurde. Die Kurve des Durchnittsverbrauchs M0(t) des ersten Pakets hat dann überall einen Durchschnittsverbrauch, außer in den Momenten der Ausführung der kritischen Anweisungen, mit einem für die Bearbeitung des Zielbits bei „0" (Profil0) charakteristischen Stromverbrauchsprofil. Anders ausgedrückt, bei allen Kurven konnten alle bearbeiteten Bits gleichermaßen den Wert „0" oder „1" haben, mit Ausnahme des Zielbits, das immer den Wert „0" gehabt hat. Was wie folgt geschrieben werden kann: M0(t) = [(Profil0 + Profil1)/2]t1tci[(Profil0]tci,also M0(t) = [Vmt]t1tci + [Profil0]tci
  • Wobei tci die kritischen Momente darstellt, in denen eine kritische Anweisung ausgeführt worden ist.
  • Desgleichen entspricht die Kurve des Durchschnittsverbrauchs M1(t) des zweiten Pakets einem Durchschnittsverbrauch überall, außer in den Momenten der Ausführung der kritischen Anweisungen, mit einem Stromverbrauchsprofil, das für die Bearbeitung des Zielbits bei „1" (Profil1) charakteristisch ist. Man kann schreiben: M1(t) = [(Profil0 + Profil1)/2]t1tci[(Profil1]tci,also M1(t) = [Vmt]t1tci + [Profil1]tci
  • Man hat gesehen, daß die beiden Profile, Profil0 und Profil1, nicht gleich sind. Die Differenz zwischen den Kurven M0(t) und M1(t) gibt dann ein Signal DPA(t), dessen Amplitude gleich Profil0 + Profil1 in den kritischen Momenten ist, in denen dieses Bit bearbeitet wird, das heißt im auf der 1 dargestellten Beispiel an den Stellen tc0 bis tc6, und deren Amplitude außerhalb der kritischen Momente in etwa gleich Null ist.
  • Wenn die Hypothese zum Unterschlüssel falsch ist, entspricht das Sortieren nicht der Realität. Statistisch gesehen gibt es dann in jedem Paket ebensoviel Kurven, bei denen das Zielbit bei „0" bearbeitet wurde, wie Kurven, bei denen das Zielbit bei „1" bearbeitet wurde. Die resultierende Durchschnittskurve M0(t) liegt dann um einen Durchschnittswert, der gegeben wird durch (Profil0 + Profil1)/2 = Vm, denn bei jeder Kurve können alle bearbeiteten Bits einschließlich des Zielbits die gleichen Chancen haben, „0" oder „1" wert zu sein.
  • Die gleiche Überlegung zum zweiten Paket führt zu einer Kurve des Durchschnittsstromverbrauchs M1(t), dessen Amplitude um einen Durchschnittswert liegt, der von (Profil0 + Profil1)/2 = Vm gegeben wird.
  • In diesem Fall ist das von der Differenz M0(t) – M1(t) gelieferte DPA(t) Signal spürbar gleich Null. Das DPA(t) Signal im Fall einer falschen Hypothese zum Unterschlüssel wird auf 2 dargestellt.
  • Somit nutzt der DPA Angriff die Differenz des Stromverbrauchsprofils während der Ausführung einer Anweisung je nach Wert des bearbeiteten Bits, um eine Sortierung der Stromverbrauchskurven gemäß einer booleschen Auswahlfunktion für eine gegebene Hypothese zum Unterschlüssel durchzuführen. Bei der Durchführung einer Differenzanalyse des Durchschnittsstromverbrauchs zwischen den beiden erzielten Kurvenpaketen erhält man ein DPA(t) Informationssignal.
  • Der Ablauf eines DPA Angriffs besteht also umfassend darin:
    • A – N beliebige Nachrichten zu sortieren (zum Beispiel N ist gleich 1.000);
    • B – Den Algorithmus von der Karte für alle diese beliebigen Nachrichten ausführen zu lassen, indem jedesmal dabei die Stromverbrauchskurve erhoben wird (wird an der Speiseklemme des Bauelements gemessen);
    • C – Eine Hypothese zu einem Unterschlüssel aufzustellen;
    • D – Für jede beliebige Nachricht den Wert vorauszusagen, den eines der Zielbits angenommen hat, dessen Wert nur von den Bits der (Eingangs- oder Ausgangs-)Nachricht und dem für die Hypothese genommenen Unterschlüssel abhängt, um die boolesche Auswahlfunktion zu erzielen;
    • E – Die Kurven nach dieser booleschen Auswahlfunktion zu sortieren (das heißt nach dem Wert „0" oder „1", der für dieses Zielbit für jede Kurve unter der Hypothese eines Unterschlüssels vorhergesagt wurde);
    • F – In jedem Paket die resultierende Kurve des durchschnittlichen Stromverbrauchs zu berechnen;
    • G – Die Differenz dieser Durchschnittskurven zu ziehen, um das DPA(t) Signal zu bekommen.
  • Wenn die Hypothese zum Unterschlüssel richtig ist, ist die boolesche Auswahlfunktion richtig, und die Kurven des ersten Pakets entsprechen wirklich den Kurven, für die die am Eingang oder am Ausgang anliegende Nachricht ein Zielbit „0" in der Karte ergeben hat, und die Kurven des zweiten Pakets entsprechen wirklich den Kurven, für die die am Eingang oder am Ausgang anliegende Nachricht ein Zielbit „1" in der Karte ergeben hat.
  • Dies ist der Fall der 1: Das DPA(t) Signal ist also in den Momenten tc0 bis tc6 nicht null, die der Ausführung der kritischen Anweisungen entsprechen (diejenigen, die das Zielbit bearbeiten). Im Erfassungszeitraum braucht es nur mindestens einen kritischen Moment zu geben.
  • Es wird darauf hingewiesen, daß der Angreifer die kritischen Momente nicht genau kennen muß.
  • Wenn die Hypothese zum Unterschlüssel nicht richtig ist, entspricht das Sortieren nicht der Realität, und man hat dann in jedem Paket genauso viele Kurven, die in Wirklichkeit einem Zielbit mit „0" entsprechen, wie Kurven, die einem Zielbit mit „1" entsprechen. Das DPA(t) Signal ist überall spürbar null (in 2 dargestellter Fall). Man muß zum Schritt C-zurückkehren und eine neue Hypothese zum Unterschlüssel aufstellen.
  • Wenn sich die Hypothese als richtig erweist, kann man zur Bewertung anderer Unterschlüssel übergehen, bis man den Schlüssel maximal wiederhergestellt hat. Zum Beispiel benutzt man mit einem DES Algorithmus einen Schlüssel mit 64 Bits, von denen nur 56 Bits nützlich sind. Mit einem DPA Angriff kann man mindestens 48 Bits dieser 56 nützlichen Bits wiederherstellen.
  • Diese Erfindung bezweckt, in einem elektronischen Bauelement ein Verfahren der Gegenmaßnahme einzusetzen, die nicht zuläßt, daß der Angreifer das DPA(t) Signal generiert. Dies wird erreicht, indem man den Schlüssel dynamisch variieren läßt.
  • Diese Erfindung setzt die Teilung eines gemeinsamen Geheimnisses zwischen zwei elektronischen Bauelementen voraus, die miteinander kommunizieren. Diese Bauelemente werden dann auf den 7 und 8 durch die Referenzen C (eine Karte) und T (ein Terminal) bezeichnet, sie können aber diverse andere für den Mann der Technik klare Formen annehmen. Von diesen zwei Bauelementen wird angenommen, daß C potentiell der DPA ausgesetzt ist. Mit der erfindungsgemäßen Gegenmaßnahme wird das elektronische Bauelement C vor den DPA Angriffen geschützt.
  • Insbesondere aus dem Dokument WO-A-97 32 264 ist ein Verfahren bekannt, in dem der laufende Wert des Schlüssels in einem elektronischen Bauelement dynamisch variiert. Diese Art Verfahren setzt voraus, daß die beiden elektronischen Bauelemente, die den Geheimschlüssel teilen, synchron identische Berechnungsvorgänge ausführen. Eine solche Lösung ist für dezentralisierte Architekturen ungeeignet, in denen zum Beispiel mehrere Chipkarten mit mehreren Terminals zusammenarbeiten. Die Terminals und Karten können definitionsgemäß in solchen Systemen nicht synchronisiert bleiben. Außerdem ist die Sicherheit des mit solchen Verfahren benutzten Schlüssels nicht optimal. Die Terminals legen in einem neuprogrammierbaren Speicher den Wert der Anzahl Anfragen nach Authentifizierung sowie den Wert vor dem Schlüssel ab. Die Benutzung von neuprogrammierbaren Speichern ist kostspielig und ermöglicht die Änderung des Inhalts durch böse Absicht. Somit könnte die Benutzung von gefälschten Karten von einem Terminal zugelassen werden, dessen Speicher verändert worden ist. Die Erfindung ermöglicht, die vorgenannten Nachteile zu beheben.
  • Erfindungsgemäß ermöglicht das Verfahren der Gegenmaßnahme T und C, synchronisiert einen der Außenwelt unbekannten Sitzungsschlüssel zu berechnen und diesen Schlüssel in einem Geheimschrift-Protokoll zum Verschlüsseln, der Authentifizierung, MAC oder jeder anderen Geheimschrift-Funktion zu benutzen, die einen Algorithmus mit Geheimschlüssel benötigt.
  • Zur Minimierung der Aussetzung der von C und T geteilten Geheimdaten werden diese Geheimdaten nur indirekt ausgesetzt und entwickeln sich mit der Zeit, wobei der bei der Sitzung i benutzte Schlüssel vom Schlüssel der vorhergehenden Sitzung abhängt (bei der Sitzung i-1 benutzt).
  • Jeder Sitzungsschlüssel mit der Notierung K[i] wird höchstens zweimal bearbeitet:
    • – bei seinem Anlegen ab dem Schlüssel ki-1,
    • – bei seiner Benutzung in der Anwendung.
  • In der Erfindung interessiert man sich für einen Algorithmus von der DES Art. Dieser DS Algorithmus umfaßt sechzehn identische Berechnungszyklen; In diesem Algorithmus ist deutlich herausgestellt worden, daß sich die von einem Angreifer voraussagbaren Daten im ersten und im letzten Zyklus befinden, und daß sich die kritischen Anweisungen im Sinne des DPA Angriffs in den drei ersten und den drei letzten Zyklen befinden.
  • Es ist also ein Ziel der Erfindung, die von den kritischen Anweisungen bearbeiteten Daten unsichtbar zu machen, indem darauf geachtet wird, daß diese Daten von einer Anwendung des Algorithmus bis zur nächsten geändert werden.
  • Wie gekennzeichnet, betrifft die Erfindung also ein Verfahren der Gegenmaßnahme in einem elektronischen Bauelement C mit Einsatz eines Geheimschrift-Algorithmus A mit Geheimschlüssel k[0] der Größe k für die Berechnung einer geheimschriftlichen Nachricht ab einer Eingangsnachricht. Erfindungsgemäß bildet man einen Sitzungsschlüssel k[i] ab dem Schlüssel der vorhergehenden Sitzung k[i-1] und liefert gleichzeitig auf unvertrauliche Weise den Index i an das Terminal T. Wenn es k[0] und i besitzt, kann das Terminal T k[i] berechnen, ohne alle dazwischenliegenden Schlüssel k[1], k[2], ..., k[i-1] berechnen zu müssen.
  • Der Einsatz des Verfahrens der Gegenmaßnahme ist gekennzeichnet durch eine Fortentwicklung von K[i] zwischen den aufeinander folgenden Benutzungen von A, wobei i die Anzahl der Ausführungen des Algorithmus A ist, dies nach folgender Regel: K[i] = f(K[i-1]),wobei f eine Funktion ist, die am Eingang einen Schlüssel nimmt und am Ausgang einen Schlüssel zurückschickt.
  • In einem Ausführungsmodus bildet man den Schlüssel k[i], indem man den Schlüssel k[i-1] ins Quadrat setzt modulo einer Primzahl, die als Größe diejenige des Schlüssels hat.
  • Die Funktion f(x), wobei x eine Variable ist, ist so daß: f(x) = x^2 mod z,in der z eine Konstante ist, wie die Berechnungsabkürzung, die von T benutzt wird, durch K[i] = K[0]^(2^i)mod z formuliert wird, in der die Menge 2^i modulo phi(z) berechnet wird. Es wird festgehalten, daß eine andere ganze Potenz (Zahl e) als zwei im erfindungsgemäßen Verfahren benutzt werden kann, es ist zum Beispiel auch möglich, folgendes zu definieren: f(x) = x^3 mod z
  • Wobei dann die entsprechende Berechnungsabkürzung K[i] = K[0]^(3^i)mod z ist. Wo die Menge 3^i modulo phi(z) berechnet wird.
  • In einem anderen Ausführungsmodus bildet man den Schlüssel k[i] durch Multiplikation des Schlüssels k[i-1] mit einer Konstanten c Modulo, wobei eine erste Zahl als Größe diejenige des Schlüssels hat.
  • Die Funktion f(x), wobei x eine Variable ist, ist so, daß: f(x) = x·c mod z,in der z und c Konstanten sind, wie die Berechnungsabkürzung, die von T benutzt wird, K[i] = K[0]·c^i)mod z ist.
  • Vorzugsweise ist z die größte Primzahl unter 2^k.
  • Nach einem anderen Betriebsmodus der Erfindung betrifft letztere auch ein Verfahren der Gegenmaßnahme in einem ersten elektronischen Bauelement (C), das mit einem zweiten elektronischen Bauelement (T) kommuniziert und einen Geheimschrift-Algorithmus B einsetzt, der das oben beschriebene Verfahren benutzt, wo der Geheimschlüssel aus einer Reihe Bytes besteht, auf die man das erfindungsgemäße Verfahren vermittels einer kleinen Primzahl anwendet, wobei der Schlüssel K[i-1] aus einer Reihe von L Bytes besteht, wobei der Einsatz des Verfahrens der Gegenmaßnahme von K[i-1] zwischen den aufeinanderfolgenden Benutzungen von B[i- 1] die Anzahl Ausführungen des Algorithmus B ab der nachstehenden Regel ist: K[i-1] = {B[1, i-1], ..., B[L, i-1]),wobei die besagte Regel in K[i] umgewandelt wird, indem sie die Umwandlung für t von 1 bis L durchläuft:
    B[t, i] = B[t, i-1]^2mod U, wobei U eine Primzahl mit einem Byte ist, zum Beispiel 251,
    Wobei der Schlüssel K[i] berechnet wird unter Benutzung der Berechnungsabkürzung von t, die von 1 bis L geht;
    B[t, i] = B[t, i-1]^(2^i) mod U, wobei in dieser Formel die Menge 2^i modulo phi(U) berechnet wird.
  • Vorzugsweise betrifft dieser letzte Betriebsmodus ein Verfahren der Gegenmaßnahme, bei dem der Schlüssel K[i-1] aus einer Reihe Bytes besteht, auf die man das erfindungsgemäße Verfahren vermittels einer ersten Primzahl anwendet, dadurch gekennzeichnet, daß der Schlüssel K[i-1] aus einer Reihe von L Bytes gebildet wird: K[i-1] = {B[1, i-1], ..., B[L, i-1]},
  • Und wird dann in K[i] umgewandelt, indem er die Umwandlung für t von 1 bis L durchläuft:
    B[t, i] = B[t, i-1]·c[t] mod U, wobei U eine Primzahl eines Bytes ist, zum Beispiel 251,
    wobei der Schlüssel K[i] dann berechnet wird unter Benutzung der Berechnungsabkürzung von t, die von 1 bis L geht: B[t, i] = B[t, i-1]·c[t]^i mod U.
  • Noch mehr vorzugsweise für diesen besonderen Betriebsmodus, bei dem das Terminal und die Karte die Berechnung des Sitzungsschlüssels K[i] auf mehr als die Anzahl Bytes durchführen, die für den Geheimschrift-Algorithmus notwendig sind, in dem dieser Schlüssel dienen müßte, und sie den resultierenden Schlüssel dann zerhacken, um die Anzahl Bytes zu erhalten, die für den Geheimschrift-Algorithmus mit Geheimschlüssel notwendig sind. Dies, um den Entropieverlust auszugleichen, der aus dem Gebrauch vom U Modulen kleiner als die Zahl 256 resultiert.
  • Vorzugsweise besteht die Zahl U aus einem, zwei, drei, vier, fünf oder sechs Bytes.
  • Natürlich betrifft die Erfindung auch eine Chipkarte und ein elektronisches Terminal für diesen letzten besonderen Betriebsmodus.
  • Weitere Merkmale und Vorteile der Erfindung sind in nachfolgender Beschreibung detailliert angeführt, die als Anhaltswert hat und keineswegs begrenzend gegeben wird und in Bezug auf die im Anhang beigefügten Zeichnungen, in denen:
  • die schon beschriebenen 1 und 2 das DPA(t) Signal darstellen, das man je nach einer Hypothese zu einem Unterschlüssel des Geheimschlüssels K gemäß eines DPA Angriffs bekommen kann;
  • die 3 und 4 Ablaufdiagramme sind, die die ersten und die letzten Zyklen des DES Algorithmus darstellen;
  • die 5 ein Blockschema der SBOX Operation ist, die im DES Algorithmus benutzt wird;
  • die 6 ein Beispiel einer Tabelle der grundlegenden Konstanten an einem Eingang und einen bei der SBOX Operation benutzten Ausgang zeigt;
  • die 7 ein erstes Beispiel eines Ablaufdiagramms der Ausführung des DES mit einem Verfahren der Gegenmaßnahme gemäß Erfindung zeigt;
  • die 8 ein zweites Beispiel eines Ablaufdiagramms der Ausführung des DES mit einem Verfahren der Gegenmaßnahme gemäß Erfindung zeigt;
  • Die Gegenmaßnahme dieser Erfindung ist dem DES nicht spezifisch, wenn auch die nachstehende Beschreibung gewählt worden ist, und sie kann auch bei anderen Algorithmen mit Geheimschlüssel angewendet werden, (wie DES, IDEA, AES, FEAL, Dreifach DES, BlowFish, SAFER, SHA-MAC; RIPEMD, DFC, RC5, RC6 oder SEAL); Weiter unten in unserer Darstellung wird also der allgemeine Fall eines Algorithmus A(M, K) betrachtet, (ursprünglich anfällig bei DPA), wo K ein Schlüssel der Größe k ist, M die Nachricht.
  • Der Geheimschrift-Algorithmus mit Geheimschlüssel DES (im weiteren wird für den Algorithmus DES nur einfach DES gesagt), umfaßt 16 Berechnungszyklen, mit T1 bis T16 notiert, wie auf den 3 und 4 dargestellt.
  • Der DES beginnt mit einer ursprünglichen Vertauschung IP auf der Eingangsnachricht M (3). Die Eingangsnachricht M ist ein Wort f mit 64 Bits. Nach der Vertauschung erhält man ein Wort e mit 64 Bits, das man zweiteilt, um die Eingangsparameter L0 und R0 des ersten Zyklus (T1) zu bilden. L0 ist ein Wort d mit 32 Bits, das die 32 höherwertigen Bits des Wortes e enthält. R0 ist ein Wort h mit 32 Bits, das die 32 niederwertigen Bits des Wortes e enthält.
  • Der Geheimschlüssel K, der ein Wort q mit 64 Bits ist, erleidet selbst eine Vertauschung und eine Verdichtung, um ein Wort r mit 56 Bits zu liefern.
  • Der erste Zyklus umfaßt eine Operation EXP PERM auf dem Parameter R0, was aus einer Erweiterung und einer Vertauschung besteht, um am Ausgang ein Wort 1 mit 48 Bits zu liefern.
  • Dieses Wort l wird bei einer Operation von der Art OU EXCLUSIF, mit XOR notiert, mit einem Parameter K1 kombiniert, um ein Wort b mit 48 Bits zu liefern. Der Parameter K1, der ein Wort m mit 48 Bits ist, wird vom Wort r durch eine Verschiebung um eine Position erhalten (auf den 3 und 4 mit SHIFT notierte Operation), mit anschließender Vertauschung und Verdichtung (mit COMP PERM notierte Operation).
  • Das Wort b wird auf eine mit SBOX notierte Operation angewendet, an deren Ausgang man ein Wort a mit 32 Bits erhält. Diese besondere Operation wird im Zusammenhang mit den 5 und 6 ausführlicher erklärt werden.
  • Das Wort a erleidet eine Vertauschung P PERM und gibt am Ausgang das Wort c mit 32 Bits.
  • Dieses Wort c wird mit dem Eingangsparameter L0 des ersten Zyklus T1 kombiniert, und zwar in einer logischen Operation der Art OU EXCLUSIF, mit XOR notiert, die am Ausgang das Wort g mit 32 Bits liefert.
  • Das Wort h (= R0) des ersten Zyklus liefert den Eingangsparameter L1 des folgenden Zyklus (T2), und das Wort g des ersten Zyklus liefert den Eingangsparameter R1 des nächsten Zyklus. Das Wort p des ersten Zyklus liefert den Eingang r des nächsten Zyklus.
  • Die anderen Zyklen T2 bis T16 laufen ebenso ab, mit Ausnahme hinsichtlich der Operation der SHIFT Verschiebung, die je nach betrachtetem Zyklus auf einer oder zwei Positionen erfolgt.
  • Jeder Zyklus Ti erhält somit am Eingang die Parameter Li-1, Ri-1 und r und liefert am Ausgang die Parameter Li und Ri und r für den nächsten Zyklus Ti+1.
  • Am Ende des Algorithmus DES (4) wird die verschlüsselte Nachricht ausgehend von den Parametern L16 und R16 berechnet, die vom letzten Zyklus T16 geliefert werden.
  • Diese Berechnung der verschlüsselten Nachricht C umfaßt in der Praxis die folgenden Operationen:
    • – Bildung eines Wortes e' mit 64 Bits durch Umkehr der Position der Worte L16 und R16 mit anschließender Verkettung;
    • – Anwendung der Vertauschung IP-1 umgekehrt von derjenigen am Anfang des DES, um das Wort f' mit 64 Bits zu erhalten, das die verschlüsselte Nachricht C bildet.
  • Der SBOX Vorgang wird auf den 5 und 6 ausführlich dargestellt. Er umfaßt eine Tabelle mit Konstanten TC0, um Ausgangsdaten a in Abhängigkeit von Eingangsdaten b zu liefern.
  • Diese Tabelle mit Konstanten TC0 stellt sich in der Praxis in Form von acht Tabellen mit grundlegenden Konstanten TC01 bis TC08 dar, wobei jede am Eingang nur 6 Bits vom Wort b erhält, um am Ausgang nur 4 Bits des Wortes a zu liefern.
  • Somit erhält die auf 6 dargestellte Tabelle mit grundlegenden Konstanten TC01 als Eingangsdaten die Bits b1 bis b6 des Wortes b und liefert als Ausgangsdaten die Bits a1 bis a4 des Wortes a.
  • In der Praxis werden diese acht Tabellen mit grundlegenden Konstanten TC01 bis TC08 im Programmspeicher des elektronischen Bauelements abgelegt.
  • Bei der Operation SBOX des ersten Zyklus T1 hängt ein bestimmtes Bit der Daten a am Ausgang der Tabelle mit Konstanten TC0 von nur 6 Bits der am Eingang anliegenden Daten b ab, das heißt von nur 6 Bits des Geheimschlüssels K und der Eingangsnachricht (M).
  • Bei der Operation SBOX des letzten Zyklus T16 kann ein bestimmtes Bit der Daten a am Ausgang der Tabelle mit Konstanten TC0 ausgehend von nur 6 Bits des Geheimschlüssels K und der verschlüsselten Nachricht (C) neu berechnet werden.
  • Wenn man nun wieder das Prinzip des DPA Angriffs aufgreift, wenn man ein Bit der Ausgangsdaten a als Zielbit wählt, braucht nur eine Hypothese über 6 Bits des Schlüssels K aufgestellt zu werden, um den Wert eines Zielbits für eine gegebene Eingangsnachricht (M) oder eine Ausgangsnachricht (C) vorherzusagen. Anders ausgedrückt, für DES braucht nur eine Hypothese auf einem Unterschlüssel mit 6 Bits aufgestellt zu werden.
  • Bei einem DPA Angriff auf einen solchen Algorithmus für ein gegebenes Zielbit muß man also eine richtige Hypothese für Unterschlüssel unter 64 möglichen unterscheiden.
  • Wenn man somit nur acht Bits des Wortes a als Zielbits nimmt (ein Ausgangsbit Tabelle mit grundlegenden Konstanten Tool bis TC08), kann man bis zu 6 × 8 = 48 Bits des Geheimschlüssels entdecken, wenn man DPA Angriffe auf jedes dieser Zielbits durchführt.
  • Im DES findet man also kritische Anweisungen im Sinne der DPA Angriffe am Anfang des Algorithmus und am Schluß.
  • Zu Begin des Algorithmus DES sind die Daten, die ab einer Eingangsnachricht M und einer Hypothese zum Unterschlüssel vorhergesagt werden können, die im ersten Zyklus (T1) berechneten a und g Daten.
  • Die a Daten des ersten Zyklus T1 (3) sind die Ausgangsdaten der Operation SBOX des betrachteten Zyklus.
  • Die g Daten werden ab den a Daten durch Vertauschung (P PERM) und Operation OU EXCLUSIF mit dem Eingangsparameter L0 berechnet.
  • Die c Daten des ersten Zyklus sind eigentlich von den a Daten des ersten Zyklus abgeleitete Daten. Die abgeleiteten c Daten entsprechen einer einfachen Vertauschung von Bits der a Daten.
  • Die l Daten des zweiten Zyklus sind von den g Daten des ersten Zyklus abgeleitete Daten, denn sie entsprechen einer Vertauschung der Bits des Wortes g, wobei manche Bits des Wortes g außerdem dupliziert sind.
  • Wenn a und g bekannt sind, kann man auch diese abgeleiteten Daten kennen.
  • Die kritischen Anweisungen vom Anfang des Algorithmus sind die kritischen Anweisungen, die entweder die Daten bearbeiten, die man voraussagen kann, wie die a Daten des ersten Zyklus, oder abgeleitete Daten.
  • Die kritischen Anweisungen, die die a Daten des ersten Zyklus T1 bearbeiten, oder die abgeleiteten c Daten sind somit die Anweisungen zum Ende der Operation SBOX, der Operation P PERM und des Anfangs der Operation XOR des ersten Zyklus T1.
  • Die kritischen Anweisungen, die die g Daten oder abgeleitete Daten bearbeiten, sind alle Anweisungen zum Ende der Operation XOR des Endes des ersten Zyklus T1 bis zu den Anweisungen zum Anfang der Operation SBOX des zweiten Zyklus T2, und des Anfangs der Operation XOR am Ende des dritten Zyklus T3 (L2 = h(T2)= g(T1)).
  • Am Ende des Algorithmus DES sind die Daten, die ab einer verschlüsselten Nachricht C und einer Hypothese für einen Unterschlüssel vorhergesagt werden können, die a Daten des sechzehnten Zyklus T16 und die L15 Daten gleich dem Wort h des vierzehnten Zyklus T14.
  • Die kritischen Anweisungen, die die a Daten des sechzehnten Zyklus oder die abgeleiteten Daten bearbeiten, sind die Anweisungen des sechzehnten Zyklus am Ende der Operation SBOX, der Operation der Vertauschung P PERM und des Anfangs der Operation XOR.
  • Für die L15 Daten sind die kritischen Anweisungen, die diese Daten oder abgeleitete Daten bearbeiten, alle Anweisungen seit den Anweisungen zum Ende der Operation XOR des vierzehnten Zyklus T14, bis zu den Anweisungen zum Anfang der Operation SBOX des fünfzehnten Zyklus T15, plus die Anweisungen zum Anfang der Operation XOR des sechzehnten Zyklus T16.
  • Das auf diesen DES Algorithmus angewendete erfindungsgemäße Verfahren der Gegenmaßnahme besteht darin, für jede kritische Anweisung ebenso viele Chancen zu haben, daß die kritische Anweisung Daten bearbeitet, wie ihre Ergänzung. Auf welches Zielbit nun der DPA Angriff gerichtet sein kann, hat dann somit ebenso viele Chancen, daß die kritischen Anweisungen, die dieses Bit bearbeiten, ein „1" oder ein „0" bearbeiten.
  • Dies muß in der Praxis für jedes der potentiellen Zielbits stimmen: Anders ausgedrückt, da der Angreifer die Wahl unter mehreren möglichen Angriffen hat, das heißt unter mehreren möglichen booleschen Auswahlfunktionen zur Durchführung seiner Sortierung der Kurven für eine gegebene Hypothese zu einem Unterschlüssel, muß man sich beim Einsatz des erfindungsgemäßen Verfahrens der Gegenmaßnahme darum bemühen, daß die von jeder kritischen Anweisung bearbeiteten Daten beliebig jedes zweite Mal einen Wert oder seine Ergänzung annehmen. Was nun die Anwendung des erfindungsgemäßen Verfahrens der Gegenmaßnahme auf den DES Algorithmus betrifft, muß also die Gegenmaßnahme auf die kritischen Anweisungen zum Anfang des DES und die kritischen Anweisungen zum Ende des DES angewendet werden, um vollkommen geschützt zu sein.
  • Im DES sind alle von kritischen Anweisungen bearbeiteten Daten Ausgangsdaten oder von Ausgangsdaten einer Operation SBOX abgeleitete Daten.
  • In der Tat sind am Anfang des DES die Daten, die vorhergesagt werden können, die a und g Daten des ersten Zyklus T1. Die a Daten sind die Ausgangsdaten der Operation SBOX des ersten Zyklus. Die g Daten werden ab den a Daten berechnet, denn g = P PERM(a) XOR L0. Also sind g von den Ausgangsdaten a der Operation SBOX des ersten Zyklus abgeleitete Daten. Somit gehen alle von den kritischen Anweisungen am Anfang von DES bearbeiteten Daten direkt oder indirekt aus den Ausgangsdaten a der Operation SBOX des ersten Zyklus hervor.
  • Was das Ende von DES angeht, sind die Daten, die vorausgesagt werden können, die a Daten des sechzehnten Zyklus T16 und die g Daten des vierzehnten Zyklus T14, wobei g gleich L15 sind.
  • Die a Daten sind die Ausgangsdaten der Operation SBOX des sechzehnten Zyklus T16.
  • Was die L15 Daten angeht, werden sie bei der normalen Durchführung des Algorithmus DES ab den Ausgangsdaten a der Operation SBOX des vierzehnten Zyklus T14 berechnet: L15 = P PERM(a) XOR L14.
  • Wenn man die Ausgangsdaten a dieser besonderen Operationen SBOX unvorhersagbar macht, acht an auch alle abgeleiteten Daten unvorhersagbar: Man macht also alle Daten unvorhersagbar, die von den kritischen Anweisungen des Algorithmus DES bearbeitet werden. Wenn man meint, daß diese Operationen SBOX erste Mittel darstellen, um Ausgangsdaten S = a ab Eingangsdaten E = b zu liefern, besteht das auf den DES Algorithmus angewendete Verfahren der Gegenmaßnahme darin, andere Mittel zu benutzen, um die Ausgangsdaten unvorhersagbar zu machen, so daß diese Ausgangsdaten und/oder abgeleitete Daten, die von kritischen Anweisungen bearbeitet werden, alle unvorhersagbar sind.
  • Erfindungsgemäß bildet man eine Gruppe, die mindestens aus den ersten drei Zyklen gebildet wird, und eine andere Gruppe, die mindestens aus den drei letzten Zyklen gebildet wird. Diese Gruppen umfassen also alle Zyklen, die kritische Anweisungen enthalten.
  • Man verbindet mit diesen zwei Gruppen eine erste Sequenz, die die ersten Mittel für alle Zyklen benutzt, und eine zweite Sequenz, die die anderen Mittel für mindestens gewisse Zyklen benutzt.
  • In den anderen Zyklen, die nicht in diesen Gruppen sind, kann man weiterhin die ersten Mittel benutzen.
  • Die Benutzung dieser anderen Mittel erfolgt so, daß das Ergebnis am Ausgang, das heißt die verschlüsselte Nachricht, richtig bleibt.
  • Zu den anderen Mitteln können mehrere verschiedene Mittel gehören. Sie sind so, daß sie dafür sorgen, daß die ergänzten Daten den einen und/oder anderen Daten unter den Eingangs- und Ausgangsdaten erster Mittel entsprechen.
  • Somit und in Anbetracht einer hohen Anzahl Ausführungen werden die Gruppen durchschnittlich jedes zweite Mal die erste Sequenz benutzen, die die normale Sequenz des Algorithmus ist, und jedes zweite Mal die andere Sequenz. Die von den kritischen Anweisungen in diesen Gruppen bearbeiteten Daten, die gewissen Zwischenergebnissen entsprechen, werden also im Durchschnitt jedes zweite Mal ergänzt. Bei einer hohen Anzahl von Kurven wird man also statistisch gesehen ebenso viele Chancen haben, daß ein Zielbit bei 1 oder bei 0 ist.
  • Gemäß 7, die ein erstes Beispiel eines Ablaufschemas der Ausführung des DES mit einem erfindungsgemäßen Verfahren der Gegenmaßnahme zeigt, wird die Kommunikation zwischen dem Bauelement T (Terminal) und C (Karte) vom Austausch der Signale gemäß den nachstehend beschriebenen Etappen 1 bis 6 regiert:
    • 1. C inkrementiert i in ihren nichtflüchtigen Speicher (zum Beispiel EEPROM);
    • 2. C generiert den Sitzungsschlüssel K[i]^2 mod z;
    • 3. C löscht den Schlüssel K[i-1) aus ihrem nichtflüchtigen Speicher (zum Beispiel EEPROM) und trägt an seiner Stelle K[i] ein;
    • 4. C übermittelt i an T;
    • 5. T berechnet K[i] = K[0]^(2^i) mod z wo die Menge 2^i mit modulo phi(z) berechnet wird;
    • 6. C und T initiieren eine kryptographische Berechnung mit Einsatz von K[i];
  • Alternativ und gemäß 8, die ein zweites Beispiel für ein Ablaufschema der Ausführung des DES mit einem erfindungsgemäßen Verfahren der Gegenmaßnahme darstellt, wird die Kommunikation zwischen C und T durch den Austausch von Signalen gemäß nachstehend beschriebener Etappen 1 bis 6 regiert:
    • 1. C inkrementiert i in ihren nichtflüchtigen Speicher (zum Beispiel EEPROM);
    • 2. C generiert den Sitzungsschlüssel K[i-1]·c mod z;
    • 3. C löscht den Schlüssel K[i-1) aus ihrem nichtflüchtigen Speicher (zum Beispiel EEPROM) und trägt an seiner Stelle K[i] ein;
    • 4. C übermittelt i an T;
    • 5. T berechnet K[i] = K[0]·(c^i) mod z;
    • 6. C und T initiieren eine kryptographische Berechnung mit Einsatz von K[i];
  • Die optimale Wahl für die Zahl z ist die kleinste Primzahl der Größe k. Insbesondere:
    K = Größe von K in Bits Wert von z
    56 2^k – 5
    64 2^k – 59
    80 2^k – 65
    96 2^k – 17
    128 2^k – 159
    256 2^k – 189

Claims (6)

  1. Verfahren der Gegenmaßnahme für ein erstes elektronisches Bauelement (C), das mit einem zweiten elektronischen Bauelement (T) kommuniziert und einen Geheimschrift-Algorithmus A mit Geheimschlüssel K von der Größe k Bits einsetzt, wobei der Einsatz des Verfahrens der Gegenmaßnahme eine Fortentwicklung des Werts K[i] des besagten Schlüssels bei aufeinanderfolgenden Benutzungen des Algorithmus A umfaßt, wobei i die Anzahl Ausführungen des Algorithmus A ist, dadurch gekennzeichnet, daß – das erste elektronische Bauelement (C) – den Wert K[i) des Schlüssels ab dem vorhergehenden Wert K[i-1] des besagten Schlüssels vermittels einer Funktion f berechnet, wie K[i] = f(K[i-1]), – die Anzahl i an das zweite elektronische Bauelement (T) übermittelt, und dadurch, daß – das zweite elektronische Bauelement (T) eine Berechnungsabkürzung für die Berechnung des Wertes K[i] des Geheimschlüssels ab K[0] besitzt, ohne die i-1 Werte von Schlüsseln generieren zu müssen, die K[0] und K[i] trennen.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die vom ersten Bauelement (C) eingesetzte Funktion f darin besteht, den Wert K[i-1] des Schlüssels auf eine ganzen Wert hoch P zu setzen modulo einer Primzahl z, die eine Größe gleich derjenigen des Schlüssels hat, wobei die besagte Zahl z eine solche Konstante ist, daß die vom zweiten elektronischen Bauelement (T) benutzte Berechnungsabkürzung aus K[i] = K[0]^(P^i) mod z besteht, wobei der Wert P^i modulo phi(z) berechnet wird.
  3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die vom ersten Bauelement (C) eingesetzte Funktion f darin besteht, den Wert K[i-1] des Schlüssels ins Quadrat zu setzen modulo einer Primzahl z, die eine Größe gleich derjenigen des Schlüssels hat, wobei die besagte Zahl z eine solche Konstante ist, daß die vom zweiten elektronischen Bauelement (T) benutzte Berechnungsabkürzung aus K[i] = K[0]^(2^i) mod z besteht, wobei der Wert 2^i modulo phi(z) berechnet wird.
  4. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die vom ersten Bauelement (C) eingesetzte Funktion f darin besteht, den Wert K[i-1] des Schlüssels mit einer Konstanten zu multiplizieren modulo einer Primzahl z, die eine Größe gleich derjenigen des Schlüssels hat, wobei die besagten Zahlen c und z solche Konstanten sind, daß die vom zweiten elektronischen Bauelement (T) benutzte Berechnungsabkürzung aus K[i] = K[0]·c^i mod z besteht.
  5. Verfahren nach einem beliebigen der Ansprüche 2 bis 4, dadurch gekennzeichnet, daß z die größte Primzahl unter 2^k ist.
  6. Elektronisches Bauelement (T), fähig zur Kommunikation mit einem zweiten elektronischen Bauelement (C) vermittels eines Geheimschrift-Algorithmus A mit Geheimschlüssel K, wobei der Wert K[i] des besagten Schlüssels K sich bei dne aufeinanderfolgenden Benutzungen des Algorithmus A ab dme vorherigen Wert K[i-1] des besagten Schlüssels fortentwickelt vermittels einer Funktion f wie K[i] = f(K[i-1]), wobei i die Anzahl der Ausführungen des Algorithmus A ist, dadurch gekennzeichnet, daß das elektronische Bauelement (T) ein Mittel enthält, um eine Berechnungsabkürzung zu realisieren für die Berechnung des Wertes K[i] des Geheimschlüssels AB k[0], ohne die i-1 Schlüsselwerte generieren zu müssen, die K[0] und K[i] trennen, wobei der Wert i vom besagten zweiten elektronischen Bauelement (C) übertragen wird.
DE60034944T 1999-05-11 2000-05-11 Gegenmassnahmeverfahren in einer geheimen und dynamischen Verschlüsselungsalgorithmus ausführenden elektronischen Schaltung Expired - Lifetime DE60034944T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR9906264A FR2793571B1 (fr) 1999-05-11 1999-05-11 Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete et dynamique
FR9906264 1999-05-11
PCT/FR2000/001269 WO2000068901A1 (fr) 1999-05-11 2000-05-11 Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete et dynamique

Publications (2)

Publication Number Publication Date
DE60034944D1 DE60034944D1 (de) 2007-07-05
DE60034944T2 true DE60034944T2 (de) 2008-01-24

Family

ID=9545691

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60034944T Expired - Lifetime DE60034944T2 (de) 1999-05-11 2000-05-11 Gegenmassnahmeverfahren in einer geheimen und dynamischen Verschlüsselungsalgorithmus ausführenden elektronischen Schaltung

Country Status (8)

Country Link
US (1) US7206408B1 (de)
EP (1) EP1180260B1 (de)
CN (1) CN1231871C (de)
AU (1) AU4415900A (de)
DE (1) DE60034944T2 (de)
ES (1) ES2287013T3 (de)
FR (1) FR2793571B1 (de)
WO (1) WO2000068901A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4810098B2 (ja) * 2005-01-19 2011-11-09 株式会社東芝 紙葉類処理装置における処理データ転送方法および紙葉類処理装置
EP1798888B1 (de) * 2005-12-19 2011-02-09 St Microelectronics S.A. Schutz der Ausführung eines DES-Algorithmus
EP2677327A1 (de) * 2012-06-21 2013-12-25 Gemalto SA Verfahren zur Herstellung einer elektronischen Vorrichtung mit deaktiviertem Sensitivitätsmodus und Verfahren zum Umwandeln einer solchen elektronischen Vorrichtung zur Reaktivierung des Sensitivitätsmodus
CN102999077B (zh) * 2012-12-03 2014-08-13 哈尔滨工业大学(威海) 一种高线性补偿的电流平整电路
EP3208788B1 (de) * 2016-02-22 2020-06-03 Eshard Verfahren zum schutz einer schaltung gegen eine seitenkanalanalyse
CN110414276B (zh) * 2018-04-27 2021-05-18 联华电子股份有限公司 电子元件的加密方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2638869B1 (fr) * 1988-11-10 1990-12-21 Sgs Thomson Microelectronics Dispositif de securite contre la detection non autorisee de donnees protegees
DE4223258C3 (de) * 1992-07-15 2001-03-15 Telefunken Microelectron Verfahren zur verifizierbaren Übertragung von Daten
DE69327644T2 (de) * 1993-01-07 2000-09-07 Ford France S.A., Rueil-Malmaison Ferngesteuertes Sicherheitssystem
US5347581A (en) * 1993-09-15 1994-09-13 Gemplus Developpement Verification process for a communication system
BE1008699A3 (fr) * 1994-09-09 1996-07-02 Banksys Procede et agencement pour donner selectivement un acces dans un systeme de securite.
FR2733379B1 (fr) * 1995-04-20 1997-06-20 Gemplus Card Int Procede de generation de signatures electroniques, notamment pour cartes a puces
FR2739469B1 (fr) * 1995-10-03 1997-12-26 Gemplus Card Int Procede de cryptographie a cle publique base sur le logarithme discret
FR2745135B1 (fr) * 1996-02-15 1998-09-18 Cedric Colnot Procede pour faire autoriser par un serveur l'acces a un service a partir de dispositifs portatifs a microcircuits electroniques du type carte a memoire par exemple
FR2745924B1 (fr) * 1996-03-07 1998-12-11 Bull Cp8 Circuit integre perfectionne et procede d'utilisation d'un tel circuit integre
JP2000508099A (ja) * 1996-03-22 2000-06-27 アクティブカール 複数の動的暗号化変数を使用する機能へのアクセスを制御するシステム

Also Published As

Publication number Publication date
EP1180260B1 (de) 2007-05-23
CN1231871C (zh) 2005-12-14
EP1180260A1 (de) 2002-02-20
WO2000068901A1 (fr) 2000-11-16
FR2793571B1 (fr) 2003-10-31
ES2287013T3 (es) 2007-12-16
CN1360715A (zh) 2002-07-24
AU4415900A (en) 2000-11-21
US7206408B1 (en) 2007-04-17
FR2793571A1 (fr) 2000-11-17
DE60034944D1 (de) 2007-07-05

Similar Documents

Publication Publication Date Title
DE60222052T2 (de) Verschlüsselung gesichert gegen Angriffe durch die Analyse der Leistungsaufnahme (DPA)
DE69931606T2 (de) Datenwandler und aufzeichnungsmedium zur aufnahme eines programms zur datenumwandlung
DE69936024T2 (de) Vorrichtung zur Verschlüsselung/Entschlüsselung
DE602004013206T2 (de) Verfahren und diesbezügliche einrichtung zur hardwareorientierten umsetzung zwischen arithmetik- und boolscher zufallsmaskierung
DE3689510T2 (de) Einrichtung und Verfahren zur Datenverschleierung.
EP2462717B1 (de) Echtzeitfähige quantencomputersichere verschlüsselung von daten aller art
DE60207818T2 (de) Gesichertes Verfahren zur kryptographischen Berechnung mit Geheimschlüssel und Bauteil, das ein solches Verfahren anwendet
DE69932740T2 (de) Verfahren und vorrichtung zur kryptographischen datenverarbeitung
DE102005056814A1 (de) Kryptografiesystem und Datenverschlüsselungsverfahren
DE10148415C2 (de) Verfahren und Vorrichtung zum Verschlüsseln und Entschlüsseln von Daten
EP3304802B1 (de) Verfahren zur sicherstellung der informationssicherheit von über einen datenbus übertragenen daten sowie datenbussystem
DE60036928T2 (de) Gegenmassnahmeverfahren in einem elektronischen baustein zur ausführung eines krypto-algorithmus mit geheimschlüssel
DE60027163T2 (de) Gegenmassnahmenverfahren in einem elektronischen bauelement mit einem kryptosystem mit privatem schlüssel
DE60301750T2 (de) Vorrichtung zur Erzeugung eines erweiterten Schlüssels, Verschlüsselungsvorrichtung und Verschlüsselungssystem
EP0923826B1 (de) Anordnung und verfahren zur kryptographischen bearbeitung eines digitalen datenstroms, der eine beliebige anzahl von daten aufweist
DE60034944T2 (de) Gegenmassnahmeverfahren in einer geheimen und dynamischen Verschlüsselungsalgorithmus ausführenden elektronischen Schaltung
DE60022840T2 (de) Verfahren zum sichern einer oder mehrerer elektronischer baugruppen, unter zuhilfenahme eines privatschlüssel-krypto-algorithmus, sowie elektronische baugruppe
DE10324422B4 (de) Verfahren und Vorrichtung zur Abbildung eines abzubildenden Eingangswertes auf einen verschlüsselten abgebildeten Ausgangswert
DE69928684T2 (de) Gegenmassnahmenvorrichtung in einem elktronischen bauteil um einen krypto-algorithmus mit geheimschlüssel durch zu führen
DE10345378B4 (de) Verfahren und Vorrichtung zur Ver-/Entschlüsselung
DE69934707T2 (de) Gegenmassnahmenvorrichtung in einem elektronischen bauteil um einen krypto-algorithmus mit geheimschlüssel durchzuführen
DE102004018874B4 (de) Verfahren und Vorrichtung zum Bestimmen eines Ergebnisses
WO2005043804A1 (de) Verfahren und vorrichtung zur ver- und entschlüsselung
DE10352680A1 (de) Verschlüsselungsvorrichtung und Verschlüsselungsverfahren
EP1573955B1 (de) Verschl sselungsverfahren

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
R082 Change of representative

Ref document number: 1180260

Country of ref document: EP

Representative=s name: HOFFMANN - EITLE, DE