1
$\begingroup$

My goal is to try and decrypt a single 8 byte block of a Triple DES encrypted data block and in doing so discovering the 8 byte keys that were used. This is mostly an academic exercise but could solve a real world problem.

I know the plaintext data is 7 numbers in ASCII encoding with what I believe is a 0x0 padding on the end, Eg. 0x30-0x39. There is a roughly 20% chance that my block is in fact a plaintext data that I already know, it could be potentially one of three values. Triple DES ECB mode, either two 8 byte keys or three 8 byte keys were used but I can't be completely sure.

Through core dumps a colleague collected 5 different 8 byte sequences that I have suspicion are either the keys, or at least could be part of the 2 to 3 sets of keys. I wrote a program to attempt every possible combo for EDE2 and EDE3 and none of them turned up any sequences of 0x30-0x39.

I also know that the application in question utilizes a key schedule to generate encryption/decryption keys, but am unsure if this would be required or if it would help me to identify the keys used.

Knowing so much information about the encrypted 8 byte block, does this provide any possible exploits or clues to the possible keyspace if I were so inclined to search it brute force? I am kind of a crypto noob so I am wondering if this does narrow the key space is it still feasible to brute force with commodity hardware?

$\endgroup$

Your Answer

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

Browse other questions tagged or ask your own question.