Method and system for encrypting/decrypting data with ultra-low latency for secure data storage and/or communication
11075889 · 2021-07-27
Assignee
Inventors
Cpc classification
H04L9/085
ELECTRICITY
H04L63/0435
ELECTRICITY
H04L9/0656
ELECTRICITY
H04L9/0631
ELECTRICITY
International classification
H04L9/06
ELECTRICITY
Abstract
The system comprises a sending entity (100) and a receiving entity (200). The sending entity (100) is suitable for generating a random mask (MA) with m bits; applying an XOR operation between the raw data block to be encrypted (T) and the random mask (MA) thus generated to obtain a primary encrypted block (CPV) with m bits; and applying a permutation (PE) on the concatenation of the random mask (MA) and the primary encrypted block (CPV) to obtain a secondary encrypted block (CS). The receiving entity (200) is suitable for receiving the secondary encrypted block (CS) of 2*m bits; applying an inverse permutation (PI) on the secondary encrypted block thus received to obtain the de-concatenation of a random mask (MA) and a primary encrypted block (CPV) with m bits; and applying an XOR operation between the primary encrypted block (CPV) and the random mask (MA) thus de-concatenated to obtain a block in clear (T) with m bits. The permutation (PE) and its inverse permutation (PI) are secret and only shared and known by the communicating entities (100, 200).
Claims
1. A method for asynchronous symmetrical encryption of an initial message in clear (T) in N successive blocks of m bits each of raw data implemented between a sending entity (100) and a receiving entity (200), characterized in that, for each block (T) of m bits to be encrypted, the following steps are performed: generating a new disposable random mask (MA) of m bits for each block (T) of m bits to be encrypted; applying an exclusive OR (XOR) operation between the raw data block to be encrypted (T) and the random mask (MA) thus generated to obtain a primary encrypted block (CPV) of m bits; and applying a permutation of bits (PE) on the concatenation of the disposable random mask (MA) and the primary encrypted block (CPV) to obtain a secondary encrypted block (CS) of 2*m bits, the permutation (PE) being secret and only shared and known by the sending (100) and receiving (200) entities.
2. The method according to claim 1, characterized in that the size m of the blocks to be encrypted (T) is a multiple of 2.
3. The method according to claim 1, characterized in that the bit permutation (PE) substantially has no fixed point.
4. The method according to claim 1, characterized in that it further comprises a prior step for secret communication of the bit permutation (PE) intended for the receiving entity (100) and the sending entity (200).
5. A method for the asynchronous symmetrical decryption of a message encrypted according to the data encryption method implemented between a sending entity (100) and a receiving entity (200) according to claim 1, characterized in that it comprises the following steps: receiving a secondary block of 2*m bits encrypted according to claim 1, applying an inverse bit permutation (PI) on the secondary encrypted block thus received to obtain the de-concatenation of a random mask of m bits (MA) and a primary encrypted block (CPV) of m bits; applying an exclusive OR operation (XOR) between the primary encrypted block (CPV) and the random mask (MA) thus de-concatenated to obtain a block in clear (T) of m bits, the inverse permutation (PI) being secret and only shared and known by the sending (100) and receiving (200) entities.
6. A non-transitory computer-readable medium storing instructions for implementing, via a processor, the encryption method according to claim 1 when said instructions are executed by said processor.
7. A system for the asynchronous encryption/decryption of an initial message in clear (T) of N successive blocks of m bits each of raw data between a sending entity (100) and a receiving entity (200), characterized in that the sending entity (100) includes a hardware processor that is configured to perform steps of: generating a new random mask (MA) of m bits for each block (T) of m bits to be encrypted; applying an exclusive OR operation (XOR) between the raw data block to be encrypted (T) and the random mask (MA) thus generated to obtain a primary encrypted block (CPV) of m bits; applying a bit permutation (PE) on the concatenation of the random mask (MA) and the primary encrypted block (CPV) to obtain a secondary encrypted block of 2*m bits (CS), while the receiving entity (200) includes a processor that is configured to perform steps of: receiving the secondary encrypted block of 2*m bits thus encrypted (CS) coming from the sending entity (100); applying an inverse bit permutation (PI) on the secondary encrypted block (CS) thus received to obtain the de-concatenation of a random mask (MA) of m bits and a primary encrypted block (CPV) of m bits; applying an exclusive OR operation (XOR) between the primary encrypted block (CPV) and the random mask (MA) thus de-concatenated to obtain a block in clear (T) of m bits, the permutation (PE) and its inverse permutation (PI) being secret and only shared and known by the sending (100) and receiving (200) entities.
8. The system according to claim 7, characterized in that the sending entity (100) and the receiving entity (200) communicate the secondary encrypted data (CS) between one another through a communication channel (400).
9. The system according to claim 7, characterized in that the secondary encrypted data (CS) is stored in at least one of a volatile memory and a non-volatile memory.
10. The system according to claim 7, characterized in that the processor of at least one of the sending and/or receiving entity (100, 200) includes one of fixed and programmable logic circuits.
Description
(1) Other features and advantages of the invention will appear in light of the description and drawings, in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12) In reference to
(13) The random mask MA with m bits is generated for each new message T to be encrypted. As described above, it is the random mask MA that will serve as encryption key.
(14) An exclusive OR operation (XOR) is then applied between the message in clear T to be encrypted and the random mask MA thus generated to obtain a primary encrypted message CPV with m bits. As described above, the primary encrypted message CPV is a “Vernam” cipher with the qualities described above that result therefrom.
(15) Lastly, a bit permutation PE is applied on the concatenation of the random mask MA with m bits and the primary encrypted block CPV with m bits to obtain a secondary encrypted message CS with 2*m bits (two times m bits). The size of the secondary encrypted message CS is therefore twice that of the message T to be encrypted.
(16) The permutation of bits PE is secret and only shared and known by sending and receiving entities that will be described in more detail hereinafter in reference to
(17) Preferably, the permutation of bits substantially has no fixed point (derangement). Examples of permutation of bits PE are described in reference to
(18) The computing security of the encryption depends on the size p of the permutation and the number of its fixed points. Ideally, it is preferable use permutations without fixed points, also called derangements.
(19) In reference to
(20) In reference to
(21) The processing of the block N is according to that described in reference to
(22) The processing of the block N+1 consists of creating a padding (filler) block N+1 here referenced BG N+1 made up of a bit with binary value 1 followed by m−1 bits with binary value 0. One then applies the encryption of the block BG N+1 using the method according to
(23) In reference to
(24) The processing of block N−1 is according to that described in reference to
(25) The processing of the block N consists of encrypting the block N thus filled and here referenced BG N. One then applies the encryption of the block BG N using the method according to
(26) In reference to
(27) To determine the size of the message to be decrypted, one should look in the last secondary encrypted block CS and seek to determine the first bit with binary value 1 starting from the end. If this bit at 1 is the first bit of block N, then the preceding block is the last block to be decrypted. Thus, from an encrypted message made up of N*2*m bits, one obtains a message in clear made up of N−1 blocks for a total of (N−1)*m bits.
(28) In reference to
(29) To determine the size of the message to be decrypted, one needs to look in the final secondary encrypted block CS and seek to determine the first bit with binary value 1 starting from the end. If this bit at 1 is not the first bit of the block N, then all of the bits to its left constitute the final data bits of the message in clear, i.e., the first d bits of the block N.
(30) Thus, from an encrypted message made up of N*2 m bits, one obtains a message in clear made up of (N−1)*m+d bits, with d less than m.
(31) In reference to
(32) In practice, the step for writing in the memory 300 consists of receiving a data block in clear T of m bits and applying it 102 to the encryption device 100, which delivers, as output 104, a secondary encrypted block CS of 2*m bits after permutation of bits PE of 2*m bits. The secondary block CS is stored via the input 302 in the memory 300.
(33) Reciprocally, the reading step 304 in the memory 300 consists of reading a block of encrypted data of 2*m bits and applying it 202 to the decryption device 200, which delivers, as output 204, a block in clear T of m bits after inverse permutation PI of 2*m bits.
(34) For example, the architecture of the encryption 100 and decryption 200 devices comprises a processor, a memory and a communication interface connected to one or several data buses (not shown).
(35) In reference to
(36) In reference to
(37) For example, the communication channel 400 is of the optical, wired or wireless type.
(38) In reference to
(39) In reference to
(40) To facilitate the reading, the examples are given in Hexadecimal coding.
(41) The block T with 16 bits in clear here is equal to 0x3432 in Hexadecimal code. The random mask
(42) MA is equal to 0x13E7 in Hexadecimal. The primary cipher CPV is equal to 0x27D5. The secondary cipher is equal to 0x8A51ECFB in Hexadecimal.
(43) By applying a padding of 0x8000 (
(44) By applying a padding of 0x80 (
(45) In reference to