Skip to content

Reinon koodi Mystery Cache

This cache has been archived.

finmeeple: Kiitoksia kaikille kätköllä käyneille. En kunnosta kätköä enää, se saa yhdentoista vuoden jälkeen jäädä eläkkeelle.

More
Hidden : 12/2/2012
Difficulty:
4 out of 5
Terrain:
2 out of 5

Size: Size:   regular (regular)

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:

Regular-kokoinen purkki, jonka koordinaattien selvittäminen edellyttää salakirjoituksen ratkaisemista. Älä huoli – saat kyllä ohjeet. Pelkän purkin vaikeustasoksi arvioisin 2. Kätkön vaikeustaso oli alunperin 3,5, mutta nostin sen 19.3.2013 neljään, kiitos T!N!T:n loggauksen. Purkki on talvilöydettävä, mutta kovin jäiset olosuhteet saattavat aiheuttaa vaarallisia tilanteita kätköllä.


Vuonna 1953 lehdenjakaja löysi vaihtorahoistaan ontoksi kaiverretun kolikon, jonka sisällä oli mikrofilmi, jossa oli numeroita. FBI ei pystynyt ratkaisemaan koodia, ennen kuin Neuvostoliiton agentti Reino Häyhänen, koodinimi Victor, loikkasi ja paljasti koodin.

Koodi, VIC Cipher, oli löytöhetkellään 1950-luvulla monimutkaisin kynällä ja paperilla tehtävä salakirjoitus, jota agentti pystyy käyttämään kenttäolosuhteissa. Se oli teoriassa heikompi kuin 1950-luvulla pääasiassa käytössä olleet kertakäyttökoodit, jotka ovat teoriassa mahdottomia purkaa. Käytännössä kertakäyttökoodit eivät olleet luotettavia ja VIC-koodia ei pystytty purkamaan, joten se vie voiton tositilanteessa. Nykyisellä teknisellä termistöllä se on "straddling bipartite monoalphabetic substitution superenciphered by modified double transposition".

Reino Häyhänen oli etnisesti suomalainen Neuvostoliiton kansalainen, joka palkattiin vuonna 1939 NKVD:n palkkalistoille. Suomea osaavana Häyhänen palveli talvisodassa kuulustelemalla suomalaisvankeja ja kääntämällä kaapattuja dokumentteja. Vuonna 1949 Häyhänen siirtyi Suomeen nimellä Eugene Mäki, esittäen amerikkalaissyntyistä työmiestä. Sittemmin Häyhänen toimi Yhdysvalloissa.

Vuonna 1957 Häyhänen loikkasi vakoiltuaan Yhdysvalloissa viisi vuotta. Häyhänen oli saanut kutsun Moskovaan ja kenties aavisti, että kyseessä on viimeinen kutsu, josta ei hengissä selviä. Häyhänen avasi VIC-koodin ja nimesi pari KGB-agenttia.

Kokeile itse!

Nyt pääset kokeilemaan, miten VIC-koodi käytännössä toimii. Tarvitset tehtävään vain kynän ja paperia – ei Häyhäselläkään tietokoneita ollut. No, hyvästä tekstieditorista on tehtävän suorittamisessa iloa. Lisäksi tarvitset pari tuntia aikaa ja huolellisuutta. Koodin käsittelyssä on todella helppo tehdä virheitä, joten ole tarkkana!

Salakoodiin tarvitaan agentin henkilökohtainen numero, katkelma laulusta, päivämäärä ja avainsana, jossa on käytetyn kielen yleisimmät kirjaimet. Nämä tiedot täytyy olla sekä viestin lähettäjän että vastaanottajan tiedossa etukäteen.

Tässä harjoitustehtävässä sinun agenttinumerosi on 7. Lauluksi olette sopineet Partisaanimarssin, joka alkaa "Kautta laaksojen ja vuorten kulki partisaanein tie". Päivämääräksi valitsitte ensimmäisen NAVSTAR-satelliitin laukaisupäivän, 22.2.1978. Avainsana on astelin.

Ketjuyhteenlasku

Koodin käsittelyssä toistuu pari toimenpidettä, jotka pitää osata. Toinen on ketjuyhteenlasku. Siinä luvun peräkkäisiä numeroita ynnätään yhteen ja saadusta luvusta ykköset liitetään alkuperäisen luvun perään. Kas näin:

Luvusta 12345 lasketaan ensin yhteen 1+2 ja saadaan 3, joka liitetään perään, jolloin saadaan 123453. Seuraavaksi lasketaan 2+3 ja saadaan 1234535, 3+4 = 12345357, 4+5 = 123453579, 5+3 = 1234535798 ja niin edelleen. Lukuja voidaan tällä tavalla venyttää loputtomasti.

Sekventialisointi

Sekventialisoinnilla muunnetaan X kirjainta tai numeroa pitkä merkkijono numerosarjaksi, jossa numerot 1-X esiintyvät kukin kerran. Käy kirjaimet läpi aakkosjärjestyksessä (numerot kasvavassa järjestyksessä) ja laske numeroita ykkösestä alkaen. Esimerkki selventää asiaa:

KUMISAAPAS
     12 3   A-kirjaimet
   4        I-kirjaimet
5           K-kirjaimet
  6         M-kirjaimet
       7    P-kirjaimet
    8    9  S-kirjaimet
 0          U-kirjaimet
5064812739

Näin KUMISAAPAS-sanasta tulee numerosarja 5064812739. Kympin sijasta numerosarjassa on käytetty nollaa, mutta jos koodattaisiin yli 10 merkkiä pitkää merkkijonoa, laskettaisiin normaalisti 10, 11, 12 ja niin edelleen.

Jos sekventialisoit numerosarjoja, käsittele nollat kymppeinä, eli ne sekventialisoidaan viimeisinä, ei ensimmäisinä.

Salakirjoituksen laatiminen

Käyn nyt läpi vaiheet, joilla viesti koodataan. Kun käyt tämän prosessin läpi huolella, osaat purkaa koodin laskemalla ensin avaimet lähtötiedoista ja tekemällä siten loput prosessista takaperin. Kerron joka vaiheessa mitä pitää tehdä, mutta sinun on selvittävä tehtävästä itse.

Avaimet S1 ja S2

Ensin luodaan avaimet S1 ja S2 sekventialisoimalla laulun sanojen ensimmäiset 10 kirjainta ja seuraavat 10 kirjainta. S1 saadaan siis kirjaimista "KAUTTALAAK" ja S2 kirjaimista "SOJENJAVUO".

Laske nyt S1 ja S2. Kummassakin on 10 numeroa, joten käytä kympin sijasta nollaa sekventialisoidessasi.

Viestitunnus MI

Tarvitaan viisinumeroinen viestitunnus. Se valitaan satunnaisesti. Arvoit jollain menetelmällä satunnaisluvuksi 29644.

MI on siis 29644.

G, T, U-blokki, K1, K2 ja C

Näistä lähtöarvoista rakennellaan nyt monen välivaiheen kautta avaimet K1 ja K2 sekä C, jota tarvitaan aakkostaulun tekemiseen.

Aloita vähentämällä viestitunnuksesta MI päivämäärän viisi ensimmäistä numeroa (22219) siten, että vähennät päivämäärän ensimmäisen numeron MI:n ensimmäisestä numerosta (2-2=0), sitten toiset numerot samalla tavalla (9-2=7) ja niin edelleen. Tämä on modulo 10 -laskemista, eli esimerkiksi 1-3=8 eikä -2 (8, koska 11-3=8).Huom! Tässä oli aluksi virhe, neuvoin ensin summaamaan luvut. Vähennyslasku on kuitenkin oikea toimenpide.

Tämän laskutoimituksen tuloksena on viisinumeroinen luku, jonka laajennat kymmeneen numeroon ketjuyhteenlaskulla. Näin saatuun kymmennumeroiseen lukuun summaat avaimen S1 siten, että muistiin ei mene mitään eli kymmeniä ei huomioida (eli samaa modulo 10 -laskentaa kuin yllä, nyt vain toiseen suuntaan eli 3+8=1). Tämän laskutoimituksen tulos on luku G.

Kirjoita sitten avaimen S2 alle numerosarja 1234567890. Etsi jokainen G:n numero tältä riviltä ja korvaa se numeron yläpuolella olevalla S2-avaimen numerolla. Jos S2 alkaa vaikkapa 863..., jokainen G-avaimen ykkönen korvataan kahdeksikolla, kakkonen kuutosella ja kolmoset pysyvät kolmosina. Näin saatu avain on T.

Nyt tulee paljon ketjusummaamista, sillä T-avaimesta pitää nyt luoda summailemalla 50 numeron jono. Uudessa numerosarjassa on siis 50 numeroa, eikä siinä ole T-avainta itseään mukana. Nämä numerot ryhmitellään viideksi kymmenen numeron riviksi, ja ne ovat U-blokki.

U-blokista lasketaan kahden transposition leveydet ottamalla blokin kaksi viimeistä numeroa, jotka ovat eri numeroita. Jos blokin viimeiset numerot ovat vaikkapa 211, ensimmäisen transposition numero on 2 ja toisen on 1. Näihin numeroihin lisätään agentin koodinumero, tällä kertaa ihan tavallisena yhteenlaskuna.

Sekventialisoi T ja kirjoita tämä numero U-blokin yläpuolelle. U-blokki pistetään nyt uuteen järjestykseen sekventialisoidun T:n mukaan. Lue U-blokista pystyrivi, joka on sekventialisoidun T:n numeron 1 kohdalla, sitten U-blokin pystyrivi kohdasta 2, kohdasta 3 ja niin edelleen (0 on kymmenen ja siten yhdeksän jälkeen). Näin saadaan 50 numeron numerosarja, jossa U-blokin numerot ovat eri järjestyksessä kuin ennen.

Ota sitten ensimmäisen transposition leveyden verran numeroita uudelleenjärjestetyn U-blokin alusta ja sekventialisoi ne (jos transposition leveys on yli 10, tarvitset sekventialisoinnissa yli kymmenen meneviä numeroita, jos leveys on tasan 10, käytä kymmenen sijasta nollaa). Tämä on K1. Ota sitten U-blokista toisen transposition leveyden verran numeroita (äsken otettujen numeroiden perästä, älä käytä samoja numeroita uudestaan) ja sekventialisoi ne avaimeksi K2.

Sekventialisoi alkuperäisen U-blokin alin rivi, niin saat avaimen C.

Nyt käsillä on nippu avaimia, joilla päästään vauhtiin varsinaisessa salakirjoituksessa!

Aakkostaulu

Nyt kootaan aakkostaulu, jonka mukaan viestin kirjaimet muutetaan koodatuiksi numeroiksi. Aakkostaulun yläriville laitetaan valittu avainsana, tässä siis ASTELIN. Jos avainsanassa esiintyy samoja kirjaimia monta kertaa, niistä otetaan mukaan vain ensimmäinen. Niiden yläpuolelle kirjoitetaan avain C ja alle loput aakkosista aakkosjärjestyksessä järjestyksessä ylhäältä alaspäin ja vasemmalta oikealle, ohittaen avainsanaan sisältyvät kirjaimet.

  2 9 6 0 5 8 1 7 3 4
  A S T E L I N
7 B F J O R W Z Ö ' &
3 C G K P U X Å ° # !
4 D H M Q V Y Ä . ^ ?

Tässä C on siis 2960581734. Huomaa, että ylimmällä rivillä jää käyttämättä numerot 7, 3 ja 4 - niillä numeroidaan aakkostaulun rivit. Taulun loppuun tulee erikoismerkkejä. Koska kyse on geokätköilystä, tauluun on otettu astemerkki, piste ja minuuttien heittomerkki. ^ on viestin aloituksen tunnus, #-merkkiä käytetään numeroiden osoittamiseen.

Oman aakkostaulusi pitäisi näyttää tältä, mutta C-avain ei ole sama, joten sen ja rivinumeroiden pitäisi olla erilaiset.

Haluamme nyt koodata viestin "MINNE MIKROFILMI ON KÄTKETTY? KERRO NAATIT." Ensimmäinen tehtävä on katkaista viesti sattumanvaraisesta kohdasta ja merkitä aloituskohtaa viestin aloituksen merkillä. Kas näin: "IKROFILMI ON KÄTKETTY? KERRO NAATIT. ^ MINNE M". Näin koodinmurtajien on vaikeampi tunnistaa viestiä tavanomaisista aloituksista tai lopetuksista.

Nyt kirjaimet koodataan numeroiksi. Jos kirjain löytyy yläriviltä, se koodataan pelkästään ylärivin numerolla (ylläolevalla taululla I olisi siis 8). Jos kirjain on alemmilla riveillä, se koodataan kahdella numerolla: ensin rivi, sitten sarake. P olisi siis 30. Numerot voi kirjoittaa yhdeksi pötköksi ja purkaja tietää, että jos numero on 7, 3 tai 4, pitää seuraavakin numero lukea samaan koodiin.

Nyt jos olet koodannut viestin oikein, sinulla on 58:n numeron jono, joka alkaa 359878... Koska koodin pitää olla viidellä jaollisen pituinen, lisää loppuun täytenumeroiksi kaksi nollaa (oikeasti numeroiksi laitettaisiin jotain satunnaista, mutta käytetään tässä nyt nollia), jotta saat viestin pituudeksi tasan 60 numeroa.

Amatööri lopettaisi koodaamisen tähän, mutta vaikka tämä koodi arpookin kirjaimille numerot melkoisen pyörityksen kautta ja osaa kirjaimista vastaa yksi ja osaa kaksi numeroa, koodin murtaminen olisi silti helppoa.

Koodin sekoittaminen: ensimmäinen transpositio

Kirjoita nyt koodi K1 ja lado viesti sen alle riveiksi, jotka ovat yhtä pitkiä kuin K1. Viimeinen rivi voi jäädä vajaaksi, mutta se ei haittaa.

Nyt viesti sekoitetaan samalla tavalla kuin U-blokki aikaisemmin, eli ota viestistä pystyrivi, joka on K1-avaimen numeron 1 kohdalla (älä ota mukaan K1-avaimen numeroa), sitten pystyrivi 2, pystyrivi 3 ja niin edelleen. Viesti on sekoitettu ensimmäisen kerran.

Koodin sekoittaminen: toinen transpositio

Toinen transpositio sekoittaa koodia uudestaan ja on edellistä mutkikkaampi. Nyt koodi pitää kirjoittaa rikottuun kuvioon, jonka muoto tällainen (tässä K2 on hatusta vedetty, käytä aikaisemmin saamaasi K2:n arvoa):

K2: 5 6 3 2 4 1 7 8
    x x x x x
    x x x x x x
    x x x x x x x
    x x x x x x x x
    x x x
    x x x x 
    x x x x x
    x x x x

Siis mitä? Taulun koko riippuu viestin pituudesta ja K2:n pituudesta. Jos viestin pituus on 60 ja K2 on 8 numeroa pitkä, taulun koko on 60 / 8 = 7 täyttä riviä ja viimeiselle riville jää yli 4 numeroa.

Ensimmäiselle riville rasteja kirjoitetaan, kunnes K2-avaimessa kohdataan numero 1. Sen alle ei tule rastia (jos 1 olisi K2-avaimen ensimmäinen numero, ensimmäinen rivi jäisi tyhjäksi). Seuraavalle riville tulee yksi rasti enemmän, sitten yksi rasti enemmän ja niin edelleen, kunnes rasteja on koko K2-avaimen leveyden verran.

Jos rivejä vielä tarvitaan, sitten aloitetaan sama uudestaan, mutta tällä kertaa kuvion leveyden ratkaisee K2-avaimen numero 2. Tässä esimerkissä viimeiselle riville tulee vain 4 rastia, koska viimeiselle riville jäi yli vain 4 numeroa.

Nyt rastit korvataan koodin numeroilla. Korvaa rasteja numeroilla vasemmalta oikealle ja ylhäältä alas. Kun olet sen tehnyt, sinulle jää viestistä yli käyttämättömiä numeroita. Niillä täytetään kuvion tyhjät kohdat.

Sen jälkeen koodattu viesti luetaan jälleen taulukosta pystyrivien mukaisessa järjestyksessä ja numerot ryhmitellään viiden numeron sarjoiksi. Jos saamasi viesti alkaa 80029 ja päättyy 65930, olet toiminut oikein.

Viestitunnuksen kätkeminen

Satunnaisesti arvottu viestitunnus MI pitää vielä kätkeä viestiin, sillä vastaanottaja tarvitsee sitä koodin purkamiseen. Päivämäärän viimeinen numero kertoo, mihin kohtaan koodia viestitunnus sijoitetaan (sehän on viiden numeron blokki, joten se sujahtaa huomaamatta viestin viiden numeron blokkien sekaan). Meidän esimerkissämme päivämäärän viimeinen numero on 8, joten MI on kahdeksas blokki lopusta laskien (huomaa, että sekä 0 että 1 tarkoittavat, että MI on viestin viimeinen blokki).

Onneksi olkoon, olet onnistuneesti salakirjoittanut viestin käyttäen VIC-koodia!

Tehtävä

Sinulla on seuraavat tiedot viestistä:

  • Sen on lähettänyt agentti numero X, missä X on äsken koodaamaasi salakirjoituksen 18. merkki.
  • Päivämääräksi on sovittu Suomen ensimmäisen kätkön piilotuspäivä.
  • Avainsana on "kalossit".
  • Lauluksi on valittu "Näitä polkuja tallaan".

Viesti on:

33263 10342 90371 43994
31144 96338 53823 17799
87279 14874 23365 36177
53671 68429 12238 84742
25183 72484 97433 15227

Additional Hints (No hints available.)