DE10201442C1 - Device and method for multiplying or dividing a first operand by or by a second operand - Google Patents

Device and method for multiplying or dividing a first operand by or by a second operand

Info

Publication number
DE10201442C1
DE10201442C1 DE2002101442 DE10201442A DE10201442C1 DE 10201442 C1 DE10201442 C1 DE 10201442C1 DE 2002101442 DE2002101442 DE 2002101442 DE 10201442 A DE10201442 A DE 10201442A DE 10201442 C1 DE10201442 C1 DE 10201442C1
Authority
DE
Germany
Prior art keywords
operand
register
encrypted
result
bit
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
DE2002101442
Other languages
German (de)
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 DE2002101442 priority Critical patent/DE10201442C1/en
Priority to AU2003235626A priority patent/AU2003235626A1/en
Priority to PCT/EP2003/000182 priority patent/WO2003060693A2/en
Priority to TW92100883A priority patent/TW200302430A/en
Application granted granted Critical
Publication of DE10201442C1 publication Critical patent/DE10201442C1/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/52Multiplying; Dividing
    • 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)

Abstract

Sichere Rechenwerke für die Division und Multiplikation verwenden eine Steuereinrichtung (18), die die für den Radix-2-Multiplikationsalgorithmus, den Booth-Recoding-Multiplikationsalgorithmus, den Restoring-Divisionsalgorithmus und den Non-Restoring-Divisionsalgorithmus nötigen Bituntersuchungen im Geheimtextraum unter Verwendung verschlüsselter Bits und Verschlüsselungsparameter zum Verschlüsseln dieser Bits durchführen. Weiterhin können Register (16, 22, 24, 30) verwendet werden, in denen verschlüsselte Operanden gespeichert werden und zusätzlich kann ein Addierer (10) eingesetzt werden, der mit verschlüsselten Operanden addiert und ein verschlüsseltes Ergebnis liefert. Ein solcher Multiplizierer/Dividierer arbeitet im Geheimtextraum und ist für physikalische und/oder indirekte Angriffe weniger anfällig.Secure arithmetic units for division and multiplication use a control device (18) which uses the bit examinations in the cipher text space necessary for the Radix-2 multiplication algorithm, the booth recoding multiplication algorithm, the restoring division algorithm and the non-restoring division algorithm using encrypted bits and perform encryption parameters to encrypt these bits. Furthermore, registers (16, 22, 24, 30) can be used, in which encrypted operands are stored, and in addition an adder (10) can be used, which adds up with encrypted operands and delivers an encrypted result. Such a multiplier / divider works in secret text space and is less susceptible to physical and / or indirect attacks.

Description

Die vorliegende Erfindung bezieht sich auf Rechenwerke und insbesondere auf sichere Rechenwerke zum Multiplizieren und/oder Dividieren.The present invention relates to arithmetic units and especially on safe arithmetic units for multiplication and / or dividing.

Moderne Mikroprozessoren bieten Hardwareunterstützung bei der Ausführung einer Division und/oder einer Multiplikation. Die Anzahl der unterschiedlichen Algorithmen und Implementie­ rungsverfahren ist entsprechend groß und hängt von den Anfor­ derungen an das Gesamtsystem ab. Parameter, die die Implemen­ tation bestimmen, sind typischerweise die zur Verfügung ste­ hende Chipfläche, die benötigte Geschwindigkeit, etc. Bekann­ te Algorithmen arbeiten mit Klartextdaten und sind daher phy­ sikalisch angreifbar. Die Angriffsszenarien reichen dabei von verschiedenen physikalischen Angriffsszenarien, wie z. B. Na­ delangriffen, bis hin zu sogenannten indirekten Angriffen, wie z. B. SPA (SPA = Single Power Analysis = einfache Leis­ tungsanalyse) oder DPA (DPA = Differential Power Analysis = Differenzleistungsanalyse).Modern microprocessors offer hardware support in the Execution of a division and / or a multiplication. The Number of different algorithms and implementation The procedure is correspondingly large and depends on the requirements changes to the overall system. Parameters the implemen tation are typically the most available Known chip area, the required speed, etc. Known te algorithms work with plain text data and are therefore phy sical vulnerable. The attack scenarios range from different physical attack scenarios, such as B. Well delta attacks, right up to so-called indirect attacks, such as B. SPA (SPA = Single Power Analysis = simple Leis tion analysis) or DPA (DPA = Differential Power Analysis = Differential power analysis).

Für die Multiplikation sind ebenso wie für die Division zwei grundsätzliche Algorithmen bekannt und in "Computer Architec­ ture a Quantitative Approach, Second Edition, Hennessy und Patterson, Morgan Kaufmann Publishers, Inc., 1996, Anhang A, beschrieben. Zunächst wird auf die sogenannte Radix-2- Multiplikation eingegangen. Bei diesem Multiplikationsverfah­ ren wird das Produkt zweier vorzeichenloser Zahlen Bit für Bit berechnet. Die zu multiplizierenden Zahlen sind an-1, an-2, . . . a0 (der erste Operand) und bn-1, bn-2, . . . b0 (der zweite Operand), wobei beide Operanden in Registern A für den ersten Operanden bzw. B für den zweiten Operanden plaziert werden. Das Zwischenergebnisregister P wird zunächst zu 0 gesetzt. Jeder Multiplikationsschritt besteht aus zwei Zeilen:
For the multiplication as well as for the division two basic algorithms are known and are described in "Computer Architecture a Quantitative Approach, Second Edition, Hennessy and Patterson, Morgan Kaufmann Publishers, Inc., 1996, Appendix A. First, the so-called Radix This multiplication method calculates the product of two unsigned numbers bit by bit. The numbers to be multiplied are a n-1 , a n-2 , ... a 0 (the first operand) and b n- 1 , b n-2 ,... B 0 (the second operand), both operands being placed in registers A for the first operand and B for the second operand, the intermediate result register P is initially set to 0. Each multiplication step exists from two lines:

  • a) Wenn das niederstwertige Bit (lsb) von A gleich 1 ist, dann wird das Register B, das bn-1, bn-2, . . . b0 enthält, zu dem Zwischenergebnisregister P addiert. Die Summe dieser Ad­ dition wird dann wieder in das Zwischenergebnisregister P plaziert.a) If the least significant bit (lsb) of A is 1, then the register B, which b n-1 , b n-2,. . . b contains 0 , added to the intermediate result register P. The sum of this addition is then placed again in the intermediate result register P.
  • b) Das Register P und das Register A werden um ein Bit nach rechts verschoben, d. h. in Richtung niederwertiger Bits, wo­ bei die Übertragausgabe der Summe in das höchstwertige Bit von P bewegt wird, wobei das niederstwertige Bit von P in das Register A bewegt wird, und wobei das Bit ganz rechts in A, das im Rest des Algorithmus nicht mehr benötigt wird, heraus­ geschoben wird.b) Register P and register A are incremented by one bit shifted to the right, d. H. towards lower bits where when the carry is output the sum in the most significant bit is moved by P, the least significant bit of P being moved into the Register A is moved, and being the rightmost bit in A, that is no longer needed in the rest of the algorithm is pushed.

Nach n Schritten erscheint das Produkt in den Register P und A, wobei A die niederwertigen Bits enthält.After n steps, the product appears in registers P and A, where A contains the least significant bits.

Zum Multiplizieren von vorzeichenbehafteten Zahlen wird bei­ spielsweise der sogenannte Booth-Recoding-Algorithmus verwen­ det. Grundsätzlich wird beim Booth-Recoding-Algorithmus so vorgegangen, daß statt der aufeinanderfolgenden Addition von B im Radix-2-Multiplikations-Algorithmus eine Umcodierung von B vorgenommen wird, derart, daß zunächst B subtrahiert wird, daß dann einige Male 0 addiert wird, und daß am Ende wieder B addiert wird. Dies ist zwar komplizierter als der vorzeichen­ lose Algorithmus, da Addition und Subtraktion verwendet wer­ den. Für negative Zahlen ist dieser Algorithmus jedoch vor­ teilhaft. Allgemein ist er folgendermaßen definiert:To multiply signed numbers, use for example, use the so-called booth recoding algorithm det. This is basically the case with the booth recoding algorithm proceeded that instead of the successive addition of B in the Radix-2 multiplication algorithm is a recoding of B is carried out in such a way that B is subtracted first, that 0 is then added a few times, and that at the end B is added. This is more complicated than the sign loose algorithm since addition and subtraction are used the. However, this algorithm is available for negative numbers partial. Generally it is defined as follows:

Wenn der ursprüngliche Inhalt des Operandenregisters A, d. h. der ursprüngliche erste Operand A mit an-1 . . . a0 beschrieben ist, dann gelten für den i-ten Multiplikationsschritt, bei dem das niederstwertige Bit des Registers A mit ai bezeichnet wird, folgende Vorschriften:
If the original content of the operand register A, ie the original first operand A with a n-1 . . . a 0 is described, then the following rules apply to the i th multiplication step, in which the least significant bit of register A is designated a i :

  • A) Wenn ai gleich 0 ist, und wenn ai-1 gleich 0 ist, dann wird nichts zu P hinzuaddiert. Es findet lediglich eine Verschie­ bung um ein Bit des Inhalts des Zwischenergebnisregisters nach rechts statt.A) If a i is 0, and if a i-1 is 0, nothing is added to P. There is only a shift to the right by one bit of the content of the intermediate result register.
  • B) Wenn ai gleich 0 ist, und wenn ai-1 gleich 1, dann wird der zweite Operand B zum Zwischenergebnis P hinzuaddiert. An­ schließend findet wieder eine Verschiebung von P um ein Bit nach rechts statt.B) If a i is 0 and if a i-1 is 1, then the second operand B is added to the intermediate result P. Then there is again a shift of P by one bit to the right.
  • C) Wenn ai gleich 1, und wenn ai-1 gleich 0 ist, dann wird B von P subtrahiert. Das Ergebnis dieser Subtraktion wird dann wieder um ein Bit nach rechts geschoben.C) If a i is 1 and if a i-1 is 0, then B is subtracted from P. The result of this subtraction is then shifted one bit to the right.
  • D) Wenn ai gleich 1, und wenn ai-1 gleich 1 ist, dann wird nichts zu P hinzuaddiert. Der Inhalt des Zwischenergebnisre­ gisters P wird lediglich um eine Stelle, d. h. um ein Bit nach rechts verschoben.D) If a i is 1 and if a i-1 is 1, nothing is added to P. The content of the intermediate result register P is only shifted to the right by one position, ie by one bit.

Für den ersten Schritt, bei dem i gleich 0 ist, gilt verein­ barungsgemäß, daß ai-1 gleich 0 ist.For the first step, in which i is 0, the agreement stipulates that a i-1 is 0.

Analog hierzu existieren auch Divisionsalgorithmen, wobei so­ genannten Restoring-Divisionsalgorithmen und Non-Restoring- Divisionsalgorithmen bekannt sind. Wenn vorzeichenlose Zahlen verarbeitet werden, wird mittels des Restoring- Divisionsalgorithmus folgendermaßen vorgegangen, um die Divi­ sion des ersten Operanden a durch den zweiten Operanden b, also a/b zu berechnen. Zunächst wird der erste Operand in das erste Operandenregister A gelegt. Dann wird der zweite Ope­ rand b in das zweite Operandenregister B gelegt. Schließlich wird das Divisionszwischenergebnisregister P initialisiert. Anschließend werden n Divisionsschritte durchgeführt, wobei jeder Divisionsschritt aus vier Teilen besteht:
Analogously to this, division algorithms also exist, so-called restoring division algorithms and non-restoring division algorithms being known. If unsigned numbers are processed, the restoring division algorithm is used as follows to calculate the division of the first operand a by the second operand b, ie a / b. First, the first operand is placed in the first operand register A. Then the second operand rand b is placed in the second operand register B. Finally, the interim division result register P is initialized. Then n division steps are carried out, each division step consisting of four parts:

  • a) Verschieben des Registerpaars (P, A) um ein Bit nach links, also in Richtung höherwertiger Bits. a) Shifting the register pair (P, A) by one bit left, i.e. in the direction of more significant bits.  
  • b) Subtrahieren des Inhalts des Registers B, d. h. bn-1, bn-­ 2, . . . b0, vom Register P, wobei das Ergebnis dieser Subtrak­ tion wieder in das Register P geschrieben wird.b) subtracting the contents of register B, ie b n-1 , b n- 2 ,. . . b 0 , from register P, the result of this subtraction being written back into register P.
  • c) Wenn das Ergebnis des zweiten Schrittes (Schritt ii) negativ ist, Setzen des niederstwertigen Bits von A zu 0. An­ dernfalls wird das niederstwertige Bit von A zu 1 gesetzt.c) If the result of the second step (step ii) is negative, set the least significant bit from A to 0. On otherwise the least significant bit is set from A to 1.
  • d) Wenn das Ergebnis des Schritts ii negativ ist, Wieder­ herstellen (Restoring) des alten Werts von P durch Hinzuad­ dieren des Inhalts des Registers B zu P.d) If the result of step ii is negative, again Restoring the old value of P by adding it the content of register B to P.

Nach einer Wiederholung dieses Algorithmus für jedes Bit der n Bits, also nach einer n-fachen Wiederholung, wird das A- Register den Quotienten enthalten, während das P-Register den Rest enthalten wird. Dieser Algorithmus ist gewissermaßen ei­ ne binäre Version des bekannten "Papier- und Bleistift- Verfahrens".After repeating this algorithm for each bit of n bits, i.e. after an n-fold repetition, the A- Register contain the quotient, while the P register the Rest is included. This algorithm is in a way egg ne binary version of the well-known "paper and pencil Procedure ".

Der beschriebene Divisionsalgorithmus wird als Restoring- Algorithmus bezeichnet, da, wenn die Subtraktion von B zu ei­ nem negativen Ergebnis führt, das P-Register wiederherge­ stellt wird, indem b wieder in das P-Register hineinaddiert wird.The division algorithm described is used as a restoring Algorithm called because if the subtraction from B to egg If the result is negative, restore the P register is set by adding b back into the P register becomes.

Der Non-Restoring-Algorithmus ergibt sich daraus, daß der Restoring-Schritt weggelassen wird, und daß statt dessen mit den resultierenden negativen Zahlen weitergerechnet wird. Je­ der Schritt des Non-Restoring-Algorithmus hat drei Teile:
The non-restoring algorithm results from the fact that the restoring step is omitted and that the resulting negative numbers are used instead. The step of the non-restoring algorithm has three parts:

  • a) wenn P negativ ist,
    • 1. Verschieben des Registerpaars (P, A) um ein Bit nach links.
    • 2. Addieren des Inhalts des Registers B zu P.
    a) if P is negative,
    • 1. Shift the register pair (P, A) one bit to the left.
    • 2. Add the contents of register B to P.
  • b) wenn P positiv ist,
    • 1. Verschieben des Registerpaars (P, A) um ein Bit nach links, d. h. zu höherwertigen Bits hin.
    • 2. Subtrahieren des Inhalts des Registers V von P.
    b) if P is positive,
    • 1. Shift the register pair (P, A) by one bit to the left, ie towards more significant bits.
    • 2. Subtract the contents of register V from P.
  • c) wenn P negativ ist, Setzen des niederstwertigen Bits von A auf 0 und, wenn P positiv ist, Setzen des niederstwer­ tigen Bits von A auf 1.c) if P is negative, setting the least significant bit from A to 0 and, if P is positive, set the lowest bits from A to 1.

Nach einer n-fachen Wiederholung dieser Schrittfolge befindet sich der Quotient von a/b in dem ersten Operandenregister A. Wenn P nicht-negativ ist, hält es den Rest. Andernfalls muß P wiederhergestellt werden, d. h. b muß hinzuaddiert werden. Erst dann enthält P den Rest.After repeating this sequence n times the quotient of a / b in the first operand register A. If P is non-negative, it holds the remainder. Otherwise P be restored, d. H. b must be added. Only then does P contain the rest.

Zur Darstellung von negativen Zahlen existieren verschiedene Möglichkeiten. Diese sind:
There are various ways of representing negative numbers. These are:

  • 1. Vorzeichen-Betrag. Hier ist das höchstwertige Bit das Vor­ zeichenbit und die niederwertigen n - 1 Bits sind der Betrag der Zahl. Typischerweise ist die Zahl eine negative Zahl, wenn das höchstwertige Bit eine 1 hat.1. Sign amount. Here the most significant bit is the before character bit and the low-order n - 1 bits are the amount the number. Typically the number is a negative number, if the most significant bit has a 1.
  • 2. Zweierkomplementdarstellung. In der Zweierkomplementdar­ stellung ergibt die Addition einer Zahl und ihrer negierten Version den Wert 2n.2. Two's complement representation. In the two's complement representation, the addition of a number and its negated version gives the value 2 n .
  • 3. Einerkomplementdarstellung. In der Einerkomplementdarstel­ lung wird die negative Version einer Zahl erhalten, indem je­ des Bit komplementiert wird, oder indem alternativ die Zahl und ihre negative Version zusammenaddiert den Wert 2n - 1 er­ geben. 3. A complement representation. In the one's complement representation, the negative version of a number is obtained by complementing each bit, or alternatively by adding the number and its negative version together to give the value 2 n - 1.
  • 4. Bias-System. In einem Bias-System werden nicht-negative Zahlen im Gegensatz zu den vorherigen drei Möglichkeiten nicht üblicherweise als vorzeichenlose Zahlen dargestellt. Statt dessen werden alle Zahlen dargestellt, indem sie zu­ nächst zu dem Bias hinzuaddiert werden, woraufhin die Summe als übliche vorzeichenlose Zahl codiert wird. Somit kann eine negative Zahl k codiert werden so lange k plus Bias größer oder gleich 0 ergeben. Ein typischer Wert für den Bias ist 2n-1.4. Bias system. In a bias system, unlike the previous three options, non-negative numbers are not usually represented as unsigned numbers. Instead, all numbers are represented by adding them first to the bias, whereupon the sum is encoded as a normal unsigned number. A negative number k can thus be encoded as long as k plus bias results in greater than or equal to 0. A typical value for the bias is 2 n-1 .

Die beschriebenen Multiplikations- bzw. Divisionsalgorithmen arbeiten, soweit sie für negative Zahlen geeignet sind, grundsätzlich unter Verwendung jeglicher Darstellung für ne­ gative Zahlen. Lediglich die tatsächliche Implementation der Untersuchung, ob eine Zahl größer oder gleich 0 ist, wird für die verschiedenen Darstellungen negativer Zahlen unterschied­ lich ausgestaltet sein.The described multiplication or division algorithms work as far as they are suitable for negative numbers, basically using any representation for ne negative numbers. Only the actual implementation of the Examination of whether a number is greater than or equal to 0 is used for the different representations of negative numbers differed Lich designed.

Aus der obigen Darstellung der bekannten Multiplikations- bzw. Divisions-Algorithmen wird ersichtlich, daß das Herz­ stück jedes Multiplizierers bzw. Dividierers ein Addierer ist, wobei ein Addierer addieren und/oder subtrahieren kann. Der Addierer wird von einer Steuereinrichtung gesteuert, die die für die einzelnen Algorithmen notwendigen Überprüfungen und Entscheidungen durchführt, um den Addierer entsprechend anzusteuern. Ferner werden Register verwendet, und zwar ins­ besondere für den ersten Operanden, den zweiten Operanden und das Zwischenergebnis, d. h. A, B und P.From the above representation of the known multiplication or division algorithms, it can be seen that the heart piece of each multiplier or divider an adder is, an adder can add and / or subtract. The adder is controlled by a control device which the checks necessary for the individual algorithms and makes decisions to match the adder head for. Registers are also used, namely in special for the first operand, the second operand and the interim result, d. H. A, B and P.

Nachteilig an den bekannten Multiplikations/Divisions- Algorithmen ist die Tatsache, daß sie mit Klartext rechnen. Sowohl der Addierer als auch die Register und insbesondere die Steuereinrichtung, die die zur Steuerung des Addierers nötigen Entscheidungen trifft, benötigen Klartextdaten. Dies bedeutet, daß die beschriebenen direkten oder indirekten An­ griffsszenarien grundsätzlich Aussicht auf Erfolg haben wer­ den. Insbesondere stellt die Steuereinrichtung einen An­ griffspunkt dar, da sie typischerweise von dem Addierer, bei­ spielsweise in Form eines 32-Bit-Addierers oder 64-Bit- Addierers isoliert angeordnet sein wird und ferner auch von den Register für A, B und P isoliert angeordnet sein wird. So sind die Klartextdaten während des Multiplikationsalgorithmus sowohl in dem Addierer selbst, als auch in den Registern und auch auf den Übertragungsleitungen von den Registern zur Steuereinrichtung und in der Steuereinrichtung selbst an­ greifbar. A disadvantage of the known multiplication / division Algorithms are the fact that they use plain text. Both the adder and the registers and in particular the control device that controls the adder makes the necessary decisions, requires plain text data. This means that the described direct or indirect An handle scenarios always have a chance of success the. In particular, the control device turns on  handle, since they are typically from the adder for example in the form of a 32-bit adder or 64-bit Adders will be arranged isolated and also from the registers for A, B and P will be arranged in isolation. So are the plain text data during the multiplication algorithm both in the adder itself and in the registers and also on the transmission lines from the registers to Control device and in the control device itself tangible.  

Die DE 44 09 834 A1 offenbart eine Multipliziererschaltung und eine Divisionsschaltung. Die Multipliziererschaltung umfasst ein Additionsverarbeitungsteil, dem eine Teilproduktgruppe eingegeben wird. Das Additionsverarbeitungsteil umfasst in seiner ersten Stufe Halbaddierer und eine rundenden Halbaddie­ rer. Ferner sind Volladdierer und 3-Bit-Addierer mit Parallel­ übertrag vorgesehen.DE 44 09 834 A1 discloses a multiplier circuit and a division circuit. The multiplier circuit includes an addition processing part to which a sub-product group is entered. The addition processing part includes in its first stage half adder and a rounding half adder rer. There are also full adders and 3-bit adders with parallel transfer provided.

Die Fachveröffentlichung mit dem Titel "Security in Java", Sandra Kulisch u. a., Januar 2000, erhältlich unter der Inter­ net-Adresse "www.wi-bw.tfh-wildenau.de/hendrix~/projekte_ studenten/96_Sicherheit/kaht/javasecurity.doc", offenbart im Kapitel 3.2.2.3 Rivests-Codes Nr. 2 und Nr. 4. Diese Codes ar­ beiten mit Schlüsseln, die eine Länge von 1 bis 1024 Bits ha­ ben können. Insbesondere handelt es sich um blockorientierte Chiffrierverfahren ähnlich dem DES. Es wird eine fortlaufende Reihe von Zufallszahlen erzeugt, die mit den zu kodierenden Daten durch eine Exklusiv-ODER-Funktion (XOR-Funktion) ver­ knüpft werden.The specialist publication entitled "Security in Java", Sandra Kulisch u. a., January 2000, available at Inter net address "www.wi-bw.tfh-wildenau.de/hendrix~/projekte_ students / 96_security / kaht / javasecurity.doc ", disclosed in the Chapter 3.2.2.3 Rivests codes No. 2 and No. 4. These codes ar use keys that are 1 to 1024 bits long can. In particular, it is block-oriented Encryption method similar to DES. It will be an ongoing one Series of random numbers generated with the ones to be encoded Ver. Data by an exclusive OR function (XOR function) be knotted.

Die Aufgabe der vorliegenden Erfindung besteht darin, ein si­ chereres Konzept zum Multiplizieren und/oder Dividieren zu schaffen.The object of the present invention is a si safer concept for multiplying and / or dividing too create.

Diese Aufgabe wird durch eine Vorrichtung zum Multiplizieren gemäß einem Radix-2-Multiplikationsalgorithmus nach Patentan­ spruch 1, eine Vorrichtung zum Multiplizieren nach einem Booth-Recoding-Multiplikationsalgorithmus nach Patentanspruch 3, durch eine Vorrichtung zum Dividieren nach einem Resto­ ring-Divisionsalgorithmus nach Patentanspruch 8 oder durch eine Vorrichtung zum Dividieren gemäß einen Non-Restoring- Divisionsalgorithmus nach Patentanspruch 10 gelöst.This task is accomplished by a multiplication device according to a Radix-2 multiplication algorithm according to Patentan saying 1, a device for multiplying by one Booth recoding multiplication algorithm according to claim 3, by a device for dividing after a resto ring division algorithm according to claim 8 or by a device for dividing according to a non-restoring Division algorithm according to claim 10 solved.

Der vorliegenden Erfindung liegt die Erkenntnis zugrunde, daß eine sicherere Implementation des Multiplikations- oder Divi­ sions-Algorithmus bereits dadurch erhalten werden kann, wenn die Entscheidungen, die durch die Steuereinrichtung vorgenom­ men werden, um den Addierer zu steuern bzw. Bits in diversen Registern zu setzen oder nicht zu setzen, im Geheimtextraum und nicht - wie im Stand der Technik - im Klartextraum vorge­ nommen werden. Um der Steuereinrichtung Daten im Geheimtext­ raum samt Verschlüsselungsparameter zu liefern, existieren erfindungsgemäß verschiedene Möglichkeiten.The present invention is based on the finding that a safer implementation of the multiplication or divi sions algorithm can already be obtained if the decisions made by the controller to control the adder or bits in various To set or not to set registers in the secret text space and not - as in the prior art - in the plain text space be taken. To the control device data in ciphertext to deliver space including encryption parameters exist Different possibilities according to the invention.

Bei einem Ausführungsbeispiel werden ein Klartextaddierer und Klartextregister verwendet, wobei Daten, die zur Steuerein­ richtung übertragen werden, um die für die Algorithmen-benö­ tigten Entscheidungen durchzuführen, vor ihrer Übermittlung zur Steuereinrichtung verschlüsselt werden. Dann wird die Steuereinrichtung lediglich verschlüsselte Daten erhalten, die für ihre Entscheidungen erforderlichen Vergleiche im Ge­ heimtextraum durchführen und die Vergleichsergebnisse an die entsprechenden Komponenten, wie z. B. den Addierer oder die Register in verschlüsselter Form übermitteln. Die verschlüs­ selten Daten können dann in den Registern bzw. dem Addierer vor ihrem Gebrauch entschlüsselt werden und weiterverarbeitet werden. Dieses Ausführungsbeispiel liefert bereits eine Si­ cherheitserhöhung dadurch, daß die Steuereinrichtung nicht mehr ohne weiteres angegriffen werden kann.In one embodiment, a plain text adder and Plain text registers are used, with data used for control purposes direction to be used for the algorithms needed  to make decisions before submitting them be encrypted to the control device. Then the Control device only receive encrypted data, the comparisons required for their decisions in Ge Conduct home text space and send the comparison results to corresponding components, such as. B. the adder or Submit registers in encrypted form. The encrypted Data can then rarely be stored in the registers or in the adder be decrypted and processed before use will. This embodiment already provides an Si Security increase in that the control device is not more can be easily attacked.

Bei einem Ausführungsbeispiel, bei dem eine höhere Sicherheit erreicht wird, werden sämtliche Daten in den Registern A, B und P in verschlüsselter Form gespeichert. Dies stellt si­ cher, daß auch keine Angriffe auf die Register zum Erfolg führen werden. Ferner müssen Daten aus dem Register, so sie von der Steuereinrichtung benötigt werden, vor der Übertra­ gung nicht mehr verschlüsselt werden, da sie in den Registern bereits in verschlüsselter Form vorliegen.In an embodiment in which a higher security is reached, all data in the registers A, B and P stored in encrypted form. This represents cher that no attacks on the register to success will lead. Furthermore, data from the register, she says are required by the control device before the transfer can no longer be encrypted since they are in the registers already exist in encrypted form.

In diesem Fall muß beim Verschieben der Daten in den Regis­ tern entweder z. B. um ein Bit nach links im Falle einer Di­ vision oder um ein Bit nach rechts im Falle einer Multiplika­ tion eine Umverschlüsselung dahingehend vorgenommen werden, daß die Registerstellen mit den entsprechenden Schlüsseln verschlüsselt sind. Erfindungsgemäß wird eine stellen- bzw. bitweise Verschlüsselung verwendet, wobei der Verschlüsse­ lungsparameter für jede Stelle unabhängig von dem Verschlüs­ selungsparameter für die anderen Stellen ist. Wird daher eine Verschiebung in einem Register eines Bits von einer Ur­ sprungs-Stelle zu einer Ziel-Stelle durchgeführt, so muß das Bit, das an der Ursprungsstelle mit dem Verschlüsselungspara­ meter für die Ursprungsstelle verschlüsselt ist, umverschlüs­ selt werden, um an der Zielstelle nicht mehr mit dem Ver­ schlüsselungsparameter für die Ursprungsstelle sondern mit dem Verschlüsselungsparameter für die Zielstelle verschlüs­ selt zu sein.In this case, when moving the data to the register tern either z. B. to the left in the case of a Di vision or one bit to the right in the case of a multiplication a re-encryption is carried out that the registrars with the appropriate keys are encrypted. According to the invention, a job or bitwise encryption is used, the closures parameters for each position regardless of the encryption selection parameter for the other positions. Therefore becomes a Shift in a register of a bit from an original jump point to a target point, so it must Bit that is at the point of origin with the encryption para is encrypted for the point of origin, encrypted to be no longer associated with the Ver key parameters for the place of origin but with  encrypt the encryption parameter for the destination to be rare.

Ein Multiplizierer und/oder einen Dividierer, der vollständig im Geheimtextraum arbeitet, wird dadurch erhalten, daß nicht nur die Steuereinrichtung und die Register im Geheimtextraum arbeiten, sondern daß auch der Addierer ein Addierer für ver­ schlüsselte Daten ist, der unter Verwendung verschlüsselter Eingangsdaten verschlüsselte Ausgangsdaten liefert, ohne daß abhörbare Zwischenergebnisse im Klartextraum generiert wer­ den. Ein solcher verschlüsselter Multiplizierer oder Dividie­ rer erhält als Eingangsdaten lediglich einen verschlüsselten ersten Operanden a', einen verschlüsselten zweiten Operanden b' und den Verschlüsselungsvektor K mit k0, k1, . . ., kn-1, und liefert ein verschlüsseltes Multiplikationsergebnis bzw. ein verschlüsseltes Divisionsergebnis, das erfindungsgemäß in verschlüsselter Form gespeichert und/oder weiterverarbeitet werden kann. Ein Angriff auf eine vollständig verschlüsselt arbeitende Schaltung gemäß diesem bevorzugten Ausführungsbei­ spiel der vorliegenden Erfindung wird erheblich erschwert, da nirgendwo Klartextdaten auftreten.A multiplier and / or a divider that operates entirely in the ciphertext space is obtained by not only operating the controller and registers in the ciphertext space, but also the adder being an encrypted data adder that uses encrypted input data to encrypt the output data delivers without interceptible interim results in plain text who generated the. Such an encrypted multiplier or divider receives as input data only an encrypted first operand a ', an encrypted second operand b' and the encryption vector K with k 0 , k 1 ,. . ., k n-1 , and provides an encrypted multiplication result or an encrypted division result, which according to the invention can be stored in encrypted form and / or further processed. An attack on a fully encrypted circuit according to this preferred exemplary embodiment of the present invention is made considerably more difficult since plain text data does not appear anywhere.

Vorzugsweise wird als Verschlüsselungsverfahren eine Ver­ schlüsselung nach dem Prinzip einer One-Time-Pad- Verschlüsselung verwendet. Insbesondere wird als Verschlüsse­ lungsalgorithmus eine bitweise XOR- oder XNOR-Verschlüsselung eines zu verschlüsselnden Bits mit einem Verschlüsselungspa­ rameters ki für dieses Bit verwendet. Die XOR- bzw. XNOR- Operation ist dahingehend vorteilhaft, daß die Operationen der Steuereinrichtung bzw. die Umverschlüsselung für die Re­ gisterverschiebung und der Addierer mit relativ geringem Auf­ wand unter Verwendung üblicher Logikgatter implementiert wer­ den können. Die Sicherheit für die XOR-Verschlüsselung wird dadurch erreicht, wobei der Verschlüsselungsschlüssel häufig gewechselt wird, und daß der Verschlüsselungsschlüssel von einem Zufallszahlengenerator erzeugt wird. Grundsätzlich ist jedoch jede umkehrbare Funktion als Verschlüsselungsalgorith­ mus verwendbar. Für jeden Verschlüsselungsalgorithmus muß die Operation der Steuereinrichtung angepaßt werden, um ver­ schlüsselte Bits dahingehend überprüfen zu können, ob ihre entsprechenden Klartext-Version eine 1, eine 0, etc. sind.Encryption based on the principle of one-time pad encryption is preferably used as the encryption method. In particular, a bitwise XOR or XNOR encryption of a bit to be encrypted with an encryption parameter k i for this bit is used as the encryption algorithm. The XOR or XNOR operation is advantageous in that the operations of the control device or the re-encryption for the register shift and the adder can be implemented with relatively little effort using conventional logic gates. The security for the XOR encryption is achieved by the encryption key being changed frequently and by the encryption key being generated by a random number generator. In principle, however, any reversible function can be used as an encryption algorithm. For each encryption algorithm, the operation of the control device must be adapted in order to be able to check encrypted bits to determine whether their corresponding plain text version is a 1, a 0, etc.

Zur Gewährleistung der Sicherheit soll diese Überprüfung je­ doch im Geheimtextraum stattfinden, so daß Angriffe an dieser Stelle erheblich erschwert werden. Zur Implementierung der Steuereinrichtung werden daher lediglich verschlüsselte Werte sowie Verschlüsselungsparameter gemäß der vorliegenden Erfin­ dung eingesetzt.To ensure security, this review is intended to yet take place in the secret text space, so that attacks on this Job can be made considerably more difficult. To implement the Control devices are therefore only encrypted values and encryption parameters according to the present invention used.

Ein Vorteil der vorliegenden Erfindung besteht darin, daß we­ nig bzw. keine Klartextoperanden erzeugt werden. Zu keinem Zeitpunkt existiert zumindest in der Steuereinrichtung ein Zwischenergebnis im Klartext. Dadurch werden alle Arten von statistischen Angriffsszenarien wesentlich erschwert.An advantage of the present invention is that we nig or no plain text operands are generated. To none Time exists at least in the control device Intermediate result in plain text. This will cause all types of statistical attack scenarios much more difficult.

Vorteilhaft ist ferner, daß auf sonstige Sicherungsmaßnahmen, wie z. B. eine Implementierung des Rechenwerks mit Dual-Rail- Precharge-Technik, zumindest teilweise oder sogar ganz ver­ zichtet werden kann, was wiederum zu Chipflächeneinsparungen führt. Das erfindungsgemäß synthetisierbare Rechenwerk ist ferner technologieunabhängiger als eine Fullcustom-Lösung und somit leichter und schneller an einen Technologiewechsel an­ paßbar.It is also advantageous that other security measures, such as B. an implementation of the arithmetic unit with dual-rail Precharge technology, at least partially or even completely ver can be waived, which in turn leads to chip space savings leads. The arithmetic unit that can be synthesized according to the invention is more technology independent than a full custom solution and thus easier and faster to change technology fitable.

Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeich­ nungen detailliert erläutert. Es zeigenPreferred embodiments of the present invention are hereinafter referred to the attached drawing explained in detail. Show it

Fig. 1 einen Multiplizierer zum Ausführen eines kryp­ tographischen Radix-2-Multiplikationsalgorithmus oder eines kryptographischen Booth-Recoding- Multiplikationsalgorithmus; FIG. 1 is a multiplier for performing a kryp tographischen radix-2 multiplication algorithm or cryptographic Recoding- Booth multiplication algorithm;

Fig. 2 eine Darstellung des kryptographischen Radix-2- Multiplikationsalgorithmus; Fig. 2 is an illustration of the radix-2 multiplication cryptographic algorithm;

Fig. 3 eine Darstellung des kryptographischen Booth- Recoding-Multiplikationsalgorithmus; Fig. 3 is a representation of the cryptographic Booth Recoding multiplication algorithm;

Fig. 4 einen Dividierer zum Ausführen eines kryptographi­ schen Restoring-Divisionsalgorithmus oder eines kryptographischen Non-Restoring- Divisionsalgorithmus; Figure 4 is a divider for executing a kryptographi rule restoring division algorithm, or a cryptographic Non-Restoring- division algorithm.

Fig. 5 eine Darstellung des kryptographischen Non- Restoring-Divisionsalgorithmus; Fig. 5 is an illustration of the cryptographic Non- restoring division algorithm;

Fig. 6 eine Darstellung des kryptographischen Restoring- Divisionsalgorithmus; Fig. 6 is a representation of the cryptographic Restoring- division algorithm;

Fig. 7 eine Wahrheitstabelle für eine XOR-Verknüpfung mit einem Verschlüsselungsparameter als Verschlüsse­ lungsalgorithmus; FIG. 7 shows a truth table for an XOR combination with an encryption parameter as an encryption algorithm; FIG.

Fig. 8a ein Ausschnitt eines n-Bit-Addierers für verschlüs­ selte Daten; Figure 8a is a detail of an n-bit adder for Locks doubted data.

Fig. 8b ein Ersatzschaltbild für den n-Bit-Addierer; FIG. 8b shows an equivalent circuit diagram for the n-bit adder;

Fig. 9a eine alternative Ausführungsform eines verschlüs­ selten Addierers; FIG. 9a is an alternative embodiment of Locks rare adder;

Fig. 9b eine Wahrheitstabelle für den verschlüsselten Ad­ dierer von Fig. 9a. Fig. 9b is a truth table for the encrypted ad dier of Fig. 9a.

Fig. 1 zeigt einen erfindungsgemäßen Multiplizierer zur Aus­ führung entweder des kryptographischen Radix-2- Multiplikationsalgorithmus oder des kryptographischen Booth- Recoding-Multiplikationsalgorithmus. Der Multiplizierer um­ faßt zunächst einen Addierer 10 zum Addieren und/oder Subtra­ hieren zweier Größen, die in Addierer-Eingangsregistern 12a, 12b gespeichert sind. Das Ergebnis der Addition und/oder Sub­ traktion wird bei beiden Multiplikationsalgorithmen um ein Bit nach rechts, d. h. zu niederwertigen Bits hin, geschoben. Dies wird durch einen Schieber 14a bewirkt. So existiert auch ein Schieber 14b zum Verschieben eines Inhalts des ersten O­ perandenregisters A, auf das später eingegangen wird. Fig. 1 shows a multiplier according to the invention for executing either the cryptographic Radix-2 multiplication algorithm or the cryptographic Booth Recoding multiplication algorithm. The multiplier first comprises an adder 10 for adding and / or subtracting two quantities which are stored in adder input registers 12 a, 12 b. The result of the addition and / or subtraction is shifted by one bit to the right, ie towards lower-order bits, in both multiplication algorithms. This is effected by a slide 14 a. There is also a slide 14 b for shifting a content of the first operand register A, which will be discussed later.

Das Ergebnis des Schiebers 14a wird in einem Multiplikations­ zwischenergebnisregister 16 gespeichert und für eine Verar­ beitung des nächsten Bits zu dem ersten Addierereingangsre­ gister 12a zurückgespeist.The result of the slide 14 a is stored in a multiplication intermediate result register 16 and fed back to the first adder input register 12 a for processing of the next bit.

Der erfindungsgemäße Multiplizierer, der in Fig. 1 gezeigt ist, umfaßt ferner eine Steuereinrichtung 18, die im Geheim­ textraum arbeitet, um den Addierer 10 bzw. einen Eingangsmul­ tiplexer 20 anzusteuern, wie es später erläutert wird. Der zweite Operand der Multiplikation, d. h. b, wird über ein zweites Operandenregister 22 verfügbar gehalten.The multiplier according to the invention, which is shown in Fig. 1, further comprises a control device 18 , which operates in the secret text space to control the adder 10 or an input multiplexer 20 , as will be explained later. The second operand of multiplication, ie b, is kept available via a second operand register 22 .

Der erste Operand der Multiplikation, d. h. a, wird über ein Ursprungs-Operandenregister 24 einem Multiplexer 26 zugeführt und von einem Speicherregister 28 gespeichert, um in den Schieber 14b eingespeist zu werden. Das Ausgangssignal des Schiebers 14b wird in einem ersten Operandenregister 30 zwi­ schengespeichert, das, wenn sämtliche Bits des ersten Operan­ den a abgearbeitet sind, zusammen mit dem Multiplikationszwi­ schenergebnisregister 16 das Ergebnis der Multiplikation speichert.The first operand of the multiplication, that is, a, is supplied to a source operand register 24 to a multiplexer 26 and stored by a memory register 28 to be fed into the slider b fourteenth The output signal of the slide 14 b is temporarily stored in a first operand register 30 which, when all the bits of the first opera a have been processed, stores the result of the multiplication together with the multiplication intermediate result register 16 .

Der Multiplizierer umfaßt ferner einen Eingang 32 für den Vektor K, wobei der Vektor K die Verschlüsselungsparameter k0, k1, k2, . . ., kn-1 für die einzelnen Stellen 0, 1, 2, . . ., n - 1 umfaßt. Wie später erklärt werden wird, werden sämtliche Verschlüsselungsparameter des Vektors k bzw. einige bestimmte Verschlüsselungsparameter in der Steuereinrichtung 18, bei bestimmten Ausführungsbeispielen in einer Umverschlüsselung­ seinrichtung 34, die beispielhaft zwischen den Shiftern 14a und 14b angeordnet sein kann, bei bestimmten Ausführungsbei­ spielen in den Schiebern, 14a, 14b und gegebenenfalls auch in dem Addierer 10 benötigt, um die Umverschlüsselungs-Schlüssel ti zu berechnen, wie es Bezug nehmend auf Fig. 8a ausgeführt wird.The multiplier further comprises an input 32 for the vector K, the vector K encoding parameters k 0 , k 1 , k 2 ,. . ., k n-1 for the individual digits 0, 1, 2,. . ., n - 1 includes. As will be explained later, all encryption parameters of the vector k or some specific encryption parameters in the control device 18 , in certain exemplary embodiments in a re-encryption device 34 , which can be arranged, for example, between the shifters 14 a and 14 b, play in certain exemplary embodiments in the sliders 14 a, 14 b and possibly also in the adder 10 , in order to calculate the re-encryption key t i , as is carried out with reference to FIG. 8a.

Die Steuereinrichtung 18 benötigt ferner je nach Ausführungs­ form das niederstwertige Bit des ersten Operandenregisters 30 oder die Bits des Ursprung-Registers 24 für den ersten Ope­ randen a, wie es später ausgeführt wird.Depending on the embodiment, the control device 18 also requires the least significant bit of the first operand register 30 or the bits of the origin register 24 for the first operand a, as will be explained later.

Fig. 2 zeigt eine Übersicht über den kryptographischen Radix- 2-Multiplikationsalgorithmus, wenn als Verschlüsselung eine bitweise XOR-Verschlüsselung mit bitweisen voneinander unab­ hängigen Verschlüsselungsparametern ki durchgeführt wird. Der kryptographischen Radix-2-Multiplikationsalgorithmus stellt sich folgendermaßen dar:
Die Steuereinrichtung 18 empfängt zunächst das verschlüsselte niederstwertige Bit des ersten Operandenregisters 30 und un­ tersucht dieses verschlüsselte niederstwertige Bit dahinge­ hend, ob es einem niederstwertigen Bit des ersten Operanden­ registers im Klartext entspricht, das gleich 0 ist, oder das gleich 1 ist. Nachdem in der Steuereinrichtung 18 keine Klar­ textdaten vorliegen, benötigt die Steuereinrichtung 18 ferner den Verschlüsselungsparameter k0 für das niederstwertige Bit des ersten Operandenregisters 30. Führt der Vergleich des niederstwertigen Bits des ersten Operandenregisters 30 und des Verschlüsselungsparameters dazu, daß das niederstwertige Bit des ersten Operandenregisters gleich 1 ist, dann wird zu dem aktuellen Inhalt des Zwischenergebnisregisters 16 der zweite Operand, der vom zweiten Operandenregister 22 bereit­ gestellt wird, hinzuaddiert. Die Steuereinrichtung 18 wird den Multiplexer 20 somit ansteuern, daß der Wert des Regis­ ters 22 dem Addierer 10 zugeführt wird. Nach der Addition werden sowohl das Zwischenergebnisregister 16 als auch das erste Operandenregister 30 um ein Bit nach rechts verschoben, wodurch das bisher niederstwertige Bit des Registers A' her­ ausgeschoben wird und nicht mehr benötigt wird, wie es durch den Pfeil "shiftout" in Fig. 1 angedeutet ist. Dagegen wird durch die Bitverschiebung nach rechts das bisher niederstwer­ tige Bit des Registers P' aus diesem Register herausgeschoben (shift out) und in das Register A' geschoben, wie es in Fig. 1 durch den Pfeil des Shifters 14a zur Umverschlüsselungsein­ heit 34 und den Pfeil von dieser Einheit in den Shifter 14b dargestellt ist. Durch diesen Weg kann damit der Übergang des niederstwertigen Bits von P' in das Register A' wie im Falle des nicht verschlüsselt arbeitenden Rechenwerks bewerkstel­ ligt werden. Die Umverschlüsselung dieses Bits ist aufgrund der unterschiedlichen Schlüsselbasis für unterschiedliche Stellen erforderlich. Alternativ könnte auch zwischen den Re­ gistern 16 und 30 eine Bitübertragungseinrichtung mit Um­ verschlüsselung sein. Die Bitübertragung anhand der Shifter 14a und 14b ist jedoch besser zu implementieren.
FIG. 2 shows an overview of the cryptographic Radix 2 multiplication algorithm if a bitwise XOR encryption with bitwise independent encryption parameters k i is carried out as encryption. The Radix 2 cryptographic multiplication algorithm is as follows:
The control device 18 first receives the encrypted least significant bit of the first operand register 30 and examines this encrypted least significant bit to determine whether it corresponds to a least significant bit of the first operand register in plain text that is 0 or 1. Since there is no plain text data in the control device 18 , the control device 18 also requires the encryption parameter k 0 for the least significant bit of the first operand register 30 . If the comparison of the least significant bit of the first operand register 30 and the encryption parameter results in the least significant bit of the first operand register being equal to 1, then the second operand, which is provided by the second operand register 22 , is added to the current content of the intermediate result register 16 . The control device 18 will thus control the multiplexer 20 that the value of the register 22 is fed to the adder 10 . After the addition, both the intermediate result register 16 and the first operand register 30 are shifted to the right by one bit, as a result of which the least significant bit of register A 'is shifted out and is no longer required, as is indicated by the arrow "shiftout" in FIG. 1 is indicated. In contrast, by the bit shifting to the right the previously niederstwer significant bit of the register P 'shifted out of this register (shift out) and in the register A' pushed, as it is called in FIG. 1 by the arrow of the shifter 14 a to Umverschlüsselungsein 34 and the arrow from this unit is shown in the shifter 14 b. This way, the transition of the least significant bit from P 'into register A' can be accomplished as in the case of the non-encrypted arithmetic unit. The re-encryption of this bit is necessary due to the different key base for different places. Alternatively, a bit transmission device with encoding could also be between the registers 16 and 30 . However, bit transmission using shifters 14 a and 14 b is easier to implement.

Führt die Untersuchung des niederstwertigen Bits des ersten Operandenregisters 30 durch die Steuereinrichtung 18 jedoch dazu, daß eine unverschlüsselte Version des niederstwertigen Bits des ersten Operandenregisters gleich 0 ist, so müßte im Klartextraum eine 0 zum Zwischenergebnisregister hinzuaddiert werden. Da die Steuereinrichtung 18 jedoch im Geheimtextraum arbeitet, wird erfindungsgemäß eine Zahl dem Addierer zuge­ führt, die, wenn sie entschlüsselt wird, dem Wert 0 ent­ spricht. Dies in Fig. 1 dadurch symbolisiert, daß die Steuer­ einrichtung 18 den Multiplexer 20 ansteuert, um nicht den Wert des zweiten Operandenregisters 22 sondern den Schlüssel, der über den Schlüsseleingang 32 erhalten wird, dem Addierer 10 zuführen wird.However, if the control device 18 examines the least significant bit of the first operand register 30 so that an unencrypted version of the least significant bit of the first operand register is 0, then a 0 would have to be added to the intermediate result register in plain text space. However, since the control device 18 works in the ciphertext space, according to the invention a number is supplied to the adder which, when decrypted, speaks the value 0. This symbolizes in Fig. 1 that the control device 18 controls the multiplexer 20 in order not to supply the value of the second operand register 22 but the key, which is obtained via the key input 32 , to the adder 10 .

Es wird bevorzugt, als Verschlüsselungsalgorithmus eine XOR- Verknüpfung eines Operandenbits xi mit einem Verschlüsse­ lungsparameter ki für dieses Operandenbit zu verwenden. Eine Wahrheitstabelle für die XOR-Verschlüsselung und eine XOR- Entschlüsselung ist in Fig. 7 gegeben. Die Klartextraumbedin­ gung xi gleich 0 lautet im Geheimtextraum xi' gleich ki. Dage­ gen lautet die Klartextraumbedingung xi gleich 1 im Geheim­ textraum xi' ungleich ki. Wenn im Klartextraum ein Bit xi gleich 0 benötigt wird, so muß im Geheimtextraum für das ver­ schlüsselte Bit xi' gleich ki gesetzt werden. Analog dazu muß, wenn im Klartextraum ein Bit xi gleich 1 gefragt ist, das korrespondierende verschlüsselte Bit xi' gleich ki ge­ setzt werden. Muß daher, wie im Schritt (ii) des kryp­ tographischen Radix-2-Multiplikationsalgorithmus von Fig. 2, wenn das lsb des ersten Operandenregisters im Klartextraum gleich 0 ist, was im Geheimtextraum bedeutet, daß das lsb des ersten Operandenregisters gleich k0 ist, im Klartextraum ein Wert von "0" zum Zwischenergebnisregister addiert werden, so muß im Geheimtextraum statt der "0" der Schlüsselvektor K zum Zwischenergebnisregister hinzuaddiert werden.It is preferred to use an XOR combination of an operand bit x i with an encryption parameter k i for this operand bit as the encryption algorithm. A truth table for XOR encryption and XOR decryption is given in FIG. 7. The clear text space condition x i is 0 in the cipher text space x i 'is k i . Gen Dage the plaintext space condition is x i equal to 1 in the ciphertext space x i 'is not equal k i. If a bit x i equal to 0 is required in the plain text space, then k i must be set in the secret text space for the encrypted bit x i '. Similarly, if a bit x i equal to 1 is required in plain text space, the corresponding encrypted bit x i 'must be set to ki ge. Therefore, as in step (ii) of the crypt tographic radix-2 multiplication algorithm of FIG. 2, if the lsb of the first operand register in the plain text space is 0, which means in the cipher text space that the lsb of the first operand register is k 0 , If a value of "0" is added to the intermediate result register in plain text space, the key vector K must be added to the intermediate result register instead of "0" in the secret text space.

Zur Ausführung des kryptographischen Radix-2- Multiplikationsalgorithmus gemäß einem ersten Ausführungsbei­ spiel der Multiplikationsvorrichtung, bei dem lediglich die Steuereinrichtung 18 im Geheimtextraum arbeitet, wird die Steuereinrichtung 18 veranlassen, daß das im Register 30 ge­ speicherte Klartext-lsb am Ausgang des Registers verschlüs­ selt wird und in verschlüsselter Form der Steuereinrichtung 18 zugeführt wird. Ferner liefert die Steuereinrichtung 18 ausgangsseitig über den Multiplexer den Verschlüsselungsvek­ tor 32, der bevor er in den ebenfalls im Klartextraum arbei­ tenden Addierer 10 eingespeist wird, entschlüsselt wird, um eine "0" zu ergeben.To execute the cryptographic Radix-2 multiplication algorithm according to a first exemplary embodiment of the multiplication device, in which only the control device 18 works in the ciphertext space, the control device 18 will cause the plaintext lsb stored in the register 30 to be encrypted at the output of the register and is supplied in encrypted form to the control device 18 . Furthermore, the control device 18 supplies on the output side via the multiplexer the encryption vector 32 , which is decrypted before it is fed into the adder 10 , which also works in clear text space, in order to give a "0".

Bei dem zweiten Ausführungsbeispiel der Multiplikationsvor­ richtung, das eine höhere Sicherheit liefert, liegen sämtli­ che Operanden im Geheimtext vor. Dies bedeutet, daß die Re­ gister 16, 22 und 30 verschlüsselte Operanden bzw. ein ver­ schlüsseltes Zwischenergebnis speichern, und daß auch die Zwischenregister 12a, 12b, 24 und 28 verschlüsselte Operanden halten. Dann kann das lsb des Registers 30 unmittelbar der Steuerein­ richtung 18 zugeführt werden, da dasselbe bereits in ver­ schlüsselter Form vorhanden ist. In diesem Fall ist jedoch bei der Verschiebung in den verschlüsselten Registern für das Multiplikationszwischenergebnis 16 und den ersten Operanden 30 zu beachten, daß eine Umverschlüsselung vorgenommen werden muß. Zunächst wird das lsb des Multiplikationszwischenergeb­ nisses aus dem Shifter 14a heraus und als msb in den Shifter 14b eingeführt. Es muß eine Umverschlüsselung mittels der Um­ verschlüsselungseinrichtung 34 vorgenommen werden, damit das lsb des Multiplikationszwischenergebnisregisters 16, das mit k0 verschlüsselt ist, und das durch die Verschiebung das msb des ersten Operandenregisters 30 wird, das mit kn-1 verschlüs­ selt sein soll, korrekt umverschlüsselt wird.In the second embodiment of the Multiplikationsvor direction, which provides greater security, all operands are in the ciphertext. This means that the registers 16 , 22 and 30 store encrypted operands or an encrypted intermediate result, and that the intermediate registers 12 a, 12 b, 24 and 28 hold encrypted operands. Then the lsb of the register 30 can be fed directly to the Steuerein device 18 , since the same is already available in encrypted form. In this case, however, when shifting in the encrypted registers for the intermediate multiplication result 16 and the first operands 30 , it should be noted that a re-encryption must be carried out. First, the lsb of the intermediate multiplication result is introduced out of the shifter 14 a and as msb into the shifter 14 b. A re-encryption by means of the re-encryption device 34 must be carried out so that the lsb of the multiplication intermediate result register 16 , which is encrypted with k 0 , and which becomes the msb of the first operand register 30 , which is to be encrypted with k n-1 , due to the shift. is correctly encrypted.

Bei der XOR-Verschlüsselung, wie sie bevorzugt wird, wird ei­ ne Umverschlüsselung von einem Schlüssel in einen anderen Schlüssel dadurch erreicht, daß ein Umverschlüsselungs- Schlüssel ti berechnet wird, der sich aus einer XOR- Verknüpfung des einen beteiligten Schlüssels und des anderen beteiligten Schlüssels ergibt. Zur Umverschlüsselung muß dann der verschlüsselte Ursprungswert mit dem Umverschlüsselungs- Schlüssel ebenfalls XOR-verknüpft werden, um den für die Ziel-Stelle korrekt verschlüsselten Wert zu erhalten. Daher benötigt auch die Umverschlüsselungseinrichtung 34 Schlüssel­ parameter als Eingangssignale, um die Umverschlüsselung kor­ rekt vornehmen zu können. Selbstverständlich muß die Um­ verschlüsselung innerhalb der Shifter 14a, 14b durchgeführt werden, weshalb die Schieber 14a bzw. 14b in ihrer Ausführung als verschlüsselte Schieber ebenfalls als Eingangssignal die Verschlüsselungsparameter benötigen. Zur Umverschlüsselung existieren zwei Möglichkeiten. Entweder kann das verschlüs­ selte Ursprungsbit zunächst umverschlüsselt werden und dann in umverschlüsselter Form auf das Zielbit geschrieben werden, oder das Ursprungsbit kann zunächst auf das Zielbit geschrie­ ben werden, dann umverschlüsselt werden und schließlich in korrekt verschlüsselter Form erneut auf das Zielbit geschrie­ ben zu werden. In XOR encryption, as is preferred, a re-encryption from one key to another key is achieved in that a re-encryption key t i is calculated, which is based on an XOR combination of the one key involved and the other involved Key results. For re-encryption, the encrypted original value must then also be XOR-linked with the re-encryption key in order to obtain the value correctly encrypted for the destination. Therefore, the re-encryption device 34 also needs key parameters as input signals in order to be able to carry out the re-encryption correctly. Of course, the encoding must be carried out within the shifters 14 a, 14 b, which is why the sliders 14 a and 14 b in their design as encrypted sliders also require the encryption parameters as an input signal. There are two options for re-encryption. Either the encrypted original bit can first be re-encrypted and then written to the target bit in re-encrypted form, or the original bit can first be written to the target bit, then re-encrypted and finally re-written to the target bit in a correctly encrypted form.

Für diesen Fall, d. h. wenn lediglich der Addierer 10 mit Klartextdaten arbeitet, muß der Addierer eingangsseitig mit einer Entschlüsselungseinheit und ausgangsseitig mit einer Verschlüsselungseinheit versehen sein.In this case, ie if only the adder 10 works with plain text data, the adder must be provided on the input side with a decryption unit and on the output side with an encryption unit.

Bei einem dritten Ausführungsbeispiel der Multiplikationsvor­ richtung arbeitet auch der Addierer 10 unmittelbar mit ver­ schlüsselten Eingangsdaten und liefert ein verschlüsseltes Resultat, ohne daß Klartextdaten als Zwischenergebnisse er­ zeugt werden. In diesem Fall benötigt auch der Addierer 10 die Verschlüsselungsparameter für die einzelnen Stellen als Eingangssignale, wie es in Fig. 1 gezeigt ist.In a third embodiment of the Multiplikationsvor direction also the adder 10 works directly with ver encrypted input data and provides an encrypted result without plain text data as intermediate results he is generated. In this case, the adder 10 also requires the encryption parameters for the individual digits as input signals, as shown in FIG. 1.

Das dritte Ausführungsbeispiel der Multiplikationsvorrich­ tung, bei dem sämtliche Komponenten neben der Steuereinrich­ tung 18 im Geheimtextraum arbeiten, zeichnet sich dadurch aus, daß an keiner Stelle der Multipliziererschaltung Klar­ textdaten vorliegen, die abgegriffen werden können.The third embodiment of the Multiplikationsvorrich device, in which all components work next to the Steuereinrich device 18 in the secret text space, is characterized in that there is no plain text data at any point of the multiplier circuit that can be tapped.

Im nachfolgenden wird Bezug nehmend auf Fig. 3 der kryp­ tographischen Booth-Recoding-Multiplikationsalgorithmus gemäß der vorliegenden Erfindung dargestellt. In Fig. 3 sind die Bedingungen für die verschiedenen Kombinationen des aktuellen Bits des ersten Operanden a'i und des vorhergehenden ver­ schlüsselten Bits des Operanden a'i-1 gegeben. Das in Fig. 3 gezeigte Beispiel bezieht sich wiederum auf eine XOR- Verschlüsselung mit einem Verschlüsselungsparameter ki für ein Bit i. In Zeile (i) sind die Bedingungen gegeben für den Fall, daß die verschlüsselten Bits a'i bezüglich des Ver­ schlüsselungsparameters eine Beziehung haben, die im Klar­ textraum bedeutet, daß ai und ai-1 0 sind. In Zeile (ii) sind die Beziehungen von a'i und a'i-1 bezüglich des Verschlüsse­ lungsparameters ki oder ki-1 gegeben, die im Klartextraum dem Fall entsprechen, bei dem ai gleich 0 ist, und bei dem ai-1 gleich 1 ist. The cryptographic booth recoding multiplication algorithm according to the present invention is illustrated below with reference to FIG. 3. In Fig. 3, the conditions for the various combinations of the current bit of the first operand a ' i and the previous ver encrypted bit of the operand a' i-1 are given. The example shown in FIG. 3 in turn relates to an XOR encryption with an encryption parameter k i for a bit i. In line (i) the conditions are given in the event that the encrypted bits a ' i have a relationship with respect to the encryption parameter which means in plain text that a i and a i-1 are 0. In line (ii) the relationships of a ' i and a' i-1 with respect to the encryption parameter k i or k i-1 are given, which in plain text correspond to the case where a i is 0 and where a i-1 is 1.

In Zeile (iii) sind die Bedingungen für a'i und a'i-1 gegeben, die im Klartextraum dem Fall entsprechen, bei dem ai gleich 1 ist, und bei dem ai-1 gleich 0 ist. In Zeile (iv) sind die Be­ dingungen im Geheimtextraum zwischen a'i und a'i-1 zu den Ver­ schlüsselungsparametern ki und ki-1 gegeben, bei denen eine unverschlüsselte Version der Operanden ai bzw. ai-1 im Klar­ textraum eine 1 haben.In line (iii) the conditions for a ' i and a' i-1 are given, which in plain text correspond to the case where a i is 1 and where a i-1 is 0. In line (iv) the conditions in the ciphertext space between a ' i and a' i-1 are given for the encryption parameters k i and k i-1 , in which an unencrypted version of the operands a i and a i-1 im Clear text space have a 1.

Ferner sei darauf hingewiesen, daß in Zeile (i) und (iv) im Geheimtextraum keine 0, wie im Klartextraum, hinzuaddiert wird, sondern ein Wert, der einer verschlüsselten 0 ent­ spricht. Bei der in Fig. 3 gewählten Verschlüsselung ist eine 0 im Klartextraum gleich dem Schlüsselparameter im Geheim­ textraum.It should also be pointed out that in line (i) and (iv) in the ciphertext space no 0 is added, as in the plaintext space, but a value that corresponds to an encrypted 0. In the encryption chosen in FIG. 3, a 0 in the plain text space is equal to the key parameter in the cipher text space.

Zur Ausführung des kryptographischen Booth-Recoding- Multiplikationsalgorithmus benötigt die Steuereinrichtung 18, die in Fig. 1 gezeigt ist, keine Verbindung mit dem ersten Operandenregister 30, sondern lediglich eine Verbindung mit dem Operanden-Ursprungsregister 24, da sich die Indizes ai und ai-1 nicht auf das aktuelle erste Operandenregister 30 be­ ziehen, das in jedem Schritt um ein Bit nach rechts verscho­ ben wird.In order to execute the cryptographic booth recoding multiplication algorithm, the control device 18 shown in FIG. 1 does not require a connection to the first operand register 30 , but only a connection to the operand origin register 24 , since the indices a i and a i -1 do not refer to the current first operand register 30 , which is shifted one bit to the right in each step.

Fig. 4 zeigt eine erfindungsgemäße Vorrichtung zum Ausführen eines kryptographischen Restoring-Divisionsalgorithmus oder eines kryptographischen Non-Restoring-Divisionsalgorithmus. Der Dividierer umfaßt wieder als zentrales Element eine Ad­ diereinrichtung 40, ein Divisionszwischenergebnisregister 42, ein erstes Operandenregister 44 und ein zweites Operandenre­ gister 46. Ferner ist eine Steuereinrichtung 48 vorgesehen, die im Geheimtextraum arbeitet und daher im Fall einer Vor­ zeichen-Betrag-Darstellung das höchstwertige Bit des Divisi­ onszwischenergebnisregisters 42 in verschlüsselter Form emp­ fängt oder im Falle eines kryptographischen Restoring- Divisionsalgorithmus das niederstwertige Bit des ersten Ope­ randenregisters 44 ausgibt. Die Steuereinrichtung 48 ist fer­ ner angepaßt, um den Addierer 40 anzusteuern, um entweder ei­ ne Addition von B oder eine Subtraktion von B zu bewirken. Fig. 4 shows an inventive apparatus for carrying out a cryptographic restoring division algorithm, or a cryptographic non-restoring division algorithm. The divider again comprises, as a central element, an adding device 40 , an intermediate division result register 42 , a first operand register 44 and a second operand register 46 . Furthermore, a control device 48 is provided, which works in the ciphertext space and therefore receives the most significant bit of the intermediate division result register 42 in encrypted form in the case of a sign-amount representation or, in the case of a cryptographic restoring division algorithm, the least significant bit of the first operand register 44 issues. The controller 48 is further adapted to drive the adder 40 to effect either an addition of B or a subtraction of B.

Bei einem ersten Ausführungsbeispiel arbeitet die Steuerein­ richtung 48 im Geheimtextraum, während der Addierer 40 und die Register 42, 44 und 46 im Klartextraum arbeiten. In die­ sem Fall muß das höchstwertige Bit des Divisionszwischener­ gebnisregisters 42, also p'n+1, das der Steuereinrichtung 48 zugeführt wird, am Ausgang des Registers 42 verschlüsselt werden. Darüber hinaus muß im Falle des kryptographischen Restoring-Divisionsalgorithmus das von der Steuereinrichtung 48 verschlüsselt erzeugte niederstwertige Bit des ersten Ope­ randenregisters 44 am Eingang in das erste Operandenregister 44 entschlüsselt werden.In a first embodiment, the control device 48 operates in the cipher text space, while the adder 40 and the registers 42 , 44 and 46 operate in the plain text space. In this case, the most significant bit of the divisional intermediate result register 42 , that is, p ' n + 1 , which is supplied to the control device 48 , must be encrypted at the output of the register 42 . Furthermore, it must the cryptographic restoring division algorithm, the encrypted by the control device 48 produced significant bit of the first Ope be decrypted edge of registers 44 at the input in the first operand register 44 in the case.

Um mehr Sicherheit zu erreichen, wird es bevorzugt, die Re­ gister 42, 44 und 46 derart zu belegen, daß sie mit ver­ schlüsselten Parametern A', B' und P' belegt sind. In diesem Fall muß für die bei den Divisionsalgorithmen auftretende Bitverschiebung nach links für eine entsprechende Um­ verschlüsselung gesorgt werden. Dasselbe trifft zu für das höchstwertige Bit des ersten Operandenregisters 44 (a'n), das bei einer Verschiebung nach rechts das niederstwertige Bit p'0 des Divisionszwischenergebnisregisters 42 wird. Um eine gemeinsame Schlüsselbasis zu erhalten, muß daher das höchstwertige Bit des ersten Operandenregisters mittels der Schlüssel k0 und kn, wie es Bezug nehmend auf Fig. 1 ausge­ führt worden ist, mittels einer Umverschlüsselungseinrichtung 50 umverschlüsselt werden. Dasselbe trifft selbstverständlich auch für eine Verschiebung innerhalb der Register zu. Auch hier muß eine Umverschlüsselung durchgeführt werden, damit kein für ein Bit i verschlüsselter Wert ohne Umverschlüsse­ lung an einer anderen Stelle im Register landet.In order to achieve more security, it is preferred to assign the registers 42 , 44 and 46 in such a way that they are assigned ver parameters A ', B' and P '. In this case, for the bit shift to the left that occurs in the division algorithms, appropriate encryption must be provided. The same applies to the most significant bit of the first operand register 44 (a ' n ) which, when shifted to the right, becomes the least significant bit p' 0 of the divisional intermediate result register 42 . In order to obtain a common key basis, the most significant bit of the first operand register must therefore be re-encrypted by means of the keys k 0 and k n , as has been explained with reference to FIG. 1, by means of a re-encryption device 50 . The same naturally applies to a shift within the register. Here too, re-encryption must be carried out so that no value encrypted for a bit i ends up in another location in the register without re-encryption.

Eine weitere Umverschlüsselungseinheit 52 dient zum Um­ verschlüsseln des höchstwertigen Bits des Registers. Another re-encryption unit 52 is used to re-encrypt the most significant bit of the register.

Wie es in Fig. 5 dargestellt ist, kann eine Untersuchung da­ hingehend, ob der aktuelle Inhalt des Divisionszwischenergeb­ nisses negativ ist, unter Verwendung des verschlüsselten höchstwertigen Bits p'm+1 durchgeführt werden. Die Steuerein­ richtung 48 vergleicht nunmehr das verschlüsselte höchstwer­ tige Bit des Divisionszwischenergebnisregisters mit dem Schlüssel kn+1 für dieses Bit, um festzustellen, ob dies das höchstwertige Bit des Divisionszwischenergebnisses in unver­ schlüsselter Form einer 1 entspricht, was einem negativen Wert in der Vorzeichen-Betrag-Darstellung entsprechen würde. Im Falle der XOR-Verschlüsselung ist die unverschlüsselte Version des höchstwertigen Bits des Divisionszwischenergeb­ nisses dann gleich 1, wenn die verschlüsselte Version dieses Bits gleich dem Verschlüsselungsparameter kn+1 ist. Dann wird das Registerpaar P', A' um ein Bit nach links verschoben, und der neue Registerwert ergibt sich aus dem alten Registerwert, zu dem der verschlüsselte zweite Operand B hinzuaddiert wird.As shown in Fig. 5, an examination of whether the current content of the divisional intermediate result is negative can be performed using the encrypted most significant bit p ' m + 1 . The controller 48 now compares the encrypted most significant bit of the divisional intermediate result register with the key k n + 1 for this bit to determine whether this corresponds to the most significant bit of the divisional intermediate result in an unencrypted form a 1, which is a negative value in the sign. Amount representation would correspond. In the case of XOR encryption, the unencrypted version of the most significant bit of the divisional intermediate result is 1 if the encrypted version of this bit is equal to the encryption parameter k n + 1 . Then the register pair P ', A' is shifted one bit to the left, and the new register value results from the old register value to which the encrypted second operand B is added.

Wenn dagegen das höchstwertige Bit des Divisionszwischener­ gebnisses in verschlüsselter Form gleich dem Verschlüsse­ lungsparameter kn+1 ist, was in unverschlüsselter Form bedeu­ tet, daß die unverschlüsselte Form des höchstwertigen Bits des Divisionszwischenergebnisregisters gleich 0 (eine positi­ ve Zahl), dann wird das Registerpaar P', A' ebenfalls um ein Bit nach links verschoben. Ferner ergibt sich der Wert des neuen Registers dadurch, daß der Wert des alten Registers ge­ nommen wird und davon der erste Operand B subtrahiert wird.Conversely, if the most significant bit of the intermediate division result in encrypted form is equal to the encryption parameter k n + 1 , which means in unencrypted form that the unencrypted form of the most significant bit of the divisional intermediate result register is 0 (a positive number), then the register pair P ', A' also shifted one bit to the left. Furthermore, the value of the new register results from the fact that the value of the old register is taken and the first operand B is subtracted from it.

Fig. 6 zeigt eine Übersicht über den kryptographischen Resto­ ring-Divisionsalgorithmus gemäß der vorliegenden Erfindung. Die Steuereinrichtung ist angeordnet, um den Addierer anzu­ steuern, um den zweiten Operanden von dem Divisionszwischen­ ergebnisregister zu subtrahieren, und um das Ergebnis in das Divisionszwischenergebnisregister zu laden. Zuvor wird das Registerpaar, wie beim Non-Restoring-Divisionsalgorithmus um ein Bit nach links verschoben. Fig. 6 shows an overview of the cryptographic Resto ring division algorithm according to the present invention. The controller is arranged to drive the adder to subtract the second operand from the intermediate division result register and to load the result into the division intermediate result register. Prior to this, the register pair is shifted to the left by one bit, as in the non-restoring division algorithm.

Die Steuereinrichtung ist ferner angeordnet, um einen ver­ schlüsselten Inhalt des Divisionszwischenergebnisregisters im Hinblick auf eine verwendete Verschlüsselung zu untersuchen, wobei, falls ein erstes Untersuchungsergebnis erhalten wird, ein niederstwertiges Bit des ersten Operandenregisters auf einen Wert gesetzt wird, der einer verschlüsselten 0 ent­ spricht, und wobei der zweite Operand zu dem Divisionszwi­ schenergebnis hinzuaddiert wird, und wobei, falls ein zweites Untersuchungsergebnis erhalten wird, ein niederstwertiges Bit des ersten Operanden auf einen Wert gesetzt wird, der einer unverschlüsselten "1" entspricht.The control device is further arranged to ver encoded the contents of the divisional interim results register in the To investigate the encryption used, whereby, if a first test result is obtained, a least significant bit of the first operand register a value is set that corresponds to an encrypted 0 speaks, and the second operand to the division result is added, and if a second Result of the examination is obtained, a least significant bit of the first operand is set to a value that is one corresponds to unencrypted "1".

Das erste Untersuchungsergebnis zeigt an, daß der Inhalt des Divisionszwischenergebnisregisters negativ ist. Das zweite Untersuchungsergebnis zeigt an, daß der Inhalt des Divisions­ zwischenergebnisregisters positiv ist.The first test result indicates that the content of the Divisional interim results register is negative. The second The result of the investigation indicates that the content of the division intermediate result register is positive.

Fig. 6 zeigt den kryptographischen Restoring- Divisionsalgorithmus am Beispiel einer Vorzeichen-Betrag- Darstellung. In diesem Fall kann die Untersuchung, ob der ak­ tuelle Inhalt des Divisionszwischenergebnisregisters negativ bzw. positiv ist, anhand des höchstwertigen Bits untersucht werden. Der Inhalt ist negativ, wenn das höchstwertige Bit eine logische "1" hat. Dies entspricht im Geheimtextraum, wie es ausgeführt worden ist, dem Fall, daß das höchstwertige verschlüsselte Bit des Divisionszwischenergebnisregisters un­ gleich dem Schlüssel k dieses Bits ist. Wenn dagegen das ver­ schlüsselte höchstwertige Bit des Divisionszwischenergebnis­ registers gleich dem Verschlüsselungsparameter für dieses Bit ist, dann bedeutet dies, daß im Klartextraum das höchstwerti­ ge Bit des Divisionszwischenergebnisregisters gleich 0 ist, was auf eine positive Zahl hindeutet. Fig. 6 shows the cryptographic Restoring- division algorithm the example of a sign-Betrag- representation. In this case, the examination of whether the current content of the divisional intermediate result register is negative or positive can be examined on the basis of the most significant bit. The content is negative if the most significant bit has a logical "1". In ciphertext space, as has been explained, this corresponds to the case where the most significant encrypted bit of the divisional intermediate result register un is equal to the key k of this bit. If, on the other hand, the encrypted most significant bit of the intermediate division result register is equal to the encryption parameter for this bit, then this means that in clear text space the most significant bit of the division intermediate result register is 0, which indicates a positive number.

Erfindungsgemäß wird sowohl im Fall von Fig. 5 als auch im Fall von Fig. 6 das niederstwertige Bit des ersten Operanden­ registers a'0 gleich dem Verschlüsselungsparameter k0 für das 0-te Bit gesetzt, was im Klartextraum eines Setzens dieses einen Bits auf 0 entspricht. Wird dagegen im Klartextraum für das Bit eine 1 verlangt, so entspricht dies im Geheimtextraum bei der beispielhaft verwendeten XOR-Verschlüsselung dem Set­ zen des Bits nicht auf 0 (Klartext) sondern auf den negierten Wert des Verschlüsselungsparameters k0.According to the invention, both in the case of FIG. 5 and in the case of FIG. 6, the least significant bit of the first operand register a ' 0 is set equal to the encryption parameter k 0 for the 0th bit, which in the plain text space of setting this one bit to 0 corresponds. If, on the other hand, a 1 is required for the bit in plain text space, this corresponds to the setting of the bit not to 0 (plain text) but to the negated value of the encryption parameter k 0 in the cipher text space in the example of XOR encryption used.

An dieser Stelle sei darauf hingewiesen, daß der Dividierer in Fig. 4 ebenfalls in unterschiedlich sicheren Formen ausge­ führt sein kann. Eine gewisse Sicherheit wird bereits dadurch erreicht, daß die Steuereinrichtung vollständig im Geheim­ textraum arbeitet. Die Sicherheit wird noch verbessert, wenn sämtliche Register Geheimtextraumdaten speichern. Die beste Sicherheit wird schließlich dann erreicht, wenn auch der Ad­ dierer 40 in Fig. 4 im Geheimtextraum arbeitet.At this point it should be noted that the divider in Fig. 4 can also be performed in different safe forms. A certain degree of security is already achieved in that the control device operates completely in the secret text space. Security is further improved if all registers store ciphertext data. Ultimately, the best security is achieved when the adder 40 in FIG. 4 also works in the ciphertext space.

Für die Bitverschiebungen in den Registern 42, 44 können un­ terschiedliche Verfahren angewendet werden. Entweder kann ei­ ne Umverschlüsselung von jedem Bit des Registers vorgenommen werden. Alternativ kann jedoch auch der Schlüsselvektor k be­ stehend aus k0, k1, . . ., kn-1 in einem Schlüsselregister abge­ speichert werden und ebenfalls im Gleichtakt zu den Registern A und P verschoben werden. In diesem Fall muß jedoch auch je­ de Komponente, die Schlüssel benötigt, auf das aktuelle Schlüsselregister bzw. den aktuellen Stand des Schlüsselre­ gisters zugreifen können.Different methods can be used for the bit shifts in the registers 42 , 44 . Either a re-encryption of every bit of the register can be carried out. Alternatively, however, the key vector k can be k 0 , k 1 ,. . ., k n-1 are stored in a key register and are also shifted to registers A and P in synchronism. In this case, however, each de component that needs keys must be able to access the current key register or the current state of the key register.

Für den Vergleich kann auch ein Pointer verwendet werden, der die entsprechenden Bitpositionen im Schlüsselregister und in den anderen Registern vergleicht, um die in den kryptographi­ schen Algorithmen geforderten Vergleiche von Bits mit dem in seiner Ordnung entsprechenden Schlüsselbit vorzunehmen, wobei diese Vergleiche im Klartext der Feststellung entsprechen, ob ein Bit gleich Null oder Eins ist. Wird also ein Pointer auf das Schlüsselregister verwendet, der immer auf das gerade zum Vergleich benötigte Schlüsselbit zeigt, so muß das Schlüssel­ register nicht verschoben werden. Wenn ferner der Pointer da­ zu verwendet wird, auch auf das Multiplikatorregister zu zei­ gen, so wäre auch kein zweites Schieberegister für den Multi­ plikator notwendig. Die Schiebeoperation kann somit vollstän­ dig durch einen Pointer samt entsprechender Inkrementierung ersetzt werden.A pointer can also be used for the comparison, the the corresponding bit positions in the key register and in compares the other registers to those in the cryptographi algorithms required comparisons of bits with the in to perform its key bit corresponding to its order, whereby these comparisons in plain text correspond to the determination of whether a bit is zero or one. So it becomes a pointer uses the key register, which always points to the Comparison shows the key bit required, so the key register cannot be moved. If further the pointer is there is also used to point to the multiplier register  would not be a second shift register for the Multi plicator necessary. The sliding operation can thus be complete dig by a pointer with corresponding incrementation be replaced.

Bezüglich der Multiplikationsalgorithmen sei darauf hingewie­ sen, daß beide Multiplikationsalgorithmen nach rechts shif­ ten, und daß beide ein neues verschlüsseltes höchstwertiges Bit generieren müssen. Während bei der vorzeichenlosen Multi­ plikation mit dem kryptographischen Radix-2- Multiplikationsalgorithmus dieses Bit das höchstwertige Bit des Schlüssels darstellt, bildet im Falle des kryptographi­ schen Booth-Recoding-Algorithmus das zu shiftende höchstwer­ tige Bit die Vorzeichen-Information und wird nach dem Shift- Vorgang - in verschlüsselter Form - an die Topposition ko­ piert.With regard to the multiplication algorithms, please note sen that both multiplication algorithms shif to the right ten, and that both a new encrypted most significant Have to generate bit. While the unsigned Multi application with the cryptographic Radix-2 Multiplication algorithm this bit the most significant bit of the key, forms in the case of cryptography Booth recoding algorithm is the highest value to be shifted bit the sign information and is after the shift Process - in encrypted form - to the top position ko pierced.

Es sei darauf hingewiesen, daß durch die Verwendung von Spei­ cherelementen, in denen ein Ergebnis mit einem anderen Schlüssel K zwischengespeichert wird, ein Schlüsselwechsel zwischen einzelnen arithmetischen Rechenschritten möglich und erwünscht ist. Durch einen periodischen Schlüsselwechsel wird die Sicherheit des Verschlüsselungsverfahrens einstellbar. Ein häufiger Schlüsselwechsel führt zu einem sichereren Ver­ fahren, während ein seltener Schlüsselwechsel zu einem nicht ganz so sicheren Verfahren führt, das jedoch aufgrund des selteneren Schlüsselwechsels weniger rechenaufwendig ist, da eine Umverschlüsselung für jeden neuen Schlüssel seltener durchgeführt werden muß.It should be noted that by using Spei elements in which one result with another Key K is cached, a key change possible between individual arithmetic steps and is desired. Through a periodic key change the security of the encryption process can be set. A frequent key change leads to a more secure ver drive while a rare key change to one doesn't procedure that is so safe, but because of the less frequent key change is less computational, because a re-encryption for each new key less often must be carried out.

Im nachfolgenden wird auf Fig. 9a Bezug genommen, um eine ADD-Operation zwischen den verschlüsselten Operanden akn und bkn zu erläutern. Bestimmungsgleichung hierfür ist die nach­ folgende Gleichung:
Reference is now made to FIG. 9a to explain an ADD operation between the encrypted operands a kn and b kn . The determination equation for this is the following equation:

Die Operation von drei Operanden bzw. von drei Bits von Ope­ randen, wenn ein Bit-Slice eines Parallel-Addierers betrach­ tet wird, führt zu einem Übertrag c, wobei in der vorletzten Spalte und der drittletzten Spalte der in Fig. 9b 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 three bits of operands when a bit slice of a parallel adder is considered leads to a carry c, with the truth table shown in FIG. 9b in the penultimate column and the third-last column Carryover in the ADD operation between the unencrypted operands a, b and c is listed as cp, where p stands for "plain" = unencrypted, and wherein the transfer from the ADD operation of the ALU ck according to the invention is shown in the penultimate line.

Der Übertrag ckn(n+1) ergibt sich durch folgende Gleichung:
The carry ckn (n + 1) results from the following equation:

Die Implementierung der vorstehenden Gleichung ist in Fig. 9a dargestellt. Die ALU von Fig. 9a für ein verschlüsseltes Re­ chenwerk umfaßt wiederum eine Vielzahl von arithmetischen Un­ teroperationen, 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 Fig. 9b 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 Um­ verschlüsselung von (ckn)n+1 vom Schlüssel kn in den Schlüssel kn+1 stattfinden wird.The implementation of the above equation is shown in Figure 9a. The ALU of FIG. 9a 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 . On the output side there is then the carry (ckn) n + 1 for the ADD combination of the three input operands, which again corresponds to the carry according to the truth table shown in FIG. 9b if the three operands are added in unencrypted form and then encrypted will. In particular, (ckn) n + 1 means the carry (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, an encoding of (ckn) n + 1 from the key k n into 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üssel­ tes Übertragbit c' (c' = (ckn)n+1) ausgibt, wobei derselbe eingangsseitig neben den beiden verschlüsselten Operanden ein verschlüsseltes Übertrageingangsbit erhält. Ein solcher Ad­ dierer wird im Stand der Technik - bei unverschlüsselten Da­ ten - auch als Ein-Bit-Volladdierer bezeichnet.The above two equations provide an implementation for an encrypted operand adder that outputs an encrypted sum bit s '(s' = s kn ) and an encrypted carry bit c '(c' = (ckn) n + 1 ), the same receives an encrypted transmission input bit on the input side in addition to the two encrypted operands. Such an ad dier is also referred to in the prior art - with unencrypted data - as a one-bit full adder.

Ein Ein-Bit-Volladdierer wird verwendet, um als erfindungsge­ mäßes Rechenwerk einen n-Bit breiten Volladdierer aufzubauen. In diesem Fall wird der Ein-Bit-Volladdierer gemäß einem Aus­ führungsbeispiel der vorliegenden Erfindung als Bit-Slice o­ der Bit-Slice-Einrichtung bezeichnet. Die Zusammenschaltung zweier Bit-Slice-Einrichtungen ist in Fig. 8a gezeigt. Im einzelnen zeigt Fig. 8a 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. 8a mit 1204 be­ zeichnet 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 ver­ schlüsselte Ausgangsgrößen, d. h. verschlüsselte Summenbits und verschlüsselte Übertragsbits zu erzeugen.A one-bit full adder is used to build an n-bit wide full adder as the inventive arithmetic unit. In this case, the one-bit full adder is referred to as a bit slice o of the bit slice device according to an exemplary embodiment of the present invention. The interconnection of two bit slice devices is shown in Fig. 8a. In detail, FIG. 8a has a first bit slice 1200 N for the bit of order and a bit-slice 1202 n for the bit of order + 1 heart of each bit slice is the ALU for encrypted operand, which in Fig. 8a is designated with 1204 . As has been stated, 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 quantities, ie encrypted sum bits and encrypted carry bits.

Der Ein-Bit-Volladdierer, der in Fig. 8a gezeigt ist, ist durch folgende beiden Bestimmungsgleichungen definiert:
The one-bit full adder shown in FIG. 8a is defined by the following two determination equations:

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 Operan­ den 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 einge­ geben, das von dem Übertragausgangsbit c'n des vorhergehenden Bit-Slices 1200 abhängt.The adder equations are selected here in such a way that no encryption key has to be entered in the one-bit full adder 1204 itself, but very well in the bit slice 1202 or 1200 according to an exemplary embodiment of the present invention. In addition, the one-bit full adder 1204 is 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. In the first input x of the one-bit full adder of the bit slice for the bit n + 1, the current bit of the encrypted operand a, that is, a ' n + 1, is entered. The current encrypted bit of the second operand, ie b ' n + 1, is entered into the second input y. A bit is entered into the third input z, which depends on the carry output bit c ' n of the previous bit slice 1200 .

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 different encryption keys k n + 1 and k n are available for the two different bit slice devices 1200 and 1202 . 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üsse­ lungs-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 link, 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 + 1 . This is represented by an XOR gate 1206 . 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, ie 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 Übertragaus­ gangsbit aus, das jedoch mit dem Schlüssel kn+1 verschlüsselt ist und von der nächsthöheren Stufe (in Fig. 8a nicht ge­ zeigt) wieder entsprechend umverschlüsselt werden muß. Das­ selbe trifft für den Übertrageingang des Bit-Slices 1200 zu. Hier wird ein Übertragausgangsbit der nächst niedrigeren Stu­ fen n - 1 erhalten, wobei dieses Bit wieder durch das Um­ verschlüsselungs-XOR-Gatter 1206 umverschlüsselt werden muß.The bit-slice device 1202 again outputs a carry-out bit, which is, however, encrypted with the key k n + 1 and must be re-encrypted accordingly from the next higher level (not shown in FIG. 8a). The same applies to the transmission input of bit slice 1200 . Here, a carry output bit of the next lower level n - 1 is obtained, this bit having to be re-encrypted by the re-encryption XOR gate 1206 .

Werden mehrere Bit-Slices aneinander geschaltet, wie es in Fig. 8a gezeigt ist, so ergibt sich allgemein ein Ripple- Carry-Addierer (Fig. 8b), 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. 8b 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 a plurality of bit slices are connected to one another, as shown in FIG. 8a, this generally results in a ripple carry adder ( FIG. 8b) which, as input variables, the two encrypted operands a ', b' and the re-encapsulations Key for the individual bits t i receives. The ripple carry adder shown in FIG. 8b also receives as input a carry input signal which is set to 0 for a conventional ripple carry adder which operates in the add mode.

Selbstverständlich kann statt für eine Subtraktion statt ei­ ner 0 auch eine 1 angelegt werden. Ausgangsseitig liefert der Addierer von Fig. 8b die Summenbits in verschlüsselter Form, nämlich s0', s1' bis sN'. Darüber hinaus liefert der in Fig. 8b gezeigte Addierer als Ausgangssignal ein Übertragbit des höchsten Bit-Slices innerhalb des Addierers, falls ein sol­ ches erzeugt wird. Of course, a 1 can be created instead of a subtraction instead of a 0. On the output side, the adder of FIG. 8b supplies the sum bits in encrypted form, namely s 0 ', s 1 ' to s N '. In addition, the adder shown in Fig. 8b provides as an output a carry bit of the highest bit slice within the adder, if such is generated.

BezugszeichenlisteReference symbol list

1010th

Addierer
Adder

1212

a Zwischenergebnisregister
a Interim results register

1212

b Zwischenergebnisregister
b Interim results register

1414

a Schieber
a slider

1414

b Schieber
b slider

1616

Multiplikationszwischenergebnisregister
Intermediate result register

1818th

Steuereinrichtung
Control device

2020th

Multiplexer
multiplexer

2222

zweites Operandenregister
second operand register

2424th

erstes Operanden-Ursprungsregister
first operand origin register

2626

Multiplexer
multiplexer

2828

Zwischenergebnisregister
Interim results register

3030th

erstes Operandenregister
first operand register

3232

Verschlüsselungsparameter-Eingang
Encryption parameter input

3434

Umverschlüsselungseinrichtung
Encryption facility

4040

Addierer
Adder

4242

Divisionszwischenergebnisregister
Divisional interim results register

4444

erstes Operandenregister
first operand register

4646

zweites Operandenregister
second operand register

4848

Steuereinrichtung
Control device

5050

Umverschlüsselungseinrichtung
Encryption facility

5252

Umverschlüsselungseinrichtung
Encryption facility

171171

UND-Gatter
AND gate

172172

UND-Gatter
AND gate

173173

UND-Gatter
AND gate

179179

ODER-Gatter
OR gate

180180

ODER-Gatter
OR gate

12001200

Bit-Slice für Bit n
Bit slice for bit n

12021202

Bit-Slice für Bit n + 1
Bit slice for bit n + 1

12041204

Ein-Bit-Volladdierer für verschlüsselte Eingangsdaten
One-bit full adder for encrypted input data

Claims (13)

1. Vorrichtung zum Multiplizieren eines ersten Operanden (A) mit einem zweiten Operanden (B) gemäß einem Radix-2- Multiplikationsalgorithmus, um ein Multiplikationsergebnis (P) zu erhalten, mit folgenden Merkmalen:
einem ersten Operandenregister (30) zum Speichern des ersten Operanden (A);
einem zweiten Operandenregister (22) zum Speichern des zwei­ ten Operanden (B);
einem Multiplikationszwischenergebnisregisters (16) zum Spei­ chern eines Multiplikationszwischenergebnisses (P);
einem Addierer (10);
einer Steuereinrichtung (18) mit einem Eingang zum Empfangen eines mit einem Verschlüsselungsparameter verschlüsselten niederstwertigen Bit des ersten Operandenregisters (30), wo­ bei die Steuereinrichtung (18) angeordnet ist, um das ver­ schlüsselte niederstwertige Bit des ersten Operandenregisters (30) unter Verwendung des Verschlüsselungsparameters zu un­ tersuchen, um
falls ein erstes Untersuchungsergebnis erhalten wird, den Ad­ dierer (10) anzusteuern, zu einem aktuellen Inhalt des Multi­ plikationszwischenergebnisregisters (16) den zweiten Operan­ den (B) hinzuzuaddieren, und einen Inhalt des ersten Operan­ denregisters (30) und des Multiplikationszwischenergebnisre­ gisters (16) in Richtung niederwertiger Bits zu verschieben, um einen neuen Inhalt für das erste Operandenregister (30) und das Multiplikationszwischenergebnisregister (16) zu er­ halten, oder
falls ein zweites Untersuchungsergebnis erhalten wird, das zu dem ersten Untersuchungsergebnis unterschiedlich ist, den Ad­ dierer (10) anzusteuern, um zu einem aktuellen Multiplikati­ onszwischenergebnis einen verschlüsselten Wert hinzuzuaddie­ ren, der in unverschlüsseltem Zustand einer logischen "0" entspricht, und um einen Inhalt des ersten Operandenregisters (30) und des Multiplikationszwischenergebnisregisters (16) in Richtung niederwertiger Bits zu verschieben, und
wobei das erste Untersuchungsergebnis bedeutet, daß das ver­ schlüsselte niederstwertige Bit des ersten Operandenregisters (30) einen Wert hat, der in unverschlüsseltem Zustand einer logischen "0" entspricht, und wobei das zweite Untersuchungs­ ergebnis bedeutet, daß das verschlüsselte niederstwertige Bit des ersten Operandenregisters einen Wert hat, der in unver­ schlüsseltem Zustand einer logischen "1" entspricht.
1. Device for multiplying a first operand (A) by a second operand (B) according to a radix-2 multiplication algorithm in order to obtain a multiplication result (P), having the following features:
a first operand register ( 30 ) for storing the first operand (A);
a second operand register ( 22 ) for storing the second operand (B);
an intermediate multiplication result register ( 16 ) for storing an intermediate multiplication result (P);
an adder ( 10 );
a control device ( 18 ) having an input for receiving a least significant bit of the first operand register ( 30 ) encrypted with an encryption parameter, where the control device ( 18 ) is arranged to receive the least significant bit of the first operand register ( 30 ) encrypted using the encryption parameter to investigate to
if a first examination result is obtained, the adder ( 10 ) is driven, the second operand (B) is added to a current content of the multiplication intermediate result register ( 16 ), and a content of the first operand register ( 30 ) and the multiplication intermediate result register ( 16 ) in the direction of low-order bits in order to obtain new content for the first operand register ( 30 ) and the multiplication intermediate result register ( 16 ), or
if a second examination result is obtained, which is different from the first examination result, the adder ( 10 ) is driven in order to add an encrypted value to a current intermediate multiplication result, which corresponds to a logical "0" in the unencrypted state, and to a content of the first operand register ( 30 ) and the multiplication intermediate result register ( 16 ) in the direction of low-order bits, and
wherein the first test result means that the encrypted least significant bit of the first operand register ( 30 ) has a value which corresponds to a logical "0" in the unencrypted state, and wherein the second test result means that the encrypted least significant bit of the first operand register has one Has a value that corresponds to a logical "1" in the unencrypted state.
2. Vorrichtung nach Anspruch 1, bei der eine bitweise Ver­ schlüsselung durch eine XOR-Verknüpfung eines Operandenbits mit einem Verschlüsselungsparameter für das Operandenbit ver­ wendbar ist,
wobei das erste Untersuchungsergebnis eine Ungleichheit des verschlüsselten niederstwertigen Bits des ersten Operandenre­ gisters mit dem Verschlüsselungsparameter für das Bit umfaßt,
wobei das zweite Untersuchungsergebnis eine Gleichheit des verschlüsselten niederstwertigen Bits des ersten Operandenre­ gisters mit dem Verschlüsselungsparameter für die Stelle um­ faßt, und
wobei der Wert, der in unverschlüsseltem Zustand einer 0 ent­ spricht, gleich einem Verschlüsselungsparameter für eine ent­ sprechende Stelle ist.
2. Device according to claim 1, in which a bit-wise encryption can be used by XORing an operand bit with an encryption parameter for the operand bit,
the first examination result comprising an inequality of the encrypted least significant bit of the first operand register with the encryption parameter for the bit,
wherein the second test result includes an equality of the encrypted least significant bit of the first operand register with the encryption parameter for the location, and
the value that corresponds to a 0 in the unencrypted state is equal to an encryption parameter for a corresponding location.
3. Vorrichtung zum Multiplizieren eines ersten Operanden (A) mit einem zweiten Operanden (B) gemäß einem kryptographischen Booth-Recoding-Algorithmus, mit folgenden Merkmalen:
einem ersten Operandenregister (30) zum Speichern des ersten Operanden (A);
einem zweiten Operandenregister (22) zum Speichern des zwei­ ten Operanden (B);
einem Multiplikationszwischenergebnisregisters (16) zum Spei­ chern eines Multiplikationszwischenergebnisses (P);
einem Addierer (10); und
einer Steuereinrichtung (18) zum Untersuchen eines aktuellen Bits des ersten Operanden und eines um eine Stelle niederwer­ tigen Bits des ersten Operanden unter Berücksichtigung eines Verschlüsselungsparameters für die aktuelle Stelle und eines Verschlüsselungsparameters für die niederwertige Stelle,
wobei, falls die verschlüsselte aktuelle Stelle und die ver­ schlüsselte niederwertige Stelle einen Wert bezüglich der Verschlüsselungsparameter haben, der in unverschlüsseltem Zu­ stand einer logischen "0" entspricht, die Steuereinrichtung (18) angeordnet ist, um den Addierer anzusteuern, um dem Mul­ tiplikationszwischenergebnis einen Wert hinzuzuaddieren, der in unverschlüsseltem Zustand einer logischen "0" entspricht, und um einen Inhalt des Multiplikationszwischenergebnisregis­ ters und des ersten Operandenregisters um eine Stelle zu nie­ derwertigen Bits hin zu verschieben,
wobei, falls die verschlüsselte aktuelle Stelle einen Wert hat, der in unverschlüsseltem Zustand einer logischen "0" entspricht, und falls die verschlüsselte niederwertige Stelle einen Wert hat, der in unverschlüsseltem Zustand einer logi­ schen "1" entspricht, die Steuereinrichtung (18) angeordnet ist, um den Addierer anzusteuern, um dem Multiplikationszwi­ schenergebnis den Wert des zweiten Operanden (B) hinzuzuad­ dieren, und um einen Inhalt des Multiplikationszwischenergeb­ nisregisters und des ersten Operandenregisters um eine Stelle zu niederwertigen Bits hin zu verschieben,
wobei, falls die verschlüsselte aktuelle Stelle einen Wert hat, der in unverschlüsseltem Zustand einer logischen "1" entspricht, und falls die verschlüsselte niederwertige Stelle einen Wert hat, der in unverschlüsseltem Zustand einer logi­ schen "0" entspricht, die Steuereinrichtung (18) angeordnet ist, um von dem Multiplikationszwischenergebnis den zweiten Operanden zu subtrahieren, und um einen Inhalt des Multipli­ kationszwischenergebnisregisters und des ersten Operandenre­ gisters um eine Stelle zu niederwertigen Bits hin zu ver­ schieben, oder
wobei, falls die verschlüsselte aktuelle Stelle des ersten Operanden einen Wert hat, der in unverschlüsseltem Zustand einer logischen "1" entspricht, und falls die verschlüsselte niederwertige Stelle des ersten Operanden einen Wert hat, der in unverschlüsseltem Zustand einer logischen "1" entspricht, die Steuereinrichtung (18) angeordnet ist, um den Addierer anzusteuern, um dem Multiplikationszwischenergebnis einen Wert hinzuzuaddieren, der in unverschlüsseltem Zustand einer "0" entspricht, und um einen Inhalt des Multiplikationszwi­ schenergebnisregisters und des ersten Operandenregisters um eine Stelle zu niederwertigen Bits zu verschieben.
3. Device for multiplying a first operand (A) by a second operand (B) according to a cryptographic Booth recoding algorithm, with the following features:
a first operand register ( 30 ) for storing the first operand (A);
a second operand register ( 22 ) for storing the second operand (B);
an intermediate multiplication result register ( 16 ) for storing an intermediate multiplication result (P);
an adder ( 10 ); and
a control device ( 18 ) for examining a current bit of the first operand and a bit of the first operand that is low by one digit, taking into account an encryption parameter for the current digit and an encryption parameter for the least significant digit,
wherein if the encrypted current digit and the encrypted least significant digit have a value with respect to the encryption parameters which corresponds to a logical "0" in the unencrypted state, the control device ( 18 ) is arranged to drive the adder in order to unite the intermediate multiplication result Add a value which corresponds to a logical "0" in the unencrypted state and to shift a content of the multiplication intermediate result register and the first operand register by one position to bits of no significance,
wherein if the encrypted current digit has a value that corresponds to a logical "0" in the unencrypted state, and if the encrypted least significant digit has a value that corresponds to a logical "1" in the unencrypted state, the control device ( 18 ) is arranged to control the adder, to add the value of the second operand (B) to the intermediate multiplication result and to shift a content of the intermediate multiplication result register and the first operand register by one position to lower-order bits,
wherein if the encrypted current digit has a value that corresponds to a logical "1" in the unencrypted state, and if the encrypted least significant digit has a value that corresponds to a logical "0" in the unencrypted state, the control device ( 18 ) is arranged is to subtract the second operand from the intermediate multiplication result and to shift a content of the multiplication intermediate result register and the first operand register by one position to lower-order bits, or
wherein if the encrypted current position of the first operand has a value that corresponds to a logical "1" in the unencrypted state, and if the encrypted low-order position of the first operand has a value that corresponds to a logical "1" in the unencrypted state Control device ( 18 ) is arranged to control the adder, to add a value to the intermediate multiplication result which corresponds to a "0" in the unencrypted state, and to shift a content of the multiplication intermediate result register and the first operand register by one position to lower-order bits.
4. Vorrichtung nach Anspruch 3,
bei der eine bitweise Verschlüsselung durch XOR-Verknüpfen eines Operandenbits mit einem Verschlüsselungsparameter für das Operandenbit verwendbar ist,
wobei der Wert einer verschlüsselten Stelle dann in unver­ schlüsseltem Zustand einer 0 entspricht, falls der Wert der verschlüsselten Stelle gleich dem Verschlüsselungsparameter für diese Stelle ist,
wobei der Wert, der im unverschlüsselten Zustand einer "0" entspricht, gleich dem Verschlüsselungsparameter ist, und
wobei der Wert einer verschlüsselten Stelle in unverschlüs­ seltem Zustand einer logischen "1" entspricht, falls der Wert ungleich dem Verschlüsselungsparameter für diese Stelle ist.
4. The device according to claim 3,
in which bit-wise encryption by XORing an operand bit with an encryption parameter for the operand bit can be used,
the value of an encrypted position then corresponds to 0 in the unencrypted state if the value of the encrypted position is equal to the encryption parameter for this position,
the value, which corresponds to a "0" in the unencrypted state, is equal to the encryption parameter, and
the value of an encrypted position in the unencrypted state corresponds to a logical "1" if the value is not equal to the encryption parameter for this position.
5. Vorrichtung nach einem der vorhergehenden Ansprüche, bei der in dem ersten Operandenregister (30), in dem zweiten Ope­ randenregister (22) und in dem Multiplikationszwischenergeb­ nisregister (16) verschlüsselte Werte gespeichert sind.5. Device according to one of the preceding claims, in which encrypted values are stored in the first operand register ( 30 ), in the second operand register ( 22 ) and in the multiplication intermediate result register ( 16 ). 6. Vorrichtung nach Anspruch 5, bei der beim Verschieben ei­ ner Stelle in einem Register zunächst einer mit einem Ver­ schlüsselungsparameter für eine Ursprungsstelle verschlüssel­ ter Wert unter Verwendung eines Umverschlüsselungsschlüssels umverschlüsselt wird und dann an eine Zielstelle geschrieben wird, oder ein mit einem Verschlüsselungsparameter für eine Ursprungsstelle verschlüsselter Wert zunächst an die Ziel­ stelle geschoben wird und dann unter Verwendung eines Um­ verschlüsselungsparameters umverschlüsselt wird, wobei der Umverschlüsselungsparameter eine Kombination aus dem Verschlüsselungsparameter für die Ursprungsstelle und dem Verschlüsselungsparameters für die Zielstelle ist.6. The device according to claim 5, wherein when moving egg ner position in a register first one with a ver Encryption key parameters for an origin ter value using an encryption key is encrypted and then written to a destination is, or one with an encryption parameter for a Origin encrypted value first to the destination place is pushed and then using an order encryption parameters is re-encrypted, where the re-encryption parameter is a combination of the encryption parameter for the origin and the Encryption parameter for the destination is. 7. Vorrichtung nach einem der vorhergehenden Ansprüche, bei der der Addierer (10) ein Addierer für verschlüsselte O­ peranden ist, um unter Verwendung verschlüsselter Eingangs­ operanden ein verschlüsseltes Ausgangsergebnis zu liefern, ohne Zwischenergebnisse im Klartext zu verwenden. 7. Device according to one of the preceding claims, wherein the adder ( 10 ) is an adder for encrypted operands in order to deliver an encrypted output result using encrypted input operands without using intermediate results in plain text. 8. Vorrichtung zum Dividieren eines ersten Operanden (A) durch einen zweiten Operanden (B) gemäß einem kryptographi­ schen Restoring-Divisionsalgorithmus, um ein Divisionsergeb­ nis (P) zu erhalten, mit folgenden Merkmalen:
einem ersten Operandenregister (44) zum Speichern des ersten Operanden (A),
einem zweiten Operandenregister (46) zum Speichern des zwei­ ten Operanden (B),
einem Divisionszwischenergebnisregister (42) zum Speichern eines Divisionszwischenergebnisses;
einem Addierer (40);
einer Steuereinrichtung (48) zum Verschieben eines Inhalts des ersten Operandenregisters (44) und des Divisionszwischen­ registers (42) um eine Stelle zu höherwertigen Stellen hin,
wobei die Steuereinrichtung (48) angeordnet ist, um den Ad­ dierer (40) anzusteuern, um den zweiten Operanden von dem Di­ visionszwischenergebnisregister (42) zu subtrahieren, und um das Ergebnis in das Divisionszwischenergebnisregister (42) zu laden,
wobei die Steuereinrichtung (48) ferner angeordnet ist, um unter Verwendung eines Verschlüsselungsparameters einen ver­ schlüsselten Inhalt des Divisionszwischenergebnisregisters zu untersuchen,
wobei, falls ein erstes Untersuchungsergebnis erhalten wird, ein niederstwertiges Bit des ersten Operanden auf einen Wert gesetzt wird, der in unverschlüsseltem Zustand einer logi­ schen "0" entspricht, und der zweite Operand (B) zu dem Divi­ sionszwischenergebnisregister (42) hinzuaddiert wird, und
wobei, falls ein zweites Untersuchungsergebnis erhalten wird, das von dem ersten Untersuchungsergebnis unterschiedlich ist, ein niederstwertiges Bit des ersten Operandenregisters (44) auf einen Wert gesetzt wird, der in unverschlüsseltem Zustand einer "1" entspricht,
wobei das erste Untersuchungsergebnis anzeigt, daß der Inhalt des Divisionszwischenergebnisregisters negativ ist, und wobei das zweite Untersuchungsergebnis anzeigt, daß der Inhalt des Divisionszwischenergebnisregisters (42) positiv ist.
8. Device for dividing a first operand (A) by a second operand (B) according to a cryptographic restoring division algorithm in order to obtain a division result (P), having the following features:
a first operand register ( 44 ) for storing the first operand (A),
a second operand register ( 46 ) for storing the second th operand (B),
an intermediate division result register ( 42 ) for storing an intermediate division result;
an adder ( 40 );
a control device ( 48 ) for shifting a content of the first operand register ( 44 ) and the division between registers ( 42 ) by one position to higher-order positions,
wherein said control means is arranged (48) to control the ad decoder (40) for subtracting the second operand from the Di vision intermediate result register (42), and to load the result into the Division intermediate result register (42),
the control device ( 48 ) being further arranged to examine an encrypted content of the divisional interim results register using an encryption parameter,
if, if a first examination result is obtained, a least significant bit of the first operand is set to a value which corresponds to a logical "0" in the unencrypted state, and the second operand (B) is added to the intermediate division result register ( 42 ), and
if, if a second examination result is obtained which is different from the first examination result, a least significant bit of the first operand register ( 44 ) is set to a value which corresponds to a "1" in the unencrypted state,
wherein the first test result indicates that the content of the divisional interim result register is negative, and wherein the second test result indicates that the content of the divisional interim result register ( 42 ) is positive.
9. Vorrichtung zum Dividieren eines ersten Operanden (A) durch einen zweiten Operanden (B) gemäß einem kryptographi­ schen Non-Restoring-Divisionsalgorithmus, um ein Divisionser­ gebnis (P) zu erhalten, mit folgenden Merkmalen:
einem ersten Operandenregister (44) zum Speichern des ersten Operanden (A),
einem zweiten Operandenregister (46) zum Speichern des zwei­ ten Operanden (B),
einem Divisionszwischenergebnisregister (42) zum Speichern eines Divisionszwischenergebnisses;
einem Addierer (40);
einer Steuereinrichtung (48) zum Verschieben eines Inhalts des ersten Operandenregisters (44) und des Divisionszwischen­ ergebnisregisters (42) um eine Stelle zu höherwertigen Stel­ len hin, wobei die Steuereinrichtung (48) angeordnet ist, um, falls ein mit einem Verschlüsselungsparameter verschlüsselter Inhalt des Divisionszwischenregisters negativ ist, den zwei­ ten Operanden (B) zu dem Divisionszwischenergebnisregister hinzuzuaddieren, und
wobei, falls ein verschlüsselter Inhalt des Divisionszwi­ schenergebnisregisters in unverschlüsseltem Zustand positiv ist, den zweiten Operanden (B) von dem Divisionszwischener­ gebnisregister zu subtrahieren.
9. Device for dividing a first operand (A) by a second operand (B) according to a cryptographic non-restoring division algorithm in order to obtain a division result (P), having the following features:
a first operand register ( 44 ) for storing the first operand (A),
a second operand register ( 46 ) for storing the second th operand (B),
an intermediate division result register ( 42 ) for storing an intermediate division result;
an adder ( 40 );
a control device ( 48 ) for shifting a content of the first operand register ( 44 ) and the divisional intermediate result register ( 42 ) by one position to more significant positions, the control device ( 48 ) being arranged to, if a content of the Intermediate division register is negative to add the second operand (B) to the division intermediate result register and
wherein, if an encrypted content of the divisional intermediate result register is positive in an unencrypted state, subtract the second operand (B) from the divisional intermediate result register.
10. Vorrichtung nach Anspruch 8 oder 9, bei der eine negative Zahl durch Vorzeichenbit und einen Be­ trag dargestellt ist, wobei ein höchstwertiges Bit einer Zahl als Vorzeichenbit fungiert.10. The device according to claim 8 or 9, where a negative number by sign bit and a Be is shown, where a most significant bit of a number acts as a sign bit. 11. Vorrichtung nach Anspruch 10,
bei der eine bitweise Verschlüsselung durch XOR-Verknüpfen eines Operandenbits mit einem Verschlüsselungsparameter für das Operandenbit verwendbar ist,
wobei der Inhalt des Divisionszwischenergebnisregisters dann als negativ erkannt wird, wenn ein verschlüsseltes höchstwer­ tiges Bit des Divisionszwischenergebnisregisters ungleich ei­ nem Verschlüsselungsparameter für das Bit ist, und
wobei ein Inhalt des Divisionszwischenergebnisregisters dann als positiv erkannt wird, wenn ein verschlüsseltes höchstwer­ tiges Bit des Divisionszwischenergebnisregisters gleich einem Verschlüsselungsparameter für die Stelle ist.
11. The device according to claim 10,
in which bit-wise encryption by XORing an operand bit with an encryption parameter for the operand bit can be used,
wherein the content of the divisional interim result register is recognized as negative if an encrypted most significant bit of the divisional interim result register is not equal to an encryption parameter for the bit, and
wherein a content of the divisional interim result register is recognized as positive if an encrypted most significant bit of the divisional interim result register is equal to an encryption parameter for the location.
12. Vorrichtung nach einem der Ansprüche 8 bis 11,
bei der Werte in Registern verschlüsselt gespeichert sind, wobei bei einem Verschieben einer Stelle in einem Register zunächst einer mit einem Verschlüsselungsparameter für eine Ursprungsstelle verschlüsselter Wert unter Verwendung eines Umverschlüsselungsschlüssels umverschlüsselt wird und dann an eine Zielstelle geschrieben wird, oder ein mit einem Ver­ schlüsselungsparameter für eine Ursprungsstelle verschlüssel­ ter Wert zunächst an die Zielstelle geschoben wird und dann unter Verwendung eines Umverschlüsselungsparameters um­ verschlüsselt wird,
wobei der Umverschlüsselungsparameter eine Kombination aus dem Verschlüsselungsparameter für die Ursprungsstelle und dem Verschlüsselungsparameters für die Zielstelle ist.
12. The device according to one of claims 8 to 11,
in which values are stored encrypted in registers, whereby when a position in a register is shifted, a value encrypted with an encryption parameter for an origin is first re-encrypted using a re-encryption key and then written to a destination, or one with an encryption parameter for a Value encrypted at the origin is first pushed to the destination and then encrypted using a re-encryption parameter,
wherein the re-encryption parameter is a combination of the encryption parameter for the origin and the encryption parameter for the destination.
13. Vorrichtung nach einem der Ansprüche 8 bis 12, bei der der Addierer (10) ein Addierer für verschlüsselte O­ peranden ist, um unter Verwendung verschlüsselter Eingangs­ operanden ein verschlüsseltes Ausgangsergebnis zu liefern, ohne Zwischenergebnisse im Klartext zu verwenden.13. The device according to any one of claims 8 to 12, wherein the adder ( 10 ) is an adder for encrypted operands in order to provide an encrypted output result using encrypted input operands without using intermediate results in plain text.
DE2002101442 2002-01-16 2002-01-16 Device and method for multiplying or dividing a first operand by or by a second operand Expired - Fee Related DE10201442C1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE2002101442 DE10201442C1 (en) 2002-01-16 2002-01-16 Device and method for multiplying or dividing a first operand by or by a second operand
AU2003235626A AU2003235626A1 (en) 2002-01-16 2003-01-10 Device and method for multiplying or dividing a first operand by a second operand
PCT/EP2003/000182 WO2003060693A2 (en) 2002-01-16 2003-01-10 Device and method for multiplying or dividing a first operand by a second operand
TW92100883A TW200302430A (en) 2002-01-16 2003-01-16 Device and method for multiplying or dividing a first operand by a second operand

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE2002101442 DE10201442C1 (en) 2002-01-16 2002-01-16 Device and method for multiplying or dividing a first operand by or by a second operand

Publications (1)

Publication Number Publication Date
DE10201442C1 true DE10201442C1 (en) 2003-07-31

Family

ID=7712269

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2002101442 Expired - Fee Related DE10201442C1 (en) 2002-01-16 2002-01-16 Device and method for multiplying or dividing a first operand by or by a second operand

Country Status (4)

Country Link
AU (1) AU2003235626A1 (en)
DE (1) DE10201442C1 (en)
TW (1) TW200302430A (en)
WO (1) WO2003060693A2 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4409834A1 (en) * 1993-03-22 1994-09-29 Mitsubishi Electric Corp Multiplication circuit and division circuit

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5479512A (en) * 1991-06-07 1995-12-26 Security Dynamics Technologies, Inc. Method and apparatus for performing concryption
DE50015839D1 (en) * 1999-12-02 2010-02-25 Infineon Technologies Ag
CN1192330C (en) * 2000-01-18 2005-03-09 因芬尼昂技术股份公司 Microprocessor system with encoding
DE50014893D1 (en) * 2000-01-18 2008-02-14 Infineon Technologies Ag Microprocessor arrangement and method for operating a microprocessor arrangement

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4409834A1 (en) * 1993-03-22 1994-09-29 Mitsubishi Electric Corp Multiplication circuit and division circuit

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KULISCH, Sandra u.a.: Security in "Java" Januar 2000, insbes. Kap. 3.2.2.3, (online) *

Also Published As

Publication number Publication date
WO2003060693A3 (en) 2004-01-15
AU2003235626A8 (en) 2003-07-30
TW200302430A (en) 2003-08-01
AU2003235626A1 (en) 2003-07-30
WO2003060693A2 (en) 2003-07-24

Similar Documents

Publication Publication Date Title
DE60314584T2 (en) Masking of data decomposed or factored in a residual class system
DE2843583C2 (en) Method for access-secure message traffic over an unsecured message transmission channel
DE69826963T2 (en) Device for modular inversion for securing information
DE60302512T2 (en) Feistel encryption method and apparatus with protection against DPA attacks
WO2003060691A2 (en) Arithmetic unit and method for carrying out an arithmetic operation with coded operands
DE10141460A1 (en) Power residue calculation unit using a Montgomery algorithm
DE10219158B4 (en) Device and method for calculating a result of a modular multiplication
EP1543408A1 (en) Device and method for calculating a multiplication involving a shifting of the multiplicand
EP1999571B1 (en) Method and device for reducing a polynomial in a binary finite field, in particular for a cryptographic application
DE2310553A1 (en) DEVICE FOR PERFORMING ARITHMETIC AND LOGICAL OPERATIONS
WO2013004490A1 (en) Method for generating a random output bit sequence
DE102018116572A1 (en) PROTECTION AGAINST SIDE CHANNEL ATTACKS
EP1576463A2 (en) Modular multiplication with parallel calculation of look-ahead parameters
DE10201442C1 (en) Device and method for multiplying or dividing a first operand by or by a second operand
DE60316342T2 (en) MULTIPLIER WITH ADDENDUM TABLES
EP1474741B1 (en) System and method for calculating a result from a division
DE10219164B4 (en) Device and method for calculating an integer quotient
DE10219161A1 (en) Device and method for converting a term
EP1446711B1 (en) Shifting device and shifting method
EP1449066B1 (en) Carry-save multiplier
DE10201450B4 (en) Carry-skip adder for encrypted data
EP1466245B1 (en) Arithmetic-logic unit and method for combining a first operand with a second operand
WO2000019656A1 (en) Encoding method for carrying out cryptographic operations
DE102010039273B4 (en) Cryptography processor, smart card and method of calculating a result of exponentiation
DE102016115609A1 (en) Module and method for the reliable calculation of mathematical operations

Legal Events

Date Code Title Description
8100 Publication of the examined application without publication of unexamined application
8304 Grant after examination procedure
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee