I have an document encrypted with a symmetric key. The only information I have is that the key is shorter than 64 bits.
Is there any way I can decrypt it? If yes, how?
|
I have an document encrypted with a symmetric key. The only information I have is that the key is shorter than 64 bits. Is there any way I can decrypt it? If yes, how? |
||||
|
|
|
To decrypt the message, you have to know more than the key; you must also know the encryption scheme, encryption mode, initialization vector, etc. None of this is supposed to be secret; the key and the plaintext message are the only two secrets in most symmetric-key cryptography (and as was stated in the comments, due to protocol requirements and other formatting inherent in most data, the plaintext is not entirely secret). Those two secrets are enough: according to the Wikipedia docs for AES, the most successful brute-force attack against any symmetric algorithm was against a 64-bit RC5 implementation, which basically required a "white-hat" botnet run by the nonprofit Distributed.net to provide sufficient CPU time to try all of the 18,446,744,073,709,551,616 possible keys in the 64-bit keyspace (that's 18.4 quadrillion keys; putting that in context, the estimated total economic output of the human race in recorded history is only about 2.4 quadrillion US dollars). Using about 2,700 "willing" computers in the botnet, it took five years to crack the cipher. And most of the common symmetric algorithms nowadays (Rijndael/AES, Blowfish/Twofish, Serpent, Triple-DES) use keys at least twice that long, producing a keyspace of approximately 3.4x1038 (340 undecillion) possibilities. The feasibility of a brute-force quickly becomes infeasible; given one more size doubling to a 256-bit key (which is used in some schemes), assuming we could, starting right now, build a Dyson's sphere around our Sun and trap every photon of the plane of the ecliptic (our planet's own orbit) with perfect efficiency, and then build a computer at the electron level with perfect thermal efficiency powered by this Dyson's sphere and set it to try brute-forcing the key, the Sun would go dark before the computer finished trying every key (the Sun would fail at somewhere around 2218 keys). Even if the cipher they used were vulnerable, most known cryptanalytic attacks against ciphers that aren't completely broken require what's known as a "known-plaintext" or "chosen-plaintext" attack, where you as the attacker can see or even choose the plaintext messages to be fed into the cipher. Most of these attacks still only reduce the complexity of breaking the cipher by a small number of powers of two; for instance, a 64-bit cipher, which would require 2^64 tries to brute-force, might be crackable if you could see, perhaps, 2^44 64-bit blocks being fed into the algorithm using the same key, and see the ciphertext output. Technically, that's an "attack" because it is more efficient than a brute-force. But, it requires you to feed 128 terabytes of data through the algorithm, without knowing the key (which probably means you're feeding it through the one actual machine performing the encryption for someone else, which would eventually arouse suspicion). In summary, with one ciphertext, no plaintext, and no key, you stand no chance. Virtually all successful hackers nowadays find the weakest link in the chain (the human, the unsecured computer that human is using, or the flawed implementation of the encryption algorithm on the computer the human is using), and exploit that instead, through keyloggers, social engineering, etc. So, should this game ever commence for real, I would suggest discretely installing a program on the computer your friend will use to generate the key and encrypt the plaintext, which will transmit the plaintext and/or key to you as it is typed in by your friend. MUCH easier, and faster, than breaking the cipher. Or, if the key is based on an ASCII string, you could kidnap your friend, lock him in your basement, and use some sort of painful but non-damaging interrogation technique until he gives it up. |
|||||||||||||||
|
|
Nope. That's pretty much the whole point of encryption. You have no chance of recovering the document without the key, assuming a decent algorithm was used, and a suitable key generation scheme was used. |
|||||||||||||
|