EP3777007A1 - Procédés, dispositifs et programmes d'ordinateur pour le chiffrement et le déchiffrement de données pour la transmission ou le stockage de données - Google Patents

Procédés, dispositifs et programmes d'ordinateur pour le chiffrement et le déchiffrement de données pour la transmission ou le stockage de données

Info

Publication number
EP3777007A1
EP3777007A1 EP19726049.0A EP19726049A EP3777007A1 EP 3777007 A1 EP3777007 A1 EP 3777007A1 EP 19726049 A EP19726049 A EP 19726049A EP 3777007 A1 EP3777007 A1 EP 3777007A1
Authority
EP
European Patent Office
Prior art keywords
data
key
encryption
pseudo
stream
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP19726049.0A
Other languages
German (de)
English (en)
Inventor
Youssef BEN-NASER
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Publication of EP3777007A1 publication Critical patent/EP3777007A1/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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
    • H04L9/0668Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator producing a non-linear pseudorandom sequence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/26606Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel for generating or managing entitlement messages, e.g. Entitlement Control Message [ECM] or Entitlement Management Message [EMM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Definitions

  • the present invention relates to the management of data in computer systems, in particular their storage and transmission, and more particularly to methods, devices and computer programs for the encryption and decryption of data for their transmission and / or storage. .
  • Encryption is typically used for business purposes and for the protection of personal data.
  • Encryption is typically done using a key, called an encryption key. Similarly, the decryption is usually done using a key, called decryption key.
  • the decryption key is the same as the encryption key, the encryption is said to be symmetric or secret key encryption. Conversely, when the decryption key is different from that of encryption, the encryption is said asymmetric or public key encryption.
  • Figure 1 including Figures 1a and 1b, illustrates symmetric encryption and asymmetric encryption, respectively.
  • the symmetric encryption requires the transmission of a secret key to allow the decryption of previously encrypted data with the same key.
  • a secret key denoted k is generated (step 100) for encrypting data 105 (step 110).
  • the encrypted data 1 15 is for example transmitted to a remote computer system by a first communication channel referenced 120 while the secret key is transmitted to this remote computer system by a second communication channel referenced 125. This second communication channel is secure .
  • the received encrypted data, referenced 115 ' can then be decoded using the secret key k 'also received (step 130) to obtain data referenced 105' corresponding to the initial data.
  • This encryption / decryption method thus enables a first computer system 135 to transmit data securely to a second computer system 140 via a non-secure communication channel 120, for example the Internet.
  • the asymmetric encryption requires the generation of an encryption key, called a public key, and a decryption key called a private key.
  • a first computer system 150 to receive data securely from a second computer system 155, it must first generate two corresponding keys (step 160), a public key k P and a private key k s .
  • the public key is transmitted to the second computer system, via a communication channel 165, which can use it to encrypt data 170 (step 175).
  • the encrypted data 180 is then transmitted to the first computer system via the communication channel 165 or another (not shown).
  • the first computer system 150 then uses the private key k s (corresponding to the public key k P used by the second computer system 155) to decrypt the received encrypted data referenced 180 '(step 185) in order to obtain referenced data 170' corresponding to the initial data.
  • this encryption / decryption method enables a first computer system 150 to transmit data securely to a second computer system 155.
  • this asymmetric encryption method generally offers greater security than symmetric encryption, its implementation requires more resources.
  • the invention solves at least one of the problems discussed above.
  • the invention thus relates to a method for encrypting or decrypting a data stream, the method comprising the following steps,
  • the method according to the invention thus makes it possible to improve data protection of the data stream while limiting the resources necessary for encrypting and / or decrypting this data.
  • the method further comprises, for each data of the data stream, the following steps,
  • selecting a second encryption key in the key stream created according to a second predetermined selection mechanism selecting an encryption key in the key stream created according to a predetermined selection mechanism consisting in selecting a first encryption key in the key stream created according to a first predetermined selection mechanism, the first and second selection mechanisms being distinct;
  • the method further comprises, for each datum of the data stream, the following preliminary steps,
  • selecting a first encryption key in the key stream created according to a first predetermined selection mechanism selecting an encryption key in the key stream created according to a predetermined selection mechanism consisting in selecting a second encryption key in the key stream created according to a second predetermined selection mechanism, the first and second selection mechanisms being distinct;
  • the invention also relates to a method for transmitting an encrypted data stream, the method comprising the following preliminary steps,
  • the method according to the invention thus makes it possible to improve the protection of transmitted data while limiting the resources necessary for encrypting and / or decrypting this data.
  • the method further comprises an authentication step following the step of decrypting a set, the authentication step conditioning the execution of at least one next step.
  • the method further comprises a step of selecting pseudo-random numbers in the pseudorandom number list generated to create the encryption key stream.
  • the method further comprises a step of decomposing pseudorandom numbers of the pseudorandom number list generated to create the encryption key stream.
  • a selection mechanism uses an index value of a previously selected key.
  • a selection mechanism uses a value of a previously selected key.
  • the invention also relates to a device for encrypting or decrypting a data stream comprising a plurality of pseudo-random number generators, a pseudorandom number selection module and an encryption or decryption module, the device being characterized in that the selection module is connected to each pseudorandom number generator of the plurality of pseudorandom number generators, a pseudorandom number generator selecting pseudorandom numbers generated by at least one other generator of pseudorandom numbers pseudorandom numbers for generating a list of encryption keys, encryption keys separate from the generated encryption key list being used to encrypt or decrypt data from the data stream.
  • the device according to the invention thus makes it possible to improve data protection of the data stream while limiting the resources required for encrypting and / or decrypting this data.
  • At least one pseudorandom number generator of the plurality of pseudorandom number generators is a chaotic generator of pseudo-random numbers, hyper-chaotic, pseudo-chaotic or chaotic.
  • the device further comprises an encryption key selection module.
  • the device further comprises a pseudorandom number decomposition module for generating encryption keys whose length is equal to the length of the data to be encrypted or decrypted.
  • At least one pseudorandom number generator of the plurality of pseudorandom number generators is implemented in a software manner.
  • the invention also relates to computer programs comprising instructions adapted to the implementation of at least some of the steps of the method described above when said computer programs are run on a microcontroller.
  • the benefits provided by these computer programs are similar to those previously discussed in the process.
  • FIG. 1 comprising FIGS. 1a and 1b, illustrates symmetric encryption and asymmetric encryption, respectively;
  • FIG. 2 diagrammatically illustrates an encryption and decryption system according to certain embodiments of the invention
  • FIG. 3 comprising FIGS. 3a to 3e, illustrates examples of secure communications between two elements, here between two specific devices, between two clients, between a client and a specific device and between two clients via one or more specific devices;
  • FIG. 4 comprising FIGS. 4a to 4d, illustrates examples of encryption and decryption modules using chaotic generators of pseudo-random, hyper-chaotic, pseudo-chaotic or chaotic type numbers;
  • FIG. 5 illustrates a variant of a key generator that can be used in encryption and decryption modules;
  • FIG. 6 illustrates an example of selection of keys in a list of possible keys for forming a key stream to be used
  • FIG. 7 schematically illustrates steps implemented in a thin client or a heavy client for encrypting data to be transmitted to a remote device via a specific device
  • FIG. 8 schematically illustrates steps implemented in a specific device for receiving encrypted data from a thin client or a heavy client, directly or via a specific device, and retransmitting them to a thin client or a heavy client, directly or via another specific device;
  • FIG. 9 schematically illustrates steps implemented in a thin client or a heavy client to decrypt received data
  • Fig. 10 schematically illustrates an exemplary structure of a data packet used for securely transmitting data according to some embodiments
  • FIG. 11 comprising FIGS. 11a and 11b, illustrates examples of encryption / decryption mechanisms that can be implemented to transfer data in a secure manner
  • FIG. 12 comprising FIGS. 12a and 12b, illustrates an exemplary mechanism for synchronizing the use of encryption and decryption keys between a transmitter and a receiver
  • FIG. 13 illustrates an example of architecture of a specific device or of a device implementing a thin client or a heavy client.
  • the invention relates to the encryption and decryption on the fly, by stream, of data, in particular for transmission and / or storage purposes.
  • a separate encryption / decryption key is preferably used for each elementary data, for example for each word of n bits.
  • the encryption and decryption are based on a symmetric scheme without key transmission, Keys are generated independently for encryption and decryption.
  • the encryption / decryption key generators are then identical for encryption and decryption so that keys having the same index in the key streams generated are identical.
  • the encryption / decryption keys are generated by chaotic generators of pseudo-random numbers, hyper-chaotic, pseudo-chaotic or chaotic type.
  • FIG. 2 schematically illustrates an encryption and decryption system according to some embodiments of the invention.
  • the system here comprises an encryption module 200 and a decryption module 205 for encrypting data 210, transmit them via an unsecure communication network 215 and decrypt them after reception.
  • the modules 200 and 205 each comprise a key generator K and K, referenced 220 and 220 ', respectively. These generators are here similar so that the key K generated by the generator 220 (ie the / th key stream key generated by the generator 220) is equal to the key K generated by the generator 220 '(ie the / th key of the key stream generated by the generator 220 ').
  • the data to be transmitted are here decomposed into ordered data items.
  • Each elementary data is encrypted by the encryption module 200, according to the order of the elementary data, using an encryption function 225, preferably with a particular encryption key.
  • the datum c /, referenced 210-i is encrypted using the encryption key Ki, the datum di + i using the key KM, and so on.
  • the encrypted data 230, in particular the encrypted data item 230-i corresponding to the item 210-i, is transmitted to the decryption module 205 via the communication network 215.
  • the encrypted data 230 'received by the decryption module 205 are decrypted in the decryption module 205.
  • data is decrypted with a key corresponding to that used for encryption, symmetrically, using a decryption function 235.
  • the data of i, referenced 230'-i is decrypted using the decryption key K, the data ⁇ 'M using the key K'i + i and so on.
  • a synchronization is needed here between the encryption module 200 and the decryption module 205 so that the decryption key used to decrypt a piece of data corresponds to the encryption key used to encrypt this data.
  • the data and the keys are ordered and the keys are used systematically, one after another to encrypt and decrypt the data. In case of transmission error, missing data is (re) requested to allow further decryption.
  • a key index is associated with each encrypted data so that the decryption module used can find the key for decrypting the corresponding data.
  • one or more initialization data as well as an index calculation mechanism, pseudo-random or otherwise, are known to the encryption module and the decryption module to enable the determination of a key index to each data to be encrypted or decrypted.
  • a key index is, for example, the position of the key in a list of generated keys.
  • FIG. 3 comprising FIGS. 3a to 3e, illustrates examples of secure communications between two elements, here between two devices. specific (generically referenced 300), between two clients (generically referenced 305), between a client and a specific device and between two clients via one or more specific devices.
  • Specific devices are, for example, relay servers and are especially provided with specific hardware elements, typically one or more pseudo-random number generators, for example chaotic generators of pseudo-random, hyper-chaotic, pseudo-chaotic numbers or chaotic type.
  • specific hardware elements typically one or more pseudo-random number generators, for example chaotic generators of pseudo-random, hyper-chaotic, pseudo-chaotic numbers or chaotic type.
  • the clients are typically so-called lightweight clients, for example applications implemented in smartphones, without using any specific hardware element.
  • So-called heavy clients are applications that are securely linked to specific devices, using specific hardware elements.
  • Figure 3a illustrates an example of secure communications between two specific devices while Figure 3b illustrates an example of secure communications between two clients and Figure 3c illustrates an example of secure communications between a client and a specific device.
  • Figures 3d and 3e illustrate examples of secure communications between two clients via one and two specific devices, respectively.
  • the system may be configured such that the one or more specific devices can not decrypt the data exchanged between the clients.
  • the client 305-1 can encrypt data using a first key Kx, known to clients 305-1 and 305-2 but unknown to the specific device 300. -1 then encrypt this data using a KM key known to the client 305-1 and the specific device 300-1.
  • a KM key known to the client 305-1 and the specific device 300-1.
  • these data are received by the specific device 300-1, they are decrypted using the KM key (without being intelligible because they are always encrypted using the key Kx) and then encrypted with a key KA ⁇ known from specific device 300-1 and client 305-2.
  • KA ⁇ known from specific device 300-1 and client 305-2.
  • these data are received by the client 305-2, they are decrypted using the key KA ⁇ and then using the key KXI to be understandable.
  • secure communication can be established between a client and a specific device via one or more other specific devices.
  • FIG. 4 comprising FIGS. 4a to 4d, illustrates examples of encryption and decryption modules using chaotic generators of pseudo-random, hyper-chaotic, pseudo-chaotic or chaotic type numbers.
  • FIG. 4a illustrates for example an encryption module of a specific device while FIG. 4b illustrates a corresponding decryption module of a specific device.
  • the key generator 220 comprises a set of chaotic generators of pseudo-random, hyper-chaotic, pseudo-chaotic or chaotic type numbers generically referenced G. More precisely, this set comprises n generators (Gi to Gn) pseudorandom numbers used as key generators. The outputs of these generators are connected to a selection module 400.
  • the key generator 220 further comprises a pseudo-random number generator G s used to select an output of one of the pseudo-random number generators Gi to Gn using the selection module 400.
  • the pseudo-random number generator G s is for example a chaotic generator of pseudo-random numbers, hyper-chaotic, pseudo-chaotic or chaotic type whose input is defined by an initialization parameter.
  • a test is performed in the selection module 400 to prohibit the selection of a random number whose value is close to that of a previously selected random number.
  • the selection module 400 can compare the difference between a previously selected random number and a potentially selected random number to a predetermined threshold in order to verify that two successive random numbers among the random numbers selected have values whose difference is greater than a predetermined threshold.
  • the pseudo-random number generators Gi to G n are here connected in cascade so that one or more inputs of a pseudo-random number generator are connected to one or more outputs of another generator of pseudorandom numbers, except a pseudorandom number generator whose input or inputs are defined by one or more initialization parameters (here the pseudo-random number generator Gn).
  • the output of the selection module 400 is connected to the input of a decomposition module 405 for breaking down the pseudo-random numbers generated by the pseudo-random number generators Gi to Gn into keys. whose length corresponds to that of the data to be encrypted. This length can be fixed or variable. The use of keys having the same length as the data to be encrypted notably makes it possible to optimize the resources required for encryption.
  • each pseudo-random number generated by the pseudo-random number generators Gi to Gn can be decomposed into a key of 256 bits, into two keys of 128 bits, four 64-bit keys, eight 32-bit keys, 16 16-bit keys, or 32 8-bit keys. Other decompositions are of course possible.
  • the key generator 220 thus produces an ordered stream of keys that are transmitted to an encryption module 225 to encrypt data.
  • the / th key stream of the key is used to encrypt / th data of the data stream to be encrypted.
  • the key generator 220 'illustrated in FIG. 4b is similar to the key generator 220 illustrated in FIG. 4a so that these key generators generate identical key streams.
  • the key generator 220 'thus comprises a set of chaotic generators of pseudo-random numbers, hyper-chaotic, pseudo-chaotic or chaotic type, generically referenced G'. This set comprises n generators (G'i to G ' n ) of pseudo-random numbers used as key generators. The outputs of these generators are connected to a selection module 450.
  • the key generator 220 'further comprises a pseudo-random number generator G' s used to select an output of one of the pseudorandom number generators using the selection module 450.
  • the pseudo-random number generator G ' s is for example a chaotic generator of pseudo-random numbers, hyper-chaotic, pseudo-chaotic or chaotic type whose input is defined by an initialization parameter.
  • the random number generators G'i to G'n are connected in cascade so that one or more inputs of a pseudorandom number generator are connected to one or more outputs of another pseudo-number generator. random, with the exception of a pseudorandom number generator whose one or more entries are defined by one or more initialization parameters (here the generator of pseudorandom numbers G'n).
  • the output of the selection module 450 is connected to the input of a decomposition module 455 for breaking down the pseudo-random numbers generated by the pseudo-random number generators G'i to G 'n in keys whose length corresponds to that of the data to be deciphered. Again, this length can be fixed or variable, the use of keys having the same length as the data to be encrypted to optimize the resources required for encryption.
  • the key generator 220 'thus produces an ordered stream of keys which are transmitted to a decryption module 235 to decrypt received encrypted data.
  • the / th key stream of the key is used to decrypt / ®me encrypted data item from a stream of encrypted data items.
  • the initialization and parameterization values of the key generator 220 'illustrated in FIG. 4b are the same as those of the key generator 220 illustrated in FIG. 4a. Such values can be predetermined and stored locally or determined during the establishment of a communication link.
  • the first pseudo-random number generator (Gi and G'i) is a software module. This can be used alone, for example when secure communication needs to be established with a thin client (e.g., between a thin client and a specific device). In this case, the pseudo-random number generators G2 to Gn, if they exist, are not used. Similarly, when a key generator corresponding to the key generator 220 is implemented in a thin client, the pseudo-random number generators G2 to Gn are not implemented. In addition, in this case, the pseudorandom number generator used to select an output of a pseudorandom number generator using a selection module can be implemented in a software manner. It is also observed here that when the pseudo-random number generators G2 to Gn are not used, it is the first pseudo-random number generator (G1) that is initialized (to ensure a correspondence between the key streams generated in the encryption and decryption modules).
  • pseudo-random number generators G2 to Gn can be predefined (for example according to the nature of the equipment to be communicated) or can be defined dynamically, for example by means of an indicator in the transmitted data.
  • Figure 4c illustrates a specific device encryption module while Figure 4d illustrates a corresponding decryption module of a thin client.
  • the key generator 220 "illustrated in FIG. 4c is similar to the key generator 220 illustrated in FIG. 4a, however, as illustrated, the pseudo-random number generators G2 to Gn are not used. In addition, the generator G1 is initialized.
  • the key generator 220 '"illustrated in FIG. 4d is here implemented in a thin client. It therefore comprises only a pseudo-random number generator G "'i whose values are used to generate keys and a pseudo-random number generator G'' s used to select, using the selection module 450 ', an output of the pseudorandom number generator whose values are used to generate keys.
  • Figure 5 illustrates a variant of a key generator that can be used in encryption and decryption modules. According to this embodiment, the generated keys are not used in a systematic and chronological manner but randomly.
  • the key generator 500 comprises in particular a set (G "i to G" n ) of n chaotic generators of pseudorandom numbers (hyper-chaotic, pseudo-chaotic or chaotic type), a first selection module 505 and a decomposition module 510 for decomposing generated pseudorandom numbers, such as key generators 220 and 220 'shown in Figures 4a and 4b, respectively.
  • the key generator 500 further comprises an index generator 515 and a second selection module 520.
  • the index generator 515 is in particular connected to the decomposition module 510 in order to associate an index, typically a sequence number, with each generated key.
  • an index typically a sequence number
  • the first key generated is associated with the index 1, the second with the index 2 and so on.
  • the second selection module 520 is intended to select the next key to be used to encrypt or decrypt a data item. This selection is here based on the key indices. According to a particular embodiment, the first selection is carried out according to a initialization variable (predetermined or determined during the establishment of a communication link) and a next selection is made according to the index of the current key and the current key. As an illustration, the index of the next key (index_cléi + i ) is equal to the sum of the index of the current key (index_cléi) with the value of the current key (key):
  • the selected keys are transmitted as a key stream for encrypting or decrypting the elementary data (the same key generator 500 must be used for encryption and decryption, with the same initialization parameters).
  • Figure 6 illustrates an example of selecting keys from a list of possible keys to form a key stream to use.
  • the index of initialization is equal to i + 3.
  • the first key (Ki) is the key having the index i + 3.
  • the index i + 3 is added to the value of the key Ki. It is assumed here that the result is equal to j + 2.
  • the second key (K2) is thus the key having the index j + 2.
  • the index j + 2 is added to the value of the key K2. It is assumed here that the result is equal to k + 3.
  • the third key (K3) is thus the key with the index k + 3.
  • the index k + 3 is added to the value of the key K3. It is assumed here that the result is equal to /.
  • the fourth key (K) is thus the key having the index /. The process continues as long as keys are needed.
  • FIG. 7 schematically illustrates steps implemented in a thin client or a heavy client for encrypting data to be transmitted to a remote device via a specific device.
  • a first step here relates to the reception of a data stream to be encrypted (step 700). It is observed that a data decomposition step may be necessary if the received data are not elementary (i.e. if received data does not have a length less than or equal to the maximum size of the keys of the data). encryption / decryption).
  • a key stream is generated (step 705).
  • the key generator used to generate this stream is, for example, the key generator 220 illustrated in FIG. 4a or the key generator 500 illustrated in FIG. 5.
  • a first data stream data to be encrypted is selected to be encrypted (step 710).
  • a first key of the key stream is selected using a first selection mechanism (step 715).
  • the selected data item is then encrypted using the first selected key (step 720).
  • a standard bit-to-bit encryption algorithm can be used. It may be, for example, an exclusive disjunction (XOR function).
  • the encrypted data item is assembled with one or more other encrypted data or processed alone.
  • the processing of the encrypted data item, alone or aggregated with others, consists first of all in creating a set comprising the encrypted elementary data item (s) and a header (step 725). As described with reference to FIG. 10, the latter may include information relating to encryption / decryption.
  • a signature of the set comprising the encrypted data or data and a header is preferably calculated (step 730).
  • a signature calculated in a standard way, makes it possible to carry out an integrity and / or authentication check when receiving the set of data and to detect, if necessary, a transmission error.
  • the calculated signature and the set comprising the encrypted data or data and a header are then encapsulated in a data packet (step 735).
  • a second key of the key stream is selected using a second selection mechanism (step 740).
  • the previously created data packet is then encrypted using the second selected key (step 745) and the encrypted packet is transmitted (step 750).
  • a standard encryption algorithm can be used.
  • the transmission of the encrypted packet uses for example a standard communication protocol.
  • the algorithm then returns to steps 710 and 715 to, if necessary, encrypt and transmit elementary data of the elementary data stream not transmitted.
  • the first and second key selection mechanisms may consist of a sequential key selection mechanism in a key stream from a predetermined index, as described with reference to FIG. 4a, or a more complex mechanism as described with reference to Figure 5. These mechanisms may be the same or different.
  • FIG. 8 schematically illustrates steps implemented in a specific device to receive encrypted data from a thin client or a heavy client, directly or via a specific device, and retransmit them to a thin client or a heavy client, directly or via another specific device.
  • the process described here is for the processing of data received, encrypted by double encryption, in order to partially decrypt them and re-encrypt them to improve the security of their transmission.
  • a first step here relates to receiving a packet stream comprising encrypted data (step 800).
  • a key stream is generated (step 705 '). This key stream is the same as that generated in step 705 in FIG.
  • a first packet of the packet stream comprising encrypted data is selected to be partially decrypted (step 805).
  • a first key of the key flow is selected using a first selection mechanism (step 810). This first key selection mechanism is identical to the second key selection mechanism described with reference to FIG. 7 (step 740).
  • the selected packet is then decrypted using the first selected key (step 815).
  • the decryption algorithm corresponds to the encryption algorithm used, described with reference to FIG. 7 (step 745). This decryption makes it possible to obtain a signature and a set comprising one or more encrypted data as well as a header.
  • a signature of the set comprising the encrypted data or data and a header is preferably calculated (step 820).
  • the calculated signature is then compared with the decrypted signature to authenticate the selected packet and verify its integrity (step 825). If a transmission error is detected, a new copy of the packet is requested from the device at the origin of the selected packet.
  • a second key of the key stream is selected using a second selection mechanism (step 830).
  • the previously partially decrypted data packet is then encrypted using the second selected key (step 783) and the encrypted packet is transmitted (step 840). Again, the transmission of the encrypted packet may be based on a standard communication protocol.
  • the algorithm then returns to steps 805 and 810 to, if desired, process an untreated next packet of the received data packet stream.
  • first and second key selection mechanisms may consist of a sequential key selection mechanism in a key stream from a predetermined index, as described with reference to FIG. 4a, or a more complex mechanism as described with reference to FIG. 5. These mechanisms can be identical or distinct.
  • Figure 9 schematically illustrates steps implemented in a thin client or heavy client to decrypt received data.
  • a first step here relates to the reception of a packet stream comprising encrypted data (step 900).
  • a key stream is generated (step 705 "). This key stream is the same as that generated in step 705 in FIG.
  • a first packet of the packet stream comprising encrypted data is selected for decryption (step 905).
  • a first key of the key flow is selected using a first selection mechanism (step 910).
  • This first key selection mechanism is identical to the second key selection mechanism described with reference to FIG. 8 (step 830).
  • the selected packet is then decrypted using the first selected key (step 915).
  • the decryption algorithm corresponds to the encryption algorithm used, described with reference to FIG. 8 (step 835). This decryption makes it possible to obtain a signature and a set comprising one or more encrypted data as well as a header.
  • a signature of the set comprising the encrypted data or data and a header is preferably calculated (step 920).
  • the calculated signature is then compared with the decrypted signature to authenticate the selected packet and verify its integrity (step 925). If a transmission error is detected, a new copy of the packet is requested from the device at the origin of the selected packet.
  • a second key of the key stream is selected using a second selection mechanism (step 930).
  • This second key selection mechanism is identical to the first key selection mechanism described with reference to FIG. 7 (step 720).
  • the set comprising one or more encrypted data as well as a header is then decrypted using the second key selected (step 935) to obtain one or more decrypted data and a header.
  • the algorithm then returns to steps 905 and 910 to, if desired, process an untreated next packet of the received data packet stream.
  • the first and second key selection mechanisms may consist of a sequential key selection mechanism in a key stream from a predetermined index, as described with reference to FIG. 4a, or a more complex mechanism as described with reference to FIG. 5. These mechanisms can be identical or distinct.
  • Figure 10 schematically illustrates an exemplary structure of a data packet used for securely transmitting data, according to some embodiments.
  • the structure 1000 of the packet here comprises three parts.
  • the first part, referenced 1005 corresponds to the data to be transmitted while the second part, referenced 1010, corresponds to the header and the third part, referenced 1015, corresponds to the signature (or digital fingerprint).
  • the first and second parts are here encrypted according to a first level of encryption according to which only the sender and the recipient can decrypt this data.
  • the header comprises several indications among which an acknowledgment indication.
  • Such indications may for example specify that one of the devices is a thin client and therefore only a pseudo-random number generator should be used (as described with reference to Figures 4c and 4d).
  • Such indications can also specify a type of application, for example voice over IP (or VoIP, acronym for Voice over Internet Protocol in English terminology), for which a particular treatment can be applied, for example the absence of a mechanism for acknowledgment (in the case of a VoIP type application, it is not necessary to use an acknowledgment mechanism, a reinitialization of the communication channel being necessary in the event of a network failure).
  • an acknowledgment indication may be used to decide retransmission of packets not received by the recipient or including errors.
  • Figure 11 including Figures 11a and 11b, illustrates examples of encryption / decryption mechanisms that can be implemented to securely transfer data.
  • FIG. 11a allows secure data transfer between three clients 1100-1 through 1100-3 via a specific device 1105. For these purposes, four sets of keys are used.
  • a first set of keys denoted Ka makes it possible to encrypt the data to be transmitted according to a first level of encryption. These keys are identifiable only by the clients 1100-1 to 1100-3 so that the specific device 1105 can not determine them and therefore can not decrypt the data.
  • KDH makes it possible to encrypt data previously encrypted with the keys Ka, thus offering a second level of encryption.
  • These keys are identifiable only by the client 1100-1 and the specific device 1105 so that another device that would be connected to the same communication network can not determine them and therefore can not decrypt the data.
  • a third set of keys KD2I noted encrypts data previously encrypted with Ka keys, thus providing a second level of encryption.
  • These keys are identifiable only by the client 1100-2 and the specific device 1105 so that another device that would be connected to the same communication network can not determine them and therefore can not decipher the data.
  • KD3I makes it possible to encrypt previously encrypted data with the keys Ka, thus offering a second level of encryption.
  • These keys are identifiable only by the client 1100-3 and the specific device 1105 so that another device that would be connected to the same communication network can not determine them and therefore can not decrypt the data.
  • FIG. 11b allows the transfer of data securely between two clients 1100-1 and 1100-2 via a specific device 1105 and between two clients 1100-2 and 1100-3 via a specific device 1105. purposes, five sets of keys are used.
  • a first set of keys denoted Ken makes it possible to encrypt the data to be transmitted according to a first level of encryption. These keys are identifiable only by the clients 1100-1 and 1100-2 so that the client
  • a second set of keys denoted Kc2i makes it possible to encrypt the data to be transmitted according to a first level of encryption. These keys are identifiable only by the clients 1100-2 and 1100-3 so that the client
  • a third set of keys KDH noted encrypts data previously encrypted with Ken keys, thus providing a second level of encryption. These keys are identifiable only by the client 1100-1 and the specific device 1105 so that another device that would be connected to the same communication network can not determine them and therefore can not decrypt the data.
  • a fourth set of keys KD2 noted encrypts data previously encrypted with keys Ken or Kc2i, thus providing a second level of encryption.
  • These keys are identifiable only by the client 1100-2 and the specific device 1105 so that another device which would be connected to the same communication network can not determine them and therefore can not decipher the data.
  • KD3I makes it possible to encrypt data previously encrypted with keys Kc2i, thus offering a second level of encryption.
  • KD3I a fifth set of keys denoted KD3I makes it possible to encrypt data previously encrypted with keys Kc2i, thus offering a second level of encryption.
  • These keys are identifiable only by the client 1100-3 and the specific device 1105 so that another device that would be connected to the same communication network can not determine them and therefore can not decrypt the data.
  • initialization parameters that define the key sets can be determined in different ways. It can in particular be done manually by the users who agree on the initialization parameters to be used or automatically from the identifiers of the clients and the specific devices (a set of initialization parameters can be predetermined and associated with each transmitter / receiver pair).
  • Figure 12 including Figures 12a and 12b, illustrates an exemplary mechanism for synchronizing the use of encryption and decryption keys between a transmitter and a receiver.
  • the steps illustrated in Figure 12a are implemented in the transmitter while the steps shown in Figure 12b are implemented in the receiver.
  • a first step has for its object the selection of a key K, the encryption of a data using the key K, and the creation of a message M / including the encrypted data.
  • the created message is then transmitted (step 1205) with an acknowledgment flag having a first value, e.g. 0, to indicate that this message is not a response to a previous message.
  • an acknowledgment flag having a first value, e.g. 0, to indicate that this message is not a response to a previous message.
  • the transmitter then waits for reception of a response message from the receiver to the message Mi previously sent (step 1210).
  • An acknowledgment flag having a second value, for example 1 is associated with the response message referenced M'i to indicate that it follows a received message.
  • the message Mi is re-transmitted (steps 1215 and 1205).
  • step 1220 If the message M'i is received with the acknowledgment flag having the second value, the variable / is incremented (step 1220) and the algorithm returns to step 1200 to select a new key, encrypt the next data item and pass it on.
  • a response message M i is transmitted with an acknowledgment indicator having a second value, for example 1, to indicate that it follows a message received (step 1255).
  • the received message is then processed (step 1260). It can also be processed in parallel, for example so that a response message is transmitted, with an acknowledgment indicator, only if the corresponding received message is integrity and authenticated.
  • FIG. 13 illustrates an exemplary architecture of a specific device or of a device implementing a thin client or a heavy client.
  • the device 1300 preferably comprises a communication bus 1302 to which are connected:
  • CPU Central Processing Unit
  • ROM 1306 (ROM, acronym for Read Only Memory in English terminology) may include an operating system and programs such as "Prog";
  • RAM Random Access Memory
  • a communication interface 1310 connected to a distributed communication network 1312, for example a communication network without wire and / or a wired communication network, the interface being able to transmit and receive data, in particular to or from another module and / or to or from a computer, a tablet or a smartphone (smartphone).
  • a distributed communication network 1312 for example a communication network without wire and / or a wired communication network, the interface being able to transmit and receive data, in particular to or from another module and / or to or from a computer, a tablet or a smartphone (smartphone).
  • the device 1300 may also have the following elements:
  • a reader 1316 of removable storage medium 1318 such as a memory card.
  • the communication bus allows communication and interoperability between the various elements included in the device 1300 or connected to it.
  • the representation of the bus is not limiting and, in particular, the central unit is able to communicate instructions to any element of the device 1300 directly or via another element of the device 1300.
  • the executable code of each program allowing the programmable device to implement the processes according to the invention can be stored, for example, in ROM 1306.
  • the executable code of the programs may be received via the communication network 1312, via the interface 1310, to be stored in the same manner as that described previously.
  • program or programs may be loaded into one of the storage means of the device 1300 before being executed.
  • the central unit 1304 will control and direct the execution of the instructions or portions of software code of the program or programs according to the invention, instructions which are stored, for example, in the ROM 1306 or in the other storage elements mentioned above. .
  • the program or programs that are stored in a non-volatile memory, for example the read-only memory 1306, are transferred into the random access memory 1308 which then contains the executable code of the program or programs according to the invention, as well as registers for storing the variables and parameters necessary for the implementation of the invention.

Abstract

L'invention a notamment pour objet un procédé de chiffrement ou déchiffrement d'un flux de données, le procédé comprenant les étapes suivantes, - génération d'une liste de nombres pseudo-aléatoires; - création d'un flux de clés de chiffrement à partir de la liste de nombres pseudo-aléatoires générée; - pour chaque donnée du flux de données, • sélection d'une clé de chiffrement dans le flux de clés créé selon un mécanisme de sélection prédéterminé et • chiffrement ou déchiffrement de la donnée considérée à l'aide de la clé de chiffrement sélectionnée.

Description

PROCEDES, DISPOSITIFS ET PROGRAMMES D’ORDINATEUR POUR LE CHIFFREMENT ET LE DECHIFFREMENT DE DONNEES POUR LA TRANSMISSION OU LE STOCKAGE DE DONNEES
La présente invention concerne la gestion de données dans des systèmes informatiques, notamment leur stockage et leur transmission, et plus particulièrement des procédés, des dispositifs et des programmes d’ordinateur pour le chiffrement et le déchiffrement de données pour leur transmission et/ou leur stockage.
Le chiffrement de données est utilisé dans de très nombreuses situations pour rendre ces données inintelligibles afin d’en assurer la confidentialité de telle sorte que seul le destinataire puisse, après déchiffrement, y avoir accès en « clair ». Le chiffrement est typiquement utilisé à des fins commerciales et pour la protection de données personnelles.
Le chiffrement se fait typiquement à l’aide d’une clé, appelée clé de chiffrement. De même, le déchiffrement se fait généralement à l’aide d’une clé, appelée clé de déchiffrement. Lorsque la clé de déchiffrement est la même que celle de chiffrement, le chiffrement est dit symétrique ou chiffrement à clé secrète. A l’inverse, lorsque la clé de déchiffrement est différente de celle de chiffrement, le chiffrement est dit asymétrique ou chiffrement à clé publique.
La figure 1 , comprenant les figures 1a et 1 b, illustre le chiffrement symétrique et le chiffrement asymétrique, respectivement.
Comme illustré sur la figure 1 a, le chiffrement symétrique nécessite la transmission d’une clé secrète pour permettre le déchiffrement de données préalablement chiffrées avec cette même clé.
Plus précisément, une clé secrète notée k est générée (étape 100) pour chiffrer des données 105 (étape 110). Les données chiffrées 1 15 sont par exemple transmises à un système informatique distant par un premier canal de communication référencé 120 tandis que la clé secrète est transmise à ce système informatique distant par un second canal de communication référencé 125. Ce second canal de communication est sécurisé. Les données chiffrées reçues, référencées 115’, peuvent alors être décodées à l’aide de la clé secrète k’ également reçue (étape 130) pour obtenir des données référencées 105’ correspondant aux données initiales.
Ce procédé de chiffrement/déchiffrement permet ainsi à un premier système informatique 135 de transmettre des données de façon sécurisée à un second système informatique 140, via un canal de communication 120 non sécurisé, par exemple Internet.
Il est observé ici que le chiffrement symétrique est généralement facile à mettre en œuvre et nécessite des ressources moindres que celles nécessaires à la mise en œuvre d’un chiffrement asymétrique. Cependant, la transmission de la clé secrète présente une vulnérabilité non négligeable du procédé.
Comme illustré sur la figure 1 b, le chiffrement asymétrique nécessite la génération d’une clé de chiffrement, appelée clé publique, et d’une clé de déchiffrement appelée clé privée. Ainsi, pour qu’un premier système informatique 150 puisse recevoir des données de façon sécurisée d’un second système informatique 155, il doit tout d’abord générer deux clés correspondantes (étape 160), une clé publique kP et une clé privée ks.
La clé publique est transmise au second système informatique, via un canal de communication 165, qui peut l’utiliser pour chiffrer des données 170 (étape 175). Les données chiffrées 180 sont alors transmises au premier système informatique via le canal de communication 165 ou un autre (non représenté).
Le premier système informatique 150 utilise alors la clé privée ks (correspondant à la clé publique kP utilisée par le second système informatique 155) pour déchiffrer les données chiffrées reçues référencées 180’ (étape 185) afin d’obtenir des données référencées 170’ correspondant aux données initiales.
A nouveau, ce procédé de chiffrement/déchiffrement permet à un premier système informatique 150 de transmettre des données de façon sécurisée à un second système informatique 155. Cependant, si ce procédé de chiffrement asymétrique offre généralement une sécurité supérieure à celle d’un chiffrement symétrique, sa mise en œuvre nécessite plus de ressources.
Des procédés similaires peuvent être utilisés pour stocker des données de façon sécurisée.
Alors que les procédés décrits précédemment sont couramment utilisés, il existe un besoin constant d’amélioration, en particulier pour améliorer la sécurité de données transmises ou stockées.
L’invention permet de résoudre au moins un des problèmes exposés précédemment.
L’invention a ainsi pour objet un procédé de chiffrement ou déchiffrement d’un flux de données, le procédé comprenant les étapes suivantes,
- génération d’une liste de nombres pseudo-aléatoires ;
- création d’un flux de clés de chiffrement à partir de la liste de nombres pseudo-aléatoires générée ;
- pour chaque donnée du flux de données,
o sélection d’une clé de chiffrement dans le flux de clés créé selon un mécanisme de sélection prédéterminé et
o chiffrement ou déchiffrement de la donnée considérée à l’aide de la clé de chiffrement sélectionnée.
Le procédé selon l’invention permet ainsi d’améliorer la protection des données du flux de données tout en limitant les ressources nécessaires au chiffrement et/ou au déchiffrement de ces données.
Selon des modes de réalisation du procédé de chiffrement, le procédé comprend en outre, pour chaque donnée du flux de données, les étapes suivantes,
- création d’un ensemble comprenant la donnée considérée chiffrée ;
- sélection d’une seconde clé de chiffrement dans le flux de clés créé selon un second mécanisme de sélection prédéterminé, la sélection d’une clé de chiffrement dans le flux de clés créé selon un mécanisme de sélection prédéterminé consistant en la sélection d’une première clé de chiffrement dans le flux de clés créé selon un premier mécanisme de sélection prédéterminé, les premier et second mécanismes de sélection étant distincts ; et
- chiffrement de l’ensemble créé à l’aide de la seconde clé de chiffrement sélectionnée.
Selon des modes de réalisation du procédé de déchiffrement, le procédé comprend en outre, pour chaque donnée du flux de données, les étapes préalables suivantes,
- sélection d’une première clé de chiffrement dans le flux de clés créé selon un premier mécanisme de sélection prédéterminé, la sélection d’une clé de chiffrement dans le flux de clés créé selon un mécanisme de sélection prédéterminé consistant en la sélection d’une seconde clé de chiffrement dans le flux de clés créé selon un second mécanisme de sélection prédéterminé, les premier et second mécanismes de sélection étant distincts ; et
- déchiffrement d’un ensemble comprenant la donnée considérée chiffrée à l’aide de la première clé de chiffrement sélectionnée.
L’invention a également pour objet un procédé de transmission d’un flux de données chiffrées, le procédé comprenant les étapes préalables suivantes,
- génération d’une liste de nombres pseudo-aléatoires ;
- création d’un flux de clés de chiffrement à partir de la liste de nombres pseudo-aléatoires générée ;
- pour chaque donnée chiffrée du flux de données chiffrées,
o sélection d’une première clé de chiffrement dans le flux de clés créé selon un premier mécanisme de sélection prédéterminé ; o déchiffrement d’un ensemble comprenant la donnée considérée chiffrée à l’aide de la première clé de chiffrement sélectionnée ; o sélection d’une seconde clé de chiffrement dans le flux de clés créé selon un second mécanisme de sélection prédéterminé ; o chiffrement d’un ensemble comprenant la donnée considérée chiffrée à l’aide de la seconde clé de chiffrement sélectionnée. Le procédé selon l’invention permet ainsi d’améliorer la protection des données transmises tout en limitant les ressources nécessaires au chiffrement et/ou au déchiffrement de ces données.
Selon des modes de réalisation, le procédé comprend en outre une étape d’authentification suite à l’étape de déchiffrement d’un ensemble, l’étape d’authentification conditionnant l’exécution d’au moins une étape suivante.
Selon des modes de réalisation, le procédé comprend en outre une étape de sélection de nombres pseudo-aléatoires dans la liste de nombres pseudo-aléatoires générée pour créer le flux de clés de chiffrement.
Selon des modes de réalisation, le procédé comprend en outre une étape de décomposition de nombres pseudo-aléatoires de la liste de nombres pseudo-aléatoires générée pour créer le flux de clés de chiffrement.
Selon des modes de réalisation, un mécanisme de sélection utilise une valeur d’indice d’une clé précédemment sélectionnée.
Selon des modes de réalisation, un mécanisme de sélection utilise une valeur d’une clé précédemment sélectionnée.
L’invention a également pour objet un dispositif de chiffrement ou déchiffrement d’un flux de données comprenant une pluralité de générateurs de nombres pseudo-aléatoires, un module de sélection de nombres pseudo- aléatoires et un module de chiffrement ou déchiffrement, le dispositif étant caractérisé en ce que le module de sélection est connecté à chaque générateur de nombres pseudo-aléatoires de la pluralité de générateurs de nombres pseudo-aléatoires, un générateur de nombres pseudo-aléatoires sélectionnant des nombres pseudo-aléatoires générés par au moins un autre générateur de nombres pseudo-aléatoires pour générer une liste de clés de chiffrement, des clés de chiffrement distinctes de la liste de clés de chiffrement générée étant utilisées pour chiffrer ou déchiffrer des données du flux de données.
Le dispositif selon l’invention permet ainsi d’améliorer la protection des données du flux de données tout en limitant les ressources nécessaires au chiffrement et/ou au déchiffrement de ces données.
Selon des modes de réalisation, au moins un générateur de nombres pseudo-aléatoires de la pluralité de générateurs de nombres pseudo-aléatoires est un générateur chaotique de nombres pseudo-aléatoires, hyper-chaotique, pseudo-chaotique ou de type chaotique.
Selon des modes de réalisation, le dispositif comprend en outre un module de sélection de clés de chiffrement.
Selon des modes de réalisation, le dispositif comprend en outre un module de décomposition de nombres pseudo-aléatoires pour générer des clés de chiffrement dont la longueur est égale à la longueur des données à chiffrer ou à déchiffrer.
Selon des modes de réalisation, au moins un générateur de nombres pseudo-aléatoires de la pluralité de générateurs de nombres pseudo-aléatoires est implémenté de façon logicielle.
L’invention a également pour objet des programmes d’ordinateur comprenant des instructions adaptées à la mise en œuvre d’au moins certaines des étapes du procédé décrit précédemment lorsque lesdits programmes d’ordinateur sont exécutés sur un microcontrôleur. Les avantages procurés par ces programmes d’ordinateur sont similaires à ceux évoqués précédemment au regard du procédé.
D’autres avantages, buts et caractéristiques de la présente invention ressortent de la description détaillée qui suit, faite à titre d’exemple non limitatif, au regard des dessins annexés dans lesquels :
- la figure 1 , comprenant les figures 1a et 1 b, illustre le chiffrement symétrique et le chiffrement asymétrique, respectivement ;
- la figure 2 illustre schématiquement un système de chiffrement et déchiffrement selon certains modes de réalisation de l’invention ;
- la figure 3, comprenant les figures 3a à 3e, illustre des exemples de communications sécurisées entre deux éléments, ici entre deux dispositifs spécifiques, entre deux clients, entre un client et un dispositif spécifique et entre deux clients via un ou plusieurs dispositifs spécifiques ;
- la figure 4, comprenant les figures 4a à 4d, illustre des exemples de modules de chiffrement et de déchiffrement utilisant des générateurs chaotiques de nombres pseudo-aléatoires, hyper-chaotiques, pseudo- chaotiques ou de type chaotique ; - la figure 5 illustre une variante de générateur de clés pouvant être utilisé dans des modules de chiffrement et de déchiffrement ;
- la figure 6 illustre un exemple de sélection de clés dans une liste de clés possibles pour former un flux de clés à utiliser ;
- la figure 7 illustre schématiquement des étapes mises en œuvre dans un client léger ou un client lourd pour chiffrer des données à transmettre à un dispositif distant via un dispositif spécifique ;
- la figure 8 illustre schématiquement des étapes mises en œuvre dans un dispositif spécifique pour recevoir des données chiffrées d’un client léger ou un client lourd, directement ou via un dispositif spécifique, et les retransmettre à un client léger ou un client lourd, directement ou via un autre dispositif spécifique ;
- la figure 9 illustre schématiquement des étapes mises en œuvre dans un client léger ou un client lourd pour déchiffrer des données reçues ;
- la figure 10 illustre schématiquement un exemple de structure d’un paquet de données utilisé pour transmettre des données de façon sécurisée, conformément à certains modes de réalisation ;
- la figure 11 , comprenant les figures 11a et 11 b, illustre des exemples de mécanismes de chiffrement/déchiffrement pouvant être mis en œuvre pour transférer des données de façon sécurisée ;
- la figure 12, comprenant les figures 12a et 12b, illustre un exemple de mécanisme pour synchroniser l’utilisation de clés de chiffrement et de déchiffrement entre un émetteur et un récepteur ; et
- la figure 13 illustre un exemple d’architecture d’un dispositif spécifique ou d’un dispositif mettant en œuvre un client léger ou un client lourd.
De façon générale, l’invention a pour objet le chiffrement et le déchiffrement à la volée, par flot, de données, notamment à des fins de transmission et/ou de stockage. Une clé de chiffrement/déchiffrement distincte est de préférence utilisée pour chaque donnée élémentaire, par exemple pour chaque mot de n bits.
Selon certains modes de réalisation, le chiffrement et le déchiffrement sont basés sur un schéma symétrique sans transmission de clés, les clés étant générées de façon indépendante pour le chiffrement et le déchiffrement. Les générateurs de clés de chiffrement/déchiffrement sont alors identiques pour le chiffrement et le déchiffrement de telle sorte que des clés ayant le même indice dans les flux de clés générés soient identiques.
Toujours selon certains modes de réalisation particuliers, les clés de chiffrement/déchiffrement sont générées par des générateurs chaotiques de nombres pseudo-aléatoires, hyper-chaotiques, pseudo-chaotiques ou de type chaotique.
La figure 2 illustre schématiquement un système de chiffrement et déchiffrement selon certains modes de réalisation de l’invention.
Comme illustré, le système comprend ici un module de chiffrement 200 et un module de déchiffrement 205 permettant de chiffrer des données 210, les transmettre via un réseau de communication 215 non sécurisé et les déchiffrer après réception. Les modules 200 et 205 comprennent chacun un générateur de clés K et K , référencés 220 et 220’, respectivement. Ces générateurs sont ici similaires de telle sorte que la clé K générée par le générateur 220 (i.e. la /ème clé du flux de clés généré par le générateur 220) est égale à la clé K générée par le générateur 220’ (i.e. la /ème clé du flux de clés généré par le générateur 220’).
Les données à transmettre sont ici décomposées en données élémentaires ordonnées.
Chaque donnée élémentaire est chiffrée par le module de chiffrement 200, selon l’ordre des données élémentaires, à l’aide d’une fonction de chiffrement 225, de préférence avec une clé de chiffrement particulière. Ainsi, à titre d’exemple, la donnée c/, référencée 210-i, est chiffrée à l’aide de la clé de chiffrement Ki, la donnée di+i à l’aide de la clé KM et ainsi de suite. Les données chiffrées 230, en particulier la donnée chiffrée 230-i correspondant à la donnée 210-i, sont transmises au module de déchiffrement 205 via le réseau de communication 215.
Ces données chiffrées sont ici transmises de façon ordonnée ou avec une indication d’ordre telle qu’un numéro de paquet. Après avoir été réordonnées, le cas échéant, les données chiffrées 230’ reçues par le module de déchiffrement 205, similaires aux données chiffrées 230 transmises par le module de chiffrement 200 aux erreurs de transmission près, sont déchiffrées dans le module de déchiffrement 205. Chaque donnée est déchiffrée avec une clé correspondant à celle utilisée pour le chiffrement, de façon symétrique, à l’aide d’une fonction de déchiffrement 235. Ainsi, toujours à titre d’exemple, la donnée d’i, référencée 230’-i, est déchiffrée à l’aide de la clé de déchiffrement K , la donnée Ô’M à l’aide de la clé K’i+i et ainsi de suite. Les données déchiffrées référencées 210’ sont ainsi similaires aux données non chiffrées 210, en particulier la donnée déchiffrée 210’-i est similaire à la donnée non chiffrée 210-i.
Comme illustré avec la flèche 240, une synchronisation est ici nécessaire entre le module de chiffrement 200 et le module de déchiffrement 205 pour que la clé de déchiffrement utilisée pour déchiffrer une donnée corresponde à la clé de chiffrement utilisée pour chiffrer cette donnée.
Selon un mode de réalisation particulier, les données et les clés sont ordonnées et les clés sont utilisées de façon systématique, l’une après l’autre pour chiffrer et déchiffrer les données. En cas d’erreur de transmission, une donnée manquante est (re)demandée pour permettre la poursuite du déchiffrement.
Selon un autre mode de réalisation particulier, un indice de clé est associé à chaque donnée chiffrée de telle sorte que le module de déchiffrement utilisé puisse retrouver la clé permettant de déchiffrer la donnée correspondante.
Dans un autre mode de réalisation encore, une ou plusieurs données d’initialisation ainsi qu’un mécanisme de calcul d’indices, pseudo-aléatoire ou non, sont connus du module de chiffrement et du module de déchiffrement pour permettre la détermination d’un indice de clé à chaque donnée à chiffrer ou à déchiffrer. Un indice de clé est, par exemple, la position de la clé dans une liste de clés générées.
La figure 3, comprenant les figures 3a à 3e, illustre des exemples de communications sécurisées entre deux éléments, ici entre deux dispositifs spécifiques (génériquement référencés 300), entre deux clients (génériquement référencés 305), entre un client et un dispositif spécifique et entre deux clients via un ou plusieurs dispositifs spécifiques.
Les dispositifs spécifiques sont par exemple des serveurs de relais et sont notamment pourvus d’éléments matériels spécifiques, typiquement un ou plusieurs générateurs de nombres pseudo-aléatoires, par exemple des générateurs chaotiques de nombres pseudo-aléatoires, hyper-chaotiques, pseudo-chaotiques ou de type chaotique.
Les clients sont typiquement des clients dits légers, par exemple des applications mises en œuvre dans des téléphones intelligents (smartphones), sans utiliser d’élément matériel spécifique. Des clients dits lourds sont des applications reliées de façon sécurisée à des dispositifs spécifiques, utilisant des éléments matériels spécifiques.
Plus précisément, la figure 3a illustre un exemple de communications sécurisées entre deux dispositifs spécifiques tandis que la figure 3b illustre un exemple de communications sécurisées entre deux clients et que la figure 3c illustre un exemple de communications sécurisées entre un client et un dispositif spécifique.
Les figures 3d et 3e illustrent des exemples de communications sécurisées entre deux clients via un et deux dispositifs spécifiques, respectivement. Dans une telle configuration, le système peut être configuré de telle sorte que le ou les dispositifs spécifiques ne puissent déchiffrer les données échangées entre les clients.
Ainsi, par exemple, concernant le schéma illustré sur la figure 3d, le client 305-1 peut chiffrer des données à l’aide d’une première clé Kx, connue des clients 305-1 et 305-2 mais inconnue du dispositif spécifique 300-1 puis chiffrer ces données à l’aide d’une clé KM connue du client 305-1 et du dispositif spécifique 300-1. Lorsque ces données sont reçues par le dispositif spécifique 300-1 , elles sont déchiffrées à l’aide de la clé KM (sans être compréhensibles car toujours chiffrées à l’aide de la clé Kx) puis chiffrées à l’aide d’une clé KAΊ connue du dispositif spécifique 300-1 et du client 305-2. Lorsque ces données sont reçues par le client 305-2, elles sont déchiffrées à l’aide de la clé KAΊ puis à l’aide de la clé KXÎ pour être compréhensibles.
Selon d’autres configurations encore (non représentées), une communication sécurisée peut être établie entre un client et un dispositif spécifique via un ou plusieurs autres dispositifs spécifiques.
La figure 4, comprenant les figures 4a à 4d, illustre des exemples de modules de chiffrement et de déchiffrement utilisant des générateurs chaotiques de nombres pseudo-aléatoires, hyper-chaotiques, pseudo- chaotiques ou de type chaotique.
La figure 4a illustre par exemple un module de chiffrement d’un dispositif spécifique tandis que la figure 4b illustre un module de déchiffrement correspondant d’un dispositif spécifique.
Comme illustré sur la figure 4a, le générateur de clés 220 comprend un ensemble de générateurs chaotiques de nombres pseudo-aléatoires, hyper- chaotiques, pseudo-chaotiques ou de type chaotique, génériquement référencés G. Plus précisément, cet ensemble comprend n générateurs ( Gi à Gn) de nombres pseudo-aléatoires utilisés comme générateurs de clés. Les sorties de ces générateurs sont reliées à un module de sélection 400.
Le générateur de clés 220 comprend en outre un générateur de nombres pseudo-aléatoires Gs utilisé pour sélectionner une sortie d’un des générateurs de nombres pseudo-aléatoires Gi à Gn à l’aide du module de sélection 400.
Le générateur de nombres pseudo-aléatoires Gs est par exemple un générateur chaotique de nombres pseudo-aléatoires, hyper-chaotique, pseudo- chaotique ou de type chaotique dont une entrée est définie par un paramètre d’initialisation.
Selon des modes de réalisation particuliers, un test est effectué dans le module de sélection 400 pour interdire la sélection d’un nombre aléatoire dont la valeur est proche de celle d’un nombre aléatoire préalablement sélectionné. En d’autres termes, le module de sélection 400 peut comparer la différence entre un nombre aléatoire préalablement sélectionné et un nombre aléatoire potentiellement sélectionné à un seuil prédéterminé afin de vérifier que deux nombres aléatoires successifs parmi les nombres aléatoires sélectionnés ont des valeurs dont la différence est supérieure à un seuil prédéterminé.
Comme illustré, les générateurs de nombres pseudo-aléatoires Gi à Gn sont ici connectés en cascade de telle sorte qu’une ou plusieurs entrées d’un générateur de nombres pseudo-aléatoires soient reliées à une ou plusieurs sorties d’un autre générateur de nombres pseudo-aléatoires, à l’exception d’un générateur de nombres pseudo-aléatoires dont l’entrée ou les entrées sont définies par un ou plusieurs paramètres d’initialisation (ici le générateur de nombres pseudo-aléatoires Gn).
Toujours selon un mode de réalisation particulier, la sortie du module de sélection 400 est reliée à l’entrée d’un module de décomposition 405 permettant de décomposer les nombres pseudo-aléatoires générés par les générateurs de nombres pseudo-aléatoires Gi à Gn en clés dont la longueur correspond à celle des données à chiffrer. Cette longueur peut être fixe ou variable. L’utilisation de clés ayant la même longueur que les données à chiffrer permet notamment une optimisation des ressources nécessaires au chiffrement.
A titre d’illustration, si les nombres pseudo-aléatoires générés par les générateurs de nombres pseudo-aléatoires Gi à Gn sont codés sur 256 bits, chaque nombre pseudo-aléatoire peut être décomposé en une clé de 256 bits, en deux clés de 128 bits, en quatre clés de 64 bits, en 8 clés de 32 bits, en 16 clés de 16 bits ou en 32 clés de 8 bits. D’autres décompositions sont bien entendu possibles.
Le générateur de clés 220 produit ainsi un flot ordonné de clés qui sont transmises à un module de chiffrement 225 pour chiffrer des données.
Selon un mode de réalisation particulièrement simple, la /ème clé du flot de clés est utilisée pour chiffrer la /ème donnée du flux de données à chiffrer.
Le générateur de clés 220’ illustré sur la figure 4b est similaire au générateur de clés 220 illustré sur la figure 4a afin que ces générateurs de clés génèrent des flots de clés identiques. Le générateur de clés 220’ comprend donc un ensemble de générateurs chaotiques de nombres pseudo-aléatoires, hyper-chaotiques, pseudo-chaotiques ou de type chaotique, génériquement référencés G’. Cet ensemble comprend n générateurs ( G’i à G’n) de nombres pseudo-aléatoires utilisés comme générateurs de clés. Les sorties de ces générateurs sont reliées à un module de sélection 450.
Le générateur de clés 220’ comprend en outre un générateur de nombres pseudo-aléatoires G’s utilisé pour sélectionner une sortie d’un des générateurs de nombres pseudo-aléatoires à l’aide du module de sélection 450.
A nouveau, le générateur de nombres pseudo-aléatoires G’s est par exemple un générateur chaotique de nombres pseudo-aléatoires, hyper- chaotique, pseudo-chaotique ou de type chaotique dont une entrée est définie par un paramètre d’initialisation.
Les générateurs de nombres aléatoires G’i à G’n sont connectés en cascade de telle sorte qu’une ou plusieurs entrées d’un générateur de nombres pseudo-aléatoires soient reliées à une ou plusieurs sorties d’un autre générateur de nombres pseudo-aléatoires, à l’exception d’un générateur de nombres pseudo-aléatoires dont une ou plusieurs entrées sont définies par un ou plusieurs paramètres d’initialisation (ici le générateur de nombres pseudo- aléatoires G’n).
Toujours selon un mode de réalisation particulier, la sortie du module de sélection 450 est reliée à l’entrée d’un module de décomposition 455 permettant de décomposer les nombres pseudo-aléatoires générés par les générateurs de nombres pseudo-aléatoires G’i à G’n en clés dont la longueur correspond à celle des données à déchiffrer. A nouveau, cette longueur peut être fixe ou variable, l’utilisation de clés ayant la même longueur que les données à chiffrer permettant une optimisation des ressources nécessaires au chiffrement.
Le générateur de clés 220’ produit ainsi un flot ordonné de clés qui sont transmises à un module de déchiffrement 235 pour déchiffrer des données chiffrées reçues. Selon un mode de réalisation très simple, la /ème clé du flot de clés est utilisée pour déchiffrer la /®me donnée élémentaire chiffrée d’un flux de données élémentaires chiffrées.
Les valeurs d’initialisation et de paramétrage du générateur de clés 220’ illustré sur la figure 4b sont les mêmes que celles du générateur de clés 220 illustré sur la figure 4a. De telles valeurs peuvent être prédéterminées et mémorisées localement ou déterminées lors de l’établissement d’un lien de communication.
Selon un mode de réalisation particulier, le premier générateur de nombres pseudo-aléatoires ( Gi et G’i) est un module logiciel. Celui-ci peut être utilisé seul, par exemple lorsqu’une communication sécurisée doit être établie avec un client léger (e.g. entre un client léger et un dispositif spécifique). Dans ce cas, les générateurs de nombres pseudo-aléatoires G2 à Gn, s’ils existent, ne sont pas utilisés. De même, lorsqu’un générateur de clés correspondant au générateur de clés 220 est mis en œuvre dans un client léger, les générateurs de nombres pseudo-aléatoires G2 à Gn ne sont pas implémentés. En outre, dans ce cas, le générateur de nombres pseudo-aléatoires utilisé pour sélectionner une sortie d’un générateur de nombres pseudo-aléatoires à l’aide d’un module de sélection peut être mis en œuvre de façon logicielle. Il est également observé ici que lorsque les générateurs de nombres pseudo- aléatoires G2 à Gn ne sont pas utilisés, c’est le premier générateur de nombres pseudo-aléatoires ( G1 ) qui est initialisé (pour assurer une correspondance entre les flux de clés générés dans les modules de chiffrement et de déchiffrement).
L’utilisation des générateurs de nombres pseudo-aléatoires G2 à Gn peut être prédéfinie (par exemple selon la nature des équipements devant communiquer) ou peut être définie de façon dynamique, par exemple à l’aide d’un indicateur dans les données transmises.
La figure 4c illustre un module de chiffrement d’un dispositif spécifique tandis que la figure 4d illustre un module de déchiffrement correspondant d’un client léger.
Le générateur de clés 220” illustré sur la figure 4c est similaire au générateur de clés 220 illustré sur la figure 4a cependant, comme illustré, les générateurs de nombres pseudo-aléatoires G2 à Gn ne sont pas utilisés. En outre, c’est le générateur G1 qui est initialisé.
Le générateur de clés 220’” illustré sur la figure 4d est ici mis en œuvre dans un client léger. Il ne comprend donc qu’un générateur de nombres pseudo-aléatoires G”’i dont les valeurs sont utilisées pour générer des clés et un générateur de nombres pseudo-aléatoires G’”s utilisé pour sélectionner, à l’aide du module de sélection 450’, une sortie du générateur de nombres pseudo-aléatoires dont les valeurs sont utilisées pour générer des clés.
Ces deux générateurs de nombres pseudo-aléatoires sont ici implémentés de façon logicielle.
La figure 5 illustre une variante de générateur de clés pouvant être utilisé dans des modules de chiffrement et de déchiffrement. Selon ce mode de réalisation, les clés générées ne sont pas utilisées de façon systématique et chronologique mais de façon aléatoire.
Comme illustré, le générateur de clés 500 comprend notamment un ensemble ( G”i à G”n ) de n générateurs chaotiques de nombres pseudo- aléatoires (hyper-chaotiques, pseudo-chaotiques ou de type chaotique), un premier module de sélection 505 et un module de décomposition 510 permettant de décomposer les nombres pseudo-aléatoires générés, comme les générateurs de clés 220 et 220’ illustrés sur les figures 4a et 4b, respectivement.
Le générateur de clés 500 comprend en outre un générateur d’indices 515 et un second module de sélection 520.
Le générateur d’indices 515 est notamment relié au module de décomposition 510 afin d’associer un indice, typiquement un numéro d’ordre à chaque clé générée. Selon un mode de réalisation particulièrement simple, la première clé générée est associée à l’indice 1 , la seconde à l’indice 2 et ainsi de suite.
Le second module de sélection 520 a pour objet de sélectionner la prochaine clé devant être utilisée pour chiffrer ou déchiffrer une donnée élémentaire. Cette sélection est ici basée sur les indices des clés. Selon un mode de réalisation particulier, la première sélection est effectuée selon une variable d’initialisation (prédéterminée ou déterminée lors de l’établissement d’un lien de communication) et une sélection suivante est effectuée en fonction de l’indice de la clé courante et de la clé courante. A titre d’illustration, l’indice de la prochaine clé ( indice_cléi+i ) est égal à la somme de l’indice de la clé courante ( indice_cléi ) avec la valeur de la clé courante (clé) :
indice_cléi+1 = indice_clêi + cléi
Les clés sélectionnées sont transmises sous forme de flux de clés pour chiffrer ou déchiffrer les données élémentaires (le même générateur de clés 500 doit être utilisé pour le chiffrement et le déchiffrement, avec les mêmes paramètres d’initialisation).
La figure 6 illustre un exemple de sélection de clés dans une liste de clés possibles pour former un flux de clés à utiliser.
Selon l’exemple illustré, l’indice d’initialisation ( indice_cléi ) est égal à i+3. Ainsi, la première clé ( Ki ) est la clé ayant l’indice i+3. Pour trouver l’indice de la clé suivante ( indice_clé2 ), l’indice i+3 est ajouté à la valeur de la clé Ki. Il est supposé ici que le résultat est égal à j+2. La seconde clé ( K2 ) est ainsi la clé ayant l’indice j+2. A nouveau, pour trouver l’indice de la clé suivante ( indice_clé3 ), l’indice j+2 est ajouté à la valeur de la clé K2. Il est supposé ici que le résultat est égal à k+3. La troisième clé ( K3 ) est ainsi la clé ayant l’indice k+3. A nouveau, pour trouver l’indice de la clé suivante ( indice_clé4 ), l’indice k+3 est ajouté à la valeur de la clé K3. Il est supposé ici que le résultat est égal à /. La quatrième clé (K ) est ainsi la clé ayant l’indice /. Le processus se poursuit ainsi tant que des clés sont nécessaires.
La figure 7 illustre schématiquement des étapes mises en œuvre dans un client léger ou un client lourd pour chiffrer des données à transmettre à un dispositif distant via un dispositif spécifique.
Comme illustré, une première étape a ici pour objet la réception d’un flux de données à chiffrer (étape 700). Il est observé qu’une étape de décomposition des données peut être nécessaire si les données reçues ne sont pas élémentaires (c’est-à-dire si des données reçues n’ont pas une longueur inférieure ou égale à la taille maximale des clés de chiffrement/déchiffrement). Parallèlement, un flux de clés est généré (étape 705). Le générateur de clés utilisé pour générer ce flux est par exemple le générateur de clés 220 illustré sur la figure 4a ou le générateur de clés 500 illustré sur la figure 5.
Il est observé ici que le processus décrit en référence à la figure 7 utilise un double chiffrement avec deux jeux de clés distincts. Ces jeux de clés peuvent être issus d’un même flux de clés ou de deux flux différents. Si les deux jeux de clés sont issus du même flux de clés, les mécanismes de sélection de clés sont, de préférence, distincts.
Dans une étape suivante, une première donnée du flux de données à chiffrer est sélectionnée pour être chiffrée (étape 710).
Parallèlement, une première clé du flux de clés est sélectionnée en utilisant un premier mécanisme de sélection (étape 715).
La donnée sélectionnée est alors chiffrée à l’aide de la première clé sélectionnée (étape 720). Un algorithme de chiffrage standard bit à bit peut être utilisé. Il peut s’agir, par exemple, d’une disjonction exclusive (fonction XOR).
Selon la taille de la donnée élémentaire chiffrée, celle-ci est assemblée avec une ou plusieurs autres données chiffrées ou traitée seule. Le traitement de la donnée élémentaire chiffrée, seule ou agrégée avec d’autres, consiste tout d’abord à créer un ensemble comprenant la ou les données élémentaires chiffrées ainsi qu’un en-tête (étape 725). Comme décrit en référence à la figure 10, ce dernier peut comprendre des informations relatives au chiffrement/déchiffrement.
Dans une étape suivante, une signature de l’ensemble comprenant la ou les données chiffrées ainsi qu’un en-tête est, de préférence, calculée (étape 730). Une telle signature, calculée de façon standard, permet d’effectuer un contrôle d’intégrité et/ou d’authentification lors de la réception de l’ensemble de données et détecter, le cas échéant, une erreur de transmission.
La signature calculée et l’ensemble comprenant la ou les données chiffrées ainsi qu’un en-tête sont alors encapsulés dans un paquet de données (étape 735).
Dans une étape suivante, une seconde clé du flux de clés est sélectionnée en utilisant un second mécanisme de sélection (étape 740). Le paquet de données préalablement créé est alors chiffré à l’aide de la seconde clé sélectionnée (étape 745) et le paquet chiffré est transmis (étape 750). A nouveau, un algorithme de chiffrage standard peut être utilisé. La transmission du paquet chiffré utilise par exemple un protocole de communication standard.
L’algorithme retourne alors aux étapes 710 et 715 pour, le cas échéant, chiffrer et transmettre des données élémentaires du flux de données élémentaires non transmises.
A titre d’illustration, le premier et le second mécanismes de sélection de clés peuvent consister en un mécanisme de sélection séquentielle de clés dans un flux de clés à partir d’un indice prédéterminé, comme décrit en référence à la figure 4a, ou un mécanisme plus complexe comme décrit en référence à la figure 5. Ces mécanismes peuvent être identiques ou distincts.
Il est observé ici que dans certaines applications, par exemple des applications de téléphonie utilisant un réseau de communication de données, les étapes de chiffrement/déchiffrement des paquets (e.g. les étapes 740 et 745) peuvent être ignorées pour alléger le processus.
La figure 8 illustre schématiquement des étapes mises en œuvre dans un dispositif spécifique pour recevoir des données chiffrées d’un client léger ou un client lourd, directement ou via un dispositif spécifique, et les retransmettre à un client léger ou un client lourd, directement ou via un autre dispositif spécifique.
Le processus décrit ici vise le traitement de données reçues, chiffrées selon un double chiffrement, afin de les déchiffrer partiellement et les rechiffrer pour améliorer la sécurité de leur transmission.
Comme illustré, une première étape a ici pour objet la réception d’un flux de paquets comprenant des données chiffrées (étape 800). Parallèlement, un flux de clés est généré (étape 705’). Ce flux de clés est le même que celui généré à l’étape 705 dans la figure 7.
Dans une étape suivante, un premier paquet du flux de paquets comprenant des données chiffrées est sélectionné pour être partiellement déchiffré (étape 805). Parallèlement, une première clé du flux de clés est sélectionnée en utilisant un premier mécanisme de sélection (étape 810). Ce premier mécanisme de sélection de clés est identique au second mécanisme de sélection de clés décrit en référence à la figure 7 (étape 740).
Le paquet sélectionné est alors déchiffré à l’aide de la première clé sélectionnée (étape 815). L’algorithme de déchiffrage correspond à l’algorithme de chiffrage utilisé, décrit en référence à la figure 7 (étape 745). Ce déchiffrement permet l’obtention d’une signature et d’un ensemble comprenant une ou plusieurs données chiffrées ainsi qu’un en-tête.
Dans une étape suivante, une signature de l’ensemble comprenant la ou les données chiffrées ainsi qu’un en-tête est, de préférence, calculée (étape 820).
La signature calculée est alors comparée avec la signature déchiffrée pour authentifier le paquet sélectionné et vérifier son intégrité (étape 825). Si une erreur de transmission est détectée, une nouvelle copie du paquet est demandée au dispositif à l’origine du paquet sélectionné.
Dans le cas contraire, si le paquet sélectionné est authentifié et intègre, une seconde clé du flux de clés est sélectionnée en utilisant un second mécanisme de sélection (étape 830).
Le paquet de données préalablement partiellement déchiffré est alors chiffré à l’aide de la seconde clé sélectionnée (étape 783) et le paquet chiffré est transmis (étape 840). A nouveau, la transmission du paquet chiffré peut être basée sur un protocole de communication standard.
L’algorithme retourne alors aux étapes 805 et 810 pour, le cas échéant, traiter un paquet suivant non traité du flux de paquets de données reçu.
A nouveau, le premier et le second mécanismes de sélection de clés peuvent consister en un mécanisme de sélection séquentielle de clés dans un flux de clés à partir d’un indice prédéterminé, comme décrit en référence à la figure 4a, ou un mécanisme plus complexe comme décrit en référence à la figure 5. Ces mécanismes peuvent être identiques ou distincts. La figure 9 illustre schématiquement des étapes mises en œuvre dans un client léger ou un client lourd pour déchiffrer des données reçues.
Comme illustré, une première étape a ici pour objet la réception d’un flux de paquets comprenant des données chiffrées (étape 900). Parallèlement, un flux de clés est généré (étape 705”). Ce flux de clés est le même que celui généré à l’étape 705 dans la figure 7.
Dans une étape suivante, un premier paquet du flux de paquets comprenant des données chiffrées est sélectionné pour être déchiffré (étape 905).
Parallèlement, une première clé du flux de clés est sélectionnée en utilisant un premier mécanisme de sélection (étape 910). Ce premier mécanisme de sélection de clés est identique au second mécanisme de sélection de clés décrit en référence à la figure 8 (étape 830).
Le paquet sélectionné est alors déchiffré à l’aide de la première clé sélectionnée (étape 915). L’algorithme de déchiffrage correspond à l’algorithme de chiffrage utilisé, décrit en référence à la figure 8 (étape 835). Ce déchiffrement permet l’obtention d’une signature et d’un ensemble comprenant une ou plusieurs données chiffrées ainsi qu’un en-tête.
Dans une étape suivante, une signature de l’ensemble comprenant la ou les données chiffrées ainsi qu’un en-tête est, de préférence, calculée (étape 920).
La signature calculée est alors comparée avec la signature déchiffrée pour authentifier le paquet sélectionné et vérifier son intégrité (étape 925). Si une erreur de transmission est détectée, une nouvelle copie du paquet est demandée au dispositif à l’origine du paquet sélectionné.
Dans le cas contraire, si le paquet sélectionné est authentifié et intègre, une seconde clé du flux de clés est sélectionnée en utilisant un second mécanisme de sélection (étape 930). Ce second mécanisme de sélection de clés est identique au premier mécanisme de sélection de clés décrit en référence à la figure 7 (étape 720). L’ensemble comprenant une ou plusieurs données chiffrées ainsi qu’un en-tête est alors déchiffré à l’aide de la seconde clé sélectionnée (étape 935) pour obtenir une ou plusieurs données déchiffrées ainsi qu’un en-tête.
L’algorithme retourne alors aux étapes 905 et 910 pour, le cas échéant, traiter un paquet suivant non traité du flux de paquets de données reçu.
A nouveau, le premier et le second mécanismes de sélection de clés peuvent consister en un mécanisme de sélection séquentielle de clés dans un flux de clés à partir d’un indice prédéterminé, comme décrit en référence à la figure 4a, ou un mécanisme plus complexe comme décrit en référence à la figure 5. Ces mécanismes peuvent être identiques ou distincts.
La figure 10 illustre schématiquement un exemple de structure d’un paquet de données utilisé pour transmettre des données de façon sécurisée, conformément à certains modes de réalisation.
Comme illustré, la structure 1000 du paquet comprend ici trois parties. La première partie, référencée 1005, correspond aux données à transmettre tandis que la deuxième partie, référencée 1010, correspond à l’en- tête et que la troisième partie, référencée 1015, correspond à la signature (ou empreinte numérique).
Les première et deuxième parties sont ici chiffrées selon un premier niveau de chiffrement selon lequel seuls l’émetteur et le destinataire peuvent déchiffrer ces données.
Les première et la deuxième parties chiffrées ainsi que la signature sont, de préférence, chiffrées selon un second niveau de chiffrement selon lequel seules deux entités directement liées l’une à l’autre peuvent déchiffrer partiellement ces données. Ces deux entités sont, par exemple, un client léger et un dispositif spécifique ou deux dispositifs spécifiques.
Selon des modes de réalisation particuliers, l’en-tête comprend plusieurs indications parmi lesquelles une indication d’acquittement. De telles indications peuvent par exemple préciser que l’un des dispositifs est un client léger et que, par conséquent, seul un générateur de nombre pseudo-aléatoire doit être utilisé (comme décrit en référence aux figures 4c et 4d). De telles indications peuvent également préciser un type d’application, par exemple la voix sur IP (ou VoIP, sigle de Voice over Internet Protocol en terminologie anglo-saxonne), pour laquelle un traitement particulier peut être appliqué, par exemple l’absence de mécanisme d’acquittement (dans le cas d’une application de type VoIP, il n’est pas nécessaire d’utiliser un mécanisme d’acquittement, une réinitialisation du canal de communication étant nécessaire en cas de coupure réseau).
Comme décrit en référence à la figure 12, une indication d’acquittement peut être utilisée pour décider de la retransmission de paquets non reçus par le destinataire ou comprenant des erreurs.
La figure 11 , comprenant les figures 11 a et 11 b, illustre des exemples de mécanismes de chiffrement/déchiffrement pouvant être mis en œuvre pour transférer des données de façon sécurisée.
La configuration illustrée sur la figure 11a permet le transfert de données de façon sécurisée entre trois clients 1100-1 à 1100-3 via un dispositif spécifique 1105. A ces fins, quatre jeux de clés sont utilisés.
Un premier jeu de clés notées Ka permet de chiffrer les données à transmettre selon un premier niveau de chiffrement. Ces clés ne sont identifiables que par les clients 1100-1 à 1100-3 de telle sorte que le dispositif spécifique 1105 ne puisse pas les déterminer et donc ne puisse pas déchiffrer les données.
Un deuxième jeu de clés notées KDH permet de chiffrer des données préalablement chiffrées avec les clés Ka, offrant ainsi un second niveau de chiffrement. Ces clés ne sont identifiables que par le client 1100-1 et le dispositif spécifique 1105 de telle sorte qu’un autre dispositif qui serait relié au même réseau de communication ne puisse pas les déterminer et donc ne puisse pas déchiffrer les données.
De la même façon, un troisième jeu de clés notées KD2Î permet de chiffrer des données préalablement chiffrées avec les clés Ka, offrant ainsi un second niveau de chiffrement. Ces clés ne sont identifiables que par le client 1100-2 et le dispositif spécifique 1105 de telle sorte qu’un autre dispositif qui serait relié au même réseau de communication ne puisse pas les déterminer et donc ne puisse pas déchiffrer les données.
De la même façon encore, un quatrième jeu de clés notées KD3Î permet de chiffrer des données préalablement chiffrées avec les clés Ka, offrant ainsi un second niveau de chiffrement. Ces clés ne sont identifiables que par le client 1100-3 et le dispositif spécifique 1105 de telle sorte qu’un autre dispositif qui serait relié au même réseau de communication ne puisse pas les déterminer et donc ne puisse pas déchiffrer les données.
La configuration illustrée sur la figure 11 b permet le transfert de données de façon sécurisée entre deux clients 1100-1 et 1100-2 via un dispositif spécifique 1105 et entre deux clients 1100-2 et 1100-3 via un dispositif spécifique 1105. A ces fins, cinq jeux de clés sont utilisés.
Un premier jeu de clés notées Ken permet de chiffrer les données à transmettre selon un premier niveau de chiffrement. Ces clés ne sont identifiables que par les clients 1100-1 et 1100-2 de telle sorte que le client
1100-3 et le dispositif spécifique 1105 ne puissent pas les déterminer et donc ne puissent pas déchiffrer les données.
Un deuxième jeu de clés notées Kc2i permet de chiffrer les données à transmettre selon un premier niveau de chiffrement. Ces clés ne sont identifiables que par les clients 1100-2 et 1100-3 de telle sorte que le client
1100-1 et le dispositif spécifique 1105 ne puissent pas les déterminer et donc ne puissent pas déchiffrer les données.
Un troisième jeu de clés notées KDH permet de chiffrer des données préalablement chiffrées avec les clés Ken, offrant ainsi un second niveau de chiffrement. Ces clés ne sont identifiables que par le client 1100-1 et le dispositif spécifique 1105 de telle sorte qu’un autre dispositif qui serait relié au même réseau de communication ne puisse pas les déterminer et donc ne puisse pas déchiffrer les données.
De la même façon, un quatrième jeu de clés notées KD2 permet de chiffrer des données préalablement chiffrées avec les clés Ken ou Kc2i, offrant ainsi un second niveau de chiffrement. Ces clés ne sont identifiables que par le client 1100-2 et le dispositif spécifique 1105 de telle sorte qu’un autre dispositif qui serait relié au même réseau de communication ne puisse pas les déterminer et donc ne puisse pas déchiffrer les données.
De la même façon encore, un cinquième jeu de clés notées KD3Î permet de chiffrer des données préalablement chiffrées avec les clés Kc2i, offrant ainsi un second niveau de chiffrement. Ces clés ne sont identifiables que par le client 1100-3 et le dispositif spécifique 1105 de telle sorte qu’un autre dispositif qui serait relié au même réseau de communication ne puisse pas les déterminer et donc ne puisse pas déchiffrer les données.
Le choix des paramètres d’initialisation qui définissent les jeux de clés peut être déterminé de différentes façons. Il peut notamment être effectué de façon manuelle par les utilisateurs qui se mettent d’accord sur les paramètres d’initialisation à utiliser ou de façon automatique à partir des identifiants des clients et des dispositifs spécifiques (un jeu de paramètres d’initialisation peut être prédéterminé et associé à chaque couple émetteur/récepteur).
La figure 12, comprenant les figures 12a et 12b, illustre un exemple de mécanisme pour synchroniser l’utilisation de clés de chiffrement et de déchiffrement entre un émetteur et un récepteur. Les étapes illustrées sur la figure 12a sont mises en œuvre dans l’émetteur tandis que les étapes illustrées sur la figure 12b sont mises en œuvre dans le récepteur.
Comme illustré sur la figure 12a, une première étape (étape 1200) a pour objet la sélection d’une clé K, le chiffrement d’une donnée à l’aide de la clé K, et la création d’un message M/ comprenant la donnée chiffrée.
Le message créé est ensuite transmis (étape 1205) avec un indicateur d’acquittement ayant une première valeur, par exemple 0, pour indiquer que ce message n’est pas une réponse à un message précédent.
L’émetteur attend ensuite la réception d’un message de réponse du récepteur au message Mi précédemment émis (étape 1210). Un indicateur d’acquittement ayant une seconde valeur, par exemple 1 , est associé au message de réponse référencé M’i pour indiquer que ce dernier fait suite à un message reçu. Après un temps prédéterminé # suivant l’émission du message M et en l’absence de réception d’un message de réponse, le message Mi est réémis (étapes 1215 et 1205).
Si le message M’i est reçu avec l’indicateur d’acquittement ayant la seconde valeur, la variable / est incrémentée (étape 1220) et l’algorithme retourne à l’étape 1200 pour sélectionner une nouvelle clé, chiffrer la donnée élémentaire suivante et la transmettre.
Comme illustré sur la figure 12b, suite à la réception d’un message Mi associé à un indicateur d’acquittement ayant une première valeur (étape 1250), par exemple 0, indiquant que ce message n’est pas une réponse à un message précédent, un message de réponse M’i est transmis avec un indicateur d’acquittement ayant une seconde valeur, par exemple 1 , pour indiquer que ce dernier fait suite à un message reçu (étape 1255).
Le message reçu est ensuite traité (étape 1260). Il peut également être traité en parallèle, par exemple pour qu’un message de réponse ne soit transmis, avec un indicateur d’acquittement, que si le message reçu correspondant est intègre et authentifié.
La figure 13 illustre un exemple d’architecture d’un dispositif spécifique ou d’un dispositif mettant en œuvre un client léger ou un client lourd.
Le dispositif 1300 comporte de préférence un bus de communication 1302 auquel sont reliés :
- une unité centrale de traitement ou microprocesseur 1304 (CPU, sigle de Central Processing Unit en terminologie anglo-saxonne) ;
- une mémoire morte 1306 (ROM, acronyme de Read Only Memory en terminologie anglo-saxonne) pouvant comporter un système d’exploitation et des programmes tels que "Prog" ;
- une mémoire vive ou mémoire cache 1308 (RAM, acronyme de Random Access Memory en terminologie anglo-saxonne) comportant des registres adaptés à enregistrer des variables et paramètres créés et modifiés au cours de l'exécution des programmes précités ; et
- une interface de communication 1310 reliée à un réseau de communication distribué 1312, par exemple un réseau de communication sans fil et/ou un réseau de communication filaire, l'interface étant apte à transmettre et à recevoir des données, notamment vers ou depuis un autre module et/ou vers ou depuis un ordinateur, une tablette ou un téléphone intelligent (smartphone).
Optionnellement, le dispositif 1300 peut également disposer des éléments suivants :
- une interface d’entrée/sortie 1314 ; et/ou
- un lecteur 1316 de support amovible de stockage 1318 tel qu’une carte mémoire.
Le bus de communication permet la communication et l'interopérabilité entre les différents éléments inclus dans le dispositif 1300 ou reliés à lui. La représentation du bus n'est pas limitative et, notamment, l'unité centrale est susceptible de communiquer des instructions à tout élément du dispositif 1300 directement ou par l'intermédiaire d'un autre élément du dispositif 1300.
Le code exécutable de chaque programme permettant à l'appareil programmable de mettre en œuvre les processus selon l'invention peut être stocké, par exemple, dans la mémoire morte 1306.
Selon une variante, le code exécutable des programmes pourra être reçu par l'intermédiaire du réseau de communication 1312, via l'interface 1310, pour être stocké de façon identique à celle décrite précédemment.
De manière plus générale, le ou les programmes pourront être chargés dans un des moyens de stockage du dispositif 1300 avant d'être exécutés.
L'unité centrale 1304 va commander et diriger l'exécution des instructions ou portions de code logiciel du ou des programmes selon l'invention, instructions qui sont stockées, par exemple, dans la mémoire morte 1306 ou bien dans les autres éléments de stockage précités. Lors de la mise sous tension, le ou les programmes qui sont stockés dans une mémoire non volatile, par exemple la mémoire morte 1306, sont transférés dans la mémoire vive 1308 qui contient alors le code exécutable du ou des programmes selon l'invention, ainsi que des registres pour mémoriser les variables et paramètres nécessaires à la mise en œuvre de l'invention.
La présente invention a été décrite et illustrée dans la présente description détaillée en référence aux figures jointes. Toutefois, la présente invention ne se limite pas aux formes de réalisation présentées. D'autres variantes et modes de réalisation peuvent être déduits et mis en œuvre par la personne compétente dans le domaine de l’invention à la lecture de la présente description et des figures annexées.
Dans les revendications, le terme « comporter » n'exclut pas d'autres éléments ou d'autres étapes. L'article indéfini « un » n’exclut pas le pluriel. Un seul processeur ou plusieurs autres unités peuvent être utilisés pour mettre en œuvre l'invention. Les différentes caractéristiques présentées et/ou revendiquées peuvent être avantageusement combinées. Leur présence dans la description ou dans des revendications dépendantes différentes n'exclut pas, en effet, la possibilité de les combiner. Les signes de référence ne sauraient être compris comme limitant la portée de l'invention.

Claims

REVENDICATIONS
1. Procédé de chiffrement ou déchiffrement d’un flux de données, le procédé comprenant les étapes suivantes,
- génération d’une liste de nombres pseudo-aléatoires ;
- création (705, 705”) d’un flux de clés de chiffrement à partir de la liste de nombres pseudo-aléatoires générée ;
- pour chaque donnée du flux de données,
o sélection (715, 930) d’une clé de chiffrement dans le flux de clés créé selon un mécanisme de sélection prédéterminé et o chiffrement (720) ou déchiffrement (935) de la donnée considérée à l’aide de la clé de chiffrement sélectionnée.
2. Procédé de chiffrement selon la revendication 1 comprenant en outre, pour chaque donnée du flux de données, les étapes suivantes,
- création (725) d’un ensemble comprenant la donnée considérée chiffrée ;
- sélection (740) d’une seconde clé de chiffrement dans le flux de clés créé selon un second mécanisme de sélection prédéterminé, la sélection d’une clé de chiffrement dans le flux de clés créé selon un mécanisme de sélection prédéterminé consistant en la sélection d’une première clé de chiffrement dans le flux de clés créé selon un premier mécanisme de sélection prédéterminé, les premier et second mécanismes de sélection étant distincts ; et
- chiffrement (745) de l’ensemble créé à l’aide de la seconde clé de chiffrement sélectionnée.
3. Procédé de déchiffrement selon la revendication 1 comprenant en outre, pour chaque donnée du flux de données, les étapes préalables suivantes, - sélection (910) d’une première clé de chiffrement dans le flux de clés créé selon un premier mécanisme de sélection prédéterminé, la sélection d’une clé de chiffrement dans le flux de clés créé selon un mécanisme de sélection prédéterminé consistant en la sélection d’une seconde clé de chiffrement dans le flux de clés créé selon un second mécanisme de sélection prédéterminé, les premier et second mécanismes de sélection étant distincts ; et
- déchiffrement (915) d’un ensemble comprenant la donnée considérée chiffrée à l’aide de la première clé de chiffrement sélectionnée.
4. Procédé de transmission d’un flux de données chiffrées, le procédé comprenant les étapes préalables suivantes,
- génération d’une liste de nombres pseudo-aléatoires ;
- création (705’) d’un flux de clés de chiffrement à partir de la liste de nombres pseudo-aléatoires générée ;
- pour chaque donnée chiffrée du flux de données chiffrées, o sélection (810) d’une première clé de chiffrement dans le flux de clés créé selon un premier mécanisme de sélection prédéterminé ;
o déchiffrement (815) d’un ensemble comprenant la donnée considérée chiffrée à l’aide de la première clé de chiffrement sélectionnée ;
o sélection (830) d’une seconde clé de chiffrement dans le flux de clés créé selon un second mécanisme de sélection prédéterminé ; o chiffrement (835) d’un ensemble comprenant la donnée considérée chiffrée à l’aide de la seconde clé de chiffrement sélectionnée.
5. Procédé selon la revendication 3 ou la revendication 4 comprenant en outre une étape d’authentification suite à l’étape de déchiffrement d’un ensemble, l’étape d’authentification conditionnant l’exécution d’au moins une étape suivante.
6. Procédé selon l’une quelconque des revendications 1 à 5 comprenant en outre une étape de sélection de nombres pseudo-aléatoires dans la liste de nombres pseudo-aléatoires générée pour créer le flux de clés de chiffrement.
7. Procédé selon l’une quelconque des revendications 1 à 6 comprenant en outre une étape de décomposition de nombres pseudo- aléatoires de la liste de nombres pseudo-aléatoires générée pour créer le flux de clés de chiffrement.
8. Procédé selon l’une quelconque des revendications 1 à 7 selon lequel un mécanisme de sélection utilise une valeur d’indice d’une clé précédemment sélectionnée.
9. Procédé selon l’une quelconque des revendications 1 à 8 selon lequel un mécanisme de sélection utilise une valeur d’une clé précédemment sélectionnée.
10. Dispositif de chiffrement ou déchiffrement d’un flux de données comprenant une pluralité de générateurs de nombres pseudo-aléatoires, un module de sélection de nombres pseudo-aléatoires et un module de chiffrement ou déchiffrement, le dispositif étant caractérisé en ce que le module de sélection est connecté à chaque générateur de nombres pseudo-aléatoires de la pluralité de générateurs de nombres pseudo-aléatoires, un générateur de nombres pseudo-aléatoires sélectionnant des nombres pseudo-aléatoires générés par au moins un autre générateur de nombres pseudo-aléatoires pour générer une liste de clés de chiffrement, des clés de chiffrement distinctes de la liste de clés de chiffrement générée étant utilisées pour chiffrer ou déchiffrer des données du flux de données.
11. Dispositif selon la revendication 10 selon lequel au moins un générateur de nombres pseudo-aléatoires de la pluralité de générateurs de nombres pseudo-aléatoires est un générateur chaotique de nombres pseudo- aléatoires, hyper-chaotique, pseudo-chaotique ou de type chaotique.
12. Dispositif selon la revendication 10 ou la revendication 1 1 comprenant en outre un module (520) de sélection de clés de chiffrement.
13. Dispositif selon l’une quelconque des revendications 10 à 12 comprenant en outre un module (510) de décomposition de nombres pseudo- aléatoires pour générer des clés de chiffrement dont la longueur est égale à la longueur des données à chiffrer ou à déchiffrer.
14. Dispositif selon l’une quelconque des revendications 10 à 13 selon lequel au moins un générateur de nombres pseudo-aléatoires de la pluralité de générateurs de nombres pseudo-aléatoires est implémenté de façon logicielle.
15. Programme d’ordinateur comprenant des instructions adaptées à la mise en œuvre de chacune des étapes du procédé selon l’une quelconque des revendications 1 à 9 lorsque ledit programme est exécuté sur un ordinateur.
EP19726049.0A 2018-04-10 2019-04-10 Procédés, dispositifs et programmes d'ordinateur pour le chiffrement et le déchiffrement de données pour la transmission ou le stockage de données Withdrawn EP3777007A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1800295A FR3079989B1 (fr) 2018-04-10 2018-04-10 Procédés, dispositifs et programmes d'ordinateur pour le chiffrement et le déchiffrement de données pour la transmission ou le stockage de données
PCT/FR2019/050845 WO2019197780A1 (fr) 2018-04-10 2019-04-10 Procédés, dispositifs et programmes d'ordinateur pour le chiffrement et le déchiffrement de données pour la transmission ou le stockage de données

Publications (1)

Publication Number Publication Date
EP3777007A1 true EP3777007A1 (fr) 2021-02-17

Family

ID=63637919

Family Applications (1)

Application Number Title Priority Date Filing Date
EP19726049.0A Withdrawn EP3777007A1 (fr) 2018-04-10 2019-04-10 Procédés, dispositifs et programmes d'ordinateur pour le chiffrement et le déchiffrement de données pour la transmission ou le stockage de données

Country Status (3)

Country Link
EP (1) EP3777007A1 (fr)
FR (1) FR3079989B1 (fr)
WO (1) WO2019197780A1 (fr)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW202213961A (zh) * 2020-09-22 2022-04-01 香港商吉達物聯科技股份有限公司 可調式五階加密系統、發送端裝置及接收端裝置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5365588A (en) * 1993-03-12 1994-11-15 Hughes Aircraft Company High speed encryption system and method
EP3235162B1 (fr) * 2014-12-17 2021-02-17 Telefonaktiebolaget LM Ericsson (publ) Technique de chiffrement de flux

Also Published As

Publication number Publication date
FR3079989B1 (fr) 2020-05-01
FR3079989A1 (fr) 2019-10-11
WO2019197780A1 (fr) 2019-10-17

Similar Documents

Publication Publication Date Title
EP2323306B1 (fr) Procédé de transmission de données sécurisé et système de chiffrement et de déchiffrement permettant une telle transmission
US11496298B2 (en) Many-to-many symmetric cryptographic system and method
AU2017358604B2 (en) Systems and methods for secure communication using Random Cipher Pad cryptography
US7693278B2 (en) Data distribution apparatus and data communications system
EP2892176A2 (fr) Procédé de conversion d'un contenu a accès conditionnel et récepteur pour la mise en oeuvre de ce procédé
CN110944012B (zh) 抗协议分析数据安全传输方法、系统、信息数据处理终端
WO2020169542A1 (fr) Méthode cryptographique de vérification des données
WO2018211026A1 (fr) Procede de securisation d'une communication sans gestion d'etats
EP3238200A1 (fr) Entité électronique sécurisée, appareil électronique et procédé de vérification de l'intégrité de données mémorisées dans une telle entité électronique sécurisée
EP2457344B1 (fr) Procede de conversion d'un premier chiffre en un deuxieme chiffre
FR3059445A1 (fr) Procede de chiffrement cherchable
EP3840324B1 (fr) Liaison série asynchrone sécurisée
EP3777007A1 (fr) Procédés, dispositifs et programmes d'ordinateur pour le chiffrement et le déchiffrement de données pour la transmission ou le stockage de données
FR2965431A1 (fr) Systeme d'echange de donnees entre au moins un emetteur et un recepteur
EP1419640A2 (fr) Reseau numerique local, procedes d'installation de nouveaux dispositifs et procedes de diffusion et de reception de donnees dans un tel reseau
FR3057122A1 (fr) Procede et dispositif de detection d'intrusions sur un reseau utilisant un algorithme de chiffrement homomorphe
CN112350920A (zh) 基于区块链的即时通讯系统
FR3035293A1 (fr)
EP1642413B1 (fr) Procede de chiffrement/dechiffrement d un message et disposi tif associe
Al-Halboosi Agile Encryption Scheme for Multimedia Files Using Random Data
FR3033466A1 (fr) Dispositif et procede d'administration d'un serveur de sequestres numeriques
FR2956272A1 (fr) Authentification par mot de passe a usage unique
FR2786049A1 (fr) Procede de cryptographie a cle dynamique
WO2023057649A1 (fr) Procédé de génération d'un nombre pseudo-aléatoire et procédé de chiffrement symétrique d'un message
EP3871363A2 (fr) Période de rotation de clés de calcul de système de disposition de chiffrement à base de chiffrement par blocs et procédé

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: UNKNOWN

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

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

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

Free format text: ORIGINAL CODE: 0009012

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

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20201110

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

AX Request for extension of the european patent

Extension state: BA ME

DAV Request for validation of the european patent (deleted)
DAX Request for extension of the european patent (deleted)
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: EXAMINATION IS IN PROGRESS

17Q First examination report despatched

Effective date: 20221021

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

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20231101