Brevet FR2756441A1 — publié le 19980529

La présente invention concerne des protocoles de signatures numériques. Des méthodes de chiffrage à clés publiques sont bien connues et utilisent une clé publique et une clé privée qui sont liées mathématiquement. Les méthodes plus robustes sont basées sur l'irrésolvabilité du problème des logs discrets dans un groupe fini. De tels systèmes de chiffrage à clés publiques utilisent un élément d'un groupe et un générateur du groupe. Le générateur est un élément à partir duquel chaque autre élément du groupe peut être obtenu par une application répétée de l'opération sous- jacente du groupe, c'est-à-dire une composition répétée du générateur. Classiquement, ceci est considéré comme une élévation du générateur à une puissance entière et peut être manifesté, selon l'opération sous-jacente du groupe, comme une multiplication k fois du générateur ou comme une addition k fois au générateur. Dans un tel système de chiffrage à clé publique, un entier k est utilisé comme clé privée et est maintenu secret. Une clé publique correspondante est obtenue en élevant le générateur a à une puissance égale à l'entier k pour fournir une clé publique de la forme ak. La valeur de l'entier k ne peut pas être dérivée, même si l'exposant ak est connu. Les clés publique et privée peuvent être utilisées dans un échange de message par un système de communication de données dans lequel un premier des correspondants peut chiffrer les données au moyen de la clé publique ak du récepteur. Le récepteur reçoit le message chiffré et utilise sa clé privée k pour décrypter le message et restituer le contenu. Une interception du message ne donne pas le contenu puisque l'entier k ne peut pas être dérivé. Une technique similaire peut être utilisée pour vérifier l'authenticité d'un message en utilisant une signature numérique. Selon cette technique, l'émetteur du message signe le message au moyen d'une clé privée k et un récepteur peut vérifier que l'origine du message est bien l'émetteur en décryptant le message au moyen de la clé publique ak de l'émetteur. Une comparaison entre une fonction du message du texte en clair et du message recouvré confirme l'authenticité du message. I1 existe divers protocoles pour mettre en oeuvre une méthode de signature numérique et certains d'entre eux ont été largement utilisés. Il faut cependant, dans chaque protocole, se protéger contre une attaque existentielle dans laquelle un imposteur peut substituer à l'intérieur de l'émission un nouveau message qui conduit le récepteur à croire qu'il est en correspondance avec une personne particulière. Dès lors qu'une telle authentification est établie, le récepteur peut divulguer à l'émetteur une information qu'il ne devrait pas divulguer, ou lui attribuer incorrectement une information. Pour éviter les attaques existentielles, il est habituel que le message inclue certaines redondances, par exemple en répétant une partie ou, dans certains cas, la totalité du message. Ceci réalise la fonction du message qui confirme son authenticité. La redondance fournit à l'intérieur du message récupéré une redondance qui serait attendue par le récepteur. Toute tentative de fraude à l'aide du message ne produirait probablement pas une telle configuration lorsqu'il est décrypté et serait donc directement détectée. La redondance augmente cependant la longueur du message et donc la largeur de bande nécessaire pour émettre le message. Ceci est généralement indésirable et son effet est considéré comme une cadence réduite de transmission des messages. Mais la longueur du message est critique dans certaines applications puisque le message signé peut être reproduit en tant que document imprimé et que la longueur du message influence alors les dimensions du document imprimé. Une telle application concerne un environnement de courrier dans lequel un code à barres peut être utilisé pour indiquer une destination, un affranchissement, un tarif, et l'expéditeur. Pour éviter des fraudes, le message est signé numériquement par une autorité et un code à barres numérique, qui représente l'information contenue dans le message signé, est compilé. La représentation par code à barres présente des limitations physiques particulières quant à sa lisibilité et pour éviter des erreurs provoquées, par exemple, par de l'encre qui se répand. Par conséquent, un message long produit un code à barres de dimensions indues, en particulier lorsque la redondance nécessaire pour éviter l'attaque existentielle est constituée par une répétition du message complet. La longueur du message est particulièrement aiguë pour des signatures numériques de messages qui sont composés de blocs discrets, par exemple dans un environnement de courrier. Dans un protocole classique de signature, une clé secrète à court terme k, appelée la clé de session, est sélectionnée et est utilisée comme exposant du générateur a du groupe sous-jacent afin d'obtenir une clé publique à court terme r = ak. Une chaîne de bits, r', est dérivée de r et est utilisée pour chiffrer le message m pour obtenir le texte chiffré e, c'est-à-dire e = Er,(m), o Er' signifie l'application d'un algorithme de chiffrage au message (m) au moyen de la clé r' 4 2756441 Un composant de signature, s qui contient une information de validation d'authenticité de la signature à vérifier, est engendré. La nature du composant de signature dépend du protocole mis en oeuvre, mais un protocole typique cité à titre d'exemple utilise un composant de signature s de la forme s = ae + k mod (n) o n est l'ordre du groupe. Les valeurs s, e de la paire de signature sont en- voyés. Selon ce protocole, le récepteur calcule la valeur as (a-a)e o a-a est la clé publique de l'émetteur pour obtenir ak qui représente la clé publique à court terme r. Le texte chiffré e peut ensuite être déchiffré en utilisant la clé r' pour restituer le message m. Dans le cas d'un message composé de blocs multiples, c'est-à-dire m = ml; m2; m3, le texte chiffré e peut être obtenu pour le bloc m1 et la paire correspondante s, e peut être envoyée. Cependant, le composant de signature s dépend du chiffrage du premier bloc, ce qui laisse vulnérables les blocs ultérieurs. Il faut donc signer chaque bloc et envoyer des signatures multiples, tout ceci augmentant la longueur du message. C'est donc un but de la présente invention que de remédier aux inconvénients ci-dessus. En termes généraux, la présente invention engendre une chaîne de messages chiffrée e au moyen d'une clé r', et le texte chiffré est envoyé au récepteur. La chaîne de messages chiffrée e est également traitée par une fonction de hachage et le hachage résultant e' est utilisé dans la signature s. Le récepteur récupère le message en hachant la chaîne de messages e et utilise la valeur pour récupérer la clé de chiffrage r'. Le message peut ensuite être récupéré à partir de la chaîne de messages e. La redondance peut, si ceci est approprié, être contrôlée pour assurer l'exactitude du message mais il suffit de transférer une seule paire de signature. Puisque la signature est engendrée à partir du hachage de la chaîne de messages chiffré e, des blocs individuels de données ne peuvent pas être modifiés. Selon une autre préférence, le certificat qui accompagne le message peut être incorporé dans le message en tant que l'un des blocs, et être signé. Ce certificat possède la redondance requise pour l'authentification mais, puisque le hachage de la chaîne est utilisé dans la signature, le solde des blocs n'exige aucune redondance. Il est donc possible d' utiliser un message plus court. De façon plus spécifique, l'invention fournit selon un premier aspect, un protocole de signature numérique pour authentifier une information numérique transmise d'un premier correspondant à un autre par un système de communication de données, caractérisé en ce qu'il comprend les étapes consistant à: engendrer une clé publique à partir d'un entier, chiffrer un message contenant ladite information au moyen d'une clé de chiffrage dérivée de ladite clé publique afin de réaliser un texte chiffré dudit message, appliquer une fonction de hachage audit texte chiffré pour réaliser un hachage, engendrer un composant de signature incorporant ledit hachage et ledit entier, envoyer audit autre correspondant une paire de signature qui inclut ledit texte chiffré et ledit composant, hacher ledit texte chiffré reçu par ledit autre correspondant au moyen de ladite fonction de hachage afin d'obtenir un hachage reçu, utiliser ledit hachage reçu pour récupérer dudit composant de signature ladite clé de chiffrage, et restituer ledit message à partir dudit texte chiffré par application de ladite clé récupérée. Ledit texte chiffré peut être appliqué comme code discernable à un support d'information en vue d'un transfert d'un premier correspondant audit autre. Ledit code peut alors être un code à barres bidimensionnel. De façon avantageuse, le composant de signature de code peut inclure une deuxième clé privée dudit premier correspondant, la récupération de ladite clé de chiffrage utilisant une clé publique correspondant à ladite deuxième clé privée. Dans ce cas, ledit message peut inclure un certificat pour authentifier ladite clé publique correspondant à ladite deuxième clé privée, ledit certificat qui accompagne le message pouvant en particulier être incorporé dans le message en tant que l'un des blocs, et être signé. Ce certificat possède la redondance requise pour l'authentification mais, puisque le hachage de la chaîne est utilisé dans la signature, le solde des blocs n'exige aucune redondance. Il est donc possible d' utiliser un message plus court. Dans le cas avantageux de la deuxième clé privée décrit précédemment, ledit composant de signature peut être de la forme s = ae' + k o a est ladite deuxième clé privée, e' est ledit hachage du texte chiffré (e) et k est ledit entier. Ledit message peut être composé d'une série de messages discrets, qui sont chacun chiffrés et compilés pour former ledit texte chiffré. Ladite clé publique peut être dérivée d'un point d'une courbe elliptique. Selon un deuxième aspect, l'invention réalise un appareil de génération d'une signature numérique d'un message en vue d'une transmission par un système de communication de données, caractérisé en ce qu'il comprend un élévateur à une puissance pour engendrer une clé publique à partir d'une clé privée, un module de chiffrage pour chiffrer ledit message au moyen d'une clé dérivée de ladite clé publique, et engendrer un texte chiffré, une fonction de hachage pour opérer sur ledit texte chiffré et produire un hachage dudit texte chiffré, une unité arithmétique pour engendrer un composant de signature qui incorpore ledit hachage et ladite clé privée, et un émetteur pour émettre par ledit système de communication une paire de signature comprenant ledit composant de signature et ledit texte chiffré. Ladite unité arithmétique peut engendrer un composant de signature de la forme s = ae' + k o a est ladite deuxième clé privée, e' est ledit hachage du texte chiffré (e) et k est ledit entier. L'appareil peut inclure un générateur de code à barres pour produire sur un support un code à barres discernable de ladite paire de signature. Selon un troisième aspect, l'invention réalise un appareil de vérification d'une signature numérique reçue par un système de communication de données, caractérisé en ce qu'il inclut un dispositif récepteur pour recevoir une paire de signature qui inclut un composant de signature, incorporant une clé privée et un hachage de texte chiffré, d'un message et ledit texte chiffré, une fonction de hachage pour opérer sur ledit texte chiffré et fournir un hachage, une unité arithmétique pour récupérer une clé publique corrélée à ladite clé privée et un module de chiffrage pour appliquer audit texte chiffré une clé de chiffrage, dérivée de ladite clé publique, et récupérer ledit message. Ledit composant de signature (s) peut être de la forme s = ae' + k o a est une deuxième clé privée, e' est un hachage du texte chiffré et k est ladite clé privée. L'appareil peut inclure un lecteur de code à barres pour lire sur un support un code à barres représentant ladite paire de signature. Les buts, particularités et avantages de la présente invention ressortiront mieux de la lecture de la description qui suit de modes de réalisation préférés de l'invention, en se référant aux dessins annexés dans lesquels: la Figure 1 est une représentation schématique d'un système de communication de données; la Figure 2 est une représentation schématique d'un bloc de messages; la Figure 3 est un schéma logique représentant la génération d'une signature numérique et la récupération d'un message; et la Figure 4 est une représentation schématique, semblable à la Figure 2, d'une variante de mode de réalisation. En se référant donc à la Figure 1, un système 10 de communication de données inclut une paire de correspondants 12, 14 et un canal de communication 16. Comme indiqué par la ligne en trait plein, le canal de communication 16 peut être un canal continu entre les deux correspondants 12, 14 de sorte qu'une information numérique peut être transférée entre les correspondants. On comprend cependant que le canal 16 peut être interrompu comme représenté par les lignes en traits interrompus d'une manière telle que l'émetteur 12 communique avec un assembleur 18 de code à barres qui reçoit une information numérique, la convertit en un code à barres et imprime des marquages de code à barres sur une enveloppe 22. Les marquages 20 peuvent ensuite être lus par un lecteur 24 de code à barres et le message récupéré peut être communiqué au récepteur 14. Chacun des correspondants 12, 14 inclut une unité de chiffrage 26, 28, respectivement, qui peut traiter une information numérique et la préparer pour une transmission par le canal 16, comme décrit plus loin. Comme on peut le voir de la Figure 2, le correspondant 12 souhaite engendrer un message numérique m qui peut être chiffré et appliqué à l'enveloppe 22 par l'intermédiaire de l'assembleur de code à barres. Le message numérique m consiste en une série de blocs discrets ml, m2, m3,... qui représentent chacun un élément particulier d'information. Par exemple, le message m1 peut être l'adresse de l'émetteur, le message m2 peut être l'adresse du récepteur, le message m3 peut être le tarif postal appliqué, et le message m4 peut indiquer l'affranchissement débité et intervenir comme débit électronique. Afin de signer numériquement le message m, le correspondant 12 le traite par l'unité de chiffrage 26. L'unité 26 inclut un générateur 30 de nombres qui sélectionne un entier aléatoire k et calcule une clé publique à court terme r dans une unité 32 d'élévation à une puissance. L'unité 26 peut opérer selon l'une quelconque des méthodes établies de chiffrage mais un mise en oeuvre particulièrement avantageuse consiste à utiliser des courbes elliptiques dans un champ fini. La clé publique à court terme r est dérivée du générateur du groupe a qui est élevé à la puissance entière k de sorte que r = ak. Dans une mise en oeuvre à courbe elliptique, l'opération sous-jacente de champ est une addition de sorte que "l'élévation à la puissance" est obtenue par une addition k fois d'un point P de sorte que la clé publique est un point kP sur la courbe. Une chaîne r' de bits est obtenue à partir de r par application d'un algorithme prédéterminé, par exemple une réduction modulo ou, dans le cas o l'implantation est sur une courbe elliptique, une coordonnée du point qui représente la clé publique et est utilisée comme clé par l'unité de chiffrage pour chiffrer au module de chiffrage 34 chacun des blocs ml, m2, etc.. Les blocs chiffrés el, e2,... sont enchaînés dans un registre 36 pour former une chaîne de messages e o e = el//e3//... ek et o en général ei = Er,(mi)o L'unité de chiffrage 26 inclut une fonction de hachage h désignée par 38 qui traite la chaîne de texte chiffré e pour produire une chaîne de bits raccourcie comprenant un hachage e'. Des fonctions de hachage appropriées sont par exemple des fonctions de hachage cryptographique univoque comme SHA. Un composant de signature s est ensuite engendré par une unité arithmétique 40 qui utilise le hachage e' et la clé privée k d'o la clé de chiffrage r est dérivée. Un composant approprié est de la forme s = ae' + k mod(n), o a est la clé privée à long terme du correspondant 12, et k est la clé privée à court terme sélectionnée par le correspondant 12. L'unité de chiffrage assemble le message et envoie d'un émetteur 42 par le canal 16, comme paire de signature, la chaîne de messages e et le composant s de signature. Lorsqu'il est utilisé comme système de courrier, le message peut ensuite être compilé en un code discernable, par exemple un code à barres bidimensionnel, appliqué comme marquages 20 sur le support d'information 22 comme indiqué à la Figure 1, et être lu ensuite par le récepteur 14. Selon l'application particulière, les marquages peuvent être discernables visiblement, par exemple sous forme d'un code à barres imprimé, peuvent être discernables magnétiquement par une impression à l'encre magnétique, ou pourraient être lisibles optiquement par un laser. A la réception par le récepteur 14 par le dispositif récepteur 50, l'unité de chiffrage 28 calcule initialement la valeur de hachage e'* en hachant la chaîne de messages reçue e par la fonction de hachage comme indiqué en 52. Une clé publique r* liée à l'entier k est ensuite calculée dans l'unité arithmétique 54 en utilisant des opérations dans le champ sous-jacent pour élever le générateur a à la puissance égale à la valeur reçue du composant s et pour élever la clé publique du correspondant 12 à la puissance égale à la valeur de hachage calculée e'* c'est-à-dire, r* = as (a-a)e'* La clé de chiffrage r* est ensuite dérivée de la clé publique récupérée. Un module de chiffrage 56 traite ensuite la chaîne de messages reçue e en utilisant la clé de chiffrage r*' pour récupérer le message m. Le message m inclut la redondance nécessaire, qui peut être contrôlée pour déterminer l'authenticité du message. On comprend que la procédure exposée à la Figure 3 peut être mise en oeuvre sous forme de logiciel ou être exécutée sur un ordinateur polyvalent ou qu'elle peut être mise en oeuvre dans un circuit intégré spécialisé. On notera que la valeur de hachage e' est un hachage de tous les blocs chiffrés qui sont enchaînés et qu'il n'est donc pas possible de frauder l'un des blocs sans affecter la valeur de hachage résultante. Cependant, bien que de multiples blocs soient envoyés et récupérés, il suffit d'une seule signature, ce qui réduit la longueur d'ensemble du message. A la Figure 4 est représenté un autre mode de réalisation dans lequel des références numériques semblables indiquent des paramètres semblables, le suffixe a étant ajouté pour des raisons de clarté. Dans le mode de réalisation de la Figure 4, un certificat émis par une autorité de sécurité est inclus à l'intérieur du message m sous forme de bloc m5a du message. Le certificat inclut une information suffisante pour permettre une authentification de la clé publique du correspondant 12 et des paramètres du système sous-jacent. La chaîne de messages e est assemblée comme indiqué ci-dessus en chiffrant chacun des blocs pour fournir une chaîne ela, e2a, etc. qui inclut le certificat m5a. Le hachage e' est ensuite obtenu et utilisé pour engendrer un composant de signature sa de la forme Sa = ae'a + k mod(n) Lors de la récupération par le récepteur 14, le message récupéré inclut le certificat m5a qui présente la redondance requise en tant que partie des paramètres sous-jacents du système. La redondance du certificat m5a authentifie donc le message m et évite le besoin de redondance dans les blocs additionnels. Cependant, comme précédemment, le hachage utilisé dans la signature s est un hachage de tous les blocs, et il n'est donc pas possible de remplacer un bloc du message tout en retenant l'authenticité de la signature. On comprend que le composant de signature s peut être d'une forme appropriée quelconque, utilisée classiquement dans des protocoles de signatures numériques qui permettent la récupération d'une clé publique à court terme, et donc de la clé de chiffrage, à partir d'un hachage du message chiffré. REVENDICATIONS 1. Protocole de signature numérique pour authentifier une information numérique transmise d'un premier correspondant à un autre par un système de communication de données, caractérisé en ce qu'il comprend les étapes consistant à: engendrer (30) une clé publique à partir d'un entier (k), chiffrer (34) un message contenant ladite information au moyen d'une clé de chiffrage dérivée (32) de ladite clé publique afin de réaliser (36) un texte chiffré dudit message, appliquer une fonction de hachage (38) audit texte chiffré pour réaliser un hachage (e'), engendrer (40) un composant de signature (s) incorporant ledit hachage (e') et ledit entier (k), envoyer (42) audit autre correspondant une paire de signature qui inclut ledit texte chiffré (e) et ledit composant (s), hacher ledit texte chiffré (e) reçu (50) par ledit autre correspondant au moyen de ladite fonction de hachage (52) afin d'obtenir un hachage reçu (e'*), utiliser (54) ledit hachage reçu (e'*) pour récupérer dudit composant de signature ladite clé de chiffrage, et restituer (56) ledit message (m) à partir dudit texte chiffré (e) par application de ladite clé récupérée (r). 2. Protocole selon la revendication 1 caractérisé en ce que ledit texte chiffré (e) est appliqué comme code discernable à un support d'information en vue d'un transfert d'un premier correspondant audit autre. 3. Protocole selon la revendication 2, caractérisé en ce que ledit code est un code à barres bidimensionnel (20). 4. Protocole selon la revendication 1, caractérisé en ce que ledit composant de signature (s) de code inclut une deuxième clé privée dudit premier correspondant et la récupération de ladite clé de chiffrage utilise une clé publique correspondant à ladite deuxième clé privée. 5. Protocole selon la revendication 4 caractérisé en ce que ledit message inclut un certificat (m5a) pour authentifier ladite clé publique correspondant à ladite deuxième clé privée. 6. Protocole selon la revendication 4, caractérisé en ce que ledit composant de signature (s) est de la forme s = ae' + k o a est ladite deuxième clé privée, e' est ledit hachage du texte chiffré (e) et k est ledit entier. 7. Protocole selon la revendication 1 caractérisé en ce que ledit message (m) est composé d'une série de messages discrets (ml, m2, m3..) qui sont chacun chiffrés et compilés pour former ledit texte chiffré. 8. Protocole selon la revendication 1 caractérisé en ce que ladite clé publique est dérivée d'un point d'une courbe elliptique. 9. Appareil de génération d'une signature numérique d'un message (m) en vue d'une transmission par un système de communication de données, caractérisé en ce qu'il comprend un élévateur (32) à une puissance pour engendrer une clé publique (r) à partir d'une clé privée (k), un module de chiffrage (34) pour chiffrer ledit message (m) au moyen d'une clé dérivée de ladite clé publique (r), et engendrer (36) un texte chiffré (e), une fonction de hachage (38) pour opérer sur ledit texte chiffré (e) et produire un hachage (e') dudit texte chiffré, une unité arithmétique (40) pour engendrer un composant de signature qui incorpore ledit hachage (e') et ladite clé privée (k), et un émetteur (42) pour émettre par ledit système de communication une paire de signature (s,e) comprenant ledit composant de signature (s) et ledit texte chiffré (e). 10. Appareil selon la revendication 9 caractérisé en ce que ladite unité arithmétique (40) engendre un composant de signature de la forme s = ae' + k o a est ladite deuxième clé privée, e' est ledit hachage du texte chiffré (e) et k est ledit entier. 11. Appareil selon la revendication 9 caractérisé en ce qu'il inclut un générateur (18) de code à barres pour produire sur un support (22) un code à barres discernable (20) de ladite paire de signature. 12. Appareil de vérification d'une signature numérique reçue par un système de communication de données, caractérisé en ce qu'il inclut un dispositif récepteur (50) pour recevoir une paire de signature qui inclut un composant de signature (s), incorporant une clé privée (k) et un hachage (e') de texte chiffré (e), d'un message (m) et ledit texte chiffré (e), une fonction de hachage (52) pour opérer sur ledit texte chiffré (e) et fournir un hachage (e'*), une unité arithmétique (54) pour récupérer une clé publique corrélée à ladite clé privée (k) et un module de chiffrage (56) pour appliquer audit texte chiffré une clé de chiffrage, dérivée de ladite clé publique, et récupérer ledit message (m). 13. Appareil selon la revendication 12 caractérisé en ce que ledit composant de signature (s) est de la forme s = ae' + k o a est une deuxième clé privée, e' est un hachage du texte chiffré (e) et k est ladite clé privée. 14. Appareil selon la revendication 12 caractérisé en ce qu'il inclut un lecteur (24) de code à barres pour lire sur un support (22) un code à barres (20) représentant ladite paire de signature.