DE102011115082A1 - Gegen Ausspähung schützbarer geheimer RSA Verschlüsselungsexponent - Google Patents

Gegen Ausspähung schützbarer geheimer RSA Verschlüsselungsexponent Download PDF

Info

Publication number
DE102011115082A1
DE102011115082A1 DE102011115082A DE102011115082A DE102011115082A1 DE 102011115082 A1 DE102011115082 A1 DE 102011115082A1 DE 102011115082 A DE102011115082 A DE 102011115082A DE 102011115082 A DE102011115082 A DE 102011115082A DE 102011115082 A1 DE102011115082 A1 DE 102011115082A1
Authority
DE
Germany
Prior art keywords
rsa
exponent
decryption exponent
calculating
masked
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE102011115082A
Other languages
English (en)
Inventor
Sven Bauer
Jürgen Pulkus
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Giesecke and Devrient GmbH
Original Assignee
Giesecke and Devrient GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Giesecke and Devrient GmbH filed Critical Giesecke and Devrient GmbH
Priority to DE102011115082A priority Critical patent/DE102011115082A1/de
Priority to EP12783498.4A priority patent/EP2759090A1/de
Priority to PCT/EP2012/003872 priority patent/WO2013041200A1/de
Publication of DE102011115082A1 publication Critical patent/DE102011115082A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/723Modular exponentiation
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7257Random modification not requiring correction
    • 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

Abstract

Die Erfindung schafft ein Verfahren zum Erzeugen eines gegen Ausspähung schätzbaren geheimen RSA Entschlüsselungsexponenten d in einem Prozessor, mit den Schritten: a) Auswählen einer Konstruktionszahl z; b) Auswählen von zwei RSA Primzahlen p, q in Abhängigkeit von der gewählten Konstruktionszahl z; c) Berechnen des RSA Modulus n = p·q; d) Auswählen eines öffentlichen RSA Verschlüsselungsexponenten e; e) Berechnen eines (unmaskierten) RSA Entschlüsselungsexponenten d unter Verwendung der gewählten Konstruktionszahl z. Eine Maskierung des Entschlüsselungsexponenten d zu einem geschützten maskierten Entschlüsselungsexponenten d' erfolgt gemäß: f) Auswählen einer Maskierungszahl r; g) Berechnen des maskierten RSA Entschlüsselungsexponenten d' unter Verwendung der gewählten Konstruktionszahl z.

Description

  • Die Erfindung betrifft das Gebiet des Schutzes kryptographischer Berechnungen gegen Ausspähung. Die Erfindung betrifft genauer ein Verfahren zum Erzeugen eines gegen Ausspähung schätzbaren geheimen RSA Entschlüsselungsexponenten in einem Prozessor, z. B. in einer Chipkarte. Die Erfindung betrifft weiter ein Verfahren zum Durchführen einer kryptographischen Berechnung in einem Prozessor unter Verwendung eines solchen geheimen RSA Entschlüsselungsexponenten.
  • Das 1977 von Ronald L. Rivest, Adi Shamir und Leonard Adleman entwickelte und beispielsweise in US 4,405,829 [1] beschriebene asymmetrische Kryptosystem RSA umfasst einen öffentlichen Schlüssel E = (e, n) und einen geheimen privaten Schlüssel D = (d, n), mit dem öffentlichen Verschlüsselungsexponenten e, dem privaten Entschlüsselungsexponenten d und dem Modulus n = p·q, der als das Produkt zweier Primzahlen p und q gebildet ist. Der öffentliche Schlüssel E = (e, n) wird verwendet, um eine Nachricht u gemäß der Relation x = ue mod n (1) zu einem Chiffrat x zu verschlüsseln, oder um eine Signatur zu verifizieren. Der private Schlüssel D = (d, n) wird verwendet, um eine zu einem Chiffrat x verschlüsselte Nachricht u gemäß u = xd mod n (2) zu entschlüsseln, oder um eine Signatur zu erzeugen.
  • Die Exponenten e und d werden gebildet wie folgt.
    • 1. Wähle zwei geeignete geheimzuhaltende Primzahlen p ≠ q.
    • 2. Berechne den öffentlichen RSA Modulus n = p·q (3).
    • 3. Berechne die geheimzuhaltende Eulersche Funktion φ(n) von n φ(n) = (p – 1)·(q – 1) (4).
    • 4. Wähle als öffentlichen Verschlüsselungsexponenten e eine zu φ(n) teilerfremde Zahl e mit 1 < e < φ(n).
    • 5. Berechne den geheimen privaten Entschlüsselungsexponenten d gemäß d = e–1(modφ(n)) (5).
  • Die in der Entschlüsselung gemäß der Relation (2) u = xd modn durchzuführende Exponentiation wird üblicherweise gemäß dem „(Repeated) Square and Multiply” Algorithmus durchgeführt, der beispielsweise in Alfred Menezes, Paul C. van Oorschot, and Scott A. Vanstone, „Handbook of applied cryptography" (im Folgenden [2] „Menezes" genannt) in Kapitel 14.6, Algorithmus Nr. 14.79 beschrieben ist.
  • Der Square and Multiply Algorithmus ist gegenüber Seitenkanalangriffen gefährdet, beispielsweise Stromangriffen wie z. B. einfache Leistungsanalyse (Simple Power Analysis (SPA)) oder differentielle Leistungsanalyse (Differential Power Analysis (DPA)). Seitenkanalangriffe sind beispielsweise in Paul C. Kocher, Joshua Jaffe, and Benjamin Jun, „Differential power analysis", CRYPTO '99 (M. Wiener, ed.), LNCS, no. 1666, 199, pp. 388–397 [3], oder in Suresh Chari, Josyula R. Rao, and Pankaj Rohatgi, „Template Attacks", Cryptographic Hardware and Embedded Systems 2003 (Hurt S. Kaliski, Çetin K. Koç, and Christof Paar, eds.), LNCS, no. 2523, Springer-Verlag, 2003, pp. 13–28 [4], beschrieben. Bei einem Seitenkanalangriff wird beispielsweise ein Leistungsprofil erzeugt, indem der Leistungsverbrauch eines Prozessors während des Durchführens einer Berechnung im zeitlichen Verlauf gemessen und in Abhängigkeit von der Zeit aufgezeichnet wird. Aus dem Leistungsprofil kann auf die bei der Berechnung verwendeten Daten rückgeschlossen werden.
  • Im (Repeated) Square and Multiply Algorithmus wird der Exponent d bitweise abgearbeitet und die Basis x zu einem ersten Zwischenergebnis quadriert und das Zwischenergebnis fortlaufend wieder quadriert. Ist ein Exponentenbit Eins, wird zusätzlich eine Multiplikation mit der Basis x durchgeführt. Der Leistungsverbrauch des verwendeten Prozessors ist in aller Regel für Quadrierungen und Multiplikationen leicht unterschiedlich. Daher lassen sich im Prinzip mittels einfacher Leistungsanalyse SPA die Werte der Exponentenbits aus dem Leistungsprofil, d. h. dem zeitlichen Verlauf des Leistungsverbrauchs, des Prozessors bei einer einzelnen Durchführung des Square and Multiply Verfahrens ermitteln. Rauschen erschwert in der Praxis die Ermittlung der Werte der Exponentenbits. Da alle Exponentenbits richtig ermittelt werden müssen, ist die Trefferwahrscheinlichkeit für lange Exponenten durch SPA in der Praxis gering. Bei der differentiellen Leistungsanalyse DPA wird aus einer Vielzahl von Durchführungen von Exponentiationen nach z. B. Gleichung (2) mit stets demselben Entschlüsselungsexponenten d aber jeweils unterschiedlichen Basisdaten x eine Vielzahl von Leistungsprofilen erzeugt, die mittels statistischer Methoden ausgewertet werden, um Rückschlüsse auf den Entschlüsselungsexponenten d zu ziehen. Hierbei lässt sich Rauschen aus den Leistungsprofilen herausmitteln und somit die Trefferwahrscheinlichkeit bei der Ermittlung des Exponenten erhöhen.
  • Im Fachartikel Chevallier-Mâmes, B., Ciet, M., Joye, M.: „Low-Cost Solutions for Preventing Simple Side-Channel Analysis: Side-Channel Atomicity"; Cryptology ePrint Archiv, Report 2003/237 (2003), http://eprint.iacr.org/ [5], ist eine Variante des Square and Multiply Algorithmus offenbart, die einen verbesserten Schutz gegenüber Seitenkanalangriffen hat als der in [2] (Menezes) angegebene Algorithmus.
  • (6) Variante des Square and Multiply Algorithmus aus [5]:
    Eingabe: ganze Zahlen x, d, n; d in Binärdarstellung d = dl–1 ... d1d0
    Ausgabe: u = xd mod n
    • 1 u0 ← 1
    • 2 u1 ← x
    • 3 m ← 0
    • 4 j ← l – 1
    • 5 while j ≥ 0 do
    • 6 u0 ← u0·um
    • 7 m ← (m + dj)mod2
    • 8 j ← j + m – 1
    • 9 end
    • 10 return u0
  • Um Seitenkanalangriffe wie SPA und DPA zu verhindern oder zumindest zu erschweren, wird weiter im Stand der Technik vorgeschlagen, dem privaten Entschlüsselungsexponenten d für jede Durchführung einer Exponentiation nach Algorithmus (2) eine – in der Regel unterschiedliche – Zufallszahl r beizumischen und somit den Entschlüsselungsexponenten d zu einem maskierten Entschlüsselungsexponenten d' zu maskieren, und für Entschlüsselungen bzw. Signaturberechnungen gemäß Algorithmus (2) statt des Entschlüsselungsexponenten d den maskierten Entschlüsselungsexponenten d' zu verwenden. Der maskierte Entschlüsselungsexponent d' hat gegenüber dem unmaskierten Entschlüsselungsexponenten d bei jeder Berechnung eine unterschiedliche Anordnung von Exponentenbits. Daher führt bei Verwendung eines maskierten Exponenten DPA zu keiner Verbesserung der Trefferwahrscheinlichkeit gegenüber SPA.
  • US 5,991,415 A (Shamir) [6] offenbart eine RSA konforme Möglichkeit, den Entschlüsselungsexponenten d zu maskieren, mit einer bei jeder Berechnung zufällig gewählten geheimgehaltenen Zufallszahl r und der geheimen Eulerschen Funktion gemäß der Relation (4): d' = d + r·φ(n) (7),
  • Die Durchführung einer Exponentiation nach Relation (2) mit einem maskierten Entschlüsselungsexponenten d' nach Relation (7) wird im Stand der Technik im Allgemeinen gegenüber einem Ausspähen des Entschlüsselungsexponenten d mittels DPA als sicher angesehen.
  • DE 100 42 234 C2 (Infineon) [7] offenbart eine weitere Möglichkeit, den geheimen RSA Entschlüsselungsexponenten zu maskieren zu d' = d + r·λ(n) (8), mit einer bei jeder Berechnung zufällig gewählten geheimgehaltenen Zufallszahl r und der geheimgehaltenen Carmichael-Funktion λ(n) λ(n) = φ(n)/g = φ(n)/ggT(p – 1, q – 1) (9), wobei φ(n) nach wie vor die Eulersche Funktion ist und g = ggT(p – 1, q – 1) (10) der größte gemeinsame Teiler (gcd) von p – 1 und q – 1 ist.
  • In der vorliegenden Patentanmeldung wird ein Angriffsverfahren vorgeschlagen, mit dem sich an Hand der Durchführung einer Exponentiation gemäß Relation (2) u = xd' mod n mit einem gemäß Relation (7) oder (8) maskierten geheimen privaten Entschlüsselungsexponenten d' der maskierte Entschlüsselungsexponent d' ermitteln (ausspähen) lässt. Das Angriffsverfahren ist auch im noch unveröffentlichten Dokument [9] beschrieben.
  • Der vorgeschlagene Angriff auf den Square and Multiply Algorithmus (6) stellt eine Kombination aus einfacher Leistungsanalyse SPA und differentieller Leistungsanalyse DPA dar.
  • Der Angriff gegen einen mit der Eulerschen Funktion und einer Zufallszahl r maskierten Entschlüsselungsexponenten d verwendet die Tatsache, dass ungefähr knapp die Hälfte von höchstwertigen Bits des öffentlich bekannten RSA Modulus (3) n = p·q übereinstimmt mit den entsprechenden höchstwertigen Bits der geheimgehaltenen Eulerschen Funktion (4) φ(n) = (p – 1)·(q – 1). Die höchstwertigen Bits des gemäß Gleichung (5) d = e–1(modφ(n)) berechneten unmaskierten Entschlüsselungsexponenten d lassen sich, wie in Boneh, D. „Twenty Years of Attacks an the RSA Cryptosystem", Notices of the AMS 46, 203–213, 1999 [8] beschrieben, erraten. Daher ist in den höchstwertigen Bits der Maskierung des maskierten Entschlüsselungsexponenten d' lediglich die Zufallszahl r unbekannt. Auf dieser Grundlage lässt sich die zur Maskierung des geheimen Entschlüsselungsexponenten d verwendete Zufallszahl r mit vertretbarem Rechenaufwand ermitteln. Sobald r ermittelt ist, lassen sich die restlichen, niederwertigeren Bits des Entschlüsselungsexponenten d ermitteln.
  • Bei der Carmichael Funktion (9) λ(n) = φ(n)/g = φ(n)/ggT(p – 1, q – 1) stimmen die höchstwertigen Bits zwar nicht überein mit den höchstwertigen Bits der Größe g/n, d. h. des durch den ggT g (10) geteilten RSA Modulus (3) n = p·q, jedoch gibt es für den ggT g (10) und damit für die höchstwertigen Bits in aller Regel nur relativ wenige Möglichkeiten, die sich durch Ausprobieren ermitteln lassen. Sobald die höchstwertigen Bits der Carmichael Funktion (9) λ(n) gefunden sind, lässt sich wie beim Angriff gegen die Eulersche Funktion die Zufallszahl r ermitteln. Sobald r ermittelt ist, lassen sich die restlichen, niederwertigeren Bits des Entschlüsselungsexponenten d ermitteln.
  • Für den Angriff wird mit einem Prozessor eine modulare Exponentiation gemäß Relation (2) mit dem mit einer Zufallszahl r maskierten geheimen Entschlüsselungsexponenten d' durchgeführt und der Leistungsverbrauch des Prozessors während der Exponentiation in Abhängigkeit von der Zeit gemessen und aufgezeichnet. Der aufgezeichnete Leistungsverbrauch in Abhängigkeit von der Zeit wird als Leistungsprofil bezeichnet.
  • Der Angriff umfasst drei Teilabschnitte, nämlich Aufnahmeschritt, SPA Phase und DPA Phase. Im Aufnahmeschritt wird eine Vielzahl von m Leistungsprofilen von m Durchführungen einer Exponentiation (2) aufgenommen, mit Maskierung des Entschlüsselungsexponenten d mit jeweils einer jeweils neu zufällig gewählten Zufallszahl rj, j = 0 ... m – 1. In der SPA Phase werden die Leistungsprofile aus dem Aufnahmeschritt analysiert und daraus ungefähr knapp die Hälfte von höchstwertigen Bits des Entschlüsselungsexponenten d und der Eulerschen Funktion ermittelt, und alle m Zufallszahlen rj, j = 0 ... m – 1 ermittelt. In der DPA Phase werden mittels statistischer Methoden aus mehreren, aus der Vielzahl geeignet ausgewählten Leistungsprofilen die restlichen, niedrigerwertigen Bits des Entschlüsselungsexponenten d und der Eulerschen Funktion ermittelt.
  • Der Erfindung liegt die Aufgabe zu Grunde, ein Verfahren zum Erzeugen eines RSA Entschlüsselungsexponenten d zu schaffen, der einen verbesserten Schutz gegen Ausspähung ermöglicht. Insbesondere soll ein Verfahren zum Erzeugen eines RSA Entschlüsselungsexponenten d angegeben werden, der einen guten Schutz gegen den hier vorgeschlagenen Angriff ermöglicht. Weiter soll ein Verfahren zum Erzeugen eines verbessert gegen Seitenkanalangriffe geschützten maskierten RSA Entschlüsselungsexponenten d' auf Grundlage des erzeugten (unmaskierten) RSA Entschlüsselungsexponenten d angegeben werden.
  • Die Aufgabe wird gelöst durch ein Verfahren nach Anspruch 1. Vorteilhafte Ausgestaltungen der Erfindung sind in den abhängigen Ansprüchen angegeben.
  • Das Verfahren nach Anspruch 1 zum Erzeugen eines gegen Ausspähung schätzbaren geheimen RSA Entschlüsselungsexponenten d in einem Prozessor ist gekennzeichnet durch die Schritte
    • a) Auswählen einer Konstruktionszahl z;
    • b) Auswählen von zwei RSA Primzahlen p, q in Abhängigkeit von der gewählten Konstruktionszahl z;
    • c) Berechnen des RSA Modulus n = p·q;
    • d) Auswählen eines öffentlichen RSA Verschlüsselungsexponenten e;
    • e) Berechnen eines – unmaskierten – RSA Entschlüsselungsexponenten d unter Verwendung der gewählten Konstruktionszahl z.
  • Durch das kontrollierte Auswählen der beiden RSA Primzahlen p, q in Abhängigkeit von der ausgewählten Konstruktionszahl z wird der Entschlüsselungsexponent d gezielt so konstruiert, dass eine nachfolgende Maskierung von d zu d' unter Verwendung der ausgewählten Konstruktionszahl z besonders effizient wirkt. Die Grundlage für die Effizienz der (später noch durchzuführenden) Maskierung von d zu d' ist dabei die gezielte Konstruktionsweise für den unmaskierten Entschlüsselungsexponenten d. Das erfindungsgemäße Verfahren liefert somit einen geheimen RSA Entschlüsselungsexponenten d, der, nachdem er zusätzlich maskiert worden ist, besser gegen Ausspähen geschützt ist, der also, in der gemäß Anspruch 1 erzeugten unmaskierten Form, einen verbesserten Schutz gegenüber Ausspähung des Entschlüsselungsexponenten d ermöglicht.
  • Die Konstruktionszahl z ist vorzugsweise möglichst groß gewählt, dabei aber ausreichend klein, dass noch ausreichend Möglichkeiten vorhanden sind, die beiden Primzahlen p, q auszuwählen.
  • Wahlweise hat genauer die Konstruktionszahl z eine Bitlänge lz und der RSA Modulus eine Bitlänge In. Die Bitlänge ln des Modulus n ist bereits vor Berechnung des Modulus n bekannt, da die RSA Berechnung so konstruiert wird, dass der Modulus n eine gewünschte Bitlänge hat, beispielsweise 2048 Bit beim RSA-2048, 1024 Bit beim RSA-1024 etc.. Wahlweise wird die Bitlänge lz der Konstruktionszahl z so ausgewählt, dass sie im Bitlängen-Bereich liegt, der sich von 32 bis zu einem Viertel der Bitlänge ln des RSA Modulus n erstreckt (z. B. lz bis maximal 512 bei ln = 2048), weiter vorzugsweise im Bereich von 64 bis zu einem Viertel der Bitlänge ln des RSA Modulus n, weiter vorzugsweise im Bereich von 64 bis zu einem Achtel der Bitlänge In des RSA Modulus n (z. B. lz bis maximal 256 bei ln = 2048). Wahlweise beträgt die Bitlänge lz der Konstruktionszahl z genau 64 Bit. An der Bitlänge lz der Konstruktionszahl bemisst sich, wie viele Bits ein Angreifer zusätzlich erraten muss, nämlich lz, falls alle lz Bits zufällig gewählt sind, oder (lz – 1), falls das höchste Bit gesetzt ist und die übrigen Bits zufällig gewählt sind. Daher ist es vorteilhaft, wenn z und lz möglichst groß gewählt wird. Andererseits sollte die Bitlänge lz der Konstruktionszahl ausreichend klein im Vergleich zur Bitlänge In des Modulus sein, da bei zu großer Bitlänge lz der Konstruktionszahl die Auswahlmöglichkeiten für die Zufallszahlen p und q unvorteilhaft eingeschränkt würden. Eine Bitlänge lz der Konstruktionszahl z von 64 Bit stellt dahingehend, insbesondere für RSA-2048 und RSA-1024, einen guten Kompromiss dar.
  • Das Berechnen in Schritt e) ist vorzugsweise gestaltet als: Berechnen des (unmaskierten) RSA Entschlüsselungsexponenten d gemäß der Berechnungsvorschrift d = e–1 mod((p – 1)·(q – l)/z) = φ(n)/z.
  • Die Größe ((p – 1)·(q – 1)/z) = φ(n)/z, d. h. der in der Berechnungsformel für den RSA Entschlüsselungsexponenten d verwendete Modulus, hat im Unterschied zur herkömmlicherweise an dieser Stelle verwendeten Eulerschen Funktion φ(n) (vgl. Glg (5)) den Vorteil, dass die höchstwertigen Bits auf Grund der Division durch die Konstruktionszahl z nicht bekannt sind. Somit sind auch die höchstwertigen Bits des RSA Entschlüsselungsexponenten d nicht bekannt. Je größer z ist, umso schwieriger ist es zudem, z zu erraten. Zudem wird durch die Berechnung des Entschlüsselungsexponenten d gemäß der Berechnungsvorschrift d – e–1 mod((p – 1)φ(q – 1)/z) erreicht, dass zur Maskierung von d zu d' mittels einer Zufallszahl r analog die verbesserte Maskierungsfunktion φ(n)/z verwendet werden kann, d. h. die Maskierung kann gemäß d' = d + r·(p – 1)·(q – 1)/z = d + r·φ(n)/z erfolgen.
  • Der Prozessor ist beispielsweise ein Mikroprozessor in einer Chipkarte oder einem anders als kartenförmig geformten Token. Wahlweise ist der Prozessor ein einem Mikroprozessor zugeordneter Krypto-Coprozessor.
  • Der berechnete RSA Entschlüsselungsexponent d kann nachfolgend für prinzipiell beliebig viele Exponentiationen, jeweils Entschlüsselungen oder Signaturerstellungen, z. B. gemäß Gleichung (2), verwendet werden. In der Regel wird der RSA Entschlüsselungsexponent d vor Durchführung der Exponentiation noch maskiert. Die Auswahl der Konstruktionszahl z und der Primzahlen p, q sowie die Berechnung von d muss dabei nur ein einziges Mal durchgeführt werden.
  • Vorzugsweise sind die Primzahlen p, q wie folgt abhängig von der Konstruktionszahl z gebildet, und ist der (unmaskierte) Entschlüsselungsexponent d wie folgt RSA konform gebildet.
  • Schritt b) ist vorzugsweise gestaltet als: Auswählen von zwei RSA Primzahlen p, q in Abhängigkeit von der gewählten Konstruktionszahl z derart, dass p/z Rest eins ergibt und q/z Rest eins ergibt.
  • Durch eine derartige Auswahl der Konstruktionszahl z und der Primzahlen p, q wird erreicht, dass der öffentliche Verschlüsselungsexponent e tellerfremd zu φ(n)/z ist.
  • Wahlweise wird als Konstruktionszahl z eine Zufallszahl gewählt. Wahlweise wird als Konstruktionszahl z eine Primzahl gewählt, wahlweise eine nicht-prime Zahl. Eine prime und eine nicht-prime Konstruktionszahl haben jeweils unterschiedliche Vor- und Nachteile, abhängig vom konkreten Beispiel.
  • Wahlweise wird im Schritt d) „Auswählen eines öffentlichen RSA Verschlüsselungsexponenten e” die Eulersche Funktion φ(n) gemäß Glg (4) berechnet, sowie φ(n)/z berechnet. Wahlweise wird der öffentliche RSA Verschlüsselungsexponent e so gewählt, dass e teilerfremd zu φ(n)/z ist, z. B. wie oben angegeben.
  • Ein erfindungsgemäßes Verfahren zum Berechnen eines gegen Ausspähung geschützten maskierten geheimen RSA Entschlüsselungsexponenten d' in einem Prozessor ist gekennzeichnet durch die Schritte:
    • a)–e) Berechnen eines (unmaskierten) RSA Entschlüsselungsexponenten d nach einem Verfahren wie oben angegeben;
    • f) Auswählen einer Maskierungszahl r;
    • g) Berechnen des maskierten RSA Entschlüsselungsexponenten d' unter Verwendung des RSA Entschlüsselungsexponenten d, der Maskierungszahl r und der gewählten Konstruktionszahl z.
  • Schritt g) ist vorzugsweise gestaltet als: Berechnen des maskierten RSA Entschlüsselungsexponenten d' gemäß der Berechnungsvorschrift d' = d + r (p – 1)·(q – 1)/z = d + r·φ(n)/z.
  • Der erfindungsgemäß berechnete RSA Entschlüsselungsexponent d wird also mit der verbesserten Maskierungsfunktion φ(n)/z maskiert. Hierdurch wird erreicht, dass auch die höchstwertigen Bits des maskierten RSA Entschlüsselungsexponenten d' mittels einer auch in diesen höchstwertigen Bits geheimen Maskierungsfunktion φ(n)/z und zusätzlich mittels der Zufallszahl r geschützt sind, und nicht wie im herkömmlichen RSA Verfahren lediglich mittels der Zufallszahl r. In Verbindung mit einer vorzugsweise großen Größe von z ist auch ein Erraten von z unrealistisch.
  • Wahlweise wird als Maskierungszahl r eine Zufallszahl gewählt. Wahlweise ist die Maskierungszahl prim oder nicht prim. Im Allgemeinen wird die Maskierungszahl nicht prim sein.
  • Der mit der Maskierungszahl r maskierte Entschlüsselungsexponent d' wird in der Regel nur ein einziges Mal verwendet. Für jede erneute Verwendung eines maskierten Entschlüsselungsexponenten d' wird in der Regel eine neue Maskierungszahl, insbesondere Zufallszahl r ausgewählt und ein neuer maskierter Entschlüsselungsexponent d berechnet.
  • Wahlweise wird der öffentliche Verschlüsselungsexponent e klein gewählt, gemessen insbesondere an der Leistung des Prozessors, beispielsweise höchstens 217 + 1 oder höchstens 218 + 1, z. B. e = 216 + 1 = 65537. Durch die erfindungsgemäße Konstruktion der RSA Primzahlen p und q ist das erfindungsgemäße Verfahren auch dann noch sicher, wenn e klein ist und daher der durch die Anmelderin vorgeschlagene Angriff auf einen herkömmlich maskierten RSA Entschlüsselungsexponenten d erfolgreich sein könnte. Die Erfindung bietet somit insbesondere Schutz für ein RSA Verfahren, bei dem ein relativ kleiner öffentlicher Verschlüsselungsexponent e verwendet wird.
  • Ein erfindungsgemäßes Verfahren zur Berechnung einer modularen Exponentiation u = xd' modn in einem Prozessor wird mit einem maskierten RSA Entschlüsselungsexponenten d' durchgeführt, der nach einem Verfahren wie oben angegeben berechnet wird.
  • Eine Entschlüsselung zur Entschlüsselung eines Chiffrats x zu einem Klartext u wird durch modulare Exponentiation wie oben beschrieben durchgeführt. Eine Signaturberechnung zur Signierung eines Eingabedatensatzes x zu einer Signatur u wird ebenfalls durch modulare Exponentiation wie oben beschrieben durchgeführt.
  • Bei einem Verfahren zum sequentiellen Durchführen einer Mehrzahl von Exponentiationen wird für jede Exponentiation eine neue Maskierungszahl r ausgewählt und ein neuer maskierter RSA Entschlüsselungsexponent d' berechnet.
  • Im Folgenden wird die Erfindung an Hand von Ausführungsbeispielen und unter Bezugnahme auf die Zeichnung näher erläutert, in der zeigen:
  • 1 ein Histogramm für Messungen des Stromverbrauchs von Quadrierungen und Multiplikationen;
  • 2 ein schematisiertes Leistungsprofil Tj eines Prozessors bei der Berechnung einer Abfolge von Quadrierungen und Multiplikationen.
  • 1 zeigt ein Histogramm eines Prozessors für Messungen des Stromverbrauchs I (in beliebigen Einheiten a. u.) von Quadrierungen S (Squaring) und Multiplikationen M (Multiplication), in dem aufgetragen ist, welcher Stromverbrauch I mit welcher relativen Häufigkeit F auftritt. Zur Erstellung des Histogramms wurden mit dem Prozessor gezielt Quadrierungen S und Multiplikationen M durchgeführt und der Stromverbrauch während der jeweiligen Operation ermittelt. Quadrierungen S sind durch schwarze Balken dargestellt, Multiplikationen M durch graue Balken. Für die Verteilungen der Häufigkeiten sind, für Quadrierungen S und Multiplikationen M getrennt, Standardverteilungen (Glockenkurven, schwarz für Quadrierungen S, grau für Multiplikationen M) und deren Mittelwerte (senkrechter Pfeil S für Mittelwert der Quadrierung bzw. M für Mittelwert der Multiplikation) eingezeichnet. Aus dem Histogramm ist ersichtlich, dass der mittlere Stromverbrauch einer Quadrierung niedriger ist als der mittlere Stromverbrauch einer Multiplikation (Pfeil S liegt links von Pfeil M, bei niedrigerem Wert von I). Der tatsächliche Stromverbrauch einer einzelnen Operation, Quadrierung S oder Multiplikation M, kann bei einem abweichenden Wert liegen. Die Abweichung lässt sich durch die Standardabweichung der Standardverteilung darstellen. 1 zeigt weiter, dass Stromverbräuche von Quadrierungen auftreten, bei denen der Wert des Stromverbrauchs vermuten ließe, eine Multiplikation wäre durchgeführt worden, und umgekehrt. Hieraus ergibt sich, dass bei einer Messung des Stromverbrauchs einer unbekannten Operation nur mit einer gewissen Wahrscheinlichkeit angegeben werden kann, ob eine Quadrierung oder Multiplikation durchgeführt wurde.
  • Um aus einer modularen Exponentiation mit einem Prozessor den bei der Exponentiation als Exponenten verwendeten maskierten geheimen Entschlüsselungsexponenten d' auszuspähen, werden aus mehreren Durchführungen der Exponentiation Leistungsprofile gewonnen und unter Verwendung eines Histogramms wie des in 1 gezeigten analysiert.
  • 2 zeigt ein schematisiertes Leistungsprofil Tj eines Prozessors, d. h. die vom Prozessor verbrauchte Leistung P als Funktion der Zeit t, bei der Berechnung einer Abfolge von Quadrierungen und Multiplikationen, wie sie bei der Durchführung einer modularen Exponentiation vorkommen kann. Das Leistungsprofil ist gleich dem Stromprofil, d. h. dem Stromverbrauch als Funktion der Zeit, multipliziert mit einer angelegten Spannung. Jede Leistungsspitze in 2 entspricht einer einzelnen Operation, Quadrierung S oder Multiplikation M. Die Gesamtabfolge von Leistungsspitzen und zugeordneten Operationen liefert zum Leistungsprofil ein entsprechendes Operationsprofil O = SMSSSSMSSSMSM... . Gemäß Algorithmus (6), Zeile 6 steht jeweils eine Operationsfolge Quadrierung und Multiplikation SM für jedes Exponentenbit mit Wert 1, und eine einzelne Operation Quadrierung S für jedes Exponentenbit 0. Damit entspricht das Leistungsprofil aus 2 einem verarbeiteten Exponenten d = 100010011... . An Hand des Leistungsverbrauchs einer einzelnen Operation und der Abweichung dieses Leistungsverbrauchs vom erwarteten, aus dem Histogramm von 1 ermittelten Mittelwert für die jeweilige Operation, wird jeder identifizierten Operation eine Wahrscheinlichkeit zugeordnet und so dem Operationsprofil ein Wahrscheinlichkeitsprofil W zugeordnet, die angibt, mit welcher Wahrscheinlichkeit der jeweilige Wert im Operationsprofil, S bzw. M, eine Quadrierung S ist (alternativ: Wahrscheinlichkeit, dass die Operation eine Multiplikation ist). Für O wie oben an Hand von 2 angegeben könnte das Wahrscheinlichkeitsprofil W beispielsweise die folgende Gestalt haben:
    W = 4.99, 0.65, 0.92, 0.27, 1.00, 0.30, 4.01, 0.63, 0.94, 0.53, 0.02, 4.68, 0.04, ... .
  • Der Angriff lässt sich, wie weiter oben gesagt, in drei Teilabschnitte Aufnahmeschritt, SPA Phase und DPA Phase unterteilen.
  • 1. Aufnahmeschritt: Aufnahme der Leistungsprofile
  • In einem Aufnahmeschritt werden Leistungsprofile Tj, j = 0, ... m – 1, wie das in 2 gezeigte, von m Durchführungen des Square and Multiply Algorithmus (6) mit gemäß Relation (7) mit m I-Bit langen Zufallszahlen rj, j = 0, ... m – 1 maskierten privaten RSA Entschlüsselungsexponenten d' = d + rj·φ(n), j = 0, ... m – 1, aufgenommen Jedem Leistungsprofil wird ein Operationsprofil und ein Wahrscheinlichkeitsprofil zugeordnet. Die Operationsfolge im Operationsprofil spiegelt den maskierten Exponenten d' wieder. Ziel ist es, den unmaskierten Exponenten d zu ermitteln.
  • 2. SPA Phase
  • Für die höchstwertigen Bits jedes Leistungsprofils Tj wird anhand der in diesem Bereich gültigen Gleichung d = d + r·n, mit n statt der Eulerschen Funktion, die Maskierungszahl r Bit für Bit erraten. Beim Erraten wird jeweils das Wahrscheinlichkeitsprofil berücksichtigt, wobei zu schlechte Rateergebnisse aussortiert werden. Sobald r erraten ist, können, wie in [8] angegeben ist, die höchstwertigen Bits des unmaskierten Entschlüsselungsexponenten d erraten werden, wenn die folgenden Bedingungen erfüllt sind: die Primzahlen p und q haben beide ungefähr den Wert √ n , und der öffentliche Verschlüsselungsexponent ist klein, beispielsweise e = 65537 = 216 + 1 Die Bedingung für den Grenzwert von e hängt von der Rechenleistung eines zur Berechnung verwendeten Prozessors ab. Unter der Bedingung, dass p und q beide ungefähr den Wert √ n haben, gibt es für die Mehrzahl von höchstwertigen Bits von d nur e – 1 mögliche Werte. Unter der weiteren Bedingung, dass e klein ist, lässt sich die Mehrzahl von höchstwertigen Bits von d durch Ausprobieren ermitteln.
  • 3. DPA Phase
  • Sobald die höchstwertigen Bits des unmaskierten Entschlüsselungsexponenten d und die Maskierungszahl r aus der SPA Phase bekannt sind, werden mittels DPA, in an sich bekannter Weise, die restlichen noch unbekannten, Bits des unmaskierten Entschlüsselungsexponenten d Bit für Bit durch statistische Auswertung ermittelt, beginnend beim niedrigstwertigen Bit.
  • Bei einem erfindungsgemäß konstruierten maskierten Entschlüsselungsexponenten d' ist das Erraten der Maskierungszahl r nicht mehr möglich, da auf Grund der speziellen Auswahl der Primzahlen p und q kein Bereich der Gleichheit zwischen dem bekannten Modulus n = p·q und der geheimgehaltenen, zur Maskierung verwendeten verbesserten Maskierungsfunktion (p – 1)·(q – 1)/z existiert. Insbesondere bei groß gewählter Maskierungszahl z ist auch ein Erraten unrealistisch. Zudem sind auch die höchstwertigen Bits des unmaskierten Entschlüsselungsexponenten d auf Grund der verbesserten Konstruktion von d besser geschützt. Somit lässt sich aus Leistungsprofilen aus Exponentiationen mit dem maskierten geheimen Entschlüsselungsexponenten d' nicht mit vertretbarem Rechenaufwand auf den unmaskierten geheimen Entschlüsselungsexponenten d rückschließen.
  • Literatur:
    • [1] US 4,405,829 ;
    • [2] Alfred Menezes, Paul C. van Oorschot, and Scott A. Vanstone, „Handbook of applied cryptography", Kapitel 14.6, Algorithmus Nr. 14.79;
    • [3] Paul C. Kocher, Joshua Jaffe, and Benjamin Jun. „Differential power analysis", CRYPTO'99 (M. Wiener, ed.), LNCS, no. 1666, 199, pp. 388–397;
    • [4] Suresh Chari, Josyula R. Rao, and Pankaj Rohatgi, „Template Attacks", Cryptographic Hardware and Embedded Systems 2003 (Burt S. Kaliski, Çetin K. Koç, and Christof Paar, eds.), LNCS, no. 2523, Springer-Verlag, 2003, pp. 13–28;
    • [5] Chevallier-Mâmes, B., Ciet, M., Joye, M.: „Low-Cost Solutions for Preventing Simple Side-Channel Analysis: Side-Channel Atomicity; Cryptology ePrint Archiv, Report 2003/237 (2003), http://eprint.iacr.org/;
    • [6] US 5,991,415 A ;
    • [7] DE 100 42 234 C2 ;
    • [8] Boneh, D. „Twenty Years of Attacks on the RSA Cryptosystem", Notices of the AMS 46, 203–213, 1999;
    • [9] Bauer, S., Pulkus, J., „A Combined SPA/DPA Attack Against a Protected RSA Implementation", noch unveröffentlicht.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 4405829 [0002]
    • US 5991415 A [0010]
    • DE 10042234 C2 [0012]
  • Zitierte Nicht-Patentliteratur
    • Alfred Menezes, Paul C. van Oorschot, and Scott A. Vanstone, „Handbook of applied cryptography” (im Folgenden [2] „Menezes” genannt) in Kapitel 14.6, Algorithmus Nr. 14.79 [0004]
    • Paul C. Kocher, Joshua Jaffe, and Benjamin Jun, „Differential power analysis”, CRYPTO '99 (M. Wiener, ed.), LNCS, no. 1666, 199, pp. 388–397 [0005]
    • Suresh Chari, Josyula R. Rao, and Pankaj Rohatgi, „Template Attacks”, Cryptographic Hardware and Embedded Systems 2003 (Hurt S. Kaliski, Çetin K. Koç, and Christof Paar, eds.), LNCS, no. 2523, Springer-Verlag, 2003, pp. 13–28 [0005]
    • Fachartikel Chevallier-Mâmes, B., Ciet, M., Joye, M.: „Low-Cost Solutions for Preventing Simple Side-Channel Analysis: Side-Channel Atomicity”; Cryptology ePrint Archiv, Report 2003/237 (2003), http://eprint.iacr.org/ [0007]
    • Boneh, D. „Twenty Years of Attacks an the RSA Cryptosystem”, Notices of the AMS 46, 203–213, 1999 [0015]

Claims (10)

  1. Verfahren zum Erzeugen eines gegen Ausspähung schätzbaren geheimen RSA Entschlüsselungsexponenten d in einem Prozessor, gekennzeichnet durch die Schritte a) Auswählen einer Konstruktionszahl z; b) Auswählen von zwei RSA Primzahlen p, q in Abhängigkeit von der gewählten Konstruktionszahl z; c) Berechnen des RSA Modulus n = p·q; d) Auswählen eines öffentlichen RSA Verschlüsselungsexponenten e; e) Berechnen des RSA Entschlüsselungsexponenten d unter Verwendung der gewählten Konstruktionszahl z.
  2. Verfahren nach Anspruch 1, wobei die Konstruktionszahl z eine Bitlänge lz hat und der RSA Modulus eine Bitlänge ln hat, und wobei die Bitlänge lz der Konstruktionszahl z im Bitlängen-Bereich liegt, der sich von 32 bis zu einem Viertel der Bitlänge In des RSA Modulus n erstreckt.
  3. Verfahren nach Anspruch 1 oder 2, wobei Schritt e) gestaltet ist als: Berechnen des RSA Entschlüsselungsexponenten d gemäß der Berechnungsvorschrift d = e–1 mod((p – 1)·(q – 1)/z).
  4. Verfahren nach einem der Ansprüche 1 bis 3, wobei Schritt b) gestaltet ist als: Auswählen von zwei RSA Primzahlen p, q in Abhängigkeit von der gewählten Konstruktionszahl z derart, dass p/z Rest eins ergibt und q/z Rest eins ergibt.
  5. Verfahren zum Berechnen eines gegen Ausspähung geschützten maskierten geheimen RSA Entschlüsselungsexponenten d' in einem Prozessor, gekennzeichnet durch die Schritte a)–e) Berechnen eines RSA Entschlüsselungsexponenten d nach einem Verfahren nach einem der Ansprüche 1 bis 4; f) Auswählen einer Maskierungszahl r; g) Berechnen des maskierten RSA Entschlüsselungsexponenten d' unter Verwendung des RSA Entschlüsselungsexponenten d, der Maskierungszahl r und der gewählten Konstruktionszahl z.
  6. Verfahren nach Anspruch 5, wobei als Maskierungszahl r eine Zufallszahl gewählt wird.
  7. Verfahren nach Anspruch 5 oder 6, wobei Schritt g) gestaltet ist als: Berechnen des maskierten RSA Entschlüsselungsexponenten d' gemäß der Berechnungsvorschrift d = d + r (p – 1)·(q – 1)/z.
  8. Verfahren zur Berechnung einer modularen Exponentiation u = xd' modn in einem Prozessor mit einem maskierten RSA Entschlüsselungsexponenten d', der nach einem Verfahren nach einem der Ansprüche 5 bis 7 berechnet wird.
  9. Entschlüsselung oder Signaturberechnung durch modulare Exponentiation nach Anspruch 8 zur Entschlüsselung eines Chiffrats x zu einem Klartext u bzw. zur Signierung eines Eingabedatensatzes x zu einer Signatur u.
  10. Verfahren zum sequentiellen Durchführen einer Mehrzahl von Exponentiationen nach Anspruch 8 oder 9, wobei für jede Exponentiation eine neue Maskierungszahl r ausgewählt wird und ein neuer maskierter RSA Entschlüsselungsexponent d' berechnet wird.
DE102011115082A 2011-09-19 2011-09-19 Gegen Ausspähung schützbarer geheimer RSA Verschlüsselungsexponent Withdrawn DE102011115082A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102011115082A DE102011115082A1 (de) 2011-09-19 2011-09-19 Gegen Ausspähung schützbarer geheimer RSA Verschlüsselungsexponent
EP12783498.4A EP2759090A1 (de) 2011-09-19 2012-09-17 Gegen ausspähung schützbarer geheimer rsa verschlüsselungsexponent
PCT/EP2012/003872 WO2013041200A1 (de) 2011-09-19 2012-09-17 Gegen ausspähung schützbarer geheimer rsa verschlüsselungsexponent

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102011115082A DE102011115082A1 (de) 2011-09-19 2011-09-19 Gegen Ausspähung schützbarer geheimer RSA Verschlüsselungsexponent

Publications (1)

Publication Number Publication Date
DE102011115082A1 true DE102011115082A1 (de) 2013-03-21

Family

ID=47146306

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102011115082A Withdrawn DE102011115082A1 (de) 2011-09-19 2011-09-19 Gegen Ausspähung schützbarer geheimer RSA Verschlüsselungsexponent

Country Status (3)

Country Link
EP (1) EP2759090A1 (de)
DE (1) DE102011115082A1 (de)
WO (1) WO2013041200A1 (de)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4405829A (en) 1977-12-14 1983-09-20 Massachusetts Institute Of Technology Cryptographic communications system and method
US5991415A (en) 1997-05-12 1999-11-23 Yeda Research And Development Co. Ltd. At The Weizmann Institute Of Science Method and apparatus for protecting public key schemes from timing and fault attacks
DE10042234C2 (de) 2000-08-28 2002-06-20 Infineon Technologies Ag Verfahren und Vorrichtung zum Durchführen einer modularen Exponentiation in einem kryptographischen Prozessor

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19837405A1 (de) * 1998-08-18 2000-02-24 Siemens Ag Verfahren und Anordnung zur Bildung eines geheimen Kommunikationsschlüssels zu einem zuvor ermittelten asymmetrischen kryptographischen Schlüsselpaar

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4405829A (en) 1977-12-14 1983-09-20 Massachusetts Institute Of Technology Cryptographic communications system and method
US5991415A (en) 1997-05-12 1999-11-23 Yeda Research And Development Co. Ltd. At The Weizmann Institute Of Science Method and apparatus for protecting public key schemes from timing and fault attacks
DE10042234C2 (de) 2000-08-28 2002-06-20 Infineon Technologies Ag Verfahren und Vorrichtung zum Durchführen einer modularen Exponentiation in einem kryptographischen Prozessor

Non-Patent Citations (12)

* Cited by examiner, † Cited by third party
Title
Alfred Menezes, Paul C. van Oorschot, and Scott A. Vanstone, "Handbook of applied cryptography" (im Folgenden [2] "Menezes" genannt) in Kapitel 14.6, Algorithmus Nr. 14.79
Alfred Menezes, Paul C. van Oorschot, and Scott A. Vanstone, "Handbook of applied cryptography", Kapitel 14.6, Algorithmus Nr. 14.79
Bauer, S., Pulkus, J., "A Combined SPA/DPA Attack Against a Protected RSA Implementation"
Boneh, D. "Twenty Years of Attacks an the RSA Cryptosystem", Notices of the AMS 46, 203-213, 1999
Boneh, D. "Twenty Years of Attacks on the RSA Cryptosystem", Notices of the AMS 46, 203-213, 1999
Chevallier-Mâmes, B., Ciet, M., Joye, M.: "Low-Cost Solutions for Preventing Simple Side-Channel Analysis: Side-Channel Atomicity; Cryptology ePrint Archiv, Report 2003/237 (2003), http://eprint.iacr.org/
Fachartikel Chevallier-Mâmes, B., Ciet, M., Joye, M.: "Low-Cost Solutions for Preventing Simple Side-Channel Analysis: Side-Channel Atomicity"; Cryptology ePrint Archiv, Report 2003/237 (2003), http://eprint.iacr.org/
Hinek, M.J., Another Look at Small RSA Exponents. CT-RSA 2006, LNCS 3860, Springer-Verlag, 2006, Seiten 82-98. *
Paul C. Kocher, Joshua Jaffe, and Benjamin Jun, "Differential power analysis", CRYPTO '99 (M. Wiener, ed.), LNCS, no. 1666, 199, pp. 388-397
Paul C. Kocher, Joshua Jaffe, and Benjamin Jun. "Differential power analysis", CRYPTO'99 (M. Wiener, ed.), LNCS, no. 1666, 199, pp. 388-397
Suresh Chari, Josyula R. Rao, and Pankaj Rohatgi, "Template Attacks", Cryptographic Hardware and Embedded Systems 2003 (Burt S. Kaliski, Çetin K. Koç, and Christof Paar, eds.), LNCS, no. 2523, Springer-Verlag, 2003, pp. 13-28
Suresh Chari, Josyula R. Rao, and Pankaj Rohatgi, "Template Attacks", Cryptographic Hardware and Embedded Systems 2003 (Hurt S. Kaliski, Çetin K. Koç, and Christof Paar, eds.), LNCS, no. 2523, Springer-Verlag, 2003, pp. 13-28

Also Published As

Publication number Publication date
EP2759090A1 (de) 2014-07-30
WO2013041200A1 (de) 2013-03-28

Similar Documents

Publication Publication Date Title
DE69828787T2 (de) Verbessertes verfahren und vorrichtung zum schutz eines verschlüsselungsverfahrens mit öffentlichem schlüssel gegen angriffe mit zeitmessung und fehlereinspeisung
DE69935469T2 (de) Verfahren zur schnellen Ausführung einer Entschlüsselung oder einer Authentifizierung
EP1891512B1 (de) Bestimmung einer modularen inversen
EP1648111B1 (de) Manipulationsbeständige verschlüsselung mit geheimem schlüssel
EP2901611B1 (de) Seitenkanalgeschützte maskierung
DE112007003061T5 (de) Mechanismus zum Schützen eines Schlüssels
DE102008061483A1 (de) Verfahren und Vorrichtung zum Verarbeiten von Daten
DE602004006628T2 (de) Verfahren zur gesicherten ausführung eines rsa kryptographischen algorithmus, sowie diesbezüglicher baustein.
EP1922837B1 (de) Verfahren zum sicheren ver- oder entschlüsseln einer nachricht
DE10143728A1 (de) Vorrichtung und Verfahren zum Berechnen eines Ergebnisses einer modularen Exponentiation
EP1346509B1 (de) Verfahren und Vorrichtung zum Ermitteln eines Schlüsselpaars und zum Erzeugen von RSA-Sclüsseln
Somani et al. An improved RSA cryptographic system
DE60117813T2 (de) Verfahren und Vorrichtung zur Speicherung und wiedergewinnung eones Privaten Kryptoschlüssels
KR100731575B1 (ko) 전력분석공격에 대응하는 암호화 방법
DE60218421T2 (de) Verfahren und Vorrichtung zur Erzeugung von Digitalsignaturen
KR100772550B1 (ko) 전력분석공격에 안전한 메시지 블라인딩 방법
DE102011115082A1 (de) Gegen Ausspähung schützbarer geheimer RSA Verschlüsselungsexponent
DE10328860A1 (de) Vorrichtung und Verfahren zum Verschlüsseln von Daten
EP1454260A2 (de) Verfahren und vorrichtung zum absichern einer exponentiations-berechnung mittels dem chinesischen restsatz (crt)
DE60100992T2 (de) Verfahren zur modularen potenzierung in einem elekronischen baustein, der einen kryptographischen algorithmus mit öffentlichem schlüssel durchführt
DE10042234C2 (de) Verfahren und Vorrichtung zum Durchführen einer modularen Exponentiation in einem kryptographischen Prozessor
Kaedi et al. A New Side-Channel Attack on Reduction of RSA-CRT Montgomery Method Based
Walter Seeing through MIST given a small fraction of an RSA private key
WO2007006649A1 (de) Verfahren zur seitenkanalangriffsresistenten vervielfachung
DE102008026099A1 (de) Sichere Sliding Window Exponentiation

Legal Events

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