Saturday, 25 December 2010

Unbreakable cipher

Inspired by some of the old textfiles by Mental Ego and Ich, I've decided to write a file about a cipher I know of that has been proved unbreakable in theory.


This is a cipher based on the old cryptographic standard Vigenere cipher and also utilizes elements of One-time pad encryption. To encrypt a message in this way we need to use a tabula recta or "Vigenere table" like this:

a b c d e f g h i j k l m n o p q r s t u v w x y z

a a b c d e f g h i j k l m n o p q r s t u v w x y z

b b c d e f g h i j k l m n o p q r s t u v w x y z a

c c d e f g h i j k l m n o p q r s t u v w x y z a b

d d e f g h i j k l m n o p q r s t u v w x y z a b c

e e f g h i j k l m n o p q r s t u v w x y z a b c d

f f g h i j k l m n o p q r s t u v w x y z a b c d e

g g h i j k l m n o p q r s t u v w x y z a b c d e f

h h i j k l m n o p q r s t u v w x y z a b c d e f g

i i j k l m n o p q r s t u v w x y z a b c d e f g h

j j k l m n o p q r s t u v w x y z a b c d e f g h i

k k l m n o p q r s t u v w x y z a b c d e f g h i j

l l m n o p q r s t u v w x y z a b c d e f g h i j k

m m n o p q r s t u v w x y z a b c d e f g h i j k l

n n o p q r s t u v w x y z a b c d e f g h i j k l m

o o p q r s t u v w x y z a b c d e f g h i j k l m n

p p q r s t u v w x y z a b c d e f g h i j k l m n o

q q r s t u v w x y z a b c d e f g h i j k l m n o p

r r s t u v w x y z a b c d e f g h i j k l m n o p q

s s t u v w x y z a b c d e f g h i j k l m n o p q r

t t u v w x y z a b c d e f g h i j k l m n o p q r s

u u v w x y z a b c d e f g h i j k l m n o p q r s t

v v w x y z a b c d e f g h i j k l m n o p q r s t u

w w x y z a b c d e f g h i j k l m n o p q r s t u v

x x y z a b c d e f g h i j k l m n o p q r s t u v w

y y z a b c d e f g h i j k l m n o p q r s t u v w x

z z a b c d e f g h i j k l m n o p q r s t u v w x y




































We also need a key which usually when utilizing the Vigenere cipher will be a single word or short phrase, but in order to make the cipher "unbreakable" we will be using a key that is the same length as the plaintext. Obviously you need to prearrange this key with the recipient and it needs to be as random as possible. There is software you can download to create a random string of characters but if that isn't possible you'll just have to wing it and make a seemingly random, one use key. For this example I'm using a simple plaintext and key just to demonstrate how this cipher works.

Example:

Plaintext: I LIKE TO PWN NUBS

Key: JTYCNWQKZVARXO

Ciphertext: REGMRPEZVINLYG

So basically to encrypt you take the first character of you plaintext, that is the column, and the first character of the key, that is the row and the common character is the first letter of your ciphertext and so on. To decrypt, take the first character of your key and find the first character of the ciphertext on that row, the column it's in is the plaintext letter.

This method if followed is as close to unbreakable as you're going to get when it comes to non-mechanical cryptography. The only thing that lets it down is key management, which is all up to you.

2 comments:

  1. This is great, ever since reading the DaVinci code I have been interested in cryptology.

    ReplyDelete
  2. This is amazing. While encrypting a message we all need a key that is not possible to break. I am surprised to know about this unbreakable cipher which you have explained above. Great one.
    eSignature

    ReplyDelete