Kryptologia

Kryptologia (tai kryptografia; kreikan sanoista κρυπτός kryptós, "piilossa, salainen"; ja -λογία -logia, "oppi", tai γράφειν graphein, "kirjoitus") tai salakirjoitustekniikka viittaa turvallisen viestinnän menetelmien tutkimiseen ja harjoittamiseen kolmansien osapuolten (vastustajien) läsnäolossa. Se viittaa yleisemmin vastustajien vaikutusvallan ylittävien protokollien kehittämiseen ja analysointiin. Näissä protokollissa sovelletaan useaa tietoturvan näkökohtaa, kuten datan luottamuksellisuutta, datan eheyttä, todennusta ja kiistämättömyyttä. Modernilla kryptografialla on päällekkäisyyksiä matematiikan, tietojenkäsittelytieteen ja sähkötekniikan tieteenhaarojen kanssa. Kryptografiaa sovelletaan muun muassa pankkiautomaateissa, salasanoissa ja sähköisessä kaupankäynnissä.
Ennen modernia aikakautta kryptografia oli käytännöllisesti katsoen synonyyminen salauksen kanssa. Salaus on prosessi, jonka avulla muunnetaan luettavissa oleva tieto näennäiseksi hölynpölyksi. Salatun viestin lähettäjä jakoi salauksen purkuun tarvittavat tiedot vain tarkoitetun vastaanottajan kanssa. Kryptologian menetelmät ovat ensimmäisen maailmansodan ja tietokoneiden keksimisen jälkeen muuttuneet yhä monimutkaisemmiksi ja niitä sovelletaan yhä laajemmin.
Moderni kryptografia pohjautuu hyvin paljon matemaattiseen teoriaan ja tietojenkäsittelytieteen käytäntöön. Kryptografiset algoritmit on suunniteltu laskennallisen kovuuden olettamuksien ympärille. Tämä tekee sellaisista algoritmeista vaikeita murtaa käytännössä. On teoreettisesti mahdollista murtaa sellainen järjestelmä, mutta se olisi epäkäytännöllistä tunnetuilla käytännön keinoilla. Näitä järjestelmiä kutsutaan siksi laskennallisesti turvallisiksi. Teorian kehittyminen (kuten edistysaskelet kokonaislukujen tekijöihinjako -algoritmeissa) ja nopeutuva tietotekniikka vaativat, että näitä ratkaisuja kehitettäisiin jatkuvasti. On olemassa järjestelmiä, jotka on todistettu murtamattomiksi edes rajoittamattomalla määrällä laskentatehoa. Yksi esimerkki on one-time pad. Nämä järjestelmät ovat kuitenkin vaikeampia toteuttaa kuin parhaat teoreettisesti murrettavat mutta laskennallisesti turvalliset mekanismit.
Kryptologian keskeisimpänä maksiimina voidaan pitää ns. Kerchoffin periaatetta. Periaatteen mukaan järjestelmän tulee perustua avainten salassa pitämiseen. Vihollisen on oletettava tuntevan varsinaisen salakirjoitusjärjestelmän. Kerchoffin periaatteen seuraus on se, että kuka tahansa voi avoimesti kokeilla järjestelmän turvallisuutta. Järjestelmän turvallisuus joutuu näin todelliseen koetukseen (ruuvipenkkiin). Luotettavimmat julkisissa tietoverkoissa käytettävät salakirjoitusmenetelmät noudattavat Kerchoffin periaatetta. Kuitenkin vielä nykyisin erityisesti mobiilin tietoliikenteen ja sotilassovellutusten puolella pyritään kehittämään järjestelmiä, jotka Kerchoffin periaatteen vastaisesti perustuvat itse salakirjoitusjärjestelmän salassapitämiseen.

Esihistoria

Aluksi kirjoitettujen viestien harvinaisuus suojasi viestejä. Kun useampi kuin yksi osasi kirjoittaa, sanoman salakirjoittaminen muuttui tarpeelliseksi.
Eräs vanhimmista tiedonsalaustavoista oli käytössä Egyptissä. Viesti kirjoitettiin viestinviejän kaljuksi ajettuun päähän. Tukan kasvettua viesti oli valmis lähetettäväksi. Tällä tavalla ymmärrettynä ensimmäiset salakirjoitukset olivat viestin peittämistä, eli steganografiaa.

Atbash-koodi ja Caesarin salakirjoitus

Yksi vanhimmista varsinaisista salakirjoituksista on Atbash-koodi. Siinä kirjaimistossa aakkosjärjestyksessä viimeinen kirjain vaihdetaan ensimmäiseen, toiseksi viimeinen toiseen, ja niin edelleen. Nimi atbash tulee heprean kirjaimista alef-tav-bet-shin. Suomalaisilla aakkosilla se toimisi siten, että A:sta tulisi Ö ja B:stä Ä. Atbash-koodausta käytettiin yleisesti tietyissä piireissä satoja vuosia ennen ajanlaskun alkua, ja onpa Raamatussakin Jeremian kirjassa Atbash-koodattuja nimiä. Koodia käyttävät vieläkin eräät salaseurat tai sen kaltaiset, jotka tahtovat ilmaista olevansa pitkän perinteen vaalijoita.
Suetonius kuvaa teoksessaan De vita Caesarum Julius Caesarin käyttäneen kenraaliensa kanssa viestiessään salakirjoitusta, jossa kirjain korvataan aakkosjärjestyksessä 3 kirjainta eteenpäin löytyvällä kirjaimella, ja aakkoston lopussa kierretään takaisin alkuun. Tällöin, A:sta tulee D, B:stä tulee E ja niin edespäin. Nykyisin Caesar-salauksella tarkoitetaankin tämän yleistystä, jossa aakkostossa siirrytään sovittu määrä kirjainta eteenpäin. Caesar-salauksen erästä muotoa, Rot13, jossa siirrytään 13 kirjainta eteenpäin, käytetään edelleen esimerkiksi Internet-keskusteluissa, koska koodaus toimii samalla purkuna englannin kielen aakkostolla, jossa on 26 merkkiä.

Atbash-koodin ja Caesar-salakirjoituksen murtaminen

Atbash-koodilla on vain yksi mahdollinen avain, joten se on hyvin heikko salakirjoitus. 
Caesar-koodi ja sen muunnokset on murrettavissa kokeilemalla kaikki N siirrosta aakkostossa (N = aakkoston kirjainten määrä), siis esimerkiksi englannin kielessä (= 26 aakkosta) maksimissaan 26 kokeilulla.
Kehittyneempi versio eli sekoitettu Caesar, jossa selväkielistä A:ta vastaa mielivaltainen salakirjoitettu kirjain, B:tä mielivaltainen jäljellä olevista kirjaimista jne., sisältää periaatteessa N! (N:n kertoma) määrän mahdollisia avaimia. Englantilaisella aakkosistolla (26 aakkosta) erilaisia sekoitettuja Caesar-avaimia on 26! eli 4,0329 · 10²⁶ mahdollisuutta. Tällaista määrää on liki mahdotonta käydä yksitellen läpi.
Kuitenkin mikäli tiedetään, millä kielellä salattu viesti on kirjoitettu, on sekoitettu Caesar helppo murtaa yhden vähänkin pidemmän sanoman perusteella frekvenssianalyysillä. Eri kielille voidaan muodostaa tilastollinen jakauma eri kirjainten käytöstä. Esimerkiksi englannin kielessä yleisin kirjain on E. Jos siis englanninkielisessä sekoitettua Caesaria käyttävässä koodatussa sanomassa on eniten W-kirjaimia, hyvä arvaus on, että W vastaa E-kirjainta. Vastaavasti suomen kielessä A on yleisin kirjain.

Kehittyneemmistä versioista

Seuraava kehittyneempi versio on muuttaa salakirjoitusaakkosistoa esimerkiksi viiden kirjaimen jälkeen, jolloin tilastollinen ratkaisumenetelmä vaikeutuu oleellisesti. Tätä versiota käytti esimerkiksi suomalainen salakirjoitusviivain eli ns. "matolaatikko"- menetelmä. Tämän menetelmän kehittyneempään muunnelmaan perustui myös saksalaisten toisen maailmansodan aikana käyttämä ENIGMA-salauslaite.
Edellä mainituista esimerkeistä selviää, että salakirjoituksen murtaminen on ainakin matematiikkaa, kielitiedettä ja tilastotiedettä, ja myös yleistä päättelyä.

Murtamaton koodi ja sen ongelmat

Toisin kuin yleensä luullaan on olemassa myös kryptografisesti murtamaton salausmenetelmä: kerta-avain (engl. one-time pad, OTP) -- kertakäyttöinen todellisista satunnaisluvuista koostuva avain, joka on yhtä pitkä kuin salattava viesti. Jokainen viestin merkki yhdistetään avaimen vastaavan merkin kanssa. Murtamattomuus perustuu siihen, että jokainen mahdollinen ratkaisu on yhtä todennäköinen, eikä oikeaa selvätekstiä voi erottaa muista vaihtoehdoista.
Historia on osoittanut, että kertakäyttöisiksi tarkoitettuja avainlistoja viitsitään käyttää harvoin vain yhden kerran. Jos "kertakäyttöistä" avainta käytetään useamman kerran, salateksti voidaan murtaa helposti.
Kertakäyttöisten avainlistojen käyttö on valitettavan epäkäytännöllistä suurien tietomäärien ja monien vastaanottajien kohdalla. Haasteina ovat avainlistojen turvallinen toimittaminen vastaanottajalle sekä niiden alkuperäisen valmistuksen vaatima työ. Avainlista, jonka joku on päässyt kopioimaan matkalla käyttäjälle, on täysin arvoton.
Mikäli avain on lyhyempi kuin viesti tai satunnaisluvut eivät ole aidosti satunnaisia, salaus ei voi olla täydellinen. Silti hyvin tehty salaus voi olla käytännössä äärimmäisen vaikea murtaa.
Arkikielessä murtamattomalla salauksella voidaan tarkoittaa myös salausmenetelmää, jolla salatun viestin purkuun ei tunneta muuta menetelmää kuin kokeilla kaikkia salausmenetelmän sallimia avaimia. Kyseistä purkamismenetelmää kutsutaan raa'alla voimalla (engl. brute force) purkamiseksi. Esimerkiksi AES-salausta pidetään nykyään murtamattomana.