DE60211860T2 - Erzeugung von zufallszahlen - Google Patents

Erzeugung von zufallszahlen Download PDF

Info

Publication number
DE60211860T2
DE60211860T2 DE60211860T DE60211860T DE60211860T2 DE 60211860 T2 DE60211860 T2 DE 60211860T2 DE 60211860 T DE60211860 T DE 60211860T DE 60211860 T DE60211860 T DE 60211860T DE 60211860 T2 DE60211860 T2 DE 60211860T2
Authority
DE
Germany
Prior art keywords
random data
bits
value
processing
seed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60211860T
Other languages
English (en)
Other versions
DE60211860D1 (de
Inventor
Digby James Ely COLLIER
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.)
Qualcomm Technologies International Ltd
Original Assignee
Cambridge Silicon Radio Ltd
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 Cambridge Silicon Radio Ltd filed Critical Cambridge Silicon Radio Ltd
Application granted granted Critical
Publication of DE60211860D1 publication Critical patent/DE60211860D1/de
Publication of DE60211860T2 publication Critical patent/DE60211860T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • 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/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators

Description

  • Diese Erfindung bezieht sich auf das Erzeugen von Zufallsdaten z. B. zur Verwendung in Verschlüsselungs- und Authentifizierungssystemen.
  • Zahlreiche Verschlüsselungs- und Authentifizierungssysteme verlangen die Verwendung von Zufallszahlen, um z. B. Authentifizierungsabfragen während einer Authentifikation zu erzeugen. Beispiele sind DES und RSA. In Systemen, die typische Sicherheitsstufen bieten, werden Zufallszahlen mit einer Länge im Bereich von etwa 50 bis 150 Bits benötigt. Eine Möglichkeit, wirklich zufällige Zahlen dieses Typs zu bilden, ist das Digitalisieren eines verrauschten analogen Wertes wie etwa ein Spannungspegel und die Verwendung des niedrigstwertigen Bits des digitalisierten Ergebnisses für die Bildung der Zufallszahl. Allerdings benötigt dieses Verfahren einige Zeit, um genügend Bits zur Bildung eine Zufallszahl der Länge, die für typische Verschlüsselungssysteme benötigt wird, zu sammeln. Daher wird in den meisten Situationen stattdessen ein Algorithmus verwendet, der Pseudozufallszahlen erzeugt. Die Zahlen, die durch einen solchen Algorithmus erzeugten werden, sind nicht wirklich zufällig, sondern sie sind deterministisch. Somit hat dieses Verfahren den Nachteil, dass, wenn der Algorithmus und sein Startwert bekannt sind, die Pseudozufallszahlen vorhergesagt werden können, was einer dritten Partei erlaubt, das Verschlüsselungs- oder Authentifizierungsschema zu knacken.
  • Es gibt daher einen Bedarf an einem Verfahren, das schnell Zufallszahlen erzeugen kann, die die Eigenschaft besitzen, dass die nächste Zahl nicht anhand der vorhergehenden Zahlen vorhergesagt werden kann.
  • WO00/75761 offenbart einen Zufallszahlengenerator, in dem von einem digitalen Zufallszahlengenerator eine Pseudozufallszahl erzeugt wird, von einem analogen Zufallszahlengenerator eine erste Zufallszahl erzeugt wird und die erste Zufallszahl mit der Pseudozufallszahl kombiniert wird, um eine zweite Zufallszahl zu erzeugen, die ein Ergebnis der Ausgaben beider Generatoren ist.
  • US 4.694.412 offenbart einen Zufallszahlengenerator, in dem die Ausgabe zweier digital gesteuerter Oszillatoren Ergebnis einer Exklusiv-ODER-Verknüpfung ist und durch einen Zähler getriggert wird, der eine Zählrate besitzt, die durch einen relativ langsamen digital gesteuerten Oszillator bestimmt ist.
  • Gemäß einem Aspekt der vorliegenden Erfindung wird ein Verfahren zum Erzeugen von Zufallsdaten bereitgestellt, wie es in Anspruch 1 beansprucht ist.
  • Gemäß einem zweiten Aspekt der vorliegenden Erfindung wird eine Vorrichtung zum Erzeugen von Zufalldaten geschaffen, wie sie in Anspruch 15 beansprucht ist.
  • Vorzugsweise umfasst der Modifikationsschritt das Modifizieren des Startwertes vor der Erzeugung des resultierenden Wertes. Alternativ kann der Modifikationsschritt das Modifizieren eines weiteren Wertes oder das Modifizieren des resultierenden Wertes umfassen. Der Modifizierungsschritt umfasst vorzugsweise das Ausführen einer Exklusiv-ODER-Operation oder einer Additionsoperationen an wenigstens einigen der Bits des Startwertes mit entsprechenden Bits der neuen, wirklich zufälligen Daten. Der Startwert kann in Bezug auf eine einzelne Variable oder in Umformung von einer Variablen in eine weitere modifiziert werden.
  • Die Ausgangszufallsdaten werden vorzugsweise durch Verarbeiten des resultierenden Wertes erzeugt.
  • Die wirklich zufälligen Daten werden durch Messung eines Zufallsprozesses wenigstens zum Teil außerhalb des Zufallsdatengenerators, z. B. durch Vergleichen der Raten zweier Oszillatoren, geeignet erzeugt.
  • Vorzugsweise ist nur einer der Oszillatoren ein durch einen Kristall gesteuerter Oszillator. Der andere Oszillator kann in einer integrierten Schaltung ausgeführt sein. Vorzugsweise ist einer der Oszillatoren genauer und/oder stabiler und/oder unempfindlicher gegen eine Umgebungsänderung als der andere Oszillator. Die wirklich zufälligen Daten können durch Zählen der Anzahl von Oszillationen des einen der Oszillatoren während einer vorgegebenen Anzahl von Oszillationen des anderen der Oszillatonen erzeugt werden. Vorzugsweise ist dieser andere der Oszillatoren der langsamere der Oszillatoren.
  • Der Schritt des Verarbeitens eines Startwertes kann ein Verarbeiten des Startwertes durch einen ersten Modulo-Potenzierungs-Schritt umfassen, um einen resultierenden Wert zu erzeugen, der als der Startwert verwendet wird in
  • Die wirklich zufälligen Daten können eines oder mehrere der niedrigstwertigen Bits der Anzahl von Oszillationen sein.
  • Die Erfindung wird nun beispielhaft anhand der beigefügten Zeichnung beschrieben, in der:
  • 1 ein Blockschaltplan einer Kommunikationsvorrichtung ist, die einen Zufallszahlengenerator enthält; und
  • 2 die Schritte eines Algorithmus zum Erzeugen von Zufallszahlen veranschaulicht.
  • Die Vorrichtung von 1 enthält einen Pseudozufallszahlen-Generator 1. Der Zufallszahlengenerator ist einen Prozessor 2 enthaltend gezeigt, der eine Universalverarbeitungshardware 3, einen nichtflüchtigen Programmspeicher 4, um Programmcode für die Verarbeitungshardware 3 zu speichern, und einen flüchtigen Zwischenablagespeicher 5, der durch die Verarbeitungshardware während der Ausführung von Verarbeitungsoperationen verwendet wird, enthält. Allerdings können alle geeigneten Datenverarbeitungsmittel einschließlich fest verdrahteter Verarbeitungsvorrichtungen und gemischter Hardware/ Software-Ausführungsformen verwendet werden. Der Pseudozufallszahlen-Generator besitzt einen Eingang 6, mittels dem er aufgerufen werden kann, um Zufallsdaten am Ausgang 7 auszugeben. Der Zufallszahlengenerator hat Zugriff auf eine Quelle 8 für wirklich zufällige Daten. In der Ausführungsform von 1 befindet sich die Quelle außerhalb des Zufallzahlengenerators und besitzt eine weitere Funktion in Bezug auf die Kommunikationsvorrichtung. Allerdings kann sich die Quelle innerhalb des Zufallszahlengenerators befinden und/oder eine fest zugeordnete Funktion zur Bildung von Zufallsdaten besitzen.
  • Die Quelle 8 enthält geeignet einen Speicher 10, um wirklich zufällige Bits zu speichern, sowie sie für eine Verwendung durch den Zufallszahlengenerator verfügbar werden. Der Zufallszahlengenerator hat über eine Verbindung 11 Zugriff auf diesen Speicher, um zu bestimmen, wie viele wirklich zufällige Bits verfügbar sind, um die wirklich zufälligen Bits, die verfügbar sind, zu lesen und um den Speicher zurückzusetzen, wenn die Bits in ihm verwendet worden sind.
  • Wenn von dem Zufallszahlengenerator 1 eine Zufallsdatenanforderung am Ein gang 6 empfangen wird, führen die Verarbeitungsmittel 2 eine Reihe von Verarbeitungsschritten zum Erzeugen einer Zufallszahl aus, wie sie unten beschrieben werden. Die Zufallzahl wird danach von dem Zufallszahlengenerator am Ausgang 7 ausgegeben. Wenn der Zufallszahlengenerator aufgerufen wird, werden die Verarbeitungsmittel veranlasst, auf einen Startwert zuzugreifen, der im Zwischenspeicher 5 gespeichert ist, einen Algorithmus auszuführen, der den Startwert als Eingabe braucht, und basierend auf diesem Startwert Zufallsdaten und einen Startwert, der zur Verwendung durch die nachfolgende Iteration des Algorithmus gespeichert wird, zu erzeugen. Als Teil des Algorithmus be stimmen die Verarbeitungsmittel, ob neue, wirklich zufällige Daten, die in einer vorhergehenden Iteration des Algorithmus nicht verwendet worden sind, von der Quelle 8 verfügbar sind. Falls solche Daten verfügbar sind, modifizieren die Verarbeitungsmittel den ursprünglich für die momentane Iteration genommenen Startwert entsprechend den neuen, wirklich zufälligen Daten und verwenden den modifizierten Startwert als Basis für die momentane Iteration; wobei andernfalls der Startwert, wie er ursprünglich übernommen wurde, als Basis für die momentane Iteration verwendet wird. Auf diese Weise können wirklich zufällige Daten, sowie sie verfügbar werden, verwendet werden, um die Bildung der Zufallsdaten zu randomisieren, ohne dass die Bildung der Daten darauf warten muss, dass wirklich zufällige Daten verfügbar werden. Dies hat den Hauptvorteil, dass, bis eine ausreichende Anzahl von Ausgaben 7 gesammelt worden sind, so dass eine Vorhersage der nächsten Ausgabe möglich wird, der Startwert auf nicht vorhersagbare Weise geändert wurde.
  • Ein Beispiel eines Algorithmus, der verwendet werden kann, wird nun beschrieben.
  • Bevor der Algorithmus ausgeführt wird, muss eine Anzahl konstanter Werte definiert sein. Diese konstanten Werte können geeignet definiert werden, wenn der Zufallszahlengenerator entworfen oder konstruiert wird – d. h. zum Zeitpunkt der Systemerstellung. Die konstanten Werte sind wie folgt gegeben:
    N repräsentiert eine ganze Zahl von etwa 800.
    L ist eine Anzahl wirklich zufälliger Bits, die von der Quelle 8 verfügbar sein können.
    K1 und K2 sind kleine Fermat-Primzahlen wie etwa 3, 17, 257 und 65537 (K1 und K2 können gleich sein).
    p1 und p2 sind verschiedene Primzahlen der Länge N/2. Wenn eine "Prim zahl der Stärke S'', wobei S eine nichtnegative ganze Zahl ist, als eine Primzahl p definiert ist, so dass p-1 einen Primfaktor der Stärke (S-1) einer Länge von wenigstens 3/4 so vielen Bits wie p aufweist, ist eine Primzahl der Stärke 0 einfach eine Primzahl; wobei p1 und p2 so ausgewählt werden, dass sie Primzahlen der Stärke 2 sind.
    M ist das Produkt aus p1 und p2.
  • Wenn M berechnet worden ist, werden p1 und p2 vorzugsweise unwiederbringlich verworfen oder mit hoher Sicherheit gespeichert.
  • Die konstanten Werte, die während der Ausführung des Algorithmus aufgerufen werden: L, K1, K2 und M, werden vorzugsweise in dem nichtflüchtigen Speicher 4 gespeichert.
  • Bei jeder Iteration wird ein Startwert als Eingabe für den Algorithmus gebraucht. Der Startwert wird durch den Algorithmus modifiziert, wobei der modifizierte Wert als der Startwert für die nachfolgende Iteration des Algorithmus gebraucht wird. Der für die nächste auszuführende Iteration zu verwendende Startwert wird an einer bestimmten Speicherstelle 9 im Zwischenspeicher 5 gespeichert. Ein Anfangsstartwert wird von dem Algorithmus zur Eingabe in der ersten Iteration benötigt, wofür er zum Erzeugen von Zufallsdaten aufgerufen wird. Eine Möglichkeit zur Bildung des Anfangsstartwertes besteht darin, einer Reihe zufälliger Bits von der Quelle 8 zu sammeln und diese in aufeinander folgenden Bitpositionen in der bestimmten Speicherstelle 9 zu speichern. Eine weitere Möglichkeit zur Bildung des Anfangsstartwertes besteht darin, einen weiteren konstanten Wert in dem nichtflüchtigen Speicher 4 zu speichern; um diesen Wert in die bestimmte Speicherstelle 9 zu speichern und danach eine bestimmte Anzahl von Iterationen des Algorithmus auszuführen, wobei von Zufallsdaten von der Quelle 8 Gebrauch gemacht wird, um den Startwert zu modifizieren, während aufeinander folgende Iterationen aufgerufen werden. Eines dieser Verfahren ist geeigneterweise dann anzuwenden, wenn die Kommunikationsvorrichtung initialisiert wird (z. B. beim Einschalten), so dass der Zufallszahlengenerator danach betriebsbereit ist und einen wirklich zufälligen Startwert hält.
  • Der Algorithmus ist in 2 allgemein veranschaulicht.
  • Wenn der Algorithmus zum Erzeugen einer Zufallszahl aufgerufen wird, wird der in der bestimmten Speicherstelle 9 gespeicherte Startwert abgerufen (Schritt 30 in 2). Der Startwert, wie er aus der bestimmten Speicherstelle 9 abgerufen wird, wird als eine Variable x gespeichert. Danach wird eine Prüfung im Speicher 10 ausgeführt, um zu ermitteln, ob L wirklich zufällige Bits von der Quelle 8 verfügbar sind (Schritt 31).
  • Wenn L wirklich zufällige Bits verfügbar sind, werden diese Bits in eine Variable z geladen und der Speicher 10 wird zurückgesetzt. Danach wird Schritt 32 des Algorithmus ausgeführt, um die Variable x entsprechend diesen wirklich zufälligen Bits zu modifizieren. Die Variable x wird modifiziert, indem sie gleich gesetzt wird zu: (x⊕z) mod M wobei das Symbol ⊕ eine Exklusiv-ODER-Verknüpfung jedes der L vorgegebenen Bits von x mit den entsprechenden Bits von z darstellt. Das Ergebnis der Exklusiv-ODER-Operation wird um modulo M reduziert, um es innerhalb der arithmetischen Grenzen des Algorithmus zu halten. Die Spezifikation, welche Bits von x mit welchen Bits von z durch ein Exklusiv-ODER zu verknüpfen sind, kann geeignet zum Zeitpunkt der Systemerstellung defniert werden.
  • Falls keine wirklich zufälligen Bits verfügbar sind, wird x nicht modifiziert.
  • Der Startwert für die nächste Iteration des Algorithmus wird in einer Variablen w gebildet, die gleich (x + 1)K2 mod M gesetzt wird (Schritt 33).
  • Danach wird der Wert von w in der bestimmten Speicherstelle 9 gespeichert, so dass er den vorherigen Startwert ersetzt und als Anfangswert von x für die nachfolgende Iteration dienen kann (Schritt 34).
  • Schließlich werden die Zufallsdaten, die von dem Zufallsgenerator ausgegeben werden sollen, erzeugt und in einer Variablen v gespeichert. Die Variable v wird gleich xK1 mod M gesetzt (Schritt 35). Der Wert von v wird als eine Lieferung zufälliger Bits verwendet, die am Ausgang 7 verfügbar gemacht werden.
  • Statt einer Exklusiv-ODER-Verknüpfung des Startwertes mit den wirklich zufälligen Bits, können andere Ansätze verwendet werden. Zum Beispiel kann in einem geeigneten Algorithmus ein anderer Wert als der Eingangsstartwert in Abhängigkeit von den Zufallsdaten modifiziert werden. Genauer kann in dem obigen Algorithmus der Ausgangsstartwert modifiziert werden. Andere Modifizierungen als eine Exklusiv-ODER-Verknüpfung wie etwa eine arithmetische Verschiebung oder eine Addition können verwendet werden.
  • Es sind zahlreiche Verfahren zum Erzeugen der wirklich zufälligen Daten verfügbar. Beispiele umfassen eine Digitalisierung verrauschter analoger Werte von analogen Sensoren in der Verrichtung wie etwa Spannungspegel von einem Temperatursensor 14 oder Zeitintervalle zwischen Tastendrücken durch einen Benutzer auf einem Tastenfeld 16. Eine bevorzugte Ausführungsform macht Gebrauch von einem Paar Oszillatoren 12, 13 mit verschiedenen Kurzzeitgenauigkeiten, d. h. 'Jitter', sowie vorzugsweise mit im Wesentlichen verschiedenen Raten.
  • Die Vorrichtung von 1 ist eine Funkkommunikationsvorrichtung. Der Oszillator 12 ist relativ schnell, relativ genau und weist einen relativ niedrigen Jitter auf. Der Oszillator 12 wird zum Modulieren von Signalen zur Übertragen auf einer Funkfrequenz verwendet und weist geeigneterweise eine Frequenz von einigen zehn Megahertz auf, z. B. 13 oder 26 MHz für ein GSM-gestütztes System. Der Oszillator 13 ist ein langsamerer, weniger genauer Oszillator mit einem größeren Jitter, der z. B. zur Intervalltaktung zwischen Perioden, wenn der schnellere Oszillator abgeschaltet ist, verwendet werden kann. Die Frequenz von Oszillator 13 kann einige kHz betragen. Der hochgenaue Oszillator 12 wird von einem Kristall geeignet getaktet, wohingegen der Oszillator 13 mit niedriger Genauigkeit geeignet auf einer einfachen Widerstands- und Kondensatorschaltung beruht, die in derselben integrierten Schaltung wie der Prozessor 2 enthalten sein kann. Somit ist hier ein Driften zwischen den Frequenzen der Oszillatoren 12 und 13 aufgrund z. B. von Temperaturänderungen und wegen zufälliger Schwankungen aufgrund thermischen Rauschens im Widerstand wahrscheinlich.
  • Um Zufallsdaten zu erzeugen, zählt ein Zähler 16 die Anzahl von Übergängen des schnellen Oszillators während einer vorgegebenen, vorzugsweise kleinen Anzahl von Perioden des langsamen Oszillators. Weil der Jitter in dem langsamen Oszillator in derselben Größenordnung wie die Periode des Oszillators 12 liegt oder größer als sie ist, sind die niedrigstwertigen Bits dieses Zählwerts wirklich zufällig. Daher werden eines oder mehrere dieser niedrigstwertigen Bits als die Zufallsdaten verwendet. Wenn z. B. die Frequenz des schnellen Oszillators 16 MHz beträgt und die Frequenz des langsameren Oszillators 1 kHz beträgt, können unter typischen Bedingungen die niedrigsten 1 oder 2 Bits dieses Zählwerts als die Zufallsdaten verwendet werden. Diese Zählung wird periodisch ausgeführt, wobei die resultierenden Bits im Speicher 10 gespeichert werden. Daher sind, nachdem die Zählung ausgeführt worden ist, neue Daten für den Zufallszahlengenerator verfügbar. Wenn die Zählung seit dem letzten Aufruf des Zufallszahlengenerators nicht ausgeführt worden ist, sind keine neuen Daten verfügbar, wobei der Zufallszahlengenerator in diesem Fall dennoch eine Ausgabe liefern kann, da er arbeiten kann, ob neue, wirklich zufällige Daten verfügbar sind oder nicht.
  • Der Prozessor kann zur Bildung von Zufallszahlen vorgesehen werden oder kann auch noch andere Funktionen ausführen. In letzterem Fall können die hier beschrieben Zufallszahlen, wie sie durch den Prozessor erzeugt werden, in weiteren Operationen, die durch den Prozessor selbst ausgeführt werden, aufeinander folgend verarbeitet werden.
  • Für den Fachmann auf dem Gebiet ist es im Hinblick auf die vorhergehende Beschreibung offensichtlich, dass verschiedene Abänderungen innerhalb des Umfangs der Erfindung, wie er durch die beigefügten Ansprüche definiert ist, vorgenommen werden können.

Claims (17)

  1. Verfahren zum Erzeugen von Zufallsdaten, wobei das Verfahren das wiederholte Ausführen einer Reihe von Operationen umfasst, wobei die Reihe von Operationen das Verarbeiten eines Startwertes einer ersten vorgegebenen Anzahl von Bits umfasst, um einen resultierenden Wert zu erzeugen, der als der Startwert in einer nachfolgenden Ausführung der Reihe von Operationen dient, und um Ausgangszufallsdaten (7) zu erzeugen; dadurch gekennzeichnet, dass: der Schritt des Verarbeitens eines Startwertes für die Erzeugung eines resultierenden Wertes eine Verarbeitung mittels eines Modulo-Potenzierungs-Algorithmus umfasst; das Verfahren den weiteren Schritt des Sammelns neuer, wirklich zufälliger Daten bei einer Quelle umfasst; die Reihe von Operationen die folgenden weiteren Schritte umfasst: (i) Bestimmen, ob die neu gesammelten, wirklich zufälligen Daten eine zweite vorgegebene Anzahl von Bits enthalten; und (ii) nur dann, wenn die zweite vorgegebene Anzahl von Bits verfügbar ist, Modifizieren der Erzeugung wenigstens des resultierenden Wertes in Abhängigkeit von den neu gesammelten, wirklich zufälligen Daten durch Ausführen einer Operation an jedem Bit der zweiten vorgegebenen Anzahl von vorgegebenen Bits des Startwertes, die wenigstens einige der Bits des Startwertes sind, mittels entsprechender Bits der neu gesammelten, wirklich zufälligen Daten.
  2. Verfahren nach Anspruch 1, bei dem der Modifikationsschritt das Modifizieren des Startwertes vor der Erzeugung des resultierenden Wertes umfasst.
  3. Verfahren nach Anspruch 2, bei dem der Modifizierungsschritt das Ausführen einer Exklusiv-ODER-Operation an den vorgegebenen Bits mit entsprechenden Bits der neu gesammelten, wirklich zufälligen Daten umfasst.
  4. Verfahren nach einem vorhergehenden Anspruch, bei dem die Ausgangszufallsdaten (7) durch Verarbeiten des resultierenden Wertes erzeugt werden.
  5. Verfahren nach einem vorhergehenden Anspruch, bei dem die wirklich zufälligen Daten durch Vergleichen der Raten zweier Oszillatoren (12, 13) erzeugt werden.
  6. Verfahren nach Anspruch 5, bei dem nur einer der Oszillatoren (12) ein durch einen Kristall gesteuerter Oszillator ist.
  7. Verfahren nach Anspruch 5 oder 6, bei dem die wirklich zufälligen Daten durch Zählen der Anzahl von Oszillationen des einen der Oszillatoren (12, 13) während einer vorgegebenen Anzahl von Oszillationen des anderen der Oszillatoren (12, 13) erzeugt werden.
  8. Verfahren nach Anspruch 7, bei dem die wirklich zufälligen Daten eines oder mehrere der niedrigstwertigen Bits der Anzahl von Oszillationen sind.
  9. Verfahren nach Anspruch 7 oder 8, das das Einstellen der Rate eines der Oszillatoren in Abhängigkeit von wenigstens einem der höchstwertigen Bits der Anzahl von Oszillationen umfasst.
  10. Verfahren nach einem der Ansprüche 5 bis 9, bei dem die Rate eines der Oszillatoren wenigstens gleich der 100-fachen Rate des anderen Oszillators ist.
  11. Verfahren nach einem der Ansprüche 5 bis 10, bei dem einer der Oszillatoren (12, 13) ein Signal für eine Hochfrequenzmodulation oder -demodulation von Kommunikationsdaten erzeugt.
  12. Verfahren nach Anspruch 11, bei dem der andere der Oszillatoren ein Signal für die Taktung von inaktiven Kommunikationsperioden erzeugt.
  13. Verfahren nach einem der Ansprüche 1 bis 12, bei dem der Schritt des Verarbeitens eines Startwertes umfasst: Verarbeiten des Startwertes durch einen ersten Modulo-Potenzierungs-Schritt, um einen resultierenden Wert zu erzeugen, der als der Startwert in einer nachfolgenden Ausführung der Reihe von Operationen verwendet wird; und Verarbeiten des Startwertes durch einen zweiten Modulo-Potenzierungs-Schritt, um Ausgangszufallsdaten zu erzeugen.
  14. Verfahren nach einem der Ansprüche 1 bis 13, das das Sammeln wirklich zufälliger Daten umfasst, um einen anfänglichen Startwert der ersten vorgegebenen Anzahl von wirklich zufälligen Bits zu bilden.
  15. Vorrichtung (1) für die Erzeugung von Zufallsdaten, wobei die Vorrichtung umfasst: eine Quelle (8) für wirklich zufällige Daten; einen ersten Speicher (10) zum Speichern eines Startwertes einer ersten vorgegebenen Anzahl von Bits; und Verarbeitungsmittel (2) für die Ausführung einer Reihe von Operationen, die die Verarbeitung des Startwertes umfassen, um einen resultierenden Wert für die Speicherung in dem ersten Speicher zu erzeugen, der als der Startwert in einer nachfolgenden Ausführung der Reihe von Operationen verwendet wird, und um Ausgangszufallsdaten zu erzeugen; dadurch gekennzeichnet, dass: der Schritt des Verarbeitens des Startwertes, um einen resultierenden Wert zu erzeugen, das Verarbeiten mittels eines Modulo-Potenzierungs-Algorithmus umfasst; die Vorrichtung einen zweiten Speicher umfasst, um neue wirklich zufällige Daten von der Quelle zu speichern; die Reihe von Operationen außerdem umfasst: (i) Bestimmen, ob eine zweite vorgegebene Anzahl von Bits von neuen, wirklich zufälligen Daten von dem zweiten Speicher verfügbar ist; und (ii) nur dann, wenn die zweite vorgegebene Anzahl von Bits verfügbar ist, Modifizieren der Erzeugung wenigstens des resultierenden Wertes in Abhängigkeit von den neuen, wirklich zufälligen Daten durch Ausführen einer Operation an jedem Bit der zweiten vorgegebenen Anzahl vorgegebener Bits des Startwertes, die wenigstens einige der Bits des Keimwertes sind, mittels entsprechender Bits der neu gesammelten, wirklich zufälligen Daten.
  16. Vorrichtung nach Anspruch 15, bei der der Schritt des Verarbeitens des Startwertes umfasst: Verarbeiten des Startwertes durch einen ersten Modulo-Potenzierungs-Schritt, um einen resultierenden Wert zu erzeugen, der als der Startwert in einer nachfolgenden Ausführung der Reihe von Operationen verwendet wird; und Verarbeiten des Startwertes durch einen zweiten Modulo-Potenzierungs-Schritt, um Ausgangszufallsdaten zu erzeugen.
  17. Kommunikationsvorrichtung, die eine Vorrichtung nach Anspruch 15 oder 16 enthält.
DE60211860T 2001-02-05 2002-01-28 Erzeugung von zufallszahlen Expired - Lifetime DE60211860T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GBGB0102840.6A GB0102840D0 (en) 2001-02-05 2001-02-05 Generating random data
GB0102840 2001-02-05
PCT/GB2002/000300 WO2002063462A2 (en) 2001-02-05 2002-01-28 Generating random data

Publications (2)

Publication Number Publication Date
DE60211860D1 DE60211860D1 (de) 2006-07-06
DE60211860T2 true DE60211860T2 (de) 2007-06-06

Family

ID=9908142

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60211860T Expired - Lifetime DE60211860T2 (de) 2001-02-05 2002-01-28 Erzeugung von zufallszahlen

Country Status (8)

Country Link
US (1) US7516169B2 (de)
EP (1) EP1364279B9 (de)
JP (1) JP3795456B2 (de)
CN (1) CN1278222C (de)
AT (1) ATE328321T1 (de)
DE (1) DE60211860T2 (de)
GB (1) GB0102840D0 (de)
WO (1) WO2002063462A2 (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7085993B2 (en) * 2002-07-29 2006-08-01 International Business Machine Corporation System and method for correcting timing signals in integrated circuits
US20040102242A1 (en) * 2002-11-21 2004-05-27 Poelmann Boudewijn Johannes Maria Systems and methods for establishing a verifiable random number
DE10330643A1 (de) 2003-07-07 2005-02-10 Siemens Ag Verfahren zur verschlüsselten Datenübertragung über ein Kommunikationsnetz
CN100461088C (zh) * 2005-10-17 2009-02-11 浙江大学 高质量的真随机数产生器
US7734969B2 (en) * 2007-10-30 2010-06-08 Infineon Technologies Ag Feedback shift register control
EP2695052B1 (de) * 2011-04-05 2014-11-26 Intrinsic ID B.V. System zur erzeugung von zufallszahlen basierend auf rauschen bei der speicher-einschaltung
WO2012159192A1 (en) * 2011-05-26 2012-11-29 Certicom Corp. Randomness for encryption operations
JP2013149079A (ja) 2012-01-19 2013-08-01 Makita Corp 乱数発生装置
US9819727B2 (en) 2013-02-28 2017-11-14 Amazon Technologies, Inc. Computing infrastructure for configurable-quality random data
US9049232B2 (en) 2013-02-28 2015-06-02 Amazon Technologies, Inc. Configurable-quality random data service
JP6419614B2 (ja) * 2015-03-17 2018-11-07 株式会社東芝 データ生成装置および認証システム
US10116441B1 (en) * 2015-06-11 2018-10-30 Amazon Technologies, Inc. Enhanced-security random data
JP6587188B2 (ja) 2015-06-18 2019-10-09 パナソニックIpマネジメント株式会社 乱数処理装置、集積回路カード、および乱数処理方法
CN107562409B (zh) * 2017-07-28 2021-02-26 深圳和而泰小家电智能科技有限公司 随机种子生成方法及装置
CN111176611B (zh) * 2019-12-31 2023-10-31 深圳远征技术有限公司 一种生成随机数据组的方法和装置
US11586418B2 (en) * 2020-01-17 2023-02-21 Macronix International Co., Ltd. Random number generator, random number generating circuit, and random number generating method

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4694412A (en) * 1982-09-22 1987-09-15 Intel Corporation Random number generator for use in an authenticated read-only memory
US4799259A (en) * 1986-04-10 1989-01-17 Rockwell International Corporation Monolithic random digital noise generator
US5383143A (en) * 1994-03-30 1995-01-17 Motorola, Inc. Self re-seeding linear feedback shift register (LFSR) data processing system for generating a pseudo-random test bit stream and method of operation
US5727063A (en) * 1995-11-27 1998-03-10 Bell Communications Research, Inc. Pseudo-random generator
GB2333652A (en) * 1998-01-24 1999-07-28 Motorola Ltd Random number generator with improved equiprobability
JP3518985B2 (ja) 1998-02-03 2004-04-12 日本電信電話株式会社 端末独立な乱数生成方法及び装置、端末独立な乱数生成プログラムを記録した記録媒体
EP1114363B1 (de) * 1998-09-14 2005-11-16 Igt Verfahren und vorrichtung zur startwerterzeugung für einen zufallszahlengenerator
US6125378A (en) * 1999-01-13 2000-09-26 Barbano; Paolo Emilio Method and apparatus for generating families of code signals using multiscale shuffling
US6795837B1 (en) * 1999-03-31 2004-09-21 Intel Corporation Programmable random bit source
US6253223B1 (en) * 1999-06-08 2001-06-26 General Instrument Corporation Robust random number generator
JP2001005383A (ja) 1999-06-23 2001-01-12 Sony Corp 乱数発生装置および乱数発生方法、媒体、並びに暗号化装置および暗号化方法
US6792438B1 (en) * 2000-03-31 2004-09-14 Intel Corporation Secure hardware random number generator
TW469404B (en) * 2000-05-05 2001-12-21 Umax Data Systems Inc Method for generating serial numbers by random numbers
US6766312B2 (en) * 2001-01-31 2004-07-20 International Business Machines Corporation Method and system for a random number generator
US6691141B2 (en) * 2001-04-13 2004-02-10 Science Applications International Corp. Method and apparatus for generating random number generators

Also Published As

Publication number Publication date
CN1278222C (zh) 2006-10-04
JP2004519035A (ja) 2004-06-24
CN1488094A (zh) 2004-04-07
JP3795456B2 (ja) 2006-07-12
WO2002063462A2 (en) 2002-08-15
EP1364279B1 (de) 2006-05-31
EP1364279A2 (de) 2003-11-26
WO2002063462A3 (en) 2002-10-03
EP1364279B9 (de) 2007-10-17
US20020107897A1 (en) 2002-08-08
GB0102840D0 (en) 2001-03-21
DE60211860D1 (de) 2006-07-06
ATE328321T1 (de) 2006-06-15
US7516169B2 (en) 2009-04-07

Similar Documents

Publication Publication Date Title
DE60211860T2 (de) Erzeugung von zufallszahlen
EP1643643B1 (de) Zufallszahlengenerator sowie Verfahren zur Erzeugung von Zufallszahlen
DE102008047163B4 (de) Bestimmen eines Zeitintervalls auf der Grundlage eines ersten Signals, eines zweiten Signals und eines Jitters des ersten Signals
DE2917017A1 (de) Erzeugung von takt- bzw. zeitsignalen
DE60032321T2 (de) System zur Erzeugung einer Bitfolge
EP2329356A1 (de) Vorrichtung und verfahren zum erzeugen einer zufallsbitfolge
DE60038672T2 (de) Wandergenerator und diesen enthaltender digitaler leitungsprüfer
DE112005001080T5 (de) Verfahren und Vorrichtung zum Verbessern der Frequenzauflösung eines direkten digitalen Synthesizers
EP1504336B1 (de) Vorrichtung und verfahren zum erzeugen einer zufallszahl
DE2264092A1 (de) Verfahren und anlage zum senden und empfangen von in chiffrierter form uebertragenen elektrischen sprachsignalen
DE102012014512A1 (de) Spreizung eines Taktsignals
DE102014112124B4 (de) Vorrichtung und verfahren zum auswerten der leistung einessystems in einer regelschleife
DE102004032363A1 (de) GPS-Empfänger und zugehöriges Signalverarbeitungsverfahren
DE102013204274A1 (de) Verfahren zum Erkennen einer Korrelation
DE102006021821A1 (de) Einstellbarer Zeitakkumulator
DE102013005055A1 (de) Erzeugen einer abgestimmten Frequenzausgabe aus einem Signalgenerator
DE2631496B2 (de) Superhet-Empfänger
DE102014200163A1 (de) Verfahren zum Erzeugen einer Ausgabe einer Zufallsquelle eines Zufallsgenerators
DE60319904T2 (de) Ein numerisch gesteuerter Oszillator (NCO) zur Erzeugung von Frequenzen mit rationalem Teilervehältnis
DE1268686C2 (de) Regelschaltung zur Abstimmung von Oszillatoren in Abhaengigkeit von der Frequenz einer Bezugsschwingung, insbesondere fuer Funk-Entfernungsmesssysteme
DE102008064063B4 (de) Steuersignalerzeugungsschaltung zur Einstellung eines Periodenwerts eines erzeugten Taktsignals als die Periode eines Referenzsignals, multipliziert mit oder dividiert durch eine beliebige reelle Zahl
DE10260713A1 (de) Digital steuerbarer Oszillator
DE2755796A1 (de) Phasenschieberschaltung
DE102020214998A1 (de) Quanten-Zufallszahlengenerator und Verfahren mit direkter Zufallszahlenextraktion aus Multi-Event Histogrammen
EP1159782A1 (de) Zufallssignalgenerator sowie verfahren zur erzeugung eines zufallssignals

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
R082 Change of representative

Ref document number: 1364279

Country of ref document: EP

Representative=s name: ,