- CS-EJ4404
- 1. Johdanto
- 1.1 Johdatus kryptografiaan -kurssin esittely
Johdatus kryptografiaan -kurssin esittely¶
Huomio kurssin videoista
Videot on tekstitetty, joten voit katsoa niitä ilman ääniä.
Tervetuloa kurssille¶
Oletko koskaan miettinyt, mistä kryptografiassa on kyse tai miten kryptografia toimii? Kryptografia on oppi tiedon salauksesta ja suojauksesta. Se on tieteenala, jossa tiedon salaukseen ja suojaukseen sovelletaan useaa matematiikan osa-aluetta. Miksi kryptografiaa sitten tarvitaan ja mihin sitä käytetään?
Kryptografiaa hyödynnetään lähes aina, kun käytämme puhelinta, nettiä ja erilaisia digitaalisia palveluita. Kryptografia on siis erottamaton osa nykyistä digitaalista arkea.
Vastaus kryptografian tarpeeseen voi myös löytyä Neal Stephensonin romaanin Cryptonomiconin henkilöiden käymästä keskustelusta, jossa toinen henkilö kysyy: “Kuinka pitkään haluat näiden viestien pysyvän salattuna?” Tähän toinen teoksen henkilö vastaa: “Haluan näiden viestien pysyvän salaisuutena niin pitkään kuin ihminen on kykenevä pahaan.”
Tällä hetkellä vakuutetaan, että 128 bittinen AES-salaus on riittävän turvallinen? Voimmeko täysin luottaa siihen, että jokin bittimäärä tai salauksen menetelmä takaavat sen, että tieto säilyy salattuna ja suojattuna kunnes ”ihminen ei enää ole kykenevä pahaan”?
Tällä kurssilla tutustutaan kryptografian historiaan, käsitteisiin ja menetelmiin. Kurssilla esitellään kryptografiassa käytetyt keskeiset matemaattiset menetelmät sekä teoriassa että käytännössä. Matematiikasta kiinnostuneelle kryptografia on oikea aarreaitta. Ja vaikka matematiikka tuntuisi sinusta toissijaiselta, kurssilta saa silti paljon hyödyllistä tietoa kuuntelemalla luennot, lukemalla kurssin tekstit ja tutustumalla koodiesimerkkeihin.
Jos matematiikan ohella tunnet vetoa ohjelmointiin, niin tällä kurssilla esitellyt koodit toimivat kaikissa moderneissa Python 3 -ympäristöissä. Jokainen kurssilainen voi suorittaa omalla tietokoneellaan oikeita kryptografisia operaatioita.
Historiasta nykypäivään¶
Vaikka esimerkit aloitetaan kaukaa historiasta, tutustumme nykyaikaisiin ja tällä hetkellä käytössä oleviin kryptografisiin menetelmiin hyvin pian. Kurssilla näemme myös sen, että vaikka osa kryptografian matematiikasta on peräisin antiikin ajoilta, ovat useat nykykryptografian perusideat peräisin 1970- ja 1980-luvuilta. Lisäksi pääosa tänään käyttämistämme algoritmeista on kehitetty vuosina 1990-2010.
Asiat joihin tulemme tutustumaan ovat suhteellisen uutta tiedettä verrattuna moneen muuhun matematiikan osa-alueeseen. Kryptografia on tieteenalana niin tuore ja alati kehittyvä, että aiheesta kiinnostuneiden on mahdollista osallistua joidenkin uusien menetelmien kehittäjien videokoulutuksiin ja seurata edistymistä heidän blogeistaan.
Tutkimustyö kryptografian saralla on viime vuosien aikana kiihtynyt. Kyseessä on siis ala, jota kannattaa opiskella juuri nyt. Kryptografiassa abstraktit matematiikan käsitteet muuttuvat konkreettisiksi algoritmeiksi, jotka sitten muuntuvat edelleen koodiksi. Näin matematiikan voi ottaa suoraan käyttöön tiedon salauksessa ja suojauksessa.
Viime aikoina kryptografisten menetelmien kehityksessä ja tutkimuksessa on voitu siirtyä uusille osa-alueille tietokoneiden kasvaneen laskentatehon ansiosta. Tämä on mahdollistanut uudenlaisten kryptoalgoritmien kehittämisen.
Yhtenä kryptografian kehityksen kiihdyttimenä toimii kvanttitietokoneiden luoma uhka. Kvanttitietokoneisiin suunnitellun Shorin algoritmin on osoitettu pystyvän jakamaan suuria lukuja tekijöihin varsin nopeasti. Toki tämä edellyttää sitä, että on mahdollista rakentaa riittävän laskentakykyinen kvanttitietokone.
Tällainen nopea suurten lukujen jakaminen tekijöihin murtaisi osan nykyisistä salausmenetelmistä. Kurssin aikana näemme, miksi kvanttitietokoneiden laskentakyky on huomioitava tulevaisuuden kryptografisissa menetelmissä. Tämä siitä huolimatta, että tällä hetkellä vuonna 2022 suurin luku, jonka nykyiset kvanttitietokoneet ovat onnistuneet jakamaan tekijöihinsä Shorin algoritmilla on 21.
Joitakin suurempia lukuja on myös onnistuttu jakamaan tekijöihin kvanttitietokoneilla, mutta kyse on ollut erityistapauksista. Näillä menetelmillä tekijöihin jako ei siis toimi mielivaltaisilla numeroilla, jolloin sanomme että menetelmä ei ole yleistettävissä.
Esittelemme kurssin loppupuolella myös mielenkiintoisia tämän päivän kryptografian tutkimuskohteita. Näihin kuuluu muun muassa homomorfinen laskenta.
Tervetuloa matkalle kryptografiaan - Johdatus Kryptografiaan -kurssille!
Pari sanaa kurssin luomisesta¶
Tämä MOOC-kurssi on syntynyt tarpeesta lisätä ymmärrystä ja yleistä mielenkiintoa kryptografiaa kohtaan. Kurssi on suunniteltu niin, että se tukee lukio-opinnoissa sekä matematiikan että ohjelmoinnin oppimista. Myös muille kuin lukiolaisille kurssi on erinomainen johdanto kryptografiaan, joka on osa nykyisen kyberturvallisuuden ydintä.
Kurssin on tuottanut suomalainen Xiphera Oy, jonka erikoisalaa kryptografia on. Kurssimateriaalia kirjoittaessa on pyritty avaamaan ja selittämään joskus mystisiltäkin vaikuttavat kryptografian käsitteet ja menetelmät.
Kurssi tuottaminen ei olisi ollut mahdollista ilman seuraavia tahoja:
Lisäksi tahdomme kiittää kaikkia kurssin kehityksessä suoritettuihin pilotteihin osallistuneita heidän arvokkaasta palautteestaan, joka auttanut kurssin toteutuksessa.
Ensimmäinen tehtävä¶
Seuraavaksi kurssin ensimmäinen tehtävä, jossa esitetään väittämiä johdannossa käsitellyistä aiheista. Huomaa, että vastauskertoja on rajallinen määrä.
Sisältö¶
Kurssi sisältää kymmenen opetusmoduulia, joissa on yhdestä neljään osiota. Osiot vaativat noin 1-4 tuntia työskentelyä. Jos kuitenkin innostut aiheesta kovasti, verkosta löytyviin lisämateriaaleihin tutustumalla aikaa voi hurahtaa huomattavasti enemmän.
Tämä ensimmäinen opetusmoduuli toimii johdatuksena kurssilla käytettäviin työkaluihin. Jokaiseen opetusmoduuliin liittyy palautekysely, johon vastaaminen lisää suorituspisteitä.
Materiaali muodostuu ensisijaisesti itse luettavasta tekstistä. Jokaisessa osiossa on lisäksi tukimateriaalina kuvia ja/tai videoita. Kryptografisia toimintoja esitellään Python-ohjelmointikielen esimerkeillä.
Tehtävät koostuvat monivalintakysymyksistä tai esimerkkikoodeista. Oikeat vastaukset ovat pääteltävissä, kokeiltavissa tai johdettavissa esimerkkikoodien tulosteista.
Kurssin suorittaminen¶
Kurssi on tarkoitettu itseopiskeltavaksi, joten sen voi suorittaa omaan tahtiin. Kurssi ei sisällä luentoja tai muuta opetusta näillä sivuilla olevan materiaalin lisäksi. Jos törmäät esimerkiksi tekniseen ongelmaan kurssin suorittamisen aikana, kurssin henkilökuntaan saa yhteyden sähköpostista cs-ej4404 [at] aalto.fi.
Miten saan opintopisteet opintorekisteriin?¶
Aalto-yliopiston tutkinto-opiskelija
Ilmoittaudu kurssille normaalisti Sisussa.
Muiden korkeakoulujen opiskelijat ja aikuisopiskelijat
Suoritettuasi kurssin voit lähettää hakemuksen opintopisteiden rekisteröintiä varten Opintopolussa. Hakemuksen täyttämiseksi ja henkilöllisyytesi vahvistamiseksi tarvitset suomalaisen henkilötunnuksen sekä verkkopankkitunnukset tai jonkun muun suomalaisen sähköiseen tunnistautumiseen tarkoitetun tunnuksen.
Jos opiskelet parhaillaan kandidaatin tai maisterin tutkintoa suomalaisessa yliopistossa tai ammattikorkeakoulussa, täytä hakemuksesi täällä:.
Jos olet aikuisopiskelija (et suorita suorita parhaillaan tutkintoa suomalaisessa korkeakoulussa) täytä hakemuksesi täällä.
Kun hakemuksesi on hyväksytty, saat ilmoitussähköpostin, jossa on linkki opiskelupaikan vastaanottoon. Tämä on vain henkilöllisyytesi vahvistamista varten. Noudata ohjeita ja ota paikka vastaan Oma Opintopolussa.
Hakemuksia käsitellään viisi kertaa vuodessa. Valitettavasti emme voi tehdä poikkeuksia aikatauluun. Opintopisteet rekisteröidään Aalto-yliopiston opiskelijarekisteriin. Näet kaikki kurssit, joihin olet hakenut kirjautumalla Oma Opintopolkuun.
Aikuisopiskelijat voivat saada kurssista digitaalisen suoritusmerkin, jonka voit helposti jakaa esim. LinkedIn-profiilissasi. Merkkiä voi hakea, kun opintopisteet on rekisteröity. Lisätietoja FITechin digitaalisista suoritusmerkeistä FITech-verkkosivustolla.
Kurssin läpäisy¶
Osaaminen testataan monivalintakysymyksillä. Monivalintakysymykset on jaettu A- ja B-tasoihin. Vastaaminen A-tason kysymyksiin edellyttää annetun materiaalin sisäistämistä ja usein myös annettujen esimerkkikoodien ajamista ja niiden tulosten tulkitsemista.
Moduulin hyväksytty suoritus vaatii että A- ja B-tason tehtävistä kertyy yhteensä 50 pistettä. A-tason tehtävät merkitään hyväksytyksi, jos tehtävästä saa puolet pisteistä. Lisäksi tarjolla on B-tason tehtäviä. Niissä ei ole tehtäväkohtaista vähimmäispistemäärää, mutta tehtävistä saadut pisteet lasketaan mukaan kyseisen opetusmoduulin läpäisyyn. B-tason kysymyksiin vastaaminen vaatii pieniä muutoksia annettuihin koodeihin, mutta kysymykset on ohjeistettu selkeästi.
Kurssin läpäisyyn vaaditaan, että saat jokaisen opetusmoduulin kysymyksistä vähintään 50 pistettä. Jokaisessa moduulissa on jaossa yhteensä 110 pistettä, joista B-tason tehtävien osuus on moduulista riippuen 5-40 pistettä.
Kurssin jälkeen¶
Kurssin suoritettuasi:
Tunnet kryptografian tavoitteet ja käsitteet.
Ymmärrät, millaisi hyökkäysmalleja vastaan kryptografisia menetelmiä kehitetään.
Tiedät, missä kaikkialla kryptografiaa käytetään päivittäin.
Ymmärrät käytännön tasolla kryptografiassa käytettyjä matematiikan teorioita.
Olet nähnyt miten kryptografia toimii käytännössä.
Ymmärrät kryptografian roolin kyberturvallisuudessa.
Seuraavassa osiossa tutustumme oppimisympäristöön.