WO2021156005A1 - Schlüsselgenerierung und pace mit sicherung gegen seitenkanalangriffe - Google Patents

Schlüsselgenerierung und pace mit sicherung gegen seitenkanalangriffe Download PDF

Info

Publication number
WO2021156005A1
WO2021156005A1 PCT/EP2021/025040 EP2021025040W WO2021156005A1 WO 2021156005 A1 WO2021156005 A1 WO 2021156005A1 EP 2021025040 W EP2021025040 W EP 2021025040W WO 2021156005 A1 WO2021156005 A1 WO 2021156005A1
Authority
WO
WIPO (PCT)
Prior art keywords
key
client
terminal
public
private
Prior art date
Application number
PCT/EP2021/025040
Other languages
English (en)
French (fr)
Inventor
Markus Bockes
Ludger Hemme
Lars Hoffmann
Original Assignee
Giesecke+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+Devrient Mobile Security Gmbh filed Critical Giesecke+Devrient Mobile Security Gmbh
Priority to EP21703830.6A priority Critical patent/EP4101118A1/de
Priority to US17/760,016 priority patent/US20230041237A1/en
Publication of WO2021156005A1 publication Critical patent/WO2021156005A1/de

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]
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • 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/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations

Definitions

  • Step 2.1 The chip and the terminal each generate an asymmetrical key pair [k c , P c ] or [k t , P t ] comprising a private key k c or k t and a public key P c or P t ;
  • Terminal private key k t this is one by means of an internal terminal Function Generate_secret_key () generated random number.
  • Public parameters are understood to be parameters that are known to both the client and the terminal at the beginning of the protocol. Parameters are, for example, curve parameters of the elliptical curve.
  • the public values also include, for example, the auxiliary point H t and the private terminal key k t .
  • non-public values which are understood to mean values that are not known to the terminal, and which include, in particular, the first private client key k c and the second private client key k c '.
  • the invention is based on the object of creating a method for key generation which has improved protection against side-channel attacks.
  • the object is achieved by a method for key generation according to claim 1 or 2.
  • the method for key generation can advantageously be used in a method for key agreement and authentication.
  • Advantageous refinements of the invention are given in the dependent claims.
  • the method according to the invention for key generation according to claims 1 and 2 is set up in a client processor device.
  • the method is set up to generate a second public client key P c 'of the client.
  • the method according to a second alternative of the invention is characterized in that the public key P c 'is formed by a calculation, or a sequence of calculations, in which at least one is not in each operation in which the nonce s is included -public value is received, in particular the first private client key k c or the second private client key k c '.
  • the generator point G and the public keys are public parameters that are known to an attacker. Therefore only the nonce s is unknown in the operation s ⁇ G. Both the operation s ⁇ G and the result of the operation s ⁇ G can provide an attacker with side channel information that can make it possible to infer the secret nonce s. Therefore, in particular calculations in which in addition to a secret value, only public parameters are received, susceptible to side-channel attacks.
  • the point multiplication s ⁇ G in the conventional step (2.4) is therefore susceptible to side-channel attacks.
  • the second public client key P c ' can be formed as the result of a calculation in which the generator point G, the nonce s and the second private client key k c ' are processed in a common operation become.
  • the second private client key k c ' is then additionally contained in the operation, so that side-channel emissions from the operation are blurred.
  • n the group order of the elliptical curve
  • the masked nonce s m is used together with the mask (masks).
  • the second public client key P c ' is formed as the result of a combination of operations, as indicated in the corresponding subclaims.
  • a method for key agreement and authentication between a client and a terminal comprises, in addition to the steps of the above-mentioned method for key generation in the client, further steps in the client, steps of a method for key generation in the terminal, and steps in which the terminal sends data the client sends or receives from the client. Steps that are carried out in or by the client are preceded by a (C), and steps that are carried out in or by the terminal are preceded by a (T), subsequent steps that follow after the key has been generated preceded by an (AUTH).
  • the key agreement and authentication process includes the following steps:
  • the The encryption function Enc 'and the mask m are matched to one another, so that the result s' is generated as without masking); the password is preferably stored with secure access, so that it can call up the processor device of the client and use it in calculations, but that it is not possible to read out the password from the client;
  • the PACE protocol was implemented in accordance with the steps described in Table 1 and a mult-add function, as described in 2.4, was provided. All other required functions correspond to those which are also required for other ECC implementations.
  • the group on which it is based is an elliptical curve with generator point G, which has a prime number order.
  • integer variables are denoted by small letters and points on the elliptic curve are denoted by capital letters.
  • Step 1.1 in the client takes place either without masking the nonce (1.1 as in Fig. 1) or with masking of the nonce (E1.1 * according to Fig. 2):

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

Die Erfindung schafft ein Verfahren zur Schlüsselgenerierung, eingerichtet in einer Client-Prozessoreinrichtung, mittels dessen ein zweiter öffentlicher Client-Schlüssel (Pc') des Client erzeugt wird, wobei der öffentliche Schlüssel (Pc') durch eine Berechnung, oder Folge von Berechnungen, gebildet wird, welche keine Operation enthält, deren Ergebnis ausschließlich von der Nonce (s) und mindestens einem öffentlichen Wert abhängt, oder wobei der öffentliche Schlüssel (Pc') durch eine Berechnung, oder Folge von Berechnungen, gebildet wird, in welcher in jede Operation, in welche die Nonce (s) eingeht, mindestens ein nicht-öffentlicher Wert eingeht, insbesondere der erste private Client-Schlüssel (kc') oder der zweite private Client-Schlüssel (kc'), beispielsweise als Ergebnis der Berechnung Pc'= (kc'-s)•G + (kc'·kc,)•Ρt. Die Erfindung gibt weiter ein Verfahren zur Authentisierung und Schlüsseleinigung zwischen einem Client und einem Terminal mit einem solchen Verfahren zur Schlüsselgenerierung an, insbesondere zur Authentisierung und Schlüsseleinigung nach dem PACE-Protokoll in entsprechend der Erfindung abgewandelter Form.

Description

Schlüsselgenerierung und PACE mit Sicherung gegen Seitenkanalangriffe
Gebiet der Erfindung
Die Erfindung betrifft ein Schlüsselgenerierungsverfahren, das Teil eines Au- thentisierungsverfahrens und Schlüsseleinigungsverfahrens zwischen einem Client und einem Terminal ist. Das Authentisierungsverfahren und Schlüsse- leinigungsverfahren ist insbesondere im PACE-Protokoll zur Authentisie- rung und zum Aufbau einer verschlüsselten Kommunikation zwischen ei- nem maschinenlesbaren Reisedokument mit Chip und einem Terminal an- wendbar, mit dem maschinenlesbaren Reisedokument als Client.
Stand der Technik
Das PACE-Protokoll BSI TR-03110 (PACE = Password AuthenticatedConnec- tion Establishment) ist ein Verfahren zur Authentisierung und Schlüsseleini- gung zwischen dem Chip eines maschinenlesbaren Reisedokuments (Client) und einem Terminal, das Zugriff auf den Chip hat, unter Verwendung eines Passworts, das im Client zugriffsgesichert gespeichert ist, und das am Termi- nal zu Beginn des PACE-Protokolls einzugeben ist.
BSI-TR-03111 beschreibt eine Umsetzung des PACE-Protokolls in elliptische Kurven Kryptographie. Diese Umsetzung in elliptische Kurven Kryptogra- phie ist gebildet durch eine Folge von Berechnungen. Jede Berechnung ist als Kombination von ein oder mehreren Operationen gebildet. Als Operationen sind beispielsweise Punktadditionen + auf einer elliptischen Kurve, Punktmultiplikationen ● auf der elliptischen Kurve, modulare Multiplikatio- nen · , modulare Divisionen /, modulare Additionen + oder/ und modulare Subtraktionen - vorgesehen. In der Folge von Berechnungen berechnet jede Berechnung ein Ergebnis. Ebenso berechnet jede Operation innerhalb einer Berechnung ein Ergebnis. Das PACE-Verfahren umfasst folgende Schritte, die in Fig. 1 anhand eines Beispiels eines Elliptische-Kurven-basierten PACE-Verfahrens veranschau- licht sind. Fig. 1 und Fig. 2 enthalten teilweise sprachlichen Text, und teil- weise Pseudo-Programmcode-Teile wie z.B. „if <Bedingung> then <Folge>" um eine entsprechende Aktion, z.B. Prüfen des Zutreffens einer Bedingung und Feststellen oder Veranlassen einer Folge, einer Prozessoreinrichtung an- zudeuten.
1. Generierung und Übertragung der Nonce. Schritt 1.1: Der Chip im Client (Reisedokument) generiert eine Zufallszahl (Nonce) s, die geheim gehalten wird, und verschlüsselt sie mit dem intern im Client gespeicherten Passwort PIN als Schlüssel zu einer verschlüsselten Zufallszahl (Nonce) s'. Schritt 1.2: Der Client sendet die verschlüsselte Zufallszahl s' an das Terminal. Am Ter- minal gibt ein Nutzer (User) das Passwort PIN_user ein. Schritt 1.3: das Ter- minal nimmt die vom Nutzer eingegebene Zufallszahl PIN_user entgegen. Schritt 1.4: das Terminal entschlüsselt die empfangene verschlüsselte Zufalls- zahl s' mit dem vom Nutzer eingegebenen Passwort PIN_user und erhält eine Zahl st, die mit s übereinstimmt, falls der Benutzer das korrekte Pass- wort (PIN = PIN_user) eingegeben hat.
2. Erste ECDH Schlüsselgenerierung und Berechnung eines neuen Erzeugers. Schritt 2.1: Der Chip und das Terminal erzeugen jeweils ein asymmetrisches Schlüsselpaar [kc, Pc] bzw. [kt, Pt] umfassend einen privaten Schlüssel kc bzw. kt und einen öffentlichen Schlüssel Pc bzw. Pt ; Schritt 2.2: Client und Terminal senden sich gegenseitig jeweils den öffentlichen Schlüssel zu; Schritte 2.3-2.4: Client und Terminal bilden die Zufallszahl s bzw. st mithilfe einer Mapping-Funktion, hier generisches Mapping, auf einen Erzeuger Gc' bzw. Gt' der verwendeten mathematischen Gruppe ab, hier einer elliptische Kurve. Das Mapping ist dabei im Wesentlichen eine Abfolge von Operatio- nen - Punktmultiplikationen und Punktadditionen - auf der elliptischen Kurve. Falls der Benutzer das richtige Passwort (PIN = PIN_user) eingege- ben hat, so stimmt Gc' mit Gt' überein.
3. Zweite ECDH Schlüsselgenerierung. Der Chip und das Terminal führen eine ECDH- - Elliptische Kurven-Diffie-Hellman- - Schlüsselgenerierung durch. Schritte 3.1-3.2: Der Chip und das Terminal erzeugen in der ECDH- Schlüsselgenerierung jeweils ein zweites asymmetrisches Schlüsselpaar [kc', Pc'] bzw. [kt', Pt'] umfassend einen privaten Schlüssel kc' bzw. kt' und einen öffentlichen Schlüssel Pc' bzw. Pt' basierend auf den in 2 berechneten Erzeu- gern Gc' bzw. Gt'.
Im PACE-Protokoll erfolgen im Anschluss an die Schlüsselgenerierung (Fig. 1: 3.2) Schlüsselableitungsschritte und Schlüsselaustauschschritte (Fig. 1: 3.3, ähnlich Schritt 2.2 und 2.3 von Fig. 1) zwischen Client und Terminal, bis schließlich der Client und das Terminal ein gemeinsames Geheimnis (shared secret) abgeleitet haben, das zur Authentisierung und Verschlüsselung der Kommunikation zwischen Client und Terminal verwendet wird. Diese der Schlüsselgenerierung nachfolgenden weiteren Schritte werden hier nicht weiter betrachtet und können im Zusammenhang mit der erfindungsgemä- ßen Schlüsselgenerierung wie aus dem PACE-Protokoll bekannt durchge- führt werden.
Genauer wird in Schritt 2.1 beim Client ein Schlüsselpaar [kc, Pc ] abgeleitet mit folgenden Schlüsseln. Privater Schlüssel kc des Client; dieser ist eine mit- tels einer Chip-internen Funktion Generate_secret_key() erzeugte Zufalls- zahl. Öffentlicher Schlüssel Pc des Client; dieser ist mittels einer Chip-inter- nen Funktion Generate_public_key(G; kc) abgeleitet gemäß Pc = kc●G , durch Punktmultiplikation ● des privaten Schlüssels kc des Client mit dem Genera- torpunkt G der elliptischen Kurve. Weiter wird in Schritt 2.1 beim Terminal ein Schlüsselpaar [kt, Pt ] abgeleitet mit folgenden Schlüsseln. Privater Schlüssel kt des Terminals; dieser ist eine mittels einer Terminal-internen Funktion Generate_secret_key() erzeugte Zufallszahl. Öffentlicher Schlüssel Pt des Terminals; dieser ist mittels einer Terminal-internen Funktion Gene- rate_public_key(G; kt) abgeleitet gemäß Pt = Generate_public_key(G; kt) = kt●G , durch Punktmultiplikation ● des privaten Terminal-Schlüssels kt mit dem Generatorpunkt G der elliptischen Kurve.
Beim in Schritten 2.3-2.4 dargestellten generischen Mapping wird in Schritt 2.3 im Client ein Hilfspunkt Hc auf der elliptischen Kurve berechnet gemäß Hc = kc●Pt , und im Terminal ein Hilfspunkt Ht auf der elliptischen Kurve be- rechnet gemäß Ht = kt● Pc . In Schritt 2.4 wird im Client ein gemappter Gene- ratorpunkt Gc' abgeleitet gemäß Gc' = s●G + Hc , und im Terminal ein ge- mappter Generatorpunkt GF abgeleitet gemäß GF = st●G + Ht . Bei korrekter Ausführung des Protokolls gilt Ht = Hc unabhängig von dem vom Nutzer eingegebenen Passwort PIN_user.
Im PACE-Protokoll werden sogenannte öffentliche Parameter verwendet. Unter öffentlichen Parametern werden Parameter verstanden, die zu Beginn des Protokolls sowohl dem Client als auch dem Terminal bekannt sind. Para- meter sind beispielsweise Kurvenparameter der elliptischen Kurve. Wir be- nutzen im Folgenden den Begriff der öffentlichen Werte, durch welchen die öffentlichen Parameter als auch alle Werte, die das Terminal ohne Wissen der PIN selbst generieren oder berechnen (= bilden) kann (und daher natür- lich selbst kennt), bezeichnet sind. Zu den öffentlichen Werten zählt z.B. auch der Hilfspunkt Ht, sowie der private Terminal-Schlüssel kt . Daneben gibt e nicht-öffentliche Werte, worunter Werte verstanden werden, die dem Terminal nicht bekannt sind, und wozu insbesondere der erste private Cli- ent-Schlüssel kc , der zweite private Client-Schlüssel kc' zählen. In Seitenkanalangriffen werden Seitenkanalinformationen einer eine Berech- nung ausführenden Prozessoreinrichtung ausgewertet, um darin Charakte- ristika zu finden, welche die in der Berechnung verwendeten Daten wider- spiegeln. Seitenkanalinformationen können beispielsweise der Stromver- brauch der Prozessoreinrichtung sein, oder die von ihr während der Ausfüh- rung der Berechnung austretende elektromagnetische Abstrahlung. Die Be- rechnung kann beispielsweise eine kryptographische Berechnung sein. Da- ten können beispielsweise Eingangsdaten, geheime Schlüssel, Zwischen- werte und Ausgangsdaten der Berechnung sein.
Wie aus Fig. 1 der obigen Darstellung ersichtlich ist, wird in den Rechen- schritten 2.4 und 3.2 jeweils eine Punktmultiplikation auf der verwendeten elliptischen Kurve durchgeführt, in welcher die Nonce s bzw. der Punkt Gc' in ungeschützter Form verarbeitet wird. Dies führt dazu, dass Seitenkanalin- formationen wie Stromprofil oder elektromagnetische Abstrahlung der Pro- zessoreinrichtung, in welcher die Berechnung erfolgt, Charakteristika auf- weisen können, die für den Wert der Nonce s bzw. des Punktes Gc' charakte- ristisch sind.
Durch bekannte Seitenkanalangriffe wie Simple Power Analysis SPA oder Differential Power Analysis DPA könnte die Nonce s ausgespäht werden, der aber geheim zu bleiben hat. Ergebnisse von Berechnungen und Ergeb- nisse von Operationen können in Seitenkanalangriffen Information liefern, die ein Angreifern ausnutzen kann.
Zusammenfassung der Erfindung
Der Erfindung liegt die Aufgabe zu Grunde, ein Verfahren zur Schlüsselge- nerierung zu schaffen, das einen verbesserten Schutz gegen Seitenkanalan- griffe aufweist. Die Aufgabe wird gelöst durch ein Verfahren zur Schlüsselgenerierung nach Anspruch 1 oder 2. Das Verfahren zur Schlüsselgenerierung ist vorteilhaft anwendbar in einem Verfahren zur Schlüsseleinigung und Authentisierung . Vorteilhafte Ausgestaltungen der Erfindung sind in den abhängigen An- sprüchen angegeben.
Das erfindungsgemäße Verfahren zur Schlüsselgenerierung nach Anspruch 1 und 2 ist in einer Client-Prozessoreinrichtung eingerichtet. Das Verfahren ist eingerichtet, einen zweiten öffentlichen Client-Schlüssel Pc' des Client zu er- zeugen.
Das Verfahren zur Schlüsselgenerierung umfasst die in der Client-Prozesso- reinrichtung durchgeführten Schritte: (1.1) Erzeugen einer Nonce s;
(2.1) Erzeugen eines ersten asymmetrischen Schlüsselpaars [kc, Pc] des Client, umfassend einen ersten öffentlichen Client-Schlüssel Pc und einen ersten pri- vaten Client-Schlüssel kc, wobei der erste öffentliche Client-Schlüssel Pc ge- bildet wird als Ergebnis der Punktmultiplikation Pc = kc ● G des privaten Cli- ent-Schlüssels kc mit dem Generatorpunkt G der elliptischen Kurve;
(2.2) Empfangen, von einem Terminal, eines ersten öffentlichen Terminal- Schlüssels Pt, der Teil des ersten asymmetrischen Schlüsselpaares des Termi- nals ist, das den ersten öffentlichen Terminal-Schlüssel Pt und den ersten pri- vaten Terminal-Schlüssel kt umfasst; (3.1), (3.2) Erzeugen eines zweiten asymmetrischen Schlüsselpaars [kc', Pc'] des Client, umfassend den zweiten öffentlichen Client-Schlüssel Pc' und ei- nen zweiten privaten Client-Schlüssel kc';
Das Verfahren gemäß einer ersten Alternative der Erfindung zeichnet sich dadurch aus, dass der öffentliche Schlüssel Pc' durch eine Berechnung, oder Folge von Berechnungen, gebildet wird, welche keine Operation enthält, de- ren Ergebnis ausschließlich von der Nonce s und mindestens einem öffentli- chen Wert abhängt.
Das Verfahren gemäß einer zweiten Alternative der Erfindung zeichnet sich dadurch aus, dass der öffentliche Schlüssel Pc' durch eine Berechnung, oder Folge von Berechnungen, gebildet wird, in welcher in jede Operation, in wel- che die Nonce s eingeht, mindestens ein nicht-öffentlicher Wert eingeht, ins- besondere der erste private Client-Schlüssel kc oder der zweite private Cli- ent-Schlüssel kc'.
Die Schritte (1.1), (2.1), (2.2) und (3.1) werden im Wesentlichen wie im in Fig. 1 dargestellten herkömmlichen Verfahren zur Schlüsselgenerierung durchge- führt. Die herkömmlichen Schritte (2.3), (2.4) entfallen beim Client.
Im herkömmlichen Schritt (2.4) wird eine Punktmultiplikation s●G des Ge- neratorpunkts G mit der in Klartext vorliegender Nonce s durchgeführt, so dass in die Berechnung nur zwei Eingangswerte Generatorpunkt G und Nonce s eingehen.
Der Generatorpunkt G und die öffentlichen Schlüssel, d.h. der erste und zweite öffentliche Terminal-Schlüssel und der erste und zweite öffentliche Client-Schlüssel, sind öffentliche Parameter, die einem Angreifer bekannt sind. Daher ist in der Operation s●G nur die Nonce s unbekannt. Sowohl die Operation s●G als auch das Ergebnis der Operation s●G kann einem Angrei- fer Seitenkanalinformation liefern, die es ermöglichen können, auf die ge- heime Nonce s zu schließen. Daher sind insbesondere Berechnungen, in die zusätzlich zu einem geheimen Wert nur öffentliche Parameter eingehen, an- fällig für Seitenkanalangriffe. Die Punktmultiplikation s●G im herkömmli- chen Schritt (2.4) ist daher anfällig für Seitenkanalangriffe.
Erfindungsgemäß werden Operationen vermieden, in die lediglich die Nonce s und ein öffentlicher Wert bzw. die Nonce s und mehrere öffentliche Werte eingehen. Vielmehr geht in jede Operation mindestens ein Wert ein, der weder die Nonce s noch ein öffentlicher Wert ist.
Hierdurch sind Seitenkanalabstrahlungen der Nonce s durch die zusätzli- chen Seitenkanalabstrahlungen des Werts oder der Werte, die weder die Nonce s noch ein öffentlicher Wert sind, verwischt, wodurch Seitenkanalan- griffe stark erschwert oder gänzlich verhindert sind.
Daher ist gemäß Anspruch 1 ein Verfahren zur Schlüsselgenerierung ge- schaffen, das einen verbesserten Schutz gegen Seitenkanalangriffe, insbeson- dere den weiter oben beschriebenen Angriff, aufweist.
Beispielsweise kann in (E3.2*) der zweite öffentliche Client-Schlüssel Pc' ge- bildet werden als Ergebnis einer Berechnung, worin der Generatorpunkt G, die Nonce s und der zweite private Client-Schlüssel kc' in einer gemeinsamen Operation verarbeitet werden. Dann ist in der Operation zusätzlich der zweite private Client-Schlüssel kc' enthalten, so dass Seitenkanalabstrahlun- gen der Operation verwischt werden.
Hierdurch sind Seitenkanalabstrahlungen der Nonce s durch die zusätzli- chen Seitenkanalabstrahlungen des zweiten privaten Client-Schlüssel kc' ver- wischt, wodurch wodurch Seitenkanalangriffe stark erschwert oder gänzlich verhindert sind. Eine weitere Verfahrens Variante nutzt anstelle der Nonce eine maskierte Nonce und deren Maske oder Masken. Eine Maskierung des Nonce s ist bei derzeitigen Verfahren zur Schlüsselgenerierung nicht vorgesehen, kann aber in künftigen Verfahren gewünscht sein, um die Sicherheit gegen Seitenkanal- angriffe weiter zu erhöhen.
Gemäß einer vorteilhaften Weiterbildung umfasst das Verfahren zur Schlüs- selgenerierung in Schritt (1.1) weiter: (E1.1*) Erzeugen und Bereitstellen, oder nur Bereitstellen (ohne internes Be- rechnen im Client, d.h. z.B. externes Berechnen und sicheres Übertragen in den Client), einer maskierten Nonce sm und eines zur maskierten Nonce sm zugehörigen Maskierungswertes m (oder mehrerer zugehöriger Maskie- rungswerte).
Gemäß manchen Ausführungsformen wird, falls die maskierte Nonce sm z.B. additiv maskiert ist mit s = (sm + m) mod n und mod n im
Figure imgf000011_0001
Falle von k Maskierungswerten, n die Gruppenordnung der elliptischen Kurve, im Schritt (E3.2*) die maskierte Nonce sm zusammen mit der Maske (Masken) verwendet. Der zweite öffentliche Client-Schlüssel Pc' wird dabei gebildet als das Ergebnis einer Kombination von Operationen, wie in den entsprechenden Unter ansprüchen angegeben.
Ein erfindungsgemäßes Verfahren zur Schlüsseleinigung und Authentisie- rung zwischen einem Client und einem Terminal umfasst, zusätzlich zu den Schritten des oben angegebenen Verfahrens zur Schlüsselgenerierung im Cli- ent, noch weitere Schritte im Client, Schritte eines Verfahrens zur Schlüssel- generierung im Terminal, sowie Schritte, in denen das Terminal Daten an den Client sendet oder vom Client empfängt. Hierbei ist Schritten, die im o- der durch den Client erfolgen, ein (C) vorangestellt, und Schritten, die im o- der durch das Terminal erfolgen ein (T) vorangestellt, nachfolgenden Schrit- ten, die nach der Schlüsselgenerierung folgen, ist ein (AUTH) vorangestellt. Im Einzelnen sind im Verfahren zur Schlüsseleinigung und Authentisierung die folgenden Schritte umfasst:
(C) (1.1) Im Client, Verschlüsseln der Nonce s, (wobei ggf. der Input der Ver- schlüsselung die maskierte Nonce und die Maske(n) sind), mit einem im Cli- ent gespeicherten Passwort (PIN), so dass eine verschlüsselte Nonce s' = Enc(s; PIN) (oder ggf. Enc'(sm, m; PIN), wobei Enc(s; PIN) = Enc'(sm, m; PIN) gilt, das heißt die Verschlüsselungsfunktion Enc' und die Maske m sind auf- einander abgestimmt, so dass das Ergebnis s' so wie ohne Maskierung er- zeugt wird) erzeugt wird; das Passwort ist bevorzugt zugriffsgesichert ge- speichert, so dass es die Prozessoreinrichtung des Client aufrufen und in Be- rechnungen verwenden kann, dass aber ein Auslesen des Passworts aus dem Client heraus nicht möglich ist;
(C) (1.2) Übermitteln der verschlüsselten Nonce s' vom Client an das Termi- nal;
(C) Im Client, Ausführen eines Verfahrens zur Schlüsselgenerierung wie oben beschrieben, so dass ein zweiter öffentlicher Client-Schlüssel Pc' des Cli- ent abgeleitet wird;
(C) (2.2) Im Verlauf des Verfahrens zur Schlüsselgenerierung im Client, Übermitteln des dabei erzeugten ersten öffentlichen Client-Schlüssels Pc an das Terminal;
(T) (1.3) Im Terminal, Entgegennehmen eines Passworts PIN_user, das von einem Nutzer an dem Terminal eingegeben worden ist;
(T) (1.4) Im Terminal, Empfangen der vom Client gesendeten verschlüsselten Nonce s' und Entschlüsseln der verschlüsselten Nonce s' mit dem vom Nut- zer eingegebenen Passwort, so dass eine Terminal-Nonce st = Dec(s,' PIN- user) abgeleitet wird; Bemerkung: war das vom Nutzer am Terminal einge- gebene Passwort PIN_user gleich dem richtigen Passwort PIN des Client, dann ist auch die Terminal-Nonce St gleich der ursprünglichen Nonce s;
(T) Im Terminal, Durchführen eines Terminal-Verfahrens zur Schlüsselgene- rierung, umfassend die Schritte:
(T) (2.1) Im Terminal, Erzeugen des ersten asymmetrischen Schlüsselpaars [kt, Pt] des Terminals, umfassend den ersten öffentlichen Terminal-Schlüssel Pt und einen ersten privaten Terminal-Schlüssel kt, wobei der erste öffentli- che Terminal-Schlüssel Pt gebildet wird als Ergebnis der Punktmultiplikation Pt = kt ● G des ersten privaten Terminal-Schlüssels kt mit dem Generator- punkt G der elliptischen Kurve;
(T) (2.2) Im Terminal, Empfangen, vom Client, des ersten öffentlichen Client- Schlüssels Pc;
(T) (3.1), (E3.2*) hn Terminal, Erzeugen eines zweiten asymmetrischen Schlüsselpaars [kt', Pt'] des Terminals, umfassend einen zweiten öffentli- chen Terminal-Schlüssel Pt' und einen zweiten privaten Terminal-Schlüssel kt', wobei der zweite öffentliche Terminal-Schlüssel Pt' gebildet wird als Er- gebnis der Punktmultiplikation Pt' = kt' ● Gt' des ersten privaten Terminal- Schlüssels kt' mit dem Erzeuger Gt' der elliptischen Kurve;
(AUTH) Verwendung des zweiten öffentlichen Client-Schlüssels Pc' und des zweiten öffentlichen Terminal-Schlüssels Pt' in einem Schlüsseleinigungs- und Authentisierungs-Protokoll zwischen dem Client und dem Terminal, beispielsweise im PACE-Protokoll.
Kurze Beschreibung der Zeichnungen
Im Folgenden wird die Erfindung an Hand von Ausführungsbeispielen und unter Bezugnahme auf die Zeichnung näher erläutert, in der zeigen: Fig. 1 Auszüge aus einem beispielhaften herkömmlichen PACE-Protokoll umfassend ein Elliptische Kurven Diffie-Hellman Verfahren zur Schlüsselgenerierung;
Fig. 2 Auszüge aus einem beispielhaften erfindungsgemäß abgewandelten PACE-Protokoll umfassend ein Verfahren zur Schlüsselgenerierung, gemäß einer Ausführungsform der Erfindung, das auf Elementen des Verfahrens aus Fig. 1 aufsetzt.
Detaillierte Beschreibung von Ausführungsbeispielen Fig. 1 zeigt Auszüge aus einem beispielhaften herkömmlichen PACE- Protokoll umfassend ein Elliptische Kurven Diffie-Hellman Verfahren zur Schlüsselgenerierung, das bereits eingangs beschrieben wurde.
Fig. 2 zeigt Auszüge aus einem beispielhaften erfindungsgemäß abgewan- delten PACE-Protokoll umfassend ein Verfahren zur Schlüsselgenerierung, gemäß einer Ausführungsform der Erfindung, das auf Elementen des Ver- fahrens aus Fig. 1 aufsetzt.
In einer bereits verwirklichten, noch unveröffentlichten Implementierung wurde das PACE-Protokoll entsprechend der in Tabelle 1 beschriebenen Schritte implementiert und eine Mult-Add-Funktion, wie in 2.4 beschrieben, bereitgestellt. Alle anderen benötigten Funktionen entsprechen denen, wel- che auch für andere ECC Implementierungen benötigt werden. Die zu- grunde liegende Gruppe ist eine elliptische Kurve mit Generator-Punkt G, der Primzahlordnung hat. In Fig. 1 und 2 werden Integer-Variablen mit klei- nen Buchstaben und Punkte auf der elliptischen Kurve mit großen Buchsta- ben bezeichnet. Der Unterschied des erfindungsgemäßen Verfahrens aus Fig. 2 gegenüber dem herkömmlichen Verfahren Fig. 1 besteht im Wesentlichen in den im Cli- ent ausgeführten Schritten (2.3), (2.4), die im erfindungsgemäßen Verfahren entfallen, und in dem im Client ausgeführten Schritt (E3.2*), der gegenüber dem herkömmlichen Verfahren verändert ist, und in welchem die entfalle- nen Schritte (2.3), (2.4) aufgehen.
Gemäß der Erfindung wird der zweite öffentliche Client Schlüssel berechnet gemäß einer Funktion Pc' = Generate_public_key_with_mapping(G, Pt; sm, m, kc, kc') = (kc'·s)●G + (kc'·kc)●Pt .
Gemäß der in Fig. 2 dargestellten Ausführungsform der Erfindung wird das Schlüsseleinigungs- und Authentisierungsverfahren zwischen dem Client und dem Terminal wie folgt ausgeführt. Die Reihenfolge der Schritte erfolgt soweit durch den Verfahrens verlauf erforderlich, in der angegebenen Rei- henfolge. Soweit eine Reihenfolge nicht durch das Verfahren festgelegt ist, kann die Reihenfolge der Durchführung der Schritte auch von der Reihen- folge, in der die Schritte angeführt sind, abweichen. Als Nonce kann eine maskierte Nonce sm verwendet werden, wie in Fig. 2 als Schritt E1.1* gezeigt. Alternativ kann als Nonce eine unmaskierte Nonce s verwendet werden, ge- mäß Schritt 1.1 von Fig. 1, wie in Fig. 2 durch den Verweis auf Schritt 1.1 von Fig. 1 angedeutet ist.
Schritt 1.1 im Client erfolgt entweder ohne Maskierung der Nonce (1.1 wie in Fig. 1) oder mit Maskierung der Nonce (E1.1* gemäß Fig. 2):
(1.1) Ohne Maskierung der Nonce: (C) (1.1) Im Client, Erzeugen einer Nonce s;
(C) (1.1) Im Client, Verschlüsseln der Nonce s, mit einem im Client gespei- cherten Passwort (PIN), so dass eine verschlüsselter Nonce s' = Enc(s; PIN) erzeugt wird;
(C) (E1.1*) Mit Maskierung der Nonce:
(C) (E1.1*) Im Client, Erzeugen einer Maske m durch die Funktion m = Gene- rate_Mask();
(C) (E1.1*) Im Client, Erzeugen einer maskierten Nonce sm durch die Funk- tion sm = Generate_masked_Nonce(m);
(C) (E1.1*) Im Client, Verschlüsseln der Nonce sm mit der Maske m und dem im Client abgespeicherten Passwort PIN durch die Funktion s' = Enc(sm, m; PIN), so dass die verschlüsselte Nonce s' erzeugt wird.
In beiden Fällen, nicht-maskierte und maskierte Nonce, wird das Verfahren wie folgt weitergeführt:
(C) (1.2) Übermitteln der verschlüsselten Nonce s' vom Client an das Termi- nal;
(T) (1.3) Im Terminal, Entgegennehmen eines Passworts PIN_user, das von einem Nutzer an dem Terminal eingegeben worden ist;
(T) (1.4) Im Terminal, Empfangen der vom Client gesendeten verschlüsselten Nonce s' und Entschlüsseln der verschlüsselten Nonce s' mit dem vom Nut- zer eingegebenen Passwort, so dass eine Terminal-Nonce st = Dec(s,' PIN- user) abgeleitet wird;
(C) (2.1) Im Client, Erzeugen eines ersten asymmetrischen Schlüsselpaars [kc, Pc] des Client, umfassend einen ersten öffentlichen Client-Schlüssel Pc und einen ersten privaten Client-Schlüssel kc, wobei der erste öffentliche Client- Schlüssel Pc gebildet wird als Ergebnis der Punktmultiplikation Pc = kc ● G des ersten privaten Client-Schlüssels kc mit dem Generatorpunkt G der ellip- tischen Kurve; der erste private Client-Schlüssel kc ist eine Zufallszahl, die im Client erzeugt wird; (T) (2.1) Im Terminal, Erzeugen eines ersten asymmetrischen Schlüsselpaars [kt, Pt] des Terminals, umfassend einen ersten öffentlichen Terminal-Schlüs- sel Pt und einen ersten privaten Terminal-Schlüssel kt, wobei der erste öffent- liche Terminal-Schlüssel Pt gebildet wird als Ergebnis der Punktmultiplika- tion Pt = kt ● G des ersten privaten Terminal-Schlüssels kt mit dem Genera- torpunkt G der elliptischen Kurve; der erste private Terminal-Schlüssel kt ist bevorzugt eine Zufallszahl, die bevorzugt im Terminal erzeugt wird;
(C) (2.2) Übermitteln des ersten öffentlichen Client-Schlüssels Pc vom Client an das Terminal;
(T) (2.2) Übermitteln des ersten öffentlichen Terminal-Schlüssels Pt vom Ter- minal an den Client;
(C) (2.2) Im Client, Empfangen, von dem Terminal, des ersten öffentlichen Terminal-Schlüssels Pt;
(T) (2.2) Im Terminal, Empfangen, von dem Client, des ersten öffentlichen Client-Schlüssels Pc;
(T) (E2.3*) Im Terminal, Erzeugen eines abgeleiteten Punktes Ht auf der ellip- tischen Kurve durch Punktmultiplikation Ht = kt ● Pc des vom Client emp- fangenen ersten öffentlichen Client-Schlüssels Pc mit dem ersten privaten Terminal-Schlüssel kt;
(T) (E2.4*) Im Terminal, Ableiten eines abgeleiteten Generatorpunkts Gt' auf der elliptischen Kurve durch Punktmultiplikation der Terminal-Nonce St mit dem Generatorpunkt G und Punktaddition des dabei erzeugten Punkts mit dem abgeleiteten Punkt Ht, gemäß Gt' = st ● G + Ht;
(T) (3.1) Im Terminal, Erzeugen des zweiten privaten Terminal-Schlüssels kt'; (T) (E3.2*) Im Terminal, Ableiten des zweiten öffentlichen Terminal-Schlüs- sels Pt' durch Punktmultiplikation Pt' = kt' ● Gt' des abgeleiteten Generator- punkts Gt' mit dem zweiten privaten Terminal-Schlüssel kt'.
(C) (3.1) Im Client, Erzeugen eines zweiten asymmetrischen Schlüsselpaars [kc', Pc'] des Client, umfassend einen zweiten öffentlichen Client-Schlüssel Pc' und einen zweiten privaten Client-Schlüssel kc'; der zweite private Client- Schlüssel kc' ist eine Zufallszahl, die im Client erzeugt wird;
(C) (E3.2*) Dabei wird der zweite öffentliche Client-Schlüssel Pc' gebildet als Ergebnis der Punktoperahon Pc'= (kc'·s)●G + (kc'·kc)●Pt ; hierbei werden zwei Ergebnisse von zwei Punktmultiplikationen (kc'·s) ●G und (kc'·kc)●Pt erzeugt, einmal durch Punktmultiplikation des Produkts aus dem zweiten privaten Client-Schlüssel kc' und der Client Nonce s (die wahlweise in maskierter Form vorliegen kann) mit dem Generatorpunkt G, und einmal durch Punktmultiplikation des Produkts aus dem zweiten privaten Client-Schlüs- sei kc' und dem ersten privaten Client-Schlüssel kc mit dem ersten öffentli- chen Terminal-Schlüssel Pt; die zwei Ergebnisse werden durch eine Punktad- dition kombiniert, so dass schließlich der zweite öffentliche Schlüssel Pc' des Client abgeleitet wird;
(AUTH) Verwendung des zweiten öffentlichen Client-Schlüssels Pc' und des zweiten öffentlichen Terminal-Schlüssels Pt' in einem Authenhsierungs- und Schlüsseleinigungs-Protokoll zwischen dem Client und dem Terminal, bei- spielsweise im PACE-Protokoll.

Claims

P a t e n t a n s p r ü c h e
1. Verfahren zur Schlüsselgenerierung, eingerichtet in einer Client-Prozesso- reinrichtung, mittels dessen ein zweiter öffentlicher Client-Schlüssel Pc' des Client abgeleitet wird, wobei das Verfahren zur Schlüsselgenerierung die in der Client-Prozessoreinrichtung durchgeführten Schritte umfasst:
(1.1) Erzeugen einer Nonce s;
(2.1) Erzeugen eines ersten asymmetrischen Schlüsselpaars [kc, Pc] des Client, umfassend einen ersten öffentlichen Client-Schlüssel Pc und einen ersten pri- vaten Client-Schlüssel kc, wobei der erste öffentliche Client-Schlüssel Pc ge- bildet wird als Ergebnis der Punktmultiplikation Pc = kc ● G des ersten priva- ten Client-Schlüssels kc mit dem Generatorpunkt G der elliptischen Kurve;
(2.2) Empfangen, von einem Terminal, eines ersten öffentlichen Terminal- Schlüssels Pt, der in einem ersten asymmetrischen Schlüsselpaar des Termi- nals umfasst ist, das den ersten öffentlichen Terminal-Schlüssel Pt und einen ersten privaten Terminal-Schlüssel kt umfasst;
(3.1) Erzeugen eines zweiten asymmetrischen Schlüsselpaars [kc', Pc'] des Client, umfassend einen zweiten öffentlichen Client-Schlüssel Pc' und einen zweiten privaten Client-Schlüssel kc'; dadurch gekennzeichnet, dass der öffentliche Schlüssel Pc' durch eine Berechnung, oder Folge von Berech- nungen, gebildet wird, welche keine Operation enthält, deren Ergebnis aus- schließlich von der Nonce s und mindestens einem öffentlichen Wert ab- hängt.
2. Verfahren zur Schlüsselgenerierung, eingerichtet in einer Client-Prozesso- reinrichtung, mittels dessen ein zweiter öffentlicher Client-Schlüssel Pc' des Client abgeleitet wird, wobei das Verfahren zur Schlüsselgenerierung die in der Client-Prozessoreinrichtung durchgeführten Schritte umfasst: (1.1) Erzeugen einer Nonce s;
(2.1) Erzeugen eines ersten asymmetrischen Schlüsselpaars [kc, Pc] des Client, umfassend einen ersten öffentlichen Client-Schlüssel Pc und einen ersten pri- vaten Client-Schlüssel kc, wobei der erste öffentliche Client-Schlüssel Pc ge- bildet wird als Ergebnis der Punktmultiplikation Pc = kc ● G des ersten priva- ten Client-Schlüssels kc mit dem Generatorpunkt G der elliptischen Kurve;
(2.2) Empfangen, von einem Terminal, eines ersten öffentlichen Terminal- Schlüssels Pt, der in einem ersten asymmetrischen Schlüsselpaar des Termi- nals umfasst ist, das den ersten öffentlichen Terminal-Schlüssel Pt und einen ersten privaten Terminal-Schlüssel kt umfasst;
(3.1) Erzeugen eines zweiten asymmetrischen Schlüsselpaars [kc', Pc'] des Client, umfassend einen zweiten öffentlichen Client-Schlüssel Pc' und einen zweiten privaten Client-Schlüssel Kc'; dadurch gekennzeichnet, dass der öffentliche Schlüssel Pc' durch eine Berechnung, oder Folge von Berech- nungen, gebildet wird, in welcher in jede Operation, in welche die Nonce s eingeht, mindestens ein nicht-öffentlicher Wert eingeht, insbesondere der erste private Client-Schlüssel kc oder der zweite private Client-Schlüssel kc'.
3. Verfahren nach Anspruch 1 oder 2, wobei:
- als öffentlicher Wert oder öffentliche Werte mindestens einer der folgenden vorgesehen ist: der Generatorpunkt G, der erste öffentliche Terminal-Schlüs- sel Pt, der erste private Terminal-Schlüssel kt, der Zwischenwert Hc des PACE-Protokolls; oder/ und - als nicht-öffentlicher Wert mindestens einer der folgenden vorgesehen ist:: der erste private Client-Schlüssel kc , der zweite private Client-Schlüssel kc'.
4. Verfahren nach einem der Ansprüche 1 bis 3, wobei Schritt (E3.2*) durch- geführt wird als eine der folgenden Berechnungen (i), (ii), (iii) oder (iv), die in sich ein oder mehrere Operationen, insbesondere Punktadditionen + o- der/ und Punktmultiplikationen ● oder / und modulare Multiplikationen · oder / und modulare Divisionen /, umfassen:
(i) Pc' = P1 + P2 , mit: P1 = (kc'·s)●G oder P1 = s ● (kc'●G), und mit: P2 gleich dem Ergebnis einer Operation oder Folge von Operationen mit dem zweiten privaten Client-Schlüssel kc', dem ersten privaten Client- Schlüssel kc und dem ersten öffentlichen Terminal-Schlüssel Pt; insbesondere: P2 = (kc'·kc)● Pt ; oder P2 = kc'●Hc ; oder
(ii) Pc'= (kc'·s)●(G + (kc / s)●Pt); oder
(iii) Pc'= s ● ((kc'●G) + (kc' / s)●Hc); oder
(iv) Pc'= s ● ((kc'●G) + (kc'·kc / s)●Pt); wobei Hc gleich dem Ergebnis der Punktoperation Hc = kc●Pt .
5. Verfahren zur Schlüsselgenerierung nach einem der Ansprüche 1 bis 4, wobei Schritt (1.1) Erzeugen einer Nonce durchgeführt wird als: (E1.1*) Erzeugen und Bereitstellen, oder Bereitstellen, mindestens eines Mas- kierungswerts m; Erzeugen einer maskierten Nonce sm; und wobei in Schritt (E3.2*) als Nonce s die maskierte Nonce sm und der Maskierungswert m, [sm, m], verwendet werden.
6. Verfahren nach Anspruch 5, wobei
(E3.2*) wobei Schritt (E3.2*) durchgeführt wird als eine der folgenden Be- rechnungen: Pc' = P1 + P2 , mit: oder
Figure imgf000021_0001
P1 = und
Figure imgf000021_0002
mit: P2 gleich dem Ergebnis einer Punktoperation oder Folge von Punktope- rationen an dem zweiten privaten Client-Schlüssel kc', dem ersten privaten Client-Schlüssel kc und dem ersten öffentlichen Terminal-Schlüssel Pt.
7. Verfahren nach einem der Ansprüche 1 bis 6, weiter umfassend:
(C) (1.1) Im Client, Verschlüsseln der Nonce s mit einem im Client gespei- cherten Passwort PIN, so dass eine verschlüsselte Nonce s' = Enc(s; PIN) er- zeugt wird, oder im Fall einer maskierten Nonce sm (E1.1*) Verschlüsseln der maskierten Nonce sm und der Maske m mit dem Passwort PIN, so dass eine verschlüsselte Nonce s' = Enc'(sm, m; PIN) erzeugt wird;
(C) (1.2) Übermitteln der verschlüsselten Nonce s' vom Client an das Termi- nal.
8. Client-Prozessoreinrichtung, eingerichtet ein Verfahren zur Schlüsselgene- rierung gemäß einem der Ansprüche 1 bis 7 auszuführen.
9. Verfahren zur Schlüsseleinigung und Authentisierung zwischen einem Client und einem Terminal, umfassend die Schritte:
(C) Im Client, Durchführen eines Verfahrens zur Schlüsselgenerierung ge- mäß Anspruch 7, so dass ein zweiter öffentlicher Client-Schlüssel Pc' des Cli- ent abgeleitet wird;
(C) (2.2) Übermitteln des ersten öffentlichen Client-Schlüssels Pc an das Ter- minal;
(T) (1.2) Im Terminal, Entgegennehmen eines Passworts PIN_user, das von einem Nutzer an dem Terminal eingegeben worden ist;
(T) (1.4) Im Terminal, Empfangen der vom Client gesendeten verschlüsselten Nonce s' und Entschlüsseln der verschlüsselten Nonce s' mit dem vom Nut- zer eingegebenen Passwort PIN_user, so dass eine Terminal-Nonce st = Dec(s,' PIN_user) abgeleitet wird;
(T) Im Terminal, Durchführen eines Terminal-Verfahrens zur Schlüsselgene- rierung, umfassend die Schritte:
(T) (2.1) Im Terminal, Erzeugen des ersten asymmetrischen Schlüsselpaars [kt Pt] des Terminals, umfassend den ersten öffentlichen Terminal-Schlüssel Pt und den ersten privaten Terminal-Schlüssel kt, wobei der erste öffentliche Terminal-Schlüssel Pt gebildet wird als Ergebnis der Punktmultiplikahon Pt = kt ● G des ersten privaten Terminal-Schlüssels kt mit dem Generatorpunkt G auf der elliptischen Kurve;
(T) (2.2) Im Terminal, Empfangen, vom Client, des ersten öffentlichen Client- Schlüssels Pc;
(T) Im Terminal, Erzeugen eines zweiten asymmetrischen Schlüsselpaars [kt' ,Pt'] des Terminals, umfassend einen zweiten öffentlichen Terminal-Schlüssel Pt' und einen zweiten privaten Terminal-Schlüssel kt', wobei der zweite öf- fentliche Terminal-Schlüssel Pt' abgeleitet wird unter Verwendung des vom Client empfangenen ersten öffentlichen Client-Schlüssels Pc, des ersten pri- vaten Terminal-Schlüssel kt, der Terminal-Nonce st', des Generatorpunkts G auf der elliptischen Kurve, und des zweiten privaten Terminal-Schlüssels kt'; (AUTH) Verwendung des zweiten öffentlichen Client-Schlüssels Pc' und des zweiten öffentlichen Terminal-Schlüssels Pt' in einem Schlüsseleinigungs- und Authentisierungs-Protokoll zwischen dem Client und dem Terminal.
10. Verfahren nach Anspruch 9, wobei beim Erzeugen des zweiten asymmet- rischen Schlüsselpaars [kt' ,Pt'] des Terminals der zweite öffentliche Termi- nal-Schlüssel Pt' abgeleitet wird durch folgende Teilschritte:
(T) (2.3) Im Terminal, Erzeugen eines abgeleiteten Punktes Ht auf der ellipti- schen Kurve durch Punktmultiplikahon Ht = kt ● Pc des vom Client empfan- genen ersten öffentlichen Client-Schlüssels Pc mit dem ersten privaten Ter- minal-Schlüssel kt;
(T) (2.4) Im Terminal, Ableiten eines abgeleiteten Generatorpunkts Gt' auf der elliptischen Kurve durch Punktmulhplikation der Terminal-Nonce St mit dem Generatorpunkt G und Punktaddihon des dabei erzeugten Punkts mit dem abgeleiteten Punkt Ht, gemäß Gt' = st ● G + Ht; (T) (3.1) Im Terminal, Erzeugen des zweiten privaten Terminal-Schlüssels kt'; (T) (E3.2*) Im Terminal, Ableiten des zweiten öffentlichen Terminal-Schlüs- sels Pt' durch Punktmultiplikation Pt' = kt' ● Gt' des abgeleiteten Generator- punkts Gt' mit dem zweiten privaten Terminal-Schlüssel kt'.
11. Verfahren nach Anspruch 9 oder 10, wobei als Protokoll das PACE- Protokoll verwendet wird.
12. Verfahren nach einem der Ansprüche 1 bis 7 oder 9 bis 11, wobei als der private Client-Schlüssel eines jeweiligen Schlüsselpaars eine Zufallszahl vor- gesehen wird, die in dem Client erzeugt wird oder außerhalb des Client er- zeugt und gesichert in den Client übertragen und dort gesichert - flüchtig o- der permanent - gespeichert wird; oder/ und wobei als der private Terminal- Schlüssel eines jeweiligen Schlüsselpaars eine Zufallszahl vorgesehen wird, die in dem Terminal erzeugt wird oder außerhalb des Terminals erzeugt und gesichert in das Terminal gespeichert wird.
PCT/EP2021/025040 2020-02-07 2021-02-03 Schlüsselgenerierung und pace mit sicherung gegen seitenkanalangriffe WO2021156005A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP21703830.6A EP4101118A1 (de) 2020-02-07 2021-02-03 Schlüsselgenerierung und pace mit sicherung gegen seitenkanalangriffe
US17/760,016 US20230041237A1 (en) 2020-02-07 2021-02-03 Key generation and pace with protection against side channel attacks

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102020000814.3 2020-02-07
DE102020000814.3A DE102020000814A1 (de) 2020-02-07 2020-02-07 Schlüsselgenerierung und PACE mit Sicherung gegen Seitenkanalangriffe

Publications (1)

Publication Number Publication Date
WO2021156005A1 true WO2021156005A1 (de) 2021-08-12

Family

ID=74561843

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2021/025040 WO2021156005A1 (de) 2020-02-07 2021-02-03 Schlüsselgenerierung und pace mit sicherung gegen seitenkanalangriffe

Country Status (4)

Country Link
US (1) US20230041237A1 (de)
EP (1) EP4101118A1 (de)
DE (1) DE102020000814A1 (de)
WO (1) WO2021156005A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022002399A1 (de) 2022-07-01 2023-07-20 Giesecke+Devrient Mobile Security Gmbh Schlüsselgenerierung und PACE mit Sicherung gegen Seitenkanalangriffe

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021003275B3 (de) 2021-06-24 2022-07-14 Giesecke+Devrient Mobile Security Gmbh Verfahren zur Berechnung eines Übergangs von einer booleschen zu einer arithmetischen Maskierung

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9584320B1 (en) * 2014-12-23 2017-02-28 EMC IP Holding Company LLC Blinding function in elliptic curve cryptography

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013203257A1 (de) 2013-02-27 2014-08-28 Bundesdruckerei Gmbh Lesen eines Attributs aus einem ID-Token

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9584320B1 (en) * 2014-12-23 2017-02-28 EMC IP Holding Company LLC Blinding function in elliptic curve cryptography

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ALEX WIESMAIER ET AL: "An efficient mobile PACE implementation", INFORMATION, COMPUTER AND COMMUNICATIONS SECURITY, ACM, 2 PENN PLAZA, SUITE 701 NEW YORK NY 10121-0701 USA, 22 March 2011 (2011-03-22), pages 176 - 185, XP058002609, ISBN: 978-1-4503-0564-8, DOI: 10.1145/1966913.1966936 *
ANONYMOUS: "BSI TR-03110 Advanced Security Mechanisms for Machine Readable Travel Documents", TECHNICAL GUIDELINES, 20 March 2012 (2012-03-20), DE, pages 1 - 131, XP055029789, Retrieved from the Internet <URL:https://www.bsi.bund.de/DE/Publikationen/TechnischeRichtlinien/tr03110/index_htm.html> [retrieved on 20120613] *
BSI: "Elliptic Curve Cryptography", 28 June 2012 (2012-06-28), XP055362584, Retrieved from the Internet <URL:https://www.bsi.bund.de/SharedDocs/Downloads/EN/BSI/Publications/TechGuidelines/TR03111/BSI-TR-03111_pdf.pdf;jsessionid=BEA61004DB0EB5998B41DA8DE81999EA.2_cid360?__blob=publicationFile&v=1> [retrieved on 20170406] *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022002399A1 (de) 2022-07-01 2023-07-20 Giesecke+Devrient Mobile Security Gmbh Schlüsselgenerierung und PACE mit Sicherung gegen Seitenkanalangriffe

Also Published As

Publication number Publication date
US20230041237A1 (en) 2023-02-09
DE102020000814A1 (de) 2021-08-12
EP4101118A1 (de) 2022-12-14

Similar Documents

Publication Publication Date Title
DE60001630T2 (de) Sichere gegenseitige Netzwerkauthenifizierung und Schlüselaustauschprotokoll
DE2843583C2 (de) Verfahren für den zugriffsicheren Nachrichtenverkehr über einen ungesicherten Nachrichtenübertragungskanal
EP0472714B1 (de) Verfahren zur authentifizierung eines eine datenstation benutzenden anwenders
DE69834431T3 (de) Leckresistentes kryptographisches verfahren und vorrichtung
DE69633590T2 (de) Verfahren zur Unterschrift und zur Sitzungsschlüsselerzeugung
DE60313704T2 (de) Verfahren und Vorrichtung zur Erzeugung eines Geheimschlüssels
EP0903026B1 (de) Verfahren zur Aushandlung einer Sicherheitspolitik zwischen einer ersten Computereinheit und einer zweiten Computereinheit
DE69311581T2 (de) Verfahren und system zur authentifizierten sicheren schlüsselverteilung in einem kommunikationssystem
DE60036112T2 (de) Serverunterstützte wiedergewinnung eines starken geheimnisses aus einem schwachen geheimnis
DE60302276T2 (de) Verfahren zur ferngesteuerten Änderung eines Kommunikationspasswortes
DE60006147T2 (de) Schlüsselzustimmungsprotokoll mit getrennten Schlüsseln
DE69921039T2 (de) Verfahren zur Erstellung eines Schlüssels unter Verwendung einer Funkkommunikation und eines Kennwortprotokolls
EP1125395B1 (de) Verfahren und anordnung zur authentifikation von einer ersten instanz und einer zweiten instanz
DE69932740T2 (de) Verfahren und vorrichtung zur kryptographischen datenverarbeitung
EP2656535B1 (de) Kryptographisches verfahren
WO2016074774A1 (de) Gehärtete white box implementierung
DE10143728B4 (de) Vorrichtung und Verfahren zum Berechnen eines Ergebnisses einer modularen Exponentiation
DE69838258T2 (de) Public-Key-Datenübertragungssysteme
EP1368929B1 (de) Verfahren zur authentikation
DE69911815T2 (de) Selbstkorrigierendes zufallsverschlüsselungssystem und -verfahren
WO2021156005A1 (de) Schlüsselgenerierung und pace mit sicherung gegen seitenkanalangriffe
CH711133B1 (de) Protokoll zur Signaturerzeugung
DE102015015953B3 (de) Kryptoalgorithmus mit schlüsselabhängigem maskiertem Rechenschritt (SBOX-Aufruf)
DE602004010494T2 (de) Kryptographische Authentifizierung einer Vorrichtung
EP2730050B1 (de) Verfahren zur erstellung und überprüfung einer elektronischen pseudonymen signatur

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21703830

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2021703830

Country of ref document: EP

Effective date: 20220907