Brevet FR2881900A1 — publié le 20060811

La présente invention concerne un système cryptographique ou %lcryptosystème" qui peut être utilisé dans des applications très diverses et sous diverses formes, et elle concerne plus précisément un procédé de cryptographie de messages ainsi que des applications de ce procédé. On utilise des systèmes cryptographiques dans des applications qui concernent essentiellement deux grands domaines, d'une part les contrôles d'état civil et de filiation, d'authenticité, d'intégralité et de non répudiation, et d'autre part les contrôles de confidentialité, d'authenticité et de traçabilité des sources. Dans le premier domaine d'applications, on peut citer la messagerie, les titres identitaires, ainsi que les titres réglementaires. Dans le second domaine d'applications, on peut citer la vérification de la falsification des valeurs et la contrefaçon des objets. Suivant les applications, les conditions d'utilisation sont différentes. Ainsi, certaines applications nécessitent une sécurité particulièrement élevée, notamment sur les plans de la confidentialité, de l'intégralité des informations, de l'authentification ou de l'identification d'une entité, de la signature, de la validation, du contrôle d'accès, de la certification, etc., alors que, dans d'autres applications, ce sont les performances ou la facilité de mise en oeuvre qui sont les plus importantes. L'invention concerne un système cryptographique qui permet d'obtenir ces différents résultats, par mise en oeuvre de divers procédés cryptographiques. 1l est donc nécessaire de passer en revue les différents aspects mis en oeuvre dans le système cryptographique selon l'invention. Les principales catégories de systèmes cryptographiques sont d'une part les systèmes à clé privée (symétriques) et d'autre part les systèmes à clé publique (asymétriques). Les systèmes cryptographiques à clé privée, destinée à rester secrète, mettent en oeuvre soit un chiffrement par blocs, soit un chiffrement de flux. L'invention met en oeuvre des chiffrements par blocs. Dans ce type de 2881900 2 chiffrement, le message clair est séparé en blocs de longueur fixe, et un algorithme chiffre un bloc à la fois. La sécurité augmente lorsque les blocs ont une longueur plus grande, mais la durée du traitement augmente alors nota- blement. Le chiffrement par blocs met en oeuvre des modes d'opération et des transformations. Les modes d'opération sont des méthodes de chiffrement par blocs dont un certain nombre ont été normalisées. Elles comprennent essentiellement les quatre modes d'opération ECB ("Electronic Codebook"), CBC ("Cipher Block Chaining"), CFB ("Cipher Feedback") et OFB ("Output Feedback") qui sont de plus en plus complexes et lourds à mettre en oeuvre. Le plus simple mode d'opération est le mode ECB ("Electronic Codebook") qui comprend l'application d'un algorithme au bloc du message clair. Ce mode d'opération a deux inconvénients. le premier est que, si le message comporte deux parties identiques de texte clair, le cryptogramme obtenu donnera des parties de résultats identiques. Le second inconvénient est qu'il est nécessaire de disposer d'un certain nombre de caractères du message clair avant de pouvoir commencer le chiffrement. Dans la plupart des domaines que concerne l'invention, seul le premier problème est véritablement important. Les transformations, utilisées dans le chiffrement par blocs, sont le chiffrement par substitution, le chiffrement par transposition et le chiffrement par produit qui est la combinaison des deux précédents. L'autre catégorie de systèmes cryptographiques est à base de clé publique. Dans de tels systèmes, un message clair est transformé en cryptogramme avec une clé publique, et le cryptogramme est transformé en message clair à l'aide de la clé privée du destinataire. Ces systèmes à clé publique ont l'inconvénient de nécessiter beaucoup d'opérations, et ils ne sont donc pas recommandés lorsqu'il faut transmettre des quantités importantes d'informations. 2881900 3 Ces systèmes mettent en oeuvre un certain nombre de technologies destinées à authentifier les destinataires. On utilise ainsi des techniques de signature numérique, de factorisation et des logarithmes discrets notamment. L'invention concerne un système cryptographique dans lequel sont mises en oeuvre des opérations dont l'exécution est simple, mais qui appartiennent à des types différents, de sorte que les performances peuvent être très élevées avec cependant des niveaux de sécurité importants. En particulier, la clé nécessaire au déchiffrement change à chaque bloc, si bien que, dans le cas improbable de casse de la clé d'un bloc, celle-ci n'est pas réutilisable pour un autre bloc. L'invention combine essentiellement des opérations de chiffrement par substitution et des modes d'opération simples, avec un traitement algorithmique. La sécurité est accrue grâce à l'utilisation, en plus d'une clé multiple privée, d'une clé secondaire. Cette clé secondaire pour chaque bloc peut être de diverses sources, par exemple une clé aléatoire et/ou tirée d'une clé publique. Plus précisément, l'invention concerne un procédé de cryptographie de messages clairs formés de caractères tirés d'un alphabet, à l'aide d'une clé multiple privée et d'une clé secondaire; il comprend le découpage en blocs ayant un nombre déterminé de caractères, et, pour chaque bloc, - une première étape de chiffrement de chaque bloc avec une première partie de la clé multiple privée, - la détermination d'une clé intermédiaire spécifique au bloc à partir de la clé multiple privée et de la clé secondaire, - le traitement de chaque bloc par au moins un algorithme qui dépend de la clé intermédiaire, ce traitement donnant un bloc traité, et une seconde étape de chiffrement du bloc traité, puis pour l'ensemble des blocs, la formation d'un cryptogramme qui comprend les blocs traités et des caractères représentatifs de la clé secondaire. 2881900 4 Dans un mode d'exécution avantageux, la première étape de chiffrement de chaque bloc comprend une première phase de chiffrement par substitution avec une première partie de la clé multiple privée, et une seconde phase de chiffrement par un premier algorithme. De même, il est avantageux que la seconde étape de chiffrement de chaque bloc comprenne une troisième phase de chiffrement par un premier algorithme, et une quatrième phase de chiffrement par substitution avec la première partie de la clé multiple privée. Dans un mode d'exécution, la clé secondaire est construite à partir d'une clé publique, et la détermination de la clé intermédiaire comprend l'utilisation de la clé publique, de la clé multiple privée et d'au moins un carac- tère du bloc, afin que la clé intermédiaire soit spécifique au bloc. Dans un autre mode d'exécution, la clé secondaire comporte au moins un nombre aléatoire, par exemple deux nombres aléatoires. Dans un autre mode d'exécution, la clé secondaire peut être obtenue à partir de tout autre système cryptographique connu, par exemple tel que décrit en référence à la figure 3 du document WO 2004/006498. Il est avantageux que le traitement comporte en plus l'insertion d'au moins un caractère représentatif de la clé secondaire. Par exemple, la formation du cryptogramme comprend l'insertion d'au moins un caractère représentatif de la clé secondaire dans le bloc à au moins à une position définie à l'aide de la clé secondaire. En outre ou à la place, la formation du cryptogramme comprend l'insertion d'au moins un caractère représentatif de la clé secondaire dans le bloc à au moins à une position définie de manière récurrente d'un bloc au suivant. Dans un mode d'exécution, la formation du cryptogramme comprend la disposition du cryptogramme en deux parties, l'une étant lisible par un premier moyen de lecture et l'autre par un second moyen de lecture. Par exemple, le premier moyen de lecture fonctionne dans le spectre visible, 2881900 5 et le second moyen de lecture fonctionne en dehors du spectre visible ou est un moyen de lecture magnétique. Il est avantageux que l'étape de découpage en blocs comprenne l'addition de caractères aléatoires afin que tous les blocs contenant des caractères significatifs aient une même longueur. De préférence, le procédé comporte en outre l'addition d'un bloc tronqué à la fin du cryptogramme, afin que celui-ci ne soit pas toujours un multiple de la longueur des blocs. L'invention concerne aussi une application du procédé des paragraphes précédents à une installation qui comprend un premier réseau privé protégé muni d'un émetteur et un second réseau privé protégé muni d'un récepteur, l'appli- cation comprenant la transmission du cryptogramme de l'émetteur au récepteur par un moyen qui n'est pas protégé. D'autres caractéristiques et avantages de l'invention seront mieux compris à la lecture de la description qui va suivre d'un exemple d'exécution, faite en référence au des- sin annexé sur lequel la figure unique est un schéma d'une installation mettant en oeuvre le procédé selon l'invention. La figure unique représente schématiquement une installation qui transmet des cryptogrammes suivant un procédé selon l'invention. Sur la figure, la référence 10 désigne un émetteur raccordé à un réseau privé protégé 12. Un cryptogramme transmis par un réseau 14, par exemple un réseau téléphonique ou Internet, parvient à un récepteur 16 qui fait aussi partie d'un réseau privé protégé 18. Le système n'est vulnérable que par le réseau compris entre l'émetteur et le récepteur. Un tiers peut effectivement obtenir le cryptogramme et le soumettre à toutes sortes d'attaques. Cependant, compte tenu de la diversité des technologies mises en oeuvre, un temps considérable est déjà nécessaire pour "casser" un seul bloc. Le résultat obtenu ne peut pas être réutilisé pour les blocs suivants, si bien que le déchiffrement sans connaissance de la clé multiple privée est en pratique impossible. 2881900 6 On décrit maintenant un exemple de mise en oeuvre de l'invention. On suppose qu'un message clair initial comporte 67 caractères. Il est divisé en blocs, par exemple de 7 carac- tères. Les trois caractères manquants pour obtenir dix blocs complets sont ajoutés sous forme de caractères de remplis-sage à la fin du message. Ensuite, chaque bloc subit un chiffrement par substitution à l'aide d'une première partie de la clé multiple privée, cette première partie étant sous forme d'un alphabet, par exemple à 45, 60 ou 67 caractères. Le résultat peut être présenté sous forme alphanumérique ou numérique, par exemple sous forme de nombres successifs, par exemple à deux chiffres. Le message subit alors un chiffrement par un algorithme exécuté séparément sur chaque bloc. Cet algorithme peut être par exemple de type factorielle; dans ce cas, il est souhaitable que le nombre de caractères de chaque bloc ne soit pas trop élevé, car le temps de calcul pourrait augmenter excessivement. Avant, pendant ou après ces opérations, une clé secondaire est obtenue. Bien que cette clé secondaire puisse être construite à partir d'une clé publique, dans un mode de réalisation avantageux de l'invention, cette clé secondaire est sous forme d'un couple de nombres aléatoires, par exemple à deux chiffres. Un traitement algorithmique de ces nombres donne par exemple d'une part une fonction utilisée comme algorithme constituant une clé intermédiaire, et d'autre part deux positions dans un bloc de neuf caractères (sept caractères de chaque bloc, plus deux caractères correspondant aux deux nombres aléatoires). La clé intermédiaire ainsi obtenue est utilisée pour chiffrer le message obtenu lors de l'opération précédente. Ensuite, le bloc est chiffré à l'aide d'un autre algo- rithme, correspondant à celui qui a déjà été utilisé, puis est chiffré par substitution. Ensuite, les deux nombres aléatoires de chaque bloc, correspondant à deux caractères, sont insérés dans ce bloc 2881900 7 aux positions précédemment définies. Les blocs sont alors chaînés pour former un message chiffré ou cryptogramme. Un bloc tronqué, dont le rôle est d'éviter que tous les cryptogrammes aient un même nombre de caractères ou que ce nombre soit un multiple de celui des blocs, est éventuellement ajouté. De préférence, les positions définies à partir des nombres aléatoires ne sont pas simplement définies par les deux nombres, mais sont obtenues de façon récurrente, par utilisation des positions dans le bloc précédent par exemple. Comme ce traitement ne porte que sur deux nombres à deux chiffres seulement, il est rapide et n'augmente pas excessivement la durée de l'ensemble du chiffrement. Lorsque le cryptogramme doit être déchiffré, la pre- mière opération est la détermination des nombres aléatoires. Ces deux nombres, ou l'un au moins, peuvent avoir une position définie dans un bloc, tel que le premier, le dernier ou un bloc déterminé. Une fois connus le premier nombre et la loi de récurrence, l'ensemble des nombres aléatoires pour tous les blocs peut être reconstruit. A ce moment, les caractères du cryptogramme correspondant à ces nombres sont retirés, et les blocs de sept caractères sont rétablis. Les opérations de déchiffrement peuvent alors être exécutées, à l'aide de la clé multiple privée, dans l'ordre inverse des opérations utilisées pour le chiffrement. On a décrit la formation d'un cryptogramme en considérant simplement un message clair indépendamment de sa signification, et de sa structure. Dans un exemple de message clair, utilisé pour déter- miner l'authenticité d'objets produits, le message peut comporter, avec un format défini, un numéro de série de produit, un identifiant d'enseigne, une date de fabrication, des codes définissant une usine, une chaîne, un produit, éventuellement l'origine de composants à risque. Le message peut aussi comprendre des coordonnées géographiques du lieu de destination, un pays, une région, un département, etc. De telles informations permettent une traçabilité amont et une traçabilité aval. 2881900 8 Après déchiffrement, et par comparaison à des données d'une base de données, il est possible de définir, d'après le numéro de série, si l'article est contrefait, d'après l'identifiant d'enseigne, si l'origine est suspecte, d'après les coordonnées du lieu, si la livraison est suspecte, etc. On a indiqué que le message était transmis par un réseau. Cependant, dans le cas de produits, le message peut être porté par les produits eux-mêmes. Il est possible que le produit porte la totalité du message. Un tel message peut alors éventuellement être reproduit par photocopie. La photocopie peut être déterminée soit par des moyens techniques (réduction de définition), soit par comparaison à une base de données. Cependant, il est possible d'assurer une protection supplémentaire dans ce cas. En effet, il est possible de diviser le cryptogramme en au moins deux parties qui ne sont pas visibles simultanément. Par exemple, une première partie est visible à la lumière naturelle, et une seconde partie n'est visible qu'à la lumière infrarouge ou par lecture magnétique. De telles caractéristiques augmentent la complexité du déchiffrement non autorisé à un point tel que la sécurité est presque absolue. Ainsi, l'invention permet la réalisation d'un système cryptographique dans lequel la protection des messages est extrêmement élevée. Cependant, il existe aussi un certain nombre d'applications dans lesquelles la sécurité, bien que primordiale, n'a qu'une importance moindre à cause par exemple du faible coût des produits sur lesquels sont apposés les cryptogrammes. Il est alors possible d'utiliser un traitement simplifié. Par exemple, un seul nombre aléatoire peut avoir une position toujours identique dans les blocs, et il peut être utilisé pour la sélection d'un alphabet particulier parmi une série d'alphabets comprise dans la clé privée multiple. Grâce à la combinaison de plusieurs méthodes simples de chiffrement, les inconvénients de chacune d'elles sont supprimés par la présence des autres. Ainsi, l'inconvénient principal du chiffrement par blocs, qui est qu'un même texte 2881900 9 clair donne toujours un même résultat après chiffrement, est supprimé grâce à la clé secondaire qui est différente à chaque bloc. Un même message clair ne donne pas deux fois le même résultat. Lorsque la sécurité l'exige, le procédé peut être à deux niveaux: d'abord, un procédé tel que décrit est exécuté par l'émetteur, ensuite l'émetteur transmet le cryptogramme transformé par le système à clé publique, et le destinataire déchiffre le message reçu avec sa clé privée correspondant à la clé publique, puis déchiffre le cryptogramme suivant le procédé décrit dans le présent mémoire. Bien entendu, les diverses caractéristiques décrites précédemment peuvent être combinées de diverses manières sans sortir du cadre de l'invention. Les principaux avantages du système cryptographique décrit sont: -sa légèreté, due à la simplicité des traitements et à l'absence (possible) de clé publique, - sa sécurité, grâce à la diversité des traitements exécutés en cascade et sans corrélation, - sa latitude d'adaptation du niveau de sécurité à l'application particulière, - sa souplesse d'adaptation aux situations existant dans l'application particulière, et - son coût réduit obtenu grâce à la rapidité des trai- tements et à la simplicité de mise en oeuvre. L'invention, grâce à ces avantages, convient à de très nombreuses applications. Un premier groupe d'applications concerne la sécuri- sation des titres identitaires (par exemple cartes d'iden- tité), réglementaires (par exemple cartes de véhicule) et de l'économie (par exemple permis de travail). Un second groupe d'applications concerne la sécuri- sation des moyens de paiement (par exemple cartes bancaires) et des billets (par exemple des billets de spectacle). Un troisième groupe d'applications concerne la légali- sation d'informations échangées par messagerie ou portées 2881900 10 par des puces électroniques (par exemple confirmation de certification de signataire). Un quatrième groupe d'applications concerne l'authentification des marchandises et des objets (par exemple fraude et contrefaçon dans les domaines du luxe, de la musique, etc.). Un cinquième groupe d'applications concerne le chiffre-ment et le cryptage sans clé publique (par exemple la sécurisation des transferts de données, dans les réseaux d'informations). REVENDICATIONS 1. Procédé de cryptographie de messages clairs formés de caractères tirés d'un alphabet, à l'aide d'une clé multiple privée et d'une clé secondaire, caractérisé en ce qu'il comprend: - le découpage en blocs ayant un nombre déterminé de caractères, et, pour chaque bloc, -une première étape de chiffrement de chaque bloc avec 10 une première partie de la clé multiple privée, - la détermination d'une clé intermédiaire spécifique au bloc à partir de la clé multiple privée et de la clé secondaire, - le traitement de chaque bloc par au moins un algo-15 rithme qui dépend de la clé intermédiaire, ce traitement donnant un bloc traité, et - une seconde étape de chiffrement du bloc traité, et pour l'ensemble des blocs - la formation d'un cryptogramme qui comprend les blocs traités et des caractères représentatifs de la clé secondaire. 2. Procédé selon la revendication 1, caractérisé en ce que la première étape de chiffrement de chaque bloc comprend une première phase de chiffrement par substitution avec une première partie de la clé multiple privée, et une seconde phase de chiffrement par un premier algorithme. 3. Procédé selon l'une des revendications 1 et 2, caractérisé en ce que la seconde étape de chiffrement de chaque bloc comprend une troisième phase de chiffrement par un premier algorithme, et une quatrième phase de chiffrement par substitution avec la première partie de la clé multiple privée. 4. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que la clé secondaire 35 comporte au moins un nombre aléatoire. 5. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que la formation du cryptogramme comprend l'insertion d'au moins un caractère 2881900 12 représentatif de la clé secondaire dans le bloc à au moins à une position définie à l'aide de la clé secondaire. 6. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que la formation du crypto- gramme comprend l'insertion d'au moins un caractère représentatif de la clé secondaire dans le bloc à au moins à une position définie de manière récurrente d'un bloc au suivant. 7. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que la formation du cryp- togramme comprend la disposition du cryptogramme en deux parties, l'une étant lisible par un premier moyen de lecture et l'autre par un second moyen de lecture. 8. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que l'étape de découpage en blocs comprend l'addition de caractères aléatoires afin que tous les blocs contenant des caractères significatifs aient une même longueur. 9. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que le procédé comporte en outre l'addition d'un bloc tronqué au cryptogramme. 10. Application du procédé selon l'une quelconque des revendications précédentes à une installation qui comprend un premier réseau privé protégé muni d'un émetteur et un second réseau privé protégé muni d'un récepteur, comprenant la transmission du cryptogramme de l'émetteur au récepteur par un moyen qui n'est pas protégé.