FR 2822310 A1 20020920 FR 0103389 A 20010313 DISPOSITIF DE PERMUTATION DE FILS ÉLECTRIQUES COMMANDÉ ÉLECTRONIQUEMENT L'invention concerne un dispositif électronique permettant de permuter des fils électriques entre eux, cette permutation étant elle-même commandée électroniquement. La réalisation de l'invention recquiert très peu de composants électroniques, et peut être utilisée dans des dispositifs électroniques disposant de peu de capacité de calcul, ou de volume de mémoire. Le détail de l'invention est exposé dans une publication intitulée Fast primitives for internai data scrambling in tamper resistant hardware , à paraître dans les actes de la conférence Ches'2001 (Cryptographie Hardware and Embedded Systems) qui se tiendra à Paris en mai 2001. Le problème de permuter des fils électriques en commandant électroniquement cette permutation est un problème bien connu, qui a des applications dans le domaine des réseaux en théorie de la commutation et également pour la sécurisation de données confidentielles à l'intérieur de dispositifs à intégrité protégée comme des cartes à puce. Plus explicitement, un tel dispositif prend en entrée n fils électriques, et les restitue en n fils qui sont permutés, cette permutation étant déterminée par la valeur numérique de k fils supplémentaires correspondant à k bits 0/1 commandant la permutation. Cet ensemble de k bits est appelé la commande du dispositif. Les critères techniques souhaités pour un tel dispositif sont en général : 1. Que l'on puisse, grâce aux k bits de commande, engendrer le plus possible de permutations des n fils. 2. Que le dispositif comprenne le moins de portes logiques possibles. 3. Que le nombre de permutations engendrées soit le plus proche possible du nombre de com- mandes qu'il est possible de choisir. 4. Que les permutations engendrées le soient de manière uniforme lorsque l'on choisit la com- mande avec une probabilité uniforme dans l'ensemble {0, l} k. 5. Que le temps de traversée du circuit électronique associé soit très court. En général, il est difficile de satisfaire tous ces critères. En particulier, il n'existe pas de dispositif de taille très compacte engendrant uniformément des permutations. L'invention comble cette lacune en proposant un dispositif électronique qui permet d'engendrer un grand nombre de permutations, de manière uniforme, ou presque uniforme, et avec très peu de portes logiques. L'invention se décompose en deux dispositifs, qui ont indépendemment des avantages différents par rapport aux critères exposés plus haut. Nous exposons maintenant le détail des deux dispositifs. Pour cela, nous introduisons la description d'un dispositif électronique de base, que nous appelons un commutateur. Un commutateur est un circuit électronique qui possède deux fils d'entrée, deux filsd de sortie, et un bit de clé. Selon la valeur de ce bit de clé, les deux fils de sortie sont égaux aux deux fils d'entrée, ou sont égaux aux deux fils d'entrée dont les valeurs sont échangées l'une avec l'autre. La description électronique d'un commutateur est exposé à la figure 1. Par la suite, on utilisera davantage une description mathématique qu'une description en terme de dispositifs électroniques, ce qui nous amène à introduire certaines notations et concepts mathématiques. Toutefois, il y a une parfaite équivalence entre le langage mathématique que nous utilisons dans ce qui suit, et une description électronique stricto sensu. On note Sn le groupe des permutations de l'ensemble à n éléments {0,..., n-1}. Ona appelle par définition, permutation à clé une application cr de l'ensemble des clés {0,1}m dans l'ensemble Sn, ce qu'on symbolise par : or : {0, 1}-K 1H UK- Une permutation à clé est simplement l'équivalent mathématique d'un dispositif permutant des fils électriques, cette permutation étant sélectionnée par une commande électronique K. Une transposition est un élément de Sn qui échange deux éléments de 10,..., n-11. On note (i, j) la transposition qui échange le symbole i avec le symbole j. D'autre part, le produit de deux permutations T et j-t, noté v = o j-t, ou simplement v = ru, est défini par v (i) = T (ss (i)) pour tout i dans {0,..., n-11. On rappelle un théorème mathématique qui indique que tout élément de Sn peut s'écrire comme un produit de transpositions. Dans notre contexte, la permutation à clé (i, j) b, b étant un bit de clé valant zéro ou un, correspond précisément à un commutateur dont les deux entrées sont les bits d'indice i et j, et dont le bit de clé est le bito. Par cnséquent, le théorème précédant signifie que l'on peut obtenir toutes les configurations possibles des fils de sortie (i. e. toutes les permutations possibles) en empilant les uns à la suite des autres des commutateurs pour former le dispositif électronique final. Nous exposons maintenant en détail les deux dispositifs de l'invention. Dans les deux cas, ils traitent de la situation où le nombre de fils électriques concernés vaut une puissance de deux, ce qui permet de définir l'entier l tel que n = 2l. Le premier dispositif est un circuit électronique formé d'un assemblage de commutateurs, et qui vérifie la propriété que le nombre de configurations possibles des fils de sortie est précisément égal au nombre de clés qu'il est possible de choisir pour cette permutation à clé. Ce dispositif est donc une permutation à clé, selon la définition donnée plus haut. Ce dispositif est décrit au paragraphe 3.4 de la publication précitée. La description du dispositif Pn peut se faire par récurrence, comme suit. Ce dispositif est construit à partir de deux sous-blocs identiques à un dispositif Pn/2. Supposons avoir réalisé notre construction d'une permutation à clé pour n/2 fils. Alors, nous pouvons utiliser deux fois , avec deux clés différentes Ki et K2, pour permuter d'une part les fils numérotés de 0 à n/2-1, et d'autre part, les fils numérotés de n/2 à n-1. Ensuite, nous ajoutons à cette permutation à clé les transpositions qui échangent le fil 0 avec le fil n/2, le fil 1 avec le fil n/2 + 1, et ainsi de suite, jusqu'à échanger le fil n/2-1 avec le fil n. Ces transpo- sitions sont chacunes commandées par un bit de clé, et la réunion de tous ces bits de clé forme une clé K3. Nous avons ainsi construit une permutation à clé #(k1,k2,k3) qui permute l'ensemble {0,..., n-1}. On peut prouver que cette construction a la propriété d'engendrer nn/2 configurations différentes des fils de sortie, ce qui est précisément égal au nombre de clés différentes qui permettent de commander les commutateurs impliqués dans la construction. La preuve de ce fait se trouve dans la publication citée ci-dessus. L'intérêt de cette construction réside également dans le fait que le nombre de commutateurs impliqués dans la construction est égal à (n log2 n)/2, ce qui est très peu, et donc conduit à un circuit de taille petite, avec un temps de traversée très court. Le deuxième dispositif Qn est également un circuit électronique formé d'un assemblage de commutateurs, qui réalise une permutation à clé. Il est construit à partir de deux sous-blocs iden- tiques à un dispositif Qn/2. Ce deuxième dispositif engendre davantage de configurations des fils de sortie que la première construction, ce qui est souhaitable. Il peut être également décrit par une construction itérative, exposée dans ce qui suit. Une description complète peut être consultée au paragraphe 3.5 de la publication précitée. Essentiellement, la contruction est très similaire à celle exposée précédemment, à la différence que l'on rajoute encore plusieurs permutations après avoir ajouté les transpositions utilisées dans la construction précédante. Supposons avoir construit une permutation à clé iLK de n/2 fils. Nous appliquons les transformations décrites précédemment pour parvenir à une permutation à clé #(k1,k2,k3). Ensuite, nous rajoutons n/4 permutations de la façon suivante. Nous notons c = (0,2, 1,3) la permutation de {0, 1,2, 3} qui envoie 0 sur 2,2 sur 1,1 sur 3 et 3 sur 0. Nous notons c, les permutations obtenues pour tout i tel que 0 i 0 H i, 1 Hi + 1, 2 H n/2 + i, 3 H n/2 + i + 1. Nus pouvons maintenant compléter notre construction, en composant o- () avec la permutabo b./4-1 tion c. 0...c0 ,4J, où les bt sont des bits de clé supplémentaires, valant 0 ou 1. On obtient donc à nouveau une permutation à clé. On peut prouver que cette construction à la propriété d'engendrer na. n2-ssn, où ex et ss sont des constantes valant ex = 0, 65 et ss = 0, 15. De plus, la clé associée à une longueur de (3/4) n log2 n bits. En particulier, cette construction a la propriété d'engendrer un grand nombre de permutations différentes, parmi toutes les permutations possibles. Selon l'invention, on peut généraliser cette construction, en étendant le dispositif, en utilisant la construction du premier dispositif, et en rajoutant des permutations constituées de cycles de longueur plus grande que deux, par exemple, quatre, mais toute valeur plus grande que deux est possible. Par ailleurs, le dispositif Pn ou Qn, permutant n/2 fils, est équivalent au dispositif Pn ou Qn permutant n fils. Enfin, lesdits commutateurs comprennent chacun deux fils et un bit de clé, et exécutent une permutation de ces deux fils à la condition que le bit de clé vaut 1 et laisse ces fils inchangés si le bit de clé vaut 0. La présente invention sera plus facile à comprendre à l'aide des figures ci-jointes qui sont : - figure 1, représentation électronique d'un commutateur avec des portes logiques. - figure 2, représentation électronique du premier dispositif de F invention. - figure 3, représentation électronique du deuxième dispositif de l'invention. - figure 4, représentation électronique d'un cycle de longueur quatre. Une réalisation possible de l'invention est maintenant décrite. Nous nous plaçons dans le cas particuler non-restrictif où le nombre de fils est égal à 8 : n = 8. Alors, selon l'invention, nous pouvons fabriquer un permutation à clé qui engendre 212 configurations de fils différentes pour le premier dispositif, et 214 pour le deuxième dispositif. La taille des clés est respectivement de 12 bits, et de 16 bits. Les circuits correspondants sont exposés avec les trois figures suivantes. La première figure, la figure 1, expose une réalisation électronique d'un commutateur, en utilisant des portes logiques et et ou , selon un symbolisme graphique standard. Les entrées sont référencées par Inl, In2, et les sorties par Outl, Out2. K représente le bit de clé déterminant l'état du commutateur. Dans les deux figures suivantes, nous représentons des circuits électroniques réalisés à partir de commutateurs pour chacun 8 fils numérotés de 0 à 7. Par soucis de simplification, nous représentons ces circuits sous la forme de graphes, où les noeuds correspondent à des commutateurs, et où les arêtes correspondent à des fils. Par soucis de simplicité, on ne représente pas les fils qui correspondent aux bits de clé qui déterminent l'état des commutateurs. La figure 2 représente une réalisation du premier dispositif, dans le cas où n = 8. Pour représenter une réalisation électronique du deuxième dispositif, on utilise également des boîtes rectangulaires, pour représenter les cycles de longueur quatre utilisés dans la construction itérative du deuxième dispositif, comme représenté à la figure 4. Là aussi, les fils correspondant à une clé ne sont pas représentés. La figure 3 représente une réalisation du deuxième dispositif, dans le cas où n = 8. La figure 4 représente une réalisation à l'aide de multiplexeurs d'un cycle de longueur 4, commandé par un bit de clé b, recevant en entrée quatre fils notés eo, el, e2, e3, et produisant en sortie quatre fils notés SO, Si, S2, S3- REVENDICATIONS 1. Dispositif électronique Pn qui permute n fils électriques entre eux, n étant une puissance de 2, la permutation étant commandée électroniquement au moyen d'une clé K formé de k bits, comprenant entre autre plusieurs commutateurs, caractérisé en ce qu'il est construit à partir de deux sous-blocs identiques à un dispositif Pn/2, permutant chacun n/2 fils respectivement numérotés de 0 à n/2-1 et de n/2 à n-1, et qu'il est comprend de plus n/2 commutateurs qui permutent les fils obtenus dans l'ordre résultant de l'application des deux sous-blocs précités en échangeant deux à deux les fils numérotés 0 et n/2, 1 et n/2 + 1, jusqu'à échanger les fils numérotés n/2-1 et n-1, chacun de ces échanges étant commandé indépendemment par un bit de clé. 2. Dispositif électronique Qn qui permute n fils électriques entre eux, n étant une puissance de 2, la permutation étant commandée électroniquement au moyen d'une clé formé de /bits, comprenant entre autre plusieurs commutateurs, caractérisé en ce qu'il est construit à partir de deux sous-blocs identiques à un dispositif Qn/2, permutant chacun n/2 fils respectivement numérotés de 0 à n/2-1 et de n/2 à n,-1, qu'il comprend de plus n/2 commutateurs qui permutent les fils obtenus dans l'ordre résultant de l'application des deux sous-blocs précités en échangeant deux à deux les fils numérotés 0 et n/2, 1 et n/2 + 1, jusqu'à échanger les fils numérotés n/2-1 et n-1, chacun de ces échanges étant commandé indépendemment par un bit de clé, et qu'il comprend enfin n/4 permutations à clé, permutant les fils obtenus dans l'ordre résultant de l'application des deux sous-blocs précités et des n/2 commutateurs précités de manière à à appliquer ou non pour tout entier i tel que 0 3. Dispositif électronique selon la revendication 1 caractérisé en ce que le dispositif Pin/2 permutant n/2 fils est équivalent au dispositif Pn permutant n fils. 4. Dispositif électronique selon la revendication 2 caractérisé en ce que le dispositif 5. Dispositif électronique selon les revendication 1 ou 2 caractérisé en ce que lesdits commuta- teurs comprennent chacun deux fils et un bit de clé, et exécutent une permutation de ces deux fils à la condition que le bit de clé vaut 1, et laissent ces fils inchangés si le bit de clé vaut 0.