WO2003071735A1 - Cryptographic method using a data flow-symmetrical cryptographic algorithm and use in a smart card - Google Patents

Cryptographic method using a data flow-symmetrical cryptographic algorithm and use in a smart card Download PDF

Info

Publication number
WO2003071735A1
WO2003071735A1 PCT/FR2003/000532 FR0300532W WO03071735A1 WO 2003071735 A1 WO2003071735 A1 WO 2003071735A1 FR 0300532 W FR0300532 W FR 0300532W WO 03071735 A1 WO03071735 A1 WO 03071735A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
authentication
encryption
message
cryptography
Prior art date
Application number
PCT/FR2003/000532
Other languages
French (fr)
Inventor
Héléna HANDSCHUH
David Pointcheval
David Naccache
Original Assignee
Gemplus
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 filed Critical Gemplus
Priority to EP03717411A priority Critical patent/EP1479189A1/en
Priority to AU2003222578A priority patent/AU2003222578A1/en
Publication of WO2003071735A1 publication Critical patent/WO2003071735A1/en

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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Definitions

  • the present invention relates to a cryptography method for the generation of a pseudo-random number and / or for encryption / decryption by stream and / or for data authentication, using an encryption key K and a symmetric cryptographic algorithm.
  • a particularly interesting application relates to chip cards which rely on a remote memory outside, typically in a card reader or in a personal computer.
  • the information contained in the remote memory is encrypted and / or authenticated.
  • the smart card (or more generally, the portable electronic medium) mainly contains processing means (microprocessor) and minimum necessary storage means.
  • the remote memory contains information which can be executable code or data.
  • the card When the card needs this information, it must decrypt it and authenticate at least part of this information. It is recalled that the authentication of data makes it possible to verify that the data have not been manipulated and that the sender of this data (which affixes "the authenticator") is indeed the one expected. In the prior art, the cryptographic methods implemented in the card to decrypt and authenticate on the fly the data transmitted by the remote memory are very different. We must therefore first decipher an entire message and then authenticate at least a portion of this message.
  • an alternative method of on-the-fly cryptography has been sought which allows decryption by streams and authentication in parallel.
  • a cryptography method has been sought using a symmetric flow cryptographic algorithm for encryption / decryption and for authentication.
  • the idea underlying the invention is that by implementing the same mechanisms in the two operations, we will allow the parallel processing of the data streams to be decrypted and authenticated.
  • the invention therefore relates to a cryptography method for the generation of a pseudo-random number and / or for encryption / decryption and / or for data authentication, using an encryption key K and an algorithm symmetric flow cryptographic, characterized in that it comprises the following stages:
  • This process makes it possible to decrypt and authenticate the same message stream in parallel. This saves time and has a much simpler management of the data in the remote memory, recovered by the smart card.
  • This method can use for decryption a symmetric cryptographic algorithm primitive (executable code implemented in the smart card) already implemented for authentication, which reduces the memory space necessary for the corresponding executable code, and which also simplifies the setting implementation of the process (only one code to test).
  • a symmetric cryptographic algorithm primitive executable code implemented in the smart card
  • FIG. 1 represents a flow diagram of the generation of a pseudo-random number and of stream decryption of a message m according to the method of on-the-fly cryptography of the invention
  • FIG. 2 represents a flowchart corresponding to authentication by flow of the message m, according to the on-the-fly cryptography method according to the invention.
  • the sequence for decrypting the streams mi and mi + i of a message m has been represented according to the cryptography method of the invention, using an encryption block E, of size 1, and an encryption key. K of size greater than 1.
  • the encryption block E corresponds to a symmetric cryptographic algorithm per block. This is for example the DES algorithm.
  • the size of the block (number of bits entering and leaving the block) corresponds to the length of the mi message block.
  • This sequence includes generating a pseudo-random number from the index of message blocks. This index is equal to i for the ith block mi of the message m. It is this pseudo-random number which serves as a mask for the message flow to be deciphered.
  • the sequence for generating the pseudo-random number for the message stream mi is as follows:
  • This pseudo-random datum obtained from the value i of the index is a function of the cryptographic algorithm used (encryption block or primitive E) and of the encryption key K formed of the three subkeys K1, K2, K3 .
  • index can denote both its function and its value.
  • index and subkey K2 each have a length of 1/2 bit and the subkey K3 has a length of 1 bit.
  • the strength of the symmetric flow algorithm is given by the size of the encryption key it uses. In the example, this force is given by the size k of the subkey K1 used by the encryption block E.
  • the cryptographic strength of the cryptography method according to the invention using an encryption key K (K1, K2, K3) in combination with the encryption block E therefore becomes equal to k + 1.
  • K (K1, K2, K3)
  • the flight cryptography method provides a pseudo-random datum Daiea-i to. from the message stream index.
  • This pseudo-random datum D a iéa-i is used to mask the corresponding message flow mi.
  • the corresponding decrypted data stream, dci is obtained at output.
  • the cryptographic method which has just been described in relation to FIG. 1, thus comprises a method allowing the generation of a pseudo-random number Daié a -i / from a simple index, that is to say in other words the content of a counter incremented with each new message flow.
  • the decryption method comprises the sequence of supplying this pseudo-random number, which serves as a mask for the message stream to be decrypted, and which is therefore used in the bit-by-bit exclusive OR operation with this message stream.
  • This method can also be used as an encryption method, to encrypt a message, for example if the card wants to record information in the remote memory.
  • the pseudo-random number generated according to the method of the invention can be used in the same way as in the decryption method, but to generate a strong random, from the cryptographic point of view, from a weak random , typically a physical hazard.
  • physical hazard is meant a hazard provided from physical characteristics, such as an electromagnetic field or the like. These physical hazards are linked to the physical structure of the circuit that generates them. They are often used in smart cards. But these are weak uncertainties on the cryptographic level.
  • the cryptography method according to the invention allows three independent applications: the generation of a pseudo-random number D a iéa-i / le encryption / decryption by mi message flow, and the generation of a strong hazard from a weak hazard.
  • FIG. 2 represents a typical example of a method of authentication on the fly of the CBC-MAC type.
  • the same encryption block E is usually used with the same authentication key K4, except for the last flow which must use either at least one different authentication key and / or a block different encryption.
  • the message to be authenticated comprises p message blocks m x to m p .
  • an authentication data is obtained This corresponding authentication datum is supplied to the following authentication sequence, in order to perform an exclusive bitwise operation with the following message block m ⁇ + ⁇ .
  • the last authentication sequence applied to the last message block m p is different in this that it uses, for example, a different authentication key K5; or that it successively applies the encryption block E with a first key, for example K4, then subsequently with another key, for example K5; or that the encryption block is different; or that it uses a combination of these different variants.
  • the last authentication sequence uses the encryption block E with an authentication key K5, different from K4, for the last data stream m p .
  • the advantage which one derives from a cryptography method according to the invention is that after the reception of a new message block mi, it is possible to carry out the decryption and the authentication in parallel. Furthermore, it is possible to use only one and the same encryption block E for the two methods, or a limited number of encryption blocks. This saves computation time and working memory space and executable code memory space.
  • the invention which has just been described is not limited to the use of DES, as a symmetric flow cryptographic algorithm.
  • the advantage of DES is that it requires little computing power and little memory space (executable code).
  • This invention applies in all cases where one wants to use a cryptographically weak algorithm, in general for reasons of means of limited processing or reduced available computing time, while having a very secure cryptography process.
  • This invention is particularly applicable in the field of smart cards or more generally portable electronic devices using a remote memory, which requires the decryption and authentication of the data contained in this memory.

Abstract

The invention concerns a cryptographic method using a data block-symmetrical cryptographic algorithm such as DES in a particular sequence enabling its cryptographic strength to be increased significantly. Said method enables generating a pseudo-random number, and/or a strong random variable or data flow encryption/decryption and/or authentication of messages to be generated. It is more particularly adapted to encryption/decryption and to authentication by a smart card of data contained in a remote memory.

Description

PROCEDE DE CRYPTOGRAPHIE UTILISANT UN ALGORITHME CRYPTOGRAPHIQUE SYMETRIQUE PAR FLOT ET APPLICATION A CRYPTOGRAPHY METHOD USING A FLOW SYMMETRIC CRYPTOGRAPHIC ALGORITHM AND APPLICATION TO
UNE CARTE A PUCEA SMART CARD
La présente invention concerne un procédé de cryptographie pour la génération d'un nombre pseudoaléatoire et/ou pour le chiffrement/déchiffrement par flot et/ou pour l'authentification de données, utilisant une clé de chiffrement K et un algorithme cryptographique symétrique .The present invention relates to a cryptography method for the generation of a pseudo-random number and / or for encryption / decryption by stream and / or for data authentication, using an encryption key K and a symmetric cryptographic algorithm.
Une application particulièrement intéressante concerne les cartes à puce qui s ' appuient sur une mémoire déportée à l'extérieur, typiquement dans un lecteur de cartes ou dans un ordinateur personnel . Dans ce cas les informations contenues dans la mémoire déportée sont chiffrées et/ou authentifiées.A particularly interesting application relates to chip cards which rely on a remote memory outside, typically in a card reader or in a personal computer. In this case the information contained in the remote memory is encrypted and / or authenticated.
La carte à puce (ou plus généralement, le support électronique portable) contient principalement des moyens de traitement (microprocesseur) et des moyens de mémorisation minimum nécessaires. La mémoire déportée contient des informations qui peuvent être du code exécutable ou des données.The smart card (or more generally, the portable electronic medium) mainly contains processing means (microprocessor) and minimum necessary storage means. The remote memory contains information which can be executable code or data.
Lorsque la carte a besoin de ces informations, elle doit les déchiffrer et authentifier au moins une partie de ces informations. On rappelle que l'authentification de données permet de vérifier que les données n'ont pas été manipulées et que l'émetteur de ces données (qui appose "l'authentifiant") est bien celui attendu. Dans l'état de la technique, les procédés de cryptographie mis en œuvre dans la carte pour déchiffrer et authentifier au vol les données transmises par la mémoire déportée sont très différents. Il faut donc d'abord déchiffrer tout un message puis authentifier une portion au moins de ce message. Pour le chiffrement ou le déchiffrement au vol, "on the fly stream en-/decryption" dans la littérature anglo-saxonne, la solution la plus courante est l'utilisation de registres à décalage pour générer un masque pseudo-aléatoire à partir d'une clé de chiffrement, et à effectuer un ou exclusif bit à bit entre ce masque et le flot de données considéré. Pour l'authentification au vol, on utilise habituellement le CBC-MAC, acronyme anglosaxon pour "Cipher Block Chaining-Message Authentication Code", basé sur l'utilisation de l'algorithme DES pour chaque flot de données, la sortie d'un bloc d' authentification servant dans le bloc d' authentification du flot de données suivant, d'où la notion de "chaîne". Mais le mécanisme de traitement des données utilisé dans les deux opérations ne permet pas que l'on puisse réaliser en parallèle le déchiffrement et l'authentification sur un même flot de données. Ainsi, en pratique, on déchiffre un message en entier, puis on authentifie une portion au moins de ce message, ce qui n'est pas très performant .When the card needs this information, it must decrypt it and authenticate at least part of this information. It is recalled that the authentication of data makes it possible to verify that the data have not been manipulated and that the sender of this data (which affixes "the authenticator") is indeed the one expected. In the prior art, the cryptographic methods implemented in the card to decrypt and authenticate on the fly the data transmitted by the remote memory are very different. We must therefore first decipher an entire message and then authenticate at least a portion of this message. For encryption or decryption on the fly, "on the fly stream en- / decryption" in Anglo-Saxon literature, the most common solution is the use of shift registers to generate a pseudo-random mask from an encryption key, and to perform an exclusive bit-by-bit or exclusive between this mask and the data stream considered. For theft authentication, we usually use the CBC-MAC, acronym for "Cipher Block Chaining-Message Authentication Code", based on the use of the DES algorithm for each data stream, the output of a block authentication used in the authentication block of the next data stream, hence the concept of "chain". However, the data processing mechanism used in the two operations does not allow decryption and authentication to be carried out in parallel on the same data stream. Thus, in practice, we decipher an entire message, then we authenticate at least a portion of this message, which is not very effective.
Dans l'invention, on a recherché un autre procédé de cryptographie au vol qui permette de faire du déchiffrement par flots et de l'authentification en parallèle. Dans l'invention, on a recherché un procédé de cryptographie utilisant un algorithme cryptographique symétrique par flot pour le chiffrement/déchiffrement et pour l'authentification. L'idée à la base de l'invention est qu'en mettant en œuvre les mêmes mécanismes dans les deux opérations, on va permettre le traitement en parallèle des flots de données à déchiffrer et authentifier.In the invention, an alternative method of on-the-fly cryptography has been sought which allows decryption by streams and authentication in parallel. In the invention, a cryptography method has been sought using a symmetric flow cryptographic algorithm for encryption / decryption and for authentication. The idea underlying the invention is that by implementing the same mechanisms in the two operations, we will allow the parallel processing of the data streams to be decrypted and authenticated.
Dans l'invention, on a cherché un moyen d'utiliser de façon performante un algorithme cryptographique faible, tel que le DES ("Data Encryption Standard" ) , dont la mise en œuvre est peu coûteuse (en temps de calcul et en besoin mémoire notamment) . L'idée à la base de l'invention, est d'augmenter la force cryptographique de cet algorithme en utilisant un mécanisme particulier.In the invention, we looked for a way to efficiently use a weak cryptographic algorithm, such as the DES ("Data Encryption Standard"), the implementation of which is inexpensive (in computation time and in memory need especially) . The idea behind the invention is to increase the cryptographic strength of this algorithm using a special mechanism.
Dans l'invention, on a cherché une solution à ces différents problèmes techniques.In the invention, a solution has been sought to these various technical problems.
Telle que caractérisée, l'invention concerne donc un procédé de cryptographie pour la génération d'un nombre pseudo-aléatoire et/ou pour le chiffrement/déchiffrement et/ou pour l'authentification de données, utilisant une clé de chiffrement K et un algorithme cryptographique symétrique par flot, caractérisé en ce qu'il comprend les étapes suivantes :As characterized, the invention therefore relates to a cryptography method for the generation of a pseudo-random number and / or for encryption / decryption and / or for data authentication, using an encryption key K and an algorithm symmetric flow cryptographic, characterized in that it comprises the following stages:
-concaténation d'un index fourni par un compteur avec une première sous-clé, pour former une première donnée de longueur 1,-concatenation of an index provided by a counter with a first subkey, to form a first datum of length 1,
-application de ladite première donnée en entrée d'un bloc de chiffrement correspondant à l'algorithme cryptographique symétrique, avec une deuxième sous-clé de longueur k, pour fournir en sortie une deuxième donnée,application of said first datum at the input of an encryption block corresponding to the symmetric cryptographic algorithm, with a second subkey of length k, to output a second datum,
-réalisation d'un OU exclusif bit à bit de ladite deuxième donnée avec une troisième clé de longueur 1, pour fournir en sortie une donnée pseudoaléatoire fonction de la clé de chiffrement K formée desdites première, deuxième et troisième sous-clés.realization of a bit-by-bit exclusive OR of said second datum with a third key of length 1, in order to provide a pseudo-random datum as a function of the encryption key K formed of said first, second and third sub-keys.
Ce procédé permet de réaliser le déchiffrement et l'authentification du même flot de message en parallèle. On gagne ainsi du temps et on a une gestion beaucoup plus simple des données de la mémoire déportée, récupérées par la carte à puce.This process makes it possible to decrypt and authenticate the same message stream in parallel. This saves time and has a much simpler management of the data in the remote memory, recovered by the smart card.
Ce procédé peut utiliser pour le déchiffrement une primitive d'algorithme cryptographique symétrique (code exécutable implémenté dans la carte à puce) déjà implémentée pour l'authentification, ce qui réduit l'espace mémoire nécessaire au code exécutable correspondant, et qui simplifie aussi la mise en œuvre du procédé (un seul code à tester) .This method can use for decryption a symmetric cryptographic algorithm primitive (executable code implemented in the smart card) already implemented for authentication, which reduces the memory space necessary for the corresponding executable code, and which also simplifies the setting implementation of the process (only one code to test).
En outre, de manière avantageuse, en appliquant en entrée du procédé de déchiffrement selon l'invention, des aléas physiques de la carte, on obtient un générateur d'aléas beaucoup plus fort sur le plan cryptographique, et ce à moindre coût.In addition, advantageously, by applying as input the decryption method according to the invention, physical hazards of the card, a hazard generator is obtained which is much stronger cryptographically, and this at a lower cost.
D'autres caractéristiques et avantages de l'invention sont détaillés dans la description suivante, à titre indicatif et non limitatif et en référence aux dessins annexés dans lesquels : -la figure 1 représente un organigramme de la génération d'un nombre pseudo-aléatoire et du déchiffrement par flot d'un message m selon le procédé de cryptographie au vol de l'invention; etOther characteristics and advantages of the invention are detailed in the following description, by way of non-limiting illustration and with reference to the appended drawings in which: FIG. 1 represents a flow diagram of the generation of a pseudo-random number and of stream decryption of a message m according to the method of on-the-fly cryptography of the invention; and
-la figure 2 représente un organigramme correspondant à une authentification par flot du message m, selon le procédé de cryptographie au vol selon 1 ' invention.FIG. 2 represents a flowchart corresponding to authentication by flow of the message m, according to the on-the-fly cryptography method according to the invention.
Sur la figure 1, on a représenté la séquence de déchiffrement des flots mi et mi+i d'un message m selon le procédé de cryptographie de 1 ' invention, utilisant un bloc de chiffrement E, de taille 1, et une clé de chiffrement K de taille supérieure à 1. Le bloc de chiffrement E correspond à un algorithme cryptographique symétrique par bloc. Il s'agit par exemple de l'algorithme DES. La taille du bloc (nombre de bits en entrée et en sortie du bloc) correspond à la longueur du bloc de message mi.In FIG. 1, the sequence for decrypting the streams mi and mi + i of a message m has been represented according to the cryptography method of the invention, using an encryption block E, of size 1, and an encryption key. K of size greater than 1. The encryption block E corresponds to a symmetric cryptographic algorithm per block. This is for example the DES algorithm. The size of the block (number of bits entering and leaving the block) corresponds to the length of the mi message block.
Cette séquence comprend la génération d'un nombre pseudo-aléatoire à partir de l'index des blocs de message. Cet index vaut i pour le ième bloc mi du message m. C'est ce nombre pseudo-aléatoire qui sert de masque au flot de message à déchiffrer.This sequence includes generating a pseudo-random number from the index of message blocks. This index is equal to i for the ith block mi of the message m. It is this pseudo-random number which serves as a mask for the message flow to be deciphered.
La séquence de génération du nombre pseudoaléatoire pour le flot de message mi est la suivante:The sequence for generating the pseudo-random number for the message stream mi is as follows:
-concaténation de l'index i, fourni par un compteur non représenté, avec une première sous-clé K2 de la clé de chiffrement, pour former une première donnée Dl=(i//K2) de longueur 1;-concatenation of the index i, supplied by a counter not shown, with a first subkey K2 of the encryption key, to form a first datum Dl = (i // K2) of length 1;
-application de cette première donnée Dl de longueur 1 en entrée d'un bloc de chiffrement E de l'algorithme cryptographique symétrique, avec une deuxième sous-clé Kl de longueur k, pour fournir une deuxième donnée D2=E (Kl, i//K2) ,application of this first datum Dl of length 1 at the input of an encryption block E of the symmetric cryptographic algorithm, with a second subkey Kl of length k, to supply a second datum D2 = E (Kl, i // K2),
-réalisation d'un OU exclusif bit à bit de cette deuxième donnée D2 avec une troisième sous-clé K3 de longueur 1, pour fournir une donnée pseudo-aléatoire Daiéa-i=F(K,i) .realization of a bit-by-bit exclusive OR of this second datum D2 with a third subkey K3 of length 1, to provide a pseudo-random datum D a i éa -i = F (K, i).
Cette donnée pseudo-aléatoire obtenue à partir de la valeur i de l'index est fonction de l'algorithme cryptographique utilisé (bloc de chiffrement ou primitive E) et de la clé de chiffrement K formée des trois sous-clés Kl, K2 , K3.This pseudo-random datum obtained from the value i of the index is a function of the cryptographic algorithm used (encryption block or primitive E) and of the encryption key K formed of the three subkeys K1, K2, K3 .
Dans la suite, pour la simplicité de l'exposé, le terme "index" peut désigner aussi bien sa fonction que sa valeur. En pratique, l'index et la sous clé K2 ont chacun une longueur de 1/2 bits et la sous clé K3 a une longueur de 1 bits.In the following, for the sake of simplicity, the term "index" can denote both its function and its value. In practice, the index and subkey K2 each have a length of 1/2 bit and the subkey K3 has a length of 1 bit.
La force de 1 ' algorithme cryptographique symétrique par flot est donnée par la taille de la clé de chiffrement qu'il utilise. Dans l'exemple, cette force est donnée par la taille k de la sous clé Kl utilisée par le bloc de chiffrement E.The strength of the symmetric flow algorithm is given by the size of the encryption key it uses. In the example, this force is given by the size k of the subkey K1 used by the encryption block E.
On sait calculer que la force cryptographique due à la sous clé K2 est égale à 1/2 ; et que la force cryptographique due à la sous clé K3 est égale à 1/2.We know how to calculate that the cryptographic strength due to the subkey K2 is equal to 1/2; and that the cryptographic strength due to the subkey K3 is equal to 1/2.
Ainsi, la force cryptographique du procédé de cryptographie selon l'invention utilisant une clé de chiffrement K=(K1, K2 , K3) en combinaison avec le bloc de chiffrement E devient donc égale à k+1. Ainsi, bien qu'utilisant un algorithme dit faible, on obtient un procédé de cryptographie sûr, à moindre coût .Thus, the cryptographic strength of the cryptography method according to the invention using an encryption key K = (K1, K2, K3) in combination with the encryption block E therefore becomes equal to k + 1. Thus, although using a so-called weak algorithm, a secure cryptography process is obtained, at a lower cost.
Dans un exemple de réalisation pratique avec un algorithme DES de force cryptographique k égale à 56 bits, on aura 1 typiquement égal à 64 bits. La force cryptographique d'un procédé selon l'invention est alors de 120 bits, avec une clé de chiffrement K de 152 bits. On a vu que la contribution de la sous clé K3 à la force de l'algorithme DES est limitée à 1/2. Aussi, on formera de préférence la sous-clé-K3 à partir d'une clé k3 de taille 1/2, que l'on concatène avec elle-même: K3=k3//k3. On a ainsi un gain de place mémoire correspondant de 1/2 bits (on mémorise k3 , mais on utilise K3) .In a practical embodiment with a DES algorithm with a cryptographic strength k equal to 56 bits, there will be 1 typically equal to 64 bits. The cryptographic strength of a method according to the invention is then 120 bits, with an encryption key K of 152 bits. We have seen that the contribution of the subkey K3 to the strength of the DES algorithm is limited to 1/2. Also, we will preferably form the subkey-K3 from a key k3 of size 1/2, which we concatenate with itself: K3 = k3 // k3. We thus have a corresponding memory space gain of 1/2 bit (we memorize k3, but we use K3).
On a vu que le procédé de cryptographie au vol selon l'invention fournit une donnée pseudo-aléatoire Daiéa-i à. partir de l'index des flots de message. Cette donnée pseudo-aléatoire Daiéa-i est utilisée pour masquer le flot de message correspondant mi. On réalise donc un OU Exclusif bit à bit, opération notée ®, entre cette donnée pseudo-aléatoire et le flot de message à déchiffrer mi. On obtient en sortie, le flot de donnée déchiffré correspondant, dci. Pour le flot de message rrii+i suivant, d'index i+1, on a la même séquence de déchiffrement. Ainsi, de flot en flot, on déchiffre l'ensemble du message m.We have seen that the flight cryptography method according to the invention provides a pseudo-random datum Daiea-i to. from the message stream index. This pseudo-random datum D a iéa-i is used to mask the corresponding message flow mi. We therefore perform a bit-by-bit Exclusive OR, operation noted ®, between this pseudo-random datum and the message stream to be deciphered mi. The corresponding decrypted data stream, dci, is obtained at output. For the following stream of message rrii + i, of index i + 1, we have the same decryption sequence. Thus, from stream to stream, we decipher the entire message m.
Le procédé cryptographique qui vient d'être décrit en relation avec la figure 1, comprend ainsi un procédé permettant la génération d'un nombre pseudo-aléatoire Daiéa-i/ à partir d'un simple index, c'est à dire en d'autres termes le contenu d'un compteur incrémenté à chaque nouveau flot de message. Le procédé de déchiffrement comprend la séquence de fourniture de ce nombre pseudo-aléatoire, qui sert de masque au flot de message à déchiffrer, et qui est donc utilisé dans l'opération de OU exclusif bit à bit avec ce flot de message. Ce procédé peut aussi bien être utilisé comme procédé de chiffrement, pour chiffrer un message, par exemple si la carte veut enregistrer une information dans la mémoire déportée.The cryptographic method which has just been described in relation to FIG. 1, thus comprises a method allowing the generation of a pseudo-random number Daié a -i / from a simple index, that is to say in other words the content of a counter incremented with each new message flow. The decryption method comprises the sequence of supplying this pseudo-random number, which serves as a mask for the message stream to be decrypted, and which is therefore used in the bit-by-bit exclusive OR operation with this message stream. This method can also be used as an encryption method, to encrypt a message, for example if the card wants to record information in the remote memory.
Avantageusement, le nombre pseudo-aléatoire généré selon le procédé de l'invention, peut être utilisé de la même façon que dans le procédé de déchiffrement, mais pour générer un aléa fort, du point de vue cryptographique, à partir d'un aléa faible, typiquement un aléa physique. On entend par aléa physique, un aléa fourni à partir de caractéristiques physiques, telles qu'un champ électromagnétique ou autres. Ces aléas physiques sont liés à la structure physique du circuit qui les génère. Ils sont souvent utilisés dans les cartes à puce. Mais ce sont des aléas faibles sur le plan cryptographique. En appliquant un aléa physique Aléa-φ en entrée à la place d'un flot de message mi , on obtient en sortie un aléa fort Aléa-φF.Advantageously, the pseudo-random number generated according to the method of the invention can be used in the same way as in the decryption method, but to generate a strong random, from the cryptographic point of view, from a weak random , typically a physical hazard. By physical hazard is meant a hazard provided from physical characteristics, such as an electromagnetic field or the like. These physical hazards are linked to the physical structure of the circuit that generates them. They are often used in smart cards. But these are weak uncertainties on the cryptographic level. By applying a physical hazard Alea-φ at the input instead of a message stream mi, we obtain a strong hazard Alea-φF at output.
Ainsi, le procédé de cryptographie selon l'invention permet trois applications indépendantes : la génération d'un nombre pseudo-aléatoire Daiéa-i/ le chiffrement/déchiffrement par flot de message mi, et la génération d'un aléa fort à partir d'un aléa faible.Thus, the cryptography method according to the invention allows three independent applications: the generation of a pseudo-random number D a iéa-i / le encryption / decryption by mi message flow, and the generation of a strong hazard from a weak hazard.
La figure 2 représente' un exemple typique d'un procédé d' authentification au vol du type CBC-MAC. Pour chaque flot d'un message à authentifier, on utilise habituellement le même bloc de chiffrement E avec la même clé d' authentification K4 , sauf pour le dernier flot qui doit utiliser soit au moins une clé d' authentification différente et/ou un bloc de chiffrement différent. On peut aussi avoir pour le dernier bloc, l'utilisation d'une combinaison de blocs de chiffrement, dont l'un au moins est différent de celui utilisé pour les blocs précédents.FIG. 2 represents a typical example of a method of authentication on the fly of the CBC-MAC type. For each flow of a message to be authenticated, the same encryption block E is usually used with the same authentication key K4, except for the last flow which must use either at least one different authentication key and / or a block different encryption. One can also have for the last block, the use of a combination of encryption blocks, at least one of which is different from that used for the preceding blocks.
Dans l'exemple, le message à authentifier comprend p blocs de messages mx à mp.In the example, the message to be authenticated comprises p message blocks m x to m p .
La description d'une séquence d' authentificationThe description of an authentication sequence
(autre que la dernière) est la suivante : en entrée de la séquence d' authentification, on a le bloc de message mi. Un Ou exclusif bit à bit est réalisé entre ce bloc de message et la donnée d' authentification ai-α. fournie par la séquence d ' authentification précédente (pour le bloc rrii-i. La donnée obtenue est appliquée en entrée du bloc E de chiffrement, utilisant la clé d' authentification K4. En sortie de ce bloc, on obtient une donnée d' authentification correspondante noté ai. Cette donnée d' authentification est fournie à la séquence d' authentification suivante, pour réaliser un Ou exclusif bit à bit avec le bloc de message suivant mι+ι. La dernière séquence d' authentification appliquée au dernier bloc de message mp est différente en ce qu'elle utilise par exemple une clé d' authentification différente K5 ; ou qu'elle applique successivement le bloc E de chiffrement avec une première clé, par exemple K4 , puis à la suite avec une autre clé, par exemple K5 ; ou encore que le bloc de chiffrement est différent ; ou qu'elle utilise une combinaison de ces différentes variantes. Sur la figure 2, la dernière séquence d' authentification utilise le bloc E de chiffrement avec une clé d' authentification K5, différente de K4 , pour le dernier flot de donnée mp.(other than the last) is as follows: at the input of the authentication sequence, there is the message block mi. A bit-by-bit exclusive Or is performed between this message block and the authentication data item ai-α . provided by the previous authentication sequence (for the rrii-i block. The data obtained is applied at the input of the encryption block E, using the authentication key K4. At the output of this block, an authentication data is obtained This corresponding authentication datum is supplied to the following authentication sequence, in order to perform an exclusive bitwise operation with the following message block mι + ι.The last authentication sequence applied to the last message block m p is different in this that it uses, for example, a different authentication key K5; or that it successively applies the encryption block E with a first key, for example K4, then subsequently with another key, for example K5; or that the encryption block is different; or that it uses a combination of these different variants. In FIG. 2, the last authentication sequence uses the encryption block E with an authentication key K5, different from K4, for the last data stream m p .
De tels procédés d' authentification par chaîne font partie de l'état de l'art.Such chain authentication methods are part of the state of the art.
Mais l'avantage que l'on tire d'un procédé de cryptographie selon l'invention, est qu'après la réception d'un nouveau bloc de message mi, on peut réaliser en parallèle le déchiffrement et l'authentification. En outre, on peut n'utiliser qu'un seul et même bloc E de chiffrement pour les deux procédés, ou un nombre limité de blocs de chiffrement. On gagne ainsi du temps de calcul et de l'espace mémoire de travail et espace mémoire de code exécutable .But the advantage which one derives from a cryptography method according to the invention is that after the reception of a new message block mi, it is possible to carry out the decryption and the authentication in parallel. Furthermore, it is possible to use only one and the same encryption block E for the two methods, or a limited number of encryption blocks. This saves computation time and working memory space and executable code memory space.
L'invention qui vient d'être décrite ne se limite pas à une utilisation du DES, comme algorithme cryptographique symétrique par flot. Par exemple, on peut aussi utiliser l'algorithme AES . L'intérêt du DES est qu'il nécessite peu de puissance de calcul et peu d'espace mémoire (code exécutable) .The invention which has just been described is not limited to the use of DES, as a symmetric flow cryptographic algorithm. For example, you can also use the AES algorithm. The advantage of DES is that it requires little computing power and little memory space (executable code).
Cette invention s'applique dans tous les cas où l'on veut utiliser un algorithme cryptographiquement faible, en général pour des raisons de moyens de traitement limités ou de temps de calcul disponible réduit, tout en ayant un procédé de cryptographie très sûr.This invention applies in all cases where one wants to use a cryptographically weak algorithm, in general for reasons of means of limited processing or reduced available computing time, while having a very secure cryptography process.
Elle s'applique aussi de façon avantageuse dans tous les domaines où l'on cherche à réaliser différentes fonctions indépendantes à moindre coût. On a vu que le procédé de cryptographie permettait à la fois de renforcer un aléa physique, de chiffrer/déchiffrer et authentifier des messages et de générer des nombres pseudo-aléatoires.It also applies advantageously in all areas where it is sought to achieve different independent functions at lower cost. We have seen that the cryptography process made it possible to reinforce a physical hazard, to encrypt / decrypt and authenticate messages and to generate pseudo-random numbers.
Cette invention s'applique tout particulièrement dans le domaine des cartes à puce ou plus généralement des dispositifs électroniques portables utilisant une mémoire déportée, qui nécessite le déchiffrement et l'authentification des données contenues dans cette mémoire . This invention is particularly applicable in the field of smart cards or more generally portable electronic devices using a remote memory, which requires the decryption and authentication of the data contained in this memory.

Claims

REVENDICATIONS
1. Procédé de cryptographie pour la génération d'un nombre pseudo-aléatoire et/ou pour le chiffrement/déchiffrement par flot et/ou pour l'authentification de données, utilisant une clé de chiffrement K et un algorithme cryptographique symétrique par bloc, caractérisé en ce qu'il comprend les étapes suivantes :1. Cryptography method for the generation of a pseudo-random number and / or for encryption / decryption by flow and / or for data authentication, using an encryption key K and a symmetric block cryptographic algorithm, characterized in that it includes the following steps:
-concaténation d'un index (i) fourni par un compteur avec une première sous-clé (K2) , pour former une première donnée (Dl) de longueur 1,-concatenation of an index (i) provided by a counter with a first subkey (K2), to form a first datum (Dl) of length 1,
-application de ladite première donnée en entrée d'un bloc de chiffrement (E) dudit algorithme cryptographique symétrique, avec une deuxième sous-cléapplication of said first datum at the input of an encryption block (E) of said symmetric cryptographic algorithm, with a second subkey
(Kl) de longueur k, pour fournir en sortie une deuxième donnée (D2) ,(Kl) of length k, to provide a second datum (D2) as an output,
-réalisation d'un OU exclusif bit à bit de ladite deuxième donnée avec une troisième clé (K3) de longueur-realization of an exclusive bit-by-bit OR of said second datum with a third key (K3) of length
1, pour fournir en sortie une donnée pseudo aléatoire (Daιéa-i) fonction de la clé de chiffrement K formée desdites première, deuxième et troisième sous-clés.1, to output pseudo-random data (D a ι éa -i) as a function of the encryption key K formed from said first, second and third sub-keys.
2. Procédé de cryptographie selon la revendication 1, caractérisé en ce que ledit index (i) et ladite deuxième sous-clé (K2) ont une longueur 1/2.2. Cryptography method according to claim 1, characterized in that said index (i) and said second subkey (K2) have a length 1/2.
3. Procédé de cryptographie selon la revendication 1 ou 2, caractérisé en ce que ladite troisième sous-clé (K3) est formée par la concaténation de deux fois la même clé (k3) de longueur 1/2.3. cryptography method according to claim 1 or 2, characterized in that said third subkey (K3) is formed by concatenating twice the same key (k3) of length 1/2.
4. Procédé de cryptographie selon l'une quelconque des revendications précédentes, caractérisé en ce que pour le déchiffrement d'un message m par blocs de longueur 1, il comprend pour chaque bloc de message la réalisation d'un OU exclusif bit à bit entre le bloc de message considéré (τ ±) d'index i et la donnée pseudo-aléatoire (Daiéa-i) calculée à partir dudit index du bloc dans le flot de message.4. Cryptography method according to any one of the preceding claims, characterized in that for the decryption of a message m by blocks of length 1, it comprises for each message block the production of an exclusive bit-by-bit OR between the message block considered (τ ±) of index i and the pseudo-random datum (D a i éa -i) calculated from said index of the block in the message flow.
5. Procédé de cryptographie selon la revendication précédente, caractérisé en ce qu'il comprend pour chaque bloc de message mi à déchiffrer, l'authentification en parallèle dudit bloc de message .5. Cryptography method according to the preceding claim, characterized in that it comprises, for each message block mi to be deciphered, the authentication in parallel of said message block.
6. Procédé de cryptographie selon la revendication précédente, caractérisé en ce que ladite authentification comprend l'utilisation du même bloc de chiffrement (E) dudit algorithme de cryptographie.6. Cryptography method according to the preceding claim, characterized in that said authentication comprises the use of the same encryption block (E) of said cryptography algorithm.
7. Procédé de cryptographie selon la revendication précédente, caractérisé en ce que ladite authentification comprend l'utilisation pour le dernier bloc de message au moins, d'une clé d' authentification différente, et/ou d'un bloc de chiffrement différent dudit algorithme de cryptographie . 7. Cryptography method according to the preceding claim, characterized in that said authentication comprises the use for at least the last message block, of a different authentication key, and / or of a different encryption block of said algorithm cryptography.
8. Procédé de cryptographie selon l'une quelconque des revendications 1 à 3, caractérisé en ce qu'il comprend la réalisation d'un OU exclusif bit à bit de ladite donnée pseudo-aléatoire (Daiéa-i) avec un aléa physique (Aléa-φ) pour fournir en sortie un aléa cryptographiquement sûr(Aléa-φF) .8. Cryptography method according to any one of claims 1 to 3, characterized in that it comprises the realization of an exclusive bit-by-bit OR of said pseudo-random datum (D a iéa-i) with a physical random (Aléa-φ) to provide an output with a cryptographically secure hazard (Aléa-φF).
9. Procédé de cryptographie selon l'une quelconque des revendications précédentes, caractérisé en ce que ledit algorithme cryptographique symétrique est le DES.9. A cryptographic method according to any one of the preceding claims, characterized in that said symmetric cryptographic algorithm is the DES.
10. Procédé de cryptographie selon l'une quelconque des revendications précédentes, caractérisé en ce que ledit algorithme cryptographique symétrique est l'AES.10. Cryptography method according to any one of the preceding claims, characterized in that said symmetric cryptographic algorithm is AES.
11. Carte à puce ou dispositif électronique portable comprenant des moyens de traitement de données, des moyens de mémorisation et au moins un compteur, caractérisé en ce qu'il met en œuvre un procédé de cryptographie selon l'une quelconque des revendications précédentes.11. Chip card or portable electronic device comprising data processing means, storage means and at least one counter, characterized in that it implements a cryptography method according to any one of the preceding claims.
12. Carte à puce ou dispositif électronique portable selon la revendication précédente, lesdits moyens de mémorisation comprenant de la mémoire déportée sur un autre support physique, caractérisé en ce qu'elle met en œuvre ledit procédé de cryptographie pour déchiffrer les informations contenues dans la dite mémoire déportée ou pour authentifier une portion au moins de ces informations. 12. Chip card or portable electronic device according to the preceding claim, said storage means comprising remote memory on another physical medium, characterized in that it implements said cryptographic method to decrypt the information contained in said remote memory or to authenticate at least a portion of this information.
PCT/FR2003/000532 2002-02-21 2003-02-18 Cryptographic method using a data flow-symmetrical cryptographic algorithm and use in a smart card WO2003071735A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP03717411A EP1479189A1 (en) 2002-02-21 2003-02-18 Cryptographic method using a data flow-symmetrical cryptographic algorithm and use in a smart card
AU2003222578A AU2003222578A1 (en) 2002-02-21 2003-02-18 Cryptographic method using a data flow-symmetrical cryptographic algorithm and use in a smart card

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR02/02226 2002-02-21
FR0202226A FR2836311B1 (en) 2002-02-21 2002-02-21 CRYPTOGRAPHY METHOD USING A FLOW SYMMETRIC CRYPTOGRAPHIC ALGORITHM AND APPLICATION TO A CHIP CARD

Publications (1)

Publication Number Publication Date
WO2003071735A1 true WO2003071735A1 (en) 2003-08-28

Family

ID=27636401

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2003/000532 WO2003071735A1 (en) 2002-02-21 2003-02-18 Cryptographic method using a data flow-symmetrical cryptographic algorithm and use in a smart card

Country Status (4)

Country Link
EP (1) EP1479189A1 (en)
AU (1) AU2003222578A1 (en)
FR (1) FR2836311B1 (en)
WO (1) WO2003071735A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2459367C2 (en) * 2010-07-16 2012-08-20 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Московский государственный технологический университет "СТАНКИН" (ФГБОУ ВПО МГТУ "СТАНКИН") Method to generate alternating key for unit coding and transfer of coded data

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5673318A (en) * 1993-04-23 1997-09-30 International Business Machines Corporation Method and apparatus for data authentication in a data communication environment
WO1998010559A1 (en) * 1996-09-03 1998-03-12 Siemens Aktiengesellschaft Device and method for the cryptographic processing of a digital data stream presenting any number of data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5673318A (en) * 1993-04-23 1997-09-30 International Business Machines Corporation Method and apparatus for data authentication in a data communication environment
WO1998010559A1 (en) * 1996-09-03 1998-03-12 Siemens Aktiengesellschaft Device and method for the cryptographic processing of a digital data stream presenting any number of data

Also Published As

Publication number Publication date
FR2836311A1 (en) 2003-08-22
AU2003222578A1 (en) 2003-09-09
EP1479189A1 (en) 2004-11-24
FR2836311B1 (en) 2004-05-28

Similar Documents

Publication Publication Date Title
EP0800691B1 (en) Method for implementing a private key communication protocol between two processing devices
US20080084996A1 (en) Authenticated encryption method and apparatus
US20090103726A1 (en) Dual-mode variable key length cryptography system
KR102383829B1 (en) Cryptographic method for securely exchanging messages and device and system for implementing this method
EP3228043B1 (en) Method of encryption with dynamic diffusion and confusion layers
EP1358733A1 (en) Secure method for secret key cryptographic calculation and component using said method
EP3300293B1 (en) Method for symmetric encryption or decryption by blocks
EP2795833B1 (en) Authentication method between a reader and a radio tag
FR2738972A1 (en) DATA ENABLING METHOD FOR SECURE DATA EXCHANGE PROTOCOL
EP1524795B1 (en) Data encryption in an electronic apparatus with several symmetrical processors
EP3300292A1 (en) Encryption or decryption method protected against side channel attacks
FR2949886A1 (en) METHOD FOR CRYPTOGRAPHIC DATA PROCESSING
FR2949010A1 (en) COUNTERMEASURE PROCESS FOR PROTECTING STORED DATA
EP1615369A1 (en) Block encryption of the content of a memory external to a processor
EP0756398A1 (en) System and method for communicating encrypted messages using RSA with modular reduction to provide fast decryption
WO2003071735A1 (en) Cryptographic method using a data flow-symmetrical cryptographic algorithm and use in a smart card
FR3052279B1 (en) AUTHENTICATION OF A CARD WITH NON-CONTACT READING
US11431478B2 (en) Encryption and decryption system, encryption device, decryption device and encryption and decryption method
FR3076151A1 (en) METHOD OF DETERMINING AN INTEGRITY SUM, COMPUTER PROGRAM AND ELECTRONIC ENTITY
CA2288767A1 (en) Pseudo-random generator based on a hash coding function for cryptographic systems requiring random drawing
EP2374240B1 (en) Method of implementing a block encryption algorithm
WO2009068658A1 (en) Methods and devices for encrypting and decrypting a data message with random secret key
FR2879866A1 (en) Key generating method for e.g. Rivest, Shamir, Adelman type algorithm, involves generating secret number by storing randomly selected integers in memory of electronic component if sum of integers is equal to number stored in memory
JP2005529365A (en) AES mix column conversion
Selmane Global and local Fault attacks on AES cryptoprocessor: Implementation and Countermeasures.

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SC SD SE SG SK SL TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
WWE Wipo information: entry into national phase

Ref document number: 2003717411

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2003717411

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP