# Encryption #11

## This article attempts to walk you through the logic involved in solving this challenge. I tried not to give too much away, but rather to give you the tools and knowledge for formulating a plan of attack.

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

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

korgon February 07 2010 - 14:43:16 Good basic coverage on how the one time pad works. Should help people with this challenge. |

ArgonQon February 14 2010 - 15:18:42 Clean, straightfoward, easy to follow and no spoilers. Nice |

kodeizxon July 20 2010 - 18:38:36 kindaa good help.......:ninja::ninja:...... |

tuere816on January 29 2012 - 09:45:05 nice 1 article , scourged the net and found a lot of information , but here it is summed up well |

Post Comment

**Sorry.**

You must have completed the challenge

**Basic 1**and have

**100 points**or more, to be able to post.