Brevet FR2789779A1 — publié le 20000818

i Procédé de traitement sécurisé d'un élément logique sensible dans un registre mémoire, et module de sécurité mettant en oeuvre ce procédé L'invention concerne un procédé de traitement sécurisé d'un élément logique sensible dans un registre mémoire contenant plusieurs mots formés chacun de plusieurs éléments logiques, et un module de sécurité mettant en oeuvre ce procédé. Le terme "module de sécurité" doit être pris, soit dans son sens classique dans lequel il désigne un dispositif ayant vocation, dans un réseau de communication ou d'information, à être détenu par un organisme supervisant le réseau et à stocker de façon protégée des paramètres secrets et fondamentaux du réseau tels que des clés cryptographiques, soit comme désignant plus simplement un dispositif attribué à divers usagers du réseau et permettant à chacun d'eux d'avoir accès à celui-ci, ce dernier dispositif étant lui aussi susceptible de détenir des paramètres secrets. Le module de sécurité pourra prendre la forme d'un objet portatif du type carte à puce. On sait qu'un fraudeur est susceptible de lire ou d'altérer des informations contenues dans des moyens de stockage d'information d'un module de sécurité, notamment dans des mémoires de puces électroniques, en utilisant selon les cas un microscope électronique ou des moyens de production de rayonnements. Il peut aussi déduire certaines informations en étudiant précisément la consommation de courant électrique des moyens de stockage d'information. Toutefois, pour être efficace, il lui faut non seulement accéder aux informations stockées, mais aussi identifier la fonction de ces informations dans le fonctionnement du module de sécurité. Dans la technique connue, les informations sont stockées dans les moyens de stockage, à des emplacements dédiés et immuables. Il s'ensuit qu'un fraudeur est capable dans certains cas de repérer la présence d'une information toujours la même à un endroit donné, et de rattacher cette information à une fonction particulière. Il peut alors influer en connaissance de cause sur le déroulement du processus du module de sécurité. Le but principal de l'invention est de proposer un procédé de traitement sécurisé d'un élément logique sensible dans un registre mémoire permettant de rendre beaucoup plus difficile le repérage de la fonction attribuée à cet élément logique sensible. A cet effet, le procédé selon l'invention est caractérisé en ce qu'il comprend les étapes consistant à: -définir un premier mot auxiliaire contenant plusieurs éléments logiques définissant aléatoirement d'une part la position d'un mot sensible parmi les mots du registre mémoire, lequel est destiné à stocker ledit élément logique sensible et d'autre part, dans ce mot sensible, la position de l'élément logique sensible parmi les éléments logiques de ce mot, les autres mots du registre mémoire constituant des mots leurres; -utiliser le premier mot auxiliaire pour sélectionner ledit mot sensible et stocker l'élément logique sensible à sa position dans ce mot sensible. Selon un perfectionnement, le procédé selon l'invention est caractérisé en ce qu'il comprend les étapes consistant à: -définir un premier mot auxiliaire contenant plusieurs éléments logiques définissant aléatoirement d'une part la position d'un mot sensible parmi les mots du registre mémoire, lequel est destiné à stocker ledit élément logique sensible et d'autre part, dans ce mot sensible, la position de l'élément logique sensible parmi les éléments logiques de ce mot, les autres mots du registre mémoire constituant des mots leurres; -définir un second mot auxiliaire contenant plusieurs éléments logiques définissant aléatoirement, pour chaque mot leurre en particulier, la position d'un élément logique leurre parmi les éléments logiques de ce mot; - considérer successivement chacun des mots du registre mémoire et affecter aléatoirement pour ce mot une valeur aux éléments logiques du second mot auxiliaire et, dans le cas o ce mot est un mot leurre, utiliser le second mot auxiliaire pour stocker l'élément logique leurre à sa position et, dans le cas o ce mot est le mot sensible, utiliser le premier mot auxiliaire pour stocker l'élément logique sensible à sa position. D'autres détails et avantages de la présente invention apparaîtront au cours de la description suivante d'un mode d'exécution préféré mais non limitatif, en regard des dessins annexés sur lesquels: La figure 1 représente un dispositif de traitement de données coopérant avec un module de sécurité; La figure 2 représente une variante de la figure 1; La figure 3 représente la façon dont l'information contenue dans un registre mémoire est traitée selon l'invention; Les figures 4 et 5 représentent deux mots précisant l'organisation de l'information dans le registre mémoire de la figure 3; La figure 6 est un organigramme d'une opération d'écriture d'un élément logique sensible dans le registre mémoire de la figure 3; La figure 7 est un organigramme d'une opération de lecture d'un élément logique sensible dans le registre mémoire de la figure 3; Les figures 8 et 9 représentent deux variantes respectives des figures 3 et 4; La figure 10 est un organigramme d'une opération d'écriture d'un élément logique sensible dans le registre mémoire de la figure 8; et La figure 11 est un organigramme d'une opération de lecture d'un élément logique sensible dans le registre mémoire de la figure 8. La figure 1 représente un dispositif de traitement de données 1 coopérant avec un module de sécurité sous la forme d'un objet portatif 8. Le dispositif de traitement de données comprend de façon connue en soi un microprocesseur 2 auquel sont reliés une mémoire ROM 3, et une mémoire RAM 4, des moyens 5 pour coopérer, avec ou sans contact physique, avec l'objet portatif 8, et une interface de transmission 7 permettant au dispositif de traitement de données de communiquer avec un réseau de communication de données. Le dispositif de traitement de données 1 peut en outre être équipé de moyens de stockage tels que des disquettes ou disques amovibles ou non, de moyens de saisie (tels qu'un clavier et/ou un dispositif de pointage du type souris) et de moyens d'affichage, ces différents moyens n'étant pas représentés sur la figure 1. Le dispositif de traitement de données peut être constitué par tout appareil informatique installé sur un site privé ou public et apte à fournir des moyens de gestion de l'information ou de délivrance de divers biens ou services, cet appareil étant installé à demeure ou portable. Il peut notamment s'agir aussi d'un appareil dédié aux télécommunications. Par ailleurs, l'objet portatif 8 porte une puce incluant des moyens de traitement de l'information 9, une mémoire non volatile 10, une mémoire volatile de travail RAM 14, et des moyens 13 pour coopérer avec le dispositif de traitement de données 1. Cette puce est agencée pour définir, dans la mémoire 10, une zone secrète 11 dans laquelle des informations une fois enregistrées, sont inaccessibles depuis l'extérieur de la puce mais seulement accessibles aux moyens de traitement 9, et une zone accessible 12 qui est rendue accessible depuis l'extérieur de la puce par le microprocesseur 9 pour une lecture et/ou une écriture d'informations. Chaque zone de la mémoire non volatile 10 peut comprendre une partie non modifiable ROM et une partie modifiable EPROM, EEPROM, ou constituée de mémoire RAM du type "flash" ou FRAM (cette dernière étant une mémoire RAM ferromagnétique), c'est-à- dire présentant les caractéristiques d'une mémoire EEPROM avec en outre des temps d'accès identiques à ceux d'une RAM classique. En tant que puce, on pourra notamment utiliser un microprocesseur autoprogrammable à mémoire non volatile, tel que décrit dans le brevet américain n 4.382.279 au nom de la Demanderesse. Comme indiqué en colonne 1, lignes 13-25 de ce brevet, le caractère autoprogrammable de la puce correspond à la possibilité pour un programme fi situé dans une mémoire ROM, de modifier un autre programme fi situé dans une mémoire programmable en un programme gj. Dans une variante, le microprocesseur de la puce est remplacé - ou tout du moins complété - par des circuits logiques implantés dans une puce à semi-conducteurs. En effet, de tels circuits sont aptes à effectuer des calculs, notamment d'authentification et de signature, grâce à de l'électronique câblée, et non microprogrammée. Ils peuvent notamment être de type ASIC (de l'anglais " Application Specific Integrated Circuit "). Avantageusement, la puce sera conçue sous forme monolithique. Une variante de la figure 1 est illustrée sur la figure 2, o le dispositif de traitement de données 16 comprend, outre les éléments du dispositif de traitement de données 1 de la figure 1, ceux de l'objet portatif 8 disposés dans un module de sécurité 15, les éléments communs aux deux figures 1,2 portant les mêmes références. Toutefois, les moyens de coopération 5,13 de la figure 1 sont remplacés par une liaison permanente entre le microprocesseur 2 et le microprocesseur 9. Selon une variante de la figure 2, le dispositif de traitement de données est constitué par le module de sécurité 15 de la figure 2 luimême. La figure 3 représente un registre 30 de la mémoire volatile RAM 14 du module de sécurité précité, destiné à stocker un ensemble de huit octets 31 à 38 de façon contig e ou non. Il comporte un octet 36 dit " sensible " car incorporant un bit sensible S2 à protéger parmi un ensemble de huit bits Sl à S8, et sept octets (31 à 35, 37,38) dits " leurres " car destinés à masquer la présence de l'octet sensible 36. Chaque octet leurre comporte huit bits dont un bit dit " leurre ", car destiné à masquer la présence du bit sensible S2: dans cet exemple, I'octet 33 comporte huit bits L1 à L8, son bit leurre étant L4. Quant à l'octet 35 comporte huit bits L'1 à L'8, son bit leurre étant L'6. La figure 4 représente un octet 40 dit " de sécurité ", car destiné à protéger l'octet sensible 36. Il comprend trois premiers bits X3,X2,Xl définissant un rang de l'octet sensible parmi les huit octets du registre 30. En l'espèce, ces bits valent 1,0,1 soit le sixième rang. Il comprend ensuite trois autres bits Y3,Y2,Y1 définissant un rang du bit sensible S2 parmi les huit bits de l'octet 36. Ces bits valent ici 0,0,1, soit le deuxième rang. Enfin, un dernier bit significatif Zl indique si la valeur stockée du bit sensible S2 est complémentée ou non, c'est-à- dire si cette valeur correspond au complément binaire (0 ou 1) de sa valeur réelle (1 ou 0), ou à la valeur réelle elle-même (1 ou 0). Un dernier bit non significatif (ici 0) n'est pas utilisé. La figure 5 représente un dernier octet 50 dit " de masquage ", car destiné à définir le masquage du bit sensible S2 au moyen des bits leurres tels que L4 et L'6. Il comprend trois premiers bits non significatifs quelconques 0,1,1, suivis de trois bits V3,V2,V1 définissant, pour chaque octet leurre en particulier, un rang du bit leurre dans l'octet leurre considéré: pour l'octet 33, ce rang est 0,1,1, soit le quatrième rang. Il comprend aussi un septième bit U1 qui indique si la valeur réelle du bit leurre est complémentée ou non. Il comprend enfin un huitième bit non significatif 0. On notera que les bits V3,V2,V1,U1 occupent dans l'octet de masquage 50 la même position respective que les bits Y3,Y2,Y1,Z1 de l'octet de sécurité 40 ayant la même fonction, ceci afin de respecter une symétrie de fonctionnement. En utilisation, le microprocesseur procède à une écriture du bit sensible S2 en mémoire volatile RAM 14 selon l'organigramme de la figure 6. Le microprocesseur commence par générer aléatoirement l'octet de sécurité 40 en utilisant un générateur aléatoire connu en soi et prévu de façon matérielle ou logicielle dans le module de sécurité (étape 61). Ainsi sont définis l'octet sensible 36, le bit sensible S2 et le caractère complémenté ou non de celui-ci. Le microprocesseur génère ensuite aléatoirement les huit octets du registre (étape 62). Il traite ensuite successivement les huit octets du registre 30 en initialisant une variable i à la valeur 0 (étape 63), en l'incrémentant d'une unité (étape 64), puis en étudiant si i est supérieur à huit (étape 65). Dans l'affirmative, cela signifie que tous les octets du registre 30 ont été traités, de sorte qu'on arrive à la fin du processus d'écriture. Dans la négative, le microprocesseur génère aléatoirement l'octet de masquage 50 (étape 66). Le microprocesseur sélectionne ensuite l'octet de rang i dans le registre 30 (étape 67). Le microprocesseur étudie ensuite si l'octet sélectionné est l'octet de sécurité 40 ou non (étape 68): il utilise pour cela les bits X3,X2,X1 de l'octet de sécurité 40. Dans la négative, I'octet de rang i est donc un octet leurre et le microprocesseur sélectionne le bit leurre dans cet octet leurre (étape 69): il utilise pour cela les bits V3,V2,V1 de l'octet de masquage 50. Ensuite, le microprocesseur étudie la valeur du bit U1 de l'octet de masquage 50. S'il est égal à 1, le microprocesseur procède à un premier traitement de la réponse à un test (étape 71), réponse prenant la forme d'une mise à zéro ou à 1 du bit leurre. Dans le cas d'une réponse positive et selon une convention arbitraire choisie, le microprocesseur met à 1 le bit leurre (étape 72). Naturellement, une convention inverse pourrait être appliquée, à savoir qu'à une réponse positive correspondrait une mise à zéro du bit leurre. Dans le cas d'une réponse négative, le microprocesseur met à zéro le bit leurre (étape 73). Si, en revanche, le bit U1 vaut zéro à l'étape 70, le microprocesseur procède à un second traitement de la réponse au test, inverse du premier traitement. Ainsi, sur réponse positive au test (étape 74), le microprocesseur met à 0 le bit leurre (étape 75), tandis qu'en cas de réponse négative, il le met à 1 (étape 76). Dans le cas o la réponse au test 68 est positive, I'octet de rang i est donc l'octet de sécurité 40 et le microprocesseur sélectionne le bit sensible S2 dans cet octet sensible (étape 77): il utilise pour cela les bits Y3,Y2,Y1 de l'octet de sécurité 40. Ensuite, le microprocesseur étudie la valeur du bit Z1 de l'octet de sécurité 40. S'il est égal à 1, le microprocesseur procède à un premier traitement de la réponse à un test (étape 79), réponse prenant la forme d'une mise à zéro ou à 1 du bit sensible S2. Dans le cas d'une réponse positive et selon la convention mentionnée ci-dessus, le microprocesseur met à 1 le bit sensible S2 (étape 80). Dans le cas d'une réponse négative, le microprocesseur met à zéro le bit sensible S2 (étape 81). Si, en revanche, le bit Z1 vaut zéro à l'étape 78, le microprocesseur procède à un second traitement de la réponse au test, inverse du premier traitement. Ainsi, sur réponse positive au test (étape 82), le microprocesseur met à 0 le bit sensible S2 (étape 83), tandis qu'en cas de réponse négative, il le met à 1 (étape 84). Apres la mise à 1 ou à 0 du bit sensible S2 ou du bit leurre selon les étapes 72,73,75,76,80,81,83,84, le microprocesseur retourne en amont de I'étape 65, en vue de traiter l'octet suivant du registre 30. Après le processus d'écriture du bit sensible S2 et des bits leurres du type L4 ou L'6, le microprocesseur effectue typiquement un certain nombre de tâches avant d'avoir à lire le bit sensible S2. Lors de cette lecture (figure 7), il commence par sélectionner l'octet sensible 36 parmi les divers octets du registre 30 en lisant le contenu des bits X3, X2,X1 de l'octet de sécurité 40 (étape 90), puis il sélectionne le bit sensible S2 en lisant les bits Y3,Y2,Y1 (étape 91). Le microprocesseur peut maintenant lire le bit sensible S2 (étape 92). Ensuite, il analyse la valeur du bit Zi: dans le cas o Z1=1, le microprocesseur ne modifie pas la valeur lue du bit sensible S2; en revanche, dans le cas o ZI=O, il complémente la valeur lue du bit sensible S2, c'est-à- dire qu'il prend son complément binaire (si la valeur lue est 0, il prend la valeur 1, et si la valeur lue est 1, il prend la valeur 0). L'opération de lecture du bit sensible S2 est alors terminée. On notera que, lors de la lecture du bit sensible S2, on n'a pas procédé, à la différence de l'écriture, à un traitement parallèle des bits leurres (on aurait pu envisager de lire chacun des bits leurres). Bien que cela puisse être envisagé, il s'avère cependant que l'opération de lecture risque beaucoup moins de renseigner un fraudeur que l'opération d'écriture, de sorte que l'on a omis de traiter les bits leurres. Selon une variante de réalisation de l'invention, on applique le procédé décrit ci-dessus, non pas à la protection d'un bit sensible S2 dans un octet, mais à celle d'un mot de n bits S'2 (par exemple un octet) dans un groupe sensible 36' de m mots de n bits S'1 à S'8, lui-même noyé dans un ensemble de p groupes de mots leurres (31' à 35', 37',38'). Selon une autre variante de réalisation, on ne manipule pas de bits leurres dans les octets leurre, et on se contente de noyer le bit sensible dans l'octet sensible, et l'octet sensible dans les octets leurres. Dans ce cas, I'octet de masquage n'est pas utilisé. Selon une autre variante de réalisation, on ne prévoit pas la possibilité de complémenter le bit sensible. Selon une autre variante de réalisation, le registre mémoire stockant l'octet sensible et les octets leurre se trouve, non pas en mémoire volatile RAM, mais en mémoire EEPROM, de sorte que ce n'est plus la lecture ou I'écriture d'un bit sensible en RAM qui est sécurisée, mais celle en EEPROM. Selon une variante principale de réalisation de l'invention, on utilise un registre 30' (figure 8) stockant un seul bit, à savoir un bit sensible S, et la seule façon de protéger ce bit sensible S est alors de prévoir la possibilité de le complémenter. On définit un bit de sécurité Zl' (figure 9) dont la valeur permettra de savoir si le bit sensible S doit être complémenté ou non. En utilisation, le microprocesseur procède à une écriture du bit sensible S en mémoire volatile RAM 14 selon l'organigramme de la figure 10. Le microprocesseur commence par générer aléatoirement le bit de sécurité ZI' en utilisant un générateur aléatoire connu en soi et prévu de façon matérielle ou logicielle dans le module de sécurité (étape 101). Le microprocesseur génère ensuite aléatoirement le bit du registre 30' (étape 102). Ensuite, le microprocesseur étudie la valeur du bit de sécurité ZI'. S'il est égal à 1, le microprocesseur procède à un premier traitement de la réponse à un test (étape 104), réponse prenant la forme d'une mise à zéro ou à I du bit sensible S. Dans le cas d'une réponse positive, le microprocesseur met à 1 le bit sensible S (étape 105). Naturellement, une convention inverse pourrait être appliquée, à savoir qu'à une réponse positive correspondrait une mise à zéro du bit sensible S. Dans le cas d'une réponse négative, le microprocesseur met à zéro le bit sensible S (étape 106). Si, en revanche, le bit Zl' vaut zéro à l'étape 103, le microprocesseur procède à un second traitement de la réponse au test, inverse du premier traitement. Ainsi, sur réponse positive au test (étape 107), le microprocesseur met à 0 le bit sensible S (étape 108), tandis qu'en cas de réponse négative, il le met à 1 (étape 109). Après la mise à 1 ou à 0 du bit sensible S selon les étapes ,106,108,109, le microprocesseur arrive à la fin de l'opération d'écriture du bit sensible S. Après le processus d'écriture du bit sensible S, le microprocesseur effectue typiquement un certain nombre de tâches avant d'avoir à lire le bit sensible S. Après avoir lu le bit sensible S (étape 111), le microprocesseur analyse la valeur du bit Zl': dans le cas o Z1'=1, le microprocesseur ne modifie pas la valeur lue du bit sensible S; en revanche, dans le cas o Zl'=O, il complémente la valeur lue du bit sensible S, c'est-à-dire qu'il prend son complément binaire (si la valeur lue est 0, il prend la valeur 1, et si la valeur lue est 1, il prend la valeur 0). L'opération de lecture du bit sensible S est alors terminée. REVENDICATIONS 1. Procédé de traitement sécurisé d'un élément logique sensible (S2) dans un registre mémoire (30) contenant plusieurs mots (31-38) formés chacun de plusieurs éléments logiques (L1-L8, S1-S8), caractérisé en ce qu'il comprend les étapes consistant à: -définir un premier mot auxiliaire (40) contenant plusieurs éléments logiques (X3-Xl, Y3-Y1) définissant aléatoirement d'une part la position d'un mot sensible (36) parmi les mots du registre mémoire, lequel est destiné à stocker ledit élément logique sensible (S2) et d'autre part, dans ce mot sensible, la position de l'élément logique sensible parmi les éléments logiques de ce mot, les autres mots (31-35, 37,38) du registre mémoire constituant des mots leurres; -utiliser le premier mot auxiliaire (40) pour sélectionner ledit mot sensible (36) et stocker l'élément logique sensible (S2) à sa position dans ce mot sensible. 2. Procédé selon la revendication 1, dans lequel le premier mot auxiliaire (40) contient au moins un autre élément logique (Z1) définissant aléatoirement si une valeur à stocker de l'élément logique sensible (S2) correspond à une valeur réelle de celui-ci ou à un complément logique de cette valeur réelle, et: -au cas o la valeur à stocker de l'élément logique sensible correspond à la valeur réelle de celui-ci, stocker cette valeur; et -au cas o la valeur à stocker de l'élément logique sensible correspond au complément logique de sa valeur réelle, prendre le complément logique de cette valeur réelle et le stocker. 3. Procédé de traitement sécurisé d'un élément logique sensible (S2) dans un registre mémoire (30) contenant plusieurs mots (31-38) formés chacun de plusieurs éléments logiques (L1-L8, S1-S8), caractérisé en ce qu'il comprend les étapes consistant à: -définir un premier mot auxiliaire (40) contenant plusieurs éléments logiques (X3-X1, Y3-Y1) définissant aléatoirement d'une part la position d'un mot sensible (36) parmi les mots du registre mémoire, lequel est destiné à stocker ledit élément logique sensible et d'autre part, dans ce mot sensible, la position de l'élément logique sensible parmi les éléments logiques de ce mot, les autres mots (31-35, 37,38) du registre mémoire constituant des mots leurres; -définir un second mot auxiliaire (50) contenant plusieurs éléments logiques (V3-V1) définissant aléatoirement, pour chaque mot leurre en particulier, la position d'un élément logique leurre (L4, L'6) parmi les éléments logiques de ce mot; -considérer successivement chacun des mots du registre mémoire et affecter aléatoirement pour ce mot une valeur aux éléments logiques du second mot auxiliaire et, dans le cas o ce mot est un mot leurre, utiliser le second mot auxiliaire pour stocker l'élément logique leurre à sa position et, dans le cas o ce mot est le mot sensible, utiliser le premier mot auxiliaire pour stocker l'élément logique sensible à sa position. 4. Procédé selon la revendication 3, dans lequel le premier mot auxiliaire (40) contient au moins un autre élément logique (Z1) définissant aléatoirement si une valeur à stocker de l'élément logique sensible (S2) correspond à une valeur réelle de celui-ci ou à un complément logique de cette valeur réelle, et le second mot auxiliaire (50) contient au moins un autre élément logique (U1) définissant aléatoirement si une valeur à stocker de l'élément logique leurre correspond à une valeur réelle de celui-ci ou à un complément logique de cette valeur réelle, et: -au cas o la valeur à stocker de l'élément logique correspond à la valeur réelle de celui-ci, stocker cette valeur; et -au cas o la valeur à stocker de l'élément logique correspond au complément logique de sa valeur réelle, prendre le complément logique de cette valeur réelle et le stocker. 5. Procédé selon la revendication 4, pour lire ladite valeur réelle de l'élément logique sensible stocké (S2), comprenant les étapes consistant à: -utiliser le premier mot auxiliaire (40) pour sélectionner le mot sensible (36) dans le registre mémoire, sélectionner dans ce mot l'élément logique sensible, et définir si une valeur stockée de l'élément logique sensible correspond à la valeur réelle de celui- ci ou à un complément logique de cette valeur réelle; -au cas o la valeur stockée de l'élément logique sensible correspond à la valeur réelle de celui-ci, lire cette valeur; et -au cas o la valeur stockée de l'élément logique sensible correspond au complément logique de sa valeur réelle, lire cette valeur et en prendre le complément logique. 6. Module de sécurité comprenant des moyens de traitement d'information et des moyens de stockage d'information et agencé pour effectuer un traitement sécurisé d'un élément logique sensible (S2) dans un registre mémoire (30) contenant plusieurs mots (31-38) formés chacun de plusieurs éléments logiques (L1-L8, SI-S8), caractérisé en ce qu'il comprend: -des moyens pour définir un premier mot auxiliaire (40) contenant plusieurs éléments logiques (X3-Xl, Y3-Y1) définissant aléatoirement d'une part la position d'un mot sensible (36) parmi les mots du registre mémoire, lequel est destiné à stocker ledit élément logique sensible et d'autre part, dans ce mot sensible, la position de l'élément logique sensible parmi les éléments logiques de ce mot, les autres mots (31-35, 37,38) du registre mémoire constituant des mots leurres; -des moyens pour définir un second mot auxiliaire (50) contenant plusieurs éléments logiques (V3-V1) définissant aléatoirement, pour chaque mot leurre en particulier, la position d'un élément logique leurre (L4, L'6) parmi les éléments logiques de ce mot; -des moyens pour considérer successivement chacun des mots du registre mémoire et affecter aléatoirement pour ce mot une valeur aux éléments logiques du second mot auxiliaire et, dans le cas o ce mot est un mot leurre, utiliser le second mot auxiliaire pour stocker l'élément logique leurre à sa position et, dans le cas o ce mot est le mot sensible, utiliser le premier mot auxiliaire pour stocker l'élément logique sensible à sa position.