The development team created a post-quantum encryption algorithm

With the advent of sufficiently powerful quantum computers, many cryptographic algorithms become vulnerable and no longer provide the necessary data secrecy. There is one algorithm that will work in the post-quantum era - the Vernam cipher or one-time cipher pads. But it has a significant drawback - the key length must be equal to the amount of encrypted data.





Introduction

For communication, cipher notes are not very suitable - it is necessary to store a large amount of random data, update cipher notes as they are exhausted. Although nowadays it is not a problem for some diplomatic missions to have a storage with keys for a couple of petabytes, but the hassle of organizing the protection of the storage will not get rid of the problem of running out of keys. Storage The new encryption method allows you to increase the duration of the use of pre-generated keys using a random number generator. In ideal conditions, even two bits are enough for endless use.





Definitions

Cipher pad - pre-generated random data.





A message stream is encrypted data transmitted sequentially or in parallel between interlocutors.





The base key is another part of the cipher pad used to encrypt the first message in the stream.





Session key - encryption key of the next message in the stream, created using PRNG as needed.





The data field is the payload encrypted with the key from the previous session.





Algorithm

The minimum amount of information transmitted is determined by the data block in the message, it can be one bit or byte, or gigabyte, it depends on the specific implementation. The key must be two blocks long, since it encrypts the data block and the first part of the next key, the second part of the key is encrypted with the first part of the previous one. Due to the fact that random data is used for keys, it will not be possible to decrypt the real key, because all possible combinations are equally probable.





Alice and Bob create a common cipher pad.





, , , . .





, , . .





, , , . , .





.





(. . ), , .





, , , .





.





, [10]





[1]. [00]. .





101 xor 100 => 001





[001] .





( , ) .





101 xor 001 => 100, 00





[1]. [01]. , .





000 xor 101 => 101





.





. habr. ASCII.





h = 68, a = 61, b = 62, r = 72





[01 23]





[B6]





, [5C E4]





...





012301 xor b65ce4 => b77fe5





, [b4 cd], .





5CE45C xor 68B4CD => 345091





, [A4 E8]





B4CDB4 xor 61A4E8 => D5695C





[E0 9A] [B0 51]. .





B77FE5345091D5695CC6083EC26382





It is enough to delete the first two bytes, and even having access to the cipher block, it will not work to decrypt the original message due to the fact that each key is encrypted by the previous one.





And here is an interesting message encrypted in the same way as the base key [ 7B D0 ]





33A7C016D2519BF4EBDF241ACED9541CCEDCD77108B6BD7858475C19B9475A4D5B85415DEE28A02F1F5250C04C55398F6CB561469291654E74BA19D98C104440913755








All Articles