Tietoliikenneohjelmistojen ja multimedian laboratorio Tietoliikennearkkitehtuurit

1998: Kotitehtävä 8 - mallivastaukset

Huomaa! Tämä mallivastaus on viitteellinen. Vastaukset eivät välttämättä ole täysin kattavia, mutta suuntaa-antavia kuitenkin. Lisäksi tässä on korostettu vain niitä asioita jotka arvostelussa olivat tärkeitä. Joskus mallivastauksiin on myös hiipinyt virhe, jos huomaat sellaisen, ilmoita toki kurssin assareille.

1. Salausmenetelmät

Tehtävässä pyydettiin kuvailemaan 5 erilaista tapaa, joilla voidaan muodostaa salausmenetelmiä (Cryptosystems eli Ciphersystems). Tehtävään ei siis haluttu algoritmeja vastaukseksi.

Tehtävänantoon lisättiin selvennyksenä myöhemmin: "Tässä haetaan tapoja, joilla voidaan muodostaa salausmenetelmiä. Algoritmit (kuten RSA ja DES) eivät kelpaa. Julkisen ja salaisen avaimen menetelmät ovat liian laaja ja yleinen kuvaus, joten nekään eivät kelpaa. Katso viimeinen materiaalilähde ja sen osaset (lessons)."

Salausmenetelmät jaetaan korvaus- ja siirtomenetelmiin (substitution, transposition methods), joita voidaan soveltaa yksittäisiin merkkeihin tai merkkien bittiesityksiin, näiden menetelmien yhdistämiseen tulosalausmeneteliksi (product cipreh method). Korvausmenetelmät muuttavat selväkielisen viestin kirjaimet toisiksi, siirtomenetelmät uudelleenjärjestelevät selväkielisen viestin kirjaimet.

  1. Yksinkertainen korvausmenetelmä: Jokainen alkuperäisen viestin kirjain korvataan toisella kirjaimella. Esim. Aakkosto "abcd...xyz" korvataan aakkostolla "def...xyzabcd". Tämä on erittäin helppo murtaa jopa silmäillen kielen yleisiä rakenteita, koska sanavälit säilyvät.
  2. Korvausmenetelmä ja viestin sanarajojen rikkominen: korvataan jokainen kirjain kuten edellä, mutta tehdään sanoista tasamittaisia. Murtuu erittäin helposti tutkittaessa kielen tilastollisia ominaisuuksia.
  3. Kertakäyttöavain (One time pad): selväkieliselle viestille luodaan yhtä pitkä ja varmasti satunnainen aakkosto, jota käytetään vain kerran viestin salaukseen ja vastaanottopäässä purkuun. Käytännössä ja teoriassa purkamaton. Satunnaisuuden aste on tärkeä.
  4. Monikirjainkorvaukset (multiliteral substitution) Esimerkkinä vokaalisalaus (vowel cipher), jossa aakkosto kirjoitetaan neliömatriisiin, jota indeksoidaan vokaalipareilla tyyliin aa = a, oi=s ...
    
                     A   E   I   O   U
                    ------------------
                  A |a   b   c   d   e
                    |
                  E |f   g   h   i/j k
                    |
                  I |l   m   n   o   p
                    |
                  O |q   r   s   t   u
                    |
                  U |v   w   x   y   z
    
    	salattu		aa	os	eo	aa
    	salaamaton	a	s	i	a
    
    

    Salattu viesti on kaksi kertaa selväkielistä pidempi ja helposti aukeava analysoimalla vokaaliparien esiintymistiheyttä. Monikirjainkorvaukset tunnistuvat helposti siitä, että niissä käytetään vain pientä osaa mahdollisista aakkosista.

  5. Jaksollisista salauksista (periodic ciphers) hyvä esimerkki on koko Viggy-perhe ja sille lempinimen antanut kantamenetelmä, Vigeneren salausalgoritmi (Vigenere Cipher). Siinä selväkielinen teksti kryptataan avaimella lisäämällä selväkielisen tekstin ensimmäiseen avaimen ensimmäinen merkki, toiseen merkkiin avaimen toinen merkki jne. Vigeneren menetelmä ei ole turvallinen. Purkaminen onnistuu kielen tilastollisten ominaisuuksien perusteella, kunhan avaimen pituus saadaan selvitettyä.

2. Kryptoanalyysi

"Cryptography is the science of writing messages that no one except the intended receiver can read. Cryptanalysis is the science of reading them anyway." - Randy Nichols (LANAKI)

Kryptoanalyysi on salatun viestin purkamista ilman, että tiedetään salausavainta. Purkuprosessi koostuu käytetyn kielen päättelystä, salausmenetelmän ratkaisemisesta, käytetyn avaimen tai koodin (osan) löytämisestä ja selväkielisen viestin uudelleenkoostamisesta. Tehtävään haettiin vastaukseksi tapoja, miten viestiä voidaan purkaa, ei itse purkuprosessin kuvausta.

Riittävä lähde vastaukseksi oli johdanto SSH:n Cryptografy A-2-Z:ssa ja erittäin hyviä lähteitä olivat kaikki oppitunnit Classical Cryptography Course:ssa.

Menetelmät riippuvat käytettävissä olevasta materiaalista.

  1. Salatun tekstin hyökkäys (Ciphertext-only attack): Vaikein tapaus, sillä sisällöstä ei ole ennalta tietoa ja työskentely tapahtuu vain salatun viestin perusteella. Dokumenttien ja kirjeiden usein määrämuotoiset aloitukset helpottavat analyysiä.
  2. Tunnetun selväkielitekstin tapauksessa (Known-plaintext attack) hyökkääjällä on sekä salattu että purettu viesti (tai osia siitä), ja hän yrittää selvittää avaimen (tai loput viestistä).
  3. Valitun selväkielitekstin hyökkäyksessä(Chosen-plaintext attack) mikä tahansa teksti on salattavissa avaimella, jota koitetaan tällätavoin selvittää. RSA mm. on haavoittuva tälle menetelmälle.
  4. Mies välissä -hyökkäyksessä (Man-in-the-middle attack) päästään tietoliikenneyhteyteen väliin, ja avaintenvaihdossa hyökkääjä suorittaa erillisen avaimenvaihdon kummankin osapuolen kanssa. Hyökkääjä keskustelee kummankin osapuolen kanssa salatusti tekeytyen vastaanottaja tai lähettäjäpääksi, ja osapuolet erheellisesti uskovat kaiken tapahtuvan turvallisesti.
  5. Ajoitushyökkäyksessä(Timing attack) hyökätään algoritmin toteutusta vastaan mittaamalla toistuvasti salauksen viemää aikaa, joka joissain toteutuksissa (RSA; Diffie-Hellman) riippuu käytettävästä avaimesta.

3. Vahva ja heikko salaus

Tehtävässä pyydettiin 5 tuntomerkkiä vahvalle salaukselle. Näistä 4 löytyi suoraan Cryptography FAQ:ista, osasta (03/10: Basic Cryptology). Viidenneksi kelpasi mikä tahansa edellisten kanssa ristiriidaton ominaisuus.

  1. Turvallisuuden määrää avaimen salaisuus ennemmin kuin algoritmin oletettu salaisuus.
  2. Julkinen algoritmi, joka kestää tunnetut hyökkäykset. Jos sitä ei ole uskallettu antaa yleisesti testattavaksi, ei siihen voi luottaa.
  3. Avainavaruus on suuri, jotta kaikkien mahdollisten purkuavainten kokeilu kestää kauan.
  4. Salattu viesti näyttää tilastollisesti satunnaiselta eli kestää tilastomenetelmiin perustuvia analyysejä.
  5. Voidaan ehkä todistaa matemaattisesti vaikeaksi tai aikaa vieväksi ratkaista: esim. RSA:n vahvuus riittävän isojen avaimien kanssa perustuu siihen, että on hidasta jakaa iso kokonaisluku tekijöihinsä.

4. Termejä

  1. Brute force -hyökkäys

    Kryptoanalyyttinen menetelmä, jossa käydään systemaattisesti läpi raakaa laskentavoimaa hyväksikäyttäen kaikki mahdolliset vaihtoehdot.

  2. Hash funktiot

    Hajautusfunktio on yksisuuntainen funktio, joka tiivistää viestin vakiokokoiseen hajautusarvoon. On hyvin epätodennäköistä, että kahdella viestillä on sama tulos.

  3. Digitaalinen allekirjoitus

    Varmistus sille, että viestin lähettäjä on todella se, joka hän väittää olevansa. Viestiin liitetään sen pohjalta laskettu, lähettäjän salaisella avaimella salattu koodi, joka voidaan purkaa lähettäjän julkisella avaimella.

  4. Julkisen avaimen salausmenetelmät

    Asymmetrinen salausmenetelmä: käytetään eri salausavaimia viestin salaukseen ja purkuun. Salausavain on julkinen ja sillä voidaan salata vain avaimen julkaisijalle lähetettävät viestit. Purkuavain on salainen ja sen avulla avaimen haltija voi avata saamansa viestit.

  5. Salaisen avaimen salausmenetelmät

    Symmetrisiä salausmenetelmiä, jotka käyttävät samaa avainta salaukseen ja purkuun.

  6. Steganografia

    Kätketään viestin olemassaolo. Piilotetaan lähetettävä viesti muun informaation sisään, toiseen viestiin, kohinan sekaan kuva- tai äänitiedostoon.

  7. Nollatietotodistus

    Todistus, jossa henkilö A todistaa henkilölle B, että hän tietää salaisuuden ilman, että hän paljastaa salaisuutta tai sen osia.

5. Lyhenteitä

  1. ACL

    Access Control List: Pääsylista. Resurssiin (tiedostoon tms.) liittyvä lista, joka kertoo mitä oikeuksia kullakin käyttäjällä on ko. resurssiin.

  2. C = E_K(P)

    C=ciphertext, K=key, P=plaintext, E=encryption algorithm: Selväkielinen viesti P Salataan algoritmilla E käyttäen avainta K ja saadaan salattu viesti C.

  3. CBC

    Cipher Block Chaining: Lohkosalaustapa, jossa edellinen salattu lohko yhdistetään selvätekstiin ennen salausta. Samanlaiset selväkieliset lohkot kryptaantuvat erilaisiksi (vrt. ECB).

  4. CFM:

    Cipher Feedback Model: tunnetaan myös nimellä CFB (Cipher FeedBack). Sama kuin CBC, mutta lohkon koko on 8 bittiä. Soveltuu hyvin, jos halutaan salata jokin tiedonsiirtokanava, jossa välitetään 8 bittisiä merkkejä. Samanlaiset selväkieliset lohkot kryptaantuvat erilaisiksi (vrt. ECB).

  5. DES

    Data Encryption Standard: DES on 1970-luvulla kehitetty, laajalle levinnyt salaisen avaimen lohkosalausalgoritmi, josta USA:n hallitus teki standardin. Käyttää 64-bittisiä lohkoja ja 56-bittistä avainta.

  6. ECB

    Electronic Codebook Mode: DESin peruslohkosalausmoodi. Tapa käyttää lohkosalausta, jossa eri lohkot salataan toisistaan riippumatta eli samasta selväkielisestä lohkosta tulee samalla avaimella samanlainen salattu lohko. Muissa lohkosalausmoodeissa salaus riippuu edellisistä lohkoista (vrt. CBC, CFM, OFB).

  7. OFB

    Output FeedBack: eräs tapa käyttää lohkosalausta, mentelmässä salaus ja salauksen purku ovat identtisiä.

  8. RSA

    Rivest-Shamir-Adleman: laajasti käytetty julkisen avaimen salausjärjestelmä, jota voidaan käyttää salaukseen ja digitaalisiin allekirjoituksiin.

  9. SPKI

    Simple Public Key Infrastructure: IETF:n suunnitelema avaimenhallintainfrastruktuuri (avain- ja allekirjoitusformaatit, avaintenhallintaprotokollat yms) julkisten avaimen menetelmien käyttämiseksi Internetissä.

  10. TTP

    Trusted Third Party: luotettu kolmas osapuoli, johon muut luottavat esim. sertifikaattien tarkistusta varten.

    **********************************
    Tämän sivun sisällöstä vastaavat tlarkin assarit, E-mail: tlark@tcm.hut.fi.
    Sivun sisältöä on viimeksi päivitetty 3.12.1998.
    URL: http://www.tcm.hut.fi/Opinnot/Tik-110.300/1998/tehtava_08_malli.html