WO2007110506A1 - Generateur de nombres aleatoires - Google Patents

Generateur de nombres aleatoires Download PDF

Info

Publication number
WO2007110506A1
WO2007110506A1 PCT/FR2007/000519 FR2007000519W WO2007110506A1 WO 2007110506 A1 WO2007110506 A1 WO 2007110506A1 FR 2007000519 W FR2007000519 W FR 2007000519W WO 2007110506 A1 WO2007110506 A1 WO 2007110506A1
Authority
WO
WIPO (PCT)
Prior art keywords
oscillator
bits
lfsr
integer
random number
Prior art date
Application number
PCT/FR2007/000519
Other languages
English (en)
Inventor
Patrick Radja
Roland Stoffel
Original Assignee
Eads Secure Networks
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 Eads Secure Networks filed Critical Eads Secure Networks
Priority to US12/280,767 priority Critical patent/US8209367B2/en
Priority to EP07731202A priority patent/EP1999569A1/fr
Publication of WO2007110506A1 publication Critical patent/WO2007110506A1/fr

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

Definitions

  • the present invention relates generally to the generation of random numbers.
  • Random numbers are used in various encryption applications, in particular for the encryption of data exchanged in secure communication systems such as professional radio systems or PMR ("Professional Mobile Radio").
  • Data encryption indeed requires random numbers such as, for example, secret identification numbers, encryption keys or initial values for iterative encryption algorithms, or the like.
  • a known approach for generating random numbers is to use a linear feedback shift register (LFSR).
  • An n-bit LFSR is a pseudo-random number generator that processes a polynomial of degree n.
  • a conventional structure includes an LFSR having a 1-bit input value provided by the sampled output of a high-noise phase oscillator whose frequency is much greater than the sampling frequency. This input value is called the entropy bit.
  • the LFSR is clocked by a clock signal at the sampling frequency.
  • This structure which has the particular advantage of occupying a small area of silicon and therefore be well suited for integrated circuit applications, nevertheless has a disadvantage.
  • This disadvantage lies in the fact that the structure generates numbers which, over a long duration, are not totally random, they are correlated with the frequency of the oscillator which is stable because it depends only on the environmental conditions (temperature , voltage ).
  • US 6,954,770 discloses a structure in which an entropy value over an N number of bits is provided at the input of the LFSR, where N is an integer greater than unity.
  • Each entropy bit is provided by the sampled output of a respective oscillator. It is injected at the input of one of the shift register elements forming the LFSR via a gate "Exclusive OR" type logic further coupled to the output of the previous shift register element.
  • This more complex structure indeed increases the randomness of the numbers generated, but it retains the same disadvantage described above, ie the numbers generated are not totally independent, each oscillator having a stable frequency.
  • Another disadvantage of this solution is the increase in power dissipated due to a larger number of oscillators operating at high frequency.
  • Embodiments of the present invention further enhance the randomness of the numbers generated using an LFSR by reducing the correlation of the numbers generated with the oscillator frequency by using a randomly varying oscillator in phase and frequency. Frequency by exploiting all the random characteristics of materials (temperature, location, ). They make it possible to minimize the power dissipated by limiting the number of oscillators, and / or to conceal the structure that only uses standard logic cells that are embedded in a set of doors.
  • a first aspect of the invention thus proposes a random number generator comprising: a linear feedback shift register, or LFSR, with n bits, where n is a determined integer;
  • At least one oscillator having at least one delay element introducing a variable delay in its feedback loop, and at least one sampler / blocker having at least one input coupled to an output of the oscillator, and at least one an output coupled to an input of the LFSR, and a clock input receiving a sampling clock signal at a frequency much lower than the frequency of the oscillator.
  • This generator is configured to vary the delay introduced by the delay element into the feedback loop of the oscillator as a function of a number q of feedback bits among the n output bits of the LFSR, where q is an integer such that 1 ⁇ q ⁇ n.
  • a second aspect of the invention provides a method of generating random numbers using: - a linear feedback shift register, or LFSR, with n bits, where n is a specified integer;
  • At least one oscillator having at least one delay element introducing a variable delay in its feedback loop
  • At least one sampler having at least one input coupled to an output of the oscillator, and at least one output coupled to an input of the
  • the delay introduced in the feedback loop of the oscillator is varied according to a number q of feedback bits among the n output bits of the LFSR, where q is an integer such that 1 ⁇ q ⁇ n.
  • the intrinsic structure of the delay element has a highly variable nature depending on the environment by exploiting all the physical variations of the microelectronic structure and the substrate.
  • Varying the delay introduced into the oscillator feedback loop according to at least a portion of the output bits of the LFSR creates a random feedback loop, which has the effect of adding a noise in frequency in the oscillator and create a strong instability in the behavior of the LFSR allowing to eliminate the deterministic character of the sequence of numbers delivered by the LFSR.
  • FIG. 1 is a diagram of a basic structure of a pseudo random number generator using an LFSR and an oscillator
  • FIG. 2 gives chronograms illustrating the operating principle of the basic structure of FIG. 1;
  • FIG. 3 is a diagram of a first looped random number generator structure according to first embodiments of the present invention.
  • FIG. 4 is a diagram illustrating the principle of an N-input LFSR
  • FIG. 5 is a diagram of an exemplary oscillator that can be used in embodiments of the present invention.
  • FIG. 6 is a diagram of a two-loop random number generator structure, according to second embodiments of the present invention.
  • a pseudo random number generator structure on which embodiments of the present invention are based includes an LFSR and an oscillator with an element introducing a determined delay.
  • a conventional structure shown for example in Figure 6 of US 6,480,072 cited and discussed in introduction, comprises a ring oscillator 1 whose output is looped with the input via a delay element 11.
  • a ring oscillator is composed of a chain of elements or inverter stages in odd number (greater than unity), closed on itself.
  • the delay element 11 is designed such that it introduces a highly variable delay depending on the physical characteristics of the environment, including but not only the temperature of the circuit. It follows that the signal CLK_R delivered by the oscillator is unstable in phase, as being affected by a phase noise. random. This is why we will sometimes speak, in the following, of a random clock signal to designate the signal delivered by the oscillator.
  • the output of oscillator 1 is sampled by flip-flop 2 at the frequency of a clock signal CLK stable in phase, the frequency of which is much lower than the frequency of the oscillator. .
  • the bit corresponding to the binary value delivered by the flip-flop 2 is provided as a 1-bit entropy bit at the input of an n-bit LFSR 3, which is clocked by the clock signal CLK.
  • the output of the LFSR produces n-bit RN random numbers, which change in value at each CLK signal activation edge.
  • the accumulated value of the number RN depends on the natural evolution of the value of the polynomial processed by the LFSR at the rhythm of the clock signal CLK, and furthermore values of the entropy value injected at the slower rate of the signal CLK_R.
  • the phase noise of the signal CLK_R corresponds to a jitter ("jitter" in English) which results in a certain distribution of the temporal position of the edges of the signal CLK_R.
  • the successive values of the signal CLK_R sampled at the frequency of the signal CLK constitute a sequence of binary values randomly equal to 1 or 0.
  • a high phase noise oscillator 100 comprises a delay element 110.
  • the oscillator may for example be a ring oscillator comprising a number z of stages cascaded, where z is an odd integer.
  • the oscillator 100 comprises a number p of separate outputs, corresponding for example each to the output of a respective inverter stage of the oscillator, where p is an integer such that 1 ⁇ p ⁇ n and p ⁇ z. These p outputs deliver a random clock signal CLK_R1 on p bits (in practice, it is actually p parallel signals).
  • the signal CLK_R1 is provided at the input of a sampler / blocker 200 which is activated by a phase-stable clock signal CLK1.
  • This sampler / blocker comprises for example p flip-flops in parallel, for example flip-flops SR, T, JK, or D, each receiving one of the p bits of the signal CLK_R1, respectively, on its data input.
  • the flip-flops of the sampler 200 are all activated by the CLK1 signal. The purpose of this sampler is to synchronize the signal CLK_R1 with the clock signal CLK1.
  • the output of the sampler 200 delivers an IN signal on p bits (in practice, it is in fact also here p parallel signals), each corresponding to the output of a respective one of the flip-flops of the sampler 200.
  • the signal IN is provided as entropy value on p bits, at the input of a
  • the LFSR 300 is activated by the clock signal CLK1. It processes a polynomial of degree n, and outputs a random number RN encoded on n bits.
  • a number q of bits form a feedback signal FB1 on q bits, where q is an integer such that 1 ⁇ q ⁇ n.
  • the q bits of the signal FB1 called feedback bits, are used to vary the delay introduced by the delay element 110 of the oscillator 100. As can be seen clearly in FIG. 3, a loop is thus created. random feedback between the LFSR 300 and the oscillator 100. With this principle, the entropy value IN introduced at the input of the LFSR has a strong random character, and can generate RN numbers of n bits really random.
  • the constituent elements of the structure that are the oscillator 100 and LFSR 300 are looped, each interacting with each other in a random manner, which guarantees a very random overall operation.
  • the RN numbers taken at the output of the LFSR 300 at each draw have a strong random and non-dependent character, which makes possible numerous consecutive draws in the applications that require it.
  • This principle makes it possible to generate random numbers of good quality, whatever their size n.
  • This also makes it possible to use a LFSR of lower degree than with a structure of the prior art, with equal quality of the generated numbers.
  • FIG. 4 the principle, known per se, of a LFSR with p inputs and n outputs will now be exposed.
  • the LFSR 300 comprises n flip-flops (for example flip-flops D called "Flip-Flop”) respectively FF1 to FFn cascaded with one another ,.
  • the output of the last flip-flop FFn is coupled to the input of the first flip-flop FF1 via a logic gate XOR1 of type
  • each of the flip-flops FFi is connected to the input of the next flip-flop FFi + 1 either directly or, as shown, via a logic gate XORi + 1, for all i such that 1 ⁇ i ⁇ n - 1
  • the output of one flip-flop can be connected to the input of another.
  • the output of the flip-flop FFn-1 is thus coupled to the input of the flip-flop FF2 via the gate XOR2.
  • the p bits of the entropy value IN are each delivered to the input of a respective one of the flip-flops FF1 to FFn via the corresponding logic gate, respectively XOR1 to XORn.
  • the n outputs of the LFSR which deliver the n bits of the random number generated, are taken on the outputs of the n flip-flops FF1 to FFn, respectively.
  • any FFi flip-flop does not receive any of the p bits of the entropy value IN and is also not coupled to the output of a flip-flop other than the previous flip-flop FFi-1 , then it can be directly coupled to the latter, that is to say without going through the door
  • the oscillator 100 is based on a ring oscillator.
  • the oscillator thus comprises a number z of cascaded inverter stages, where z is an odd integer, respectively INV1 to INVz. These inverter elements can be made very simply in CMOS technology.
  • the oscillator furthermore comprises a number p of separate outputs each corresponding to the output of a respective inverter, where p is an integer such that 1 ⁇ p ⁇ n and p ⁇ z (it should be remembered that p corresponds to the number of bits encoding the IN entropy values provided at the input of the LFSR). These outputs deliver the p bits forming the signal CLK R1.
  • the oscillator preferably comprises at least 2 q different delay elements, and at least one multiplexer configured to select one of the 2 q delay elements as a function of at least a portion of the q feedback bits.
  • These delay elements may correspond to delay paths each introducing a respective delay.
  • Each delay path comprises one or more logical elements having different characteristics (size, composition, ...) in order to ensure a different delay for each of them as well as a different behavior with respect to the physical phenomena leading to a different behavior. different variation of this delay affecting them (location on the semiconductor substrate, voltage, temperature, ..) thus causing a different phase noise behavior for the 2 q delays
  • an embodiment of the oscillator preferably comprises a number m of multiplexers, where m is an integer such that 1 ⁇ m ⁇ z, each disposed upstream of one of the z stages inverters INV1 to INVz.
  • These multiplexers MUX1 to MUXm are each configured to select one of the 2 q delay elements as a function of at least a portion of the q bits of feedback. This gives the application of a variable delay in m different locations of the oscillator, which multiplies the possible configurations, and thus contributes to increase the randomness of the logic states of the signal CLK_R1 delivered by the oscillator.
  • the m multiplexers are configured to each select one of a number 2 lk of the 2 q delay elements as a function of a number I k of bits among the q feedback bits, where I k is an integer such that 1 ⁇ l k ⁇ q for all k such that 1 ⁇ k ⁇ m.
  • the 2 q delay elements are distributed between the mux multiplexer MUX1 to MUXm, which amounts to reducing the total number of delay elements to be predicted with respect to a structure in which each multiplexer would make it possible to select one of 2 q delay elements (so that in fact mx2 q delay elements in total would be needed).
  • the 2 lk delay elements associated with each multiplexer MUXk are referenced DELk, 1 to DELk, 2 lk , respectively, for all k such that 1 ⁇ k ⁇ m.
  • the bits I k which serve to select the delay element applied by the multiplexer MUXk are obtained from the q bits of feedback via a logic function respectively Sk.
  • the logic functions S1 to Sm can for example be implemented in wired combinational logic.
  • l k q / m for any k such that 1 ⁇ k ⁇ m.
  • the 2 q delay elements are equitably distributed between the m multiplexers MUX1 to MUXm. This simplifies circuit design by allowing the use of masks with repetitive patterns for fabrication on the semiconductor substrate.
  • each inverter stage of the ring oscillator is coupled to the preceding stage via a variable delay element as a function of all or part of q bits of feedback.
  • Other embodiments of the oscillator are of course conceivable. It does not have to be a ring oscillator. It is sufficient for the oscillator to comprise an element that can be varied according to the q feedback bits to randomly influence the jitter (phase noise) of the signal generated by the oscillator. Similarly, one can have more than one oscillator to generate the p bits forming the entropy value injected into the LFSR.
  • the oscillator 100 may be replaced by a number p of separate oscillators each having a respective output, where p is an integer such that 1 ⁇ p ⁇ n, providing one of the bits of the entropy value IN .
  • Each of the p oscillators may for example be a ring oscillator which comprises a number z1 of cascade stages, where z ⁇ is a given integer, at least 2 q different delay elements, where q is an integer such that 1 ⁇ q s ⁇ q, and at least one multiplexer configured to select one of the 2 q 'delay elements according to at least a portion of said q-, feedback bits, where i is an index such that 1 ⁇ i ⁇ p making it possible to distinguish between them the p oscillators.
  • Such an oscillator would have the same structure as the oscillator shown in FIG. 5 already described (on which the index i would be added to the letters q, z and m), but would have only one output corresponding for example to the output of the last inverter element INVZJ.
  • This oscillator is not described in detail again here, but can be declined according to the same embodiments as that of Figure 5, which allows to obtain the corresponding advantages that have been indicated above.
  • each ring oscillator may comprise a number mi of multiplexers, where rrij is an integer such that 1 ⁇ m, ⁇ Z 1 for all i such that 1 ⁇ i ⁇ p, each configured to select one of the two q ⁇ delay elements according to at least a part of q ⁇ bits of feedback.
  • the multiplexers, for 1 ⁇ n ⁇ ⁇ z, can each be configured to select each one from a number 2 j
  • J 1 q / nrii for all i such that 1 ⁇ i ⁇ p.
  • the generator here comprises, in addition to the oscillator 100, an additional oscillator 200 (OSC2) having at least one delay element 410.
  • OSC2 additional oscillator 200
  • 410 introduces a determined delay, which varies according to a number w of feedback bits among the n output bits of the LFSR, where w is an integer such that 1 ⁇ w ⁇ n.
  • These w feedback bits form a feedback signal FB2. They may or may not, in whole or in part, be the same as the q feedback bits forming the feedback signal FB1 supplied to the oscillator 100.
  • the oscillator 400 may be of the same kind and be made in the same manner as the oscillator 100 described above with reference to the diagram of FIG. 3.
  • the oscillator 400 may be a ring oscillator which has the characteristics of the ring oscillator 100 described above.
  • the reader is thus referred to this description, in which it is simply necessary to replace the letter q by the letter w (that is to say that the q bits of FB1 must be replaced by the w bits of FB2).
  • the signal CLK_R2 delivered by the oscillator 400 is a random clock signal in the sense mentioned above. It is used in place of the signal CLK1 of FIG. 3, to clock the sampler 200 and the LFSR 300.
  • the signal CLK_R2 serves as a sampling clock signal of the signal CLK_R1 delivered by the oscillator 100. Since the oscillator 400 is looped with the LFSR 300, the signal CLK_R2 has a very random jitter. This randomness in phase and in frequency of which the signal signal CLK_R2, which itself is affected by a highly random phase noise, is very strongly reinforces the randomness of the entropy values IN injected as input. from the LFSR to the rhythm of the CLK_R2 signal. As can easily be seen, the generator according to these embodiments in fact comprises two noise injection loops, one through the input signal and another through the LFSR clock, while that of FIG. 3 has only one. This makes it possible to increase the quality, that is to say the randomness, of the numbers RN delivered at the output of the LFSR.
  • the second loop involves a variation of the operating speed of the LFSR, which results in variations in the temperature of the circuit, which contributes to adding the looping randomness accelerating the parallel phenomena and making the behavior of the circuit unpredictable. structure.
  • the numbers RN are preferably synchronized with a clock signal stable in phase.
  • the generator may comprise an n-bit sampler / blocker 500, whose n data inputs are coupled to the n outputs of the LFSR 300, whose clock input receives a phase-stable signal CLK2 (as is the signal CLK1 of FIG. 3), and whose n stabilized outputs deliver the n bits of the generated number RN .
  • the sampling signal of the first random clock signal CLK_R1 has a selectively stable frequency (as in the case of Figure 3) or unstable (as described above).
  • the generator may comprise a multiplexer 600, a first input of which receives the signal CLK1 (phase stable clock signal) of FIG.

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Pulse Circuits (AREA)
  • Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)
  • Manipulation Of Pulses (AREA)

Abstract

Un générateur de nombres aléatoires comprend un LFSR à n bits (300) au moins un oscillateur (100) ayant au moins un élément de retard (110) introduisant un retard variable dans sa boucle de contre-rétroaction, et au moins un échanti Honneur /bloqueur (200) ayant au moins une entrée couplée à une sortie de l'oscillateur, et au moins une sortie couplée à une entrée du LFSR, et une entrée d'horloge recevant un signal d'horloge d'échantillonnage (CLKl ) à une fréquence très inférieure à la fréquence de l'oscillateur. Ce générateur est par exemple configuré pour faire varier le retard introduit par l'élément de retard de l'oscillateur en fonction d'un nombre q de bits de rétroaction parmi les n bits de sortie du LFSR, où q est un nombre entier tel que 1 <= q <= n.

Description

GENERATEUR DE NOMBRES ALEATOIRES
La présente invention se rapporte de manière générale à la génération de nombres aléatoires.
Des nombres aléatoires sont utilisés dans diverses applications de chiffrement, en particulier pour le chiffrement des données échangées dans les systèmes de communication sécurisés tels que les systèmes de radiocommunications professionnels ou PMR ("Professionnal Mobile Radio"). Le chiffrement de données requiert en effet des nombres aléatoires tels que, par exemple, des numéros d'identification secrets, des clés de chiffrement ou des valeurs initiales pour des algorithmes de chiffrement itératifs, ou autres. Une approche connue pour la génération de nombres aléatoires consiste à utiliser un registre à décalage avec rétroaction linéaire ou LFSR ("Linear Feedback Shift Register"). Un LFSR à n bits est un générateur de nombres pseudo aléatoires qui traite un polynôme de degré n. Une structure classique comprend un LFSR dont une valeur d'entrée sur 1 bit est fournie par la sortie échantillonnée d'un oscillateur à fort bruit de phase dont la fréquence est très supérieure à la fréquence d'échantillonnage. Cette valeur d'entrée est appelée bit d'entropie. Le LFSR est cadencé par un signal d'horloge à la fréquence d'échantillonnage.
Cette structure, qui présente en particulier l'avantage d'occuper peu de surface de silicium et donc d'être bien adaptée pour des applications en circuit intégré, a néanmoins un inconvénient. Cet inconvénient réside dans le fait que la structure génère des nombres qui, sur une longue durée, ne sont pas totalement aléatoires, ils sont corrélés à la fréquence de l'oscillateur qui est stable car elle ne dépend que des conditions d'environnement (température, tension ...) .
Diverses propositions ont été faites pour augmenter le caractère aléatoire des nombres générés.
Ainsi, le document US 6,954,770 divulgue une structure dans laquelle une valeur d'entropie sur un nombre N de bits est fournie en entrée du LFSR, où N est un nombre entier supérieur à l'unité. Chaque bit d'entropie est fourni par la sortie échantillonnée d'un oscillateur respectif. Il est injecté en entrée dé l'un des éléments de registre à décalage formant le LFSR, via une porte logique de type "OU Exclusif" couplée par ailleurs à la sortie de l'élément de registre à décalage précédent. Cette structure plus complexe augmente en effet le caractère aléatoire des nombres générés, mais elle conserve le même inconvénient décrit précédemment c'est à dire que les nombres générés ne sont pas totalement indépendants, chaque oscillateur ayant une fréquence stable. Un autre inconvénient de cette solution est l'augmentation de la puissance dissipée du fait d'un plus grand nombre d'oscillateurs fonctionnant à fréquence élevée.
Dans le document US 6,480,072 il est proposé d'obtenir le bit d'entropie alimentant un LFSR, ou un autre dispositif tel qu'un circuit CRC ("Cyclic Redundancy Check"), en échantillonnant la sortie d'un oscillateur commandé en tension ou VCO ("Voltage Controlled Oscillator") à une fréquence d'échantillonnage très inférieure. Pour diminuer le caractère prédictible de la relation de phase qui lie la fréquence de sortie du VCO et la fréquence d'échantillonnage, la fréquence de sortie du VCO est modifiée pendant chaque période d'échantillonnage. Cette modification est obtenue en produisant une tension de commande du VCO qui résulte de la combinaison, dans un opérateur "OU Exclusif", du signal d'horloge d'échantillonnage et de la sortie d'un LFSR à 8 bits dédié à cette seule fonction. Cette proposition permet aussi d'améliorer la qualité des nombres aléatoires générés, mais elle est également assez complexe et elle a d'autre part l'inconvénient d'utiliser de modules analogiques qui sont facilement repérable sur une puce.
Des modes de réalisation de la présente invention permettent de renforcer encore le caractère aléatoire des nombres générés à l'aide d'un LFSR en réduisant la corrélation des nombres générés avec la fréquence de l'oscillateur en utilisant un oscillateur variant aléatoirement en phase et en fréquence en exploitant toutes les caractéristiques aléatoires des matériaux (température, localisation,...). Ils permettent de minimiser la puissance dissipée en limitant le nombre d'oscillateurs, et/ou de dissimuler la structure qui n'utilise que des cellules logiques standard qui sont noyées dans un ensemble de portes.
Un premier aspect de l'invention propose ainsi un générateur de nombres aléatoires comprenant: - un registre à décalage avec rétroaction linéaire, ou LFSR, à n bits, où n est un nombre entier déterminé;
- au moins un oscillateur ayant au moins un élément de retard introduisant un retard variable dans sa boucle de contre-réaction, et, - au moins un échantillonneur/bloqueur ayant au moins une entrée couplée à une sortie de l'oscillateur, et au moins une sortie couplée à une entrée du LFSR, et une entrée d'horloge recevant un signal d'horloge d'échantillonnage à une fréquence très inférieure à la fréquence de l'oscillateur.
Ce générateur est configuré pour faire varier le retard introduit par l'élément de retard dans la boucle de contre-réaction de l'oscillateur en fonction d'un nombre q de bits de rétroaction parmi les n bits de sortie du LFSR, où q est un nombre entier tel que 1 < q < n .
Un second aspect de l'invention propose un procédé de génération de nombres aléatoire en utilisant : - un registre à décalage avec rétroaction linéaire, ou LFSR, à n bits, où n est un nombre entier déterminé;
- au moins un oscillateur ayant au moins un élément de retard introduisant un retard variable dans sa boucle de contre-réaction; et,
- au moins un échantillonneur ayant au moins une entrée couplée à une sortie de l'oscillateur, et au moins une sortie couplée à une entrée du
LFSR, et une entrée d'horloge recevant un signal d'horloge d'échantillonnage à une fréquence très inférieure à la fréquence de l'oscillateur.
Selon ce procédé, on fait varier le retard introduit dans la boucle de contre-réaction de l'oscillateur en fonction d'un nombre q de bits de rétroaction parmi les n bits de sortie du LFSR, où q est un nombre entier tel que 1 < q < n .
La structure intrinsèque de l'élément de retard possède une nature fortement variable en fonction de l'environnement en exploitant l'ensemble des variations physique de la structure microélectronique et du substrat
(température, tension, position sur le substrat semiconducteur ) entraînant un bruit de phase important. Le fait de faire varier le retard introduit dans la boucle de contre-réaction de l'oscillateur en fonction d'une partie au moins des bits de sortie du LFSR crée une boucle de rétroaction aléatoire, qui a pour effet d'ajouter un bruit en fréquence dans l'oscillateur et de créer une instabilité forte dans le comportement du LFSR permettant d'éliminer le caractère déterministe de la séquence de nombres délivrés en sortie par le LFSR.
D'autres caractéristiques et avantages de l'invention apparaîtront encore à la lecture de la description qui va suivre. Celle-ci est purement illustrative et doit être lue en regard des dessins annexés, sur lesquels:
- la figure 1 est un schéma d'une structure de base d'un générateur de nombres pseudo aléatoires utilisant un LFSR et un oscillateur ;
- la figure 2 donne des chronogrammes illustrant le principe de fonctionnement de la structure de base de la figure 1 ; - la figure 3 est un schéma d'une première structure de générateur de nombres aléatoires bouclé, selon des premiers modes de réalisation de la présente invention ;
- la figure 4 est un schéma illustrant le principe d'un LFSR à n entrées ;
- la figure 5 est un schéma d'un exemple d'oscillateur pouvant être utilisé dans des modes de réalisation de la présente invention ; et,
- la figure 6 est un schéma d'une structure de générateur de nombres aléatoires à deux boucles, selon des seconds modes de réalisation de la présente invention.
Dans ce qui suit et aux figures, les mêmes éléments portent des références identiques.
Une structure de générateur de nombres pseudo aléatoires sur laquelle sont basés des modes de réalisation de la présente invention, comprend un LFSR et un oscillateur avec un élément introduisant un retard déterminé.
En référence à la figure 1 , une structure classique, montrée par exemple à la figure 6 du document US 6,480,072 cité et discuté en introduction, comprend un oscillateur en anneau 1 dont la sortie est bouclée avec l'entrée via un élément à retard 11. Un oscillateur en anneau est composé d'une chaîne d'éléments ou étages inverseurs en nombre impair (supérieur à l'unité), fermée sur elle même. L'élément de retard 11 est conçu de telle manière qu'il introduit un retard fortement variable en fonction des caractéristiques physiques de l'environnement, notamment mais pas uniquement la température du circuit. Il s'ensuit que le signal CLK_R délivré par l'oscillateur est instable en phase, comme étant affecté d'un bruit de phase aléatoire. C'est pourquoi on parlera parfois, dans la suite, de signal d'horloge aléatoire pour désigner le signal délivré par l'oscillateur.
La sortie de l'oscillateur 1 est échantillonnée par une bascule 2 ("flip- flop" en anglais) à la fréquence d'un signal d'horloge CLK stable en phase, dont la fréquence est très inférieure à la fréquence de l'oscillateur. Le bit correspondant à la valeur binaire délivrée par la bascule 2 est fourni en tant que bit d'entropie sur 1 bit en entrée d'un LFSR 3 à n bits, lequel est cadencé par le signal d'horloge CLK. La sortie du LFSR produit des nombres pseudo aléatoires RN sur n bits, qui changent de valeur à chaque front d'activation du signal CLK. La valeur accumulée du nombre RN dépend de l'évolution naturelle de la valeur du polynôme traité par le LFSR au rythme du signal d'horloge CLK, et en outre des valeurs de la valeur d'entropie injectée au rythme plus lent du signal CLK_R.
En référence à la figure 2 sur laquelle le signal CLK_R et le signal CLK sont représentés respectivement sur la première ligne et sur la seconde ligne, le bruit de phase du signal CLK_R correspond à une gigue ("jitter" en anglais) qui se traduit par une certaine distribution de la position temporelle des fronts du signal CLK_R. Lorsque la fréquence du signal d'horloge CLK est très inférieure à la fréquence nominale du signal CLK_R, les valeurs successives du signal CLK_R échantillonné à la fréquence du signal CLK constituent une séquence de valeurs binaires aléatoirement égales à 1 ou 0.
On va maintenant décrire des premiers modes de réalisation du générateur de nombres aléatoires, en référence au schéma fonctionnel de la figure 3. Dans ces premiers modes de réalisation, un oscillateur 100 à fort bruit de phase (OSC1) comprend un élément de retard 110. L'oscillateur peut par exemple être un oscillateur en anneau comprenant un nombre z d'étages mis en cascade, où z est un nombre entier impair. L'oscillateur 100 comprend un nombre p de sorties distinctes, correspondant par exemple chacune à la sortie d'un étage inverseur respectif de l'oscillateur, où p est un nombre entier tel que 1 < p < n et p < z . Ces p sorties délivrent un signal d'horloge aléatoire CLK_R1 sur p bits (en pratique, il s'agit en fait de p signaux parallèles). Le signal CLK_R1 est fourni en entrée d'un échantillonneur/bloqueur 200 qui est activé par un signal d'horloge CLK1 stable en phase. Cet échantillonneur/bloqueur comprend par exemple p bascules en parallèle, par exemple des bascules S-R, T, J-K, ou D, recevant chacune l'un des p bits du signal CLK_R1 , respectivement, sur son entrée de donnée. Les p bascules de l'échantillonneur 200 sont toutes activées par le signal CLK1. Cet échantillonneur a pour fonction de synchroniser le signal CLK_R1 avec le signal d'horloge CLK1.
La sortie de l'échantillonneur 200 délivre un signal IN sur p bits (en pratique, il s'agit en fait ici aussi de p signaux parallèles), correspondant chacun à la sortie de l'une respective des bascules de l'échantillonneur 200. Le signal IN est fourni en tant que valeur d'entropie sur p bits, en entrée d'un
LFSR 300 à n bits. Le LFSR 300 est activé par le signal d'horloge CLK1. Il traite un polynôme de degré n, et délivre en sortie un nombre aléatoire RN codé sur n bits.
Parmi les n bits du nombre RN, un nombre q de bits forment un signal de rétroaction FB1 sur q bits, où q est un nombre entier tel que 1 < q ≤ n . Les q bits du signal FB1 , appelés bits de rétroaction, sont utilisés pour faire varier le retard introduit par l'élément de retard 110 de l'oscillateur 100. Ainsi qu'on le voit clairement à la figure 3, on crée ainsi une boucle de rétroaction aléatoire entre le LFSR 300 et l'oscillateur 100. Grâce à ce principe, la valeur d'entropie IN introduite en entrée du LFSR a un caractère aléatoire fort, et permet de générer des nombres RN de n bits vraiment aléatoires. En effet, les éléments constitutifs de la structure que sont l'oscillateur 100 et le LFSR 300, sont bouclés, chacun interagissant avec l'autre de façon aléatoire, ce qui garantit un fonctionnement global très aléatoire. Ainsi, les nombres RN prélevés en sortie du LFSR 300 à chaque tirage ont un caractère aléatoire et non dépendant fort, ce qui rend possible des tirages consécutifs nombreux dans les applications qui l'exigent. Ce principe permet de générer des nombres aléatoires de bonne qualité, et ce quelque soit leur taille n. Cela permet aussi d'utiliser un LFSR de degré moins élevé qu'avec une structure de l'art antérieur, à qualité égale des nombres générés. En référence à la figure 4, le principe, connu en soi, d'un LFSR à p entrées et n sorties va maintenant être exposé.
Le LFSR 300 comprend n bascules (par exemple des bascules D appelées "Flip-Flop") respectivement FF1 à FFn couplées en cascade les unes avec les autres,. La sortie de la dernière bascule FFn est couplée à l'entrée de la première bascule FF1 par l'intermédiaire d'une porte logique XOR1 de type
"OU Exclusif". De même, la sortie de chacune des bascules FFi est reliée à l'entrée de la bascule suivante FFi+1 soit directement soit, comme représenté, via une porte logique XORi+1 , pour tout i tel que 1 < i < n - 1. Selon la valeur du polynôme traité par le LFSR, la sortie d'une bascule peut être reliée à l'entrée d'une autre. Dans l'exemple montré, la sortie de la bascule FFn-1 est ainsi couplée à l'entrée de la bascule FF2 par l'intermédiaire de la porte XOR2.
De même, les p bits de la valeur d'entropie IN sont délivrés chacun sur l'entrée de l'une respective des bascules FF1 à FFn via la porte logique correspondante, respectivement XOR1 à XORn.
Les n sorties du LFSR, qui délivrent les n bits du nombre aléatoire généré, sont prises sur les sorties des n bascules FF1 à FFn, respectivement.
On notera que, lorsque l'entrée d'une bascule FFi quelconque ne reçoit aucun des p bits de la valeur d'entropie IN et n'est pas non plus couplée à la sortie d'une bascule autre que la bascule précédente FFi-1 , alors elle peut être directement couplée à cette dernière, c'est-à-dire sans passer par la porte
XORi-1 , qui peut donc être absente.
En référence à la figure 5, l'oscillateur 100 selon des modes de réalisation est basé sur un oscillateur en anneau. L'oscillateur comprend ainsi un nombre z d'étages inverseurs mis en cascade, où z est un nombre entier impair, respectivement INV1 à INVz. Ces éléments inverseurs peuvent être réalisés très simplement en technologie CMOS. L'oscillateur comprend par ailleurs un nombre p de sorties distinctes correspondant chacune à la sortie d'un inverseur respectif, où p est un nombre entier tel que 1 < p < n et p < z (on rappelle que p correspond au nombre de bits codant les valeurs d'entropie IN fournies en entrée du LFSR). Ces sorties délivrent les p bits formant le signal CLK R1. L'oscillateur comprend de préférence au moins 2q éléments de retard différents, et au moins un multiplexeur configuré pour sélectionner l'un des 2q éléments de retard en fonction d'une partie au moins des q bits de rétroaction. Ces éléments de retard peuvent correspondre à des chemins de retard introduisant chacun un retard respectif. Chaque chemin de retard comprend un ou plusieurs éléments logiques ayant des caractéristiques différentes (taille, composition, ...) afin d'assurer un retard différent pour chacun d'entre eux ainsi qu'un comportement différent vis à vis des phénomènes physiques entraînant une variation différente de ce retard les affectant (localisation sur le substrat semiconducteur, tension, température, ..) entraînant ainsi un comportement du bruit de phase différent pour les 2q retards
Toujours en référence à la figure 5, un mode de réalisation de l'oscillateur comprend de préférence un nombre m de multiplexeurs, où m est un nombre entier tel que 1 < m < z , disposés chacun en amont de l'un des z étages inverseurs INV1 à INVz. Ces multiplexeurs MUX1 à MUXm sont configurés chacun pour sélectionner l'un des 2q éléments de retard en fonction d'une partie au moins des q bits de rétroaction. On obtient ainsi l'application d'un retard variable en m endroits différents de l'oscillateur, ce qui multiplie les configurations possibles, et donc contribue à augmenter le caractère aléatoire des états logiques du signal CLK_R1 délivré par l'oscillateur.
Dans un mode de réalisation, les m multiplexeurs sont configurés pour sélectionner chacun l'un déterminé parmi un nombre 2lk des 2q éléments de retard en fonction d'un nombre Ik de bits parmi les q bits de rétroaction, où Ik est un nombre entier tel que 1 < lk < q pour tout k tel que 1 < k < m . Dit autrement, les 2q éléments de retard sont répartis entre les m multiplexeur MUX1 à MUXm, ce qui revient à diminuer le nombre total d'éléments de retard à prévoir par rapport à une structure dans laquelle chaque multiplexeur permettrait de sélectionner l'un parmi 2q éléments de retard (en sorte qu'il faudrait en fait mx2q éléments de retard au total). A la figure 5, les 2lk éléments de retard associés à chaque multiplexeur MUXk sont référencés DELk,1 à DELk, 2lk , respectivement, pour tout k tel que 1 < k < m . Par exemple, pour tout k tel que 1 < k < m , les Ik de bits qui servent à sélectionner l'élément de retard appliqué par le multiplexeur MUXk, sont obtenus à partir des q bits de rétroaction par l'intermédiaire d'une fonction logique respectivement Sk. Les fonctions logiques S1 à Sm peuvent par exemple être réalisées en logique combinatoire câblée.
Dans un mode de réalisation lk = q/m pour tout k tel que 1 < k < m . Dit autrement, les 2q éléments de retard sont équitablement répartis entre les m multiplexeurs MUX1 à MUXm. Cela simplifie la conception du circuit, en permettant d'utiliser des masques avec des motifs répétitifs pour la fabrication sur le substrat semiconducteur.
Dans un mode de réalisation, on prévoit par ailleurs que m = z c'est-à- dire que chaque étage inverseur de l'oscillateur en anneau est couplé à l'étage précédent via un élément de retard variable en fonction de tout ou partie des q bits de rétroaction. On optimise ainsi la taille de l'oscillateur en anneau. D'autres modes de réalisation de l'oscillateur sont bien entendu envisageables. Il n'est pas obligatoire qu'il s'agisse d'un oscillateur en anneau. Il suffit que l'oscillateur comprenne un élément qu'on peut faire varier en fonction des q bits de rétroaction pour influencer de manière aléatoire la gigue (bruit de phase) du signal généré par l'oscillateur. De même, on peut avoir plus d'un oscillateur pour générer les p bits formant la valeur d'entropie injectée dans le LFSR. Ainsi, l'oscillateur 100 peut être remplacé par un nombre p d'oscillateurs distincts ayant chacun une sortie respective, où p est un nombre entier tel que 1 < p < n , fournissant l'un des bits de la valeur d'entropie IN. Chacun des p oscillateurs peut par exemple être un oscillateur en anneau qui comprend un nombre zι d'étages en cascade, où z\ est un nombre entier déterminé, au moins 2q' éléments de retard différents, où qj est un nombre entier tel que 1 < qs < q , et au moins un multiplexeur configuré pour sélectionner l'un des 2q' éléments de retard en fonction d'une partie au moins desdits q-, bits de rétroaction, où i est un indice tel que 1 < i < p permettant de distinguer entre eux les p oscillateurs. Un tel oscillateur aurait la même structure que l'oscillateur représenté à la figure 5 déjà décrite (sur laquelle on ajouterait l'indice i aux lettres q, z et m), mais n'aurait qu'une seule sortie correspondant par exemple à la sortie du dernier élément inverseur INVZJ. Cet oscillateur n'est pas décrit en détails à nouveau ici, mais peut être décliné selon les mêmes modes de réalisation que celui de la figure 5, ce qui permet d'obtenir les avantages correspondants qui ont été indiqués précédemment.
Dit autrement, chaque oscillateur en anneau peut comprendre un nombre mi de multiplexeurs, où rrij est un nombre entier tel que 1 < m, < Z1 pour tout i tel que 1 < i ≤ p , configurés chacun pour sélectionner l'un des 2 éléments de retard en fonction d'une partie au moins des qι bits de rétroaction. Les mj multiplexeurs, pour 1 < n^ < z , peuvent être configurés chacun pour sélectionner chacun l'un parmi un nombre 2j| des 2 éléments de retard en fonction d'un nombre jj de bits parmi les q bits de rétroaction, où J1 pour tout i tel que 1 < i < p , est un nombre entier tel que 1 < j, < q, .
De préférence, on choisit J1 = q/nrii pour tout i tel que 1 < i < p .
De manière encore plus avantageuse, on choisit m, = z, pour tout i tel que 1 < i ≤ p .
D'autres modes de réalisation du générateur permettent d'accroître encore le caractère aléatoire des nombres générés, et ce dès les premiers tirages (c'est-à-dire sans qu'il soit besoin d'attendre que le polynôme traité par le LFSR ait progressé un certain temps).
Ces seconds modes de réalisation du générateur de nombres aléatoires vont maintenant être décrits en référence au schéma fonctionnel de la figure 6, sur laquelle les mêmes éléments qu'à la figure 3 portent les mêmes références et ne sont pas à nouveau décrits en détails.
Le générateur comprend ici, en plus de l'oscillateur 100, un oscillateur additionnel 200 (OSC2) ayant au moins un élément de retard 410. L'élément
410 introduit un retard déterminé, qui varie en fonction d'un nombre w de bits de rétroaction parmi les n bits de sortie du LFSR, où w est un nombre entier tel que 1 < w < n . Ces w bits de rétroaction forment un signal de rétroaction FB2. Ils peuvent ou non, en tout ou en partie, être les mêmes que les q bits de rétroaction formant le signal de rétroaction FB1 fournis à l'oscillateur 100.
Pour le reste, l'oscillateur 400 peut être de même nature et être réalisé de la même manière que l'oscillateur 100 décrit plus haut en référence au schéma de la figure 3. Dit autrement, l'oscillateur 400 peut être un oscillateur en anneau qui présente les caractéristiques de l'oscillateur en anneau 100 décrit précédemment. Le lecteur est donc renvoyé à cette description, dans laquelle il faut simplement remplacer la lettre q par la lettre w (c'est-à-dire qu'il faut remplacer les q bits de FB1 par les w bits de FB2). Le signal CLK_R2 délivré par l'oscillateur 400 est un signal d'horloge aléatoire au sens mentionné plus haut. Il est utilisé en lieu et place du signal CLK1 de la figure 3, pour cadencer l'échantillonneur 200 et le LFSR 300. Dit autrement, le signal CLK_R2 sert de signal d'horloge d'échantillonnage du signal CLK_R1 délivré par l'oscillateur 100. Etant donné que l'oscillateur 400 est bouclé avec le LFSR 300, le signal CLK_R2 présente une gigue très aléatoire. Ce caractère aléatoire en phase et en fréquence dont est affecté le signal d'échantillonnage du signal CLK_R2, qui lui-même est affecté d'un bruit de phase fortement aléatoire, renforce très sensiblement le caractère aléatoire des valeurs d'entropie IN injectées en entrée du LFSR au rythme du signal CLK_R2. Comme on le remarque aisément, le générateur selon ces modes de réalisation comporte en effet deux boucles d'injection de bruit, une au travers du signal d'entrée et une autre au travers de l'horloge du LFSR, alors que celui de la figure 3 n'en comporte qu'une. Ceci permet d'augmenter la qualité, c'est-à-dire le caractère aléatoire, des nombres RN délivrés en sortie du LFSR.
Avantageusement, la seconde boucle implique une variation de la vitesse de fonctionnement du LFSR, qui se traduit par des variations de température du circuit, ce qui contribue à rajouter de l'aléa qui se reboucle accélérant les phénomènes parallèles et rendant imprédictible le comportement de la structure.
On notera que les nombres RN sont de préférence synchronisés avec un signal d'horloge stable en phase. A cet effet, le générateur peut comprendre un échantillonneur/bloqueur à n bits 500, dont les n entrées de données sont couplée aux n sorties du LFSR 300, dont l'entrée d'horloge reçoit un signal CLK2 stable en phase (comme l'est le signal CLK1 de la figure 3), et dont les n sorties stabilisées délivrent les n bits du nombre RN généré.
Dans un mode de réalisation conforme à la figure 6, le signal d'échantillonnage du premier signal d'horloge aléatoire CLK_R1 a une fréquence sélectivement stable (comme dans le cas de la figure 3) ou instable (comme décrit ci-dessus). Dit autrement, on peut sélectionner un fonctionnement à une boucle ou un fonctionnement à deux boucles, en fonction des performances attendues, sachant que le mode de fonctionnement à deux boucles consomme plus de courant. A cet effet, le générateur peut comprendre un multiplexeur 600, dont une première entrée reçoit le signal CLK1 (signal d'horloge stable en phase) de la figure 3, dont une seconde entrée reçoit le signal CLK_R2 délivré par le second oscillateur (signal d'horloge aléatoire), et dont une entrée de commande reçoit un signal de commande CTRL assurant la sélection de l'un ou l'autre des signaux CLK1 et CLK_R2 en tant que signal d'échantillonnage du signal d'horloge aléatoire CLK_R1 délivré par le premier oscillateur.

Claims

REVENDICATIONS
1. Générateur de nombres aléatoires comprenant:
- un registre à décalage avec rétroaction linéaire (300), ou LFSR, à n bits, où n est un nombre entier déterminé;
- au moins un oscillateur (100) ayant au moins un élément de retard (110) introduisant un retard variable dans sa boucle de contre-réaction; et,
- au moins un échantillonneur/bloqueur (200) ayant une au moins entrée couplée à une sortie de l'oscillateur, et au moins une sortie couplée à une entrée du LFSR, et une entrée d'horloge recevant un signal d'horloge d'échantillonnage (CLK1) à une fréquence très inférieure à la fréquence de l'oscillateur, caractérisé en ce qu'il est configuré pour faire varier le retard introduit par l'élément de retard dans la boucle de contre-réaction de l'oscillateur en fonction d'un nombre q de bits de rétroaction (FB1) parmi les n bits de sortie du LFSR, où q est un nombre entier tel que 1 < q < n .
2. Générateur de nombres aléatoires selon la revendication 1 , dans lequel;
- l'oscillateur est un oscillateur en anneau qui comprend un nombre z d'étages (INVI-INVz) mis en cascade, où z est un nombre entier impair déterminé, et un nombre p de sorties distinctes correspondant chacune à la sortie d'un étage respectif, où p est un nombre entier tel que 1 < p < n et p ≤ z ;
- le LFSR comprend p entrées pour recevoir une valeur d'entropie sur p bits; et,
- l'échantillonneur comprend p entrées respectivement couplées aux p sorties de l'oscillateur en anneau, et p sorties respectivement couplées aux p entrées du LFSR pour délivrer la valeur d'entropie sur p bits.
3. Générateur de nombres aléatoires selon la revendication 2, dans lequel l'oscillateur en anneau comprend au moins 2q éléments de retard différents, et au moins un multiplexeur configuré pour sélectionner l'un des 2q éléments de retard en fonction d'une partie au moins des q bits de rétroaction.
4. Générateur de nombres aléatoires selon la revendication 3, dans lequel l'oscillateur en anneau comprend un nombre m de multiplexeurs (MUX1- MUXm), où m est un nombre entier tel que 1 < m < z , configurés chacun pour sélectionner l'un des 2q éléments de retard en fonction d'une partie au moins des q bits de rétroaction.
5. Générateur de nombres aléatoires selon la revendication 4, dans lequel les m multiplexeurs sont configurés pour sélectionner chacun l'un parmi un nombre 2lk des 2q éléments de retard en fonction d'un nombre I de bits parmi les q bits de rétroaction, où I est un nombre entier tel que 1 < lk < q pour tout k tel que 1 < k < m .
6. Générateur de nombres aléatoires selon la revendication 5, dans lequel lk = q/m pour tout k tel que 1 < k < m .
7. Générateur de nombres aléatoires selon l'une quelconque des revendications précédentes dans lequel m = z .
8. Générateur de nombres aléatoires selon la revendication 1 , comprenant un nombre p d'oscillateurs en anneau distincts, où p est un nombre entier tel que 1 < p ≤ n , ayant chacun une sortie respective; dans lequel,
- le LFSR comprend p entrées pour recevoir une valeur d'entropie sur p bits; et,
- l'échantillonneur/bloqueur comprend p entrées respectivement couplées aux p sorties respectives des p oscillateurs en anneau, et p sorties respectivement couplées aux p entrées du LFSR pour délivrer la valeur d'entropie sur p bits.
9. Générateur de nombres aléatoires selon la revendication 8, dans lequel chacun des p oscillateurs en anneau comprend:
- un nombre z\ d'étages en cascade, où z-, est un nombre entier déterminé pour tout i tel que 1 ≤ i < p ;
- au moins 2 éléments de retard différents, où qι est un nombre entier tel que 1 ≤ qi ≤ q , pour tout i tel que 1 ≤ i < p ; et,
- au moins un multiplexeur configuré pour sélectionner l'un des 2 éléments de retard en fonction d'une partie au moins des qι bits de rétroaction.
10. Générateur de nombres aléatoires selon la revendication 9, dans lequel chaque oscillateur en anneau comprend un nombre mi de multiplexeurs, où
Figure imgf000017_0001
pour 1 < i ≤ p est un nombre entier tel que 1 ≤ m, < z, , configurés chacun pour sélectionner l'un des 2q' éléments de retard en fonction d'une partie au moins des qi bits de rétroaction.
11. Générateur de nombres aléatoires selon la revendication 10, dans lequel les mi multiplexeurs, pour 1 ≤ m, < z , sont configurés chacun pour sélectionner chacun l'un parmi un nombre 21' des 2q' éléments de retard en fonction d'un nombre jj de bits parmi les q bits de rétroaction, où ji est un nombre entier tel que î ≤ k' ≤ q, pour tout i tel que 1 ≤ i < p .
12. Générateur de nombres aléatoires selon la revendication 11 , dans lequel jι = q/rrii pour tout i tel que 1 < i ≤ p .
13. Générateur de nombres aléatoires selon l'une quelconque des revendications 10 à 12, dans lequel m, = Z1 pour tout i tel que 1 < i < p .
14. Générateur de nombres aléatoires selon l'une quelconque des revendications 1 à 13, dans lequel le signal d'horloge d'échantillonnage (CLK_R2) a une fréquence instable.
15. Générateur de nombres aléatoires selon l'une quelconque des revendications 1 à 13, dans lequel le signal d'horloge d'échantillonnage a une fréquence sélectivement stable ou instable.
16. Générateur de nombres aléatoires selon la revendication 15, comprenant un oscillateur additionnel (400) ayant au moins un élément de retard (410) introduisant un retard variable dans sa boucle de contre-réaction qui varie en fonction d'un nombre w de bits de rétroaction parmi les n bits de sortie du LFSR, où w est un nombre entier tel que 1 < w < n .
17. Générateur de nombres aléatoires selon la revendication 16, dans lequel l'oscillateur additionnel est un oscillateur en anneau qui présente les caractéristiques de l'oscillateur en anneau tel que défini dans l'une quelconque des revendications 2 à 7, en remplaçant q par w.
18. Procédé de génération de nombres aléatoires en utilisant:
- un registre à décalage avec rétroaction linéaire (300), ou LFSR, à n bits, où n est un nombre entier déterminé;
- au moins un oscillateur (100) ayant au moins un élément de retard (110) introduisant un retard variable dans sa boucle de contre-réaction; et, - au moins un échantillonneur (200) ayant au moins une entrée couplée à une sortie de l'oscillateur, et au moins une sortie couplée à une entrée du LFSR, et une entrée d'horloge recevant un signal d'horloge d'échantillonnage à une fréquence très inférieure à la fréquence de l'oscillateur, caractérisé en ce qu'on fait varier le retard introduit par l'élément de retard dans la boucle de contre-réaction de l'oscillateur en fonction d'un nombre q de bits de rétroaction parmi les n bits de sortie du LFSR, où q est un nombre entier tel que 1 < q < n .
19. Procédé de génération de nombres aléatoires selon la revendication 18, dans lequel on fournit en entrée du LFSR une valeur d'entropie sur p bits générée à partir de p sorties distinctes de l'oscillateur ou à partir des sorties respectives de p oscillateurs distincts.
20. Procédé selon la revendication 18 ou 19, dans lequel la fréquence d'échantillonnage est produite en utilisant un oscillateur additionnel (400) ayant un élément de retard (410) introduisant un retard variable dans sa boucle de contre-réaction, et dans lequel on fait varier le retard introduit par l'élément de retard dans la boucle de contre-réaction de l'oscillateur additionnel en fonction d'un nombre w de bits de rétroaction parmi les n bits de sortie du LFSR, où w est un nombre entier tel que 1 < w < n .
PCT/FR2007/000519 2006-03-29 2007-03-26 Generateur de nombres aleatoires WO2007110506A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US12/280,767 US8209367B2 (en) 2006-03-29 2007-03-26 Random number generator
EP07731202A EP1999569A1 (fr) 2006-03-29 2007-03-26 Generateur de nombres aleatoires

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0602728 2006-03-29
FR0602728A FR2899352B1 (fr) 2006-03-29 2006-03-29 Generateur de nombres aleatoires

Publications (1)

Publication Number Publication Date
WO2007110506A1 true WO2007110506A1 (fr) 2007-10-04

Family

ID=37412233

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2007/000519 WO2007110506A1 (fr) 2006-03-29 2007-03-26 Generateur de nombres aleatoires

Country Status (4)

Country Link
US (1) US8209367B2 (fr)
EP (1) EP1999569A1 (fr)
FR (1) FR2899352B1 (fr)
WO (1) WO2007110506A1 (fr)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103813313A (zh) * 2012-11-07 2014-05-21 中国科学院微电子研究所 一种祖冲之算法的硬件实现装置及方法
CN108833043A (zh) * 2018-05-31 2018-11-16 西安电子科技大学 基于Polar法改进的AWGN信道实现方法及装置

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7382165B2 (en) * 2006-08-23 2008-06-03 International Business Machines Corporation Method for matching semiconductor device behavior
US7793235B2 (en) * 2007-10-25 2010-09-07 International Business Machines Corporation Method and circuit for matching semiconductor device behavior
US8131789B2 (en) * 2008-03-28 2012-03-06 Atmel Corporation True random number generator
US8958550B2 (en) * 2011-09-13 2015-02-17 Combined Conditional Access Development & Support. LLC (CCAD) Encryption operation with real data rounds, dummy data rounds, and delay periods
US9141338B2 (en) * 2012-11-16 2015-09-22 Arm Limited Storage circuit with random number generation mode
US9075674B2 (en) 2012-12-12 2015-07-07 Freescale Semiconductor, Inc. Systems with adjustable sampling parameters and methods of their operation
US10708043B2 (en) * 2013-03-07 2020-07-07 David Mayer Hutchinson One pad communications
EP2796987A1 (fr) * 2013-04-26 2014-10-29 EM Microelectronic-Marin SA Générateur de nombres aléatoires
US10057250B2 (en) 2013-05-14 2018-08-21 Kara Partners Llc Technologies for enhancing computer security
US9454653B1 (en) 2014-05-14 2016-09-27 Brian Penny Technologies for enhancing computer security
US10594687B2 (en) 2013-05-14 2020-03-17 Kara Partners Llc Technologies for enhancing computer security
US12028333B2 (en) 2013-05-14 2024-07-02 Kara Partners Llc Systems and methods for variable-length encoding and decoding for enhancing computer systems
FR3023396B1 (fr) * 2014-07-02 2016-07-29 Stmicroelectronics Rousset Generateur de nombres aleatoires
TWI497409B (zh) * 2014-07-18 2015-08-21 Winbond Electronics Corp 亂數產生器及其亂數產生方法
CN105322920B (zh) * 2014-08-05 2018-02-23 华邦电子股份有限公司 乱数产生器及其乱数产生方法
US9557964B2 (en) * 2014-11-21 2017-01-31 Winbond Electronics Corp. Random number generator and method for generating random number thereof
FR3051084B1 (fr) * 2016-05-04 2019-08-02 Stmicroelectronics (Rousset) Sas Generateur de nombres d'oscillations
FR3051085B1 (fr) 2016-05-04 2020-02-14 Stmicroelectronics (Rousset) Sas Structure de multiplexeur
FR3051086B1 (fr) 2016-05-04 2019-07-26 Stmicroelectronics (Rousset) Sas Circuit de comptage d'impulsions
CN106293617B (zh) * 2016-08-12 2018-11-09 上海坚芯电子科技有限公司 真随机数发生器
JP2019012944A (ja) * 2017-06-30 2019-01-24 株式会社デンソー クロック信号生成回路
WO2019207388A1 (fr) * 2018-04-27 2019-10-31 Khalatian Arsen Georgievich Procédé et dispositif de communiction acoustique entre des dispositifs disposés à proximité l'un de l'autre
TWI662471B (zh) * 2018-05-31 2019-06-11 華邦電子股份有限公司 真實隨機數產生裝置及其產生方法
CN110609672B (zh) * 2018-06-15 2023-11-07 华邦电子股份有限公司 真实随机数产生装置及其产生方法
US10790837B1 (en) 2019-10-22 2020-09-29 Qualcomm Incorporated Self-tuning digital clock generator
US10761809B1 (en) * 2020-03-12 2020-09-01 Katholieke Universiteit Leuven Random number generator
CN111506296B (zh) * 2020-04-24 2023-08-22 苏州盛科通信股份有限公司 基于lfsr的报文采样方法及系统
CN111900958A (zh) * 2020-06-19 2020-11-06 上海美仁半导体有限公司 随机数产生电路、芯片及家用电器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54137950A (en) * 1978-04-19 1979-10-26 Nec Corp Digital control oscillator
US6480072B1 (en) * 2000-04-18 2002-11-12 Advanced Micro Devices, Inc. Method and apparatus for generating random numbers
US20020186086A1 (en) * 2001-06-12 2002-12-12 Dallas Semiconductor Corporation Random number generator
US6687321B1 (en) * 1999-09-24 2004-02-03 Kabushiki Kaisha Toshiba Digital PLL circuit

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CH674423A5 (fr) 1987-03-25 1990-05-31 Crypto Ag
SE470242B (sv) 1992-05-12 1993-12-13 Ericsson Telefon Ab L M Anordning för generering av slumptal
US5878075A (en) 1996-07-26 1999-03-02 Motorola, Inc. Method of and apparatus for generating a pseudorandom noise sequence
JP2937919B2 (ja) 1997-01-16 1999-08-23 日本電気アイシーマイコンシステム株式会社 疑似乱数発生回路
US6009135A (en) 1997-10-10 1999-12-28 Interdigtal Technology Corporation Method and apparatus for generating a stream cipher
US6807553B2 (en) * 2001-04-23 2004-10-19 Safenet B.V. Digital true random number generator circuit
US6954770B1 (en) 2001-08-23 2005-10-11 Cavium Networks Random number generator
JP3732188B2 (ja) 2003-03-31 2006-01-05 Necマイクロシステム株式会社 擬似乱数発生回路
DE10347455B4 (de) 2003-10-13 2010-08-26 Infineon Technologies Ag Pseudozufallszahlengenerator für einen Stream Cipher
US7293054B2 (en) 2004-03-11 2007-11-06 Harris Corporation Random number source and associated methods
JP4559985B2 (ja) * 2005-03-15 2010-10-13 株式会社東芝 乱数発生回路

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54137950A (en) * 1978-04-19 1979-10-26 Nec Corp Digital control oscillator
US6687321B1 (en) * 1999-09-24 2004-02-03 Kabushiki Kaisha Toshiba Digital PLL circuit
US6480072B1 (en) * 2000-04-18 2002-11-12 Advanced Micro Devices, Inc. Method and apparatus for generating random numbers
US20020186086A1 (en) * 2001-06-12 2002-12-12 Dallas Semiconductor Corporation Random number generator

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103813313A (zh) * 2012-11-07 2014-05-21 中国科学院微电子研究所 一种祖冲之算法的硬件实现装置及方法
CN103813313B (zh) * 2012-11-07 2017-06-06 中国科学院微电子研究所 一种祖冲之算法的硬件实现装置及方法
CN108833043A (zh) * 2018-05-31 2018-11-16 西安电子科技大学 基于Polar法改进的AWGN信道实现方法及装置
CN108833043B (zh) * 2018-05-31 2020-10-30 西安电子科技大学 基于Polar法改进的AWGN信道实现方法及装置

Also Published As

Publication number Publication date
US8209367B2 (en) 2012-06-26
EP1999569A1 (fr) 2008-12-10
US20090172055A1 (en) 2009-07-02
FR2899352B1 (fr) 2008-06-20
FR2899352A1 (fr) 2007-10-05

Similar Documents

Publication Publication Date Title
WO2007110506A1 (fr) Generateur de nombres aleatoires
EP0826169B1 (fr) Circuit integre perfectionne et procede d&#39;utilisation d&#39;un tel circuit integre
EP3242398B1 (fr) Générateur de nombres d&#39;oscillations
FR2868628A1 (fr) Generateur de nombres aleatoires et procede de production de nombres aleatoires
FR2833119A1 (fr) Generation de quantites secretes d&#39;identification d&#39;un circuit integre
FR2860892A1 (fr) Generateur de nombres pseudo-aleatoires pour un dispositif de chiffrement continu
FR3023396A1 (fr) Generateur de nombres aleatoires
EP3242401B1 (fr) Circuit de comptage d&#39;impulsions
FR3133458A1 (fr) Circuit de génération de séquence temporelle
FR2768276A1 (fr) Generateur d&#39;alea
EP3242397A1 (fr) Structure de multiplexeur
EP3376670B1 (fr) Ligne à retard configurable
EP1730848A1 (fr) Procede de synchronisation rapide d&#39;un dispositif de reception de donnees brouillees au moyen d&#39;un calcul optimise d&#39;une valeur de synchronisation
EP3147774A1 (fr) Generateur d&#39;horloge aleatoire
FR2986679A1 (fr) Generateur de nombres aleatoires vrais
EP0907253B1 (fr) Oscillateur à boucle de verrouillage de phase
EP1606880B1 (fr) Diviseur de frequence a taux de division variable
EP3716523B1 (fr) Procédé de synchronisation de données numériques envoyées en série
EP1113579A1 (fr) Procédé pour diviser la fréquence d&#39;un signal
FR2770704A1 (fr) Circuit verrouille en phase
WO2008139063A2 (fr) Dispositif d&#39;extraction d&#39;horloge et de donnees numeriques sans reglage externe
FR2773652A1 (fr) Circuit de generation d&#39;un signal d&#39;activation commande
EP1499022B1 (fr) Procédé et dispositif de génération de nombres aléatoires fondés sur des oxcillateurs chaotiques
Tehranipoor et al. True Random Number Generators
FR3025901A1 (fr) Dispositif de generation d&#39;un signal d&#39;horloge par multiplication de frequence

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07731202

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2007731202

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 12280767

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE