WO2003093970A2 - Vorrichtung und verfahren zum berechnen eines ganzzahligen quotienten - Google Patents

Vorrichtung und verfahren zum berechnen eines ganzzahligen quotienten Download PDF

Info

Publication number
WO2003093970A2
WO2003093970A2 PCT/EP2003/004427 EP0304427W WO03093970A2 WO 2003093970 A2 WO2003093970 A2 WO 2003093970A2 EP 0304427 W EP0304427 W EP 0304427W WO 03093970 A2 WO03093970 A2 WO 03093970A2
Authority
WO
WIPO (PCT)
Prior art keywords
module
reduction
multiplier
information
order
Prior art date
Application number
PCT/EP2003/004427
Other languages
English (en)
French (fr)
Other versions
WO2003093970A3 (de
Inventor
Wieland Fischer
Jean-Pierre Seifert
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 AU2003224137A priority Critical patent/AU2003224137A1/en
Publication of WO2003093970A2 publication Critical patent/WO2003093970A2/de
Publication of WO2003093970A3 publication Critical patent/WO2003093970A3/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/722Modular multiplication

Definitions

  • the present invention relates to computational algorithms, and in particular to computational algorithms that are required for cryptographic applications.
  • CTR Chinese Remainder Theorem
  • a problem with many methods is therefore the "doubling" of the so-called modular multiplication, which is a central operation in cryptographic calculations.
  • a modular exponentiation can be broken down into many modular multiplications, ie into an operation in which a product of a first operand A and a second operand B in a residual class with respect to a module N.
  • the operands A and B each have 2 n bits
  • arithmetic units with a length of 2 n bits are typically used Length is referred to as long number arithmetic, in contrast to, for example, classic 8-, 16-, 32- or 64-bit architectures, which are used, for example, for PC or workstation processors.
  • the operation T mod N leads to a residue R if a term T is reduced with respect to a module N.
  • the operation T div N supplies the integer quotient with respect to the module N, so that the term T from Q x N + R is reconstructable.
  • the result of the DIV operation that is, the integer quotient
  • the result of the DIV operation is normally not required and is also not calculated.
  • the concept described above is based on also using the DIV information, ie the integer quotient. This means that there can also be other technical applications in which not only the result of the MOD operation, ie the rest, is required, but also where the integer quotient, ie the result of the DIV operation, is required.
  • Montgomery multiplication A known, efficient and often used way to calculate modular multiplication is known in the art as Montgomery multiplication and e.g. This is described, for example, in the "Handbook of Applied Cryptography", Menezes, van Oorschot, Vanstone, CRC Press, pages 600-603.
  • the Montgomery reduction is a technique which allows the modular multiplication to be implemented efficiently without the classic modular reduction step
  • Montogomery reduction the division operation is expressed by simple shift operations.
  • a disadvantage of the Montgomery multiplication via Z / NZ or GF (2 n ) is the fact that although the hardware-poorly implementable division operation for modular reduction is bypassed by shift operations, no look-ahead methods or look-ahead methods are used to accelerate the modular multiplication operation in terms of hardware.
  • DE 3631992 C2 discloses a method in which the modular multiplication via Z / NZ can be accelerated using a multiplication look-ahead method and using a reduction look-ahead method.
  • the method described in DE 3631992 C2 is also referred to as the ZDN method and is described in more detail with reference to FIG. 6.
  • the global variables M, C and N are initialized. The aim is to calculate the following modular multiplication:
  • M is called the multiplier
  • C is called the multiplicand
  • Z is the result of modular multiplication
  • N is the module.
  • Various local variables are then initialized, which do not need to be discussed at first.
  • Two look-ahead procedures are then used.
  • a multiplication shift value s z and a multiplication look-ahead parameter a are calculated (910) using various look-ahead rules.
  • the current content of the Z register is then subjected to a left shift operation by s z digits (920).
  • a reduction look-ahead method GEN_Mod_LA (930) is carried out essentially in parallel to achieve a Calculate reduction shift value s N and a reduction parameter b.
  • the current content of the module register, that is N is shifted by s N places in order to generate a shifted module value N '.
  • the central three-operand operation of the ZDN method takes place in a step 950.
  • the intermediate result Z 'after step 920 is added to the multiplicand C, which is multiplied by the multiplication look-ahead parameter a, and to the shifted module N', which is multiplied by the reduction look-ahead parameter b.
  • the look-ahead parameters a and b can have a value of +1, 0 or -1.
  • the multiplication look-ahead parameter a is +1 and the reduction look-ahead parameter b is -1, so that the multiplicand C is added to a shifted intermediate result Z ', and the shifted module N 'Subtracted from this, a will have a value equal to 0 if the multiplication look-ahead method would allow more than a preset number of individual left shifts, i.e. if s z is greater than the maximum permissible value of s z , which is also referred to as k.
  • a is 0 and that Z 'is still quite small due to the preceding modular reduction, i.e. the preceding subtraction of the shifted module, and in particular is smaller than the shifted module N', no reduction has to take place, so that the parameter b is 0.
  • Steps 910 to 950 are carried out until all positions of the multiplicand have been processed, that is until m is 0, and also until a parameter n is 0, which indicates whether the shifted module N 'is still larger than the original module N is, or whether, despite the fact that all positions of the multiplicand have already been processed, further reduction steps must be carried out by subtracting the module from Z. Finally, it is determined whether Z is less than 0. If this is the case, in order to achieve a final reduction, the module N must be added to Z so that the correct result Z of the modular multiplication is finally obtained.
  • the modular multiplication by means of the ZDN method is ended in a step 960.
  • the multiplication shift value s z and the multiplication parameter a which are calculated in step 910 by the multiplication look-ahead algorithm, result from the topology of the multiplier and from the look-up rules used, which are described in DE 3631992 C2.
  • the ZDN method attributes the modular multiplication to a three-operand addition (block 950 in FIG. 6), the multiplication look-ahead method and the associated process to increase the computing time efficiency Reduction foresight methods are used. Compared to the Montgomery reduction for Z / NZ, a computing time advantage by a factor of the order of 3 can therefore be achieved.
  • the integer quotient is useful for certain applications, one of which, as described above, is to efficiently perform modular multiplication with numbers of a particular length on a half-length arithmetic unit ,
  • the object of the present invention is to create a concept for calculating an integer quotient that can be implemented easily and efficiently.
  • the present invention is based on the finding that in processors for calculating the remainder Z of a product from a multiplier and a multiplicand - and optionally from an addition of this product with a third operand multiplied by the factor 2 n - which multiply the bits of the Sequentially process or "scan" the multiplier in several processing steps, the integer quotient can be extracted without intervention in the arithmetic unit itself and furthermore without any or minimal intervention in the control part which controls the arithmetic unit.
  • the integer quotient i.e. the result of the DIV operation
  • the integer quotient is obtained using a processor for calculating the remainder of a term relating to a module, such that in each processing step in which the processor calculates an intermediate result reduced with respect to the module, reduction information on the one hand and ordering information on the other hand, which relate to positions of the refer to integer quotients in the respective
  • Processing step are affected, are also logged. Then after the multiplier bits are processing steps are processed, the reduction information and ordering information logged are evaluated by the respective steps in order to then obtain the integer quotient without complex arithmetic operations.
  • protocol registers are kept in parallel with the processing of the multiplier bits by the processing device, wherein bits of a specific order, which is determined by the order information, are set or not set using the reduction information after each processing step. If two or more such protocol registers are used, then the evaluation device is able to obtain the integer quotient by simply adding or subtracting the protocol register after all the multiplier bits have been processed.
  • the concept according to the invention is particularly advantageous in that no information is required that goes beyond information that is already output by such a processing device for calculating the modulo operation.
  • the integer quotient is thus obtained to a certain extent “free of charge” (in particular with regard to the computing time) and without interfering with the arithmetic unit of the processing device. Only a logging device must be provided that extracts the required reduction information or order information from the control part at the end of each processing step.
  • cryptographic arithmetic units are typically long-numbered Arithmetic units are based on certain operations such.
  • the method according to the invention is also advantageous in that it also requires little computation time, which is particularly important when complex cryptographic algorithms are to be calculated, with processors which, owing to the fact that their chip area is limited when smart cards are again considered, have limited computing and storage resources.
  • FIG. 6 shows a detailed flow diagram of the known ZDN algorithm.
  • FIG. 1 shows a block diagram of a device according to the invention for calculating an integer quotient of a term T with respect to a module N, the term having a product of a binary multiplier M and a binary multiplicand C.
  • the device comprises a processing device 10 which is divided into an arithmetic unit 10a and
  • Control part 10b broken down.
  • the arithmetic unit typically consists of a long number adder for two or more operands, while the control part 10b is designed to control the arithmetic unit so that it processes the multiplier bits sequentially and finally, when all multiplier bits have been processed, the result Z of the modular reduction of the Terms, which has the product C • M, delivers.
  • the order information can correspond directly to the order of the multiplier bits considered in one step. If only a multiplication look-ahead algorithm is used, several bits of the multiplier are considered and processed in one processing step. In this case, the ordering information will depend on the multiple bits of the multiplier. In the case of coupled multiplication look-ahead algorithms and reduction look-ahead
  • a simple multiplication algorithm which is also known as a “textbook algorithm”, is shown below with reference to FIG. 2.
  • This algorithm receives as input the module N, the multiplicand C, which is definitely smaller than the module N, and the multiplier M, which consists of binary multiplier bits M 0 (lsb) to M m - ⁇ (msb) and is greater than 0.
  • the multiplier i is ordered
  • the Z register which acts as an intermediate result register and ultimately as a final result register during processing, is also initialized (20), and a step 21 is then used to examine whether the bit of the multiplier just considered, ie Mi is 0 or 1.
  • the bit is 0, only a multiplication by a factor of 2 or a shift by one position in the Z register is carried out (22a If, on the other hand, the bit is 1, the content of the register is shifted to the left by one position, which corresponds to a multiplication by 2, and, as can be seen from a block 22b, the multiplicand C is also added.
  • the modular reduction takes place by first examining in a stage 23 whether the content of the intermediate result register Z is greater than or equal to N. If this question is answered in the affirmative, the module N is subtracted from the intermediate result register Z for the first time (24). Then it is examined again whether the current content of the intermediate result register Z is greater than or equal to N is (25).
  • module N is subtracted again (26). This procedure is repeated until i equals 0, which is checked in block 27. If the question is answered with yes, the algorithm has ended. If, on the other hand, this question is answered with no, i is decremented by "1" in a block 28, and a further iteration loop is carried out using blocks 21 to 27.
  • the logging device comprises two auxiliary registers Q and Q 'for expanding the known “textbook algorithm” shown in FIG. 2, which are initialized in a step 20 ′.
  • bits of order i in the first auxiliary register Qi or in the second auxiliary register Q'i are written with "0".
  • the reduction information here consists of the" zeros "which are entered at positions i of the register determined by the order information. If the intermediate result Z was less than N, as was determined in block 23, no module subtraction was carried out, which is immediately apparent expresses that the corresponding auxiliary register bits are set to 0.
  • step 24 If, on the other hand, module subtraction (step 24) is carried out, bit i of the first auxiliary register Q is set to 1, while the bit of the second auxiliary register Q'i is set to 0, as seen in block 30b. If a second module subtraction is carried out (block 26 of FIG. 3), both the bit i of the first auxiliary register Q and the bit i of the second auxiliary register Q 'are set to 1, as can be seen by a block 30c. This procedure is carried out for each processing step until it has been determined in block 27 that i is 0.
  • the evaluation device 14 of FIG. 1 then becomes active in order to add the two registers Q and Q ′, as is shown in a block 32, in order finally to obtain the integer quotient Q as a result.
  • the functionality of the logging device is thus implemented by blocks 30a, 30b, 30c, while the functionality is implemented by evaluation device 14 of FIG. 1 by block 32 in FIG. 3.
  • the algorithm shown in FIG. 3 can simply be expanded to not only process the term C x M, but also a term C x M + D x 2 n . This can be achieved simply in that in the initialization step 20 ' Intermediate result Z is not initialized to 0, but is initialized to D. For this reason, the operation performed by the circuit shown in FIG. 3 is called the initialization MMD operation if the intermediate result register Z is initialized to a value D before the first iteration step.
  • MMD stands for MultModDiv to indicate that the algorithm shown in FIG. 3 delivers both the modularly reduced result of the term and the integer quotient of the term C x M + D x 2 n , where D equals 0 usual multiplication results.
  • FIG. 4 shows a somewhat compressed representation of FIG. 6, namely the known ZDN algorithm, which has been explained above.
  • An initialization block 40 shows the quantities i, Z and c which are important for the present invention. Again, Z can be initialized to either 0 or D to perform either an MMD operation or an initialization MMD operation.
  • the ZDN device 910, 920, 930 of FIG. 6 generates a multiplication shift value s z , which is usually always greater than 0, a multiplier bit value s M , which indicates how many multiplier bits have been processed in a look-ahead step, the reduction shift value s N , and the multiplication look-ahead parameter a and the reduction look-ahead parameter b.
  • the multiplier bit ordinal number i is reduced by s M after each step.
  • the size c specifies the position of a buffer for the module with the comma of the module, i.e. the LSB of the original module. The size c is changed by c + s N after each step.
  • a step 940 the module shift then takes place, which can be represented by multiplying the old content of the module register N by a factor 2 S N.
  • Step 950 then takes place with the 3-operand addition already described with reference to FIG. 6, which continues until i is 0 and c is also 0 (block 42). If this is the case, a step 44 examines whether the intermediate result register Z is less than 0. If this is the case, the module N is added again (block 46), since the rest of the modular multiplication, that is to say Z, must be greater than 0 by definition. If, on the other hand, block 42 is answered with yes, where is a further iteration carried out in order to process one or more multiplier bits, depending on the look-ahead property of the multiplier.
  • the ZDN processor designated by a block 910, 920, 930 again supplies s z , s N , a and b. Thereupon, the quotient order value j initialized in the initialization block 40 ', which has been initialized to m, is reduced in a block 50 by the difference between the multiplication shift value s z and the reduction shift value s N.
  • the multiplication look-ahead algorithm which is responsible for the multiplication shift value s z , determines that the intermediate result is to be shifted upwards, that is to say to higher-order bits, then this becomes clear with regard to the ordering information of the logging device is represented by block 50, taking into account that less significant bits of the quotient are affected.
  • the order of a quotient bit in the current step is therefore (s z - s N ) lower than the order of the corresponding quotient register bit from the previous step. If, on the other hand, there is a positive reduction shift value s N , this means that the content of the module register N is greater by a factor of 2 S N than in the previous step.
  • the reduction information is shown in a table in a block 52 of FIG. 5.
  • the logging device again uses two auxiliary registers Q and Q ', the bit values in the two registers depending on the reduction parameter b. If b has been calculated to be 0 by the ZDN facility, no reduction takes place at all. Therefore, the order j bits of both registers Q and Q 'are set to 0. If, on the other hand, the reduction parameter b is "1", a module was added to the current intermediate result in the 3-operand operation. This is taken into account in block 52 in that the corresponding bit j of the second auxiliary register Q 'is 1 is set while the corresponding bit of the first auxiliary register is set to 0.
  • a module is subtracted, ie actually reduced, which is represented by a reduction parameter of "-1"
  • this is reflected in the two auxiliary registers going that the corresponding bit j of the first auxiliary register Q 'is set to 1, while the corresponding bit j of the second auxiliary register Q' is set to 0.
  • a correction is carried out in a manner similar to the case where b is 1. If it was found in block 44 that the intermediate result Z after the processing of all multiplier bits was less than 0, this means that a reduction has occurred too much. Z is therefore increased by N in block 46. This is taken into account in the reduction information in that in the block 54 the lowest bit Q 0 of the second auxiliary register Q 'is set to 1.
  • the evaluation device 14 of FIG. 1 finally becomes active in that it subtracts the second auxiliary register Q 'from the first auxiliary register Q (block 56) in order to obtain the integer quotient Q in binary form.
  • the subtraction in block 56 is to be understood in such a way that the register Q comprises a count for all module subtractions actually carried out in the 3-operand operation, this number being too high if Z becomes less than 0 (block 44) , so that the content of the second auxiliary register Q 'and in particular the least significant bit, which is set in block 54, must be subtracted again.
  • the reduction parameter b is 1. No module is subtracted here, but a module is added.
  • the concept according to the invention is particularly suitable for a hardware implementation. This is advantageous because a software-technical implementation of the MMD command costs performance and administration effort.
  • the concept according to the invention replaces such a software-technical implementation.
  • the concept presented can be inexpensively integrated into existing crypto processors, only VHDL changes of the crypto controller being necessary here in order to insert both the logging device and the evaluation device into the existing processing device.
  • the usually existing modular multiplication command can thus be easily and less error-prone to result of the DIV operation, i.e. the integer quotient.

Abstract

Die Verarbeitungseinrichtung ist ausgebildet, um in einem Verarbeitungsschritt ein bezüglich des Moduls reduziertes Zwischenergebnis (Z) zu berechnen, das von einem oder mehreren Bits Bits des binären Multiplikators abhängt, die in dem Verarbeitungsschritt betrachtet werden. Die Vorrichtung umfasst ferner eine Protokollierungseinrichutung zum Protokollieren von Reduktionsinformationein den jeweiligen Verarbeitungsschritten und von Ordnungsinformationen über durch eine oder mehrere durch den jeweiligen Verarbeitungsschritt betroffene Stellen des ganzzahligen Quotienten, sowie eine Auswertungseinrichtung (14) zum Auswerten der Ordnungsinformationen und der Reduktionsinformationen aus den Verarbeitungsschritten, um den ganzzahligen Quotienten (Q) zu erhalten. Durch Mit-Protokollieren der Reduktionsinformationen und der Ordnungsinformationen in den Verarbeitungsschritten kann ein üblicherweise Hardware-mässig implementierter Befehl zur Durchführung einer modularen Multiplikation dahin gehend ergänzt werden, um auch das Ergebnis der DIV-Operation, also den ganzzahligen Quotienten, auszugeben.

Description

Beschreibung
Vorrichtung und Verfahren zum Berechnen eines ganzzahligen Quotienten
Die vorliegende Erfindung bezieht sich auf Rechenalgorithmen und insbesondere auf Rechenalgorithmen, die für kryptographische Anwendungen benötigt werden.
Insbesondere in der Public-Key-Kryptographie, jedoch auch in anderen Kryptographiegebieten, wachsen die Schlüssellängen stetig. Dies ist darin begründet, daß auch die Sicherheitsanforderungen an solche kryptographische Algorithmen immer mehr zunehmen. Anhand des RSA-Verfahrens als Vertreter eines asym- metrischen Kryptographiekonzepts, also eines Public-Key-
Verfahrens, nimmt die Sicherheit gegenüber sogenannten Brute- Force-Angriffen mit der verwendeten Schlüssellänge zu. Brute- Force-Angriffe sind Angriffe auf einen kryptographischen Algorithmus, bei dem durch Durchprobieren sämtlicher Möglich- keiten auf einen Schlüssel geschlossen werden soll. Es ist unmittelbar einsichtig, daß mit zunehmender Schlüssellänge die Zeit, die theoretisch für einen Brute-Force-Angriff benötigt wird, um alle Möglichkeiten durchzuprobieren, stark ansteigt.
In diesem Zusammenhang sei angemerkt, daß zu früheren Zeiten RSA-Anwendungen mit Schlüssellängen von 512 Bits als ausreichend angesehen wurden. Aufgrund technischer und mathematischer Fortschritte der „Gegenseite" wurden dann die Schlüs- seilängen für typische RSA-Anwendungen auf 1024 Bits erhöht. Inzwischen wird von manchen Seiten die Ansicht vertreten, daß auch diese Schlüssellänge nicht ausreichend ist, so daß RSA- Schlüssellängen von 2048 Bits angestrebt werden.
Wenn andererseits existierende kryptographische Coprozessoren, wie z. B. auf SmartCards, betrachtet werden, so ist zu sehen, daß selbstverständlich der Wunsch besteht, auch RSA- Anwendungen mit beispielsweise 2048 Bits Schlüssellängen auf kryptographischen Schaltungen laufen zu lassen, die eigentlich nur für Schlüssellängen von z. B. 1024 Bits entwickelt' worden sind. So ist es gerade ein Kennzeichen von arithmeti- sehen Coprozessoren für existierende SmartCard-Anwendungen, daß sie für eine feste Bitlänge entwickelt worden sind, die nicht für die neuesten Sicherheitsanforderungen geeignet sind, d. h. zu klein sind. Dies führt dazu, daß beispielsweise ein 2048-Bit-RSA-Algorithrαus auf 1024 Bit-Coprozessoren nicht effizient gehandhabt werden kann. Für RSA-Anwendungen ist beispielsweise der Chinesische Restsatz (CRT; CRT = Chinese Remainder Theorem) bekannt, bei dem eine modulare Expo- nentiation mit großer Schlüssellänge in zwei modulare Exponentiationen mit halb so großer Schlüssellänge zerlegt wird, wonach die Ergebnisse der beiden modularen Exponentiationen halber Länge entsprechend zusammengefaßt werden.
In jüngster Zeit hat sich herausgestellt, daß der chinesische Restsatz besonders anfällig gegenüber DFA-Angriffen (DFA = Differential Fault Analysis) ist.
Ein Problem bei vielen Verfahren ist daher das „Aufdoppeln" der sogenannten modularen Multiplikation, die eine zentrale Operation in kryptographischen Berechnungen ist. So kann eine modulare Exponentiation in viele modulare Multiplikationen zerlegt werden, d. h. in eine Operation, bei dem ein Produkt eines ersten Operanden A und eines zweiten Operanden B in einer Restklasse bezüglich eines Moduls N berechnet wird. Wenn die Operanden A und B jeweils 2 n Bits haben, so werden typi- scherweise Rechenwerke verwendet, die eine Länge von 2 n Bits haben. Diese Rechenwerke werden aufgrund ihrer hohen Länge als Langzahlrechenwerke bezeichnet, im Gegensatz zu beispielsweise klassischen 8-, 16-, 32- oder 64-Bit- Architekturen, die z. B. für PC- oder Workstation-Prozessoren eingesetzt werden. Wünsche bestehen daher dahingehend, eine modulare Multiplikation A * B mod N mit Zahlen A, B und N der Bit-Länge 2 n auf einem n-Bit-Rechenwerk auszuführen. Dies ist sehr zeitaufwendig, da die Zahlen A, B, N, ... immer nur bruchstückweise ge- laden werden können, weshalb konventionelle Methoden, sofern sie nicht gänzlich versagen, organisatorisch aufwendig und fehleranfällig sind. In der Technik gibt es mehrere Verfahren, mit denen dieses Problem bisher gelöst worden ist. Diese Verfahren sind unter dem Stichwort Montgomery-Multiplikation, normale Multiplikation, z. B. mit Karatsuba-Ofman und späterer Reduktion, wie z. B. Barret-Reduktion, bekannt.
Ein weiteres Konzept, bei dem eine Montgomery-Rechnung in einem „CRT-Fenster" verwendet wird, ist in P. Pailler, „Low- cost double size modular exponentiation or how to Stretch y- our cryptocoprocessor" dargelegt.
Sämtliche derartigen Konzepte sind aufwendig hinsichtlich der Rechenzeit und der Datenorganisation und daher nicht immer effizient.
In der am gleichen Tag eingereichten deutschen Patentanmeldung mit dem Titel „Vorrichtung und Verfahren zum Berechnen eines Ergebnisses einer modularen Multiplikation", wird ein Konzept beschrieben, bei dem eine modulare Multiplikation für Operanden von 2 n Bits in mehrere sogenannte MMD-Operationen umgesetzt werden, für die Operanden der halben Länge, also mit n Bits, ausreichend sind. Eine MMD-Operation liefert neben dem Rest, der sich durch A x B mod N ergibt, auch das Er- gebnis der entsprechenden ganzzahligen Division, d. h. der DIV-Operation, wobei dieses Ergebnis auch als ganzzahliger Quotient Q bezeichnet ist.
Allgemein führt die Operation T mod N zu einem Rest R, wenn ein Term T bezüglich eines Moduls N reduziert wird. Die Operation T div N liefert dagegen den ganzzahligen Quotienten hinsichtlich des Moduls N, so daß der Term T aus Q x N + R rekonstruierbar ist. Die MMD-Operation (MMD = MultModDiv) dient daher einer Umrechnung eines beliebigen Ter s T in einen ganzzahligen Quotienten Q und einen Rest R bezüglich eines Moduls N.
In der üblichen modularen Arithmetik, die für Kryptographietechniken verwendet wird, wird normalerweise das Ergebnis der DIV-Operation, also der ganzzahlige Quotient nicht benötigt und auch nicht berechnet. Das oben beschriebenen Konzept ba- siert jedoch darauf, auch die DIV-Information, also den ganzzahligen Quotienten zu verwerten. So können auch andere Anwendungen in der Technik existieren, bei denen nicht nur das Ergebnis der MOD-Operation, also der Rest, benötigt wird, sondern bei denen auch der ganzzahlige Quotient, also das Er- gebnis der DIV-Operation benötigt wird.
Eine bekannte, effiziente und oft verwendete Möglichkeit, um die modulare Multiplikation zu berechnen, ist in der Technik als Montgomery-Multiplikation bekannt und z. B. im „Handbook of Applied Cryptography", Menezes, van Oorschot, Vanstone, CRC Press, Seiten 600-603, beschrieben. Die Montgomery- Reduktion ist eine Technik, die eine effiziente Implementation der modularen Multiplikation erlaubt, ohne daß der klassische modulare Reduktionsschritt explizit ausgeführt wird. Allgemein gesagt wird bei der Montogomery-Reduktion die Divisionsoperation durch einfache Verschiebungsoperationen ausgedrückt .
Mittlerweile ist auch eine Erweiterung der Montgomery- Multiplikationsoperation auf den elliptischen Körper GF(2n) bekannt. Diese Erweiterung ist in „Montgomery Multiplication in GF(2k)", Koc, Azar, Designs, Codes and Cryptography, Bd.
14, 1998, S. 57 - 69, beschrieben. Diese Erweiterung ist ferner in „A Scalable and Unified Multiplier Architecture for Finite Fields Z/NZ and GF(2n)", Erkay Savas u. a., Crypto- graphic Hardware and Embedded Systems (CHESS 2000), S. 281 -
289, Springer Lecture Notes, beschrieben. Nachteilig an der Montgomery-Multiplikation über Z/NZ oder GF(2n) ist die Tatsache, daß zwar die hardwaremäßig schlecht implementierbare Divisionsoperation zur modularen Reduktion durch Verschiebungsoperationen umgangen wird, aber keine Look-Ahead-Verfahren oder Vorausschau-Verfahren eingesetzt werden, um die modulare Multiplikationsoperation hardwaremäßig zu beschleunigen.
Die DE 3631992 C2 offenbart ein Verfahren, bei dem die modulare Multiplikation über Z/NZ unter Verwendung eines Mul- tiplikations-Vorausschau-Verfahrens und unter Verwendung eines Reduktions-Vorausschau-Verfahrens beschleunigt werden kann. Das in der DE 3631992 C2 beschriebene Verfahren wird auch als ZDN-Verfahren bezeichnet und anhand von Fig. 6 näher beschrieben. Nach einem Startschritt 900 des Algorithmus werden die globalen Variablen M, C und N initialisiert. Ziel ist es, folgende modulare Multiplikation zu berechnen:
Z = M * C mod N.
M wird als der Multiplikator bezeichnet, während C als der Multiplikand bezeichnet wird. Z ist das Ergebnis der modularen Multiplikation, während N der Modul ist.
Hierauf werden verschiedene lokale Variablen initialisiert, auf die zunächst nicht näher eingegangen werden braucht. Anschließend werden zwei Vorausschau-Verfahren angewandt. Im Multiplikations-Vorausschau-Verfahren GEN_MÜLT_LA wird unter Verwendung verschiedener Look-Ahead-Regeln ein Multiplikati- ons-Verschiebungswert sz sowie ein Multiplikations- Vorausschau-Parameter a berechnet (910) . Hierauf wird der gegenwärtige Inhalt des Z-Registers einer Links-Verschiebungs- Operation um sz-Stellen unterzogen (920).
Im wesentlichen parallel dazu wird ein Reduktions- Vorausschau-Verfahren GEN_Mod_LA (930) durchgeführt, um einen Reduktionsverschiebungswert sN und einen Reduktions-Parameter b zu berechnen. In einem Schritt 940 wird dann der gegenwärtige Inhalt des Modul-Registers, also N, um sN Stellen verschoben, um einen verschobenen Modulwert N' zu erzeugen. Die zentrale Drei-Operanden-Operation des ZDN-Verfahrens findet in einem Schritt 950 statt. Hierbei wird das Zwischenergebnis Z' nach dem Schritt 920 zu dem Multiplikanden C, der mit dem Multiplikations-Vorausschau-Parameter a multipliziert ist, und zu dem verschobenen Modul N ' , der mit dem Reduktions- Vorausschau-Parameter b multipliziert ist, addiert. Je nach aktueller Situation können die Vorausschau-Parameter a und b einen Wert von +1, 0 oder -1 haben.
Ein Fall besteht darin, daß der Multiplikations-Vorausschau- Parameter a +1 beträgt, und daß der Reduktion-Vorausschau- Parameter b -1 beträgt, so daß zu einem verschobenen Zwischenergebnis Z' der Multiplikand C hinzu addiert wird, und der verschobene Modul N' davon subtrahiert wird, a wird u. a. einen Wert gleich 0 haben, wenn das Multiplikations- Vorausschau-Verfahren mehr als eine voreingestellte Anzahl von einzelnen Links-Verschiebungen zulassen würde, also wenn sz größer als der maximal zulässige Wert von sz ist, der auch als k bezeichnet wird. Für den Fall, daß a gleich 0 ist, und daß Z' aufgrund der vorausgehenden modularen Reduktion, also der vorausgehenden Subtraktion des verschobenen Moduls noch ziemlich klein ist, und insbesondere kleiner als der verschobene Modul N' ist, muß keine Reduktion stattfinden, so daß der Parameter b gleich 0 ist.
Die Schritte 910 bis 950 werden so lange durchgeführt, bis sämtliche Stellen des Multiplikanden abgearbeitet sind, also bis m gleich 0 ist, und bis auch ein Parameter n gleich 0 ist, welcher angibt, ob der verschobene Modul N' noch größer als der ursprüngliche Modul N ist, oder ob trotz der Tatsa- ehe, daß bereits sämtliche Stellen des Multiplikanden abgearbeitet sind, noch weitere Reduktionsschritte durch Subtrahieren des Moduls von Z durchgeführt werden müssen. Abschließend wird noch bestimmt, ob Z kleiner als 0 ist. Falls dies der Fall ist, muß, um eine abschließende Reduktion zu erreichen, der Modul N zu Z hinzuaddiert werden, damit schließlich das korrekte Ergebnis Z der modularen Multiplikation erhalten wird. In einem Schritt 960 ist die modulare Multiplikation mittels des ZDN-Verfahrens beendet.
Der Multiplikations-Verschiebungswert sz sowie der Multipli- kations-Parameter a, welche im Schritt 910 durch den Mul- tiplikations-Vorausschau-Algorithmus berechnet werden, ergeben sich durch die Topologie des Multiplikators sowie durch die eingesetzten Vorausschau-Regeln, die in der DE 3631992 C2 beschrieben sind.
Der Reduktions-Verschiebungswert sN und der Reduktions- Parameter b werden, wie es ebenfalls in der DE 3631992 C2 beschrieben ist, durch Vergleich des gegenwärtigen Inhalts des Z-Registers mit einem Wert 2/3 mal N bestimmt. Aufgrund die- ses Vergleiches trägt das ZDN-Verfahren seinen Namen (ZDN = Zwei Drittel N) .
Das ZDN-Verfahren, wie es in Fig. 6 dargestellt ist, führt die modulare Multiplikation auf eine Drei-Operanden-Addition (Block 950 in Fig. 6) zurück, wobei zur Steigerung der Rechenzeiteffizienz das Multiplikations-Vorausschau-Verfahren und damit einhergehend das Reduktions-Vorausschau-Verfahren eingesetzt werden. Im Vergleich zur Montgomery-Reduktion für Z/NZ kann daher ein Rechenzeitvorteil um einen Faktor in der Größenordnung von 3 erreicht werden.
Nachteilig an den oben beschriebenen Multiplikationskonzepten ist, daß lediglich die Modulo-Operation berechnet wird, daß jedoch nicht die DIV-Operation berechnet wird, also die Ope- ration, die den ganzzahligen Quotienten Q bezüglich des Moduls N des Produkts aus dem Multiplikator M und dem Multiplikanden C liefert, so daß das Produkt C x M = Q - N + Z darge- stellt ist. Wie es jedoch ausgeführt worden ist, ist der ganzzahlige Quotient jedoch für bestimmte Anwendungen nützlich, wobei eine dieser Anwendungen, wie es vorstehend beschrieben worden ist, darin besteht, eine modulare Multipli- kation mit Zahlen einer bestimmten Länge auf einem Rechenwerk der halben Länge effizient auszuführen.
Die Aufgabe der vorliegenden Erfindung besteht darin, ein Konzept zum einfach und effizient implementierbaren Berechnen eines ganzzahligen Quotienten zu schaffen.
Diese Aufgabe wir durch eine Vorrichtung nach Anspruch 1 oder ein Verfahren nach Anspruch 16 gelöst.
Der vorliegenden Erfindung liegt die Erkenntnis zugrunde, daß bei Prozessoren zum Berechnen des Rests Z eines Produkts aus einem Multiplikator und einem Multiplikanden - und optional aus einer Addition dieses Produkts mit einem dritten Operanden multipliziert mit dem Faktor 2n -, die die Bits des Mul- tiplikators in mehreren Verarbeitungsschritten sequentiell abarbeiten oder „abscannen", der ganzzahlige Quotient ohne Eingriff in das Rechenwerk selbst und ferner ohne einen oder einen minimalen Eingriff in den Controlteil, das das Rechenwerk steuert, extrahierbar ist.
Bei der üblichen modularen Arithmetik ist der ganzzahlige Quotient, also das Ergebnis der DIV-Operation mangels geeigneter Verwendung immer ignoriert worden. Erfindungsgemäß wird der ganzzahlige Quotient unter Verwendung eines Prozessors zum Berechnen des Rests eines Terms bezüglich eines Moduls erhalten, derart, daß in jedem Verarbeitungsschritt, in dem der Prozessor ein bezüglich des Moduls reduziertes Zwischenergebnis berechnet, Reduktionsinformationen einerseits und Ordnungsinformationen andererseits, welche sich auf Stellen des ganzzahligen Quotienten beziehen, die in dem jeweiligen
Verarbeitungsschritt betroffen sind, mitprotokolliert werden. Dann, nachdem die Multiplikatorbits mittels der mehrere Ver- arbeitungsschritte abgearbeitet sind, werden die mitprotokollierten Reduktionsinformationen und Ordnungsinformationen von den jeweiligen Schritten ausgewertet, um daraufhin ohne aufwendige arithmetische Operationen den ganzzahligen Quotienten zu erhalten.
Bei einem bevorzugten Ausführungsbeispiel werden parallel zum Verarbeiten der Multiplikatorbits durch die Verarbeitungseinrichtung Protokollregister geführt, wobei Bits bestimmter Ordnung, die durch die Ordnungsinformationen bestimmt ist, unter Verwendung der Reduktionsinformationen nach jedem Verarbeitungsschritt gesetzt oder nicht gesetzt werden. Werden zwei oder mehrere solche Protokollregister eingesetzt, so ist die Einrichtung zum Auswerten in der Lage, durch einfaches Addieren oder Subtrahieren der Protokollregister nach der Abarbeitung sämtlicher Multiplikatorbits den ganzzahligen Quotienten zu erhalten.
Das erfindungsgemäße Konzept ist insbesondere dahin gehend vorteilhaft, daß keine Informationen benötigt werden, die ü- ber Informationen hinausgehen, die ohnehin von einer solchen Verarbeitungseinrichtung zum Berechnen der Modulo-Operation ausgegeben werden. Der ganzzahlige Quotient wird somit gewissermaßen „kostenlos" (insbesondere bezüglich der Rechenzeit) und ohne Eingriffe in das Rechenwerk der Verarbeitungseinrichtung erhalten. Lediglich eine Protokollierungseinrichtung muß vorgesehen werden, die die benötigten Reduktionsinformationen oder Ordnungsinformationen am Ende jedes Verarbeitungsschrittes aus dem Controlteil extrahiert.
Bei einer abschließenden Auswertung der Protokollinformationen durch eine Auswertungseinrichtung ergibt sich dann der ganzzahlige Quotient, ohne daß eine einzige Änderung am festverdrahteten Rechenwerk nötig war.
Diese Tatsache ist insbesondere dahin gehend von Bedeutung, daß kryptographische Rechenwerke typischerweise Langzahl- Rechenwerke sind, die auf bestimmte Operationen, wie z. B. die modulare Multiplikation, optimiert sind. Eingriffe in solche Langzahl-Rechenwerke, die typischerweise Addierer mit 1024 oder mehr Einzeladdierern oder „Bit-Slices" umfassen, sind im Entwurf aufwendig, fehleranfällig und dahin gehend nachteilhaft, daß wieder komplette Funktionstests durchzuführen sind. Insbesondere für sicherheitskritische Anwendungen, für die üblicherweise Kryptographie-Algorithmen eingesetzt werden, ist der Sicherheitsaspekt von besonderer Bedeutung, da sensible Informationen, wie beispielsweise Geldbeträge o- der persönliche Informationen, verarbeitet werden, wenn z. B. an Smartcards oder allgemein Chipkarten gedacht wird.
Das erfindungsgemäße Verfahren ist ferner dahin gehend vor- teilhaft, daß es außerdem wenig rechenzeitintensiv ist, was insbesondere dann von Bedeutung ist, wenn aufwendige kryptographische Algorithmen zu berechnen sind, und zwar mit Prozessoren, die aufgrund der Tatsache, daß ihre Chipfläche begrenzt ist, wenn wieder an Chipkarten gedacht wird, begrenzte Rechen- und Speicherressourcen haben.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend bezug nehmend auf die beiliegenden Zeichnungen detailliert erläutert. Es zeigen:
Fig. 1 ein Blockschaltbild einer erfindungsgemäßen Vorrichtung zum Berechnen eines ganzzahligen Quotienten;
Fig. 2 ein Ablaufdiagramm eines einfachen modularen Multiplikationsalgorithmus;
Fig. 3 ein Ablaufdiagramm des in Fig. 2 gezeigten einfachen Multiplikationsalgorithmus, bei dem neben der Modulo-Operation auch die DIV-Operation ausgeführt wird; Fig. 4 ein zusammengefaßtes Ablaufdiagramm des bekannten ZDN-Algorithmus;
Fig. 5 ein Ablaufdiagramm des ZDN-Algorithmus zum zusätz- liehen Berechnen des ganzzahligen Quotienten; und
Fig. 6 ein detailliertes Ablaufdiagramm des bekannten ZDN- Algorithmus .
Fig. 1 zeigt ein Blockschaltbild einer erfindungsgemäßen Vorrichtung zum Berechnen eines ganzzahligen Quotienten eines Terms T bezüglich eines Moduls N, wobei der Term ein Produkt aus einem binären Multiplikator M und einem binären Multiplikanden C aufweist. Die Vorrichtung umfaßt eine Verarbeitungs- einrichtung 10, die sich in ein Rechenwerk 10a und ein
Controlteil 10b aufgliedert. Das Rechenwerk besteht typischerweise aus einem Langzahladdierer für zwei oder mehr Operanden, während der Controlteil 10b ausgebildet ist, um das Rechenwerk zu steuern, damit dasselbe sequentiell die Multi- plikatorbits abarbeitet und schließlich, wenn alle Multiplikatorbits abgearbeitet sind, das Ergebnis Z der modularen Reduktion des Terms, der das Produkt C • M aufweist, liefert.
Die erfindungsgemäße Vorrichtung umfaßt ferner eine Protokol- lierungseinrichtung 12 zum Protokollieren von Reduktionsinformationen in den jeweiligen Schritten und zum Protokollieren von Ordnungsinformationen über durch eine oder mehrere durch den jeweiligen Verarbeitungsschritt betroffene Stellen des ganzzahligen Quotienten. Die Protokollierungseinrichtung 12 ist wirksam mit dem Controlteil 10b gekoppelt, um die Pro- tokollierungsinformationen für jeden Schritt zu extrahieren. Wenn der Controlteil 10b einer ferner vorgesehenen Auswertungseinrichtung 14 signalisiert, daß alle Multiplikatorbits abgearbeitet sind und das Endergebnis Z vorliegt, greift die Auswertungseinrichtung 14 auf die Protokollierungseinrichtung 12 zu, um die Reduktionsinformationen und die Ordnungsinfor- mationen auszuwerten, um schließlich den ganzzahligen Quotienten Q auszugeben.
Hardware-technisch wird es bevorzugt, die modulare Reduktion durch Subtraktion des Moduls durchzuführen, wobei in einem Verarbeitungsschritt je nach Implementierung des Rechenwerks 10a eine oder mehrere Modul-Subtraktionen stattfinden können. Werden, wie es nachfolgend erläutert wird, Multiplikations- Look-Ahead-Algorithmen und ferner noch Reduktions-Look-Ahead- Algorithmen eingesetzt, so kann in einem Verarbeitungsschritt der Fall auftreten, daß ein Modul zu dem Zwischenergebnis hinzuaddiert wird. Diese Reduktionsinformationen, also ob ein Modul subtrahiert wird, ob ein Modul addiert wird, oder ob, was ebenfalls auftreten kann, weder eine Addition des Moduls noch eine Subtraktion des Moduls auftritt, können von der
Protokollierungseinrichtung 12 in jedem Verarbeitungsschritt protokolliert werden. Die OrdnungsInformationen beziehen sich darauf, welche Stellen des Quotienten durch den jeweiligen Verarbeitungsschritt tangiert werden. So werden die Multipli- katorbits typischerweise von oben, also vom MSB aus (MSB =
Most Significant Bit) ausgehend abgearbeitet oder abgescannt. Die Ordnungsinformationen können bei einfacheren modularen Multiplikationsalgorithmen direkt der Ordnung des in einem Schritt betrachteten Multiplikatorbits entsprechen. Wird le- diglich ein Multiplikations-Look-Ahead-Algorithmus eingesetzt, so werden in einem Verarbeitungsschritt mehrere Bits des Multiplikators betrachtet und verarbeitet. In diesem Fall werden die Ordnungsinformationen von den mehreren Bits des Multiplikators abhängen. Im Falle gekoppelter Multiplikati- ons-Look-Ahead-Algorithmen und Reduktions-Look-Ahead-
Algorithmen hängen die Ordnungsinformationen indirekt von der Ordnung der in einem Verarbeitungsschritt betrachteten Multiplikatorbits ab. Dieser Zusammenhang ist, wie es für Look- Ahead-Algorithmen typisch ist, einerseits datenabhängig und andererseits von der Vorgeschichte bestimmt. Bei einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung ist die Protokollierungseinrichtung aufgrund der Hardware-technischen einfachen Implementierbarkeit als Registersatz mit einem oder mehreren Registern ausgebildet, welche Schritt für Schritt beschrieben werden und schließlich, nach der Verarbeitung des kompletten Multiplikators durch die Auswertungseinrichtung in geeigneter Weise ausgewertet, wie z. B. addiert oder subtrahiert, werden, um den ganzzahligen Quotienten Q zu erhalten.
Im nachfolgenden wird Bezug nehmend auf Fig. 2 ein einfacher Multiplikationsalgorithmus dargestellt, der auch als „Schulbuchalgorithmus" bekannt ist. Dieser Algorithmus erhält als Eingabe den Modul N, den Multiplikanden C, welcher definiti- onsgemäß kleiner als der Modul N ist, und den Multiplikator M, der aus binären Multiplikatorbits M0 (lsb) bis Mm-ι (msb) besteht und größer als 0 ist. Dieser Algorithmus liefert als Ausgabe Z = C x M mod N. In einem ersten Initialisierungsschritt wird die Ordnung des Multiplikators i auf m-1 initia- lisiert. Ferner wird das Z-Register, das während der Verarbeitung als Zwischenergebnisregister und schließlich als Endergebnisregister fungiert, ebenfalls initialisiert (20). Hierauf wird in einer Stufe 21 untersucht, ob das gerade betrachtete Bit des Multiplikators, also Mi gleich 0 oder 1 ist. Ist das Bit gleich 0, so wird lediglich eine Multiplikation mit dem Faktor 2 oder eine Verschiebung um eine Stelle im Z-Register durchgeführt (22a) . Ist das Bit dagegen gleich 1, so wird der Inhalt des Registers um eine Stelle nach links verschoben, was einer Multiplikation mit 2 entspricht, und es wird ferner, wie es aus einem Block 22b ersichtlich ist, der Multiplikand C hinzuaddiert. Die modulare Reduktion findet dahin gehend statt, daß zunächst in einer Stufe 23 untersucht wird, ob der Inhalt des Zwischenergebnisregisters Z größer oder gleich N ist. Wird diese Frage bejaht, so wird ein ers- tes Mal der Modul N von dem Zwischenergebnisregister Z subtrahiert (24). Dann wird erneut untersucht, ob der jetzige Inhalt des Zwischenergebnisregisters Z größer oder gleich N ist (25) . Wird diese Frage wieder bejaht, so wird ein weiteres Mal der Modul N subtrahiert (26). Dieses Prozedere wird wiederholt, bis i gleich 0 ist, was in einem Block 27 überprüft wird. Wird die Frage mit Ja beantwortet, so ist der Al- gorithmus zu Ende. Wird diese Frage dagegen mit Nein beantwortet, so wird i in einem Block 28 um „1" dekrementiert, und es wird eine weitere Iterationsschleife unter Verwendung der Blöcke 21 bis 27 durchlaufen.
Nachfolgend wird anhand von Fig. 3 die erfindungsgemäße Erweiterung des in Fig. 2 gezeigten Algorithmus, also die Funktionalität der Protokollierungseinrichtung 12 von Fig. 1 und der Auswertungseinrichtung 14 von Fig. 1 erläutert. Elemente in Fig. 3, die die gleichen Bezugszeichen tragen wie in Fig. 2 haben die selbe Funktion und werden nicht erneut erläutert. Die Protokollierungseinrichtung umfaßt bei einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung zur Erweiterung des in Fig. 2 gezeigten bekannten „Schulbuchalgorithmus" zwei Hilfsregister Q und Q' , die in einem Schritt 20' initia- lisiert werden. Abhängig von der Beantwortung der Frage im Block 23, also ob das Zwischenergebnis Z, das durch den Schritt 22a und den Schritt 22b erhalten worden ist, größer oder gleich n ist, werden Bits der Ordnung i in dem ersten Hilfsregister Qi oder im zweiten Hilfsregister Q'i mit „0" beschrieben. , Die Reduktionsinformationen bestehen hier in den „Nullen", die an durch die Ordnungsinformationen bestimmten Stellen i der Register eingetragen werden. War das Zwischenergebnis Z kleiner als N, wie es im Block 23 bestimmt worden ist, wurde keine Modulsubtraktion durchgeführt, was sich unmittelbar darin äußert, daß die entsprechenden Hilfs- registerbits gleich 0 gesetzt werden. Wird dagegen eine Modulsubtraktion (Schritt 24) durchgeführt, so wird das Bit i des ersten Hilfsregisters Q auf 1 gesetzt, während das Bit des zweiten Hilfsregisters Q'i auf 0 gesetzt wird, wie es in einem Block 30b zu sehen ist. Wird eine zweite Modulsubtraktion durchgeführt (Block 26 von Fig. 3) , so werden sowohl das Bit i des ersten Hilfsregisters Q als auch das Bit i des zweiten Hilfsregisters Q' auf 1 gesetzt, wie es durch einen Block 30c zu sehen ist. Dieses Pro- zedere wird für jeden Verarbeitungsschritt durchgeführt, bis im Block 27 bestimmt worden ist, daß i gleich 0 ist. Dann wird die Auswertungseinrichtung 14 von Fig. 1 aktiv, um die beiden Register Q und Q' zu addieren, wie es in einem Block 32 dargestellt ist, um als Ergebnis schließlich den ganzzah- ligen Quotienten Q zu erhalten. Die Funktionalität der Protokollierungseinrichtung wird somit durch die Blöcke 30a, 30b, 30c implementiert, während die Funktionalität durch die Auswertungseinrichtung 14 von Fig. 1 durch den Block 32 in Fig. 3 implementiert wird.
Aus Fig. 3 wird ersichtlich, daß keine Änderung am grundsätzlichen Algorithmus erforderlich ist, um die Quotienteninformation zu erhalten. Im Hinblick auf Fig. 1 bedeutet dies, daß sowohl das Rechenwerk 10a als auch der Controlteil 10b der Verarbeitungseinrichtung 10 nicht geändert werden müssen und somit zur Berechnung der Quotienteninformation nicht neu entwickelt und getestet werden müssen.
Aus Fig. 3 wird ferner ersichtlich, daß das Mit- Protokollieren der Reduktionsinformationen und der Ordnungsinformationen keinen weiteren Rechenschritt benötigt. Lediglich die Auswertungseinrichtung, die die beiden Register addieren muß, benötigt einen Addierzyklus, der jedoch nicht ins Gewicht fällt, wenn bedacht wird, daß die Größen N, C, M z. B. 1024 Stellen haben, was bei dem in Fig. 3 gezeigten Algorithmus bedeutet, daß die Iterationsschleife 1024 Mal durchlaufen werden muß.
Der in Fig. 3 gezeigte Algorithmus kann einfach dahin gehend erweitert werden, um nicht nur den Term C x M zu verarbeiten, sondern einen Term C x M + D x 2n. Dies kann einfach dadurch erreicht werden, daß in dem Initialisierungsschritt 20' das Zwischenergebnis Z nicht auf 0 initialisiert wird, sondern auf D initialisiert wird. Aus diesem Grund trägt die Operation, die durch die in Fig. 3 gezeigte Schaltung ausgeführt wird, den Namen Initialisierungs-MMD-Operation, wenn das Zwi- schenergebnisregister Z vor dem ersten Iterationsschritt auf einen Wert D initialisiert wird. In diesem Zusammenhang steht MMD für MultModDiv, um anzuzeigen, daß der in Fig. 3 gezeigte Algorithmus sowohl das modular reduzierte Ergebnis des Terms als auch den ganzzahligen Quotienten des Terms C x M + D x 2n liefert, wobei sich für D gleich 0 die übliche Multiplikation ergibt.
Fig. 4 zeigt eine etwas komprimierte Darstellung von Fig. 6, nämlich den bekannten ZDN-Algorithmus, der vorstehend erläu- tert worden ist. Ein Initialisierungsblock 40 zeigt die für die vorliegende Erfindung bedeutsamen Größen i, Z und c. Wieder kann Z entweder auf 0 oder auf D initialisiert werden, um entweder eine MMD-Operation oder eine Initialisierungs-MMD- Operation auszuführen.
Wie es durch einen nachfolgenden Block dargestellt ist, erzeugt die ZDN-Einrichtung 910, 920, 930 von Fig. 6 einen Mul- tiplikations-Verschiebungswert sz, der üblicherweise immer größer 0 ist, einen Multiplikator-Bit-Wert sM, der anzeigt, wie viele Multiplikator-Bits in einem Look-Ahead-Schritt verarbeitet worden sind, den Reduktions-Verschiebungswert sN, sowie den Multiplikations-Look-Ahead-Parameter a und den Re- duktions-Look-Ahead-Parameter b. Die Multiplikator-Bit- Ordnungszahl i wird nach jedem Schritt um sM reduziert. Die Größe c gibt an, an welcher Stelle eines Puffers für den Modul das Komma des Moduls, also das LSB des ursprünglichen Moduls steht. Die Größe c wird nach jedem Schritt durch c + sN geändert .
In einem Schritt 940 findet dann die Modul-Verschiebung statt, die durch Multiplikation des alten Inhalts des Modul- Registers N mit einem Faktor 2S N darstellbar ist. In einem Schritt 950 findet dann die bereits bezug nehmend auf Fig. 6 beschriebene 3-Operanden-Addition statt, die so lange fortgesetzt wird, bis i gleich 0 ist und c ebenfalls gleich 0 ist (Block 42) . Ist dies der Fall, wird in einem Schritt 44 un- tersucht, ob das Zwischenergebnisregister Z kleiner als 0 ist. Ist dies der Fall, so wird noch einmal der Modul N hinzuaddiert (Block 46) , da der Rest der modularen Multiplikation, also Z, per Definition größer als 0 sein muß. Wird dagegen Block 42 mit Ja beantwortet, wo wird eine weitere Itera- tion durchgeführt, um eines oder mehrere Multiplikatorbits, je nach Look-Ahead-Eigenschaft des Multiplikators zu verarbeiten.
Im nachfolgenden wird anhand von Fig. 5 die erfindungsgemäße Erweiterung des in den Figuren 4 und 6 gezeigten bekannten
ZDN-Algorithmus dargestellt. Gleiche Bezugszeichen in den Figuren 4 und 5 bedeuten gleiche Elemente. Aus diesem Grund werden diese Elemente nicht noch einmal erläutert. Der durch einen Block 910, 920, 930 bezeichnete ZDN-Prozessor liefert wieder sz, sN, a und b. Hierauf wird der in dem Initialisierungsblock 40' initialisierte Quotienten-Ordnungswert j, welcher auf m initialisiert worden ist, in einem Block 50 verringert, und zwar um die Differenz aus dem Multiplikations- Verschiebungswert sz und dem Reduktions-Verschiebungswert sN. Stellt der Multiplikations-Look-Ahead-Algorithmus, welcher für den Multiplikations-Verschiebungswert sz verantwortlich ist, fest, daß das Zwischenergebnis nach oben verschoben werden soll, also zu höherwertigen Bits hin, so wird dies hinsichtlich der Ordnungsinformationen der Protokollierungsein- richtung, welche durch Block 50 dargestellt ist, dahin gehend berücksichtigt, daß geringerwertige Bits des Quotienten betroffen sind. Die Ordnung eines Quotientenbits im aktuellen Schritt ist daher um (sz - sN) niedriger als die Ordnung des entsprechenden Quotientenregisterbits aus dem vorherigen Schritt. Ist dagegen ein positiver Reduktions-Verschiebungswert sN vorhanden, so bedeutet dies, daß der Inhalt des Modul- Registers N um den Faktor 2S N größer ist als im vorherigen Schritt. Wenn ein solcher „vergrößerter" Modul subtrahiert wird, was durch einen Reduktions-Look-Ahead-Parameter b von „-1" bewirkt wird, so wird dies in den Ordnungsinformationen (Block 50, Parameter j) dahin gehend berücksichtigt, daß hö- herwertige Bits des ganzzahligen Quotienten betroffen sind, als im vorherigen Iterationsschritt.
Die Reduktionsinformationen sind tabellarisch in einem Block 52 von Fig. 5 dargestellt. Die Protokollierungseinrichtung verwendet wieder zwei Hilfsregister Q und Q' , wobei die Bitwerte in den beiden Registern von dem Reduktions-Parameter b abhängen. Ist b durch die ZDN-Einrichtung zu 0 berechnet worden, so findet überhaupt keine Reduktion statt. Daher werden die Bits der Ordnung j beider Register Q und Q' auf 0 gesetzt. Ist der Reduktions-Parameter b dagegen gleich „1", so wurde in der 3-Operanden-Operation zum aktuellen Zwischener- gebnis ein Modul hinzuaddiert. Dies wird im Block 52 dadurch berücksichtigt, daß das entsprechende Bit j des zweiten Hilfsregisters Q' zu 1 gesetzt wird, während das entsprechende Bit des ersten Hilfsregisters zu 0 gesetzt wird. Wird dagegen ein Modul subtrahiert, also tatsächlich eine Reduktion durchgeführt, was durch einen Reduktions-Parameter von „-1" dargestellt wird, so äußert sich dies in den beiden Hilfsregistern dahin gehend, daß das entsprechende Bit j des ersten Hilfsregisters Q zu 1 gesetzt wird, während das entsprechende Bit j des zweiten Hilfsregisters Q' zu 0 gesetzt wird. In ei- nem Block 54 wird eine Korrektur gewissermaßen ähnlich zu dem Fall von b gleich 1 durchgeführt. Wenn in dem Block 44 herausgefunden worden ist, daß das Zwischenergebnis Z nach der Abarbeitung sämtlicher Multiplikatorbits kleiner 0 war, so bedeutet dies, daß eine Reduktion zu viel stattgefunden hat. Z wird im Block 46 daher um N erhöht. Dies wird in den Reduktionsinformationen dahin gehend berücksichtigt, daß im Block 54 das niedrigste Bit Q0 des zweiten Hilfsregisters Q' zu 1 gesetzt wird.
Die Auswertungseinrichtung 14 von Fig. 1 wird schließlich da- hin gehend aktiv, daß sie von dem ersten Hilfsregister Q das zweite Hilfsregister Q' abzieht (Block 56) , um den ganzzahligen Quotienten Q in binärer Form zu erhalten. Die Subtraktion im Block 56 ist dahin gehend zu verstehen, daß das Register Q einen Zählwert für alle tatsächlich durchgeführten Modulsub- traktionen in der 3-Operanden-Operation umfaßt, wobei diese Zahl zu hoch ist, wenn Z kleiner als 0 wird (Block 44), so daß der Inhalt des zweiten Hilfsregisters Q' und insbesondere das niederstwertige Bit, das im Block 54 gesetzt wird, wieder abgezogen werden muß. Das selbe trifft für den Fall zu, bei dem der Reduktions-Parameter b gleich 1 ist. Hier wird kein Modul subtrahiert, sondern ein Modul addiert. Dies muß im ganzzahligen Quotienten wieder dahin gehend berücksichtigt werden, daß das Hilfsregister von dem ersten Hilfsregister subtrahiert wird. Für Fachleute ist es ersichtlich, daß, wenn die Bits des zweiten Hilfsregisters Q' statt auf „+1" auf „- 1" gesetzt werden würden, in dem Block 56 durch die Auswertungseinrichtung keine Subtraktion, sondern eine Addition vorgenommen werden müßte.
Aus dem Vorstehenden ist für Fachleute ersichtlich, daß das erfindungsgemäße Konzept besonders für eine Hardwaretechnische Realisierung geeignet ist. Dies ist vorteilhaft, da eine Software-technische Realisierung des MMD-Befehls Performance- und Verwaltungsaufwand kostet. Das erfindungsgemäße Konzept ersetzt eine solche Software-technische Realisierung. Insbesondere kann das vorgestellte Konzept günstig in bestehende Kryptoprozessoren integriert werden, wobei hier nur VHDL-Änderungen des Krypto-Controllers nötig sind, um sowohl die Protokollierungseinrichtung als auch die Auswertungsein- richtung in die bestehende Verarbeitungseinrichtung einzufügen. Der üblicherweise vorhandene modulare Multiplikationsbefehl kann somit einfach und wenig fehleranfällig um das Er- gebnis der DIV-Operation, also den ganzzahligen Quotienten, ergänzt werden.
Bezugszeichenliste
10 Verarbeitungseinrichtung 10a Rechenwerk
10b Controlteil
12 Protokollierungseinrichtung
14 Auswertungseinrichtung
20 Initialisierungsschritt 20' Initialisierung
21 Bituntersuchungsschritt 22a, 22b Zwischenergebnisberechnung
23 Erster Modulvergleich
24 Erste Modulsubtraktion 25 Zweiter Modulvergleich
26 Zweite Modulsubtraktion
27 Indexuntersuchung
28 Indexinkrementierung
30a Reduktionsinformationen ohne Modulsubtraktion 30b Reduktionsinformationen nach einer Modul- Subtraktion
30c Reduktionsinformationen nach zwei Modul- Subtraktionen
32 Addition der Hilfsregister 40 Initialisierung
40' Initialisierung
42 Iterationsuntersuchung
44 Zwischenergebnisuntersuchung
46 Moduladdition 50 Ordnungsinformationsberechnung
52 Reduktionsinformationsberechnung
54 Reduktionsinformationskorrektur
56 Subtraktion der Hilfsregister
900 Start des ZDN-Algorithmus 910 Multiplikations-Look-Ahead-Algorithmus
920 Zwischenergebnis-Verschiebung
930 Reduktions-Look-Ahead-Algorithmus 940 Modulverschiebung
950 3-Operanden-Operation
960 Ende des ZDN-Algorithmus

Claims

Patentansprüche
1. Vorrichtung zum Berechnen eines ganzzahligen Quotienten eines Terms (T) bezüglich eines Moduls (N) , wobei der Term ein Produkt aus einem binären Multiplikator (M) und einem Multiplikanden (C) aufweist, mit folgenden Merkmalen:
einer Verarbeitungseinrichtung (10) zum Verarbeiten von Bits des Multiplikators (N) in mehreren Verarbeitungsschritten, wobei die Verarbeitungseinrichtung (10) ausgebildet ist, um in einem Verarbeitungsschritt ein bezüglich des Moduls reduziertes Zwischenergebnis (Z) zu berechnen, das von dem einen oder den mehreren Bits des binären Multiplikators abhängt, die in dem einen Verarbeitungsschritt betrachtet werden;
einer Einrichtung (12) zum Protokollieren von Reduktionsinformationen in dem einen Verarbeitungsschritt und zum Protokollieren von Ordnungsinformationen über durch eine oder mehrere durch den einen Verarbeitungsschritt betroffene Stellen des ganzzahligen Quotienten; und
einer Auswertungseinrichtung (14) zum Auswerten der Reduktionsinformationen und der Ordnungsinformationen aus den Verarbeitungsschritten, um den ganzzahligen Quotienten (Q) zu er- halten.
2. Vorrichtung nach Anspruch 1,
bei der die Verarbeitungseinrichtung (10) ein fest- verdrahtetes Rechenwerk (10a) zum Berechnen des modular reduzierten Zwischenergebnisses (Z) aufweist,
bei der die Verarbeitungseinrichtung ferner ein Controlteil (10b) zum Steuern des fest-verdrahteten Rechenwerkes (10a) aufweist; und bei dem die Protokollierungseinrichtung mit dem Controlteil (10b) gekoppelt ist, um die Reduktionsinformationen und die Ordnungsinformationen von dem Controlteil zu erhalten.
3. Vorrichtung nach Anspruch 1 oder 2,
bei der ein Zwischenergebnisregister (Z) auf 0 initialisiert ist (20'; 40'), so daß der Term (T) gleich dem Produkt des ersten Operanden und des zweiten Operanden ist.
4. Vorrichtung nach Anspruch 1 oder 2,
bei dem ein Zwischenergebnisregister (20' ; 40' ) auf einen dritten Operanden (D) initialisierbar ist, so daß der Term gleich C x M + D x 2n ist, wobei C der Multiplikand ist, wobei M der Multiplikator ist, wobei D der dritte Operand ist, und wobei n eine maximale Länge von A, B und D in Bits ist.
5. Vorrichtung nach einem der vorhergehenden Ansprüche,
bei der die Verarbeitungseinrichtung (10) ausgebildet ist, um ausgehend von einem höchstwertigen Multiplikatorbit bis zu einem niederstwertigen Multiplikatorbit zu arbeiten.
6. Vorrichtung nach einem der vorhergehenden Ansprüche,
bei der die Verarbeitungseinrichtung ausgebildet ist, um in jedem Verarbeitungsschritt einen Bit zu verarbeiten," .
bei der die Einrichtung zum Protokollieren (30a, 30b, 30c) eine Registereinrichtung mit einem oder mehreren Hilfsregistern (Q, Q' ) aufweist,
wobei die Reduktionsinformationen (30a, 30b, 30c) bestimmen, ob eines oder mehrere Bits in der Registereinrichtung gesetzt sind oder nicht, und wobei die Ordnungsinformationen bestimmen, welches eine oder welche mehreren Bits in einem Verarbeitungsschritt betroffen sind, und
bei dem die Auswertungseinrichtung (32) ausgebildet ist, um die Registereinrichtung auszuwerten, um den ganzzahligen Quotienten auszugeben.
7. Vorrichtung nach einem der vorhergehenden Ansprüche,
bei der die Verarbeitungseinrichtung (10) ausgebildet ist, um in jedem Verarbeitungsschritt
ein Bit des Multiplikators zu verarbeiten (28),
ein Zwischenergebnis abhängig von dem Multiplikatorbits zu berechnen (22a, 22b) ,
das berechnete Zwischenergebnis zu untersuchen (23) , ob es größer als der Modul ist,
falls es größer als der Modul ist, ein neues Zwischenergebnis zu berechnen (24) , indem der Modul von dem Zwischenergebnis subtrahiert wird,
das neue Zwischenergebnis zu untersuchen (25) , ob es größer als der Modul ist, und
falls es größer als der Modul ist, ein weiteres neues Zwi- schenergebnis zu berechnen (26) , indem der Modul ein weiteres Mal subtrahiert wird.
8. Vorrichtung nach Anspruch 7,
bei der die Protokollierungseinrichtung (12) ausgebildet ist, um als Reduktionsinformationen die Anzahl der Subtraktionen des Moduls zu verwenden, und um als Ordnungsinformationen ei- ne Ordnung (i) des gerade verarbeiteten Multiplikatorbits zu verwenden.
9. Vorrichtung nach Anspruch 7 oder 8,
bei der die Protokollierungseinrichtung (12) ausgebildet ist, um ein Bit mit einer Ordnung gleich einer Ordnung des verarbeiteten Multiplikatorbits eines ersten Hilfsregisters zu setzen (30b) , wenn der Modul ein erstes Mal subtrahiert wird (24),
ein Bit einer Ordnung gleich einer Ordnung des gerade verarbeiteten Multiplikatorbits eines zweiten Hilfsregisters (Q' ) zu setzen (30c) , wenn der Modul ein zweites Mal subtrahiert wird (26) , und
bei dem die Auswertungseinrichtung (14) ausgebildet ist, um das erste und das zweite Hilfsregister zu addieren (32) , um den ganzzahligen Quotienten zu erhalten.
10. Vorrichtung nach einem der Ansprüche 1 bis 5,
bei der die Verarbeitungseinrichtung (10) ausgebildet ist, um einen Multiplikations-Look-Ahead-Algorithmus (910) auszufüh- ren, so daß in einem Verarbeitungsschritt eine Mehrzahl von Multiplikatorbits betrachtet werden, wenn die Mehrzahl von Multiplikatorbits eine von dem Look-Ahead-Algorithmus abhängige Eigenschaft hat, und
bei der die Protokollierungseinrichtung (12) ausgebildet ist, um bei den Reduktionsinformationen und den Ordnungsinformationen den Multiplikations-Look-Ahead-Algorithmus (910) zu berücksichtigen .
11. Vorrichtung nach Anspruch 10, bei der die Verarbeitungseinrichtung (10) ausgebildet ist, um neben dem Multiplikations-Look-Ahead-Algorithmus (910) einen Reduktions-Look-Ahead-Algorithmus (930) zu verwenden, und
bei der die Protokollierungseinrichtung (12) ausgebildet ist, um bei den Reduktionsinformationen und den Ordnungsinformationen den Reduktions-Look-Ahead-Algorithmus zu berücksichtigen.
12. Vorrichtung nach Anspruch 11,
bei der die Verarbeitungseinrichtung (10) ausgebildet ist, um das reduzierte Zwischenergebnis (Z) unter Verwendung einer 3- Operanden-Addition (950) zu berechnen, wobei ein erster Ope- rand (Z) ein Zwischenergebnis aus einem vorherigen Verarbeitungsschritt ist, ein zweiter Operand der Multiplikand (C) ist, und ein dritter Operand der Modul (N) ist, wobei zwei der drei Operanden in der 3-Operanden-Addition mit Faktoren gewichtet sind, die durch einen Faktor 2 hoch jeweiligen Ver- schiebungswerten (sz, sN) gewichtet sind, und wobei der Modul (N) mit einem Reduktions-Look-Ahead-Parameter (b) beaufschlagt ist,
wobei der Reduktions-Look-Ahead-Parameter (b) Werte von „0", „+1", „-1" haben kann, und
bei der die Protokollierungseinrichtung (12) ausgebildet ist,
um die Ordnungsinformationen (50) basierend auf einem Ver- schiebungswert (sz, sN) zu bestimmen, und die Reduktionsinformationen (52) auf der Basis des Reduktions-Look-Ahead- Parameters (b) zu bestimmen.
13. Vorrichtung nach Anspruch 12,
bei der die Protokollierungseinrichtung (12) zwei Hilfsregister (Q, Q' ) aufweist, wobei durch die Ordnungsinformationen bestimmte Bits (j) der zumindest zwei Register als Reduktionsinformationen folgendermaßen gesetzt werden (52) :
wenn b gleich 0 ist, dann ist Qj gleich Q'j gleich 0
wenn b gleich 1 ist, dann ist Qj gleich 0, Q'j gleich 1, und
wenn b gleich -1 ist, dann ist Qj gleich 1, Q'j gleich 0,
wobei b der Reduktions-Look-Ahead-Parameter ist, wobei Qj ein Bit j des ersten Hilfsregisters (Q) ist, und wobei Q'j ein Bit j des zweiten Hilfsregisters (Q' ) ist.
14. Vorrichtung nach Anspruch 12 oder 13,
bei der dem Modul (N) ein Reduktions-Verschiebungswert (sN) zugeordnet ist,
bei der dem Zwischenergebnis ein Multiplikations- Verschiebungswert (sz) zugeordnet ist, und
bei der die Protokollierungseinrichtung (12) ausgebildet ist, um als Ordnungsinformationen eine Ordnung (j) der Bits des ersten Hilfsregisters und des zweiten Hilfsregisters aus ei- ner Differenz zwischen Ordnungsinformationen eines vorhergehenden Schritts und einer Differenz zwischen dem Multiplika- tions-Verschiebungswert (sz) und dem Reduktions- Verschiebungswert (sN) zu bestimmen.
15. Vorrichtung nach Anspruch 13 oder 14,
bei der die Auswertungseinrichtung (14) ausgebildet ist, um nach einer Abarbeitung der Multiplikatorbits durch die Verarbeitungseinrichtung (10) das zweite Hilfsregister (Q' ) von dem ersten Hilfsregister (Q) zu subtrahieren (56) , um den ganzzahligen Quotienten zu erhalten.
16. Verfahren zum Berechnen eines ganzzahligen Quotienten eines Terms (T) bezüglich eines Moduls (N) , wobei der Term ein Produkt aus einem binären Multiplikator (M) und einem Multiplikanden (C) aufweist, mit folgenden Schritten:
Verarbeiten (10) von Bits des Multiplikators (N) in mehreren Verarbeitungsschritten, wobei die Verarbeitungseinrichtung (10) ausgebildet ist, um in einem Verarbeitungsschritt ein bezüglich des Moduls reduziertes Zwischenergebnis (Z) zu be- rechnen, das von dem einen oder den mehreren Bits des binären Multiplikators abhängt, die in dem einen Verarbeitungsschritt betrachtet werden;
Protokollieren (12) von Reduktionsinformationen in dem einen Verarbeitungsschritt und Protokollieren von Ordnungsinformationen über durch eine oder mehrere durch den einen Verarbeitungsschritt betroffene Stellen des ganzzahligen Quotienten; und
Auswerten (14) der Reduktionsinformationen und der Ordnungsinformationen aus den Verarbeitungsschritten, um den ganzzahligen Quotienten (Q) zu erhalten.
PCT/EP2003/004427 2002-04-29 2003-04-28 Vorrichtung und verfahren zum berechnen eines ganzzahligen quotienten WO2003093970A2 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2003224137A AU2003224137A1 (en) 2002-04-29 2003-04-28 Device and method for calculating an integer quotient

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE2002119164 DE10219164B4 (de) 2002-04-29 2002-04-29 Vorrichtung und Verfahren zum Berechnen eines ganzzahligen Quotienten
DE10219164.6 2002-04-29

Publications (2)

Publication Number Publication Date
WO2003093970A2 true WO2003093970A2 (de) 2003-11-13
WO2003093970A3 WO2003093970A3 (de) 2004-07-15

Family

ID=29264906

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2003/004427 WO2003093970A2 (de) 2002-04-29 2003-04-28 Vorrichtung und verfahren zum berechnen eines ganzzahligen quotienten

Country Status (4)

Country Link
AU (1) AU2003224137A1 (de)
DE (1) DE10219164B4 (de)
TW (1) TW200400442A (de)
WO (1) WO2003093970A2 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102006025569A1 (de) 2005-10-28 2007-05-03 Infineon Technologies Ag Vorrichtung und Verfahren zum Berechnen einer Multiplikations-Additions-Operation und zum Berechnen eines Ergebnisses einer modularen Multiplikation
DE102006025677B4 (de) 2005-10-28 2020-03-12 Infineon Technologies Ag Vorrichtung und Verfahren zum Berechnen eines Ergebnisses einer Summe mit einem Rechenwerk mit begrenzter Wortlänge
DE102006025713B9 (de) 2005-10-28 2013-10-17 Infineon Technologies Ag Kryptographie-Vorrichtung und Kryptographie-Verfahren zum Berechnen eines Ergebnisses einer modularen Multiplikation
DE102006025673B9 (de) 2005-10-28 2010-12-16 Infineon Technologies Ag Rechenwerk zum Reduzieren einer Eingabe-Zahl bezüglich eines Moduls
US20220121424A1 (en) * 2020-10-21 2022-04-21 PUFsecurity Corporation Device and Method of Handling a Modular Multiplication

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3631992A1 (de) * 1986-03-05 1987-11-05 Holger Sedlak Kryptographie-verfahren und kryptographie-prozessor zur durchfuehrung des verfahrens
EP0351829A2 (de) * 1988-07-19 1990-01-24 Nec Corporation Dividierschaltung für ganze Zahlen, versehen mit einer Überlaufdetektionsschaltung
US5710730A (en) * 1995-03-31 1998-01-20 International Business Machines Corporation Divide to integer
WO2002033885A1 (en) * 2000-10-17 2002-04-25 Novacatus Invest Ab Modular multiplication for rsa and other assymetric encryption/decryption

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2768245B1 (fr) * 1997-09-09 1999-10-15 Sgs Thomson Microelectronics Procede de production d'une division entiere avec un coprocesseur d'arithmetique modulaire
FR2777098B1 (fr) * 1998-04-02 2001-04-13 Sgs Thomson Microelectronics Procede de realisation ameliore d'une division entiere

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3631992A1 (de) * 1986-03-05 1987-11-05 Holger Sedlak Kryptographie-verfahren und kryptographie-prozessor zur durchfuehrung des verfahrens
EP0351829A2 (de) * 1988-07-19 1990-01-24 Nec Corporation Dividierschaltung für ganze Zahlen, versehen mit einer Überlaufdetektionsschaltung
US5710730A (en) * 1995-03-31 1998-01-20 International Business Machines Corporation Divide to integer
WO2002033885A1 (en) * 2000-10-17 2002-04-25 Novacatus Invest Ab Modular multiplication for rsa and other assymetric encryption/decryption

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WALTER C D: "Fast Modular Multiplication Using 2-Power Radix" INTERNATIONAL JOURNAL OF COMPUTER MATHEMATICS, GORDON AND BREACH PUBLISHERS, LONDON,, GB, Bd. 3, 1991, Seiten 21-28, XP002272738 ISSN: 0020-7160 *

Also Published As

Publication number Publication date
DE10219164B4 (de) 2004-12-02
AU2003224137A1 (en) 2003-11-17
WO2003093970A3 (de) 2004-07-15
TW200400442A (en) 2004-01-01
DE10219164A1 (de) 2003-11-20

Similar Documents

Publication Publication Date Title
EP1360579B1 (de) Verfahren und vorrichtung zum modularen multiplizieren und rechenwerk zum modularen multiplizieren
DE69826963T2 (de) Gerät für die modulare Inversion zur Sicherung von Information
WO2013060467A1 (de) Effiziente primzahlprüfung
DE102006025673A1 (de) Rechenwerk zum Reduzieren einer Eingabe-Zahl bezüglich eines Moduls
DE10219158B4 (de) Vorrichtung und Verfahren zum Berechnen eines Ergebnisses einer modularen Multiplikation
EP1543408A1 (de) Vorrichtung und verfahren zum berechnen einer multiplikation mit einer verschiebung des multiplikanden
DE10357661B4 (de) Modularer Montgomery-Multiplizierer und zugehöriges Multiplikationsverfahren
DE10304451B3 (de) Modulare Exponentiation mit randomisiertem Exponenten
EP1370933B1 (de) Verfahren und vorrichtung zum modularen multiplizieren
DE10260660B3 (de) Modulare Multiplikation mit paralleler Berechnung der Look-Ahead-Parameter u.a. bei der kryptographischen Berechnung
DE102006025713B9 (de) Kryptographie-Vorrichtung und Kryptographie-Verfahren zum Berechnen eines Ergebnisses einer modularen Multiplikation
EP2641241B1 (de) Verfahren zur langzahldivision oder modulare reduktion
DE102006025677B4 (de) Vorrichtung und Verfahren zum Berechnen eines Ergebnisses einer Summe mit einem Rechenwerk mit begrenzter Wortlänge
DE10151129B4 (de) Verfahren und Vorrichtung zum Berechnen eines Ergebnisses einer Exponentiation in einer Kryptographieschaltung
DE10219164B4 (de) Vorrichtung und Verfahren zum Berechnen eines ganzzahligen Quotienten
EP1478999B1 (de) Vorrichtung und verfahren zum umrechnen eines terms
EP1421474B1 (de) Verfahren und vorrichtung zum modularen multiplizieren
EP1474741B1 (de) Vorrichtung und verfahren zum berechnen eines ergebnisses aus einer division
WO2013060466A2 (de) Bestimmen eines divisionsrests und ermitteln von primzahlkandidaten für eine kryptographische anwendung
DE10042234C2 (de) Verfahren und Vorrichtung zum Durchführen einer modularen Exponentiation in einem kryptographischen Prozessor
DE102008050800B4 (de) Vorrichtung und Verfahren zum Bestimmen einer modularen multiplikativen Inversen
DE10156708A1 (de) Verfahren und Vorrichtung zum Multiplizieren und Verfahren und Vorrichtung zum Addieren auf einer elliptischen Kurve
DE102022201745A1 (de) Schnelle vorberechnung für montgomery- multiplikator
DE10201442C1 (de) Vorrichtung und Verfahren zum Multiplizieren oder Dividieren eines ersten Operanden mit bzw. durch einen zweiten Operanden
DE102010051852A1 (de) Verfahren zur Langzahldivision

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

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

AL Designated countries for regional patents

Kind code of ref document: A2

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

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

Ref country code: JP

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642