Brevet FR2828298A1 — publié le 20030207

- PROCEDE DE CONTROLE DU FONCTIONNEMENT EN MODE ALEATOIRE D'UN CIRCUIT INTEGRE. L' invention concerne un procédé de contrôle du fonctionnement en mode aléstoire d' un circuit intégré, particul ièrement par l' uti l isation d'un numéro de série long généré par deux ensembles de nombres aléstoires pour servir de signal de contrôle de l'état d'un circuit intégré, dans lequel les modalités de contrôle varient avec les nombres aléatoires, de telle sorte que l'architecture du fonctionnement du circuit intégré puisse être aléatoire. La tendance générale étant au développement de l'informatisation et de la numérisation, beaucoup de comportements commerciaux se sont portés vers des applications en matière de technologie de l' information, tirant avantage de l'efficacité, de ia facilité et des opportunités d'affaire fournies par les réseaux Internet et Intranet. Chaque personne, pratiquement, dispose d'une carte de crédit et de cartes à puce pour le contrôle d'accès, I'identification, le lancement et la fermeture de systèmes, dans lesquelles sont habituellement stockées des i nformations très confidentiel les, tel les que don nées person nel les, mot de passe, priorité etc.. et qui ne sont pas destinées à être visualisées par les tiers (y compris le porteur). En général, les données des cartes à puce sont utilisées pour des raisons personnelles ou stratagiques, et pour des motifs éthiques ou de morale personnel le. leurs détenteurs devraient impérativement en prend re soin et limiter leur utilisation. Cependant, du fait de leur transformation en flux de données numériques, tels que O. 1, une fois la carte à puce insérée dans un lecteur de carte, les données sont lues par le lecteur et envoyée vers un système pour contrôle ou vérification du mot de passe. Pendant cette procédure, le code d'identification de la carte à puce est saisi dans la première phase, le mot de passe dans la deuxième phase et le mot de passe pour l'opération de codage/décodage dans la troisième phase. - Cette procédure est inchangée dans le lecteur de carte. En d'autres termes, lorsque le déroulement séquentiel des opérations au sein du lecteur de carte est connu, au travers de techniques d'observation (par interprétation des modifications de la tension et du courant du circuit intégré), un pirate peut analyser les différences entre chaque carte à puce et reconstituer la clé du lecteur de cartes. Quel que soit le mode d'encryptage des données de la carte à puce, ces données stockées seront exposées à l'extérieur, sans parler de la sécurité. De plus, en partant du principe que le circuit intégré mémorise les données avec des temps de réaction variable, par exemple 800 périodes pour saisir le code d'identification, 1200 périodes pour saisir le mot de passe, 1000 périodes pour effectuer le codage/décodage des données, ainsi que pour ventiler la séquence de lecture du circuit, le délai moyen est donc de 1000 périodes. Pour un homme de l'art, les paramètres de fonctionnement du circuit intégré peuvent être détectés à partir de divers moyens de contrôle pour obtenir les valeurs moyennes, de telle sorte que le circuit ne peut pas être protégé avec efficacité. Ainsi, si on parvient à rendre aléatoire le mode de fonctionnement du circuit intégré, de telle sorte que le temps moyen de traitement soit différent d'une carte à l'autre, alors un pirate pourra difficilement déceler les caractéristiques du circuit intagré au travers de méthodes d'observation ou de test. Même si un pirate est suffisamment chanceux pour calculer le point de synchronisation exact, il lui sera impossible d'appliquer cette analyse spécifique à d'autres circuits (la probabilité est proche de zéro). Le but principal de l'invention est de fournir un procédé de contrôle du fonctionnement en mode aléatoire d'un circuit intégré, dans lequel un nombre aléatoire génétique est produit lors de la première utilisation du circuit intégré, et un nombre aléatoire de durse d'exécution est produit à chaque utilisation du circuit, les deux nombres étant générés à partir du générateur de nombre aléstoire de la carte, et fournit ensuite un numéro de série long par un algorithme de hachage, incluant une série de bits de contrôle pour contrôler le décalage des adresses pour l'accès aux données du circuit imprimé, le chemin et la direction du flux de données etc. r Ledit numéro long de série varie de manière aléatoire avec le nombre aléatoire à chaque étape du processus, le procédé de contrôle du numéro aléatoire étant ainsi variable et le fonctionnement du circuit aléatoire. A cause du fonctionnement aléatoire du circuit, lors d'utilisations pour le commerce électronique, la sécurisation de données ou le cryptage et le décryptage, un pirate ne pourra pas extraire le mode de fonctionnement fixe du circuit et le décoder simplement au travers de l'analyse d'un simple circuit, les données pouvant alors être protégées. En conséquence, comme iedit numéro long de série est utilisé pour contrôler le décalage des adresses, chaque bit de contrôle étant utilisé comme signal initial de contrôle de l'échangeur du réseau de décalage des adresses, pour déterminer respectivement si chaque bit du flux de données entrant dans le circuit doit être échangé et le niveau de complexité du décalage des adresses, la donnée après échange formulera une donnée de codage et le mode de codage variera en fonction du numéro long de série, pour ainsi assurer la sécurité des données. En conséquence, comme ledit numéro long de série sert de signal de contrôle pour décider du chemin et de la direction du flux de données, son objectif est de guider les données qui circulent dans le circuit d'un tampon de donnée vers un autre selon un chemin aléatoire, le cheminement empruntant différentes voies, générant alors différentes tensions et puissances dans la structure du circuit., et le comportement du circuit pouvant être caché. Ainsi, il devient difficile d'analyser la signification des données par l'observation. Une description détaillée de la conception et des principes techniques de I' invention sera donnée ci-après, en référence aux figures annexées. La présente invention sera décrite en référence à un mode préférentiel de mise en _uvre illustré dans les figures, dans lesquelles: - la figure 1 est le schéma fonctionnel de génération du numéro long de série selon l'invention, - la figure 2A est le schéma du circuit logique et le diagramme des valeurs réelles du circuit d'échange - la figure 2B est le schéma de principe du réseau de décalage d'adresse, - la figure 2C est le schéma de principe du réseau de décalage d'adresse des données reconstituées, - la figure 3 est le schéma de principe du réseau de flux de données - les figures 4A et 4B sont une représentation en pentagone de la structure système - la figure 5 est le schéma de principe du protocole d'accès entre deux unités centrales et la mémoire vive dynamique (DRAM) et - les figures 6 à 8 illustrent le fonctionnement du tampon qui est utilisé pour contrôler le numéro long de série entre deux points d'accès de tampons de données En référence à la figure 1, un procédé de contrôle du fonctionnement en mode aléatoire d'un circuit intégrée selon l'invention est essentiellement composé d'un générateur de nombre aléatoire 10 dans le circuit, pour produire deux séries de nombre aléatoire, un nombre aléatoire génétique (GRN) et un nombre aléatoire de durée d'exploitation (RTRN), ledit nombre aléatoire génétique ne générant qu'un code de contrôle avec les caractéristiques individuelles du circuit pendant sa première utilisation et l ad it nombre aléatoire de durée d' exp loitation générant le code d' écart avec les caractéristiques individuelles lors de chaque utilisation du circuit, pour en assurer le contrôle. Par exemple, si le code de contrôle avec caractéristiques individuelles généré par le circuit lors de la première utilisation est 50, ia valeur d'écart lors de la première utilisation est 3, la moyenne s'établira alors entre 47 et 53. Si la valeur d'écart lors de la deuxième utilisation est + 8, la moyenne s'établira entre 42 et 58. En d'autres termes, la valeur moyenne du code de contrôle du fonctionnement du circuit lors de chaque uti l isation est différente, de tel le sorte qu'il est difficile d'extraire cette moyenne par le biais de séquences de test. Chaque circuit est fourni avec un code de contrôle unique et chaque utilisation varie en fonction de la variation de la valeur d'écart. Ainsi, le mode suivant de fonctionnement du circuit sera aléatoire et les paramètres de fonctionnement d u circu it ne peuvent être extra its par des méthodes 1 0 d'observation. Les deux séries de nombre aléatoire décrites ci-dessus produisent un numéro de série iong pour contrôler le comportement du circuit à travers un algorithme de hachage 20. Ledit numéro long de série peut être considéré comme l'identifiant du circuit, parce que la probabilité de voir le même GRN affecté à deux circuits distincts est inférieure à 1/2256 (en partant du principe que le numéro long de série généré a 256 bits). Même si le même GRN était utilisé, le RTRN et l'algorithme de hachage 20 ne produiront pas le même numéro long de série. Ledit numéro long de série est utilisé pour contrôler chaque bit d'entrée du circuit et pour diverses fonctions de contrôle comme le décalage d'adresse, le temps de réponse, I'attribution de tampon, le chemin et la direction du flux de données, etc. On donnera ci-dessous la description d'un premier mode de réalisation du procédé de contrôle selon l'invention. La figure 3 illustre un réseau de flux de données 30, consistant en un registre de données 40 et un réseau de décalage d'adresse 50 (comme représenté à la figure 2B). Les données sont temporairement stockées dans le registre de données 40 après passage dans le circuit et le décalage d'adresse et son niveau de complexité sont définis par contrôle du numéro long de série. En final, une information codée est obtenue. Le déca l age des données cons iste à mod ifi er l ' ad ressage des b its d'information d'origine, donc à décaler les séquences de donnses initiales et postérieures. En considérant par exemple un réseau de décalage d'adresse 50 de 8 bits (comme représenté à la figure 2B), 23 est égal à 8, et donc ledit réseau de décalage d'adresse 50 n'aura pas besoin de plus de 3 couches de structure pour décaler les adresses dans le cas le plus compliqué. Comme représenté à la figure 2A, le réseau de décalage d'adresse 50 mentionné ci-dessus comporte une série de circuits d'adressage 51, chaque circuit de commutation étant composé de deux sélecteurs 511 montés en parallèle. Dans la figure 2A, les données d'entrée sont A, B. un bit du numéro long de série servant de bit de contrôle C. L'état " 1 " du bit de contrôle active le sélecteur 511 et génère alors ZO, Z pour obtenir le décalage B. A. Lorsque le bit de contrôle C est " 0", les données d'entrée A, B ne subissent pas de décalage. En prenant pour exemple le réseau de décalage d'adresse d'unité de base 8 bits (figure 2B) tel que décrit ci dessus, ce dernier comporte trois couches de structure. Chaque couche de structure comprend quatre circuits d'adressage 51 (soit deux entrées par exemple, 8 2 = 4). Le réseau de décalage d'adresse 50 a donc besoin au total de 3 (couches) X 4 (unités) = 12 circuits d'adressage 51, dont le démarrage est commandé par le bit configuré dans le numéro long de série (il y a 12 bits COC11, comme indiqué dans les figures 2B et 2C, pour servir de signaux de contrôle). En considérant que tous les circuits d'adressage 51 sont activés, la clé dans la séquence ABCDEFGH devient BADCFEHG après décalage dans la première couche, puis FBEAHDGC après décalage dans la deuxième couche, et ACHFDBEG après décalage dans la troisième couche. Si l'ampleur du réseau de décalage d'adresse 50 est étendue par la suite, par exemple à huit réseaux, chacun des réseaux de décalage d'adresse 50 aura besoin de douze signaux de contrôle. Les réseaux de décalage d'adresse 50 à 64 bits exigeront pour le contrôle un numéro de série long de 96 bits. Après décalage, les données sont censoes effectuer un codage. Si lesdites données sont fournies par un processus ultérieur, elles retrouveront leur état antérieur et le résultat exact pourra être obtenu. Les indications données dans la figure 2C concernent un schéma de principe iliustrant le réseau de décalage des adresses restaurées, qui est inversé par rapport au schéma de la figure 2B et est également contrôlé par un numéro de série long. Autrement dit, le bit du numéro long de série est enregistré pendant l'opération de décalage d'adresse, et les données d'origine sont obtenues au moyen du même bit de contrôle. Dans I'hypothèse précédente, si tous les circuits de décalage d'adresse 51 sont activés' les données résultantes après décalage seront ACHFDBEG, puis CAFHBDGE après décalage dans la première couche, puis BFAEDHCG après décalage dans la deuxième couche, puis ABCDEFGH après décalage dans la troisième couche. Ainsi, les données introduites à I'origine peuvent être récupérées pour utilisation avec les éléments nécessaires aux processus en cours pour obtenir ies résuitats de calcul exacts. Dans ce mode de réalisation, le bit d'attribution ne vise qu'à en expliquer les résultats mais ne constitue pas une limite du champ de l'invention. Le nombre de bit peut en outre être prédéterminé par le concepteur en fonction des exigences réelles. Dans un circuit intégré classique, le cheminement du flux entre un tampon de données et un autre est fixe, ledit flux étant unidirectionnel ou bidi rectionnel. L' énergie consommée dans le canal (c' est-à-dire la tension et le courant consommé) est constante pendant chaque transfert. Ainsi, le comportement du circuit est apparent et chaque circuit peut être analysé au moyen de méthode d'observation instrumentale en temps réel. L' invention peut également être décrite dans les trois variantes de réalisation suivantes, qui utilisent un contrôle par un numéro de série long pour atteindre l'objectif consistant à occulter le mode comportemental du circuit et empêcher que les données d'un circuit ne soient retracées au moyen de méthode d'observation. La deuxième variante de réalisation ci-dessous décrit les modalités du canal de flux de données. Dans un circuit électronique, I'énergie consommée par une même donnée au sein de différents canaux de transfert n'est pas la même. Dans ce mode de réalisation, un numéro de série long sert de signal de contrôle pour définir la direction et le chemin du flux de données. La structure interne du circuit est définie comme suit. Chaque élément de structure du circuit est représenté par plusieurs éléments simplifiés formant un ensemble positif (un pentagone dans le mode de réalisation décrit). Cette structure en pentagone est composée de formes qui se répètent en continu pour donner une structure d'ensemble ayant les mêmes fonctions que le circuit existant. En considérant les lettres identifiées de chaque moyen d'identification des tampons de données, il y aura toujours deux directions de transfert possibles, dans le sens des aiguilles d'une montre (comme représenté à la figure 4A) et dans le sens contraire des aiguilles d'une montre (comme représenté à la figure 4B). En partant du principe que la valeur " O" du bit indique le sens des aiguilles d'une montre, et que la valeur " 1 " indique le sens contraire, et en prenant pour exemple la structure du pentagone, il faudra 20 bits dans le numéro de série long pour servir de contrôle de la direction de transfert. Comme montré dans le tableau 1, ies bits compris entre le cent dixième et ie cent trentième dans le numéro de série long servent à contrôler la direction de transfert. Si la valeur du cent dixième bit est " 0", il indique que la direction entre les tampons de données A à B est dans le sens des aiguilles d'une montre. Le canal de transfert peut être choisi entre A-E-B, A-E-C-D-B, A-C-B et A C-E-B. Parmi les choix possibles, le plus court devrait être privilégié. Donc, le choix sera entre A-E-B et A-C-B. De manière similaire, dans le transfert entre tampons de données, différentes tensions et consommations de courant seront exprimées en fonction des différences dans les cheminements, afin d'occulter le mode comportemental du circuit. Il sera difficile d'analyser la définition des données avec des méthodes d'observation. Bit Chemin Direction Depuis Vers Sens des aiguilles d'une Sens contraire des montre aiguilles d'une montre A B 0 1 111 A C 0 1 1 12 1 113 A E 0 1 114 B A 0 1 O 1 119 C A 0 1 O 1 128 1 129 E C 0 1 E D 0 1 Tableau 1 Le mode comportemental du contrôle d'accès décrit comme suit permettra d'expliquer la troisième variante d'exécution. Ledit numéro de série long peut également contrôier le mode comportemental d'accès de deux unités centrales F. G (matre) en parallèle (tels que disque dur, carte d'affichage, etc.) et d'une DRAM 70. En référence à la figure 5, et considérant que le système comporte deux unités centrales F. G qui peuvent accéder à la DRAM 70 en un même point par le port parallèle d'accès dédié 60, comme l'exemple figurant dans le tableau 2: A l'instant 1, les unités centrales F et G envoient une requête en lecture. A l'instant 2, I'unité centrale F envoie une requête en lecture et l'unité centrale G envoie une requête en lecture. A l'instant 3, I'unité centrale F envoie une requête en écriture et l'unité centrale G envoie une requête en lecture. A l'instant 4, les deux unités centrales F et G envoient une requête en écriture. Bien sûr, la requête initiale d'accès sera exécutée en premier. Autrement dit, i' instruction en T1 sera toujours exécutée avant les instructions en T2, T3 et T4. La DRAM 70 ne pouvant accepter qu'une seule requête à la fois, un conflit se produirait lorsque plusieurs requêtes sont émises en même temps. Dans le mode d'exécution décrit, un numéro de série long permet de contrôierr la détermination des priorités en un même instant. En référence au tableau 3, si on considère que la valeur " 0" du bit correspond à " ", le numéro de série long n'utilisera que 4 bits pour permettre de décider de la priorité en lecture ou en écriture des deux unités centrales F et G parallèle, comme suit. R(F R1) ' R(G R1) > R (F. R2) > R (G W2) > R (G. W3) > R (F. W3) > R (G W4) > R (F. W4) Instant T UNITE CENTRALE F UNITE CENTRALE G T1 Requête en lecture R (F. R1> Requête en lecture R(G R1) T2 Requête en lecture R (F. R2' Requête en écriture R G W2> T3 Requête en écriture R (F. w3' Requête en lecture R (G. R3) T4 Requête en écriture R (F. w4, Requête en écriture R G W4) Tableau 2 Bit Valeur Bit Unité centrale F Priorité Unité centrale G Bit O Lecture Lecture Bit O Lecture Ecriture Bit O Ecriture Lecture i Bit O Ecriture Ecriture Tableau 3 11 2828298 On donnera ci-dessous la description d'une quatrième variante de réalisation d'un contrôle de tampon Le numéro de série long mentionné cidessus peut aussi être utilisé pour contrôler des tampons de données déterminés 80 entre deux ports d'échange de données H et 1. Considérant qu'il y a 6 tampons de donnses 80 entre les ports d'échange de données H et I (le chiffre 6 est utilisé pour les besoins de la démonstration, et en pratique il peut s'agir d'un nombre différent) comme représenté dans le tableau 4, trois bits du numéro de série long serviront de contrôle pour le tampon de donnée 80 Les variantes de fonctionnements possibles du tampon de données 80 sont les suivants: 1. Les données provenant des ports d 'échange de données H à I passent par six tampons de données 80, mais aucune donnée provenant des ports I à H ne passe par l es tampons de données (ces trois bits so nt représentés dans le tableau 4 par la valeur a 000 ") 2. Les données provenant des ports d 'échange de données H à I passent par cinq tampons de données 80, mais les données provenant des ports d'échange de données I à H ne passent que par un tampon de données 80 (ces trois bits sont représentés dans le tableau 4 par la valeur a 000 ", comme illustré à la figure 6). 3. Les données provenant des ports d 'échange de donnéss H à I passent par quatre tampons de données 80, mais les données provenant des ports d'échange de données I à H ne passent que par deux tampons de données 80 (ces trois bits sont représentés dans le tabieau 4 par la valeur a 010 ", comme illustré à la figure 7). 4. Les données provenant des ports d 'échange de données H à I passent par trois tampons de données 80, et respectivement les données provenant des ports d'échange de données I à H passent par trois tampons de données 80 (ces trois bits sont représentés dans le tableau 4 par la valeur " 011 ", comme illustré à la figure 8). 5. Les données provenant des ports d'échange de données H à I passent par deux tampons de données 80, mais les données provenant des ports d'échange de données I à H passent par quatre tampons de données 80 (ces trois bits sont représentés dans le tableau 4 par la valeur " 100 ", la direction de la flèche du flux de donnée est opposée à celle de la figure 7, non représentée sur la figure). 6. Les données provenant des ports d 'échange de données H à I passent par un tampon de données 80, mais les données provenant des ports d'échange de données I à H passent par cinq tampons de données 80 (ces À trois bits sont représentés dans le tableau 4 par la valeur " 101 ", la direction de la flèche du flux de donnée est opposée à celle de la figure 6, non représentée sur la figure). 7. Aucune donnée provenant des ports H à I ne passe par les tampons de données 80 mais les données provenant des ports d'échange de données I à H passent par six tampons de données (ces trois bits sont représentés dans le tableau 4 par la valeur " 110 "). Valeur Bit tampons sollicités pour ie transfert des tampons soiiicités pour ie transtert des données du port H au port i données du port i au port H 000 6 0 4 2 011 3 3 2 4 101 0 6 Tableau 4 Le passage des données par un tampon de données 80 dans la transmission du port d'échange H vers le port d'échange I donne le temps de réaction approprié, le temps de traitement du circuit n'étant pas fixe. Un tiers ne peut pas prévoir le point d'échange exact à partir de deux points aléatoire, ce qui signifie que les données interceptées ne seront pas celles souhaitées, ce qui sécurise le système. En conclusion, le procédé de contrôle du fonctionnement d'un circuit imprimé en mode aléatoire est réalisé selon l' invention au moyen deux nombres aléatoires fournissant le signal de contrôle du circuit, dont le mode opérationnel variera en fonction des variations des nombres aléatoires. Appliqué au commerce électronique, à la sécurisation de données, ou au traitement d'opérations de cryptage/décryptage, parce que le comportement du circuit est aléatoire, un pirate ne pourra pas extraire un mode de fonctionnement constant du circuit par l'analyse, ce qui assure la sécurité des données. Une solution efficace et une stratégie sont proposées, contrairement aux circuits classiques à fonctionnement fixe qui peuvent aisément étre décodés. La présente invention a été illustrée et décrite en référence à des modes de réalisation préférentiels. Des modifications de forme ou de détail ne doivent pas être considérées comme s'écartant de l'esprit et du champ de l'invention. r 14 2828298 REVENDICATIONS 1. Procédé de contrôle du fonctionnement en mode aléatoire d'un circuit intégré, comportant les étapes suivantes: a. on produit un nombre aléatoire génétique et un nombre aléatoire de durée d'exploitation, ledit nombre aléstoire génétique déterminant le temps de réaction de la valeur d'écart pendant sa première utilisation, et ledit nombre aléatoire de durée d'exploitation déterminant le temps de réaction de la valeur d'écart à chaque utilisation; b. Iesdits nombre aléatoire génétique et nombre aléatoire de durée d'exploitation produisent au moyen d'un algorithme de hachage un numéro de série long, incluant une série de bits de contrôle; c. on utilise un bit de contrôle inclus dans ledit numéro de série long comme signal de contrôle pour commander le fonctionnement dudit circuit intégré. 2. Procédé selon la revendication 1, dans lequel la sous-étape c comporte le contrôle des instructions de décalage d'adresse des données du tampon de données interne du circuit. 3. Procédé selon la revendication 2, dans lequel le contrôle des instructions de décalage d'adresse est effectuée au moyen d'un réseau de décalage d'adresse. 4. Procédé selon la revendication 1, dans lequel la sous-étape c inclut le chemin de transfert des données de contrôle dans le port d'échange des données du circuit. 5. Procédé selon la revendication 4, dans lequel dans lequel la voie la plus courte sert de voie de transfert entre les ports d'échange de données du circuit. 6. ProcAdA salon is revendicadon 1, dans lequel la sous-6tape c compose le contrive du circus par is numAro de sArle long pour commander l'accAs au registre d'au mains deux unites centrales. 7. PcAdA salon la revendicabon 1, dens lequel dens lequel la sous-61ape c compose condole du chemist de transom des donndes passant par an tampon de donnde ene deux pos Achange de donndes.