Brevet FR3101979A1 — publié le 20210416

Procédé de chiffrement de données La présente description concerne un procédé de chiffrement, exécuté par un circuit électronique, comprenant une première opération, appliquée à une première donnée comprenant un nombre n de premiers mots binaires, comprenant un nombre m de bits, et fournissant une deuxième donnée comprenant un même nombre n de deuxièmes mots binaires de m bits, dans laquelle chaque deuxième mot binaire, est égal à la somme : - du premier mot binaire de même rang,; et - du produit du complémentaire du premier mot binaire de rang suivant modulo n dont les bits ont subi un décalage d'un premier nombre de positions, avec le premier mot binaire d'un rang égal au rang supérieur du rang suivant modulo n, dont les bits ont subi un décalage d'un deuxième nombre de positions dans lequel n est supérieur ou égal à 3, m est premier avec n, et n ou m est pair. Figure pour l'abrégé : Fig. 1 Procédé de chiffrement de données La présente description concerne de façon générale la protection de données, et de façon plus particulière un procédé de chiffrement et/ou de déchiffrement de données, un procédé de hachage, ou encore un procédé de calcul de code d'authentification de message (MAC, message authentification code). La présente description concerne, en outre, des modules adaptés à mettre en oeuvre un procédé de chiffrement et de déchiffrement de données. Il existe de nombreuses techniques permettant de protéger des données utilisées par des dispositifs électroniques. Les techniques cryptographiques, comme le chiffrement de données, sont tout particulièrement utilisées à cet effet. Le chiffrement de données est une opération par laquelle des données utilisables et lisibles sont transformées, à l'aide d'un algorithme, en des données qui ne peuvent être lues que par des personnes ou machines connaissant cet algorithme. Cet algorithme peut utiliser, par exemple, une clé de chiffrement et/ou de déchiffrement. Des personnes cherchant à connaître ces données, appelées attaquants, peuvent connaître l'algorithme, sans toutefois connaître la clé. Il existe un besoin pour des procédés de chiffrement de données toujours plus performants, et pour des circuits électroniques mettant en oeuvre ces procédés toujours plus résistants. Ces caractéristiques et avantages, ainsi que d'autres, seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non limitatif en relation avec les figures jointes parmi lesquelles : la figure 1 illustre, schématiquement, le fonctionnement d'un mode de réalisation d'une opération de chiffrement ; la figure 2 illustre, schématiquement et sous forme de blocs, un mode de réalisation d'un algorithme de chiffrement de données ; la figure 3 illustre, schématiquement et sous forme de blocs, un mode de réalisation d'un module de chiffrement ; et la figure 4 illustre, schématiquement et sous forme de blocs, un autre mode de réalisation d'un module de chiffrement. Procédé de chiffrement, exécuté par un circuit électronique (201, 301), comprenant une première opération (F), appliquée à une première donnée (a ; A) comprenant un nombre n de premiers mots binaires (a(0), a(1), ..., a(n-1) ; A(0), A(1), ..., A(n-1)) comprenant un nombre m de bits chacun, et fournissant une deuxième donnée (b, B) comprenant un même nombre n de deuxièmes mots binaires (b(0), b(1), ..., b(n-1) ; B(0), B(1), ..., B(n-1)) de m bits, dans laquelle chaque deuxième mot binaire (b(i), B(i)) est égal à la somme : - du premier mot binaire de même rang (a(i), A(i)) ; et - du produit du complémentaire du premier mot binaire de rang suivant modulo n (a(i+1 [n]) ; A(i+1 [n])) dont les bits ont subi un décalage d'un premier nombre de positions (p), avec le premier mot binaire d'un rang égal au rang supérieur du rang suivant modulo n (a(i+2 [n]) ; A(i+2 [n])), dont les bits ont subi un décalage d'un deuxième nombre de positions (q), dans lequel n est supérieur ou égal à 3, m est premier avec n, et n ou m est pair. Procédé de chiffrement selon la revendication 1, dans lequel m est pair. Procédé selon la revendication 1 ou 2, dans lequel le premier nombre (p) est égal à 1. Procédé selon l'une quelconque des revendications 1 à 3, dans lequel le deuxième nombre (q) est égal à 2. Procédé selon l'une quelconque des revendications 1 à 4, dans lequel n est égal à 5. Procédé selon l'une quelconque des revendications 1 à 5, dans lequel m est égal à 4 ou à 64. Procédé selon l'une quelconque des revendications 1 à 6, dans lequel : - la somme (+) de la première opération est une somme bit à bit ; - le produit (.) de la première opération est un produit bit à bit ; - et le complémentaire d'un mot binaire de la première opération est le complémentaire bit à bit d'un mot binaire. Procédé selon l'une quelconque des revendications 1 à 7, comprenant, en outre, au moins une deuxième opération linéaire (G, H, I, J). Procédé selon la revendication 8, dans lequel ladite deuxième opération (G) est une opération de diffusion linéaire. Procédé selon l'une quelconque des revendications 1 à 9, comprenant, en outre, une opération (H) de rotation de mots binaires dans une donnée. Procédé selon l'une quelconque des revendications 1 à 10, comprenant, en outre, une opération (I) d'ajout d'une constante de tour. Procédé selon l'une quelconque des revendications 1 à 11, comprenant, en outre, une opération (J) de décalage de bits dans les mots binaires. Circuit de chiffrement adapté à mettre en oeuvre le procédé de chiffrement selon l'une quelconque des revendications 1 à 12. Mémoire comprenant un premier ensemble de données à chiffrer et un deuxième ensemble de données représentant les données du premier ensemble chiffrées par le procédé de chiffrement selon l'une quelconque des revendications 1 à 12.