DE102005032731A1 - Method for side channel resistant multiplication - Google Patents

Method for side channel resistant multiplication Download PDF

Info

Publication number
DE102005032731A1
DE102005032731A1 DE200510032731 DE102005032731A DE102005032731A1 DE 102005032731 A1 DE102005032731 A1 DE 102005032731A1 DE 200510032731 DE200510032731 DE 200510032731 DE 102005032731 A DE102005032731 A DE 102005032731A DE 102005032731 A1 DE102005032731 A1 DE 102005032731A1
Authority
DE
Germany
Prior art keywords
multiplication
value
determined
link
inverse
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
DE200510032731
Other languages
German (de)
Inventor
Bernd Dr. Meyer
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.)
Siemens AG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Priority to DE200510032731 priority Critical patent/DE102005032731A1/en
Priority to PCT/EP2006/063619 priority patent/WO2007006649A1/en
Publication of DE102005032731A1 publication Critical patent/DE102005032731A1/en
Withdrawn legal-status Critical Current

Links

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
    • 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/7233Masking, e.g. (A**e)+r mod n
    • G06F2207/7238Operand masking, i.e. message blinding, e.g. (A+r)**e mod n; k.(P+R)
    • 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/7261Uniform execution, e.g. avoiding jumps, or using formulae with the same power profile

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

Die Erfindung betrifft seitenkanalangriffsresistente kryptographische Verfahren, wobei ein Rückgabewert (r) als Vervielfachung eines Eingangswertes (a) mittels eines Moduls (Mult) bestimmt wird. Die Erfindung hat es sich zur Aufgabe gemacht, eine Resistenz gegen Seitenkanalangriffe bei gleichzeitig minimalen Einschränkungen für die Implementierung zu erreichen. Hierzu wird vorgeschlagen, dass eine Zufallszahl (c) und die Inverse (d) dieser hinsichtlich einen Verknüpfung (K) bestimmt wird, jedem Wert 0 der Binärdarstellung (n_i) einer Vervielfachungsanzahl (n) die Inverse (d) zugeordnet und jedem Wert 1 der Binärdarstellung (n_i) der Vervielfachungsanzahl (n) das Ergebnis der Verknüpfung (K) des Eingangswertes (a) mit der Inversen (d) zugeordnet wird, für alle Stellen der Binärdarstellung (n_i) ein Zwischenwert (b) als Ergebnis zweier aufeinander folgender Verknüpfungen (K) bestimmt wird, wobei das Ergebnis der Verknüpfung (K) aus dem Zwischenwert (b) mit sich selbst und mit dem der Stelle der Binärdarstellung (n_i) zugeordneten Zuordnungswert (E[n_i=0], E[n_i=1]) zu einem neuen Zwischenwert (b) bestimmt wird, der Rückgabewert (r) als Ergebnis der Verknüpfung (K) des neuen Zwischenwertes (b) mit der Inversen (d) bestimmt wird.The invention relates to side-channel attack-resistant cryptographic methods, a return value (r) being determined as a multiplication of an input value (a) by means of a module (Mult). The invention has set itself the task of achieving resistance to side-channel attacks while at the same time placing minimal restrictions on the implementation. For this purpose, it is proposed that a random number (c) and the inverse (d) of this be determined with regard to a link (K), each value 0 of the binary representation (n_i) a multiplication number (n) is assigned the inverse (d) and each value 1 is assigned the Binary representation (n_i) of the multiplication number (n) the result of the link (K) of the input value (a) with the inverse (d) is assigned, for all digits of the binary representation (n_i) an intermediate value (b) as the result of two successive links ( K) is determined, the result of the link (K) from the intermediate value (b) with itself and with the assignment value (E [n_i = 0], E [n_i = 1]) assigned to the digit of the binary representation (n_i) a new intermediate value (b) is determined, the return value (r) is determined as the result of the combination (K) of the new intermediate value (b) with the inverse (d).

Description

Die Erfindung betrifft ein Verfahren zur seitenkanalangriffsresistenten Berechnung eines Rückgabewertes als einer Vervielfachung mittels einer Vervielfachungsanzahl unter Verwendung einer Recheneinheit, insbesondere als Teilprozess einer Verschlüsselung, Entschlüsselung, Signaturerzeugung, Signaturprüfung oder Schlüsseleinigung unter Verwendung mindestens eines kryptographischen Schlüssels, wobei in einem Schritt des Verfahrens ein Rückgabewert als Vervielfachung eines Eingangswertes bestimmt wird. Daneben ist eine Recheneinheit, insbesondere eine Recheneinheit eines Tachographen, welche Daten verschlüsselt und/oder entschlüsselt und/oder signiert und/oder Signaturen prüft und/oder Schlüsseleinigungen durchführt unter Verwendung mindestens eines kryptographischen Schlüssels Gegenstand der Erfindung, welche derart ausgebildet ist, dass sie nach dem eingangs genannten Verfahren arbeitet.The The invention relates to a method for side channel attack resistant Calculation of a return value as a multiplication by means of a multiplication number under Use of a computing unit, in particular as a sub-process of a encryption decryption Signature generation, signature verification or key agreement using at least one cryptographic key, wherein in a step of the method a return value as a multiplication an input value is determined. Next to it is an arithmetic unit, in particular a computing unit of a tachograph, which data encoded and / or decrypted and / or signatures and / or signatures and / or key approvals performs using at least one cryptographic key item the invention, which is designed so that they after the works at the beginning.

Seitenkanalangriffe sind eine Klasse von Methoden zur Kryptoanalyse. Im Gegensatz zu bisherigen Angriffen auf kryptographische Anwendungen versucht ein Angreifer dabei nicht, den zu Grunde liegenden abstrakten mathematischen Algorithmus zu brechen, sondern attackiert eine spezielle Implementierung eines kryptographischen Verfahrens. Dazu verwendet der Angreifer leicht zugängliche physikalische Messgrößen der konkreten Implementierung, wie zum Beispiel Laufzeit der Berechnung, Stromverbrauch und elektromagnetische Abstrahlungen des Prozessors während der Berechnung oder das Verhalten der Implementierung bei induzierten Fehlern. Die physikalischen Messwerte einer einzelnen Berechnung können direkt analysiert werden, zum Beispiel mittels Simple Power Analysis [SPA], oder ein Angreifer zeichnet die Messwerte mehrerer Berechnungen (zum Beispiel unter Verwendung eines Speicheroszilloskops) auf und wertet die Messwerte anschließend statistisch aus, zum Beispiel mittels Differential Power Analysis [DPA]. Seitenkanalangriffe sind häufig wesentlich effizienter als klassische kryptoanalytische Techniken und können selbst Verfahren, die aus Sicht der Algorithmen als sicher angesehen werden, brechen, wenn die Implementierung dieser Algorithmen nicht gegen Seitenkanalangriffe abgesichert ist. Insbesondere für Smartcards und Embedded-Anwendungen sind Gegenmaßnahmen gegen Seitenkanalangriffe wichtig.Side channel attacks are a class of methods for cryptanalysis. In contrast to attempts to attack cryptographic applications Attackers do not, the underlying abstract mathematical Algorithm to break, but attacks a special implementation a cryptographic method. The attacker uses this easily accessible physical parameters of concrete implementation, such as the duration of the calculation, Power consumption and electromagnetic emissions of the processor while the calculation or the behavior of the implementation induced Errors. The physical measurements of a single calculation can analyzed directly, for example using Simple Power Analysis [SPA], or an attacker records the readings of several calculations (for example, using a storage oscilloscope) on and then evaluates the measured values statistically, for example by means of differential power analysis [DPA]. Side channel attacks are often much more efficient as classical cryptanalytic techniques and can themselves processes that from the point of view of algorithms are considered safe, break, if the implementation of these algorithms is not against side channel attacks is secured. Especially for Smart cards and embedded applications are countermeasures against side channel attacks important.

Seitenkanalangriffe sind bereits Thema in den folgenden Veröffentlichungen: Kocher: Timing attacks on implementations of Diffie-Hellman, RSA, DSS, and other systems, Crypto 1996, LNCS 1109, Seiten 104–113, Springer; Kocher, Jaffe, Jun: Differential power analysis, Crypto 1999, LNCS 1666, Seiten 388–397, Springer; Messerges, Dabbish, Sloan: Power analysis attacks of modular exponentiation in smartcards, CHES 1999, LNCS 1717, Seiten 144–157, Springer.Side channel attacks are already featured in the following publications: Kocher: Timing attacks on implementation of Diffie-Hellman, RSA, DSS, and others systems, Crypto 1996, LNCS 1109, pages 104-113, Springer; Kocher, Jaffe, Jun: Differential power analysis, Crypto 1999, LNCS 1666, pages 388-397, Springer; Messerges, Dabbish, Sloan: Power analysis attacks of modular exponentiation in smartcards, CHES 1999, LNCS 1717, pages 144-157, Springer.

Hierbei finden sich in Boneh, Demillo, Lipton: On the importance of checking cryptographic protocols for faults, Eurocrypt 1997, LNCS 1233, Seiten 37–51, Springer bereits Hinweise auf eine Verwertung der Information aus dem Verhalten der Implementierung bei induzierten Fehlern.in this connection can be found in Boneh, Demillo, Lipton: On the importance of checking cryptographic protocols for faults, Eurocrypt 1997, LNCS 1233, pages 37-51, Springer already hints at a utilization of the information from the behavior the implementation of induced errors.

Mathematische Methoden zur Vervielfachung finden sich auch in Menezes, van Oorschot, Vanstone: Handbook of applied cryptography, CRC-Press 1996.mathematical Methods for multiplication can also be found in Menezes, van Oorschot, Vanstone: Handbook of applied cryptography, CRC Press 1996.

Maskierungstechniken für Kryptoverfahren, insbesondere für DES und AES sind auch bekannt aus Goubin, Patarin: DES and differential power analysis, CHES 1999, LNCS 1717, Seiten 158–172, Springer; Akkar, Giraud: An implementation of DES and AES, secure against some attacks, CHES 2001, LNCS 2162, Seiten 309–318, Springer; Messerges Securing the AES finalists against power analysis attacks, FSE 2000, LNCS 1978, Seiten 150–164, Springer; Coron, Goubin On boolean and arithmetic masking against differential power analysis, CHES 2000, LNCS 1965, Seiten 213–237, Springer; Trichina, de Seta, Germani: Simplified adaptive multiplicative masking for AES and its securized implementation, CHES 2002, LNCS 2523, Seiten 187–197, Springer; Golic, Tymen: Multiplicative masking and power analysis of AES, CHES 2002, LNCS 2523, Seiten 198–212, Springer.masking techniques for crypto methods, in particular for DES and AES are also known from Goubin, Patarin: DES and differential power analysis, CHES 1999, LNCS 1717, pages 158-172, Springer; Akkar, Giraud: An implementation of DES and AES, secure against some attacks, CHES 2001, LNCS 2162, pages 309-318, Springer; Messerges Securing the AES finalists against power analysis attacks, FSE 2000, LNCS 1978, pages 150-164, Springer; Coron, Goubin On boolean and arithmetic masking against differential power analysis, CHES 2000, LNCS 1965, pages 213-237, Springer; Trichina, de Seta, Germani: Simplified adaptive multiplicative masking for AES and its securitized implementation, CHES 2002, LNCS 2523, pages 187-197, Springer; Golic, Tymen: Multiplicative masking and power analysis of AES, CHES 2002, LNCS 2523, pages 198-212, Springer.

Die Erzeugung digitaler Signaturen nach dem Digital Signature Standard ist auch thematisiert in FIPS 186: Digital Signature Standard, Federal Information Processing Standards Publication 186, NIST 1997.The Generation of digital signatures according to the Digital Signature Standard is also themed in FIPS 186: Digital Signature Standard, Federal Information Processing Standards Publication 186, NIST 1997.

Anwendungsgebiet der Erfindung ist insbesondere der Schutz der schnellen Exponentiation gegen insbesondere SPA und DPA. Viele kryptographische Verfahren (insbesondere Public-Key Verfahren) verwenden Arithmetiken in endlichen Körpern oder endlichen Ringen. Ein wichtiger dabei verwendeter Rechenschritt ist die Berechnung der Exponentiation bzw. skalaren Multiplikation in endlichen Körpern, Ringen, Gruppen oder Halbgruppen.field of use In particular, the invention is the protection of fast exponentiation against in particular SPA and DPA. Many cryptographic methods (especially public-key methods) use finite arithmetic bodies or finite rings. An important step in this process is the calculation of the exponentiation or scalar multiplication in finite bodies, rings, Groups or half groups.

Allgemein verwendete Techniken zur Abwehr von Seitenkanalangriffen versuchen entweder, den Signal-Rausch-Abstand zwischen der zu schützenden Information und allen anderen messbaren Signalen zu verschlechtern und damit die Beobachtung der geheimen Information zu erschweren oder verwenden Randomisierungstechniken, um die Korrelation zwischen der zu schützenden Information und den gemessenen Werten aufzuheben. Methoden, um die Beobachtung der geheimen Information zu erschweren, umfassen beispielsweise die Vermeidung datenabhängiger Verzweigungen, die von schützenswerter Information abhängen, Verwendung von Programmschritten mit wenig schwankendem Stromprofil oder von Programmteilen, deren Laufzeit nicht mehr von den Berechnungsdaten abhängt, Ausführen von zufälligen und/oder redundanten Programmteilen usw. Diese Gegenmaßnahmen schützen im Allgemeinen vor SPA-Attacken, haben jedoch den Nachteil, dass die Implementierung unvorteilhaften Einschränkungen unterliegt.Commonly used sidewall attack defense techniques either seek to degrade the signal-to-noise ratio between the information to be protected and all other measurable signals, thus hampering the observation of the secret information, or use randomization techniques to determine the correlation between the information to be protected and cancel the measured values. Methods to complicate the observation of the secret information include, for example, the avoidance of data-dependent branches that depend on information worthy of protection, use of program steps with a little fluctuating power profile, or program parts whose duration no longer depends on the calculation data, performing random and / or These countermeasures generally protect against SPA attacks, but have the disadvantage that the implementation is subject to unfavorable constraints.

Randomisierungstechniken zur Aufhebung der Korrelation zwischen zu schützender Information und gemessenen Werten dienen der Abwehr der statistischen Analysemethoden, wie bspw. der DPA. Solche Maßnahmen bestehen üblicherweise aus Maskieren der geheimen Informationen mit zufälligen Werten. Bei jeder neuen Berechnung werden dabei neue unabhängige Zufallszahlen für die Masken gewählt. Ein Angreifer misst dann jedes Mal eine für ihn zufällig erscheinende Berechnung, weil er die Maske nicht kennt und kann keine einfachen Korrelationen zwischen gemessenen physikalischen Werten und Input- oder Outputdaten feststellen.randomization to cancel the correlation between information to be protected and measured Values serve the defense of statistical analysis methods, such as eg the DPA. Such measures usually exist from masking the secret information with random values. Every new one Calculation will be new independent random numbers for the masks selected. An attacker then measures each time a seemingly random calculation, because he does not know the mask and can not do simple correlations between measured physical values and input or output data.

Der Standardalgorithmus zur schnellen Exponentiation ist sowohl gegen SPA- als auch gegen DPA-Angriffe anfällig. Um den Algorithmus zur schnellen Exponentiation gegen einen SPA-Angriff zu schützen, wurden in der Literatur auch folgende Techniken vorgeschlagen: Statt eine Multiplikation nur für den Fall einer Bitbelegung mit 1 auszuführen, wird auch für den Fall einer Nullbelegung die Multiplikation ausgeführt, aber das Ergebnis dieser Berechnung wird nicht verwendet (Always-Square-and-Multiply); daneben werden Algorithmen zur Multiplikation und Quadrierung vereinheitlicht. Außerdem finden die Montgomery-Leiter (insbesondere relevant für elliptische Kurven) oder die Fixed-Window-Methode Verwendung. Als weitere Techniken zum Schutz gegen DPA-Angriffe ist es außerdem bekannt, den Exponenten mit einem kleinen, zufällig gewählten Vielfachen der Ordnung der Gruppe zu erweitern [Kocher: Timing attacks on implementations of Diffie-Hellman, RSA, DSS, and other systems, Crypto 1996, LNCS 1109, Seiten 104–113, Springer, Coron: Resistance against differential power analysis for elliptic curve cryptosystems, CHES 1999, LNCS 1717, Seiten 292–302, Springer] und zu einem zufällig gewählten Element der Gruppe (oder des Körpers) durch eine Public-Key Operation zunächst eine Maske vorzuberechnen, mit welcher die Basis vor der schnellen Exponentiation randomisiert (zB. multipliziert) wird. Nach Abschluß der Exponentiation mittels eines geheimen Schlüssels kann durch die inverse Operation (zB. eine Division), die Maskierung wieder rückgängig gemacht werden [Kocher: Timing attacks on implementations of Diffie-Hellman, RSA, DSS, and other systems, Crypto 1996, LNCS 1109, Seiten 104–113, Springer; Coron: Resistance against differential power analysis for elliptic curve cryptosystems, CHES 1999, LNCS 1717, Seiten 292–302, Springer]; Paare aus zufälligem Element und zugehörigem Korrekturwert werden vorberechnet und abgespeichert oder nach Verwendung wieder aufgefrischt [Kocher: Timing attacks on implementations of Diffie-Hellman, RSA, DSS, and other systems, Crypto 1996, LNCS 1109, Seiten 104–113, Springer]; der in der modularen Arithmetik zur Reduktion verwendete Modul wird mit einer kleinen zufällig gewählten Zufallszahl erweitert, wodurch eine vollständige Reduktion der Zwischenergebnisse vermieden wird. Nach Abschluss der Exponentiation wird der berechnete Wert vollständig reduziert; Verwendung randomisierter Additionsketten für den Exponenten; die Darstellung der Punkte einer elliptischen Kurve oder des verwendeten endlichen Körpers oder der verwendeten elliptischen Kurve wird randomisiert, und nach Abschluss der Exponentiation wird die Maskierung wieder rückgängig gemacht [Coron: Resistance against differential power analysis for elliptic curve cryptosystems, CHES 1999, LNCS 1717, Seiten 292–302, Springer; Joye, Tymen: Protections against differential analysis for elliptic curve cryptography, CHES 2001, LNCS 2162, Seiten 377–390, Springer].Of the Standard algorithm for fast exponentiation is both against SPA as well as vulnerable to DPA attacks. To make the algorithm fast Exponentiation against a SPA attack too protect, The following techniques have also been proposed in the literature: instead a multiplication only for the case of a bit assignment with 1 will also be the case a zero assignment performed the multiplication, but the result of this Calculation is not used (always-square-and-multiply); Besides algorithms for multiplication and squaring are standardized. Furthermore find the Montgomery ladder (especially relevant to elliptical Curves) or the fixed-window method usage. As more techniques It is also known to protect exponents against DPA attacks with a small, random selected Multiply the order of the group [Kocher: Timing attacks on Implementations of Diffie-Hellman, RSA, DSS, and other systems, Crypto 1996, LNCS 1109, pages 104-113, Springer, Coron: Resistance against differential power analysis for elliptic curve cryptosystems, CHES 1999, LNCS 1717, pages 292-302, Springer] and to one fortuitously selected Element of the group (or body) a public-key operation first to pre-calculate a mask with which the base before the fast Exponentiation is randomized (eg multiplied). After completion of the exponentiation by means of a secret key can through the inverse operation (eg., a division), the masking Undone [Kocher: Timing attacks on implementation of Diffie-Hellman, RSA, DSS, and other systems, Crypto 1996, LNCS 1109, pages 104-113, Springer; Coron: Resistance against differential power analysis for elliptic curve cryptosystems, CHES 1999, LNCS 1717, pages 292-302, Springer]; Pairs of random Element and related Correction values are precalculated and stored or after use refreshed [Kocher: Timing attacks on implementation of Diffie-Hellman, RSA, DSS, and other systems, Crypto 1996, LNCS 1109, pages 104-113, Springer]; is the module used in modular arithmetic for reduction with a little random selected Random number expanded, resulting in a complete reduction of intermediate results is avoided. Upon completion of the exponentiation, the calculated value Completely reduced; Use of randomized addition chains for the exponent; the representation of the points of an elliptic curve or the one used finite body or the elliptic curve used is randomized, and after At the end of the exponentiation, the masking is undone [Coron: Resistance against differential power analysis for elliptic curve cryptosystems, CHES 1999, LNCS 1717, pages 292-302, Springer; Joye, Tymen: Protections against differential analysis for elliptic curve cryptography, CHES 2001, LNCS 2162, pages 377-390, Springer].

Sämtliche bekannte Gegenmaßnahmen gegen Seitenkanalangriffe sind rechenkapazitätsaufwändig.All known countermeasures against side channel attacks are computationally expensive.

Ausgehend von den Nachteilen des Standes der Technik liegt der Erfindung die Aufgabe zugrunde, ein Verfahren zur seitenkanalangriffsresistenten Berechnung eines Rückgabewertes als einer Vervielfachung zu schaffen, welches eine Resistenz gegen Seitenkanalangriffe aufweist und gleichzeitig die Einschränkungen bei der Implementierung und den zusätzlichen Aufwand zum Zwecke des Schutzes gegen Seitenkanalangriffe gering hält.outgoing from the disadvantages of the prior art, the invention is the Task underlying a method for side channel attack-resistant calculation a return value as a multiplication, which provides resistance to side channel attacks and at the same time have implementation limitations and the extra Effort for the purpose of protection against side channel attacks low holds.

Erfindungsgemäß wird hierzu ein Verfahren nach Anspruch 1 vorgeschlagen. Daneben wird eine Recheneinheit vorgeschlagen, die derart ausgebildet ist, dass sie nach dem Verfahren des Anspruchs 1 arbeitet. Die jeweils rückbezogenen Unteransprüche beinhalten vorteilhafte Weiterbildungen, die auch ohne explizite Rückbezüge miteinander kombinierbar sind.According to the invention for this purpose a method according to claim 1 proposed. In addition, a computing unit proposed, which is designed so that they according to the method of claim 1 works. The respective dependent claims include advantageous developments that also without explicit references to each other can be combined.

Die erfindungsgemäße Technik erlaubt es, beliebige Implementierungen von Verfahren zur Berechnung einer Vervielfachung gegen Seitenkanalangriffe abzusichern.The inventive technique allows any implementations of methods of calculation a multiplication against side channel attacks.

Die Verwendung einer arithmetischen homomorphen Maskierungstechnik nach der Erfindung hat unter anderem den Vorteil, dass die Maskierung eingangs der Berechnung durchgeführt werden kann und ausgangs das Ergebnis demaskierbar ist und gleichzeitig eine Absicherung der Implementierung gegen SPA- und DPA-Angriffe gegeben ist.The use of an arithmetic homo Morph masking technique according to the invention has, inter alia, the advantage that the masking can be performed at the beginning of the calculation and at the outset the result is unmaskable and at the same time a hedge of the implementation against SPA and DPA attacks is given.

Eine vorteilhafte Anwendung der Erfindung bei einem kryptographischen Verfahren, insbesondere in einem erfindungsgemäßen Tachographen oder einem erfindungsgemäßen mobilen Datenträger, ist beispielsweise die Erzeugung digitaler Signaturen nach dem Digital-Signature-Standard DSS.A advantageous application of the invention in a cryptographic Method, in particular in a tachograph according to the invention or a mobile according to the invention disk, is, for example, the generation of digital signatures according to the digital signature standard DSS.

Eine zweckmäßige Weiterbildung des erfindungsgemäßen Verfahrens sieht vor, dass die Zwischenergebnisse nach den jeweiligen Rechenschritten gelöscht werden.A appropriate training the method according to the invention provides that the intermediate results according to the respective calculation steps deleted become.

Das erfindungsgemäße Verfahren bzw. die erfindungsgemäße Recheneinheit ermöglicht eine besonders vielseitige Modularität, wenn der verwendete Verknüpfungsoperator wahlweise addiert oder multipliziert und somit im Ergebnis multipliziert bzw. potenziert.The inventive method or the computing unit according to the invention allows a particularly versatile modularity, if the linking operator used optionally added or multiplied and thus multiplied in the result or potentiated.

Besonders sicher gegen Seitenkanalangriffe ist eine Implementierung des erfindungsgemäßen Verfahrens in einer Fixed-Window-Variante, bei welcher die Vervielfachungsanzahl blockweise in Blöcken gleicher Länge abgearbeitet wird.Especially Safe against side channel attacks is an implementation of the method according to the invention in a fixed-window variant, where the multiplication number in blocks in blocks same length is processed.

In der Folge wird die Erfindung anhand eines speziellen Ausführungsbeispiels unter Bezugnahme auf Zeichnungen näher erläutert, wobei die Erfindung nicht auf die Darstellungen dieses Beispiels beschränkt ist. Es zeigen:In The result is the invention with reference to a specific embodiment explained in more detail with reference to drawings, the invention is not is limited to the illustrations of this example. Show it:

1 eine schematische perspektivische Darstellung eines erfindungsgemäßen Tachographen mit einer erfindungsgemäßen Datenkarte, 1 a schematic perspective view of a tachograph according to the invention with a data card according to the invention,

2 eine schematische Darstellung des Ablaufs nach dem erfindungsgemäßen Verfahren, 2 a schematic representation of the process according to the inventive method,

3, 4, 5, 6 je eine schematische Darstellung einer Variante eines Untermoduls des Ablaufs nach dem erfindungsgemäßen Verfahren. 3 . 4 . 5 . 6 each a schematic representation of a variant of a submodule of the process according to the inventive method.

In 1 ist ein Tachograph DTCO und eine Datenkarte DC jeweils mit einer Recheneinheit, die nach dem erfindungsgemäßen Verfahren arbeitet, dargestellt. Die Datenkarte DC kann in den DTCO durch einen von zwei Aufnahmeschächten 2 eingeschoben werden, so dass während einer Datenübertragung zwischen den beiden Elementen die Datenkarte DC in dem Tachographen DTCO von außen unzugänglich aufgenommen ist. Der Tachograph DTCO weist auf seiner Frontseite 3 neben den beiden Aufnahmeschächten 2 eine Anzeigeeinheit 1 und Bedienelemente 4 auf. Mittels Datenleitungen 5 tritt die Datenkarte DC nach Eingabe in einen Aufnahmeschacht 2 mit einem zentralen Prozessor CPU in Verbindung, der auf einen internen Speicher MEM Zugriff hat. Die Datenkarte weist ebenfalls einen nicht im Einzelnen dargestellten internen Speicher und einen zentralen Prozessor auf.In 1 is a tachograph DTCO and a data card DC each with a computing unit, which operates according to the inventive method shown. The data card DC can enter the DTCO through one of two receptacles 2 are inserted, so that during a data transfer between the two elements, the data card DC is added to the tachograph DTCO inaccessible from the outside. The tachograph DTCO has its front panel 3 next to the two receiving shafts 2 a display unit 1 and controls 4 on. By means of data lines 5 enters the data card DC after entering into a receiving slot 2 with a central processor CPU in connection, which has access to an internal memory MEM. The data card also has a non-detailed internal memory and a central processor.

Die Datenübertragung zwischen dem Tachographen DTCO und der Datenkarte DC erfolgt mittels eines Sitzungsschlüssels verschlüsselt, wobei während der Verschlüsselung und der Entschlüsselung die zentralen Prozessoren CPU des Tachographen DTCO und der Datenkarte DC unter anderem Exponentiationen und Multiplikationen nach der Erfindung durchführen.The data transfer between the tachograph DTCO and the data card DC by means of a session key encrypted while during the encryption and the decryption the central processors CPU of the tachograph DTCO and the data card DC among other exponentiations and multiplications after the Carry out invention.

Hierzu machen die Prozessoren CPU von dem in 2 dargestellten Modul KRY Gebrauch.To do this, the processors CPU from the in 2 illustrated module KRY use.

Das Modul KRY ist Bestandteil eines Ablaufes der Verschlüsselung. Die Eingangswerte a, n werden an das Modul KRY übergeben und binnen dieses Moduls an ein Modul MULT weitergegeben.The Module KRY is part of a process of encryption. The input values a, n are transferred to the module KRY and within this module passed on to a module MULT.

Das Modul MULT bestimmt zunächst in einem ersten Schritt A. eine Zufallszahl c und bestimmt in einem zweiten Schritt B. zu dieser eine Inverse d hinsichtlich einer Verknüpfung K.The Module MULT first determines in a first step A. a random number c and determined in one second step B. to this one inverse d with respect to a link K.

Mittels eines aus dem Modul MULT aufgerufenen Moduls MULCO (3, 4, 5, 6) wird eine Vervielfachung v bestimmt und anschließend mit der Inversen d verknüpft. Ein Rückgabewert r wird diesem Produkt gleichgesetzt und an das Modul KRY als Ergebnis zurückgegeben.By means of a module MULCO called from the module MULT ( 3 . 4 . 5 . 6 ) a multiplication v is determined and then linked to the inverse d. A return value r is set equal to this product and returned to the module KRY as a result.

Im Einzelnen ist der Ablauf in dem Modul MULCO folgendermaßen. Hierbei sei zunächst auf mit C.-E. bezeichnete zentrale Schritte des Verfahrens eingegangen. In einem dritten Schritt C. wird jedem Wert i eines Intervalles ein Zuordnungswert E[i] zugeordnet. In einem vierten Schritt D. wird ausgehend von der höchstwertigsten Stelle der Zahldarstellung n_i (Binärdarstellung) der Vervielfachungsanzahl n sequenziell für alle Stellen der Zahldarstellung n_i (Binärdarstellung) ein Zwischenwert b als Ergebnis zweier aufeinander folgender Verknüpfungen K bestimmt, wobei das Ergebnis der Verknüpfung K aus dem Zwischenwert b mit sich selbst und mit dem der Stelle der Zahldarstellung n_i (Binärdarstellung) zugeordneten Zuordnungswert E[n_i] zu einem neuen Zwischenwert b bestimmt wird. In einem fünften Schritt E. wird der Rückgabewert r als Ergebnis der Verknüpfung K des neuen Zwischenwertes b mit der Inversen d bestimmt.in the Specifically, the procedure in the MULCO module is as follows. in this connection be first on with C.-E. designated central steps of the process. In a third step C., each value i of an interval assigned an assignment value E [i]. In a fourth step D. is based on the most significant Set the number representation n_i (binary representation) of the multiplication number n sequential for all digits of the number representation n_i (binary representation) an intermediate value b as a result of two consecutive links K determines, with the result of the link K from the intermediate value b with itself and with that of the digit representation n_i (Binary representation) assigned Assignment value E [n_i] is determined to a new intermediate value b. In a fifth step E. will be the return value r as a result of the link K of the new intermediate value b with the inverse d determined.

Mit den Ausführungsbeispielen der 3, 4 und 5 bzw. 6 sind verschiedene Varianten dieser Zuordnung nach der Erfindung dargestellt. Die Ausführungen nach den 3 und 5 zeigen eine Fixed-Window-Variante des in den 4 bzw. 6 dargestellten erfindungsgemäßen Moduls MULCO, bei welcher jeweils die Zahldarstellung n_i (Binärdarstellung) der Vervielfachungsanzahl n in Bitblöcken (u_0, ..., u_m) einer Breite w dargestellt ist.With the embodiments of the 3 . 4 and 5 respectively. 6 Different variants of this assignment according to the invention are shown. The explanations after the 3 and 5 show a fixed-window variant of the in the 4 respectively. 6 according to the invention shown module MULCO, in which each of the number representation n_i (binary representation) of the multiplication number n in bit blocks (u_0, ..., u_m) of a width w is shown.

Das Modul MULCO ordnet in einem dritten Schritt jedem Wert i eines Intervalles einen Zuordnungswert E[i] zu.The Module MULCO assigns in a third step each value i of an interval an assignment value E [i] too.

Die Varianten nach den 4, 6 ordnen jeder Stelle der Zahldarstellung n_i (Binärdarstellung), die den Wert 0 aufweist, die Inverse d als ersten Zuordnungswert E[n_i = 0] zu und jeder Stelle der Zahldarstellung n_i (Binärdarstellung) der Vervielfachungsanzahl n, die den Wert 1 aufweist, das Ergebnis der Verknüpfung K des Eingangswertes a mit der Inversen d als zweiten Zuordnungswert E[n_i = 1] zu.Variants after 4 . 6 Assign each digit of the numerical representation n_i (binary representation) having the value 0 to the inverse d as the first assignment value E [n_i = 0], and each digit of the numerical representation n_i (binary representation) of the multiplication number n having the value 1, the result the link K of the input value a with the inverse d as the second assignment value E [n_i = 1].

Die Varianten nach den 3, 5 ordnen jedem Bit-Block u_i der Breite w der Zahldarstellung n_i (Binärdarstellung) einen Zuordnungswert E[u_i] zu, wobei dem Bit-Block u_i der Zahldarstellung n_i (Binärdarstellung) der Vervielfachungsanzahl n das Ergebnis der Verknüpfung K aus dem Ergebnis der Verknüpfung K der u_i-fachen Vervielfachung des Eingangswertes a und dem Ergebnis der Verknüpfung K der (2^w-1)-fachen Vervielfachung der Inversen d zugeordnet wird.Variants after 3 . 5 assign to each bit block u_i the width w of the number representation n_i (binary representation) an assignment value E [u_i], where the bit block u_i the number representation n_i (binary representation) of the multiplication number n, the result of the link K from the result of the link K of u_i-times multiplying the input value a and the result of the link K of the (2 ^ w-1) -fold multiplication of the inverse d is assigned.

Die Varianten nach den 3 und 5 bzw. 4 und 6 unterscheiden sich durch die unterschiedliche Art der Verknüpfung K. Die Verknüpfung K ist nach den Ausführungsbeispielen der 3 und 4 eine Addition, was im Ergebnis zu einer Multiplikation führt und nach den Ausführungsbeispielen der 5 und 6 eine Multiplikation, was im Ergebnis zu einer Exponentiation führt.Variants after 3 and 5 respectively. 4 and 6 differ by the different type of link K. The link K is according to the embodiments of the 3 and 4 an addition, which results in a multiplication and according to the embodiments of the 5 and 6 a multiplication, which in the result leads to an exponentiation.

Eine Implementation des Verfahrens im Sinne des Ausführungsbeispiels nach 6, also zur schnellen seitenkanalresistenten Exponentiation, kann erfindungsgemäß nach dem folgenden Schema aufgebaut sein:
Sei (n_0, ..., n_m) die Binärdarstellung des Exponenten n, und sei a die Basis.

  • 1) wähle gleichverteilt ein zufälliges Element c einer Gruppe (oder eines Körpers)
  • 2) berechne das inverse Element d = c^(–1)
  • 3) setze b = c, setze E[0] = d und E[1] = a·d
  • 4) for i = 0 to i <= m do
  • 5) setze b = b^2
  • 6) setze b = b·E[n_i]
  • 7) od
  • 8) setze b = b·d
An implementation of the method in the sense of the embodiment according to 6 , ie for fast side channel resistant exponentiation, can be constructed according to the invention according to the following scheme:
Let (n_0, ..., n_m) be the binary representation of the exponent n and let a be the basis.
  • 1) choose evenly a random element c of a group (or a body)
  • 2) calculate the inverse element d = c ^ (- 1)
  • 3) set b = c, set E [0] = d and E [1] = a · d
  • 4) for i = 0 to i <= m do
  • 5) set b = b ^ 2
  • 6) set b = b · E [n_i]
  • 7) od
  • 8) set b = b · d

Claims (12)

Verfahren zur seitenkanalangriffsresistenten Berechnung eines Rückgabewertes (r) als einer Vervielfachung mittels einer Vervielfachungsanzahl (n) unter Verwendung einer Recheneinheit, insbesondere als Teilprozess einer Verschlüsselung, Entschlüsselung, Signaturerzeugung, Signaturprüfung oder Schlüsseleinigung unter Verwendung mindestens eines kryptographischen Schlüssels, wobei in einem Schritt des Verfahrens ein Rückgabewert (r) als Vervielfachung eines Eingangswertes (a) bestimmt wird, dadurch gekennzeichnet, dass – in einem ersten Schritt (A.) eine hinsichtlich einer Verknüpfung (K) invertierbare Zufallszahl (c) bestimmt wird, – in einem zweiten Schritt (B.) die Inverse (d) der Zufallszahl (c) hinsichtlich der Verknüpfung (K) bestimmt wird, – in einem dritten Schritt (C.) jeder Stelle (n_i) einer Zahldarstellung der Vervielfachungsanzahl (n) ein Zuordnungswert (E[n_i]) zugeordnet wird, der von der Zufallszahl (c) und/oder der Inversen (d) hinsichtlich der Verknüpfung (K) abhängt, – in einem vierten Schritt (D.) für alle Stellen (n_i) der Zahldarstellung mindestens ein neuer Zwischenwert (b) als Ergebnis mindestens einer Berechnung der Verknüpfung (K) bestimmt wird, wobei das Ergebnis von mindestens einer Berechnung der Verknüpfung (K) von mindestens einem früheren Zwischenwert (b) und dem der Stelle (n_i) der Zahldarstellung zugeordneten Zuordnungswert (E[n_i]) abhängt, – in einem fünften Schritt (E.) der Rückgabewert (r) als Ergebnis der Verknüpfung (K) eines neuen Zwischenwertes (b) mit der Zufallszahl (c) und/oder der Inversen (d) bestimmt wird.Method for side channel attack-resistant calculation of a return value (r) as a multiplication by means of a computing unit, in particular as a sub-process of encryption, decryption, signature generation, signature verification or key agreement using at least one cryptographic key, wherein in one step of the method Return value (r) as a multiplication of an input value (a) is determined, characterized in that - in a first step (A.) with respect to a link (K) invertible random number (c) is determined, - in a second step (B. ) the inverse (d) of the random number (c) is determined with regard to the link (K), - in a third step (C.), assigning to each digit (n_i) a numerical representation of the multiplication number (n) an assignment value (E [n_i]) becomes that of the random number (c) and / or the inverse (d) in terms of linking g (K), - in a fourth step (D.) for all digits (n_i) of the number representation, at least one new intermediate value (b) is determined as a result of at least one calculation of the join (K), the result of at least one calculation the link (K) of at least one previous intermediate value (b) and the assignment value (E [n_i]) associated with the digit (n_i) of the number representation, - in a fifth step (E.) the return value (r) as a result of the linkage (K) of a new intermediate value (b) with the random number (c) and / or the inverse (d) is determined. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass in dem dritten Schritt (C.) eine binäre Zahldarstellung für die Vervielfachungsanzahl (n) verwendet wird und dass jeder Stelle (n_i) der Binärdarstellung der Vervielfachungsanzahl (n), die den Wert 0 aufweist, die Inverse (d) oder die Zufallszahl (c) als erster Zuordnungswert (E[n_i = 0]) zugeordnet wird und jeder Stelle (n_i) der Binärdarstellung der Vervielfachungsanzahl (n), die den Wert 1 aufweist, das Ergebnis der Verknüpfung (K) des Eingangswertes (a) mit der Inversen (d) oder mit der Zufallszahl (c) als zweiter Zuordnungswert (E[n_i = 1]) zugeordnet wird.Method according to claim 1, characterized in that in the third step (C.), a binary number representation for the multiplication number (n) is used and that each digit (n_i) of the binary representation the multiplication number (s) having the value 0, the inverse (d) or the random number (c) as the first allocation value (E [n_i = 0]) and each digit (n_i) of the binary representation the multiplication number (s) that has the value 1, the result the link (K) of the input value (a) with the inverse (d) or with the random number (c) is assigned as a second allocation value (E [n_i = 1]). Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass in dem dritten Schritt (C.) eine Zahldarstellung für die Vervielfachungsanzahl (n) verwendet wird, bei der die Vervielfachungsanzahl (n) in Bitblöcke einer ersten Bitlänge (w) aufgegliedert ist und dass jedem Bitblock (n_i) der Zahldarstellung in Bitblöcken der Bitlänge (w), welcher einen Wert (k) repräsentiert, das Ergebnis der Verknüpfung (K) aus der k-fachen Vervielfachung des Eingangswertes (a) hinsichtlich der Verknüpfung (K) und der 2^w-1-fachen Vervielfachung der Inversen (d) oder der Zufallszahl (c) hinsichtlich der Verknüpfung (K) zugeordnet wird.Method according to claim 1, characterized in that in the third step (C.) a number representation is used for the multiplication number (n), in which the multiplication number (n) is broken down into bit blocks of a first bit length (w) and in that each bit block ( n_i) of the number representation in bit blocks of the bit length (w), which represents a value (k), the result of the combination (K) of the k-fold multiplication of the input value (a) in terms of the join (K) and the 2 ^ w-1 multiplication of the inverse (d) or the random number (c) with respect to the join (K) is assigned. Verfahren nach Anspruch 1 bis 3, dadurch gekennzeichnet, dass die Verknüpfung eine Addition ist, so dass die Vervielfachung eine Multiplikation ist.Method according to Claims 1 to 3, characterized that the linkage is an addition, so the multiplication is a multiplication is. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass die Verknüpfung eine Addition auf einer Menge von Punkten einer elliptischen oder hyperelliptischen Kurve ist und das Verfahren die skalare Punktmultiplikation realisiert.Method according to claim 4, characterized in that that the linkage an addition on a set of points of an elliptical or hyperelliptic curve and the method is the scalar point multiplication realized. Verfahren nach Anspruch 1 bis 3, dadurch gekennzeichnet, dass die Verknüpfung eine Multiplikation ist, so dass die Vervielfachung eine Exponentiation ist.Method according to Claims 1 to 3, characterized that the linkage is a multiplication, so the multiplication is an exponentiation is. Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass die Verknüpfung eine modulare Multiplikation bezüglich eines primen oder zusammengesetzten Moduls ist und das Verfahren die schnelle modulare Exponentiation realisiert.Method according to Claim 6, characterized that the linkage a modular multiplication with respect to a primed or compound module and the process realized the fast modular exponentiation. Recheneinheit, insbesondere Recheneinheit eines Tachographen, welche Daten verschlüsselt und/oder entschlüsselt und/oder signiert und/oder Signaturen überprüft und/oder Schlüsseleinigungen unter Verwendung mindestens eines kryptographischen Schlüssels durchführt, wobei die Recheneinheit derart ausgebildet ist, dass in einem Schritt des Verfahrens ein Rückgabewert (r) als eine Vervielfachung mittels einer Vervielfachungsanzahl (n) eines Eingangswertes (a) bestimmt wird, insbesondere nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass die Recheneinheit derart ausgebildet ist, dass – in einem ersten Schritt (A.) eine hinsichtlich einer Verknüpfung (K) invertierbare Zufallszahl (c) bestimmt wird, – in einem zweiten Schritt (B.) die Inverse (d) hinsichtlich der Verknüpfung (K) der Zufallszahl (c) bestimmt wird, – in einem dritten Schritt (C.) jeder Stelle (n_i) einer Zahldarstellung der Vervielfachungsanzahl (n) ein Zuordnungswert (E[n_i]) zugeordnet wird, der von der Zufallszahl (c) und/oder der Inversen (d) hinsichtlich der Verknüpfung (K) abhängt, – in einem vierten Schritt (D.) für alle Stellen (n_i) der Zahldarstellung mindestens ein neuer Zwischenwert (b) als Ergebnis mindestens einer Berechnung der Verknüpfung (K) bestimmt wird, wobei das Ergebnis von mindestens einer Berechnung der Verknüpfung (K) von mindestens einem früheren Zwischenwert (b) und dem der Stelle (n_i) der Zahldarstellung zugeordneten Zuordnungswert (E[n_i]) abhängt, – in einem fünften Schritt (E.) der Rückgabewert (r) als Ergebnis der Verknüpfung (K) eines neuen Zwischenwertes (b) mit der Zufallszahl (c) und/oder der Inversen (d) bestimmt wird.Arithmetic unit, in particular arithmetic unit of a tachograph, which data is encrypted and / or decrypts and / or signatures and / or signatures and / or key-permits Use at least one cryptographic key, wherein the arithmetic unit is designed such that in one step of the procedure a return value (r) as a multiplication by means of a multiplication number (n) an input value (a) is determined, in particular after one the claims 1 to 5, characterized in that the arithmetic unit is designed such that - in a first step (A.) one concerning a link (K) invertible random number (c) is determined, - in one second step (B.) the inverse (d) with regard to the link (K) the random number (c) is determined - in a third step (C) each digit (n_i) of a number representation of the multiplication number (n) an assignment value (E [n_i]) is assigned that is determined by the random number (c) and / or the inverse (d) in terms of linkage (K) depends - in one fourth step (D.) for all digits (n_i) of the number representation at least one new intermediate value (b) as a result of at least one calculation of the link (K) is determined, the result of at least one calculation the link (K) from at least one previous one Intermediate value (b) and the position (n_i) assigned to the number representation Assignment value (E [n_i]) depends on - in one fifth Step (E.) the return value (r) as a result of the link (K) of a new intermediate value (b) with the random number (c) and / or the inverse (d) is determined. Recheneinheit nach Anspruch 8, dadurch gekennzeichnet, dass die Recheneinheit derart ausgebildet ist, dass die Verknüpfung eine Addition ist, so dass die Vervielfachung eine Multiplikation ist.Computing unit according to claim 8, characterized in that that the arithmetic unit is designed such that the link is a Addition is such that the multiplication is a multiplication. Recheneinheit nach Anspruch 9, dadurch gekennzeichnet, dass die Verknüpfung eine Addition auf einer Menge von Punkten einer elliptischen oder hyperelliptischen Kurve ist und die Recheneinheit die skalare Punktmultiplikation berechnet.Computing unit according to claim 9, characterized that the linkage an addition on a set of points of an elliptical or hyperelliptic Curve is and the arithmetic unit is the scalar point multiplication calculated. Recheneinheit nach Anspruch 8, dadurch gekennzeichnet, dass die Recheneinheit derart ausgebildet ist, dass die Verknüpfung eine Multiplikation ist, so dass die Vervielfachung eine Exponentiation ist.Computing unit according to claim 8, characterized in that that the arithmetic unit is designed such that the link is a Multiplication is such that the multiplication is an exponentiation is. Recheneinheit nach Anspruch 11, dadurch gekennzeichnet, dass die Verknüpfung eine modulare Multiplikation bezüglich eines primen oder zusammengesetzten Moduls ist und die Recheneinheit die schnelle modulare Exponentiation berechnet.Computing unit according to claim 11, characterized that the linkage a modular multiplication with respect to a primed or compound module and the arithmetic unit calculates the fast modular exponentiation.
DE200510032731 2005-07-13 2005-07-13 Method for side channel resistant multiplication Withdrawn DE102005032731A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE200510032731 DE102005032731A1 (en) 2005-07-13 2005-07-13 Method for side channel resistant multiplication
PCT/EP2006/063619 WO2007006649A1 (en) 2005-07-13 2006-06-28 Side channel attack-resistant multiplication method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200510032731 DE102005032731A1 (en) 2005-07-13 2005-07-13 Method for side channel resistant multiplication

Publications (1)

Publication Number Publication Date
DE102005032731A1 true DE102005032731A1 (en) 2007-01-25

Family

ID=37103312

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200510032731 Withdrawn DE102005032731A1 (en) 2005-07-13 2005-07-13 Method for side channel resistant multiplication

Country Status (2)

Country Link
DE (1) DE102005032731A1 (en)
WO (1) WO2007006649A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2437160A1 (en) * 2010-10-04 2012-04-04 Nagravision S.A. Blinding of modular exponentiation
CN104796250B (en) * 2015-04-11 2018-05-25 成都信息工程学院 The side-channel attack method realized for rsa cryptosystem algorithm M-ary

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE418099T1 (en) * 1998-06-03 2009-01-15 Cryptography Res Inc SECURED MODULAR POTENTIATION WITH LEAK MINIMIZATION FOR CHIP CARDS AND OTHER CRYPTO SYSTEMS
FR2810178B1 (en) * 2000-06-13 2004-10-29 Gemplus Card Int CRYPTOGRAPHIC CALCULATION PROCESS INCLUDING A MODULAR EXPONENTIATION ROUTINE
US7739521B2 (en) * 2003-09-18 2010-06-15 Intel Corporation Method of obscuring cryptographic computations

Also Published As

Publication number Publication date
WO2007006649A1 (en) 2007-01-18

Similar Documents

Publication Publication Date Title
DE69828787T2 (en) IMPROVED METHOD AND DEVICE FOR PROTECTING A PUBLIC KEY ENCRYPTION PROCEDURE AGAINST ATTACK AND TIME ATTRUSION ATTACKS
EP1891512B1 (en) Determination of a modular inverse
DE102006022960B9 (en) Method for encrypting input data, cryptographic system and computer program product
DE69917592T2 (en) AGAINST ELECTRICAL CONSUMER STOCK RESISTANT CRYPTOGRAPHY
US20040139136A1 (en) Method for securing a computer installation involving a cryptographic algorithm using boolean operations and arithmetic operations and the corresponding embedded system
EP3593483B1 (en) Transition from a boolean masking to an arithmetic masking
EP1922837B1 (en) Method for securely encrypting or decrypting a message
DE102012018924A1 (en) Side channel protected masking
DE102008051447B9 (en) Method and apparatus for protecting an RSA calculation on an output using the Chinese Remainder Theorem
DE102010001289A1 (en) Apparatus for calculating a result of a scalar multiplication
DE10304451B3 (en) Modular exponentiation with randomized exponent
KR100731575B1 (en) A secure scalar multiplication method against power analysis attacks in elliptic curve cryptosystem
EP1428112B1 (en) Method and device for calculating the result of an exponentiation
EP1442391B1 (en) Method and device for guaranteeing a calculation in a cryptographic algorithm
DE102005032731A1 (en) Method for side channel resistant multiplication
EP1454260B1 (en) Method and device for securing an exponentiation calculation by means of the chinese remainder theorem (crt)
DE10042234C2 (en) Method and device for performing a modular exponentiation in a cryptographic processor
EP2128754B1 (en) Safe sliding window exponentiation
DE102008050800B4 (en) Apparatus and method for determining a modular multiplicative inverse
DE10162496B4 (en) Method and device for securing a calculation in a cryptographic algorithm
DE102012210354B3 (en) Method for computer-aided generation of cryptographic data by e.g. smart card based on elliptic curve, involves transforming projective representations of x-coordinate of point of curve to other representations by preset equations
EP1536320B1 (en) Montgomery multiplication with longer operand length
EP1760929B1 (en) Protected cryptographic method
EP2759090A1 (en) Secret rsa encryption exponent that can be protected against access violation

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8139 Disposal/non-payment of the annual fee