DE102012011727A1 - Method for performing cryptographic computation of keys, involves supplying key or partial key to processor from key register under cancelling operation, and performing cryptographic computation using key or partial key - Google Patents

Method for performing cryptographic computation of keys, involves supplying key or partial key to processor from key register under cancelling operation, and performing cryptographic computation using key or partial key Download PDF

Info

Publication number
DE102012011727A1
DE102012011727A1 DE201210011727 DE102012011727A DE102012011727A1 DE 102012011727 A1 DE102012011727 A1 DE 102012011727A1 DE 201210011727 DE201210011727 DE 201210011727 DE 102012011727 A DE102012011727 A DE 102012011727A DE 102012011727 A1 DE102012011727 A1 DE 102012011727A1
Authority
DE
Germany
Prior art keywords
key
processor
register
subkey
round
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
DE201210011727
Other languages
German (de)
Inventor
Sven Bauer
Markus Bockes
Michael Lamla
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Giesecke and Devrient GmbH
Original Assignee
Giesecke and Devrient GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Giesecke and Devrient GmbH filed Critical Giesecke and Devrient GmbH
Priority to DE201210011727 priority Critical patent/DE102012011727A1/en
Publication of DE102012011727A1 publication Critical patent/DE102012011727A1/en
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/004Countermeasures against attacks on cryptographic mechanisms for fault attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation

Abstract

The method involves computing a key (K) that is provided in a key register (R). The key in the key register is falsified by a falsification operation (OP). The key or a partial key (SKi) of the key is supplied to a processor (P) from the key register under cancelling operation (OP-1) of the falsification operation. Cryptographic computation is performed using the key or the partial key, where the key comprises a set of key bits (k). The key bits are brought into a randomly dispersed order and cyclically shifted around a predetermined number of bit positions by the falsification operation. An independent claim is also included for a processor arrangement.

Description

Die Erfindung betrifft ein gegen Safe Error Angriffe geschütztes Verfahren zum Durchführen einer kryptographischen Berechnung.The invention relates to a method protected against safe-error attacks for carrying out a cryptographic calculation.

Kryptographische Berechnungen werden von einem Prozessor durchgeführt, z. B. von einem allgemeinen Prozessor (CPU), oder von einem Krypto-Coprozessor, der einem allgemeinen Prozessor zugeordnet ist. Der geheime Schlüssel für eine durch den Prozessor (allgemeinen Prozessor oder Krypto-Coprozessor) auszuführende Berechnung wird in einem dem Prozessor zugeordneten Schlüsselregister bereitgehalten. Insbesondere Chipkarten, z. B. für Zahlungsverkehr- oder Mobilfunkanwendungen, haben häufig Prozessoren mit Krypto-Coprozessoren. Viele Chipkarten, insbesondere solche für Zahlungsverkehr- oder Mobilfunkanwendungen, haben speziell für die Algorithmen DES oder AES (s. u.) ausgelegte Krypto-Coprozessoren.Cryptographic calculations are performed by a processor, e.g. From a general processor (CPU), or from a crypto-coprocessor associated with a general processor. The secret key for a computation to be executed by the processor (general processor or crypto coprocessor) is held in a key register associated with the processor. In particular, smart cards, z. For example, for payment or mobile applications, often have processors with crypto coprocessors. Many smart cards, in particular those for payment or mobile applications, have crypto-coprocessors designed especially for the algorithms DES or AES (see below).

Durch eine kryptographische Berechnung werden Eingangsdaten unter Verwendung eines geheimen Schlüssels zu Ausgangsdaten verarbeitet, z. B. Klartextdaten mit einem Schlüssel zu Chiffredaten verschlüsselt oder umgekehrt Chiffredaten mit einem Schlüssel zu Klartextdaten entschlüsselt. Beispiele für symmetrische (Verschlüsselungs-Schlüssel = Entschlüsselungs-Schlüssel) kryptographische Berechnungen sind die Algorithmen DES (Data Encryption Standard) und AES (Advanced Encryption Standard).Through a cryptographic calculation, input data is processed into output data using a secret key, e.g. For example, plain text data is encrypted with a key to cipher data or, conversely, cipher data is decrypted with a key to plain text data. Examples of symmetric (encryption key = decryption key) cryptographic calculations are the algorithms DES (Data Encryption Standard) and AES (Advanced Encryption Standard).

Bei Algorithmen, die mehrere Runden (Teilberechnungen) umfassen, z. B. DES, AES, werden die Eingangsdaten in Teildaten und der Schlüssel in Teilschlüssel (Subkeys) zerlegt und in jeder Runde Teildaten mit einem Teilschlüssel (Subkeys) verarbeitet (verschlüsselt oder entschlüsselt). Zu Beginn des Algorithmus wird der komplette Schlüssel als Originalschlüssel in ein Schlüsselregister geladen. Zu Beginn jeder Runde wird durch einen Teilschlüsselgenerator (Subkey-Generator) ein Teilschlüssel (Subkey) für die jeweilige Runde abgeleitet. Der Teilschlüssel einer aktuellen Runde wird entweder aus dem Originalschlüssel oder aus dem Teilschlüssel der vorangehenden Runde abgeleitet. Der Teilschlüssel der aktuellen Runde wird in ein Teilregister (Subkey-Register) geladen, während der Durchführung der Runde im Teilregister (Subkey-Register) gehalten und nach der Runde gelöscht oder mit dem Teilschlüssel/Subkey für die nächste Runde überschrieben. Das Teilregister kann identisch sein mit dem Schlüsselregister, in das zu Beginn des Algorithmus der Originalschlüssel geladen wurde, so dass für den Algorithmus nur ein einziges Schlüsselregister benötigt wird und ggf. verwendet wird. Der Schlüssel im Schlüsselregister wird dabei vor Beginn jeder Runde neu überschrieben, und insbesondere wird vor Beginn der ersten Runde der Originalschlüssel überschrieben.For algorithms that include multiple rounds (sub-calculations), e.g. For example, DES, AES, the input data is divided into sub-data and the key into subkeys and processed in each round sub-data with a subkeys (encrypted or decrypted). At the beginning of the algorithm, the complete key is loaded as an original key into a key register. At the beginning of each round, a subkey generator (subkey generator) is used to derive a subkey for each round. The subkey of a current round is derived either from the original key or from the subkey of the previous round. The sub-key of the current round is loaded into a sub-register (sub-key register), held in the sub-register (sub-key register) during the round, and deleted after the round, or overwritten with the sub-key / sub-key for the next round. The sub-register may be identical to the key register in which the original key was loaded at the beginning of the algorithm, so that only a single key register is needed for the algorithm and possibly used. The key in the key register will be rewritten before the start of each round and, in particular, the original key will be overwritten before the start of the first round.

Der in einer kryptographischen Berechnung verarbeitete kryptographische Schlüssel soll geheim bleiben. Mittels DFA-Angriffen (DFA = Differential Fault Analysis) werden gezielt Fehler in die Berechnung injiziert. Aus der resultierenden Störung des Rechenergebnisses der Berechnung wird auf den Schlüssel geschlossen.The cryptographic key processed in a cryptographic calculation should remain secret. By means of DFA attacks (DFA = Differential Fault Analysis), specific errors are injected into the calculation. From the resulting disturbance of the calculation result of the calculation, the key is closed.

Eine Spezialform von DFA-Angriffen bilden die Safe Error Angriffe, bei denen ein Angreifer gezielt nacheinander einzelne Schlüsselbits eines in einem Schlüsselregister für eine Berechnung abgelegten Schlüssels manipuliert und aus der resultierenden Beeinflussung des Rechenergebnisses den Schlüssel Bit für Bit rekonstruiert. Als Störung kann beispielsweise ein gezielter Lichtblitz oder Strompuls an einem gezielt ausgewählten Ort auf dem Chip, in dem der Prozessor bzw. das Schlüsselregister implementiert ist, vorgesehen sein. Der Schlüssel liegt in Binärform vor, d. h. als Abfolge von Bits mit Wert 1 oder 0. Der Angreifer führt, um den Wert eines einzelnen Schlüsselbits zu ermitteln, zwei Berechnungen durch, eine ungestörte, und eine, bei der das einzelne Schlüsselbit selektiv gestört wird, und vergleicht die Rechenergebnisse von ungestörter und gestörter Berechnung. Der Angreifer kann, je nach Details des rechnenden Prozessors, entweder wissen oder selbst festlegen, in welche Richtung gestörte Bits kippen, nach 1 oder nach 0, also auf welchen Wert, 1 oder 0, durch eine Störung Bits gesetzt werden. Führt das Stören eines Bits beispielsweise dazu, dass sich bei dem Bit der Wert Null einstellt, und die Rechenergebnisse von ungestörter und gestörter Berechnung sind gleich, dann hatte das ungestörte Bit von vornherein bereits den Wert Null. Der ausgespähte Bitwert ist Null. Unterscheiden sich dagegen die Rechenergebnisse von ungestörter und gestörter Berechnung, so wurde im ungestörten Fall mit Bitwert Eins gerechnet, im gestörten Fall mit Bitwert Null, und das ungestörte Bit hatte den Wert Eins. Der ausgespähte Bitwert ist Eins.A special form of DFA attacks are the Safe Error attacks, in which an attacker successively manipulates individual key bits of a key stored in a key register for a calculation and reconstructs the key bit by bit from the resulting influence on the result of the calculation. By way of example, a targeted light flash or current pulse at a specifically selected location on the chip in which the processor or the key register is implemented can be provided as a disturbance. The key is in binary form, d. H. as a sequence of bits of value 1 or 0. The attacker performs two calculations, one undisturbed, and one in which the single key bit is selectively disturbed to determine the value of a single key bit, and compares the computational results of undisturbed and disturbed ones Calculation. Depending on the details of the computing processor, the attacker can either know or decide for himself in which direction faulty bits will tilt, after 1 or after 0, that is, at which value, 1 or 0, bits are set by a fault. For example, if the disturbing of a bit causes the bit to become zero, and the results of undisturbed and disturbed computation are equal, then the undisturbed bit is already zero in the first place. The spotted bit value is zero. On the other hand, if the results of the calculation differ from undisturbed and disturbed calculations, then in the undisturbed case bit value one was calculated, in the disturbed case with bit value zero, and the undisturbed bit had the value one. The spiked bit value is one.

Der Erfindung liegt die Aufgabe zu Grunde, ein gegen Safe Error Angriffe geschütztes Verfahren zum Durchführen einer kryptographischen Berechnung zu schaffen.The invention is based on the object to provide a protected against Safe Error attacks method for performing a cryptographic calculation.

Die Aufgabe wird gelöst durch ein Verfahren nach Anspruch 1. Vorteilhafte Ausgestaltungen der Erfindung sind in den abhängigen Ansprüchen angegeben.The object is achieved by a method according to claim 1. Advantageous embodiments of the invention are specified in the dependent claims.

Das Verfahren nach Anspruch 1 ist zur Ausführung in einem Prozessor, z. B. CPU, Krypto-Coprozessor, Kryptobeschleuniger, eingerichtet und ist weiter eingerichtet zum Durchführen einer kryptographischen Berechnung, unter Verwendung eines kryptographischen Schlüssels, wobei zur Durchführung der Berechnung der Schlüssel in einem Schlüsselregister bereitgestellt wird. Das Verfahren zeichnet sich dadurch aus, dass der Schlüssel durch eine Verfälschungsoperation verfälscht wird und verfälscht im Schlüsselregister bereitgestellt wird; dass der Schlüssel oder zumindest ein Teilschlüssel des Schlüssels unter Rücknahme der Verfälschungsoperation aus dem Schlüsselregister dem Prozessor zugeführt wird; und dass die Berechnung mit dem unverfälschten Schlüssel oder Teilschlüssel durchgeführt wird.The method of claim 1 is for execution in a processor, e.g. CPU, crypto-coprocessor, crypto-accelerator, and is further adapted to perform a cryptographic computation using a cryptographic key, the key being provided in a key register for performing the calculation. The method is characterized by the fact that the key is corrupted by a falsification operation and provided in a falsified manner in the key register; that the key, or at least a partial key of the key, is returned to the processor from the key register by withdrawing the falsification operation; and that the calculation is performed with the unadorned key or subkey.

Führt ein Angreifer einen Safe Error Angriff an einem ausgesuchten Schlüsselbit am Schlüsselregister durch, kann er das ausgesuchte Schlüsselbit im Schlüsselregister manipulieren. Da der Schlüssel verfälscht im Schlüsselregister bereitgestellt ist, hingegen in die Berechnung, der unverfälschte Schlüssel oder Teilschlüssel eingeht, geht der direkte Zusammenhang zwischen manipuliertem Schlüsselregister und Verfälschung der resultierenden Berechnung verloren. Somit kann aus der Verfälschung des Ergebnisses der Berechnung zwar ein Schlüsselbit erspäht werden. Der Angreifer weiß jedoch nicht, welches Schlüsselbit er erspäht hat. Somit kann nicht auf den zu Anfang der Berechnung bereitgestellten Schlüssel geschlossen werden.If an attacker performs a Safe Error attack on a selected key bit at the key register, he can manipulate the selected key bit in the key register. However, since the key is forged in the key register, whereas the calculation involving the unadorned key or subkey is lost, the direct relationship between the manipulated key register and the falsification of the resulting computation is lost. Thus, although a key bit can be detected from the falsification of the result of the calculation. The attacker does not know which key bit he has spied. Thus, the key provided at the beginning of the calculation can not be deduced.

Daher ist gemäß Anspruch 1 ein gegen Safe Error Angriffe geschütztes Verfahren zum Durchführen einer kryptographischen Berechnung geschaffen.Therefore, according to claim 1, a protected against Safe Error attacks method for performing a cryptographic calculation is provided.

Der Schlüssel wird beispielsweise in einem nichtflächigen Speicher bereitgehalten und unter Anwendung der Verfälschungsoperation aus dem nichtflüchtigen Speicher in das Schlüsselregister geladen.For example, the key is held in non-planar memory and loaded from the non-volatile memory to the key register using the corrupt operation.

Wahlweise ist als Berechnung eine Runde eines mehrrundigen kryptographischen Verfahrens wie z. B. DES oder AES oder dergleichen vorgesehen und als unverfälschter Schlüssel, der dem Prozessor zugeführt wird, ein aus dem verfälscht im Schlüsselregister bereitgestellten Schlüssel abgeleiteter Schlüssel der aktuellen Runde vorgesehen. D. h., wenn aus einem im Schlüsselregister bereitstehenden Schlüssel ein Teilschlüssel für die aktuelle Runde des kryptographischen Verfahrens abgeleitet wird, wird die im Schlüsselregister vorliegende Verfälschung zurückgenommen. Die Runde wird mit dem so gewonnen unverfälschten Teilschlüssel (Rundenschlüssel) gerechnet.Optionally, the calculation is a round of a multi-pronged cryptographic method such. B. DES or AES or the like provided and provided as an unadvertent key which is supplied to the processor, a key derived from the key provided in the key register key key of the current round. In other words, if a partial key for the current round of the cryptographic method is derived from a key provided in the key register, the corruption present in the key register is withdrawn. The round is calculated with the thus obtained unadulterated partial key (round key).

Wahlweise ist als verfälscht im Schlüsselregister bereitgestellter Schlüssel ein zu Beginn der kryptographischen Berechnung bereitgestellter Schlüssel vorgesehen, d. h. der Originalschlüssel. Hierbei ist also der Originalschlüssel verfälscht im Schlüsselregister abgelegt, und bei der Zuführung des Originalschlüssels oder eines aus dem Originalschlüssel abgeleiteten Schlüssels an den Prozessor wird die Verfälschung zurückgenommen. Als abgeleiteter Schlüssel ist beispielsweise ein Teilschlüssel einer aktuellen Runde eines mehrrundigen Verfahrens vorgesehen. D. h. bei Ableitung des aktuellen Teilschlüssels (Rundenschlüssels) aus dem verfälscht im Schlüsselregister liegenden Originalschlüssel wird die Verfälschung zurückgenommen und der Teilschlüssel in unverfälschter Form dem Prozessor zugeführt, der mit dem unverfälschten Teilschlüssel die aktuelle Runde berechnet.Optionally, a key provided at the beginning of the cryptographic computation is provided as a key provided in a falsified manner in the key register, i. H. the original key. In this case, the original key is stored in the key register in a falsified manner, and the adulteration is withdrawn when the original key or a key derived from the original key is supplied to the processor. As a derived key, for example, a subkey of a current round of a multicarrier method is provided. Ie. when derivation of the current partial key (round key) from the original key falsified in the key register, the adulteration is withdrawn and fed the subkey in unadulterated form to the processor, which calculates the current round with the unadulterated subkey.

Wahlweise ist als Berechnung eine Runde eines mehrrundigen kryptographischen Verfahrens vorgesehen und als verfälscht im Schlüsselregister bereitgestellter Schlüssel ein Teilschlüssel (Rundenschlüssel) der vorherigen Runde vorgesehen.Optionally, a round of a multi-pronged cryptographic method is provided as a calculation, and a partial key (round key) of the previous round is provided as the key provided in the key register.

Falls der Teilschlüssel einer aktuellen Runde zur Ableitung eines Teilschlüssels der nachfolgenden Runde in ein oder das Schlüsselregister abgelegt wird, wird eine Verfälschungsoperation auf den Teilschlüssel der aktuellen Runde angewandt, so dass im Schlüsselregister stets nur ein verfälschter Schlüssel abgespeichert wird, jedoch nie ein unverfälschter Schlüssel. So ist sichergestellt, dass auch in dem Fall, wenn der Teilschlüssel einer aktuellen Runde aus dem Teilschlüssel der jeweils vorherigen Runde abgeleitet wird, im Schlüsselregister stets ein verfälschter (Teil-)Schlüssel liegt, in die Berechnung im Prozessor jedoch ein unverfälschter (Teil-)Schlüssel einfließt.If the subkey of a current round for deriving a subkey of the subsequent round is placed in one or the key register, a falsification operation is applied to the subkey of the current round, so that only one falsified key is ever stored in the key register, but never an uncalibrated key. This ensures that even in the case where the subkey of a current round is derived from the subkey of the previous round, there is always a falsified (partial) key in the key register, but an unadulterated (sub) key is included in the calculation in the processor. Key flows into it.

Wahlweise weist der Schlüssel eine Mehrzahl von Schlüsselbits auf. Durch die Verfälschungsoperation werden die Schlüsselbits des Schlüssels wahlweise in eine zufallsgesteuerte Reihenfolge gebracht. Alternativ oder zusätzlich werden wahlweise durch die Verfälschungsoperation die Schlüsselbits des Schlüssels um eine vorbestimmte Anzahl von Bitpositionen zyklisch verschoben.Optionally, the key has a plurality of key bits. The tampering operation selectively places the key bits of the key in a random order. Alternatively or additionally, optionally, the key bits of the key are cyclically shifted by a predetermined number of bit positions by the adulteration operation.

Eine erfindungsgemäße Prozessoranordnung hat einen Prozessor und ein dem Prozessor zugeordnetes Schlüsselregister. Die Anordnung zeichnet sich aus durch eine Verfälschungseinrichtung, durch welche der Schlüssel durch eine Verfälschungsoperation verfälschbar ist und verfälscht im Schlüsselregister bereitstellbar ist, und eine zwischen das Schlüsselregister und den Prozessor gekoppelte oder koppelbare Entfälschungseinrichtung, durch welche die Verfälschungsoperation zurücknehmbar ist, so dass der Schlüssel in unverfälschter Form dem Prozessor zuführbar ist.A processor arrangement according to the invention has a processor and a key register associated with the processor. The arrangement is characterized by a tampering device, by which the key is falsified by a tampering operation and is falsely provided in the key register, and a deinterleaving means coupled between the key register and the processor, whereby the tampering operation is retractable, such that the key is in unadulterated form can be fed to the processor.

Wahlweise ist die Entfälschungseinrichtung in eine Schlüsselableitungseinrichtung implementiert, durch die aus dem im Schlüsselregister abgelegten Schlüssel ein dem Prozessor zuführbarer Schlüssel oder Teilschlüssel des Schlüssels ableitbar ist. Als Schlüsselableitungseinrichtung ist z. B. einen Subkey-Generator vorgesehen, aus dem ein Teilschlüssel (Subkey, Rundenschlüssel) der aktuellen Runde eines mehrrundigen Verfahrens ableitbar ist. Der Teilschlüssel ist dabei ableitbar aus dem im Schlüsselregister liegenden Schlüssel, welcher z. B. entweder der Originalschlüssel ist, oder der Teilschlüssel der vorangehenden Runde.Optionally, the de-falsification device is implemented in a key derivation device, by means of which a key or partial key of the key which can be supplied to the processor can be derived from the key stored in the key register. When Key derivation device is z. B. a subkey generator provided, from which a subkey (subkey, round key) of the current round of a multi-pronged method is derivable. The subkey is derivable from the lying in the key register key which z. B. is either the original key, or the subkey of the previous round.

Im Folgenden wird die Erfindung an Hand von Ausführungsbeispielen und unter Bezugnahme auf die Zeichnung näher erläutert, in der zeigen:In the following the invention will be explained in more detail with reference to exemplary embodiments and with reference to the drawing, in which:

1 die Ableitung eines Teilschlüssels (Subkeys) aus einem Schlüssel nach dem Stand der Technik; 1 the derivation of a subkey (key) from a key according to the prior art;

2 die Ableitung eines Teilschlüssels (Subkeys) aus einem Schlüssel nach einer ersten Ausführungsform der Erfindung; 2 the derivation of a subkey (key) from a key according to a first embodiment of the invention;

3 die Ableitung eines Teilschlüssels (Subkeys) aus einem Schlüssel nach einer zweiten Ausführungsform der Erfindung; 3 the derivation of a subkey (key) from a key according to a second embodiment of the invention;

4 die Ableitung eines Teilschlüssels (Subkeys) aus einem Schlüssel nach einer dritten Ausführungsform der Erfindung. 4 the derivation of a subkey (key) from a key according to a third embodiment of the invention.

1 zeigt, in schematisierter Darstellung, die Ableitung eines Teilschlüssels SKi für die Runde i von Runden 1, ... i, ... n des AES oder DES aus einem kryptographischen Schlüssel K nach dem Stand der Technik. Die zu Grunde liegende Rechenanordnung umfasst einen für DES oder AES eingerichteten oder zumindest geeigneten Prozessor P, einen für den Prozessor P zugänglichen nichtflüchtigen Speicher NVM, ein für den Prozessor P zugängliches Schlüsselregister R und einen Teilschlüsselgenerator (Subkey-Generator) SKG, mit dem aus einem im Schlüsselregister R liegenden Schlüssel K Teilschlüssel SK1, ... SKi, ... SKn (Subkeys, Rundenschlüssel) für die Runden 1, ... i, ... n des DES bzw. AES ableitbar sind. Der Schlüssel K besteht aus einer Mehrzahl von binären Schlüsselbits k. 1 shows, in a schematic representation, the derivation of a partial key SKi for the round i of rounds 1, ... i, ... n of the AES or DES from a cryptographic key K according to the prior art. The underlying arithmetic arrangement comprises a processor P set up or at least suitable for DES or AES, a nonvolatile memory NVM accessible to the processor P, a key register R accessible to the processor P and a subkey generator SKG with which a Key K in the key register R can be derived from the partial keys SK1, ... SKi, ... SKn (subkeys, round keys) for the laps 1,... i,... n of the DES or AES. The key K consists of a plurality of binary key bits k.

Der Schlüssel (Originalschlüssel) K ist im nichtflüchtigen Speicher NVM gesichert dauerhaft abgespeichert und wird zu Beginn des DES/AES in das Schlüsselregister R geladen. Zu Beginn jeder Runde i des AES bzw. DES wird durch den Teilschlüsselgenerator SKG aus dem im Schlüsselregister R liegenden Schlüssel K der Teilschlüssel SKi (Subkeys, Rundenschlüssel) der jeweiligen Runde i abgeleitet und dem Prozessor P zugeführt. Die Berechnung der jeweiligen Runde i wird mit dem jeweiligen Teilschlüssel SKi durch den Prozessor P durchgeführt.The key (original key) K is permanently stored in the NVM non-volatile memory and is loaded into the key register R at the beginning of the DES / AES. At the beginning of each round i of the AES or DES, the subkey SKi (subkeys, round key) of the respective round i is derived by the subkey generator SKG from the key K lying in the key register R and fed to the processor P. The calculation of the respective round i is carried out with the respective subkey SKi by the processor P.

Gemäß dem Stand der Technik werden die Schlüsselbits k für den Teilschlüssel SKi in derjenigen Reihenfolge, in der sie im Schlüsselregister R auftreten, an den Prozessor P zur Durchführung der Berechnung bereitgestellt. Ein Safe Error Angriff (Bitkippen) auf das Schlüsselregister R überträgt sich somit unmittelbar auf die Berechnung.According to the prior art, the key bits k for the subkey SKi are provided in the order in which they occur in the key register R to the processor P for performing the calculation. A Safe Error attack (bit-tilting) on the key register R is thus immediately transferred to the calculation.

2, 3 und 4 zeigen die Ableitung eines Teilschlüssels (Subkeys) SKi aus einem Schlüssel K nach Ausführungsformen der Erfindung. Die Grundanordnung ist dieselbe wie in 1. Zusätzlich haben die Anordnungen aus 2, 3, 4 jeweils eine Verfälschungseinrichtung V und eine Entfälschungseinrichtung E. Durch die Verfälschungseinrichtung V wird der aus dem nichtflüchtigen Speicher NVM in das Schlüsselregister R geladene Originalschlüssel K gemäß einer Verfälschungsoperation OP verfälscht und derart verfälscht im Schlüsselregister R abgelegt. Durch die Entfälschungseinrichtung E wird beim Ableiten des Teilschlüssels SKi der Runde i die Verfälschung rückgängig gemacht, z. B. durch Anwendung der Umkehroperation OP-1 der Verfälschungsoperation OP. Der so entfälschte Teilschlüssel SKi wird dem Prozessor P und somit der Berechnung zugeführt. 2 . 3 and 4 show the derivation of a subkey (subkeys) SKi from a key K according to embodiments of the invention. The basic arrangement is the same as in 1 , In addition, the arrangements have off 2 . 3 . 4 in each case a falsification device V and a de-falsification device E. The falsifying device V falsifies the original key K loaded from the nonvolatile memory NVM into the key register R in accordance with a falsification operation OP and stores it in the key register R in a falsified manner. By the Entfälschungseinrichtung E the derivation is reversed in deriving the subkey SKi of the round i, z. By applying the reverse operation OP-1 of the adulteration OP. The so verschälschte subkey SKi is the processor P and thus supplied to the calculation.

Bei der in 2 gezeigten ersten Ausführungsform der Erfindung besteht die Verfälschungsoperation OP darin, die Schlüsselbits k im Originalschlüssel K, durch die der Teilschlüssel SKi der Runde i gebildet wird, in zufällig vertauschter Reihenfolge anzuordnen und so vertauscht im Schlüsselregister R abzulegen. Die Entfälschungsoperation OP-1 besteht darin, die Schlüsselbits k wieder in die richtige Reihenfolge zu bringen. Entsprechend sind im NVM die Schlüsselbits des Teilschlüssels SKi der Runde i in der richtigen Reihenfolge 012345 angeordnet. Im Schlüsselregister R sind die Schlüsselbits des Teilschlüssels SKi in der vertauschten Reihenfolge 041352 angeordnet. Dem Prozessor P werden die Schlüsselbits des Teilschlüssels SKi in der richtigen Reihenfolge 012345 zugeführt. Wird im Schlüsselregister das Bit 4 an Bitposition 1 gekippt, geht in die Berechnung ein gekipptes Bit 4 ein. Der ausgespähte Bitwert gehört somit zu Bit 4. Der Bitposition zufolge glaubt der Angreifer allerdings, er habe Bit 1 gekippt und Bit 1 ausgespäht. Somit ordnet er den ausgespähten Wert der falschen Bitposition zu.At the in 2 In the first embodiment of the invention shown, the adulteration OP is to place the key bits k in the original key K, by which the subkey SKi of the round i is formed, in a randomly interchanged order and thus interchanged in the key register R. The deletion operation OP-1 is to put the key bits k in the correct order again. Accordingly, in the NVM, the key bits of the subkey SKi of the round i are arranged in the correct order 012345. In the key register R, the key bits of the subkey SKi are arranged in the exchanged order 041352. The processor P receives the key bits of the subkey SKi in the correct order 012345. If bit 4 is tilted to bit position 1 in the key register, a tilted bit 4 is included in the calculation. The spiked bit value thus belongs to bit 4. According to the bit position, however, the attacker believes that he has tilted bit 1 and spied out bit 1. Thus, it assigns the spied value to the wrong bit position.

Die in 3 gezeigte zweite Ausführungsform der Erfindung ist ähnlich zur in 2 gezeigten. Bei 2 sind die Schlüsselbits k des Teilschlüssels SKi innerhalb des Bereichs des Teilschlüssels SKi vertauscht. Bei der Ausführungsform aus 3 sind die Schlüsselbits k des Teilschlüssels SKi über den Bereich des gesamten Schlüssels vertauscht.In the 3 shown second embodiment of the invention is similar to in 2 shown. at 2 the key bits k of the subkey SKi are interchanged within the area of the subkey SKi. In the embodiment of 3 the key bits k of the subkey SKi are swapped over the area of the entire key.

Bei der in 4 gezeigten Ausführungsform der Erfindung besteht die Verfälschungsoperation OP darin, die Schlüsselbits k im Originalschlüssel K um drei Bitpositionen zyklisch nach links zu verschieben und so verschoben im Schlüsselregister R abzulegen. Somit beginnt der im NVM abgelegte Schlüssel K mit 012345 und endet mit kkkk. Der im Schlüsselregister R abgelegte Schlüssel K beginnt mit 345kk und endet mit kk012. Die Entfälschungsoperation OP-1 besteht darin, die Schlüsselbits k wieder um drei Bitpositionen zyklisch nach rechts zu verschieben und so zurückverschoben dem Prozessor und somit der Berechnung zuzuführen. Der dem Prozessor P zugeführte Teilschlüssel SKi, hier SK1, der aus den ersten Bits des unverfälschten Originalschlüssels K abzuleiten ist, ist SK1 = 012345, wie es sein sollte.At the in 4 In the embodiment of the invention shown in FIG. 3, the adulteration operation OP consists of cyclically shifting the key bits k in the original key K by three bit positions to the left so as to store them in the key register R. Thus, the key K stored in the NVM starts with 012345 and ends with kkkk. The key K stored in the key register R starts with 345kk and ends with kk012. The de-corrugating operation OP-1 is to shift the key bits k cyclically to the right by three bit positions again and thus shifted back to the processor and thus to the calculation. The subkey SKi supplied to the processor P, here SK1, which is to be derived from the first bits of the original pristine key K, is SK1 = 012345, as it should be.

Gemäß den Figuren ist im Schlüsselregister der Originalschlüssel K abgelegt. Der Teilschlüssel SKi der Runde i wird aus dem Originalschlüssel K abgeleitet. Gemäß alternativen Ausführungsformen ist zu Beginn der Runde i im Schlüsselregister R ein verfälschter Teilschlüssel SKi-1 der vorangehenden Runde i-1 abgelegt. Dabei wird der Teilschlüssel SKi der aktuellen Runde i aus dem verfälschten Teilschlüssel SKi-1 der vorangehenden Runde i-1 abgeleitet und dabei entfälscht.According to the figures, the original key K is stored in the key register. The subkey SKi of the round i is derived from the original key K. According to alternative embodiments, a falsified subkey SKi-1 of the preceding round i-1 is stored in the key register R at the beginning of the round i. In this case, the subkey SKi of the current round i is derived from the corrupted subkey SKi-1 of the preceding round i-1 and thereby falsified.

Claims (9)

Verfahren, in einem Prozessor (P), zum Durchführen einer kryptographischen Berechnung (DES, AES), unter Verwendung eines kryptographischen Schlüssels (K; SK), wobei zur Durchführung der Berechnung der Schlüssel (K; SK) in einem Schlüsselregister (R) bereitgestellt wird, dadurch gekennzeichnet, dass – der Schlüssel (K; SK) durch eine Verfälschungsoperation (OP) verfälscht wird und verfälscht im Schlüsselregister (R) bereitgestellt wird, – der Schlüssel (K; SK) oder zumindest ein Teilschlüssel (SK) des Schlüssels unter Rücknahme (OP-1) der Verfälschungsoperation (OP) aus dem Schlüsselregister (R) dem Prozessor (P) zugeführt wird, und – die Berechnung mit dem unverfälschten Schlüssel (K) oder Teilschlüssel (SK) durchgeführt wird.Method, in a processor (P), for performing a cryptographic calculation (DES, AES) using a cryptographic key (K; SK), the key (K; SK) being provided in a key register (R) for performing the calculation is, characterized in that - the key (K; SK) is falsified by a falsification operation (OP) and is provided in the key register (R) falsified, - the key (K; SK) or at least a subkey (SK) of the key below Withdrawal (OP-1) of the falsification operation (OP) from the key register (R) is supplied to the processor (P), and - the calculation is carried out with the unadulterated key (K) or subkey (SK). Verfahren nach Anspruch 1, wobei als Berechnung eine Runde eines mehrrundigen kryptographischen Verfahrens (DES, AES) vorgesehen ist und als unverfälschter Schlüssel (SK), der dem Prozessor zugeführt wird, ein aus dem verfälscht im Schlüsselregister (R) bereitgestellten Schlüssel (K; SK) abgeleiteter Teilschlüssel (SK) der aktuellen Runde vorgesehen ist.Method according to Claim 1, wherein a round of a multi-frame cryptographic method (DES, AES) is provided as the calculation and an unaltered key (SK) supplied to the processor is a key (K; SK.) Provided from the falsified key register (R) ) derived subkey (SK) of the current round is provided. Verfahren nach Anspruch 1 oder 2, wobei als verfälscht im Schlüsselregister (R) bereitgestellter Schlüssel (K) ein zu Beginn der kryptographischen Berechnung (DES, AES) bereitgestellter Schlüssel (K) vorgesehen ist.Method according to claim 1 or 2, wherein a key (K) provided at the beginning of the cryptographic calculation (DES, AES) is provided as the key (K) provided in the key register (R) as being corrupted. Verfahren nach Anspruch 1 oder 2, wobei als Berechnung eine Runde eines mehrrundigen kryptographischen Verfahrens (DES, AES) vorgesehen ist und als verfälscht im Schlüsselregister (R) bereitgestellter Schlüssel ein Teilschlüssel (SK) der vorherigen Runde vorgesehen ist.The method according to claim 1 or 2, wherein a round of a multi-frame cryptographic method (DES, AES) is provided as the calculation, and a partial key (SK) of the previous round is provided as the key provided incorrectly in the key register (R). Verfahren nach einem der Ansprüche 1 bis 4, wobei der Schlüssel (K; SK) eine Mehrzahl von Schlüsselbits (k; s) aufweist, und wobei durch die Verfälschungsoperation (OP) die Schlüsselbits (k; s) des Schlüssels (K; SK) in eine zufallsgesteuerte Reihenfolge gebracht werden.Method according to one of Claims 1 to 4, the key (K; SK) having a plurality of key bits (k; s), and the key bits (k; s) of the key (K; SK) being determined by the adulteration operation (OP). be placed in a random order. Verfahren nach einem der Ansprüche 1 bis 5, wobei der Schlüssel (K; SK) eine Mehrzahl von Schlüsselbits (k, s) aufweist, und wobei durch die Verfälschungsoperation (OP) die Schlüsselbits (k, s) des Schlüssels (K; SK) um eine vorbestimmte Anzahl von Bitpositionen zyklisch verschoben werden.Method according to one of Claims 1 to 5, the key (K; SK) having a plurality of key bits (k, s), and the key bits (k, s) of the key (K; SK) being determined by the adulteration operation (OP). are cyclically shifted by a predetermined number of bit positions. Prozessoranordnung mit einem Prozessor (P) und einem dem Prozessor (P) zugeordneten Schlüsselregister (R), gekennzeichnet durch eine Verfälschungseinrichtung (V), durch welche der Schlüssel (K; SK) durch eine Verfälschungsoperation (OP) verfälschbar ist und verfälscht im Schlüsselregister (R) bereitstellbar ist, und eine zwischen das Schlüsselregister (R) und den Prozessor (P) gekoppelte oder koppelbare Entfälschungseinrichtung (E), durch welche die Verfälschungsoperation (OP) zurücknehmbar (OP-1) ist, so dass der Schlüssel (K; SK) in unverfälschter Form dem Prozessor (P) zuführbar ist.Processor arrangement with a processor (P) and a key register (R) assigned to the processor (P), characterized by a falsification device (V) by which the key (K; SK) is falsified by a falsification operation (OP) and can be provided falsified in the key register (R), and a deinterleaving device (E) coupled or coupleable between the key register (R) and the processor (P), whereby the tampering operation (OP) is retractable (OP-1) such that the key (K; SK) is provided to the processor in an unadulterated form (P) can be fed. Prozessoranordnung nach Anspruch 7, weiter eingerichtet für ein Verfahren nach einem der Ansprüche 1 bis 6.Processor arrangement according to claim 7, further adapted for a method according to one of claims 1 to 6. Prozessoranordnung nach Anspruch 7 oder 8, wobei die Entfälschungseinrichtung (E) in eine Schlüsselableitungseinrichtung (SKG) implementiert ist, durch die aus dem im Schlüsselregister (R) abgelegten Schlüssel (K) ein dem Prozessor (P) zuführbarer Schlüssel (K) oder Teilschlüssel (SK) des Schlüssels (K) ableitbar ist.Processor arrangement according to claim 7 or 8, wherein the de-falsification device (E) is implemented in a key derivation device (SKG), by means of which a key (K) or sub-key (K) which can be fed to the processor (P) from the key (K) stored in the key register (R). SK) of the key (K) can be derived.
DE201210011727 2012-06-13 2012-06-13 Method for performing cryptographic computation of keys, involves supplying key or partial key to processor from key register under cancelling operation, and performing cryptographic computation using key or partial key Withdrawn DE102012011727A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE201210011727 DE102012011727A1 (en) 2012-06-13 2012-06-13 Method for performing cryptographic computation of keys, involves supplying key or partial key to processor from key register under cancelling operation, and performing cryptographic computation using key or partial key

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE201210011727 DE102012011727A1 (en) 2012-06-13 2012-06-13 Method for performing cryptographic computation of keys, involves supplying key or partial key to processor from key register under cancelling operation, and performing cryptographic computation using key or partial key

Publications (1)

Publication Number Publication Date
DE102012011727A1 true DE102012011727A1 (en) 2013-12-19

Family

ID=49667681

Family Applications (1)

Application Number Title Priority Date Filing Date
DE201210011727 Withdrawn DE102012011727A1 (en) 2012-06-13 2012-06-13 Method for performing cryptographic computation of keys, involves supplying key or partial key to processor from key register under cancelling operation, and performing cryptographic computation using key or partial key

Country Status (1)

Country Link
DE (1) DE102012011727A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040186991A1 (en) * 2000-02-25 2004-09-23 Genesis Microchip Corporation Display unit storing and using a cryptography key
EP2180631A1 (en) * 2008-10-24 2010-04-28 Gemalto SA Cryptographic algorithm fault protections
US7734043B1 (en) * 2005-01-25 2010-06-08 Altera Corporation Encryption key obfuscation and storage

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040186991A1 (en) * 2000-02-25 2004-09-23 Genesis Microchip Corporation Display unit storing and using a cryptography key
US7734043B1 (en) * 2005-01-25 2010-06-08 Altera Corporation Encryption key obfuscation and storage
EP2180631A1 (en) * 2008-10-24 2010-04-28 Gemalto SA Cryptographic algorithm fault protections

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PHILIPPE LOUBET-MOUNDI, u. a.: "Static Fault Attack on Hardware DES Registers", Seiten 1-17, 30.09.2011 *

Similar Documents

Publication Publication Date Title
DE602005001351T2 (en) Distributed management of a certificate withdrawal list
DE102012202015B4 (en) Apparatus and method for protecting a reference number against differential power analysis attacks and template attacks
EP3219043B1 (en) Hardened white box implementation 1
DE60217260T2 (en) Data processing and encryption unit
DE10000503A1 (en) Data processing device and method for its operation
EP2605445A1 (en) Method and apparatus for securing block ciphers against template attacks
DE112007003061T5 (en) Mechanism for protecting a key
DE102008010789B4 (en) Method for the access and communication-related random encryption and decryption of data
EP3387636B1 (en) Cryptographic algorithm having a key-dependent masked computing step (sbox call)
DE102012011727A1 (en) Method for performing cryptographic computation of keys, involves supplying key or partial key to processor from key register under cancelling operation, and performing cryptographic computation using key or partial key
DE102012015158A1 (en) Protected against spying protected cryptographic calculation
EP3804209B1 (en) Method having safe-error defensive measure
WO2016096118A1 (en) Method for operating a computer unit, and such a computer unit
EP3369205B1 (en) Alternative representation of the crypto algorithm des
EP1596527B1 (en) Switching from boolean to arithmetic masking
DE102012011730A1 (en) Cryptographic computation protected against Safe Error attacks
DE602005003258T2 (en) Control of the execution of an algorithm by an integrated circuit
DE102015209120A1 (en) Computing device and operating method for this
DE102021101697B3 (en) DATA PROCESSING DEVICE AND METHOD FOR PROCESSING SECRET DATA
DE19845073C2 (en) Procedure for securing DES encryption against spying on the keys by analyzing the current consumption of the processor
DE102019003673B3 (en) Side channel safe implementation
DE19921633A1 (en) Procedure for implementing cryptographic algorithms
EP2466782B1 (en) Method for protected execution of a cryptographic calculation
DE102008054627A1 (en) Control device with the method for manipulation protection computer program, computer program product
DE19936890A1 (en) Encryption method for performing cryptographic operations

Legal Events

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

Effective date: 20150101