Brevet FR2814620A1 — publié le 20020329

PROCEDE DE TRANSMISSION ACCELERE DE SIGNATURE ELECTRONIQUE La présente invention concerne un procédé de transmission accéléré de signature électronique de type signature électronique à clef publique. Dans le modèle classique de la cryptographie à clef secrète, deux personnes désirant communiquer par l'intermédiaire d'un canal non sécurisé doivent au préalable se mettre d'accord sur une clé secrète de chiffrement K. La fonction de chiffrement et la fonction de déchiffrement utilisent la même clef K. L'inconvénient du système de chiffrement à clé secrète est que ledit système requiert la communication préalable de la clé K entre les deux personnes par l'intermédiaire d'un canal sécurisé, avant qu'un quelconque message chiffré ne soit envoyé à travers le canal non sécurisé. Dans la pratique, il est généralement difficile de trouver un canal de communication parfaitement sécurisé, surtout si la distance séparant les deux personnes est importante. On entend par canal sécurisé un canal pour lequel il est impossible de connaître ou de modifier les informations qui transitent par ledit canal. Un tel canal sécurisé peut être réalisé par un câble reliant deux terminaux, possédés par les deux dites personnes. Le concept de cryptographie à clef publique fut inventé par Whitfield DIFFIE et Martin HELLMAN en 1976. La cryptographie à clef publique permet de résoudre le problème de la distribution des clefs à travers un canal non sécurisé. Le principe de la cryptographie à clef publique consiste à utiliser une paire de clefs, une clef publique de chiffrement et une clef privée de déchiffrement. Il doit être calculatoirement infaisable de trouver la clef privée de déchiffrement à partir de la clef publique de chiffrement. Une personne A désirant communiquer une information à une personne B utilise la clef publique de chiffrement de la personne B. Seule la personne B possède la clef privée associée à sa clef publique. Seule la personne B est donc capable de déchiffrer le message qui lui est adressé. Un autre avantage de la cryptographie à clé publique sur la cryptographie à clé secrète est que la cryptographie à clef publique permet l'authentification par l'utilisation de signature électronique. La première réalisation de schéma de chiffrement à clef publique fut mise au point en 1977 par Rivest, Shamir et Adleman, qui ont inventé le système de chiffrement RSA. La sécurité de RSA repose sur la difficulté de factoriser un grand nombre qui est le produit de deux nombres premiers. Depuis, de nombreux systèmes de chiffrement à clef publique ont été proposés, dont la sécurité repose sur différents problèmes calculatoires ; (cette liste n'est pas exhaustive). Sac à dos"de Merckle-Hellman : Ce système de chiffrement est basé sur la difficulté du problème de la somme de sousensembles - McEliece : Ce système de chiffrement est basé sur la théorie des codes algébriques. Il est basé sur le problème du décodage de codes linéaires ; - ElGamal : Ce système de chiffrement est basé sur la difficulté du logarithme discret dans un corps fini ; - Courbes elliptiques : Le système de chiffrement à courbe elliptique constitue une modification de systèmes cryptographiques existant pour les appliquer au domaine des courbes elliptiques. L'avantage des systèmes de chiffrement à courbes elliptiques est qu'ils nécessitent une taille de clef plus petite que pour les autres systèmes de chiffrement. Le système de chiffrement RSA est le système de chiffrement à clé publique le plus utilisé. Il peut être utilisé comme procédé de chiffrement ou comme procédé de signature. Le système de chiffrement RSA est utilisé dans les cartes à puce, pour certaines applications de celles-ci. Les applications possibles de RSA sur une carte à puce sont l'accès à des banques de données, des applications bancaires, des applications de paiements à distance comme par exemple la télévision à péage, la distribution d'essence ou le paiement de péages d'autoroute. Le principe du système de chiffrement RSA est le suivant. Il peut être divisé en trois parties distinctes qui sont : l) La génération de la paire de clés RSA ; 2) Le chiffrement d'un message clair en un message chiffré, et 3) Le déchiffrement d'un message chiffré en un message clair. La première partie est la génération de la clef RSA. Chaque utilisateur crée une clé publique RSA et une clé privée correspondante, suivant le procédé suivant en 5 étapes : 4. Générer deux nombres premiers distincts p et q de même taille ; 5. Calculer n=pq et = (p-l) (q-1) ; 6. Sélectionner aléatoirement un entier e, l 7. Calculer l'unique entier d, 1 8. La clé publique est (n, e) ; la clé privée est d ou (d, p, q). Les entiers e et d sont appelés respectivement exposant de chiffrement et exposant de déchiffrement. L'entier n est appelé le module. La seconde partie consiste au chiffrement d'un message clair noté m au moyen d'un algorithme avec l Calculer c=m^e mod n. La troisième partie consiste au déchiffrement d'un message chiffré utilisant l'exposant privé d de déchiffrement au moyen d'un algorithme. L'algorithme de déchiffrement d'un message chiffré noté c avec l Calculer m=cad mod n. Le système RSA peut également être utilisé pour générer des signatures électroniques. Le principe d'un schéma de signature électronique basé sur le système RSA peut généralement être défini en trois parties : La première partie étant la génération de la clef RSA, en utilisant le méthode décrite dans la première partie du système RSA décrite précédemment ; La deuxième partie étant la génération de la signature. Le procédé consiste à prendre en entrée le message M à signer, à lui appliquer un encodage utilisant une fonction ju. pour obtenir la chaîne de caractère p. (M), et à appliquer le procédé de déchiffrement de la troisième partie du système RSA décrit précédemment. Ainsi, seule la personne possédant la clef privée peut générer la signature ; La troisième partie étant la vérification de la signature. Le procédé consiste à prendre en entrée le message M à signer et la signature s à vérifier, à appliquer un encodage au message M en utilisant une fonction pour obtenir la chaîne de caractère (M), à appliquer à la signature s le procédé de chiffrement décrit dans la deuxième partie du système RSA, et à vérifier que le résultat obtenu est égal à jn. (M). Dans ce cas, la signature s du message M est valide, et dans le cas contraire elle est fausse. Il existe de nombreux procédés d'encodage utilisant différentes fonctions p.. Un exemple de procédé d'encodage est le procédé décrit dans le standard ISO/IEC 9796-2, Information Technology-Security techniques-Digital signature scheme giving message recovery, Part 2 : Mechanisms using a hash-function, 1997 . Un autre exemple de procédé d'encodage est le procédé d'encodage décrit dans le standard RSA Laboboratories, PKCS#l : RSA cryptography spécifications, version 2. 0, September 1998 . Ces deux procédés d'encodage permettent de signer des messages de taille arbitrairement longue. L'inconvénient des deux procédés d'encodage cités précédemment est qu'ils nécessitent la transmission d'une signature électronique de la taille du module RSA, soit typiquement 1024 bits. Pour certaines applications des procédés de signature électronique, il arrive que la clef privée de l'utilisateur soit connue de l'entité vérifiant la signature, en particulier lorsque cette entité est une autorité de certification ou une banque. Le procédé de l'invention consiste à ne transmettre qu'une partie S'de la signature S d'un message M. Le procédé de l'invention consiste en deux parties distinctes, la première étant la génération de la signature courte, la deuxième étant la vérification de la signature courte par l'entité disposant de la clef privée de l'utilisateur. Le procédé de génération de la signature courte prend en entrée un message M et la clef privée d de l'utilisateur, et comprend les étapes suivantes : 1) Génération de la signature S du message M à l'aide de la clef privée d de l'utilisateur. 2) Calcul d'une partie S'de la signature S, ladite partie pouvant être une chaîne de bits inclue dans la signature S. Le procédé de vérification de la signature courte prend en entrée un message M, la signature courte S'à vérifier, et la clef privée d de l'utilisateur, et comprend les étapes suivantes : 1) Génération de la signature S du message M à l'aide de la clef privée d de l'utilisateur. 2) Calcul d'une partie S''de la signature S, et vérification que la partie S''est égale à la signature courte S'. L'avantage du procédé de génération et de vérification de signature courte est que la taille de la signature à transmettre est beaucoup plus faible que dans le cas général : il est ainsi possible de ne transmettre que 64 bits de la signature au lieu de 1024 bits. Il en résulte de meilleures performances dues à des temps de transmission plus faibles. REVENDICATIONS 1. Procédé de signature électronique consistant à ne transmettre qu'une partie S'de la signature S d'un message M, caractérisé en ce qu'il comprend deux parties distinctes, la première étant la génération de la signature courte, la deuxième étant la vérification de la signature courte par l'entité disposant de la clef privée de l'utilisateur. 2. Procédé suivant la revendication 1, caractérisé en ce que la génération de la signature courte comporte les 2 étapes suivantes : 1) Génération de la signature S du message M à l'aide de la clef privée d de l'utilisateur. 2) Calcul d'une partie S'de la signature S. 3. Procédé suivant la revendication 1, caractérisé en ce que la vérification de la signature S du message M à l'aide de la clef privée d de l'utilisateur comporte les 2 étapes suivantes : 1) Génération de la signature S du message M à l'aide de la clef privée d de l'utilisateur ; 2) Calcul d'une partie S''de la signature S, et vérification que la partie S''est égale à la signature courte S'. 4) Procédé suivant l'une quelconque des revendications 2 ou 3, caractérisé en ce que les partie S'et S''de la signature S sont une chaîne de bits incluse dans la signature S. 5) Procédé suivant l'une quelconque des revendications précédentes, caractérisé en ce que le système de signature utilisé est basé sur le système RSA. 6) Procédé suivant la revendication 1, caractérisé en ce que l'entité vérifiant la signature est une banque. 7) Procédé suivant la revendication 1, caractérisé en ce que l'entité vérifiant la signature est une autorité de certification. 8) Procédé suivant l'une quelconque des revendications précédentes, caractérisé en ce qu'il utilise un objet portable de type carte à puce.