Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR CALCULATING A TRANSITION FROM A BOOLEAN MASKING TO AN ARITHMETIC MASKING
Document Type and Number:
WIPO Patent Application WO/2022/268364
Kind Code:
A1
Abstract:
The invention relates to a method for changing a masking from a Boolean mask to an arithmetic mask with a modulus (2m *p), wherein m is a whole number which is greater than or equal to null, and p has at least one prime divisor which is not equal to 2 so that a carry is generated. The carry is masked or balanced in order to protect the carry against an access violation.

Inventors:
HOFFMANN LARS (DE)
Application Number:
PCT/EP2022/025288
Publication Date:
December 29, 2022
Filing Date:
June 23, 2022
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
GIESECKE DEVRIENT MOBILE SECURITY GMBH (DE)
International Classes:
H04L9/00; G06F7/72; G06F7/76; G06F21/75; H04W12/47
Domestic Patent References:
WO2002065692A12002-08-22
Foreign References:
US20150172042A12015-06-18
US20150110266A12015-04-23
FR2999747A12014-06-20
EP1596527B12007-07-18
DE102020000814A12021-08-12
US20150172042A12015-06-18
US20150110266A12015-04-23
DE102004052196A12006-05-11
DE102017002153A12018-09-06
Other References:
GOUBIN L ED - KOC C K ET AL: "A SOUND METHOD FOR SWITCHING BETWEEN BOOLEAN AND ARITHMETIC MASKING", CRYPTOGRAPHIC HARDWARE AND EMBEDDED SYSTEMS. 3RD INTERNATIONAL WORKSHOP, CHES 2001, PARIS, FRANCCE, MAY 14 - 16, 2001 PROCEEDINGS; [LECTURE NOTES IN COMPUTER SCIENCE], BERLIN : SPRINGER, DE, vol. 2162, 14 May 2001 (2001-05-14), pages 3 - 15, XP008002644, ISBN: 978-3-540-42521-2
DER FACHARTIKEL VON GOUBIN, L.: "CHES", vol. 2162, 2001, SPRINGER-VERLAG, article "A Sound Method for Switching between Boolean and Arithmetic Masking", pages: 3 - 15
Attorney, Agent or Firm:
GIESECKE+DEVRIENT IP (DE)
Download PDF:
Claims:
P a te nt a n s p r ü c h e

1. Verfahren zur ausspähungsgeschützten Ummaskierung eines geheim zu haltenden Wertes x von einer ersten Maskierung zu einer zweiten Maskie- rang, durch Durchführung einer Mehrzahl von aufeinanderfolgenden Re chenschritten, wobei der geheim zu haltende Wert x:

- vor der Durchführung der Mehrzahl von aufeinanderfolgenden Rechen schritte in der ersten Maskierung als eine gemäß einer booleschen Maskie rungsregel xs = x XOR s mod 2n mit einer ersten Maske s maskierte erste Repräsentation xs vorliegt, wobei 2n der Modulus der ersten Maskierungsre gel ist, wobei n eine ganze Zahl ist, und

- nach der Durchführung der Mehrzahl von aufeinanderfolgenden Rechen schritte in der zweiten Maskierung als eine gemäß einer arithmetischen Mas kierungsregel mit einer zweiten Maske r maskierte zweite Repräsentation xr vorliegt, dadurch gekennzeichnet, dass:

- xr = (x+r) mod ( 2m *p ) oder xr = (x-r) mod ( 2m *p ) , wobei ( 2m *p ) der Modulus der zweiten Maskierungsregel ist und m eine ganze Zahl größer gleich null ist, wobei p mindestens einen Primteiler ungleich 2 besitzt; und

- bei der Ummaskierung mindestens ein arithmetischer Rechenschritt durch- geführt wird, bei dem ein Übertrag cl über 2n erzeugt wird, wobei der Über trag cl gegen Ausspähung geschützt wird, indem der Übertrag cl mittels ei ner Zufallsinformation pm maskiert oder balanciert wird, und in einem nachfolgenden Rechenschritt, in dem der Übertrag cl zur Verwendung vor gesehen ist, an Stelle des Übertrags der maskierte Übertrag C_pm oder der balancierte Übertrag C verwendet wird.

2. Verfahren nach Anspruch 1, wobei der Übertrag cl mittels der Zufallsin formation pm maskiert wird, indem der Übertrag cl mittels einer XOR- Operation mit der Zufallsinformation pm verarbeitet wird zu clpm = cl XOR pm, und clpm als der maskierte Übertrag C_pm verwendet wird, oder aus clpm der maskierte Übertrag C_pm abgeleitet wird. 3. Verfahren nach Anspruch 1, wobei der Übertrag cl mittels einer Zufallsin formation pm balanciert wird, indem gesteuert durch die Zufallsinformation pm der geheim zu haltende Wert x in der zweiten Maskierung zufallsgesteu ert als entweder xr = (x + r) mod ( 2n p ) oder xr = (x - r) mod (2n p ) darge stellt wird, wobei der balancierte Übertrag cl als Übertrag C verwendet wird oder aus dem balancierten Übertrag cl der Übertrag C abgeleitet werden kann.

4. Verfahren nach Anspruch 2 oder 3, wobei der Übertrag C_pm bzw. C mit Hilfe einer Zufallszahl z_p, 0<= z_p < p, additiv maskiert wird und anschlie ßend reduziert wird, wodurch ein Zwischenergebnis sumlzp_p erzeugt wird, und wobei in nachfolgenden Schritten mit dem Zwischenergebnis sumlzp_p statt mit dem Übertrag C_pm bzw. C weitergerechnet wird.

5. Verfahren nach Anspruch 4 in Verbindung mit 3, wobei die zweite Maske r iterativ berechnet wird gemäß einem Verfahren, das folgende Schritte um fasst:

- Einmaliges Berechnen von MAX_p = 2n mod p und

MAX_p2 = 2n + 2*p - MAX_p;

- Auswahlen einer Zufallszahl zl, 0 <= zl < 2n, Auswahlen einer Zufallszahl z_p, 0 <= z_p < p;

- Auswahlen eines Zufallsbit pm, dessen Wert zufallsgesteuert entweder 0 oder 1 ist;

- Ausfuhren der folgenden Schritte:

1. szl = zl XOR s

2. xzl = xs XOR szl

3. xszl = xs XOR zl

4. Falls pm == 0: a. addl = szl + 2n b. sublc= addl - zl ansonsten: a. addl = zl + 2n b. sublc= addl - szl

5. cl = sublc » n

6. subl = sublc mod 2n

7. add2 = xszl + 2n

8. sub2c = add2 - xzl

9. c2 = sub2c » n

10. sub2 = subc2 mod 2n

11. xorl = subl XOR s

12. r_low = xorl XOR sub2

13. C = cl XOR c2

14. suml = (p - C*MAX_p)

15. sumlzp = suml + z_p

16. sumlzp_p = sumlzp mod p

17. p_z_p = p - z_p

18. sum2 = r_low + sumlzp_p

19. p_sum2 = MAX_p2 - sum2

20. Falls pm == 0: a. xr = xs + z_p b. r = sum2 ansonsten: a. xr = xs + p_z_p b. r = p_sum2. 6. Verfahren nach Anspruch 4 in Verbindung mit 3, wobei die zweite Maske r iterativ berechnet wird gemäß einem Verfahren, das folgende Schritte um fasst:

- Einmaliges Berechnen von MAX_p = 2n mod p und

MAX_p2 = 2n + 2*p - MAX_p;

- Auswahlen einer Zufallszahl zl, 0 <= zl < 2n, Auswahlen einer Zufallszahl z_p, 0 <= z_p < p;

- Auswahlen eines Zufallsbit pm, dessen Wert zufallsgesteuert entweder 0 oder 1 ist;

- Ausführen der folgenden Schritte:

1. szl = zl XOR s

2. xzl = xs XOR szl

3. xszl = xs XOR zl

4. Falls pm == 0: a. addl = xzl + 2n b. sublc= addl - szl ansonsten: a. addl = szl + 2n b. sublc= addl - xzl

5. cl = suhle » n

6. suhl = suhle mod 2n

7. add2 = xszl + 2n

8. sub2c = add2 - zl

9. c2 = sub2c » n

10. sub2 = subc2 mod 2n

11. xorl = suhl XOR xs

12. xr_low = xorl XOR sub2

13. C = cl XOR c2

14. suml = (p - C*MAX_p) 15. sumlzp = suml + z_p

16. sumlzp_p = sumlzp mod p

17. p_z_p = p - z_p

18. sum2 = xr_low + sumlzp_p

19. p_sum2 = MAX_p2 - sum2

20. Falls pm == 0: a. r = s + p_z_p b. xr = sum2 ansonsten: a. r = s + z_p b. xr = p_sum2.

7. Verfahren nach Anspruch 4 in Verbindung mit 2, wobei die zweite Maske r iterativ berechnet wird gemäß einem Verfahren, das folgende Schritte um fasst:

- Einmaliges Berechnen von MAX_p = 2n mod p und

MAX_p2 = 2” + 2*p - MAX_p;

- Auswahlen einer Zufallszahl zl, 0 <= zl < 2n, Auswahlen einer Zufallszahl z_p, 0 <= z_p < p;

- Auswahlen eines Zufallsbit pm, dessen Wert zufallsgesteuert entweder 0 oder 1 ist;

- Ausfuhren der folgenden Schritte, umfassend einen Schritt des Maskierens des Übertrags cl, 14. clpm = cl XOR pm:

1. szl = zl XOR s

2. xzl = xs XOR szl

3. xszl = xs XOR zl

4. addl = szl + 2n

5. sublc = addl - zl

6. cl = sublc » n 7. subl = sublc mod 2n

8. add2 = xszl + 2n

9. sub2c = add2 - xzl

10. c2 = sub2c » n

11. sub2 = subc2 mod 2n

12. xorl = subl XOR s

13. r_low = xorl XOR sub2

14. clpm = cl XOR pm

15. C_pm = clpm XOR c2

16. suml = (p - C_pm*MAX_p)

17. sumlzp = suml + z_p

18. sumlzp_p = sumlzp mod p

19. p_ sumlzp_p = p - sumlzp_p

20. p_z_p = p - z_p

21. r_low_p = r_low + p

22. sum2 = r_low_p - pm * MAX_p

23. Falls pm == 0: a. xr = xs + z_p b. r = sum2 + sumlzp_p ansonsten: a. xr = xs + p_z_p b. r = sum2 + p_sumlzp_p .

8. Verfahren nach Anspruch 4 in Verbindung mit 2, wobei die zweite Maske r iterativ berechnet wird gemäß einem Verfahren, das folgende Schritte um fasst:

- Einmaliges Berechnen von MAX_p = 2n mod p und

MAX_p2 = 2n + 2*p - MAX_p; - Auswahlen einer Zufallszahl zl, 0 <= zl < 2n, Auswahlen einer Zufallszahl z_p, 0 <= z_p < p;

- Auswahlen eines Zufallsbit pm, dessen Wert zufallsgesteuert entweder 0 oder 1 ist;

- Ausführen der folgenden Schritte, umfassend einen Schritt des Maskierens des Übertrags cl, 14. clpm = cl XOR pm:

1. szl = zl XOR s

2. xzl = xs XOR szl

3. xszl = xs XOR zl

4. addl = xszl + 2n

5. suhle = addl - szl

6. cl = suhle » n

7. suhl = suhle mod 2n

8. add2 = xszl + 2n

9. sub2c = add2 - zl

10. c2 = sub2c » n

11. sub2 = subc2 mod 2n

12. xorl = suhl XOR xs

13. xr_low = xorl XOR sub2

14. clpm = cl XOR pm

15. C_pm = clpm XOR c2

16. suml = (p - C_pm*MAX_p)

17. sumlzp = suml + z_p

18. sumlzp_p = sumlzp mod p

19. p_ sumlzp_p = p - sumlzp_p

20. p_z_p = p - z_p

21. xr_low_p = xr_low + p

22. sum2 = xr_low_p - pm * MAX_p

23. Falls pm == 0: a. r = s + p_z_p b. xr = sum2 + sumlzp_p ansonsten: a. r = s + z_p b. xr = sum2 + p_sumlzp_p .

9. Verfahren nach einem der Ansprüche 5 bis 8, umfassend den weiteren Schritt, im Fall von Anspruch 5 oder 6 Schritt 21., bzw. im Fall von Anspruch 7 oder 8 Schritt 24., modulares Reduzieren des maskierten Werts xr und der Maske r gemäß a. xr_p = xr mod p b. r_p = r mod p .

10. Schlüsselableitungsverfahren, gestaltet als DH- oder ECDH- Schlüsselableitungsverfahren oder ähnliches Schlüsselableitungsverfahren, umfassend ein Verfahren nach einem der Ansprüche 1 bis 9.

11. Maschinenlesbares Reisedokument (1), umfassend einen integrierten Schaltkreis (2), der für ein Schlüsselableitungsverfahren nach Anspruch 10 eingerichtet ist, und eine Schnittstelle (3) zur Kommunikation mit einem Le segerät (4).

12. Lesegerät (4) umfassend einen Lesegerät-Schaltkreis (5) und eine Schnitt stelle (6) zur Kommunikation mit einem maschinenlesbaren Reisedokument (1), und eingerichtet zum Auslesen eines maschinenlesbaren Reisedoku ments (1) nach Anspruch 11.

Description:
Verfahren zur Berechnung eines Übergangs von einer booleschen zu einer arithmetischen Maskierung

Gebiet der Erfindung Die Erfindung betrifft das Gebiet der Kryptographie und spezieller das Ge biet des Ausspähungsschutzes von kryptographischen Berechnungen. Insbe sondere betrifft die Erfindung den Übergang von einer ersten Maskierung ei nes geheim zu haltenden Wertes, die auf einer booleschen Maskierungsregel beruht, zu einer zweiten Maskierung des geheim zu haltenden Wertes, die auf einer arithmetischen Maskierungsregel beruht. Besonders eignet sich die Erfindung zur Verwendung bei einem ressourcenbeschränkten System, bei spielsweise einer Chipkarte, wie einer Zahlungsverkehrskarte oder einem zum Betrieb in einem Mobilfunk-Terminal vorgesehenen UICC (Mobilfunk- SIM-Karte), oder einem zum Festeinbau in ein Mobilfunk-Terminal vorgese- henen SIM-Chipmodul eUICC (embedded UICC), oder einem zur Integra tion in ein Chipset eines Mobilfunk-Terminals vorgesehenen integrated iUICC oder Integrated SIM-Chipmoduls. Das Mobilfunk-Terminal kann da bei beispielsweise ein Smartphone oder Mobiltelefon sein, oder ein Internet- der-Dinge-Gerät, IdD-Geräte (IoT device), oder eine M2M-Gerät, insbeson- dere ein Industrie-M2M-Gerät (mit ressourcenbeschränktes Modul: M2M- (e)UICC-Modul) oder eine Automobil-M2M-Telematikeinheit (mit ressour cenbeschränktes Modul: M2M-(e)UICC-Modul).

Stand der Technik In SPA- und DPA- Angriffen (SPA = Simple Power Analysis, DPA = Differen tial Power Analysis) auf kryptographische Berechnungen werden Seitenka nalabstrahlungen von Implementierungen kryptographischer Berechnungen ausgewertet, beispielsweise Stromverbrauch oder elektromagnetische Ab strahlung des Chips, auf dem die Berechnung implementiert ist, um auf in der Berechnung verarbeitete geheime Daten Rückschlüsse zu ziehen. Um SPA- und DPA- Angriffe auf kryptographische Berechnungen abzu wehren, werden die geheim zu haltenden Daten, die in einer kryptographischen Be rechnung verarbeitet werden, vor der Ausführung von kryptographischen Berechnungen maskiert, also mit einem als Maske bezeichneten Wert ver fälscht.

Eine Maskierung eines geheim zu haltenden Wertes kann auf unterschiedli chen Maskierungsregeln beruhen. Die Maskierungsregel gibt die Rechenvor schrift an, gemäß der die zu schützenden Daten mit der Maske verknüpft werden, um die maskierte Repräsentation der zu schützenden Daten zu er halten. Welche Maskierungsregel geeignet oder am besten geeignet ist, hängt von der Art der kryptographischen Berechnung ab, sowie von den einzelnen Operationen oder Teilberechnungen, die innerhalb der Gesamtheit der kryp tographischen Berechnung abzuarbeiten sind.

Dabei können Fälle auftreten, in denen innerhalb der Gesamtheit einer kryp tographischen Berechnung nacheinander Operationen oder Teilberechnun gen ausgeführt werden, bei denen unterschiedlichen Maskierungsregeln vor teilhafter sind, oder die sogar nur mit unterschiedlichen Maskierungsregeln verträglich sind. In solchen Fällen, ist es wünschenswert oder erforderlich, dass in der Gesamtheit kryptographischen Berechnung ein Übergang zwi schen zwei unterschiedlichen Maskierungsregeln durchgeführt wird.

Das Dokument WO 02/ 065692 Al aus dem Stand der Technik offenbart ein Verfahren zum Übergang zwischen einer booleschen xor-Verknüpfung mit einer Zufallszahl r als erster Maskierungsregel und einer zweiten, additiven (arithmetischen) Maskierungsregel, wobei um den Übergang von der boole schen zur additiven Maskierungsregel zu erwirken, eine Sequenz von boole schen und arithmetischen Operationen durchgeführt wird. Das Dokument EP1596527 Bl aus dem Stand der Technik offenbart ein Ver fahren zum ausspähungsgeschützten Übergang von einer ersten Maskierung eines geheim zu haltenden Wertes d zu einer zweiten Maskierung des ge heim zu haltenden Wertes d, wobei der geheim zu haltende Wert d: - in der ersten Maskierung als eine gemäß einer booleschen Maskierungsregel ds = d XOR s mit einer ersten Maske s maskierte erste Repräsentation ds vorliegt, und - in der zweiten Maskierung als eine gemäß einer arithmetischen Mas kierungsregel dr = (d + r) mod (2 n ) mit einer zweiten Maske r maskierte zweite Repräsentation dr vorliegt, wobei r so berechnet wird, dass ds = dr gilt. EP1596527 Bl offenbart genauer als konkrete Ausgestaltung der Erfin dung eine erste Maskierung d = d XOR zl und eine zweite Maskierung d = d - z2 mod 2 n . Beim Wechsel von der ersten zu zweiten Maske wird nur die Maskierung geändert, nicht aber die damit maskierte Berechnung.

Das Dokument BSI-TR-03111 beschreibt eine Umsetzung des PACE- Protokolls zur Authentisierung zwischen einem maschinenlesbaren Doku ment als Client und einem Terminal zum Auslesen des Chips eines solchen maschinenlesbaren Reisedokuments. Beim PACE Protokoll werden mittels eine Schlüsselableitungsfunktion KDF zunächst ein geteiltes Geheimnis K und ausgehend vom geteilten Geheimnis K und einem Passwort zwei sym metrische Schlüssel abgeleitet, nämlich ein Verschlüsselungsschlüssel Kenc und ein Authentisierungsschlüssel Kmac. Die Schlüsselableitungsfunktion KDF ist beispielsweise ein Diffie-Hellman (DH) oder Elliptische Kurven Dif- fie-Hellman (ECDH) Schlüsselableitungsverfahren, in welches asymmetri sche Schlüsselpaare des Client und des Terminal eingehen. Bei den Verfah ren werden Berechnungen modulo eines Modulus ausgeführt, welcher min destens einen Primteiler ungleich zwei besitzt. In der deutschen Patentanmeldung DE102020000814A1 der Anmelderin der vorliegenden Anmeldung ist ein ausspähungsgeschütztes Verfahren zur Schlüsselgenerierung offenbart, eingerichtet in einer Client-Prozessoreinrich tung, mittels dessen ein zweiter öffentlicher Client-Schlüssel P c ' des Client abgeleitet wird. Der Client ist insbesondere ein maschinenlesbares Reisedo kument. Das Verfahren zur Schlüsselgenerierung ist insbesondere Teil eines PACE-Protokolls oder eines vergleichbaren Protokolls zur Authentisierung zwischen einem maschinenlesbaren Reisedokument als Client einerseits und einem Terminal zum Auslesen des Chips eines solchen maschinenlesbaren Reisedokuments andererseits. Bei der Authentisierung des PACE-Protokolls wird ein zweites asymmetrisches Schlüsselpaar [k, , P,'] des Client verwen det, das einen zweiten öffentlichen Client-Schlüssel P,' und einen zweiten privaten Client-Schlüssel k, umfasst, wobei der erste öffentliche Client- Schlüssel P c ' gebildet wird als Ergebnis einer Operation, in welche der zweite private Client-Schlüssel k c ' und ein Generatorpunkt G auf einer ellip tischen Kurve und eine Nonce s eingehen. (Beim herkömmlichen PACE- Protokoll wird der zweite öffentliche Client-Schlüssel P c ' gebildet durch Punktmultiplikation P c ' = k c '· G' des zweiten privaten Client-Schlüssels k c ' mit dem mit einer Mapping-Funktion gemappten Generatorpunkt G' auf der elliptischen Kurve).

Auch für das PACE-Protokoll und das in DE102020000814A1 offenbarte Ver fahren für ein verbessertes PACE-Protokoll wäre es wünschenswert, ein Ver fahren zum Wechsel von eine booleschen Maskierung zu einer arithmeti schen Maskierung zu haben, um die geheimen Parameter des PACE- Protokolls durchgängig zu schützen.

Insbesondere kann es bei Protokollen, welche sich aus symmetrischen und asymmetrischen krypto graphischen Verfahren zusammensetzen, vorteilhaft sein, einen Maskenwechsel von Daten modulo 2 n zu Daten modulo p durch zuführen, bei denen p einen Primteiler ungleich zwei besitzt. Für diese Pro tokolle sind die in EP1596527 Bl angeführten konkreten Beispiele nicht an wendbar.

Das Dokument US2015/0172042A1 aus dem Stand der Technik offenbart ein Verfahren zur Durchführung einer maskierten modularen Addition, bei der ein Übertrag maskiert verarbeitet wird.

Das Dokument US2015/ 0110266 Al aus dem Stand der Technik offenbart ein Verfahren umfassend eine Umwandlung von einer arithmetischen Maskie rung zu einer Booleschen Maskierung, bei dem ein maskierter Übertrag ver arbeitet wird.

Das Dokument DE102004052196A1 aus dem Stand der Technik offenbart ein Verfahren zum ausspähungsgeschützen Ausführen einer Operation auf mas kierte Daten, wobei auch ein maskierter Übertrag verarbeitet wird.

Das Dokument DE102017002153A1 aus dem Stand der Technik offenbart ein Verfahren zum ausspähungsgeschützten Übergang von einer booleschen Maskierung eines geheim zu haltenden Wertes zu einer additiven Maskie rung.

Der Fachartikel von Goubin, L.: „A Sound Method for Switching between Boolean and Arithmetic Masking; CHES 2001, Lecture Notes in Computer Sciense, vol 2162, Springer-Verlag, 2001, Seiten 3-15, offenbart ein Verfahren zur ausspähungsgeschützten Ummaskierung eines geheim zu haltenden Wertes von einer booleschen Maskierung zu einer arithmetischen Maskie rung. Zusammenfassung der Erfindung

Der Erfindung liegt die Aufgabe zu Grunde, ein Verfahren zum ausspä hungsgeschützten Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung unter Verwendung eines Modulus gleich oder umfassend p zu schaffen, wobei p mindestens einen Primteiler ungleich 2 be sitzt. Insbesondere soll ein solches Verfahren angegeben werden, das für Mo- duli p anwendbar ist, die eine Primzahl größer zwei sind. Die Aufgabe wird gelöst durch ein Verfahren nach einem der unabhängigen Ansprüche. In jedem der unabhängigen Ansprüche ist das gemeinsame er finderische Konzept verwirklicht, in den Übergang von der ersten zur zwei ten Maskierung einen Übergang von einem ersten Modulus 2 n zu einem zweiten Modulus p oder umfassend p zu integrierenV/orteil hafte Ausgestal- tungen der Erfindung sind in den abhängigen Ansprüchen angegeben.

Das Verfahren nach Anspruch 1 ist zur ausspähungsgeschützten Ummaskie rung eines geheim zu haltenden Wertes x von einer ersten Maskierung zu ei ner zweiten Maskierung eingerichtet, durch Durchführung einer Mehrzahl von aufeinanderfolgenden Rechenschritten. Dabei liegt der geheim zu hal tende Wert x vor der Durchführung der Mehrzahl von aufeinanderfolgenden Rechenschritte in der ersten Maskierung als eine gemäß einer booleschen Maskierungsregel xs = x XOR s mod 2 n mit einer ersten Maske s maskierte erste Repräsentation xs vor. Hierbei ist 2 n der Modulus der ersten Maskie- rungsregel n ist eine ganze Zahl. Nach der Durchführung der Mehrzahl von aufeinanderfolgenden Rechenschritte liegt der geheim zu haltende Wert x in der zweiten Maskierung als eine gemäß einer arithmetischen Maskierungsre gel mit einer zweiten Maske r maskierte zweite Repräsentation xr vor. Das Verfahren ist dadurch gekennzeichnet, dass: zum Einen: xr = (x+r) mod ( 2 m *p ) oder xr = (x-r) mod ( 2 m *p ) , wobei ( 2 m *p ) der Modulus der zweiten Maskierungsregel ist und m eine ganze Zahl größer gleich null ist, wobei p mindestens einen Primteiler un gleich 2 besitzt; und zum Anderen: bei der Ummaskierung mindestens ein arithmetischer Rechenschritt durch geführt wird, bei dem ein Übertrag cl über 2 n erzeugt wird, wobei der Über trag cl gegen Ausspähung geschützt wird, indem der Übertrag cl mittels ei ner Zufallsinformation pm maskiert oder balanciert wird, und in einem nachfolgenden Rechenschritt, in dem der Übertrag cl zur Verwendung vor gesehen ist, an Stelle des Übertrags der maskierte Übertrag C_pm oder der balancierte Übertrag C verwendet wird.

Bei den in EP1596527 Bl beschriebenen Verfahren sind die in den Berech nungen auftretenden Übertrage für das Ergebnis des Maskenwechsels nicht relevant. Dies ist im Falle eines Überganges auf eine Maskierungsregel mo- dulo (2 m * p), wobei p mindestens einen Prim feiler ungleich 2 besitzt, nicht der Fall. Die auftretenden Überträge liefern deshalb eine Einfallmöglichkeit für Ausspähungsattacken, die bei einem Modulus 2 n nicht existieren.

Erfindungsgemäß wird der Übertrag cl gegen Ausspähung geschützt. Das Schützen des Übertrags erfolgt hierbei entweder durch Maskieren des Über trags cl oder Balancieren des Übertrags cl, und nachfolgendes Weiterrech nen mit dem maskierten oder balancierten Übertrag cl, aber nicht mit dem im Klartext (plain) vorliegenden Übertrag cl. Hierdurch wird die durch den nicht-Zweierpotenz-Modulus eröffnete Einfallmöglichkeit auf die durch die Rechenschritte gebildete Berechnung wieder geschlossen.

Der Modulus ( 2 m *p ) der zweiten Maskierungsregel ist im Spezialfall m = 0 gleich p, und weiter im Spezialfall eine Primzahl ungleich 2. Im allgemeine ren Fall, für andere Werte von m, beispielsweise m = 1, 2, 3, 4, 5, .. enthält der Modulus ein Produkt aus einer Zweierpotenz und einer ganzen Zahl p, die mindestens einen Primteiler ungleich 2 besitzt.

Daher ist gemäß Anspruch 1 ein Verfahren zum ausspähungsgeschützten Übergang von einer booleschen Maskierung zu einer arithmetischen Maskie rung unter Verwendung eines Modulus gleich oder umfassend p, wobei p mindestens einen Primteiler ungleich 2 besitzt, geschaffen.

Bei Ausgestaltungen des erfindungsgemäßen Verfahrens mit Maskieren des Übertrags cl wird wahlweise der Übertrag cl mittels der Zufallsinformation pm maskiert, indem der Übertrag cl mittels einer XOR-OperaÜon mit der Zufallsinformation pm verarbeitet wird zu clpm = cl XOR pm, und clpm als der maskierte Übertrag C_pm verwendet wird, oder aus clpm als der mas kierte Übertrag für die nachfolgenden Rechenschritte C_pm abgeleitet wird.

Bei Ausgestaltungen des erfindungsgemäßen Verfahrens mit Balancieren des Übertrags cl wird wahlweise der Übertrag cl mittels einer Zufallsinforma tion pm balanciert, indem gesteuert durch die Zufallsinformation pm der ge heim zu haltende Wert x in der zweiten Maskierung zufallsgesteuert als ent weder xr = (x + r) mod ( 2 n p ) oder xr = (x - r) mod (2 n p ) dargestellt, wo bei der balancierte Übertrag cl als Übertrag C verwendet wird oder aus dem balancierten Übertrag cl der Übertrag C abgeleitet werden kann. Hierdurch wird erreicht, dass die Häufigkeit der unterschiedlichen Werte des Übertrags C für alle möglichen Werte von r und pm unabhängig von x ist.

Bei Ausgestaltungen des erfindungsgemäßen Verfahrens mit Maskieren oder/ und Balancieren des Übertrags cl wird wahlweise der Übertrag C_pm bzw. C mit Hilfe einer Zufallszahl z_p, 0<= z_p < p additiv maskiert und an schließend reduziert, wodurch ein Zwischenergebnis sumlzp_p erzeugt wird. Anschließend wird sumlzp_p mit anderen Zwischenergebnissen kom biniert, beispielsweise wie in den nachfolgenden detaillierten Ausführungs beispielen beschrieben ist.

Das erfindungsgemäße Verfahren ist besonders sinnvoll einsetzbar bei Schlüsselableitungsverfahren, bei denen zwei Parteien jede für sich ein ge teiltes Geheimnis ableiten, beispielsweise Diffie-Hellman (DH) oder Ellipti sche Kurven Diffie Hellman (ECDH), oder ähnliche Verfahren, beispiels weise ECIES oder dergleichen.

Das Verfahren ist insbesondere sinnvoll einsetzbar in maschinenlesbaren Reisedokumenten, wie Reisepässen mit Chip (integriertem Schaltkreis) und einer Schnittstelle, beispielsweise einer Antenne, und beim Auslesen von sol chen maschinenlesbaren Reisedokumenten mit Lesegeräten für solche ma schinenlesbare Reisedokumente. Die Lesegeräte weisen einen Lesegerät- Schaltkreis und eine mit dem Lesegerät-Schaltkreis gekoppelte oder koppel bare Schnittstelle zur Kommunikation mit maschinenlesbaren Reisedoku menten auf.

Insbesondere ist das Verfahren sinnvoll einsetzbar im PACE-Protokoll zum Auslesen von maschinenlesbaren Reisedokumenten mittels eines Lesegeräts für maschinenlesbare Reisedokumente. Erfindungsgemäße Schlüsselableitungsverfahren, maschinenlesbare Reisedo kumente und Lesegeräte sind eingerichtet für erfindungsgemäße Verfahren. Detaillierte Beschreibung von Ausführungsbeispielen

Im Detail wird das Schützen des Übertrags cl insbesondere wahlweise mit folgenden Ausgestaltungen des erfindungsgemäßen Verfahrens erzielt.

1. Balancierung I

Die zweite Maske r wird für ein balanciertes Verfahren iterativ berechnet, ge mäß einem Verfahren, das folgende Schritte umfasst:

- Einmaliges Berechnen von MAX_p = 2 n mod p und

MAX_p2 = 2 n + 2*p - MAX_p; - Auswählen einer Zufallszahl zl, 0 <= zl < 2 n , Auswählen einer Zufallszahl z_p, 0 <= z_p < p;

- Auswählen eines Zufallsbit pm zum Balancieren des Übertrags cl, dessen Wert zufallsgesteuert entweder 0 oder 1 ist;

- Ausführen der folgenden Schritte: 1. szl = zl XOR s

2. xzl = xs XOR szl

3. xszl = xs XOR zl

4. Falls pm == 0: a. addl = szl + 2 n b. sublc= addl - zl ansonsten: a. addl = zl + 2 n b. sublc= addl - szl

5. cl = suhle » n 6. subl = sublc mod 2 n

7. add2 = xszl + 2 n

8. sub2c = add2 - xzl

9. c2 = sub2c » n 10. sub2 = subc2 mod 2 n

11. xorl = subl XOR s

12. r_low = xorl XOR sub2

13. C = cl XOR c2

14. suml = (p - C*MAX_p) 15. sumlzp = suml + z_p

16. sumlzp_p = sumlzp mod p

17. p_z_p = p - z_p

18. sum2 = r_low + sumlzp_p

19. p_sum2 = MAX_p2 - sum2 20. Falls pm == 0: a. xr = xs + z_p b. r = sum2 ansonsten: a. xr = xs + p_z_p b. r = p_sum2.

2. Balancierung II

Die zweite Maske r wird für ein balanciertes Verfahren iterativ berechnet, ge mäß einem Verfahren, das folgende Schritte umfasst: - Einmaliges Berechnen von MAX_p = 2 n mod p und

MAX_p2 = 2” + 2*p - MAX_p;

- Auswahlen einer Zufallszahl zl, 0 <= zl < 2 n , Auswahlen einer Zufallszahl z_p, 0 <= z_p < p;

- Auswahlen eines Zufallsbit pm, dessen Wert zufallsgesteuert entweder 0 oder 1 ist;

- Ausführen der folgenden Schritte:

1. szl = zl XOR s

2. xzl = xs XOR szl

3. xszl = xs XOR zl 4. Falls pm == 0: a. addl = xzl + 2 n b. sublc= addl - szl ansonsten: a. addl = szl + 2 n b. sublc= addl - xzl

5. cl = sublc » n

6. subl = sublc mod 2 n

7. add2 = xszl + 2 n

8. sub2c = add2 - zl 9. c2 = sub2c » n

10. sub2 = subc2 mod 2 n

11. xorl = subl XOR xs

12. xr_low = xorl XOR sub2

13. C = cl XOR c2 14. suml = (p - C*MAX_p)

15. sumlzp = suml + z_p

16. sumlzp_p = sumlzp mod p 17. p_z_p = p - z_p 18. sum2 = xr_low + sumlzp_p

19. p_sum2 = MAX_p2 - sum2

20. Falls pm == 0: a. r = s + p_z_p b. xr = sum2 ansonsten: a. r = s + z_p b. xr = p_sum2.

3. Maskierung I

Die zweite Maske r wird iterativ berechnet gemäß einem Verfahren, das fol gende Schritte umfasst:

- Einmaliges Berechnen von MAX_p = 2 n mod p und

MAX_p2 = 2 n + 2*p - MAX_p; - Auswahlen einer Zufallszahl zl, 0 <= zl < 2 n , Auswahlen einer Zufallszahl z_p, 0 <= z_p < p;

- Auswahlen eines Zufallsbit pm, dessen Wert zufallsgesteuert entweder 0 oder 1 ist;

- Ausführen der folgenden Schritte, umfassend einen Schritt des Maskierens des Übertrags cl, 14. clpm = cl XOR pm:

1. szl = zl XOR s

2. xzl = xs XOR szl

3. xszl = xs XOR zl

4. addl = szl + 2 n 5. sublc = addl - zl

6. cl = sublc » n

7. subl = sublc mod 2 n

8. add2 = xszl + 2 n 9. sub2c = add2 - xzl

10. c2 = sub2c » n 11. sub2 = subc2 mod 2 n 12. xorl = subl XOR s 13. r_low = xorl XOR sub2 14. clpm = cl XOR pm

15. C_pm = clpm XOR c2

16. suml = (p - C_pm*MAX_p)

17. sumlzp = suml + z_p

18. sumlzp_p = sumlzp mod p 19. p_ sumlzp_p = p - sumlzp_p

20. p_z_p = p - z_p 21. r_low_p = r_low + p 22. sum2 = r_low_p - pm * MAX_p 23. Falls pm == 0: a. xr = xs + z_p b. r = sum2 + sumlzp_p ansonsten: a. xr = xs + p_z_p b. r = sum2 + p_sumlzp_p .

4. Maskierung II

Die zweite Maske r wird iterativ berechnet gemäß einem Verfahren, das fol gende Schritte umfasst: - Einmaliges Berechnen von MAX_p = 2 n mod p und

MAX_p2 = 2” + 2*p - MAX_p;

- Auswahlen einer Zufallszahl zl, 0 <= zl < 2 n , Auswahlen einer Zufallszahl z_p, 0 <= z_p < p;

- Auswahlen eines Zufallsbit pm, dessen Wert zufallsgesteuert entweder 0 oder 1 ist;

- Ausführen der folgenden Schritte, umfassend einen Schritt des Maskierens des Übertrags cl, 14. clpm = cl XOR pm:

1. szl = zl XOR s

2. xzl = xs XOR szl

3. xszl = xs XOR zl

4. addl = xszl + 2 n

5. suhle = addl - szl

6. cl = suhle » n

7. suhl = suhle mod 2 n

8. add2 = xszl + 2 n

9. sub2c = add2 - zl

10. c2 = sub2c » n

11. sub2 = subc2 mod 2 n

12. xorl = suhl XOR xs

13. xr_low = xorl XOR sub2

14. clpm = cl XOR pm

15. C_pm = clpm XOR c2

16. suml = (p - C_pm*MAX_p)

17. sumlzp = suml + z_p

18. sumlzp_p = sumlzp mod p

19. p_ sumlzp_p = p - sumlzp_p

20. p_z_p = p - z_p

21. xr_low_p = xr_low + p 22. sum2 = xr_low_p - pm * MAX_p

23. Falls pm == 0: a. r = s + p_z_p b. xr = sum2 + sumlzp_p ansonsten: a. r = s + z_p b. xr = sum2 + p_sumlzp_p .

Bei allen Ausgestaltungen des Verfahrens kann wahlweise ein zusätzlicher Schritt des modularen Reduzierens des maskierten Werts xr und der Maske r erfolgen, wobei der zusätzliche Schritt 21 auf Schritt 20 folgt, bzw. der zu sätzliche Schritt 24 auf Schritt 23 folgt, gemäß: a. xr_p = xr mod p b. r_p = r mod p .

Kurze Beschreibung der Zeichnungen

Im Folgenden wird die Erfindung an Hand von Ausführungsbeispielen und unter Bezugnahme auf die Zeichnungen näher erläutert, in der zeigen:

Fig. 1 ein System zur Veranschaulichung der Erfindung.

Detaillierte Beschreibung von Ausführungsbeispielen Fig. 1 zeigt ein maschinenlesbares Reisedokument 1 mit einem integrierten Schaltkreis 2 und einer Schnittstelle in Gestalt einer Antenne 3, die an den in tegrierten Schaltkreis 2 angekoppelt oder ankoppelbar ist. Der integrierte Schaltkreis 2 ist für das PACE-Protokoll eingerichtet. Das PACE-Protokoll umfasst ein Schlüsselableitungsverfahren, in welches das erfindungsgemäße Verfahren integriert ist. Das maschinenlesbare Reisedokument 1 lässt sich mit einem entsprechend eingerichteten Lesegerät 4 auslesen, das einen Lese gerät-Schaltkreis 5 und eine Schnittstelle 6, z.B. eine entsprechende Antenne, aufweist. Derartige Lesegeräte 4 für maschinenlesbare Reisedokument wie das maschinenlesbare Reisedokument 1 sind beispielsweise an Kontrollstati onen wie Flughäfen oder Grenzübergängen angeordnet.