Brevet FR3028970A1 — publié le 20160527

PROCEDE DE CALCUL DE LA VARIANCE DE LA GIGUE DE PHASE DANS UN GENERATEUR DE NOMBRES VRAIMENT ALEATOIRES ET PROCEDE DE CONTROLE ASSOCIE La présente invention concerne le domaine de la cryptographie, et porte plus particulièrement sur un procédé de contrôle de la variance de la gigue de phase g dans un générateur de nombres vraiment aléatoires (TRNG), mis en oeuvre sur un circuit logique programmable. Les générateurs de nombres aléatoires (Random Number Generators - RNG) sont des composants cruciaux des systèmes cryptographiques. Les nombres aléatoires sont en effet utilisés en tant que clés confidentielles, vecteurs d'initialisation, valeurs de remplissage et également dans le cadre de contre-mesures à l'encontre d'attaques par canal auxiliaire. En plus de produire un flux binaire en sortie avec de bonnes propriétés statistiques, les RNG pour applications cryptographiques doivent satisfaire des exigences de sécurité supplémentaires : ils doivent pouvoir être testés en temps réel et leur sécurité doit être prouvée sous une hypothèse physique minutieusement testée. Les RNG cryptographiques classiques sont constitués de deux niveaux : un générateur de nombres 25 vraiment aléatoires (True Random Number Generator - TRNG) qui produit l'entropie, et un post-traitement cryptographique pour obtenir un certain niveau de sécurité, même dans le cas d'une défaillance non détectée du TRNG sous-jacent. 30 Pour des applications cryptographiques, la sécurité d'un TRNG dépend de son taux d'entropie qui mesure le temps d'exécution d'une attaque par force brute sur une clé par échantillonnage de la distribution du TRNG. 3028970 2 Le taux d'entropie du TRNG dépend d'un modèle statistique de celui-ci qui décrit la distribution de sa séquence de sortie à partir de la connaissance de paramètres physiques. Le taux d'entropie ne peut en 5 conséquence pas être trouvé uniquement à partir de la seule connaissance d'une séquence de sortie du TRNG, aussi importante soit-elle. Par approximation de cette distribution par une source ergodique stationnaire, il est possible de trouver le taux d'entropie d'un TRNG. 10 Une source de caractère aléatoire couramment utilisée dans les mises en oeuvre de TRNG par composant logique programmable, que ce soit par matrice prédiffusée programmable par l'utilisateur (Field Programmable Gate Array ou en abrégé FPGA) ou par circuit intégré spécifique 15 (Application Specific Integrated Circuit ou en abrégé ASIC), est l'instabilité du temps de propagation des signaux à travers les portes logiques. Cette instabilité est typiquement accumulée dans des oscillateurs en anneau, qui consistent en une série d'inverseurs ou d'éléments de 20 retard connectés en anneau, dont le signal boucle sur lui-même. Un tel oscillateur en anneau produit spontanément un signal presque périodique. Deux oscillateurs en anneau implémentés sur le même circuit logique programmable vont avoir tendance à se déphaser du fait d'un phénomène appelé gigue de phase (« phase jitter » en anglais). La loi décrivant ce déphasage (au moins sur des temps de l'ordre de la milliseconde) est une marche aléatoire qui permet de fabriquer la distribution qui sera utilisée pour produire des nombres aléatoires. Cette gigue de phase peut être extraite par une unité d'échantillonnage. 3028970 3 On peut par exemple utiliser la sortie d'un premier oscillateur en anneau pour déterminer les instants d'échantillonnage, par exemple par l'intermédiaire d'une bascule D, de la sortie d'un second oscillateur en anneau, 5 sur le même circuit que le premier oscillateur en anneau. La fréquence de l'oscillateur en anneau d'échantillonnage (premier oscillateur en anneau) peut facultativement être divisée d'un facteur KD. Le facteur KD permet de déterminer l'intervalle de temps nécessaire pour 10 accumuler suffisamment de gigue de phase. Cette structure simple est appelée dans ce qui suit un TRNG élémentaire. La gigue de phase est un phénomène complexe en ce qu'elle est constituée par la superposition de différentes 15 sources de bruit. On distingue la composante locale de la gigue de phase, elle-même constituée d'une combinaison de différents types de bruits avec différentes propriétés statistiques et correspondant à la source d'entropie du TRNG, des bruits déterministes globaux qui peuvent être 20 manipulés depuis l'extérieur du TRNG. Dans le document « Sur la sécurité des générateurs de nombres aléatoires à base d'oscillateurs » (On the security of oscillator-based random number generators), M. Baudet et al., Journal of Cryptology, 25 24 :398-425, 2011, il est proposé un modèle statistique pour un TRNG élémentaire qui calcule le taux d'entropie provenant du bruit de phase de marche aléatoire. Une manière habituelle de caractériser la gigue de phase est d'émettre en sortie le signal produit par un 30 oscillateur en anneau et de l'analyser avec un oscilloscope ou avec un analyseur de spectre, cette technique étant décrite par exemple dans « Mesures de temporisation numérique : des oscilloscopes et sondes à la temporisation 3028970 4 et à la gigue » (Digital Timing Measurements : From Scopes and Probes to Timing and Jitter), W. Maichen, Frontières en test électronique (Frontiers in Electronic Testing), Springer, 2010. 5 Le problème avec cette technique est qu'elle introduit une gigue de phase supplémentaire ainsi que des distorsions sur le signal mesuré issu de la chaîne d'acquisition de données. En outre, cette technique ne permet pas de qualifier chaque puce comportant un TRNG sur 10 une ligne de production et ne permet pas de vérifier correctement le fonctionnement du dispositif. La présente invention vise à surmonter les inconvénients de l'état antérieur de la technique, en proposant un procédé de contrôle de la variance de la gigue 15 de phase au sein d'un circuit logique programmable, le procédé n'utilisant que des opérations simples et ne nécessitant aucun calcul complexe. Avec le procédé de l'invention, on peut s'affranchir du calcul complexe de la distribution de 20 probabilité de la gigue de phase en contrôlant, par rapport à une valeur de référence déterminée, la valeur de la variance de cette gigue de phase, et facultativement en remontant une alarme voire en arrêtant le traitement si la valeur de la variance de la gigue de phase devient 25 inférieure à la valeur de référence. On dispose ainsi d'un procédé simple pour garantir que le TRNG ne fonctionne que lorsque la variance de sa gigue de phase est suffisamment importante, donc lorsque son entropie est suffisante, sans avoir besoin de 30 calculer pratiquement la valeur de la distribution de probabilité de la gigue de phase. En outre, le procédé est mis en oeuvre directement dans le circuit logique programmable, ce qui permet de 3028970 5 s'affranchir des outils de mesure externes et d'une évaluation en ligne de l'entropie par l'intermédiaire du contrôle de la valeur de la variance de la gigue de phase. L'invention a donc pour objet un procédé de 5 calcul de la variance de la gigue de phase dans un générateur de nombres vraiment aléatoires (TRNG), mis en oeuvre sur un circuit logique programmable, caractérisé par le fait qu'il comprend les étapes consistant à : - générer, dans le circuit logique programmable, une 10 séquence binaire [b1, bn] de n bits, n étant un entier naturel supérieur à 1, en sortie d'une bascule D ayant en entrée la sortie d'un premier oscillateur en anneau 01 de période moyenne T1 et en signal d'horloge la sortie d'un deuxième oscillateur en anneau 02 de période 15 moyenne T2 ; - choisir deux entiers naturels M et N tels que 21\1M REVENDICATIONS1 - Procédé de calcul de la variance de la gigue de phase dans un générateur de nombres vraiment aléatoires (TRNG), mis en oeuvre sur un circuit logique programmable, caractérisé par le fait qu'il comprend les étapes consistant à : - générer, dans le circuit logique programmable, une séquence binaire [b1, bn] de n bits, n étant un entier naturel supérieur à 1, en sortie d'une bascule D ayant en entrée la sortie d'un premier oscillateur en anneau 01 de période moyenne T1 et en signal d'horloge la sortie d'un deuxième oscillateur en anneau 02 de période moyenne T2 - choisir deux entiers naturels M et N tels que 2NM 2 - Procédé selon la revendication 1, caractérisé par le fait qu'un diviseur de fréquence de facteur de division KD est disposé entre la sortie deuxième oscillateur en anneau 02 et l'entrée de signal d'horloge de la bascule D. 3 - Procédé selon la revendication 1 ou la 30 revendication 2, caractérisé par le fait que la valeur K=Kn-M)/NJ est une puissance de 2. 3028970 12 4 - Procédé de contrôle de la gigue de phase dans un générateur de nombres vraiment aléatoires (TRNG), mis en oeuvre sur un circuit logique programmable, caractérisé par le fait qu'il comprend le calcul de la variance de la gigue 5 de phase selon le procédé de l'une quelconque des revendications 1 à 3, la comparaison de la valeur calculée de la gigue de phase à un valeur de référence, et facultativement l'émission d'un signal d'alarme si la valeur de la gigue de phase est inférieure à une valeur de 10 référence. 5 - Circuit logique programmable, caractérisé par le fait qu'il comprend des circuits programmés pour mettre en oeuvre un procédé selon l'une quelconque des revendications 1 à 4. 15 6 - Circuit logique programmable selon la revendication 5, caractérisé par le fait que ledit circuit logique programmable est une matrice prédiffusée programmable par l'utilisateur (FPGA) ou par circuit intégré spécifique (ASIC). 20