WO1999031845A1 - Method for making secure the transmission of a message from a transmitting device to a receiving device - Google Patents

Method for making secure the transmission of a message from a transmitting device to a receiving device Download PDF

Info

Publication number
WO1999031845A1
WO1999031845A1 PCT/FR1998/002753 FR9802753W WO9931845A1 WO 1999031845 A1 WO1999031845 A1 WO 1999031845A1 FR 9802753 W FR9802753 W FR 9802753W WO 9931845 A1 WO9931845 A1 WO 9931845A1
Authority
WO
WIPO (PCT)
Prior art keywords
prgm
message
receiving device
encrypted
elementary
Prior art date
Application number
PCT/FR1998/002753
Other languages
French (fr)
Inventor
Lionel Brahami
Vincent Rigal
Original Assignee
Schlumberger Systemes
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 Schlumberger Systemes filed Critical Schlumberger Systemes
Priority to EP98962482A priority Critical patent/EP1040620A1/en
Priority to JP2000539611A priority patent/JP2002509269A/en
Publication of WO1999031845A1 publication Critical patent/WO1999031845A1/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress

Definitions

  • the invention relates to a method for securing the transmission of messages from a sending device to a receiving device.
  • this information When information is transmitted from a sending device to a receiving device, this information, contained in a message, is likely to be altered during its transmission. This alteration can come either from a defect in the transmission, transmission or reception of the message or from fraud by a third party. The received message is then not intact.
  • a problem which the invention proposes to solve is to carry out a method of securing the transmission of a message from a sending device to a receiving device which does not require the implementation of the two aforementioned steps. decryption of the message and verification of the certificate.
  • the subject of the invention is a method for securing the transmission of a message from a sending device to a receiving device, characterized in that:
  • n being a number greater than or equal to 1;
  • a logical property is defined so that, for any elementary unit, the logical property, applied to an authentic elementary unit, gives a logical value of the true type
  • the message is encrypted by means of encryption of the sending device using an encryption algorithm comprising a key so as to obtain an encrypted result;
  • the encrypted result is decrypted by the receiving device using a decryption algorithm comprising a secret key so as to obtain a decrypted result;
  • the decrypted result is divided into elementary units; the logical property is applied to the elementary units so as to obtain, for each unit, a logical value of the true type or of the false type.
  • the message is considered authentic and integral if, for each unit, the logical values have a value of the true type.
  • the Prgm message is a computer program capable of being executed and / or of being interpreted by the receiving device R.
  • the elementary units are instructions of the Prgm program.
  • the receiving device R is a portable memory object of the smart card type.
  • the receiving device R comprises a portable memory object of the smart card type.
  • the portable memory object is a subscriber identification module (SIM).
  • SIM subscriber identification module
  • Prgm message is written in interpreted language high level.
  • the high level language is the Java language.
  • the computer program consists of a set of precompiled instructions.
  • the Prgm message is encrypted in continuous stream or in chained blocks.
  • the Prgm message is encrypted in blocks and the blocks of the encrypted Prgm message are swapped.
  • One of the swapped blocks is a start or end block of the Prgm message.
  • the result Kc (Prgm) is decrypted in blocks, each encrypted block being at the origin of a decrypted block taking the place of the encrypted block.
  • the encryption and decryption algorithms involve a hazard, transmitted by the sending device E, to the receiving device R.
  • the message Prgm is recorded, after verification, in a non-volatile memory of the receiving device R.
  • the Prgm message is transmitted from a sending device E to a receiving device R.
  • the Prgm message is for example a computer program capable of being executed and / or interpreted.
  • the transmitter device E is, for example, a server, a computer, a transmitter station in a telecommunications network or a smart card reader with or without contact, in short, any device capable of encrypting and transmitting a message.
  • the sending device E must be considered in a broad sense as including complex devices formed in particular of physically separate parts, one part ensuring for example the encryption of the message, another, the transmission stricto sensu of said message.
  • the receiving device R is, for example, a computer possibly equipped with a smart card reader and a card inserted in said reader, a receiving station in a telecommunications network, a portable telephone with or without a module subscriber identification (SIM) or even a smart card or such a module, in short, any device capable of receiving a message or even storing this message and, advantageously, when the message is a computer program, to interpret and / or to run this program.
  • SIM subscriber identification
  • the receiving device advantageously comprises a portable object with memory of the chip card type
  • this portable object can be a payment card or an access control card, for example, to a computer network.
  • this Prgm computer program is divided into n elementary units I, n being an integer greater than or equal to 1. They are instructions, blocks of instructions or, in the case where the Prgm program is written in an interpretable Java-like language, from the program's precompiled instructions (or bytecodes).
  • a logical property P is defined so that, for any elementary unit I, this property P, applied to an authentic elementary unit, gives a logical value P (I) of the true type.
  • P (I) logical value of the true type.
  • the Prgm program is encrypted by encryption means of the sending device E using an encryption algorithm comprising a key Kc known to said device E so as to obtain a result Kc (Prgm).
  • the encryption guarantees the confidentiality of the Prgm program during its transmission and reception, but, above all, during its transmission to the receiving device R.
  • This result KqPrgm) is then transmitted by the device E, to the receiving device R.
  • Kc K (Prgm)
  • Kc K (Prgm)
  • This key Kc can be specific to the device E and known to the device R, or specific to the device R and also known to the device E.
  • An example of the first configuration is the case where the device R subscribes to a service delivered by the device transmitter.
  • An example of the second configuration is the case where the receiving device, when requesting a transmission of the program, supplies the key Kc, the decryption key Kd remaining known only to the receiving device.
  • Kc and Kd are identical (private key system), and where this key is sent, in encrypted form, by the receiving device, to the sending device.
  • the decrypted result Kd (Kc (Prgm)) is divided or decomposed into n elementary units, images of or corresponding to the n elementary units resulting from the division of the Prgm program into the sending device E.
  • the logical property P is then applied to said n elementary units so as to obtain, for each unit, a logical value of the true type or of the false type.
  • the decrypted program is different from Prgm and the receiving device R deduces therefrom that the program Prgm has been the subject of at least one modification on transmission. , upon reception or during its transmission and / or that said Prgm program has encrypted the message with a key other than Kc, an unexpected key.
  • the program is therefore not complete or not authentic.
  • the invention therefore makes it possible to guarantee, in a single encryption-decryption operation, both the integrity, the authentication and the confidentiality of the Prgm program.
  • the instructions of the computer language in which the Prgm program is written are instructions coded on four bytes
  • certain codes, defined by a set of parameters do not correspond to any comprehensible instruction.
  • certain parameters of certain codes typically the last three bytes, have only certain allowed values.
  • a memory address cannot thus be negative, or be outside the space allocated to the Prgm program. This is the reason why the property P advantageously includes a test of parameters, said test depending on the type of instruction.
  • the unit non-detection rate C is defined as the percentage of possible instructions which are not recognized as false by the application of the property P during decryption and following a specific modification of the Prgm program
  • prob (1 - C) n .
  • the application of the P property does not require too heavy an implementation in particular a too long calculation time. It allows error detection in all types of Prgm programs when the encryption algorithm is of good quality, having regard to the pseudo-random nature of any decryption of a sequence of falsified instructions.
  • the encryption algorithm is advantageously of the chained block or continuous flow type.
  • a modification of an elementary instruction will involve a modification of other instructions.
  • the encrypted program can be broken down into a series of for example n blocks corresponding more or less to the n elementary units.
  • the probabil probability that the modification is not detected is then equal to 1 - C, therefore very high.
  • the blocks of the encrypted program are swapped, for example, so that said head and tail blocks of the program are in a location which is not not predictable by a fraudster, but nevertheless known to devices E and R.
  • Confidentiality is also improved when the encryption algorithm involves a hazard generated for example by the receiving device R and communicated to the sending device E. It can act, for example, of an "or exclusive operation applied to a determined number of bytes of the program or to all of it before encryption.
  • NOP empty instructions
  • the transmitting device E is a base station of a GSM (Global System for Mobil communication) telecommunications network or of any other mobile telephone system involving a security module
  • the receiving device R is a subscriber identification module SIM associated with a mobile telephone.
  • the Prgm program intended to be downloaded into said SIM module, is coded in the form of precompiled instructions (bytecodes) written for example in the Java language.
  • the invention applies in the same way to other smart card systems, such as payment or access control systems.
  • the program is divided into n elementary units, an elementary unit being an instruction precompiled with a determined number of bits (fixed or dependent on the type of instruction).
  • the logical property P is defined so that it takes a true logical value when the elementary unit to which it is applied is an executable (or interpretable) instruction or corresponds to an NOP instruction.
  • the Prgm program is then encrypted by the emitting device E with an encryption algorithm, for example of the RSA type (Rivest, Shamir and Adelman) as described in the US patent.
  • an encryption algorithm for example of the RSA type (Rivest, Shamir and Adelman) as described in the US patent.
  • the result Kc (Prgm) is then decrypted using a decryption algorithm comprising a secret key Kd.
  • a decryption algorithm comprising a secret key Kd.
  • Each block of the decrypted result is recorded in the non-volatile memory EEPROM of the SIM module, at the address of the block of the corresponding encrypted result.
  • the memory space used for the implementation of the decryption according to the invention is minimal.
  • the blocks of the decrypted result can be saved at memory addresses different from the encrypted blocks to which they correspond. A circular permutation is also possible, improving the security of the program during the decryption stage.
  • the application of the property P is preferably carried out at the end of the complete decryption of the encrypted result Kc (Prgm), the final result (program accepted or refused) being given only at the end of all the verifications.
  • the fraudster cannot simply detect the elementary unit I recognized as giving a false logical value during the application of the property P. Given the low memory available in the module
  • SIM a simple function for calculating the property P is implemented. This is a function implemented by the interpreter himself even.
  • the interpreter interprets the decrypted result by checking whether the instructions make sense or not. Ultimately, the interpreter performs the analysis of the program as it would during a normal interpretation, without however that said interpretation being followed by any effect other than checking that the decrypted result corresponds to a Prgm program.
  • the sending device E is a server comprising a precompiled and encrypted form Kc (Prgm) of a Prgm program, written for example in the Java language.
  • the receiving device R is a personal computer, which will be usefully provided with a smart card reader in which a card is inserted.
  • the personal computer includes a hard disk and a secure memory area, i.e. one which cannot be read or written by a third party, for the storage, temporary or permanent, of the decrypted results Kd ( Kc (Prgm)) and keys.
  • the computer also includes software for loading Prgm programs called Loader invoked whenever it is necessary to load a precompiled Prgm program, before said Prgm program is used (interpreted or executed).
  • this software includes a decryption function, which advantageously includes functional elements necessary for decryption and in particular elements of the decryption algorithm.
  • the program loading software is then said to be overloaded.
  • other functional elements necessary for decryption can be contained in a non-volatile memory of the smart card. These elements will then called by the program loading software and the decryption function.
  • the loading software allows, in association with the card, the decryption of the result Kc (Prgm) and the verification of the decrypted result Kd (Kc (Prgm)) before the interpretation of said decrypted result Kd (Kc (Prgm)), that is, when the P property has been successfully applied, the Prgm program, and the execution of this Prgm program.
  • the constraints of time and memory space which have been mentioned during the description of the first mode of implementation of the method of the invention are, in this second mode of implementation, less, since the card is here only used as a secure physical medium for one or more keys or elements, tables for example, necessary for decryption.
  • the card can even contain the entire secret decryption algorithm.
  • the property P can, therefore, not only be of the type of the aforementioned, or else, be a particular property for which the verification algorithm will be implemented.
  • the verification algorithm checks in an example the precompiled instructions each time an instruction block (s) of the encrypted result is decrypted.
  • the exchange phases between, on the one hand, the personal computer provided with the interpreter, the loading device and associated with a card reader in which the card is inserted and, on the other hand, the card, can break down into three phases: an initialization phase, a transfer phase and a decryption / verification phase.
  • the initialization phase is in fact a phase of exchanging a couple of public and secret keys. This phase is launched during initialization of the decryption process. Key pairs are not written to the hard drive of the personal computer and can be recalculated at any time. During this phase, a re-initialization order is transmitted by the personal computer to the card. The computer then calculates a pair of public key PKc - secret key PKd, then calculates a signature of the public key PKc using the secret key PKd. This signature is transmitted, with the public key PKc, to the card. It is then verified by the card, using the public key PKc. The card then calculates, using a secret key CKd, a signature of the public key CKc. This signature is transmitted, with the public key CKc, to the personal computer. The computer verifies the signature, using the public key CKc.
  • the transfer phase is a phase of loading secret information from the card into the personal computer. This information allows the computer to decrypt the precompiled and encrypted form of the Prgm program.
  • the computer requests the card to transfer the secret decryption key Kd which it has in its memory.
  • the card encrypts this key using the PKc key, and sends it to the computer.
  • This one decrypts this message using its key Kd, and thus has the key Kc. It is then possible for him to decrypt the program Kc (Prgm), in order to obtain a program Prgm ', which is none other than the original program Prgm if no attempt at fraud has taken place.
  • the computer can at this time decompose the Prgm 'program into elementary units, and apply the property P to them, as in the first embodiment. If the result is satisfactory, it archives the said program, for example on its hard disk. he can also calculate verification information (for example a cheksum or, better, a hashing) and archive it in the memory of the card, for later verification of program integrity.
  • verification information for example a cheksum or, better, a hashing

Abstract

The invention concerns a method for making secure the transmission of a message (Prgm) from a transmitting device (E) to a receiving device (R), characterised in that: the message (Prgm) is split into n elementary units (I), n being a number not less than 1; a logical property (P) is defined such that, for each elementary unit (I), the logical property (P), applied to an authentic elementary unit (I), gives a true logical value; the message (Prgm) is encrypted by the transmitting device (E) encryption means using an encryption algorithm comprising a key (Kc) so as to obtain a result Kc(Pgrm); The encrypted result Kc(Pgrm) is transmitted by the transmitting device (E) to the receiving device (R); the encrypted result Kc(Pgrm) is decrypted by the receiving device (R) using a decryption algorithm comprising a secret key (Kd) so as to obtain a decrypted result Kd(Kc(Pgrm)); the decrypted result Kd(Kc(Pgrm)) is split into elementary units (I); the logical property (P) is applied to the elementary units (I) so as to obtain, for each unit, a true logical value or a false logical value. The method is particularly applicable to smart cards.

Description

PROCEDE DE SECURISATION DE LA TRANSMISSION D'UN MESSAGE D'UN DISPOSITIF EMETTEUR A UN DISPOSITIF METHOD FOR SECURING THE TRANSMISSION OF A MESSAGE FROM A TRANSMITTING DEVICE TO A DEVICE
RECEPTEURRECEIVER
L'invention concerne un procédé de sécurisation de la transmission de messages d'un dispositif émetteur à un dispositif récepteur.The invention relates to a method for securing the transmission of messages from a sending device to a receiving device.
Lorsqu'une information est transmise d'un dispositif émetteur à un dispositif récepteur, cette information, contenue dans un message, est susceptible d'être altérée au cours de sa transmission. Cette altération peut provenir soit, d'un défaut dans l'émission, la transmission ou la réception du message soit, d'une fraude d'un tiers. Le message reçu n'est alors pas intègre.When information is transmitted from a sending device to a receiving device, this information, contained in a message, is likely to be altered during its transmission. This alteration can come either from a defect in the transmission, transmission or reception of the message or from fraud by a third party. The received message is then not intact.
C'est la raison pour laquelle on a développé des procédés qui permettent de vérifier l'intégrité des messages transmis. Par ailleurs, lorsqu'une information est transmise d'un dispositif émetteur à un dispositif récepteur, il est parfois utile de rendre le message confidentiel de manière à réserver l'accès de ladite information à un nombre limité de personnes, en général l'émetteur et le récepteur du message. C'est la raison pour laquelle on a développé des procédés permettant de préserver la confidentialité d'un message.This is the reason why procedures have been developed which make it possible to verify the integrity of the messages transmitted. Furthermore, when information is transmitted from a sending device to a receiving device, it is sometimes useful to make the message confidential so as to reserve access to said information to a limited number of people, in general the sender and the receiver of the message. This is the reason why procedures have been developed which make it possible to preserve the confidentiality of a message.
Enfin, lorsqu'une information contenue dans un message est transmise à un dispositif récepteur, il est bien souvent utile d'authentifier ce message comme provenant effectivement du dispositif émetteur.Finally, when information contained in a message is transmitted to a receiving device, it is very often useful to authenticate this message as actually coming from the sending device.
C'est la raison pour laquelle on a développé des procédés d'authentification des messages. Les procédés connus de vérification de l'intégrité, de préservation de la confidentialité et d'authentification, c'est-à-dire de sécurisation des messages, consistent généralement à crypter le message et à lui joindre un certificat avant sa transmission. Le dispositif récepteur décrypte alors le message, vérifie le certificat et, éventuellement, dans le cas où ledit message est un programme informatique, l'exécute.This is the reason why we have developed message authentication methods. Known methods of verifying integrity, preserving confidentiality and authenticating, that is to say securing messages, generally consist in encrypting the message and attaching a certificate to it before it is transmitted. The receiving device then decrypts the message, verifies the certificate and, possibly, if the said message is a computer program, executes it.
Ces procédés présentent une évidente lourdeur, dans la mesure où le décryptage et la vérification du certificat imposent chacune une opération. C'est le cas, en particulier, lorsque les opérations de cryptage et de décryptage sont longues.These processes are obviously cumbersome, in that the decryption and verification of the certificate each impose an operation. This is the case, in particular, when the encryption and decryption operations are long.
Considérant ce qui précède, un problème que se propose de résoudre l'invention est de réaliser un procédé de sécurisation de la transmission d'un message d'un dispositif émetteur à un dispositif récepteur qui ne nécessite pas la mise en oeuvre des deux étapes précitées de décryptage du message et de vérification du certificat.Considering the above, a problem which the invention proposes to solve is to carry out a method of securing the transmission of a message from a sending device to a receiving device which does not require the implementation of the two aforementioned steps. decryption of the message and verification of the certificate.
Eu égard au problème posé ci-dessus l'invention a pour objet un procédé de sécurisation de la transmission d'un message d'un dispositif émetteur à un dispositif récepteur, caractérisé en ce que :In view of the problem posed above, the subject of the invention is a method for securing the transmission of a message from a sending device to a receiving device, characterized in that:
- le message est divisé en n unités élémentaires, n étant un nombre supérieur ou égal à 1 ;- the message is divided into n elementary units, n being a number greater than or equal to 1;
- une propriété logique est définie de manière que, pour toute unité élémentaire, la propriété logique, appliquée à une unité élémentaire authentique, donne une valeur logique du type vrai ;- a logical property is defined so that, for any elementary unit, the logical property, applied to an authentic elementary unit, gives a logical value of the true type;
- le message est crypté par des moyens de cryptage du dispositif émetteur à l'aide d'un algorithme de cryptage comportant une clé de manière à obtenir un résultat crypté ;the message is encrypted by means of encryption of the sending device using an encryption algorithm comprising a key so as to obtain an encrypted result;
- le résultat crypté est transmis par le dispositif émetteur au dispositif récepteur ;- the encrypted result is transmitted by the sending device to the receiving device;
- le résultat crypté est décrypté par le dispositif récepteur à l'aide d'un algorithme de décryptage comportant une clé secrète de manière à obtenir un résultat décrypté ;the encrypted result is decrypted by the receiving device using a decryption algorithm comprising a secret key so as to obtain a decrypted result;
- le résultat décrypté est divisé en unités élémentaires ; la propriété logique est appliquée aux unités élémentaires de manière à obtenir, pour chaque unité, une valeur logique du type vrai ou du type faux.- the decrypted result is divided into elementary units; the logical property is applied to the elementary units so as to obtain, for each unit, a logical value of the true type or of the false type.
- le message est considéré comme authentique et intègre si, pour chaque unité, les valeurs logiques ont une valeur du type vrai.- the message is considered authentic and integral if, for each unit, the logical values have a value of the true type.
Le message est alors avantageusement stocké. On notera par ailleurs que, de manière avantageuse, le message Prgm est un programme informatique susceptible d'être exécuté et/ ou d'être interprété par le dispositif récepteur R. Les unités élémentaires sont des instructions du programme Prgm. La propriétéThe message is then advantageously stored. It will also be noted that, advantageously, the Prgm message is a computer program capable of being executed and / or of being interpreted by the receiving device R. The elementary units are instructions of the Prgm program. The property
P, appliquée à une unité élémentaire I, donne une valeur logique de type vrai lorsque l'unité élémentaire I est exécutable et/ ou interprétable. La propriété P, appliquée à une unité élémentaire I, donne une valeur logique de type faux lorsque l'unité élémentaire I n'est pas exécutable et/ ou interprétable. Le dispositif récepteur R est un objet portable à mémoire du type carte à puce. Le dispositif récepteur R comporte un objet portable à mémoire du type carte à puce. L'objet portable à mémoire est un module d'identification abonné (SIM). Le message Prgm est écrit dans un langage interprété de haut niveau. Le langage de haut niveau est le langage Java. Le programme informatique est formé d'un ensemble d'instructions précompilées. Le message Prgm est crypté en flux continu ou en blocs chaînés. Le message Prgm est crypté en blocs et en ce que les blocs du message Prgm crypté sont permutés. Un des blocs permutés est un bloc de début ou de fin du message Prgm. Le résultat Kc(Prgm) est décrypté par blocs, chaque bloc crypté étant à l'origine d'un bloc décrypté prenant la place du bloc crypté. Les algorithmes de cryptage et de décryptage font intervenir un aléa, transmis par le dispositif émetteur E, au dispositif récepteur R. Le message Prgm est enregistré, après vérification, dans une mémoire non volatile du dispositif récepteur R.P, applied to an elementary unit I, gives a logical value of true type when the elementary unit I is executable and / or interpretable. The property P, applied to an elementary unit I, gives a false logical value when the elementary unit I is not executable and / or interpretable. The receiving device R is a portable memory object of the smart card type. The receiving device R comprises a portable memory object of the smart card type. The portable memory object is a subscriber identification module (SIM). Prgm message is written in interpreted language high level. The high level language is the Java language. The computer program consists of a set of precompiled instructions. The Prgm message is encrypted in continuous stream or in chained blocks. The Prgm message is encrypted in blocks and the blocks of the encrypted Prgm message are swapped. One of the swapped blocks is a start or end block of the Prgm message. The result Kc (Prgm) is decrypted in blocks, each encrypted block being at the origin of a decrypted block taking the place of the encrypted block. The encryption and decryption algorithms involve a hazard, transmitted by the sending device E, to the receiving device R. The message Prgm is recorded, after verification, in a non-volatile memory of the receiving device R.
Cette invention sera mieux comprise à la lecture de la description non limitative qui va suivre. Selon l'invention, le message Prgm est transmis d'un dispositif émetteur E à un dispositif récepteur R.This invention will be better understood on reading the nonlimiting description which follows. According to the invention, the Prgm message is transmitted from a sending device E to a receiving device R.
Le message Prgm est par exemple un programme informatique susceptible d'être exécuté et/ ou interprété.The Prgm message is for example a computer program capable of being executed and / or interpreted.
Le dispositif émetteur E est, par exemple, un serveur, un ordinateur, une station émettrice dans un réseau de télécommunication ou un lecteur de cartes à puce avec ou sans contact, bref, tout dispositif capable de crypter et d'émettre un message. Bien entendu, le dispositif émetteur E doit être considéré dans un sens large comme incluant des dispositifs complexes formés notamment de parties physiquement séparées, une partie assurant par exemple le cryptage du message, une autre, l'émission stricto sensu dudit message. Le dispositif récepteur R est, par exemple, un ordinateur éventuellement muni d'un lecteur de carte à puce et d'une carte insérée dans ledit lecteur, une station réceptrice dans un réseau de télécommunication, un téléphone portable muni ou non d'un module d'identification abonné (SIM) voire même une carte à puce ou un tel module, bref, tout dispositif capable de recevoir un message voire de stocker ce message et, avantageusement, lorsque le message est un programme informatique, d'interpréter et/ou d'exécuter ce programme. Dans le cas où le dispositif récepteur comporte avantageusement un objet portable à mémoire du type carte à puce, cet objet portable peut être une carte de paiement ou une carte de contrôle d'accès, par exemple, à un réseau informatique.The transmitter device E is, for example, a server, a computer, a transmitter station in a telecommunications network or a smart card reader with or without contact, in short, any device capable of encrypting and transmitting a message. Of course, the sending device E must be considered in a broad sense as including complex devices formed in particular of physically separate parts, one part ensuring for example the encryption of the message, another, the transmission stricto sensu of said message. The receiving device R is, for example, a computer possibly equipped with a smart card reader and a card inserted in said reader, a receiving station in a telecommunications network, a portable telephone with or without a module subscriber identification (SIM) or even a smart card or such a module, in short, any device capable of receiving a message or even storing this message and, advantageously, when the message is a computer program, to interpret and / or to run this program. In the case where the receiving device advantageously comprises a portable object with memory of the chip card type, this portable object can be a payment card or an access control card, for example, to a computer network.
Dans la suite de l'exposé de l'invention, on se limitera aux exemples où le message est un programme informatique Prgm. Selon l'invention, ce programme informatique Prgm est divisé en n unités élémentaires I, n étant un nombre entier supérieur ou égal à 1. Il s'agit d'instructions, de blocs d'instructions ou, dans le cas où le programme Prgm est rédigé dans un langage interprétable du type Java, d'instructions précompilées du programme (ou bytecodes).In the rest of the description of the invention, we will limit ourselves to the examples where the message is a Prgm computer program. According to the invention, this Prgm computer program is divided into n elementary units I, n being an integer greater than or equal to 1. They are instructions, blocks of instructions or, in the case where the Prgm program is written in an interpretable Java-like language, from the program's precompiled instructions (or bytecodes).
Selon l'invention, une propriété logique P est définie de manière que, pour toute unité élémentaire I, cette propriété P, appliquée à une unité élémentaire authentique, donne une valeur logique P(I) du type vrai. On cherchera néanmoins à trouver une propriété P qui, appliquée à une unité élémentaire I, donne une valeur logique P(I) du type faux lorsque ladite unité élémentaire I à été modifiée et correspond par exemple à une instruction non reconnaissable du programme, notamment non susceptible d'être interprétable et/ ou exécutable.According to the invention, a logical property P is defined so that, for any elementary unit I, this property P, applied to an authentic elementary unit, gives a logical value P (I) of the true type. We will nevertheless seek to find a property P which, applied to an elementary unit I, gives a logical value P (I) of the false type when said elementary unit I has been modified and corresponds for example to a non-instruction recognizable from the program, in particular not likely to be interpretable and / or executable.
Selon l'invention, le programme Prgm est crypté par des moyens de cryptage du dispositif émetteur E à l'aide d'un algorithme de cryptage comportant une clé Kc connue dudit dispositif E de manière à obtenir un résultat Kc(Prgm). Le cryptage garantit la confidentialité du programme Prgm lors de son émission et de sa réception, mais, surtout, durant sa transmission au dispositif récepteur R. Ce résultat KqPrgm) est alors transmis par le dispositif E, au dispositif récepteur R.According to the invention, the Prgm program is encrypted by encryption means of the sending device E using an encryption algorithm comprising a key Kc known to said device E so as to obtain a result Kc (Prgm). The encryption guarantees the confidentiality of the Prgm program during its transmission and reception, but, above all, during its transmission to the receiving device R. This result KqPrgm) is then transmitted by the device E, to the receiving device R.
Il est ensuite décrypté par ce dispositif R à l'aide d'un algorithme de cryptage comportant une clé secrète Kd, connue du dispositif récepteur. Un résultat décrypté Kd(Kc(Prgm)) est alors obtenu. Cette clé Kc peut être propre au dispositif E et connue du dispositif R, ou propre au dispositif R et par ailleurs connue du dispositif E. Un exemple de la première configuration est le cas où le dispositif R est abonné à un service délivré par le dispositif émetteur. Un exemple de la seconde configuration est le cas où le dispositif récepteur, lors de sa requête d'une transmission du programme, fournit la clé Kc, la clé Kd de décryptage restant connue du seul dispositif récepteur. Un autre exemple de la même configuration est le cas où Kc et Kd sont identiques (système à clé privée), et où cette clé est envoyée, sous forme cryptée, par le dispositif récepteur, au dispositif émetteur.It is then decrypted by this device R using an encryption algorithm comprising a secret key Kd, known to the receiving device. A decrypted result Kd (Kc (Prgm)) is then obtained. This key Kc can be specific to the device E and known to the device R, or specific to the device R and also known to the device E. An example of the first configuration is the case where the device R subscribes to a service delivered by the device transmitter. An example of the second configuration is the case where the receiving device, when requesting a transmission of the program, supplies the key Kc, the decryption key Kd remaining known only to the receiving device. Another example of the same configuration is the case where Kc and Kd are identical (private key system), and where this key is sent, in encrypted form, by the receiving device, to the sending device.
Selon l'invention, le résultat décrypté Kd(Kc(Prgm)) est divisé ou décomposé en n unités élémentaires, images des ou correspondant aux n unités élémentaires résultant de la division du programme Prgm dans le dispositif émetteur E.According to the invention, the decrypted result Kd (Kc (Prgm)) is divided or decomposed into n elementary units, images of or corresponding to the n elementary units resulting from the division of the Prgm program into the sending device E.
La propriété logique P est alors appliquée auxdites n unités élémentaires de manière à obtenir, pour chaque unité, une valeur logique du type vrai ou du type faux.The logical property P is then applied to said n elementary units so as to obtain, for each unit, a logical value of the true type or of the false type.
Dans le cas où toutes les valeurs logiques sont du type vrai, on a une forte probabilité que le programme décrypté soit identique au programme crypté et que la clé ayant servi au cryptage soit la clé Kc attendue. Le dispositif récepteur R en déduit alors que le programme Prgm est intègre et qu'il a été émis par un dispositif émetteur E disposant de la clef Kc, donc authentique.In the case where all the logical values are of the true type, there is a high probability that the decrypted program is identical to the encrypted program and that the key having been used for encryption is the expected key Kc. The receiving device R deduces therefrom while the Prgm program is integral and it has been sent by a sending device E having the key Kc, therefore authentic.
Par contre, dans le cas où une valeur logique au moins est du type faux, le programme décrypté est différent de Prgm et le dispositif récepteur R en déduit que le programme Prgm a fait l'objet d'au moins une modification à l'émission, à la réception ou durant sa transmission et/ ou que ledit programme Prgm a crypté le message avec une clé autre que Kc, une clé non attendue. Le programme est n'est alors pas intègre ou pas authentique.On the other hand, in the case where at least one logical value is of the false type, the decrypted program is different from Prgm and the receiving device R deduces therefrom that the program Prgm has been the subject of at least one modification on transmission. , upon reception or during its transmission and / or that said Prgm program has encrypted the message with a key other than Kc, an unexpected key. The program is therefore not complete or not authentic.
L'invention permet donc de garantir, en une seule opération de cryptage-décryptage, à la fois l'intégrité, l'authentification et la confidentialité du programme Prgm.The invention therefore makes it possible to guarantee, in a single encryption-decryption operation, both the integrity, the authentication and the confidentiality of the Prgm program.
Si l'on considère par exemple que les instructions du langage informatique dans lequel est rédigé le programme Prgm sont des instructions codées sur quatre octets, il y a, en théorie, 232 codes possibles pour définir une instruction. Bien entendu, certains codes, définis par un ensemble de paramètres, ne correspondent à aucune instruction compréhensible. De plus, certains paramètres de certains codes, typiquement les trois derniers octets, n'ont que certaines valeurs autorisées. Une adresse mémoire ne peut ainsi être négative, ou se situer en dehors de l'espace alloué au programme Prgm. C'est la raison pour laquelle la propriété P comporte un avantageusement un test de paramètres, ledit test dépendant du type d'instruction.If we consider for example that the instructions of the computer language in which the Prgm program is written are instructions coded on four bytes, there are, in theory, 2 32 possible codes to define an instruction. Of course, certain codes, defined by a set of parameters, do not correspond to any comprehensible instruction. In addition, certain parameters of certain codes, typically the last three bytes, have only certain allowed values. A memory address cannot thus be negative, or be outside the space allocated to the Prgm program. This is the reason why the property P advantageously includes a test of parameters, said test depending on the type of instruction.
Si l'on définit le taux de non-détection unitaire C comme étant le pourcentage des instructions possibles qui ne sont pas reconnues comme fausses par l'application de la propriété P lors du décryptage et suite à une modification ponctuelle du programme Prgm, la probabilité que le dispositif récepteur R ne détecte pas la fraude est, lorsque la modification ponctuelle est à l'origine d'une modification sur chaque instruction du résultat décrypté : prob = (1 - C)n. Pour les valeurs typiques suivantes, on obtient les probabilités prob suivantes : n C (%) probIf the unit non-detection rate C is defined as the percentage of possible instructions which are not recognized as false by the application of the property P during decryption and following a specific modification of the Prgm program, the probability that the receiving device R does not detect the fraud is, when the punctual modification is at the origin of a modification on each instruction of the decrypted result: prob = (1 - C) n . For the following typical values, the following probabilities are obtained: n C (%) prob
256 10% 1.9E-12256 10% 1.9E-12
128 10% 1 4E-06128 10% 1 4E-06
512 5% 3.9E-12512 5% 3.9E-12
128 5% 1.4E-03128 5% 1.4E-03
On constate que la probabilité qu'une modification notamment frauduleuse passe inaperçue est très faible, sauf dans les cas de programmes comportant peu d'instructions et dont le taux de non-détection unitaire C est très élevé. Cette probabilité est a fortiori très faible dans le cas où le programme a été crypté par une clé autre que Kc.It can be seen that the probability that a particularly fraudulent modification goes unnoticed is very low, except in the case of programs comprising few instructions and whose unit non-detection rate C is very high. This probability is a fortiori very low in the case where the program has been encrypted by a key other than Kc.
Comparée aux opérations de cryptage usuelles, l'application de la propriété P ne nécessite pas une mise en oeuvre trop lourde notamment un temps de calcul trop long. Elle permet la détection des erreurs dans tous les types de programmes Prgm dès lors que l'algorithme de cryptage est de bonne qualité, eu égard au caractère pseudo-aléatoire de tout décryptage d'une suite d'instructions falsifiées.Compared to usual encryption operations, the application of the P property does not require too heavy an implementation in particular a too long calculation time. It allows error detection in all types of Prgm programs when the encryption algorithm is of good quality, having regard to the pseudo-random nature of any decryption of a sequence of falsified instructions.
L'algorithme de cryptage est avantageusement du type en blocs chaînés ou en flux continu. Ainsi, une modification d'une instruction élémentaire entraînera une modification d'autres instructions. Par contre, lorsque l'algorithme procède uniquement par blocs, le programme crypté peut être décomposé en une suite de par exemple n blocs correspondant peu ou prou aux n unités élémentaires. En modifiant un bloc et en observant le comportement du dispositif récepteur, la probabilité prob que la modification ne soit pas détectée est alors est égale à 1 - C, donc très élevée. De manière à éviter une modification dirigée sur le bloc de tête ou de queue du programme crypté, on permute, par exemple, les blocs du programme crypté, de manière que lesdits blocs de tête et de queue du programme soient à un endroit qui ne soit pas prédictible par un fraudeur, mais néanmoins connu des dispositifs E et R. La confidentialité est par ailleurs améliorée lorsque l'algorithme de cryptage fait intervenir un aléa généré par exemple par le dispositif récepteur R et communiqué au dispositif émetteur E. Il peut s'agir, par exemple, d'une opération "ou exclusif appliquée sur un nombre d'octets déterminé du programme ou sur sa totalité avant cryptage.The encryption algorithm is advantageously of the chained block or continuous flow type. Thus, a modification of an elementary instruction will involve a modification of other instructions. On the other hand, when the algorithm proceeds only by blocks, the encrypted program can be broken down into a series of for example n blocks corresponding more or less to the n elementary units. By modifying a block and observing the behavior of the receiving device, the probabil probability that the modification is not detected is then equal to 1 - C, therefore very high. In order to avoid a modification directed on the head or tail block of the encrypted program, the blocks of the encrypted program are swapped, for example, so that said head and tail blocks of the program are in a location which is not not predictable by a fraudster, but nevertheless known to devices E and R. Confidentiality is also improved when the encryption algorithm involves a hazard generated for example by the receiving device R and communicated to the sending device E. It can act, for example, of an "or exclusive operation applied to a determined number of bytes of the program or to all of it before encryption.
On pourra enfin introduire en début et/ ou en fin de programme, avant cryptage, des instructions vides (NOP), que le dispositif récepteur reconnaîtra en appliquant la propriété P, puis éliminera.We can finally introduce empty instructions (NOP) at the start and / or end of the program, before encryption. receiving device will recognize by applying the P property and then eliminate.
Dans un premier mode de mise en oeuvre de l'invention, le dispositif émetteur E est une station de base d'un réseau de télécommunication GSM (Global System for Mobil communication) ou de tout autre système de téléphonie mobile faisant intervenir un module de sécurité, le dispositif récepteur R est un module d'identification abonné SIM associé à un téléphone mobile. Le programme Prgm, destiné à être téléchargé dans ledit module SIM, est codé sous la forme d'instructions précompilées (bytecodes) rédigées par exemple dans le langage Java.In a first embodiment of the invention, the transmitting device E is a base station of a GSM (Global System for Mobil communication) telecommunications network or of any other mobile telephone system involving a security module , the receiving device R is a subscriber identification module SIM associated with a mobile telephone. The Prgm program, intended to be downloaded into said SIM module, is coded in the form of precompiled instructions (bytecodes) written for example in the Java language.
Bien entendu, l'invention s'applique de la même manière aux d'autres systèmes à cartes à puces, tels que des systèmes de paiement ou de contrôle d'accès. Dans ce premier mode de mise en oeuvre de l'invention, le programme est divisé en n unités élémentaires, une unité élémentaire étant une instruction précompilée d'un nombre de bits déterminé (fixe ou dépendant du type d'instruction).Of course, the invention applies in the same way to other smart card systems, such as payment or access control systems. In this first embodiment of the invention, the program is divided into n elementary units, an elementary unit being an instruction precompiled with a determined number of bits (fixed or dependent on the type of instruction).
La propriété logique P est définie de manière qu'elle prenne une valeur logique vrai lorsque l'unité élémentaire à laquelle elle est appliquée est une instruction exécutable (ou interprétable) ou correspond à une instruction NOP.The logical property P is defined so that it takes a true logical value when the elementary unit to which it is applied is an executable (or interpretable) instruction or corresponds to an NOP instruction.
Le programme Prgm est alors crypté par le dispositif émetteur E avec un algorithme de cryptage, par exemple du type RSA (Rivest, Shamir et Adelman) tel que décrit dans le brevet US-The Prgm program is then encrypted by the emitting device E with an encryption algorithm, for example of the RSA type (Rivest, Shamir and Adelman) as described in the US patent.
4,405,829. Un résultat de cryptage Kc(Prgm), fonction de la clé Kc, est alors obtenu. Ce résultat Kc(Prgm), en définitive le programme crypté, est transmis par la station de base à une station émettrice qui lui est associée puis à des moyens de réception du téléphone mobile. Il est alors chargé dans la carte où il est enregistré dans une mémoire non volatile EEPROM avant l'opération de décryptage, compte tenu de la lenteur de cette opération mise en oeuvre sur un module SIM.4,405,829. An encryption result Kc (Prgm), depending on the key Kc, is then obtained. This result Kc (Prgm), ultimately the encrypted program, is transmitted by the base station to a transmitting station associated with it and then to means for receiving the mobile telephone. It is then loaded into the card where it is saved in a non-volatile EEPROM memory before the decryption operation, taking into account the slowness of this operation implemented on a SIM module.
Le résultat Kc(Prgm) est ensuite décrypté à l'aide d'un algorithme de décryptage comportant une clé secrète Kd. Chaque bloc du résultat décrypté est enregistré dans la mémoire non volatile EEPROM du module SIM, à l'adresse du bloc du résultat crypté correspondant. Ainsi, l'espace mémoire utilisé pour la mise en oeuvre du décryptage selon l'invention est minimal. On notera que, dans une variante de mise en oeuvre de l'invention, à l'aide d'au moins un espace mémoire libre correspondant à un bloc, on peut enregistrer les blocs du résultat décrypté à des adresses mémoire différentes des blocs cryptés auxquels ils correspondent. Une permutation circulaire est tout aussi possible, améliorant la sécurisation du programme durant l'étape de décryptage.The result Kc (Prgm) is then decrypted using a decryption algorithm comprising a secret key Kd. Each block of the decrypted result is recorded in the non-volatile memory EEPROM of the SIM module, at the address of the block of the corresponding encrypted result. Thus, the memory space used for the implementation of the decryption according to the invention is minimal. It will be noted that, in an alternative implementation of the invention, using at least one free memory space corresponding to a block, the blocks of the decrypted result can be saved at memory addresses different from the encrypted blocks to which they correspond. A circular permutation is also possible, improving the security of the program during the decryption stage.
L'application de la propriété P s'effectue de préférence à la fin du décryptage complet du résultat crypté Kc(Prgm), le résultat final (programme accepté ou refusé) n'étant donné qu'à la fin de toutes les vérifications. Ainsi, le fraudeur ne peut pas détecter simplement l'unité élémentaire I reconnue comme donnant une valeur logique fausse lors de l'application de la propriété P. Compte tenu de la faible mémoire disponible dans le moduleThe application of the property P is preferably carried out at the end of the complete decryption of the encrypted result Kc (Prgm), the final result (program accepted or refused) being given only at the end of all the verifications. Thus, the fraudster cannot simply detect the elementary unit I recognized as giving a false logical value during the application of the property P. Given the low memory available in the module
SIM, une fonction de calcul simple de la propriété P est mise en oeuvre. Il s'agit d'une fonction mise en oeuvre par l'interpréteur lui- même. Une fois que le résultat crypté est décrypté, l'interpréteur interprète le résultat décrypté en regardant si les instructions ont un sens ou non. En définitive, l'interpréteur effectue l'analyse du programme comme il le ferait lors d'une interprétation normale, sans toutefois que ladite interprétation soit suivie d'effet autre que la vérification que le résultat décrypté correspond bien à un programme Prgm.SIM, a simple function for calculating the property P is implemented. This is a function implemented by the interpreter himself even. Once the encrypted result is decrypted, the interpreter interprets the decrypted result by checking whether the instructions make sense or not. Ultimately, the interpreter performs the analysis of the program as it would during a normal interpretation, without however that said interpretation being followed by any effect other than checking that the decrypted result corresponds to a Prgm program.
Dans un second mode de mise en oeuvre de l'invention, le dispositif émetteur E est un serveur comportant une forme précompilée et cryptée Kc(Prgm) d'un programme Prgm, rédigé par exemple dans le langage Java. Le dispositif récepteur R est un ordinateur personnel, qui sera utilement muni d'un lecteur de carte à puce dans lequel est insérée une carte. L'ordinateur personnel comporte un disque dur et une zone mémoire sûre, c'est-à-dire qui n'est pas susceptible d'être lue ou écrite par un tiers, pour le stockage, temporaire ou définitif, des résultats décryptés Kd(Kc(Prgm)) et des clés. L'ordinateur comprend par ailleurs un logiciel de chargement des programmes Prgm appelé Loader invoqué chaque fois qu'il est nécessaire de charger un programme Prgm précompilé, avant que ledit programme Prgm soit utilisé (interprété ou exécuté) . Dans le présent second mode de mise en oeuvre de l'invention, ce logiciel inclut une fonction de décryptage, qui comporte avantageusement des éléments fonctionnels nécessaires au décryptage et notamment des éléments de l'algorithme de décryptage. Le logiciel de chargement des programmes est alors dit surchargé. Bien entendu, d'autres éléments fonctionnels nécessaires au décryptage peuvent être contenus dans une mémoire non volatile de la carte à puce. Ces éléments seront alors appelés par le logiciel de chargement des programmes et la fonction de décryptage. Ainsi, le logiciel de chargement permet, en association avec la carte, le décryptage du résultat Kc(Prgm) et la vérification du résultat décrypté Kd(Kc(Prgm)) avant l'interprétation dudit résultat décrypté Kd(Kc(Prgm)), c'est-à-dire, lorsque la propriété P a été appliquée avec succès, le programme Prgm, et l'exécution de ce programme Prgm.In a second embodiment of the invention, the sending device E is a server comprising a precompiled and encrypted form Kc (Prgm) of a Prgm program, written for example in the Java language. The receiving device R is a personal computer, which will be usefully provided with a smart card reader in which a card is inserted. The personal computer includes a hard disk and a secure memory area, i.e. one which cannot be read or written by a third party, for the storage, temporary or permanent, of the decrypted results Kd ( Kc (Prgm)) and keys. The computer also includes software for loading Prgm programs called Loader invoked whenever it is necessary to load a precompiled Prgm program, before said Prgm program is used (interpreted or executed). In the present second embodiment of the invention, this software includes a decryption function, which advantageously includes functional elements necessary for decryption and in particular elements of the decryption algorithm. The program loading software is then said to be overloaded. Of course, other functional elements necessary for decryption can be contained in a non-volatile memory of the smart card. These elements will then called by the program loading software and the decryption function. Thus, the loading software allows, in association with the card, the decryption of the result Kc (Prgm) and the verification of the decrypted result Kd (Kc (Prgm)) before the interpretation of said decrypted result Kd (Kc (Prgm)), that is, when the P property has been successfully applied, the Prgm program, and the execution of this Prgm program.
Les contraintes de temps et d'espace mémoire qui ont été évoquées lors de la description du premier mode de mise en oeuvre du procédé de l'invention sont, dans ce second mode de mise en oeuvre, moindres, étant donné que la carte est ici uniquement utilisée comme un support physique sécurisé d'une ou plusieurs clés ou éléments, des tables par exemple, nécessaires au décryptage. La carte peut même contenir la totalité de l'algorithme secret de décryptage. La propriété P peut, de ce fait, être non seulement du type de celle précité, ou alors, être une propriété particulière dont on implémentera l'algorithme de vérification. L'algorithme de vérification vérifie dans un exemple les instructions précompilées à chaque fois qu'un bloc instruction(s) du résultat crypté est décrypté. Les phases d'échange entre, d'une part, l'ordinateur personnel muni de l'interpréteur, du dispositif de chargement et associé à un lecteur de carte dans lequel est inséré la carte et, d'autre part, la carte, peuvent se décomposer en trois phases : une phase d'initialisation, une phase de transfert et une phase de décryptage /vérification.The constraints of time and memory space which have been mentioned during the description of the first mode of implementation of the method of the invention are, in this second mode of implementation, less, since the card is here only used as a secure physical medium for one or more keys or elements, tables for example, necessary for decryption. The card can even contain the entire secret decryption algorithm. The property P can, therefore, not only be of the type of the aforementioned, or else, be a particular property for which the verification algorithm will be implemented. The verification algorithm checks in an example the precompiled instructions each time an instruction block (s) of the encrypted result is decrypted. The exchange phases between, on the one hand, the personal computer provided with the interpreter, the loading device and associated with a card reader in which the card is inserted and, on the other hand, the card, can break down into three phases: an initialization phase, a transfer phase and a decryption / verification phase.
La phase d'initialisation est en fait une phase d'échange d'un couple de clés publique et secrète. Cette phase est lancée lors de l'initialisation du processus de décryptage. Les couples de clés ne sont pas écrits sur le disque dur de l'ordinateur personnel et peuvent faire l'objet d'un nouveau calcul à tout moment. Durant cette phase, un ordre de ré-initialisation est transmis par l'ordinateur personnel à la carte. L'ordinateur calcule alors un couple clé publique PKc - clé secrète PKd, puis calcule une signature de la clé publique PKc à l'aide de la clé secrète PKd. Cette signature est transmise, avec la clé publique PKc, vers la carte. Elle est ensuite vérifiée par la carte, à l'aide de la clé publique PKc. La carte calcule alors, à l'aide d'une clé secrète CKd, une signature de la clé publique CKc. Cette signature est transmise, avec la clé publique CKc, vers l'ordinateur personnel. L'ordinateur vérifie la signature, à l'aide de la clé publique CKc.The initialization phase is in fact a phase of exchanging a couple of public and secret keys. This phase is launched during initialization of the decryption process. Key pairs are not written to the hard drive of the personal computer and can be recalculated at any time. During this phase, a re-initialization order is transmitted by the personal computer to the card. The computer then calculates a pair of public key PKc - secret key PKd, then calculates a signature of the public key PKc using the secret key PKd. This signature is transmitted, with the public key PKc, to the card. It is then verified by the card, using the public key PKc. The card then calculates, using a secret key CKd, a signature of the public key CKc. This signature is transmitted, with the public key CKc, to the personal computer. The computer verifies the signature, using the public key CKc.
La phase de transfert est une phase de chargement d'informations secrètes de la carte dans l'ordinateur personnel. Ces informations permettent à l'ordinateur d'effectuer le décryptage de la forme précompilée et cryptée du programme Prgm. Pour cette phase, l'ordinateur demande à la carte le transfert de la clé secrète de décryptage Kd dont elle dispose dans sa mémoire. La carte crypte cette clé en utilisant la clé PKc, et l'envoie à l'ordinateur. Celui ci décrypte ce message à l'aide de sa clé Kd, et dispose ainsi de la clé Kc. Il lui est alors possible de décrypter le programme Kc(Prgm), pour obtenir un programme Prgm', qui n'est autre que le programme originel Prgm si aucune tentative de fraude n'a eu lieu.The transfer phase is a phase of loading secret information from the card into the personal computer. This information allows the computer to decrypt the precompiled and encrypted form of the Prgm program. For this phase, the computer requests the card to transfer the secret decryption key Kd which it has in its memory. The card encrypts this key using the PKc key, and sends it to the computer. This one decrypts this message using its key Kd, and thus has the key Kc. It is then possible for him to decrypt the program Kc (Prgm), in order to obtain a program Prgm ', which is none other than the original program Prgm if no attempt at fraud has taken place.
L'ordinateur peut à ce moment décomposer le programme Prgm' en unités élémentaires, et leur appliquer la propriété P, comme dans le premier mode de réalisation. Si le résultat est satisfaisant, il archive ledit programme, par exemple sur son disque dur. Il peut également calculer une information de vérification (par exemple un cheksum ou, mieux, un hashing) et l'archiver dans la mémoire de la carte, à des fins de vérification ultérieures d'intégrité du programme. The computer can at this time decompose the Prgm 'program into elementary units, and apply the property P to them, as in the first embodiment. If the result is satisfactory, it archives the said program, for example on its hard disk. he can also calculate verification information (for example a cheksum or, better, a hashing) and archive it in the memory of the card, for later verification of program integrity.

Claims

REVENDICATIONS
1. Procédé de sécurisation de la transmission d'un message Prgm d'un dispositif émetteur E à un dispositif récepteur R, caractérisé en ce que : - le message Prgm est divisé en n unités élémentaires I, n étant un nombre supérieur à 1 ;1. Method for securing the transmission of a Prgm message from a sending device E to a receiving device R, characterized in that: - the Prgm message is divided into n elementary units I, n being a number greater than 1;
- une propriété logique P est définie de manière que, pour toute unité élémentaire I, la propriété logique P, appliquée à une unité élémentaire I authentique, donne une valeur logique du type vrai ;a logical property P is defined so that, for any elementary unit I, the logical property P, applied to an authentic elementary unit I, gives a logical value of the true type;
- le message Prgm est crypté par des moyens de cryptage du dispositif émetteur E à l'aide d'un algorithme de cryptage comportant une clé Kc de manière à obtenir un résultat crypté Kc(Prgm) ; - le résultat crypté Kc(Prgm) est transmis par le dispositif émetteur E au dispositif récepteur R ;the Prgm message is encrypted by encryption means of the sending device E using an encryption algorithm comprising a key Kc so as to obtain an encrypted result Kc (Prgm); - the encrypted result Kc (Prgm) is transmitted by the sending device E to the receiving device R;
- le résultat crypté Kc(Prgm) est décrypté par le dispositif récepteur R à l'aide d'un algorithme de décryptage comportant une clé secrète Kd de manière à obtenir un résultat décrypté Kd(Kc(Prgm)) ;the encrypted result Kc (Prgm) is decrypted by the receiving device R using a decryption algorithm comprising a secret key Kd so as to obtain a decrypted result Kd (Kc (Prgm));
- le résultat décrypté Kd(Kc(Prgm)) est divisé en unités élémentaires I ;- the decrypted result Kd (Kc (Prgm)) is divided into elementary units I;
- la propriété logique P est appliquée aux unités élémentaires I de manière à obtenir, pour chaque unité, une valeur logique du type vrai ou du type faux ;the logical property P is applied to the elementary units I so as to obtain, for each unit, a logical value of the true type or of the false type;
- le message Prgm est considéré comme authentique et intègre si, pour chaque unité, les valeurs logiques ont une valeur du type vrai.- the Prgm message is considered authentic and integrates if, for each unit, the logical values have a value of the type true.
2. Procédé selon la revendication précédente, caractérisé en ce que le message Prgm est un programme informatique susceptible d'être exécuté et/ ou d'être interprété par le dispositif récepteur R. 2. Method according to the preceding claim, characterized in that the Prgm message is a computer program capable of being executed and / or of being interpreted by the receiving device R.
3. Procédé selon la revendication précédente, caractérisé en ce que les unités élémentaires sont des instructions du programme Prgm.3. Method according to the preceding claim, characterized in that the elementary units are instructions of the Prgm program.
4. Procédé selon la revendication 2 ou 3, caractérisé en ce que la propriété P, appliquée à une unité élémentaire I, donne une valeur logique de type vrai lorsque l'unité élémentaire I est exécutable et/ ou interprétable.4. Method according to claim 2 or 3, characterized in that the property P, applied to an elementary unit I, gives a logical value of true type when the elementary unit I is executable and / or interpretable.
5. Procédé selon l'une des revendications 2, 3 ou 4, caractérisé en ce que la propriété P, appliquée à une unité élémentaire I, donne une valeur logique de type faux lorsque l'unité élémentaire I n'est pas exécutable et/ou interprétable.5. Method according to one of claims 2, 3 or 4, characterized in that the property P, applied to an elementary unit I, gives a logical value of false type when the elementary unit I is not executable and / or interpretable.
6. Procédé selon l'une des revendications précédentes, caractérisé en ce que le dispositif récepteur R est un objet portable à mémoire du type carte à puce.6. Method according to one of the preceding claims, characterized in that the receiving device R is a portable object with memory of the chip card type.
7. Procédé selon l'une des revendications 1 à 5, caractérisé en ce que le dispositif récepteur R comporte un objet portable à mémoire du type carte à puce.7. Method according to one of claims 1 to 5, characterized in that the receiving device R comprises a portable memory object of the smart card type.
8. Procédé selon la revendication 6, caractérisé en ce que l'objet portable à mémoire est un module d'identification abonné SIM.8. Method according to claim 6, characterized in that the portable memory object is a subscriber identification module SIM.
9. Procédé selon l'une des revendications précédentes, caractérisé en ce que le message Prgm est écrit dans un langage interprété de haut niveau.9. Method according to one of the preceding claims, characterized in that the Prgm message is written in a high level interpreted language.
10. Procédé selon la revendication 9, caractérisé en ce que le langage de haut niveau est le langage Java.10. Method according to claim 9, characterized in that the high-level language is the Java language.
1 1. Procédé selon l'une des revendications 9 ou 10, caractérisé en ce que le programme informatique est formé d'un ensemble d'instructions précompilées. 1 1. Method according to one of claims 9 or 10, characterized in that the computer program consists of a set of precompiled instructions.
12. Procédé selon l'une des revendications précédentes, caractérisé en ce que le message Prgm est crypté en flux continu ou en blocs chaînés.12. Method according to one of the preceding claims, characterized in that the Prgm message is encrypted in continuous stream or in chained blocks.
13. Procédé selon l'une revendications précédentes, caractérisé en ce que le message Prgm est crypté en blocs et en ce que les blocs du message Prgm crypté sont permutés.13. Method according to one of the preceding claims, characterized in that the Prgm message is encrypted in blocks and in that the blocks of the encrypted Prgm message are swapped.
14. Procédé selon la revendication 13, caractérisé en ce que un des blocs permutés est un bloc de début ou de fin du message Prgm.14. Method according to claim 13, characterized in that one of the permuted blocks is a start or end block of the Prgm message.
15. Procédé selon l'une des revendications 1 à 12, caractérisé en ce que le résultat Kc(Prgm) est décrypté par blocs, chaque bloc crypté étant à l'origine d'un bloc décrypté prenant la place du bloc crypté.15. Method according to one of claims 1 to 12, characterized in that the result Kc (Prgm) is decrypted by blocks, each encrypted block being at the origin of a decrypted block taking the place of the encrypted block.
16. Procédé selon l'une des revendications précédentes, caractérisé en ce que les algorithmes de cryptage et de décryptage font intervenir un aléa, transmis par le dispositif émetteur E, au dispositif récepteur R.16. Method according to one of the preceding claims, characterized in that the encryption and decryption algorithms involve a hazard, transmitted by the sending device E, to the receiving device R.
17. Procédé selon l'une des revendications précédentes, caractérisé en ce que le message Prgm est enregistré, après vérification, dans une mémoire non volatile du dispositif récepteur R. 17. Method according to one of the preceding claims, characterized in that the message Prgm is recorded, after verification, in a non-volatile memory of the receiving device R.
PCT/FR1998/002753 1997-12-16 1998-12-16 Method for making secure the transmission of a message from a transmitting device to a receiving device WO1999031845A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP98962482A EP1040620A1 (en) 1997-12-16 1998-12-16 Method for making secure the transmission of a message from a transmitting device to a receiving device
JP2000539611A JP2002509269A (en) 1997-12-16 1998-12-16 Method for securing message transmission from a sender device to a receiver device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR97/15971 1997-12-16
FR9715971A FR2772532B1 (en) 1997-12-16 1997-12-16 METHOD FOR SECURING THE TRANSMISSION OF A MESSAGE FROM A TRANSMITTING DEVICE TO A RECEIVING DEVICE

Publications (1)

Publication Number Publication Date
WO1999031845A1 true WO1999031845A1 (en) 1999-06-24

Family

ID=9514695

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR1998/002753 WO1999031845A1 (en) 1997-12-16 1998-12-16 Method for making secure the transmission of a message from a transmitting device to a receiving device

Country Status (5)

Country Link
EP (1) EP1040620A1 (en)
JP (1) JP2002509269A (en)
CN (1) CN1284227A (en)
FR (1) FR2772532B1 (en)
WO (1) WO1999031845A1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100511329C (en) * 2000-01-21 2009-07-08 索尼公司 Data processing apparatus and data processing method
CN100462992C (en) * 2007-04-30 2009-02-18 北京飞天诚信科技有限公司 Method and system for producing information safety device
US9686077B2 (en) * 2014-03-06 2017-06-20 Microsoft Technology Licensing, Llc Secure hardware for cross-device trusted applications

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5155680A (en) * 1986-10-24 1992-10-13 Signal Security Technologies Billing system for computing software
EP0537738A2 (en) * 1991-10-17 1993-04-21 Software Security, Inc. Method of protecting computer software from unauthorized execution using multiple keys
WO1997005551A1 (en) * 1995-07-31 1997-02-13 Verifone, Inc. Method and apparatus for operating resources under control of a security module or other secure processor
JPH09179951A (en) * 1995-12-22 1997-07-11 Dainippon Printing Co Ltd Portable information recording medium and its system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5155680A (en) * 1986-10-24 1992-10-13 Signal Security Technologies Billing system for computing software
EP0537738A2 (en) * 1991-10-17 1993-04-21 Software Security, Inc. Method of protecting computer software from unauthorized execution using multiple keys
WO1997005551A1 (en) * 1995-07-31 1997-02-13 Verifone, Inc. Method and apparatus for operating resources under control of a security module or other secure processor
JPH09179951A (en) * 1995-12-22 1997-07-11 Dainippon Printing Co Ltd Portable information recording medium and its system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MORI R ET AL: "SUPERDISTRIBUTION: THE CONCEPT AND THE ARCHITECTURE", TRANSACTIONS OF THE INSTITUTE OF ELECTRONICS, INFORMATION AND COMMUNICATION ENGINEERS OF JAPAN, vol. E73, no. 7, July 1990 (1990-07-01), TOKYO (JP), pages 1133 - 1146, XP002010383 *
PATENT ABSTRACTS OF JAPAN vol. 097, no. 011 28 November 1997 (1997-11-28) *

Also Published As

Publication number Publication date
FR2772532A1 (en) 1999-06-18
EP1040620A1 (en) 2000-10-04
JP2002509269A (en) 2002-03-26
CN1284227A (en) 2001-02-14
FR2772532B1 (en) 2000-01-07

Similar Documents

Publication Publication Date Title
EP0675614B1 (en) Apparatus for the secure exchange of data according to the RSA method limited to digital signatures and message verification and smart card containing such an apparatus
EP1687953B1 (en) Method for the authentication of applications
EP1072124B1 (en) Method for verifying the use of public keys generated by an on-board system
EP1305948B1 (en) Method for secure distribution of digital data representing a multimedia content
EP1549011A1 (en) Communication method and system between a terminal and at least a communication device
EP1293062B1 (en) Method for secure biometric authentication/identification, biometric data input module and verification module
WO2006106250A1 (en) Secure communication between a data processing device and a security module
EP3446436B1 (en) Method for obtaining a security token by a mobile terminal
WO2016102833A1 (en) Secure electronic entity, electronic apparatus and method for verifying the integrity of data stored in such a secure electronic entity
EP3185468B1 (en) Data-transmission method, data-receiving method, corresponding devices and programs
WO2016207715A1 (en) Secure management of electronic tokens in a cell phone
EP3732849B1 (en) Method and system for identifying a user terminal in order to receive streaming protected multimedia content
WO1999031845A1 (en) Method for making secure the transmission of a message from a transmitting device to a receiving device
EP3136283B1 (en) Device and method for securing commands exchanged between a terminal and an integrated circuit
FR2776454A1 (en) Mobile telephone system using prepaid cards inserted into phone
EP2016700B1 (en) Terminal activation method
EP4162658A1 (en) Method for discriminating a message between a terminal and a data server
EP1216458B1 (en) Method for making secure data during transactions and implementing system
EP3021515B1 (en) Enhancement of the authentic integrity of data using the last block encrypting said data in cbc mode
WO2017005644A1 (en) Method and system for controlling access to a service via a mobile media without a trusted intermediary
FR2853785A1 (en) Electronic entity e.g. subscriber identification module card, for mobile communication, has recording unit to update and store maximal number of data, and receiving unit to verify whether received command is from authorized party
CN115361140A (en) Method and device for verifying security chip key
WO2010046168A1 (en) Method of securing messages intended for an upgraded terminal in a distributed architecture
FR2930831A1 (en) INFORMATION SYSTEM COMPRISING SENSITIVE DATA AND METHOD FOR PROTECTING SUCH SENSITIVE DATA IN THE MEMORY OF ITS EQUIPMENT
WO2000002343A1 (en) Method for authenticating and verifying digital data integrity

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 98813288.5

Country of ref document: CN

AK Designated states

Kind code of ref document: A1

Designated state(s): CN JP US

AL Designated countries for regional patents

Kind code of ref document: A1

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

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

Ref document number: 1998962482

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 09581646

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 1998962482

Country of ref document: EP

WWW Wipo information: withdrawn in national office

Ref document number: 1998962482

Country of ref document: EP