Kaip „Gravity Falls“ gali padėti išmokyti vaikus kriptografijos pagrindų

Tai trečiadienio vakaras. Mano du sūnūs ir dukra yra pasirengę. Spaudžiu žaidimą ir pradedame kelionę, kuri mus visus nuveda toliau, nei kada nors tikėjomės.

Žiūrėjome pirmąjį „Gravity Falls“ epizodą. Vaizdai, personažai, siužetas ir humoras yra aukščiausio lygio ir mes tikrai norėjome daugiau, bet ... kreditų pabaigoje pastebėjome kažką. Kažko, ko nesitikėjome. Kažkas padarė šį serialą kur kas įdomesnį ir patrauklesnį.

An encrypted message.

Štai kaip iššifravome kodus. Mums buvo labai smagu tai daryti savarankiškai. Nieko to netikrindamas internete. Jei susidomėjau, rekomenduoju nustoti skaityti ir pabandyti tai padaryti patys. Tada galėsite grįžti ir vėliau perskaityti toliau pateiktus mano sprendimus ir paaiškinimus.

ZHOFRPH WR JUDYLWB IDOOV

Buvome tikri, kad tai buvo žinia. Iš pažiūros spėjau, kad jis užšifruotas kažkokiu pakaitiniu šifru.

Šifravimas naudojant pakaitinį šifrą iš esmės pakeičia raides kitomis raidėmis pagal tam tikrą bendrą taisyklę. Iššifravimas atliekamas atvirkščiai taikant šią taisyklę užšifruotam tekstui. Tokie šifrai nebėra naudojami, nes juos lengva sulaužyti, ty naudojant kriptografinę analizę. Daugiau informacijos rasite šiame wiki puslapyje.

Iš pradžių mes buvome per daug susijaudinę, kad dar negalėtume sutelkti dėmesio į šifrus. Mes tiesiog pripažinome, kad šifrai egzistuoja, ir nežinojome, kaip juos iššifruoti. Maniau, kad vėliau juos tiesiog sulaužysime, bet…

Po vieno epizodo mano sūnui kilo mintis. Jis norėjo žiūrėti laidos įžangą. Atgal. Pagalvojau why not? Spėk! Tam tikru metu žiūrėdami atgal galite išgirsti paslėptą pranešimą:

Trys raidės atgal

Hmm ... three letters back. Paprastai tai neturėtų prasmės. Bet mes turėjome šifrus, kurių nežinojome, kaip iššifruoti. Mums tai buvo visiškai prasminga.

Sveiki, pone Cezare

Cezario šifras yra vienas iš anksčiausiai žinomų ir paprasčiausių šifrų. Tai yra pakaitinio šifro tipas, kuriame kiekviena raidė paprastame tekste yra „paslinkta“ tam tikru vietų skaičiumi abėcėlėje. Pavyzdžiui, pasislinkus 1, A būtų pakeistas B, B taptų C ir pan. Metodas pavadintas Julijaus Cezario vardu, kuris, matyt, jį naudojo bendraudamas su savo generolais. Skaitykite daugiau čia.

Spausdinau anglišką abėcėlę visiems iš čia ir pradėjau iššifruoti:

ZWnes jei perkelsime 3raides atgal, Ztai baigsisW

HE

BYnes jei mes perkelsime 1raidę atgal, mes atsidursime, Ao kitą 2turėsime countnuo abėcėlės pabaigos, taigi galų gale taiY

Po kurio laiko mes žinojome, kad „ ZHOFRPH WR JUDYLWB IDOOV“ iš tikrųjų SVEIKI ATVYKTI Į TEMPĖS NUKRITIMĄ .

Mano vaikams tai patiko.

Kai jie manuallyiššifravo kitas žinutes, pamaniau, kad tai puiki proga parodyti jiems, ką aš darau darbe. Jiems lengviau suprasti.

Aš pradėjau naują, Swift Playgroundnes tai puikus būdas dirbti su kodu. Ir pradėjo koduoti. Parašiau tai tik savo malonumui, todėl prašau neteisti?:

Kai buvo atliktas rankinis dekodavimas, aš atsisėdau su savo vaikais prie kompiuterio. Aš paaiškinau, kad mano kodas daro tuos pačius veiksmus, kuriuos jie darė iššifruodami pranešimus. Tačiau užuot tai darius rankiniu būdu, ji yra automatinė ir gali būti naudojama daug kartų. Jie nesuprato kodo, nustebsiu, jei supras, bet esu tikras, kad jie suprato the idea.

KZKVI QZN WRKKVI HZBH: „ZFFTSDCJTSTZWHZWFS!“

Iki epizodo viskas buvo puiku 7. Pradėjome dekoduoti pirmąjį žodį ir:

KZKVIHWHSF

Oh-oh, mūsų sėkmė tiesiog baigėsi. Buvo aišku, kad šifras pasikeitė. Laimei, buvo cluepranešimas, kurį iššifravome epizodui 6:

PONAS. CEASAR IAN BŪS KITOS SAVAITĖS PAV . ATBASH pakeis

Ceasar cipherAtbash cipher

Sveiki, pone Atbashai

„Atbash“ šifras yra pakaitinis šifras su konkrečiu raktu, kuriame abėcėlės raidės yra atvirkštinės. T. y. Visi „A“ pakeičiami „Z“, visi „B“ pakeičiami „Y“ ir t. T. Iš pradžių jis buvo naudojamas hebrajų abėcėlėms, tačiau gali būti naudojamas bet kokiems abėcėlėms. Skaitykite daugiau čia. Šifruotas „Atbash“ eilutes galima rasti net Biblijoje. Apie tai galite daugiau sužinoti čia.

Šį kartą tai buvo šiek tiek daugiau laiko reikalaujanti, nes turėjome patikrinti simbolių rodyklę nuo pat pradžių ir rasti raidę su šiuo indeksu, skaičiuojamu nuo abėcėlės pabaigos. Vėlgi, mano vaikai tai iššifravo rankiniu būdu:

KPnes indeksas Kyra 11ir tada, kai mes laikome 11nuo abėcėlės pabaigoje mes gaunameP

ZA

KP

VE

IR

KZKVIPAPERTai vėl tapo prasminga.

Po kelių minučių dukra priėjo prie manęs ir paklausė, ar ji tinkamai iššifravo pranešimą. Ji padarė. Bet tai nebuvo įdomiausia. Pastebėjau, kad ji kažką parašė atspausdintame abėcėlės puslapyje. Virš abėcėlės rodyklių 1, 2, 3, …, 26ji pridėjo atvirkštinius indeksų skaičius 26, 25, 24, …, 1.

Dėl to jai nebereikėjo skaičiuoti nuo abėcėlės pabaigos. Mes, programuotojai, tai vadiname optimization. Nustebau, kad ji jau pradėjo tobulinti savo įrankių rinkinį, kad būtų lengviau dirbti.

Vėl paruošiau nedidelį kodo fragmentą, kuris sugebėjo iššifruoti pranešimus:

14–5–24–20 21–16: „6–15–15–20–2–15–20 20–23–15: 7–18–21–14–11–12–5'19 7–18– 5–22–5–14–7–5 “

Viskas buvo gerai iki epizodo 14.Tada iš mėlyno šifro vėl pasikeitė. Šį kartą negavome jokio supratimo. O gal tiesiog praleido?

Na ... gal ne visai be jokių clue. Daugiausia šifruoto teksto buvo 24mažiausia 2. Abėcėlės raidėse yra indeksai nuo 1iki 26. Remdamiesi tuo mes padarėme išsilavinusį spėjimą, kad:

1A

2B

26Z

Kai 14–5–24–20iššifruoti, kad NEXTmes žinojome, kad mūsų prielaida buvo teisinga.

Tai buvo kiek erzinantis, nes dekoduodamas nenorėjau nuimti žinutės nuo jokių simbolių. Jei tai jums netinka - pašalinkite nepalaikomus non-aplhanumeric-charactersarba pridėkite šiuo metu nepalaikomus simbolius .replacingOccurrences. Kaip aš ir sakiau. Neteiskite?

5–19–23–6–21–16 18–9–6 4–16–19 22–12–15–10–20–19–25–19

Mums vėl nepavyko, kai bandėme iššifruoti pirmąjį žodį iš pranešimo iš epizodo 20.

5–19–23–6–21–16ESWFUP

Šifras pakeistas. Bet mes lengvai nepasidavėme. Hintyra, užšifruotas, sakantis clue, kaip iššifruoti šį pranešimą. Bet aš tai palieku jums. Tiesiog labai smagu dirbti su šia medžiaga.

Atkreipkite dėmesį, kad ši serija two seasonsužpildyta mysteries and encrypted messages. Jums nebus nuobodu.

Pabaiga?

Dabar, kai žinau, kad mano vaikai mėgsta žaisti su kriptografija, turiu keletą idėjų next step. Tikrai ne paskutinį kartą jie dirbo su šifrais ir šifruotais pranešimais.

Ačiū, kad skaitėte! Tikiuosi, kad galėjau jus tuo šiek tiek sudominti. Jei iš tikrųjų bandote tai su savo vaikais, pridėkite apie tai komentarą. Man labai įdomu, ar tau buvo taip smagu, kaip mums.