Close
0%
0%

Hackaday Cipher Utility

Web based tool to automate ciphering/deciphering using hackaday one time pad

Similar projects worth following
This web utility is used for enciphering or deciphering the messages that you can find on some hackaday pages. The key is looked up in a one time pad booklet by page number and character number. These numbers are specified in hexadecimal.

The physical pad is available at http://store.hackaday.com/products/1407981609

0x00 0x000 ZP VBJ MUE COBR NFGX PPN NYTQVRM WJNT ZEA UH LSR KPY IXFKKZF 1407981609

  • Who needs pad addresses? Pt2

    gannon10/07/2014 at 21:10 0 comments

    I've gone through and restructured the code to be more efficient and cleaner. This was mainly to support bruteforcing the ciphers.

    The brute forcing page is currently separate from the main page and can be found at http://otp.portablesofdoom.org/brute.html

    I have only tested it with a few messages, but it works. It takes a little bit of time to respond though, so be warned.

  • Who needs pad addresses?

    gannon10/07/2014 at 19:06 0 comments

    While trying to figure out the cipher posted in http://hackaday.com/2014/10/06/hackaday-10th-anniversary-1o57-and-the-art-of-encryption/ I decided that maybe either the pad address was wrong or it was double enciphered with a second pass somehow. While I was working on figuring this out Brian came forth mentioning he had actually just made a typo in the address.

    My method of trying to decipher the message was simple. Brute force it! There are only 18400 pad starting addresses after all. After working out some bugs in my JavaScript code I was able to get it to work...although it would return hundreds of results as I only checked to make sure the first word in the sentence was a real word.

    When I have some time I will work on cleaning this code up and getting it into a better working state. My proposed method for brute forcing the message deciphering is as follows.

    1. Split the message up into words

    2. Decipher the first ciphered word starting with each of the 18400 pad addresses

    3. For each result that is a known word continue deciphering the message

    4. Sort messages based on ratio of known words to unknown words

    Is this method slow? Currently in JavaScript, a bit. Also I seem to be hitting an issue where I can't process all of the data at once. I am unsure if this is an issue with memory consumption or something else yet. That is my main reason for not simply deciphering the entire message 18400 times. I will probably break the problem up into a more efficient method later.

  • Oops...

    gannon09/15/2014 at 14:21 0 comments

    After testing the latest cipher that was posted I noticed a bug in the code!

    It was actually quite simple. My bounds check was off by one (a common issue with computing).

    Now, how long until a new bug is found?

  • The next step

    gannon09/11/2014 at 20:13 0 comments

    I was all set and ready to wait for the pad I had ordered to come in so I could rip it apart, scan it, and hopefully get a more error free result from the OCR process. But that was when a little birdy dropped something...

    An initial character count shows a very not quite random distribution. I expect this might yield interesting results if people poke at it further.

    As far as the web utility is concerned...I suck had doing CSS by hand, so it will be stuck as ugly for now!

    I hope to add support for more OTP books if they are made and also for entering your own pad (although many sites already work with that method)

  • A first step

    gannon09/11/2014 at 19:52 0 comments

    This is my first step into HTML5. So far it looks like things are a bit simpler since I last have done web development.

    After many attempts to figure out why a few parts of my code were not working I realized I have completely forgotten Javascript scemantics....oops

    The initial attempt had two pages of the pad entered in using an OCR program on the published images....needless to say there were typos due to this.

View all 5 project logs

Enjoy this project?

Share

Discussions

davedarko wrote 10/31/2014 at 16:48 point
cool stuff!

  Are you sure? yes | no

Jacob Christ wrote 10/07/2014 at 22:34 point
So in the posted slides the following four letter codes were visible

1o57 (DCYV)
dkik
NKUM (37?!?)
KRYD
NBYG
ONYM
NXOC

I'm not sure if these are in the correct order, the codes in the parenthesis were outside the circles on the foil.

Possible starting locations could be tied to 1o50, 10 (or maybe 0x0a)... But brute force is nice since the pad is so short. You should print out the pad location when a word is found.

Do you have the pad available as a file?

  Are you sure? yes | no

Jacob Christ wrote 10/07/2014 at 22:42 point
Yeah, it would be helpful to see if the decoded words are close to each other in the pad...

dkik NKUM KRYD NBYG ONYM NXOC

TIER PEWS BINT PLOY KAKI LIMO
SKIP FARM APOD WAFT LAKY WIRY
ALIT SLUM REDE TATS FOLK SEAT
ROOF JEST HETH DURO MIRI GOOK
BROW GUDE GLUT COSH RULY FATE
KAPA URUS LOBS LIFT GOAL LAKE
DREE PIMA HUNT PITY SNUG WAGE
KEEP MEDS GAMA BOTS LUNE ROOT
KOOK PASH SEEP AYIN GIRT ETUI
YWIS PEST CAPO ALEC FAGS BOOR
STAR CADE WAUK LIES WAUK SIGN
ORDO HIGH EASY WART KBAR MARL
FROE RAVE HETH MOMS MITT MERL
TACT ULUS TEAT NAGS KOJI WAWS
TERN NODI RHUS SKEE SOON SERF
GNAW JADE KVAS ZOIC NIGH BURL
OGEE DOST SUCH RIFS DOAT FAUX
HIES REIS NAIL WASP GAGE FLOG
CUBS DEFT LATI VOES SHIP WEAR
TOOM ROUP FOAM SIPS APOS JIAO

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates