WO2003060672A1 - Carry-skip-addierer für verschlüsselte daten - Google Patents

Carry-skip-addierer für verschlüsselte daten Download PDF

Info

Publication number
WO2003060672A1
WO2003060672A1 PCT/EP2002/014491 EP0214491W WO03060672A1 WO 2003060672 A1 WO2003060672 A1 WO 2003060672A1 EP 0214491 W EP0214491 W EP 0214491W WO 03060672 A1 WO03060672 A1 WO 03060672A1
Authority
WO
WIPO (PCT)
Prior art keywords
carry
signal
encrypted
adder
skip
Prior art date
Application number
PCT/EP2002/014491
Other languages
English (en)
French (fr)
Inventor
Berndt Gammel
Franz Klug
Oliver Kniffler
Original Assignee
Infineon Technologies Ag
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies Ag filed Critical Infineon Technologies Ag
Priority to AU2002358757A priority Critical patent/AU2002358757A1/en
Publication of WO2003060672A1 publication Critical patent/WO2003060672A1/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/506Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7233Masking, e.g. (A**e)+r mod n
    • G06F2207/7238Operand masking, i.e. message blinding, e.g. (A+r)**e mod n; k.(P+R)

Definitions

  • the present invention relates to adder arithmetic units, and more particularly to carry-skip adders.
  • the adder in FIG. 6 comprises three adder stages 600 , 601 and 602.
  • the first stage 600 is an adder with a bit width of 4 to add the least significant four bits of the operands a, b, ie a Uf ai, a 2 , a 3 and b 0 , bi, b 2 , b 3.
  • the first adder 600 In addition to the result bits or sum bits r 0 , ri, r 2 , r 3 , the first adder 600 also outputs a carry from the most significant bit slice, which is designated c 4 in FIG This carry bit c 4 of the first adder stage 600 is fed into the least significant bit slice of the second adder stage 601.
  • the second adder stage also comprises four bits in Fig. 6 and sums up the next four bits of the operands a and b.
  • the adder works like a normal ripple carry adder.
  • the carry-skip adder as shown in FIG. 6, is distinguished by the fact that the second adder stage 601 generates a propagate value P, 603 which is combined with the carry bit c4 604 in an AND gate 605 to generate a skip signal 606.
  • the skip signal 606 is linked with a carry signal cs 8 from the most significant bit slice (for bit number 7) of the second adder stage 601, which is designated 607 in FIG. 6, by means of an OR gate 608 OR-ve, in order to provide the transmission input bit for the again lowest bit slice (bit 8) of the third adder stage 602.
  • Gate 608 then continues for possible further stages of the adder.
  • the propagate signal 603. As is known, the propagate signal of the second adder stage P is calculated by ANDing the propagate values of the individual bit slices. Expressed in the form of an equation:
  • a propagate value for a bit slice i is calculated as follows:
  • the propagate value indicates whether a carry bit of a lower bit slice is absorbed by the bit slice whose propagate value is known. This is the case if a A and b are ⁇ 0, ie the propagate value pi is 0.
  • a carry bit of a lower bit slice is passed on by the current bit slice, ie "propagated" if either a ⁇ or bi is equal to 1. If both a ⁇ and b ⁇ are equal to 1, this bit Slice not only passes on a carry bit, but even generates it.
  • the value that indicates whether a bit slice is generating a carry is also known as the generate value. The generate value results from the AND operation of the two operand bits.
  • the carry-skip adder is based on the fact that if, for example, the second adder block 601 in FIG. 6 has a total propagate value of 1, ie no bit slice absorbs a carry, the carry signal of the lowest adder 600 can are immediately passed on to the next but one adder 602. Because of the propagate signal from 1 of the second adder 601, a carry c 4 , which is generated by the lowest adder stage 600, is in no case absorbed in the second adder. The carry output signal cs 8 is therefore skipped when the carry signal of the first adder c 4 is 1 and the propagate signal is also 1.
  • the OR gate 608 at the output of the second adder stage 601 therefore only takes effect when the skip signal 606 is 0 and a carry for the third adder 602 is generated by the second adder 601.
  • the object of the present invention is to provide a more secure carry-skip adder.
  • the present invention is based on the finding that the security of the carry-skip adder can be significantly increased if encrypted operands are expected at least in part. This applies in particular to the carry signal line, the propagate line and the skip line and for the AND gate and the OR gate of the carry-skip adder. These structures are characteristic of the carry-skip adder and may be recognizable in a design. In addition, these lines are longer in a real design than lines of a bit slice of the adders, so that, for. B. physical attacks on these signals are easier.
  • the entire arithmetic unit works directly on encrypted operands.
  • the encryption can be based on the principle of one-time pad encryption.
  • the result is also available in encrypted form without ever generating an intermediate result in plain text.
  • all types of statistical attack scenarios such as. B. DPA and SPA, much more difficult.
  • this avoids a full-custom solution with dual-rail pre-charge.
  • the arithmetic unit according to the invention is therefore more technology-independent and typically, when a simple encryption algorithm is used, more space-saving than a full-customer solution using dual-rail precharge technology.
  • the arithmetic unit according to the invention can also be implemented using dual-rail precharge technology.
  • 1 shows a block diagram of a carry-skip adder according to the invention with an encrypted AND operation and an encrypted OR operation and encrypted adders; 2 shows an exemplary implementation for the encrypted AND operation;
  • 4a shows a section of an n-bit wide ripple carry adder for encrypted operands
  • 4b shows a basic circuit diagram of an n-bit wide ripple carry adder
  • 5a shows an exemplary implementation for an encrypted ADD operation for a bit slice
  • 5b shows a truth table for an encrypted ADD operation for a bit slice
  • Fig. 6 is a block diagram of a known carry-skip adder.
  • FIG. 1 shows a block diagram of a preferred exemplary embodiment of a more secure carry-skip adder, in which bit-by-bit encryption of operands a, b, with a separate encryption parameter ki per operand bit, is used.
  • bit-by-bit encryption of operands a, b with a separate encryption parameter ki per operand bit
  • sizes are encoded with an apostrophe.
  • all operations take place in the secret text space.
  • 1, according to a preferred exemplary embodiment of the present invention, comprises a first adder block 10 for adding a first plurality of bits of the two operands a, b, the first plurality of bits being equal to 4 by way of example.
  • the first adder 10 thus adds the encrypted operand bits a 0 , b 0 to a 3 and b 3 .
  • the adder 10 outputs as the output signal a first carry signal c ' 4 , which is also encrypted.
  • the first Carry signal c ' is fed into a re-encryption unit UV 11 in order to be re-encrypted from the key base k 3 to the key base k, using the re-encryption key t, which is equal to the XOR combination of the keys k 3 and k 4 .
  • the re-encrypted carry bit is then fed into a second adder 12 for encrypted data, the second adder adding a second plurality of operand bits, the second plurality in FIG. 1 likewise being 4 by way of example.
  • the second adder 12 for encrypted operands outputs a second carry signal cs'a, which, as the apostrophe shows, is also encrypted.
  • the carry-skip adder for encrypted data from FIG. 1 further comprises an R-box for implementing the AND combination of the propagate signal of the second adder 12 and the first carry signal c ' 4 of the first adder 10 by a skip signal To generate R, which is to be subjected to an OR operation in a C-box 16 with the second carry signal of the second adder 12, which is designated cs' 8 in FIG. 1, in order to carry the carry input signal for a third To deliver adder 18.
  • a further increase in security is to no longer carry out the AND operation of the R-Box and the OR operation of the C-Box in plain text space, but rather the AND operation by means of the R-Box 14 and the OR operation of the C-Box 16 directly in the ciphertext space without results are generated in plain text space.
  • the determination equation for the AND operation in the R-Box 14 in plain text is as follows:
  • An encrypted carry signal c ' is defined as follows, where VA specifies an encryption algorithm and where i is the key for the encryption algorithm:
  • the plaintext carry signal can be calculated from equation 5 as follows:
  • Equation 7 can be transformed accordingly for a specific encryption algorithm in order to arrive at a form in which the encrypted skip signal R can be calculated from the encrypted carry signal c and the encrypted propagate signal P without calculation of intermediate results in plain text space.
  • Equation 8 in Equation 7 is replaced by the following expression:
  • FIG. 2 shows an implementation of equation 10, which includes three AND gates 22, 23, 24 and an OR gate 25. Since only the key k 4 is fed into the R-box of FIG. 2, the output R 4 , 7 (> is also encrypted with this key.
  • c (4) means the carry input bit for the fourth bit slice from FIG. 1, but encrypted with the key k 4 , which is achieved by the re-encryption device 11 from FIG. 1.
  • equation 8 is used as the encryption algorithm, the determination equation is as follows:
  • c ' is the carry output of the C-box 16.
  • equation 12 A direct logic implementation of equation 12 is shown in FIG. 3. It comprises three AND gates 29, 30, 31 and an OR gate 32.
  • FIGS. 2 and 3 therefore only apply if there is a common key basis for each calculation, i. H. if the same key is selected for sizes involved in this calculation, for which purpose corresponding re-encryption with re-encryption keys is necessary, as shown in the figures.
  • x (1) means a value x encrypted with the key i
  • x (j> represents a value x encrypted with j
  • ⁇ j is the re-encryption key which, for the encryption algorithm dealt with here, results from an XOR combination of the two keys i and j is calculated.
  • the first carry signal c ' 4 is generated in encrypted form with the key k 3 for the operand bits b 3 and a 3 and is then re-encrypted that the propagate signal here with the key for the least significant bit of the second adder 12, that is encrypted with k 4 , and that a skip signal R is generated which is encrypted with the key k 8 , such that for the common key base selected for the C-Box k 8 the skip signal is already correctly encrypted.
  • the encrypted propagate signal P ' 4 , 7 is therefore calculated using the systematics of Equation 9 and Equation 11:
  • Equation 16 can also be transformed using standard mathematical laws in order to arrive at a form in which no intermediate text results occur.
  • equation 16 it can be seen from equation 16 that for each encrypted propagate value of a bit slice, a re-encryption for the next higher bit slice is to be carried out in order to obtain a common key base again.
  • the XOR of the overall result with the result of the XOR of k 7 and k 4 at the end of the equation 16 provides the re-encryption of the propagate value to the key k. If, on the other hand, the propagate value is required encrypted with the key k 7 , this re-encryption operation can be dispensed with.
  • any adders can be used as adders 10, 12, 18. So, of course, a conventional ripple carry adder can be used. When speed counts, however, it is preferred to use a carry lookahead adder as adders 10, 12 and 18.
  • any means can be used for the adding devices 10, 12, 18 which deliver sum bits and a carry bit for the highest level using input bits. These means can either work in the clear text space, which requires subsequent encryption of the carry bits, the propagate values and also the sum bits, or these additive means can work in the cipher text space.
  • FIG. 5a The implementation of the above equation is shown in Figure 5a.
  • the ALU of FIG. 5a for an encrypted arithmetic unit in turn comprises a large number of arithmetic sub-operations, namely AND operations 171 to 173 and OR operations 179 and 180.
  • (ckn) n + ⁇ means the carry (carry-in) for the next higher ((ntl) th) position (bit slice), encrypted with the key k n , that is to say with the key of the current position n, that is to say not encrypted with the key k n + ⁇ for the next higher position.
  • a one bit full adder is used to build an n bit full adder 10, 12, 18.
  • the one-bit full adder is called a bit slice or bit slice Designated institution.
  • the interconnection of two bit-slice devices is shown in Fig. 4a.
  • 4a shows a first bit slice 1200 for the bit of the order n and a bit slice 1202 for the bit of the order n + 1.
  • the heart of each bit slice is the arithmetic unit for encrypted operands, which is designated 1204 in FIG. 4a.
  • any other implementations for an encrypted adder are possible, as long as encrypted input operands and an encrypted transmission input are used to generate encrypted output variables, ie encrypted sum bits and encrypted carry bits.
  • the one-bit full adder shown in FIG. 4a is defined by the following two determination equations:
  • the adder equations are chosen here such that no encryption key itself has to be entered in the one-bit full adder 1204, but very well in the bit slice 1202 or 1200 according to an exemplary embodiment of the present invention.
  • the one-bit full adder 1204 is arranged in such a way that the encrypted carry bit c 'itself is not passed on to the next higher bit slice device for an adder function, but rather that the inverted encrypted carry bit is passed on.
  • the current bit of the encrypted operand a ie a ' n + ⁇
  • the current encrypted bit of the second operand that is b'n + i, is entered into the second input y.
  • a bit is input into the third input z, which depends on the carry output bit c ' n of the previous bit slice 1200. It is pointed out that the carry output bit of the preceding bit slice cannot be used directly, since different encryption keys k n + ⁇ and k n are available for the two different bit slice devices 1200 and 1202. It is therefore necessary to re-encrypt the carry output bit of the previous bit slice device from the encryption key k n for the previous bit slice device to the encryption key k n + ⁇ of the current bit slice device.
  • re-encryption can be achieved simply by XOR linking the encrypted carry output bit of the bit slice 1200 with a re-encryption key t n + ⁇ . This is represented by an XOR gate 1206.
  • the re-encryption key t n + ⁇ is calculated as intended by the XOR combination of the two keys concerned for the two bit slices, ie by an XOR combination of k n + ⁇ for the bit slice 1202 and k n for the bit slice 1200th
  • the bit slice device 1202 again outputs a carry output bit, which, however, is encrypted with the key k n + ⁇ and must be re-encrypted accordingly from the next higher level (not shown in FIG. 4a).
  • a carry output bit of the next lower levels n-1 is obtained, this bit having to be re-encrypted by the re-encryption XOR gate 1206.
  • a ripple carry adder (FIG. 4b) is generally obtained, which has the two encoded operands a ', b' and the re-encoding as input variables Key for the individual bits ti receives.
  • the ripple carry adder which is shown in Fig. 4b, also receives as an input a carry input signal, which for a usual ripple carry adder, which works in the add mode, is set to 0.
  • a 1 can also be created, as is explained for the carry select adder explained below.
  • 4b supplies the sum bits in encrypted form, namely s' r si 'to s N '.
  • the adder shown in FIG. 4b delivers an carry signal of the highest bit slice within the adder as output signal, if one is generated.

Landscapes

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

Abstract

Bei einem Carry-Skip-Addierer werden ein umverschlüsseltes erstes Übertragsignal (c(4)4) des ersten Addiererblocks (10) und das Propagate-Signal (P'¿4,7?) des zweiten Addiererblocks (12) verschlüsselt zu einer R-Box (14) übertragen, die eine UND-Verknüpfung der verschlüsselten Signale durchführt, um einen verschlüsselten Skip-Wert (R') zu erzeugen, der in verschlüsseltem Zustand ebenso wie ein zweites Übertragsignal (cs'8) des zweiten Addiererblocks (12) einer C-Box (16) zugeführt wird, um ein verschlüsseltes Übertrag-Eingangssignal für einen dritten Addiererblock (18) zu erzeugen. Vorzugsweise wird die verschlüsselte UND-Operation in der R-Box (14) und die verschlüsselte ODER-Operation in der C-Box (16) direkt im Geheimtextraum ausgeführt, ebenso wie die Addiereroperationen der Addierer (10, 12 und 18). Damit ergibt sich ein Carry-Skip-Addierer, der gegenüber physikalischen Angriffen, wie z. B. Nadelangriffen, oder indirekten Angriffen, wie z. B. SPA oder DPA, sicherer ist.

Description

Carry-Skip-Addierer für verschlüsselte Daten
Die vorliegende Erfindung bezieht sich auf Addierer- Rechenwerke und insbesondere auf Carry-Skip-Addierer.
Fig. 6 zeigt einen dreistufigen Carry-Skip-Addierer der in „Computer Architecture a Quantitative Approach", Hennessy und Patterson, Morgan Kaufmann Publishers, Inc., 1996, Anhang A, beschrieben ist. Der Addierer in Fig. 6 umfaßt drei Addiererstufen 600, 601 und 602. Lediglich beispielhaft ist die erste Stufe 600 ein Addierer mit einer Bitbreite von 4, um die nie- derstwertigen vier Bits der Operanden a, b, d. h. aUf ai, a2, a3 bzw. b0, bi, b2, b3 zu addieren. Der erste Addierer 600 gibt neben den Ergebnisbits bzw. Summenbits r0, ri, r2, r3 auch einen Übertrag aus dem höchstwertigen Bit-Slice aus, der in Fig. 6 mit c4 bezeichnet ist. Dieses Übertragbit c4 der ersten Addiererstufe 600 wird in den niederstwertigen Bit- Slice der zweiten Addiererstufe 601 eingespeist. Die zweite Addiererstufe umfaßt in Fig. 6 ebenfalls vier Bits und summiert die nächsten vier Bits der Operanden a und b.
Bis hierhin arbeitet der Addierer wie ein normaler Ripple- Carry-Addierer. Der Carry-Skip-Addierer, wie er in Fig. 6 gezeigt ist, zeichnet sich jedoch dadurch aus, daß die zweite Addiererstufe 601 einen Propagate-Wert P, 603 erzeugt, der mit dem Übertragbit c4 604 in einem UND-Gatter 605 verknüpft wird, um ein Skip-Signal 606 zu erzeugen. Das Skip-Signal 606 wird mit einem Übertragsignal cs8 aus dem höchstwertigen Bit- Slice (für Bit Nr. 7) der zweiten Addiererstufe 601, das in Fig. 6 mit 607 bezeichnet ist, mittels eines ODER-Gatters 608 ODER-ve knüpft, um das Übertrageingangsbit für den wieder niedrigsten Bit-Slice (Bit 8) der dritten Addiererstufe 602 zu liefern. Diese Schaltung aus UND-Gatter 605 und ODER-
Gatter 608 wird dann für mögliche weitere Stufen des Addierers fortgesetzt. Bevor auf die Funktionsweise des bekannten Carry-Skip- Addierers eingegangen wird, wird zunächst auf die Berechnung des Propagate-Signals 603 Bezug genommen. Wie es bekannt ist, berechnet sich das Propagate-Signal der zweiten Addiererstufe P, dadurch, daß die Propagate-Werte der einzelnen Bit-Slices miteinander UND-verknüpft werden. In Gleichungsform ausgedrückt ergibt sich somit:
P47 =p4-p5-p6-p7 (1)
Ein Propagate-Wert für einen Bit-Slice i berechnet sich folgendermaßen:
Figure imgf000004_0001
Der Propagate-Wert gibt an, ob ein Carry-Bit eines niedrigeren Bit-Slices von dem Bit-Slice, dessen Propagate-Wert bekannt ist, absorbiert wird. Dies ist der Fall, wenn aA und b± 0 sind, d. h. der Propagate-Wert pi 0 ist. Andererseits wird ein Carry-Bit eines niedrigeren Bit-Slices vom aktuellen Bit- Slice weitergereicht, d. h. „propagiert", wenn entweder a± oder bi gleich 1 ist. Sind sowohl a± als auch b± gleich 1, so wird von diesem Bit-Slice nicht nur ein Carry-Bit weiterge- reicht, sondern sogar erzeugt. Der Wert, der anzeigt, ob ein Bit-Slice einen Carry erzeugt, wird auch als Generate-Wert bezeichnet. Der Generate-Wert ergibt sich aus der UND- Verknüpfung der beiden Operanden-Bits .
Der Carry-Skip-Addierer baut allgemein gesagt darauf auf, daß, wenn beispielsweise der zweite Addiererblock 601 in Fig. 6 insgesamt einen Propagate-Wert von 1 hat, d. h. kein Bit- Slice absorbiert einen Carry, so kann das Übertragsignal des untersten Addierers 600 unmittelbar weitergereicht werden an den übernächsten Addierer 602. Aufgrund des Propagate-Signals von 1 des zweiten Addierers 601 wird ein Carry c4, der von der untersten Addiererstufe 600 erzeugt wird, auf keinen Fall im zweiten Addierer absorbiert. Das Carry-Ausgangssignal cs8 wird also, wenn das Carry-Signal des ersten Addierers c4 gleich 1 ist und das Propagate-Signal ebenfalls gleich 1 ist, übergangen.
Das ODER-Gatter 608 am Ausgang der zweiten Addiererstufe 601 wird somit nur wirksam, wenn das Skip-Signal 606 gleich 0 ist und ein Carry für den dritten Addierer 602 von dem zweiten Addierer 601 erzeugt wird.
Es sei darauf hingewiesen, daß das Berechnen des Propagate- Werts P einfacher als das Berechnen des Generate-Werts G ist. Im Carry-Skip-Addierer werden daher lediglich die Propagate- Werte P berechnet. Die Überträge beginnen mit dem „Durchrip- pelnΛ durch jeden Block im wesentlichen gleichzeitig. Wenn ein Block einen Carry erzeugt, dann wird das Carry- Ausgangssignal dieses Blocks wahr sein, selbst wenn das Car- ry-Eingangssignal in den Block noch nicht korrekt ist. Wenn an dem Beginn jeder Addier-Operation der Carry-Eingang in je- den Block 0 ist, dann werden auch keine Carry-Ausgangssignale erzeugt. Somit kann das Carry-Ausgangssignal jedes Blocks auch derart aufgefaßt werden, daß es das G Signal ist. Sobald das Carry-Ausgangssignal aus dem niederstwertigen Block (Addierer 600) erzeugt ist, wird es nicht nur in den nächsten Block eingespeist, sondern es wird auch durch das UND-Gatter mit dem P-Signal vom nächsten Block verknüpft. Wenn das Carry-Ausgangssignal (c ) und das P-Signal beide wahr sind, dann überspringt der Carry den zweiten Block und wird unmittelbar in den dritten Block eingespeist, etc. Damit ist ein wesent- licher Geschwindigkeitsvorteil gegenüber einem einfachen
Ripple-Carry-Addierer erreichbar. Dies trifft um so mehr zu, wenn die Addiererstufen ungleich groß gemacht werden, wie es bekannt ist.
Nachteilig an dem beschriebenen Carry-Skip-Addierer ist die
Tatsache,, daß er für kryptographische Anwendungen nur bedingt geeignet ist, da er für Nadelangriffe zur Abhörung verarbei- teter Daten bzw. Ergebnisdaten und insbesondere auch für SPA- Angriffe (SPA = Single Power Analysis) oder DPA-Angriffe (DPA = Differential Power Analysis) anfällig ist. Im bekannten Carry-Skip-Addierer, der in Fig. 6 gezeigt ist, werden überall Klartextdaten verarbeitet. Insbesondere die Propagate- Leitung 603, die Übertrag-Leitung 604, und die Skip-Signal- Leitung 606 sind, wenn größere Addiererstufen verwendet werden, von beträchtlicher Länge und daher für physikalische Angriffsszenarien, wie z. B. Nadelangriffe, anfällig.
Die Aufgabe der vorliegenden Erfindung besteht darin, einen sichereren Carry-Skip-Addierer zu schaffen.
Diese Aufgabe wird durch einen Carry-Skip-Addierer gemäß Pa- tentanspruch 1 gelöst.
Der vorliegenden Erfindung liegt die Erkenntnis zugrunde, daß die Sicherheit des Carry-Skip-Addierers wesentlich erhöht werden kann, wenn zumindest teilweise mit verschlüsselten O- peranden gerechnet wird. Dies trifft insbesondere für die Ü- bertragsignalleitung, die Propagate-Leitung und die Skip- Leitung und für das UND-Gatter und das ODER-Gatter des Carry- Skip-Addierers zu. Diese Strukturen sind charakteristisch für den Carry-Skip-Addierer und in einem Design möglicherweise erkennbar. Darüber hinaus sind diese Leitungen in einem realen Design länger als Leitungen eines Bit-Slices der Addierer, so daß z. B. physikalische Angriffe auf diese Signale leichter sind.
Es wird ferner bevorzugt, nicht nur die Übertragssignale, die Propagate-Signale und die Skip-Signale zu verschlüsseln, sondern auch die UND- und die ODER-Berechnungen verschlüsselt durchzuführen, und darüber hinaus auch in den Addiererblöcken Addierer für verschlüsselte Daten einzusetzen.
Obgleich grundsätzlich jeder umkehrbare Verschlüsselungsalgorithmus zum Verschlüsseln der Operanden des UND-Gatters und des ODER-Gatters eingesetzt werden können, wird es aus Gründen der Schnelligkeit und des Schaltungsaufwands bevorzugt, eine Verschlüsselung in Form einer XOR-Verknüpfung als Verschlüsselungsalgorithmus und eines Verschlüsselungsparameters oder alternativ eine XNOR-Verknüpfung mit einem Verschlüsselungsparameter einzusetzen, wobei die Verschlüsselung bitweise ist, d. h. daß der Verschlüsselungsparameter für jedes 0- perandenbit, d. h. für jeden Bit-Slice unterschiedlich ist. Eine hohe Sicherheit wird dadurch erreicht, daß der Schlüssel ab und an oder sogar für jeden Operanden gewechselt wird.
In einer bevorzugten Ausführungsform arbeitet das gesamte Rechenwerk direkt auf verschlüsselten Operanden. Die Verschlüsselung kann nach dem Prinzip einer One-Time-Pad- Verschlüsselung erfolgen. Das Ergebnis liegt dabei ebenfalls in verschlüsselter Form vor, ohne jemals ein Zwischenergebnis in Klartext zu generieren. Dadurch werden alle Arten von statistischen Angriffsszenarien, wie z. B. DPA und SPA, wesentlich erschwert. Dadurch wird - als bekannte sichere Alterna- tive - eine Fullcustom-Lösung mit Dual-Rail-Precharge vermieden. Das erfindungsgemäße Rechenwerk ist somit technologieunabhängiger und typischerweise auch, wenn ein einfacher Verschlüsselungsalgorithmus verwendet wird, platzsparender als eine Fullcustom-Lösung in Dual-Rail-Precharge-Technik. Wenn jedoch eine maximale Sicherheit gesucht wird, so kann das erfindungsgemäße Rechenwerk ebenfalls in Dual-Rail-Precharge- Technik realisiert werden.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen detailliert erläutert. Es zeigen:
Fig. 1 ein Blockschaltbild eines erfindungsgemäßen Carry- Skip-Addierers mit verschlüsselter UND-Operation und verschlüsselter ODER-Operation sowie verschlüsselten Addierern; Fig. 2 eine beispielhafte Implementation für die verschlüsselte UND-Operation;
Fig. 3 eine beispielhafte Implementation für die ver- schlüsselte ODER-Operation;
Fig. 4a ein Ausschnitt eines n-Bit-breiten Ripple-Carry- Addierers für verschlüsselte Operanden;
Fig. 4b ein Prinzipschaltbild eines n-Bit-breiten Ripple- Carry-Addierers ;
Fig. 5a eine beispielhafte Implementation für eine verschlüsselte ADD-Operation für einen Bit-Slice;
Fig. 5b eine Wahrheitstabelle für eine verschlüsselte ADD- Operation für einen Bit-Slice; und
Fig. 6 ein Blockschaltbild eines bekannten Carry-Skip- Addierers.
Fig. 1 zeigt ein Blockschaltbild eines bevorzugten Ausführungsbeispiels eines sichereren Carry-Skip-Addierers, bei dem eine bitweise Verschlüsselung der Operanden a, b, mit einem eigenen Verschlüsselungsparameter ki pro Operandenbit verwendet wird. Bezüglich der Notation sei darauf hingewiesen, daß Größen mit Apostroph verschlüsselte Größen sind. Bei dem in Fig. 1 gezeigten Ausführungsbeispiel finden sämtliche Operationen im Geheimtextraum statt. Im einzelnen umfaßt der in Fig. 1 gezeigte Carry-Skip-Addierer gemäß einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung einen ersten Addiererblock 10 zum Addieren einer ersten Mehrzahl von Bits der beiden Operanden a, b, wobei die erste Mehrzahl von Bits beispielhaft gleich 4 ist. Der erste Addierer 10 addiert so- mit die verschlüsselten Operandenbits a0, b0 bis a3 und b3.
Der Addierer 10 gibt als Ausgangssignal ein erstes Übertragsignal c'4 aus, das ebenfalls verschlüsselt ist. Das erste Übertragsignal c' wird in eine Umverschlüsselungseinheit UV 11 eingespeist, um von der Schlüsselbasis k3 auf die Schlüsselbasis k umverschlüsselt zu werden, und zwar unter Verwendung des Umverschlüsselungsschlüssels t , der gleich der XOR- Verknüpfung der Schlüssel k3 und k4 ist.
Das umverschlüsselte Übertragbit wird dann in einen zweiten Addierer 12 für verschlüsselte Daten eingespeist, wobei der zweite Addierer eine zweite Mehrzahl von Operandenbits ad- diert, wobei die zweite Mehrzahl in Fig. 1 beispielhaft ebenfalls gleich 4 ist. Der zweite Addierer 12 für verschlüsselte Operanden gibt neben den verschlüsselten Summenbits, die in Fig. 1 nicht eingezeichnet sind, ein zweites Übertragsignal cs'a aus, das, wie es der Apostroph zeigt, ebenfalls ver- schlüsselt ist.
Der Carry-Skip-Addierer für verschlüsselte Daten aus Fig. 1 umfaßt ferner eine R-Box zur Implementierung der UND- Verknüpfung des Propagate-Signals des zweiten Addierers 12 und des ersten Übertragsignals c'4 des ersten Addierers 10, um ein Skip-Signal R zu erzeugen, das in einer C-Box 16 mit dem zweiten Übertragsignal des zweiten Addierers 12, das in Fig. 1 mit cs'8 bezeichnet ist, einer ODER-Verknüpfung zu unterziehen ist, um das Übertrag-Eingangssignal für einen drit- ten Addierer 18 zu liefern.
Es sei darauf hingewiesen, daß bei dem in Fig. 1 gezeigten Carry-Skip-Addierer gemäß der vorliegenden Erfindung sämtliche Signale auf Leitungen, die systembedingt eine bedeutsame Länge haben, also das erste Übertragsignal c' , das Propagate-Signal P' ,7, das Skip-Signal R' ,7 sowie das zweite Übertragsignal es '8 verschlüsselt sind. Damit wird sichergestellt, daß diese Leitungen, die aufgrund der Konstruktion des Carry-Skip-Addierers bereits eine beträchtliche Länge ha- ben können, gegenüber Abhören gesichert sind. Zur Erzeugung der verschlüsselten Übertragsignale, Propagate- Signale und Skip-Signale existieren verschiedene Möglichkeiten. Eine einfache Möglichkeit zur Erzeugung dieser Signale besteht darin, Klartext-Addierer 10, 12, 18 zu verwenden, und die Übertragsignale, und die Propagate-Signale unmittelbar am Ausgang der Addierer zu verschlüsseln, damit verschlüsselte Werte über Signalleitungen übertragen werden. Die verschlüsselten Signale werden dann verschlüsselt über die erforderlichen Signalleitungen beispielsweise zur R-Box 14 übertragen (das erste Übertragsignal und das erste Propagate-Signal) .
Wenn eine UND-Verknüpfung im Klartextraum durchgeführt werden soll, werden die Signale am Eingang der R-Box wieder entschlüsselt. Dann wird die UND-Operation im Klartextraum durchgeführt, und das Ergebnis der UND-Operation wird unmit- telbar am Ausgang der R-Box wieder verschlüsselt, um in verschlüsseltem Zustand der C-Box zugeführt zu werden. Genauso kann mit dem zweiten Übertragausgangssignal cs'8 verfahren werden. Dieses kann am Ausgang des zweiten Addierers 12, der dann ein Klartextaddierer sein darf, verschlüsselt und ebenso wie das verschlüsselte Skip-Signal R der C-Box 16 zugeführt werden, wo beide Signale entschlüsselt werden, die ODER- Verknüpfung im Klartextraum durchgeführt wird, und dann das Ergebnis der ODER-Operation wieder verschlüsselt wird.
Die vorstehend beschriebene Ausführungsform liefert bereits eine gewisse Sicherheit dahingehend, daß keine verschlüsselten Daten über längere Leitungen übertragen werden. In diesem Zusammenhang ist es ebenfalls sinnvoll, die Summenbits der Addierer 10, 12, 18 ebenfalls nach ihrer Erzeugung zu ver- schlüsseln und zu ihrem Bestimmungsort in verschlüsseltem Zustand zu übertragen.
Eine weitere Sicherheitserhöhung besteht darin, die UND- Operation der R-Box sowie die ODER-Operation der C-Box nicht mehr im Klartextraum auszuführen, sondern bereits die UND- Verknüpfung mittels der R-Box 14 und die ODER-Verknüpfung der C-Box 16 direkt im Geheimtextraum auszuführen, ohne daß Zwi- schenergebnisse im Klartextraum erzeugt werden. Die Bestimmungsgleichung für die UND-Operation in der R-Box 14 im Klartextraum lautet folgendermaßen:
R =c-P (3)
Die Operation der R-Box im Geheimtextraum läßt sich folgendermaßen angeben:
R'=(c-P)' (4;
Gewünscht ist, daß nur verschlüsselte Operanden vorhanden sind. Ein verschlüsseltes Übertragsignal c' sei folgendermaßen definiert, wobei VA einen Verschlüsselungsalgorithmus an- gibt, und wobei i der Schlüssel für den Verschlüsselungsalgorithmus ist:
c'=VA(c,i) (5)
Aus Gleichung 5 läßt sich das Klartext-Übertragsignal folgendermaßen berechnen:
c =VA_1(c',i) (6)
wobei VA-1 die Umkehrung des Verschlüsselungsalgorithmus VA ist. Wird Gleichung 6 in die Bestimmungsgleichung 4 eingesetzt und wird eine analoge Substitution für das Propagate- Signal P vorgenommen, so ergibt sich folgender Ausdruck für Gleichung 4 :
Figure imgf000011_0001
In Gleichung 7 bezeichnen i, j und k unterschiedliche Schlüssel, wobei i der Schlüssel für das Übertragsignal c ist, wo- bei j der Schlüssel für das Propagate-Signal P ist und wobei k der Schlüssel für das Ergebnis ist, also für das Skip- Signal. Gleichung 7 kann für einen konkreten Verschlüsselungsalgorithmus entsprechend umgeformt werden, um zu einer Form zu gelangen, bei der ohne Berechnung von Zwischenergebnissen im Klartextraum das verschlüsselte Skip-Signal R aus dem verschlüsselten Übertragsignal c und dem verschlüsselten Propagate-Signal P berechnet werden kann.
Dies wird nachfolgend anhand des folgenden Verschlüsselungs- algorithmus dargelegt.
x'=xθk; x =x'θk (8)
Der Verschlüsselungsalgorithmus ist die XOR-Funktion, deren Umkehrung ebenfalls die XOR-Operation ist. Gleichung 8 in Gleichung 7 eingesetzt wird zu folgendem Ausdruck:
R = [(c'θi)-(p'θj)]θk (9)
Wenn angenommen wird, daß die Schlüssel i, j und k gleich sind und dieser Schlüssel mit k bezeichnet wird, und wenn Gleichung 9 unter Verwendung üblicher mathematischer Umformungsgesetze umgeformt wird, erhält man eine logische Gleichung für R', die allgemein ausgedrückt folgendermaßen gege- ben ist:
R = P'-k + c -k + P'-c (10)
Fig. 2 zeigt eine Implementation der Gleichung 10, die drei UND-Gatter 22, 23, 24 und ein ODER-Gatter 25 umfaßt. Nachdem in die R-Box von Fig. 2 lediglich der Schlüssel k4 eingespeist wird, ist auch die Ausgabe R4,7 ( > mit diesem Schlüssel verschlüsselt.
Bezüglich der Notation in Fig. 2 und Fig. 3 sei darauf hingewiesen, daß eine hochgestellte Zahl in Klammern statt des A- postrophs angibt, auf welcher Schlüsselbasis der Wert ver- schlüsselt ist. So bedeutet c (4) das Übertrag-Eingangsbit für den vierten Bit-Slice aus Fig. 1, jedoch mit dem Schlüssel k4 verschlüsselt, was durch die Umverschlüsselungseinrichtung 11 aus Fig. 1 erreicht wird.
Dieselbe Vorgehensweise wie in Fig. 2 kann gewählt werden, um die ODER-Operation der C-Box 16 im Geheimtextraum zu implementieren. Wenn Gleichung 8 als Verschlüsselungsalgorithmus zugrunde gelegt wird, ergibt sich als Bestimmungsgleichung folgender Ausdruck:
c= [(esΦi)+(R'θj)]®k (11)
In Gleichung 11 ist c' das Übertrag-Ausgangssignal der C-Box 16. c's ist das zweite Übertrag-Ausgangssignal des zweiten Addierers 12, und R' ist das Ausgangssignal der R-Box, als das verschlüsselte Skip-Signal. Werden wieder alle Schlüssel gleich gewählt und gleich k gesetzt, so ergibt sich nach einiger Umrechnung folgender Ausdruck: c'= tΛ cs'-kk + R - t Jk kk + es - R. - tΛ (12)
Eine direkte Logikimplementation von Gleichung 12 ist in Fig. 3 gezeigt. Sie umfaßt drei UND-Gatter 29, 30, 31 und ein ODER-Gatter 32.
Die Logikimplementationen der Fig. 2 und 3 gelten somit nur, wenn für jede Rechnung eine gemeinsame Schlüsselbasis vorhanden ist, d. h. wenn derselbe Schlüssel für bei dieser Rech- nung beteiligten Größen gewählt wird, wofür entsprechende Um- verschlüsselungen mit Umverschlüsselungsschlüsseln nötig sine, wie es in den Figuren gezeigt ist.
Eine Umverschlüsselung für den in Gleichung 8 gezeigten Ver- schlüsselungsalgorithmus ist allgemein folgendermaßen definiert: x(i = ti ® x{i); t1:J = i θj ( 13)
In Gleichung 13 bedeutet x(1) einem mit dem Schlüssel i verschlüsselten Wert x, während x(j> einen mit j verschlüsselten Wert x darstellt. ±j ist der Umverschlüsselungsschlüssel, der für den hier behandelten Verschlüsselungsalgorithmus aus einer XOR-Verknüpfung der beiden Schlüssel i und j berechnet wird.
Wie es nachfolgend erläutert wird, wird es bevorzugt, einen Carry-Skip-Addierer zu haben, der vollständig im Geheimtextraum arbeitet, und bei dem Verschlüsselungsschlüssel bzw. Verschlüsselungsparameter bitweise vergeben werden. Dies bedeutet, wenn Fig. 1 betrachtet wird, daß das erste Übertrag- signal c'4 mit dem Schlüssel k3 für die Operandenbits b3 und a3 verschlüsselt erzeugt wird und dann umverschlüsselt wird, daß das Propagate-Signal hier mit dem Schlüssel für das nie- derstwertige Bit des zweiten Addierers 12, also mit k4 verschlüsselt ist, und daß ein Skip-Signal R erzeugt wird, das mit dem Schlüssel k8 verschlüsselt ist, derart, daß für die für die C-Box gewählte gemeinsame Schlüsselbasis k8 das Skip- Signal bereits korrekt verschlüsselt ist.
Für Fachleute ist es offensichtlich, daß es für die I plemen- tationen der Gleichungen, auf denen aufbauend die R-Box für verschlüsselte Daten und die C-Box für verschlüsselte Daten implementiert werden, und insbesondere für die Umverschlüsse- lungen eine Vielzahl verschiedener Möglichkeiten gibt, wobei die verschiedenen Möglichkeiten dadurch erhalten werden kön- nen, daß unter Verwendung mathematischer Umformungsgesetze die entsprechenden Gleichungen umgeformt werden, oder daß verschiedene Schlüsselbasen verwendet werden. Welche Implementation im praktischen Aufbau bevorzugt wird, hängt auch von der verwendeten Technologie ab, d. h. ob z. B. ODER- Gatter oder Exklusiv-ODER-Gatter günstiger zu implementieren sind, oder ob AND-Gatter oder NAND-Gatter für eine bestimmte Technologie geeigneter sind. Wie es bereits ausgeführt worden ist, wird es bevorzugt, für die Addierer 10, 12, 18 Addierer zu verwenden, die mit verschlüsselten Operanden arbeiten können und ein verschlüssel- tes Ergebnis liefern, ohne Zwischenergebnisse im Klartextraum zu generieren. Ferner wird es bevorzugt, eine bitweise Verschlüsselung unter Verwendung verschiedener Schlüssel k± für die verschiedenen Bits a± bzw. bi zu verwenden. Im nachfolgenden wird dargelegt, wie für den Verschlüsselungsalgorith- mus von Gleichung 8 ein verschlüsseltes Propagate-Signal P'4,7 berechnet werden kann. Das Propagate-Signal P4, berechnet sich im Klartextraum folgendermaßen:
Figure imgf000015_0001
Auf die Operandenbits ai, bi bezogen bedeutet dies:
P4>7=(a4+b4)-(a5+b5Xa6+b6Xa7+b7) (15)
Das verschlüsselte Propagate-Signal P'4,7 berechnet sich demnach unter Verwendung der Systematik von Gleichung 9 und Gleichung 11:
P(4)4,7 = fα'4θ*4 +b @k4)@ k4 ® k5]- [(a'sθk5+b'5θk5)θk5θk6]-
[(a'6θk6+b'6θk6)θk6θk7]. i(a'7θk7+b'7Θk7)]}θk7θk4 (16)
Auch Gleichung 16 kann unter Verwendung üblicher mathemati- scher Gesetze umgeformt werden, um zu einer Form zu gelangen, bei der keine Klartext-Zwischenergebnisse auftreten. Insbesondere ist aus Gleichung 16 zu ersehen, daß für jeden verschlüsselten Propagate-Wert eines Bit-Slices eine Um- verschlüsselung für den nächst-höheren Bit-Slice durchzufüh- ren ist, um wieder eine gemeinsame Schlüsselbasis zu erhalten. Die XOR-Verknüpfung des Gesamtergebnisses mit dem Ergebnis der XOR-Verknüpfung von k7 und k4 am Ende von Gleichung 16 liefert die Umverschlüsselung des Propagate-Werts auf den Schlüssel k. Wird der Propagate-Wert dagegen verschlüsselt mit dem Schlüssel k7 benötigt, so kann auf diese Umverschlüs- selungsoperation verzichtet werden.
Für Fachleute ist es offensichtlich, daß als Addierer 10, 12, 18 beliebige Addierer eingesetzt werden können. So kann selbstverständlich ein üblicher Ripple-Carry-Addierer eingesetzt werden. Wenn Geschwindigkeit zählt, wird es jedoch be- vorzugt, einen Carry-Lookahead-Addierer als Addierer 10, 12 und 18 einzusetzen. Prinzipiell können für die Addiereinrichtungen 10, 12, 18 jegliche Mittel verwendet werden, die unter Verwendung von Eingangsbits Summenbits und ein Übertragbit für die höchste Stufe liefern. Diese Mittel können entweder im Klartextraum arbeiten, was eine anschließende Verschlüsselung der Übertragbits, der Propagate-Werte und auch der Summenbits erforderlich macht, oder diese Addiermittel können im Geheimtextraum arbeiten.
Im nachfolgenden werden verschiedene Möglichkeiten zum Implementieren eines Addierers im Geheimtextraum dargelegt.
Im nachfolgenden wird auf Fig. 5a Bezug genommen, um eine ADD-Operation zwischen den verschlüsselten Operanden akn und n zu erläutern. Bestimmungsgleichung hierfür ist die nachfolgende Gleichung:
S = a ® b θct = a„ @ k„ ® b © k„ @ c„ @ k„ =
= a n ® b n θc n θfc.
Die Operation von drei Operanden bzw. von drei Bits von Operanden, wenn ein Bit-Slice eines Parallel-Addierers betrachtet wird, führt zu einem Übertrag c, wobei in der vorletzten Spalte und der drittletzten Spalte der in Fig. 5b gezeigten Wahrheitstabelle die Überträge bei der ADD-Operation zwischen dem unverschlüsselten Operanden a, b und c als cp aufgeführt ist, wobei p für „piain" = unverschlüsselt steht, und wobei in der vorletzten Zeile der Übertrag der ADD-Operation der erfindungsgemäßen ALU ck gezeigt ist.
Der Übertrag ckn(n+u ergibt sich durch folgende Gleichung:
Figure imgf000017_0001
Die Implementierung der vorstehenden Gleichung ist in Fig. 5a dargestellt. Die ALU von Fig. 5a für ein verschlüsseltes Re- chenwerk umfaßt wiederum eine Vielzahl von arithmetischen Unteroperationen, nämlich AND-Operationen 171 bis 173 und OR- Operationen 179 und 180. Ausgangsseitig ergibt sich dann der Übertrag (ckn)n+ι für die ADD-Verknüpfung der drei Eingangs- Operanden, welcher wieder gemäß der in Fig. 5b gezeigten Wahrheitstabelle mit dem Übertrag übereinstimmt, wenn die drei Operanden in unverschlüsselter Form addiert werden und dann verschlüsselt werden. Insbesondere bedeutet (ckn)n+ι den Übertrag (Carry-In) für die nächsthöhere ((n-t-l)-te) Position (Bit-Slice) , verschlüsselt mit dem Schlüssel kn, also mit dem Schlüssel der aktuellen Position n, also nicht verschlüsselt mit dem Schlüssel kn+ι für die nächsthöhere Position. Dies bedeutet, daß je nach Ausführung eines Bit-Slices eine Um- verschlüsselung von (c n)n+ι vom Schlüssel kn in den Schlüssel kn+ι stattfinden wird.
Die beiden vorstehenden Gleichungen geben eine Implementation für einen Addierer mit verschlüsselten Operanden vor, der ein verschlüsseltes Summenbit s' (s' = Skn) und ein verschlüsseltes Übertragbit c' (cf = (ckn)n+ι) ausgibt, wobei derselbe eingangsseitig neben den beiden verschlüsselten Operanden ein verschlüsseltes Übertrageingangsbit erhält. Ein solcher Addierer wird im Stand der Technik - bei unverschlüsselten Daten - auch als Ein-Bit-Volladdierer bezeichnet.
Ein Ein-Bit-Volladdierer wird verwendet, um einen n-Bit breiten Volladdierer 10, 12, 18 aufzubauen. In diesem Fall wird der Ein-Bit-Volladdierer als Bit-Slice oder Bit-Slice- Einrichtung bezeichnet. Die Zusammenschaltung zweier Bit- Slice-Einrichtungen ist in Fig. 4a gezeigt. Im einzelnen zeigt Fig. 4a einen ersten Bit-Slice 1200 für das Bit der Ordnung n und einen Bit-Slice 1202 für das Bit der Ordnung n+1. Herzstück jedes Bit-Slices ist das Rechenwerk für verschlüsselte Operanden, das in Fig. 4a mit 1204 bezeichnet ist. Wie es ausgeführt worden ist, sind beliebige andere Implementationen für einen verschlüsselten Addierer möglich, so lange verschlüsselte Eingangsoperanden und ein verschlüs- seiter Übertrageingang verwendet werden, um verschlüsselte Ausgangsgrößen, d. h. verschlüsselte Summenbits und verschlüsselte Übertragsbits zu erzeugen.
Der Ein-Bit-Volladdierer, der in Fig. 4a gezeigt ist, ist durch folgende beiden Bestimmungsgleichungen definiert:
s = xθyΘ z c = x - y + z - x + z - y
Die Addierergleichungen sind hier so gewählt, daß in dem Ein- Bit-Volladdierer 1204 selbst kein Verschlüsselungsschlüssel eingegeben werden muß, sehr wohl aber in den Bit-Slice 1202 oder 1200 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Darüber hinaus ist der Ein-Bit-Volladdierer 1204 derart angeordnet, daß für eine Addiererfunktion nicht das verschlüsselte Übertragbit c' selbst an die nächsthöhere Bit- Slice-Einrichtung weitergegeben wird, sondern daß das inver- tierte verschlüsselte Übertragbit weitergereicht wird. In den ersten Eingang x des Ein-Bit-Volladdierers des Bit-Slices für das Bit n+1 wird das aktuelle Bit des verschlüsselten Operanden a, also a'n+ι eingegeben. In den zweiten Eingang y wird das aktuelle verschlüsselte Bit des zweiten Operanden, also b'n+i eingegeben. In den dritten Eingang z wird ein Bit eingegeben, das von dem Übertragausgangsbit c'n des vorhergehenden Bit-Slices 1200 abhängt. Es wird darauf hingewiesen, daß das Übertragausgangsbit des vorhergehenden Bit-Slices nicht direkt verwendet werden kann, da für die beiden unterschiedlichen Bit-Slice-Einrichtungen 1200 und 1202 unterschiedliche Verschlüsselungsschlüssel kn+χ bzw. kn vorhanden sind. Daher muß eine Umverschlüsselung des Übertragausgangsbits der vorhergehenden Bit-Slice-Einrichtung von dem Verschlüsselungsschlüssel kn für die vorhergehende Bit-Slice-Einrichtung in den Verschlüsselungsschlüssel kn+ι der aktuellen Bit-Slice-Einrichtung durchgeführt werden.
Im Falle einer Verschlüsselung mittels einer XOR-Verknüpfung kann eine Umverschlüsselung einfach durch XOR-Verknüpfung des verschlüsselten Übertragausgangsbits des Bit-Slices 1200 mit einem Umverschlüsselungs-Schlüssel tn+ι erreicht werden. Dies ist durch ein XOR-Gatter 1206 dargestellt. Der Umverschlüsselungs-Schlüssel tn+ι wird bestimmungsgemäß durch die XOR- Verknüpfung der beiden betroffenen Schlüssel für die beiden Bit-Slices berechnet, also durch eine XOR-Verknüpfung von kn+ι für den Bit-Slice 1202 und kn für den Bit-Slice 1200.
Die Bit-Slice-Einrichtung 1202 gibt wieder ein Übertragausgangsbit aus, das jedoch mit dem Schlüssel kn+ι verschlüsselt ist und von der nächsthöheren Stufe (in Fig. 4a nicht ge- zeigt) wieder entsprechend umverschlüsselt werden muß. Dasselbe trifft für den Übertrageingang des Bit-Slices 1200 zu. Hier wird ein Übertragausgangsbit der nächst niedrigeren Stufen n-1 erhalten, wobei dieses Bit wieder durch das Um- verschlüsselungs-XOR-Gatter 1206 umverschlüsselt werden muß.
Werden mehrere Bit-Slices aneinander geschaltet, wie es in Fig. 4a gezeigt ist, so ergibt sich allgemein ein Ripple- Carry-Addierer (Fig. 4b) , der als Eingangsgrößen die beiden verschlüsselten Operanden a', b' sowie die Umverschlüsse- lungs-Schlüssel für die einzelnen Bits ti erhält. Der Ripple- Carry-Addierer, der in Fig. 4b dargestellt ist, erhält ferner als Eingangssignal ein Übertrageingangssignal, das für einen üblichen Ripple-Carry-Addierer, der im Addiermodus arbeitet, auf 0 gesetzt ist.
Selbstverständlich kann statt einer 0 auch eine 1 angelegt werden, wie es für den nachfolgend erläuterten Carry-Select- Addierer erläutert wird. Ausgangsseitig liefert der Addierer von Fig. 4b die Summenbits in verschlüsselter Form, nämlich s ' r si' bis sN'. Darüber hinaus liefert der in Fig. 4b gezeigte Addierer als Ausgangssignal ein Übertragbit des höchs- ten Bit-Slices innerhalb des Addierers, falls ein solches erzeugt wird.
Bezugszeichenliste
10 erster Addierer
11 Umverschlüsselungseinrichtung 12 zweiter Addierer
14 R-Box
16 C-Box
18 dritter Addierer
22 - 24 UND-Gatter 25 ODER-Gatter
29 - 31 UND-Gatter
32 ODER-Gatter
171 - 173 UND-Gatter
179 - 180 ODER-Gatter 600 erster Addierer
601 zweiter Addierer
602 dritter Addierer
603 Propagate-Leitung
604 Übertrag-Ausgangssignal-Leitung 605 UND-Gatter
606 Skip-Signal-Leitung
607 Übertrag-Ausgangssignal-Leitung für den zweiten Addierer
608 ODER-Gatter 1200 Bit-Slice für Bit n
1202 Bit-Slice für Bit n+1
1204 1-Bit-Volladdierer
1206 Umverschlüsselungseinrichtung

Claims

Patentansprüche
1. Carry-Skip-Addierer zum Addieren eines ersten Operanden (a) und eines zweiten Operanden (b) , wobei der erste und der zweite Operand durch Bits darstellbar sind, die von einem niederstwertigen Bit aus eine ansteigende Ordnung haben, mit folgenden Merkmalen:
einer ersten Addiereinrichtung (10) zum Liefern von Summen- bits für eine erste Mehrzahl von Bits in aufsteigender Reihenfolge, ausgehend von dem niederstwertigen Bit, und zum Liefern eines ersten Übertragsignals (c) für ein höchstwertiges Bit der ersten Mehrzahl von Bits;
einer zweiten Addiereinrichtung (12) zum Liefern von Summenbits für eine zweite Mehrzahl von Bits in aufsteigender Reihenfolge, ausgehend von einem nächsthöheren Bit als das höchstwertige Bit der ersten Mehrzahl von Bits, zum Liefern eines zweiten Übertragsignals des höchstwertigen Bits der zweiten Mehrzahl von und zum Liefern eines Propagate-Werts (P) der zweiten Mehrzahl von Bits;
einer dritten Addiereinrichtung (18) zum Liefern von Summenbits für eine dritte Mehrzahl von Bits in aufsteigender Rei- henfolge, ausgehend von einem nächsthöheren Bit als das höchstwertige Bit der zweiten Mehrzahl von Bits, zum Liefern eines dritten Übertragsignals des höchstwertigen Bits der dritten Mehrzahl von Bits, und zum Liefern eines Propagate- Werts der dritten Mehrzahl von Bits;
einer Einrichtung (14) zum UND-Verknüpfen des ersten Übertragbits der ersten Addiereinrichtung (10) und des Propagate- Werts der zweiten Addiereinrichtung (12), um ein Skip-Signal (R) zu erhalten, wobei das erste Übertragbit von der ersten Addiereinrichtung (10) und der Propagate-Wert von der zweiten Addiereinrichtung (12) zu der Einrichtung (14) zum UND- Verknüpfen verschlüsselt übertragbar sind; einer Einrichtung (16) zum ODER-Verknüpfen des zweiten Übertragsignals mit dem Skip-Signal, um ein Übertrag- Eingangssignal für einen Übertrag-Eingang der dritten Addiereinrichtung (18) zu erzeugen, wobei das zweite Übertrag- Signal von der zweiten Addiereinrichtung (12) und das Skip- Signal von der Einrichtung (14) zum UND-Verknüpfen verschlüsselt zu der Einrichtung (16) zum ODER-Verknüpfen übertragbar sind.
2. Carry-Skip-Addierer nach Patentanspruch 1, bei dem die Einrichtung (14) zum UND-Verknüpfen angeordnet ist, um aus dem verschlüsselten ersten Übertragsignal (c') und dem verschlüsselten Propagate-Signal (P') ein verschlüsseltes Skip- Signal (R') zu erzeugen, wobei die Einrichtung zum UND- Verknüpfen ferner einen Verschlüsselungsparameter für das erste Übertragsignal (c'), einen Verschlüsselungsparameter für das Propagate-Signal (P') und einen Verschlüsselungsparameter für das verschlüsselte Skip-Signal (R') empfangen kann, wobei die Einrichtung zum UND-Verknüpfen ferner angeordnet ist, um das verschlüsselte Skip-Signal (R') ohne Erzeugung von Klartextdaten zu berechnen.
3. Carry-Skip-Addierer nach Patentanspruch 1, bei dem die Einrichtung (14) zum ODER-Verknüpfen angeordnet ist, um aus dem verschlüsselten zweiten Übertragsignal (c') und dem verschlüsselten Skip-Signal ein verschlüsseltes Übertrag- Eingangssignal zu erzeugen, wobei die Einrichtung zum ODER- Verknüpfen ferner einen Verschlüsselungsparameter für das zweite Übertragsignal, einen Verschlüsselungsparameter für das Skip-Signal und einen Verschlüsselungsparameter für das verschlüsselte Übertrag-Signal empfangen kann, wobei die Einrichtung zum ODER-Verknüpfen ferner angeordnet ist, um das verschlüsselte Übertrag-Signal ohne Erzeugung von Klartextda- ten zu berechnen.
4. Carry-Skip-Addierer nach einem der vorhergehenden Ansprüche,
bei dem eine Verschlüsselung des Übertragbits, des Propagate- Werts und des Skip-Signals auf einem Verschlüsselungsalgorithmus und einem oder mehreren Verschlüsselungsparametern basiert,
wobei die Einrichtung (14) zum UND-Verknüpfen ausgeführt ist, um unter Verwendung einer Mehrzahl von mathematischen Operationen eine Rechenvorschrift zu implementieren, die folgendermaßen gegeben ist :
Figure imgf000024_0001
wobei R' das verschlüsselte Skip-Signal ist, wobei c' das verschlüsselte Übertragsignal ist, wobei P' das verschlüsselte Propagate-Signal ist, wobei VA der Verschlüsselungsalgorithmus ist, wobei VA-1 der invertierte Verschlüsselungsalgo- rithmus ist, wobei i der Verschlüsselungsparameter zur Verschlüsselung des Übertragsignals ist, wobei j der Verschlüsselungsparameter zum Verschlüsseln des Propagate-Signals ist, und wobei k der Verschlüsselungsparameter zum Verschlüsseln des Skip-Signals ist.
5. Carry-Skip-Addierer nach Patentanspruch 4, bei dem der Verschlüsselungsalgorithmus eine XOR-Verknüpfung aufweist, und bei dem die Einrichtung zum UND-Verknüpfen angeordnet ist, um folgende Rechenvorschrift zu implementieren:
R = [(c'θi)-(p'θj)]θk.
6. Carry-Skip-Addierer nach einem der vorhergehenden Ansprüche,
bei dem eine Verschlüsselung des Übertragbits, des Propagate- Werts und des Skip-Signals auf einem Verschlüsselungsalgo- rithmus und einem oder mehreren Verschlüsselungsparametern basiert,
wobei die Einrichtung (14) zum UND-Verknüpfen ausgeführt ist, um unter Verwendung einer Mehrzahl von mathematischen Operationen eine Rechenvorschrift zu implementieren, die folgendermaßen gegeben ist:
Figure imgf000025_0001
wobei R' das verschlüsselte Skip-Signal ist, wobei c' das verschlüsselte Übertragsignal für die dritte Addiereinrichtung ist, wobei (es') das Übertragausgangssignal aus der zweiten Addiereinrichtung ist, wobei (VA) der Verschlüsse- lungsalgorithmus ist, wobei (VA-1) der invertierte Verschlüsselungsalgorithmus ist, wobei (i) der Verschlüsselungsparameter zur Verschlüsselung des Skip-Signals ist, wobei (j) der Verschlüsselungsparameter zum Verschlüsseln des Übertragausgangssignal der zweiten Addiereinrichtung ist, und wobei (k) der Verschlüsselungsparameter zum Verschlüsseln des Übertragsignal für die dritte Addiereinrichtung ist.
7. Carry-Skip-Addierer nach Patentanspruch 6, bei dem der Verschlüsselungsalgorithmus eine XOR-Verknüpfung aufweist, und bei dem die Einrichtung zum UND-Verknüpfen angeordnet ist, um folgende Rechenvorschrift zu implementieren: c'= [(esΘi)+(R'θj)]θ k .
8. Carry-Skip-Addierer nach Patentanspruch 5, bei dem die Verschlüsselungsparameter für das Übertragsignal (c) , das Propagate-Signal (P) und das Skip-Signal gleich sind, und bei dem die Einrichtung (14) zum UND-Verknüpfen folgende Merkmale aufweist:
ein erstes UND-Gatter (23) zum UND-Verknüpfen des verschlüsselten Propagate-Signals und des Verschlüsselungsparameters; ein zweites UND-Gatter (24) zum UND-Verknüpfen des Verschlüsselungsparameters und des verschlüsselten Übertragsignals; ein drittes UND-Gatter (22) zum UND-Verknüpfen des verschlüsselten Propagate-Signals und des verschlüsselten Übertragsignals; und
ein ODER-Gatter zum Verknüpfen eines Ergebnisses des ersten UND-Gatters (23) , eines Ergebnisses des zweiten UND-Gatters (24) und eines Ergebnisses des dritten UND-Gatters (22), um das verschlüsselte Skip-Signal zu erhalten.
9. Carry-Skip-Addierer nach Patentanspruch 7, bei dem die Verschlüsselungsparameter für das verschlüsselte Skip-Signal, für das verschlüsselte zweite Übertragsignal und für das Ü- bertrageingangssignal gleich sind, und
bei dem die Einrichtung (16) zum ODER-Verknüpfen folgende Merkmale aufweist:
ein erstes UND-Gatter (29) zum UND-Verknüpfen des verschlüsselten zweiten Übertragsignals, eines ersten Umverschlüsse- lungsschlüssels und eines invertierten Verschlüsselungspara- meters;
ein zweites UND-Gatter (30) zum UND-Verknüpfen des Skip- Signals, des invertierten Verschlüsselungsparameters und eines zweiten Umverschlüsselungsschlüssels;
ein drittes UND-Gatter (31) zum UND-Verknüpfen des Skip- Signals, des ersten Umverschlüsselungsschlüssels, des zweiten Umverschlüsselungsschlüssels und des verschlüsselten zweiten Übertragsignals; und
ein ODER-Gatter (32) zum Verknüpfen eines Ergebnisses des ersten UND-Gatters (29), eines Ergebnisses des zweiten UND- Gatters (30) und eines Ergebnisses des dritten UND-Gatters (31) , um das verschlüsselte Übertrageingangssignal zu erhalten.
10. Carry-Skip-Addierer nach einem der vorhergehenden Ansprüche,
bei dem der erste und der zweite Operand (a, b) verschlüsselt sind, und bei dem die erste, zweite und dritte Addiereinrich- tung (10, 12, 18) einen Addierer für verschlüsselte Operanden umfaßt, der unter Verwendung mathematischer Teiloperationen verschlüsselte Ausgangssignale liefert, ohne Zwischenergebnisse der mathematischen Teiloperationen im Klartext zu erzeugen.
11. Carry-Skip-Addierer nach Patentanspruch 10,
bei dem die erste, die zweite und die dritte Addiereinrichtung (10, 12, 18) in Bit-Slices (1200, 1202) aufgebaut sind, wobei jedem Bit-Slice ein Verschlüsselungsparameter (ki) zugeordnet ist, wobei jeder Bit-Slice einen Ein-Bit- Volladdierer (1204) für verschlüsselte Eingangssignale aufweist, und wobei jeder Bit-Slice eine Umverschlüsselungsein- heit (1206) aufweist, um ein Übertragsignal eines Bit-Slices niedrigerer Ordnung unter Verwendung eines Umverschlüsse- lungs-Schlüssels für den aktuellen Bit-Slice umzuverschlüs- seln.
PCT/EP2002/014491 2002-01-16 2002-12-18 Carry-skip-addierer für verschlüsselte daten WO2003060672A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2002358757A AU2002358757A1 (en) 2002-01-16 2002-12-18 Carry-skip adder for encoded data

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE2002101450 DE10201450B4 (de) 2002-01-16 2002-01-16 Carry-Skip-Addierer für verschlüsselte Daten
DE10201450.7 2002-01-16

Publications (1)

Publication Number Publication Date
WO2003060672A1 true WO2003060672A1 (de) 2003-07-24

Family

ID=7712275

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2002/014491 WO2003060672A1 (de) 2002-01-16 2002-12-18 Carry-skip-addierer für verschlüsselte daten

Country Status (3)

Country Link
AU (1) AU2002358757A1 (de)
DE (1) DE10201450B4 (de)
WO (1) WO2003060672A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10590193B2 (en) 2008-06-25 2020-03-17 Novartis Ag Stable and soluble antibodies inhibiting VEGF

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102015116049B3 (de) 2015-09-23 2017-02-16 Infineon Technologies Ag Nulldetektionsschaltkreis und maskierter boolescher oder-schaltkreis

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5337269A (en) * 1993-03-05 1994-08-09 Cyrix Corporation Carry skip adder with independent carry-in and carry skip paths
WO2001040950A2 (de) * 1999-12-02 2001-06-07 Infineon Technologies Ag Mikroprozessoranordnung mit verschlüsselung
WO2001054083A1 (de) * 2000-01-18 2001-07-26 Infineon Technologies Ag Mikroprozessoranordnung mit verschlüsselung

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5214704A (en) * 1989-10-04 1993-05-25 Teledyne Industries, Inc. Nonlinear dynamic substitution devices and methods for block substitutions

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5337269A (en) * 1993-03-05 1994-08-09 Cyrix Corporation Carry skip adder with independent carry-in and carry skip paths
WO2001040950A2 (de) * 1999-12-02 2001-06-07 Infineon Technologies Ag Mikroprozessoranordnung mit verschlüsselung
WO2001054083A1 (de) * 2000-01-18 2001-07-26 Infineon Technologies Ag Mikroprozessoranordnung mit verschlüsselung

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KUHN M G: "CIPHER INSTRUCTION SEARCH ATTACK ON THE BUS-ENCRYPTION SECURITY MICROCONTROLLER DS5002FP", IEEE TRANSACTIONS ON COMPUTERS, IEEE INC. NEW YORK, US, vol. 47, no. 10, 1 October 1998 (1998-10-01), pages 1153 - 1157, XP000781996, ISSN: 0018-9340 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10590193B2 (en) 2008-06-25 2020-03-17 Novartis Ag Stable and soluble antibodies inhibiting VEGF

Also Published As

Publication number Publication date
AU2002358757A1 (en) 2003-07-30
DE10201450B4 (de) 2004-09-02
DE10201450A1 (de) 2003-07-31

Similar Documents

Publication Publication Date Title
DE10201449C1 (de) Rechenwerk, Verfahren zum Ausführen einer Operation mit einem verschlüsselten Operanden, Carry-Select-Addierer und Kryptographieprozessor
DE102005012098B4 (de) Datenchiffrierprozessor sowie AES-Chiffriersystem und AES-Chiffrierverfahren
EP2605445B1 (de) Verfahren und Vorrichtung zur Absicherung von Blockchiffren gegen Template-Attacken
DE60223337T3 (de) Verfahren zur gesicherten verschlüsselung und baustein zur ausführung eines solchen verschlüsselungsverfahrens
DE102010029735A1 (de) Verfahren zum Generieren eines Bitvektors
DE102004042826B4 (de) Verfahren und Vorrichtung zur Datenverschlüsselung
DE10304451B3 (de) Modulare Exponentiation mit randomisiertem Exponenten
WO2005024606A1 (de) Übergang zwischen maskierten repräsentationen eines wertes bei kryptographischen berechnungen
DE10324422B4 (de) Verfahren und Vorrichtung zur Abbildung eines abzubildenden Eingangswertes auf einen verschlüsselten abgebildeten Ausgangswert
WO2003060672A1 (de) Carry-skip-addierer für verschlüsselte daten
WO2014063875A1 (de) Vorrichtung und verfahren zur ausführung eines kryptographischen verfahrens
EP1446711B1 (de) Schiebevorrichtung und verfahren zum verschieben
EP1466245B1 (de) Rechenwerk und verfahren zum kombinieren eines ersten operanden mit einem zweiten operanden
DE19921633A1 (de) Verfahren zur Implementierung kryptographischer Algorithmen
DE102018208851A1 (de) Vorrichtung und Verfahren zum Umwandeln von Eingangsbitfolgen
EP1588518B1 (de) Vorrichtung und verfahren zum berechnen von verschlüsselten daten aus unverschlüsselten daten oder von unverschlüsselten daten aus verschlüsselten daten
DE10201443B4 (de) Carry-Save-Multiplizierer für verschlüsselte Daten
DE10201442C1 (de) Vorrichtung und Verfahren zum Multiplizieren oder Dividieren eines ersten Operanden mit bzw. durch einen zweiten Operanden
DE10207966B4 (de) Vorrichtung und Verfahren zum Codieren eines Stroms von Informationseinheiten bzw. zum Decodieren von Codewörtern
DE10129241B4 (de) Multifunktionaler Rechner
WO2004040434A2 (de) Vorrichtung und verfahren zum erzeugen einer pseudozufälligen folge von zahlen
DE10324420A1 (de) Kryptomultiplexerzelle
EP1044533A1 (de) Verschlüsselungsverfahren zum ausführen von kryptographischen operationen
DE112005001837B4 (de) Verfahren zum Schutz von Schlüsseln
WO2004006496A1 (de) Verschlüsselungsverfahren basierend auf faktorisierung

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SC SD SE SG SK SL TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR IE IT LU MC NL PT SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
WA Withdrawal of international application
NENP Non-entry into the national phase

Ref country code: JP

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642