Schlüsselgenerierung und PACE mit Sicherung gegen Seitenkanalangriffe Key generation and PACE with protection against side-channel attacks
Gebiet der Erfindung Field of invention
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. The invention relates to a key generation method which is part of an authentication method and key agreement method between a client and a terminal. The authentication process and key agreement process can be used in particular in the PACE protocol for authentication and for establishing encrypted communication between a machine-readable travel document with a chip and a terminal, with the machine-readable travel document as the client.
Stand der Technik State of the art
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. The PACE protocol BSI TR-03110 (PACE = Password Authenticated Connection Establishment) is a method for authentication and key agreement between the chip of a machine-readable travel document (client) and a terminal that has access to the chip using a password , which is stored in the client with secure access and which must be entered on the terminal at the beginning of the PACE protocol.
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. BSI-TR-03111 describes an implementation of the PACE protocol in elliptic curve cryptography. This conversion into elliptic curve cryptography is formed by a series of calculations. Each calculation is formed as a combination of one or more operations. The operations provided are, for example, point additions + on an elliptical curve, point multiplications ● on the elliptical curve, modular multiplications ·, modular divisions /, modular additions + and / and modular subtractions -. In the sequence of calculations, each calculation calculates a result. Likewise, every operation within a calculation calculates a result. The PACE method comprises the following steps, which are illustrated in FIG. 1 using an example of an elliptical curve-based PACE method. 1 and 2 contain partially linguistic text and partially pseudo program code parts such as "if <condition> then <sequence>" for a corresponding action, for example checking whether a condition is met and determining or initiating a sequence to indicate a processor device.
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. 1. Generation and transmission of the nonce. Step 1.1: The chip in the client (travel document) generates a random number (nonce) s, which is kept secret, and encrypts it with the password PIN stored internally in the client as a key to an encrypted random number (nonce) s'. Step 1.2: The client sends the encrypted random number s' to the terminal. A user enters the password PIN_user on the terminal. Step 1.3: the terminal receives the random number PIN_user entered by the user. Step 1.4: the terminal decrypts the received encrypted random number s' with the password PIN_user entered by the user and receives a number s t that matches s if the user has entered the correct password (PIN = PIN_user).
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. 2. First ECDH key generation and calculation of a new generator. 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 ; Step 2.2: Client and terminal send each other the public key; Steps 2.3-2.4: Client and terminal map the random number s or s t using a mapping function, here generic mapping, to a generator G c 'or G t ' of the mathematical group used, here an elliptic curve. The mapping is essentially a sequence of operations - point multiplications and point additions - on the elliptical Curve. If the user has entered the correct password (PIN = PIN_user), G c 'matches G t'.
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'. 3. Second ECDH key generation. The chip and the terminal carry out an ECDH - elliptic curve Diffie-Hellman - key generation. Steps 3.1-3.2: In the ECDH key generation, the chip and the terminal each generate a second 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 'based on the generators G c ' and G t 'calculated in FIG.
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. In the PACE protocol, following the key generation (Fig. 1: 3.2), key derivation steps and key exchange steps (Fig. 1: 3.3, similar to steps 2.2 and 2.3 of Fig. 1) take place between the client and the terminal, up to and including the client and the terminal have derived a shared secret that is used for authentication and encryption of communication between client and terminal. These further steps following the key generation are not considered further here and can be carried out in connection with the key generation according to the invention, as is known from the PACE protocol.
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. More precisely, in step 2.1, a key pair [k c , P c ] is derived at the client with the following keys. Private key k c of the client; this is a random number generated by means of a chip-internal function Generate_secret_key (). Public key P c of the client; this is derived using an internal chip function Generate_public_key (G; k c ) according to P c = k c ● G, by point multiplication ● of the client's private key k c with the generator point G of the elliptic curve. Furthermore, in step 2.1 at the terminal a key pair [k t , P t ] is derived with the following keys. Terminal private key k t; this is one by means of an internal terminal Function Generate_secret_key () generated random number. Public key P t of the terminal; this is derived using an internal terminal function Generate_public_key (G; k t ) according to P t = Generate_public_key (G; k t ) = k t ● G, by point multiplication ● of the private terminal key k t with the generator point G der elliptical curve.
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. With the generic mapping shown in steps 2.3-2.4, an auxiliary point H c on the elliptical curve is calculated in step 2.3 in the client according to H c = k c ● P t , and in the terminal an auxiliary point H t on the elliptic curve is calculated according to H t = k t ● P c . In step 2.4, a mapped generator point G c 'is derived in the client according to G c ' = s · G + H c , and in the terminal a mapped generator point GF is derived according to GF = s t · G + H t . If the protocol is executed correctly, H t = H c applies regardless of the PIN_user password entered by the 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. So-called public parameters are used in the PACE protocol. 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. In the following, we use the term public values, by which the public parameters as well as all values that the terminal can generate or calculate (= form) without knowledge of the PIN (and therefore of course know itself) are designated . The public values also include, for example, the auxiliary point H t and the private terminal key k t . In addition, there are 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 '. In side-channel attacks, side-channel information from a processor device executing a calculation is evaluated in order to find characteristics therein which reflect the data used in the calculation. Side channel information can be, for example, the power consumption of the processor device or the electromagnetic radiation emitted by it while the calculation is being carried out. The calculation can be, for example, a cryptographic calculation. Data can be, for example, input data, secret keys, intermediate values and output data from the calculation.
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. As can be seen from FIG. 1 of the above illustration, a point multiplication is carried out in each case on the elliptical curve used in computing steps 2.4 and 3.2, in which the nonce s or the point G c 'is processed in unprotected form. This means that side channel information such as current profile or electromagnetic radiation from the processor device in which the calculation is carried out can have characteristics which are characteristic of the value of the nonce s or of the point G c '.
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. Known side-channel attacks such as Simple Power Analysis SPA or Differential Power Analysis DPA could spy on the nonce s, but it has to remain secret. Results of calculations and results of operations can provide information in side-channel attacks that an attacker can exploit.
Zusammenfassung der Erfindung Summary of the invention
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. 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.
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. 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.
Das Verfahren zur Schlüsselgenerierung umfasst die in der Client-Prozesso- reinrichtung durchgeführten Schritte: (1.1) Erzeugen einer Nonce s; The method for key generation comprises the steps carried out in the client processor device: (1.1) generating a 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.1) Generating a first asymmetric key pair [k c , P c ] of the client, comprising a first public client key P c and a first private client key k c , the first public client key P c being is formed as the result of the point multiplication P c = k c ● G of the private client key k c with the generator point G of the elliptic curve;
(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'; (2.2) Receiving, from a terminal, a first public terminal key P t which is part of the first asymmetric key pair of the terminal which has the first public terminal key P t and the first private terminal key k t includes; (3.1), (3.2) Generating a second asymmetric key pair [k c ', P c '] of the client, comprising the second public client key P c 'and a second private client key k c ';
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. The method according to a first alternative of the invention is characterized in that the public key P c 'by a calculation, or Sequence of calculations, which does not contain an operation, the result of which depends exclusively on the nonce s and at least one public value.
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'. 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 '.
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. Steps (1.1), (2.1), (2.2) and (3.1) are carried out essentially as in the conventional method for key generation shown in FIG. 1. The conventional steps (2.3), (2.4) do not apply to the 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. In the conventional step (2.4), a point multiplication s ● G of the generator point G is carried out with the nonce s in plain text, so that only two input values generator point G and nonce s are included in the calculation.
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. The generator point G and the public keys, ie the first and second public terminal keys and the first and second public client 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.
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. According to the invention, operations are avoided in which only the nonce s and a public value or the nonce s and several public values are included. Rather, every operation goes into at least one value that is neither the nonce s nor a public value.
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. As a result, side-channel emissions of the nonces are blurred by the additional side-channel emissions of the value or values that are neither the nonces nor a public value, as a result of which side-channel attacks are made more difficult or entirely prevented.
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. Therefore, according to claim 1, a method for key generation is created which has improved protection against side-channel attacks, in particular the attack described above.
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. For example, in (E3.2 *) 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.
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. As a result, side-channel emissions from the nonces are blurred by the additional side-channel emissions from the second private client key k c ', as a result of which side-channel attacks are made very difficult or entirely prevented. Another variant of the method uses a masked nonce and its mask or masks instead of the nonce. Masking of the nonce is not provided in current methods for key generation, but may be desired in future methods in order to further increase security against side-channel attacks.
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). According to an advantageous development, the method for key generation in step (1.1) further comprises: (E1.1 *) Generating and providing, or only providing (without internal calculation in the client, ie, for example, external calculation and secure transmission to the client) , a masked nonce s m and a masking value m associated with the masked nonce s m (or several associated masking values).
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
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. According to some embodiments, if the masked nonce s m is masked additively, for example, with s = (s m + m) mod n and mod n im In the case of k masking values, n the group order of the elliptical curve, in step (E3.2 *) 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.
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: A method according to the invention 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). In detail, the key agreement and authentication process includes the following steps:
(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.1) In the client, encrypt the nonce s (with the input of the encryption possibly being the masked nonce and the mask (s)) with a password (PIN) stored in the client, so that an encrypted nonce s' = Enc (s; PIN) (or, if applicable, Enc '(s m , m; PIN), where Enc (s; PIN) = Enc' (s m , m; PIN) applies, i.e. 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;
(C) (1.2) Übermitteln der verschlüsselten Nonce s' vom Client an das Termi- nal; (C) (1.2) Transmission of the encrypted nonce s' from the client to the terminal;
(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) In the client, executing a method for key generation as described above, so that a second public client key P c 'of the client is derived;
(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; (C) (2.2) In the course of the method for key generation in the client, transmission of the first public client key P c generated in the process to the terminal;
(T) (1.3) Im Terminal, Entgegennehmen eines Passworts PIN_user, das von einem Nutzer an dem Terminal eingegeben worden ist; (T) (1.3) In the terminal, receiving a password PIN_user which has been entered by a user at the terminal;
(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) (1.4) In the terminal, receiving the encrypted nonce s' sent by the client and decrypting the encrypted nonce s' with the password entered by the user, so that a terminal nonce s t = Dec (s, 'PIN- user) is derived; Note: if the PIN_user password entered by the user at the terminal was the same as the correct PIN password of the client, then the terminal nonce S t is also the same as the original nonce s;
(T) Im Terminal, Durchführen eines Terminal-Verfahrens zur Schlüsselgene- rierung, umfassend die Schritte: (T) In the terminal, carrying out a terminal procedure for key generation, comprising the steps:
(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.1) In the terminal, generating the terminal's first asymmetrical key pair [k t , P t ], comprising the first public terminal key P t and a first private terminal key k t , the first public terminal -Key P t is formed as the result of the point multiplication P t = k t ● G of the first private terminal key k t with the generator point G of the elliptic curve;
(T) (2.2) Im Terminal, Empfangen, vom Client, des ersten öffentlichen Client- Schlüssels Pc; (T) (2.2) In the terminal, receiving, from the client, the first public client key P c ;
(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; (T) (3.1), (E3.2 *) hn terminal, generating a second asymmetrical key pair [k t ', P t '] of the terminal, comprising a second public terminal key P t 'and a second private terminal Key k t ', where the second public terminal key P t ' is formed as the result of the point multiplication P t '= k t ' ● G t 'of the first private terminal key k t ' with the producer G t ' the elliptic curve;
(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. (AUTH) Use of the second public client key P c 'and the second public terminal key P t ' in a key agreement and authentication protocol between the client and the terminal, for example in the PACE protocol.
Kurze Beschreibung der Zeichnungen Brief description of the drawings
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; In the following, the invention is explained in more detail on the basis of exemplary embodiments and with reference to the drawing, in which: 1 shows excerpts from an exemplary conventional PACE protocol comprising an elliptic curve Diffie-Hellman method for key generation;
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. 2 excerpts from an exemplary PACE protocol modified according to the invention, comprising a method for key generation, according to an embodiment of the invention, which is based on elements of the method from FIG. 1.
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. DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS FIG. 1 shows excerpts from an exemplary conventional PACE protocol comprising an elliptic curve Diffie-Hellman method for key generation, which has already been described at the beginning.
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. FIG. 2 shows excerpts from an exemplary PACE protocol modified according to the invention, comprising a method for key generation, according to an embodiment of the invention, which is based on elements of the method from FIG.
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. In an implementation that has already been realized, as yet unpublished, 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. In FIGS. 1 and 2, integer variables are denoted by small letters and points on the elliptic curve are denoted by capital letters. The difference between the method according to the invention from FIG. 2 and the conventional method in FIG. 1 consists essentially in the steps (2.3), (2.4) executed in the client, which are omitted in the method according to the invention, and in the step (E3 .2 *), which has been changed compared to the conventional method, and in which the omitted steps (2.3), (2.4) are taken up.
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 . According to the invention, the second public client key is calculated according to a function P c '= Generate_public_key_with_mapping (G, P t ; s m , m, k c , k c ') = (k c '· s) ● G + (k c '· K c ) ● P t .
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. According to the embodiment of the invention shown in FIG. 2, the key agreement and authentication method between the client and the terminal is carried out as follows. The sequence of the steps is carried out in the specified sequence, as far as required by the course of the procedure. If a sequence is not determined by the method, the sequence in which the steps are carried out can also differ from the sequence in which the steps are listed. A masked nonce s m can be used as the nonce, as shown in FIG. 2 as step E1.1 *. Alternatively, an unmasked nonce s can be used as the nonce, according to step 1.1 of FIG. 1, as indicated in FIG. 2 by the reference to step 1.1 of FIG.
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): 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):
(1.1) Ohne Maskierung der Nonce:
(C) (1.1) Im Client, Erzeugen einer Nonce s; (1.1) Without masking the nonce: (C) (1.1) In the client, generating a 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) (1.1) In the client, encrypt the nonce s with a password (PIN) stored in the client, so that an encrypted nonce s' = Enc (s; PIN) is generated;
(C) (E1.1*) Mit Maskierung der Nonce: (C) (E1.1 *) With masking of the nonce:
(C) (E1.1*) Im Client, Erzeugen einer Maske m durch die Funktion m = Gene- rate_Mask(); (C) (E1.1 *) In the client, generation of a mask m using the function m = Generate_Mask ();
(C) (E1.1*) Im Client, Erzeugen einer maskierten Nonce sm durch die Funk- tion sm = Generate_masked_Nonce(m); (C) (E1.1 *) In the client, generation of a masked nonce s m by the function s m = 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. (C) (E1.1 *) In the client, encrypt the nonce s m with the mask m and the password PIN stored in the client using the function s' = Enc (s m , m; PIN), so that the encrypted nonce s ' is produced.
In beiden Fällen, nicht-maskierte und maskierte Nonce, wird das Verfahren wie folgt weitergeführt: In both cases, unmasked and masked nonce, the procedure continues as follows:
(C) (1.2) Übermitteln der verschlüsselten Nonce s' vom Client an das Termi- nal; (C) (1.2) Transmission of the encrypted nonce s' from the client to the terminal;
(T) (1.3) Im Terminal, Entgegennehmen eines Passworts PIN_user, das von einem Nutzer an dem Terminal eingegeben worden ist; (T) (1.3) In the terminal, receiving a password PIN_user which has been entered by a user at the terminal;
(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; (T) (1.4) In the terminal, receiving the encrypted nonce s' sent by the client and decrypting the encrypted nonce s' with the password entered by the user, so that a terminal nonce s t = Dec (s, 'PIN- user) is derived;
(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.1) In the client, generating a first asymmetric key pair [k c , P c ] of the client, comprising a first public client key P c and a first private client key k c , the first public client key P c is formed as the result of the point multiplication P c = k c ● G of the first private client key k c with the generator point G of the elliptical curve; the first private client key k c is a random number generated in the client; (T) (2.1) In the terminal, generating a first asymmetric key pair [k t , P t ] of the terminal, comprising a first public terminal key P t and a first private terminal key k t , the first public key The actual terminal key P t is formed as the result of the point multiplication P t = k t ● G of the first private terminal key k t with the generator point G of the elliptic curve; the first private terminal key k t is preferably a random number that is preferably generated in the terminal;
(C) (2.2) Übermitteln des ersten öffentlichen Client-Schlüssels Pc vom Client an das Terminal; (C) (2.2) transmitting the first public client key P c from the client to the terminal;
(T) (2.2) Übermitteln des ersten öffentlichen Terminal-Schlüssels Pt vom Ter- minal an den Client; (T) (2.2) transmission of the first public terminal key P t from the terminal to the client;
(C) (2.2) Im Client, Empfangen, von dem Terminal, des ersten öffentlichen Terminal-Schlüssels Pt; (C) (2.2) In the client, receiving, from the terminal, the first public terminal key P t ;
(T) (2.2) Im Terminal, Empfangen, von dem Client, des ersten öffentlichen Client-Schlüssels Pc; (T) (2.2) In the terminal, receiving, from the client, the first public client key P c ;
(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.3 *) In the terminal, generation of a derived point H t on the elliptical curve by point multiplication H t = k t ● P c of the first public client key P c received from the client with the first private terminal key k t ;
(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) (E2.4 *) In the terminal, deriving a derived generator point G t 'on the elliptical curve by multiplying the terminal nonce St with the generator point G and adding the point generated with the derived point H t , according to G t '= s t ● G + H t ;
(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'. (T) (3.1) In the terminal, generating the second private terminal key k t '; (T) (E3.2 *) In the terminal, derive the second public terminal key P t 'by point multiplication Pt' = k t '● G t ' of the derived generator point G t 'with the second private terminal Key k t '.
(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) (3.1) In the client, generating a second asymmetric key pair [k c ', P c '] of the client, comprising a second public client key P c 'and a second private client key k c '; the second private client key k c 'is a random number that is generated in the client;
(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; (C) (E3.2 *) The second public client key P c 'is formed as the result of the point operation P c ' = (k c '· s) ● G + (k c ' · k c ) ● P t ; Here, two results of two point multiplications (k c '· s) ● G and (k c ' · k c ) ● P t are generated, once by point multiplication of the product of the second private client key k c 'and the client nonce s (which can optionally be present in masked form) with the generator point G, and once by point multiplication of the product of the second private client key k c 'and the first private client key k c with the first public terminal key P t ; the two results are combined by a point addition, so that finally the second public key P c 'of the client is derived;
(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.
(AUTH) Use of the second public client key P c 'and the second public terminal key P t ' in an authentication and key agreement protocol between the client and the terminal, for example in the PACE protocol.