Brevet FR2737369A1 — publié le 19970131

Description: La présente invention concerne un système de communication de messages cryptés selon un procédé de type R.S.A. impliquant des nombres-clés "d" et "e" et un nombre module N tel que "N" est le produit de deux facteurs "p" et i"q" qui sont des nombres premiers N = p.q et que e.d = lmode(N) o 9(N) est la fonction indicateur d'Euler, système comportant d'une part au moins un dispositif de cryptage formé: - de moyens de découpage pour découper le message à crypter en au moins une partie de message à crypter, - de moyens d'exponentiation pour effectuer, sur chaque partie de message à crypter, une opération d'exponentiation modulaire de module "N" et avec un exposant égal à un premier desdits nombres clé, en vue de fournir une partie de message cryptée et d'autre part au moins un dispositif de décryptage. L'invention concerne aussi un procédé mis en application dans le système, un dispositif utilisateur, genre carte à microcircuit comportant sur le même support un dispositif de cryptage et un dispositif de décryptage et un centre serveur dit de confiance pour traiter des informations entre les différents dispositifs utilisateurs. Un procédé de ce genre est décrit dans l'article intitulé "Fast decipherement algorithm for a public-Key Cryptosystem" avec comme auteurs MM. J.J. Quisquater et C. Couvreur, paru dans la revue ELECTRONICS LETTERS du 14 OCTOBRE 1982. Ce procédé implique l'utilisation du théorème du reste chinois pour obtenir un décryptage rapide sans nuire aux qualités du procédé R.S.A. La présente invention, basée aussi sur le théorème du reste chinois, propose un système pour lequel le procédé de décryptage est encore, dans une très large mesure, amélioré en ce qui concerne la rapidité du processus de décryptage. Pour cela, un tel système est remarquable en ce qu'il comporte au moins un dispositif de décryptage formé: - de moyens de détermination de module pour déterminer un module de décryptage choisi parmi lesdits facteurs, de premiers moyens de réduction modulaire pour faire une première réduction modulaire sur le nombre "d" avec un module égal audit module de décryptage diminué d'une unité pour fournir un nombre réduit, - de deuxièmes moyens de réduction pour faire une deuxième réduction modulaire sur chaque partie de message cryptée avec un module égal audit module de décryptage en vue de fournir une partie de message cryptée réduite, - de deuxièmes moyens d'exponentiation pour effectuer une exponentiation modulaire sur chaque partie de message cryptée réduite avec un module égal audit module de décryptage et avec un exposant égal audit nombre réduit en vue de rétablir ledit message. ' Ainsi grâce aux mesures préconisées par l'invention, il n'est plus nécessaire d'effectuer l'opération de combinaison des restes voir formule (1) de l'article précité. La description suivante faite en regard des dessins ci-annexés, le tout donné à titre d'exemple non limitatif, fera bien comprendre comment l'invention peut être réalisée. La figure 1 montre un système de communication conforme à l'invention. La figure 2 montre un organigramme de cryptage conforme à l'invention. La figure 3 montre un organigramme de décryptage conforme à l'invention. La figure 4 montre le schéma d'un dispositif utilisateur. La figure 5 montre un système conforme à l'invention impliquant un serveur dit de confiance et une pluralité de dispositifs entre utilisateurs. A la figure 1, la référence 1 indique le dispositif de cryptage. Celui-ci reçoit un message M par exemple "BONJOUR". Ce message est découpé en parties de message à crypter par des moyens de découpage 3. Ces parties sont constituées par chacune des lettres qui le compose et l'on obtient une suite de codes numériques, par exemple les codes numériques en décimal M1 = 66, M2 = 79, M3 = 78, M4 = 74, M5 = 79, M6 = 85, M7 = 82 qui représentent les codes ASCI de "BONJOUR". Des moyens d'exponentiation 5 effectuent des exponentiations sur ces codes numériques en prenant des paramètres "e" et "N" selon des mesures dont la première découle directement de l'invention: - On prend des nombres p et q supérieurs à 255: p = 263 et q = 311 d'o N = p.q = 81793. - On choisit "e" tel qu'il soit premier avec p-l et q-1 soit: e = 17. - On détermine maintenant d: e.d = 1MOD f(N) Dans le cas o p et q sont premiers p(N) = (p-1).(q-1) soit: e.d = lmod(440610) Parmi les "d" qui satisfont la relation ci-dessus, on peut prendre 54943. En principe "d" n'est pas connu au niveau du dispositif de cryptage 1. Les moyens 5 peuvent alors coder le message en effectuant sur chacun des codes précités l'opération d'exponentiation modulaire: Ci = Mi 17mod(N) i= 1...7 d'o le message codé comportant les parties cryptées: ci = 62302, C2 = 47322, C3 = 74978, C4 = 00285, C5 = 47322, c6 = 09270, C7 = 54110. Conformément à l'invention, pour décrypter ce message, il est prévu un dispositif de décryptage 10. Ce dispositif utilise un premier moyen de détermination de module de décryptage parmi les nombres "p" et "q", on choisit, de préférence le plus petit, pour s'économiser des calculs, soit: p (= 263) des deuxièmes moyens effectuent l'opération de réduction modulaire sur le nombre "d" dr = 54943 mod 262 = 185 On réduit ensuite, selon le module "p", les parties de messages cryptées. Crl = 62302 mod 263 = 234 et respectivement Cr2 = 245, Cr3 = 023, Cr4 = 022, Cr5 = 245, Cr6 = 065, Cr7 = 195, d'o les parties de message décryptées: ml = Crl mod 263 = 66 79 rmod 263 2 = Cr2 mod 263 = 79 m3 = Cr3 m5 od 263 = 78 4 = Cr4 5mod 263 = 74 m5Cr15 795 m5 =r5 mod 263 = 79 m6 = Cr6 85mod 263 = 85 m7 Cr7 185 = 82 =7 Cr7 mod 263 82 Le message "m" est alors restitué par concaténation et par transcription en caractères usuels par les moyens de reconstitution finaux 4. Si tout s'est bien passé, m = M. Le dispositif de cryptage 1 et le dispositif de décryptage 10 sont en fait réalisés à partir de processeurs programmés pour exécuter les organigrammes montrés aux figures 2 et 3 suivantes. L'organigramme de la figure 2 explicite le fonctionnement du dispositif 1. La case K1 indique un test effectué sur chaque partie de message cryptée. Si cette valeur excède celle du module de décryptage choisi (donc le plus petit parmi "p" et "q"), alors, on déclare qu'il y a erreur à la case K2. Sinon, on passe à la case K5 o l'opération de cryptage proprement dite est effectuée, c'est-à-dire une exponentiation modulaire. On obtient ainsi des parties de messages cryptées Ci. L'organigramme de la figure 3, montre les opérations de décryptage effectuées par le dispositif de décryptage 10. Cet organigramme montre à la case K10 une opération préalable de réduction sur le nombre d pour fournir un nombre clé réduit "dr". La case K12 est une opération de réduction modulaire selon "p" effectuée sur les parties de messages cryptées et la case K14 une exponentiation modulaire de module "p" et dont l'exposant est "dr" sur les parties de message cryptées. Les dispositifs de cryptage et de décryptage peuvent être insérés sur un même support pour constituer ainsi un dispositif utilisateur. Les dispositifs peuvent alors communiquer entre eux en utilisant le procédé de cryptage de l'invention. La figure 4 montre la structure d'un dispositif utilisateur. Ce dispositif est réalisé & base d'un micro- contrôleur sécurisé d'un point de vue physique tel, par exemple, que le 83C852 fabriqué par Philips. Un tel micro- contrôleur 31 est représenté sur la figure 4 et composé à partir d'un microprocesseur 32, d'une mémoire vive 33 et d'une mémoire morte 34 qui contient notamment des instructions de fohctionnement pour la mise en oeuvre de l'invention, notamment les opérations de cryptage et de décryptage déjà décrites. Il comporte aussi une mémoire EEPROM 35 pour contenir différentes données telles que la clé secrète de la carte, la clé publique d'un tiers avec lequel elle échange des informations... Il est également composé d'une unité de calcul 36 pour prendre en charge les opérations nécessaires à la réalisation des fonctions de cryptographie, d'une unité 37 de gestion des entrées/sorties reliée en outre à une entrée I/O du micro-contrôleur 31. Les éléments précités du micro- contrôleur 31 sont reliés entre eux par un bus 38. Tout détail complémentaire peut être trouvé dans la notice du micro-contrôleur 83C852 précité. Un exemple important d'application de l'invention est le transfert de clé DES au moyen de RSA comme cela est évoqué dans l'article "Threats of Privacy and Public Keys for protection" de Jim Bidzos paru dans le document PROCEEDINGS OF COMPCON 91, 36th IEEE COMPUTER SOCIETY INTERNATIONAL CONFERENCE - du 25 février au ler mars 1991, San Fransisco - NEW YORK (US). Le protocole pour l'échange de la clé DES de session entre deux utilisateurs A et B par l'intermédiaire d'un canal public, peut être le suivant. Soient {nA,dA} et {nB,dB} les clés secrètes respectives des utilisateurs A et B. Par exemple A veut transmettre la clé de session Ks à B. Utilisateur A. m = Ks On effectue le chiffrement en utilisant la clé publique eB CAB = mLB et on transfère le cryptogramme CAB via le canal public. - Utilisateur B. réception du cryptogramme CAB déchiffrement du cryptogramme m = CABdB utilisation de la clé Ks. Généralement Ks est largement inférieure à une clé RSA. Ks peut être une clé de session DES de l'ordre de 56 éléments binaires et p et q sont de l'ordre de 256 bits. Bien des organismes officiels interdisent de chiffrer les messages dans les communications publiques. L'invention s'applique particulièrement bien lorsque pour éviter cet interdit, on utilise un serveur de confiance SC. On a représenté ce cas à la figure 5. Cette figure illustre le cas o une pluralité de dispositifs utilisateurs A, B,..X peuvent communiquer l'un avec l'autre par l'intermédiaire d'un serveur de confiance SC. Ce serveur SC a toutes les connaissances pour connaitre, en clair, tous les messages qu'échangent les différents utilisateurs. En guise d'exemple, on explicite le cas o l'utilisateur A veut communiquer une clé DES KAB à l'utilisateur B. Alors, A chiffre la clé KAB à l'aide de la clé publique eB du serveur SC qui lui-même la déchiffre dès sa réception, puis la chiffre avec la clé publique eB de B. Enfin B déchiffre le cryptogramme en vue de retrouver la clé initialement émise par A. On voit donc que dans ce cas, le procédé s'applique aussi bien au niveau du décryptage de l'utilisateur B que de celui du serveur SC. Ainsi, l'invention est mise à profit pour obtenir une bonne disponibilité du serveur pour une pluralité d'utilisateurs. Le gain en calculs apporté par l'invention est particulièrement apprécié. REVENDICATIONS. 1) Système de communication de messages cryptés selon un procédé de type R.S.A. impliquant des nombres clés "d" et "e" et un nombre module N tel que "N" est le produit de deux facteurs "p" et "q" qui sont des nombres premiers N = p.q et que e.d = lmod,(N), o 9(N) est la fonction indicateur d'Euler, système comportant, d'une part, au moins un dispositif de cryptage formé: - de moyens de découpage pour découper le message à crypter en au moins une partie de message à crypter, - de moyens d'exponentiation pour effectuer, sur chaque partie de message à crypter, une opération d'exponentiation modulaire de module "N" et avec un exposant égal à un premier desdits nombres clé, en vue de fournir une partie de message cryptée, et, d'autre part, au moins un dispositif de décryptage, caractérisé en ce que le dispositif de décryptage est formé: - de moyens de détermination de module pour déterminer un module de décryptage choisi parmi lesdits facteurs, - de premiers moyens de réduction modulaire pour faire une première réduction modulaire sur le nombre "d" avec un module égal audit module de décryptage diminué d'une unité pour fournir un nombre réduit, - de deuxièmes moyens de réduction pour faire une deuxième réduction modulaire sur chaque partie de message cryptée avec un module égal audit module de décryptage en vue de fournir une partie de message cryptée réduite, - de deuxièmes moyens d'exponentiation pour effectuer une exponentiation modulaire sur chaque partie de message cryptée réduite avec un module égal audit module de décryptage et avec un exposant égal audit nombre réduit en vue de rétablir ledit message. 2) Procédé de cryptage-décryptage utilisé dans le système de la revendication 1, procédé selon lequel pour crypter un message: - celui- ci est décomposé en parties de message à crypter, - chaque partie subit une opération d'exponentiation modulaire de module "N" et avec un exposant égal à un premier desdits nombres clé, pour fournir des parties de messages cryptées, et pour le décrypter: - les parties de messages cryptées subissent une opération d'exponentiation de décryptage pour fournir des parties de messages décryptées, caractérisé en ce que: - les parties de messages à crypter sont présentées sous forme de nombres inférieurs aux nombres p et q, - l'opération d'exponentiation de décryptage comporte: * une étape de détermination d'un module de décryptage choisi parmi lesdits facteurs, * une étape préalable pour faire une première réduction modulaire sur le nombre "d" avec un module égal audit module de décryptage diminué d'une unité pour fournir un nombre réduit, * une étape pour faire une deuxième réduction modulaire sur les parties de messages cryptées avec un module égal audit module de décryptage pour fournir des parties de messages cryptées réduites, * une étape d'exponentiation modulaire effectuée sur les parties de messages cryptées réduites avec un module égal audit module de décryptage et avec un exposant égal audit nombre réduit. 3) Dispositif utilisateur, tel que carte à puce, convenant à un système de la revendication 1 comportant un dispositif de cryptage formé: - de moyens de découpage pour découper le message à crypter en au moins une partie de message à crypter, - de moyens d'exponentiation pour effectuer, sur chaque partie de message à crypter, une opération d'exponentiation modulaire de module "N" et avec un exposant égal à un premier desdits nombres clé, en vue de fournir une partie de message cryptée, et au moins un dispositif de décryptage, caractérisé en ce que le dispositif de décryptage est formé: de moyens de détermination de module pour déterminer un module de décryptage choisi parmi lesdits facteurs, - de premiers moyens de réduction modulaire pour faire une première réduction modulaire sur le nombre "d" avec un module égal audit module de décryptage diminué d'une unité pour fournir un nombre réduit, - de deuxièmes moyens de réduction pour faire une deuxième réduction modulaire sur chaque partie de message cryptée avec un module égal audit module de décryptage en vue de fournir une partie de message cryptée réduite, - de deuxièmes moyens d'exponentiation pour effectuer une exponentiation modulaire sur chaque partie de message cryptée réduite avec un module égal audit module de décryptage et avec un exposant égal audit nombre réduit en vue de rétablir ledit message. 4) Serveur convenant. à un système de la revendication i comportant un dispositif de cryptage et un dispositif de décryptage pour servir d'intermédiaires avec des dispositifs utilisateurs selon la revendication 3, caractérisé en ce que son dispositif de décryptage est formé: - de moyens de détermination de module pour déterminer un module de décryptage choisi parmi lesdits facteurs, - de premiers moyens de réduction modulaire pour faire une première réduction modulaire sur le nombre "d" avec un module égal audit module de décryptage diminué d'une unité en vue de fournir un nombre réduit, - de deuxièmes moyens de réduction pour faire une deuxième réduction modulaire sur chaque partie de message cryptée avec un module égal audit module de décryptage en vue de fournir une partie de message cryptée réduite, - de deuxièmes moyens d'exponentiation pour effectuer une exponentiation modulaire sur chaque partie de message cryptée réduite avec un module égal audit module de décryptage et avec un exposant égal audit nombre réduit en vue de rétablir ledit message.