Beschreibungdescription
Vorrichtung und Verfahren zum Berechnen von verschlüsselten Daten aus unverschlüsselten Daten oder von unverschlüsselten Daten aus verschlüsselten DatenDevice and method for calculating encrypted data from unencrypted data or unencrypted data from encrypted data
Die vorliegende Erfindung bezieht sich auf Kryptographiekonzepte und insbesondere auf die Absicherung von Kryptographiekonzepten gegenüber Attacken gegen dieselben.The present invention relates to cryptography concepts and in particular to the protection of cryptography concepts against attacks against the same.
Fig. 3a zeigt als Beispiel eine Darstellung des bekannten DES-Algorithmus, der beispielsweise im Kapitel 7.4.2 des Fachbuchs „Handbook of Applied Cryptography, Menezes u. a., CRC Press, 1996, beschrieben ist. Der DES ist ein Feistel- Verschlüsselungsalgorithmus, der Klartextblöcke mit n = 643a shows an example of a representation of the known DES algorithm, which is described, for example, in chapter 7.4.2 of the textbook “Handbook of Applied Cryptography, Menezes u. a., CRC Press, 1996. The DES is a Feistel encryption algorithm, the plain text blocks with n = 64
Bits verarbeitet, um Blöcke von verschlüsselten Daten mit einer Größe von 64 Bits zu erzeugen und umgekehrt. Die effektive Größe des geheimen Schlüssels K beträgt k = 56 Bits. Insbesondere ist der Eingabeschlüssel als 64-Bit-Schlüssel spe- zifiziert, wobei 8 Bits als Paritätsbits verwendet werden können. Die 256 Schlüssel implementieren 256 der 264 möglichen Bijektionen in 64-Bit-Blöcken.Bits processed to produce blocks of 64-bit encrypted data and vice versa. The effective size of the secret key K is k = 56 bits. In particular, the input key is specified as a 64-bit key, whereby 8 bits can be used as parity bits. The 2 56 keys implement 2 56 of the 2 64 possible bijections in 64-bit blocks.
Bezug nehmend auf Fig. 3a werden die Eingangsdaten bei einem Block 30 eingegeben und zunächst einer AnfangspermutationReferring to Fig. 3a, the input data is entered at block 30 and initially an initial permutation
(IP; IP = Initial Permutation) 31 unterzogen. Dann werden die Bits dieser sogenannten nullten Runde in einen linken Block Lo und einen rechten Block Rn aufgeteilt, wie es bei 32 in Fig. 3a dargestellt ist. Diese Daten werden dann in einer er- sten Runde des DES-Algorithmus verarbeitet, und zwar unter(IP; IP = Initial Permutation) 31 subjected. Then the bits of this so-called zero round are divided into a left block Lo and a right block Rn, as shown at 32 in Fig. 3a. This data is then processed in a first round of the DES algorithm, namely under
Verwendung einer Rundenfunktion 33, die aus einem ersten Rundenschlüssel Ki und dem rechten Datenblock R0 Ausgangsdaten erzeugt, die mit den linken Daten unter Verwendung einer XOR- Verknüpfung 34 verknüpft werden, um neue rechte Daten Ri zu erzeugen.
Die neuen linken Daten Li entsprechen den alten rechten Daten Rn. In Fig. 3a ist die erste Runde, also die Verarbeitung unter Verwendung des ersten Rundenschlüssels Ki als Anfangsstufe 1 bezeichnet. In einer auf die Anfangsstufe 1 folgenden Anfangsstufe 2 wird das selbe Prozedere, wie es in dem Blockschaltbild von Fig. 3a dargestellt ist, durchgeführt, nun jedoch mit dem Ergebnis der XOR-Verknüpfung 34 als Eingang in die kryptongraphische Funktion 33. In dieser zweiten Runde oder Anfangsstufe 2 wird jedoch ein zweiter Rundenschlüssel K2 verwendet, um dann die Ausgangsdaten der Funktion 33 der Anfangsstufe 2 wieder mittels einer XOR-Verknüpfung 35 mit den alten rechten Daten Rn (die die neuen linken Daten Li sind) zu verknüpfen. Dieses Prozedere wird für die Zwischenstufen oder Runden 3 bis 14 nacheinander durchgeführt. Der DES-Algorithmus hat insgesamt 16 Runden. In der 15. Runde, die in Fig. 3a mit Endstufe 1 bezeichnet ist, wird ein 15-ter Rundenschlüssel Ki5 (in Fig. 3a nicht gezeigt) . In einer letzten Endstufe des DES-Algorithmus, die die 16. Runde ist und in Fig. 3a auch mit Endstufe 2 bezeichnet ist, wird dann unter Verwendung des 16-ten Rundenschlüssels K16 und der entsprechenden Eingangsdaten Ri5 ein letztes Mal die krypto- graphische Funktion 33 durchgeführt, um die Ausgangsdaten der kryptographischen Funktion 33 der 16-ten Runde mit dem linken Datenblock Ii15 der vorausgehenden Runde einer XOR-Verknüpfung 36 zu unterziehen, um dann, wie es in Fig. 3a gezeigt ist, die linken und rechten Daten erneut umzuordnen (Block 37) .Use of a round function 33, which generates output data from a first round key Ki and the right data block R 0 , which are linked to the left data using an XOR link 34 in order to generate new right data Ri. The new left data Li correspond to the old right data Rn. In FIG. 3a, the first round, that is to say the processing using the first round key Ki, is designated as the initial stage 1. In an initial stage 2 following the initial stage 1, the same procedure as shown in the block diagram of FIG. 3a is carried out, but now with the result of the XOR operation 34 as an input to the cryptographic function 33. In this second round or initial stage 2, however, a second round key K 2 is used in order to then link the output data of function 33 of initial stage 2 again with the old right data Rn (which is the new left data Li) by means of an XOR link 35. This procedure is carried out for intermediate stages or rounds 3 to 14 in succession. The DES algorithm has a total of 16 rounds. In the 15th round, which is denoted by output stage 1 in FIG. 3a, a 15th round key K i5 (not shown in FIG. 3a) is used. In a last final stage of the DES algorithm, which is the 16th round and is also referred to in FIG. 3a as final stage 2, the cryptographic key is then used one last time using the 16th round key K 16 and the corresponding input data R i5. graphic function 33 performed to XOR the output data of the cryptographic function 33 of the 16th round with the left data block Ii 15 of the previous round, and then, as shown in FIG. 3a, the left and right Rearrange data (block 37).
Die in der im Block 37 von Fig. 3a angedeuteten Art und Weise geordneten Daten werden dann einer Endpermutation unterzogen, die invers zur Anfangspermutation 31 ist und in Fig. 3a mit 38 bezeichnet ist. Am Ausgang des Blocks 38 liegen dann die verschlüsselten Daten vor, genauer gesagt ein Block von verschlüsselten Daten, wie es bei 39 veranschaulicht ist. Zur Entschlüsselung wird das ganze Prozedere umgekehrt durchge- führt.
Fig. 3b zeigt die innere Funktion f (33 in Fig. 3a) des DES- Algorithmus . Die rechten Daten Ri_ι der vorausgehenden Stufe bzw. der vorausgehenden Runde werden einer Expansion 40 unterzogen und dann mit dem Rundenschlüssel Ki einer XOR- Verknüpfung 41 unterzogen, um dann in acht Gruppen von je 6 Bits angeordnet zu werden (42) . Dann wird eine Substitutionsoperation mittels acht verschiedener vordefinierter Tabellen 43 durchgeführt, die in der Technik auch als SBOXEN bezeichnet werden. Jede der SBOXEN liefert an ihrem Ausgang einen 4- Bit-Wert. Die Ausgangsdaten der Substitutionsoperation 43 werden dann blockweise angeordnet (44) , um einer Permutationsoperation 45 unterzogen zu werden. Die Ausgangsdaten der Permutation 45 bilden somit die Ausgangsdaten der kryptographischen Funktion 33 von Fig. 3a, die auch als Rundenfunk- tion bezeichnet wird.The data arranged in the manner indicated in block 37 of FIG. 3a are then subjected to an end permutation which is inverse to the initial permutation 31 and is designated by 38 in FIG. 3a. The encrypted data is then present at the output of block 38, more precisely a block of encrypted data, as illustrated at 39. The entire procedure is carried out in reverse for decryption. 3b shows the internal function f (33 in FIG. 3a) of the DES algorithm. The right data Ri_ι of the preceding stage or the previous round are subjected to an expansion 40 and then subjected to an XOR operation 41 with the round key Ki, in order then to be arranged in eight groups of 6 bits each (42). A substitution operation is then performed using eight different predefined tables 43, which are also referred to in the art as SBOXES. Each of the SBOXES provides a 4-bit value at its output. The output data of the substitution operation 43 is then arranged in blocks (44) to undergo a permutation operation 45. The output data of the permutation 45 thus form the output data of the cryptographic function 33 from FIG. 3a, which is also referred to as a round function.
Der DES-Algorithmus ist eine sogenannte Block-Chiffre, da er aus einem Block von Eingangsdaten (30 in Fig. 3a) einen Block von Ausgangsdaten (39 in Fig. 3a) berechnet. So existieren verschiedene Block-Cipher-Typen, die im Kapitel 7 des oben zitierten Fachbuchs aufgeführt sind. Allgemein stellt sich ein Block-Verschlüsselungsalgorithmus mit mehreren Stufen dar, wie es in Fig. 4 angedeutet ist. Ein solcher Mehrfach- Verschlüsselungs-Algorithmus erhält eingangsseitig die unver- schlüsselten Daten, die auch als Plaintext P bezeichnet werden. Sie werden einer Anfangsstufe eines insgesamten Verschlüsselungsalgorithmus unterzogen, die in Fig. 4 mit 46 bezeichnet ist. In der Anfangsstufe wird ein erster Schlüssel Ki verwendet. Die Ausgangsdaten A der Anfangsstufe werden dann einer Zwischenstufe 47 zugeführt, die eine alternative oder gleiche Verschlüsselungsoperation wie die Anfangsstufe durchführt, nun jedoch mit dem Schlüssel K2, der sich typischerweise von dem Schlüssel Ki unterscheidet. Die Ausgangsdaten B der Zwischenstufe werden dann einer Endstufe 48 zuge- führt, die eine weitere Verschlüsselungsoperation durchführt, nun jedoch mit einem anderen Schlüssel K3 der Endstufe, der sich typischerweise von den Schlüsseln Kx der Anfangsstufe 46
und dem Schlüssel K2 der Zwischenstufe 47 unterscheidet. Am Ausgang der Endstufe 48 ergibt sich der verschlüsselte Datenblock oder Ciphertext C.The DES algorithm is a so-called block cipher because it calculates a block of output data (39 in FIG. 3a) from a block of input data (30 in FIG. 3a). There are various types of block cipher, which are listed in Chapter 7 of the textbook cited above. In general, there is a block encryption algorithm with several stages, as indicated in FIG. 4. Such a multiple encryption algorithm receives the unencrypted data on the input side, which is also referred to as plain text P. They are subjected to an initial stage of an overall encryption algorithm, which is denoted by 46 in FIG. 4. In the initial stage, a first key Ki is used. The output data A of the initial stage are then fed to an intermediate stage 47 which carries out an alternative or the same encryption operation as the initial stage, but now with the key K 2 , which typically differs from the key Ki. The output data B of the intermediate stage are then fed to a final stage 48 which carries out a further encryption operation, but now with another key K 3 of the final stage, which typically differs from the keys K x of the initial stage 46 and the key K 2 of the intermediate stage 47 differentiates. The encrypted data block or ciphertext C results at the output of the output stage 48.
Der in Fig. 3a und Fig. 3b beschriebene DES-Algorithmus basiert auf zwei allgemeinen Konzepten, nämlich den Produkt- Verschlüsselungsalgorithmen und den Feistel- Verschlüsselungsalgorithmen. Jedes Prinzip umfasst das Ite- rieren einer gemeinsamen Sequenz oder Runde von Operationen. Die grundsätzliche Idee eines Produkt- Verschlüsselungsalgorithmus besteht darin, eine komplexe Verschlüsselungsfunktionalität aufzubauen, indem mehrere einfache Operationen zusammengesetzt werden, die gemeinsam betrachtet relativ sicherer sind, die jedoch individuell be- trachtet keinen ausreichenden Schutz liefern. Diese Grundoperationen umfassen Transpositionen, Translationen (z. B. XOR) und lineare Transformationen, arithmetische Operationen, mo- dulare Multiplikationen und einfache Substitutionen. Ein Produkt-Verschlüsselungsalgorithmus kombiniert somit zwei oder mehr Transformationen unterschiedlicher Ausprägung auf eine Art und Weise, dass die resultierende Verschlüsselung sicherer als die einzelnen Komponenten ist.The DES algorithm described in FIGS. 3a and 3b is based on two general concepts, namely the product encryption algorithms and the Feistel encryption algorithms. Each principle involves iterating over a common sequence or round of operations. The basic idea of a product encryption algorithm is to build up a complex encryption functionality by putting together several simple operations which, when viewed together, are relatively more secure, but which, viewed individually, do not provide adequate protection. These basic operations include transpositions, translations (eg XOR) and linear transformations, arithmetic operations, modular multiplications and simple substitutions. A product encryption algorithm thus combines two or more transformations of different types in such a way that the resulting encryption is more secure than the individual components.
Ein Feistel-Verschlüsselungsalgorithmus ist eine iterierte Verschlüsselungs-Abbildung eines 2 t-Bit-Klartext (beispielsweise t-Bit-Blöcke L0 und R0 in einen Verschlüsselungstext (Rr, Lr) , und zwar durch einen Prozeß mit r Runden, wobei r größer oder gleich 1 ist. Es wird typischerweise eine Rundenzahl von r > 3 bevorzugt, wobei r oft eine gerade Zahl ist. Ein typisches Merkmal der Feistel-Struktur besteht darin, dass die Blöcke der linken Daten und der rechten Daten von Runde zu Runde ausgetauscht werden.A Feistel encryption algorithm is an iterated encryption mapping of a 2 t-bit plain text (e.g. t-bit blocks L 0 and R 0 into an encryption text (R r , L r ), by a process with r rounds, whereby r is greater than or equal to 1. Typically a round number of r> 3 is preferred, with r often being an even number A typical feature of the Feistel structure is that the blocks of the left data and the right data from round to round be replaced.
Die Entschlüsselung wird dadurch erreicht, dass derselbe r- Runden-Prozeß durchgeführt wird, jedoch mit Unterschlüsseln, die in der umgekehrten Reihenfolge verwendet werden, also Kr bis Ki. Die Verschlüsselungsfunktion des Feistel-
Verschlüsselungsalgorithmus kann ein Produkt- Verschlüsselungsalgorithmus sein, wobei f selbst nicht invertierbar sein muss, um eine Inversion des Feistel- Verschlüsselungsalgorithmus zu erlauben.Decryption is achieved by performing the same r-rounding process, but with subkeys that are used in the reverse order, ie K r to Ki. The encryption function of the Feistel- Encryption algorithm can be a product encryption algorithm, whereby f itself does not have to be invertible in order to allow an inversion of the Feistel encryption algorithm.
Aus der vorstehenden Diskussion bekannter Verschlüsselungsalgorithmen wird deutlich, dass moderne Verschlüsselungsalgorithmen typischerweise aus einer Folge von identischen Rundenfunktionen (Fig. 3a) oder allgemein aus einer Kaskadierung von gleichen oder unterschiedlichen Verschlüsselungskonzepten bestehen, wobei jeder der betrachteten Algorithmen eine Anfangsstufe, zumindest eine Zwischenstufe und eine Endstufe aufweist, wobei in der Verarbeitung jeder der genannten Stufen, also der Anfangsstufe, der Zwischenstufe oder der End- stufe typischerweise ein Geheimnis oder ein Teil dieses Geheimnisses verarbeitet wird, nämlich ein Schlüssel Ki, ..., Kn, der - für einen symmetrischen Algorithmus - der die Verschlüsselungsoperation durchführenden Entität einerseits und der die Entschlüsselungsoperation durchführenden Entität an- dererseits bekannt sein muss.From the above discussion of known encryption algorithms it is clear that modern encryption algorithms typically consist of a sequence of identical round functions (FIG. 3a) or generally of a cascading of the same or different encryption concepts, each of the algorithms under consideration having an initial stage, at least one intermediate stage and one final stage has, whereby in the processing of each of the above-mentioned stages, ie the initial stage, the intermediate stage or the final stage, a secret or part of this secret is typically processed, namely a key Ki, ..., K n , which - for a symmetrical one Algorithm - the entity performing the encryption operation on the one hand and the entity performing the decryption operation on the other hand must be known.
Ein Wesen von kryptographischen Algorithmen besteht darin, dass Informationen verschlüsselt werden die auf irgendeine Weise sensibel sind, also Dritten nicht zugänglich gemacht werden sollen. Dies bringt unmittelbar mit sich, dass gegen kryptographische Algorithmen Attacken entwickelt und durchgeführt werden, um dennoch ohne Kenntnis des Schlüssels an die sensiblen Informationen zu kommen. Nachdem die grundsätzliche Struktur der oben bezeichneten kryptographischen Algorithmen öffentlich bekannt ist, die einzige für den Angreifer unbekannte Komponente also der Schlüssel selbst und gegebenenfalls der Plaintext ist, zielen einige Attacken darauf ab, auf irgendeine Art und Weise den Schlüssel zu eruieren. Sobald ein Angreifer einen Schlüssel eruiert hat, hat er das kryptographische System „geknackt". Hier sei darauf hingewiesen, dass für den Angreifer die wertvollste Information der Schlüssel selbst ist. Dennoch sind auch Attacken denkbar, bei
denen lediglich der Plaintext, nicht aber der Schlüssel selbst geknackt werden. Diese Angriffe sind jedoch suboptimal, da ohne Kenntnis des Schlüssels für jeden Angriff ein Aufwand getrieben werden muss, der nicht anfällt, wenn der Schlüssel selbst geknackt worden ist.One essence of cryptographic algorithms is that information is encrypted that is sensitive in some way, that is, should not be made accessible to third parties. This means that attacks against cryptographic algorithms are developed and carried out in order to still be able to access the sensitive information without knowing the key. Since the basic structure of the cryptographic algorithms described above is publicly known, the only component unknown to the attacker is the key itself and possibly the plain text, some attacks aim to find out the key in some way. As soon as an attacker has determined a key, he has "cracked" the cryptographic system. It should be pointed out here that the most valuable information for the attacker is the key itself. Nevertheless, attacks are also conceivable which only the plain text is cracked, but not the key itself. These attacks are, however, suboptimal, because without knowing the key, an effort must be made for each attack that does not occur if the key itself has been cracked.
Angriffe gegen Kryptographiesysteme, also kryptographische Attacken, sind vielfältiger Natur. Die hier beschriebene DPA- Attacke wird auch als Implementierungsattacke als Spezielle Form einer kryptographischen Attacke bezeichnet, da sich der Angriff nicht auf das kryptographische System direkt richtet, sondern auf eine Implementierung des Systems .Attacks against cryptographic systems, i.e. cryptographic attacks, are diverse in nature. The DPA attack described here is also referred to as an implementation attack as a special form of a cryptographic attack, since the attack is not aimed directly at the cryptographic system, but at an implementation of the system.
Ein besonders gefährlicher und prinzipiell einfach durchzu- führender kryptographischer Angriff wurde von P. Kocher, J. Jaffer und B. Jun vorgestellt. Dieser kryptographische Angriff wird in der Technik als DPA- ttacke bezeichnet. DPA bedeutet Differential Power Analysis. Insbesondere wird die Differenz von zwei Mittelwerten von Leistungsmessungen analy- siert, um den geheimen Schlüssel einer kryptographischen Berechnung zu ermitteln, die von einer elektronischen Vorrichtung durchgeführt wird. Eine DPA-Attacke besteht grundsätzlich aus zwei Teilen, nämlich vielen genauen Messungen des Leistungsverbrauchs einer elektronischen Vorrichtung während der Ausführung eines bekannten kryptographischen Algorithmus, wobei immer der gleiche Schlüssel (der nicht von vornherein bekannt ist, sondern das Ziel der Attacke ist) verwendet wird und die zu verschlüsselnden Daten variiert werden. Der zweite Teil der DPA-Attacke besteht in einer statistischen Berech- nung unter Verwendung der Leistungsmeßdaten, um die Korrektheit einer Annahme, d. h. der Schlüsselhypothese, für einen bestimmten Teil des Schlüssels, wie z. B. 6 Bits, zu verifizieren .A particularly dangerous and in principle easy to carry out cryptographic attack was presented by P. Kocher, J. Jaffer and B. Jun. This cryptographic attack is referred to in technology as a DPA attack. DPA means Differential Power Analysis. In particular, the difference between two mean values of power measurements is analyzed in order to determine the secret key of a cryptographic calculation which is carried out by an electronic device. A DPA attack basically consists of two parts, namely many precise measurements of the power consumption of an electronic device during the execution of a known cryptographic algorithm, always using the same key (which is not known in advance, but is the target of the attack) and the data to be encrypted are varied. The second part of the DPA attack consists of a statistical calculation using the performance measurement data in order to ensure the correctness of an assumption, i. H. the key hypothesis, for a certain part of the key, such as B. 6 bits to verify.
Ein besonderer „Vorteil" der DPA-Attacke besteht darin, dass die Schaltung selbst nicht in irgend einer Weise manipuliert werden muss. Es muss lediglich der Leistungsverbrauch der
Schaltung irgendwo außerhalb der elektronischen Vorrichtung an einer gut zugänglichen Stelle gemessen werden. Außerdem muss kein sogenanntes Reverse-Engineering durchgeführt werden. Es spielt keine Rolle, wo auf dem Chip die Berechnungen durchgeführt werden, wenn insbesondere daran gedacht wird, dass auf einem Chip typischerweise nicht nur der Kryptopro- zessor ist, sondern auch andere Komponenten.A particular "advantage" of the DPA attack is that the circuit itself does not have to be manipulated in any way. All that is required is the power consumption of the Circuit measured somewhere outside the electronic device in an easily accessible location. In addition, no so-called reverse engineering has to be carried out. It does not matter where the calculations are carried out on the chip, especially when it is remembered that on a chip there is typically not only the crypto processor but also other components.
Darüber hinaus spielt es keine Rolle, wann genau die krypto- graphischen Berechnungen auf dem Chip durchgeführt werden, da die Leistung in einem Zeitintervall gemessen werden kann. Außerdem ist es nicht nötig, dass ein Angreifer, der eine DPA- Attacke durchführt, das Wesen der DPA-Attacke versteht. Wenn er weiß, wie er vorzugehen hat und die Software für die sta- tistischen Berechnungen hat, muss der Angreifer nicht verstehen, warum die DPA-Attacke arbeitet. Daher ist die DPA- Attacke prinzipiell eine billige und einfache Attacke. Ein Angreifer benötigt lediglich eine genaue Meßausrüstung, da die DPA-Attacke prinzipiell auf dem Eruieren eines Si- gnal/Rausch-Verhältnisses basiert. Darüber hinaus muss der Angreifer eine wiederholte Ausführung eines bekannten Algorithmus bewerkstelligen. Er muss also die Ausführung des Algorithmus mit demselben Schlüssel und variierenden Eingangsdaten provozieren können.In addition, it does not matter when exactly the cryptographic calculations are carried out on the chip, since the performance can be measured in a time interval. In addition, it is not necessary for an attacker who carries out a DPA attack to understand the nature of the DPA attack. If he knows how to proceed and has the software for the statistical calculations, the attacker does not have to understand why the DPA attack works. Therefore, the DPA attack is basically a cheap and simple attack. An attacker only needs precise measuring equipment, since the DPA attack is basically based on the determination of a signal / noise ratio. In addition, the attacker must repeat the execution of a known algorithm. He must therefore be able to provoke the execution of the algorithm with the same key and different input data.
Nachdem die DPA-Attacke im besonderen und insbesondere auch andere verwandte kryptographische Attacken auf dem Leistungsverbrauch der Schaltung, die einen kryptographischen Algorithmus durchführt, aufbaut, bestehen Bestrebungen zum Schutz gegen DPA-Attacken darin, dass der Leistungsverbrauch derSince the DPA attack in particular, and in particular also other related cryptographic attacks, builds on the power consumption of the circuit that carries out a cryptographic algorithm, efforts to protect against DPA attacks are based on the fact that the power consumption of the
Schaltung homogenisiert wird. Im Idealfall zeigt eine solche optimal gegen DPA-Attacken geschützte Schaltung ein immer gleiches Leistungsverbrauchsverhalten, und zwar unabhängig von den zu verschlüsselnden Daten, so dass ein DPA-Angreifer zwar seine DPA-Attacke ruhig durchführen kann, jedoch für sämtliche unterschiedlichen Eingangsdaten immer dasselbe Leistungsprofil erhält. In diesem Fall, wenn er immer das glei-
ehe Leistungsprofil gemessen hat, wird die statistische Analyse fehlschlagen bzw. keine signifikanten Ergebnisse liefern, so dass die DPA-Attacke zum Scheitern verurteilt ist.Circuit is homogenized. Ideally, such a circuit that is optimally protected against DPA attacks always shows the same power consumption behavior, regardless of the data to be encrypted, so that a DPA attacker can carry out his DPA attack calmly, but always receives the same performance profile for all different input data , In this case, if he always Before the performance profile has been measured, the statistical analysis will fail or will not produce any significant results, so that the DPA attack is doomed to fail.
Typische Schaltungen werden in CMOS-Technik aufgebaut. In CMOS-Technik aufgebaute Schaltungen verbrauchen dann, wenn keine Zustandsänderungen auftreten, nur eine vernachlässigbare Leistung. Ein Leistungsverbrauch tritt lediglich auf, wenn eine CMOS-Schaltung von einem Zustand (beispielsweise einer logischen 1) in den komplementären Zustand (eine logische 0) wechselt und umgekehrt. Darüber hinaus haben übliche CMOS- Schaltungen die Eigenschaft, dass Wechsel von 0 nach 1 (0 entspricht beispielsweise einer Spannung von 0 V oder Vss, während „1" beispielsweise einer hohen Spannung Vdd ent- spricht) einen anderen Leistungsverbrauch haben als Zustands- wechsel in umgekehrter Richtung. Das Leistungsprofil der Schaltung ist somit bei einem Wechsel von 1 auf 0 anders geartet als bei einem Wechsel von 0 auf 1. Um diesen Leistungsverbrauch zu homogenisieren, ist es bekannt, eine Dual-Rail- Schaltung 50 vorzusehen, wie sie in Fig. 5 dargestellt ist.Typical circuits are built using CMOS technology. Circuits built in CMOS technology consume only negligible power if no changes in state occur. Power consumption only occurs when a CMOS circuit changes from a state (for example a logic 1) to a complementary state (a logic 0) and vice versa. In addition, conventional CMOS circuits have the property that changes from 0 to 1 (0 corresponds, for example, to a voltage of 0 V or Vss, while “1” corresponds to a high voltage Vdd, for example) have a different power consumption than the change in state in The power profile of the circuit is thus different when changing from 1 to 0 than when changing from 0 to 1. In order to homogenize this power consumption, it is known to provide a dual-rail circuit 50, as shown in FIG 5 is shown.
Bei einer Dual-Rail-Schaltung ist jede logische Funktion und jede Verbindungsleitung zwischen logischen Funktionen doppelt ausgeführt. Der eine Pfad (Rail) verarbeitet das tatsächliche Nutzbit, während der andere Pfad parallel dazu das Bit verarbeitet, das zu dem Nutzbit komplementär ist. Findet somit auf der ersten Rail ein Wechsel von 1 auf 0 statt, so findet gleichzeitig dazu auf der anderen Rail ein Wechsel von 0 auf 1 statt. Im Leistungsverbrauch dieser Schaltung ergibt sich im Vergleich zu einer Single-Rail-Ausführung ein doppelt so hoher Peak, der nun jedoch, für jeden Wechsel auf dem Nutz- Pfad (und damit auf dem komplementären Pfad) gleich hoch ist.In a dual-rail circuit, each logical function and each connecting line between logical functions is designed twice. One path (rail) processes the actual useful bit, while the other path processes in parallel the bit that is complementary to the useful bit. If there is a change from 1 to 0 on the first rail, a change from 0 to 1 takes place simultaneously on the other rail. The power consumption of this circuit results in a peak that is twice as high as in a single-rail version, but is now the same for every change on the useful path (and thus on the complementary path).
Problematisch an einer Dual-Rail-Schaltung ist jedoch immer noch, dass, wenn ein Zustand in einem Takt gleich dem Zustand in dem darauffolgenden Takt ist, wenn also kein Zustandswech- sel stattfindet, auch kein Peak im Leistungsverbrauch auf-
tritt. Ein Angreifer kann zwar nicht mehr unterscheiden, ob ein Wechsel von 0 auf 1 oder von 1 auf 0 stattgefunden hat. Er kann jedoch sehr wohl am Leistungsprofil sehen, ob ein Zu- standswechsel stattgefunden hat oder nicht.However, a problem with a dual-rail circuit is still that if a state in one cycle is the same as the state in the subsequent cycle, that is, if there is no change of state, there is also no peak in power consumption. occurs. An attacker can no longer distinguish whether there has been a change from 0 to 1 or from 1 to 0. However, he can very well see from the performance profile whether a change of state has taken place or not.
Um auch diese Lücke zu schließen, wird die Dual-Rail-Technik um die Precharge bzw. Pre-Discharge-Technik ergänzt. Zwischen jeden Nutztakt N wird ein sogenannter Vorbereitungstakt Pr geschaltet, wie es durch einen Taktgenerator 51 in Fig. 5 an- gedeutet ist. Im Nutztakt führt die Dual-Rail-Schaltung die übliche von einem kryptographischen Algorithmus vorgegebene Berechnung durch. Im Vorbereitungstakt werden jedoch beide komplementären Leitungen, wie z. B. xl r NICHTxi auf den gleichen Zustand gelegt. Im Falle von Precharge ist dieser Zu- stand der hohe Spannungszustand. Im Falle von Pre-Discharge ist dieser Zustand der niedrige Spannungszustand. Abhängig davon, in welchem.. Setting die Dual-Rail-Schaltung 50 eingebettet ist, kann das Prechargen bzw. Pre-Dischargen durch eine in Fig. 5 schematisch dargestellte Vorbereitungseinrich- tung 52 am Eingang der Dual-Rail-Schaltung (xi) oder am Ausgang der Dual-Rail-Schaltung yi oder sowohl am Eingang als auch am Ausgang durchgeführt werden.In order to close this gap, the dual-rail technology is supplemented by the pre-charge or pre-discharge technology. A so-called preparation clock Pr is switched between each useful clock cycle N, as is indicated by a clock generator 51 in FIG. 5. In the useful cycle, the dual-rail circuit carries out the usual calculation specified by a cryptographic algorithm. In the preparation cycle, however, both complementary lines, such as. B. x lr NOT xi set to the same state. In the case of pre-charge, this state is the high voltage state. In the case of pre-discharge, this state is the low voltage state. Depending on the setting in which the dual-rail circuit 50 is embedded, the pre-batch or pre-batching can be carried out by means of a preparation device 52 shown schematically in FIG. 5 at the input of the dual-rail circuit (xi) or at the output of the dual-rail circuit yi or both at the input and at the output.
Die Verwendung der Precharge-Technik hat den Vorteil, dass sich nunmehr, wie es in der Tabelle in Fig. 6 dargestellt ist, von einem Takt zum nächsten, also von einem Prechar- ge/Pre-Discharge-Takt zu einem Nutztakt immer dieselbe Anzahl von Zuständen ändert, unabhängig davon, welche Zustände die zu verarbeitenden Nutzbits und die zu den Nutzbits komplemen- tären Bits haben. So ändern sich beim Übergang von dem Zustand 60 von Fig. 6 zu einem Zustand 61 in einem Nutztakt von Fig. 6 im Falle von Precharge (alle Leitungen sind auf „1") zwei Zustände (NICHTxi, x2) oder im Falle von Pre-Discharge ebenfalls zwei Zustände. Beim Wechsel von dem Zustand 61 zu einem Zustand 62 ändern sich wieder im Falle von Precharge genau zwei Bits und im Falle von Pre-Discharge ebenfalls zwei Bits. Ebenfalls findet eine Änderung von zwei Bits statt,
wenn von dem Zustand 62 in einen Zustand 63 gewechselt wird etc. Die Dual-Rail-Technik hat somit den entscheidenden Vorteil, dass ein Angreifer nicht zwischen einem Wechsel von 0 auf 1 oder 1 auf 0 unterscheiden kann (aufgrund der Dual- Rail-Technik) , und dass der Angreifer ferner nicht mehr am Leistungsprofil sehen kann, ob eine Zustandsänderung auf einer Leitung stattgefunden hat oder nicht.The use of the pre-charge technique has the advantage that, as shown in the table in FIG. 6, the number of cycles is always the same from one cycle to the next, ie from one pre-charge / pre-discharge cycle to one useful cycle of states changes, irrespective of which states the useful bits to be processed and the bits complementary to the useful bits have. Thus, in the case of precharge (all lines are on “1”), two states (NOT xi, x 2 ) or in the case of pre change during the transition from state 60 of FIG. 6 to state 61 in a useful cycle of FIG. 6 -Discharge also two states. When changing from state 61 to a state 62, exactly two bits change again in the case of pre-charge and two bits in the case of pre-discharge. A change of two bits also takes place, when changing from state 62 to state 63 etc. The dual rail technology therefore has the decisive advantage that an attacker cannot distinguish between a change from 0 to 1 or 1 to 0 (due to the dual rail technology ), and that the attacker can also no longer see from the performance profile whether a change in status has occurred on a line or not.
Obgleich die Dual-Rail-Technik mit Precharge/Pre-Discharge einen wirkungsvollen Schutz gegenüber DPA-Attacken liefert, wird sie teuer erkauft. Der Chipverbrauch der Dual-Rail- Schaltung ist doppelt so groß im Vergleich zu dem Fall, bei dem diese Schaltung in Single-Rail ausgeführt wird. Darüber hinaus ist der Energieverbrauch einer solchen Schaltung in Dual-Rail-Technik bis zu doppelt so hoch wie im Fall einer Dual-Rail-Technik ohne Precharge und sogar - aufgrund der doppelten Ausführung der Schaltung - viermal so hoch wie eine einfache unsichere Single-Rail-Schaltung. Darüber hinaus führt das Vorsehen von Precharge/Pre-Discharge-Takten zwi- sehen den Nutztakten dazu, dass der Datendurchsatz bezogen auf eine Anzahl von Taktzyklen halb so hoch ist.Although the dual-rail technology with pre-charge / pre-discharge provides effective protection against DPA attacks, it is expensive to buy. The chip consumption of the dual rail circuit is twice as large compared to the case in which this circuit is carried out in single rail. In addition, the energy consumption of such a circuit in dual-rail technology is up to twice as high as in the case of dual-rail technology without precharge and even - due to the double design of the circuit - four times as high as a simple, unsafe single-rail -Circuit. In addition, the provision of pre-charge / pre-discharge clocks between the useful clocks means that the data throughput is half as high in relation to a number of clock cycles.
Zusammenfassend führt eine Dual-Rail-Technik mit Precharge/Pre-Discharge zwar zu einer DPA-sicheren Schaltungsimple- mentierung. Diese Sicherheit wird jedoch teuer erkauft, nämlich durch einen bis zu doppelten Chipflächenverbrauch und einen bis zu vierfach erhöhten Energieverbrauch im Vergleich zu einer ungesicherten Schaltung.In summary, dual-rail technology with pre-charge / pre-discharge leads to a DPA-safe circuit implementation. However, this security is expensive, namely by up to twice the chip area consumption and up to four times the energy consumption compared to an unsecured circuit.
Die Aufgabe der vorliegenden Erfindung besteht darin, ein sicheres und dennoch effizientes Kryptographiekonzept zu schaffen .The object of the present invention is to create a secure, yet efficient cryptography concept.
Diese Aufgabe wird durch eine Vorrichtung gemäß Patentan- spruch 1, ein Verfahren gemäß Patentanspruch 17 oder ein Computer-Programm gemäß Patentanspruch 18 gelöst.
Der vorliegenden Erfindung liegt die Erkenntnis zugrunde, dass bei kryptographischen Algorithmen, die eine Anfangsstufe und eine nachfolgende Stufe bzw. eine Endstufe und eine vorausgehende Stufe haben, es ausreichend ist, um kryptographi- sehe Attacken abzuwehren, lediglich die Anfangsstufe und/oder die Endstufe gegenüber kryptographischen Attacken abzusichern. Erfindungsgemäß ist es jedoch nicht erforderlich, auch die Zwischenstufe bzw. die typischerweise mehreren Zwischenstufen vor kryptographischen Attacken abzusichern, so lange die der Anfangsstufe nachgeschaltete Stufe in ihren Berechnungen auf den von der Anfangsstufe ausgegebenen Ausgangsdaten aufbaut bzw. abhängt.This object is achieved by a device according to patent claim 1, a method according to patent claim 17 or a computer program according to patent claim 18. The present invention is based on the finding that, in the case of cryptographic algorithms which have an initial stage and a subsequent stage or an end stage and a preceding stage, it is sufficient to ward off cryptographic attacks only against the initial stage and / or the final stage secure cryptographic attacks. According to the invention, however, it is not necessary to secure the intermediate stage or the typically several intermediate stages from cryptographic attacks, as long as the stage downstream of the initial stage bases its calculations on the output data output by the initial stage.
Analog hierzu ist es für eine ebenfalls denkbare Rückwärtsat- tacke, also ausgehend von den verschlüsselten Daten durchgeführte Attacke ausreichend, lediglich die Endstufe gegen die Attacke zu sichern, nicht jedoch die der Endstufe vorausgehende Stufe, die typischerweise eine Zwischenstufe sein wird. In anderen Worten ausgedrückt genügt es, bei solchen kaska- dierten Algorithmen, bei denen eine Zwischenstufe auf Ergebnissen der vorhergehenden oder nachfolgenden Stufe aufbaut, lediglich die erste und/oder die letzte Stufe gegenüber kryptographischen Attacken abzusichern, während die Zwischenstufe bzw. die mehreren Zwischenstufen lediglich mit reduzierter Sicherheit oder überhaupt keiner Sicherheit implementiert werden, also in einer ungesicherten Betriebsart betrieben werden .Analogously to this, for a reverse attack which is also conceivable, that is to say an attack carried out on the basis of the encrypted data, it is sufficient to merely secure the final stage against the attack, but not the stage preceding the final stage, which will typically be an intermediate stage. In other words, in the case of such cascaded algorithms in which an intermediate stage is based on results from the preceding or subsequent stage, it is sufficient to secure only the first and / or the last stage against cryptographic attacks, while the intermediate stage or the plurality of intermediate stages merely be implemented with reduced security or no security at all, i.e. operated in an unsecured operating mode.
Dies ermöglicht natürlich Angriffe auf die in einer ungesi- cherten Betriebsart betriebenen Stufen. Diese werden jedoch nichts nützen, da keine klare Hypothese aufgestellt werden kann, da die Eingangsdaten in die nicht gesicherte Stufe bereits unter Verwendung eines geheimen Schlüssels verschlüsselt (bzw. im Falle der Entschlüsselung entschlüsselt) worden sind.
Bildlich ausgedrückt basiert die vorliegenden Erfindung somit auf der Erkenntnis, dass es ausreichend ist, einen verbotenen Gang dadurch abzusichern, dass lediglich die Eingangs- und die Ausgangstüre sicher versperrt werden, jedoch nicht in dem Gang ebenfalls vorhandene Zwischentüren, da ein Angreifer bildlich gesprochen nicht zur Zwischentür gelangen kann, wenn die Eingangs- und die Ausgangstür des Gangs optimal gesichert sind.Of course, this enables attacks on the stages operated in an unsecured operating mode. However, these will be of no use, since no clear hypothesis can be established, since the input data to the unsecured level has already been encrypted using a secret key (or decrypted in the case of decryption). In figurative terms, the present invention is therefore based on the knowledge that it is sufficient to secure a forbidden aisle by simply locking the entrance and exit doors securely, but not in the aisle also existing intermediate doors, because an attacker does not, figuratively speaking, do so Intermediate door can get if the entrance and the exit door of the corridor are optimally secured.
Wie es vorstehend ausgeführt worden ist, geht eine Sicherung gegenüber kryptographischen Attacken immer unmittelbar mit deutlich erhöhten Kosten an Chipfläche, Energieverbrauch und gegebenenfalls Verarbeitungszeit einher. Die erfindungsgemäße Berechnung von Zwischenstufen in einem ungesicherten Modus führt daher unmittelbar zu einer Einsparung an Energie, gegebenenfalls Chipfläche und gegebenenfalls Zeit. Sind jedoch die Anfangsstufe und/oder die Endstufe optimal abgesichert, also werden diese Stufen in einer gegenüber kryptographischen Attacken gesicherten Weise durchgeführt, so müssen keine Si- cherheitseinbußen hingenommen werden.As has been explained above, security against cryptographic attacks always goes hand in hand with significantly increased costs in chip area, energy consumption and possibly processing time. The inventive calculation of intermediate stages in an unsecured mode therefore leads directly to a saving in energy, possibly chip area and possibly time. However, if the initial stage and / or the final stage are optimally secured, ie if these stages are carried out in a manner that is secured against cryptographic attacks, then no security losses have to be accepted.
Die vorliegende Erfindung liefert somit ein einerseits sicheres und andererseits effizienteres Konzept zum Berechnen von verschlüsselten Ausgangsdaten aus Klartext-Eingangsdaten oder - im Falle der Entschlüsselung - ein Konzept zum Berechnen von Klartext-Eingangsdaten aus verschlüsselten Ausgangsdaten.The present invention thus provides, on the one hand, a secure and, on the other hand, a more efficient concept for calculating encrypted output data from plain text input data or - in the case of decryption - a concept for calculating plain text input data from encrypted output data.
Ein Vorteil der vorliegenden Erfindung besteht somit darin, dass der Aufwand im Sinne zumindest des Strom/Energiebedarfs reduziert wird, während dennoch eine erfolgreiche Abwehr von DPA-Attacken auf kryptographische Schaltungen gewährleistet ist, wenn, wie es bei einem bevorzugten Ausführungsbeispiel der Fall ist, eine Dual-Rail-Precharge-Logik als Maßnahme zum gesicherten Durchführen der Anfangsstufe und/oder der Endstu- fe eines kryptographischen Algorithmus eingesetzt wird.
Im Gegensatz zu einer Anwendung, bei der DPA-Attacken dadurch abgewehrt werden sollten, indem eine Dual-Rail-Precharge- Logik beispielsweise für ein DES-Modul eingesetzt worden ist, bei dem während der gesamten Berechnung des DES-Algorithmus der Precharge-Vorgang durchgeführt worden ist, was zu einem erheblichen Energie-Mehrverbrauch bezogen auf Nicht-DPA- gesicherte Schaltungen gleicher Funktion führen würde, wird erfindungsgemäß der Energie-Mehrverbrauch lediglich dort in Kauf genommen, wo er auch nötig ist, nämlich zum Durchführen der Anfangsstufe und/oder der Endstufe des kryptographischen Algorithmus auf gesicherte Art und Weise.An advantage of the present invention is thus that the effort in terms of at least the current / energy requirement is reduced, while a successful defense against DPA attacks on cryptographic circuits is nevertheless ensured if, as is the case in a preferred exemplary embodiment, one Dual-rail pre-charge logic is used as a measure for securely carrying out the initial stage and / or the final stage of a cryptographic algorithm. In contrast to an application in which DPA attacks should be warded off by using a dual-rail precharge logic, for example for a DES module, in which the precharge process is carried out during the entire calculation of the DES algorithm What would lead to considerable additional energy consumption in relation to non-DPA-secured circuits with the same function, the additional energy consumption according to the invention is only accepted where it is also necessary, namely to carry out the initial stage and / or Power stage of the cryptographic algorithm in a secure manner.
Da die DPA darauf beruht, dass für die Überprüfung der Annahme (Hypothese) über das „Target-Bit" eine Berechnung eines Teils des DES-Algorithmus ausgeführt werden muss, wobei eine Attacke typischerweise in den Runden 2 oder 15 der 16 DES- Runden stattfindet, werden erfindungsgemäß die Runden 3 bis 14 nicht besonders geschützt, wenn die Attacke auf die Rundenschlüssel der Runden 2 bzw. 15 bereits erfolgreich abge- wehrt worden ist. Erfindungsgemäß wird erkannt, dass zumindest ein Durchführen des Precharge-Vorgangs in den Runden 3 bis 14 eine Energieverschwendung darstellt, wenn sichergestellt ist, dass die Teilschlüssel aus den Runden 1 und 2 (der Anfangsstufe) bzw. 15 und 16 (der Endstufe) erfolgreich „verteidigt" werden können.Since the DPA is based on the fact that to check the assumption (hypothesis) via the “target bit”, a calculation of a part of the DES algorithm has to be carried out, an attack typically taking place in rounds 2 or 15 of the 16 DES rounds According to the invention, rounds 3 to 14 are not particularly protected if the attack on the round key of rounds 2 or 15 has already been successfully warded off, and it is recognized according to the invention that at least the precharge process is carried out in rounds 3 to 14 represents a waste of energy if it is ensured that the partial keys from rounds 1 and 2 (the initial stage) or 15 and 16 (the final stage) can be successfully "defended".
Die vorliegende Erfindung besteht somit auch in einer flexiblen Ansteuerung für einen Dual-Rail-Precharge-fähigen Core für den betrachteten kryptographischen Algorithmus, welche den Precharge-Vorgang in den Runden 3 bis 14 unterbindet, um Strom zu sparen, während gleichzeitig das Sicherheitsniveau der gesamten DES-Berechnung nicht verschlechtert wird. Bei einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung wird somit eine Ansteuerung vorgesehen, welche in Kennt- nis der „gefährdeten" und der „ungefährdeten" Runden einer kryptographischen Berechnung arbeitet, um nur in den „gefähr-
deten" Runden den energieintensiven Precharge/Pre-Discharge- Modus zu aktivieren.The present invention thus also consists in a flexible control for a dual-rail precharge-capable core for the cryptographic algorithm under consideration, which prevents the precharge process in rounds 3 to 14 in order to save electricity, while at the same time reducing the security level of the whole DES calculation does not deteriorate. In a preferred exemplary embodiment of the present invention, a control is thus provided which operates in the knowledge of the "endangered" and "endangered" rounds of a cryptographic calculation in order to only operate in the "endangered" "rounds to activate the energy-intensive pre-charge / pre-discharge mode.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen detailliert erläutert. Es zeigen:Preferred embodiments of the present invention are explained in detail below with reference to the accompanying drawings. Show it:
Fig. 1 ein Blockschaltbild einer erfindungsgemäßen Vorrichtung zum Berechnen von verschlüsselten Daten aus Klartextdaten oder umgekehrt;1 shows a block diagram of a device according to the invention for calculating encrypted data from plain text data or vice versa;
Fig. 2 ein bevorzugtes Ausführungsbeispiel der in Fig. 1 dargestellten Vorrichtung;Fig. 2 shows a preferred embodiment of the device shown in Fig. 1;
Fig. 3a ein Blockschaltbild des Ablaufs des DES- Algorithmus;3a shows a block diagram of the sequence of the DES algorithm;
Fig. 3b ein Blockschaltbild der Rundenfunktion f des DES- Algorithmus von Fig. 3a;3b is a block diagram of the round function f of the DES algorithm of FIG. 3a;
Fig. 4 ein Blockschaltbild eines allgemeinen kaskadierten Kryptoalgorithmus ;4 is a block diagram of a general cascaded crypto-algorithm;
Fig. 5 ein Prinzipschaltbild einer Dual-Rail-Schaltung mit Precharge/Pre-Discharge; und5 shows a basic circuit diagram of a dual-rail circuit with pre-charge / pre-discharge; and
Fig. 6 eine Tabelle zur Veranschaulichung der Wirkungsweise von Precharge/Pre-Discharge.Fig. 6 is a table illustrating the operation of pre-charge / pre-discharge.
Fig. 1 zeigt ein Blockschaltbild eines bevorzugten Ausführungsbeispiels der vorliegenden Erfindung. Insbesondere zeigt Fig. 1 eine Vorrichtung zum Berechnen von verschlüsselten Daten aus Klartextdaten oder umgekehrt, d. h. zum Berechnen von Klartextdaten aus verschlüsselten Daten. Hierzu wird ein kryptographischer Algorithmus eingesetzt, der bei dem in Fig. 1 gezeigten Ausführungsbeispiel eine Anfangsstufe 10, zumindest eine Zwischenstufe 11 und eine Endstufe 12 aufweist.
Falls die in Fig. 1 gezeigte Vorrichtung zum Verschlüsseln eingesetzt wird, also zum Erzeugen von verschlüsselten Ausgangsdaten aus Klartext-Eingangsdaten, so werden in die Anfangsstufe 10 die Klartext-Eingangsdaten eingespeist, oder aber Eingangsdaten, die von den ursprünglichen Klartext- Eingangsdaten ohne Verwendung eines Schlüssels abgeleitet worden sind. Solchermaßen abgeleitete Klartext-Eingangsdaten, die in die Anfangsstufe 10 eingespeist werden können, sind beispielsweise die Ausgangsdaten der Anfangspermutation 31 von Fig. 3a, die den DES-Algorithmus darstellt.1 shows a block diagram of a preferred embodiment of the present invention. In particular, FIG. 1 shows a device for calculating encrypted data from plain text data or vice versa, ie for calculating plain text data from encrypted data. For this purpose, a cryptographic algorithm is used, which in the exemplary embodiment shown in FIG. 1 has an initial stage 10, at least one intermediate stage 11 and an end stage 12. If the device shown in Fig. 1 is used for encryption, i.e. for generating encrypted output data from plain text input data, then the plain text input data are fed into the initial stage 10, or input data that is different from the original plain text input data without using a Key have been derived. Such derived plain text input data that can be fed into the initial stage 10 are, for example, the output data of the initial permutation 31 from FIG. 3a, which represents the DES algorithm.
An dieser Stelle sei darauf hingewiesen, dass die Schlüssel für die Stufen des Algorithmus voneinander abhängig sein können oder nicht. In dem Fall, in dem die Stufen Runden von z. B. dem DES-Algorithmus sind, sind die Schlüssel voneinander abhängig, da sie alle von einem gemeinsamen „Ober-Schlüssel" abgeleitet werden. Alternativ können die Schlüssel auch für voneinander unabhängige Stufen, wie z. B. im Triple-DES, voneinander unabhängig sein.At this point it should be noted that the keys for the stages of the algorithm may or may not be dependent on each other. In the case where the stages have laps of e.g. For example, the DES algorithm, the keys are dependent on one another, since they are all derived from a common “master key”. Alternatively, the keys can also be independent of one another for independent stages, such as, for example, in triple DES his.
Aus der Anfangsstufe 10 werden verschlüsselte Daten ausgegeben, die unter Verwendung des der Anfangsstufe 10 bereitgestellten Schlüssels KA verschlüsselt worden sind. Diese Ausgabedaten der Anfangsstufe 10 werden dann der Zwischenstufe 11 zugeführt, damit dieselbe eine erneute Verschlüsselung der bereits verschlüsselten Ausgangsdaten der Anfangsstufe 10 durchführt, wobei die Zwischenstufe 11 hierbei, wie es in Fig. 1 gezeigt ist, einen Schlüssel Kj. verwendet. Verschlüsselte Ausgangsdaten der Zwischenstufe 11, die nunmehr bereits unter Verwendung von zwei Schlüsseln KA und Kj. verschlüsselt sind, welche vorzugsweise unterschiedlich sind, werden dann in die Endstufe 12 (nach einer Bearbeitung in möglicherweise noch zwischen der Zwischenstufe 11 und der Endstufe 12 angeordneten Zwischenstufen) , um dort unter Verwendung des Schlüssels KE erneut verschlüsselt zu werden, um schließlich die verschlüsselten Ausgangsdaten oder Ausgangsdaten zu erhalten, aus denen die verschlüsselten Ausgangsdaten abgelei-
tet werden. Diese Ableitungsvorschrift kann wieder ohne Verwendung eines kryptographischen Schlüssels stattfinden und entspricht beispielsweise der inversen Permutation 38 von Fig. 3a am Beispiel des DES-Algorithmus.Encrypted data are output from the initial stage 10, which have been encrypted using the key K A provided to the initial stage 10. These output data of the initial stage 10 are then fed to the intermediate stage 11 so that the latter performs a re-encryption of the already encrypted output data of the initial stage 10, the intermediate stage 11, as shown in FIG. 1, having a key Kj . used. Encrypted output data of the intermediate stage 11, which is now already using two keys K A and Kj . are encrypted, which are preferably different, are then in the final stage 12 (after processing in intermediate stages possibly still arranged between the intermediate stage 11 and the final stage 12), in order to be re-encrypted there using the key K E , in order to finally encrypt the encrypted ones To receive output data or output data from which the encrypted output data are derived be tested. This derivation rule can again take place without the use of a cryptographic key and corresponds, for example, to the inverse permutation 38 of FIG. 3a using the DES algorithm as an example.
Die Prozessoreinrichtung zum Durchführen der Anfangsstufe 10, der zumindest einen Zwischenstufe 11 oder der Endstufe 12 des kryptographischen Algorithmus ist ausgebildet, um die Anfangsstufe 10 und/oder die Endstufe 12 auf eine gegenüber ei- ner kryptographischen Attacke gesicherte Weise auszuführen, was durch die doppelte Umrandung in Fig. 1 dargestellt ist. Die Prozessoreinrichtung 13 ist ferner ausgebildet, um die Durchführung der Zwischenstufe 11 auf eine gegenüber einer kryptographischen Attacke ungesicherte Weise zu bewerkstelli- gen.The processor device for performing the initial stage 10, the at least one intermediate stage 11 or the final stage 12 of the cryptographic algorithm is designed to carry out the initial stage 10 and / or the final stage 12 in a manner secured against a cryptographic attack, which is due to the double border is shown in Fig. 1. The processor device 13 is also designed to carry out the implementation of the intermediate stage 11 in a manner that is not secured against a cryptographic attack.
In diesem Zusammenhang sei darauf hingewiesen, dass die Durchführung der Zwischenstufe 11 nicht vollständig ungesichert gegenüber einer kryptographischen Attacke sein muss, sondern lediglich - im Vergleich zur Durchführung der Anfangsstufe 10 und der Endstufe 12 ungesicherter, also unter Verwendung weniger oder keiner Gegenmaßnahmen gegen eine kryptographische Attacke. Wird eine hohe Sicherheit angestrebt, so führt dies unmittelbar zu einem hohen Aufwand an Chipfläche, Energie und gegebenenfalls Zeit. Wird dagegen für eine Berechnung weniger Sicherheit benötigt, so führt dies unmittelbar zu einem geringeren Aufwand an Energie, gegebenenfalls Chipfläche und gegebenenfalls Zeit.In this context, it should be pointed out that the implementation of the intermediate stage 11 does not have to be completely unsecured against a cryptographic attack, but only - compared to the implementation of the initial stage 10 and the final stage 12, it is unsecured, i.e. using fewer or no countermeasures against a cryptographic attack , If a high level of security is sought, this immediately leads to a high expenditure of chip area, energy and possibly time. If, on the other hand, less security is required for a calculation, this immediately leads to a lower expenditure of energy, possibly chip area and possibly time.
Die in Fig. 1 gezeigte erfindungsgemäße Vorrichtung bringt es somit mit sich, dass sie im Vergleich zu dem Fall, in dem die Anfangsstufe 10, die Zwischenstufe 11 und die Endstufe 12 alle auf eine gegenüber einer kryptographischen Attacke gesicherte Art und Weise ausgeführt werden, eine Aufwandsredukti- on hat, da ein zusätzlicher Aufwand für die Sicherheit zumindest bei der Berechnung der Zwischenstufe nicht oder nur kaum anfällt .
Erfindungsgemäß wird daher davon ausgegangen, dass ein Angreifer ruhig, so er dies wünscht, einen Angriff auf die Zwischenstufe ausführen kann, sofern ihm dies überhaupt möglich ist, wenn daran gedacht wird, dass die Ausgangsdaten und die Eingangsdaten irgendwo auf dem Chip vorhanden sind und daher schwer zugänglich sind. Gelingt es einem Angreifer jedoch, einen Angriff auf die Zwischenstufe durchzuführen, so hilft ihm dies dennoch nicht weiter, da er keine vernünftige Hypo- these aufstellen kann, da ja bereits die Eingangsdaten in die Zwischenstufe unter Verwendung des Schlüssels KA in Fig. 1 verschlüsselt worden sind. Nachdem die Anfangsstufe 10 auf gesicherte Art und Weise berechnet wird, wird es einem Angreifer nicht gelingen, den geheimen Schlüssel KA der An- fangsstufe herauszufinden.The device according to the invention shown in FIG. 1 therefore entails that, compared to the case in which the initial stage 10, the intermediate stage 11 and the final stage 12 are all carried out in a manner secured against a cryptographic attack Reduction of effort because at least when calculating the intermediate stage there is little or no additional effort for safety. According to the invention it is therefore assumed that an attacker can, if he so desires, carry out an attack on the intermediate stage, if this is possible at all, if it is thought that the output data and the input data are present somewhere on the chip and therefore are difficult to access. However, if an attacker succeeds in carrying out an attack on the intermediate stage, this does not help him further since he cannot make a reasonable hypothesis, since the input data into the intermediate stage is already encrypted using the key K A in FIG. 1 have been. After the initial level 10 has been calculated in a secure manner, an attacker will not be able to find out the secret key K A of the initial level.
Bei dem in Fig. 1 gezeigten bevorzugten Ausführungsbeispiel der vorliegenden Erfindung müssen somit keine Sicherheitskompromisse eingegangen werden. Bei gleichem Sicherheitsniveau im Vergleich zu einem vollständig gesicherten Ausführungsbeispiel des Algorithmus wird jedoch zumindest eine Energieeinsparung und bei bestimmten Implementierungen auch eine Zeit- und eine Chipflacheneinsparung erreicht, wie später dargelegt wird.In the preferred exemplary embodiment of the present invention shown in FIG. 1, no security compromises need to be made. With the same level of security compared to a fully secured embodiment of the algorithm, however, at least energy savings and, in certain implementations, time and chip area savings are achieved, as will be explained later.
Bei einem alternativen Ausführungsbeispiel, bei dem lediglich eine sogenannte Vorwärts-Attacke möglich ist, was prinzipiell von der Art des eingesetzten Kryptoalgorithmus abhängen wird, genügt es, lediglich die Anfangsstufe 10 abzusichern und die Zwischenstufe 11, die in diesem Fall auch die Endstufe sein könnte, ungesichert aber aufwandsarm auszuführen. In diesem Fall hätte ein kryptographischer Algorithmus zumindest zwei Stufen, nämlich die Anfangsstufe 10 und die nachgeschaltete Zwischenstufe 11, die gleichzeitig die Endstufe ist. In die- sem Fall genügt es, lediglich die Anfangsstufe 10 abzusichern .
Bei einem alternativen Ausführungsbeispiel der vorliegenden Erfindung sind lediglich Rückwärtsattacken möglich. In diesem Fall ist es notwendig, die Endstufe 12 abzusichern, jedoch nicht die Zwischenstufe 11, die in diesem Fall gleichzeitig die Anfangsstufe sein könnte. Hätte ein solcher Algorithmus drei Stufen, so würde eine eigene Anfangsstufe vorhanden sein, die aufgrund der lediglich vom Ausgang zum Eingang wirkenden kryptographischen Attacken ebenfalls nicht abgesichert werden müsste.In an alternative embodiment in which only a so-called forward attack is possible, which will depend in principle on the type of crypto-algorithm used, it is sufficient to secure only the initial stage 10 and the intermediate stage 11, which in this case could also be the final stage. to be carried out unsecured but with little effort. In this case, a cryptographic algorithm would have at least two stages, namely the initial stage 10 and the downstream intermediate stage 11, which is also the final stage. In this case, it is sufficient to secure only the initial stage 10. In an alternative embodiment of the present invention, only reverse attacks are possible. In this case, it is necessary to secure the final stage 12, but not the intermediate stage 11, which in this case could also be the initial stage. If such an algorithm had three stages, there would be its own initial stage, which would also not need to be secured due to the cryptographic attacks that only act from the exit to the entrance.
Die erfindungsgemäße Vorrichtung stellt somit durch Absichern entweder der ersten Stufe 10 oder der letzten Stufe 12 oder der ersten Stufe 10 und der letzten Stufe 12 gesichert, dass zumindest DPA-Attacken scheitern werden, während gleichzeitig durch ungesicherte Berechnung der Zwischenstufen, die aufgrund der mangelnden Hypothese nicht angreifbar sind, Einsparungen an Chipfläche, Energie oder Zeit erreicht werden.The device according to the invention thus ensures by securing either the first stage 10 or the last stage 12 or the first stage 10 and the last stage 12 that at least DPA attacks will fail, while at the same time by unsecured calculation of the intermediate stages due to the lack of hypothesis cannot be attacked, savings in chip area, energy or time can be achieved.
Ist die in Fig. 1 gezeigte Prozessoreinrichtung derart imple- mentiert, dass sie ein eigenes Rechenwerk für die Anfangsstufe 10, ein eigenes Rechenwerk für die Zwischenstufe 11 und ein eigenes Rechenwerk für die Zwischenstufe 12 aufweist, so werden bei dem bevorzugten Ausführungsbeispiel, bei dem die Anfangsstufe und die Endstufe abgesichert werden, dieselben zumindest in Dual-Rail und noch besser in Dual-Rail mit Precharge ausgeführt sein, während das Rechenwerk, das die Zwischenstufe 11 des Algorithmus implementiert, in einfacher Single-Rail-Technik ohne Precharge implementiert ist. Dies führt im Hinblick auf die Zwischenstufe 11 zu einer Chipflä- chen-Halbierung für das Rechenwerk für die Zwischenstufe 11 im Vergleich zu einer Dual-Rail-Implementierung. Ferner wird im Vergleich zu einer vollständigen Implementierung mit Dual- Rail und Precharge eine Energieeinsparung von circa 75% erreicht. Darüber hinaus ist eine schnellere Taktung möglich oder angepasst an die Taktraten der Ausgangsstufe und derIf the processor device shown in FIG. 1 is implemented in such a way that it has its own arithmetic unit for the initial stage 10, its own arithmetic unit for the intermediate stage 11 and its own arithmetic unit for the intermediate stage 12, in the preferred embodiment in which the The initial stage and the final stage are protected, they are designed at least in dual-rail and even better in dual-rail with precharge, while the arithmetic unit that implements intermediate stage 11 of the algorithm is implemented in simple single-rail technology without precharge. With regard to the intermediate stage 11, this leads to a chip area halving for the arithmetic unit for the intermediate stage 11 in comparison to a dual-rail implementation. Furthermore, compared to a full implementation with dual-rail and pre-charge, energy savings of around 75% are achieved. In addition, faster clocking is possible or adapted to the clock rates of the output stage and the
Eingangsstufe eine langsamere Taktung, die ebenfalls mit ver-
ringertem Energieverbrauch und einfacheren Taktgeneratorschaltungen einhergeht.Input stage a slower clocking, which also with reduced energy consumption and simpler clock generator circuits.
Bei einem alternativen Ausführungsbeispiel der vorliegenden Erfindung, das in Fig. 2 dargestellt ist, wird die iterative Struktur eines Algorithmus dahingehend ausgenutzt, dass ein einziges Rechenwerk vorgesehen ist, um beispielsweise sämtliche an sich identischen Rundenfunktionen f (Block 33 in Fig. 3a) beispielsweise des DES-Algorithmus zu berechnen. Ein sol- ches Rechenwerk ist in Fig. 2 bei 20 schematisch dargestellt. Da das Rechenwerk sowohl die Anfangsstufe 10 als auch die Endstufe 12 von Fig. 1 gesichert berechnen soll, ist das Rechenwerk für die kryptographische Funktion in Dual-Rail- Technik ausgeführt. Es enthält somit einen Nutzeingang 21a, der eine bestimmte Breite von n Bits hat, und einen komplementären Eingang 21b, der die gleiche Bitbreite n hat. Das Rechenwerk 20 umfasst einen Nutzausgang 22a und einen komplementären Ausgang 22b, die eine Bitbreite von m haben, wobei beim DES-Algorithmus m gleich n sein kann, obgleich dies für die vorliegende Erfindung nicht wesentlich ist.In an alternative exemplary embodiment of the present invention, which is shown in FIG. 2, the iterative structure of an algorithm is used in such a way that a single arithmetic unit is provided in order, for example, to perform all round functions f (block 33 in FIG To calculate DES algorithm. Such an arithmetic unit is shown schematically at 20 in FIG. Since the arithmetic unit should reliably calculate both the initial stage 10 and the final stage 12 of FIG. 1, the arithmetic unit for the cryptographic function is implemented in dual-rail technology. It thus contains a user input 21a, which has a certain width of n bits, and a complementary input 21b, which has the same bit width n. The arithmetic logic unit 20 comprises a useful output 22a and a complementary output 22b, which have a bit width of m, where in the DES algorithm m can be n, although this is not essential for the present invention.
Die in Fig. 2 gezeigte Prozessoreinrichtung umfasst ferner eine Vorbereitungseinrichtung 23, die ein Precharge oder Pre- Discharge durch Aufladen bzw. Entladen der Eingänge 21a, 21b und/oder der Ausgänge 22a, 22b des Rechenwerks 20 auf denselben Spannungspegel durchführt, wie es bereits anhand der in Fig. 6 gezeigten Tabelle erläutert worden ist. Die in Fig. 2 gezeigte Prozessoreinrichtung umfasst ferner eine steuerbare Taktzuführung 24, die ebenso wie die Vorbereitüngseinrichtung 23 von einer Steuereinrichtung 25 steuerbar ist. Die in Fig. 2 gezeigte Prozessoreinrichtung umfasst ferner, um für den DES-Algorithmus geeignet zu sein, einen Datenein- gangs/Ausgangs-Multiplexer, der in Fig. 2 nicht gezeigt ist, sowie einen Schlüsselgenerator zum Ableiten der Rundenschlüs- sei Kx bzw., wenn diese Funktion extern ausgeführt ist, zumindest eine Schlüsselzuführung, die in Fig. 2 ebenfalls nicht dargestellt ist. Der Dateneingangs-/Ausgangs-
Multiplexer und die Schlüsselzuführung stellen sicher, dass das Rechenwerk 20 in jeder Runde des DES-Algorithmus, der in Fig. 3a gezeigt ist, mit den korrekten Daten gespeist wird und dass die Ausgangsdaten des Rechenwerks an den Ausgängen 22a und 22b richtig weiterverarbeitet bzw. der XOR- Verknüpfung etc. unterzogen werden, falls die entsprechende XOR-Verknüpfung 34 extern von dem Rechenwerk 20 für die kryptographische Funktion angeordnet ist.The processor device shown in FIG. 2 further comprises a preparation device 23 which carries out a pre-charge or pre-discharge by charging or discharging the inputs 21a, 21b and / or the outputs 22a, 22b of the arithmetic logic unit 20 to the same voltage level as already described the table shown in Fig. 6 has been explained. The processor device shown in FIG. 2 further comprises a controllable clock feed 24, which, like the preparation device 23, can be controlled by a control device 25. The processor device shown in FIG. 2 further comprises, in order to be suitable for the DES algorithm, a data input / output multiplexer, which is not shown in FIG. 2, and a key generator for deriving the round key K x or if this function is carried out externally, at least one key feed, which is also not shown in FIG. 2. The data input / output Multiplexers and the key feed ensure that the arithmetic logic unit 20 is fed with the correct data in each round of the DES algorithm shown in FIG. 3a, and that the output data of the arithmetic logic unit at the outputs 22a and 22b are processed correctly or respectively XOR link etc. are subjected if the corresponding XOR link 34 is arranged externally by the arithmetic unit 20 for the cryptographic function.
Die Steuereinrichtung 25 ist wirksam, um dann, wenn die Prozessoreinrichtung 13 die Anfangsstufe 10 von Fig. 1 des kryptographischen Algorithmus durchführt, die Vorbereitungseinrichtung 23 und die steuerbare Taktzuführung 24 dahingehend zu steuern, dass ein Precharge/Pre-Discharge-Betrieb statt- findet, dahingehend, dass die Eingänge und/oder Ausgänge des Rechenwerks 20 entsprechend vorbereitet werden (durch Aufladung oder Entladung auf einen gleichen Wert) , und dass gleichzeitig die steuerbare Taktzuführung 24 auf einen Nutztakt einem Precharge-Takt oder Pre-Discharge-Takt (P-Takt) durchführt, damit das Rechenwerk 20 für kryptographischeThe control device 25 is effective in order to control the preparation device 23 and the controllable clock feeder 24 in such a way that a pre-charge / pre-discharge operation takes place when the processor device 13 carries out the initial stage 10 of FIG. 1 of the cryptographic algorithm. in that the inputs and / or outputs of the arithmetic and logic unit 20 are prepared accordingly (by charging or discharging to the same value), and at the same time the controllable clock feed 24 to a useful cycle, a pre-charge cycle or pre-discharge cycle (P cycle ) so that the arithmetic unit 20 for cryptographic
Funktionen, das ohnehin in Dual-Rail-Technik ausgeführt ist, ein optimal sicheres Leistungsprofil liefert.Functions, which is already carried out in dual-rail technology, delivers an optimally safe performance profile.
Ist die Anfangsstufe des Algorithmus fertig berechnet, so weiß dies die Steuereinrichtung 25, wenn sie den Ablauf des gesamten Algorithmus steuert, oder wird dies der Steuereinrichtung 25 durch eine zentrale Steuerung mitgeteilt. In diesem Fall wird das Rechenwerk 20 von seinem gesicherten Berechnungsmodus in den ungesicherten Berechnungsmodus geschal- tet, indem die Vorbereitungseinrichtung 23 deaktiviert wirdOnce the initial stage of the algorithm has been calculated, the control device 25 knows this when it controls the execution of the entire algorithm, or this is communicated to the control device 25 by a central controller. In this case, the arithmetic and logic unit 20 is switched from its secured calculation mode to the unsecured calculation mode by deactivating the preparation device 23
(AUS) , und indem die steuerbare Taktzuführung 24 angesprochen wird, um nunmehr keinen Precharge-Takt zu liefern. Das Rechenwerk 20 erhält im ungesicherten Modus von der steuerbaren Taktzuführung 24 lediglich Nutztakte.(OFF), and by addressing the controllable clock feed 24 in order to now not deliver a pre-charge clock. In unsecured mode, the arithmetic logic unit 20 receives only useful cycles from the controllable clock feed 24.
Ist der Datendurchsatz der Prozessoreinrichtung im gesicherten Modus und im ungesicherten Modus gleich, so muss die
steuerbare Taktzuführung 24 im ungesicherten Berechnungsmodus lediglich noch halb so viele Taktimpulse liefern, was zumindest zu einer Halbierung des Energieverbrauchs im Vergleich zum sicheren Berechnungsmodus für die Anfangsstufe und die Endstufe führt.If the data throughput of the processor device is the same in the secure mode and in the unsecured mode, then the controllable clock feed 24 in the unsecured calculation mode only deliver half as many clock pulses, which leads to at least a halving of the energy consumption compared to the safe calculation mode for the initial stage and the final stage.
Um die Eingriffe in das Dual-Rail-Rechenwerk 29 so gering als möglich zu halten, kann die Komplementär-Schiene des Rechenwerks 20 im ungesicherten Berechnungsmodus weiterhin „mitlau- fen", obgleich dies nicht zwingend notwendig ist. Zur weiteren Energieverbrauchsreduktion kann bei einem alternativen Ausführungsbeispiel der vorliegenden Erfindung die Steuereinrichtung 25 ferner ausgebildet sein, um in dem Rechenwerk 20 die zweite Schiene, also die Komplementärschiene, zu deakti- vieren, wie es durch einen gestrichelten Steuerpfeil in Fig. 2 dargestellt ist, so dass durch diese Komplementärschiene im ungesicherten Berechnungsmodus keine Leistung verbraucht wird, was zu einer weiteren erheblichen Energieverbrauchsreduktion führen wird.In order to keep the interventions in the dual-rail arithmetic unit 29 as low as possible, the complementary rail of the arithmetic unit 20 can continue to "run" in the unsecured calculation mode, although this is not absolutely necessary. An alternative can be used to further reduce energy consumption In the exemplary embodiment of the present invention, the control device 25 can also be designed to deactivate the second rail, ie the complementary rail, in the arithmetic logic unit 20, as is shown by a dashed control arrow in FIG. 2, so that this complementary rail in the unsecured calculation mode no power is consumed, which will lead to a further significant reduction in energy consumption.
Selbst wenn im ungesicherten Berechnungsmodus die Komplementärschiene mitläuft, jedoch aus Gründen der Energieeinsparung auf den Precharge/Pre-Discharge-Takt (Vorbereitungstakt) verzichtet wird, führt bereits die Halbierung der Anzahl der Taktflanken zu einer erheblichen Energieeinsparung, die aus folgenden Gründen für bestimmte Ausführungen noch weiter erhöht werden kann. Üblicherweise wird ein Arbeitstakt auf einem Chip unter Verwendung eines sogenannten Taktbaums erzeugt. Ein genauer Taktoszillator, der bei einer bestimmten Arbeitsfrequenz einen genauen Master-Takt liefert, sitzt an der Wurzel eines Taktbaums . Takte mit unterschiedlichen Taktraten können durch Teilung bzw. Vervielfachung von diesem Master-Takt abgeleitet werden. Nachdem auf einem Chip üblicherweise nur eine begrenzte Anzahl von Taktgeneratoren, im Ex- tremfall nur ein einziger Taktgenerator, vorhanden ist, und der Takt bzw. die verschiedenen Takte an viele Stellen auf dem Chip verteilt werden müssen, sind im Taktbaum ferner meh-
rere Taktverstärker vorhanden, die ebenfalls einen beträchtlichen Energieverbrauch haben. Ist der Taktbaum derart ausgestaltet, dass die steuerbare Taktzuführung 24 einen Taktzugang für einen „sicheren" Takt hat, der einen Nutztaktimpuls und einen Vorbereitungstaktimpuls aufweist, und ist die steuerbare Taktzuführung 24 ferner ausgebildet, um parallel hierzu dem Rechenwerk einen „ungesicherten" Arbeitstakt zuzuführen, der bei der im Vergleich zum sicheren Takt halben Taktfrequenz liegt, so wird bereits eine Energieeinsparung er- reicht, wenn im Falle des ungesicherten Modus von dem „sicheren" Takt auf den „ungesicherten" Takt umgeschaltet wird. Wird dagegen der „sichere" Takt unmittelbar bei seiner Erzeugung, also möglichst weit oben im Taktbaum, deaktiviert, so werden auch die im Taktbaum für den sicheren Takt vorhandenen Taktverstärker deaktiviert sein, so dass sie ebenfalls keinen Energieverbrauch mit sich bringen.Even if the complementary track runs in the unsecured calculation mode, but the precharge / pre-discharge cycle (preparation cycle) is dispensed with for reasons of energy saving, halving the number of clock edges leads to considerable energy savings, which for certain reasons still applies to certain versions can be further increased. A working cycle is usually generated on a chip using a so-called clock tree. A precise clock oscillator, which delivers an exact master clock at a certain operating frequency, is located at the root of a clock tree. Cycles with different clock rates can be derived from this master clock by division or multiplication. Since there is usually only a limited number of clock generators on a chip, in extreme cases only a single clock generator, and the clock or the various clocks have to be distributed to many locations on the chip, the clock tree also contains more There are more clock amplifiers that also consume a considerable amount of energy. If the clock tree is configured in such a way that the controllable clock feed 24 has a clock access for a “safe” clock, which has a useful clock pulse and a preparation clock pulse, and the controllable clock feed 24 is also designed to feed an “unsecured” work clock to the arithmetic unit, which is at half the clock frequency in comparison to the safe clock, energy savings are already achieved if, in the case of the unsecured mode, a switch is made from the "safe" clock to the "unsecured" clock. If, on the other hand, the "safe" clock is deactivated immediately when it is generated, that is to say as far up as possible in the clock tree, the clock amplifiers present in the clock tree for the safe clock will also be deactivated, so that they likewise do not involve any energy consumption.
An dieser Stelle sei angemerkt, dass für mit dem Stromnetz verbundene Anwendungen der Energieverbrauch an sich oftmals kein wesentlicher Aspekt ist. Dies ist jedoch dann völlig anders, wenn die erfindungsgemäße Vorrichtung im Rahmen einer Kontaktlosanwendung eingesetzt werden soll, beispielsweise auf einer Chipkarte, die selbst keine eigene Leistungsversorgung hat. Wird die Chipkarte in die Nähe eines Terminals ge- bracht, so zieht sie ihre Leistung aus einem vom Terminal erzeugten HF-Feld. In diesem Fall kann dann, wenn die Chipkarte weniger Energieverbrauch hat, das Terminal mit einer geringeren Strahlungsleistung betrieben werden, also preisgünstig ausgestaltet werden. Für die Chipkarte bedeutet dies, dass die Antennen/Gleichrichter-Anordnung durch Extrahieren einer Energie aus dem HF-Feld kleiner dimensioniert und somit billiger ausgestaltet werden kann, was im Hinblick auf Chipkarten, die typischerweise sehr hohe Stückzahlen erreichen, zu einer Kosteneinsparung und damit Preisreduktion auf dem wett- bewerbsintensiven Markt führen kann.
Zusammenfassend sind die Instruktionen für die Steuerungseinrichtung 25 in einem Kasten 26 aufgeführt. Im gesicherten Modus für die Anfangsstufe 10 und/oder die Endstufe 12 liefert die Steuereinrichtung 25 der Vorbereitungseinrichtung 23 ein AN-Signal und der steuerbaren Taktzuführung 24 ein Signal, das anzeigt, dass mit Precharge/Pre-Discharge-Takt gearbeitet werden soll. Im ungesicherten Berechnungsmodus liefert die Steuereinrichtung 25 der Vorbereitungseinrichtung ein AUS- Signal und signalisiert der steuerbaren Taktzuführung 24, oh- ne Precharge-Takt zu arbeiten.At this point it should be noted that energy consumption is often not an essential aspect for applications connected to the power grid. However, this is completely different if the device according to the invention is to be used in the context of a contactless application, for example on a chip card which itself does not have its own power supply. If the chip card is brought near a terminal, it draws its power from an RF field generated by the terminal. In this case, if the chip card has less energy consumption, the terminal can be operated with a lower radiation power, that is to say it can be designed at low cost. For the chip card, this means that the antenna / rectifier arrangement can be made smaller by extracting an energy from the HF field and can therefore be made cheaper, which, with regard to chip cards, which typically reach very high numbers, leads to cost savings and thus price reductions can lead in the highly competitive market. In summary, the instructions for the control device 25 are listed in a box 26. In the secure mode for the initial stage 10 and / or the final stage 12, the control device 25 supplies the preparation device 23 with an ON signal and the controllable clock feeder 24 with a signal which indicates that a pre-charge / pre-discharge clock should be used. In the unsecured calculation mode, the control device 25 supplies the preparation device with an OFF signal and signals the controllable clock feeder 24 to work without a precharge clock.
Bei einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung ist das Rechenwerk 20 als Full-Custom-Dual-Rail- Precharge-DES-Core ausgebildet, wobei der DES-Core ferner die Vorbereitungseinrichtung 23 zum Precharge/Pre-Discharge umfasst. Die Steuereinrichtung 25 ist bei diesem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung als finite Zu- standsmaschine (FSM; FSM = Finite State-Machine) ausgeführt, die in den in Fig. 3a dargestellten Runden 3 bis 14 nicht nur die entsprechenden Kontrollsignale zur Ansteuerung des Datenpfades und des Controlteils des DES-Core erzeugt, sondern zusätzlich Signale zum Abschalten des Precharge-Vorgangs bereitstellt, die dann im Clock-Verteilungsbaum zu einer Unterdrückung des Precharge-Vorgangs verwendet werden.In a preferred exemplary embodiment of the present invention, the arithmetic logic unit 20 is designed as a full-custom dual-rail pre-charge DES core, the DES core also comprising the preparation device 23 for the pre-charge / pre-discharge. In this preferred exemplary embodiment of the present invention, the control device 25 is designed as a finite state machine (FSM = FSM = finite state machine), which in the rounds 3 to 14 shown in FIG. 3a not only the corresponding control signals for controlling the data path and of the control part of the DES core, but additionally provides signals for switching off the precharge process, which are then used in the clock distribution tree to suppress the precharge process.
Bei dem bevorzugten Ausführungsbeispiel, in dem die Logikschaltung hardwaremäßig als finite Zustandsmaschine implementiert ist, wird es aufgrund der Feistel-Struktur des DES- Algorithmus bevorzugt, nicht nur die erste Runde (Anfangsstu- fe 1) im gesicherten Modus auszuführen, sondern auch die zweite rund (Anfangsstufe 2) im gesicherten Modus auszuführen, da in der ersten Stufe eigentlich nur die Hälfte der Eingangsdaten verschlüsselt wird, während dann, in der zweiten Stufe, auch die andere Hälfte der Eingangsdaten unter Verwendung eines kryptographischen Schlüssels K2 verschlüsselt wird. Dasselbe gilt für die letzte Runde (Endstufe 2) und die vorletzte Runde (Endstufe 1), die bei dem bevorzugten
Ausführungsbeispiel der vorliegenden Erfindung ebenfalls im sicheren Modus ausgeführt werden, um auch eine kryptographische Rückwärtsattacke abwehren zu können.In the preferred embodiment, in which the logic circuit is implemented in hardware as a finite state machine, it is preferred due to the Feistel structure of the DES algorithm not only to carry out the first round (initial stage 1) in the secure mode, but also the second round (Initial stage 2) in secure mode, since in the first stage only half of the input data is actually encrypted, while in the second stage, the other half of the input data is also encrypted using a cryptographic key K 2 . The same applies to the last round (final stage 2) and the penultimate round (final stage 1), which in the preferred one Embodiment of the present invention can also be carried out in secure mode in order to also be able to ward off a cryptographic reverse attack.
Abhängig von den tatsächlichen Gegebenheiten kann das erfindungsgemäße Konzept zum Berechnen von verschlüsselten Daten aus Klartextdaten oder zum Berechnen von Klartextdaten aus verschlüsselten Daten in Hardware oder in Software implementiert werden. Die Implementation kann auf einem digitalen Speichermedium, insbesondere einer Diskette oder CD mit elektronisch auslesbaren Steuersignalen erfolgen, die so mit einem programmierbaren Computersystem zusammenwirken können, dass das Verfahren zum Berechnen der entsprechenden Daten ausgeführt wird. Allgemein besteht die Erfindung somit auch in einem Computer-Programm-Produkt mit auf einem maschinenlesbaren Träger gespeichertem Programmcode zur Durchführung des erfindungsgemäßen Verfahrens, wenn das Computer-Programm- Produkt auf einem Rechner abläuft. In anderen Worten ausgedrückt ist die Erfindung somit ein Computer-Programm mit ei- nem Programmcode zur Durchführung des Verfahrens, wenn das Computer-Programm auf einem Computer abläuft.
Depending on the actual circumstances, the concept according to the invention for calculating encrypted data from plain text data or for calculating plain text data from encrypted data can be implemented in hardware or in software. The implementation can take place on a digital storage medium, in particular a floppy disk or CD with electronically readable control signals, which can cooperate with a programmable computer system such that the method for calculating the corresponding data is carried out. In general, the invention thus also consists in a computer program product with program code stored on a machine-readable carrier for carrying out the method according to the invention when the computer program product runs on a computer. In other words, the invention is thus a computer program with a program code for carrying out the method when the computer program runs on a computer.
BezugszeichenlisteLIST OF REFERENCE NUMBERS
10 Anfangsstufe10 starting level
11 Zwischenstufe11 intermediate level
12 Endstufe12 power amplifier
13 Prozessoreinrichtung 20 Rechenwerk13 processor device 20 arithmetic unit
21a Nutzeingang21a Service entrance
21b Komplementäreingang21b Complementary receipt
22a Nutzausgang22a useful output
22b komplementärer Ausgang22b complementary output
23 Vorbereitungseinrichtung23 Preparation device
23 steuerbare Taktzuführung23 controllable clock feed
25 Steuereinrichtung25 control device
26 Steueranweisungen26 control instructions
30 DES-Eingabe30 DES input
31 Anfangspermutation31 initial permutation
32 Blockhalbierung32 Block halving
33 kryptographische Funktion33 cryptographic function
34 XOR-Verknüpfung34 XOR operation
35 XOR-Verknüpfung35 XOR operation
36 XOR-Verknüpfung36 XOR operation
37 Dateneinteilung37 Data classification
38 Endpermutation38 final permutation
39 DES-Ausgabe39 DES edition
40 Expansionsoperation40 expansion surgery
41 XOR-Verknüpfung41 XOR operation
42 Datenanordnung42 Data arrangement
43 SBOX-Subsitution 44 Datenanordnung 45 Permutation43 SBOX subscription 44 Data arrangement 45 Permutation
46 erster Algorithmus46 first algorithm
47 nachgeschalteter zweiter Algorithmus47 downstream second algorithm
48 nachgeschalteter dritter Algorithmus48 downstream third algorithm
50 Dual-Rail-Schaltung50 dual-rail circuit
51 Taktgenerator51 clock generator
52 Vorbereitungseinrichtung
Precharge-Zustand Nutzdatenzustand Precharge-Zustand Nutzdatenzustand
52 Preparation device Precharge state user data state Precharge state user data state