EP1325584A1 - Method for encoding long messages for rsa electronic signature schemes - Google Patents

Method for encoding long messages for rsa electronic signature schemes

Info

Publication number
EP1325584A1
EP1325584A1 EP01972217A EP01972217A EP1325584A1 EP 1325584 A1 EP1325584 A1 EP 1325584A1 EP 01972217 A EP01972217 A EP 01972217A EP 01972217 A EP01972217 A EP 01972217A EP 1325584 A1 EP1325584 A1 EP 1325584A1
Authority
EP
European Patent Office
Prior art keywords
message
bits
size
taking
variable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP01972217A
Other languages
German (de)
French (fr)
Inventor
Jean-Sébastien CORON
David Naccache
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Gemplus SA
Original Assignee
Gemplus Card International SA
Gemplus SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Gemplus Card International SA, Gemplus SA filed Critical Gemplus Card International SA
Publication of EP1325584A1 publication Critical patent/EP1325584A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3249Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes

Definitions

  • the present invention relates to a method • encoding long messages for electronic signature schemes based on RSA.
  • the term “secure channel” is understood to mean a channel for which it is impossible to know or modify the information which passes through said channel. Such a secure channel can be achieved by a cable connecting two terminals, owned by the two said people.
  • Public key cryptography solves the problem of. distribution of keys through an unsecured channel.
  • the principle of public key cryptography consists in using a pair of keys, a public encryption key and a private decryption key. It must be computationally infeasible to find the private decryption key from the public encryption key.
  • a person A wishing to communicate information to a person B uses the public encryption key of person B. Only person B has the private key associated with his public key. Only person B is therefore capable of deciphering the message addressed to him.
  • Another advantage of public key cryptography over secret key cryptography is that public key cryptography allows authentication by the use of electronic signature.
  • This encryption system is based on the difficulty of the problem of the sum of subsets
  • This encryption system is based on the theory of algebraic codes. It is based on the problem of decoding linear codes;
  • This encryption system is based on the difficulty of the discrete logarithm in a finite body
  • the elliptic curve encryption system constitutes a modification of existing cryptographic systems to apply them to the domain of elliptic curves.
  • the advantage of elliptical curve encryption systems is that they require a smaller key size than other encryption systems.
  • the RSA encryption system is the most widely used public key encryption system. It can be used as an encryption method or as a signature method.
  • the RSA encryption system is used in smart cards, for certain applications of them. Possible applications of RSA on a smart card are access to databases, banking applications, remote payment applications such as pay TV, gas distribution or payment of tolls. highway.
  • the first part is the generation of the RSA key.
  • Each user creates an RSA public key and a corresponding private key, according to the following 5-step process:
  • the integers e and - d are called respectively encryption exponent and decryption exponent.
  • the integer n is called the module.
  • the second part consists in the encryption of a clear message noted m by means of an algorithm with Km ⁇ n into an encrypted message noted c which is the following:
  • the third part consists in decrypting an encrypted message using the private exponent of decryption by means of an algorithm.
  • the algorithm for decrypting an encrypted message denoted c with Kc ⁇ n into a clear message denoted m is as follows:
  • the RSA system can also be used to generate electronic signatures.
  • the principle of an electronic signature scheme based on the RSA system can generally be defined in three parts:
  • the first part is the generation of the RSA key, using the method described in the first part of the RSA system described above;
  • the second part is the generation of the signature.
  • the process involves taking input the message M to sign, to apply an encoding using a ⁇ function to obtain the character string ⁇ (M), and to apply the decryption method of the third part of the RSA system described above.
  • the character string
  • the third part is the verification of the signature.
  • the method consists in taking as input the message M to be signed and the signature s to be verified, in applying an encoding to the message M using a function ⁇ to obtain the character string ⁇ (M), in applying to the signature s the method of encryption described in the second part of the RSA system, and to verify that the result obtained is equal to ⁇ (M).
  • the signature s of the message M is valid, and otherwise it is false.
  • An example of an encoding process is the process described in the standard "ISO / IEC 9796-2, Information Technology - Security techniques - Digital signature scheme giving message recovery, Part 2: - Mechanisms using a hash-function, 1997".
  • Another example of an encoding method is the encoding method described in the "RSA" standard. Laboboratories, PKCS # 1: RSA cryptography specifications, version 2.0, September 1998 ”. These two encoding methods allow messages of arbitrarily long size to be signed.
  • a hash function is a function taking an input message of arbitrarily long size and returning as output a character string of fixed size.
  • the disadvantage is that it is not possible in the current state of knowledge to rigorously prove the security of such hash functions. . It is therefore not possible to rigorously prove the security of the two encoding methods mentioned above.
  • the method of the invention consists of a method making it possible to carry out an encoding function taking arbitrarily long messages as input, from an encoding function taking as input messages of limited size.
  • the method of the invention exclusively uses operations of the arithmetic type, for which it is possible to rigorously prove security.
  • the invention comprises 2 separate methods performing an encoding function, said encoding function taking arbitrarily long messages as input, from an encoding function taking messages of limited size as input.
  • the first method of the invention uses a single RSA module N as defined in the first part of the RSA system described above.
  • the first method of the invention uses an input encoding function ⁇ taking a message of size limited to k + 1 bits, k being an integer parameter, and returning as an output a string 'size character exactly k bits.
  • the first method of the invention takes as an input an integer parameter comprised between 0 and k-1.
  • the first method of the invention consists in defining a new encoding function ⁇ 'taking as input a message of size at most (2 ⁇ a) * (ka) bits and returning as output a message of size k bits.
  • the second method of the invention consists in using two distinct modules NI and N2, said modules being as defined in the first part of the RSA system described above.
  • the second method of the invention uses two encoding functions ⁇ l and ⁇ 2 taking as input a message of size kl and k2, respectively, and returning as output a message of size kl 'and k2', respectively.
  • the second method of the invention takes as an input an integer parameter between 0 and k-1.
  • the second method of the invention consists in defining a new encoding function ⁇ 'taking as input a message of size at most (2 A a) * (kl-a) bits and returning as output a message of size k2' bits .
  • an encoding function ⁇ taking as input a message of size (2 ⁇ a) * (kl-a) and returning as output a message of size k2' bits.
  • the calculations are carried out using the RSA N2 module.
  • the advantage of the second method of the invention over the first method of the invention is that it offers more flexibility in the choice of the encoding function ⁇ . Indeed, in the first method, the constraint was that ⁇ is an encoding function from k + 1 bits to k bits. This constraint does not exist in the second method of the invention.

Abstract

The RSA encryption algorithm is the most used public key encryption algorithm. The invention concerns a novel message encoding method for signing arbitrarily long messages, without using the hash function. The invention is easily applicable in an electronic component such as a smart card.

Description

PROCEDE D'ENCODAGE DE MESSAGES LONGS POUR SCHEMAS DE SIGNATURE ELECTRONIQUE A BASE DE RSA. LONG MESSAGE ENCODING METHOD FOR RSA-BASED ELECTRONIC SIGNATURE SCHEMES.
La présente invention concerne un procédé d'encodage de messages longs pour des schémas de signature électronique à base de RSA.The present invention relates to a method encoding long messages for electronic signature schemes based on RSA.
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 dé 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.In the classic model of secret key cryptography, two people wishing to communicate via an insecure channel must first agree on a secret encryption key K. The encryption function and the decryption function use the same key K. The drawback of the secret key encryption system is that said system requires the prior communication of the key K between the two people via a secure channel, before any encrypted message be sent through the unsecured channel. In practice, it is generally difficult to find a perfectly secure communication channel, especially if the distance between the two people is great. The term “secure channel” is understood to mean a channel for which it is impossible to know or modify the information which passes through said channel. Such a secure channel can be achieved by a cable connecting two terminals, owned by the two said people.
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é .The concept of public key cryptography was invented by Whitfield DIFFIE and Martin HELLMAN in 1976. Public key cryptography solves the problem of. distribution of keys through an unsecured channel. The principle of public key cryptography consists in using a pair of keys, a public encryption key and a private decryption key. It must be computationally infeasible to find the private decryption key from the public encryption key. A person A wishing to communicate information to a person B uses the public encryption key of person B. Only person B has the private key associated with his public key. Only person B is therefore capable of deciphering the message addressed to him.
Un autre avantage de la cryptographie à clé publique sur la cryptographie à clé secrète est que la cryptographie à clef publique permet 1' authentification par l'utilisation de signature électronique.Another advantage of public key cryptography over secret key cryptography is that public key cryptography allows authentication by the use of electronic signature.
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 ) . - X Sac à dos " de Merc le-Hellman :The first public key encryption scheme was developed in 1977 by Rivest, Shamir and Adleman, who invented the RSA encryption system. The security of RSA rests on the difficulty of factorizing a large number which is the product of two prime numbers. Since then, numerous public key encryption systems have been proposed, the security of which is based on various computational problems; (This list is not exhaustive ) . - X Backpack "by Merc le-Hellman:
Ce système de chiffrement est basé sur la difficulté du problème de la somme de sous- ensembles ;This encryption system is based on the difficulty of the problem of the sum of subsets;
- McEliece :- 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 ;This encryption system is based on the theory of algebraic codes. It is based on the problem of decoding linear codes;
- ElGamal :- ElGamal:
Ce système de chiffrement est basé sur la difficulté du logarithme discret dans un corps fini ;This encryption system is based on the difficulty of the discrete logarithm in a finite body;
- Courbes elliptiques:- Elliptical curves:
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.The elliptic curve encryption system constitutes a modification of existing cryptographic systems to apply them to the domain of elliptic curves. The advantage of elliptical curve encryption systems is that they require a smaller key size than other encryption systems.
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.The RSA encryption system is the most widely used public key encryption system. It can be used as an encryption method or as a signature method. The RSA encryption system is used in smart cards, for certain applications of them. Possible applications of RSA on a smart card are access to databases, banking applications, remote payment applications such as pay TV, gas distribution or payment of tolls. highway.
Le principe du système de chiffrement RSA est le suivant. Il peut être divisé en trois parties distinctes qui sont :The principle of the RSA encryption system is as follows. It can be divided into three distinct parts which are:
1) La- génération de la paire de clés RSA ;1) The generation of the RSA key pair;
2) Le chiffrement d'un message clair en un message chiffré, et2) Encryption of a clear message into an encrypted message, and
3) Le déchiffrement d'un message chiffré en un message clair.3) Decryption of an encrypted message into a clear message.
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 :The first part is the generation of the RSA key. Each user creates an RSA public key and a corresponding private key, according to the following 5-step process:
1) Générer deux nombres premiers distincts p et q de même taille ;1) Generate two distinct prime numbers p and q of the same size;
2) Calculer n=pq et φ=(.p-l) (q-1) 3) Sélectionner aléatoirement un entier e, l<e<φ, tel que pgcd(e, φ)=l ; 4) Calculer l'unique entier d, l<d<φ, tel que e*d=l mod φ ; 5) La clé publique est (n,e) ; la clé privée est d ou (d,p,q)2) Calculate n = pq and φ = (. P-l) (q-1) 3) Randomly select an integer e, l <e <φ, such that pgcd (e, φ) = l; 4) Calculate the unique integer d, l <d <φ, such that e * d = l mod φ; 5) The public key is (n, e); the private key is d or (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.The integers e and - d are called respectively encryption exponent and decryption exponent. The integer n is called the module.
La seconde partie consiste au chiffrement d'un message clair noté m au moyen d'un algorithme avec Km<n en un message chiffré noté c qui est le suivant :The second part consists in the encryption of a clear message noted m by means of an algorithm with Km <n into an encrypted message noted c which is the following:
Calculer c=mAe mod n.Calculate c = m A 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 Kc<n en un message clair noté m est le suivant :The third part consists in decrypting an encrypted message using the private exponent of decryption by means of an algorithm. The algorithm for decrypting an encrypted message denoted c with Kc <n into a clear message denoted m is as follows:
Calculer m=cAd mod n.Calculate m = c A d 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 :The RSA system can also be used to generate electronic signatures. The principle of an electronic signature scheme based on the RSA system can generally be defined in three parts:
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 ;The first part is the generation of the RSA key, using the method described in the first part of the RSA system described above;
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 μ pour obtenir la chaîne de caractère μ(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 ;The second part is the generation of the signature. The process involves taking input the message M to sign, to apply an encoding using a μ function to obtain the character string μ (M), and to apply the decryption method of the third part of the RSA system described above. Thus, only the person having the private key can generate the 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 à μ(M) . Dans ce cas, la signature s du message M est valide, et dans le cas contraire elle est fausse .The third part is the verification of the signature. The method consists in taking as input the message M to be signed and the signature s to be verified, in applying an encoding to the message M using a function μ to obtain the character string μ (M), in applying to the signature s the method of encryption described in the second part of the RSA system, and to verify that the result obtained is equal to μ (M). In this case, the signature s of the message M is valid, and otherwise it is false.
Il existe de nombreux procédés d' encodage utilisant différentes fonctions μ. 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#1 : 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 .There are many encoding methods using different μ functions. An example of an encoding process is the process described in the standard "ISO / IEC 9796-2, Information Technology - Security techniques - Digital signature scheme giving message recovery, Part 2: - Mechanisms using a hash-function, 1997". Another example of an encoding method is the encoding method described in the "RSA" standard. Laboboratories, PKCS # 1: RSA cryptography specifications, version 2.0, September 1998 ”. These two encoding methods allow messages of arbitrarily long size to be signed.
L' inconvénient des deux procédés d' encodage cités précédemment est qu' ils nécessitent l'utilisation d'une fonction de hachage. Une fonction de hachage est une fonction prenant en entrée un message de taille arbitrairement longue et renvoyant en sortie une chaîne de caractère de taille fixe. L'inconvénient est qu'il n'est pas possible dans l'état actuel des connaissances de prouver rigoureusement la sécurité de telles fonctions de hachage. . Il n'est donc pas possible de prouver rigoureusement la sécurité des deux procédés d'encodage cités précédemment.The disadvantage of the two encoding methods mentioned above is that they require the use of a hash function. A hash function is a function taking an input message of arbitrarily long size and returning as output a character string of fixed size. The disadvantage is that it is not possible in the current state of knowledge to rigorously prove the security of such hash functions. . It is therefore not possible to rigorously prove the security of the two encoding methods mentioned above.
Le procédé de l'invention consiste en une méthode permettant de réaliser une fonction d'encodage prenant en entrée des messages arbitrairement longs, à partir d'une fonction d'encodage prenant en entrée des messages de taille limitée. Le procédé de l'invention utilise exclusivement des opérations de type arithmétique, pour lesquelles il est possible de prouver rigoureusement la sécurité.The method of the invention consists of a method making it possible to carry out an encoding function taking arbitrarily long messages as input, from an encoding function taking as input messages of limited size. The method of the invention exclusively uses operations of the arithmetic type, for which it is possible to rigorously prove security.
L'invention comprend 2 procédés distincts réalisant une fonction d'encodage, ladite fonction d'encodage prenant en entrée des messages arbitrairement longs, à partir d'une fonction d' encodage prenant en entrée des messages de taille limitée.The invention comprises 2 separate methods performing an encoding function, said encoding function taking arbitrarily long messages as input, from an encoding function taking messages of limited size as input.
Le premier procédé de l'invention utilise un module RSA unique N tel que défini dans la première partie du système RSA décrit précédemment. Le premier procédé de l'invention utilise une fonction d'encodage μ prenant en entrée un message de taille limitée à k+1 bits, k étant un paramètre entier, et renvoyant en sortie une chaîne' de caractère de taille exactement k bits. Le premier procédé de l'invention prend en entrée un paramètre entier a compris entre 0 et k-1. Le premier procédé de l'invention consiste à définir une nouvelle fonction d'encodage μ' prenant en entrée, un message de taille au plus (2Λa)*(k-a) bits et renvoyant en sortie un message de taille k bits. Par une' application répétée du premier procédé de l'invention, il est ainsi possible de construire une fonction d' encodage prenant en entrée des messages de taille arbitrairement longue. Le premier procédé de l'invention consiste en les 4 étapes suivantes :The first method of the invention uses a single RSA module N as defined in the first part of the RSA system described above. The first method of the invention uses an input encoding function μ taking a message of size limited to k + 1 bits, k being an integer parameter, and returning as an output a string 'size character exactly k bits. The first method of the invention takes as an input an integer parameter comprised between 0 and k-1. The first method of the invention consists in defining a new encoding function μ 'taking as input a message of size at most (2 Λ a) * (ka) bits and returning as output a message of size k bits. By a repeated application of the first method of the invention, it is thus possible to construct a function encoding taking as input messages of arbitrary longwall. The first method of the invention consists of the following 4 steps:
1) Séparer le message en blocks de taille k-a bits. Le message est noté m=m [ 1 ] | |m[2] | | .. | |m[r] où r est le nombre de blocks . 2) Initialiser à 1 une variable entière b. 3) Pour i allant de 1 à r, calculer le résultat de la fonction μ appliquée à la chaîne de bits . constituée par la concaténation du bit 0, du compteur i représenté par une chaîne de a bits et du block m[i], et multiplier ledit résultat par la variable b, le résultat de la multiplication étant stocké dans la variable b, ladite multiplication s'opérant modulo N ;1) Separate the message into blocks of size ka bits. The message is noted m = m [1] | | m [2] | | .. | | m [r] where r is the number of blocks. 2) Initialize to 1 an integer variable b. 3) For i going from 1 to r, calculate the result of the function μ applied to the bit string. constituted by the concatenation of bit 0, of counter i represented by a chain of a bits and of block m [i], and multiply said result by variable b, the result of multiplication being stored in variable b, said multiplication s operating modulo N;
4) Appliquer la fonction μ à la chaîne de bits constituée par la concaténation du bit 1 et de la variable b, et renvoyer en sortie le résultat .4) Apply the function μ to the bit chain formed by the concatenation of bit 1 and variable b, and return the result.
Le deuxième procédé de l'invention consiste à utiliser deux modules distincts NI et N2, lesdits modules étant tels que définis dans la première partie du système RSA décrit précédemment. Le deuxième procédé de l'invention utilise deux fonctions d'encodage μl et μ2 prenant en entrée un message de taille kl et k2 , respectivement, et renvoyant en sortie un message de taille kl' et k2 ' , respectivement. Le deuxième procédé de l'invention prend en entrée un paramètre entier a compris entre 0 et k-1. Le deuxième procédé de l'invention consiste à définir une nouvelle fonction d' encodage μ' prenant en entrée un message de taille au plus (2Aa)*(kl-a) bits et renvoyant en sortie un message de taille k2' bits. Par une application répétée du deuxième procédé de l'invention, il est ainsi possible de construire une fonction d'encodage prenant en entrée des messages de taille arbitrairement longue. Le deuxième procédé de l'invention consiste en les 4 étapes suivantes :The second method of the invention consists in using two distinct modules NI and N2, said modules being as defined in the first part of the RSA system described above. The second method of the invention uses two encoding functions μl and μ2 taking as input a message of size kl and k2, respectively, and returning as output a message of size kl 'and k2', respectively. The second method of the invention takes as an input an integer parameter between 0 and k-1. The second method of the invention consists in defining a new encoding function μ 'taking as input a message of size at most (2 A a) * (kl-a) bits and returning as output a message of size k2' bits . By repeated application of the second method of the invention, it It is thus possible to construct an encoding function taking as input messages of arbitrarily long size. The second method of the invention consists of the following 4 steps:
1) Séparer le message en blocks de taille kl- a bits. Le message est noté m= [ 1 ] | |m[2] | | .. | |m[r] où r est le nombre de blocks .1) Separate the message into blocks of size kl- a bits. The message is noted m = [1] | | m [2] | | .. | | m [r] where r is the number of blocks.
2) Initialiser à 1 une variable entière b.2) Initialize to 1 an integer variable b.
3) Pour . i allant de 1 à r, calculer le résultat de la fonction μl appliquée à la chaîne de bits constituée par la concaténation du compteur i représenté par une chaîne de a bits et du block m[i], et multiplier ledit résultat par la variable b, le résultat de la multiplication étant stocké dans la variable b, ladite multiplication s' effectuant modulo Ni.3) For . i going from 1 to r, calculate the result of the function μl applied to the bit chain constituted by the concatenation of the counter i represented by a chain of a bits and of the block m [i], and multiply said result by the variable b , the result of the multiplication being stored in the variable b, said multiplication being carried out modulo Ni.
4) Appliquer la fonction μ2 à la chaîne de bits constituée de la variable b, et renvoyer en sortie le résultat.4) Apply the function μ2 to the bit chain made up of the variable b, and return the result.
Par le procédé précédant est défini une fonction d'encodage μ' prenant en entrée un message de taille (2Λa)*(kl-a) et renvoyant en sortie un message de taille k2 ' bits. Lors de l'application des procédés de génération de signature et de vérification de signature basés sur RSA précédemment décrits, les calculs s'effectuent en utilisant le module RSA N2. L'avantage du deuxième procédé de l'invention sur le premier procédé de l'invention est qu'il offre plus de souplesse dans le choix de la fonction d'encodage μ. En effet, dans le premier procédé, la contrainte était que μ est une fonction d'encodage de k+1 bits vers k bits. Cette contrainte n'existe pas dans le deuxième procédé de l'invention. By the preceding method is defined an encoding function μ 'taking as input a message of size (2 Λ a) * (kl-a) and returning as output a message of size k2' bits. During the application of the signature generation and signature verification methods based on RSA previously described, the calculations are carried out using the RSA N2 module. The advantage of the second method of the invention over the first method of the invention is that it offers more flexibility in the choice of the encoding function μ. Indeed, in the first method, the constraint was that μ is an encoding function from k + 1 bits to k bits. This constraint does not exist in the second method of the invention.

Claims

REVENDICATIONS
1. Procédé utilisant un module RSA N, ledit procédé utilisant une fonction d'encodage μ prenant en entrée un message de taille limitée à k+1 bits, k étant un paramètre entier, et renvoyant en sortie une chaîne de caractère de taille exactement k bits, ledit procédé prenant en entrée un paramètre entier a compris entre 0 et k-1, ledit procédé consistant à définir une nouvelle fonction d'encodage μ' prenant en entrée un message de taille au plus (2Aa)*(k-a) bits et renvoyant en sortie un message de taille k bits, ledit procédé caractérisé en ce qu'il comporte les 4 étapes suivantes :1. Method using an RSA N module, said method using an encoding function μ taking as input a message of size limited to k + 1 bits, k being an integer parameter, and returning as output a character string of size exactly k bits, said method taking as an integer parameter between 0 and k-1, said method consisting in defining a new encoding function μ 'taking as input a message of size at most (2 A a) * (ka) bits and returning a message of size k bits as output, said method characterized in that it comprises the following 4 steps:
1) Séparation du message en blocks de taille k-a bits, le message étant noté m=m[l] | |m[2] | | .. | |m[r] où r est le' nombre de blocks. 2) Initialisation à 1 d'une variable entière b.1) Separation of the message into blocks of size ka bits, the message being noted m = m [l] | | m [2] | | .. | | m [r] where r is the ' number of blocks. 2) Initialization to 1 of an integer variable b.
3) Pour i allant de 1 à r, calcul du résultat de la fonction μ appliquée à* la chaîne de bits constituée par la concaténation du bit 0, du compteur i représenté par une chaîne de a bits et du block m[i], et multiplication dudit résultat par la variable b, le résultat de la multiplication étant stocké dans la variable b, ladite multiplication s' opérant modulo N.3) For i going from 1 to r, calculation of the result of the function μ applied to * the bit chain constituted by the concatenation of bit 0, of the counter i represented by a chain of a bits and of the block m [i], and multiplication of said result by variable b, the result of the multiplication being stored in variable b, said multiplication operating modulo N.
4) Application de la fonction μ à la chaîne de bits constituée par la concaténation du bit 1 et de la variable b, et renvoi en sortie le résultat .4) Application of the function μ to the chain of bits consisting of the concatenation of bit 1 and variable b, and return the result.
2. Procédé d'encodage selon ' la revendication 1 prenant en entrée un message de taille arbitrairement longue, caractérisé en ce que le procédé de la revendication 1 est répété plusieurs fois.2. A method of encoding according 'to claim 1 taking as an input a message of arbitrary longwall, characterized in that the method of claim 1 is repeated several times.
3. Procédé utilisant deux modules RSA distincts3. Method using two separate RSA modules
NI et N2, ledit procédé utilisant deux fonctions d'encodage μl et μ2 prenant en entrée un message de taille kl et k2, respectivement, et renvoyant en sortie un message de taille kl' et k2', respectivement, ledit procédé prenant en entrée un paramètre entier a compris entre 0 et k-1, ledit procédé consistant à définir une nouvelle fonction d'encodage μ' prenant en entrée un message de taille au plus 2 a*(kl-a) bits et renvoyant en sortie un message de taille k2' bits, ledit procédé étant caractérisé en ce qu'il comprend les 4 étapes suivantes :NI and N2, said method using two encoding functions μl and μ2 taking as input a message of size kl and k2, respectively, and returning as output a message of size kl 'and k2', respectively, said method taking as input integer parameter included between 0 and k-1, said method consisting in defining a new encoding function μ 'taking as input a message of size at most 2 a * (kl-a) bits and returning as output a message of size k2 'bits, said method being characterized in that it comprises the following 4 steps:
1) Séparation du message en blocks de taille kl-a bits, le message étant noté m=m[l] | |m[2] | | • • I |m[r] où r est le nombre de blocks. 2) Initialisation à 1 la variable entière .b.1) Separation of the message into blocks of size kl-a bits, the message being noted m = m [l] | | m [2] | | • • I | m [r] where r is the number of blocks. 2) Initialization at 1 the integer variable .b.
3) Pour i allant de 1 à r, calcul du résultat de la fonction μl appliquée à la chaîne de bits constituée par la concaténation du compteur i représenté par une chaîne de a bits et du block m[i], et multiplication dudit résultat par la variable b, le résultat de la multiplication étant stocké dans la variable b, ladite multiplication s'effectuant odulo NI. 4 ) Application de la fonction μ2 à la chaîne de bits constituée de la variable b, . et renvoie en sortie du résultat.3) For i going from 1 to r, calculation of the result of the function μl applied to the chain of bits constituted by the concatenation of the counter i represented by a chain of a bits and of the block m [i], and multiplication of said result by the variable b, the result of the multiplication being stored in the variable b, said multiplication taking place odulo OR. 4) Application of the function μ2 to the bit chain consisting of the variable b,. and returns the output of the result.
4. Procédé d'encodage selon la revendication 3, caractérisé en ce que la génération et la vérification de la signature s'effectuent en utilisant le module RSA N2 tel que défini dans la revendication 3.4. Encoding method according to claim 3, characterized in that the generation and verification of the signature is carried out using the RSA N2 module as defined in claim 3.
5. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il est utilisé dans le cadre d'un objet portable de type carte à puce. 5. Method according to any one of the preceding claims, characterized in that it is used in the context of a portable object of the smart card type.
EP01972217A 2000-09-28 2001-09-26 Method for encoding long messages for rsa electronic signature schemes Withdrawn EP1325584A1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0012351 2000-09-28
FR0012351A FR2814619B1 (en) 2000-09-28 2000-09-28 METHOD OF ENCODING LONG MESSAGES SCHEMES OF ELECTRONIC SIGNATURE BASED ON RSA
PCT/FR2001/002983 WO2002028010A1 (en) 2000-09-28 2001-09-26 Method for encoding long messages for rsa electronic signature schemes

Publications (1)

Publication Number Publication Date
EP1325584A1 true EP1325584A1 (en) 2003-07-09

Family

ID=8854773

Family Applications (1)

Application Number Title Priority Date Filing Date
EP01972217A Withdrawn EP1325584A1 (en) 2000-09-28 2001-09-26 Method for encoding long messages for rsa electronic signature schemes

Country Status (6)

Country Link
US (1) US20030165238A1 (en)
EP (1) EP1325584A1 (en)
CN (1) CN1393081A (en)
AU (1) AU2001292003A1 (en)
FR (1) FR2814619B1 (en)
WO (1) WO2002028010A1 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2002337588A1 (en) * 2002-09-23 2004-04-08 Avner Geller Method and system for authentication
JP4296971B2 (en) * 2004-03-17 2009-07-15 株式会社日立製作所 Recording apparatus and recording / reproducing apparatus
CN100461091C (en) * 2004-08-24 2009-02-11 华盛顿大学 Methods and systems for content detection in a reconfigurable hardware
US7774607B2 (en) * 2006-12-18 2010-08-10 Microsoft Corporation Fast RSA signature verification
CN103124256B (en) * 2011-11-21 2017-03-29 国民技术股份有限公司 Credible password module and trusted computing method
US10454681B1 (en) 2017-11-17 2019-10-22 ISARA Corporation Multi-use key encapsulation processes
US10031795B1 (en) * 2017-12-22 2018-07-24 ISARA Corporation Using conversion schemes in public key cryptosystems
US10061636B1 (en) * 2017-12-22 2018-08-28 ISARA Corporation Conversion schemes for public key cryptosystems

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5432852A (en) * 1993-09-29 1995-07-11 Leighton; Frank T. Large provably fast and secure digital signature schemes based on secure hash functions
US6266771B1 (en) * 1997-02-10 2001-07-24 The Regents Of The University Of California Probabilistic signature scheme

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO0228010A1 *

Also Published As

Publication number Publication date
CN1393081A (en) 2003-01-22
US20030165238A1 (en) 2003-09-04
FR2814619A1 (en) 2002-03-29
FR2814619B1 (en) 2002-11-15
WO2002028010A1 (en) 2002-04-04
AU2001292003A1 (en) 2002-04-08

Similar Documents

Publication Publication Date Title
EP1166494B1 (en) Countermeasure procedures in an electronic component implementing an elliptical curve type public key encryption algorithm
FR2759226A1 (en) PROTOCOL FOR VERIFYING A DIGITAL SIGNATURE
FR2760583A1 (en) DATA CARD VERIFICATION SYSTEM
FR2809893A1 (en) COUNTER-MEASUREMENT METHOD IN AN ELECTRONIC COMPONENT USING A PUBLIC KEY CRYPTOGRAPHY ALGORITHM ON AN ELLIPTICAL CURVE
EP1166495A1 (en) Countermeasure method in an electric component implementing an elliptical curve type public key cryptography algorithm
EP1350357B1 (en) Method for enhancing security of public key encryption schemas
CN100388663C (en) Method and device for detecting a key pair and for generating rsa keys
EP1224765B1 (en) Countermeasure method in an electronic component which uses an rsa-type public key cryptographic algorithm
EP1325584A1 (en) Method for encoding long messages for rsa electronic signature schemes
KR100971038B1 (en) Cryptographic method for distributing load among several entities and devices therefor
WO2002028011A1 (en) Method for accelerated transmission of electronic signature
EP0980607A1 (en) Pseudo-random generator based on a hash coding function for cryptographic systems requiring random drawing
WO2003021864A2 (en) Method of reducing the size of an rsa or rabin signature
FR2856538A1 (en) COUNTERMEASURE METHOD IN AN ELECTRONIC COMPONENT USING A CRYPTOGRAPHIC ALGORITHM OF THE PUBLIC KEY TYPE
WO2002050658A1 (en) Countermeasure methods in an electronic component using an rsa-type public key encryption algorithm
WO2002001343A1 (en) Countermeasure methods in an electronic component using a koblitz elliptic curve public key cryptographic algorithm
Sarr Authenticated key agreement protocols: security models, analyses, and designs
FR2797126A1 (en) METHOD OF IMPROVING THE PERFORMANCE OF THE MULTIPLICATION OPERATION ON FINISHED BODY OF CHARACTERISTIC 2
FR2842968A1 (en) Cryptography signature method for use with RSA public key algorithms involves generation of a public key from two very large numbers and an encryption exponent and a private key based on a decryption exponent
Tibouchi Hashing to elliptic curves and cryptanalysis of RSA-based schemes
WO2003013053A1 (en) Method for determining the size of a random variable for an electronic signature schema

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20030428

AK Designated contracting states

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE TR

AX Request for extension of the european patent

Extension state: AL LT LV MK RO SI

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION HAS BEEN WITHDRAWN

18W Application withdrawn

Effective date: 20031024

RBV Designated contracting states (corrected)

Designated state(s): DE ES FR GB IT