Brevet FR2870058A1 — publié le 20051111

La présente invention concerne un générateur de vrai aléa. ARRIERE-PLAN DE L'INVENTION On connaît de nombreuses applications, en particulier lors du chiffrement de données ou pour la génération de clés cryptographiques, dans lesquelles il est nécessaire de disposer d'une série aléatoire de signes, en particulier une succession aléatoire de 0 et de 1 dans le cadre d'un traitement numérique. Cette succession aléatoire de signes est obtenue par un générateur d'aléa. Par ailleurs il est connu de réaliser un générateur d'aléa fonctionnant selon le principe dit de Fairfield, consistant à échantillonner un signal d'horloge rapide au moyen d'un signal d'horloge lent ayant une forte gigue de phase. De nombreux générateurs d'aléa fonctionnant selon le principe de Fairfield ont été réalisés au moyen de composants CMOS pouvant intégrer à la fois une partie analogique pour la génération d'un bruit physique, et une partie numérique pour le traitement et l'utilisation de l'aléa produit. Toutefois lorsque le générateur d'aléa doit être utilisé en relation avec un dispositif de traitement numérique de données intégré à un réseau numérique programmable, par exemple un module de chiffrement, les composants CMOS ne peuvent pas être directement intégrés au module numérique. 1l est alors possible pour un fraudeur d'intervenir sur la liaison entre le générateur d'aléa et le module numérique, intégrés dans deux composants différents, pour faire fonctionner le module numérique en utilisant une succession non aléatoire de signes permettant au fraudeur de déterminer certains paramètres de fonctionnement normalement maintenus secrets dans le module numérique. 1l est également connu de générer des séquences pseudo-aléatoires à l'aide de fonctions mathématiques mises en uvre exclusivement de façon numérique et donc directement intégrables dans un réseau numérique, mais ce type d'aléa n'est pas sûr du point de vue cryptographique. OBJET DE L'INVENTION Le but de l'invention est de proposer un générateur de vrai aléa totalement intégré à un dispositif de traitement numérique dans un réseau numérique programmable. RESUME DE L'INVENTION En vue de la réalisation de ce but on propose selon l'invention un générateur d'aléa comportant un organe générateur d'un signal d'horloge lent ayant une gigue de phase aléatoire, un organe générateur d'un signal d'horloge rapide, et un organe d'échantillonnage du signal d'horloge rapide par le signal d'horloge lent, dans lequel l'organe générateur du signal d'horloge lent comprend un organe analogique intégré à un réseau numérique programmable, et l'organe générateur du signal d'horloge rapide et l'organe d'échantillonnage comportent des portes programmées du même réseau numérique programmable. Ainsi l'intégralité du traitement générateur d'aléa est réalisée au sein du réseau numérique programmable de sorte que les possibilités de fraude sont minimisées. Selon un mode de réalisation préféré de l'invention l'organe générateur du signal d'horloge lent est une boucle à verrouillage de phase. Cet organe comporte un oscillateur commandé en tension précédé d'un diviseur de fréquence, de préférence selon un rapport de division élevé, et comportant une boucle d'asservissement en boucle fermée, ayant de préférence un gain voisin de 1. Selon une version avantageuse de l'invention l'organe générateur du signal d'horloge lent est relié à un organe d'alimentation auquel sont également reliés des organes consommateurs d'énergie de façon intermittente selon une fréquence intermédiaire entre le signal d'horloge lent et le signal d'horloge rapide. On augmente ainsi la gigue de phase aléatoire du signal d'horloge lent et donc la qualité de l'aléa obtenu. De préférence les organes consommateurs d'énergie sont des bascules commandées par un signal d'horloge également fourni à l'organe générateur du signal d'horloge lent. BREVE DESCRIPTION DES DESSINS D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description qui suit d'un mode de réalisation particulier non limitatif de l'invention en référence aux figures ci-jointes parmi lesquelles: la figure 1 est une représentation schématique d'un dispositif de traitement numérique équipé d'un générateur d'aléa selon l'invention. La figure 2 est une représentation schématique d'un mode de réalisation préféré de l'organe d'échantillonnage. La figure 3 est une représentation schématique d'un second mode de réalisation de l'organe générateur du signal d'horloge rapide. DESCRIPTION DETAILLEE DE L'INVENTION En référence aux figures, le générateur d'aléa selon l'invention est intégré à un réseau numérique programmable 1, par exemple un réseau habituellement désigné par les initiales FPGA (abrégé de l'anglais Field Programmable Gate Array). De façon connue en soi le réseau numérique programmable comprend un module de chiffrement 2 relié à une borne d'entrée pour recevoir des données à chiffrer 3 et à une borne de sortie pour transmettre des données chiffrées 4. Pour effectuer le traitement de chiffrement, le module de chiffrement reçoit en outre un aléa fourni par un générateur d'aléa qui, selon l'invention, est totalement intégré au réseau numérique programmable 1. Comme illustré sur la figure 1, le générateur d'aléa comporte un organe générateur 5 d'un signal d'horloge lent ayant une gigue de phase aléatoire. Selon l'invention cet organe générateur d'un signal d'horloge lent est un organe analogique intégré au réseau numérique programmable, ici une boucle à verrouillage de phase 5 comprenant un oscillateur commandé en tension 6 associé à une boucle d'asservissement en boucle fermée 7 ayant un organe de gain 24 en 1/m relié à un comparateur de phase 8 ayant une entrée reliée à un diviseur 9 en 1/n dont l'entrée reçoit un signal d'une horloge externe 10. La boucle à verrouillage de phase 5 est alimentée par un organe d'alimentation 11 externe au réseau numérique programmable 1. Par ailleurs le générateur d'aléa comprend un organe générateur 12 d'un signal d'horloge rapide, cet organe générateur 12 comprenant dans le mode de réalisation illustré une porte inverseuse 13 montée en boucle fermée. Les organes générateurs 5 et 12 sont reliés à une entrée d'un organe d'échantillonnage 14 qui, dans le mode de réalisation illustré sur la figure 2, comporte une bascule d'échantillonnage 15 ayant une entrée de données reliée à l'organe générateur 12 du signal d'horloge rapide et une entrée d'horloge reliée à l'organe générateur 5 du signal d'horloge lent. La sortie de la bascule 15 est reliée à une entrée de données d'une bascule de synchronisation 16 ayant une entrée d'horloge reliée à l'organe générateur 5 du signal d'horloge lent. La sortie de la bascule de synchronisation 16 est reliée à une mémoire 17 comprenant par exemple un registre à décalage associé à un régulateur de débit FIFO (First In First Out). Selon un autre aspect de l'invention le générateur d'aléa comporte en outre une série d'organes consommateurs d'énergie de façon intermittente, par exemple des blocs d'entrée/sortie 18 tous alimentés par l'organe d'alimentation 11 et associés à des bascules 19 du réseau programmable qui sont commandées par le signal de l'horloge externe 10. Les blocs d'entrée/sortie 18 sont montées à vide sur des bornes inutilisées du réseau numérique programmable 1. Pour obtenir un aléa de bonne qualité, les organes générateurs de signaux d'horloge fonctionnent de préférence à des fréquences très éloignées, par exemple un signal d'horloge lent a une fréquence de l'ordre de 1,5 MHz, et un signal d'horloge rapide de l'ordre de 1,2 GHz. on notera à ce propos que l'horloge externe sert à cadencer les différents modules du réseau numérique programmable 1. Il est donc préférable que le signal de l'horloge externe soit propre c'est à dire que la gigue de phase de ce signal soit faible alors qu'une gigue de phase importante est recherchée en sortie de l'organe générateur 5 du signal d'horloge lent. A cet effet le coefficient n du diviseur en 1/n est de préférence élevé, par exemple égal à trente deux, et le gain de la boucle d'asservissement 7 est de préférence égal à un. Le signal d'horloge externe 10 est donc à une fréquence intermédiaire entre le signal d'horloge lent de l'organe générateur 5 et le signal d'horloge rapide de l'organe générateur 12. Dans l'exemple décrit le signal de l'horloge externe a une fréquence de 50 MHz. Lors du fonctionnement du générateur d'aléa la gigue de phase du générateur d'aléa est augmentée par la consommation d'énergie intermittente réalisée par les blocs d'entrée/sortie 18 reliées au même organe d'alimentation 11 que l'organe générateur 5 du signal d'horloge lent. On notera à ce propos que selon l'invention des dispositions sont prises pour augmenter la gigue de phase du signal d'horloge lent alors que dans une utilisation habituelle d'une boucle à verrouillage de phase des dispositions sont prises pour minimiser la gigue de phase. La figure 3 illustre un second mode de réalisation de l'organe générateur du signal d'horloge rapide qui est cette fois formé par une boucle à verrouillage de phase 18 comprenant un oscillateur 19 associé à une boucle d'asservissement en boucle fermée 20 ayant un organe de gain 23 en 1/q relié à un comparateur de phase 21 ayant une entrée reliée à un diviseur 22 en 1/p dont l'entrée reçoit le signal de l'horloge externe 10. Afin de générer un signal rapide à partir du signal d'horloge externe à une fréquence intermédiaire, le coefficient p est choisi aussi faible que possible, de préférence égal à un, et l'organe de gain 23 a un gain inférieur à un, adapté à la fréquence souhaitée pour le signal rapide en fonction de la fréquence de l'horloge externe. Dans l'exemple précité le coefficient q sera égal à vingt, ce qui permet d'obtenir un signal rapide à 1GHz à partir d'un signal d'horloge externe à 50 MHz. Bien entendu l'invention n'est pas limitée au mode de réalisation décrit et on peut y apporter des modifications sans sortir du cadre de l'invention tel que défini par les revendications. En particulier, bien que dans le mode de réalisation décrit la bascule d'échantillonnage 15 soit associée à une bascule de synchronisation 16 qui permet d'obtenir une probabilité d'apparition de 0 et de 1 de l'ordre de 0,5, on peut réaliser le générateur d'aléa selon l'invention de façon simplifiée en supprimant la bascule de synchronisation 16 ce qui peut avoir pour effet de déséquilibrer la probabilité d'apparition de 0 et de 1. On peut également augmenter le débit du générateur d'aléa en montant plusieurs bascules d'échantillonnage 15 en parallèle, les différentes bascules d'échantillonnage recevant un signal d'horloge lent provenant d'un générateur commun et des signaux d'horloge rapide provenant de différents organes générateurs. Etant donné la simplicité de réalisation d'un organe générateur de signal d'horloge rapide il est possible de réaliser un grand nombre de bascules d'échantillonnage dans un même réseau numérique programmable. Le nombre de bascules peut ainsi atteindre deux cent cinquante six voire même un nombre supérieur. Bien que le générateur d'aléa ait été illustré avec trois blocs d'entrée/sortie 18 seulement pour ne pas charger le dessin, le réseau numérique programmable comprend généralement un très grand nombre de broches d'entrée/sortie inutilisées et il est donc possible de programmer plusieurs dizaines de portes en bascule pour assurer une consommation intermittente qui augmente la gigue de phase du signal d'horloge lent. REVENDICATIONS 1. Générateur d'aléa comprenant un organe générateur (5) d'un signal d'horloge lent et ayant une gigue de phase aléatoire, un organe générateur (12,18) d'un signal d'horloge rapide et un organe d'échantillonnage (14) du signal d'horloge rapide par le signal d'horloge lent caractérisé en ce que l'organe générateur (5) du signal d'horloge lent comprend un organe analogique (6) intégré à un réseau numérique programmable (1) et en ce que l'organe générateur (12) du signal d'horloge rapide et l'organe d'échantillonnage (14) comportent des portes programmées (13,15) du même réseau numérique programmé (1). 2. Générateur d'aléa selon la revendication 1 caractérisé en ce qu'il comporte des moyens (9; 18) pour augmenter la gigue de phase du signal d'horloge lent. 3. Générateur d'aléa selon la revendication 2 caractérisé en ce que l'organe générateur (5) du signal d'horloge lent comporte un oscillateur commandé en tension (6) précédé d'un diviseur de fréquence (9) et comportant une boucle d'asservissement (7) en boucle fermée. 4. Générateur d'aléa selon la revendication 3 caractérisé en ce que le diviseur de fréquence (9) a un rapport de division élevé. 5. Générateur d'aléa selon la revendication 3 caractérisé en ce que la boucle d'asservissement (7) a un gain voisin de un. 6. Générateur d'aléa selon la revendication 1 caractérisé en ce que l'organe générateur (12) du signal d'horloge rapide comporte une porte inverseuse (13) montée en boucle fermée. 7. Générateur d'aléa selon la revendication 1 caractérisé en ce que l'organe générateur (18) du signal d'horloge rapide comporte un oscillateur commandé en tension (19) précédé d'un diviseur de fréquence (22) ayant un coefficient de division (p) faible, et comportant une boucle d'asservissement ayant un gain (1/q) inférieur à un. 8. Générateur d'aléa selon la revendication 2 caractérisé en ce que l'organe générateur (5) du signal d'horloge lent est relié à un organe d'alimentation (11) auquel sont également reliés des organes (18) consommateurs d'énergie de façon intermittente selon une fréquence intermédiaire entre le signal d'horloge lent et le signal d'horloge rapide. 9. Générateur d'aléa selon la revendication 8 caractérisé en ce que les organes consommateurs d'énergie comportent des blocs d'entrée/sortie (18) reliés à des bascules (19) commandées par un signal d'horloge (10) également fourni à l'organe générateur (5) du signal d'horloge lent. 10. Générateur d'aléa selon la revendication 1 caractérisé en ce que l'organe d'échantillonnage (14) comporte une bascule d'échantillonage (15) associée à une mémoire (17). 11. Générateur d'aléa selon la revendication 10 caractérisé en ce que l'organe d'échantillonnage (14) comporte une bascule de stabilisation (16) ayant une entrée de données reliée à une sortie de la bascule d'échantillonnage (15) et une entrée d'horloge reliée à l'organe générateur (5) du signal d'horloge lent.