DE102004044453A1 - Probabilistischer Primzahltest und probabilistische Primzahlermittlung - Google Patents

Probabilistischer Primzahltest und probabilistische Primzahlermittlung 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
English (en)
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/de
Publication of DE102004044453A1 publication Critical patent/DE102004044453A1/de
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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

Bei einem Verfahren zum Testen, ob ein vorgegebener Datenwert (10) eine Primzahl repräsentiert, wird ein erster Primzahltest (12) gemäß einem ersten probabilistischen Testverfahren ausgeführt. Wenn bei dem ersten Primzahltest (12) der Datenwert (10) nicht als zusammengesetzte Zahl identifiziert wurde, dann wird mindestens ein weiterer Primzahltest (16) gemäß einem zweiten probabilistischen Testverfahren, das sich von dem ersten Testverfahren unterscheidet, ausgeführt. Mindestens ein im Zuge des ersten Primzahltests (12) ermittelter Hilfswert (14) wird bei dem mindestens einen weiteren Primzahltest (16) herangezogen, um den für den mindestens einen weiteren Primazahltest (16) erforderlichen Berechnungsaufwand zu verringern. Ein Verfahren zum Ermitteln eines Datenwertes, der mit überwiegender Wahrscheinlichkeit eine Primzahl repräsentiert, nutzt das erfindungsgemäße Testverfahren. Ein Computerprogrammprodukt und eine Vorrichtung weisen entsprechende Merkmale auf. Die Erfindung schlägt eine besonders effiziente Technik zum Primzahltest und für die Primzahlsuche vor.

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.
  • 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ß.
  • 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.
  • 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.
  • 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.
  • 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.
  • Die Fehlerwahrscheinlichkeit des Miller-Rabin-Tests im ungünstigsten Fall beträgt höchstens 4–t, wenn t Testrunden ausgeführt werden.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 1 als einzige Zeichnungsfigur veranschaulicht einen Verfahrensablauf gemäß einem einfachen Ausführungsbeispiel der Erfindung.
  • 1. Überblick über das in 1 gezeigte Ausführungsbeispiel
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • Ä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.
  • 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).
  • 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).
  • 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.
  • 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.
  • 2. Verwendete Notationen und Konventionen
  • 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.
  • 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.
  • 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.
  • 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.
  • 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
  • Wie üblich, werden diese beiden Homomorphismen als Konjugation und Norm bezeichnet. Die Konjugation ist ein Automorphismus auf 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.
  • 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.
  • 3. Erstes Testverfahren (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.
  • 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).
  • In der hier verwendeten Pseudocode-Notation wird das erste Testverfahren wie folgt beschrieben:
    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.
  • 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.
  • 4. Zweites Testverfahren (SQFTRND)
  • 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
  • 5. Erstes Ausführungsbeispiel des Primzahltests (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.
  • 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.
  • In der hier verwendeten Pseudocode-Darstellung läßt sich der Ablauf des Verfahrens SQFT wie folgt zusammenfassen:
    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.
  • 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.
  • 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.
  • 6. Fehlerwahrscheinlichkeit von 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.
  • 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.
  • 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
  • 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.
  • 7. Ausführungsalternativen mit Berücksichtigung der dritten Einheitswurzeln (SQFT3RND und 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.
  • Das so ergänzte zweite Testverfahren SQFT3RND wird als Pseudocode wie folgt beschrieben:
    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.
  • Die folgende abgewandelte Ausgestaltung des Gesamtverfahrens SQFT3 nutzt das zweite Testverfahren SQFT3RND in der gerade beschriebenen, ergänzten Ausgestaltung.
  • Figure 00210003
  • 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.
  • 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.
  • 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.
  • 8. Implementierung
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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
  • 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))
  • Die Anzahl der Multiplikationen kann analog abgeschätzt werden.
  • 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
  • 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.
  • 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
  • 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
  • Aus den obigen Überlegungen ergibt sich ferner, daß
    Figure 00260009
    in der folgenden Sequenz enthalten sein muß:
    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.
  • 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
  • Ä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.
  • 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
  • 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.
  • 9. Mögliche Optimierungen der Implementierung
  • 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.
  • 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
  • Das Verfahren SQFT3RND kann in entsprechender Weise modifiziert und ab der zweiten Testrunde von SQFT3 aufgerufen werden.
  • 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.
  • 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.
  • Die in den vorherigen Abschnitten 6 und 7 gegebenen Fehlerabschätzungen gelten auch für die gerade beschriebenen Abwandlungen der Verfahren SQFT und SQFT3.
  • 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.
  • 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.
  • 10. Ausführungsbeispiele von Verfahren zur Primzahlermittlung
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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
  • 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.
  • 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
  • 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.
  • 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.

Claims (20)

  1. 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.
  2. 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.
  3. Verfahren nach Anspruch 1 oder Anspruch 2, dadurch gekennzeichnet, daß das erste Testverfahren weniger Berechnungsaufwand als das zweite Testverfahren erfordert.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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.
  9. 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.
  10. 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.
  11. 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.
  12. 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.
  13. 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.
  14. 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.
  15. 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.
  16. 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.
  17. 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.
  18. 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.
  19. Computerprogrammprodukt mit einer Vielzahl von Programmbefehlen, die mindestens einen Prozessor dazu veranlassen, ein Verfahren nach einem der Ansprüche 1 bis 18 auszuführen.
  20. 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.
DE200410044453 2004-09-14 2004-09-14 Probabilistischer Primzahltest und probabilistische Primzahlermittlung Withdrawn DE102004044453A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE200410044453 DE102004044453A1 (de) 2004-09-14 2004-09-14 Probabilistischer Primzahltest und probabilistische Primzahlermittlung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200410044453 DE102004044453A1 (de) 2004-09-14 2004-09-14 Probabilistischer Primzahltest und probabilistische Primzahlermittlung

Publications (1)

Publication Number Publication Date
DE102004044453A1 true DE102004044453A1 (de) 2006-03-30

Family

ID=36011390

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200410044453 Withdrawn DE102004044453A1 (de) 2004-09-14 2004-09-14 Probabilistischer Primzahltest und probabilistische Primzahlermittlung

Country Status (1)

Country Link
DE (1) DE102004044453A1 (de)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2587713A2 (de) 2011-10-28 2013-05-01 Giesecke & Devrient GmbH Effiziente modulare Inversion mit Primzahltest
WO2013060466A2 (de) 2011-10-28 2013-05-02 Giesecke & Devrient Gmbh Bestimmen eines divisionsrests und ermitteln von primzahlkandidaten für eine kryptographische anwendung
WO2013060467A1 (de) 2011-10-28 2013-05-02 Giesecke & Devrient Gmbh Effiziente primzahlprüfung

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 (de) * 2001-12-13 2003-07-03 Klaus-Dieter Lewke Auffinden großer Primzahlen, insbesondere für kryptographische Verfahren
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 (de) * 2001-12-13 2003-07-03 Klaus-Dieter Lewke Auffinden großer Primzahlen, insbesondere für kryptographische Verfahren
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 (de) 2011-10-28 2013-05-01 Giesecke & Devrient GmbH Effiziente modulare Inversion mit Primzahltest
WO2013060466A2 (de) 2011-10-28 2013-05-02 Giesecke & Devrient Gmbh Bestimmen eines divisionsrests und ermitteln von primzahlkandidaten für eine kryptographische anwendung
WO2013060467A1 (de) 2011-10-28 2013-05-02 Giesecke & Devrient Gmbh Effiziente primzahlprüfung
DE102011117237A1 (de) 2011-10-28 2013-05-02 Giesecke & Devrient Gmbh Effiziente modulare Inversion mit Primzahltest
DE102011117236A1 (de) 2011-10-28 2013-05-02 Giesecke & Devrient Gmbh Effiziente Primzahlprüfung
DE102011117219A1 (de) 2011-10-28 2013-05-02 Giesecke & Devrient Gmbh Bestimmen eines Divisionsrests und Ermitteln von Primzahlkandidaten für eine kryptographische Anwendung
US9520995B2 (en) 2011-10-28 2016-12-13 Giesecke & Devrient Gmbh Efficient prime-number check

Similar Documents

Publication Publication Date Title
DE10196478B3 (de) Eine Familie linearer Mehrnutzer-Detektoren (MUDs)
EP2771782B1 (de) Effiziente primzahlprüfung
DE102006022960A1 (de) Verfahren zum Verschlüsseln von Eingabedaten, kryptographisches System und Computerprogrammprodukt
EP2641241B1 (de) Verfahren zur langzahldivision oder modulare reduktion
DE102004044453A1 (de) Probabilistischer Primzahltest und probabilistische Primzahlermittlung
DE102014101936A1 (de) Verfahren zum Permutieren von Datenelementen und Permutiervorrichtung
EP2587713B1 (de) Effiziente modulare Inversion mit Primzahltest
EP1564649A2 (de) Erzeugung von Primzahlen mittels probabilistischer Tests
EP1430614B1 (de) Verfahren und vorrichtung zur bestimmung von initialisierungszuständen bei pseudo-noise-folgen
DE102011117219A1 (de) Bestimmen eines Divisionsrests und Ermitteln von Primzahlkandidaten für eine kryptographische Anwendung
EP1504337B1 (de) Berechnung des modularen inversen eines wertes
DE10357749B4 (de) Vorrichtung und Verfahren zum Bestimmen einer Teilerfreiheit einer Testzahl in Bezug auf eine Mehrzahl von Primzahlen
DE10357751B4 (de) Vorrichtung und Verfahren zum Bereitstellen einer Testzahl
WO2003098429A2 (de) Ausspähungsgeschützte modulare inversion
DE10042234A1 (de) Verfahren und Vorrichtung zum Durchführen einer modularen Exponentiation in einem kryptographischen Prozessor
EP3504616B1 (de) Modul und verfahren zur abgesicherten berechnung von mathematischen operationen
EP2128754B1 (de) Sichere sliding window exponentiation
DE102007023222B4 (de) Vorrichtung zum Überprüfen einer Güte und zum Erzeugen einer Gruppe von rationalen Punkten einer Schlüsselerzeugungsvarietät
DE102004022647B4 (de) Verfahren und Vorrichtung zur Ermittlung der Anzahl von abgelaufenen Taktzyklen eines binären Zufallsgenerators
DE10329885B4 (de) Verfahren zur Konstruktion elliptischer Kurven über endlichen Körpern
DE102013106333B4 (de) Signalerzeugungsvorrichtung und -verfahren in einem kommunikationssystem
DE102010051852A1 (de) Verfahren zur Langzahldivision
WO2009118224A1 (de) Verfahren zum rechnergestützten ermitteln einer elliptischen kurve für kryptographische anwendungen
Zhang Bivariate Issues in Fair Leader Election
DE112008002016T5 (de) Verfahren und System zum Entrauschen von Rauschsignalen

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