Welcome to HBH! If you have tried to register and didn't get a verification email, please using the following link to resend the verification email.

Encryption #11


Encryption #11

By tkearn5000 avatartkearn5000 | 8915 Reads |
0     0

The purpose of this article is to give you an idea of how to attack Encryption #11 logically and successfully. This is certainly one of the harder cryptography missions on this site. However, with research into the type of encryption used and some programming experience it can be solved.

There are a number of things you should familiarize yourself with before attempting this mission. I will attempt to cover some of them briefly. The are as follows:

one time pad encryption techniques XOR encryption(a type of one time pad) the use of a dictionary to aide in deciphering

These ideas are crucial to solving this challenge.

The One Time Pad When using a one time pad, the plain text is encrypted using a pseudo random key that is the same length as said plain text. For example, encrypting the word 'hacker' with the random key 'grvtbs' yields the following result.

plain text: HACKER key: GRVTBS result: NRXDFJ

As you can see, the process involved is adding the numeric value of the two letters, then taking that value modulo 26 and converting it back to a letter.  The most common numbering system starts with A = 0, and ends with Z = 25. Ex: K = 10, T = 19. 10 + 19 = 29. 29 % 26 = 3. Therefore the encrypted letter would be D.

XOR Encryption XOR encryption is a type of one time pad encryption that utilizes binary numbers, and happens to be the encryption used in this mission. To encrypt, the first step is to convert the letters of the plain text word into all caps, then into their ASCII values. Next, take those numbers and convert to binary. Ex. H is ASCII is 72 which is 01001000 in binary. Then do the same with the key. To encode, line up the binary representation of the plain text and the key and toggle the bits. Example using one letter of plain text and a one letter key: H = 01001000 G = 01000111 Enc = 00001111

 This is where XOR gets its name. XOR stands for 'exclusive or'. Using exclusive or, for an expression to evaluate to true only one of the operands can be true. Ex (using 0 = False and 1  = True):

0 xor 0 = 0 1 xor 0 = 1 0 xor 1 = 1 1 xor 1 = 0 Deciphering text with xor uses the same process as encryption. You take the coded binary value and the value of the key and toggle the bits. This leaves you with a binary representation of the original word.

Using a Dictionary The above forms of encryption, when used properly, are reputed to be impossible to crack. The operative phrase there is 'used properly.' Two mistakes that can make a one time pad encryption crackable were made in this mission. They are: using a nonrandom key encrypting multiple messages with the same key

Keeping in mind the hints given on the challenge page, this encryption is vulnerable to a dictionary attack. This is where programming comes in. We know the following facts:

each packet is a four letter word, as is the key the same key was used to encrypt each packet

Using this knowledge you need to find a way, using a dictionary, to find a four letter word that when put through the xor algorithm with each of the three packets, produces valid English words. How you do this is up to you, but doing it by hand is probably not an option.

Good luck!

Helpful links: http://en.wikipedia.org/wiki/XOR_cipher http://en.wikipedia.org/wiki/One-time_pad

Comments
korg's avatar
korg 14 years ago

Good basic coverage on how the one time pad works. Should help people with this challenge.

ArgonQ's avatar
ArgonQ 14 years ago

Clean, straightfoward, easy to follow and no spoilers. Nice

ghost's avatar
ghost 14 years ago

kindaa good help…….:ninja::ninja:……

tuere816's avatar
tuere816 12 years ago

nice 1 article , scourged the net and found a lot of information , but here it is summed up well :)