DE10219164B4 - Device and method for calculating an integer quotient - Google Patents
Device and method for calculating an integer quotient Download PDFInfo
- Publication number
- DE10219164B4 DE10219164B4 DE2002119164 DE10219164A DE10219164B4 DE 10219164 B4 DE10219164 B4 DE 10219164B4 DE 2002119164 DE2002119164 DE 2002119164 DE 10219164 A DE10219164 A DE 10219164A DE 10219164 B4 DE10219164 B4 DE 10219164B4
- Authority
- DE
- Germany
- Prior art keywords
- module
- reduction
- multiplier
- processing
- bits
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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/72—Methods 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/722—Modular multiplication
Abstract
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 erhalten.Device 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 multiplicand (C), with the following features:
a processing device (10) for processing bits of the multiplier (N) in a plurality of processing steps, the processing device (10) being designed to calculate, in one processing step, an intermediate result (Z) which is reduced in terms of the module and which of the one or more Binary multiplier bits that are considered in the one processing step;
means (12) for logging reduction information in the one processing step and for logging ordering information about one or more digits of the integer quotient affected by the one processing step; and
an evaluation device (14) for evaluating the reduction information and the order information from the processing steps in order to obtain the integer quotient (Q).
Description
Die vorliegende Erfindung bezieht sich auf Rechenalgorithmen und insbesondere auf Rechenalgorithmen, die für kryptographische Anwendungen benötigt werden.The The present invention relates to computing algorithms and in particular on computational algorithms for cryptographic applications needed become.
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 asymmetrischen 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öglichkeiten 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 particular in public key cryptography, but also in other areas of cryptography the key lengths steadily. This is because that too the security requirements for such cryptographic algorithms increase more and more. Using the RSA procedure as a representative of a asymmetric cryptography concept, i.e. a public key process security towards so-called brute force attacks the key length used. Brute-force attacks are attacks on a cryptographic algorithm in which Try all of them possibilities on a key to be closed. It is immediately clear that with increasing Key length the Time theoretically for a brute force attack is needed for all possibilities to try, increases sharply.
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üssellä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.In In this context it should be noted that RSA applications were used in earlier times with key lengths of 512 bits were considered sufficient. Due to technical and mathematical advances of the "opposite side" then became Key lengths for typical RSA applications increased to 1024 bits. Meanwhile, from some sides take the view that also this key length is not is sufficient so that RSA key lengths of 2048 bits are aimed for.
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 arithmetischen 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-Algorithmus 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 Exponentiation 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.If on the other hand existing cryptographic coprocessors such as e.g. B. on SmartCards, can be seen that of course the There is also a desire for RSA applications with, for example, 2048 bits of key lengths on cryptographic To run circuits that are actually only for key lengths of z. B. 1024 bits have been developed. So it's just a hallmark of arithmetic coprocessors for existing SmartCard applications, that she for one fixed bit length have been developed that do not meet the latest security requirements are suitable, d. H. are too small. As a result, for example a 2048-bit RSA algorithm on 1024-bit coprocessors is not efficient can be handled. For RSA applications are, for example, the Chinese remainder sentence (CRT; CRT = Chinese Remainder Theorem), in which a modular Exponentiation with large Key length in two modular exponentiations with half the key length is broken down, after which the Results of the two modular half-length exponents accordingly summarized become.
In jüngster Zeit hat sich herausgestellt, daß der chinesische Restsatz besonders anfällig gegenüber DFA-Angriffen (DFA = Differential Fault Analysis) ist.In recently, Time has turned out that the Chinese remainder particularly vulnerable across from DFA (Differential Fault Analysis) attacks.
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 2n Bits haben, so werden typischerweise Rechenwerke verwendet, die eine Länge von 2n 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.On The problem with many methods is therefore the "doubling" of the so-called modular multiplication, which is a key operation in cryptographic Calculations. So modular exponentiation can take many modular multiplications are broken down, d. H. into an operation in which a product of a first operand A and a second operand B in a residual class regarding of a module N is calculated. If operands A and B are each 2n bits, so arithmetic units are typically used that a length of 2n bits. These arithmetic units are due to their high Length as Long number arithmetic, in contrast to, for example, classic 8, 16, 32 or 64 bit architectures, the z. B. for PC or workstation processors are used.
Wünsche bestehen daher dahingehend, eine modulare Multiplikation A·B mod N mit Zahlen A, B und N der Bit-Länge 2n auf einem n-Bit-Rechenwerk auszuführen. Dies ist sehr zeitaufwendig, da die Zahlen A, B, N, ... immer nur bruchstückweise geladen 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.Wishes exist therefore, a modular multiplication A · B mod Execute N with numbers A, B and N of bit length 2n on an n-bit arithmetic unit. This is very time-consuming, since the numbers A, B, N, ... are only fragmentary can be loaded why conventional methods, unless they fail completely, are organizationally complex and prone to errors. In technology there is several methods by which this problem has been solved so far is. These procedures are called Montgomery multiplication, normal multiplication, e.g. B. with Karatsuba-Ofman and later reduction, such as B. Barret reduction, known.
Ein weiteres Konzept, bei dem eine Montgomery-Rechnung in einem „CRT-Fenster" verwendet wird, ist in P. Pailler, „Lowcost double size modular exponentiation or how to stretch your cryptocoprocessor" dargelegt.On another concept in which a Montgomery calculation is used in a "CRT window", is in P. Pailler, “Lowcost double size modular exponentiation or how to stretch your cryptocoprocessor ".
Sämtliche derartigen Konzepte sind aufwendig hinsichtlich der Rechenzeit und der Datenorganisation und daher nicht immer effizient.All Such concepts are expensive in terms of computing time and data organization and therefore not always efficient.
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 2n 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 × B mod N ergibt, auch das Ergebnis der entsprechenden ganzzahligen Division, d. h. der DIV-Operation, wobei dieses Ergebnis auch als ganzzahliger Quotient Q bezeichnet ist.In the German patent application filed on the same day with the title “Device and method for calculating a result of a modular multiplication”, a concept is described in which a modular multiplication for operands of 2n bits is converted into several so-called MMD operations for which Operands of half the length, ie with n bits, are sufficient In addition to the remainder resulting from A × B mod N, an MMD operation also supplies the result of the corresponding integer division, i. H. the DIV operation, this result also being referred to as an integer quotient Q.
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 × N + R rekonstruierbar ist. Die MMD-Operation (MMD = MultModDiv) dient daher einer Umrechnung eines beliebigen Terms T in einen ganzzahligen Quotienten Q und einen Rest R bezüglich eines Moduls N.Generally leads the Operation T mod N to a residue R if a term T is related to a Module N is reduced. The operation T div N delivers the integer quotients with respect to the module N, so that the term T from Q × N + R can be reconstructed. The MMD operation (MMD = MultModDiv) serves hence a conversion of any term T into an integer Quotient Q and a remainder R with respect to a module 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 basiert 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 Ergebnis der DIV-Operation benötigt wird.In the usual modular arithmetic used for cryptographic techniques the result of the DIV operation, So the integer quotient is not required and not calculated. However, the concept described above is based on it, also the DIV information, to use the integer quotient. So can too other applications in technology exist where not only the result of the MOD operation, i.e. the rest, is needed but also the integer quotient, i.e. the result of the DIV surgery needed becomes.
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.A Well-known, efficient and often used way to get the modular To calculate multiplication is technically called Montgomery multiplication known and z. B. in the "Handbook of Applied Cryptography ", Menezes, van Oorschot, Vanstone, CRC Press, pages 600-603. The Montgomery reduction is a technique that is an efficient implementation of the modular Multiplication allowed without the classic modular reduction step is carried out explicitly. Generally speaking, in the Montogomery reduction, the division operation is performed by simple displacement operations expressed.
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., Cryptographic Hardware and Embedded Systems (CHESS 2000), S. 281-289, Springer Lecture Notes, beschrieben.An extension of the Montgomery multiplication operation to the elliptical body GF (2 n ) is now also known. This extension is described in "Montgomery Multiplication in GF (2 k )", Koc, Azar, Designs, Codes and Cryptography, Vol. 14, 1998, pp. 57-69. This extension is also described in "A Scalable and Unified Multiplier Architecture for Finite Fields Z / NZ and GF (2 n ) ", Erkay Savas et al., Cryptographic Hardware and Embedded Systems (CHESS 2000), pp. 281-289, Springer Lecture Notes.
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.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 shifting operations, no look-ahead methods or look-ahead methods are used to accelerate the modular multiplication operation in terms of hardware.
Die
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.M is referred to as the multiplier, while C as the multiplicand referred to as. Z is the result of modular multiplication, while N is the module.
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_MULT_LA wird unter Verwendung verschiedener Look-Ahead-Regeln
ein Multiplikations-Verschiebungswert sZ sowie ein
Multiplikations-Vorausschau-Parameter
a berechnet (
Im
wesentlichen parallel dazu wird ein Reduktions-Vorausschau-Verfahren GEN_Mod_LA (
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.One case is that 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 'is subtracted from it. Among other things, 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, ie if s Z is greater than the maximum permissible value of s Z , which is also referred to as k becomes. In the event that a is equal to 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.
Die
Schritte
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
Der
Multiplikations-Verschiebungswert sZ sowie
der Multiplikations-Parameter a, welche im Schritt
Der
Reduktions-Verschiebungswert sN und der
Reduktions-Parameter
b werden, wie es ebenfalls in der
Das
ZDN-Verfahren, wie es in
Nachteilig an den oben beschriebenen Multiplikationskonzepten ist, daß lediglich die Modulo-Operation berechnet wird, daß jedoch nicht die DIV-Operation berechnet wird, also die Operation, 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 × 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 Multiplikation mit Zahlen einer bestimmten Länge auf einem Rechenwerk der halben Länge effizient auszuführen.adversely of the multiplication concepts described above is that only the modulo operation is calculated, but not the DIV operation is calculated, i.e. the operation that uses the integer quotient Q regarding of the module N of the product of the multiplier M and the multiplicand C returns, so that Product C × M = Q · N + Z represents. However, how it was done is the integer Quotient, however, for certain Applications useful using one of these applications as described above is a modular multiplication with numbers one certain length Execute efficiently on a half-length calculator.
Die
Die
Die Aufgabe der vorliegenden Erfindung besteht darin, ein Konzept zum einfach und effizient implementierbaren Berechnen eines ganzzahligen Quotienten zu schaffen.The The object of the present invention is to provide a concept for easily and efficiently implementable calculation of an integer quotient to accomplish.
Diese Aufgabe wir durch eine Vorrichtung nach Anspruch 1 oder ein Verfahren nach Anspruch 16 gelöst.This Task we by a device according to claim 1 or a method solved according to claim 16.
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 Multiplikators 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.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 the bits of the multiplier in Process or "scan" several processing steps sequentially, the integer quotient without intervention in the arithmetic unit itself and furthermore without any or minimal intervention can be extracted into the control section that controls the arithmetic unit.
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.at the usual modular arithmetic is the integer quotient, i.e. the result the DIV operation is always ignored due to a lack of appropriate use Service. According to the invention, the integer Quotient using a processor to calculate the remainder of a term regarding of a module, such that in each processing step, in which the processor is one regarding of the module reduced intermediate result calculated, reduction information on the one hand and order information on the other, which relates to Digits of the integer quotient related to each Processing step are affected, are logged. Then, after the multiplier bits by means of the multiple processing steps the reduction information logged is processed and order information is evaluated by the respective steps, to the integer without complex arithmetic operations To get quotients.
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.at a preferred embodiment in parallel with the processing of the multiplier bits by the processing device Log register kept, being bits of certain order, determined by the ordering information is determined using the reduction information after be set or not set in each processing step. Become two or more such protocol registers are used Device capable of evaluating, simply by adding or subtract the log registers after all have been processed Multiplier bits to get the integer quotient.
Die Erfindung 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.The Invention is particularly advantageous in that none Information needed be that over Information goes beyond that of such processing equipment anyway to calculate the modulo operation. The integer The quotient is thus "free of charge" to a certain extent (especially with regard to the Computing time) and without intervention in the arithmetic unit of the processing device receive. Only a logging device has to be provided be the ones needed Reduction information or order information at the end of each Processing step extracted from the control part.
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.at a final one Evaluation of the protocol information by an evaluation device the integer quotient then results without a single change on the hardwired calculator was.
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 oder persönliche Informationen, verarbeitet werden, wenn z. B. an Smartcards oder allgemein Chipkarten gedacht wird.This The fact is of particular importance in that cryptographic Arithmetic units are typically long-number arithmetic units that are specific Operations such as B. the modular multiplication are optimized. Interventions in such long number arithmetic units, which are typically added with 1024 or more individual adders or "bit slices" are in Draft complex, prone to errors and disadvantageous in that again complete function tests must be carried out. Especially for safety-critical ones Applications, for the usual Cryptography algorithms are used is the security aspect of particular importance as sensitive information, such as amounts of money or personal Information processed when e.g. B. on smart cards or is generally thought of smart cards.
Das erfindungsgemäße Verfahren ist ferner dahin gehend vorteilhaft, 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.The inventive method is also advantageous in that it also requires little computing time is what is particularly important when complex cryptographic Algorithms are to be calculated, using processors based on the fact that their chip area is limited when thinking again of chip cards Have computing and storage resources.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend bezug nehmend auf die beiliegenden Zeichnungen detailliert erläutert. Es zeigen:preferred embodiments of the present invention are hereinafter referred to the accompanying drawings explained in detail. Show it:
Die
erfindungsgemäße Vorrichtung
umfaßt ferner
eine Protokollierungseinrichtung
Hardware-technisch
wird es bevorzugt, die modulare Reduktion durch Subtraktion des
Moduls durchzuführen,
wobei in einem Verarbeitungsschritt je nach Implementierung des
Rechenwerks
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.at a preferred embodiment of the The present invention is based on the logging device the hardware-technical simple implementation as a register set trained with one or more registers, which step by step be described and finally, after the processing of the complete multiplier by the evaluation device evaluated in a suitable manner, such as. B. added or subtracted, to get the integer quotient Q.
Im
nachfolgenden wird Bezug nehmend auf
Nachfolgend
wird anhand von
Wird
eine zweite Modulsubtraktion durchgeführt (Block
Aus
Aus
Der
in
Wie
es durch einen nachfolgenden Block dargestellt ist, erzeugt die
ZDN-Einrichtung
In
einem Schritt
Im
nachfolgenden wird anhand von
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
Die
Reduktionsinformationen sind tabellarisch in einem Block
Die
Auswertungseinrichtung
Aus dem Vorstehenden ist für Fachleute ersichtlich, daß die Erfindung besonders für eine Hardwaretechnische Realisierung geeignet ist. Dies ist vorteilhaft, da eine Software-technische Realisierung des MMD-Befehls Performance- und Verwaltungsaufwand kostet.Out the above is for Experts can see that the Invention especially for a hardware implementation is suitable. This is beneficial because a software-technical implementation of the MMD command performance and administration costs.
Die Erfindung 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 Auswertungseinrichtung 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.The invention replaces such a software-technical implementation. In particular, it can 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 modular multiplication command that is usually present can thus be supplemented easily and less prone to errors by the result of the DIV operation, that is to say the integer quotient.
- 1010
- Verarbeitungseinrichtungprocessing device
- 10a10a
- Rechenwerkcalculator
- 10b10b
- ControlteilControl part
- 1212
- Protokollierungseinrichtunglogging equipment
- 1414
- Auswertungseinrichtungevaluation device
- 2020
- Initialisierungsschrittinitialization
- 20'20 '
- Initialisierunginitialization
- 2121
- BituntersuchungsschrittBituntersuchungsschritt
- 22a, 22b22a, 22b
- ZwischenergebnisberechnungInterim results calculation
- 2323
- Erster Modulvergleichfirst module comparison
- 2424
- Erste ModulsubtraktionFirst modulus subtraction
- 2525
- Zweiter Modulvergleichsecond module comparison
- 2626
- Zweite ModulsubtraktionSecond modulus subtraction
- 2727
- IndexuntersuchungIndex study
- 2828
- IndexinkrementierungIndexinkrementierung
- 30a30a
- Reduktionsinformationen ohne Modulsubtraktionreduction information without module subtraction
- 30b30b
- Reduktionsinformationen nach einer Modul-Subtraktionreduction information after module subtraction
- 30c30c
- Reduktionsinformationen nach zwei Modul-Subtraktionenreduction information after two module subtractions
- 3232
- Addition der Hilfsregisteraddition the auxiliary register
- 4040
- Initialisierunginitialization
- 40'40 '
- Initialisierunginitialization
- 4242
- IterationsuntersuchungIterationsuntersuchung
- 4444
- ZwischenergebnisuntersuchungIntermediate result inquiry
- 4646
- Moduladditionmodule addition
- 5050
- OrdnungsinformationsberechnungOrder information calculation
- 5252
- ReduktionsinformationsberechnungReduction information calculating
- 5454
- ReduktionsinformationskorrekturReduction information correction
- 5656
- Subtraktion der Hilfsregistersubtraction the auxiliary register
- 900900
- Start des ZDN-Algorithmusbegin of the ZDN algorithm
- 910910
- Multiplikations-Look-Ahead-AlgorithmusMultiplication look-ahead algorithm
- 920920
- Zwischenergebnis-VerschiebungIntermediate-result shift
- 930930
- Reduktions-Look-Ahead-AlgorithmusReduction look-ahead algorithm
- 940940
- Modulverschiebungmodule shift
- 950950
- 3-Operanden-Operation3-operand operation
- 960960
- Ende des ZDN-AlgorithmusThe End of the ZDN algorithm
Claims (16)
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE2002119164 DE10219164B4 (en) | 2002-04-29 | 2002-04-29 | Device and method for calculating an integer quotient |
PCT/EP2003/004427 WO2003093970A2 (en) | 2002-04-29 | 2003-04-28 | Device and method for calculating an integer quotient |
AU2003224137A AU2003224137A1 (en) | 2002-04-29 | 2003-04-28 | Device and method for calculating an integer quotient |
TW92109930A TW200400442A (en) | 2002-04-29 | 2003-04-28 | Apparatus and method for calculating an integer quotient |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE2002119164 DE10219164B4 (en) | 2002-04-29 | 2002-04-29 | Device and method for calculating an integer quotient |
Publications (2)
Publication Number | Publication Date |
---|---|
DE10219164A1 DE10219164A1 (en) | 2003-11-20 |
DE10219164B4 true DE10219164B4 (en) | 2004-12-02 |
Family
ID=29264906
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2002119164 Expired - Fee Related DE10219164B4 (en) | 2002-04-29 | 2002-04-29 | Device and method for calculating an integer quotient |
Country Status (4)
Country | Link |
---|---|
AU (1) | AU2003224137A1 (en) |
DE (1) | DE10219164B4 (en) |
TW (1) | TW200400442A (en) |
WO (1) | WO2003093970A2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102006025673B4 (en) * | 2005-10-28 | 2010-04-22 | Infineon Technologies Ag | Calculator for reducing an input number with respect to a module |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102006025713B9 (en) | 2005-10-28 | 2013-10-17 | Infineon Technologies Ag | Cryptographic device and cryptographic method for calculating a result of a modular multiplication |
DE102006025677B4 (en) | 2005-10-28 | 2020-03-12 | Infineon Technologies Ag | Device and method for calculating a result of a sum with an arithmetic unit with a limited word length |
DE102006025569A1 (en) | 2005-10-28 | 2007-05-03 | Infineon Technologies Ag | Modular multiplication process for cryptography uses multiplicand in three bit segments in an multiplication addition operation |
US20220121424A1 (en) * | 2020-10-21 | 2022-04-21 | PUFsecurity Corporation | Device and Method of Handling a Modular Multiplication |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3631992C2 (en) * | 1986-03-05 | 1988-12-08 | Holger 3300 Braunschweig De Sedlak | |
DE69900127T2 (en) * | 1998-04-02 | 2001-09-13 | St Microelectronics Sa | Improved procedure for performing integer division |
DE69802016T2 (en) * | 1997-09-09 | 2002-01-31 | St Microelectronics Sa | Method and arrangement for performing integer division operations with a modulo-arithmetic coprocessor |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0786826B2 (en) * | 1988-07-19 | 1995-09-20 | 日本電気株式会社 | Integer division circuit |
US5710730A (en) * | 1995-03-31 | 1998-01-20 | International Business Machines Corporation | Divide to integer |
SE517045C2 (en) * | 2000-10-17 | 2002-04-09 | Novacatus Invest Ab | Method and device for module multiplication and use of method for asymmetric encryption / decryption |
-
2002
- 2002-04-29 DE DE2002119164 patent/DE10219164B4/en not_active Expired - Fee Related
-
2003
- 2003-04-28 AU AU2003224137A patent/AU2003224137A1/en not_active Withdrawn
- 2003-04-28 WO PCT/EP2003/004427 patent/WO2003093970A2/en not_active Application Discontinuation
- 2003-04-28 TW TW92109930A patent/TW200400442A/en unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3631992C2 (en) * | 1986-03-05 | 1988-12-08 | Holger 3300 Braunschweig De Sedlak | |
DE69802016T2 (en) * | 1997-09-09 | 2002-01-31 | St Microelectronics Sa | Method and arrangement for performing integer division operations with a modulo-arithmetic coprocessor |
DE69900127T2 (en) * | 1998-04-02 | 2001-09-13 | St Microelectronics Sa | Improved procedure for performing integer division |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102006025673B4 (en) * | 2005-10-28 | 2010-04-22 | Infineon Technologies Ag | Calculator for reducing an input number with respect to a module |
DE102006025673B9 (en) * | 2005-10-28 | 2010-12-16 | Infineon Technologies Ag | Calculator for reducing an input number with respect to a module |
Also Published As
Publication number | Publication date |
---|---|
TW200400442A (en) | 2004-01-01 |
DE10219164A1 (en) | 2003-11-20 |
WO2003093970A2 (en) | 2003-11-13 |
AU2003224137A1 (en) | 2003-11-17 |
WO2003093970A3 (en) | 2004-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1360579B1 (en) | Method and device for conducting modular multiplication and arithmetic-logic unit for conducting modular multiplication | |
DE69826963T2 (en) | Device for modular inversion for securing information | |
EP2771782A1 (en) | Efficient prime-number check | |
DE102020102453A1 (en) | Integrated circuit for the modular multiplication of two whole numbers for a cryptographic method and method for the cryptographic processing of data based on modular multiplication | |
DE10219158B4 (en) | Device and method for calculating a result of a modular multiplication | |
DE10357661B4 (en) | Modular Montgomery multiplier and associated multiplication method | |
WO2004059463A1 (en) | Device and method for calculating a multiplication involving a shifting of the multiplicand | |
DE10304451B3 (en) | Modular exponentiation with randomized exponent | |
EP1370933B1 (en) | Method and device for modular multiplication | |
DE10260660B3 (en) | Modular multiplication device for cryptographic applications with parallel calculation of look-ahead parameters for next iteration step during 3 operand addition | |
DE10219164B4 (en) | Device and method for calculating an integer quotient | |
DE102006025677B4 (en) | Device and method for calculating a result of a sum with an arithmetic unit with a limited word length | |
EP1478999B1 (en) | Device and method for converting a term | |
DE10151129B4 (en) | Method and device for calculating a result of an exponentiation in a cryptography circuit | |
EP1474741B1 (en) | System and method for calculating a result from a division | |
DE10142155C1 (en) | Processor modular multiplication method uses determination of multiplication shift values and reduction shift values and successive actualisation of intermediate result | |
WO2013060466A2 (en) | Determination of a division remainder and detection of prime number candidates for a cryptographic application | |
DE102008050800B4 (en) | Apparatus and method for determining a modular multiplicative inverse | |
DE10223853B4 (en) | Method and integrated circuit for performing a multiplication modulo M | |
EP1497713B1 (en) | Processor and method for simultaneously doing a calculation and carrying out a copying process | |
DE10156708A1 (en) | Method and device for multiplying and method and device for adding on an elliptic curve | |
DE102020133312A1 (en) | CRYPTOGRAPHIC PROCESSING DEVICE AND METHOD FOR CRYPTOGRAPHIC PROCESSING OF DATA |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8364 | No opposition during term of opposition | ||
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |