Johdanto

Public domain (wikipedia)
Caesar johti Rooman armeijoita ja voitti monia taisteluita, joissa Rooman valtakunta sai itselleen lisää maita. Avain Caesarin menestykseen oli hänen kykynsä kommunikoida armeijansa kanssa salatuin viestein, minkä vuoksi hänen vihollisensa tai vihollisensa vakoojat eivät pystyneet tulkitsemaan hänen taistelusuunnitelmiaan.
Caesarin salakirjoitus
Salakirjoitus on eräänlainen koodi, jossa kirjaimia, merkkejä tai sanoja vaihdetaan niin, että viestiä ei voida tulkita helposti. Sanan piilottamista kutsutaan salaukseksi (encryption). Caesarin salakirjoituksessa salaamattoman tekstin jokainen kirjain siirretään ylös- tai alaspäin tietyllä (avaimen määrittelemällä) määrällä aakkosia. Viestien tulkitsemisen avaimena voidaan käyttää salauskiekkoa.
Kiekon sisärenkaassa ovat salatun tekstin kirjainvaihtoehdot ja ulommassa renkaassa alkuperäiset kirjaimet.
Tässä esimerkissä avainluku on 19, mikä tarkoittaa, että sisärengasta on pyöritettävä 19 kertaa oikealle alkuperäisestä asennosta, jossa kirjaimet vastaavat toisiaan.
Viestin salaaminen…
Käytämme samaa, aiemmin esitettyä pyörää, ja salaamme viestin PYTHON PROJECT.
Vaihe 1: Selvitä, mikä on avainluku? (tässä tapauksessa 19)
Vaihe 2: Liikuta sisärengasta alkuperäisestä asennosta oikealle avainluvun määräämän verran (tässä tapauksessa 19 kertaa). Jos avainluku on negatiivinen, sisärengasta liikutetaan avainluvun mukaan vasemmalle.
Vaihe 3: Kun sisä- ja ulkorengas ovat avainluvun määräämässä järjestyksessä, nähdään, mikä kirjain vastaa salakirjoituksessa alkuperäistä kirjainta. Esimerkiksi kirjainta P vastaava kirjain on i.
Vaihe 4: katsotaan vastaava kirjain muille kirjaimille. Mikä on Y:tä vastaava kirjain?
Alkuperäinen teksti: PYTHON PROJECT
Salattu viesti: irmahg ikhcxvm
Tehtävä

https://www.google.com/url?sa=i&url=https%3A%2F%2Fwww.amazon.com%2FNicolas-Berne-Caesar-Cipher-Wheel
Luodaanpa Pythonilla ohjelma, jonka avulla voidaan salata viestejä käyttäen Caesarin salakoodia.
Katso oikeaan reunaan liitetty video - How to use the Ceasar Cipher - ja pohdi, mihin kaikkeen sitä voisi käyttää. Katso myös video salakirjoituksen luomisesta ja mieti, mikä voisi olla vaikeaa ja mikä helppoa, mikä mielenkiintoista ja mikä tylsää. Mihin näitä taitoja voisi soveltaa?
Opit, miten Caesarin salakirjoitusta käytettiin ja miten se koodataan toimimaan Pythonilla. Käytettäviä Python-komentoja ovat esimerkiksi string-merkkijonot, array-taulukot, silmukat (loops) sekä syöte (input) ja ulostulo (output). Lisäksi opit käyttämään aritmeettisia perusoperaatioita ja myös tätä vaikeampia operaatioita.
Voit luoda oman salakirjoituksesi mistä tahansa, mutta esimerkit auttavat sinut alkuun.
Prosessi
Ennen kuin aloitat oppitunnin ja koodin luomisen, pohdi seuraavia asioita:
- Tiedätkö, kuka Caesar oli? Lue hänen elämästään ja teoistaan.
- Oletko kuullut Caesarin salakirjoituksesta aiemmin? Katso tämän oppitunnin videot.n.
- Keskustele luokkatovereidesi kanssa Caesarin salakirjoituksesta. Ovat he kuulleet siitä ennen? Onko se helppokäytöinen? Onko se vaikea purkaa?
Kokeile luoda salattu viesti opettajallesi tai luokkakaverillesi. Kilpailkaa siitä, kuka saa luotua vaikeimman tai hauskimman.
Ohjelman pitäisi:
- Kysyä käyttäjää salaamaan jokin viesti
- Kysyä käyttäjältä avainta
- Salata teksti avaimen avulla
- Antaa käyttäjälle salattu teksti
Prosessin vaiheet kuvataan Caesar_salaus.pdf -tiedostossa, joka on liitetty tämän sivun oikeaan reunaan. Prosessi koostuu 6 eri vaiheesta, ja tiedostossa kuvataan Python-komennot, joita tarvitaan salakirjoituksen luomiseen.
- Käynnistä Python IDE, tai käytä selaineditoria: https://www.onlinegdb.com/online_python_interpreter tai https://www.programiz.com/python-programming/online-compiler/
- Kokeile sivulla 9 (Caesar_salaus.pdf) kuvattua Python-aktiviteettia.
- Tutustu syötteisiin ja tulosteisiin, tiedostotyyppeihin, muuttujiin, silmukoihin ja if-lausekkeisiin.
- Testaa tulostus-toimintoa käyttämällä annettua koodia.
- Seuraa opasta vaiheeseen 6 asti. Muista kokeilla, toimiiko ohjelma säännöllisin väliajoin!
- Sivulla 21 on esimerkki toimivasta koodista, jota voit verrata omaan koodiisi.
Loppusanat
- Osaat luoda salakirjoituksen ja ohjelmoida sen toimimaan Pythonissa.
- Osaat luoda salatun viestin valitsemastasi aiheesta.
- Tunnet perusasiat Caesarin salakirjoituksesta ja tiedät, mihin ja miten sitä käytettiin.
Seuraavaksi:
- Nyt voit alkaa harjoitella oman salakirjoituksesi luomista.
- Luo oma salakirjoituksesi. Tee siitä haastava, mutta hauska.
- Siirry tason 2 Python-aktiviteettiin tai kokeile luonnonkatastrofi-aktiviteettia.
Arkipäivän elämässä:
- Lapset (ja aikuisetkin) luovat usein omia salakieliään ja -kirjoituksiaan, joita käytetään hyvien ystävien kesken.
- Töissä tarvitsee usein salata monenlaisia tietoja.
- Historiallisesti salausta on käytetty monenlaisiin tarkoituksiin. Viestien salaaminen auttoi esimerkiksi Caesaria voittamaan sodan
Arviointi
QUEST_LO
- Osaat nimetä eri datatyyppien muuttujia (esim. integer ja string)
- Osaat käyttää syöte-funktiota (input) ja kysyä käyttäjää määräämään muuttujan arvon
- Osaat luoda for-silmukan
- Osaat käyttää if-ehtolausetta
- Osaat käyttää kahta merkkijonomenetelmää (string-method): merkkijonojen käyttäminen ja find-funktio
- Hallitset yleisimmät laskemiseen käytettävät aritmeettiset operaatiot (sekä joitakin haastavampia)
- Ymmärrät, miten Caesarin salakirjoitus toimii ja osaat selittää toimintatavan jollekin toiselle