Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR GENERATING RANDOM BINARY SEQUENCES AND DEVICE THEREFOR
Document Type and Number:
WIPO Patent Application WO/2005/124536
Kind Code:
A1
Abstract:
The invention concerns a method for generating random binary sequences from a relative jitter between two synchronous logical clock signals CLK and CLJ linked by a relation of formula (I) wherein the largest common divider PGCD(KM,KD) = 1. Said method consists in sampling the frequency logical signal fCLJ of the low-to-high transition or the high-to-low transition of the frequency signal fCLJ; storing the sampled value for a period of the CLK signal to obtain the Q signal; the Q signal is periodic of period: TQ = KD .TCLK = KM.TCLJ. According to said method, the jitter parameters are calculated using N binary vectors acquired from the Q signal during N periods TQ.

Inventors:
FISCHER VIKTOR (FR)
Application Number:
PCT/FR2005/050370
Publication Date:
December 29, 2005
Filing Date:
May 26, 2005
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
UNIV JEAN MONNET (FR)
FISCHER VIKTOR (FR)
International Classes:
G06F7/58; (IPC1-7): G06F7/58
Domestic Patent References:
WO2003081419A12003-10-02
Foreign References:
US20030014452A12003-01-16
US4757468A1988-07-12
US3706941A1972-12-19
Other References:
FISCHER V ET AL: "TRUE RANDOM NUMBER GENERATOR EMBEDDED IN RECONFIGURABLE HARDWARE", CRYPTOGRAPHIC HARDWARE AND EMBEDDED SYSTEMS. INTERNATIONAL WORKSHOP, 13 August 2002 (2002-08-13), pages 415 - 430, XP001160534
See also references of EP 1782182A1
Attorney, Agent or Firm:
Thivillier, Patrick (3 place de l'Hotel de Ville B. P. N° 203, SAINT ETIENNE CEDEX 1, FR)
Download PDF:
Claims:
1. R E V E N D I C A T I O N S .
2. Procédé pour générer des suites binaires aléatoires à partir du jitter relatif entre deux signaux d'horloge logiques synchrones CLK et CLJ liés par une relation de la forme : J f CLJ ~ Jf CLK ..^ „ L KD où le plus grand commun diviseur PGCD (K M , KD ) = 1 , on échantillonne le signal logique de fréquence fcu sur le front montant ou descendant de signal de fréquence fcu ; on mémorise la valeur échantillonnée pendant une période du signal CLK pour obtenir le signal Q ; le signal Q est périodique de période : T 1 Q ΑKD T 1 CLK — i KVM T 1 CLJ caractérisé en ce qu' on calcule les paramètres du jitter au moyen de N vecteurs binaires VB acquis à partir du signal Q pendant N périodes TQ .
3. Procédé selon revendication 1, caractérisé en ce qu' on enregistre dans une suite binaire SB KD bits du signal Q obtenus pendant la période TQ ; on réordonne les bits de la suite SB en vecteur VB selon la formule : j = [i KM )moάKD où / représente l'index du bit dans la suite SB et j représente l'index du bit correspondant dans le vecteur VB ;.
4. Procédé selon revendication 1 et 2, caractérisé en ce qu' on accumule N vecteurs binaires VB en un seul vecteur VE composé de KD valeurs entières ; à partir du vecteur VE on calcule le paramètre P1 caractérisant la largeur du jitter, par exemple suivant la formule : où e} représente l'élément j du vecteur VE, C1 représente la constante de normalisation ; on génère le signal d'alarme si la valeur du paramètre P1 est inférieure au seuil Plre/ ; .
5. Procédé selon revendication 1 et 2, caractérisé en ce qu' on accumule N vecteurs binaires VB en un seul vecteur VE composé de KD valeurs entières ; à partir du vecteur VE on calcule le paramètre P2 caractérisant la probabilité d'apparition de niveaux logiques zéro et un à la sortie du générateur, par exemple suivant la formule : où e} représente l'élément j du vecteur VE, C2 représente la constante de normalisation ; on génère le signal d'alarme si la valeur absolue du paramètre P2 est supérieure au seuil P2re/ ; .
6. Procédé selon revendication 1 et 2, caractérisé en ce qu' à partir de couples de vecteurs VB (N = 2) on calcule le paramètre P3 caractérisant la corrélation entre ces vecteurs, par exemple en effectuant l'opération OU EXCLUSIF entre leur bits ; on génère le signal d'alarme si la valeur du paramètre P3 est supérieure au seuil P3re/ ;.
7. Dispositif pour la mise en œuvre du procédé selon l'une quelconque des revendications 1 à 5, caractérisé en ce qu'il comprend un bloc bascule assujetti aux deux signaux d'horloge CLK et CLJ et apte à assurer l'échantillonnage, un bloc apte à calculer la parité de KD échantillons du signal CLJ, un bloc apte à assurer l'enregistrement du signal Q pour former la suite SB et pour la transformer en vecteur VB et les blocs aptes à calculer les paramètres P1 , P2 ou P3 et les comparer avec les seuils prédéfinis pour générer le signal d'alarme.
Description:
PROCEDE POUR GENERER DES SUITES BINAIRES ALEATOIRES ET LE DISPOSITIF DE MISE EN ŒUVRE

L'invention concerne un procédé pour générer des suites binaires aléatoires.

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.

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.

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.

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.

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.

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.

Les deux signaux d'horloge utilisés dans ce document sont donc asynchrones.

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 :

-^ „ ~

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 :

1 Q ~ ΑD ' λ CLK ~ ΛM ' λ 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 1^ CLJ _ 1^ CLK σ,r > 4Kn AKΛ, 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/T0 bits par seconde.

II 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.

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.

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.

Selon une caractéristique à la base de l'invention : on enregistre dans des suites binaires SB KD échantillons successifs du signal - A - 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.

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 ;

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.

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.

Si l'on considère la formule précédemment indiquée : j = (i KM )modKD on obtient : pour / = 0, j = (Q 5)mod7 = 0 pour / = 1, j = (l 5)mod7 = 5 pour / = 2, y = (2 5)mod7 = 3 pour / = 3, 7 = (3 5)mod7 = l pour / = 4, j = (4 5)mod7 = 6 pour / = 5, j = (S 5)mod7 = 4 pour / = 6, 7 = (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.

II 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.

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 P1 à partir de la formule :

où e} représente l'élément j du vecteur VE, C1 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 e} (N- e} j sera égal à zéro et ne contribuera pas à la valeur du paramètre P1. Seules les valeurs influencées par le jitter seront prises en compte. En conséquence, la valeur P1 est proportionnelle à la valeur σ]lt du jitter. Si elle est inférieure au seuil Plre/ défini au préalable, le générateur ne fonctionne pas correctement et le signal d'alarme est activé.

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 P1 à 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 P2^/ défini au préalable, le générateur ne fonctionne pas correctement et le signal d'alarme est activé.

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 P3^f défini au préalable, le signal d'alarme est activé.