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 PDF

Info

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
Application number
DE200410044453
Other languages
German (de)
Inventor
Martin Dr. Seysen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Giesecke and Devrient Mobile Security GmbH
Original Assignee
Giesecke and Devrient GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Giesecke and Devrient GmbH filed Critical Giesecke and Devrient GmbH
Priority to DE200410044453 priority Critical patent/DE102004044453A1/en
Publication of DE102004044453A1 publication Critical patent/DE102004044453A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public 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/3033Public 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7204Prime number generation or prime number testing

Abstract

The method involves implementing a prime number test according to a probabilistic test method. Another prime number test in accordance to another probabilistic test procedure which differs from former test procedure is implemented, when the former test is not identified as compound number. An auxiliary value is determined in the course of former test, where the latter test is withdrawn by the auxiliary value. Independent claims are also included for the following: (A) a computer program product with several program commands (B) a device, particularly mobile data carrier or a secured cryptographic unit.

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 als einzige Zeichnungsfigur veranschaulicht einen Verfahrensablauf gemäß einem einfachen Ausführungsbeispiel der Erfindung. 1 the sole drawing figure illustrates a method sequence according to a simple exemplary embodiment of the invention.

1. Überblick über das in 1 gezeigte Ausführungsbeispiel1. Overview of the in 1 shown embodiment

Das in 1 dargestellte Primzahltestverfahren verarbeitet einen Datenwert 10, der eine zu testende Zahl n repräsentiert. Der Datenwert 10 kann in jeder technischen Repräsentation vorliegen, z.B. in Form von Binärwerten, die Ladungsniveaus oder Spannungspegeln in einem Speicherbereich entsprechen.This in 1 The primality test procedure illustrated processes a data value 10 representing a number n to be tested. The data value 10 may be present in any technical representation, eg in the form of binary values corresponding to charge levels or voltage levels in a memory area.

Der Datenwert 10 wird zunächst in einem ersten Primzahltest 12 untersucht. Hierfür wird ein erstes probabilistisches Testverfahren eingesetzt, das beispielsweise auf den Grundideen des Miller-Rabin-Verfahrens beruhen kann. Ein Ausführungsbeispiel dieses Testverfahrens ist in Abschnitt 3 genau beschrieben.The data value 10 is first in a first primal count 12 examined. For this purpose, a first probabilistic test method is used, which can be based for example on the basic ideas of the Miller-Rabin method. An embodiment of this test method is described in detail in section 3.

Durch den ersten Primzahltest 12 wird die zu untersuchende Zahl n entweder als zusammengesetzte Zahl oder als mögliche Primzahl identifiziert. Die Klassifizierung als zusammengesetzte Zahl ist nie fehlerhaft, während die Klassifizierung als mögliche Primzahl mit einer gewissen Fehlerwahrschein lichkeit behaftet ist. Es ist also möglich, daß eine im ersten Primzahltest 12 als mögliche Primzahl angesehene Zahl n in Wirklichkeit eine zusammengesetzte Zahl ist.Through the first primality test 12 the number n to be examined is identified either as a composite number or as a possible prime number. The classification as a composite number is never erroneous, while the classification as a possible prime number has a certain probability of error. So it's possible that one in the first primality test 12 a number n considered to be a possible prime, is actually a compound number.

Wenn der erste Primzahltest 12 die zu überprüfende Zahl n als mögliche Primzahl ansieht, wird mindestens ein weiterer Primzahltest 16 ausgeführt. Der erste Primzahltest 12 gibt in diesem Fall Hilfswerte 14 aus, die in dem mindestens einen weiteren Primzahltest 16 zur Verringerung des Berechnungsaufwands verwendet werden.When the first primality test 12 If the number to be checked considers n to be a possible prime number, at least one further primality test will be performed 16 executed. The first primality test 12 gives auxiliary values in this case 14 in at least one more primality test 16 used to reduce the computational burden.

Im vorliegenden Ausführungsbeispiel umfassen die Hilfswerte 14 zwei Datenwerte c und ε. Der erste Hilfswert c ist ein Element eines ersten mathematischen Rings, nämlich des Rings der ganzen Zahlen modulo n. Genauer gesagt ist der erste Hilfswert c ein kleiner quadratischer Nichtrest modulo n. Im Fall n ≠ 1 mod 8 kann dabei stets c = –1 oder c = 2 gewählt werden. Durch Adjunktion der Wurzel aus c an den ersten Ring entsteht ein zweiter mathematischer Ring, der eine quadratische Erweiterung des ersten Ringes ist. Im Fall einer Primzahl n ist dieser zweite Ring isomorph zu GF(n2). Der zweite Hilfswert ε ist ein Element des zweiten mathematischen Rings. Genauer ist der zweite Hilfswert ε im vorliegenden Ausführungsbeispiel eine primitive achte Einheitswurzel in dem zweiten Ring.In the present embodiment, the auxiliary values include 14 two data values c and ε. The first auxiliary value c is an element of a first mathematical ring, namely the ring of integers modulo n. Specifically, the first auxiliary value c is a small quadratic non-modulus n. In the case n ≠ 1 mod 8, c = -1 or c = 2 are selected. By adding the root of c to the first ring, a second mathematical ring is created, which is a quadratic extension of the first ring. In the case of a prime number n, this second ring is isomorphic to GF (n 2 ). The second auxiliary value ε is an element of the second mathematical ring. More specifically, the second auxiliary value ε in the present embodiment is a primitive eighth unit root in the second ring.

Das für die weiteren Primzahltests 16 verwendete Testverfahren beruht in den vorliegenden Ausführungsbeispielen auf Grundideen des quadratischen Frobenius-Tests. Allerdings ist das Testverfahren hier besonders einfach ausgestaltet, was unter anderem durch die Verwendung der im ersten Primzahltest 12 berechneten Hilfswerte 14 ermöglicht wird. Der weitere Primzahltest 16 wird daher hier als vereinfachter quadratischer Frobenius-Test (SQFT – simplified quadratic Frobenius test) bezeichnet. Ausführungsbeispiele des weiteren Primzahltests 16 sind im folgenden in den Abschnitten 4 und 7 genau beschrieben.That for the further primality tests 16 Test methods used in the present embodiments are based on ideas of the quadratic Frobenius test. However, the test procedure here is particularly simple in design, which, among other things, by the use of the first primality test 12 calculated auxiliary values 14 is possible. The further primality test 16 is therefore referred to here as a simplified quadratic Frobenius test (SQFT - simplified quadratic Frobenius test). Exemplary embodiments of the further primality test 16 are described in detail in Sections 4 and 7 below.

Ähnlich wie beim ersten Primzahltest 12 wird auch bei jedem weiteren Primzahltest 16 die zu testende Zahl n entweder sicher als zusammengesetzte Zahl oder – dies allerdings mit einer gewissen Fehlerwahrscheinlichkeit – als mögliche Primzahl identifiziert. Um eine vernachlässigbar geringe Gesamtfehlerwahrscheinlichkeit zu erhalten – typischerweise soll diese kleiner als die Wahrscheinlichkeit eines durch eine Hardwarestörung verursachten Berechnungsfehlers sein –, wird der weitere Primzahltest 16 wiederholt ausgeführt, solange die zu testende Zahl n nicht als zusammengesetzt erkannt wird. Jede solche Ausführung des zweiten Primzahltests 16 wird hier als "Testrunde" bezeichnet.Similar to the first primality test 12 is also used for every further primality test 16 the number n to be tested either safely as a composite number or - but with a certain probability of error - identified as a possible prime. In order to obtain a negligibly small overall error probability - typically being less than the probability of a computational error caused by a hardware failure - the further primality test becomes 16 repeatedly executed as long as the number n to be tested is not recognized as being composed. Any such execution of the second primality test 16 is referred to here as a "test round".

In Schritt 18 wird überprüft, ob eine vorgegebene Maximalzahl von erfolgreichen Testrunden – beispielsweise zwei oder drei Testrunden – erreicht worden ist. Ist dies der Fall, so endet das in 1 gezeigte Verfahren mit dem Ergebnis, daß der Datenwert 10 höchstwahrscheinlich eine Primzahl repräsentiert (Schritt 20).In step 18 a check is made as to whether a predetermined maximum number of successful test rounds - for example two or three rounds of testing - has been reached. If this is the case, it ends in 1 shown method with the result that the data 10 most likely represents a prime number (step 20 ).

Wenn dagegen entweder bei dem ersten Primzahltest 12 oder bei einer Testrunde des zweiten Primzahltests 16 die zu überprüfende Zahl n als zusammengesetzte Zahl erkannt wird, so wird das Verfahren sofort abgebrochen. Es erfolgt dann ein Aussprung – in 1 durch gestrichelte Pfeile dargestellt – zu der Ergebnisausgabe, daß der Datenwert 10 sicher eine zusammengesetzte Zahl repräsentiert (Schritt 22).If, on the other hand, either the first primality test 12 or in a test round of the second primality test 16 the number n to be checked is recognized as a composite number, the procedure is aborted immediately. It then takes a jump - in 1 represented by dashed arrows - to the result output that the data value 10 surely represents a composite number (step 22 ).

Ausführungsbeispiele des in 1 gezeigten Gesamtverfahrens zum Primzahltest sind im folgenden als Verfahren SQFT und SQFT3 in den Abschnitten 5 und 7 genau beschrieben.Embodiments of the in 1 The overall primality test procedure detailed below is described in detail below as methods SQFT and SQFT3 in Sections 5 and 7.

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, und

Figure 00110001
ist 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
Figure 00110001
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: . : R(n, c) → R(n, c), z = ax – b N(∙) : R(n, c) → Zn, N(z) = z·z = b2 – ca2 For z = ax + b, the following multiplicative homomorphisms are defined on R (n, c): , : R (n, c) → R (n, c), z = ax - b N (∙): R (n, c) → Z n , N (z) = z · Z = b 2 - approx 2

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 12 (1) verwendet wird, beruht im vorliegenden Ausführungsbeispiel auf dem Miller-Rabin-Test. Seine Laufzeit ist sehr gering, nämlich ungefähr gleich der Laufzeit eines Miller-Rabin-Tests mit kleiner Basis.The first test procedure to run the first primality test 12 ( 1 ) is based in the present embodiment on the Miller-Rabin test. Its running time is very low, roughly equal to the duration of a small-scale Miller Rabin test.

Wenn der zu testende Datenwert 10 eine zusammengesetzte Zahl repräsentiert, erkennt dies das erste Testverfahren mit beträchtlicher Wahrscheinlichkeit und endet mit der Ausgabe "n ist zusammengesetzt". Erkennt das Verfahren den Datenwert 10 nicht als zusammengesetzte Zahl, kann möglicherweise eine Primzahl vorliegen. Es ist eine Besonderheit des hier beschriebenen Verfahrens, daß in diesem Fall nicht nur eine Ausgabe "n ist möglicherweise prim" erfolgt, sondern daß das Verfahren ferner Hilfswerte 14 ermittelt, die für einen weiteren Primzahltest – nämlich im vorliegenden Ausführungsbeispiel einen quadratischen Frobenius-Test – nützlich sind. Diese Hilfswerte 14 sind im vorliegenden Ausführungsbeispiel ein kleiner quadratischer Nichtrest c modulo n und eine primitive achte Einheitswurzel ε in R(n, c).If the data value to be tested 10 represents a composite number, this recognizes the first test procedure with considerable probability and ends with the output "n is composed". Does the procedure recognize the data value? 10 not as a compound number, may possibly be prime. It is a peculiarity of the method described here that in this case not only is an output "n possibly possibly prime", but that the method also has auxiliary values 14 which are useful for another primality test - namely, a Frobenius square test in the present embodiment. These auxiliary values 14 are in the present embodiment, a small quadratic non-residue c modulo n and a primitive eighth unit root ε in R (n, c).

In der hier verwendeten Pseudocode-Notation wird das erste Testverfahren wie folgt beschrieben:

Figure 00130001
Figure 00140001
In the pseudocode notation used here, the first test procedure is described as follows:
Figure 00130001
Figure 00140001

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 ± √–1)/√2 der primitiven achten Einheitswurzeln leicht nachgeprüft werden.The fact that ε is a primitive eighth unit root in R (n, c) is obvious for the case n = 1 (mod 8) because of ε 4 = -1 (mod R (n, c)). For the other cases, this can be done using the standard representation (± 1 ± √ -1 ) / √ 2 The primitive eighth unit roots can be easily checked.

4. Zweites Testverfahren (SQFTRND)4. Second Test Method (SQFT RND )

Das zweite Testverfahren, das zur Ausführung jedes weiteren Primzahltests 16 (1) verwendet wird, beruht im vorliegenden Ausführungsbeispiel auf dem quadratischen Frobenius-Test. Es handelt sich hier um eine besonders einfache Variante, die die vom ersten Testverfahren MR2 bereitgestellten Hilfswerte 14 nutzt. Das Testverfahren SQFTRND wird gemäß der folgenden Pseudocode-Darstellung ausgeführt:

Figure 00150001
The second test procedure used to perform each additional primality test 16 ( 1 ) is based in the present example on the Frobenius square test. This is a particularly simple variant that provides the auxiliary values provided by the first test method MR2 14 uses. The SQFT RND test procedure is performed according to the following pseudocode representation:
Figure 00150001

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 14 – im vorliegenden Ausführungsbeispiel die Werte c und ε – verwendet.The processes of the second test method SQFT RND, which are referred to as "test rounds", are repeated until either the examined number n has been recognized as being composed or until a predefined maximum value t of test rounds has been reached. Only in the latter case, ie, if the number n has passed the first test method MR2 and t rounds of the second test method SQFT RND , the number n is referred to as the probable prime number. For all test rounds, the auxiliary values determined by the first test method MR2 are 14 - In the present embodiment, the values c and ε - used.

In der hier verwendeten Pseudocode-Darstellung läßt sich der Ablauf des Verfahrens SQFT wie folgt zusammenfassen:

Figure 00160001
Figure 00170001
In the pseudocode representation used here, the sequence of the method SQFT can be summarized as follows:
Figure 00160001
Figure 00170001

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:

Figure 00190001
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 :
Figure 00190001

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:

Figure 00200001
Figure 00210001
The so-supplemented second test method SQFT3 RND is described as a pseudocode as follows:
Figure 00200001
Figure 00210001

Das in Schritt [5] des Verfahrens SQFT3RND berechnete Minimum existiert, weil in diesem Schritt

Figure 00210002
gilt. 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
Figure 00210002
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.

Figure 00210003
Figure 00210003

Figure 00220001
Figure 00220001

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 w·z = (m1 + m2)x + (cAz + Bz)(Aw + Bw) – cm1 – m2 mit m1 = AzBw und m2 = BzAw verwendet. Im Fall w = z gilt m1 = m2, so daß eine Multiplikation eingespart werden kann.In the implementations presented here, values from R (n, c) are generally represented by their polynomial coefficients, eg, the value z ∈ R (n, c) by A z , B z ∈ Z n with z = A z x + B z , To multiply two values w, z ∈ R (n, c) by w = A w x + B w and z = A z x + B z then the formula wz = (m 1 + m 2 ) x + (cA z + B z ) (A w + B w ) - cm 1 - m 2 with m 1 = A z B w and m 2 = B z A w used. In the case w = z m 1 = m 2 , so that a multiplication can be saved.

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 Beziehung

Figure 00240001
verwendet, 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
Figure 00240001
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 und

Figure 00240002
gelten. 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
Figure 00240002
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:

Figure 00240003
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⌋ :
Figure 00240003

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 und

Figure 00250001
gegeben 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 und
Figure 00250002
kostet 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: log2 s + log2 3f + log2 3g + e·log2 3f + O(e) = = log2 (s·3ef+g) + O(e + f) = log2 n·(1 + o(1)) The calculation of t 0 , t 1 , t 2 ,..., T e , t e + 1 is by far the most complex partial operation in the method SQFT 3 RND . The following consideration shows that this requires at most log 2 n * (1 + o (1)) squarings and o (log 2 n) multiplications in R (n, c): to calculate a k-th power after a squaring and multiplication methods are known to require at most log 2 k + 0 (1) squarings and o (log 2 k) multi-lations. If t j-1 and
Figure 00250001
Then, according to the above formula, t j can be calculated for j ≥ 2 with log 2 3 f + O (1) squarings and o (log 2 3 f ) multiplications. The calculation of t 0 , t 1 and
Figure 00250002
additionally costs log 2 s, log 2 3 g and log 2 3 f squared and correspondingly less multiplications. Overall, the estimate for the number of squares is therefore: log 2 s + log 2 3 f + log 2 3 G + e · log 2 3 f + O (e) = = log 2 (S · 3 ef + g ) + O (e + f) = log 2 n · (1 + o (1))

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 = z gilt. Als nächstes wird in Schritt [3]

Figure 00250003
gemäß der folgenden Gleichung berechnet:
Figure 00250004
Furthermore, z -1 is calculated. From this and from t e + 1 = z ⌊ (n + 1) / 8⌋ = z (n + 1-ε) / 8 (for an integer ε with 0 ≤ ε <8) then z n is calculated and in step [2] checks if z n = z applies. Next, in step [3]
Figure 00250003
calculated according to the following equation:
Figure 00250004

Um zu überprüfen, ob zγ = 1 gilt, kann stattdessen

Figure 00250005
überprüft werden. Diese Bedingung ist äquivalent zu zγ = 1, weil
Figure 00250006
gilt und z invertierbar ist.To check if z γ = 1, you can use instead
Figure 00250005
be checked. This condition is equivalent to z γ = 1 because
Figure 00250006
and z is invertible.

Schließlich muß zur Ausführung der Schritte [5] und [7] der Wert

Figure 00260001
mit
Figure 00260002
berechnet 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 ist
Figure 00260003
Mit den bereits vorliegenden Hilfswerten tj können weitere Hilfswerte
Figure 00260004
für j = 0, 1, ..., e + 1 problemlos berechnet werden. Weiter ist die Gleichung
Figure 00260005
äquivalent zu der folgenden Gleichung:
Figure 00260006
Finally, to perform steps [5] and [7], the value
Figure 00260001
With
Figure 00260002
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
Figure 00260003
With the already existing auxiliary values t j , further auxiliary values can be obtained
Figure 00260004
for j = 0, 1, ..., e + 1 are easily calculated. Next is the equation
Figure 00260005
equivalent to the following equation:
Figure 00260006

Diese Äquivalenz gilt, weil die Beziehungen zn = z und r = s(n – 1) erfüllt sind und weil z invertierbar ist. Daher kann ein Wert J berechnet werden, der durch

Figure 00260007
definiert ist. Der Wert i – 1 muß die Ungleichung τ(J – 1) ≤ i – 1 ≤ τ(J) – 1 erfüllen. Nun wird die folgende Berechnung ausgeführt:
Figure 00260008
This equivalence holds because the relations z n = z and r = s (n-1) are met and because z is invertible. Therefore, a value J can be calculated by
Figure 00260007
is defined. The value i-1 must satisfy the inequality τ (J-1) ≦ i-1 ≦ τ (J) -1. Now, the following calculation is performed:
Figure 00260008

Aus den obigen Überlegungen ergibt sich ferner, daß

Figure 00260009
in der folgenden Sequenz enthalten sein muß:
Figure 00260010
From the above considerations it also follows that
Figure 00260009
must be included in the following sequence:
Figure 00260010

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:

Figure 00270001
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:
Figure 00270001

Ä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 = z gilt. Als nächstes wird

Figure 00270002
in Schritt [3] wie folgt berechnet:
Figure 00270003
From t e + 1 = z ⌊ (n-1) 8⌋ = z (n-1-ε) / 8 (for an integer ε with 0 ≦ ε <8), again z n is calculated and in step [2] checks if z n = z applies. Next will be
Figure 00270002
calculated in step [3] as follows:
Figure 00270003

Wieder sei τ(j) = max {0, (j – 1) f + g}. Mit dieser Definition von τ(j) ergibt sich

Figure 00270004
Daher können aus
Figure 00270005
die weiteren Werte
Figure 00270006
für j = 0, 1, ..., e + 1 berechnet werden. Mit diesen Werten wird schließlich der im Verfahrensschritt [7] benötigte Wert
Figure 00270007
mit
Figure 00270008
berechnet, 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
Figure 00270004
Therefore, can out
Figure 00270005
the other values
Figure 00270006
for j = 0, 1, ..., e + 1. With these values, finally, the value required in step [7] becomes
Figure 00270007
With
Figure 00270008
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:

Figure 00280001
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:
Figure 00280001

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 Gleichung

Figure 00300001
gilt – 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, ob
Figure 00300002
ist. 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
Figure 00300001
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
Figure 00300002
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:

Figure 00320001
Figure 00330001
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:
Figure 00320001
Figure 00330001

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:

Figure 00340001
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:
Figure 00340001

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)

Verfahren zum Testen, ob ein vorgegebener Datenwert (10) eine Primzahl repräsentiert, mit den Schritten: – Ausführen eines ersten Primzahltests (12) gemäß einem ersten probabilistischen Testverfahren, und – falls bei dem ersten Primzahltest (12) der Datenwert (10) nicht als zusammengesetzte Zahl identifiziert wurde, dann Ausführen mindestens eines weiteren Primzahltests (16) gemäß einem zweiten probabilistischen Testverfahren, das sich von dem ersten Testverfahren unterscheidet, wobei mindestens ein im Zuge des ersten Primzahltests (12) ermittelter Hilfswert (14) bei dem mindestens einen weiteren Primzahltest (16) herangezogen wird, um den für den mindestens einen weiteren Primzahltest (16) erforderlichen Berechnungsaufwand zu verringern.Method for testing whether a given data value ( 10 ) represents a prime, comprising the steps of: - performing a first primality test ( 12 ) according to a first probabilistic test procedure, and - if in the first primality test ( 12 ) the data value ( 10 ) was not identified as a composite number, then performing at least one further primality test ( 16 ) according to a second probabilistic test method that differs from the first test method, wherein at least one in the course of the first primality test ( 12 ) determined auxiliary value ( 14 ) in the at least one further primality test ( 16 ) for the at least one further primality test ( 16 ) to reduce the required calculation effort. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß weitere Primzahltests (16) gemäß dem zweiten Testverfahren so lange ausgeführt werden, bis entweder der Datenwert (10) als zusammengesetzte Zahl identifiziert wird oder bis eine vorgegebene Maximalzahl von Testrunden erreicht ist.Method according to Claim 1, characterized in that further primality tests ( 16 ) according to the second test procedure until either the data value ( 10 ) is identified as a composite number or until a predetermined maximum number of rounds of testing has been reached. Verfahren nach Anspruch 1 oder Anspruch 2, dadurch gekennzeichnet, daß das erste Testverfahren weniger Berechnungsaufwand als das zweite Testverfahren erfordert.A method according to claim 1 or claim 2, characterized characterized in that first test method less calculation effort than the second test method requires. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß bei dem ersten Primzahltest (12) eine erste Testbasis in einem ersten Ring gewählt wird, und daß bei jedem weiteren Primzahltest (16) je eine weitere Testbasis in einem zweiten Ring, der ein Erweiterungsring des ersten Rings ist, gewählt wird.Method according to one of Claims 1 to 3, characterized in that in the first primality test ( 12 ) a first test base in a first ring is selected, and that in each further primality test ( 16 ) each another test base in a second ring, which is an extension ring of the first ring, is selected. Verfahren nach Anspruch 4, dadurch gekennzeichnet, daß bei jedem Primzahltest (12, 16) Berechnungen unter Verwendung des Datenwerts (10) und der jeweiligen Testbasis ausgeführt werden, die entweder zeigen, daß die durch den Datenwert (10) repräsentierte Zahl (n) zusammengesetzt ist, oder die mit gewisser Wahrscheinlichkeit dafür sprechen, daß die durch den Datenwert (10) repräsentierte Zahl (n) eine Primzahl ist.Method according to Claim 4, characterized in that for each primality test ( 12 . 16 ) Calculations using the data value ( 10 ) and the respective test bases, which either show that the data 10 ), or that, with a certain probability, indicate that the data ( 10 ) represented number (n) is a prime number. Verfahren nach Anspruch 5, dadurch gekennzeichnet, daß der erste Ring der Ring der ganzen Zahlen modulo der durch den Datenwert (10) repräsentierten Zahl (n) ist, und daß der zweite Ring eine quadratische Erweiterung des ersten Ringes ist.Method according to Claim 5, characterized in that the first ring is the ring of integers modulo that is represented by the data value ( 10 ), and that the second ring is a quadratic extension of the first ring. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß bei dem ersten Primzahltest (12) als Testbasis ein kleiner quadratischer Nichtrest modulo der durch den Datenwert (10) repräsentierten Zahl (n) gewählt wird.Method according to claim 6, characterized in that in the first primality test ( 12 ) as test basis a small quadratic non-residue modulo by the data value ( 10 ) represented number (s) is selected. Verfahren nach Anspruch 7, dadurch gekennzeichnet, daß als quadratischer Nichtrest der Wert –1 gewählt wird, wenn die durch den Datenwert (10) repräsentierte Zahl (n) modulo 4 äquivalent zu 1 ist, und daß als quadratischer Nichtrest der Wert 2 oder der Wert –2 gewählt wird, wenn die durch den Datenwert (10) repräsentierte Zahl (n) modulo 8 äquivalent zu 5 ist.Method according to Claim 7, characterized in that the value chosen as the quadratic non-residue is -1, if the value represented by the data value ( 10 ) is modulo 4 equivalent to 1, and that the value of 2 or the value -2 is chosen as the quadratic non-residue if the value represented by the data ( 10 ) represented number (n) modulo 8 is equivalent to 5. Verfahren nach einem der Ansprüche 6 bis 8, dadurch gekennzeichnet, daß der mindestens eine beim ersten Primzahltest (12) ermittelte Hilfswert (14) mindestens eine Einheitswurzel ist, die im zweiten Ring liegt und die notwendigerweise existiert, wenn die durch den Datenwert (10) repräsentierte Zahl (n) eine Primzahl ist.Method according to one of claims 6 to 8, characterized in that the at least one in the first primality test ( 12 ) determined auxiliary value ( 14 ) is at least one root of unity that is in the second ring and that necessarily exists when the data ( 10 ) represented number (n) is a prime number. Verfahren nach Anspruch 9, dadurch gekennzeichnet, daß der mindestens eine beim ersten Primzahltest (12) ermittelte Hilfswert (14) mindestens eine primitive achte Einheitswurzel in dem zweiten Ring ist.Method according to claim 9, characterized in that the at least one in the first primality test ( 12 ) determined auxiliary value ( 14 ) is at least one primitive eighth unit root in the second ring. Verfahren nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, daß der erste Primzahltest (12) ein Miller-Rabin-Test oder eine Variante davon ist.Method according to one of Claims 1 to 10, characterized in that the first primality test ( 12 ) is a Miller-Rabin test or a variant thereof. Verfahren nach einem der Ansprüche 1 bis 11, dadurch gekennzeichnet, daß der zweite Primzahltest (16) eine Testrunde eines quadratischen Frobenius-Tests oder eine Variante davon ist.Method according to one of Claims 1 to 11, characterized in that the second primality test ( 16 ) is a test round of a Frobenius square test or a variant thereof. Verfahren nach einem der Ansprüche 1 bis 12, dadurch gekennzeichnet, daß nach der Ausführung einer ersten Testrunde des zweiten Testverfahrens für alle darauffolgenden Testrunden eine vereinfachte Variante des zweiten Testverfahrens verwendet wird.Method according to one of claims 1 to 12, characterized that after the execution a first round of the second test procedure for all subsequent ones Test rounds a simplified version of the second test procedure is used. Verfahren zum Ermitteln eines Datenwertes, der mit überwiegender Wahrscheinlichkeit eine Primzahl repräsentiert, wobei der Reihe nach je mindestens ein Datenwert aus einem vorgegebenen Suchbereich bestimmt und durch ein Verfahren nach einem der Ansprüche 1 bis 13 getestet wird, bis einer der getesteten Datenwerte als wahrscheinliche Primzahl identifiziert wird.Method of determining a data value that is predominantly Probability represents a prime number, in turn at least one data value determined from a given search area and tested by a method according to any one of claims 1 to 13, to one of the tested data values as a probable prime number is identified. Verfahren nach Anspruch 14, dadurch gekennzeichnet, daß die getesteten Datenwerte mindestens einer Testsequenz folgen, wobei jede Testsequenz, ausgehend von einem zufällig bestimmten Startwert, weitere zu testende Datenwerte gemäß einer ersten vorbestimmten Regel definiert.Method according to claim 14, characterized in that that the data values followed by at least one test sequence, wherein each test sequence, starting from a randomly determined starting value, further data values to be tested according to a first predetermined Usually defined. Verfahren nach Anspruch 15, dadurch gekennzeichnet, daß die Anzahl der zu bestehenden Testrunden, bis ein getesteter Datenwert als Primzahl identifiziert wird, gemäß einer zweiten vorbestimmten Regel sukzessive erhöht wird.Method according to claim 15, characterized in that that the Number of existing test rounds, up to a tested data value is identified as prime, according to a second predetermined Rule gradually increased becomes. Verfahren nach Anspruch 16, dadurch gekennzeichnet, daß die zweite vorbestimmte Regel lautet, daß die Anzahl der zu bestehenden Testrunden nach jeweils einer vorbestimmten Anzahl von erfolglos durchsuchten Testsequenzen um eins erhöht wird.Method according to claim 16, characterized in that that the second predetermined rule is that the number of existing Test rounds after each predetermined number of unsuccessful searched test sequences increased by one. Verfahren nach einem der Ansprüche 1 bis 17, dadurch gekennzeichnet, daß das Verfahren zu kryptographischen Zwecken, insbesondere zu einer RSA-Schlüsselgenerierung oder einem Diffie-Hellman-Schlüsselaustausch, dient.Method according to one of claims 1 to 17, characterized that this Method for cryptographic purposes, in particular for RSA key generation or a Diffie-Hellman key exchange, serves. Computerprogrammprodukt mit einer Vielzahl von Programmbefehlen, die mindestens einen Prozessor dazu veranlassen, ein Verfahren nach einem der Ansprüche 1 bis 18 auszuführen.Computer program product with a plurality of program instructions, causing the at least one processor to retry a method one of the claims 1 to 18. Vorrichtung, insbesondere tragbarer Datenträger oder gesicherte kryptographische Einheit, mit mindestens einem Prozessor und mindestens einem Speicher, wobei die Vorrichtung dazu eingerichtet ist, ein Verfahren nach einem der Ansprüche 1 bis 18 auszuführen.Device, in particular portable data carrier or secure cryptographic unit, with at least one processor and at least one memory, the apparatus being adapted is to carry out a method according to one of claims 1 to 18.
DE200410044453 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 Withdrawn DE102004044453A1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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