Skip to content

One Time Pad Mystery Cache

This cache has been archived.

fmoraes: Area has been cleared, cache is gone, little activity on this puzzle, so archiving it.

More
Hidden : 04/15/2011
Difficulty:
4.5 out of 5
Terrain:
1.5 out of 5

Size: Size:   micro (micro)

Join now to view geocache location details. It's free!

Watch

How Geocaching Works

Please note Use of geocaching.com services is subject to the terms and conditions in our disclaimer.

Geocache Description:

The cache is NOT at the posted coordinates.

In the book Cryptonomicon, a character discovers a cipher which uses one time pads generated by a zeta function. One time pads are virtually unbreakable when used correctly.

So, I had this idea for a new puzzle cache that uses a function to generate the One Time Pad for a given day, like the one described in the book. Instead of finding a zeta function, I decided to use a PRNG (pseudo random number generator) that is initialized with a key and then generates the pad characters one a time. I found the following code to generate random numbers called Mersenne Twister. There are several implementations there in different programming languages that you can use (just make sure it matches the output given below and you can decrypt the sample ciphertext).

The key (seed) for the PRNG is a date in the format YYYYMMDD. Once initialized, you just get next random number modulo 26 and use it as the pad for the One Time Pad encryption/decryption. Encryption is simply done by plaintext + pad = ciphertext (all operations modulo 26). The decryption process is just the opposite: ciphertext - pad = plaintext (again, modulo 26).

The encryption was done like this pseudo-code:

init_genrand(key)
ciphertext = ''
for each letter t in plaintext
 cipher = ((genrand() modulo 26) + t) modulo 26
 append cipher letter to ciphertext

Decryption is achieved the same way, except you subtract the pad character modulo 26.

To make sure you have the same implementation I used, here are the first 5 numbers generated by the function for the date this cache was hidden (20110415):

1809408788 859169296 2049473176 2524836980 835816513

I used that key (20110415) to encrypt the following sample cipher text, for your testing purposes:

QMEHC CTRBL ZSBTE DEBFR LBCDU ZMCRR IBESK MURMP KLZJC AZFRS
KPTZQ OZ


Now, here's the real challenge text that contains the key to finding the cache:

JHTYU MPXEE PGOOY YTCSA AGKTK DGYST OFBOB PMLXP TXJXN ZIFSC
URNBG BODWR VSSIW JYZSV EPRBG JRAMF KQVVF CXPJA CZHLL BGQCJ
XSAWF XJGCC TXLIQ AXHAO TDLWL RENFY AVDXW FPGYY HRIYO XUKBE
KFEHZ XAWAL SGQZU SGKSW AEXKU SPPGO CMCBL IAXWU FJSLF GEDOA
WCPGM NSXQX CHAPV VCVVP JOEEV LPTDC ALWNG CYSME PTULG WKWLX
SWCHP FINAJ XRLQX UIVSV WGWPT MUFCR YOXIV AYKHQ BHJWZ ZLVGE
WZTOM UCTWU SIKIU KFGAW WKAOE PYRZG ZPWJE XQXTF NTWYB GPZUD
SMPBN ITNRI GLIWA ACINA RSLVK XCHDS YYOHM UJUQG CSGHW OCMAH
KZEIM MOEZB HAVBO ZZHHC URWST KPPMR TJJJH FLMDQ UKAGJ WSSCH
WUNYW FLCON AXZYU JHBUI GXAMM DABAR FMUXE RTFGN JNGLY NHRDU
JEBGT PBAIT CFOMO BHGGT QHFJY GEPZG SGOOF FDESL I


You can use the following website as an assistant to your search if you don't want to take programmatic approach.You can use the sample cipher text and key to make sure you have everything correct. You need to find the right date that decrypts the ciphertext for the cache.

NOTES:

- No Geochecker needed. Once you found the key, you will have the coordinates.
- Cache is within 2 miles of posted coordinates.
- Programming highly recommended.

Good luck.

Additional Hints (No hints available.)