DE102014224421A1 - Method and apparatus for generating random bits - Google Patents
Method and apparatus for generating random bits Download PDFInfo
- Publication number
- DE102014224421A1 DE102014224421A1 DE102014224421.8A DE102014224421A DE102014224421A1 DE 102014224421 A1 DE102014224421 A1 DE 102014224421A1 DE 102014224421 A DE102014224421 A DE 102014224421A DE 102014224421 A1 DE102014224421 A1 DE 102014224421A1
- Authority
- DE
- Germany
- Prior art keywords
- ring oscillator
- circuits
- time
- gate
- random bits
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
Abstract
Ein Verfahren zum Erzeugen von Zufallsbits (ZB) mit Hilfe mehrerer Ringoszillatorschaltkreise (11–1n), die rückgekoppelte Gatterschaltungen (211–2nr) umfasst die Schritte: Starten der Ringoszillatorschaltkreise (11–1n) derart, dass in den Ringoszillatorschaltkreisen (11–1n) jeweils ein mit einem Jitterbeitrag beaufschlagtes Oszillationssignal (OS1–OSn) durch die Gatterschaltungen (211–2nr) propagiert; Abgreifen des jeweiligen Oszillationssignals (OS1–OSn) an Ausgängen mehrerer Gatterschaltungen (21–2n) verschiedener Ringoszillatorschaltkreise (11–1n) als ein jeweiliges Ausgangssignal (A11–Anr); Zuordnen eines logischen Pegels zu dem jeweils abgegriffenen Ausgangssignal (A11–Anr) zum Erzeugen eines jeweiligen Bitwertes (B11–Bnr); und Anwenden einer kryptografischen Funktion (SHA) auf zumindest eine Auswahl der erzeugten Bitwerte (B11–Bnr) zum Erzeugen eines Bitmusters (BM), welches Zufallsbits (ZB1–ZBs) umfasst. Eine Vorrichtung zum Erzeugen von Zufallsbits (ZB1–ZBs) mit Hilfe des Verfahrens umfasst mehreren Ringoszillatorschaltkreisen (11–1n), die rückgekoppelte Gatterschaltungen (211–2nr) umfassen, hat mehrere Abtasteinrichtungen (31–3n) zum Erfassen von Ausgangssignale (A11–Anr) der Gatterschaltungen (211–2nr) und eine Steuereinrichtung (3).A method for generating random bits (ZB) by means of a plurality of ring oscillator circuits (11-1n), the feedback gate circuits (211-2nr) comprises the steps of: starting the ring oscillator circuits (11-1n) such that in the ring oscillator circuits (11-1n) in each case an oscillation signal (OS1-OSn) acted upon by a jitter contribution is propagated through the gate circuits (211-2nr); Sampling the respective oscillation signal (OS1-OSn) at outputs of a plurality of gate circuits (21-2n) of different ring oscillator circuits (11-1n) as a respective output signal (A11-Anr); Assigning a logical level to the respective sampled output signal (A11-Anr) to generate a respective bit value (B11-Bnr); and applying a cryptographic function (SHA) to at least a selection of the generated bit values (B11-Bnr) to generate a bit pattern (BM) comprising random bits (ZB1-ZBs). An apparatus for generating random bits (ZB1-ZBs) by the method comprising a plurality of ring oscillator circuits (11-1n) comprising feedback gate circuits (211-2nr) has a plurality of sampling means (31-3n) for detecting output signals (A11-Anr ) of the gate circuits (211-2nr) and a control device (3).
Description
Die vorliegende Erfindung betrifft ein Verfahren und eine Vorrichtung zum Erzeugen eines oder mehrerer Zufallsbits. Es wird zum Beispiel eine Zufallsbitfolge oder eine Zufallsbitmuster erzeugt, welche als binäre Zufallszahl verwendet wird. Die vorgeschlagenen Vorrichtungen und Verfahren zum Erzeugen von Zufallsbits dienen beispielsweise der Implementierung von Zufallszahlengeneratoren. Die Erfindung ermöglicht beispielsweise die Erzeugung echter Zufallsbits im Gegensatz zu Pseudozufallsbits. The present invention relates to a method and apparatus for generating one or more random bits. For example, a random bit string or a random bit pattern is generated, which is used as a binary random number. The proposed devices and methods for generating random bits serve, for example, the implementation of random number generators. For example, the invention allows for the generation of true random bits as opposed to pseudorandom bits.
Die vorgeschlagenen Verfahren und Vorrichtungen dienen insbesondere der Erzeugung von Zufallsbits oder Zufallsbitfolgen, die gute zufällige Eigenschaften haben, also eine möglichst hohe Entropie aufweisen. Zufallsdaten werden beispielsweise bei Sicherheitsanwendungen benötigt, wobei aus erzeugten Zufallsbits beispielsweise kryptographische Schlüssel oder dergleichen abgeleitet werden. The proposed methods and devices are used in particular to generate random bits or random bit sequences which have good random properties, that is to say have the highest possible entropy. Random data is needed, for example, in security applications, where, for example, cryptographic keys or the like are derived from random bits generated.
In sicherheitsrelevanten Anwendungen, beispielsweise bei asymmetrischen Authentifikationsverfahren, sind Zufallsbitfolgen als binäre Zufallszahlen notwendig. Dabei ist es gewünscht, insbesondere bei mobilen Anwendungen einen möglichst geringen Hardwareaufwand zu betreiben. Bekannte Maßnahmen, um Zufallszahlen zu erzeugen, sind beispielsweise Pseudozufallszahlengeneratoren, analoge Zufallsquellen, Ringoszillatoren und deren Abwandlungen. In security-relevant applications, for example in asymmetric authentication methods, random bit sequences are necessary as binary random numbers. It is desired, in particular for mobile applications to operate as little hardware as possible. Known measures for generating random numbers are, for example, pseudo-random number generators, analog random sources, ring oscillators and their modifications.
Bei Pseudozufallszahlengeneratoren werden Seeds verwendet, von denen ausgehend deterministische Pseudozufallszahlen berechnet werden. Zur Erzeugung des Seeds wird in der Regel ein physikalischer Zufallsgenerator verwendet. Als analoge Zufallsquellen werden Rauschquellen, wie z.B. das Rauschen von Zenerdioden, verstärkt und digitalisiert. Dabei ist die Verbindung von digitaler mit analoger Schaltungstechnik meist nur aufwändig zu verwirklichen. For pseudo-random number generators, seeds are used, from which deterministic pseudorandom numbers are calculated. To create the seed, a physical random number generator is usually used. As analog random sources, noise sources such as e.g. the noise of zener diodes, amplified and digitized. At the same time, the connection between digital and analog circuit technology is usually difficult to realize.
Bei Ringoszillatoren, die aus hintereinander geschalteten Invertern aufgebaut sind, ergeben sich zufällige Jitter aus schwankenden Durchlaufzeiten der Signale durch die Inverter. Diese Jitter, also eine unregelmäßige zeitliche Schwankung in Zustandsänderungen der durch die Inverter geschickten Signale, können bei mehrfachen Durchläufen durch die Ringoszillatorschaltung akkumuliert werden, so dass letztlich ein zufälliges analoges Signal entsteht. Nachteilig bei Ringoszillatoren ist häufig die notwendige lange Zeit vom Start der Schwingung bis ein brauchbar zufälliges Signal aufgrund der Jitterakkumulierung entsteht. Daher ergeben sich meist niedrige Datenerzeugungsraten bei Ringoszillatoren. Ferner ist möglich, dass die sich addierenden Jitterbeiträge sich auch selbst wieder aufheben, so dass im Mittel zufällige kurze Gatterlaufzeiten durch zufällige längere Gatterlaufzeiten kompensiert werden. In ring oscillators, which are constructed of series-connected inverters, random jitter resulting from fluctuating throughput times of the signals through the inverter. These jitter, that is, an irregular variation with time in state changes of the signals sent by the inverters, can be accumulated in the case of multiple passes through the ring oscillator circuit, so that ultimately a random analog signal is produced. A disadvantage of ring oscillators is often the necessary long time from the start of the oscillation until a usable random signal due to the Jitterakkumulierung arises. Therefore, low data generation rates usually occur with ring oscillators. Furthermore, it is possible that the adding jitter contributions cancel each other out, so that on average random short gate delays are compensated by random longer gate delays.
In der Vergangenheit wurden auch mehrere Ringoszillatoren gleichzeitig abgegriffen und die entsprechend gesandten Bits nach einer XOR-derung als Zufallsbits verwendet. Diese Vorgehensweise ging davon aus, dass im Wesentlichen eine Gleichverteilung der abgetasteten Bitwerte zwischen 0 bzw. L und H bzw. 1 bzw. H-Pegel vorliegen. Wünschenswert ist eine flexiblere und schnellere Erzeugung von Bits, insbesondere wenn Ringoszillatorschaltkreise eingesetzt werden. In the past, several ring oscillators were tapped simultaneously and used the corresponding bits sent after a XOR tion as random bits. This approach assumed that there is essentially an equal distribution of the sampled bit values between 0 or L and H or 1 or H level. It is desirable to have a more flexible and faster generation of bits, especially when ring oscillator circuits are used.
Insofern ist es eine Aufgabe der vorliegenden Erfindung, ein verbessertes Verfahren und/oder eine verbesserte Vorrichtung zum Erzeugen von Zufallsbits bereitzustellen. Thus, it is an object of the present invention to provide an improved method and / or apparatus for generating random bits.
Demgemäß wird ein Verfahren zum Erzeugen von Zufallsbits mit Hilfe mehrerer Ringoszillatorschaltkreise, die rückgekoppelte Gatterschaltungen umfassen, vorgeschlagen. Das Verfahren umfasst insbesondere die Schritte:
Starten der Ringoszillatorschaltkreise derart, dass in den Ringoszillatorschaltkreisen jeweils ein mit einem Jitterbeitrag beaufschlagtes Oszillationssignal durch die Gatterschaltungen propagiert;
Abgreifen des jeweiligen Oszillationssignals an Ausgängen mehrerer Gatterschaltungen verschiedener Ringoszillatorschaltkreise als ein jeweiliges Ausgangssignal;
Zuordnen eines logischen Pegels zu dem jeweils abgegriffenen Ausgangssignal zum Erzeugen eines jeweiligen Bitwertes; und
Anwenden einer kryptographischen Funktion auf zumindest einer Auswahl der erzeugten Bitwerte zum Erzeugen eines Bitmusters, welches Zufallsbits umfasst. Accordingly, a method for generating random bits by means of a plurality of ring oscillator circuits comprising feedback gate circuits is proposed. The method comprises in particular the steps:
Starting the ring oscillator circuits such that propagates in the ring oscillator circuits each acted upon by a jitter contribution oscillation signal through the gate circuits;
Picking up the respective oscillation signal at outputs of a plurality of gate circuits of different ring oscillator circuits as a respective output signal;
Assigning a logic level to the respective sampled output signal to generate a respective bit value; and
Applying a cryptographic function to at least a selection of the generated bit values to generate a bit pattern comprising random bits.
Bei dem vorgeschlagenen Verfahren wird ausgenutzt, dass kryptographische Funktionen oder Abbildungen im Vergleich zu sonst üblichen XOR-Verknüpfungen zu einer verbesserten Verteilung der ermittelten logischen Pegel als Zufallsbits führen. Kryptographische Funktionen können beispielsweise als Hashfunktionen oder Blockchiffren eingesetzt werden. Insbesondere eignen sich Hashfunktionen, die eine Bitfolge beliebiger Länge auf eine Bitfolge mit fester Länge abbilden. Kryptologische Hashfunktionen sind grundsätzlich bekannt und lassen sich leicht in Hardware implementieren. Als geeignet haben sich insbesondere Hashfunktionen nach SHA erwiesen. The proposed method makes use of the fact that cryptographic functions or mappings lead to an improved distribution of the determined logic levels as random bits in comparison to otherwise usual XOR links. Cryptographic functions can be used for example as hash functions or block ciphers. In particular, hash functions which are a bit sequence are suitable of any length to a bit sequence of fixed length. Cryptological hash functions are basically known and can be easily implemented in hardware. Hash functions according to SHA in particular have proven to be suitable.
Vorzugsweise umfasst der Ringoszillatorschaltkreis keine Verzweigungen von verketteten Gatterschaltungen. Es handelt sich insbesondere um einen klassischen Ringoszillator aus einer ungeraden Anzahl von hintereinander gekoppelten Inverterschaltungen. Preferably, the ring oscillator circuit does not include branches of concatenated gate circuits. In particular, it is a classical ring oscillator comprising an odd number of inverter circuits coupled in series.
Als Gatterschaltungen in den Ringoszillatorschaltkreisen werden Inverter und Verzögerungselemente eingesetzt. Es können aber auch weitere logische Gatter vorgesehen sein, die im Schwingungszustand die Funktionalität eines Inverters oder Verzögerungselements haben. Z. B ist es gängige Praxis, einen der Inverter im Ring durch ein NAND-Gatter mit zwei Eingängen zu ersetzen, sodass durch Anlegen eines Logischen 0-Wertes an den einen Eingang der Ringoszillator ausgeschaltet werden kann. Liegt dort eine logische 1 an, dann hat das Gatter die Funktionalität eines Inverters. Das Abgreifen eines jeweiligen Oszillationssignals erfolgt beispielsweise über ein Abtast- und Halteglied, das zu einem vorgegebenen Abtastzeitpunkt den Ausgangssignalpegel erfasst. In Ausführungsformen erfolgt das Abtasten der Ausgangssignale gleichzeitig. Dazu wird beispielsweise von einer Steuereinrichtung ein Abtastsignal geliefert, welches zu einem Samplen oder Abtasten führt. Es ist auch denkbar, dass die Ausgangssignale nicht gleichzeitig oder nacheinander abgetastet werden. Vielmehr werden die Ausgangssignale zum Zuordnen der logischen Pegel von Bitwerten verwendet, die von unterschiedlichen Ringoszillatorschaltkreisen stammen. Es ist dabei nicht notwendig, von jedem Ringoszillatorschaltkreis dieselbe Anzahl von Bitwerte abzuleiten. As gate circuits in the ring oscillator circuits inverter and delay elements are used. However, it is also possible to provide further logic gates which have the functionality of an inverter or delay element in the vibrational state. For example, it is common practice to replace one of the inverters in the ring with a two-input NAND gate, so that by applying a logical 0 value to one input, the ring oscillator can be turned off. If there is a logical 1, then the gate has the functionality of an inverter. The tapping of a respective oscillation signal, for example, via a sample and hold member which detects the output signal level at a predetermined sampling time. In embodiments, the sampling of the output signals occurs simultaneously. For this purpose, for example, supplied by a control device, a scanning signal, which leads to a sampling or scanning. It is also conceivable that the output signals are not sampled simultaneously or sequentially. Rather, the output signals are used to assign the logic levels of bit values derived from different ring oscillator circuits. It is not necessary to derive the same number of bit values from each ring oscillator circuit.
In Ausführungsformen werden die erzeugten Bitwerte vor dem Anwenden der kryptographischen Funktion einer Abbildung unterzogen, welche eine Entropie der Bitwerte im Wesentlichen unverändert lässt. Beispielsweise kann eine Reduktion der Anzahl der Bitwerte erfolgen, um die Durchführung der kryptographischen Funktion zu beschleunigen. Denkbar ist auch, dass die Bitwerte, welche von Ausgangssignalen eines Ringoszillatorschaltkreises erzeugt wurden, als Bitmuster zusammengefasst werden, welche beispielsweise indiziert werden können. Vorzugsweise wird bei einer derartigen Zwischenabbildung die Entropie der Bitwerte unverändert gelassen. In embodiments, before applying the cryptographic function, the generated bit values are subjected to a mapping that leaves entropy of the bit values substantially unchanged. For example, a reduction in the number of bit values can be made to speed up the performance of the cryptographic function. It is also conceivable that the bit values, which were generated by output signals of a ring oscillator circuit, are combined as bit patterns, which can be indexed, for example. Preferably, in such an intermediate image, the entropy of the bit values is left unchanged.
In einer weiteren Ausführungsform des Verfahrens erfolgen die Schritte:
Erfassen eines Entropiewertes der Auswahl der erzeugten Bitwerte als eine Anzahl von Bits;
Auswählen einer Auswahl der Zufallsbits, welche weniger Zufallsbits umfasst als der erfasste Entropiewert vorgibt; und
Ausgeben der Auswahl der Zufallsbits als binäre Zufallszahl. In a further embodiment of the method, the steps are carried out:
Detecting an entropy value of the selection of the generated bit values as a number of bits;
Selecting a selection of the random bits comprising fewer random bits than the detected entropy value; and
Output the selection of random bits as a binary random number.
Man kann den maximal möglichen Entropiewert für einzelne Ringoszillatorschaltkreise abschätzen. Eine theoretische Entropie der mit Hilfe der abgetasteten Ausgangssignale erzeugten Bits kann daher bestimmt werden und als Anzahl von Bits angegeben werden. Nach Anwenden der kryptographischen Funktion genügt es dann in der Regel, nicht mehr Bits aus dem Funktionsergebnis auszuwählen als eingangsseitig Entropie möglich ist. One can estimate the maximum possible entropy value for individual ring oscillator circuits. A theoretical entropy of the bits generated by means of the sampled output signals can therefore be determined and indicated as the number of bits. After applying the cryptographic function, it is then generally sufficient to not select more bits from the function result than entropy on the input side is possible.
In einer weiteren Ausführungsform des Verfahrens erfolgen die Schritte:
Einkoppeln eines Startsignals an die Ringoszillatorschaltkreise zu einem Startzeitpunkt ts zum Erzeugen der Oszillationssignale mit jeweils nominellen Perioden t1–tn, wobei das jeweilige Oszillationssignal mit wenigstens einem Jitterbeitrag beaufschlagt ist, welcher einer Normalverteilung mit einer Standardabweichung entspricht und wobei eine Entropie H(σ) des jeweiligen Ringoszillatorschaltkreises von der Standardabweichung σ des Jitters abhängt; und
Abtasten der Ausgangssignale zu einem Abtastzeitpunkt, wobei der Abtastzeitpunkt in einem vorgegebenen Zeitintervall Δt um einen Vorzugszeitpunkt tp gewählt ist, und wobei der Vorzugszeitpunkt derart gewählt wird, dass die Standardabweichung einen Wert hat, bei dem die Entropie pro Zeit für wenigstens einen Ringoszillatorschaltkreis, insbesondere demjenigen mit der längsten nominellen Periode T1–Tn, ein Maximum aufweist. In a further embodiment of the method, the steps are carried out:
Coupling a start signal to the ring oscillator circuits at a start time t s for generating the oscillation signals each having nominal periods t 1 -t n , the respective oscillation signal being subjected to at least one jitter contribution which corresponds to a normal distribution with a standard deviation and wherein an entropy H (σ ) of the respective ring oscillator circuit depends on the standard deviation σ of the jitter; and
Sampling the output signals at a sampling time, the sampling time in a predetermined time interval At is selected to be a preferential time point t p, and wherein the preferred timing is selected such that the standard deviation has a value at which the entropy per unit time for at least one ring oscillator circuit, in particular the one with the longest nominal period T 1 -T n , has a maximum.
Bei dieser Variante des Verfahrens wird ein günstiger zeitlicher Abstand zwischen dem Startzeitpunkt und dem Abtastzeitpunkt gewählt. Während bei bekannten Verfahren zum Erzeugen von Zufallsbits mit Ringoszillatoren das Abtasten solange nicht erfolgt bis der Jitter eine derart hohe Standardabweichung hat, die quasi der nominellen Periode des Ringoszillators entspricht, ist vorgesehen, den Vorzugszeitpunkt so zu wählen, dass eine Entropie-pro-Zeit-Maximierung eintritt. Der Abtastzeitpunkt ist dadurch früher als konventionell üblich. Dadurch können die Ringoszillatorschaltkreise mit einer höheren Zufallsbit-Erzeugungsrate betrieben werden. Dies führt zu schnelleren Zufallszahlerzeugungen, niedrigeren Stromaufnahmen und insgesamt einem effizienteren Vorgehen. In this variant of the method, a favorable time interval between the start time and the sampling time is selected. Whereas in known methods for generating random bits with ring oscillators the sampling does not take place until the jitter has such a high standard deviation, which corresponds more or less to the nominal period of the ring oscillator, it is provided to select the preferred time such that an entropy-per-time Maximization occurs. The sampling time is thereby earlier than conventionally usual. Thereby, the ring oscillator circuits can operate at a higher random bit generation rate become. This leads to faster random number generation, lower power consumption and a more efficient overall approach.
Grundsätzlich liefert ein Ringoszillatorschaltkreis beispielsweise mit einer ungeraden Anzahl von Invertern an seinem Ausgang ein Zufallssignal, welches aufgrund der Jitterschwankungen und der Rückkopplungen steigende und fallende Signalflankenanteile hat. Dieser zufällige oder chaotische Signalverlauf kann in der Regel zeitlich nicht aufgelöst werden, wenn zum vorgegebenen Abtastzeitpunkt ein einziger Bitwert aus dem Pegel des Zufallssignals abgeleitet wird. Bei mehreren zeitlich parallel abgetasteten Oszillationssignalen unterschiedlicher Ringoszillatoren, wird vorzugsweise der Vorzugszeitpunkt für den Ringoszillator mit der längsten nominellen Periode betrachtet. Es wird demnach früher abgetastet und eine potenzielle Ungleichverteilung der ermittelten H und L bzw. logischen Eins- und Nullzustände in Kauf genommen. Allerdings erhält man eine höhere Entropie pro Zeit, da ein Entropiemaximum aufgrund der Gaußschen oder thermischen Jittererzeugung bei Abtastzeitpunkten vorliegt, für die die Standardabweichung des Jitters geringer ist als eine nominelle Periode des Ringoszillators. Basically, a ring oscillator circuit, for example, with an odd number of inverters at its output provides a random signal, which has due to the jitter fluctuations and the feedbacks rising and falling signal edge components. As a rule, this random or chaotic signal curve can not be resolved in time if, at the given sampling time, a single bit value is derived from the level of the random signal. In the case of several oscillation signals of different ring oscillators sampled at the same time, preferably the preferred time for the ring oscillator with the longest nominal period is considered. Accordingly, it is sampled earlier and a potential unequal distribution of the determined H and L or logical one and zero states is accepted. However, one obtains a higher entropy per time since there is an entropy maximum due to Gaussian or thermal jitter generation at sampling instants for which the standard deviation of the jitter is less than a nominal period of the ring oscillator.
Das jeweilige Oszillationssignal schwankt als Pegel zwischen Spannungen, die einem High- oder Low-Zustand zugeordnet werden können. Beispielsweise kann ein Pegel von +1,5 V einem H- oder 1-Zustand zugeordnet werden und ein –1,5-V-Pegel einem logischen L- oder 0-Zustand. The respective oscillation signal fluctuates as a level between voltages that can be assigned to a high or low state. For example, a level of +1.5V may be assigned to an H or 1 state and a -1.5V level to a logical L or 0 state.
Bei einem Jitterbeitrag kann man von einer zeitlichen Abweichung eines Merkmals des Oszillationssignals, beispielsweise einer steigenden oder fallenden Signalflanke, von der nominellen oder mittleren Periode sprechen. Aufgrund von Laufzeitschwankungen ergeben sich beispielsweise an einem Ausgang der Gatter des Ringoszillatorschaltkreises nicht zwangsläufig strikt regelmäßige steigende Signalflanken, die als Maß für eine Periode des Oszillators verwendet werden können. Eine nominelle Periode ist beispielsweise der Mittelwert oder der Erwartungswert der Periode des Oszillationssignals. In the case of a jitter contribution, one can speak of a time deviation of a feature of the oscillation signal, for example a rising or falling signal edge, from the nominal or middle period. Due to runtime fluctuations arise, for example, at an output of the gates of the ring oscillator circuit is not necessarily strictly regular rising signal edges, which can be used as a measure of a period of the oscillator. A nominal period is, for example, the mean value or the expected value of the period of the oscillation signal.
Unter einem kumulierten Jitter versteht man beispielsweise die Abweichung der Phase des Oszillationssignals von ihrem Erwartungswert nach mehrfachem Propagieren durch die gesamte Ringoszillatorschaltung. In der Vergangenheit wurden viele Tausend Durchläufe des Oszillationssignals durch den Ringoszillatorschaltkreis abgewartet, bis ein Bitwert als Zufallsbit gesamplet bzw. abgetastet wurde. By a cumulative jitter is meant, for example, the deviation of the phase of the oscillation signal from its expected value after multiple propagation through the entire ring oscillator circuit. In the past, many thousands of passes of the oscillation signal have been waited by the ring oscillator circuit until a bit value has been sampled as a random bit.
In Ausführungsformen des Verfahrens wird der Vorzugszeitpunkt in Abhängigkeit von der sich ergebenden Standardabweichung σ des Jitters ermittelt. Beispielsweise ist die Standardabweichung σ proportional zur Quadratwurzel einer Mehrzahl m von nominellen Perioden ab dem Startzeitpunkt ts. Man kann insbesondere bei Jitterbeiträgen, die statistisch unabhängig sind, annehmen, dass die Standardabweichung mit dem m1/2-fachen ansteigt. Jedenfalls kann bei thermischen Jitterbeiträgen von Gaußschen unabhängigen Verteilungen ausgegangen werden. Insofern wird in Ausführungsformen der vorgeschlagenen Vorgehensweise wenigstens einer der einer entsprechenden Jitterbeiträge ein unabhängiger thermischer Jitterbeitrag sein. In embodiments of the method, the preferential time is determined as a function of the resulting standard deviation σ of the jitter. For example, the standard deviation σ is proportional to the square root of a plurality m of nominal periods from the start time t s . Especially with jitter contributions that are statistically independent, it can be assumed that the standard deviation increases by m 1/2 times. In any case, thermal jitter contributions can be based on Gaussian independent distributions. In this respect, in embodiments of the proposed approach, at least one of the corresponding jitter contributions will be an independent thermal jitter contribution.
In einer Variante des Verfahrens zum Messen des Jitters und zum Erzeugen von Zufallsbits mit Hilfe von Ringoszillatorschaltkreisen hat jede Gatterschaltung eine Gatterdurchlaufzeit G, und der Vorzugszeitpunkt ist tp = 0,113846 G2/σ2 Gatterdurchlaufzeiten. Nach dem Start des Ringoszillators bzw. nach dem letzten Abtasten, wobei σG die Standardabweichung der Gatterdurchlaufzeit ist. Diese Standardabweichung kann rechnerisch aus der Standardabweichung des über mehrere Ringoszillatorperioden akkumulierten Jitters bestimmt werden. In a variant of the method for measuring the jitter and generating random bits by means of ring oscillator circuits, each gate circuit has a gate transit time G, and the preferential time is t p = 0.113846 G 2 / σ 2 gate transit times. After the start of the ring oscillator or after the last sampling, where σ G is the standard deviation of the gate cycle time. This standard deviation can be calculated from the standard deviation of the jitter accumulated over several ring oscillator periods.
In einer weiteren Variante des Verfahrens zum Erzeugen von Zufallsbits mit Hilfe von Ringoszillatorschaltkreisen ist der Vorzugszeitpunkt tp = T3/(19,2482 σ2). In a further variant of the method for generating random bits with the aid of ring oscillator circuits, the preferred time t p = T 3 / (19.2482 σ 2 ).
Man kann beispielsweise die Entropie des Ringoszillatorschaltkreises, welche aufgrund von thermischen Jitterbeiträgen entsteht, numerisch oder mit Hilfe eines heuristischen Modells abschätzen. Aus einer entsprechenden Entropiekurve H(σ) wird in Abhängigkeit von der Standardabweichung σ, welche wiederum von der Anzahl m der Durchläufe durch den Ringoszillator abhängt, eine Kurve A(σ) der Entropieerzeugung pro Zeit bestimmt. Die Kurve A(σ) hat ein Maximum, das bestimmt wird. Die erreichte Standardabweichung σ entspricht daher einer Zeit, die seit dem Startzeitpunkt ts vergangen ist, in der der Jitter akkumuliert wird. Ein Vorzugszeitpunkt tp ist der Zeitpunkt, bei dem der akkumulierte Jitter eine Standardabweichung σ hat, die zu einem (lokalen) Maximum der Entropie-pro-Zeit-urve führt. Als Maß kann der Ausdruck A(σ) = H(σ)/σ2 genutzt werden. Es ist nun günstig, innerhalb eines zeitlichen Bereichs Δt um diesen, ein Maximum in der Entropieerzeugung pro Zeit hervorrufenden Zeitpunkt tp die Abtastung des Oszillationssignals vorzunehmen, weil dadurch die sich ergebenden Zufallsbits in Relation zum benötigten Zeit- und Energieaufwand eine besonders hohe Entropie pro Zeit aufweisen. For example, one can estimate the entropy of the ring oscillator circuit, which arises due to thermal jitter contributions, numerically or with the aid of a heuristic model. From a corresponding entropy curve H (σ), a curve A (σ) of the entropy production per time is determined as a function of the standard deviation σ, which in turn depends on the number m of passes through the ring oscillator. The curve A (σ) has a maximum that is determined. The standard deviation σ achieved therefore corresponds to a time which has elapsed since the start time t s at which the jitter is accumulated. A preferred time t p is the time at which the accumulated jitter has a standard deviation σ that results in a (local) maximum of the entropy-per-time-curve. As a measure, the expression A (σ) = H (σ) / σ 2 can be used. It is now low, within a time range .DELTA.t to this, a maximum in the entropy per time causing time t p to carry out the scanning of the oscillating signal because the resulting random bits have a particularly high entropy per time in relation to the time and energy required.
In Ausführungsformen ist das vorgegebene Zeitintervall Δt so gewählt, dass die Standardabweichung des im Intervall akkumulierten Jitters kleiner als ein Drittel, bevorzugt als ein Viertel und noch bevorzugter als ein Zehntel der nominellen Periode T. In Ausführungsformen erfolgt das Abtasten des Oszillationssignals periodisch mit einer Abtastperiode Δs = tp – ts. Das Startsignal wird zwischen den Abtastungen dann nicht eingekoppelt. In embodiments, the predetermined time interval Δt is chosen such that the standard deviation of the jitter accumulated in the interval is less than one-third, preferably one-fourth, and more preferably one-tenth of the nominal period T. In embodiments, the sampling of the oscillation signal occurs periodically with a sampling period Δs = t p - t s . The start signal is then not coupled between the samples.
Bei einer Variante des Verfahrens erfolgt das Abtasten der Oszillationssignale mehrfach nacheinander, und jeweils zuvor wird ein Startsignal für die Ringoszillatoren eingekoppelt. In a variant of the method, the sampling of the oscillation signals takes place several times in succession, and in each case before a start signal for the ring oscillators is coupled.
In Ausführungsformen des Verfahrens wird ferner die nominelle Periode T der Oszillationssignale an einem Ausgang einer der Gatterschaltungen des jeweiligen Ringoszillatorschaltkreises gemessen. Durch das Messen der nominellen Periode beispielsweise anhand von Oszillationssignalmerkmalen, wie steigenden oder fallenden Flanken, und einem Abspeichern beispielsweise in einem Speicher kann der für den jeweiligen Ringoszillatorschaltkreis günstige Vorzugszeitpunkt tp festgelegt werden. In embodiments of the method, furthermore, the nominal period T of the oscillation signals is measured at an output of one of the gate circuits of the respective ring oscillator circuit. By measuring the nominal period, for example by means of oscillation signal features, such as rising or falling edges, and storing, for example, in a memory, the preferred time t p for the respective ring oscillator circuit can be determined.
Es wird ferner eine Vorrichtung zum Erzeugen von Zufallsbits vorgeschlagen, welche umfasst:
mehrere Ringoszillatorschaltkreise, die rückgekoppelte Gatterschaltungen aufweisen;
mehrere Abtasteinrichtung zum Erfassen von Ausgangssignalen der Gatterschaltungen; und
eine Steuereinrichtung, welche eingerichtet ist, ein zuvor oder im Folgenden beschriebenes Verfahren durchzuführen. There is also proposed an apparatus for generating random bits, which comprises:
a plurality of ring oscillator circuits having feedback gate circuits;
a plurality of sampling means for detecting output signals of the gate circuits; and
a control device which is set up to carry out a method described above or below.
In Ausführungsformen ist die Vorrichtung Teil einer FPGA-Einrichtung oder einer ASIC-Einrichtung. In embodiments, the device is part of an FPGA device or an ASIC device.
Weiterhin wird ein Computerprogramm-Produkt vorgeschlagen, welches auf einer programmgesteuerten Einrichtung die Durchführung eines entsprechenden Verfahrens veranlasst. Furthermore, a computer program product is proposed, which causes the execution of a corresponding method on a program-controlled device.
Ein Computerprogramm-Produkt wie ein Computerprogramm-Mittel kann beispielsweise als Speichermedium, wie Speicherkarte, USB-Stick, CD-ROM, DVD, oder auch in Form einer herunterladbaren Datei von einem Server in einem Netzwerk bereitgestellt oder geliefert werden. Dies kann zum Beispiel in einem drahtlosen Kommunikationsnetzwerk durch die Übertragung einer entsprechenden Datei mit dem Computerprogramm-Produkt oder dem Computerprogramm-Mittel erfolgen. Als programmgesteuerte Einrichtung kommt insbesondere eine Steuereinrichtung, wie zum Beispiel ein Mikroprozessor für eine Smartcard oder dergleichen, in Frage. Das Verfahren oder die Vorrichtung kann auch festverdrahtet oder in konfigurierbaren FPGAs oder ASICSs implementiert werden. A computer program product such as a computer program means can be provided or supplied, for example, as a storage medium, such as a memory card, USB stick, CD-ROM, DVD, or even in the form of a downloadable file from a server in a network. This can be done, for example, in a wireless communication network by the transmission of a corresponding file with the computer program product or the computer program means. As a program-controlled device is in particular a control device, such as a microprocessor for a smart card or the like, in question. The method or device may also be hardwired or implemented in configurable FPGAs or ASICSs.
Weiterhin wird ein Datenträger mit einem gespeicherten Computerprogramm mit Befehlen vorgeschlagen, welche die Durchführung eines entsprechenden Verfahrens auf einer programmgesteuerten Einrichtung veranlassen. Furthermore, a data carrier with a stored computer program with commands is suggested, which cause the implementation of a corresponding method on a program-controlled device.
Weitere mögliche Implementierungen der Erfindung umfassen auch nicht explizit genannte Kombinationen von zuvor oder im Folgenden bezüglich der Ausführungsbeispiele beschriebenen Vorrichtungen oder Verfahrensvarianten. Dabei wird der Fachmann auch Einzelaspekte als Verbesserungen oder Ergänzungen zu der jeweiligen Grundform der Erfindung hinzufügen oder abändern. Further possible implementations of the invention also include not explicitly mentioned combinations of devices or method variants described above or below with regard to the exemplary embodiments. The skilled person will also add or modify individual aspects as improvements or additions to the respective basic form of the invention.
Die oben beschriebenen Eigenschaften, Merkmale und Vorteile dieser Erfindung sowie die Art und Weise, wie diese erreicht werden, werden klarer und deutlicher verständlich im Zusammenhang mit der folgenden Beschreibung der Ausführungsbeispiele, die im Zusammenhang mit den Zeichnungen näher erläutert werden. The above-described characteristics, features, and advantages of this invention, as well as the manner in which they will be achieved, will become clearer and more clearly understood in connection with the following description of the embodiments, which will be described in detail in conjunction with the drawings.
Dabei zeigen: Showing:
In den Figuren sind funktionsgleiche Elemente mit denselben Bezugszeichen versehen, sofern nichts anderes angegeben ist. In the figures, functionally identical elements are provided with the same reference numerals, unless stated otherwise.
In der
Die Vorrichtung zum Erzeugen von Zufallsbits
Beispielsweise hat der Ringoszillatorschaltkreis
Die
Nach einer vorbestimmten Zeit, die wie weiter unten beschrieben festgelegt werden kann, erfolgt zu einem Abtastzeitpunkt tp ein Abtasten von Ausgangssignalen A11–Anr mehrerer Inverter
In der
In den Erfassungsvorrichtungen
Die Steuereinrichtung
Beispielsweise führt die Steuervorrichtung
In einem optionalen Schritt S5 wird beispielsweise eine Auswahl des Ergebnisses der Hashwert-Berechnung ausgewählt. Sofern die von der Steuereinrichtung
Da kryptographische Funktionen, wie beispielsweise Hashfunktion oder auch Blockchiffren, ein pseudozufälliges Verhalten aufweisen können, wird die Zufallsbiterzeugung durch deren Nutzung verbessert. Auch eine verbesserte Gleichverteilung zwischen Null und Einsen der ausgegebenen Zufallsbits ZB1–ZBs ist verbessert. Da in vielen kryptographischen Hardware-Einrichtungen ohnehin kryptographische Funktionen implementiert werden, können diese bei der Erzeugung der Zufallsbits genutzt werden. Since cryptographic functions, such as hash function or even block ciphers, can exhibit pseudo-random behavior, random bit generation is improved by their use. An improved uniform distribution between zero and ones of the output random bits ZB 1 -ZB s is also improved. Since cryptographic functions are already implemented in many cryptographic hardware devices, they can be used in the generation of the random bits.
Die pseudozufälligen Eigenschaften der kryptographischen Funktion liefern eine verbesserte Statistik gegenüber bekannten Abtast- und Nachbearbeitungsmethoden. Bezüglich eines günstigen Abtastzeitpunktes hat die Anmelderin weitere Untersuchungen durchgeführt. Aufgrund physikalischer Einflüsse, beispielsweise thermischer Einflüsse durch die in den Invertern
Der Einfachheit halber wird im Folgenden nur eine Periode T1 des ersten Ringoszillators
Die Anmelderin hat Untersuchungen unternommen, bei denen insbesondere Gaußsches thermisches Rauschen als Jitterkomponente betrachtet wird. Daher wird auch angenommen, dass der Jitter einer Gaußschen Normalverteilung entspricht, deren Dichtefunktion bei einem Erwartungswert 0 und einer Standardabweichung σ die folgende Form hat: σ2 kann als Varianz bezeichnet werden. Nach dem bisherigen Stand der Technik würde nach einem Startzeitpunkt ts so lange gewartet werden müssen, bis die Standardabweichung gemäß der Normalverteilung für die Jitterkomponente so groß ist wie die nominelle Periode T1. Durch das Akkumulieren des Jitters steigt mit der Anzahl der Durchläufe des Oszillationssignals durch den Ringoszillator mit den Invertern
Die Anmelderin hat erkannt, dass die Entropie bzw. der Ausdruck A(σ) ein Maximum bei etwa 0,3 Gatterdurchlaufzeiten hat. Umgerechnet auf einen Abtastzeitpunkt bzw. einen Vorzugszeitpunkt tp zum Abtasten ergeben sich etwa tp = 0,113846(G/σG)2 Gatterdurchlaufzeiten wobei σG die Standardabweichung der Gatterdurchlaufzeit ist. Diese Standardabweichung kann rechnerisch aus der Standardabweichung des über mehrere Ringoszillatorperioden akkumulierten Jitters bestimmt werden. Tastet man beispielsweise innerhalb eines vorgegebenen Zeitintervalls Δt um diesen Vorzugszeitpunkt ab, erhält man zwar möglicherweise nicht gleich verteilte Zufallsbits, dennoch jedoch Bitwerte mit hoher Entropie pro Zeit. Applicant has recognized that the entropy or expression A (σ) has a maximum at about 0.3 gate sweeps. Converted to a sampling time or a preferred time t p for sampling, there are approximately t p = 0.113846 (G / σ G ) 2 gate cycle times where σ G is the standard deviation of the gate cycle time. This standard deviation can be calculated from the standard deviation of the jitter accumulated over several ring oscillator periods. If, for example, one scans around this preferred time within a predetermined time interval .DELTA.t, one obtains possibly not equally distributed random bits, but nevertheless bit values with high entropy per time.
Die Anmelderin hat eine Untersuchung durchgeführt, bei der vier Ringoszillatoren jeweils der Länge 3, 5, 7 und 11, wie in der
Bei der Untersuchung der Anmelderin wurden die Ringoszillatoren zum Zeitpunkt ts gestartet, und nach tp = 1400 ns wurden die 26 Ausgangssignale abgetastet. Man erhält insofern 26 Bitwerte, die ein jeweiliges zufälliges Bitmuster bilden. Die Implementierung des Zufallszahlengenerators erfolgte auf einem FPGA-Board vom Typ Spartan-3. Die direkt abgetasteten Ausgangssignale der Inverter sind nicht gleich verteilt. Vielmehr wurde eine größere Ungleichverteilung der verschiedenen Bitmuster aus den 26 Bitwerten ermittelt. In Applicant's study, the ring oscillators were started at time t s and after t p = 1400 ns the 26 output signals were sampled. Thus, one obtains 26 bit values which form a respective random bit pattern. The random number generator was implemented on a Spartan-3 FPGA board. The directly sampled output signals of the inverters are not distributed equally. Rather, a larger unequal distribution of the different bit patterns was determined from the 26 bit values.
Untersuchungen der Anmelderin ergaben eine Entropie von etwa 5,6 Bits pro 26-Bit-Sample. Eine Minentropie beträgt dabei 2,7 Bits pro Sample bzw. Abtastung. Es wurden über 10 Millionen Durchläufe bzw. Samples untersucht. Als eine geeignete kryptographische Funktion wurde der SHA-256-Algorithmus für eine Hashfunktion eingesetzt. Als Eingangsbits sind der kryptografischen Hashfunktion SHA-256 357 26-Bit-Tuples zugeführt worden. Die Anwendung der Hashfunktion SHA-56 auf diese 9282 Bit langen Bitfolgen führt zu 256 Ausgangsbits, die als Zufallsbits ZB1–ZB256 (vgl.
Die Hashfunktion SHA-256 hat relativ gute pseudozufällige Eigenschaften, so dass eine verbesserte Gleichverteilung zwischen Nullen und Einsen erzielt werden kann. Bei den anmelderseitig vorgenommenen Untersuchungen ergaben sich 4.052.354 Nullbits und 4.051.838 Eins-Bits. Insgesamt ist festzustellen, dass durch die Anwendung von kryptographischen Funktionen auf Bitmuster oder Bitfolgen, die aus der Abtastung unterschiedlicher Ringoszillatoren erzeugt werden, eine verbesserte zufällige statistische Verteilung erzielt wird. Insbesondere kryptographische Hashfunktionen, aber auch Blockchiffren, wie AES oder DES, sind geeignet, um eine statistische Schiefe von Zufallsbits zu reduzieren. The hash function SHA-256 has relatively good pseudo-random properties, so that an improved equal distribution between zeros and ones can be achieved. The registrations on the detector side resulted in 4,052,354 zero bits and 4,051,838 one bits. Overall, it can be seen that the application of cryptographic functions to bit patterns or bit sequences generated from the sampling of different ring oscillators results in an improved random statistical distribution. In particular, cryptographic hash functions, but also block ciphers, such as AES or DES, are suitable for reducing a random skew of random bits.
Obwohl die Erfindung im Detail durch das bevorzugte Ausführungsbeispiel näher illustriert und beschrieben wurde, so ist die Erfindung nicht durch die offenbarten Beispiele eingeschränkt und andere Variationen können vom Fachmann hieraus abgeleitet werden, ohne den Schutzumfang der Erfindung zu verlassen. Although the invention has been further illustrated and described in detail by the preferred embodiment, the invention is not limited by the disclosed examples, and other variations can be derived therefrom by those skilled in the art without departing from the scope of the invention.
Claims (10)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102014224421.8A DE102014224421A1 (en) | 2014-11-28 | 2014-11-28 | Method and apparatus for generating random bits |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102014224421.8A DE102014224421A1 (en) | 2014-11-28 | 2014-11-28 | Method and apparatus for generating random bits |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102014224421A1 true DE102014224421A1 (en) | 2016-06-02 |
Family
ID=55967706
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102014224421.8A Withdrawn DE102014224421A1 (en) | 2014-11-28 | 2014-11-28 | Method and apparatus for generating random bits |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102014224421A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021207428A1 (en) * | 2020-04-09 | 2021-10-14 | Rambus Inc. | Entropy generation for use in cryptographic random number generation |
DE102020206883A1 (en) | 2020-06-03 | 2021-12-09 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung eingetragener Verein | Generation of random numbers |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102004047425A1 (en) * | 2004-09-28 | 2006-04-20 | Micronas Gmbh | Random number generator and method for generating random numbers |
-
2014
- 2014-11-28 DE DE102014224421.8A patent/DE102014224421A1/en not_active Withdrawn
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102004047425A1 (en) * | 2004-09-28 | 2006-04-20 | Micronas Gmbh | Random number generator and method for generating random numbers |
Non-Patent Citations (2)
Title |
---|
BERNARD, Florent; FISCHER, Viktor; VALTCHANOV, Boyan: Mathematical model of physical RNGs based on coherent sampling. Tatra Mountains Mathematical Publications, 2010, 45. Jg., Nr. 1, S. 1-14 * |
JUN, Benjamin; KOCHER, Paul: The Intel random number generator. Cryptography Research Inc. white paper, 1999 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021207428A1 (en) * | 2020-04-09 | 2021-10-14 | Rambus Inc. | Entropy generation for use in cryptographic random number generation |
DE102020206883A1 (en) | 2020-06-03 | 2021-12-09 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung eingetragener Verein | Generation of random numbers |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102004047425B4 (en) | Random number generator and method for generating random numbers | |
DE102008048292B4 (en) | Apparatus and method for generating a random bit string | |
EP2976707B1 (en) | System and method for generating random bits | |
DE112011106024B4 (en) | Device specific information generating apparatus and device specific information generating method | |
WO2009127475A1 (en) | Device and method for generating a random bit sequence | |
EP1354264B1 (en) | Random number generator and method for generating a random number | |
DE102014102501A1 (en) | Random number generator | |
DE102009008224B4 (en) | Inverting cell | |
DE102014200163A1 (en) | A method for generating an output of a random source of a random number generator | |
DE102014224421A1 (en) | Method and apparatus for generating random bits | |
DE102014219651A1 (en) | Method and apparatus for generating random bits | |
DE102014200164A1 (en) | A method for generating an output of a random source of a random number generator | |
DE102014203649A1 (en) | Method for classifying and/or generating random bits, for mobile applications, involves classifying output signal from logic elements in ring oscillator circuit as random coincidence signal/non-random function of occurring bit patterns | |
DE102014219693A1 (en) | Method and apparatus for generating random bits | |
DE102013213095A1 (en) | Generating a number of random bits | |
DE102013210147A1 (en) | Generate random bits | |
DE102014203648A1 (en) | Device for generating random bits in random number generator, has detecting device that is provided to detect various random bits when successive level of input signal changes | |
DE102014226996A1 (en) | Method and apparatus for generating random bits | |
DE102014224423A1 (en) | Method and apparatus for measuring a jitter | |
DE102015203580A1 (en) | Apparatus and method for generating random bits | |
WO2014117983A1 (en) | Method and device for generating random bits | |
DE102014209964A1 (en) | Method and apparatus for generating random bits | |
DE102008033162A1 (en) | Physical random number generator | |
DE102014209689A1 (en) | Apparatus and method for generating random bits | |
DE102014221827A1 (en) | Apparatus and method for generating random bits |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R163 | Identified publications notified | ||
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |