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?


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.