PROCEDE POUR GENERER DES SUITES BINAIRES ALEATOIRES ET LE DISPOSITIF DE MISE EN ŒUVRE METHOD FOR GENERATING RANDOM BINARY SUITES AND THE IMPLEMENTATION DEVICE
L'invention concerne un procédé pour générer des suites binaires aléatoires.The invention relates to a method for generating random binary sequences.
Le problème que se propose de résoudre l'invention est de générer des suites binaires aléatoires vraies à partir du jitter relatif entre deux signaux d'horloge et de mesurer en temps réel les paramètres statistiques du jitter pour permettre d'évaluer la qualité de la suite aléatoire obtenue ou éventuellement pour signaler un défaut de fonctionnement.The problem which the invention proposes to solve is to generate true random binary sequences from the relative jitter between two clock signals and to measure in real time the statistical parameters of the jitter to allow the quality of the sequence to be evaluated. random obtained or possibly to signal a malfunction.
Selon l'état antérieur de la technique, on a proposé, pour générer les suites aléatoires dans des circuits logiques et en particulier dans des circuits logiques reconfigurables, d'utiliser un oscillateur libre relié à un ou plusieurs registres à décalage linéaire. On peut citer par exemple le brevet US 6,061,702. On peut citer également l'enseignement du brevet US 6,414,558 qui concerne l'utilisation d'un générateur de séquences aléatoires.According to the prior art, it has been proposed, to generate the random sequences in logic circuits and in particular in reconfigurable logic circuits, to use a free oscillator connected to one or more linear shift registers. Mention may be made, for example, of US Pat. No. 6,061,702. We can also cite the teaching of US Pat. No. 6,414,558 which relates to the use of a generator of random sequences.
On a proposé, par ailleurs, de générer des suites binaires aléatoires à partir du jitter, comme il ressort d'une publication faite par Viktor FISCHER et Milos DRUTAROVSKY ayant pour titre « TRUE RANDOM NUMBER GENERATOR EMBEDDED IN RECONFIGURABLE HARDWARE du mois d'Août 2002.It has also been proposed to generate random binary sequences from the jitter, as appears from a publication made by Viktor FISCHER and Milos DRUTAROVSKY entitled “TRUE RANDOM NUMBER GENERATOR EMBEDDED IN RECONFIGURABLE HARDWARE of August 2002 .
Selon cette publication, la qualité de la suite binaire aléatoire est mesurée par des méthodes statistique génériques pour tester le bon fonctionnement du générateur. Ce procédé de mesure statistique peut être appliqué en complément avec les caractéristiques de l'invention.According to this publication, the quality of the random binary sequence is measured by generic statistical methods to test the proper functioning of the generator. This statistical measurement method can be applied in addition to the characteristics of the invention.
Selon l'invention, on utilise un générateur sécurisé de suites binaires aléatoires. La sécurisation repose sur la mesure en continu de paramètres de la source d'aléa. Cette
mesure pour être réalisée doit utiliser deux signaux d'horloge qui sont synchrones en étant définis par une relation rationnelle. Sans un tel synchronisme, le principe de mesure ne peut pas être réalisé. Autrement dit, les méthodes utilisant des signaux asynchrone ne peuvent pas être utilisées pour le calcul des paramètres du jitter. C'est le cas du brevet US 2003/014452.According to the invention, a secure generator of random binary sequences is used. Securing relies on the continuous measurement of parameters of the hazard source. This measurement to be performed must use two clock signals which are synchronous being defined by a rational relation. Without such synchronism, the measuring principle cannot be realized. In other words, methods using asynchronous signals cannot be used for the calculation of the jitter parameters. This is the case of patent US 2003/014452.
En effet, il ressort de la lecture de ce brevet que ce document concerne un générateur physique de nombres aléatoires. Le générateur comprend un circuit logique comportant une entrée de données recevant un premier signal d'horloge et une entrée d'horloge CLK recevant un deuxième signal d'horloge différent du premier. Deux signaux d'horloge, de fréquence différente, proviennent respectivement de deux oscillateurs différents travaillant en asynchronisme, la sortie du circuit logique délivrant un signal d'un état intermédiaire entre 0 et 1 qualifié de méta-stable qui est constitué d'une suite de nombres aléatoires.Indeed, it appears from reading this patent that this document relates to a physical generator of random numbers. The generator comprises a logic circuit comprising a data input receiving a first clock signal and a CLK clock input receiving a second clock signal different from the first. Two clock signals, of different frequency, come respectively from two different oscillators working in asynchronism, the output of the logic circuit delivering a signal of an intermediate state between 0 and 1 qualified as meta-stable which consists of a series of random numbers.
Les deux signaux d'horloge utilisés dans ce document sont donc asynchrones.The two clock signals used in this document are therefore asynchronous.
La base du procédé est représentée sur le schéma bloc de la figure 1. Le procédé est basé sur l'utilisation de deux signaux d'horloge logiques synchrones CLJ et CLK liés par une relation de la forme :The basis of the method is represented on the block diagram of FIG. 1. The method is based on the use of two synchronous logic clock signals CLJ and CLK linked by a relation of the form:
/ -_.* ^^ M CU ~ J CLK ' ~ KD/ -_. * ^^ M CU ~ J CLK ' ~ K D
Dans cette formule, le plus grand commun diviseur PGCD(KM ,KD) = 1. Les deux signaux peuvent être obtenus, par exemple, au moyen d'une ou plusieurs boucles à verrouillage de phase (phase-locked loop). Le signal logique de fréquence fcu est échantillonné dans un block REG (par exemple sous forme d'une bascule) sur le front montant ou descendant du signal de fréquence fCLK . Le block REG mémorise la valeur échantillonnée pendant une période d'horloge du signal CLK. A la sortie du bloc d'échantillonnage REG, le signal Q est statistiquement périodique de période : TQ — Α KD ' TCLK — Λ KM ' T1 CU
Si le jitter relatif entre les signaux CLK et CLJ, caractérisé par la valeur σβt est supérieur à la valeur Δ, définie par la formule suivante _ ^ TCLJ _ TCLK A 4Kn AK M on obtient, à la sortie du bloc PAR, qui calcule la parité des KD échantillons successifs, une suite binaire aléatoire R. Cette inégalité représente la condition nécessaire au bon fonctionnement du générateur de suites aléatoires dont le débit est 1/TQ bits par seconde.In this formula, the greatest common divisor PGCD (K M , K D ) = 1. The two signals can be obtained, for example, by means of one or more phase-locked loops. The logic signal of frequency f cu is sampled in a block REG (for example in the form of a flip-flop) on the rising or falling edge of the signal of frequency f CLK . The REG block stores the sampled value during a clock period of the CLK signal. At the output of the sampling block REG, the signal Q is statistically periodic with a period: TQ - Α KD ' TCLK - Λ KM ' T 1 CU If the relative jitter between the CLK and CLJ signals, characterized by the value σ βt is greater than the value Δ, defined by the following formula _ ^ TCLJ _ TCLK A 4K n AK M we obtain, at the output of the block PAR, which calculates the parity of the K D successive samples, a random binary sequence R. This inequality represents the condition necessary for the proper functioning of the generator of random sequences whose bit rate is 1 / T Q bits per second.
Il est apparu toutefois que le jitter varie d'une manière importante en fonction de nombreux paramètres physiques tels que la tension d'alimentation, les bruits électriques de l'environnement, la température, ce qui peut modifier le fonctionnement du générateur. Il paraît donc important de mesurer les paramètres du jitter pour garantir la qualité des nombres aléatoires à la sortie du générateur.However, it has become apparent that the jitter varies considerably depending on many physical parameters such as the supply voltage, the electrical noise of the environment, the temperature, which can modify the operation of the generator. It therefore seems important to measure the jitter parameters to guarantee the quality of the random numbers at the generator output.
A partir de l'enseignement de cette publication, selon une caractéristique à la base de l'invention, on ajoute la possibilité de mesurer les paramètres du jitter. On propose donc le procédé représenté sur le schéma bloc dans la figure 2. D'abord, dans le bloc GEN_VEC (générateur de vecteurs de KD bits), on effectue d'une manière répétitive pendant différentes périodes TQ l'acquisition des suites binaires SB composées de KD échantillons (bits). On obtient donc à la fin de chaque période TQ un vecteur VB. Ces vecteurs sont ensuite traités dans le bloc TRAIT_VEC (traitement de vecteurs) pour évaluer les paramètres du jitter. A la base de l'information sur ces différents paramètres du jitter, on peut signaler un défaut de fonctionnement du générateur, par exemple au moyen d'un signal d'alarme.From the teaching of this publication, according to a characteristic underlying the invention, the possibility of measuring the parameters of the jitter is added. We therefore propose the method represented in the block diagram in FIG. 2. First, in the GEN_VEC block (vector generator of K D bits), the sequences are acquired repeatedly for different periods T Q binary SB composed of K D samples (bits). A vector VB is therefore obtained at the end of each period T Q. These vectors are then treated in the block TRAIT_VEC (processing of vectors) to evaluate the parameters of the jitter. On the basis of the information on these various jitter parameters, it is possible to report a generator operating fault, for example by means of an alarm signal.
Autrement dit, le problème que se propose de résoudre l'invention est de mesurer les paramètres du jitter ce qui permet de garantir la qualité des nombres aléatoires pendant le temps où le signal d'alarme n'est pas actif.In other words, the problem which the invention proposes to solve is to measure the parameters of the jitter, which makes it possible to guarantee the quality of the random numbers during the time when the alarm signal is not active.
Selon une caractéristique à la base de l'invention : on enregistre dans des suites binaires SB KD échantillons successifs du signal
CLJ (un bit par échantillon) obtenus pendant des périodes TQ différentes ; on réordonne les bits de chaque suite SB en vecteur VB composé de KD bits selon la formule : j = (i KM )modKD où représente l'index du bit dans la suite SB et j représente l'index du bit correspondant dans le vecteur VB ; à partir de vecteurs VB, on évalue un ou plusieurs paramètres P du jitter suivant une méthode choisie ; selon les valeurs des paramètres P on peut signaler le bon fonctionnement du générateur par exemple au moyen d'un signal d'alarme.According to a characteristic at the base of the invention: there are recorded in binary sequences SB K D successive samples of the signal CLJ (one bit per sample) obtained during different periods T Q ; the bits of each sequence SB are reordered into a vector VB composed of K D bits according to the formula: j = (i K M ) modK D where represents the index of the bit in the sequence SB and j represents the index of the corresponding bit in the vector VB; from vectors VB, one or more parameters P of the jitter are evaluated according to a chosen method; depending on the values of the P parameters, it is possible to signal the correct operation of the generator, for example by means of an alarm signal.
L'invention a été exposée ci-après plus en détail à l'aide des figures annexées dans lesquelles : la figurel est une mise en œuvre du procédé selon l'état antérieur de la technique de génération des suites aléatoires sous forme d'un schéma bloc ; la figure 2 est une mise en œuvre du procédé selon l'invention, également sous forme d'un schéma bloc ; la figure 3 est un exemple de relation entre le signal d'horloge CLK et le signal d'horloge CLJ, de l'ordonnancement de la suite SB pour obtenir le vecteur VB correspondant, ainsi que de la représentation graphique du vecteur VE obtenu par l'accumulation de N vecteurs VB ;The invention has been set out below in more detail with the aid of the appended figures in which: the figurel is an implementation of the method according to the prior state of the art of generation of random sequences in the form of a diagram block; Figure 2 is an implementation of the method according to the invention, also in the form of a block diagram; FIG. 3 is an example of a relationship between the clock signal CLK and the clock signal CLJ, the scheduling of the sequence SB to obtain the corresponding vector VB, as well as the graphical representation of the vector VE obtained by l 'accumulation of N VB vectors;
Les échantillons (bits) du signal CLJ obtenus à la sortie Q du bloc REG pendant la période TQ forment la suite binaire SB. Ils représentent le signal CLJ dans des phases différentes. Pour reconstruire la forme du signal CLJ à partir de ces échantillons, il faut les réordonner.The samples (bits) of the signal CLJ obtained at the output Q of the block REG during the period T Q form the binary sequence SB. They represent the CLJ signal in different phases. To reconstruct the form of the CLJ signal from these samples, they must be reordered.
On renvoie par exemple à la figure 3 qui montre la relation entre le signal d'horloge CLK et le signal d'horloge CLJ pour KM = 5 et KD = 1 ( fcu < fCLK). La valeur du signal CLJ échantillonnée sur le front montant du signal CLK forme le signal Q. Le signal CLK a 7 périodes dans la période TQ et le signal CLJ en a 5. Les zones
grisées représentent la zone d'incertitude recherchée.We refer for example to FIG. 3 which shows the relationship between the clock signal CLK and the clock signal CLJ for K M = 5 and K D = 1 (f cu <f CLK ). The value of the CLJ signal sampled on the rising edge of the CLK signal forms the Q signal. The CLK signal has 7 periods in the T Q period and the CLJ signal has 5. The zones shaded areas represent the desired area of uncertainty.
Si l'on considère la formule précédemment indiquée j = (i KM )modKD on obtient pour i = 0, j = (θ 5)mod7 = 0 pour i = 1, j = (1 5)mod7 = 5 pour i = 2, j = (2 5)mod7 = 3 pour i = 3, j = (3 5)mod7 = l pour i = 4, j = (4 5)mod7 = 6 pour i - 5, j = (5 5)mod7 = 4 pour i - 6, j = (6 5)mod7 = 2If we consider the formula indicated above j = (i K M ) modK D we obtain for i = 0, j = (θ 5) mod7 = 0 for i = 1, j = (1 5) mod7 = 5 for i = 2, j = (2 5) mod7 = 3 for i = 3, j = (3 5) mod7 = l for i = 4, j = (4 5) mod7 = 6 for i - 5, j = (5 5 ) mod7 = 4 for i - 6, j = (6 5) mod7 = 2
Les flèches dans la figure 3 indiquent la suite des opérations à mener pour obtenir le vecteur VB et le vecteur VE. Le vecteur VE présenté dans la figure 3 sous forme graphique est obtenu par l'accumulation de N = 100 vecteurs VB. Les valeurs e (l'élément 7 du vecteur VE) qui ne sont pas influencées par le jitter sont égales soit à 100 soit à zéro. Les valeurs échantillonnées dans des zones d'incertitude ont une valeur différente. A partir de ces valeurs on peut caractériser le jitter. H existe plusieurs possibilités pour évaluer les caractéristiques du jitter à partir de vecteurs VB. On peut à titre d'exemple présenter trois méthodes différentes.The arrows in FIG. 3 indicate the sequence of operations to be carried out to obtain the vector VB and the vector VE. The vector VE presented in FIG. 3 in graphic form is obtained by the accumulation of N = 100 VB vectors. The values e (element 7 of the vector VE) which are not influenced by the jitter are equal to either 100 or zero. The values sampled in areas of uncertainty have a different value. From these values we can characterize the jitter. There are several possibilities for evaluating the characteristics of the jitter from VB vectors. By way of example, three different methods can be presented.
La première méthode d'évaluation du jitter consiste à accumuler N vecteurs binaires VB en un seul vecteur VE composé de KD valeurs entières comprises entre 0 et N, puis calculer le paramètre Pl à partir de la formule :
où e représente l'élément j du vecteur VE, Cl représente une constante de normalisation. Puisque les valeurs e qui ne sont pas influencés par le jitter, sont égales soit à 0 soit à N, le terme eAN- e sera égal à zéro et ne contribuera pas à la valeur du
paramètre P . Seules les valeurs influencées par le jitter seront prises en compte. En conséquence, la valeur Pl est proportionnelle à la valeur σβt du jitter. Si elle est inférieure au seuil Plref défini au préalable, le générateur ne fonctionne pas correctement et le signal d'alarme est activé.The first method for evaluating the jitter consists in accumulating N binary vectors VB into a single vector VE composed of K D integer values between 0 and N, then calculating the parameter P l from the formula: where e represents the element j of the vector VE, C l represents a normalization constant. Since the values e which are not influenced by the jitter, are equal to either 0 or N, the term eAN- e will be equal to zero and will not contribute to the value of the parameter P. Only the values influenced by the jitter will be taken into account. Consequently, the value P l is proportional to the value σ βt of the jitter. If it is lower than the threshold P lref defined beforehand, the generator does not work correctly and the alarm signal is activated.
La deuxième méthode d'évaluation du jitter nécessite elle aussi l'accumulation de N vecteurs VB pour obtenir le vecteur VE, ensuite on calcule le paramètre P à partir de la formule :
où e représente l'élément j du vecteur VE, C2 représente la constante de normalisation. Pour que les probabilités d'apparition des niveaux logiques 0 et 1 à la sortie du générateur soient identiques, le paramètre P2 doit être égal à zéro. Si sa valeur est positive, la probabilité du niveau 1 est plus élevée que celle du niveau 0. En conséquence, si la valeur absolue du paramètre P2 est inférieure au seuil P2ref défini au préalable, le générateur ne fonctionne pas correctement et le signal d'alarme est activé.The second jitter evaluation method also requires the accumulation of N vectors VB to obtain the vector VE, then the parameter P is calculated from the formula: where e represents the element j of the vector VE, C 2 represents the normalization constant. For the probabilities of occurrence of logic levels 0 and 1 at the generator output to be identical, parameter P 2 must be equal to zero. If its value is positive, the probability of level 1 is higher than that of level 0. Consequently, if the absolute value of the parameter P 2 is lower than the threshold P 2re f defined beforehand, the generator does not work correctly and the alarm signal is activated.
La troisième méthode permet d'évaluer les paramètres dynamiques du jitter, notamment la corrélation entre deux fronts montants ou descendant du signal CLJ. On réalise donc l'opération OU EXCLUSIF bit par bit entre deux vecteurs VB successifs pour obtenir le vecteur VD composé de KD valeurs binaires. La longueur de la suite de bits égaux à un dans ce vecteur VD est proportionnelle au déplacement du front montant ou descendant du signal CLJ par rapport au début de la période TQ . On peut donc mesurer la corrélation P3 entre les positions du front montant ou descendant du signal CLJ dans des périodes TQ successives. Si cette corrélation dépasse le seuil P^/ défini au préalable, le signal d'alarme est activé.
The third method makes it possible to evaluate the dynamic parameters of the jitter, in particular the correlation between two rising or falling edges of the CLJ signal. The EXCLUSIVE OR operation is therefore carried out bit by bit between two successive VB vectors to obtain the vector VD composed of K D binary values. The length of the sequence of bits equal to one in this vector VD is proportional to the displacement of the rising or falling edge of the signal CLJ with respect to the start of the period T Q. We can therefore measure the correlation P 3 between the positions of the rising or falling edge of the signal CLJ in successive periods T Q. If this correlation exceeds the threshold P ^ / defined beforehand, the alarm signal is activated.