DE10161203A1 - 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 - Google Patents
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 numbersInfo
- Publication number
- DE10161203A1 DE10161203A1 DE2001161203 DE10161203A DE10161203A1 DE 10161203 A1 DE10161203 A1 DE 10161203A1 DE 2001161203 DE2001161203 DE 2001161203 DE 10161203 A DE10161203 A DE 10161203A DE 10161203 A1 DE10161203 A1 DE 10161203A1
- Authority
- DE
- Germany
- Prior art keywords
- prime
- determined
- numbers
- prime number
- mod
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
Description
Die Erfindung betrifft verbesserte Verfahren zum Auffinden großer Primzahlen mit kürzeren Rechenzeiten und/oder geringerem Speicherbedarf. The invention relates to improved methods for finding large prime numbers with shorter ones Computing times and / or less memory requirements.
Große Primzahlen sind Grundlagen vieler kryptographischer Verfahren. Derartige Verfahren sind z. B. aus folgenden U.S. Patenten bekannt: US Pat. 4.405.829, US Pat. 4.748.668, US Pat. 4.625.076 und US Pat. 4.200.770. Large prime numbers are the basis of many cryptographic methods. Such procedures are z. B. from the following U.S. Patents known: US Pat. 4,405,829, US Pat. 4,748,668, US Pat. 4,625,076 and U.S. Pat. 4,200,770.
Der stetigen Steigerung der Rechenleistung, die Angreifern das Brechen von Schlüsseln ermöglichen könnte, wird durch Forderung nach immer höheren Schlüssellängen begegnet. Schlüssel sind jeweils so zu wählen, dass sie während ihrer Nutzungsdauer allen denkbaren Angriffen standhalten können. Dies erfordert, größere Primzahlen in der Konstruktion der Schlüssel zu verwenden. Zwangsläufig steigt damit aber auch der Aufwand für die Schlüsselerzeugung. The steady increase in computing power, the attackers breaking keys could be countered by demanding ever longer key lengths. Are keys to be chosen so that they can withstand all conceivable attacks during their useful life can. This requires using larger prime numbers in the construction of the keys. Inevitably, this also increases the effort for key generation.
Die naheliegende Methode der Primzahlprüfung, die Teilbarkeit durch alle kleineren Zahlen zu prüfen, kann für große Zahlen nicht effektiv eingesetzt werden, da die Anzahl erforderlicher Probedivisionen die Leistungsfähigkeit der Rechner überfordert. The obvious method of checking the prime number, the divisibility by all smaller numbers too check cannot be used effectively for large numbers because the number required Trial divisions overwhelmed the performance of the computers.
Gegenwärtig werden daher meist Primzahlkandidaten p durch einen Zufallszahlengenerator erzeugt und dann wird überprüft, ob p eine Primzahl ist. At the moment, therefore, mostly prime number candidates p are generated by a random number generator and then it is checked whether p is a prime number.
Tests, die in der Literatur vorgeschlagen werden, basieren auf dem kleinen Satz von Fermat:
Für jede ganze Zahl a > 0 gilt: ap-1 mod p = 1 falls p Primzahl.
Tests suggested in the literature are based on Fermat's small theorem:
For every integer a> 0 applies: a p-1 mod p = 1 if p prime number.
Im Test wird geprüft, ob die Gleichung für verschiedene, vorzugsweise zufällig gewählte Zahlen a erfüllt ist. Falls die Gleichung für irgendein a nicht gilt, kann p keine Primzahl sein. Eine bekannte Verbesserung ist der sogenannte Rabin-Miller-Test. Der Rabin-Miller-Test ist z. B. aus Alfred J. Menezes, Paul C. von Oorschot, Scott A. Vanstone: Handbook of Applied Cryptology, CRC Press, ISBN: 0-8493-8523-7 bekannt. The test checks whether the equation for different, preferably randomly selected numbers a is satisfied. If the equation does not hold for any a, p cannot be a prime number. An acquaintance Improvement is the so-called Rabin-Miller test. The Rabin-Miller test is e.g. B. from Alfred J. Menezes, Paul C. von Oorschot, Scott A. Vanstone: Handbook of Applied Cryptology, CRC Press, ISBN: 0-8493-8523-7 known.
Der Rabin-Miller-Test wird in der Praxis am häufigsten eingesetzt und gilt als sehr effizient. In der Regel müssen aber viele Kandidaten getestet werden, da Primzahlen im Bereich großer Zahlen selten sind. The Rabin-Miller test is used most frequently in practice and is considered to be very efficient. In the Usually, however, many candidates have to be tested because prime numbers are in the range of large numbers are rare.
Der Primzahltest benötigt insbesondere für die Exponentiation in Rechensystemen, deren Hardware keine ausreichend lange Arithmetik bereitstellt, hohe Rechenzeiten, da die Operationen mittels Software auf Operationen kürzerer Zahlen zurückgeführt werden müssen. The prime number test requires the hardware in particular for exponentiation in computer systems arithmetic is not long enough, high computing times because the operations are carried out using Software must be attributed to operations of shorter numbers.
Es ist bekannt, dass die Suche nach Primzahlen deutlich beschleunigt werden kann, indem vor Ausführung des Primzahltests solche Zahlen ausgeschlossen werden, die ohnehin durch kleine Primzahlen teilbar sind. It is known that the search for prime numbers can be sped up significantly by pre Execution of the prime test will exclude such numbers, which are already indicated by small ones Prime numbers are divisible.
Mit Variationen werden heute die folgenden Verfahren eingesetzt:
Zunächst wird mittels eines Zufallszahlengenerators ein ungerader Primzahlkandidat p0 geeigneter
Größe bestimmt. Ist p0 keine Primzahl, werden die nächst größeren ungeraden Zahlen p0 + 2, p0 + 4,
p0 + 6, . . . auf ihre Primzahleigenschaft untersucht. Testet man zunächst die Teilbarkeit von p0 durch
kleine Primzahlen (3, 5, 7, . . . usw.) mittels Probedivisionen und speichert man dabei die jeweiligen
Divisionsreste, kann man durch Inkrementieren um 2, 4, 6, . . . der jeweiligen Reste modulo des
jeweiligen Divisors auf die Divisionsreste von p0 + 2, p0 + 4, p0 + 6, . . . schließen. Dazu ist keine
erneute Division langer Zahlen notwendig. Ein Divisionsrest 0 zeigt die Teilbarkeit durch die
entsprechende Primzahl an.
The following methods are used today with variations:
First, an odd prime number candidate p 0 of a suitable size is determined using a random number generator. If p 0 is not a prime number, the next largest odd numbers p 0 + 2, p 0 + 4, p 0 + 6,. , , examined for their prime number property. If you first test the divisibility of p 0 by small prime numbers (3, 5, 7,......) Using trial divisions and save the respective division remainders, you can increment by 2, 4, 6,. , , of the respective residues modulo of the respective divisor to the division residues of p 0 + 2, p 0 + 4, p 0 + 6,. , , conclude. It is not necessary to divide long numbers again. A division remainder 0 indicates the divisibility by the corresponding prime number.
Weitergehende Einzelheiten sind aus J. Brand, 1 Damg ≙rd , P. Landrock: Speeding up Prime Number Generation, Advances in Cryptology-ASIACRYPT '91, Lecture Notes in Computer Science 739 (pp. 440-449), Springer 1991 oder J. Brand, I. Damg ≙rd: On generation of probable Primes by Incremental Search, advances in Cryptology - CRYPTO '92, Lecture Notes in Computer Science 740 (pp. 358-370), Springer 1993 bekannt. Further details are from J. Brand, 1 Damg ≙rd, P. Landrock: Speeding up Prime Number Generation, Advances in Cryptology-ASIACRYPT '91, Lecture Notes in Computer Science 739 (pp. 440-449), Springer 1991 or J. Brand, I. Damg ≙rd: On generation of probable Primes by Incremental Search, advances in Cryptology - CRYPTO '92, Lecture Notes in Computer Science 740 (pp. 358-370), Springer 1993.
Eine andere Methode wird z. B. in P. Horster, P. Schartner: Bemerkungen zur Erzeugung dublettenfreier Primzahlen, in Sicherheitsinfrastrukturen- in P. Horster (Hrsgb.): Grundlagen, Realisierungen, rechtliche Aspekte, Anwendungen, Vieweg 1999 (pp. 358-368, insbesondere Abschnitt 4) ausführlich beschrieben. Betrachtet man zu einer vorgegebenen Zahl N die Abstände der zu N teilerfremden Zahlen, wiederholt sich das Muster der Abstände periodisch. Die ermittelten Abstände werden in einer Tabelle, Skipliste genannt, abgelegt. N wird dabei als Produkt kleiner Primzahlen, bevorzugt 2.3.5.7 = 210, gewählt. Nachdem der erste Primzahlkandidat der passenden Position in der Skipliste zugeordnet worden ist, werden die weiteren Primzahlkandidaten durch Addieren der Abstände der Skipliste gewonnen, die dabei zyklisch durchlaufen wird. Nachteilig bei beiden Verfahren ist der Speicheraufwand. Entweder müssen die kleinen Primzahlen und die Reste des jeweiligen Primzahlkandidaten oder die Skiplisten gespeichert werden. Another method is e.g. B. in P. Horster, P. Schartner: Comments on production duplicate-free prime numbers, in security infrastructures - in P. Horster (ed.): basics, Realizations, legal aspects, applications, Vieweg 1999 (pp. 358-368, in particular Section 4) described in detail. If we consider the distances to a given number N of the numbers alien to N, the pattern of the distances is repeated periodically. The determined Distances are stored in a table called a ski list. N becomes smaller as a product Prime numbers, preferably 2.3.5.7 = 210, chosen. After the first prime number candidate of the matching Position in the ski list has been assigned, the other prime number candidates are by Add up the distances of the ski list, which is cycled through. The disadvantage of both methods is the storage effort. Either the small prime numbers and the remnants of the respective prime number candidate or the ski lists are saved.
Je nach gewünschter Größe der Primzahlen und verfügbarer Prozessorleistung, kann der Aufwand für die Erzeugung von kryptographischen Schlüsseln bis zu einer Minute Rechenzeit erfordern. Die Rechenzeit der Erzeugung von Schlüsseln für das RSA-Verfahren wird von der Suche nach Primzahlen dominiert, wobei hier wiederum die meiste Zeit durch den Rabin-Miller-Test beansprucht wird. Depending on the desired size of the prime numbers and available processor power, the effort can require up to one minute of computing time for the generation of cryptographic keys. The Computing time of key generation for the RSA process is the search for Prime numbers dominate, with most of the time here again using the Rabin-Miller test is claimed.
Die bekannten Verfahren finden die kleinste Primzahl, die größer als der erste Primzahlkandidat ist. Der Vorteil in der Rechenzeit ist zwangsläufig damit verbunden, dass die Wahrscheinlichkeit einer Primzahl ausgewählt zu werden, von der Größe der Primzahllücke abhängt, die sie nach oben begrenzt. The known methods find the smallest prime number that is larger than the first prime candidate. The advantage in computing time is inevitably linked to the fact that the probability of a Prime number to be selected depends on the size of the prime gap that it goes up limited.
Es wurde aber herausgefunden, dass durch die erfindungsgemäßen Verfahren Primzahlen mit geringerem Speicher- und Rechenaufwand gefunden werden können, wobei das Ergebnis nicht zwangsläufig die zum ersten Primzahlkandidaten nächstgrößere Primzahl ist. Auch ist die Wahrscheinlichkeit, eine bestimmte Primzahl auszuwählen, nicht von der Größe der benachbarten Primzahllücke abhängig. However, it was found that the method according to the invention has prime numbers with less memory and computational effort can be found, but the result is not is necessarily the next largest prime number to the first prime candidate. That too is Probability of choosing a particular prime number, not the size of the neighboring one Prime gap dependent.
Aufgabe der Erfindung sind Verfahren für das Generieren von Primzahlkandidaten, die bereits mit hoher Wahrscheinlichkeit Primzahlen sind, insbesondere Verfahren mit geringem Speicherbedarf. The object of the invention are methods for generating prime number candidates that are already using are highly likely to be prime numbers, especially methods with low memory requirements.
Fachleuten sind folgende Notationen und Eigenschaften ganzer Zahlen bekannt:
- a) x mod y bezeichnet den Rest r, der bei Division von x durch y entsteht, wobei x und y ganze
Zahlen sein sollen. Es soll also gelten:
x = a.y + r mit r∈{0, 1, . . . y - 1}
Die Modulooperation ist mit Addition, Subtraktion und Multiplikation verträglich, d. h.
(a + b) mod x = ((a mod x) + (b mod x)) mod x
(a - b) mod x = ((a mod x) - (b mod x)) mod x
(a.b) mod x = ((a mod x).(b mod x)) mod x
- b) Die folgende Eigenschaft ist als Chinesischer Restsatz bekannt:
Für paarweise teilerfremde Zahlen q1, q2, . . ., qn und beliebige Zahlen a1, a2, . . ., an existiert eine Lösung des Gleichungssystems:
ai = x mod qi, i = 1, . . ., n
Alle Lösungen haben den gleichen Rest modulo q1.q2.. . ..qn,.
Die zusätzliche Forderung 0 ≤ x < q1.q2.. . ..qn-1.qn, wählt eine eindeutige Lösung aus.
Für zwei Gleichungen
ai = y mod qi, i = 1,2
erhält man eine Lösung des Gleichungssystems durch
y = (((a1 - a2).u)mod q1).q2 + a2 mit (u.q2) mod q1 = 1
Eine Lösung des gesamten Gleichungssystems lässt sich sukzessive bestimmen, indem zwei Gleichungen (z. B. die ersten beiden) entsprechend ihrer Lösung ersetzt werden:
y = x mod q1.q2
ai = x mod qi, i = 3, . . ., n
- c) φ(x) bezeichnet die Anzahl der Zahlen zwischen 0 und x, die zu x teilerfremd sind. φ ist als
Eulersche Funktion bekannt.
Wenn
die Zerlegung von x in Primfaktoren ist, gilt
Insbesondere gilt für jede Primzahl p: φ(p) = p - 1. - d) Die Anzahl der Primzahlen zwischen 0 und n nähert sich asymptotisch
- e) Falls r teilerfremd ist zu N, ist k.N + r für unendlich viele k > 0 eine Primzahl.
Die Anzahl der Primzahlen der Form k.N + r, die kleiner sind als eine Schranke n, nähert sich asymptotisch
- a) x mod y denotes the remainder r that arises when x is divided by y, where x and y are to be integers. So the following should apply:
x = ay + r with r∈ {0, 1,. , , y - 1}
The modulo operation is compatible with addition, subtraction and multiplication, ie
(a + b) mod x = ((a mod x) + (b mod x)) mod x
(a - b) mod x = ((a mod x) - (b mod x)) mod x
(ab) mod x = ((a mod x). (b mod x)) mod x
- b) The following property is known as the Chinese remainder sentence:
For pair-alien numbers q 1 , q 2 ,. , ., q n and any numbers a 1 , a 2,. , ., a n there is a solution to the system of equations:
a i = x mod q i , i = 1,. , ., n
All solutions have the same remainder modulo q 1 .q 2 ... ..q n ,.
The additional requirement 0 ≤ x <q 1 .q 2 ... ..q n-1 .q n , selects a unique solution.
For two equations
a i = y mod q i , i = 1.2
you get a solution to the system of equations
y = (((a 1 - a 2 ) .u) mod q 1 ) .q 2 + a 2 with (uq 2 ) mod q 1 = 1
A solution of the entire system of equations can be successively determined by replacing two equations (e.g. the first two) according to their solution:
y = x mod q 1 .q 2
a i = x mod q i , i = 3,. , ., n
- c) φ (x) denotes the number of numbers between 0 and x that are prime to x. φ is known as Euler's function.
If
is the decomposition of x into prime factors
In particular, for each prime number p: φ (p) = p - 1. - d) The number of prime numbers between 0 and n approaches asymptotically
- e) If r is prime to N, kN + r is a prime number for infinitely many k> 0.
The number of prime numbers of the form kN + r, which are smaller than a bound n, approaches asymptotically
Die Aufgabe der Erfindung wird dadurch gelöst, dass ausschließlich solche Primzahlkandidaten erzeugt werden, die teilerfremd zu einer Zahl N sind, wobei N vorzugsweise kleine Primfaktoren besitzt. The object of the invention is achieved in that only such prime number candidates are generated that are prime to a number N, where N is preferably small prime factors has.
Erfindungsgemäß werden die Primzahlkandidaten durch folgendes Verfahren bestimmt.
- 1. Bestimme (vorab) eine Zahl N:
(Bevorzugt ist N durch viele kleine Primzahlen teilbar.) - 2. Bestimme eine Zahl 1 < r < N, die teilerfremd zu N ist.
- 3. Bestimme eine Zahl k durch einen Zufallszahlengenerator.
Setze z ← k.N + r - 4. Unterwerfe z einem Primzahltest, z. B. dem Rabin-Miller-Test.
- 5. Falls z den Primzahltest nicht besteht:
Setze z ← z + N, weiter mit 4.
(Oder alternativ z ← z + ν.N, ν ≠ 0, z ∈ Z)
Sonst:
z ist die gewünschte Primzahl.
- 1. Determine (in advance) a number N:
(N is preferably divisible by many small prime numbers.) - 2. Find a number 1 <r <N that is prime to N.
- 3. Determine a number k by a random number generator.
Set z ← kN + r - 4. Submit z a prime test, z. B. the Rabin-Miller test.
- 5. If z does not pass the prime number test:
Set z ← z + N, continue with 4.
(Or alternatively z ← z + ν.N, ν ≠ 0, z ∈ Z )
Otherwise:
z is the desired prime number.
Das erfindungsgemäße Verfahren stellt keine Einschränkung bezüglich der auffindbaren Primzahlen dar, denn jede Zahl z lässt sich für ein vorgegebenes N in der Form z = k.N + r, mit 0 ≤ r < N schreiben. Falls z eine Primzahl ist, muss r teilerfremd zu N sein. Es sei denn N ist selbst eine Primzahl und z = N. Eigenschaft (v) garantiert, dass durch das Verfahren in endlicher Zeit eine Primzahl gefunden wird. The method according to the invention places no restriction on the prime numbers that can be found because every number z can be given for a given N in the form z = k.N + r, with 0 ≤ r <N write. If z is a prime number, r must be prime to N. Unless N is itself one Prime number and z = N. Property (v) guarantees that a Prime number is found.
Die Laufzeit der Primzahlsuche wird im Wesentlichen dadurch bestimmt, wie oft Primzahltests (z. B. der Rabin-Miller-Test) für die generierten Primzahlkandidaten ausgeführt werden. The duration of the prime search is essentially determined by how often prime tests (e.g. the Rabin-Miller test) for the generated prime number candidates.
Die Wahrscheinlichkeit einer beliebigen Zahl z < x, Primzahl zu sein, beträgt
Ist der
Primzahlkandidat teilerfremd zu einer Zahl N, verbessert sich die Wahrscheinlichkeit um den Faktor
N/φ(N). Dieser Verbesserungsfaktor ergibt sich in den bekannten Verfahren, wobei N das Produkt
der Primzahlen ist, zu denen Teilbarkeit ausgeschlossen wird.
The probability of any number z <x to be prime is
If the prime number candidate is prime to a number N, the probability improves by the factor N / φ (N). This improvement factor results in the known methods, where N is the product of the prime numbers, to which divisibility is excluded.
Die Anzahl der positiven, ganzen Zahlen der Form z = k.N + r < x ist x/N. Aus (v) folgt daher die
Wahrscheinlichkeit
dass eine Zahl dieser Form eine Primzahl ist. Das
erfindungsgemäße Verfahren wird also ebenso den Verbesserungsfaktor N/φ(n) charakterisiert.
The number of positive integers of the form z = kN + r <x is x / N. The probability follows from (v)
that a number of this form is a prime number. The method according to the invention is therefore also characterized by the improvement factor N / φ (n).
Im Vergleich bietet die Erfindung jedoch folgende Vorteile:
Das erfindungsgemäße Verfahren erfordert, wenn N gespeichert wird, einen Speicher von log2(N)
Bits. Dagegen erfordert das Verwenden einer Skipliste das Speichern von φ(N) Zahlen, deren Länge
mit wachsendem N steigt. φ(N) selbst wächst stärker als log2(N) und für N > 30 gilt φ(N) > log2(N).
Bei gleichem Speicherbedarf kann durch das erfindungsgemäße Verfahren ein größerer
Verbesserungsfaktor und damit ein Laufzeitvorteil erreicht werden, da größere Werte für N gewählt werden
können.
In comparison, however, the invention offers the following advantages:
If N is stored, the method according to the invention requires a memory of log 2 (N) bits. In contrast, using a skip list requires storing φ (N) numbers, the length of which increases with increasing N. φ (N) itself grows faster than log 2 (N) and for N> 30 φ (N)> log 2 (N) applies. With the same memory requirement, the method according to the invention can achieve a larger improvement factor and thus a runtime advantage, since larger values for N can be selected.
Auch gegenüber der Methode der Prüfung auf Teilbarkeit gegen kleine Primzahlen ergibt sich für das erfindungsgemäße Verfahren eine Speichereinsparung, da N in Bits etwas kürzer ausfällt als die Länge der zu speichernden Faktoren zusammengerechnet. Zudem muss eine gespeicherte Zahl jeweils auf die Länge von adressierbaren Speichereinheiten aufgefüllt werden, was den Speicherbedarf zusätzlich erhöht. Werden auch die Reste früherer Divisionen gespeichert, um Rechenzeiten zu sparen, verdoppelt sich der Speicheraufwand. Compared to the method of testing for divisibility against small prime numbers, the result for the method according to the invention saves memory since N in bits is somewhat shorter than that Total length of the factors to be saved. You must also have a saved number each be filled to the length of addressable storage units, which the Storage requirements additionally increased. The remnants of previous divisions are also saved at computing times to save, the storage effort doubles.
Varianten des erfindungsgemäßen Verfahrens, die weiter unten erläutert werden, erlauben weitere Speichereinsparungen dadurch, dass N nicht explizit gespeichert werden muss. Variants of the method according to the invention, which are explained further below, allow further ones Memory savings due to the fact that N does not have to be saved explicitly.
Ein weiterer Vorteil des erfindungsgemäßen Verfahrens gegenüber der Prüfung auf Teilbarkeit durch kleine Primzahlen ist der geringere Aufwand für die Generierung des nächsten Primzahlkandidaten. Another advantage of the method according to the invention compared to testing for divisibility small prime numbers mean less effort for generating the next one Prime candidates.
N kann für das Verfahren einmalig vorab bestimmt werden und kann auch öffentlich bekannt sein, ohne Angriffsmöglichkeiten auf den Schlüssel zu eröffnen. Ist die ermittelte Primzahl später Teil des öffentlichen Schlüssels in einem Public-Key-Verfahren, kann r ohnehin später leicht ermittelt werden. In anderen Fällen sollte r geheim gehalten werden. Bei Bedarf kann r auch für jede zu erzeugende Primzahl neu bestimmt und anschließend gelöscht werden. N can be determined once in advance for the process and can also be known to the public, without opening the key to attack. Is the prime number determined later part of the public key in a public key procedure can easily be determined later anyway become. In other cases, r should be kept secret. If necessary, r can also be used for everyone generating prime number redetermined and then deleted.
Das RSA-Verfahren benötigt zwei Primzahlen p, p'. Das Produkt dieser Primzahlen n = p.p' bildet einen Teil des öffentlichen Schlüssels. Falls p und p' durch die Verfahren der Erfindung gefunden werden, ergibt sich aus p = k.N + r, p' = k.N + r', die Beziehung n mod N = (r.r') mod N. Diese Gleichung hat aber φ(N) Lösungen. D. h. für jedes r existiert ein passendes r', so dass die Gleichung erfüllt wird. The RSA method requires two prime numbers p, p '. The product of these prime numbers n = p.p 'forms part of the public key. If p and p 'are found by the methods of the invention are obtained from p = k.N + r, p '= k.N + r', the relationship n mod N = (r.r ') mod N. This But the equation has φ (N) solutions. I.e. there is a suitable r 'for each r, so that the Equation is satisfied.
Ein Verlassen des Bereichs, in dem die gesuchte Primzahl liegen soll, sollte zusätzlich geprüft und abgefangen werden. Nach Bereichsüberschreitung kann das Verfahren entweder komplett neu oder von einem neuen Startwert unter Beibehaltung von r aufgesetzt werden. Leaving the area in which the prime number is to be located should also be checked and be intercepted. After exceeding the range, the procedure can either be completely new or be set up from a new starting value while maintaining r.
Die Erfindung umfasst im Weiteren Methoden zur Bestimmung der Parameter r und N. The invention further includes methods for determining the parameters r and N.
In einer ersten bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens wird N bestimmt
durch
wobei αi die i-te Primzahl ist.
In a first preferred embodiment of the method according to the invention, N is determined by
where α i is the i th prime number.
Tabelle 1 zeigt jeweils den Speicherbedarf für
und den jeweiligen
Verbesserungsfaktor.
Table 1 shows the storage requirements for
and the respective improvement factor.
Diese Wahl ist in dem Sinne optimal, dass der angegebene Verbesserungsfaktor N/φ(n) von keiner anderen Zahl erreicht oder überschritten wird, die kleiner als N ist. This choice is optimal in the sense that the specified improvement factor N / φ (n) of no other number is reached or exceeded that is less than N.
Die Güte des Verfahrens steigt durch Aufnahme eines weiteren Primfaktors pn+1 jeweils um den Faktor pn+1/(pn+1 - 1). Ab einer gewissen Größe der Primzahl wirkt sich dies nur geringfügig aus. Eine deutliche Verbesserung kann nur noch erreicht werden, wenn das Produkt viele Primzahlen enthält, N also entsprechend groß wird. The quality of the method increases by adding a further prime factor p n + 1 by a factor of p n + 1 / (p n + 1 - 1). From a certain size of the prime number, this has only a minor effect. A significant improvement can only be achieved if the product contains many prime numbers, that is, N becomes correspondingly large.
In einer zweiten Ausführungsform des erfindungsgemäßen Verfahrens wird N bestimmt durch
wobei b die Basis der Zahldarstellung ist, die im Rechensystem verwendet
wird.
In a second embodiment of the method according to the invention, N is determined by
where b is the basis of the number representation used in the computing system.
Für die Werte αj werden bevorzugt die kleinsten Primzahlen eingesetzt, die nicht Teiler von bi - 1 sind. Falls b durch 2 teilbar ist, sollte das Produkt mindestens den Teiler 2 beisteuern. Im Extremfall kann das Produkt leer sein und hat dann den Wert 1. The smallest prime numbers that are not divisors of b i -1 are preferably used for the values α j . If b is divisible by 2, the product should contribute at least divider 2. In extreme cases, the product can be empty and then has the value 1.
Aus einer Zahldarstellung zu einer vorgegebenen Basis b kann leicht die Darstellung zur Basis bn gewonnen werden und umgekehrt: Jeweils k Ziffern der Darstellung zur Basis b werden zu einer Ziffer der Basis bk zusammengefasst. The representation for the base b n can easily be obtained from a number representation for a predetermined base b and vice versa: k digits of the representation for the base b are combined into one digit of the base b k .
In heutigen Rechenanlagen sind Darstellungen zur Basis 2, die sogenannten Binärdarstellungen üblich und die Zusammenfassung von 8 Bits zu einem Byte als kleinste adressierbare Speichereinheit, was der Basis 256 entspricht. In today's computing systems, representations are based on 2, the so-called binary representations usual and the combination of 8 bits into a byte as the smallest addressable Storage unit, which corresponds to the base 256.
Die Erfindung wird daher vorzugsweise bezogen auf Basen der Form 2i realisiert, die direkt aus der Binärdarstellung des Rechensystems abgeleitet werden können. Denkbar sind jedoch auch analoge Vorgehensweisen bezüglich anderer Basen. Vorschläge zur Realisierung von entsprechenden Rechenwerken sind aus der Fachliteratur bekannt, wurden aber bisher nicht kommerziell realisiert. 2i - 1 (analog bi - 1) ist insbesondere dann durch viele kleine Primzahlen teilbar, wenn i selbst viele Teiler besitzt. Tabelle 2 listet günstige Werte für i auf. Es sind dort jeweils die Primteiler von 2i - 1 und die Verbesserungsfaktoren N/φ(n) bei Aufnahme der kleinsten teilerfremden Primzahlen in das Produkt angegeben. The invention is therefore preferably implemented with reference to bases of the form 2 i , which can be derived directly from the binary representation of the computing system. However, analogous procedures with regard to other bases are also conceivable. Suggestions for the implementation of corresponding arithmetic units are known from the specialist literature, but have not yet been implemented commercially. 2 i - 1 (analogue b i - 1) is divisible by many small prime numbers in particular if i itself has many divisors. Table 2 lists favorable values for i. The prime divisors of 2 i - 1 and the improvement factors N / φ (n) for the inclusion of the smallest non-prime prime numbers in the product are given there.
Vorteilhaft ist, dass N nicht selbst gespeichert werden muss. Lediglich der Exponent i und
müssen verfügbar sein. Der Wert dieses Produktes wird bevorzugt einmalig vorab
berechnet und gespeichert.
It is advantageous that N does not have to be stored itself. Only the exponent i and
must be available. The value of this product is preferably calculated and saved once in advance.
Für die Multiplikation und Addition von bzw. mit N kann die Zahldarstellung ausgenutzt werden.
Mit den Rechenvorteilen durch die Zahldarstellung stellt sich das Verfahren wie folgt dar:
- 1. Bestimme (evtl. vorab) einen Exponenten i und
Es sei: N = t.(bi - 1) - 2. Bestimme eine Zahl r mit 1 < r < N, die teilerfremd zu N ist.
- 3. Bestimme eine Zahl k durch einen Zufallszahlengenerator.
Setze z ← k.t
Setze z ← k.bi - z
Setze z ← z + r - 4. Unterwerfe z einem Primzahltest, z. B. dem Rabin-Miller-Test.
- 5. Falls z den Primzahltest nicht besteht:
Setze z ← z - t
Setze z ← z + bi.t, weiter mit 4.
Sonst:
z ist die gewünschte Primzahl.
- 1. Determine (possibly in advance) an exponent i and
Let N = t. (B i - 1) - 2. Find a number r with 1 <r <N that is prime to N.
- 3. Determine a number k by a random number generator.
Set z ← kt
Set z ← kb i - z
Set z ← z + r - 4. Submit z a prime test, z. B. the Rabin-Miller test.
- 5. If z does not pass the prime number test:
Set z ← z - t
Set z ← z + b i .t, continue with 4.
Otherwise:
z is the desired prime number.
Die Multiplikation mit bi kann durch Shiftoperationen realisiert werden. Dazu brauchen nur i und t abgespeichert zu werden. Eine explizite Berechnung von bi und bi.t kann entfallen. The multiplication by b i can be realized by shift operations. To do this, only i and t need to be saved. An explicit calculation of b i and b i .t can be omitted.
r kann auf unterschiedliche Weise bestimmt werden. Die Verfahren sind weitgehend unabhängig davon, ob N durch die erste oder die zweite beschriebene Ausführungsform bestimmt wird. Sollen die Schlüssel in einem Schlüsselträger mit eingeschränkten Rechenfähigkeiten generiert werden, z. B. einer Chipkarte, können bei der Initialisierung, bzw. Personalisierung feste, aber pro Schlüsselträger individuelle Werte vorgeben werden. Aufwändige Rechenschritte, die nur einmalig benötigt werden, können so in das Personalisierungssystem verlagert werden. r can be determined in different ways. The procedures are largely independent whether N is determined by the first or the second described embodiment. Should the keys are generated in a key carrier with limited computing capabilities, z. B. a chip card, can be fixed during the initialization or personalization, but per Key holders are given individual values. Time-consuming arithmetic steps that are only required once can be shifted into the personalization system.
Eine dritte Ausführungsform der Erfindung vermeidet die explizite Berechnung von r und k.N.
Dazu wird der erste Primzahlkandidat vollständig durch einen Zufallszahlengenerator erzeugt und
auf gemeinsame Teiler mit N geprüft. Ist der erste Primzahlkandidat nicht teilerfremd zu N, werden
weitere durch Inkrementieren oder Dekrementieren oder erneute zufällige Auswahl bestimmt:
- 1. Bestimme (evtl. vorab) eine Zahl N:
(Bevorzugt ist N durch viele kleine Primzahlen teilbar.)
Bestimme vorab ein Inkrement inc (z. B. inc = 2) - 2. Bestimme eine (vorzugsweise ungerade) Zahl z durch einen Zufallszahlengenerator.
- 3. Suche einen gemeinsamen Teiler von z und N. (z. B. durch Probedivisionen mit den Primteilern von N.
- 4. Falls ggT(z, N) ≠ 1
Setze z ← z + inc wiederhole Schritt 3
(Alternativ: weiter mit 2)
Sonst (z ist von der Form: k = k.N + r)
weiter mit Schritt 4 - 5. Unterwerfe z einem Primzahltest, z. B. dem Rabin-Miller-Test.
- 6. Falls z den Primzahltest nicht besteht:
Setze z ← z + N, weiter mit 5.
(Allgemein z ← z + v.N, v ≠ 0, v ∈ Z)
Sonst:
z ist die gewünschte Primzahl.
- 1. Determine (possibly beforehand) a number N:
(N is preferably divisible by many small prime numbers.)
Determine an increment inc in advance (e.g. inc = 2) - 2. Determine a (preferably odd) number z by a random number generator.
- 3. Find a common divisor of z and N. (e.g. by trial divisions with the prime divisors of N.
- 4. If ggT (z, N) ≠ 1
Set z ← z + inc repeat step 3
(Alternatively: continue with 2)
Otherwise (z is of the form: k = kN + r)
continue with step 4 - 5. Submit z a prime test, z. B. the Rabin-Miller test.
- 6. If z does not pass the prime number test:
Set z ← z + N, continue with 5.
(General z ← z + vN, v ≠ 0, v ∈ Z )
Otherwise:
z is the desired prime number.
Die Verbesserung gegenüber dem Stand der Technik durch diese Ausführungsform besteht im Inkrementieren um N. Hierdurch ist die Überprüfung auf gemeinsame Teiler zu N nur einmal erforderlich. Diese Ausführungsform kann vorteilhaft angewendet werden, wenn für die Überprüfung auf gemeinsame Teiler eine vorhandene Implementierung genutzt werden soll. Z. B. kann eine verbesserte Primzahlsuche auf vorhandenen Programmkode im EEPROM-Speicher eines Kartenchips zurückgreifen, so dass weniger wertvoller EEPROM-Speicher der Chipkarte benötigt oder keine neue Maskenentwicklung erforderlich wird. The improvement over the prior art by this embodiment consists in Increment by N. This means that the check for common divisors to N is only once required. This embodiment can be used advantageously when checking for shared divider an existing implementation should be used. For example, a improved prime number search for existing program code in the EEPROM memory Use card chips so that less valuable EEPROM memory or the chip card is required no new mask development is required.
Eine vierte Ausführungsform der Erfindung, die mit der ersten oder zweiten Ausführungsform verträglich ist, bestimmt einen Kandidaten für r mittels eines Zufallszahlengenerators und prüft den Kandidaten anschließend auf gemeinsame Teiler mit N. Dazu kann z. B. der größte gemeinsame Teiler des Kandidaten mit N berechnet werden. Ist der Kandidat nicht teilerfremd zu N, kann entweder ein weiterer Kandidat durch Inkrementieren oder Dekrementieren des bisherigen Kandidaten oder durch erneute Anwendung eines Zufallszahlengenerators gefunden werden.
- 1. Bestimme (vorab) eine Zahl N:
(Bevorzugt ist N durch viele kleine Primzahlen teilbar.) - 2. 2.1 Bestimme eine Zahl r < N durch einen Zufallszahlengenerator.
- 3. 2.2 Falls ggT(r, N) ≠ 1
setze r ← r + 1 mod N, wiederhole Schritt 2.2
(Alternativ: weiter mit 2.1)
Sonst
weiter mit 4. - 4. Bestimme eine Zahl k durch einen Zufallszahlengenerator.
Setze z ← k.N + r - 5. Falls z den Primzahltest nicht besteht:
Setze z ← z + N, weiter mit 4.
(Allgemein z ← z + ν.N, ν ≠ 0, ν ∈ Z)
Sonst:
z ist die gewünschte Primzahl.
- 1. Determine (in advance) a number N:
(N is preferably divisible by many small prime numbers.) - 2. 2.1 Determine a number r <N by a random number generator.
- 3. 2.2 If ggT (r, N) ≠ 1
set r ← r + 1 mod N, repeat step 2.2
(Alternatively: continue with 2.1)
Otherwise
continue with 4. - 4. Determine a number k by a random number generator.
Set z ← kN + r - 5. If z does not pass the prime number test:
Set z ← z + N, continue with 4.
(General z ← z + ν.N, ν ≠ 0, ν ∈ Z )
Otherwise:
z is the desired prime number.
Eine fünfte Ausführungsform der Erfindung, die mit der ersten oder zweiten Ausführungsform verträglich ist, bestimmt pro Schlüsselträger eine nichtleere Menge von Zahlen vorab und wählt daraus eine Zahl r für das Verfahren der Erfindung zufällig oder deterministisch aus.
- 1. Bestimme (vorab) eine Zahl N:
(Bevorzugt ist N durch viele kleine Primzahlen teilbar.) - 2. 2.1 Bestimme (vorab) eine Menge M = {r1, r2, . . ., rm}, mit 0 < ri < N von Zahlen, die teilerfremd zu N sind.
- 3. 2.2 Wähle r ∈ M
- 4. Bestimme eine Zahl k durch einen Zufallszahlengenerator.
Setze z ← k.N + r - 5. Unterwerfe z einem Primzahltest, z. B. dem Rabin-Miller-Test.
- 6. Falls z den Primzahltest nicht besteht:
Setze z ← z + N, weiter mit 4.
(Allgemein z ← z + ν.N, ν ≠ 0, ν ∈ Z)
Sonst:
z ist die gewünschte Primzahl.
- 1. Determine (in advance) a number N:
(N is preferably divisible by many small prime numbers.) - 2. 2.1 Determine (in advance) a set M = {r 1 , r 2 ,. , ., r m }, with 0 <r i <N of numbers that are not prime to N.
- 3. 2.2 Choose r ∈ M
- 4. Determine a number k by a random number generator.
Set z ← kN + r - 5. Submit z a prime test, z. B. the Rabin-Miller test.
- 6. If z does not pass the prime number test:
Set z ← z + N, continue with 4.
(General z ← z + ν.N, ν ≠ 0, ν ∈ Z )
Otherwise:
z is the desired prime number.
Insbesondere für Chipkarten und andere Träger von Schlüsseln, die über geringen Speicherplatz und/oder beschränkte Rechenkapazität verfügen, ist diese Variante besonders geeignet. Die Menge M kann in den Schlüsselträger bei der Personalisierung geladen werden. Da Schlüsselträger ohnehin in gesicherter Umgebung initialisiert bzw. personalisiert werden müssen, können die geladenen Werte geheim gehalten werden. Durch Kenntnis der Werte ist aber auch ein Angriff auf die später erzeugten Schlüssel wenig Erfolg versprechend, da die Menge der erzeugbaren Primzahlen immer noch sehr groß ist. Especially for smart cards and other key carriers that have limited storage space and / or have limited computing capacity, this variant is particularly suitable. The amount M can be loaded into the key holder during personalization. Since key holder anyway The loaded ones can be initialized or personalized in a secure environment Values are kept secret. Knowing the values is also an attack on those later generated key promising little success, since the set of prime numbers that can be generated always is still very large.
Die vorab bestimmten und im Schlüsselträger abgelegten Zahlen können außerhalb des Schlüsselträgers durch ein anderes Verfahren der Erfindung bestimmt werden, z. B. für Chipkarten durch das Personalisierungssystem. The numbers determined in advance and stored in the key carrier can be outside the Key carrier can be determined by another method of the invention, e.g. B. for smart cards by Personalization system.
Eine sechste Ausführungsform der Erfindung, die mit der ersten oder zweiten Ausführungsform verträglich ist, bestimmt die Zahl r durch algebraische Konstruktion aus einer Menge bekannter, zu N teilerfremder Zahlen, die vorzugsweise vorab erzeugt und im Schlüsselträger abgespeichert werden.
- 1. Bestimme (vorab) eine Zahl N:
(Bevorzugt ist N durch viele kleine Primzahlen teilbar.) - 2. 2.1 Bestimme (vorab) eine Menge M = {r1, r2, . . ., rm}, mit 0 < ri < N von Zahlen, die teilerfremd zu N sind.
- 3. 2.2 Bestimme zufällige Zahlen 0 ≤ n0 ≤ 1, 0 ≤ n1, n2, . . ., nm < φ(N)
Setze
- 4. Setze z ← k.N + r
- 5. Unterwerfe z einem Primzahltest, z. B. dem Rabin-Miller-Test.
- 6. Falls z den Primzahltest nicht besteht:
Setze z ← z + N, weiter mit 4.
(Allgemein: z ← z + ν.N, ν ≠ 0, ν ∈ Z)
Sonst:
z ist die gewünschte Primzahl.
- 1. Determine (in advance) a number N:
(N is preferably divisible by many small prime numbers.) - 2. 2.1 Determine (in advance) a set M = {r 1 , r 2 ,. , ., r m }, with 0 <r i <N of numbers that are not prime to N.
- 3. 2.2 Find random numbers 0 ≤ n 0 ≤ 1, 0 ≤ n 1 , n 2 ,. , ., n m <φ (N)
Set
- 4. Set z ← kN + r
- 5. Submit z a prime test, z. B. the Rabin-Miller test.
- 6. If z does not pass the prime number test:
Set z ← z + N, continue with 4.
(General: z ← z + ν.N, ν ≠ 0, ν ∈ Z )
Otherwise:
z is the desired prime number.
Schritt 2 der sechsten Ausführungsform konstruiert eine Zahl r, die zu N teilerfremd ist. (Die Menge aller mittels der Formel erzeugten Zahlen bilden mit der Multiplikation modulo N eine Untergruppe der Gruppe aller teilerfremden Zahlen zu N). Ist φ(N) nicht bekannt, kann für die Exponenten eine grobe Abschätzung von φ(N) eingesetzt werden. Step 2 of the sixth embodiment constructs a number r that is prime to N. (The With the multiplication modulo N, the set of all numbers generated using the formula forms one Subgroup of the group of all non-prime numbers for N). If φ (N) is not known, the Exponents a rough estimate of φ (N) can be used.
Auch kann der Rechenaufwand explizit durch Wahl von Exponenten begrenzt werden, die wesentlich kürzer als N sind. Ein solches Vorgehen würde zwar den Zahlenbereich der möglichen Rechenergebnisse einschränken, kann aber bereits ausreichend viele verschiedene Zahlen erzeugen (z. B. Exponenten von 32 bis 72 Bit, wobei N selbst länger als 360 Bit). The computing effort can also be explicitly limited by choosing exponents that are significantly shorter than N. Such an approach would admit the number range of possible Limit calculation results, but can already generate a sufficient number of different numbers (e.g. Exponents from 32 to 72 bits, where N itself is longer than 360 bits).
Vorzugsweise werden ri mit einer großen Ordnung gewählt, d. h. dass kein kleines l > 0 existiert, so dass r l|i mod N = 1. Bei günstiger Wahl kann bereits bei Speicherung weniger Zahlen ri eine große Menge von Werten mittels der Formel erzeugt werden. Insbesondere kann das Verfahren angewendet werden, wenn die Menge M nur aus einer einzigen Zahl ri besteht. Preferably, r i are chosen with a large order, ie that there is no small l> 0, so that r l | i mod N = 1. With a favorable choice, a large number of values can be generated using the formula even if fewer numbers r i are stored , In particular, the method can be used if the set M consists of only a single number r i .
Die sich ergebende Zahl r kann selbst bei Kenntnis der gespeicherten Zahlen r, nicht mit ausreichender Wahrscheinlichkeit vorhergesagt werden. The resulting number r cannot be used even if the stored numbers r are known sufficient probability can be predicted.
Günstig wirkt sich aus, dass die benötigten arithmetischen Operationen für die Durchführung des Rabin-Miller-Tests ohnehin verfügbar sein müssen. Dies ist vorteilhaft gegenüber der dritten und vierten Ausführungsform, welche die Implementierung einer Prüfung auf gemeinsame Teiler erfordert. Eine evtl. höhere Rechenzeit durch die Exponentiation wird ganz oder teilweise dadurch ausgeglichen, dass eine Suche nach teilerfremden Zahlen zu N entfällt. The fact that the arithmetic operations required to carry out the Rabin-Miller tests must be available anyway. This is advantageous over the third and fourth embodiment, which implements the implementation of a check on common dividers requires. A possibly higher computing time due to the exponentiation is partially or entirely due to this compensated that a search for non-prime numbers for N is omitted.
Die vorab bestimmten und im Schlüsselträger abgelegten Zahlen r1, r2, . . . rk können außerhalb des Schlüsselträgers zufällig z. B. analog zu der dritten Ausführungsform oder durch das Verfahren der siebten Ausführungsform bestimmt werden. Für Chipkarten kann die Menge durch das Personalisierungssystem bestimmt werden. The numbers r 1 , r 2 ,. , , r k can happen to happen outside of the key holder z. B. can be determined analogously to the third embodiment or by the method of the seventh embodiment. For chip cards, the amount can be determined by the personalization system.
Eine siebte Ausführungsform der Erfindung, die mit der ersten oder zweiten Ausführungsform verträglich ist, bestimmt die Zahl r für die Primzahlgenerierung durch Anwendung des chinesischen Restsatzes (Eigenschaft (ii)). A seventh embodiment of the invention that with the first or second embodiment is compatible, determines the number r for the prime number generation using the Chinese Remaining sentence (property (ii)).
Voraussetzung ist, dass eine Zerlegung von N in ein Produkt paarweise teilerfremder Zahlen: N = q1.q2.. . ..qn angegeben werden kann.
- 1. Bestimme (vorab) eine Zahl N.
Bestimme eine Faktorisierung N = q1.q2.. . ..qn in paarweise teilerfremde
Faktoren (bzw. die Faktoren sind durch die Konstruktion von N bekannt). - 2. Bestimme für 0 ≤ k ≤ n (zufällige) Zahlen rk so dass jeweils 0 < rk < qk.
- 3. Bestimme r als Lösung des Gleichungssystems
rk = r mod qk, k = 1, . . ., n
- 4. Bestimme eine Zahl k durch einen Zufallszahlengenerator.
Setze z ← k.N + r - 5. Unterwerfe z einem Primzahltest, z. B. dem Rabin-Miller-Test.
- 6. Falls z den Primzahltest nicht besteht:
Setze z ← z + N, weiter mit 4.
(Allgemein: z ← z + ν.N, ν ≠ 0, ν ∈ Z)
Sonst:
z ist die gewünschte Primzahl.
- 1. Determine (in advance) a number N.
Determine a factorization N = q 1 .q 2 ... ..q n in pairs relatively alien
Factors (or the factors are known from the construction of N). - 2. Determine for 0 ≤ k ≤ n (random) numbers r k such that 0 <r k <q k .
- 3. Determine r as a solution to the system of equations
r k = r mod q k , k = 1,. , ., n
- 4. Determine a number k by a random number generator.
Set z ← kN + r - 5. Submit z a prime test, z. B. the Rabin-Miller test.
- 6. If z does not pass the prime number test:
Set z ← z + N, continue with 4.
(General: z ← z + ν.N, ν ≠ 0, ν ∈ Z )
Otherwise:
z is the desired prime number.
Die Kandidaten für die Zahlen rk können, analog zur dritten Ausführungsform, jeweils durch einen Zufallszahlengenerator bestimmt werden und verworfen werden, wenn der größte gemeinsame Teiler zu qk verschieden von 1 ist. Analogous to the third embodiment, the candidates for the numbers r k can each be determined by a random number generator and rejected if the greatest common divisor to q k is different from 1.
Falls
wobei p Primzahl und h > 0 ist, kann rk bestimmt werden aus zwei zufällig
gewählten Zahlen xk und yk durch
Jede so
bestimmte Zahl ist teilerfremd zu qk und umgekehrt ist jede zu qk teilerfremde Zahl zwischen 0 und
in dieser Form darstellbar. Der Fall, dass qk selbst eine Primzahl ist, wird durch
hk= 1, yk = 0 dargestellt.
If
where p is prime and h> 0, r k can be determined from two randomly chosen numbers x k and y k
Each thus determined number is relatively prime to q k and is reversed to each q k prime number between 0 and
can be represented in this form. The case that q k itself is a prime number is represented by h k = 1, y k = 0.
Diese Ausführungsform eignet sich nur bedingt für Träger mit kleinem Speicher. Sie kann aber auf PCs oder leistungsfähigeren Rechnern implementiert werden. Sie ist gut für Stellen geeignet, die Schlüssel bereitstellen (z. B. Zertifizierungsstellen gemäß Signaturgesetz). Insbesondere aber können Personalisierungssysteme für Schlüsselträger (z. B. Chipkarten) mithilfe der siebten Ausführungsform Parameter generieren, die der personalisierte Schlüsselträger für die fünfte oder sechste Ausführungsform benötigt. This embodiment is only suitable to a limited extent for carriers with a small memory. But it can PCs or more powerful computers can be implemented. It is well suited for positions that Provide keys (e.g. certification bodies in accordance with the Signature Act). But in particular can Personalization systems for key carriers (e.g. chip cards) using the seventh Embodiment generate parameters that the personalized key holder for the fifth or sixth Embodiment needed.
Die folgende achte Ausführungsform der Erfindung eignet sich besonders dann, wenn eine Primzahl in einem eng begrenzten Bereich gesucht wird. Diese Ausführungsform generiert zur Bestimmung des Primzahlkandidaten jeweils neue teilerfremde Zahlen r zu N.
- 1. Gegeben seien zwei Zahlen a und b, mit a < b, zwischen denen die gesuchte Primzahl liegen soll. Ebenfalls gegeben sei ein Parameter s.
- 2. Bestimme (vorab) eine Zahl N.
- 3. Bestimme k ≥ 0, so dass k.N < b vorzugsweise so, dass (k + 1).N > a.
- 4. Bestimme eine Zahl r0 < N und eine Zahl r < N, die teilerfremd zu N sind.
Setze i ← 0 - 5. Setze z ← r + k.N
- 6. Solange z < a
setze z ← z + N - 7. Falls z > b weiter mit 10
- 8. Unterwerfe z einem Primzahltest, z. B. dem Rabin-Miller-Test.
- 9. Falls z den Primzahltest besteht:
z ist die gewünschte Primzahl.
Sonst
weiter mit 10. - 10. Falls i < s
setze r ← (r.r0) mod N,
setze i ← i + 1
weiter mit 5.
Sonst weiter mit 4.
- 1. Given two numbers a and b, with a <b, between which the prime number is to be located. A parameter s is also given.
- 2. Determine (in advance) a number N.
- 3. Determine k ≥ 0 such that kN <b is preferably such that (k + 1) .N> a.
- 4. Find a number r 0 <N and a number r <N that are prime to N.
Set i ← 0 - 5. Set z ← r + kN
- 6. As long as z <a
set z ← z + N - 7. If z> b continue with 10
- 8. Submit z a prime test, z. B. the Rabin-Miller test.
- 9. If z passes the prime test:
z is the desired prime number.
Otherwise
continue with 10. - 10. If i <s
set r ← (rr 0 ) mod N,
set i ← i + 1
continue with 5.
Otherwise continue with 4.
Wenn der Abstand der Zahlen a, b nicht wesentlich größer als N ist, führt das Inkrementieren von z um N - wie für die Ausführungsformen beschrieben - schnell zum Verlassen des vorgegebenen Bereichs. Diese achte Ausführungsform erlaubt dennoch durch die Wahl eines großen Wertes für N, Primzahlkandidaten z zu erzeugen, die keine kleinen Primfaktoren besitzen. If the distance between the numbers a, b is not significantly larger than N, incrementing z around N - as described for the embodiments - quickly to leave the predetermined Range. This eighth embodiment nevertheless allows, by choosing a large value for N, To generate prime number candidates z that have no small prime factors.
In Schritt 4 können r und r0 durch die Verfahren der vorstehenden Ausführungsformen bestimmt werden. Als Beispiel sei hier eine Anwendung der sechsten Ausführungsform angegeben.
- 1. Gegeben seien zwei Zahlen a und b, mit a < b, zwischen denen die gesuchte Primzahl liegen soll. Ebenfalls gegeben sei ein Parameter s.
- 2. Bestimme (vorab) eine Zahl N und eine Menge von Zahlen M = {r1, r2, . . ., rm} mit 0 < ri < N, die teilerfremd zu N sind und eine große Ordnung modulo N haben.
- 3. Bestimme k ≥ 0, so dass k.N < b vorzugsweise so, dass (k + 1).N > a.
- 4. Bestimme zufällige Zahlen 0 ≤ n0 ≤ 1, 0 ≤ n1, n2, . . ., nm < φ(N)
Setze
Setze i ← 0
Bestimme j: 1 ≤ j ≤ m, vorzugsweise durch einen Zufallszahlengenerator. - 5. Setze z ← r + k.N
- 6. Solange z < a
setze z ← z + N - 7. Falls z > b weiter mit 10
- 8. Unterwerfe z einem Primzahltest, z. B. dem Rabin-Miller-Test.
- 9. Falls z den Primzahltest besteht:
z ist die gewünschte Primzahl.
Sonst
weiter mit 10. - 10. Falls i < s
setze r ← (r.rj) mod N,
setze i ← i + 1
weiter mit 5.
Sonst weiter mit 4.
- 1. Given two numbers a and b, with a <b, between which the prime number is to be located. A parameter s is also given.
- 2. Determine (in advance) a number N and a set of numbers M = {r 1 , r 2 ,. , ., r m } with 0 <r i <N, which are not prime to N and have a large order modulo N.
- 3. Determine k ≥ 0 such that kN <b is preferably such that (k + 1) .N> a.
- 4. Determine random numbers 0 ≤ n 0 ≤ 1, 0 ≤ n 1 , n 2 ,. , ., n m <φ (N)
Set
Set i ← 0
Determine j: 1 ≤ j ≤ m, preferably using a random number generator. - 5. Set z ← r + kN
- 6. As long as z <a
set z ← z + N - 7. If z> b continue with 10
- 8. Submit z a prime test, z. B. the Rabin-Miller test.
- 9. If z passes the prime test:
z is the desired prime number.
Otherwise
continue with 10. - 10. If i <s
set r ← (rr j ) mod N,
set i ← i + 1
continue with 5.
Otherwise continue with 4.
In P. Horster, P. Schartner: Bemerkungen zur Erzeugung dublettenfreier Primzahlen, in Sicherheitsinfrastrukturen- in Grundlagen, Realisierungen, rechtliche Aspekte, Anwendungen, Vieweg 1999 wird ein Verfahren zur dublettenfreien Generierung von Primzahlen vorgeschlagen. In diesem Verfahren wird der zu generierenden Primzahl eine eindeutige Nummer zugeordnet. Die Eindeutigkeit zwischen verschiedenen Generierungsstellen, bzw. -komponenten wird durch die Festlegung von Nummernkreisen garantiert. In P. Horster, P. Schartner: Comments on the Generation of Duplicate-Free Prime Numbers, in Security infrastructures - in basics, realizations, legal aspects, applications, Vieweg 1999 proposed a method for the duplicate-free generation of prime numbers. In this method assigns a unique number to the prime number to be generated. The Uniqueness between different generation points or components is ensured by the Guaranteed number ranges guaranteed.
Die jeweils vergebene Nummer ist wesentlich kürzer als die zu erzeugende Primzahl. Im Generierungsprozess werden bestimmte Bits der Primzahl nicht zufällig gewählt, sondern durch die vergebene Nummer bestimmt. Die gefundenen Primzahlen unterscheiden sich dann mindestens in diesen Bits. The number assigned is much shorter than the prime number to be generated. in the Certain bits of the prime number are not selected randomly, but by the generation process assigned number determined. The prime numbers found then differ at least in these bits.
Dieses Verfahren kann in naheliegender Weise mit der Erfindung kombiniert werden. Dazu werden zunächst die Nummer und die zufälligen Bits der Primzahl bestimmt, die links der Bits liegen, die durch die Nummer bestimmt sind. Ist N in den jeweiligen Ausführungsformen nicht zu groß gewählt, läßt sich durch einfache arithmetische Berechnungen ein Intervall bestimmen, aus dem ein passender Faktor k gewählt werden kann. This method can be combined in an obvious manner with the invention. To do this first determine the number and random bits of the prime number that lie to the left of the bits that are determined by the number. N is not too large in the respective embodiments selected, an interval can be determined from simple arithmetic calculations, from which a suitable factor k can be selected.
Darüber hinaus können Dubletten erfindungsgemäß dadurch vermieden werden, dass in der jeweiligen Ausführungsform der Parameter r nur von einer einzigen Generierungsstelle bzw. -komponente verwendet wird. Es ist leicht zu beweisen, dass unterschiedliche Reste modulo N hinreichend dafür sind, dass verschiedene Primzahlen gefunden werden und daraus erzeugte RSA-Schlüssel verschieden sind. In addition, according to the invention, duplicates can be avoided in that respective embodiment of the parameters r only from a single generation point or component is used. It is easy to prove that different residues modulo N are sufficient for this are that different prime numbers are found and RSA keys generated from them are different.
Bei den heutigen Anforderungen an RSA-Schlüssel (RSA-Moduli von 1024 Bits) sind Primzahlen von ca. 512 Bits erforderlich. In den jeweiligen Ausführungsformen der Erfindung kann N daher in der Länge von 360 Bits oder länger gewählt werden, so dass durch einmalige Verwendung jedes möglichen Wertes für N keine praktischen Beschränkungen entstehen. In today's requirements for RSA keys (RSA moduli of 1024 bits) are prime numbers 512 bits required. In the respective embodiments of the invention, N can therefore in the length of 360 bits or longer can be selected so that by using each one possible value for N there are no practical restrictions.
In der vierten Ausführungsform der Erfindung kann dazu z. B. der Bereich zwischen 1 und N in disjunkte Intervalle aufgeteilt werden. Jeder Generierungsstelle wird jeweils eines oder mehrere der Intervalle zugeordnet, so dass die Zahl r des angegebenen Verfahrens nur von einer einzigen Generierungsstelle gewählt wird. In the fourth embodiment of the invention, z. B. the range between 1 and N in disjoint intervals can be divided. Each generation site will have one or more of the Intervals assigned so that the number r of the specified method is only one Generation point is selected.
Eine Festlegung derart, dass jede Generierungsstelle festgelegte Werte an bestimmte Bitpositionen in r kodiert, stellt einen Spezialfall dieser Methode dar. A definition such that each generation point has fixed values at certain bit positions encoded in r is a special case of this method.
Bei der Anwendung der fünften Ausführungsform können den Generierungskomponenten paarweise disjunkte Mengen Mg = {r1, r2, . . ., rm} zugeteilt werden. Insbesondere bei der Schlüsselerzeugung in den Schlüsselträgern, z. B. Chipkarten, kann das Personalisierungssystem die jeweiligen Zahlen rj bestimmen und diese den Schlüsselträgern zuteilen. Dadurch entsteht in den Schlüsselträgern selbst kein Aufwand für die Vermeidung von Dubletten. Knapper Speicher in den Schlüsselträgern (z. B. Chipkarten) steht somit dublettenfreier Schlüsselerzeugung nicht im Wege. Das Personalisierungssystem kann die rj z. B. mithilfe eines Zufallszahlengenerators erzeugen, gegen eine Liste verwendeter Zahlen vergleichen und Dubletten verwerfen oder Methoden verwenden, die keine Dubletten erzeugt, insbesondere die deterministische Bestimmung einiger Bits der zu erzeugenden Zahl. Auch kann für die Erzeugung von M weiterhin die siebte Ausführungsform angewendet werden. Diese kann insbesondere so modifiziert werden, dass sie keine Dubletten erzeugt, so dass bei der Aufteilung auf die Mengen M kein Aufwand mehr entsteht. When using the fifth embodiment, the generation components can be paired disjoint sets M g = {r 1 , r 2 ,. , ., r m } can be allocated. Especially when generating keys in the key carriers, e.g. B. chip cards, the personalization system can determine the respective numbers r j and assign them to the key carriers. This means that there is no effort to avoid duplicates in the key holder itself. Shortage of memory in the key carriers (e.g. chip cards) does not prevent duplicate-free key generation. The personalization system can the r j z. B. using a random number generator, compare against a list of numbers used and discard duplicates or use methods that do not generate duplicates, in particular the deterministic determination of some bits of the number to be generated. The seventh embodiment can also continue to be used for generating M. In particular, this can be modified in such a way that it does not produce duplicates, so that there is no more effort involved in distributing the quantities M.
Auch in der siebten Ausführungsform können Dubletten bei zentraler Generierung nachträglich verworfen werden. Für die Vermeidung von Dubletten werden in der siebten Ausführungsform ein oder mehrere der teilerfremden Faktoren von N = q1.q2.. . ..qn ausgewählt. Da die Nummerierung der Faktoren willkürlich ist, kann angenommen werden, dass es sich um die Faktoren q1 bis qi handelt. In the seventh embodiment as well, duplicates can be subsequently discarded when generated centrally. To avoid duplicates, in the seventh embodiment one or more factors of N = q 1 .q 2 ... ..q n selected. Since the numbering of the factors is arbitrary, it can be assumed that they are the factors q 1 to q i .
Für die jeweilige Bestimmung von r durch das Gleichungssystem
rk = r mod qk, k = 1, . . ., n
werden erfindungsgemäß die Werte rk für k ≤ i so gewählt, dass die Tupeln (r1, . . ., ri) verschieden
sind.
For the respective determination of r by the system of equations
r k = r mod q k , k = 1,. , ., n
According to the invention, the values r k for k i i are chosen such that the tuples (r 1 ,..., r i ) are different.
Für k > i wird rk vorzugsweise durch einen Zufallszahlengenerator bestimmt, wie für die siebte Ausführungsform ohne Dublettenvermeidung beschrieben. For k> i, r k is preferably determined by a random number generator, as described for the seventh embodiment without duplicate avoidance.
Analog zu den vorstehend beschriebenen Ausführungsformen können den Generierungsstellen verschiedene, paarweise disjunkte Bereiche von Tupeln zugeordnet werden. Analogous to the embodiments described above, the generation sites different, pairwise disjoint areas of tuples can be assigned.
Claims (15)
wobei die nj insbesondere durch einen Zufallszahlengenerator bestimmt werden können. 9. The method according to claim 1, characterized in that the number r mentioned in claim 1 by means of a predetermined amount M = {r 1 , r 2 ,. , ., r m } to N non-prime numbers is determined by
the n j can be determined in particular by a random number generator.
rk = r mod qk, k = 1, . . ., n 10. The method according to claim 1 with a known factorization of N = q 1 .q 2 ... ..q n characterized in factors that are relatively prime to the pair in that the number r mentioned in claim 1 is determined as a solution of the system of equations
r k = r mod q k , k = 1,. , ., n
Primzahl rk bestimmt wird durch
wobei die Parameter xk und yk vorzugsweise durch einen Zufallszahlengenerator bestimmt werden. 11. The method according to claim 10, characterized in that for a factor of the number N of the form
Prime number r k is determined by
the parameters x k and y k are preferably determined by a random number generator.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE2001161203 DE10161203A1 (en) | 2001-12-13 | 2001-12-13 | 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 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE2001161203 DE10161203A1 (en) | 2001-12-13 | 2001-12-13 | 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 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE10161203A1 true DE10161203A1 (en) | 2003-07-03 |
Family
ID=7709042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2001161203 Ceased DE10161203A1 (en) | 2001-12-13 | 2001-12-13 | 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 |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE10161203A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102004007615A1 (en) * | 2004-02-17 | 2005-09-01 | Giesecke & Devrient Gmbh | Determine a data value that most likely represents a prime number |
DE102004044453A1 (en) * | 2004-09-14 | 2006-03-30 | Giesecke & Devrient Gmbh | 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 |
-
2001
- 2001-12-13 DE DE2001161203 patent/DE10161203A1/en not_active Ceased
Non-Patent Citations (1)
Title |
---|
MAURER, U.: Fast Generation of Prime Numbers and Secure Public-Key Cryptographic Parameters. In: Journal of Cryptology, ISSN 0933-2790, 1995, Vol. 8, No. 3, S. 123-155 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102004007615A1 (en) * | 2004-02-17 | 2005-09-01 | Giesecke & Devrient Gmbh | Determine a data value that most likely represents a prime number |
DE102004044453A1 (en) * | 2004-09-14 | 2006-03-30 | Giesecke & Devrient Gmbh | 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 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0384475B1 (en) | Method for subscriber identification and for the generation and verification of electronic signatures in a data exchange system | |
DE60217260T2 (en) | Data processing and encryption unit | |
EP1262037B1 (en) | Portable data carrier provided with access protection by dividing up codes | |
DE69434703T2 (en) | Method of generating DSA signatures with low-cost portable units | |
DE69826963T2 (en) | Device for modular inversion for securing information | |
DE60031304T3 (en) | METHOD FOR AUTHENTICATING SOFTWARE USERS | |
DE102015104421A1 (en) | Method of using a token in cryptography | |
EP1922837B1 (en) | Method for securely encrypting or decrypting a message | |
EP1290545B1 (en) | Cryptographic method and cryptographic device | |
EP2641241B1 (en) | Method for long-number division or modular reduction | |
DE112018002723T5 (en) | SYSTEM, METHOD AND DEVICE FOR HIDDEN DEVICE OPERATIONS | |
DE10161203A1 (en) | 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 | |
DE102014101936A1 (en) | Method for permuting data elements and permuting device | |
WO2013060466A2 (en) | Determination of a division remainder and detection of prime number candidates for a cryptographic application | |
WO2002019065A2 (en) | Method and device for carrying out a modular exponentiation in a cryptographic processor | |
EP2975799A1 (en) | Data-minimising authentication | |
EP1504337B1 (en) | Calculating the modular inverse of a value | |
DE60119254T2 (en) | Arithmetic unit for determining the inverse of an integer modulus of a large number | |
DE10357749B4 (en) | Apparatus and method for determining a divisor freedom of a test number with respect to a plurality of primes | |
EP3504616B1 (en) | Module and method for the secured computation of mathematical operations | |
EP1518165B1 (en) | Computation of a multiple of a group element for cryptographic purposes | |
DE10357751B4 (en) | Apparatus and method for providing a test number | |
DE10101884A1 (en) | Cryptography implementation based on inversion using elliptic curves, intended for use with processors having long number registers, but limited processing power, the algorithm used reducing processing time considerably | |
DE10156708A1 (en) | Method and device for multiplying and method and device for adding on an elliptic curve | |
EP1271304B1 (en) | Method for calculating the modular inverses of two numbers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8131 | Rejection |