[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

DE10201450B4 - Carry-skip adder for encrypted data - Google Patents

Carry-skip adder for encrypted data Download PDF

Info

Publication number
DE10201450B4
DE10201450B4 DE2002101450 DE10201450A DE10201450B4 DE 10201450 B4 DE10201450 B4 DE 10201450B4 DE 2002101450 DE2002101450 DE 2002101450 DE 10201450 A DE10201450 A DE 10201450A DE 10201450 B4 DE10201450 B4 DE 10201450B4
Authority
DE
Germany
Prior art keywords
carry
signal
encrypted
adder
skip
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE2002101450
Other languages
German (de)
Other versions
DE10201450A1 (en
Inventor
Franz Klug
Oliver Kniffler
Berndt Gammel
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
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 DE2002101450 priority Critical patent/DE10201450B4/en
Priority to AU2002358757A priority patent/AU2002358757A1/en
Priority to PCT/EP2002/014491 priority patent/WO2003060672A1/en
Publication of DE10201450A1 publication Critical patent/DE10201450A1/en
Application granted granted Critical
Publication of DE10201450B4 publication Critical patent/DE10201450B4/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/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)

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

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 Summenbits für eine erste Mehrzahl von Bits in aufsteigender Reihenfolge, ausgehend von dem niederstwertigen Bit, und zum Liefern eines ersten Übertragsignals (c4) 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 Bits 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 Reihenfolge, ausgehend...
Carry-skip adder for adding a first operand (a) and a second operand (b), the first and the second operand being able to be represented by bits which have an increasing order from a least significant bit, with the following features:
a first adder (10) for supplying sum bits for a first plurality of bits in ascending order, starting from the least significant bit, and for supplying a first carry signal (c 4 ) for a most significant bit of the first plurality of bits;
a second adder (12) for supplying sum bits for a second plurality of bits in ascending order, starting from a next higher bit than the most significant bit of the first plurality of bits, for supplying a second carry signal of the most significant bit of the second plurality of bits and for Providing a propagate value (P) of the second plurality of bits;
a third adding device (18) for supplying sum bits for a third plurality of bits in ascending order, starting from ...

Figure 00000001
Figure 00000001

Description

Die vorliegende Erfindung bezieht sich auf Addierer-Rechenwerke und insbesondere auf Carry-Skip-Addierer.The present invention relates on adder arithmetic units and especially on carry-skip adders.

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 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 niederstwertigen vier Bits der Operanden a, b, d. h. a0, a1, a2, a3 bzw. b0, b1, b2, b3 zu addieren. Der erste Addierer 600 gibt neben den Ergebnisbits bzw. Summenbits r0, r1, r2, r3 auch einen Übertrag aus dem höchstwertigen Bit-Slice aus, der in 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 6 ebenfalls vier Bits und summiert die nächsten vier Bits der Operanden a und b. 6 shows a three-stage carry-skip adder described in "Computer Architecture a Quantitative Approach", Hennessy and Patterson, Morgan Kaufmann Publishers, Inc., 1996, Appendix A. The adder in 6 comprises three adder stages 600 . 601 and 602 , The first stage is only exemplary 600 an adder with a bit width of 4 to add the least significant four bits of the operands a, b, ie a 0 , a 1 , a 2 , a 3 and b 0 , b 1 , b 2 , b 3, respectively. The first adder 600 In addition to the result bits or sum bits r 0 , r 1 , r 2 , r 3, it also outputs a carry from the most significant bit slice, which in 6 is denoted by c 4 . This carry bit c 4 of the first adder stage 600 is in the least significant bit slice of the second adder stage 601 fed. The second adder stage comprises in 6 also four bits and sums up the next four bits of operands a and b.

Bis hierhin arbeite er Addierer wie ein normaler Ripple-Carry-Addierer. Der bekannte Carry-Skip-Addierer, wie er in 6 gezeigt ist, zeichnet sich jedoch dadurch aus, daß die zweite Addiererstufe 601 einen Propagate-Wert P4,7 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 6 mit 607 bezeichnet ist, mittels eines ODER-Gatters 608 ODER-verknü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.Up to this point, he was working adders like a normal ripple carry adder. The well-known carry-skip adder as in 6 is shown, however, is characterized in that the second adder stage 601 a propagate value P 4.7 603 generated with the carry bit c4 604 in an AND gate 605 is linked to a skip signal 606 to create. The skip signal 606 becomes with a carry signal cs 8 from the most significant bit slice (for bit no. 7) of the second adder stage 601 , this in 6 With 607 is designated by means of an OR gate 608 OR-linked to the transmission input bit for the lowest bit slice (bit 8) of the third adder stage 602 to deliver. This circuit from AND gate 605 and OR gates 608 is then continued for possible further stages of the adder.

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 P4,7 dadurch, daß die Propagate-Werte der einzelnen Bit-Slices miteinander UND-verknüpft werden. In Gleichungsform ausgedrückt ergibt sich somit: P4,7 = P4 · P5 · P6 · P7 (1) Before the operation of the known carry-skip adder is discussed, the calculation of the propagate signal is first carried out 603 Referred. As is known, the propagate signal of the second adder stage P 4.7 is calculated by ANDing the propagate values of the individual bit slices. Expressed in the form of an equation: P 4.7 = P 4 · P 5 · P 6 · P 7 (1)

Ein Propagate-Wert für einen Bit-Slice i berechnet sich folgendermaßen: pi = ai + bi (2) A propagate value for a bit slice i is calculated as follows: p i = a i + b i (2)

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 ai und bi 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 ai oder bi gleich 1 ist . Sind sowohl ai als auch bi gleich 1, so wird von diesem Bit-Slice nicht nur ein Carry-Bit weitergereicht, 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.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 i and b i are 0, ie the propagate value pi is 0. On the other hand, a carry bit of a lower bit slice is passed on by the current bit slice, ie "propagated" if either a i or b i is 1. If both a i and b i are 1, this bit is used -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.

Der Carry-Skip-Addierer baut allgemein gesagt darauf auf, daß, wenn beispielsweise der zweite Addiererblock 601 in 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.Generally speaking, the carry-skip adder is based on the fact that if, for example, the second adder block 601 in 6 has a propagate value of 1 overall, ie no bit slice absorbs a carry, so the carry signal of the lowest adder 600 are immediately passed on to the next but one adder 602 , Due to the propagate signal from 1 of the second adder 601 becomes a carry c 4 by the lowest adder 600 is generated, 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.

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.The OR gate 608 at the output of the second adder stage 601 is only effective. if the skip signal 606 is 0 and a carry for the third adder 602 from the second adder 601 is produced.

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 „Durchrippeln" durch jeden Block im wesentlichen gleichzeitig. Wenn ein Block einen Carry erzeugt, dann wird das Carry-Ausgangssignal dieses Blocks wahr sein, selbst wenn das Carry-Eingangssignal in den Block noch nicht korrekt ist. Wenn an dem Beginn jeder Addier-Operation der Carry-Eingang in jeden 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 (c4) 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 wesentlicher 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.It should be noted that calculating the propagate value P is easier than calculating the generate value G. Therefore, only the propagate values P are calculated in the carry-skip adder. The carry-overs begin to "ripple" through each block at substantially the same time. If a block produces a carry, the carry output of that block will be true even if the carry input to the block is not yet correct At the beginning of each add operation, the carry input in each block is 0, then no carry output signals are generated, so the carry output signal of each block can also be interpreted as being the G signal, as soon as the carry output signal is off the least significant block (adder 600 ) is generated, it will not only be in the next block fed, but it is also linked by the AND gate with the P signal from the next block. If the carry output signal (c 4 ) and the P signal are both true, the carry skips the second block and is fed directly into the third block, etc. This provides a significant speed advantage over a simple ripple carry adder , This is all the more true if the adder stages are made unequal in size, as is known.

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 6 gezeigt ist, werden über- all 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.A disadvantage of the carry-skip adder described is the fact that it is only of limited suitability for cryptographic applications, since it is used for needle attacks to intercept processed data or result data and in particular also for SPA attacks (SPA = Single Power Analysis) or DPA (differential power analysis) attacks are vulnerable. In the well-known carry-skip adder, the in 6 plain text data is processed everywhere. Especially the Propagate line 603 who have favourited Carry Line 604 , and the skip signal line 606 are of considerable length if larger adder stages are used and are therefore suitable for physical attack scenarios such as e.g. B. needle attacks, vulnerable.

Das Vorlesungsskript der Uni Hannover, Ausgabe 11/00, insbesondere Kapitel 2.1.4 Seite 2-16 bis 2.23, recherchiert im Internet unter der Adresse URL:http://www.sra.unihannover.de/lehre/vorlesungen/hlr/kapitel.2.pdf offenbart zur Beschleunigung der Addition einen Carry-Lookahead-Addierer, bei dem Propagate-Signale, Generate-Signale und daraus berechnete Carry-Signale verwendet werden. Ferner werden auch Carry-Skip-Addierer oder Carry-Select-Addierer beschrieben.The lecture script of the University of Hanover, Issue 11/00, in particular chapter 2.1.4 pages 2-16 to 2.23, researched on the Internet at the address URL: http://www.sra.unihannover.de/lehre/vorlesungen/hlr/kapitel.2.pdf discloses a carry lookahead adder to accelerate the addition, in which Propagate signals, generate signals and carry signals calculated from them be used. Carry skip adders or carry select adders are also described.

Die DE 69222174 T2 offenbart nichtlineare dynamische Verfahren zur Blockvertauschung in Verbindung mit einem Verschlüsselungsverfahren, bei dem für jeden einzelnen von 2n eindeutigen Klartextblöcken aus n Bit Binärzahlen ein zugehöriger eindeutiger verschlüsselter Block aus n Bit Binärzahlen substituiert wird.The DE 69222174 T2 discloses nonlinear dynamic methods for interchanging blocks in connection with an encryption method in which an associated unique encrypted block of n bits of binary numbers is substituted for each of 2 n unique plain text blocks of n bits of binary numbers.

Die Aufgabe der vorliegenden Erfindung besteht darin, einen sichereren Carry-Skip-Addierer zu schaffen.The object of the present invention is to create a more secure carry-skip adder.

Diese Aufgabe wird durch einen Carry-Skip-Addierer gemäß Patentanspruch 1 gelöst.This is done by a carry-skip adder according to claim 1 solved.

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 Operanden 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.The present invention lies based on the knowledge that the Security of the carry-skip adder can be increased significantly can, if at least partially counted with encrypted operands becomes. This is especially true for 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 to. These structures are characteristic of the carry-skip adder and possibly in a design recognizable. About that in addition, these lines are longer than in a real design Lines of a bit slice of the adders, so that, for. B. physical attacks on these signals are easier.

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.It is also preferred, not only the carry signals, to encrypt the propagate signals and the skip signals, but also perform the AND and OR calculations in encrypted form, and about that also in the adder blocks Adder for encrypted Use data.

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 Operandenbit, 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.Although basically any reversible encryption algorithm for encryption the operands of the AND gate and the OR gate are used can, it will for reasons preference for speed and circuitry, encryption in the form of an XOR link as an encryption algorithm and an encryption parameter or alternatively an XNOR link with an encryption parameter use, the encryption bitwise, d. H. that the encryption parameters for each Operand bit, i. H. For every bit slice is different. This ensures a high level of security achieved that the key now and then or even for every operand is changed.

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 Alternative – 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.In a preferred embodiment the entire arithmetic unit works directly on encrypted operands. The encryption can be done according to the principle of one-time pad encryption. The result is also encrypted Form without ever generating an intermediate result in plain text. This will allow all types of statistical attack scenarios, such as z. B. DPA and SPA, much more difficult. This is - as known safe alternative - one Full custom solution avoided with dual-rail pre-charge. The arithmetic unit according to the invention is therefore more technology independent and typically also if a simple encryption algorithm is used to save space than a full custom solution in Dual rail precharge technique. However, if maximum security is searched, the arithmetic unit according to the invention can also be found in Dual rail precharge technology will be realized.

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 hereinafter referred to with reference to the accompanying Drawings explained in detail. Show it:

1 ein Blockschaltbild eines erfindungsgemäßen Carry-Skip-Addierers mit verschlüsselter UND-Operation und verschlüsselter ODER-Operation sowie verschlüsselten Addierern; 1 a block diagram of an inventive carry-skip adder with encrypted AND operation and encrypted OR operation and encrypted adders;

2 eine beispielhafte Implementation für die verschlüsselte UND-Operation; 2 an exemplary implementation for the encrypted AND operation;

3 eine beispielhafte Implementation für die verschlüsselte ODER-Operation; 3 an exemplary implementation for the encrypted OR operation;

4a ein Ausschnitt eines n-Bit-breiten Ripple-Carry-Addierers für verschlüsselte Operanden; 4a a section of an n-bit wide ripple carry adder for encrypted operands;

4b ein Prinzipschaltbild eines n-Bit-breiten Ripple-Carry-Addierers; 4b a schematic diagram of an n-bit wide ripple carry adder;

5a eine beispielhafte Implementation für eine verschlüsselte ADD-Operation für einen Bit-Slice; 5a an exemplary implementation for an encrypted ADD operation for a bit slice;

5b eine Wahrheitstabelle für eine verschlüsselte ADD-Operation für einen Bit-Slice; und 5b a truth table for an encrypted ADD operation for a bit slice; and

6 ein Blockschaltbild eines bekannten Carry-Skip-Addierers. 6 a block diagram of a known carry-skip adder.

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 1 gezeigten Ausführungsbeispiel finden sämtliche Operationen im Geheimtextraum statt. Im einzelnen umfaßt der in 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 somit 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'4 wird in eine Umverschlüsselungseinheit UV 11 eingespeist, um von der Schlüsselbasis k3 auf die Schlüsselbasis k4 umverschlüsselt zu werden, und zwar unter Verwendung des Umverschlüsselungsschlüssels t4, der gleich der XOR-Verknüpfung der Schlüssel k3 und k4 ist. 1 shows a block diagram of a preferred embodiment of a more secure carry-skip adder, in which bit-by-bit encryption of operands a, b, with its own encryption parameter k i per operand bit is used. Regarding the notation, it should be noted that sizes are encoded with an apostrophe. At the in 1 shown embodiment all operations take place in the secret text space. Specifically, the in 1 shown carry-skip adder according to a preferred embodiment of the present invention a first adder block 10 for adding a first plurality of bits of the two operands a, b, the first plurality of bits being 4, for 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 a first carry signal c ' 4 as an output signal, which is also encrypted. The first carry signal c ' 4 is converted into a re-encryption unit UV 11 fed in, in order to be re-encrypted from the key base k 3 to the key base k 4 , using the re-encryption key t 4 , which is equal to the XOR combination of the keys k 3 and k 4 .

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 addiert, wobei die zweite Mehrzahl in 1 beispielhaft ebenfalls gleich 4 ist. Der zweite Addierer 12 für verschlüsselte Operanden gibt neben den verschlüsselten Summenbits, die in 1 nicht eingezeichnet sind, ein zweites Übertragsignal cs'8 aus, das, wie es der Apostroph zeigt, ebenfalls verschlüsselt ist.The re-encrypted carry bit is then in a second adder 12 for encrypted data, the second adder adding a second plurality of operand bits, the second plurality in 1 4 is also exemplary. The second adder 12 for encrypted operands, in addition to the encrypted sum bits contained in 1 are not shown, a second carry signal cs' 8 , which, as the apostrophe shows, is also encrypted.

Der Carry-Skip-Addierer für verschlüsselte Daten aus 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 1 mit cs'8 bezeichnet ist, einer ODER-Verknüpfung zu unterziehen ist, um das Übertrag-Eingangssignal für einen dritten Addierer 18 zu liefern.The carry-skip adder for encrypted data 1 also includes an R-Box for implementing the AND operation of the propagate signal of the second adder 12 and the first carry signal c ' 4 of the first adder 10 to generate a skip signal R that is in a C-box 16 with the second carry signal of the second adder 12 , this in 1 denoted by cs' 8 is to be OR'ed to the carry input signal for a third adder 18 to deliver.

Es sei darauf hingewiesen, daß bei dem in 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'4, das Propagate-Signal P'4,7, das Skip-Signal R'4,7 sowie das zweite Übertragsignal cs'8 verschlüsselt sind. Damit wird sichergestellt, daß diese Leitungen, die aufgrund der Konstruktion des Carry-Skip-Addierers bereits eine beträchtliche Länge haben können, gegenüber Abhören gesichert sind.It should be noted that in the 1 shown carry-skip adder according to the present invention all signals on lines that have a significant length due to the system, ie the first carry signal c ' 4 , the propagate signal P' 4.7 , the skip signal R ' 4.7 and the second carry signal cs' 8 are encrypted. This ensures that these lines, which can already have a considerable length due to the design of the carry-skip adder, are secured against eavesdropping.

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 unmittelbar 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.There are various options for generating the encrypted carry signals, propagate signals and skip signals. An easy way to generate these signals is to use plain text adders 10 . 12 . 18 to use, and to encrypt the carry signals and the propagate signals directly at the output of the adders, so that encrypted values are transmitted via signal lines. The encrypted signals are then encrypted via the required signal lines, for example to the R-Box 14 transmitted (the first carry signal and the first propagate signal). If an AND operation is to be carried out in plain text space, the signals at the R-Box input are decrypted again. Then the AND operation is carried out in clear text space, and the result of the AND operation is immediately encrypted again at the exit of the R-Box in order to be supplied to the C-Box in an encrypted state. The same can be done with the second carry output signal cs' 8 . This can be done at the output of the second adder 12 , which can then be a plain text adder, encrypted and just like the encrypted skip signal R of the C-Box 16 are supplied, where both signals are decrypted, the OR operation is carried out in plain text space, and then the result of the OR operation is encrypted again.

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 verschlüsseln und zu ihrem Bestimmungsort in verschlüsseltem Zustand zu übertragen.The embodiment described above already provides a certain degree of certainty that no encrypted data are transmitted over longer lines. In this context it also makes sense to add the sum bits of the adders 10 . 12 . 18 also encrypted after its creation and transmitted to its destination in an encrypted state.

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) Another security enhancement 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 using the R-Box 14 and the OR combination of the C-Box 16 Execute directly in the ciphertext space without intermediate results being generated in the plaintext space. The determination equation for the AND operation in the R-Box 14 in plain text space reads as follows: R = cP (3)

Die Operation der R-Box im Geheimtextraum läßt sich folgendermaßen angeben: R' = (c · P)' (4) The operation of the R-Box in the secret text space can be specified as follows: R '= (cP)' (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 angibt, und wobei i der Schlüssel für den Verschlüsselungsalgorithmus ist: c' = VA(c,i) (5) It is desirable that only encrypted operands are available. An encrypted carry signal c 'is defined as follows, where VA indicates an encryption algorithm and where i is the key for the encryption algorithm: 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: R' = VA{[VA-1 (c', i) · VA- 1 (P', j )],k (7) The plaintext carry signal can be calculated from equation 5 as follows: c = VA -1 (c ', i) (6) where VA -1 is the inverse of the encryption algorithm VA. If equation 6 is inserted into equation 4 and an analog substitution is made for the propagate signal P, the following expression results for equation 4: R '= VA {[VA -1 (c ', i) VA - 1 (P ', j)], k (7)

In Gleichung 7 bezeichnen i, j und k unterschiedliche Schlüssel, wobei i der Schlüssel für das Übertragsignal c ist, wobei 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.In equation 7, i, j and k different keys, where i is the key for the carry signal c is where j is the key for the Propagate signal P and where k is the key for the result, that is, for the 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.Equation 7 can for one concrete encryption algorithm be reshaped accordingly to form a shape at that without calculating intermediate results in plain text space encrypted Skip signal R from the encrypted carry signal c and the encrypted Propagate signal P can be calculated.

Dies wird nachfolgend anhand des folgenden Verschlüsselungsalgorithmus dargelegt. x' = x ⊕ k; x = x' ⊕ k (8) This is explained below using the following encryption algorithm. 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) The encryption algorithm is the XOR function, the reverse of which is also the XOR operation. Equation 8 in Equation 7 is replaced by the following expression: 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 gegeben ist: R' = P' · k + c' · k + P' · c' (10) If the keys i, j and k are assumed to be equal and this key is designated k, and if equation 9 is transformed using standard mathematical transformation laws, a logical equation for R 'is obtained, which is generally expressed as follows: R '= P'k + c'k + P'c' (10)

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 2 lediglich der Schlüssel k4 eingespeist wird, ist auch die Ausgabe R4,7 (4) mit diesem Schlüssel verschlüsselt. 2 shows an implementation of equation 10, the three AND gates 22 . 23 . 24 and an OR gate 25 includes. After in the R-Box from 2 only the key k 4 is fed in, the output R 4.7 (4) is also encrypted with this key.

Bezüglich der Notation in 2 und 3 sei darauf hingewiesen, daß eine hochgestellte Zahl in Klammern statt des Apostrophs angibt, auf welcher Schlüsselbasis der Wert ver schlüsselt ist. So bedeutet c4 (4) das Übertrag-Eingangsbit für den vierten Bit-Slice aus 1, jedoch mit dem Schlüssel k9 verschlüsselt, was durch die Umverschlüsselungseinrichtung 11 aus 1 erreicht wird.Regarding the notation in 2 and 3 it should be noted that a superscript number in brackets instead of the apostrophe indicates on which key basis the value is encrypted. So c 4 (4) means the carry input bit for the fourth bit slice 1 , but encrypted with the key k 9 , what by the re-encryption device 11 out 1 is achieved.

Dieselbe Vorgehensweise wie in 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' = [(c's ⊕ i)+ (R' ⊕ j)] ⊕ k (11) The same procedure as in 2 can be chosen to OR the C-Box 16 to implement in the ciphertext space. If equation 8 is used as the encryption algorithm, the determination equation is as follows: c '= [(c's ⊕ 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' = tik · cs' + Rj · tjk · kk + cs' · tik · Rj · tik (12) In equation 11, c 'is the carry output of the C-box 16 , c's is the second carry output of the second adder 12 , and R 'is the output of the R-Box as the encrypted skip signal. If all keys are selected the same again and set equal to k, the following expression results after some conversion: C '= t ik · Cs' + R j · T jk · K k + cs' · t ik · R j · T ik (12)

Eine direkte Logikimplementation von Gleichung 12 ist in 3 gezeigt. Sie umfaßt drei UND-Gatter 29, 30, 31 und ein ODER-Gatter 32.A direct logic implementation of Equation 12 is shown in 3 shown. It comprises three AND gates 29 . 30 . 31 and an OR gate 32 ,

Die Logikimplementationen der 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 Rechnung beteiligten Größen gewählt wird, wofür entsprechende Umverschlüsselungen mit Umverschlüsselungsschlüsseln nötig sine, wie es in den Figuren gezeigt ist.The logic implementations of 2 and 3 therefore only apply if there is a common key basis for each invoice, ie if the same key is selected for sizes involved in this invoice, for which purpose corresponding re-encryption with re-encryption keys is necessary, as shown in the figures.

Eine Umverschlüsselung für den in Gleichung 8 gezeigten Verschlüsselungsalgorithmus ist allgemein folgendermaßen definiert: x(i) = tij ⊕ x(j); tij = i ⊕ j (13) A re-encryption for the encryption algorithm shown in equation 8 is generally defined as follows: x (i) = t ij ⊕ x (J) ; t ij = i ⊕ j (13)

In Gleichung 13 bedeutet x(i) einem mit dem Schlüssel i verschlüsselten Wert x, während x(j) einen mit j verschlüsselten Wert x darstellt. tij 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.In equation 13, x (i) means a value x encrypted with the key i, while x (j) represents a value x encrypted with j. t ij is the re-encryption key that is calculated for the encryption algorithm discussed here from an XOR combination of the two keys i and j.

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 1 betrachtet wird, daß das erste Übertragsignal 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 niederstwertige 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.As will be explained below, it is preferred to have a carry-skip adder that works completely in the ciphertext space and in which encryption keys or encryption parameters are assigned bit by bit. This means if 1 it is considered that the first carry signal c ' 4 is generated encrypted 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 the skip signal is already correctly encrypted for the common key base k 8 chosen for the C-Box ,

Für Fachleute ist es offensichtlich, daß es für die Implementationen 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üsselungen eine Vielzahl verschiedener Möglichkeiten gibt, wobei die verschiedenen Möglichkeiten dadurch erhalten werden können, 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.For It is obvious to experts that it is for the implementations of the Equations based on the R-Box for encrypted data and the C-Box for encrypted data be implemented, and especially for the re-encryption a variety of different ways there, taking the various options can be obtained by that under Using mathematical transformation laws the corresponding equations be reshaped, or that different Keybases used become. Which implementation is preferred in practice, hangs too depending on the technology used, d. H. whether z. B. OR gate or exclusive OR gate better to implement, or whether AND gates or NAND gates for a particular Technology are more appropriate.

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üsseltes Ergebnis liefern, ohne Zwischenergebnisse im Klartextraum zu generieren. Ferner wird es bevorzugt, eine bitweise Verschlüsselung unter Verwendung verschiedener Schlüssel ki für die verschiedenen Bits ai bzw. bi zu verwenden. Im nachfolgenden wird dargelegt, wie für den Verschlüsselungsalgorithmus von Gleichung 8 ein verschlüsseltes Propagate-Signal P'4,7 berechnet werden kann. Das Propagate-Signal P4,7 berechnet sich im Klartextraum folgendermaßen: P4,7 = p4 · p5 · p6 · p7 (14) As has already been stated, it is preferred for the adders 10 . 12 . 18 To use adders that can work with encrypted operands and deliver an encrypted result without generating intermediate results in plain text. It is further preferred to use bit-by-bit encryption using different keys k i for the different bits a i and b i . The following explains how an encrypted propagate signal P ' 4,7 can be calculated for the encryption algorithm of equation 8. The propagate signal P 4.7 is calculated in the plain text space as follows: P 4.7 = p 4 · P 5 · P 6 · P 7 (14)

Auf die Operandenbits ai, bi bezogen bedeutet dies: P4,7 = (a4 + b4)·(a5 + b5)(a6 + b6)(a7 + b7) (15) In relation to the operand bits a i , b i , this means: P 4.7 = (a 4 + b 4 ) · (A 5 + b 5 ) (A 6 + b 6 ) (A 7 + b 7 ) (15)

Das verschlüsselte Propagate-Signal P'a, berechnet sich demnach unter Verwendung der Systematik von Gleichung 9 und Gleichung 11: P(4)4,7 = {[(a'4 ⊕ k4 + b'4 ⊕ k4) ⊕ k4 ⊕ k5]. [(a'5 ⊕ k5 +b'5 ⊕ k5) ⊕ k5 ⊕ k6]. [(a'6 ⊕ k6 + b'6 ⊕ k6) ⊕ k6 ⊕ k7. [(a'7 ⊕ k7 + b'7 ⊕ k7)]} ⊕ k7 ⊕ k4 (16) The encrypted propagate signal P'a is therefore calculated using the systematics of Equation 9 and Equation 11: P (4) 4.7 = {[(a ' 4 ⊕ k 4 + b ' 4 ⊕ k 4 ) ⊕ k 4 ⊕ k 5 ]. [(A ' 5 ⊕ k 5 + B ' 5 ⊕ k 5 ) ⊕ k 5 ⊕ k 6 ]. [(A ' 6 ⊕ k 6 + b ' 6 ⊕ k 6 ) ⊕ k 6 ⊕ k 7 , [(A ' 7 ⊕ k 7 + b ' 7 ⊕ k 7 )]} ⊕ k 7 ⊕ k 4 (16)

Auch Gleichung 16 kann unter Verwendung üblicher mathematischer 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 Umverschlüsselung für den nächst-höheren Bit-Slice durchzuführen 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 k4. Wird der Propagate-Wert dagegen verschlüsselt mit dem Schlüssel k7 benötigt, so kann auf diese Umverschlüsselungsoperation verzichtet werden.Equation 16 can also be transformed using conventional mathematical laws to arrive at a form in which no intermediate plain-text results occur. In particular, 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 combination of the overall result with the result of the XOR combination of k 7 and k 4 at the end of equation 16 provides the re-encoding of the propagate value to the key k 4 . If, on the other hand, the propagate value is required encrypted with the key k 7 , this re-encryption operation can be dispensed with.

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 bevorzugt, 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.It is obvious to experts that as an adder 10 . 12 . 18 any adders can be used. 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 the adder 10 . 12 and 18 use. In principle, for the adding devices 10 . 12 . 18 any means used under Ver supply input bits provide sum bits and a carry bit for the highest level. 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.

Im nachfolgenden werden verschiedene Möglichkeiten zum Implementieren eines Addierers im Geheimtextraum dargelegt.The following are different possibilities to implement an adder in ciphertext space.

Im nachfolgenden wird auf 5a Bezug genommen, um eine ADD-Operation zwischen den verschlüsselten Operanden ak n und bkn zu erläutern. Bestimmungsgleichung hierfür ist die nachfolgende Gleichung:

Figure 00160001
The following is on 5a Reference is made to explain an ADD operation between the encrypted operands a k n and b kn . The determination equation for this is the following equation:
Figure 00160001

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 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 „plain" = unverschlüsselt steht, und wobei in der vorletzten Zeile der Übertrag der ADD-Operation der erfindungsgemäßen ALU ck gezeigt ist.The operation of three operands or of three bits of operands, if a bit slice of a parallel adder is considered, leads to a carry c, wherein in the penultimate column and the third last column the in 5b Truth table shown the carry-over in the ADD operation between the unencrypted operands a, b and c is listed as cp, where p stands for "plain" = unencrypted, and wherein in the penultimate line the carry of the ADD operation of the ALU ck according to the invention is shown is.

Der Übertrag ckn(n+i) ergibt sich durch folgende Gleichung:

Figure 00170001
The carry ckn (n + i) results from the following equation:
Figure 00170001

Die Implementierung der vorstehenden Gleichung ist in 5a dargestellt. Die ALU von 5a für ein verschlüsseltes Rechenwerk 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+1 für die ADD-Verknüpfung der drei Eingangs-Operanden, welcher wieder gemäß der in 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+1 den Übertrag (Carry-In) für die nächsthöhere ((n+1)-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+1 für die nächsthöhere Position. Dies bedeutet, daß je nach Ausführung eines Bit-Slices eine Umverschlüsselung von (ckn)n+1 vom Schlüssel kn in den Schlüssel kn+1 stattfinden wird.The implementation of the above equation is in 5a shown. The ALU from 5a for an encrypted arithmetic unit again comprises a large number of arithmetic sub-operations, namely AND operations 171 to 173 and OR operations 179 and 180 , On the output side, the carry (ckn) n + 1 results for the ADD combination of the three input operands, which again according to the in 5b shown truth table matches the carry if the three operands are added in unencrypted form and then encrypted. In particular, (ckn) n + 1 means the carry-in for the next higher ((n + 1) th) position (bit slice), encrypted with the key k n , that is to say with the key of the current position n, not encrypted with the key k n + 1 for the next higher position. This means that depending on the execution of a bit slice, a re-encryption from (ckn) n + 1 from the key k n to the key k n + 1 will take place.

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' (c' = (ckn)n+1) 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.The two equations above provide an implementation for an adder with encrypted operands, which outputs an encrypted sum bit s '(s' = s kn ) and an encrypted carry bit c '(c' = (ckn) n + 1 ), the same on the input side in addition to the two encrypted operands receives an encrypted transmission input bit. Such an adder is also referred to in the prior art - in the case of unencrypted data - as a one-bit full adder.

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 4a gezeigt. Im einzelnen zeigt 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 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üsselter Übertrageingang verwendet werden, um verschlüsselte Ausgangsgrößen, d. h. verschlüsselte Summenbits und verschlüsselte Übertragsbits zu erzeugen.A one bit full adder is used to make an n bit full adder 10 . 12 . 18 build. In this case, the one-bit full adder is referred to as a bit slice or bit slice device. The interconnection of two bit slice devices is in 4a shown. In detail shows 4a a first bit slice 1200 for the bit of order n and a bit slice 1202 for the bit of order n + 1. At the heart of every bit slice is the arithmetic unit for encrypted operands, which in 4a With 1204 is designated. As has been stated, any other implementations for an encrypted adder are possible as long as encrypted input operands and an encrypted transmit input are used to generate encrypted outputs, ie encrypted sum bits and encrypted carry bits.

Der Ein-Bit-Volladdierer, der in 4a gezeigt ist, ist durch folgende beiden Bestimmungsgleichungen definiert: s = x ⊕ y ⊕ z c = x · y + z · x + z · y The one-bit full adder that is in 4a is shown, is defined by the following two equations: 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 invertierte 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+1 eingegeben. In den zweiten Eingang y wird das aktuelle verschlüsselte Bit des zweiten Operanden, also b'n+1 eingegeben. In den dritten Eingang z wird ein Bit eingegeben, das von dem Übertragausgangsbit c'n des vorhergehenden Bit-Slices 1200 abhängt.The adder equations are chosen here such that in the one-bit full adder 1204 no encryption key itself needs to be entered, but it does in the bit slice 1202 or 1200 according to an embodiment of the present invention. In addition, the one-bit full adder 1204 arranged such 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, that is, a ' n + 1, is entered into the first input x of the one-bit full adder of the bit slice for bit n + 1. The current encrypted bit of the second operand, that is, b'n + 1, is entered into the second input y. A bit is input into the third input z, which is derived from the carry output bit c ' n of the previous bit slice 1200 depends.

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+1 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+1 der aktuellen Bit-Slice-Einrichtung durchgeführt werden.It is pointed out that the carry output bit of the preceding bit slice cannot be used directly, since it is for the two different bit slice devices 1200 and 1202 different encryption keys k n + 1 or k n are present. Therefore, the carry-out bit of the previous bit slice device must be re-encrypted from the encryption key k n for the previous bit slice device to the encryption key k n + 1 of the current bit slice device.

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+1 erreicht werden. Dies ist durch ein XOR-Gatter 1206 dargestellt. Der Umverschlüsselungs-Schlüssel tn+1 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+1 für den Bit-Slice 1202 und kn für den Bit-Slice 1200.In the case of encryption using an XOR operation, re-encryption can be carried out simply by XOR operation of the encrypted carry output bit of the bit slice 1200 can be achieved with a re-encryption key t n + 1 . This is through an XOR gate 1206 shown. The re-encryption key t n + 1 is calculated as intended by the XOR combination of the two keys concerned for the two bit slices, that is to say by an XOR combination of k n + 1 for the bit slice 1202 and k n for the bit slice 1200 ,

Die Bit-Slice-Einrichtung 1202 gibt wieder ein Übertragausgangsbit aus, das jedoch mit dem Schlüssel kn+1 verschlüsselt ist und von der nächsthöheren Stufe (in 4a nicht gezeigt) 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 Umverschlüsselungs-XOR-Gatter 1206 umverschlüsselt werden muß.The bit slice facility 1202 again outputs a carry output bit, which, however, is encrypted with the key k n + 1 and from the next higher level (in 4a not shown) must be re-encrypted accordingly. The same applies to the transmission input of the bit slice 1200 to. Here a carry output bit of the next lower levels n-1 is obtained, this bit again by the re-encryption XOR gate 1206 must be encrypted.

Werden mehrere Bit-Slices aneinander geschaltet, wie es in 4a gezeigt ist, so ergibt sich allgemein ein Ripple-Carry-Addierer (4b), der als Eingangsgrößen die beiden verschlüsselten Operanden a', b' sowie die Umverschlüsselungs-Schlüssel für die einzelnen Bits ti erhält. Der Ripple-Carry-Addierer, der in 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.If several bit slices are connected to one another, as in 4a is shown, a ripple carry adder generally results ( 4b ), which receives the two encrypted operands a ', b' and the re-encryption key for the individual bits t i as input variables. The ripple carry adder, which in 4b a transmission input signal, which is set to 0 for a conventional ripple carry adder, which operates in the addition mode, is also received as an input signal.

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 4b die Summenbits in verschlüsselter Form, nämlich s0', s1' bis sN'. Darüber hinaus liefert der in 4b gezeigte Addierer als Ausgangssignal ein Übertragbit des höchsten Bit-Slices innerhalb des Addierers, falls ein solches erzeugt wird.Of course, instead of a 0, a 1 can also be created, as is explained for the carry select adder explained below. On the output side, the adder delivers from 4b the sum bits in encrypted form, namely s 0 ', s 1 ' to s N '. In addition, the in 4b shown adder as an output signal a carry bit of the highest bit slice within the adder, if such is generated.

1010
erster Addiererfirst adder
1111
UmverschlüsselungseinrichtungUmverschlüsselungseinrichtung
1212
zweiter Addierersecond adder
1414
R-BoxR-Box
1616
C-BoxC-Box
1818
dritter Addiererthird adder
22-2422-24
UND-GatterAND gate
2525
ODER-GatterOR gate
29-3129-31
UND-GatterAND gate
3232
ODER-GatterOR gate
171-173171-173
UND-GatterAND gate
179-180179-180
ODER-GatterOR gate
600600
erster Addiererfirst adder
601601
zweiter Addierersecond adder
602602
dritter Addiererthird adder
603603
Propagate-LeitungPropagate line
604604
Übertrag-Ausgangssignal-LeitungCarry output signal line
605605
UND-GatterAND gate
606606
Skip-Signal-LeitungSkip signal line
607607
Übertrag-Ausgangssignal-Leitung für den zweiten AddiererCarry output signal line for the second adder
608608
ODER-GatterOR gate
12001200
Bit-Slice für Bit nBit-slice for bit n
12021202
Bit-Slice für Bit n+1Bit-slice for bit n + 1
12041204
1-Bit-Volladdierer1-bit full adder
12061206
UmverschlüsselungseinrichtungUmverschlüsselungseinrichtung

Claims (11)

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 Summenbits für eine erste Mehrzahl von Bits in aufsteigender Reihenfolge, ausgehend von dem niederstwertigen Bit, und zum Liefern eines ersten Übertragsignals (c4) 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 Bits 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 Reihenfolge, 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.Carry-skip adder for adding a first operand (a) and a second operand (b), the first and the second operand being able to be represented by bits which start from a least significant bit have increasing order, with the following features: a first adder ( 10 ) for supplying sum bits for a first plurality of bits in ascending order, starting from the least significant bit, and for supplying a first carry signal (c 4 ) for a most significant bit of the first plurality of bits; a second adding device ( 12 ) for supplying sum bits for a second plurality of bits in ascending order, starting from a next higher bit than the most significant bit of the first plurality of bits, for supplying a second carry signal of the most significant bit of the second plurality of bits and for supplying a propagate value (P) the second plurality of bits; a third adding device ( 18 ) for supplying sum bits for a third plurality of bits in ascending order, starting from a bit higher than the most significant bit of the second plurality of bits, for supplying a third carry signal of the most significant bit of the third plurality of bits, and for providing a propagate- Value of the third plurality of bits; a facility ( 14 ) for ANDing the first carry bit of the first adder ( 10 ) and the propagate value of the second adder ( 12 ) to obtain a skip signal (R), the first carry bit from the first adder ( 10 ) and the propagate value from the second adder ( 12 ) to the facility ( 14 ) can be transmitted encrypted for AND linking; a facility ( 16 ) for OR-linking the second carry signal with the skip signal to form a carry input signal for a carry input of the third adder ( 18 ), the second carry signal from the second adder ( 12 ) and the skip signal from the facility ( 14 ) for AND linking encrypted to the device ( 16 ) are transferable for OR linking. 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.Carry-skip adder according to claim 1, in which the device ( 14 ) is arranged for AND linking, in order to generate an encrypted skip signal (R ') from the encrypted first carry signal (c') and the encrypted propagate signal (P '), the device for AND linking further comprising an encryption parameter for the first carry signal (c '), an encryption parameter for the propagate signal (P') and an encryption parameter for the encrypted skip signal (R '), wherein the device for AND linking is further arranged to receive the encrypted To calculate skip signal (R ') without generating plain text data. 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 Klartextdaten zu berechnen.Carry-skip adder according to claim 1, in which the device ( 14 ) is arranged for OR linking in order to generate an encrypted carry input signal from the encrypted second carry signal (c ') and the encrypted skip signal, the device for OR linking furthermore an encryption parameter for the second carry signal, an encryption parameter for can receive the skip signal and an encryption parameter for the encrypted carry signal, wherein the device for OR-linking is further arranged to calculate the encrypted carry signal without generating plain text data. 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: R' = VA {⎣VA-1(c',i) · VA-1(P',j)⎦,k}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üsselungsalgorithmus 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.Carry-skip adder according to one of the preceding claims, in which encryption of the carry bit, the propagate value and the skip signal is based on an encryption algorithm and one or more encryption parameters, the device ( 14 ) is implemented for AND linking in order to implement a calculation rule using a plurality of mathematical operations, which is given as follows: R '= VA {⎣VA -1 (c ', i) VA -1 (P ', j) ⎦, k} where R 'is the encrypted skip signal, where c "is the encrypted carry signal, where P' is the encrypted propagate signal, where VA is the encryption algorithm, where VA -1 is the inverted encryption algorithm, where i is the encryption parameter for encrypting the Carry signal, where j is the encryption parameter for encrypting the propagate signal, and k is the encryption parameter for encrypting the skip signal. 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 . Carry-skip adder according to claim 4, in which the encryption algorithm has an XOR operation, and in which the device for AND operation is arranged to implement the following calculation rule: R '= [(c' ⊕ i) · (P '⊕ j)] ⊕ k. 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: c' = VA {⎣VA-1(R',i) + VA-1(cs',j)⎦,k}wobei R' das verschlüsselte Skip-Signal ist, wobei c' das verschlüsselte Übertragsignal für die dritte Addiereinrichtung ist, wobei (cs') das Übertragausgangssignal aus der zweiten Addiereinrichtung ist, wobei (VA) der Verschlüsselungsalgorithmus 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.Carry-skip adder according to one of the preceding claims, in which encryption of the carry bit, the propagate value and the skip signal is based on an encryption algorithm and one or more encryption parameters, the facility ( 14 ) is implemented for AND linking in order to implement a calculation rule using a plurality of mathematical operations, which is given as follows: c '= VA {⎣VA -1 (R ', i) + VA -1 (Cs', j) ⎦, k} where R 'is the encrypted skip signal, where c' is the encrypted carry signal for the third adder, where (cs') is the carry output signal from the second adder, where (VA) is the encryption algorithm, where (VA -1 ) is inverted encryption algorithm, where (i) is the encryption parameter for encrypting the skip signal, where (j) is the encryption parameter for encrypting the carry output of the second adder, and (k) is the encryption parameter for encrypting the carry signal for the third adder. 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' = [(c's ⊕ i) + (R'⊕j)] ⊕ k . Carry-skip adder according to claim 6, in which the encryption algorithm has an XOR operation, and in which the device for AND operation is arranged to implement the following calculation rule: c '= [(c's ⊕ i) + (R'⊕j)] ⊕ k. 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.Carry-skip adder according to Claim 5, in which the encryption parameters for the carry signal (c), the propagate signal (P) and the skip signal are the same, and in which the device ( 14 ) for AND linking has the following features: a first AND gate ( 23 ) for ANDing the encrypted propagate signal and the encryption parameter; a second AND gate ( 24 ) for ANDing the encryption parameter and the encrypted carry signal; a third AND gate ( 22 ) for ANDing the encrypted propagate signal and the encrypted carry signal; and an OR gate for combining a result of the first AND gate ( 23 ), a result of the second AND gate ( 24 ) and a result of the third AND gate ( 22 ) to receive the encrypted skip signal. 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üsselungsschlüssels und eines invertierten Verschlüsselungsparameters; 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.Carry-skip adder according to Claim 7, in which the encryption parameters for the encrypted skip signal, for the encrypted second carry signal and for the carry input signal are the same, and in which the device ( 16 ) for OR-linking has the following features: a first AND gate ( 29 ) for ANDing the encrypted second carry signal, a first re-encryption key and an inverted encryption parameter; a second AND gate ( 30 ) for ANDing the skip signal, the inverted encryption parameter and a second re-encryption key; a third AND gate ( 31 ) for ANDing the skip signal, the first re-encryption key, the second re-encryption key and the encrypted second carry signal; and an OR gate ( 32 ) for linking a result of the first AND gate ( 29 ), a result of the second AND gate ( 30 ) and a result of the third AND gate ( 31 ) to receive the encrypted transmission input signal. 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 Addiereinrichtung (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.Carry-skip adder according to one of the preceding claims, in which the first and the second operand (a, b) are encrypted, and in which the first, second and third adding device ( 10 . 12 . 18 ) comprises an adder for encrypted operands, which supplies encrypted output signals using mathematical sub-operations without generating intermediate results of the mathematical sub-operations in plain text. 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üsselungseinheit (1206) aufweist, um ein Übertragsignal eines Bit-Slices niedrigerer Ordnung unter Verwendung eines Umverschlüsselungs-Schlüssels für den aktuellen Bit-Slice umzuverschlüsseln.A carry-skip adder according to claim 10, wherein the first, second and third adding means ( 10 . 12 . 18 ) in bit slices ( 1200 . 1202 ), with each bit slice being assigned an encryption parameter (k i ), each bit slice being a one-bit full adder ( 1204 ) for encrypted input signals, and wherein each bit slice has a re-encryption unit ( 1206 ) to re-encrypt a carry signal of a lower order bit slice using a re-encryption key for the current bit slice.
DE2002101450 2002-01-16 2002-01-16 Carry-skip adder for encrypted data Expired - Fee Related DE10201450B4 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE2002101450 DE10201450B4 (en) 2002-01-16 2002-01-16 Carry-skip adder for encrypted data
AU2002358757A AU2002358757A1 (en) 2002-01-16 2002-12-18 Carry-skip adder for encoded data
PCT/EP2002/014491 WO2003060672A1 (en) 2002-01-16 2002-12-18 Carry-skip adder for encoded data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE2002101450 DE10201450B4 (en) 2002-01-16 2002-01-16 Carry-skip adder for encrypted data

Publications (2)

Publication Number Publication Date
DE10201450A1 DE10201450A1 (en) 2003-07-31
DE10201450B4 true DE10201450B4 (en) 2004-09-02

Family

ID=7712275

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2002101450 Expired - Fee Related DE10201450B4 (en) 2002-01-16 2002-01-16 Carry-skip adder for encrypted data

Country Status (3)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10395063B2 (en) 2015-09-23 2019-08-27 Infineon Technologies Ag Zero detection circuit and masked boolean or circuit

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101817284B1 (en) 2008-06-25 2018-01-11 에스바테크 - 어 노바티스 컴파니 엘엘씨 Stable and soluble antibodies inhibiting vegf

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69222174T2 (en) * 1991-08-05 1998-04-09 Litton Systems, Inc., Woodland Hills, Calif. NONLINEAR DYNAMIC BLOCK EXCHANGE PROCEDURES.

Family Cites Families (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
KR100490114B1 (en) * 1999-12-02 2005-05-16 인피네온 테크놀로지스 아게 Microprocessor arrangement having an encoding function
JP3848573B2 (en) * 2000-01-18 2006-11-22 インフィネオン テクノロジーズ アクチエンゲゼルシャフト Microprocessor system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69222174T2 (en) * 1991-08-05 1998-04-09 Litton Systems, Inc., Woodland Hills, Calif. NONLINEAR DYNAMIC BLOCK EXCHANGE PROCEDURES.

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Vorlesungsskript Uni Hannover, Ausgabe 11/00, insbes. Kap. 2.4.1, S. 2-16 bis 2-23 (online), Im Internet: URL:http://www.sra.uni-hannover.de/le hre/vorlesungen/hlr/kapitel_2.pdf recherchiert am 28.10.2002
Vorlesungsskript Uni Hannover, Ausgabe 11/00, insbes. Kap. 2.4.1, S. 2-16 bis 2-23 (online), Im Internet: URL:http://www.sra.uni-hannover.de/lehre/vorlesungen/hlr/kapitel_2.pdf recherchiert am 28.10.2002 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10395063B2 (en) 2015-09-23 2019-08-27 Infineon Technologies Ag Zero detection circuit and masked boolean or circuit

Also Published As

Publication number Publication date
AU2002358757A1 (en) 2003-07-30
WO2003060672A1 (en) 2003-07-24
DE10201450A1 (en) 2003-07-31

Similar Documents

Publication Publication Date Title
DE10201449C1 (en) Arithmetic unit, method for performing an operation with an encrypted operand, carry select adder and cryptography processor
DE102005012098B4 (en) Data cipher processor as well as AES cipher system and AES ciphers
DE60223337T3 (en) METHOD FOR SECURE ENCRYPTION AND COMPONENT FOR CARRYING OUT SUCH A COATING METHOD
DE102005028662B4 (en) Method and device for calculating a polynomial multiplication, in particular for elliptic curve cryptography
DE10143728A1 (en) Device and method for calculating a result of a modular exponentiation
DE10304451B3 (en) Modular exponentiation with randomized exponent
DE10219158B4 (en) Device and method for calculating a result of a modular multiplication
EP3387636B1 (en) Cryptographic algorithm having a key-dependent masked computing step (sbox call)
DE10324422B4 (en) Method and device for mapping an input value to be mapped onto an encrypted mapped output value
DE10201450B4 (en) Carry-skip adder for encrypted data
DE69829566T2 (en) ENCRYPTION DEVICE
WO2014063875A1 (en) Device and method for carrying out a cryptographic method
EP1446711B1 (en) Shifting device and shifting method
EP1466245B1 (en) Arithmetic-logic unit and method for combining a first operand with a second operand
DE19921633A1 (en) Procedure for implementing cryptographic algorithms
DE102004037814A1 (en) Pseudo-random number generator for use as key generator in chip card, has combination unit to combine data sequences from respective outputs of nonlinear feedback shift registers for obtaining sequence of numbers
DE10201443B4 (en) Carry save multiplier for encrypted data
DE10303723B4 (en) Apparatus and method for calculating encrypted data from unencrypted data or unencrypted data from encrypted data
EP1044533A1 (en) Encoding method for carrying out cryptographic operations
DE10129241B4 (en) Multifunctional calculator
DE10207966B4 (en) Device and method for coding a stream of information units or for decoding codewords
DE10149191C2 (en) Method and device for determining original source data from original input data on the basis of a cryptographic operation
DE10201442C1 (en) Device and method for multiplying or dividing a first operand by or by a second operand
DE10324420A1 (en) Multiplexer cell for cryptography circuit for data communications has 3 elementary multiplexers in 2 successive stages one of which is controlled by encryption control signal
EP1833191A1 (en) Data processing method with an encryption algorithm

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee