Brevet FR2742285A1 — publié le 19970613

PRDCEDE DE REALISATION D'UNE TRANSACTION ELECTRONIQUE DESCRIPTION Domaine technique La présente invention a pour objet un procédé de réalisation d'une transaction électronique. L'invention s'applique aux échanges de données informatiques entre deux entités susceptibles d'être victimes de fraudes. Les menaces de fraude touchent essentiellement la perte de l'intégrité, c'est-à-dire l'altération ou la duplication des données échangées. Les procédés utilisés pour éviter ou réduire les risques de fraude font appel aux techniques cryptographiques. Plus précisément, l'invention apporte une réponse au problème de gestion des clés associées aux algorithmes cryptographiques, lorsque ces clés sont stockées dans des dispositifs diffusés à grande échelle et lorsqu'il est nécessaire de concilier à la fois des exigences de coût, de performance et de sécurité. Etat de la technique antérieure La sécurité des transferts de données est obtenue généralement par un procédé de signature électronique, laquelle est calculée à l'aide d'un algorithme cryptographique symétrique ou asymétrique. Les algorithmes symétriques sont très largement utilisés dans les cartes à mémoire, car ils sont de mise en oeuvre aisée et sont peu coûteux en place mémoire et en temps d'exécution. Cependant, ils posent des problèmes de gestion de clés, car il faut que les deux entités en présence partagent la même clé cryptographique. Lorsque l'application concerne un grand nombre d'utilisateurs, il peut être hasardeux de distribuer la même clé dans chaque carte, même si celle-ci est reconnue comme étant difficile à violer. Lorsque les transferts de données ne sont possibles que d'un groupe d'utilisateurs vers un deuxième groupe plus restreint, une solution consiste à stocker, dans chaque carte du premier groupe, la clé diversifiée d'une clé maître, laquelle n'est connue que des modules du deuxième groupe. Si une clé diversifiée est découverte, seule la carte d'un utilisateur est compromise. Cependant, si la clé maître est découverte, c'est tout le système qui se trouve compromis. Une autre solution améliorant la première consiste à multiplier les clés maîtres. Une carte du premier groupe possède alors la clé diversifiée de chaque clé maître, alors qu'un module du deuxième groupe ne possède qu'une seule clé maître. Lors d'un échange, la carte utilisateur calcule le rang de la clé maître qui est fonction de l'identité du deuxième module en présence. Ainsi, si une clé maître est découverte, seule une partie du système est compromise. Ces difficultés de gestion de clés se trouvent largement amoindries si l'algorithme choisi est asymétrique, car le jeu de clés (clé secrète et clé publique) d'une entité est utilisé pour produire et vérifier la même signature. Cependant, ces algorithmes exigent des ressources en calcul importantes, ou de mise en oeuvre difficile sur des cartes à mémoire diffusées à grande échelle. Certaines transactions, par exemple le contrôle d'accès aux autoroutes ou aux transports urbains, doivent être très rapides, de tordre d'une demiseconde. Par ailleurs, la rentabilité d'un système d'échange de données dépend beaucoup du prix de la carte, qui est diffusée en grand nombre. L'invention a pour but d'apporter une solution à ces problèmes, d'une part, en minimisant les calculs effectués par la carte, de façon à réduire son prix de revient et, d'autre part, en n'introduisant pas dans le système de clé maître secrète, ce qui pourrait, en cas de découverte de cette clé, compromettre de façon grave la sécurité des échanges. Exposé de l'invention L'invention atteint ce but en utilisant un algorithme symétrique et deux algorithmes asymétriques. De façon précise, la présente invention a pour objet un procédé de réalisation d'une transaction entre un premier module et un second module, dans lequel on utilise des algorithmes cryptographiques pour certifier et chiffrer des données ; le procédé de l'invention est caractérisé par le fait qu'on utilise un premier algorithme symétrique avec une clé secrète, et deux autres algorithmes asymétriques, ayant chacun une clé publique, l'un des deux algorithmes asymétriques étant utilisé pour certifier des données, l'autre pour chiffrer la clé de l'algorithme symétrique dans le premier module et la déchiffrer dans le second. L'algorithme symétrique peut être par exemple un algorithme DES. Dans une variante particulière, l'algorithme symétrique est utilisé pour signer le message à transmettre. Les deux algorithmes asymétriques peuvent être des algorithmes RSA, conformes à la norme ISO/IEC 9796, car l'exposant constituant la clé publique doit être choisi très court, de préférence égal à 2 ou à 3, afin de réduire le plus possible les multiplications modulo N dans la carte. Brève description des dessins La figure unique annexée est un schéma illustrant une transaction selon l'invention entre deux cartes ou modules A et B. Exposé détaillé d'un mode de réalisation Dans la description qui suit, on désignera par module A et module B les deux cartes entre lesquelles s'établit la transaction. La figure unique annexée schématise les échanges entre ces deux modules. On supposera que la clé secrète KA sert à signer le message. Lors de sa personnalisation, le module A mémorise les données suivantes - la clé secrète KA de l'algorithme symétrique propre au module A ; cette clé peut être un aléa - le certificat de cette clé délivré par une première autorité AUTl ; ce certificat est noté CAUTlf(KA) où f est une fonction à sens unique ("one-wayt' en terminologie anglo-saxonne) i - la clé publique d'une deuxième autorité AUT2 soit p KAtJT2. Lors de sa personnalisation, le module B mémorise les données suivantes - la clé secrète et la clé publique d'un algorithme asymétrique B, soit respectivement KB et VP - le certificat de la clé publique du module B délivré par la seconde autorité AUT2, certificat noté CAUT2KB ; - la fonction f ayant servi à la première autorité AUT1 pour calculer le certificat CAUTlf(KA) de la clé secrète du premier module A - la clé publique de la première autorité KAUT1 Les deux autorités AUT1 et AUT2 peuvent être éventuellement les mêmes. Ces personnalisations ayant été effectuées, les opérations sont alors les suivantes 1) Le module B commence par transmettre au module A la clé publique KIP de l'algorithme asymétrique et le certificat CAUT2KP de cette clé publique. 2) Le module A vérifie alors le certificat reçu CAUT2KPB à l'aide de la clé publique KPUT2 de la deuxième autorité. Si la vérification est correcte le module A chiffre sa clé KA de l'algorithme symétrique à l'aide de la clé publique KP du module B, et signe le message à transmettre M à l'aide de la clé KA, pour obtenir une signature S, S=sign(KA)[M]. 3) Le module A transmet alors au module B - sa clé KA chiffrée en utilisant la clé publique de B, soit KP(KA), - le certificat de sa clé, soit CAUTlf(KA) - le message M, - la signature S du message M. 4) Le module B déchiffre alors, à l'aide de sa clé secrète K5B, la clé KA chiffrée, soit Ks(KPKA) ce qui lui donne accès à la clé KA du module A. Le module B calcule ensuite f(KA) et vérifie le certificat de la clé secrète KA, c'est-à-dire CAUTlf(KA)v certificat reçu du module A, à l'aide de la clé publique KPUT1 Si cette vérification est positive, alors le module B calcule la signature du message M, c'est-à-dire sign (KA) [M] à l'aide de la clé secrète KA associée à l'algorithme symétrique. Si la signature calculée par le Module B est égale à la signature reçue S, le module B en conclut que le message M est authentique. Comparé au schéma avec clé maître dans les modules B où la seule capture d'une clé maitre permettrait à un fraudeur de reproduire ou d'imiter une carte quelconque du système, les conséquences sur la sécurité seraient, dans le cas de l'invention, moins graves, car les attaques exigeraient l'écoute des dialogues avec le module B, dont la clé secrète aurait été découverte, et, donc, seules les cartes ainsi présentées à B seraient compromises. Dans cet exemple, la clé secrète KA sert à signer le message. Mais il ne s'agit là que d'un exemple de mise en oeuvre du procédé. L'invention est plus générale et n'est pas limitée à cet usage particulier de la clé KA. Le procédé de l'invention permet à A de communiquer à B une clé secrète avec authentification de la clé secrète par B. REVENDICATIONS 1. Procédé de réalisation d'une transaction entre un premier module (A) et un second module (B), dans lequel on utilise des algorithmes cryptographiques pour certifier et chiffrer des données, caractérisé par le fait qu'on utilise un premier algorithme symétrique muni d'une clé secrète (KA), et deux autres algorithmes asymétriques, le premier de ces deux algorithmes asymétriques étant utilisé pour certifier des données, le second étant utilisé pour chiffrer la clé secrète (KA) de l'algorithme symétrique dans le premier module (A) et la déchiffrer dans le second (B). 2. Procédé selon la revendication 1, caractérisé par le fait que la clé secrète (KA) est utilisée pour signer un message à transmettre (M). 3. Procédé selon la revendication 2, caractérisé par le fait que a) le premier module (A) contient i) la clé secrète (KA) du premier algorithme symétrique, ii) un certificat (CAUTlf(KA)) délivré par une première autorité de cette clé secrète (KA), et obtenu à l'aide du premier algorithme asymétrique, et d'une fonction f à sens unique, iii) une clé publique (KAUT2) relative au premier algorithme asymétrique, délivrée par une deuxième autorité, b) le second module (B) contient - la clé secrète (KB) et la clé publique (ka ) ) dudit second algorithme asymétrique, - un certificat (CAUT2:P) de ladite clé publique (KPB) , - la fonction f à sens unique choisie par la première autorité (AUTi) pour protéger la clé secrète (KA) de l'algorithme symétrique, contenue dans le certificat (CAUTlf(KA) délivré par la première autorité, - la clé publique (KPAUT1) du second algorithme asymétrique, la transaction comprenant alors les opérations suivantes - le second module (B) transmet au premier module (A) la clé publique (KB ) du second algorithme asymétrique et le certificat (CAUT2KPB) de cette clé publique - le premier module (A) vérifie le certificat reçu du second module (B), chiffre la clé secrète (KA) de l'algorithme symétrique à l'aide de la clé publique (KB ) reçue du second module (B), et propre au second algorithme asymétrique calcule la signature (S) d'un message (M) à transmettre à l'aide de ladite clé secrète (KA) - le premier module (A) transmet au second module (B) la clé secrète (KA) ainsi chiffrée (KPB (KA)), le premier certificat (CAUTlf(KA)) de la clé (KA) et la signature (S) ; ; - le second module (B) déchiffre la clé chiffrée reçue du premier module (A) à l'aide de la clé secrète (KS) du second algorithme asymétrique et obtient la clé secrète (KA) de l'algorithme symétrique, calcule alors la fonction (f(KA)), et vérifie le certificat reçu du premier module (CAUTîf(KA)) avec la clé publique (KAUT1) du premier algorithme asymétrique, et, si la vérification est positive, vérifie l'authenticité de la signature (S) du message et, en cas de vérification positive, valide ledit message (M). 4. Procédé selon l'une quelconque des revendications 1 à 3, caractérisé par le fait que les algorithmes asymétriques sont des algorithmes du type RSA avec exposant peu élevé.