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éesInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000004590 computer program Methods 0.000 title claims description 6
- 230000005540 biological transmission Effects 0.000 title description 16
- 230000007246 mechanism Effects 0.000 claims abstract description 59
- 230000000739 chaotic effect Effects 0.000 claims description 22
- 238000000354 decomposition reaction Methods 0.000 claims description 8
- 230000003750 conditioning effect Effects 0.000 claims description 2
- 238000004891 communication Methods 0.000 description 36
- 238000004422 calculation algorithm Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 230000004044 response Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom 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/0668—Pseudorandom 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management 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/266—Channel 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/26606—Channel 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/125—Parallelization 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
Description
Claims
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW202213961A (zh) * | 2020-09-22 | 2022-04-01 | 香港商吉達物聯科技股份有限公司 | 可調式五階加密系統、發送端裝置及接收端裝置 |
Family Cites Families (2)
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 |
-
2018
- 2018-04-10 FR FR1800295A patent/FR3079989B1/fr not_active Expired - Fee Related
-
2019
- 2019-04-10 WO PCT/FR2019/050845 patent/WO2019197780A1/fr unknown
- 2019-04-10 EP EP19726049.0A patent/EP3777007A1/fr not_active Withdrawn
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 |