EP3593483B1 - Übergang von einer booleschen maskierung zu einer arithmetischen maskierung - Google Patents
Übergang von einer booleschen maskierung zu einer arithmetischen maskierung Download PDFInfo
- Publication number
- EP3593483B1 EP3593483B1 EP18709467.7A EP18709467A EP3593483B1 EP 3593483 B1 EP3593483 B1 EP 3593483B1 EP 18709467 A EP18709467 A EP 18709467A EP 3593483 B1 EP3593483 B1 EP 3593483B1
- Authority
- EP
- European Patent Office
- Prior art keywords
- masking
- mask
- value
- additive
- boolean
- 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.)
- Active
Links
- 230000000873 masking effect Effects 0.000 title claims description 126
- 230000007704 transition Effects 0.000 title claims description 67
- 238000000034 method Methods 0.000 claims description 58
- 239000000654 additive Substances 0.000 claims description 48
- 230000000996 additive effect Effects 0.000 claims description 48
- 238000004364 calculation method Methods 0.000 claims description 21
- 238000012937 correction Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 7
- 230000015654 memory Effects 0.000 claims description 3
- 238000013459 approach Methods 0.000 description 6
- 238000007792 addition Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 239000008000 CHES buffer Substances 0.000 description 2
- MKWKNSIESPFAQN-UHFFFAOYSA-N N-cyclohexyl-2-aminoethanesulfonic acid Chemical compound OS(=O)(=O)CCNC1CCCCC1 MKWKNSIESPFAQN-UHFFFAOYSA-N 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000000969 carrier Substances 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001681 protective effect Effects 0.000 description 2
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/75—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
- G06F21/755—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
- G06F7/575—Basic arithmetic logic units, i.e. devices selectable to perform either addition, subtraction or one of several logical operations, using, at least partially, the same circuitry
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
- G06F2207/7223—Randomisation as countermeasure against side channel attacks
- G06F2207/7233—Masking, e.g. (A**e)+r mod n
- G06F2207/7238—Operand masking, i.e. message blinding, e.g. (A+r)**e mod n; k.(P+R)
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/04—Masking or blinding
- H04L2209/046—Masking or blinding of operations, operands or results of the operations
Definitions
- the invention relates generally to the field of cryptography and, more particularly, to the field of protection against spying of cryptographic computations.
- the invention relates to the transition from a first masking of a value to be kept secret, which is based on a Boolean masking rule, to a second masking of the value to be kept secret, which is based on an additive masking rule.
- the invention is particularly suitable for use in a portable data carrier.
- a portable data carrier can be designed, for example, as a chip card ( smart card ) or as an insertable chip module or as a chip module built into a portable device or as a portable, resource-limited system.
- Portable data carriers are often used for security-critical applications, for example for authentication in mobile radio, as a money card, as a signature card or signature token for electronic signatures and so on. Since unauthorized use could cause great damage, the secret data stored on such data carriers must be reliably protected from spying and manipulation.
- the attacker In the case of a first-order side-channel attack, the attacker is able to determine a single value that occurs during the calculation, e.g. the value that is in a specific register of a processor on the data carrier at a specific point in time.
- the attacker can determine two such values, e.g. the content of a processor register at two different times or the content of two registers at one time.
- a third order side channel attack will spy out three values, and so on.
- a software-based protective measure which consists in masking data to be kept secret before executing cryptographic calculations, that is to say falsifying them with a value called a mask.
- the mask is selected as a random value before each execution of the cryptographic calculation - or at other times.
- the cryptographic calculation is then not carried out with the data to be kept secret, but with their masked representation. Even if an attacker succeeds in determining the masked representation by means of a first-order side-channel attack, no conclusions can be drawn about the data to be kept secret because of the masking.
- a masking of a value to be kept secret can be based on different masking rules.
- the masking rule specifies the arithmetic rule according to which the data to be protected are linked to the mask in order to obtain the masked representation. Which masking rule is suitable depends on the type of cryptographic calculation.
- the masking rule is often an exclusive-or link (xor link; in this document also denoted by the operator symbol ⁇ ).
- xor link in this document also denoted by the operator symbol ⁇ .
- Boolean masking rules Such a masking rule and also related masking rules which, for example, have additional inversions of individual bits, are referred to in the present document as Boolean masking rules, and the masks used are referred to as Boolean masks.
- the cryptographic calculation consists essentially of byte-wise or word-wise additions or comparable operations
- an addition or subtraction is often useful as a masking rule.
- such masking rules and related masking rules in which, for example, a multiplication with a constant factor also takes place, are referred to as additive masking rules, regardless of whether an addition or a subtraction is carried out during the masking.
- additive masking rules regardless of whether an addition or a subtraction is carried out during the masking.
- the masks used are accordingly referred to as additive masks.
- the Boolean and additive masking rules just mentioned prevent first-order side-channel attacks.
- these rules do not offer any protection against second-order side-channel attacks because, for example, with the Boolean masking rule, an attacker who spies out the values x and s can use them to determine the value d to be kept secret.
- EP 1 596 527 B1 is a method for the masking transition from a Boolean masking of a value to be kept secret to an additive masking of the value to be kept secret known. This procedure has proven to be very helpful in practice; however, it is only protected against first-order side-channel attacks.
- Protection against first-order side-channel attacks is already an important advantage. However, it has recently become increasingly important to also offer protection against second-order side-channel attacks. This is, for example, a requirement of certain security levels of the Common Criteria for Information Technology Security Evaluation (general criteria for the evaluation of the security of information technology) according to the ISO / IEC 15408 standard, and also for EMVCo evaluations. It would therefore be desirable to provide a masking transition method that provides increased protection against side channel attacks compared to known methods having. Furthermore, it would be desirable if the method could be implemented efficiently despite the high level of security required.
- the invention has the object of creating an advantageous technique for the spying-protected transition from a Boolean masking of a value to be kept secret to an additive masking of the value to be kept secret, which is protected against second-order side-channel attacks.
- this object is achieved in whole or in part by a method with the features of claim 1, a computer program product according to claim 14 and a device, in particular a portable data carrier or a chip module, according to claim 15.
- the dependent claims relate to optional features of some embodiments of the invention .
- the invention is based on the basic idea of implementing the masking transition in the form of a total of three simpler masking transitions. These masking transitions are referred to in the description and the claims as “first”, “second” and “third” masking transitions. However, this only serves to make the presentation easier to understand and is not intended to imply any order of execution. Depending on the implementation and the order in which certain intermediate results are generated and required, other orders of the masking transitions and / or a completely or partially parallel or completely or partially interlocking design are possible and provided.
- the method according to the invention is secured against second-order side-channel attacks, inter alia, in that the result of the first masking transition, namely the first additive mask, is itself a masked representation in which a mask serving as a Boolean mask Obfuscation value is used .
- This concealment value is converted into an additive correction value in the second masking transition.
- the second additive mask is determined in the third masking transition.
- the correction value can flow into the second mask, in further embodiments it can be output separately from the second mask, and in still further embodiments it can be used in a different way.
- the concealment value serving as a Boolean mask and / or further concealment values are determined randomly. For example, a total of three random obfuscation values can be provided for a process sequence.
- the three masking transitions are carried out with three different base values, one of which, for example, can be the value to be kept secret. Of course, this does not mean that this value is available in clear text (and is therefore at risk of being spied on), it just means that the masking transition conceptually uses this base value.
- the method is preferably used to protect against side-channel attacks of the second order, even if, as is provided in some embodiments, at least one or at least two of the simpler masking transitions (considered separately) are only protected against side-channel attacks of the first order.
- the masking transition method is preferably embedded between two sections of a cryptographic computation.
- the masked representation is first generated or processed by an operation compatible with the Boolean masking rule, then the masking transition takes place, and finally the masked representation is further processed by an operation compatible with the additive masking rule.
- the computer program product according to the invention has program instructions in order to implement the method according to the invention.
- a computer program product can be a physical medium such as a semiconductor memory or a CD-ROM.
- the computer program product can also be a non-physical medium, e.g. a signal transmitted over a computer network.
- the computer program product can contain program commands which are introduced into a portable data carrier or a chip module in the course of the manufacture or initialization or personalization of a portable data carrier or a chip module.
- the device according to the invention can in particular be a portable data carrier, for example a chip card or a chip module.
- a data carrier contains, in a manner known per se, at least one processor, several memories designed using different technologies and various auxiliary assemblies such as interface circuits, timers and connecting elements.
- the computer program product and / or the device have features which correspond to the features mentioned in the present description and / or the features mentioned in the dependent method claims.
- FIG. 1 The sole drawing figure shows a diagram in which operations of an embodiment of the invention and the data used and generated by these operations are illustrated .
- FIG. 1 a part of a cryptographic calculation, e.g. a hash function or IDEA encryption or decryption, is shown.
- a masking transition method 10 according to an embodiment of the invention is embedded between a first section 12 and a second section 14 of the cryptographic computation.
- the operations of the cryptographic computation carried out in the first section 12 are compatible with a Boolean masking rule and are carried out using a plurality of Boolean masks.
- the second section 14 of the cryptographic calculation contains further operations which, however, are not compatible with the Boolean masking rule, but only with an additive masking rule.
- the masking transition method 10 should therefore determine a second masking from the first masking of the value d to be kept secret with the Boolean masks s 1 , s 2 , which has two additive masks r 1a and r 2a .
- the masked representation x should remain unchanged, while this is not the case in other embodiments which will be described later.
- the masking transition method 10 has a total of three simpler masking transitions 16, 18, 20. These masking transitions 16, 18, 20 are also referred to here as “first”, “second” and “third” masking transitions. However, this serves only for simpler naming, without implying an execution order. In variant embodiments, the three masking transitions 16, 18, 20 can be implemented in a different order or, for example, also interlocked, i.e. initially a part of the third masking transition 20 that does not require the correction value ⁇ , and only then the second masking transition 18.
- the XOR2ADD formula follows by replacing the value x for r by d ⁇ s in the relation just derived.
- the above-mentioned XOR2ADD formula can be expanded in that not only one random concealment value z , but two concealment values z 1 and z 2 are used.
- the obfuscation values z 1 , z 2 can each be random, or there can be certain dependencies either between the obfuscation values z 1 , z 2 or between one of the obfuscation values z 1 , z 2 and another value.
- the masking transition method 10 proceeds in the manner shown in FIG Fig. 1
- the masking transition method 10 shown uses one masking transition according to the XOR2ADD formula and two masking transitions according to the extended XOR2ADD formula.
- the masking transition method 10 is protected against second order side channel attacks; Even if two intermediate results are known, no information can be derived about the value d to be kept secret.
- Each of these two masking transitions takes place in accordance with the experimental approach using the extended XOR2ADD formula with suitable obfuscation values.
- r 1 d ⁇ s 1 ⁇ z 1 ⁇ z 2 - d ⁇ z 1 ⁇ z 2 ⁇ s 1 ⁇ z 1 - z 1 ⁇ s 1 ⁇ z 2 - z 2
- the inventors gained the surprising finding that the calculation of r 1 according to the relationship (A0) is susceptible to second-order side-channel attacks because an attacker can draw conclusions about the from the knowledge of r 1 and s 1 could draw secret value d.
- the experimental approach is modified insofar as the additive mask r 1 corresponding to the Boolean mask s 1 is not determined in the first masking transition 16, but instead a value r 1a modified from r 1 .
- the value r 1a the represents the first mask searched for as a whole, is the Boolean masking of the value r 1 with a further Boolean mask, namely a randomly selected obfuscation value a.
- the relationship (A2) represents the first masking transition 16 according to the exemplary embodiment described here.
- the calculation of the relationship (A2) is secure against second-order side-channel attacks.
- the value r 1a was calculated instead of the actually desired value s r 1 , a correction step is required in the exemplary embodiment described here, for which the Boolean obfuscation value a is converted into a corresponding additive correction value ⁇ .
- the relationship (B) represents the second masking transition 18 in the exemplary embodiment described here.
- the relationship (C3) represents the third masking transition 20 in the exemplary embodiment described here.
- the method can be modified in such a way that the corrected value r 2a is not output as a second mask, but instead the uncorrected value r 2 and, separately therefrom, the correction value ⁇ .
- five further concealment values z 1 , z 2 , z 3 , z 4 , z 5 are used in the exemplary embodiment described above.
- independent random numbers can be used for these values.
- implementations are also provided in which the obfuscation values are derived from fewer random numbers.
- care must be taken not to impair the spying protection of the procedure.
- it is possible to reduce the number of mutually independent random numbers for the masking transition method 10 to three.
- Step 1 Choose random obfuscation values r, s and a (Step 1) t ⁇ s ⁇ r (Step 2) zs ⁇ z ⁇ s (Step 3) xr ⁇ x ⁇ r (Step 4) ztxr ⁇ zs ⁇ x (Step 5) ztyr ⁇ zs ⁇ y (Step 6) s11 ⁇ ztxr - x (Step 7) s12 ⁇ ztyr - y (Step 8) s13 ⁇ s - z (Step 9) ra ⁇ r ⁇ a (Step 10) s11ra ⁇ s11 ⁇ ra (Step 11) s112ra ⁇ s11ra ⁇ s12 (Step 12) r1ra ⁇ s112ra ⁇ s13 (Step 13) r1
- the first implementation just described contains 29 elementary operations. However, the input masked representation x differs from the output masked representation xm. This is acceptable for many applications. For applications where the masked If the representation is not to be changed by the masking transition, the following second implementation can be used. This second implementation does not introduce any additional intermediate values and differs from the first implementation with regard to the naming of the input and output values and with regard to steps 1, 2, 4, 10 and 21.
- the two additive masks r1a and r2a are obtained as the result.
- r 2 x ⁇ z 4th ⁇ z 5 - x ⁇ s 2 ⁇ z 4th ⁇ z 5 ⁇ s 2 ⁇ z 4th - z 4th ⁇ s 2 ⁇ z 5 - z 5
- a processor of a portable data carrier in particular a chip card or a chip module.
- the methods are implemented in the form of program commands that are contained in a ROM or an EEPROM or some other memory on the data carrier.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
- Facsimile Transmission Control (AREA)
Description
- Die Erfindung betrifft allgemein das Gebiet der Kryptographie und spezieller das Gebiet des Ausspähungsschutzes von kryptographischen Berechnungen. Insbesondere betrifft die Erfindung den Übergang von einer ersten Maskierung eines geheim zu haltenden Wertes, die auf einer booleschen Maskierungsregel beruht, zu einer zweiten Maskierung des geheim zu haltenden Wertes, die auf einer additiven Maskierungsregel beruht. Besonders eignet sich die Erfindung zur Verwendung in einem tragbaren Datenträger. Ein solcher tragbarer Datenträger kann beispielsweise als Chipkarte (smart card) oder als einsteckbares Chipmodul oder als fest in ein tragbares Gerät eingebautes Chipmodul oder als tragbares ressourcenbeschränktes System ausgestaltet sein.
- Tragbare Datenträger werden oft für sicherheitskritische Anwendungen eingesetzt, beispielsweise zur Authentisierung im Mobilfunk, als GeldKarte, als Signaturkarte oder Signaturtoken zur elektronischen Unterschrift und so weiter. Da durch eine unbefugte Verwendung hoher Schaden entstehen könnte, müssen die auf solchen Datenträgern gespeicherten, geheimen Daten zuverlässig vor Ausspähung und Manipulation geschützt werden.
- Eine an sich bekannte Art von Angriffsverfahren zur Datenausspähung sind sogenannte Seitenkanalangriffe, bei denen durch Messungen während der Programmausführung Rückschlüsse auf die verarbeiteten Daten gezogen werden können. So können z.B. die Stromaufnahme des Datenträgers und/ oder andere physikalische Parameter wie z.B. elektromagnetische Abstrahlungen oder Programmlaufzeiten gemessen und ausgewertet werden. Es werden entweder die gemessenen Eigenschaften während eines einzigen Berechnungsablaufs untersucht (z.B. SPA = Simple Power Analysis), oder es werden viele Berechnungsabläufe beobachtet und statistisch ausgewertet (z.B. DPA = Differential Power Analysis).
- Allgemein wird zwischen Seitenkanalangriffen erster, zweiter, dritter, etc. Ordnung unterschieden. Bei einem Seitenkanalangriff erster Ordnung vermag der Angreifer einen einzigen während der Berechnung auftretenden Wert zu ermitteln, also z.B. den Wert, der sich zu einem bestimmten Zeitpunkt in einem bestimmten Register eines Prozessors des Datenträgers befindet. Bei einem Seitenkanalangriff zweiter Ordnung vermag der Angreifer zwei solcher Werte zu ermitteln, also z.B. den Inhalt eines Prozessorregisters zu zwei verschiedenen Zeitpunkten, oder den Inhalt zweier Register zu einem Zeitpunkt. Entsprechend werden durch einen Seitenkanalangriff dritter Ordnung drei Werte ausgespäht, und so weiter.
- Zur Abwehr von Seitenkanalangriffen ist eine softwaremäßige Schutzmaßnahme bekannt, die darin besteht, geheim zu haltende Daten vor der Ausführung von kryptographischen Berechnungen zu maskieren, also mit einem als Maske bezeichneten Wert zu verfälschen. Die Maske wird vor jeder Ausführung der kryptographischen Berechnung - oder auch zu anderen Zeitpunkten - als zufälliger Wert gewählt. Die kryptographische Berechnung wird dann nicht mit den geheim zu haltenden Daten, sondern mit deren maskierter Repräsentation durchgeführt. Selbst wenn es einem Angreifer gelingt, durch einen Seitenkanalangriff erster Ordnung die maskierte Repräsentation zu ermitteln, so können daraus wegen der Maskierung keine Rückschlüsse auf die geheim zu haltenden Daten gezogen werden.
- Eine Maskierung eines geheim zu haltenden Wertes kann auf unterschiedlichen Maskierungsregeln beruhen. Die Maskierungsregel gibt die Rechenvorschrift an, gemäß der die zu schützenden Daten mit der Maske verknüpft werden, um die maskierte Repräsentation zu erhalten. Welche Maskierungsregel geeignet ist, hängt von der Art der kryptographischen Berechnung ab.
- Wenn die kryptographische Berechnung im wesentlichen aus bitweisen Operationen besteht, ist als Maskierungsregel oft eine Exklusiv-Oder-Verknüpfung (xor-Verknüpfung; im vorliegenden Dokument auch durch das Operatorsymbol ⊕ bezeichnet) geeignet. Aus einem geheim zu haltenden Wert d wird also eine maskierte Repräsentation x mit x = d ⊕ s abgeleitet, wobei s die zufällig gewählte Maske ist. Eine solche Maskierungsregel und auch verwandte Maskierungsregeln, die z.B. zusätzliche Invertierungen einzelner Bits aufweisen, werden im vorliegenden Dokument als boolesche Maskierungsregeln bezeichnet, und die verwendeten Masken werden als boolesche Masken bezeichnet.
- Wenn die kryptographische Berechnung dagegen im wesentlichen aus byte-oder wortweisen Additionen oder vergleichbaren Operationen besteht, ist als Maskierungsregel oft eine Addition oder Subtraktion sinnvoll. Statt des geheim zu haltenden Wertes d wird also z.B. eine maskierte Repräsentation x mit einer der Maskierungsregeln x = d + r mod 2 n oder x = d - r mod 2 n oder x = r - d mod 2 n oder x = -(d + r) mod 2 n verarbeitet, wobei n die Bitbreite ist, mit der die Berechnungen ausgeführt werden. Im vorliegenden Dokument werden solche Maskierungsregeln und auch verwandte Maskierungsregeln, bei denen z.B. noch eine Multiplikation mit einem konstanten Faktor stattfindet, als additive Maskierungsregeln bezeichnet, und zwar unabhängig davon, ob bei der Maskierung eine Addition oder eine Subtraktion ausgeführt wird. Dies entspricht der üblichen Terminologie, gemäß der sowohl die Addition als auch die Subtraktion als additive Operationen angesehen werden. Entsprechend werden die verwendeten Masken als additive Masken bezeichnet.
- Bei fehlerfreier Implementierung verhindern die gerade genannten booleschen und additiven Maskierungsregeln Seitenkanalangriffe erster Ordnung. Gegen Seitenkanalangriffe zweiter Ordnung bieten diese Regeln jedoch keinen Schutz, weil z.B. bei der booleschen Maskierungsregel ein Angreifer, der die Werte x und s ausspäht, daraus den geheim zu haltenden Wert d ermitteln kann. Nach einem zumindest internen Stand der Technik der Anmelderin kann jedoch Schutz gegen Seitenkanalangriffe zweiter Ordnung erzielt werden, indem eine Maskierung mit zwei zufällig gewählten Masken erfolgt. So ist z.B. eine boolesche Maskierung mit zwei zufällig gewählten Masken s 1, s 2 und der Maskierungsregel x = d ⊕ s 1 ⊕ s 2 gegen Seitenkanalangriffe zweiter Ordnung sicher. Dasselbe gilt für eine additive Maskierung mit zwei zufällig gewählten Masken r 1, r 2 und einer Maskierungsregel der Form x = ±d±r 1±r 2 mod 2 n , also beispielsweise x = d + r 1 + r 2 mod 2 n .
- Unabhängig von der Anzahl der Masken und der "Stärke" des erzielten Schutzes ergibt sich eine Schwierigkeit, wenn bei der kryptographischen Berechnung nacheinander Operationen ausgeführt werden, die nur mit unterschiedlichen Maskierungsregeln verträglich sind. Das ist beispielsweise bei symmetrischen Verschlüsselungsverfahren wie IDEA (International Data Encryption Algorithm), SAFER K-64 und RC5 sowie Hash-Algorithmen wie MD5 oder SHA-1 der Fall. Für manche Abschnitte dieser Algorithmen bietet sich eine boolesche Maskierung an, während in anderen Abschnitten eine additive Maskierung vorteilhafter ist.
- An den Schnittstellen zwischen diesen Abschnitten ist es daher erforderlich, einen Übergang von einer Art der Maskierung in die andere zu schaffen. Auch hierbei ist darauf zu achten, daß ein Angreifer keine verwertbaren Informationen über den zu schützenden Wert erhalten kann. Daher verbietet sich z.B. die Vorgehensweise, bei einer Maskierung mit einer booleschen Maske s zunächst den geheim zu haltenden Wert d aus der maskierten Repräsentation x durch eine xor-Verknüpfung mit der booleschen Maske s zu bestimmen und dann unter Verwendung des Wertes d und einer additiven Maske r die neue maskierte Repräsentation zu berechnen.
- Aus der Patentschrift
EP 1 596 527 B1 ist ein Verfahren zum Maskierungsübergang von einer booleschen Maskierung eines geheim zu haltenden Wertes zu einer additiven Maskierung des geheim zu haltenden Wertes bekannt. Dieses Verfahren hat sich in der Praxis als sehr hilfreich erwiesen; es ist jedoch nur gegen Seitenkanalangriffe erster Ordnung geschützt. - In dem Artikel " A Sound Method for Switching between Boolean and Arithmetic Masking" von L. Goubin, erschienen in dem Tagungsband zum "Workshop on Cryptographic Hardware and Embedded Systems 2001 (CHES 2001)", Band 2162 der Lecture Notes in Computer Science, Springer-Verlag, 2001, Seiten 3-15, sind Verfahren zum Maskierungsübergang beschrieben, die gegen Seitenkanalangriffe erster Ordnung geschützt sind. Bei diesen Verfahren wird eine neue maskierte Repräsentation des geheim zu haltenden Werten ohne Veränderung der Maske berechnet. Diese Verfahren sind auch in der Offenlegungsschrift
WO 02/065692 A1 - Der Artikel " Efficient and Provably Secure Methods for Switching from Arithmetic to Boolean Masking" von Blandine Debraize, erschienen in dem Tagungsband zum "Workshop on Cryptographic Hardware and Embedded Systems 2012 (CHES 2012)", Band 7428 der Lecture Notes in Computer Science, Springer-Verlag, 2012, Seiten 107-121, beschreibt ein weiteres ausspähungsgeschütztes Ver-fahren zum Maskierungsübergang, das als sicher gegen Seitenkanalangriffe erster Ordnung und als besonders effizient bezeichnet wird.
- Im Aufsatz von Michael Hutter et al: "Constant-Time Higher-Order Boolean-to-Arithmetic Masking", International Association For Cryptologic Research, Bd. 20161222:183711,22. Dezember 2016 (2016-12-22), Seiten 1-22, XP061022331, wird ein Verfahren zum Übergang von einer booleschen Maskierung eines geheim zu haltenden Wertes zu einer additiven Maskierung des geheim zu haltenden Wertes beschrieben. Es werden zwei boolesche und zwei arithmetische Masken eingesetzt. Diese Maskierung dient zum Schutz bei kryptographischen Berechnungen vor Seitenkanalangriffen zweiter Ordnung.
- Eine Sicherung gegen Seitenkanalangriffe erster Ordnung stellt bereits einen wichtigen Vorteil dar. Es wird jedoch in jüngster Zeit zunehmend wichtiger, auch Schutz gegen Seitenkanalangriffe zweiter Ordnung zu bieten. Dies ist z.B. eine Forderung gewisser Sicherheitsstufen der Common Criteria for Information Technology Security Evaluation (Allgemeine Kriterien für die Bewertung der Sicherheit von Informationstechnologie) gemäß der Norm ISO/IEC 15408, und auch bei EMVCo-Evaluationen. Es wäre daher wünschenswert, ein Maskierungsübergangsverfahren bereitzustellen, das einen im Vergleich zu bekannten Verfahren gesteigerten Schutz gegen Seitenkanal-angriffe aufweist. Ferner wäre es wünschenswert, wenn sich das Verfahren trotz der hohen gebotenen Sicherheit effizient implementieren ließe.
- Die Erfindung hat die Aufgabe, eine vorteilhafte Technik zum ausspähungsgeschützten Übergang von einer booleschen Maskierung eines geheim zu haltenden Wertes zu einer additiven Maskierung des geheim zu haltenden Wertes zu schaffen, die gegen Seitenkanalangriffe zweiter Ordnung geschützt ist.
- Erfindungsgemäß wird diese Aufgabe ganz oder zum Teil gelöst durch ein Verfahren mit den Merkmalen des Anspruchs 1, ein Computerprogrammprodukt gemäß Anspruch 14 und eine Vorrichtung, insbesondere einen tragbaren Datenträger oder ein Chipmodul, gemäß Anspruch 15. Die abhängigen Ansprüche betreffen optionale Merkmale einiger Ausführungsformen der Erfindung.
- Die Erfindung geht von der Grundüberlegung aus, den Maskierungsübergang in Form von insgesamt drei einfacheren Maskierungsübergängen auszuführen. Diese Maskierungsübergänge werden in der Beschreibung und den Ansprüchen als "erster", "zweiter" und "dritter" Maskierungsübergang bezeichnet. Dies dient aber lediglich der verständlicheren Darstellung und soll keine Ausführungsreihenfolge implizieren. Je nach der Implementierung und der Reihenfolge, in der gewisse Zwischenergebnisse erzeugt und benötigt werden, sind auch andere Reihenfolgen der Maskierungsübergänge, und/ oder eine ganz oder teilweise parallele oder ganz oder teilweise ineinander verzahnte Ausführung, möglich und vorgesehen.
- Das erfindungsgemäße Verfahren ist unter anderem dadurch gegen Seitenkanalangriffe zweiter Ordnung gesichert, dass das Ergebnis des ersten Maskierungsübergangs, nämlich die erste additive Maske, ihrerseits eine maskierte Repräsentation ist, in der ein als boolesche Maske dienender Verschleierungswert verwendet wird. Dieser Verschleierungswert wird in dem zweiten Maskierungsübergang in einen additiven Korrekturwert umgewandelt. In dem dritten Maskierungsübergang wird die zweite additive Maske bestimmt. Der Korrekturwert kann in manchen Ausführungsformen in die zweite Maske einfließen, in weiteren Ausführungsformen separat zur zweiten Maske ausgegeben werden, und in noch weiteren Ausführungsformen auf andere Weise verwendet werden.
- In manchen Ausgestaltungen werden der als boolesche Maske dienende Verschleierungswert und/oder weitere Verschleierungswerte zufällig bestimmt. Beispielsweise können für einen Verfahrensablauf insgesamt drei zufällige Verschleierungswerte vorgesehen sein. Die drei Maskierungsübergänge werden in manchen Ausführungsformen mit drei unterschiedlichen Basiswerten ausgeführt, von denen z.B. einer der geheim zu haltende Wert sein kann. Dies heißt natürlich nicht, dass dieser Wert im Klartext vorliegt (und damit ausspähungsgefährdet wäre), sondern es heißt nur, dass der Maskierungsübergang konzeptuell diesen Basiswert verwendet.
- Insgesamt ist dient das Verfahren vorzugsweise zum Schutz gegen Seitenkanalangriffe zweiter Ordnung, auch wenn, wie dies in manchen Ausführungsformen vorgesehen ist, mindestens einer oder mindestens zwei der einfacheren Maskierungsübergänge (für sich betrachtet) nur gegen Seitenkanalangriffe erster Ordnung geschützt ist bzw. sind.
- Vorzugsweise ist das Maskierungsübergangsverfahren zwischen zwei Abschnitte einer kryptographischen Berechnung eingebettet. In manchen Ausgestaltungen wird hierbei zunächst die maskierte Repräsentation durch eine mit der booleschen Maskierungsregel verträgliche Operation erzeugt oder verarbeitet, dann erfolgt der Maskierungsübergang, und schließlich wird die maskierte Repräsentation durch eine mit der additiven Maskierungsregel verträgliche Operation weiterverarbeitet.
- Das erfindungsgemäße Computerprogrammprodukt weist Programmbefehle auf, um das erfindungsgemäße Verfahren zu implementieren. Ein derartiges Computerprogrammprodukt kann ein körperliches Medium sein, z.B. ein Halbleiterspeicher oder eine CD-ROM. Das Computerprogrammprodukt kann jedoch auch ein nicht-körperliches Medium sein, z.B. ein über ein Computernetzwerk übermitteltes Signal. Insbesondere kann das Computerprogrammprodukt Programmbefehle enthalten, die im Zuge der Herstellung oder der Initialisierung oder der Personalisierung eines tragbaren Datenträgers oder eines Chipmoduls in diesen bzw. dieses eingebracht werden.
- Die erfindungsgemäße Vorrichtung kann insbesondere ein tragbarer Datenträger, z.B. eine Chipkarte oder ein Chipmodul, sein. Ein derartiger Datenträger enthält in an sich bekannter Weise mindestens einen Prozessor, mehrere in unterschiedlichen Technologien ausgestaltete Speicher und diverse Hilfsbaugruppen wie z.B. Schnittstellenschaltungen, Zeitgeber und Verbindungselemente.
- In bevorzugten Weiterbildungen weisen das Computerprogrammprodukt und/oder die Vorrichtung Merkmale auf, die den in der vorliegenden Beschreibung erwähnten und/oder den in den abhängigen Verfahrensansprüchen genannten Merkmalen entsprechen.
- Weitere Merkmale, Aufgaben und Vorteile der Erfindung ergeben sich aus der folgenden Beschreibung mehrerer Ausführungsbeispiele, Ausführungsalternativen und beispielhafter Implementierungen. Es wird auf die schematische Zeichnung verwiesen.
-
Fig. 1 als einzige Zeichnungsfigur zeigt ein Diagramm, in dem Operationen eines Ausführungsbeispiels der Erfindung und die von diesen Operationen genutzten und erzeugten Daten veranschaulicht sind. - In
Fig. 1 ist ein Teil einer kryptographischen Berechnung, z.B. einer Hash-Funktion oder einer IDEA-Ver- oder Entschlüsselung, dargestellt. Ein Maskierungsübergangsverfahren 10 nach einem Ausführungsbeispiel der Erfindung ist zwischen einen ersten Abschnitt 12 und einen zweiten Abschnitt 14 der kryptographischen Berechnung eingebettet. Die im ersten Abschnitt 12 ausgeführten Operationen der kryptographischen Berechnung sind mit einer booleschen Maskierungsregel verträglich und werden unter Verwendung mehrerer boolescher Masken ausgeführt. Als Ergebnis des ersten Abschnitts 12 liegt eine maskierte Repräsentation x eines geheim zu haltenden Wertes d vor, die gemäß einer booleschen Maskierungsregel mit zwei booleschen Masken s 1, s 2 maskiert ist; es gilt also z.B. x = d ⊕ s 1 ⊕ s 2. - Der zweite Abschnitt 14 der kryptographischen Berechnung beinhaltet weitere Operationen, die jedoch nicht mit der booleschen Maskierungsregel, sondern nur mit einer additiven Maskierungsregel verträglich sind. Im vorliegenden Ausführungsbeispiel lautet die im zweiten Abschnitt 14 verwendete Maskierungsregel x = d + r 1a + r 2a mod 2 n , wobei r 1a und r 2a je eine additive Maske sind und n die Wortbreite der durchgeführten Berechnung in Bit angibt. Das Maskierungsübergangsverfahren 10 soll daher aus der ersten Maskierung des geheim zu haltenden Wertes d mit den booleschen Masken s 1, s 2 eine zweite Maskierung bestimmen, die zwei additive Masken r 1a und r 2a aufweist. In der hier zunächst beschriebenen Ausgestaltung soll bei der Ausführung des Maskierungsübergangsverfahrens 10 die maskierte Repräsentation x unverändert bleiben, während dies in anderen Ausgestaltungen, die später beschrieben werden, nicht der Fall ist.
- Im hier beschriebenen Ausführungsbeispiel weist das Maskierungsübergangsverfahren 10 insgesamt drei einfachere Maskierungsübergänge 16, 18, 20 auf. Diese Maskierungsübergänge 16, 18, 20 werden hier auch als "erster", "zweiter" und "dritter" Maskierungsübergang bezeichnet. Dies dient jedoch lediglich der einfacheren Benennung, ohne dass hierdurch eine Ausführungsreihenfolge impliziert werden soll. In Ausführungsvarianten können die drei Maskierungsübergänge 16, 18, 20 in anderer Reihenfolge oder z.B. auch ineinander verzahnt ausgeführt werden, also z.B. zunächst ein Teil des dritten Maskierungsübergangs 20, der den Korrekturwert α nicht benötigt, und dann erst der zweite Maskierungsübergang 18.
- Bevor die Maskierungsübergänge 16, 18, 20 im Detail beschrieben werden, werden zunächst zum besseren Verständnis zwei allgemeine Formeln erläutert, mit denen sich Maskierungsübergänge in einer gegen Seitenkanalangriffe erster Ordnung geschützten Weise ausführen lassen.
- Es sei eine maskierte Repräsentation x eines geheim zu haltenden Basiswertes d mit einer booleschen Maske s gegeben, so dass also x = d ⊕ s gilt. Berechnet werden soll eine arithmetische Maske r, mit der die maskierte Repräsentation x den geheim zu haltenden Basiswert d darstellt, also für die x = d + r mod 2 n bei gegebener Berechnungsbitbreite n gilt. Um die Rechnung gegen einen Seitenkanalangriff erster Ordnung zu sichern, wird ein zufälliger Verschleierungswert z eingeführt. Die arithmetische Maske r ergibt sich dann durch die Formel:
- Diese Beziehung, die im folgenden als "XOR2ADD-Formel" bezeichnet wird, ist in leicht abgewandelter Form bereits aus
EP 1 596 527 B1 bekannt. Die Korrektheit der XOR2ADD-Formel ergibt sich aus einer Betrachtung der vermöge F(x, s) := (x - (x ⊕ s)) mod 2 n definierten Funktion. Für die oben genannte maskierte Repräsentation x des geheim zu haltenden Basiswertes d und die oben genannte boolesche Maske s stellt der Wert F(x, s) die gesuchte additive Maske r dar, weil d + F(x, s) = d + (x - (x ⊕ s)) = d + x - d = x gilt. Für die Abbildung F(_, s) gilt: F(x ⊕ y, s) = F(x, s) ⊕ F(y, s) ⊕ F(0, s). Somit ergibt sich die folgenden Gleichungskette: - Die XOR2ADD-Formel folgt, indem in der gerade abgeleiteten Beziehung für r der Wert x durch d ⊕ s ersetzt wird.
- Die oben genannte XOR2ADD-Formel lässt sich dadurch erweitern, dass nicht nur ein zufälliger Verschleierungswert z, sondern zwei Verschleierungswerte z 1 und z 2 herangezogen werden. Je nach den Sicherheitsanforderungen können die Verschleierungswerte z 1, z 2 jeder für sich zufällig sein, oder es können gewisse Abhängigkeiten entweder zwischen den Verschleierungswerten z 1, z 2 untereinander oder zwischen einem der Verschleierungswerte z 1, z 2 und einem anderen Wert bestehen. Unter Verwendung der beiden Verschleierungswerte z 1, z 2 ergibt sich die arithmetische Maske r dann durch die folgende Beziehung, die hier als "erweiterte XOR2ADD-Formel" bezeichnet wird:
- Wie bereits oben kurz erläutert, geht das Maskierungsübergangsverfahren 10 in dem in
Fig. 1 gezeigten Ausführungsbeispiel von einem geheim zu haltenden Basiswert d aus, der in einer ersten Maskierung in Form einer mit zwei booleschen Masken s 1, s 2 gemäß einer booleschen Maskierungsregel maskierten Repräsentation x vorliegt; es gilt also x = d ⊕ s 1 ⊕ s 2. Gemäß dem vorliegenden Ausführungsbeispiel werden zwei additive Masken r 1a, r 2a bestimmt, so dass x = d + r 1a + r 2a mod 2 n gilt. Mit anderen Worten wird eine zweite Maskierung des geheim zu haltenden Basiswertes d ermittelt, in der die maskierte Repräsentation x auch eine maskierte Repräsentation gemäß einer additiven Maskierungsregel mit den Masken r 1a, r 2a ist. Das inFig. 1 gezeigte Maskierungsübergangsverfahren 10 nutzt hierzu einen Maskierungsübergang gemäß der XOR2ADD-Formel und zwei Maskierungsübergänge gemäß der erweiterten XOR2ADD-Formel. Das Maskierungsübergangsverfahren 10 ist gegen Seitenkanalangriffe zweiter Ordnung geschützt; es sind also selbst bei Kenntnis von zwei Zwischenergebnissen keine Informationen über den geheim zu haltenden Wert d ableitbar. - In einem Versuchsansatz, der nun zunächst als Hinführung zum Ausführungsbeispiel beschrieben wird, würde man zwei additive Masken r 1, r 2 mit x = d + r 1 + r 2 dadurch bestimmen, dass zunächst ein "innerer" Maskierungsübergang von d ⊕ s 1 nach d + r 1 und dann ein "äußerer" Maskierungsübergang von (d + r 1) ⊕ s 2 nach (d + r 1) + r 2 durchgeführt wird. Jeder dieser beiden Maskierungsübergänge erfolgt gemäß dem Versuchsansatz nach der erweiterten XOR2ADD-Formel mit geeigneten Verschleierungswerten. So ergibt sich gemäß dem Versuchsansatz der Wert r 1 mit zwei Verschleierungswerten z 1, z 2 aus der folgenden Beziehung, die mit "(A0)" bezeichnet wird:
- Bei der Analyse des gerade beschriebenen Versuchsansatzes haben die Erfinder jedoch die überraschende Erkenntnis gewonnen, dass die Berechnung von r 1 gemäß der Beziehung (A0) gegen Seitenkanalangriffe zweiter Ordnung anfällig ist, weil ein Angreifer aus der Kenntnis von r 1 und s 1 Rückschlüsse auf den geheim zu haltenden Wert d ziehen könnte. In dem nun beschriebenen Ausführungsbeispiel wird daher der Versuchsansatz insofern abgewandelt, als bei dem ersten Maskierungsübergang 16 nicht die der booleschen Maske s 1 entsprechende additive Maske r 1 bestimmt wird, sondern stattdessen ein gegenüber r 1 abgewandelter Wert r 1a. Der Wert r 1a, der die insgesamt gesuchte erste Maske darstellt, ist die boolesche Maskierung des Wertes r 1 mit einer weiteren booleschen Maske, nämlich einem zufällig gewählten Verschleierungswert a. Es gilt somit r 1a = r 1 ⊕ a, woraus sich durch Einsetzen der obigen Beziehung (A0) die folgende Beziehung (A1) ergibt:
-
- Die Beziehung (A2) stellt den ersten Maskierungsübergang 16 gemäß dem hier beschriebenen Ausführungsbeispiel dar. Bei geeigneter Implementierung ist die Berechnung der Beziehung (A2) gegen Seitenkanalangriffe zweiter Ordnung sicher.
- Weil gemäß (A2) der Wert r 1a statt des eigentlich gewünschten Wertes r 1 berechnet wurde, ist im hier beschriebenen Ausführungsbeispiel noch ein Korrekturschritt erforderlich, für den der boolesche Verschleierungswert a in einen entsprechenden additiven Korrekturwert α umgewandelt wird. Wie bereits erwähnt, stellt der Wert a die Maske gemäß einer booleschen Maskierung r 1a = r 1 ⊕ a des Wertes r 1 dar. In dem Korrekturschritt wird daher die boolesche Maske a mit dem Basiswert r 1 in eine entsprechende additive Maske α umgewandelt, für die somit r 1a = r 1 + α gilt. Hierzu werden die nicht-erweiterte XOR2ADD-Formel und ein weiterer zufälliger Verschleierungswert z 3 verwendet, so dass sich die folgende Beziehung (B) ergibt:
- Die Beziehung (B) stellt im hier beschriebenen Ausführungsbeispiel den zweiten Maskierungsübergang 18 dar. Der Wert r 1 muss für die Berechnung von α nicht explizit herangezogen werden, sondern die Kenntnis der Werte r 1a = r 1 ⊕ a und a reicht aus.
- Es ist nun noch ein weiterer Maskierungsübergang erforderlich, der im vorliegenden Ausführungsbeispiel auf dem "äußeren" Maskierungsübergang des oben beschriebenen Versuchsansatzes von (d + r 1) ⊕ s 2 zu (d + r 1) + r 2 beruht. Hierfür werden die erweiterte XOR2ADD-Formel und zwei weitere Verschleierungswerte z 4, z 5 herangezogen, so dass sich die folgende mit "(C0)" bezeichnete Beziehung ergibt:
-
- Durch die Verwendung der beiden Verschleierungswerte z 4 und z 5 sind keine weiteren Schutzmaßnahmen gegen Seitenkanalangriffe zweiter Ordnung erforderlich. Das Ergebnis r 2 ist jedoch noch nicht die gewünschte zweite additive Maske r 2a, da sich durch die Verwendung des Verschleierungswerts a die erste additive Maske r 1a gegenüber r 1 um den Wert α vergrößert hat. Dieser Korrekturwert α muss nun noch vom Ergebnis r 2 abgezogen werden, so dass sich die zweite additive Maske r 2a mit r 2a = r 2 - α ergibt. Insgesamt wird somit die zweite Maske r 2a durch die folgende Beziehung (C3) bestimmt:
- Die Beziehung (C3) stellt im hier beschriebenen Ausführungsbeispiel den dritten Maskierungsübergang 20 dar.
-
- Es versteht sich, dass in Ausführungsalternativen diverse Abwandlungen des gerade beschriebenen Ausführungsbeispiels möglich sind. So kann beispielsweise das Verfahren dahingehend abgewandelt werden, dass nicht der korrigierte Wert r 2a als zweite Maske ausgegeben wird, sondern stattdessen der nicht-korrigierte Wert r 2 und getrennt davon der Korrekturwert α.
- Ferner werden im oben beschriebenen Ausführungsbeispiel neben dem Verschleierungswert a fünf weitere Verschleierungswerte z 1, z 2, z 3, z 4, z 5 eingesetzt. In einer einfachen aber nicht sonderlich effizienten Implementierung können für diese Werte voneinander unabhängige Zufallszahlen verwendet werden. Aus Optimierungsgründen sind aber auch Implementierungen vorgesehen, bei denen die Verschleierungswerte von weniger Zufallszahlen abgeleitet werden. Hierbei muss natürlich darauf geachtet werden, den Ausspähungsschutz des Verfahrens nicht zu beeinträchtigen. Wie aus den beiden folgenden Beispielsimplementierungen hervorgeht, ist es jedoch ohne Abstriche beim Ausspähungsschutz möglich, die Anzahl der voneinander unabhängigen Zufallszahlen für das Maskierungsübergangsverfahren 10 auf drei zu reduzieren.
- Wie bereits erwähnt, sind ferner diverse Abwandlungen des Maskierungsübergangsverfahrens 10 vorgesehen, bei den die Maskierungsübergänge 16, 18 und 20 - oder Teile davon - in anderer Reihenfolge als oben beschrieben ausgeführt werden.
- Im folgenden werden zwei weitere Ausführungsbeispiele des Maskierungsübergangsverfahrens anhand zweier beispielhafter Implementierungen dargestellt. Zur Vermeidung von Missverständnissen wird angemerkt, dass sich die im folgenden verwendeten Namenskonventionen von denen des oben beschriebenen Ausführungsbeispiels unterscheiden.
- Die erste beispielhafte Implementierung geht von den Eingangswerten x, y und z aus, wobei y und z boolesche Masken sind und x eine maskierte Repräsentation eines geheim zu haltenden Basiswertes d (der seinerseits nicht als Eingangswert zur Verfügung steht) ist. Somit gilt x = d ⊕ y ⊕ z. Es werden dann die folgenden Verfahrensschritte ausgeführt:
Wähle zufällige Verschleierungswerte r, s und a (Schritt 1) t ← s ⊕ r (Schritt 2) zs ← z ⊕ s (Schritt 3) xr ← x ⊕ r (Schritt 4) ztxr ← zs ⊕ x (Schritt 5) ztyr ← zs ⊕ y (Schritt 6) s11 ← ztxr - x (Schritt 7) s12 ← ztyr - y (Schritt 8) s13 ← s - z (Schritt 9) ra ← r ⊕ a (Schritt 10) s11ra ← s11 ⊕ ra (Schritt 11) s112ra ← s11ra ⊕ s12 (Schritt 12) r1ra ← s112ra ⊕ s13 (Schritt 13) r1a ← r1ra ⊕ r (Schritt 14) rlr ← r1ra ⊕ a (Schritt 15) s31 ← r1ra - r1r (Schritt 16) s32 ← ra - r (Schritt 17) s31a ← s31 ⊕ a (Schritt 18) alpha ← s31a ⊕ s32 (Schritt 19) yt ← y ⊕ t (Schritt 20) xry ← xr ⊕ y (Schritt 21) s21 ← xry - x (Schritt 22) s22 ← yt - s (Schritt 23) s23 ← r - y (Schritt 24) s21s ← s21 ⊕ s (Schritt 25) s212s ← s21s ⊕ s22 (Schritt 26) r2s ← s212s ⊕ s23 (Schritt 27) r2 ← r2s ⊕ s (Schritt 28) r2a ← r2 - alpha (Schritt 29) xm ← xr ⊕ s (Schritt 30) -
- Die gerade beschriebene erste Implementierung enthält 29 elementare Operationen. Allerdings unterscheidet sich die eingangsmaskierte Repräsentation x von der ausgangsmaskierten Repräsentation xm. Dies ist für viele Anwendungen akzeptabel. Für Anwendungen, in denen die maskierte Repräsentation durch den Maskierungsübergang nicht verändert werden soll, kann die folgende zweite Implementierung eingesetzt werden. Diese zweite Implementierung führt keine zusätzlichen Zwischenwerte ein und unterscheidet sich hinsichtlich der Benennung der Ein- und Ausgangswerte sowie hinsichtlich der Schritte 1, 2, 4, 10 und 21 von der ersten Implementierung.
- Für die zweite beispielhafte Implementierung sind die Eingangswerte xm, yt und z vorgesehen, wobei yt und z boolesche Masken sind und xm eine maskierte Repräsentation des geheim zu haltenden Basiswertes d ist. Somit gilt xm = d ⊕ yt ⊕ z. Es werden dann die folgenden Verfahrensschritte ausgeführt:
Wähle zufällige Verschleierungswerte y, s und a (Schritt 1') t ← yt ⊕ y (Schritt 2') zs ← z ⊕ s (Schritt 3') x ← xm ⊕ t (Schritt 4') ztxr ← zs ⊕ x (Schritt 5') ztyr ← zs ⊕ y (Schritt 6') s11 ← ztxr - x (Schritt 7') s12 ← ztyr - y (Schritt 8') s13 ← s - z (Schritt 9') r ← t ⊕ s (Schritt 10') ra ← r ⊕ a (Schritt 11') s11ra ← s11 ⊕ ra (Schritt 12') s112ra ← s11ra ⊕ s12 (Schritt 13') r1ra ← s112ra ⊕ s13 (Schritt 14') r1a ← r1ra ⊕ r (Schritt 15') rlr ← r1ra ⊕ a (Schritt 16') s31 ← r1ra - r1r (Schritt 17') s32 ← ra - r (Schritt 18') s31a ← s31 ⊕ a (Schritt 19') alpha ← s31a ⊕ s32 (Schritt 20') xr ← x ⊕ r (Schritt 21') xry ← xr ⊕ y (Schritt 22') s21 ← xry - x (Schritt 23') s22 ← yt - s (Schritt 24') s23 ← r - y (Schritt 25') s21s ← s21 ⊕ s (Schritt 26') s212s ← s21s ⊕ s22 (Schritt 27') r2s ← s212s ⊕ s23 (Schritt 28') r2 ← r2s ⊕ s (Schritt 29') r2a ← r2 - alpha (Schritt 30') -
- Durch numerische Simulation für alle Eingangswerte mit 4 Bit Breite wurde für die beiden gerade beschriebenen Implementierungen nachgewiesen, dass sie gegen Seitenkanalangriffe zweiter Ordnung resistent sind.
-
-
-
-
-
-
-
-
-
- Das Verfahren gemäß
Fig. 1 und die hier beschriebenen Ausführungsbeispiele, Ausführungsalternativen und Implementierungen sind dazu vorgesehen, von einem Prozessor eines tragbaren Datenträgers, insbesondere einer Chipkarte oder eines Chipmoduls, ausgeführt zu werden. Die Verfahren sind dazu in Form von Programmbefehlen implementiert, die in einem ROM oder einem EEPROM oder einem sonstigen Speicher des Datenträgers enthalten sind.
Claims (15)
- Verfahren zum ausspähungsgeschützten Übergang von einer booleschen Maskierung eines geheim zu haltenden Wertes (d) zu einer additiven Maskierung des geheim zu haltenden Wertes (d), wobei der geheim zu haltende Wert (d) in der booleschen Maskierung als eine mit einer ersten booleschen Maske (s 1) und einer zweiten booleschen Maske (s 2) maskierte Repräsentation (x) vorliegt, und wobei eine erste additive Maske (r 1a) und eine zweite additive Maske (r 2a) für den geheim zu haltenden Wert (d) bestimmt werden, und wobei- ein erster Maskierungsübergang (16) ausgeführt wird, bei dem die erste boolesche Maske (s 1) in die erste additive Maske (r 1a) umgewandelt wird, wobei die erste additive Maske (r 1a) eine maskierte Repräsentation einer der ersten booleschen Maske (s 1) entsprechenden additiven Maske (r 1) ist, die mit einem als boolesche Maske dienenden Verschleierungswert (a) maskiert ist,- ein zweiter Maskierungsübergang (18) ausgeführt wird, bei dem der Verschleierungswert (a) in einen additiven Korrekturwert (α) umgewandelt wird, und- ein dritter Maskierungsübergang (20) ausgeführt wird, bei dem die zweite boolesche Maske (s 2) in die zweite additive Maske (r 2a) umgewandelt wird.
- Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der als boolesche Maske dienende Verschleierungswert (a) zufällig bestimmt wird.
- Verfahren nach Anspruch 1 oder Anspruch 2, dadurch gekennzeichnet, dass mindestens zwei weitere zufällige Verschleierungswerte (z 1, ...) herangezogen werden, und dass jeder Maskierungsübergang (16, 18, 20) mindestens einen dieser weiteren zufälligen Verschleierungswerte (z 1, ...) oder einen davon abgeleiteten Wert verwendet.
- Verfahren nach Anspruch 1 oder Anspruch 2, dadurch gekennzeichnet, dass mindestens zwei weitere zufällige Verschleierungswerte (z 1, ...) herangezogen werden, und dass sowohl der erste als auch der dritte Maskierungsübergang (16, 20) jeweils mindestens zwei dieser weiteren zufälligen Verschleierungswerte (z 1, ...) oder davon abgeleitete Werte verwenden.
- Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass der erste Maskierungsübergang (16) mit dem geheim zu haltenden Wert (d) als Basiswert ausgeführt wird.
- Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass der zweite Maskierungsübergang (18) mit einem Basiswert ausgeführt wird, der sich aus einer der ersten booleschen Maske (s 1) entsprechenden additiven Maske (r 1) ergibt.
- Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass der dritte Maskierungsübergang (20) mit einem Basiswert ausgeführt wird, der sich durch eine additive Maskierung des geheim zu haltenden Wertes (d) mit einer der ersten booleschen Maske (s 1) entsprechenden additiven Maske (r 1) ergibt.
- Verfahren nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, dass der dritte Maskierungsübergang (20) zumindest teilweise vor dem ersten Maskierungsübergang (16) oder zumindest teilweise vor dem zweiten Maskierungsübergang (18) ausgeführt wird.
- Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, dass die zweite additive Maske (r 2a) dadurch bestimmt wird, dass der additive Korrekturwert (α) in einer additiven Operation auf eine der zweiten booleschen Maske (s 2) entsprechende additive Maske (r 2) angewendet wird.
- Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, dass die zweite additive Maske der zweiten booleschen Maske (s 2) entspricht, und dass der additive Korrekturwert (α) als weiteres Verfahrensergebnis bereitgestellt wird.
- Verfahren nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, dass das Verfahren zwischen zwei Abschnitte (12,14) einer kryptographischen Berechnung eingebettet ist, wobei im ersten Abschnitt (12) die maskierte Repräsentation (x) durch mindestens eine Operation erzeugt oder verarbeitet wird, die mit der booleschen Maskierung verträglich ist, und im zweiten Abschnitt (14) die maskierte Repräsentation (x) durch mindestens eine Operation weiterverarbeitet wird, die mit der arithmetischen Maskierung verträglich ist.
- Verfahren nach einem der Ansprüche 1 bis 11, dadurch gekennzeichnet, dass mindestens einer des ersten, zweiten und dritten Maskierungsübergangs (16, 18, 20) gemäß einem Verfahren ausgeführt wird, das für sich gesehen gegen Seitenkanalangriffe erster Ordnung, nicht aber gegen Seitenkanalangriffe zweiter Ordnung, geschützt ist.
- Verfahren nach einem der Ansprüche 1 bis 12, dadurch gekennzeichnet, dass das Verfahren zum Schutz gegen Seitenkanalangriffe zweiter Ordnung dient.
- Computerprogrammprodukt mit einer Vielzahl von Programmbefehlen, die mindestens einen Prozessor dazu veranlassen, ein Verfahren nach einem der Ansprüche 1 bis 13 auszuführen.
- Vorrichtung, insbesondere tragbarer Datenträger oder Chipmodul, mit mindestens einem Prozessor und mindestens einem Speicher, wobei die Vorrichtung dazu eingerichtet ist, ein Verfahren nach einem der Ansprüche 1 bis 13 auszuführen.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102017002153.8A DE102017002153A1 (de) | 2017-03-06 | 2017-03-06 | Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung |
PCT/EP2018/000081 WO2018162115A1 (de) | 2017-03-06 | 2018-02-28 | Übergang von einer booleschen maskierung zu einer arithmetischen maskierung |
Publications (2)
Publication Number | Publication Date |
---|---|
EP3593483A1 EP3593483A1 (de) | 2020-01-15 |
EP3593483B1 true EP3593483B1 (de) | 2021-04-28 |
Family
ID=61599083
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP18709467.7A Active EP3593483B1 (de) | 2017-03-06 | 2018-02-28 | Übergang von einer booleschen maskierung zu einer arithmetischen maskierung |
Country Status (4)
Country | Link |
---|---|
US (1) | US11386239B2 (de) |
EP (1) | EP3593483B1 (de) |
DE (1) | DE102017002153A1 (de) |
WO (1) | WO2018162115A1 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3134909A1 (fr) | 2022-04-25 | 2023-10-27 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | Protection contre les attaques par canal auxiliaire a l’aide d’un masquage carre |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102018107114A1 (de) * | 2018-03-26 | 2019-09-26 | Infineon Technologies Ag | Seitenkanalgehärtete Operation |
EP3874364A4 (de) * | 2018-10-29 | 2022-08-03 | Cryptography Research, Inc. | Zeitkonstante sichere umwandlung von arithmetik in boolesche maske |
US11507699B2 (en) * | 2019-09-27 | 2022-11-22 | Intel Corporation | Processor with private pipeline |
US11632231B2 (en) * | 2020-03-05 | 2023-04-18 | Novatek Microelectronics Corp. | Substitute box, substitute method and apparatus thereof |
US11907268B2 (en) * | 2021-02-10 | 2024-02-20 | Bank Of America Corporation | System for identification of obfuscated electronic data through placeholder indicators |
DE102021003275B3 (de) | 2021-06-24 | 2022-07-14 | Giesecke+Devrient Mobile Security Gmbh | Verfahren zur Berechnung eines Übergangs von einer booleschen zu einer arithmetischen Maskierung |
US11954213B2 (en) | 2021-09-13 | 2024-04-09 | International Business Machines Corporation | Obfuscating intelligent data while preserving reserve values |
Family Cites Families (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2820914A1 (fr) | 2001-02-15 | 2002-08-16 | Bull Cp8 | Procede de securisation d'un ensemble electronique mettant en oeuvre en algorithme cryptographique utilisant des operations booleennes et des operations arithmetiques, et systeme embarque correspondant |
FR2856537B1 (fr) * | 2003-06-18 | 2005-11-04 | Gemplus Card Int | Procede de contre-mesure par masquage de l'accumulateur dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique |
DE10341096A1 (de) * | 2003-09-05 | 2005-03-31 | Giesecke & Devrient Gmbh | Übergang zwischen maskierten Repräsentationen eines Wertes bei kryptographischen Berechnungen |
KR100585119B1 (ko) * | 2004-01-07 | 2006-06-01 | 삼성전자주식회사 | 암호화 장치, 암호화 방법 및 그 기록매체 |
US7899190B2 (en) * | 2004-04-16 | 2011-03-01 | Research In Motion Limited | Security countermeasures for power analysis attacks |
DE102004023902A1 (de) | 2004-05-13 | 2005-12-01 | Giesecke & Devrient Gmbh | Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung |
WO2006058561A1 (en) * | 2004-12-01 | 2006-06-08 | Telecom Italia S.P.A. | Method and related device for hardware-oriented conversion between arithmetic and boolean random masking |
DE102004061312B4 (de) * | 2004-12-20 | 2007-10-25 | Infineon Technologies Ag | Vorrichtung und Verfahren zum Detektieren eines potentiellen Angriffs auf eine kryptographische Berechnung |
KR100725169B1 (ko) * | 2005-01-27 | 2007-06-04 | 삼성전자주식회사 | 전력 분석 공격에 안전한 논리 연산 장치 및 방법 |
US7610628B2 (en) * | 2005-03-01 | 2009-10-27 | Infineon Technologies Ag | Apparatus and method for calculating a representation of a result operand |
EP1840732A1 (de) * | 2006-03-31 | 2007-10-03 | Axalto SA | Schutz vor Seitenkanalangriffen |
US7631810B2 (en) | 2006-12-19 | 2009-12-15 | Vivotech, Inc. | Systems, methods, and computer program products for supporting multiple applications and multiple instances of the same application on a wireless smart device |
FR2917197B1 (fr) * | 2007-06-07 | 2009-11-06 | Thales Sa | Procede de masquage du resultat d'une operation de multiplication modulaire et dispositif associe. |
US20090016523A1 (en) * | 2007-07-12 | 2009-01-15 | Atmel Corporation | Masking and Additive Decomposition Techniques for Cryptographic Field Operations |
EP2195761B1 (de) * | 2007-10-01 | 2013-04-03 | Research In Motion Limited | Substitutionstabellenmaskierung für kryptografische prozesse |
US8091139B2 (en) * | 2007-11-01 | 2012-01-03 | Discretix Technologies Ltd. | System and method for masking arbitrary Boolean functions |
WO2009074726A1 (fr) * | 2007-12-13 | 2009-06-18 | Oberthur Technologies | Procede de traitement cryptographique de donnees, notamment a l'aide d'une boite s, dispositif et programme associes |
FR2941342B1 (fr) * | 2009-01-20 | 2011-05-20 | Groupe Des Ecoles De Telecommunications Get Ecole Nat Superieure Des Telecommunications Enst | Circuit de cryptographie protege contre les attaques en observation, notamment d'ordre eleve. |
JP4837058B2 (ja) * | 2009-03-10 | 2011-12-14 | 株式会社東芝 | 演算装置及びプログラム |
KR101566408B1 (ko) * | 2009-03-13 | 2015-11-05 | 삼성전자주식회사 | 불 마스크와 산술 마스크의 변환 회로 및 변환 방법 |
KR101026439B1 (ko) * | 2009-07-20 | 2011-04-07 | 한국전자통신연구원 | Seed 암호화에서 차분 전력 분석 공격을 방어하기 위한 마스킹 방법 |
US8615078B2 (en) * | 2009-08-21 | 2013-12-24 | Electronics And Telecommunications Research Institute | Method and apparatus for processing F-function in seed encryption system |
FR2950721B1 (fr) * | 2009-09-29 | 2011-09-30 | Thales Sa | Procede d'execution d'un algorithme de protection d'un dispositif electronique par masquage affine et dispositif associe |
FR2952773B1 (fr) * | 2009-11-13 | 2012-07-20 | Inst Telecom Telecom Paristech | Circuit electronique de faible complexite protege par masquage personnalise |
US8667301B2 (en) * | 2010-04-01 | 2014-03-04 | Apple Inc. | Obfuscating transformations on data array content and addresses |
US8707053B2 (en) * | 2011-02-09 | 2014-04-22 | Apple Inc. | Performing boolean logic operations using arithmetic operations by code obfuscation |
US9584359B2 (en) * | 2011-12-12 | 2017-02-28 | International Business Machines Corporation | Distributed storage and computing of interim data |
US9009567B2 (en) * | 2011-12-12 | 2015-04-14 | Cleversafe, Inc. | Encrypting distributed computing data |
DE102012201164B4 (de) * | 2012-01-26 | 2017-12-07 | Infineon Technologies Ag | Vorrichtung und verfahren zur erzeugung eines nachrichtenauthentifizierungscodes |
EP2634953A1 (de) * | 2012-03-02 | 2013-09-04 | Gemalto SA | Gegenmaßnahmeverfahren gegen Seitenkanalanalyse auf kryptografische Algorithmen mithilfe Boolescher Operationen und arithmetischer Operationen |
US20140006017A1 (en) * | 2012-06-29 | 2014-01-02 | Qualcomm Incorporated | Systems, methods, apparatus, and computer-readable media for generating obfuscated speech signal |
DE102012018924A1 (de) * | 2012-09-25 | 2014-03-27 | Giesecke & Devrient Gmbh | Seitenkanalgeschützte Maskierung |
US9425959B1 (en) * | 2012-10-03 | 2016-08-23 | Altera Corporation | Security variable scrambling |
US9143325B2 (en) * | 2012-12-14 | 2015-09-22 | Microsoft Technology Licensing, Llc | Masking with shared random bits |
US8983068B2 (en) * | 2013-03-06 | 2015-03-17 | Infineon Technologies Ag | Masked nonlinear feedback shift register |
US9959429B2 (en) * | 2013-03-15 | 2018-05-01 | Cryptography Research, Inc. | Asymmetrically masked multiplication |
EP2884387B1 (de) * | 2013-12-13 | 2016-09-14 | Thomson Licensing | Effizienter modularer Zusatz mit Resistenz gegen Seitenkanalangriffe |
WO2016094195A2 (en) * | 2014-12-08 | 2016-06-16 | Cryptography Research, Inc. | Multiplicative masking for cryptographic operations |
KR101586811B1 (ko) * | 2015-03-31 | 2016-01-19 | 국민대학교산학협력단 | Hight 부채널 분석에 대응하기 위한 장치 및 방법 |
DE112016002165T5 (de) * | 2015-06-10 | 2018-02-15 | Ccl Secure Pty Ltd | Optische Vorrichtung mit einer versteckten Abbildung |
US9830326B2 (en) * | 2015-06-15 | 2017-11-28 | Ca, Inc. | Identifying data offsets using binary masks |
US10097342B2 (en) * | 2015-07-30 | 2018-10-09 | Nxp B.V. | Encoding values by pseudo-random mask |
ITUB20152708A1 (it) * | 2015-07-31 | 2017-01-31 | St Microelectronics Srl | Procedimento per operare una crittografia con mascheratura di dati sensibili, apparato di crittografia e prodotto informatico corrispondente |
US10333699B1 (en) * | 2015-09-30 | 2019-06-25 | Cryptography Research, Inc. | Generating a pseudorandom number based on a portion of shares used in a cryptographic operation |
EP3208789B1 (de) * | 2016-02-22 | 2020-08-05 | Eshard | Verfahren zum schutz einer schaltung gegen eine seitenkanalanalyse |
WO2017152056A1 (en) * | 2016-03-03 | 2017-09-08 | Cryptography Research, Inc. | Converting a boolean masked value to an arithmetically masked value for cryptographic operations |
US20170272165A1 (en) * | 2016-03-17 | 2017-09-21 | Mohammad Mehdi Mansouri Rad | Spatial Obfuscation of Optical Signal for Secure Data Transmission |
DE102016007189A1 (de) | 2016-06-14 | 2017-12-14 | Giesecke+Devrient Mobile Security Gmbh | Ressourcenbeschränktes Java Card Device |
CN107547195A (zh) * | 2016-06-28 | 2018-01-05 | 埃沙尔公司 | 免受侧信道分析的保护方法和设备 |
-
2017
- 2017-03-06 DE DE102017002153.8A patent/DE102017002153A1/de not_active Withdrawn
-
2018
- 2018-02-28 WO PCT/EP2018/000081 patent/WO2018162115A1/de unknown
- 2018-02-28 EP EP18709467.7A patent/EP3593483B1/de active Active
- 2018-02-28 US US16/491,896 patent/US11386239B2/en active Active
Non-Patent Citations (1)
Title |
---|
None * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3134909A1 (fr) | 2022-04-25 | 2023-10-27 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | Protection contre les attaques par canal auxiliaire a l’aide d’un masquage carre |
EP4270855A1 (de) | 2022-04-25 | 2023-11-01 | Commissariat à l'énergie atomique et aux énergies alternatives | Schutz gegen seitenkanalangriffe mit quadratischer maskierung |
Also Published As
Publication number | Publication date |
---|---|
WO2018162115A1 (de) | 2018-09-13 |
EP3593483A1 (de) | 2020-01-15 |
DE102017002153A1 (de) | 2018-09-06 |
US11386239B2 (en) | 2022-07-12 |
US20200034573A1 (en) | 2020-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3593483B1 (de) | Übergang von einer booleschen maskierung zu einer arithmetischen maskierung | |
DE102011088502B3 (de) | Verfahren und Vorrichtung zur Absicherung von Blockchiffren gegen Template-Attacken | |
EP3218893B1 (de) | Gehärtete white box implementierung | |
EP2901611B1 (de) | Seitenkanalgeschützte maskierung | |
EP1664979B1 (de) | Übergang zwischen maskierten repräsentationen eines wertes bei kryptographischen berechnungen | |
EP3387636B1 (de) | Kryptoalgorithmus mit schlüsselabhängigem maskiertem rechenschritt (sbox-aufruf) | |
EP1596527B1 (de) | Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung | |
EP1615098B1 (de) | Ausspähungsgeschütztes Berechnen eines maskierten Ergebniswertes | |
DE60213327T2 (de) | Auf einem Blockverschlüsselungsalgorithmus mit Rundenwiederholung basiertes Verfahren und Vorrichtung zur Ausführung des Verfahrens | |
EP3369205B1 (de) | Alternative darstellung des krypto-algorithmus des | |
EP3804209B1 (de) | Verfahren mit safe-error-abwehrmassnahme | |
DE102012015158A1 (de) | Gegen Ausspähen geschützte kryptographische Berechnung | |
DE102004032893B4 (de) | Ausspähungsgeschütztes Berechnen eines maskierten Ergebniswertes | |
DE102015209120A1 (de) | Recheneinrichtung und Betriebsverfahren hierfür | |
DE102014004378A1 (de) | Speichereffiziente seitenkanalgeschützte Maskierung | |
EP2128754B1 (de) | Sichere sliding window exponentiation | |
EP2466782B1 (de) | Verfahren zum geschützten Ausführen einer kryptographischen Berechnung | |
DE10222212A1 (de) | Ausspähungsgeschützte modulare Inversion | |
EP1760929B1 (de) | Geschütztes kryptographisches Verfahren | |
EP1518165B1 (de) | Berechnung eines vielfachen eines gruppenelements für kryptographische zwecke | |
WO2007006649A1 (de) | Verfahren zur seitenkanalangriffsresistenten vervielfachung | |
DE102004052196B4 (de) | Ausspähungsgeschütztes Ausführen von Operationen unter Verwendung einer maskenunterstützenden Recheneinheit | |
DE102014001647A1 (de) | Operation basierend auf zwei Operanden |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: UNKNOWN |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
17P | Request for examination filed |
Effective date: 20191007 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
AX | Request for extension of the european patent |
Extension state: BA ME |
|
DAV | Request for validation of the european patent (deleted) | ||
DAX | Request for extension of the european patent (deleted) | ||
GRAP | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOSNIGR1 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: GRANT OF PATENT IS INTENDED |
|
RIC1 | Information provided on ipc code assigned before grant |
Ipc: G06F 7/575 20060101ALI20201029BHEP Ipc: H04L 9/00 20060101AFI20201029BHEP |
|
INTG | Intention to grant announced |
Effective date: 20201125 |
|
GRAS | Grant fee paid |
Free format text: ORIGINAL CODE: EPIDOSNIGR3 |
|
GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE PATENT HAS BEEN GRANTED |
|
AK | Designated contracting states |
Kind code of ref document: B1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: FG4D Free format text: NOT ENGLISH |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: EP |
|
REG | Reference to a national code |
Ref country code: AT Ref legal event code: REF Ref document number: 1388359 Country of ref document: AT Kind code of ref document: T Effective date: 20210515 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R096 Ref document number: 502018005002 Country of ref document: DE |
|
REG | Reference to a national code |
Ref country code: IE Ref legal event code: FG4D Free format text: LANGUAGE OF EP DOCUMENT: GERMAN |
|
REG | Reference to a national code |
Ref country code: LT Ref legal event code: MG9D |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: FI Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20210428 Ref country code: HR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20210428 Ref country code: LT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20210428 Ref country code: NL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20210428 Ref country code: BG Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20210728 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: IS Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20210828 Ref country code: GR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20210729 Ref country code: NO Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20210728 Ref country code: PL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20210428 Ref country code: LV Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20210428 Ref country code: PT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20210830 Ref country code: SE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20210428 Ref country code: RS Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20210428 |
|
REG | Reference to a national code |
Ref country code: NL Ref legal event code: MP Effective date: 20210428 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: RO Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20210428 Ref country code: CZ Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20210428 Ref country code: DK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20210428 Ref country code: SM Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20210428 Ref country code: SK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20210428 Ref country code: ES Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20210428 Ref country code: EE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20210428 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R097 Ref document number: 502018005002 Country of ref document: DE |
|
PLBE | No opposition filed within time limit |
Free format text: ORIGINAL CODE: 0009261 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT |
|
26N | No opposition filed |
Effective date: 20220131 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: IS Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20210828 Ref country code: AL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20210428 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: IT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20210428 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: MC Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20210428 |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: PL |
|
REG | Reference to a national code |
Ref country code: BE Ref legal event code: MM Effective date: 20220228 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: LU Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20220228 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: LI Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20220228 Ref country code: IE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20220228 Ref country code: CH Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20220228 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: BE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20220228 |
|
P01 | Opt-out of the competence of the unified patent court (upc) registered |
Effective date: 20230520 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R081 Ref document number: 502018005002 Country of ref document: DE Owner name: GIESECKE+DEVRIENT EPAYMENTS GMBH, DE Free format text: FORMER OWNER: GIESECKE+DEVRIENT MOBILE SECURITY GMBH, 81677 MUENCHEN, DE |
|
REG | Reference to a national code |
Ref country code: AT Ref legal event code: MM01 Ref document number: 1388359 Country of ref document: AT Kind code of ref document: T Effective date: 20230228 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: AT Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20230228 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: MK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20210428 Ref country code: CY Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20210428 Ref country code: AT Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20230228 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: DE Payment date: 20240229 Year of fee payment: 7 Ref country code: GB Payment date: 20240222 Year of fee payment: 7 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: HU Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT; INVALID AB INITIO Effective date: 20180228 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: FR Payment date: 20240222 Year of fee payment: 7 |