Account Options

  1. Sign in
    Screen reader users: click this link for accessible mode. Accessible mode has the same essential features but works better with your reader.

    Patents

    1. Advanced Patent Search
    Publication numberWO2013041200 A1
    Publication typeApplication
    Application numberPCT/EP2012/003872
    Publication dateMar 28, 2013
    Filing dateSep 17, 2012
    Priority dateSep 19, 2011
    Also published asDE102011115082A1, EP2759090A1
    Publication numberPCT/2012/3872, PCT/EP/12/003872, PCT/EP/12/03872, PCT/EP/2012/003872, PCT/EP/2012/03872, PCT/EP12/003872, PCT/EP12/03872, PCT/EP12003872, PCT/EP1203872, PCT/EP2012/003872, PCT/EP2012/03872, PCT/EP2012003872, PCT/EP201203872, WO 2013/041200 A1, WO 2013041200 A1, WO 2013041200A1, WO-A1-2013041200, WO2013/041200A1, WO2013041200 A1, WO2013041200A1
    InventorsSven Bauer, Jürgen PULKUS
    ApplicantGiesecke & Devrient Gmbh
    Export CitationBiBTeX, EndNote, RefMan
    External Links: Patentscope, Espacenet
    Secret rsa encryption exponent that can be protected against access violation
    WO 2013041200 A1
    Abstract
    The invention relates to a method for generating a secret RSA decryption exponent d which can be protected against access violation in a processor, having the following steps: a) selecting a construction number z; b) selecting two RSA prime numbers p, q dependent on the selected construction number z; c) calculating the RSA modulus n = pq; d) selecting a public RSA encryption exponent e; and e) calculating an (unmasked) RSA decryption exponent d using the selected construction number z. The decryption exponent d is masked into a protected masked decryption exponent d' by: f) selecting a masking number r; and g) calculating the masked RSA decryption exponent d' using the selected construction number z.
    Claims  translated from German  (OCR text may contain errors)
    P atentanspr ü che P atentanspr ü che
    1. Verfahren zum Erzeugen eines gegen Ausspähung schützbaren geheimen RSA Entschlüsselungsexponenten d in einem Prozessor, 1. A method for generating a protectable against spying secret RSA decryption exponent d in a processor,
    gekennzeichnet durch die Schritte characterized by the steps
    a) Auswählen einer Konstruktionszahl z; a) selecting a design number z;
    b) Auswählen von zwei RSA Primzahlen p, q in Abhängigkeit von der gewählten Konstruktionszahl z; b) selecting two RSA prime numbers p, q in accordance with the selected design number z;
    c) Berechnen des RSA Modulus n = p q ; c) Calculate the RSA modulus n = p q;
    d) Auswählen eines öffentlichen RSA Verschlüsselungsexponenten e; d) selecting a public RSA encryption exponent e;
    e) Berechnen des RSA Entschlüsselungsexponenten d unter Verwendung der gewählten Konstruktionszahl z. e) calculating the RSA decryption exponent d using the selected design number z.
    2. Verfahren nach Anspruch 1, wobei die Konstruktionszahl z eine Bitlänge lz hat und der RSA Modulus eine Bitlänge In 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. 2. The method of claim 1, wherein the construction number z has a bit length lz and the RSA modulus has a bit length, and wherein the bit length lz the construction number z is in the bit-length region of from 32 up to a quarter of the bit length of In RSA modulus n stretches.
    3. Verfahren nach Anspruch 1 oder 2, wobei Schritt e) gestaltet ist als: Be- rechnen des RSA Entschlüsselungsexponenten d gemäß der Berechnungsvorschrift d = e ~ mod((/? - 1) · (q - 1) / z) . 3. The method of claim 1 or 2, wherein step e) is designed as: loading expect the RSA decryption exponent d in accordance with the calculation rule d = e ~ mod ((/ - 1?) · (Q - 1) / z).
    4. Verfahren nach einem der Ansprüche 1 bis 3, 4. The method according to any one of claims 1 to 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. wherein step b) is configured as: selecting two RSA prime numbers p, q in accordance with the selected design number z such that p / z rest one yields and q / z rest one results.
    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; 5. A method for calculating a protected against spying masked secret RSA decryption exponent d 'in a processor, characterized by the steps a) -e) computing a RSA decryption exponent d by a process according to any one of claims 1 to 4;
    f) Auswählen einer Maskierungszahl r; f) selecting a masking number r;
    g) Berechnen des maskierten RSA Entschlüsselungsexponenten d' unter Ver- wendung des RSA Entschlüsselungsexponenten d, der Maskierungszahl r und der gewählten Konstruktionszahl z. g) calculating the masked RSA decryption exponent d 'under use of the RSA decryption exponent d, the mask number r and the chosen design number z.
    6. Verfahren nach Anspruch 5, wobei als Maskierungszahl r eine Zufallszahl gewählt wird. 6. The method according to claim 5, being selected as a masking number r is a random number.
    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 . 7. The method according to claim 5 or 6, wherein step g) is formed as: calculating the masked RSA decryption exponent d 'according to the calculation formula d' = d + r · (P - 1) × (q - 1) / z.
    8. Verfahren zur Berechnung einer modularen Exponentiation 8. A method for computing a modular exponentiation
    u = x d' mod« u = x d mod "
    in einem Prozessor mit einem maskierten RSA Entschlüsselungsexponenten d', der nach einem Verfahren nach einem der Ansprüche 5 bis 7 berechnet wird. in a processor with a masked RSA decryption exponent d 'which is calculated according to a method according to any one of claims 5 to 7th
    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. 9. decryption or signature calculation by modular exponentiation according to claim 8 to decrypt a ciphertext u x to a plain text or to sign an input data set x u to a signature.
    10. Verfahren zum sequentiellen Durchführen einer Mehrzahl von Exponen- tiationen 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. 10. A method for sequentially performing a plurality of exponential tiationen according to claim 8 or 9, wherein for each exponentiation, a new mask number r is chosen and a new masked RSA decryption exponent d 'is calculated.
    Description  translated from German  (OCR text may contain errors)

    Gegen Ausspähung schützbarer geheimer RSA Verschlüsselungsexponent Counter espionage protectable secret RSA encryption exponent

    Die Erfindung betrifft das Gebiet des Schutzes kryptographischer Berechnungen gegen Ausspähung. The invention relates to the field of the protection of cryptographic calculations against spying. Die Erfindung betrifft genauer ein Verfahren zum Erzeugen eines gegen Ausspähung schützbaren geheimen RSA Entschlüsselungsexponenten in einem Prozessor, zB in einer Chipkarte. The invention relates more particularly to a method for generating a protectable against spying secret RSA decryption exponent in a processor, for example, in a chip card. Die Erfindung betrifft weiter ein Verfahren zum Durchführen einer krypto- graphischen Berechnung in einem Prozessor unter Verwendung eines solchen geheimen RSA Entschlüsselungsexponenten. The invention further relates to a method for performing a cryptographic calculation in a processor using such a secret RSA decryption exponent.

    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üsse- lungsexponenten e, dem privaten Entschlüsselungsexponenten d und dem Modulus n = p*q, der als das Produkt zweier Primzahlen p und q gebildet ist. The asymmetric cryptosystem RSA 1977 developed by Ron Rivest, Adi Shamir and Leonard Adleman and described for example in US 4,405,829 [1] includes a public key E = (e, n) and a secret private key D = (d, n) with the public encryption exponent e, the private decryption exponent d and the modulus n = p * q, which is formed as the product of two prime numbers p and q. Der öffentliche Schlüssel E = (e,n) wird verwendet, um eine Nachricht u gemäß der Relation The public key e = (e, n) is used to create a message and according to the relation

    (1) x = u e modtt (1) x = u e modtt

    zu einem Chiff rat x zu verschlüsseln, oder um eine Signatur zu verifizieren. rat to Chiff x encrypt, or to verify a signature. Der private Schlüssel D = (d,n) wird verwendet, um eine zu einem Chiffrat x verschlüsselte Nachricht u gemäß The private key D = (d, n) is used to a to a cipher x encrypted message and according

    (2) u = x J modrt (2) u = x J modrt

    zu entschlüsseln, oder um eine Signatur zu erzeugen. decrypt, or to generate a signature.

    Die Exponenten e und d werden gebildet wie folgt. The exponents e and d are formed as follows.

    1. Wähle zwei geeignete geheimzuhaltende Primzahlen p * q . 1. Choose two suitable kept secret prime numbers p * q.

    2. Berechne den öffentlichen RSA Modulus 2. Calculate the public RSA modulus

    (3) n = p - q . (3) n = p - q.

    3. Berechne die geheimzuhaltende Eulersche Funktion φ(η) von n 3. Compute the kept secret Euler function φ (η) n

    (4) <p(n) = (p - l) - (q - l) . (4) <p (n) = (p - l) - (Q - l). 4. Wähle als öffentlichen Verschlüsselungsexponenten e eine zu φ(η) teilerfremde Zahl e mit 1 < e < φ(η) . 4. Select the public encryption exponent e a to φ (η) prime number e 1 <e <φ (η).

    5. Berechne den geheimen privaten Entschlüsselungsexponenten d gemäß (5) d = e ~l (mod φ(η)) . 5. Calculate the secret private decryption exponent d according to (5) d = e ~ l (mod φ (η)).

    Die in der Entschlüsselung gemäß der Relation (2) u = x d mod« durchzuführende Exponentiation wird üblicherweise gemäß dem„(Repeated) Square and Multiply" Algorithmus durchgeführt, der beispielsweise in Alfred Me- nezes, 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. The in the decryption according to the relation (2) u = x d mod "performed exponentiation is usually carried out according to the" (Repeated) Square and Multiply "algorithm, for example, in Alfred metal nezes, Paul C. van Oorschot, and Scott A . Vanstone, "Handbook of applied cryptography" (hereinafter [2] "Menezes" called) in section 14.6, algorithm no. 14.79 described.

    Der Square and Multiply Algorithmus ist gegenüber Seitenkanalangriffen gefährdet, beispielsweise Stromangriffen wie zB einfache Leistungsanalyse (Simple Power Analysis (SPA)) oder differentielle Leistungsanalyse (Differential Power Analysis (DPA)). The Square and Multiply Algorithm is threatened against side channel attacks, for example, current attacks such as Simple Power Analysis (Simple Power Analysis (SPA)) or differential power analysis (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 Attacke", Cryptographic Hardware and Embedded Systems 2003 (Burt S. Kaliski, Ce- tin K. Κος, and Christof Paar, eds.), LNCS, no. 2523, Springer-Verlag, 2003, pp. Side channel attacks are, for example, 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] , or in Suresh Chari, Josyula R. Rao, and Pankaj Rohatgi, "template attack", Cryptographic hardware and Embedded Systems 2003 (Burt S. Kaliski, Ce tin K. Κος, and Christof Paar, eds.), LNCS, no . 2523, Springer-Verlag, 2003, pp. 13-28 [4], beschrieben. 13-28 [4] are described. Bei einem Seitenkanalangriff wird beispielsweise ein Leistungsprofil erzeugt, indem der Leistungsverbrauch eines Prozessors während des Durchführens einer Berechnung im zeitlichen Verlauf gemes- sen und in Abhängigkeit von der Zeit aufgezeichnet wird. In a side-channel attack, for example, a power profile is generated by the power consumption of a processor while performing a calculation over time is measured and is recorded in function of time. Aus dem Leistungsprofil kann auf die bei der Berechnung verwendeten Daten rückgeschlossen werden. From the performance profile can be inferred, the data used in the calculation. 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. In (Repeated) Square and Multiply Algorithm of exponent d is processed bit and the base x squared to a first intermediate result and the intermediate result squared continuously again. Ist ein Exponentenbit Eins, wird zusätzlich eine Multiplikation mit der Basis x durchge- führt. Is a Exponentenbit one, in addition, a multiplication with the base is carried out x. Der Leistungsverbrauch des verwendeten Prozessors ist in aller Regel für Quadrierungen und Multiplikationen leicht unterschiedlich. The power consumption of the processor used is slightly different rule for squaring and multiplication. Daher lassen sich im Prinzip mittels einfacher Leistungsanalyse SPA die Werte der Exponentenbits aus dem Leistungsprofil, dh dem zeitlichen Verlauf des Leistungsverbrauchs, des Prozessors bei einer einzelnen Durchführung des Square and Multiply Verfahrens ermitteln. Therefore, can in principle by means of simple power analysis SPA, the values ​​of the exponent of the power profile, ie determine the time pattern of power consumption of the processor in a single execution of the Square and Multiply method. Rauschen erschwert in der Praxis die Ermittlung der Werte der Exponentenbits. Noise difficult in practice to determine the values ​​of the exponent. Da alle Exponentenbits richtig ermittelt werden müssen, ist die Trefferwahrscheinlichkeit für lange Exponenten durch SPA in der Praxis gering. Since all exponent bits must be correctly determined, the hit probability for long exponent by SPA in practice is low. Bei der differentiellen Leistungsanalyse DPA wird aus einer Vielzahl von Durchführungen von Exponentiatio- nen nach zB 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. In differential power analysis DPA NEN by example equation (2) with always the same decryption exponent d but each with different data is x generates a plurality of power profiles that are evaluated by means of statistical methods from a variety of penetrations of Exponentiatio- to draw conclusions about the decryption exponent d to draw. Hierbei lässt sich Rauschen aus den Leistungsprofilen herausmitteln und somit die Tref- ferwahrscheinlichkeit bei der Ermittlung des Exponenten erhöhen. This can be averaged out noise from the performance profiles and thus increase the meet- ferwahrscheinlichkeit when determining the exponent.

    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. In journal article Chevallier-Mämes, B., CIET, M., Joye, M.:"Low-Cost Solutions for Preventing Simple Side-Channel Analysis: Side-Channel Atomicity "; Cryptology ePrint Archive, Report 2003/237 (2003) http://eprint.iacr.org/ [5] is a variant of the Square and Multiply algorithm disclosed that improved protection against side channel attacks than in [2] (Menezes) specified algorithm.

    (6) Variante des Square and Multiply Algorithmus aus [5]: Eingabe: ganze Zahlen x, d, n; (6) Description of the Square and Multiply algorithm [5]: Input: integers x, d, n; d in Binärdarstellung d d in binary d

    Ausgabe: u = x d mod« Issue: u = x d mod "

    1 u Q <— 1 1 u Q <- 1

    2 «i <— 2 "i <-

    3 m - 0 3 m - 0

    4 y - / - i 4 y - / - i

    5 while y > 0 do 5 while y> 0 do

    6 6

    7 m — (w + i 7 ) mod 2 7 m - (w + i 7) mod 2

    8 y <— j + m - l 8 y <- j + m - l

    9 end 9 end

    10 return u Q 10 return u Q

    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. To prevent side channel attacks such as SPA and DPA or at least impede, it is further proposed in the prior art, the private decryption exponent d for each performing a exponentiation on the algorithm (2) a - to mix random number r and therefore the decryption exponent d - usually different a masked decryption exponent d 'to mask, and for decryption or signature calculations according to the algorithm (2) instead of the decryption exponent d masked decryption exponent d' to use. Der maskierte Entschlüsselungsexponent d' hat gegenüber dem unmaskierten Entschlüsselungsexponenten d bei jeder Berechnung eine unterschiedliche Anordnung von Exponentenbits. The masked decryption exponent d 'has over the unmasked decryption exponent d in any calculation a different arrangement of exponent. Daher führt bei Verwendung eines maskierten Exponenten DPA zu keiner Verbesserung der Trefferwahrscheinlichkeit gegenüber SPA. Therefore, when a masked exponent DPA does not improve the hit probability against 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 Euler- schen Funktion gemäß der Relation (4): US 5,991,415 A (Shamir) [6] discloses an RSA compliant way, the decryption exponent d to mask, rule with a randomly chosen for each calculation undisclosed random number r and the secret Euler function according to the relation (4):

    (7) cT= d + r - <p(n) . (7) CT = d + r - <p (n).

    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üsselungs- exponenten d mittels DPA als sicher angesehen. Conducting an exponentiation by relation (2) with a masked decryption exponent d 'by relation (7) is considered in the prior art in general against a spying of the decryption exponent d by DPA as safe.

    DE 100 42 234 C2 (Infineon) [7] offenbart eine weitere Möglichkeit, den geheimen RSA Entschlüsselungsexponenten zu maskieren zu DE 100 42 234 C2 (Infineon) [7] discloses another way to mask the secret RSA decryption exponent

    (8) cT= d + r - Ä(n) , (8) c t = d + r - A (n)

    mit einer bei jeder Berechnung zufällig gewählten geheimgehaltenen Zufallszahl r und der geheimgehaltenen Carmichael-Funktion λ(η) with a randomly chosen for each calculation undisclosed random number r and the undisclosed Carmichael function λ (η)

    (9) λ{ ) = φ(η) I g = φ(ή) I ggT(p - \,q - \) , (9) λ {) = φ (η) I g = φ (ή) I GCD (p - \, q - \)

    wobei φ(η) nach wie vor die Eulersche Funktion ist und where φ (η) still is the Euler function and

    (10) g = ggT(p - \, q - l) (10) g = GCD (p - \, q - l)

    der größte gemeinsame Teiler (gcd) von p-1 und q-1 ist. the greatest common divisor (gcd) of p-1 and q-1.

    In der vorliegenden Patentanmeldung wird ein Angriffsverfahren vorgeschlagen, mit dem sich an Hand der Durchführung einer Exponentiation gemäß Relation (2) u = x d' mod« mit einem gemäß Relation (7) oder (8) mas- kierten geheimen privaten Entschlüsselungsexponenten d' der maskierte Entschlüsselungsexponent d' ermitteln (ausspähen) lässt. In the present application, an attack method is proposed with which according to hand performing a exponentiation relation (2) u = x d mod "with an according Relation (7) or (8) mas-labeled secret private decryption exponent d 'of masked decryption exponent d 'identify (spy) leaves. Das Angriffsverfahren ist auch im noch unveröffentlichten Dokument [9] beschrieben. The attack process is described in the as yet unpublished document [9]. Der vorgeschlagene Angriff auf den Square and Multiply Algorithmus (6) stellt eine Kombination aus einfacher Leistungsanalyse SPA und differentiel- ler 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 = pq übereinstimmt mit den entsprechenden The proposed attack on the Square and Multiply Algorithm (6) represents a combination of simple power analysis SPA and differentiel- ler Power Analysis DPA. The attack against one of the Euler function and a random number r masked decryption exponent d used the fact that about nearly half of most significant bits of the publicly-known RSA modulus (3) n = pq matches the corresponding

    höchstwertigen Bits der geheimgehaltenen Eulerschen Funktion (4) most significant bits of undisclosed Euler function (4)

    <p(n) = (p - 1) · (q - 1) . <P (n) = (p - 1) · (q - 1). Die höchstwertigen Bits des gemäß Gleichung (5) d = e ~l (mod<p(n)) berechneten unmaskierten Entschlüsselungsexponenten d lassen sich, wie in Boneh, D.„Twenty Years of Attacks on the RSA Crypto- system", Notices of the AMS 46, 203-213, 1999 [8] beschrieben, erraten. Daher ist in den höchstwertigen Bits der Maskierung des maskierten Entschlüsse- lungsexponenten 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. The most significant bits of the according to equation (5) d = e ~ l (mod <p (n)) calculated unmasked decryption exponent d can be, as in Boneh, D. "Twenty Years of Attacks on the RSA crypto system," Notices of the AMS 46, 203-213, 1999 [8], guess. Therefore, in the most significant bit is the masking of the masked decryption exponent d 'only the random number r unknown. on this basis can the d used for masking the secret decryption exponent determine random number r with a reasonable computational effort. Once r is determined, the remaining, lower-order bits of the decryption exponent d can be ascertained.

    Bei der Carmichael Funktion (9) λ( ) - φ(ή) I g = φ(η) I ggT(p - 1, q - 1) stimmen die höchstwertigen Bits zwar nicht überein mit den höchstwertigen Bits der Größe gln , dh 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. When Carmichael function (9) λ () - φ (ή) I g = φ (η) I GCD (p - 1, q - 1) agree the most significant bits, although not in accordance with the most significant bits of the size gln, ie the by the gCD g (10) shared RSA modulus (3) n = p q, but there are relatively few options, which can be determined by trial for the gCD g (10) and thus for the most significant bits in most cases. Sobald die höchstwertigen Bits der Carmichael Funktion (9) λ(η) gefunden sind, lässt sich wie beim Angriff gegen die Eulersche Funktion die Zufallszahl r ermitteln. Once the most significant bits of the Carmichael function (9) λ (η) are found, the random number r can be determined as in the attack on the Euler function. Sobald r ermittelt ist, lassen sich die restlichen, niederwertigeren Bits des Entschlüsselungsexponenten d ermitteln. Once r is determined, the remaining, lower-order bits of the decryption exponent d can be determined.

    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. For the attack is a modular exponentiation according to relation (2) carried out with the random number r with a masked secret decryption exponent d 'and the power consumption of the processor while the exponentiation function of the time measured and recorded with a processor. Der aufgezeichnete Leistungsverbrauch in Abhängigkeit von der Zeit wird als Leistungsprofil bezeichnet. The recorded power consumption in function of time is referred to as the power profile.

    Der Angriff umfasst drei Teilabschnitte, nämlich Aufnahmeschritt, SPA Phase und DPA Phase. The attack consists of three sections, namely receiving step, SPA and DPA phase 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 r } . In the recording step, a plurality of m output profiles of m-throughs an exponentiation (2) is added, with masking of the decryption exponent d, each having a respective new random random number r}. , j = 0 · · · m - 1 . , 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 r } . In the SPA Phase performance profiles are analyzed from the receiving step and determines about nearly half of most significant bits of the decryption exponent d and the Euler function, and all m random numbers r}. , j = 0· · · m - 1 ermittelt. , J = 0 · · · m - 1 determined. In der DPA Phase werden mittels statis- tischer Methoden aus mehreren, aus der Vielzahl geeignet ausgewählten Leistungsprofilen die restlichen, niedrigerwertigen Bits des Entschlüsselungsexponenten d und der Eulerschen Funktion ermittelt. In the DPA phase, the remaining less significant bits of the decryption exponent d and the Euler function are determined by means of statistical methods of a plurality of the plurality appropriately selected power profiles.

    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. The invention is based on the object to provide a method for generating an RSA decryption exponent d, which enables improved protection against spying. Insbesondere soll ein Verfahren zum Erzeugen eines RSA Entschlüsselungsexponenten d angegeben werden, der einen guten Schutz gegen den hier vorgeschlagenen Angriff ermöglicht. In particular, a method of generating an RSA decryption exponent d is to be provided, which enables a good protection against the attack proposed here. Weiter soll ein Verfahren zum Erzeugen eines verbessert gegen Seitenkanalan- griffe geschützten maskierten RSA Entschlüsselungsexponenten cT auf Grundlage des erzeugten (unmaskierten) RSA Entschlüsselungsexponenten d angegeben werden. Next, a method for producing an improved grip against Seitenkanalan- protected masked RSA decryption exponent cT on the basis of the generated (unmasked) RSA decryption exponent d can be specified. Die Aufgabe wird gelöst durch ein Verfahren nach Anspruch 1. Vorteilhafte Ausgestaltungen der Erfindung sind in den abhängigen Ansprüchen angegeben. The object is achieved by a method according to claim 1. Advantageous embodiments of the invention are specified in the dependent claims.

    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 The method according to claim 1 for generating a protectable against spying secret RSA decryption exponent d in a processor is characterized by the steps

    a) Auswählen einer Konstruktionszahl z; a) selecting a design number z;

    b) Auswählen von zwei RSA Primzahlen p, q in Abhängigkeit von der gewählten Konstruktionszahl z; b) selecting two RSA prime numbers p, q in accordance with the selected design number z;

    c) Berechnen des RSA Modulus n = p - q ; c) Calculate the RSA modulus n = p - q;

    d) Auswählen eines öffentlichen RSA Verschlüsselungsexponenten e; d) selecting a public RSA encryption exponent 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. e) calculating a - unmasked - RSA decryption exponent d using the selected design number z By controlling the selecting of the two RSA primes p q, depending on the selected construction number z of the decryption exponent d is specifically designed so that a subsequent masking of d. d 'acts using the selected design number z particularly efficient. 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. The basis for the efficiency of the (later to be carried out) masking of d to d 'is the deliberate construction method for the unmasked decryption exponent d. The inventive method thus provides a secret RSA decryption exponent d, which, after it has been additionally masked better against spying is protected, the so generated in accordance with claim 1 unmasked form enables enhanced protection against espionage of the decryption exponent d.

    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. The construction number z is preferably as large as possible, yet small enough that even sufficient facilities are available, the two prime numbers p, q select.

    Wahlweise hat genauer die Konstruktionszahl z eine Bitlänge lz und der RSA Modulus eine Bitlänge In. Optionally, has precisely the design speed for a bit length lz and the RSA modulus bit length In. Die Bitlänge In 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 In des RSA Modulus n erstreckt (zB lz bis maximal 512 bei ln=2048), weiter vorzugsweise im Bereich von 64 bis zu einem Viertel der Bitlänge In des RSA Modulus n, weiter vorzugsweise im Bereich von 64 bis zu einem Achtel der Bitlänge In des RSA Modulus n (zB lz bis maximal 256 bei ln=2048). The bit length in the modulus n is before calculating the modulus known n as the RSA calculation is designed so that the modulus n has a desired bit length, for example, 2048 bits for the RSA in 2048, 1024 bits for the RSA-1024 etc .. Optional the bit length lz construction number is z selected such that it is in the bit length range extending from 32 up to a quarter of the bit length in the RSA modulus n stretches (eg lz to a maximum of 512 at ln = 2048), more preferably in the range from 64 up to a quarter of the bit length of the RSA modulus n, more preferably in the range of 64 up to an eighth of the bit length of the RSA modulus n (for example, up to 256 at lz ln = 2048). Wahlweise beträgt die Bitlänge lz der Konstruktionszahl z genau 64 Bit. Alternatively, the bit length lz construction number z is exactly 64 bits. An der Bitlänge lz der Kon- struktionszahl 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. construction speed at the bit length lz of consolidated is measured how many bits must guess an attacker addition, namely lz if all lz bits are chosen randomly, or (lz-1), if the highest bit is set and selected the remaining bits randomly are. Daher ist es vorteilhaft, wenn z und lz möglichst groß gewählt wird. It is therefore advantageous if, and lz is as large as possible. 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. On the other hand, the bit length lz construction number should be sufficiently small compared to the bit length of the modulus in because with too large bit length lz of the construction number, the choices for the random numbers p and q would restrict disadvantageous. 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 (un- maskierten) RSA Entschlüsselungsexponenten d gemäß der Berechnungsvorschrift d = e 'x mod(( 7 - 1) · (q - 1) / z) = φ(ή) I z . A bit length lz construction number for 64-bit is the effect, in particular for RSA-2048 and RSA-1024, a good compromise Computing in step e) is preferably designed as a. Calculate the (un- masked) RSA decryption exponent d in accordance with the calculation rule d = e 'x mod ((7 - 1) · (q - 1) / z) = φ (ή) I z.

    Die Größe ((p - 1) · (q - 1) / z) = <p(n) I z , dh 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 φ ή) (vgl. Gig (5)) den Vorteil, dass die höchstwertigen Bits auf Grund der Division durch die Konstruktionszahl z nicht bekannt sind. The size ((p - 1) · (q - 1) / z) = <p (n) I z, ie the modulus d used in the formula for calculating the RSA decryption exponent has, in contrast to the Euler function conventionally used at this point φ ή) (see FIG. gig (5)) the advantage that the most significant bits are not known due to the division by the number z construction. Somit sind auch die höchstwertigen Bits des RSA Entschlüsselungsexponenten d nicht bekannt. Thus, the most significant bits of RSA decryption exponent d are not known. Je größer z ist, umso schwieriger ist es zudem, z zu erraten. The larger z is, the more difficult it is also such to guess. Zudem wird durch die Berechnung des Entschlüsselungsexponenten d gemäß der Berechnungsvorschrift d = e ~ mod({p - \) - {q - \)lz) erreicht, dass zur Maskierung von d zu d' mittels einer Zufallszahl r analog die verbesserte Maskierungsfunktion φ(ή)Ι z verwendet werden kann, dh die Maskierung kann gemäß d'= d + r (p - 1) · (q - 1) I z = d + r φ(η) I z erfolgen. In addition, because the calculation of the decryption exponent d in accordance with the calculation rule d = e ~ mod ({p - \) - {q - \) lz) achieved that analogously to the masking of d to d 'by means of a random number r φ improved masking function ( ή) Ι z may be used, ie, the masking, according to d '= d + r (p - be effected 1) I z = d + r ■ φ (η) I z - 1) · (q.

    Der Prozessor ist beispielsweise ein Mikroprozessor in einer Chipkarte oder einem anders als kartenf örmig geformten Token. The processor is for example a microprocessor in a smart card or a differently shaped manner kartenf shaped token. Wahlweise ist der Prozessor ein einem Mikroprozessor zugeordneter Krypto-Coprozessor. Optionally, the processor is a microprocessor associated crypto-coprocessor.

    Der berechnete RSA Entschlüsselungsexponent d kann nachfolgend für prinzipiell beliebig viele Exponentiationen, jeweils Entschlüsselungen oder Signaturerstellungen, zB gemäß Gleichung (2), verwendet werden. The calculated RSA decryption exponent d can follow for an essentially unlimited amount exponentiations, each decryption or signature creations, according to equation (2), used for example. In der Regel wird der RSA Entschlüsselungsexponent d vor Durchführung der Ex- ponentiation noch maskiert. In general, the RSA decryption exponent d is ponentiation still masked prior to the explosion. Die Auswahl der Konstruktionszahl z und der Primzahlen p, q sowie die Berechnung von d muss dabei nur ein einziges Mal durchgeführt werden. The selection of the construction number z and the prime numbers p, q, and the calculation of d needs to be done here only once. 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. Preferably, the prime numbers p, q as follows depending formed from the design number z, and is the (unmasked) decryption exponent d as follows RSA compliant formed.

    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. Step b) is preferably designed as: selecting two RSA prime numbers p, q in accordance with the selected design number z such that p / z rest one yields and q / z rest one results.

    Durch eine derartige Auswahl der Konstruktionszahl z und der Primzahlen p, q wird erreicht, dass der öffentliche Verschlüsselungsexponent e teilerfremd zu φ(η) I z ist. By such selection of the construction number z and the primes p q is achieved that the public encryption exponent e is relatively prime to φ (η) I z.

    Wahlweise wird als Konstruktionszahl z eine Zufallszahl gewählt. Optional is selected as the design speed for a random number. Wahlweise wird als Konstruktionszahl z eine Primzahl gewählt, wahlweise eine nicht-prime Zahl. Optional is selected as the design for a prime number, optionally a non-prime number. Eine prime und eine nicht-prime Konstruktionszahl haben jeweils unterschiedliche Vor- und Nachteile, abhängig vom konkreten Beispiel. A prime and non-prime construction number each have different advantages and disadvantages, depending on the concrete example.

    Wahlweise wird im Schritt d)„Auswählen eines öffentlichen RSA Verschlüs- selungsexponenten e " die Eulersche Funktion <p(n) gemäß Gig (4) berechnet, sowie φ{η) I z berechnet. Wahlweise wird der öffentliche RSA Verschlüsselungsexponent e so gewählt, dass e teilerfremd zu φ(η) I z ist, zB 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: Optionally, "Choosing an RSA public encryption selungsexponenten e" is Euler's function <p (n) according Gig (4) is calculated, and φ {η) I will z calculated in step d). Optionally, the RSA public encryption exponent e is chosen so . that e prime to φ (η) I z, as indicated above, for example, an inventive method for calculating a protected against spying masked secret RSA decryption exponent d 'in a processor is characterized by the steps:

    a)-e) Berechnen eines (unmaskierten) RSA Entschlüsselungsexponenten d nach einem Verfahren wie oben angegeben; a) -e) calculating an (unmasked) RSA decryption exponent d by a method as indicated above; f) Auswählen einer Maskierungszahl r; f) selecting a masking number 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. g) calculating the masked RSA decryption exponent d 'using the RSA decryption exponent d, the masking number r and the chosen construction number z.

    Schritt g) ist vorzugsweise gestaltet als: Berechnen des maskierten RSA Entschlüsselungsexponenten d' gemäß der Berechnungsvorschrift Step g) is preferably designed as: calculating the masked RSA decryption exponent d 'according to the calculation rule

    d'= d + r {p - 1) · (q - 1) I z = d + r · φ(η) I z . d '= d + r {p - 1) · (q - 1) I z = d + r · φ (η) I z. Der erfindungsgemäß berechnete RSA Entschlüsselungsexponent d wird also mit der verbesserten Maskierungsfunktion φ(η) I z maskiert. The inventively calculated RSA decryption exponent d is therefore φ masked (η) I for the improved masking function. 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 φ ή)Ι z und zusätzlich mittels der Zufalls- zahl r geschützt sind, und nicht wie im herkömmlichen RSA Verfahren lediglich mittels der Zufallszahl r. This ensures that the most significant bits of the masked RSA decryption exponent d 'φ by means of a secret in these most significant bits masking function ή) Ι z and additionally by means of the random number r are protected, and not as in the conventional RSA method only by means of random number r. In Verbindung mit einer vorzugsweise großen Größe von z ist auch ein Erraten von z unrealistisch. In conjunction with a preferably large size of such a guessing z is unrealistic.

    Wahlweise wird als Maskierungszahl r eine Zufallszahl gewählt. Optional is selected as masking number r is a random number. Wahlweise ist die Maskierungszahl prim oder nicht prim. Optionally, the mask number is prime or not prime. Im Allgemeinen wird die Maskierungszahl nicht prim sein. In general, the mask number will not be prime.

    Der mit der Maskierungszahl r maskierte Entschlüsselungsexponent d' wird in der Regel nur ein einziges Mal verwendet. The masking with the number r masked decryption exponent d 'is generally used only once. 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. For any re-use of a masked decryption exponent d 'is usually a new mask number, in particular random number r is selected and a new masked decryption exponent d' calculated. Wahlweise wird der öffentliche Verschlüsselungsexponent e klein gewählt, gemessen insbesondere an der Leistung des Prozessors, beispielsweise höchstens 2 17 + 1 oder höchstens 2 18 + 1 , zB e = 2 16 + 1 = 65537 . Optionally, the public encryption exponent e is chosen small, measured in particular against the performance of the processor, for example, more than 2 17 + 1 or at most 2 18 + 1, for example, e = 2 16 + 1 = 65537th Durch die erfindungsgemäße Konstruktion der RSA Primzahlen p und q ist das erfin- dungsgemäß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. The inventive design of the RSA primes p and q, the inventive method is also more secure if e is small and therefore the proposed by the Applicant attacking a conventionally masked RSA decryption exponent d could be successful. Die Erfindung bietet somit insbesondere Schutz für ein RSA Verfahren, bei dem ein relativ kleiner öffentlicher Verschlüsselungsexponent e verwendet wird. The invention thus provides in particular protection for an RSA method, in which a relatively small public encryption exponent e is used.

    Ein erfindungsgemäßes Verfahren zur Berechnung einer modularen Expo- nentiation u = x d' mod« in einem Prozessor wird mit einem maskierten RSA Entschlüsselungsexponenten d' durchgeführt, der nach einem Verfahren wie oben angegeben berechnet wird. An inventive method for calculating a modular exponentiation x = u d 'mod' in a processor is decryption exponent d with a masked RSA 'carried out, which is calculated according to a method as indicated above.

    Eine Entschlüsselung zur Entschlüsselung eines Chiffrats x zu einem Klartext u wird durch modulare Exponentiation wie oben beschrieben durchgeführt. A decryption to decrypt a ciphertext x u to a plain text is performed as described by modular exponentiation above. Eine Signaturberechnung zur Signierung eines Eingabedatensatzes x zu einer Signatur u wird ebenfalls durch modulare Exponentiation wie oben be- schrieben durchgeführt. A signature calculation for signing an input data set x to a signature and is also described performed by modular exponentiation above.

    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' be- rechnet. In a method for sequentially performing a plurality of exponentiations a new mask number r is selected for each exponentiation and a new masked RSA decryption exponent d 'calculated.

    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 ein Histogramm für Messungen des Stromverbrauchs von Quadrierungen und Multiplikationen; 1 shows a histogram of measurements of the power consumption of squaring and multiplication;: The invention of exemplary embodiments and with reference to the drawings is explained in more detail in the show.

    Fig. 2 ein schematisiertes Leistungsprofil T } eines Prozessors bei der Berechnung einer Abfolge von Quadrierungen und Multiplikationen. FIG. 2 is a schematic power profile T} a processor for calculating a sequence of squaring and multiplication.

    Fig. 1 zeigt ein Histogramm eines Prozessors für Messungen des Stromverbrauchs I (in beliebigen Einheiten au) von Quadrierungen S (Squaring) und Multiplikationen M (Multiplication), in dem aufgetragen ist, welcher Stromverbrauch I mit welcher relativen Häufigkeit F auftritt. Fig. 1 shows a histogram of a processor for measuring the current consumption I (in arbitrary units AU) of squarings S (Squaring) and M multiplications (multiplication), is plotted in which current consumption I with which the relative frequency F occurs. 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. To create the histogram were specifically performed squaring S and M multiplications with the processor and determines the power consumption during the respective operation. Quadrierungen S sind durch schwarze Balken dargestellt, Multiplikationen M durch graue Balken. Squaring S are indicated by black bars, multiplications M by gray bars. Für die Verteilungen der Häufigkeiten sind, für Quadrierungen S und Multiplikationen M ge- trennt, 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. For the distributions of abundances, disconnected for squaring S and multiplications M, standard distributions (bell curves, black for squaring S, gray for multiplications M) and their mean values ​​(vertical arrow S for mean squaring or M mean value of the multiplication) located. 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). From the histogram it is seen that the average current consumption of a squaring is lower than the average power consumption of a multiplication (arrow S is to the left of the arrow M, with a lower value of I). Der tatsächliche Stromverbrauch einer einzelnen Operation, Quadrierung S oder Multiplikation M, kann bei einem abweichenden Wert liegen. The actual power consumption of a single operation, squaring S or M multiplication may be at a different value. Die Abweichung lässt sich durch die Standardabweichung der Standardverteilung darstellen. The deviation can be represented by the standard deviation of the standard distribution. Fig. 1 zeigt weiter, dass Stromverbräuche von Quadrie- rungen auftreten, bei denen der Wert des Stromverbrauchs vermuten ließe, eine Multiplikation wäre durchgeführt worden, und umgekehrt. FIG. 1 further shows that electricity consumption of squaring ments occur in which the value of electricity consumption would suggest, a multiplication had been carried out, and vice versa. 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. It follows that when measuring the power consumption of an unknown operation can only be specified with a certain probability if a squaring or multiplication was carried out. 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üh- rungen der Exponentiation Leistungsprofile gewonnen und unter Verwendung eines Histogramms wie des in Fig. 1 gezeigten analysiert. To the masked secret decryption exponent used as exponents in exponentiation d 'spy from a modular exponentiation with a processor, are from multiple penetrations of exponentiation performance profiles recovered and purified using a histogram as the analyzes shown in FIG. 1.

    Fig. 2 zeigt ein schematisiertes Leistungsprofil Γ. FIG. 2 shows a schematic profile Γ power. eines Prozessors, dh die vom Prozessor verbrauchte Leistung P als Funktion der Zeit t, bei der Be- rechnung einer Abfolge von Quadrierungen und Multiplikationen, wie sie bei der Durchführung einer modularen Exponentiation vorkommen kann. a processor, that is, the power consumed by the processor power P as a function of time t, at the calculation of a succession of squarings and multiplications, as may occur in performing a modular exponentiation. Das Leistungsprofil ist gleich dem Stromprofil, dh dem Stromverbrauch als Funktion der Zeit, multipliziert mit einer angelegten Spannung. The power profile is equal to the current profile, ie the power consumption as a function of time multiplied by an applied voltage. Jede Leistungsspitze in Fig. 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 ... . Each power peak in Fig. 2 corresponds to a single operation, squaring S or multiplication M. The total sequence of power peaks and associated operations provides the performance profile, a corresponding operation Profile 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 Fig. 2 einem verarbeiteten Exponenten d = 10001001 1... . According algorithm (6), line 6 each a sequence of operations squaring and multiplication SM stands for each Exponentenbit with value 1, and a single operation squaring S for each Exponentenbit 0. This corresponds to the power profile of FIG. 2 a processed exponent d = 10001001 1. ... An Hand des Leistungsverbrauchs einer einzelnen Operation und der Abweichung dieses Leistungsverbrauchs vom erwarteten, aus dem Histogramm von Fig. 1 ermittelten Mittelwert für die jeweilige Operation, wird jeder identifizierten Opera- tion 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 Multi- plikation ist). On hand of the power consumption of a single operation and the deviation of this power consumption from the expected, from the histogram of FIG. 1 determined average for each operation, each identified operations a chance a likelihood profile W tion assigned and so the operational profile is assigned, indicating the probability with which the respective value in the operating profile, S or M, squaring S is (alternatively: the probability that the operation is a multi- plication). Für O wie oben an Hand von Fig. 2 angegeben könnte das Wahrscheinlichkeitsprofil W beispielsweise die folgende Gestalt haben: W = 0.99,0.65,0.92,0.27,1.00,0.30,0.01,0.63,0.94,0.53,0.02,0.68,0.04, ... . . Specified for O as above with reference to FIG 2, the probability W Profile for example, could have the following form: W = 0.99,0.65,0.92,0.27,1.00,0.30,0.01,0.63,0.94,0.53,0.02,0.68,0.04. ... Der Angriff lässt sich, wie weiter oben gesagt, in drei Teilabschnitte Aufnahmeschritt, SPA Phase und DPA Phase unterteilen. The attack can be, as said above, divided into three sections receiving step SPA and DPA phase phase.

    1. Aufnahmeschritt: Aufnahme der Leistungsprofile In einem Aufnahmeschritt werden Leistungsprofile _T y , / = 0, · · m - 1 , wie das in Fig. 2 gezeigte, von m Durchführungen des Square and Multiply Algorithmus (6) mit gemäß Relation (7) mit m 1-Bit langen Zufallszahlen 1. Recording step: recording the performance profiles In a receiving step performance profiles _T y, / = 0, · · m - 1, as shown in Figure 2, of m-throughs of the Square and Multiply Algorithm (6) in accordance with relation (. 7 ) long with 1 m-bit random numbers

    . , , j = 0, · · · m - 1 maskierten privaten RS A Entschlüsselungsexponenten d'= d + r j φ(η), j = 0, · · · m - 1 , aufgenommen. , J = 0, · · · m - 1 masked private RS A decryption exponent d '= d + r j ■ φ (η), j = 0, · · · m - 1, was added. Jedem Leistungsprofil wird ein Operationsprofil und ein Wahrscheinlichkeitsprofil zugeordnet. Each service profile is assigned to an operational profile and a probability profile. Die Operationsfolge im Operationsprofil spiegelt den maskierten Exponenten d' wieder. The sequence of operations in the operating profile reflects the masked exponent d 'again. Ziel ist es, den unmaskierten Exponenten d zu ermitteln. The aim is to determine the unmasked exponent d.

    2. SPA Phase 2. SPA Phase

    Für die höchstwertigen Bits jedes Leistungsprofils T } 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. For the most significant bits of each power profile, T} is determined from the valid region in this equation the d 'd + r - n, with n guess instead of the Euler's function, the masking number r bit by bit. Beim Erraten wird jeweils das Wahrscheinlichkeitsprofil berücksichtigt, wobei zu schlechte Rate- ergebnisse aussortiert werden. When guessing the probability profile is respectively addressed; taking bad Rate- results are sorted out. 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 V« , und der öffentliche Verschlüsselungsexponent ist klein, beispielsweise e = 65537 = 2 16 + l . Once r is guess, as in [8] is given, to guess the most significant bits of the unmasked decryption exponent d, if the following conditions are met: the prime numbers p and q both have a value of approximately V ", and the public encryption exponent small, for example, e = 65537 = 2 16 + l. Die Bedingung für den Grenzwert von e hängt von der Rechenleistung eines zur Berechnung verwendeten Prozessors ab. The condition for the limit value of e is dependent on the computational power of a processor used in the calculation. Unter der Bedingung, dass p und q beide ungefähr den Wert n haben, gibt es für die Mehrzahl von höchstwer- tigen Bits von d nur e - 1 mögliche Werte. Under the condition that p and q are both about the value of n, there are for the majority of highest order significant bits of d only e - 1 possible values. Unter der weiteren Bedingung, dass e klein ist, lässt sich die Mehrzahl von höchstwertigen Bits von d durch Ausprobieren ermitteln. Among the further proviso that e is small, can the plurality of most significant bits of d determined by trial and error.

    3. DPA Phase 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 statis- tische Auswertung ermittelt, beginnend beim niedrigstwertigen Bit. Once the most significant bits of the unmasked decryption exponent d and the masking number r from the SPA phase known, by means of DPA, in manner known per se, the remaining unknown, bits of the unmasked decryption exponent d bit determined for bit by statistical evaluation, starting the least significant 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 - \) - {q - \)lz existiert. In an inventively constructed masked decryption exponent d 'is guessing the masking number is no longer r possible because due to the specific selection of the prime numbers p and q no area of ​​equality between the known modulus n - p - q and undisclosed, used for masking improved masking function (p - \) - {q - \) lz exists. Insbesondere bei groß gewählter Maskierungszahl z ist auch ein Erraten unrealistisch. Particularly in large selected mask number for a guessing is unrealistic. Zudem sind auch die höchstwertigen Bits des unmaskierten Entschlüsselungsexponenten d auf Grund der verbesser- ten Konstruktion von d besser geschützt. In addition, the most significant bits of the unmasked decryption exponent d are better protected due to the improved structure of d. 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. Thus, can be derived from performance profiles exponentiations with the masked secret decryption exponent d 'does not infer with reasonable computational effort on the unmasked secret decryption exponent d. Literatur: Literature:

    [1] US 4,405,829; [1] US 4,405,829;

    [2] Alfred Menezes, Paul C. van Oorschot, and Scott A. Vanstone,„Hand- book of applied cryptography", Kapitel 14.6, Algorithmus Nr. 14.79; [2] Alfred Menezes, Paul C. van Oorschot, and Scott A. Vanstone, "Handbook of applied cryptography", Chapter 14.6, algorithm No. 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; [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, Ce- tin K. Κος, and Christof Paar, eds.), LNCS, no. 2523, Springer-Verlag, 2003, pp. 13-28; [4] Suresh Chari, Josyula R. Rao, and Pankaj Rohatgi, "Template Attacks", Cryptographic Hardware and Embedded Systems 2003 (Burt S. Kaliski, Ce tin K. Κος, 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 Pre- venting Simple Side-Channel Analysis: Side-Channel Atomicity; [5] Chevallier-Mämes, B., CIET, M., Joye, M.:"Low-Cost Solutions for pre- venting Simple Side-Channel Analysis: Side-Channel atomicity; Cryptology ePrint Archiv, Report 2003/237 (2003), http://eprint.iacr.org/; Cryptology ePrint Archive, Report 2003/237 (2003), http://eprint.iacr.org/;

    [6] US 5,991,415 A; [6] US 5,991,415 A;

    [7] DE 100 42 234 C2; [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; [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. [9] Bauer, S., Pulkus, J., "A Combined SPA / DPA Attack Against a Protected RSA Implementation", still unpublished.

    Patent Citations
    Cited PatentFiling datePublication dateApplicantTitle
    DE10042234A1 *Aug 28, 2000Mar 14, 2002Infineon Technologies AgVerfahren und Vorrichtung zum Durchführen einer modularen Exponentiation in einem kryptographischen Prozessor
    DE10042234C2Aug 28, 2000Jun 20, 2002Infineon Technologies AgVerfahren und Vorrichtung zum Durchführen einer modularen Exponentiation in einem kryptographischen Prozessor
    DE19837405A1 *Aug 18, 1998Feb 24, 2000Siemens AgSecret communication key forming method
    US4405829Dec 14, 1977Sep 20, 1983Massachusetts Institute Of TechnologyCryptographic communications system and method
    US5991415May 12, 1997Nov 23, 1999Yeda Research And Development Co. Ltd. At The Weizmann Institute Of ScienceMethod and apparatus for protecting public key schemes from timing and fault attacks
    Non-Patent Citations
    Reference
    1 *"Chapter 8: Public-Key Encryption ED - Menezes A J; Van Oorschot P C; Vanstone S A", HANDBOOK OF APPLIED CRYPTOGRAPHY; [CRC PRESS SERIES ON DISCRETE MATHEMATICES AND ITS APPLICATIONS], CRC PRESS, BOCA RATON, FL, US, PAGE(S) 283 - 319 , 1. Oktober 1996 (1996-10-01), XP001525008, ISBN: 978-0-8493-8523-0 Gefunden im Internet: URL:http://www.cacr.math.uwaterloo.ca/hac/
    2 *"SHORT DESCRIPTION OF RSA PUBLIC KEY ALGORITHM", INTERNET CITATION, 22. Mai 2002 (2002-05-22), XP002199681, Gefunden im Internet: URL:http://www.belymt.jyu.fi/rp/crypt/rsa/rsa.txt [gefunden am 2002-05-22]
    3ALFRED MENEZES; PAUL C. VAN OORSCHOT; SCOTT A. VANSTONE: 'Handbook of applied cryptography',
    4BAUER, S.; PULKUS, J. A COMBINED SPA/ DPA ATTACK AGAINST A PROTECTED RSA IMPLEMENTATION
    5BONEH, D.: 'Twenty Years of Attacks on the RSA Cryptosystem' NOTICES OF THE AMS 46 1999, Seiten 203 - 213
    6CHEVALLIER-MÄMES, B.; CIET, M.; JOYE, M.: 'Low-Cost Solutions for Preventing Simple Side-Channel Analysis: Side-Channel Atomicity' CRYPTOLOGY EPRINT ARCHIV, [Online] 2003, Gefunden im Internet: <URL:http://eprint.iacr.org>
    7FACHARTIKEL CHEVALLIER-MÄMES, B.; CIET, M.; JOYE, M.: 'Low-Cost Solutions for Preventing Simple Side-Channel Analysis: Side-Channel Atomicity' CRYPTOLOGY EPRINT ARCHIV 2003,
    8PAUL C. KOCHER; JOSHUA JAFFE; BENJAMIN JUN: 'CRYPTO '99', vol. 'Differential power analysis', Seiten 388 - 397
    9PAUL C. KOCHER; JOSHUA JAFFE; BENJAMIN JUN: 'Differential power analysis' CRYPTO '99 Seiten 388 - 397
    10SURESH CHARI; JOSYULA R. RAO; PANKAJ ROHATGI: 'Cryptographic Hardware and Embedded Systems', 2003, SPRINGER-VERLAG vol. 'Template Attacks', Seiten 13 - 28
    Classifications
    International ClassificationH04L9/00, H04L9/08, H04L9/30
    Cooperative ClassificationH04L9/003, G06F2207/7257, H04L2209/046, H04L9/0861, H04L9/302, G06F7/723
    Legal Events
    DateCodeEventDescription
    May 15, 2013121Ep: the epo has been informed by wipo that ep was designated in this application
    Ref document number: 12783498
    Country of ref document: EP
    Kind code of ref document: A1
    Jan 22, 2014REEP
    Ref document number: 2012783498
    Country of ref document: EP
    Mar 19, 2014NENPNon-entry into the national phase in:
    Ref country code: DE