DE102004044453A1 - Data value testing method for cryptographic applications, involves determining auxiliary value in course of prime number test, and withdrawing another prime number test by auxiliary value - Google Patents
Data value testing method for cryptographic applications, involves determining auxiliary value in course of prime number test, and withdrawing another prime number test by auxiliary value Download PDFInfo
- Publication number
- DE102004044453A1 DE102004044453A1 DE200410044453 DE102004044453A DE102004044453A1 DE 102004044453 A1 DE102004044453 A1 DE 102004044453A1 DE 200410044453 DE200410044453 DE 200410044453 DE 102004044453 A DE102004044453 A DE 102004044453A DE 102004044453 A1 DE102004044453 A1 DE 102004044453A1
- Authority
- DE
- Germany
- Prior art keywords
- test
- primality
- value
- data
- prime
- 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.)
- Withdrawn
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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/3033—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to pseudo-prime or prime number generation, e.g. primality test
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7204—Prime number generation or prime number testing
Abstract
Description
Die Erfindung betrifft allgemein das Gebiet der Kryptographie. Spezieller betrifft die Erfindung das Gebiet der probabilistischen Primzahltests und der probabilistischen Primzahlermittlung. Die vorliegend beschriebenen Verfahren werden als "probabilistisch" bezeichnet, weil sie mit einer gewissen Fehlerwahrscheinlichkeit eine zusammengesetzte Zahl fälschlich als Primzahl identifizieren. Dagegen wird bei den hier betrachteten Verfahren eine Primzahl nie fälschlich als zusammengesetzte Zahl angesehen.The This invention relates generally to the field of cryptography. special The invention relates to the field of probabilistic primality tests and the probabilistic prime number determination. The present described Procedures are referred to as "probabilistic" because they make a compound with a certain probability of error Number wrongly identify as prime. By contrast, in the case considered here a prime never falsely considered as a composite number.
Effiziente Primzahltests und effiziente Verfahren zur Primzahlermittlung sind für viele kryptographische Anwendungen erforderlich. So müssen z.B. zur Schlüsselgenerierung bei dem im US-Patent 4,405,829 beschriebenen RSA-Verfahren zwei geheime Primzahlen festgelegt werden. Die Größe dieser Primzahlen hängt von den Sicherheitsanforderungen ab und beträgt in der Regel einige hundert bis einige tausend Bits. Diese Größe wird voraussichtlich in Zukunft noch deutlich ansteigen. Da die Primzahlen geheim gehalten werden müssen, muß die Primzahlerzeugung in einer sicheren Umgebung wie z.B. einer Chipkarte oder einer abgeschirmten kryptographischen Einheit ausgeführt werden. Derartige Systeme weisen in der Regel nur eine relativ geringe Rechenleistung und relativ wenig verfügbaren Speicherplatz auf, so daß auf einen geringen Ressourcenbedarf des für die Primzahlerzeugung verwendeten Verfahrens geachtet werden muß.efficient Primality tests and efficient prime numbering techniques for many cryptographic applications required. For example, for key generation in the RSA method described in U.S. Patent 4,405,829, two secret primes are set. The size of these primes depends on the security requirements and is usually a few hundred up to a few thousand bits. This size is expected in Future still significantly increase. Because the primes are kept secret Need to become, must the Prime number generation in a secure environment such as a chip card or a shielded cryptographic unit. Such systems usually have only a relatively low computing power and relatively little available Space on, so on a low resource requirement of the one used for the prime number generation Procedure must be respected.
Bei der gerade erwähnten Primzahlerzeugung zur Schlüsselgenerierung für asymmetrische (public key) Kryptosysteme werden Zahlen in einem vorgegebenen Suchbereich zufällig – zumindest auf Grundlage von Zufallszahlen – gewählt und auf ihre Primzahleigenschaft überprüft, bis eine wahrscheinliche Primzahl gefunden ist. Hierfür muß die durchschnittliche Fehlerwahrscheinlichkeit des Primzahltests gering sein. Bei anderen Anwendungsgebieten, z.B. dem Schlüsselaustauschprotokoll nach Diffie und Hellman, muß ein Parameter eines öffentlichen Schlüssels auf eine Primzahleigenschaft überprüft werden. Da dieser Parameter von einem Gegenspieler gewählt worden sein kann, muß hier die Fehlerwahrscheinlichkeit im ungünstigsten Fall (worst case error probability) klein sein.at the one just mentioned Prime number generation for key generation for asymmetrical (public key) Cryptosystems become numbers in a given search area by chance - at least on the basis of random numbers - chosen and checked for their prime property until a probable prime number is found. For this, the average Error probability of the primality test should be low. For others Application areas, e.g. according to the key exchange protocol Diffie and Hellman, must have a parameter a public key be checked for prime property. Since this parameter may have been chosen by an opponent, here must Probability of error in the worst case Case (worst case error probability) be small.
Bei allen vorliegend betrachteten probabilistischen Primzahltests läßt sich eine beliebig kleine zugesicherte Fehlerwahrscheinlichkeit erreichen, indem hinreichend viele Testrunden durchgeführt werden. Allgemein bestimmt sich der zum Erreichen eines bestimmten Zuverlässigkeitsgrades erforderliche Aufwand – der möglichst klein gehalten werden soll – aus der Anzahl der benötigten Testrunden und dem Aufwand für jeden einzelnen Test. In der Praxis ist es auch bedeutsam, daß eine möglichst gute mathematische Abschätzung der durch eine bestimmte Anzahl von Testrunden erzielbaren Fehlerwahrscheinlichkeit vorliegt, damit überflüssiger Rechenaufwand vermieden werden kann.at All of the probabilistic primality tests considered here can be achieve an arbitrarily small guaranteed probability of error, by conducting a sufficient number of test rounds. Generally determined the required to reach a certain level of reliability Effort - the possible should be kept small - off the number of needed Test rounds and the effort for every single test. In practice, it is also important that one possible good mathematical estimation the error probability that can be achieved by a certain number of test rounds present, thus unnecessary calculation effort can be avoided.
Ein bekannter probabilistischer Primzahltest ist der Miller-Rabin-Test, der in dem Artikel "Probabilistic algorithms for testing primality" von Michael O. Rabin, erschienen im Journal of Number Theory 12, 1980, Seiten 128–138, beschrieben ist. Dem Miller-Rabin-Test liegt die mathematische Tatsache zugrunde, daß für eine Primzahl n folgendes gilt: der Ring Zn der ganzen Zahlen modulo n ist dem Galois-Feld GF(n) äquivalent, seine multiplikative Gruppe Zn* ist zyklisch mit der Ordnung n – 1, und es gibt genau eine primitive zweite Einheitswurzel, nämlich –1. Wenn für ein gegebenes n eine dieser Eigenschaften nicht zutrifft, dann kann n keine Primzahl sein.One known probabilistic primality test is the Miller-Rabin test described in the article "Probabilistic Algorithms for Testing Primality" by Michael O. Rabin, published in the Journal of Number Theory 12, 1980, pages 128-138. The Miller-Rabin test is based on the mathematical fact that the following applies to a prime number n: the ring Z n of the integers modulo n is equivalent to the Galois field GF (n), its multiplicative group Z n * is cyclic with the Order n - 1, and there is exactly one primitive second unit root, -1. If, for a given n, one of these properties is not true, then n can not be a prime.
Der Miller-Rabin-Test beruht auf der Grundidee, zufällig ein Element aus Zn* auszuwählen und zu überprüfen, ob seine Ordnung durch n – 1 teilbar ist. Ferner werden einige Berechnungen in der 2-Sylow-Gruppe von Zn durchgeführt, um zu überprüfen, ob außer ±1 weitere Quadratwurzeln von 1 vorhanden sind, wie dies für die meisten zusammengesetzten n der Fall ist.The Miller-Rabin test is based on the basic idea of randomly selecting an element from Z n * and checking whether its order is divisible by n-1. Further, some calculations are performed in the 2-Sylow group of Z n to check if there are more than 1 additional square roots of 1, as is the case for most composite n.
Die Fehlerwahrscheinlichkeit des Miller-Rabin-Tests im ungünstigsten Fall beträgt höchstens 4–t, wenn t Testrunden ausgeführt werden.The error probability of the Miller-Rabin tests in the worst case is at most 4 -t, where t test rounds are executed.
Ein weiterer probabilistischer Primzahltest ist als quadratischer Frobenius-Test (QFT – quadratic Frobenius test) bekannt. Der QFT wurde in dem Artikel "A probable prime test with high confidence" von Jon Grantham, erschienen im Journal of Number Theory 72 (1), 1998, Seiten 32–47, vorgestellt. Seither hat der QFT reges Interesse in Wissenschaft und Praxis erfahren, und eine Reihe von Abwandlungen und Weiterentwicklungen sind vorgeschlagen worden. Nur beispielhaft wird hier der erweiterte quadratische Frobenius-Test (EQFT – extended quadratic Frobenius test) genannt, der in dem Forschungsbericht von Ivan B. Damgard und Gudmund S. Frandsen, "An extended quadratic Frobenius primality test with average and worst case error estimates", BRICS RS-03-9, Universität Aarhus, Dänemark, Februar 2003, beschrieben ist.Another probabilistic primality test is known as the quadratic Frobenius test (QFT - quadratic Frobenius test). The QFT was presented in the article "A probable prime test with high confidence" by Jon Grantham, published in the Journal of Number Theory 72 (1), 1998, pages 32-47. Since then, the QFT has received keen interest in science and practice, and a number of modifications and advancements have been proposed. By way of example only, the extended quadratic Frobenius test (EQFT) is mentioned here, which is described in the research report by Ivan B. Damgard and Gudmund S. Frandsen, "An extended quadratic Frobenius primality test with average and worst case error esti mates ", BRICS RS-03-9, Aarhus University, Denmark, February 2003.
Ausgangspunkt für den QFT ist die mathematische Tatsache, daß der Ring Zn[x]/f(x) dem Galois-Feld GF(n2) äquivalent ist, wenn n eine Primzahl ist und f(x) ein irreduzibles quadratisches Polynom über Zn ist. Für eine Primzahl n sind in GF(n2) diverse Eigenschaften erfüllt und können unter Verwendung zufällig gewählter Elemente aus (Zn[x]/f(x))* überprüft werden. So ist die multiplikative Gruppe von GF(n2) zyklisch mit der Ordnung n2 – 1, so daß die Ordnung jedes z ∊ (Zn[x]/f(x))* durch n2 – 1 teilbar sein muß. Ferner gibt es einen natürlichen Automorphismus, nämlich die Konjugation in Zn[x]/f(x), der für jede Primzahl n äquivalent zum Frobenius-Automorphismus z → zp in GF(n2) ist. Außerdem ist, wenn n nicht durch 2 oder 3 teilbar ist, n2 – 1 durch 24 teilbar, und der Körper GF(n2) weist eine durch eine primitive Wurzel erzeugte, zyklische Gruppe von 24-ten Einheitswurzeln auf, wenn n eine Primzahl ist. Alle primitiven q-ten Einheitswurzeln z müssen, sofern sie existieren, die Gleichung Φq(z) = 0 für das q-te Kreisteilungspolynom Φq erfüllen.The starting point for the QFT is the mathematical fact that the ring Z n [x] / f (x) is equivalent to the Galois field GF (n 2 ) if n is a prime and f (x) is an irreducible quadratic polynomial over Z n is. For a prime number n, various properties are fulfilled in GF (n 2 ) and can be checked using randomly selected elements from (Z n [x] / f (x)) *. Thus, the multiplicative group of GF (n 2 ) is cyclic with order n 2 - 1, so that the order of each z ε (Z n [x] / f (x)) * must be divisible by n 2 - 1. Furthermore, there is a natural automorphism, namely the conjugation in Z n [x] / f (x), which for every prime number n is equivalent to the Frobenius automorphism z → z p in GF (n 2 ). In addition, if n is not divisible by 2 or 3, n 2 -1 is divisible by 24, and the body GF (n 2 ) has a cyclic group of 24th roots of unity generated by a primitive root if n is a prime number is. All primitive q-th roots z, if they exist, must satisfy the equation Φ q (z) = 0 for the q-th circular pitch polynomial Φ q .
In unterschiedlichen Varianten des QFT werden unterschiedliche der oben genannten Eigenschaften – oder Kombinationen davon – überprüft. Das quadratische Polynom f(x) kann hierbei entweder zufällig gewählt werden oder fest vorgegeben sein. Der Aufwand für jede Testrunde und die damit erzielte Verringerung der Fehlerwahrscheinlichkeit hängen von den Einzelheiten des jeweils verwendeten Verfahrens ab. So hat beispielsweise der ursprüngliche, von Grantham vorgeschlagene QFT im schlechtesten Fall eine Fehlerwahrscheinlichkeit von ungefähr 7710–t für t Testrunden, und die Laufzeit ist ungefähr äquivalent zu drei Miller-Rabin-Tests pro Testrunde.In different variants of the QFT different of the above properties - or combinations thereof - are checked. The quadratic polynomial f (x) can either be chosen randomly or fixed. The cost of each round of testing and the resulting reduction in the probability of error depend on the details of the method used. For example, the original, proposed by Grantham QFT in the worst case, a probability of error of about 7710 t for t rounds of testing, and the running time is approximately equivalent to three Miller-Rabin tests per lap.
Eine in dem bereits erwähnten Forschungsbericht von Damgard et al. unter der Bezeichnung EQFTwc vorgestellte Ausgestaltung des EQFT hat eine Fehlerwahrscheinlichkeit von ungefähr 256·576–2t für t Testrunden und eine Laufzeit, die ungefähr der Laufzeit von zwei Miller-Rabin-Tests pro Testrunde entspricht. Allerdings sind zusätzliche vorbereitende Berechnungsschritte erforderlich, deren Aufwand dem Aufwand für zwei Miller-Rabin-Tests entspricht. Eine weitere von Damgard et al. vorgeschlagene Variante mit der Bezeichnung EQFTac benötigt zwar diese vorbereitenden Berechnungsschritte nicht, erreicht aber nicht in jedem Fall die gewünschte Laufzeit von zwei Miller-Rabin-Tests pro Testrunde.One in the previously mentioned research report by Damgard et al. The EQFT design presented under the designation EQFTwc has an error probability of approximately 256 · 576 -2 t for t rounds of testing and a running time which approximately corresponds to the runtime of two miller rabin tests per test round. However, additional preparatory calculation steps are required, the cost of which is the cost of two Miller-Rabin tests. Another of Damgard et al. Although the proposed variant called EQFTac does not require these preparatory calculation steps, it does not always achieve the desired runtime of two Miller Rabin tests per test round.
Aufgabe der Erfindung ist es, eine besonders effiziente Technik zum Primzahltest und für die Primzahlsuche vorzuschlagen. Insbesondere soll eine vorgegebene maximale Fehlerwahrscheinlichkeit mit möglichst geringem Rechenaufwand erzielt werden. In bevorzugten Ausgestaltungen soll sich die Erfindung besonders gut zur Implementierung auf tragbaren Datenträgern und anderen ressourcenbeschränkten Systemen eignen.task The invention is a particularly efficient technique for primality testing and for to suggest the prime number search. In particular, a predetermined maximum error probability with the least possible computational effort be achieved. In preferred embodiments, the invention especially good for implementation on portable data carriers and other resource constrained Systems are suitable.
Erfindungsgemäß wird diese Aufgabe ganz oder zum Teil gelöst durch ein Testverfahren mit den Merkmalen des Anspruchs 1, ein Suchverfahren mit den Merkmalen des Anspruchs 14, ein Computerprogrammprodukt gemäß Anspruch 19 und eine Vorrichtung gemäß Anspruch 20. Die abhängigen Ansprüche betreffen bevorzugte Ausgestaltungen der Erfindung.According to the invention this Task solved in whole or in part by a test method having the features of claim 1, a search method with the features of claim 14, a computer program product according to claim 19 and a device according to claim 20. The dependent ones claims relate to preferred embodiments of the invention.
Die Erfindung geht von der Grundüberlegung aus, für den Primzahltest mindestens zwei unterschiedliche probabilistische Testverfahren einzusetzen. Ein erster Primzahltest wird gemäß einem ersten Testverfahren durchgeführt. Wenn der erste Primzahltest den zu überprüfenden Datenwert als mögliche Primzahl erkennt, wird mindestens ein weiterer Primzahltest gemäß einem zweiten Testverfahren ausgeführt. Hierbei ist erfindungsgemäß vorgesehen, daß bei dem mindestens einen weiteren Primzahltest mindestens ein im Zuge des ersten Primzahltests ermittelter Hilfswert verwendet wird. Die vom ersten Testverfahren gewonnenen Informationen gehen somit nicht verloren, sondern sie werden genutzt, um den für den mindestens einen weiteren Primzahltest erforderlichen Berechnungsaufwand zu verringern.The Invention is based on the basic idea out, for the primality test at least two different probabilistic ones Use test method. A first primality test is performed according to a first test procedure. If the first primality test is the data value to check as a possible prime recognizes, at least one more primality test is performed according to a run second test method. This is inventively provided that at the at least one further primality test at least one in the course of the initial value tests. The ones from Thus, information obtained in the first test procedure is not but they are used for at least one more Primality test required calculation effort.
Durch die erfindungsgemäße Verwendung zweier Testverfahren können diese den Erfordernissen besonders gut angepaßt werden. Insbesondere ist in bevorzugten Ausgestaltungen vorgesehen, als erstes Testverfahren ein relativ schnelles Verfahren zu verwenden, das zusammengesetzte Zahlen bereits in vielen "einfachen Fällen" mit geringem Aufwand erkennt. Das in bevorzugten Ausgestaltungen aufwendigere zweite Testverfahren braucht dann nur für die verbleibenden zu testenden Zahlen, die entweder Primzahlen oder nicht so einfach zu erkennende zusammengesetzte Zahlen sind, verwendet zu werden. Beruhend auf den erfindungsgemäßen Ideen lassen sich Ausführungsbeispiele der Erfindung implementieren, die im schlechtesten Fall eine Fehlerwahrscheinlichkeit von ungefähr 2–12t für t Testrunden aufweisen und deren Laufzeit stets der Laufzeit von zwei Miller-Rabin-Tests pro Testrunde des zweiten Testverfahrens entspricht; der erste Primzahltest gemäß dem ersten Testverfahren benötigt in diesen Ausführungsbeispielen lediglich eine Laufzeit wie ein Miller-Rabin-Test.By using two test methods according to the invention, these can be adapted to the requirements particularly well. In particular, it is provided in preferred embodiments to use as the first test method, a relatively fast method that recognizes compound numbers already in many "simple cases" with little effort. The second test procedure, which is more expensive in preferred embodiments, then only needs to be used for the remaining numbers to be tested, which are either prime numbers or not so easily recognizable composite numbers. Based on the ideas according to the invention, embodiments of the invention can be implemented which, in the worst case, have an error probability of approximately 2 -12 t for t rounds of testing and whose running time always corresponds to the duration of two Miller-Rabin tests per test round of the second test method; the first primality test according to the first test method only requires a runtime such as one mil in these exemplary embodiments ler-Rabin test.
Zur Verringerung der Fehlerwahrscheinlichkeit werden vorzugsweise Primzahltests nach dem zweiten Testverfahren mehrmals ausgeführt, bis die zu überprüfende Zahl entweder als zusammengesetzt erkannt wurde oder bis eine vorgegebene Maximalzahl von Testrunden erreicht ist. Die zu überprüfende Zahl wird in solchen Ausgestaltungen nur dann als wahrscheinliche Primzahl identifiziert, wenn sie den ersten Primzahltest und alle weiteren Primzahltests bestanden hat.to Reduction of the error probability will preferably be primality tests run several times after the second test procedure until the number to be checked was either recognized as composed or until a predetermined one Maximum number of test rounds is reached. The number to be checked is in such Embodiments only identified as a probable prime number, if they take the first primality test and all other primality tests has passed.
In bevorzugten Ausgestaltungen beruht das erste Testverfahren auf den Grundideen des Miller-Rabin-Tests, während das zweite Testverfahren von den Grundideen des quadratischen Frobenius-Tests ausgeht. Die weiteren Primzahltests brauchen nicht notwendigerweise nach einem einheitlichen Verfahren ausgeführt zu werden. Vielmehr ist in machen Ausgestaltungen der Erfindung vorgesehen, daß die weiteren Primzahltests zunächst gemäß dem zweiten Testverfahren und dann gemäß einer vereinfachten Variante des zweiten Testverfahrens ausgeführt werden.In In preferred embodiments, the first test method is based on the Basic ideas of the Miller-Rabin test, while the second test procedure starting from the basic ideas of the quadratic Frobenius test. The further primality tests do not necessarily need one uniform procedure to become. Rather, in some embodiments of the invention provided that the further primality tests first according to the second Test method and then according to a simplified variant of the second test method can be performed.
Bei dem erfindungsgemäßen Verfahren zur Primzahlsuche wird der Reihe nach je mindestens ein Datenwert bestimmt und durch ein erfindungsgemäßes Testverfahren – oder eine Weiterentwicklung davon – auf seine Primzahleigenschaft hin überprüft.at the method according to the invention The search for prime numbers is always followed by at least one data value determined and by an inventive test method - or a Further development - on his Primary property checked out.
Insbesondere bei Anwendungen zu kryptographischen Zwecken soll die bei der Primzahlsuche ermittelte Primzahl durch Dritte nicht vorhersehbar sein. Es ist daher in bevorzugten Ausgestaltungen vorgesehen, daß der ermittelte Datenwert eine Zufallszahl repräsentiert.Especially for applications for cryptographic purposes, the prime number search determined prime number can not be foreseen by third parties. It is Therefore provided in preferred embodiments that the determined Data value represents a random number.
Vorzugsweise ist das Verfahren zur Primzahlsuche mit Ideen weitergebildet, die bereits in der deutschen Patentanmeldung 10 2004 007 615.4 vom 17. Februar 2004 desselben Erfinders und derselben Anmelderin beschrieben wor den sind. Insbesondere kann vorgesehen sein, daß die untersuchten Datenwerte Testsequenzen folgen, die jeweils von einem zufällig bestimmten Startwert ausgehen. Die Anzahl der Testrunden, die ein Datenwert bestehen muß, um als Primzahl zu gelten, wird vorzugsweise mit fortschreitender Dauer der Suche – z.B. mit zunehmender Anzahl von erfolglos durchsuchten Testsequenzen – sukzessive erhöht.Preferably the process for prime number search is further developed with ideas that already in the German patent application 10 2004 007 615.4 from 17. February 2004 same inventor and the same applicant described have been. In particular, it can be provided that the examined Data values are followed by test sequences, each determined by a random Start value go out. The number of test rounds containing a data value must exist in order to be regarded as a prime number, it is preferable to proceed with progressing Duration of search - e.g. with increasing number of unsuccessfully searched test sequences - successively elevated.
Das erfindungsgemäße Computerprogrammprodukt weist Programmbefehle auf, um eines der erfindungsgemäßen Verfahren zu implementieren. Ein derartiges Computerprogrammprodukt kann ein körperliches Medium sein, z.B. ein Halbleiterspeicher oder eine Diskette oder eine CD-ROM. Das Computerprogrammprodukt kann jedoch auch ein nicht-körperliches Medium sein, z.B. ein über ein Computernetzwerk übermitteltes Signal. Insbesondere kann das Computerprogrammprodukt Programmbefehle enthalten, die im Zuge der Herstellung oder der Initialisierung eines tragbaren Datenträgers oder einer kryptographischen Vorrichtung in diesen/diese eingebracht werden.The Computer program product according to the invention has program instructions to one of the inventive method to implement. Such a computer program product can be physical Be medium, e.g. a semiconductor memory or a floppy disk or a CD-ROM. However, the computer program product may also be non-physical Be medium, e.g. one over a computer network transmitted Signal. In particular, the computer program product may program instructions included in the production or initialization process a portable data carrier or a cryptographic device introduced into this / these become.
Die erfindungsgemäße Vorrichtung kann insbesondere ein tragbarer Datenträger sein, z.B. eine Chipkarte (smart card in unterschiedlichen Bauformen oder ein Chipmodul oder ein sonstiges ressourcenbeschränktes System. Die Vorrichtung kann jedoch auch eine kryptographische Einheit sein, die in der Regel ebenfalls einer beträchtlichen Ressourcenbeschränkung unterliegt. In weiteren Ausgestaltungen der Erfindung ist die Vorrichtung ein üblicher Computer, der z.B. bei der Schlüsselgenerierung für kryptogaphische Zwecke eingesetzt wird. Die erfindungsgemäße Vorrichtung enthält in an sich bekannter Weise mindestens einen Prozessor, mehrere in unterschiedlichen Technologien ausgestaltete Speicher und diverse Hilfsbaugruppen wie z.B. Schnittstellenschaltungen, Zeitgeber und Verbindungselemente.The inventive device may in particular be a portable data carrier, e.g. a chip card (smart card in different designs or a chip module or another resource limited System. However, the device can also be a cryptographic unit usually subject to considerable resource constraints as well. In further embodiments of the invention, the device is a common one Computer, e.g. in the key generation for cryptogaphic Purposes is used. The device according to the invention contains in known manner at least one processor, several in different Technologies designed memory and various auxiliary modules such as. Interface circuits, timers and connectors.
In bevorzugten Weiterbildungen weisen das Computerprogrammprodukt und/oder die Vorrichtung Merkmale auf, die den in der vorliegenden Beschreibung erwähnten und/oder den in den abhängigen Verfahrensansprüchen genannten Merkmalen entsprechen.In preferred developments have the computer program product and / or the device features the features described in the present specification mentioned and / or the dependent method claims corresponded features.
Weitere Merkmale, Aufgaben und Vorteile der Erfindung ergeben sich aus der folgenden Beschreibung mehrerer Ausführungsbeispiele und Ausführungsalternativen. Es wird auf die schematische Zeichnung verwiesen.Further Features, objects and advantages of the invention will become apparent from the following description of several embodiments and alternative embodiments. Reference is made to the schematic drawing.
1. Überblick über das in
Das
in
Der
Datenwert
Durch
den ersten Primzahltest
Wenn
der erste Primzahltest
Im
vorliegenden Ausführungsbeispiel
umfassen die Hilfswerte
Das
für die
weiteren Primzahltests
Ähnlich wie
beim ersten Primzahltest
In
Schritt
Wenn
dagegen entweder bei dem ersten Primzahltest
Ausführungsbeispiele
des in
Die hier beschriebenen Verfahren sind insbesondere dazu vorgesehen, von einem Prozessor eines tragbaren Datenträgers oder einer kryptographischen Vorrichtung ausgeführt zu werden. Die Verfahren sind dazu in Form von Programmbefehlen implementiert, die in einem ROM oder einem EEPROM oder einem sonstigen Speicher des Datenträgers oder der kryptographischen Vorrichtung enthalten sind.In particular, the methods described herein are intended to be performed by a processor of a portable data carrier or a cryptographic device. The procedures are to do this in the form of program instructions contained in a ROM or EEPROM or other memory of the data carrier or cryptographic device.
2. Verwendete Notationen und Konventionen2. Used Notations and conventions
Für die folgende
genaue Beschreibung der Primzahltest- und -suchverfahren wird eine
auf dem vorliegenden technischen Gebiet übliche Notation verwendet,
die im vorliegenden Abschnitt zusammenfassend dargestellt ist:
Es
sei Zn der Ring der ganzen Zahlen modulo
n. Für
k, n ∊ Z mit ungeradem n wird im folgenden das Jacobi-Symbol
durch (k/n) bezeichnet. Der größte gemeinsame
Teiler gcd(a, b) zweier Zahlen a und b wird im folgenden der Einfachheit
halber auch als (a, b) geschrieben. Der Quotient zweier Zahlen a,
b wird in üblicher Weise
mit a/b, aber zur Unterscheidung von dem Jacobi-Symbol stets ohne
unmittelbar umschließende
runde Klammern, bezeichnet. Die Kardinalität einer Menge S wird als |S|
geschrieben.For the following detailed description of the primality test and search methods, a notation customary in the present technical field is used, which is summarized in this section:
Let Z n be the ring of integers modulo n. For k, n ∈ Z with odd n, the Jacobi symbol is denoted by (k / n) in the following. The largest common divisor gcd (a, b) of two numbers a and b is also written below as (a, b) for the sake of simplicity. The quotient of two numbers a, b is denoted by a / b in the usual way, but to distinguish it from the Jacobi symbol always without immediately enclosing round brackets. The cardinality of a set S is called | S | written.
Im folgenden bezeichne P(n) für jede ganze Zahl n die Menge derjenigen Primzahlen, die n teilen. Für jede ganze Zahl n und Primzahl p sei vp(n) der Exponent m der größten Potenz pm von p, die n teilt. Daher ist |P(n)| die Anzahl unterschiedlicher Primfaktoren von n, undist die Primfaktorzerlegung von n.In the following, let P (n) denote for each integer n the set of those primes that share n. For every integer n and prime number p, let v p (n) be the exponent m of the largest power p m of p dividing n. Therefore | P (n) | the number of different prime factors of n, and is the prime factorization of n.
Das i-te Kreisteilungspolynom wird mit Φi bezeichnet. In den vorliegenden Ausführungsbeispielen werden hauptsächlich das dritte und achte Kreisteilungspolynom Φ3(z) = z2 + z + 1 bzw. Φ8(z) = z4 + 1 verwendet.The i-th circular pitch polynomial is denoted by Φ i . In the present embodiments, the third and eighth circular pitch polynomials Φ 3 (z) = z 2 + z + 1 and Φ 8 (z) = z 4 + 1 are mainly used.
Für eine ungerade natürliche Zahl n und eine Einheit c modulo n wird der Ring Z[x]/(n, x2 – c) im folgenden mit R(n, c) bezeichnet. Jedes Element von R(n, c) wird als Polynom ax + b ersten Grades mit der Variablen x und den Koeffizienten 0 ≤ a, b < n repräsentiert. Die multiplikative Gruppe von Einheiten in R(n, c) wird als R(n, c)* geschrieben.For an odd natural number n and a unit c modulo n, the ring Z [x] / (n, x 2 -c) is denoted by R (n, c) below. Each element of R (n, c) is represented as polynomial ax + b of the first degree with the variable x and the coefficients 0 ≤ a, b <n. The multiplicative group of units in R (n, c) is written as R (n, c) *.
Für z = ax
+ b werden die folgenden multiplikativen Homomorphismen auf R(n,
c) definiert:
Wie üblich, werden diese beiden Homomorphismen als Konjugation und Norm bezeichnet. Die Konjugation ist ein Automorphismus auf R(n, c).As usual, will be these two homomorphisms are called conjugation and norm. The conjugation is an automorphism on R (n, c).
In der folgenden Beschreibung wird die (ungerade) ganze Zahl, die auf ihre Primzahleigenschaft hin überprüft werden soll, stets mit n bezeichnet.In In the following description, the (odd) integer that is on their prime property should always be denoted by n.
Die in den folgenden Abschnitten anhand von Pseudocode beschriebenen Verfahren enden jeweils, sobald eine Ausgabeanweisung erreicht worden ist. Auf die ausdrückliche Angabe einer Verfahrensend- oder Rücksprunganweisung nach jeder Ausgabeanweisung wird daher in den Pseudocode-Darstellungen verzichtet.The in the following sections, using pseudocode Procedures end each time an output instruction has been reached is. On the express Indication of a procedure end or return instruction after each Output statement is therefore omitted in the pseudocode representations.
3. Erstes Testverfahren (MR2)3. First test procedure (MR2)
Das
erste Testverfahren, das zur Ausführung des ersten Primzahltests
Wenn
der zu testende Datenwert
In der hier verwendeten Pseudocode-Notation wird das erste Testverfahren wie folgt beschrieben: In the pseudocode notation used here, the first test procedure is described as follows:
Der von dem Verfahren MR2 ausgeführte Miller-Rabin-Test hat die Basis 2, falls n ≠ 1 (mod 8) gilt, und die Basis c, falls n = 1 (mod 8) gilt. Im zweitgenannten Fall wird c in Schritt [3] als kleine Zufallszahl mit (c/n) = –1 bestimmt.Of the executed by the method MR2 Miller-Rabin test has base 2 if n ≠ 1 (mod 8) and base c, if n = 1 (mod 8). In the second case c will be in step [3] determined as a small random number with (c / n) = -1.
Die
Tatsache, daß ε eine primitive
achte Einheitswurzel in R(n, c) ist, ist für den Fall n = 1 (mod 8) wegen ε4 = –1 (mod
R(n, c)) offensichtlich. Für
die anderen Fälle
kann dies unter Verwendung der Standardrepräsentation (± 1 ± √
4. Zweites Testverfahren (SQFTRND)4. Second Test Method (SQFT RND )
Das
zweite Testverfahren, das zur Ausführung jedes weiteren Primzahltests
5. Erstes Ausführungsbeispiel des Primzahltests (SQFT)5. First embodiment of the primality test (SQFT)
Der erfindungsgemäße Primzahltest nutzt in einem ersten Ausführungsbeispiel SQFT die beiden oben beschriebenen Testverfahren MR2 und SQFTRND. Zunächst wird das erste Testverfahren MR2 ausgeführt. Wenn dabei die untersuchte Zahl n nicht schon als zusammengesetzt identifiziert werden kann, wird das zweite Testverfahren SQFTRND mindestens einmal ausgeführt.In a first exemplary embodiment SQFT, the primality test according to the invention uses the two test methods MR2 and SQFT RND described above. First, the first test method MR2 is executed. If the examined number n can not already be identified as composed, the second test method SQFT RND is executed at least once.
Die
als "Testrunden" bezeichneten Abläufe des
zweiten Testverfahrens SQFTRND werden so
lange wiederholt, bis entweder die untersuchte Zahl n als zusammengesetzt
erkannt wurde oder bis ein vorgegebener Maximalwert t von Testrunden
erreicht ist. Nur im letztgenannten Fall, wenn also die Zahl n das
erste Testverfahren MR2 und t Runden des zweiten Testverfahrens
SQFTRND bestanden hat, wird die Zahl n als
wahrscheinliche Primzahl bezeichnet. Bei allen Testrunden werden
die vom ersten Testverfahren MR2 ermittelten Hilfswerte
In der hier verwendeten Pseudocode-Darstellung läßt sich der Ablauf des Verfahrens SQFT wie folgt zusammenfassen: In the pseudocode representation used here, the sequence of the method SQFT can be summarized as follows:
Offensichtlich klassifizieren weder das Verfahren MR2 noch das Verfahren SQFTRND jemals eine Primzahl n als zusammengesetzt. Dies gilt daher auch für das Verfahren SQFT.Obviously, neither the method MR2 nor the method SQFT RND ever classifies a prime number n as composed. This therefore also applies to the method SQFT.
Nach der ersten Testrunde kann das zweite Testverfahren SQFTRND weiter vereinfacht werden, ohne daß dadurch die Fehlerwahrscheinlichkeit ansteigen würde; dies wird unten in Abschnitt 9 noch genauer beschrieben.After the first round of testing, the second test method SQFT RND can be further simplified, without thereby increasing the error probability; this will be described in more detail below in Section 9.
Die Ausführung des ersten Testverfahrens MR2 zu Beginn des Gesamtverfahrens SQFT ist insbesondere dann vorteilhaft, wenn das Verfahren SQFT als Teil eines Verfahrens zum Erzeugen von Primzahlen verwendet wird. Hierbei müssen nämlich in der Regel viele zufällig ermittelte Kandidaten auf ihre Primzahleigenschaft hin überprüft werden, und nur der geringste Teil der Kandidaten stellt sich tatsächlich als Primzahl heraus. Das einfache und schnelle erste Testverfahren MR2 dient dazu, möglichst viele derjenigen Kandidaten, die zusammengesetzte Zahlen sind, mit möglichst geringem Aufwand zu identifizieren. Dazu ist das erste Testverfahren MR2 gut geeignet, weil es in der Praxis die allermeisten zusammengesetzten Kandidaten findet und mindestens doppelt so schnell wie die bekannten QFT-Verfahren ist.The execution of the first test method MR2 at the beginning of the overall method SQFT is particularly advantageous if the method SQFT as part a method for generating primes is used. in this connection have to namely usually many random Candidates are checked for their prime purchasing power, and only the smallest part of the candidates actually turns out to be Prime out. The simple and fast first test procedure MR2 serves as possible many of those candidates who are composite numbers with preferably to identify little effort. This is the first test procedure MR2 well suited, because in practice it is the vast majority Candidates will find and at least twice as fast as the well-known QFT method is.
6. Fehlerwahrscheinlichkeit von SQFT6. error probability from SQFT
Für die praktische Anwendung ist es wichtig, daß für ein probabilistisches Primzahltestverfahren eine gute Abschätzung der Fehlerwahrscheinlichkeit existiert. Da, wie oben erwähnt, das Verfahren SQFT eine Primzahl nie fälschlich als zusammengesetzte Zahl identifiziert, wird hier als Fehlerwahrscheinlichkeit β1,t(n) die Wahrscheinlichkeit angesehen, daß das Verfahren SQFT eine zusammengesetzte Zahl n bei Ausführung von t Testrunden SQFTRND fälschlich als Primzahl klassifiziert. Diese Fehlerwahrscheinlichkeit β1,t(n) des SQFT-Primzahltests für den ungünstigsten Fall (worst case error probability) läßt sich mit maximal 2–12t abschätzen.For practical application, it is important that a probabilistic primality test method has a good estimate of the probability of error. As mentioned above, since the method SQFT never mistakenly identifies a prime number as a composite number, here the error probability β 1, t (n) is considered to be the probability that the method SQFT falsely calls a composite number n upon execution of t rounds of testing SQFT RND Classified prime. This error probability β 1, t (n) of the worst case error probability (SQFT) worst-case test can be estimated with a maximum of 2 -12 t .
Um die durchschnittliche Fehlerwahrscheinlichkeit des SQFT-Primzahltests (average case behavior) abschätzen zu können, wird hier ein Suchverfahren betrachtet, das wiederholt eine ungerade ganze Zahl n mit Bitlänge k zufällig auswählt und dann das Verfahren SQFT mit einer Grenze von t Testrunden auf diese Zahl n anwendet. Der Suchbereich der beim Suchvorgang zur Verfügung stehenden Zahlen n wird im folgenden mit Mk bezeichnet; es gilt Mk = {n : 2k–1 < n < 2k, n ist ungerade}. Das Suchverfahren wird so lange fortgesetzt, bis eine durch SQFT als Primzahl bezeichnete Zahl gefunden wurde. Es soll die Wahrscheinlichkeit qk,t abgeschätzt werden, daß die so bestimmte Zahl tatsächlich eine zusammengesetzte Zahl ist.In order to be able to estimate the average error probability of the SQFT (average case behavior) test, a search method which repeatedly chooses an odd integer n with a bit length k and then the method SQFT with a limit of t test rounds to this number n is considered applies. The search range of the numbers n available during the search is denoted M k in the following; M k = {n: 2 k-1 <n <2 k , n is odd}. The search process continues until a number designated by SQFT as the prime number is found. Let us estimate the probability q k, t that the number thus determined is actually a compound number.
Die vom Erfinder ermittelte Abschätzung der Wahrscheinlichkeit qk,t ist in der folgenden Tabelle für diverse praxisrelevante Werte der Bitlänge k und der Rundenanzahl t angegeben; jeder Eintrag in der Tabelle stellt den negativen Logarithmus zur Basis 2 des entsprechenden Wahrscheinlichkeitswertes qk,t dar: The estimation of the probability q k, t determined by the inventor is given in the following table for various practically relevant values of the bit length k and the number of rounds t; each entry in the table represents the negative logarithm of the base 2 of the corresponding probability value q k, t :
Beispielsweise besagt der Eintrag "134" in Spalte "t = 2" und Zeile "k = 500" der Tabelle, daß –log2 q500,2 ≥ 134 gilt. Mit anderen Worten ist die durchschnittliche Fehlerwahrscheinlichkeit des oben beschriebenen Suchverfahrens bei einer Bitlänge von 500 Bit und mit nur zwei Testrunden höchstens 2–134. Dies ist deutlich besser als die heute von kryptographischen Normen üblicherweise geforderten durchschnittlichen Fehlerwahrscheinlichkeiten von 2–80 oder 2–100.For example, the entry "134" in column "t = 2" and row "k = 500" of the table says that -log 2 q 500,2 ≥ 134. In other words, for a bit length of 500 bits and with only two rounds of testing , the average error probability of the search method described above is at most 2 -134 . This is significantly better than the average error probabilities of 2 -80 or 2 -100 typically required today by cryptographic norms.
7. Ausführungsalternativen mit Berücksichtigung der dritten Einheitswurzeln (SQFT3RND und SQFT3)7. Design alternatives with consideration of the third roots of unity (SQFT3 RND and SQFT3)
In dem oben beschriebenen zweiten Testverfahren SQFTRND, das ein besonders einfaches Ausführungsbeispiel darstellt, wurden die dritten Einheitswurzeln nicht berücksichtigt. Bei den im folgenden beschriebenen Ausführungsalternativen des zweiten Testverfahrens sowie des Gesamtverfahrens – hier mit SQFT3RND bzw. SQFT3 bezeichnet – ist dagegen eine Überprüfung von Eigenschaften der dritten Einheitswurzeln vorgesehen. Falls diese Eigenschaften für eine zu testende Zahl n nicht erfüllt sind, ist damit diese Zahl sicher keine Primzahl.In the second test method SQFT RND described above, which is a particularly simple embodiment, the third unit roots have not been considered. In contrast, the alternative alternatives described in the second test method and the overall method - here referred to as SQFT3 RND or SQFT3 - provide for a check of properties of the third unit roots. If these properties are not met for a number n to be tested, this number is certainly not a prime number.
Das so ergänzte zweite Testverfahren SQFT3RND wird als Pseudocode wie folgt beschrieben: The so-supplemented second test method SQFT3 RND is described as a pseudocode as follows:
Das in Schritt [5] des Verfahrens SQFT3RND berechnete Minimum existiert, weil in diesem Schrittgilt. Der in Schritt [7] berechnete Wert ε'3 ist eine nicht-triviale dritte Einheitswurzel. Die hierfür geforderten Eigenschaften – wenn n eine Primzahl ist – werden in den Schritten [8] und [9] überprüft.The minimum calculated in step [5] of the method SQFT3 RND exists because in this step applies. The value ε ' 3 calculated in step [7] is a non-trivial third unit root. The egg required for this properties - if n is a prime number - are checked in steps [8] and [9].
Die folgende abgewandelte Ausgestaltung des Gesamtverfahrens SQFT3 nutzt das zweite Testverfahren SQFT3RND in der gerade beschriebenen, ergänzten Ausgestaltung.The following modified embodiment of the overall method SQFT3 uses the second test method SQFT3 RND in the additional embodiment described above.
Zur Untersuchung der Fehlerwahrscheinlichkeit des modifizierten Verfahrens SQFT3 wird für eine zusammengesetzte Zahl n die Wahrscheinlichkeit, daß das Verfahren SQFT3 mit t Testrunden die Zahl n fälschlich als Primzahl identifiziert, mit β3,t(n) bezeichnet. Diese Fehlerwahrscheinlichkeit β3,t(n) des SQFT3-Primzahltests für den ungünstigsten Fall (worst case error probability) läßt sich mit maximal 24·24–4t ≈ 24–18,36t abschätzen.To investigate the error probability of the modified method SQFT3, for a composite number n, the probability that the method SQFT3 with t rounds of tests incorrectly identifies the number n as the prime number is denoted by β 3, t (n). This error probability β 3, t (n) of the worst case error probability SQFT3 primality test can be estimated with a maximum of 2 4 · 24 -4t ≈ 2 4-18.36t .
Die in Abschnitt 6 beschriebene Abschätzung für die durchschnittliche Fehlerwahrscheinlichkeit des SQFT-Primzahltests bei dem dort erwähnten Suchverfahren gilt auch für den SQFT3-Primzahltest. Auch hier sind also in vielen praxisrelevanten Fällen lediglich zwei Testrunden erforderlich, um die heute für kryptographische Anwendungen typischerweise geforderte Zuverlässigkeit garantieren zu können.The estimation for average error probability described in section 6 The SQFT primality test in the search procedure mentioned there also applies for the SQFT3 primality test. Here, too, are in many practice-relevant make Only two rounds of testing required today for cryptographic Applications typically guarantee required reliability.
Bei einem Vergleich der Verfahren SQFT und SQFT3 zeigt sich, daß das Verfahren SQFT einfacher ist, während das Verfahren SQFT3 asymptotisch bessere Ergebnisse liefert. Bei den hier vorzugsweise betrachteten kryptographischen Anwendungen dürfte in vielen Fällen das Verfahren SQFT für die heute üblichen Primzahlgrößen und Fehlerwahrscheinlichkeiten ausreichen. Insbesondere bei der Implementierung auf ressourcenbeschränkten Systemen, z.B. Chipkarten, kann die Einfachheit des Verfahrens SQFT wegen der geringeren Programmgröße ein beträchtlicher Vorteil sein. Das Verfahren SQFT3 ist dagegen eher dann vorzuziehen, wenn genügend Speicherplatz für das Programm und für Daten zur Verfügung steht.Comparing the methods SQFT and SQFT3 shows that the method SQFT is simpler while SQFT3 provides asymptotically better results. In the case of the cryptographic applications which are preferably considered here, in many cases the method SQFT should be sufficient for the number of prime numbers and error probabilities usual today. Especially when implemented on resource limited systems, eg smart cards, the simplicity of the SQFT method can be a considerable advantage because of the smaller program size. The SQFT3 method, on the other hand, is more preferable if there is enough memory available for the program and for data.
8. Implementierung8. Implementation
Im folgenden werden einige Hinweise zur Implementierung des Verfahrens SQFT3 und zur erzielbaren Laufzeit gegeben. Unter Berücksichtigung dieser Hinweise kann das Verfahren SQFT3 bei t Testrunden mit einer zu erwartenden Laufzeit von (2t + 1) log2 n(1 + o(1)) Multiplikationen in Zn implementiert werden. Ausgedrückt in Einheiten, die der für einen Miller-Rabin-Test benötigten Laufzeit entsprechen, hat das Verfahren SQFT3 asymptotisch eine Laufzeit von 2t + 1 Miller-Rabin-Tests für t Testrunden.In the following some hints for the implementation of the method SQFT3 and the achievable running time are given. Taking into consideration these indications, the method can SQFT3 n (1 + o (1)) multiplications are implemented in n Z at t test rounds with a log expected duration of (2t + 1). 2 Expressed in units corresponding to the runtime required for a Miller Rabin test, the SQFT3 asymptotically runs for 2 t + 1 Miller Rabin tests for t rounds of testing.
Die gerade genannten Abschätzungen der Laufzeit und die folgenden Implementierungshinweise gelten auch für das Verfahren SQFT, weil dieses lediglich eine Vereinfachung von SQFT3 darstellt. Das Verfahren SQFT verursacht jedoch wegen seiner Einfachheit weniger Grundaufwand (Overhead), so daß es trotz der asymptotisch gleichen Laufzeit für einfachere Anwendungen in der Regel vorzuziehen ist.The just mentioned estimates the term and the following implementation notes also apply for the SQFT method because this is just a simplification of SQFT3 represents. However, the method SQFT causes because of its simplicity less overhead (overhead), so it's despite the asymptotic same term for simpler applications is usually preferable.
Bei
den hier vorgestellten Implementierungen werden Werte aus R(n, c)
allgemein durch ihre Polynomkoeffizienten repräsentiert, also z.B. der Wert z ∊ R(n,
c) durch Az, Bz ∊ Zn mit z = Azx + Bz. Zur Multiplikation zweier Werte w, z ∊ R(n,
c) mit w = Awx + Bw und
z = Azx + Bz wird
dann die Formel
Zur Berechnung eines Wertes z⌊ab/q⌋ mit z ∊ R(n, c) und a, b, q ∊ N wird bei den hier beschriebenen Implementierungen, wenn z⌊a/q⌋ und z⌊b/q⌋ im voraus berechnet worden sind und als Zwischenergebnisse vorliegen, die Beziehungverwendet, wobei εa = q(a/q – ⌊a/q⌋), εb = q(b/q – ⌊b/q⌋) und εab = q(ab/q – ⌊ab/q⌋) gelten.For calculating a value z ⌊ab / q⌋ with z ∈ R (n, c) and a, b, q ∈ N, in the implementations described here, if z ⌊a / q⌋ and z ⌊b / q⌋ in advance have been calculated and present as interim results, the relationship where ε a = q (a / q - ⌊a / q⌋), ε b = q (b / q - ⌊b / q⌋) and ε ab = q (ab / q - ⌊ab / q⌋) be valid.
Für den in Schritt [4] des Verfahrens SQFT3RND berechneten Wert u gilt 3u | (n2 – 1) und u > 0, so daß sich mit geringem Aufwand ganze Zahlen e, f, g finden lassen, für die die Beziehungen u = e·f + g; 0 ≤ g ≤ f; e, f > 0 undgelten. Diese Zahlen e, f, g werden im folgenden verwendet.For the value u calculated in step [4] of the method SQFT3 RND , 3 u | (n 2 - 1) and u> 0, so that we can find integers e, f, g for which the relationships u = e · f + g; 0≤g≤f; e, f> 0 and be valid. These numbers e, f, g are used below.
Bei den weiteren Hinweisen zur Implementierung von SQFT3RND wird zwischen den Fällen n = 2 mod 3 und n = 1 mod 3 unterschieden. Zunächst wird der erstgenannte Fall n = 2 mod 3 betrachtet. Hier gilt n + 1 = 3u·s für die ganze Zahl s = r/(n – 1). Es wird dann die folgende Sequenz von Hilfswerten t0, t1, t2, ..., te, te+1 der Reihe nach berechnet, wobei die obige Regel zur Berechnung von z⌊ab/q⌋ herangezogen wird: In the further notes on the implementation of SQFT3 RND , a distinction is made between the cases n = 2 mod 3 and n = 1 mod 3. First, consider the former case n = 2 mod 3. Here, n + 1 = 3 u · s for the integer s = r / (n - 1). The following sequence of auxiliary values t 0 , t 1 , t 2 ,..., T e , t e + 1 is then calculated in order, the above rule being used to calculate z ⌊ab / q⌋ :
Die
Berechnung von t0, t1,
t2, ..., te, te+1 ist die bei weitem aufwendigste Teiloperation
bei dem Verfahren SQFT3RND. Die folgende Überlegung
zeigt, daß hierfür höchstens
log2 n·(1
+ o(1)) Quadrierungen und o(log2 n) Multiplikationen
in R(n, c) erforderlich sind: Zur Berechnung einer k-ten Potenz
nach einem Quadrierungs- und Multiplizierverfahren sind bekanntlich
höchstens
log2 k + O(1) Quadrierungen und o(log2 k) Multi likationen erforderlich. Wenn
tj-1 undgegeben sind, dann kann nach
der obigen Formel tj für j ≥ 2 mit log2 3f + O(1) Quadrierungen und o(log2 3f) Multiplikationen berechnet werden. Die
Berechnung von t0, t1 undkostet zusätzlich log2 s, log2 3g beziehungsweise log2 3f Quadrierungen und entsprechend weniger
Multiplikationen. Insgesamt lautet die Abschätzung für die Anzahl der Quadrierungen
daher:
Die Anzahl der Multiplikationen kann analog abgeschätzt werden.The Number of multiplications can be estimated analogously.
Ferner
wird z–1 berechnet.
Daraus und aus te+1 = z⌊(n+1)/8⌋ =
z(n+1-ε)/8 (für eine ganze
Zahl ε mit
0 ≤ ε < 8) wird dann zn berechnet und in Schritt [2] überprüft, ob zn =
Um zu überprüfen, ob zγ = 1 gilt, kann stattdessenüberprüft werden. Diese Bedingung ist äquivalent zu zγ = 1, weilgilt und z invertierbar ist.To check if z γ = 1, you can use instead be checked. This condition is equivalent to z γ = 1 because and z is invertible.
Schließlich muß zur Ausführung der Schritte [5] und [7] der Wertmitberechnet werden. Es wird zunächst angenommen, daß dieses Minimum existiert. Wenn dies nicht der Fall ist, dann zeigen die folgenden Berechnungen, daß das Minimum nicht existiert. Für die Berechnung wird das folgende Backtracking-Verfahren verwendet: Es sei τ(j) = max {0, (j – 1)f + g}. Dann istMit den bereits vorliegenden Hilfswerten tj können weitere Hilfswertefür j = 0, 1, ..., e + 1 problemlos berechnet werden. Weiter ist die Gleichung äquivalent zu der folgenden Gleichung: Finally, to perform steps [5] and [7], the value With be calculated. It is first assumed that this minimum exists. If this is not the case then the following calculations show that the minimum does not exist. The following backtracking method is used for the calculation: Let τ (j) = max {0, (j - 1) f + g}. Then With the already existing auxiliary values t j , further auxiliary values can be obtained for j = 0, 1, ..., e + 1 are easily calculated. Next is the equation equivalent to the following equation:
Diese Äquivalenz
gilt, weil die Beziehungen zn =
Aus den obigen Überlegungen ergibt sich ferner, daßin der folgenden Sequenz enthalten sein muß: From the above considerations it also follows that must be included in the following sequence:
Diese Sequenz kann aus den bisherigen Ergebnissen mit wenig Aufwand berechnet werden. Das Verfahren SQFT3RND ist damit für den Fall n = 2 mod 3 im wesentlichen abgeschlossen; die restlichen Schritte können leicht implementiert werden.This sequence can be calculated from the previous results with little effort. The method SQFT3 RND is thus substantially complete for the case n = 2 mod 3; the remaining steps can be easily implemented.
Es ist nun noch der Fall n = 1 mod 3 zu behandeln, der hier kürzer und unter Verweis auf die obigen Ausführungen dargestellt wird. Es gilt in diesem Fall n – 1 = 3u·s für die ganze Zahl s = r/(n + 1). Die folgende Sequenz von Hilfswerten t0, t1, t2, ..., te, te+1 wird berechnet: It is still the case n = 1 mod 3 to treat, which is shown here shorter and with reference to the above statements. In this case n - 1 = 3 u · s for the integer s = r / (n + 1). The following sequence of auxiliary values t 0 , t 1 , t 2 ,..., T e , t e + 1 is calculated:
Ähnlich wie im Fall n = 2 mod 3 kann der Aufwand für die Berechnung von t0, t1, ..., te, te+1 mit höchstens log2 n·(1 + o(1)) Quadrierungen und o(log2 n) Multiplikationen in R(n, c) abgeschätzt werden.Similar to the case n = 2 mod 3, the effort for the calculation of t 0 , t 1 , ..., t e , t e + 1 with at most log 2 n · (1 + o (1)) squarings and o (log 2 n) multiplications in R (n, c) can be estimated.
Aus
te+1 = z⌊(n-1)8⌋ =
z(n-1-ε)/8 (für eine ganze
Zahl ε mit
0 ≤ ε < 8) wird wieder
zn berechnet und in Schritt [2] überprüft, ob zn =
Wieder sei τ(j) = max {0, (j – 1) f + g}. Mit dieser Definition von τ(j) ergibt sichDaher können ausdie weiteren Wertefür j = 0, 1, ..., e + 1 berechnet werden. Mit diesen Werten wird schließlich der im Verfahrensschritt [7] benötigte Wertmitberechnet, wobei dasselbe Backtracking-Verfahren wie im oben beschriebenen Fall n = 2 mod 3 verwendet wird.Again, let τ (j) = max {0, (j-1) f + g}. This definition of τ (j) yields Therefore, can out the other values for j = 0, 1, ..., e + 1. With these values, finally, the value required in step [7] becomes With calculated using the same backtracking method as in the case n = 2 mod 3 described above.
9. Mögliche Optimierungen der Implementierung9. Possible optimizations the implementation
Die im vorherigen Abschnitt dargestellte Implementierung kann insbesondere im Hinblick auf den Speicherplatzbedarf – und gegebenenfalls auch im Hinblick auf die Laufzeit – noch verbessert werden. Einige Möglichkeiten hierzu werden im vorliegenden Abschnitt vorgestellt. Wieder sind diese Optimierungsmöglichkeiten gleichermaßen auf die Verfahren SQFT und SQFT3 anwendbar.The In particular, the implementation illustrated in the previous section may in terms of storage space requirements - and possibly also in the Regarding the term - still be improved. Some possibilities These are presented in this section. Again these optimization possibilities equally applicable to the SQFT and SQFT3 procedures.
In Schritt [4] des Verfahrens SQFT wird das Verfahren SQFTRND höchstens t Mal, nämlich einmal in jeder Testrunde, aufgerufen. Das Verfahren SQFT kann jedoch derart modifiziert werden, daß SQFTRND nur in der ersten Testrunde aufgerufen wird, während in den folgenden t–1 Testrunden stattdessen das folgende Verfahren SQFTSUBS aufgerufen wird: In step [4] of the method SQFT, the method SQFT RND is called at most t times, namely once every test round. However, the method SQFT may be modified such that SQFT RND is invoked only in the first round of testing, while in the following t-1 rounds of testing the following method SQFT SUBS is called instead:
Das Verfahren SQFT3RND kann in entsprechender Weise modifiziert und ab der zweiten Testrunde von SQFT3 aufgerufen werden.The method SQFT3 RND can be modified in a corresponding manner and called from the second test round of SQFT3.
Durch die Verwendung von SQFTSUBS statt SQFTRND – bzw. die Verwendung der entsprechend modifizierten Fassung von SQFT3RND – wird in jeder Testrunde eine Berechnung eines Jacobi-Symbols eingespart, während jedoch der Aufwand zur Ausführung von Schritt [3] geringfügig zunimmt.Using SQFT SUBS instead of SQFT RND - or using the appropriately modified version of SQFT3 RND - saves a Jacobi symbol computation in each round of testing, but slightly increases the overhead of performing step [3].
Auf den ersten Blick erscheint diese Veränderung nicht vorteilhaft, weil die Berechnung eines Jacobi-Symbols im wesentlichen eine modulare Inversion in Zn erfordert, was in der Regel viel geringeren Aufwand als die ohnehin benötigte modulare Potenzierung verursacht. Bei der Implementierung auf tragbaren Datenträgern und ähnlichen kryptographischen Einrichtungen gilt dies jedoch nicht immer, weil erstens bei manchen Datenträgern spezielle Hardwareunterstützung für die modulare Multiplikation – nicht aber für die modulare Inversion – vorgesehen ist, und weil zweitens manche Schutzmaßnahmen gegen Hardwareangriffe für die modulare Inversion aufwendiger als für die modulare Multiplikation sind.At first glance, this change does not seem to be advantageous because the computation of a Jacobi symbol essentially requires a modular inversion in Z n , which usually causes much less effort than the modular exponentiation that is needed anyway. However, this is not always the case for implementation on portable data carriers and similar cryptographic devices because, firstly, some data carriers have dedicated hardware support for modular multiplication-not modular inversion-and secondly, some hardware inelevation protections are more expensive for modular inversion than for modular multiplication.
Die in den vorherigen Abschnitten 6 und 7 gegebenen Fehlerabschätzungen gelten auch für die gerade beschriebenen Abwandlungen der Verfahren SQFT und SQFT3.The in the previous sections 6 and 7 given error estimates also apply to the modifications of the methods SQFT and SQFT3 just described.
Im Verfahren SQFT3RND ist die Berechnung des Minimumwerts i in Schritt [5] insbesondere für große Werte u = v3(n2 – 1) aufwendig. Wie oben in Abschnitt 8 gezeigt, kann diese Berechnung für große zu überprüfende Zahlen n relativ effizient ausgeführt werden. Wenn die zu überprüfende Zahl n jedoch nicht so groß ist – dies ist bei kryptographischen Anwendungen oft der Fall – dann ist der bei der Berechnung anfallende Grundaufwand (Overhead) beträchtlich. Insbesondere betrifft das den Fall, daß die zu überprüfende Zahl n tatsächlich prim ist, weil die meisten zusammengesetzten Zahlen bereits von dem vorgeschalteten Verfahren MR2 erkannt wurden.In the method SQFT3 RND , the calculation of the minimum value i in step [5] is particularly costly for large values u = v 3 (n 2 -1). As shown above in section 8, this calculation can be performed relatively efficiently for large numbers n to be checked. However, if the number n to be checked is not so large - as is often the case with cryptographic applications - then the overhead involved in the computation is considerable. In particular, this concerns the case that the number n to be checked is actually prime because most of the composite numbers have already been recognized by the upstream MR2 method.
Zur Verringerung des Aufwands bei der Berechnung des Minimumwerts i im Verfahren SQFT3RND kann folgende Abwandlung vorgesehen sein: Wenn für den in Schritt [1] ausgewählten Wert z die Gleichunggilt – dies impliziert, daß für den in Schritt [5] berechneten Minimumwert i die Gleichung i = v3(n2 – 1) gilt –, dann kann in folgenden Testrunden die Berechnung des Minimumwerts i entfallen, wobei in diesen Testrunden dann überprüft wird, obist. Auch Weiterentwicklungen dieser Abwandlung sind möglich, mit denen die Berechnung des Minimumwerts i mit noch größerer Wahrscheinlichkeit vermieden werden kann.To reduce the effort in calculating the minimum value i in the method SQFT3 RND , the following modification may be provided: If, for the value z selected in step [1], the equation If - this implies that for the minimum value i calculated in step [5] the equation i = v 3 (n 2 - 1) holds, then the calculation of the minimum value i can be omitted in the following test rounds, whereupon it is checked in these test rounds , if is. Further developments of this modification are possible with which the calculation of the minimum value i can be even more likely to be avoided.
10. Ausführungsbeispiele von Verfahren zur Primzahlermittlung10th embodiments of methods for determining prime numbers
Ein besonders einfaches Beispiel eines Verfahrens zur Primzahlsuche, bei dem in jedem Schritt je eine zu überprüfende Kandidatenzahl n aus einem vorbestimmten Suchbereich Mk zufällig ausgewählt und einem Primzahltest unterzogen wird, ist bereits im obigen Abschnitt 6 beschrieben worden. Ein solches Verfahren ist jedoch zur Verwendung in der Praxis nicht immer geeignet, weil bei ressourcenbeschränkten Geräten – wie z.B. bei tragbaren Datenträgern und sonstigen kryptographischen Vorrichtungen – die Erzeugung von Zufallszahlen oft aufwendig ist.A particularly simple example of a method for prime number search in which a candidate number n to be checked from a predetermined search range M k is randomly selected and subjected to a prime number test in each step has already been described in Section 6 above. Such a method, however, is not always suitable for practical use, because in resource-constrained devices such as portable data carriers and other cryptographic devices, the generation of random numbers is often cumbersome.
Es wird daher im hier beschriebenen Ausführungsbeispiel ein Primzahlermittlungsverfahren eingesetzt, bei dem eine inkrementelle Suche durchgeführt wird. Die inkrementelle Suche beginnt mit einem zufällig bestimmten Startwert n0 aus dem Suchbereich Mk. Ausgehend von diesem Start wert n0 werden der Reihe nach die Werte einer Testsequenz n0, n0 + 2, n0 + 4, ..., n0 + 2(s – 1) auf ihre Primzahleigenschaft hin überprüft, bis die erste wahrscheinliche Primzahl gefunden wird. Wenn die als auch als Sieblänge bezeichnete Maximalanzahl s von überprüften Werten in der Testsequenz erreicht ist, ohne daß eine wahrscheinliche Primzahl gefunden wurde, wird eine neue Testreihe mit einer neuen Zufallszahl als Startwert n0 begonnen. Dieses an sich bekannte Primzahlermittlungsverfahren ist hier gegenüber dem Stand der Technik dahingehend abgewandelt, daß nicht einer der bekannten Primzahltests, sondern eines der oben beschriebenen Ausführungsbeispiele der Erfindung als Testverfahren verwendet wird.Therefore, in the exemplary embodiment described here, a prime number determination method is used in which an incremental search is carried out. The incremental search begins with a randomly determined starting value n 0 from the search area M k . Starting from this start value n 0 , the values of a test sequence n 0 , n 0 + 2, n 0 + 4,..., N 0 + 2 (s - 1) are checked successively for their prime property until the first probable prime number is found. If the maximum number s, also referred to as the screen length, of verified values in the test sequence has been reached without a probable prime being found, a new test series is started with a new random number as start value n 0 . This known per se prioritization method is here compared to the prior art in that not one of the known primality tests, but one of the above-described embodiments of the invention is used as a test method.
Das Primzahlermittlungsverfahren mit inkrementeller Suche benötigt viel weniger Zufallszahlen als das in Abschnitt 6 beschriebene Verfahren mit zufälliger Suche. Ferner hat das Verfahren mit inkrementeller Suche den Vorteil, daß vorbereitende Probedivisionen mit Techniken wie dem Sieb des Eratosthenes kombiniert werden können, um zusammengesetzte Zahlen mit kleinen Primfaktoren schnell zu erkennen und sogleich zu verwerfen. Solche vorgeschalteten Tests oder Siebverfahren beeinträchtigen die Gültigkeit der in den Abschnitten 6 und 7 gegebenen Fehlerabschätzungen für die Primzahltests nicht, sofern keine Primzahlen durch die Vorab-Tests verworfen werden.The Primary Determination with Incremental Search Needs Much less random numbers than the procedure described in section 6 with random Search. Furthermore, the incremental search method has the advantage that preparatory Trial divisions combined with techniques such as the sieve of Eratosthenes can be to quickly recognize composite numbers with small prime factors and immediately to reject. Such upstream tests or screening methods impair the validity the error estimates given in Sections 6 and 7 for the Primality tests are not, if no primes by the pre-tests be discarded.
Die Fehlerwahrscheinlichkeit des Primzahlermittlungsverfahrens mit inkrementeller Suche ist jedoch deutlich höher als die Fehlerwahrscheinlichkeit des in Abschnitt 6 beschriebenen Verfahrens mit zufälliger Suche. Dies liegt daran, daß die aufeinanderfolgenden Primzahltests innerhalb einer Suchreihe nicht unabhängig voneinander sind. Näherungsweise erhöht sich bei dem Verfahren mit inkrementeller Suche die Fehlerwahrscheinlichkeit um einen Faktor von ungefähr s2, wenn die Testsequenz die Länge s aufweist, sofern bereits in der ersten durchsuchten Testsequenz eine wahrscheinliche Primzahl gefunden wird. Wenn weitere Testsequenzen durchsucht werden müssen, wird die Fehlerwahrscheinlichkeit sogar noch größer.However, the probability of error of the incremental search primes determination method is significantly higher than the error probability of the random search method described in Section 6. This is because the successive primality tests within a search queue are not independent of each other. Approximately, in the incremental search method, the error probability increases by a factor of about s 2 when the test sequence has the length s, if a probable prime is already found in the first searched test sequence. As more test sequences have to be searched, the probability of error becomes even greater.
Für viele Anwendungen ist es wünschenswert, eine geringe Fehlerwahrscheinlichkeit bei dem Primzahlermittlungsverfahren mit inkrementeller Suche auch dann zu erhalten, wenn mehrere Testsequenzen durchlaufen werden müssen. Dies kann z.B. dann der Fall sein, wenn eine sehr geringe Gesamtfehlerwahrscheinlichkeit erzielt werden muß oder wenn die einzelnen Testsequenzen relativ viele "Lücken" enthalten, weil die letztendlich ermittelten Primzahlen zusätzlich zu ihrer Primzahleigenschaft weiteren Bedingungen genügen müssen.For many applications, it is desirable to maintain a low probability of error in the incremental search prime number determination method, even if multiple test sequences must be run through. This can be the case, for example, if a very low total error error or if the individual test sequences contain a relatively large number of "gaps" because the finally determined primes must satisfy additional conditions in addition to their prime property.
Um die Gesamtfehlerwahrscheinlichkeit gering zu halten, wird im folgenden Ausführungsbeispiel des Primzahlermittlungsverfahrens vorgeschlagen, die Anzahl t der Testrunden, die eine zu prüfende Zahl n bestehen muß, bis sie als Primzahl angesehen wird, mit zunehmender Suchdauer allmählich zu erhöhen. Genauer gesagt, wird ein Parameter r eingeführt, der angibt, nach wievielen erfolglosen Suchvorgängen in je einer Testsequenz die Testrundenzahl t um 1 erhöht wird. Dieses Verfahren SQFTINC wird durch die folgende Pseudocode-Darstellung im Detail beschrieben: In order to keep the overall error probability low, in the following embodiment of the prime number determination method it is proposed to gradually increase the number t of test rounds, which must pass a number n to be examined, until it is regarded as a prime number. More specifically, a parameter r is introduced which indicates after how many unsuccessful searches in each test sequence the test round number t is increased by 1. This method SQFT INC is described in detail by the following pseudocode representation:
Die in dem Verfahren SQFTINC implementierte Idee, die Anzahl der geforderten Testrunden bei einer inkrementellen Suche allmählich zu erhöhen, ist bereits in der deutschen Patentanmeldung 10 2004 007 615.4 vom 17. Februar 2004 desselben Erfinders und derselben Anmelderin beschrieben worden. Der Inhalt dieser Anmeldung wird hiermit vollumfänglich in das vorliegende Dokument aufgenommen. In Abwandlungen des Verfahrens SQFTINC kann vorgesehen sein, nicht den Primzahltest SQFT, sondern ein anderes erfindungsgemäßes Primzahltestverfahren zu verwenden.The idea implemented in the method SQFT INC to gradually increase the number of required test rounds in an incremental search has already been described in German Patent Application 10 2004 007 615.4 of 17 February 2004 by the same inventor and the same Applicant. The content of this application is hereby incorporated in full in the present document. In modifications of the method SQFT INC it can be provided not to use the primality test SQFT but another primality test method according to the invention.
Im folgenden wird mit Qk,t,s,r die Wahrscheinlichkeit bezeichnet, daß das Verfahren SQFTINC mit den Eingabeparametern k, t, s und r als Ergebnis keine Primzahl, sondern eine zusammengesetzte Zahl liefert. Diese Fehlerwahrscheinlichkeit Qk,t,s,r ist von dem Erfinder abgeschätzt worden. Die folgende Tabelle enthält einige Werte von –log2 Qk,t,s,r in Abhängigkeit von der Bitlänge k und der Rundenanzahl t. Es wurden jeweils s = c·ln(2k) und c = r = 10 gewählt. Durch diese Wahl der Testsequenzgröße s in Abhängigkeit von k ergibt sich eine ungefähr konstante Wahrscheinlichkeit, daß sich in einer Testsequenz eine Primzahl befindet. Die Werte für c und r werden in der Praxis oft kleiner als 10 gewählt: In the following, Qk , t, s, r denotes the probability that the method SQFT INC with the input parameters k, t, s and r as the result does not give a prime number but a composite number. This error probability Q k, t, s, r has been estimated by the inventor. The following table contains some values of -log 2 Q k, t, s, r depending on the bit length k and the number of laps t. In each case s = c · ln (2 k ) and c = r = 10 were selected. This choice of the test sequence size s as a function of k results in an un Danger constant probability that in a test sequence is a prime number. The values for c and r are often chosen smaller than 10 in practice:
Die Laufzeit des Verfahrens SQFTINC, ausgedrückt in Vielfachen der Laufzeit für einen Miller-Rabin-Test, kann für eine kleine Konstante c3 << 1 ungefähr mit (ln(2k)/2 + 2t)·(1 + c3) abgeschätzt werden, wenn c ≥ 1 und rc ≥ 10 gelten und k hinreichend groß ist. Dieses Abschätzung beruht auf mathematischen Überlegungen und praktischer Erfahrung, so daß in Einzelfällen eine längere Laufzeit möglich ist.The runtime of the SQFT INC method, expressed in multiples of the runtime for a Miller-Rabin test, may be approximately (ln ( 2k ) / 2 + 2t) * (1 + c 3 ) for a small constant c 3 << 1 be estimated if c ≥ 1 and rc ≥ 10 and k is sufficiently large. This estimation is based on mathematical considerations and practical experience, so that in some cases a longer duration is possible.
Die in der obigen Beschreibung von Ausführungsbeispielen enthaltenen Einzelheiten sollen nicht als Einschränkung des Schutzbereichs der Erfindung aufgefaßt werden, sondern vielmehr als Beispiele von bevorzugten Ausführungsformen. Viele andere Abwandlungen sind möglich und für den Fachmann offensichtlich. Der Bereich der Erfindung soll deshalb nicht durch die dargestellten Ausführungsbeispiele bestimmt werden, sondern durch die Ansprüche und ihre Äquivalente.The included in the above description of embodiments Details should not be construed as limiting the scope of the Conceived invention but rather as examples of preferred embodiments. Many other modifications are possible and for the obvious. The scope of the invention is therefore intended to be not determined by the illustrated embodiments, but through the claims and their equivalents.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE200410044453 DE102004044453A1 (en) | 2004-09-14 | 2004-09-14 | Data value testing method for cryptographic applications, involves determining auxiliary value in course of prime number test, and withdrawing another prime number test by auxiliary value |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE200410044453 DE102004044453A1 (en) | 2004-09-14 | 2004-09-14 | Data value testing method for cryptographic applications, involves determining auxiliary value in course of prime number test, and withdrawing another prime number test by auxiliary value |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102004044453A1 true DE102004044453A1 (en) | 2006-03-30 |
Family
ID=36011390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE200410044453 Withdrawn DE102004044453A1 (en) | 2004-09-14 | 2004-09-14 | Data value testing method for cryptographic applications, involves determining auxiliary value in course of prime number test, and withdrawing another prime number test by auxiliary value |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102004044453A1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2587713A2 (en) | 2011-10-28 | 2013-05-01 | Giesecke & Devrient GmbH | Efficient modular inversion with prime number test |
WO2013060466A2 (en) | 2011-10-28 | 2013-05-02 | Giesecke & Devrient Gmbh | Determination of a division remainder and detection of prime number candidates for a cryptographic application |
DE102011117236A1 (en) | 2011-10-28 | 2013-05-02 | Giesecke & Devrient Gmbh | Efficient prime number testing |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6330332B1 (en) * | 1997-07-30 | 2001-12-11 | Fujitsu Limited | Prime number generation apparatus B-smoothness judgement apparatus and computer memory product |
US20020186837A1 (en) * | 2001-03-26 | 2002-12-12 | Hopkins W. Dale | Multiple prime number generation using a parallel prime number search algorithm |
DE10161203A1 (en) * | 2001-12-13 | 2003-07-03 | Klaus-Dieter Lewke | Method for generation of primary number candidates, whose validity can then be checked with further methods, whereby the method speeds up the finding of probable prime numbers |
US6718536B2 (en) * | 2002-06-21 | 2004-04-06 | Atmel Corporation | Computer-implemented method for fast generation and testing of probable prime numbers for cryptographic applications |
-
2004
- 2004-09-14 DE DE200410044453 patent/DE102004044453A1/en not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6330332B1 (en) * | 1997-07-30 | 2001-12-11 | Fujitsu Limited | Prime number generation apparatus B-smoothness judgement apparatus and computer memory product |
US20020186837A1 (en) * | 2001-03-26 | 2002-12-12 | Hopkins W. Dale | Multiple prime number generation using a parallel prime number search algorithm |
DE10161203A1 (en) * | 2001-12-13 | 2003-07-03 | Klaus-Dieter Lewke | Method for generation of primary number candidates, whose validity can then be checked with further methods, whereby the method speeds up the finding of probable prime numbers |
US6718536B2 (en) * | 2002-06-21 | 2004-04-06 | Atmel Corporation | Computer-implemented method for fast generation and testing of probable prime numbers for cryptographic applications |
Non-Patent Citations (6)
Title |
---|
MÜLLER,Siguna:A Porbable Prime Test with Very High Confidence for eta IDENTICAL 3 mod 4.In:J. Cryptology, 2003, 16, Springer-Verlag, S.117-139 * |
MÜLLER,Siguna:A Porbable Prime Test with Very High Confidence for η ≡ 3 mod 4.In:J. Cryptology, 2003, 16, Springer-Verlag, S.117-139; |
MÜLLER,Siguna:A Probable Prime Text with Very High Confidence for eta IDENTICAL 1 mod 4.In:ASIACRYPT 2001, Springer- Verlag, LNCS 2248,S.87-106 * |
MÜLLER,Siguna:A Probable Prime Text with Very High Confidence for η ≡ 1 mod 4.In:ASIACRYPT 2001, Springer- Verlag, LNCS 2248,S.87-106; |
PENZHORN,W.T.:Fast Algorithms for the Generation of Large Primes for the RSA Cryptosystem.In:COMSIG 92, IEEE,S.169-172 * |
PENZHORN,W.T.:Fast Algorithms for the Generation of Large Primes for the RSA Cryptosystem.In:COMSIG 92, IEEE,S.169-172; |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2587713A2 (en) | 2011-10-28 | 2013-05-01 | Giesecke & Devrient GmbH | Efficient modular inversion with prime number test |
WO2013060466A2 (en) | 2011-10-28 | 2013-05-02 | Giesecke & Devrient Gmbh | Determination of a division remainder and detection of prime number candidates for a cryptographic application |
DE102011117237A1 (en) | 2011-10-28 | 2013-05-02 | Giesecke & Devrient Gmbh | Efficient modular inversion with primality test |
DE102011117236A1 (en) | 2011-10-28 | 2013-05-02 | Giesecke & Devrient Gmbh | Efficient prime number testing |
DE102011117219A1 (en) | 2011-10-28 | 2013-05-02 | Giesecke & Devrient Gmbh | Determine a division remainder and determine prime candidates for a cryptographic application |
WO2013060467A1 (en) | 2011-10-28 | 2013-05-02 | Giesecke & Devrient Gmbh | Efficient prime-number check |
US9520995B2 (en) | 2011-10-28 | 2016-12-13 | Giesecke & Devrient Gmbh | Efficient prime-number check |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE10196478B3 (en) | A family of linear multi-user detectors (MUDs) | |
EP2771782B1 (en) | Efficient primality checking | |
EP0700183B1 (en) | Method for generation of bit reliability information for a digital transmission system using M-ary orthogonal modulation | |
DE102006022960A1 (en) | Method for encrypting input data, cryptographic system and computer program product | |
EP2641241B1 (en) | Method for long-number division or modular reduction | |
DE102004044453A1 (en) | Data value testing method for cryptographic applications, involves determining auxiliary value in course of prime number test, and withdrawing another prime number test by auxiliary value | |
DE102014101936A1 (en) | Method for permuting data elements and permuting device | |
EP2587713B1 (en) | Efficient modular inversion with prime number test | |
EP1564649A2 (en) | Generation of prime numbers using probabilistic tests | |
EP1430614B1 (en) | Method and device for determining the initialization states in pseudo-noise sequences | |
DE102011117219A1 (en) | Determine a division remainder and determine prime candidates for a cryptographic application | |
EP1257904B1 (en) | Method for the generation of a series of random numbers of a 1/f noise | |
DE10357749B4 (en) | Apparatus and method for determining a divisor freedom of a test number with respect to a plurality of primes | |
DE10357751B4 (en) | Apparatus and method for providing a test number | |
DE10357748B3 (en) | Primary number determination device for test number for electronic encoding method using 2 separate testing devices employing different primary number algorithms | |
EP1506473A2 (en) | Modular inversion that is protected against espionage | |
DE10042234A1 (en) | Method and device for performing a modular exponentiation in a cryptographic processor | |
DE10220262A1 (en) | Calculation of the modular inverse of a value | |
EP3504616B1 (en) | Module and method for the secured computation of mathematical operations | |
EP2128754B1 (en) | Safe sliding window exponentiation | |
DE102007023222B4 (en) | Apparatus for checking a quality and generating a group of rational points of a key generation variety | |
DE102004022647B4 (en) | Method and device for determining the number of expired clock cycles of a binary random number generator | |
DE10329885B4 (en) | Method of constructing elliptic curves over finite bodies | |
EP1595356B1 (en) | Generation of result values having a predefined characteristic | |
DE102010051852A1 (en) | Procedure for long-range division |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OM8 | Search report available as to paragraph 43 lit. 1 sentence 1 patent law | ||
R005 | Application deemed withdrawn due to failure to request examination | ||
R409 | Internal rectification of the legal status completed | ||
R409 | Internal rectification of the legal status completed | ||
R012 | Request for examination validly filed |
Effective date: 20110912 |
|
R016 | Response to examination communication | ||
R081 | Change of applicant/patentee |
Owner name: GIESECKE+DEVRIENT MOBILE SECURITY GMBH, DE Free format text: FORMER OWNER: GIESECKE & DEVRIENT GMBH, 81677 MUENCHEN, DE |
|
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |