Next: , Previous: Recovered data by powerfull attackers, Up: Top


Appendix C GNU fcrypt and Quantum computers

A example of unbreakable encryption is one time pad. That is, the data is XORed with a perfectly random key of the same size. Many others are very hard to compute, but not unbreakable. A big enough computer can break them. But, not exists a big enough computer to break a 256 bit key by brute force yet.

This encryption is unbreakable, because symetric encryption is not deterministic. The only way to know if I have the correct password is using some knowledge about the unencrypted content's. If the password is much smaller than the content. Eg a single character password and a 9 characters plaintext(the unencrypted content). Then it is unlikely(but not impossible) that I get HELLO EVA randomly by using a wrong password. Then I have the correct password. But if the key have the same size that the plaintext, and each key generate a different plaintext. Then I can get all the possible phrases with 9 characters. Then if I get the phrase HELLO EVA, that means nothing. Because have the same chance of being to be HELLO BOB or SICAIBJV, if I use a perfectly randomly password.

But with public key encryption it is very different, the private key is deterministic from the public key. But it is very hard to compute.

A big enough Quantum computer can broken, all the public key encryption in a logarithm time. Then all the public key encryption will be unsafe. All secure communication between two computers would be strongly affected. Because everyone could see the data transmitted from one to another (at least that we send the password by other means).

But, symmetric encryption is much more secure, the best known algorithm to run on a quantum computer. It takes 2 ^ (n/2) attempts to break a password of n bits. Then 128 bits key will be unsafe, but, it is not a problem to GNU fcrypt, because it use at least 512 bit keys. Using 256 bit ciphers.