# One Time Pad Mystery Cache

##### This cache has been archived.

- Difficulty:

- Terrain:

Size: (micro)

#### 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.**

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.)