Are there any methods or tools out there that let us use what we know about the data in order to crack the encryption?

For example let's say I get access to an encrypted database file but I know everything about it... Let's say I know it's a RDBMS, the table & field names, and the primary keys/foreign keys. Since I know the field names I also know what will be stored as boolean, string, numeric, date/time, etc.

Would this or any other information about the data help with decryption? (Maybe the character encoding)

I'm not talking about cracking a password that "decrypts" the file for us (like public/private key), I am wondering about decrypting the actual data.

I'm not very educated on encryption or ciphers, but I can't seem to find any information about introducing the human element into decryption. Sure it may take more time than the universe has existed to break AES encryption using a billion gpgpus processing in parallel, but this is only brute force -- shouldn't we be able to narrow down the the possibilities based on whether the output makes sense?

Just so I could play around with this idea, is there any software that will output the results of the keys that are tried?

I guess a better question with more scope would be, "Is there any way to narrow down our possibilities?"

  • 1
    $\begingroup$ @Raoul722, that is about reverse-engineering, this is about decrypting a (presumably known) encryption algorithm. $\endgroup$ – otus Apr 22 '16 at 12:04
  • $\begingroup$ "the data in our to" D to? ​ ​ $\endgroup$ – user991 Apr 22 '16 at 12:33

I recommend you will read a bit about chosen-plaintext attack. If the scheme you are using is CPA-Secure then even when an adversary is choosing two different plaintexts, giving them to the challenger and then the challenger picks one of them, encrypts it and sends it back to the adversary - the adversary won't have an efficient algorithm to find out which one was encrypted.

AES-CBC with random IV is assumed to be CPA-Secure if my memory don't betray me. So, If you are using the encryption right, the knowledge of the structure of the plaintext should not help you.


Would this or any other information about the data help with decryption?

What you are looking for is called a known-plaintext attack.

Nowadays secure encryption algorithms are expected to be secure even against chosen-plaintext attacks (a strictly stronger assumption), like DiG mentions in the other answer. If knowing plaintext data would help decrypt other unknown data, that encryption algorithm would be considered insecure and fall out of use.

AES is a secure cipher and, when used correctly with a proper mode of operation, will not allow any attacks even with known or chosen plaintext.

Classical encryption algorithms are often very broken if you have known plaintext. For example, classical substitution ciphers allow you to build the substitution table(s) from known plaintext and easily decrypt much, if not all, ciphertext. You will hopefully not see these algorithms used to encrypt databases.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.