Export page to Open Document format View page as slide show

Tietoturva

Symmetrinen salaus

  • Samaa avainta käytetään viestin salaamiseen ja salauksen purkamiseen.
    • E_{k}(M) =C; viesti (M) salataan (Encrypt) avaimella (k) ja saadaan salattu teksti (C)
    • D_{k}(C) = M
  • Salauksen lisäksi toimintaa voidaan hyödyntää osana muita turvamenetelmiä
  • Voidaan jakaa kahteen ryhmään: Lohko- ja jonosalaimiin (block and stream ciphers)
  • Suuri datankäsittelynopeus joka on ennustettavissa
    • Ajoaika riippuu suoraan viestin pituudesta
  • Pitkä hyvin tunnettu historia
    • Erilaiset algoritmin kehittämisen haasteet tuttuja
    • Hyökkäystavat tunnetaan, testausmenetelmät kehittyneet.
  • Avainten hallinnassa haasteita
    • Paikallinen salaus: Avaimen salassa pito
    • Kommunikaation salaus: avaimen jako
      • Yleensä joka istunnolla oma kertakäyttöinen avain

Symmetrinen salaus: Murtamaton salausalgoritmi

  • Viesti yhdistetään XOR funktiolla satunnaiseen avaimeen
    • C=M\oplus k
    • M=C\oplus k
  • Viestiä ei ole mahdollista tuntematta avainta
    • Avain on täysin satunnainen
      • Muussa tapauksessa hyökkääjä hyökkää avaimen muodostamista vastaan.
    • Avainta ei saa käyttää useampaan kertaan
    • Avaimen täytyy olla yhtäpitkä kuin viesti
  • EI käytännöllinen algoritmi
    • Avaimen tallennus ja siirto ongelmallista
    • Avain on yhtäpitkä kuin viesti ja se pitäisi myös suojata yhtä hyvin.

Symmetrinen salaus: Jonosalaimet

  • Pseudosatunnaislukugeneraattori
    • Pseudosatunnaislukugenraattori alustetaan alustusvektorilla (IV) ja avaimella
    • Samaa avainta käyttäessä ei generaattori näin tuota samaa bittijonoa
  • Korvaa yhden merkin selkotekstiä heti yhdellä salatulla merkillä
    • Pseudosatunnainen bittijono yhdistetään XOR funktiolla salattavaan viestiin
  • Muunnos riippuu
    • Selkotekstin merkistä
    • Avaimesta
    • Pseudosatunnaislukugeneraattorista
    • Alustusvektorista
  • Vahvuudet
    • Salauksen nopeus
    • Pieni virheen leviäminen
    • Voidaan tehdä tehokkaita hardware toteutuksia
  • Heikkoudet
    • Muutos selkotekstissä näkyy suoraan salatussa tekstissä
      • Vaatii salaimen alustuksen.
    • Alttius lisäyksillä ja muutoksille
  • Tunnettuja algoritmeja
    • RC4, SEAL, A5 (GSM)

Jonosalain: RC4 /ARCFOUR/ARC4

  • RC4 (Rivest cipher 4) on pseudosatunnaislukugeneraattori
    • Alustetaan avaimella (ja alustusvektorilla)
    • Algoritmin tulos yhdistetään salattavaan viestiin XOR funktiolla
    • Yksinkertainen algoritmi, joka toimii hyvänä esimerkkinä kuinka jonosalaimet toimivat
  • 8-tavun RC4 laatikosta S, jossa on 256 elementtiä jotka pitävät sisällään arvot 0-255
    • Kaikki arvot joita 8-bitillä voidaan esittää.
  • Alustus
    • S-laatikko: S_{0}=0,S_{1}=1\ldots S_{255}=255
    • Avainvektori K alustetaan kopioimalla avaimen bitit siihen: K_{0},K_{1}\ldots K_{255}
      • jos avain on alle 256 bittiä, kopiodaan sitä avainvektoriin vain useamman kerran.
    • Ajetaan alustus algoritmi:
      for i = 0 to 255;
      j=(j+ +)
      j=(j+S_{i}+K_{i})\,mod\,256
      swap(S_{i},S_{j})
  • Pseudosatunnaisluvun luonti
    • Osoittimet i ja j ovat aluksi 0 (Osoittavat alkioon nolla)
      i=(i+1)\: mod\:256
      j=(j+S_{i})\: mod\:256
      swap(S_{i},S_{j})
      t=(S_{i}+S_{j})\: mod\:256
      k=S_{t}

Symmetrinen salaus: Lohkosalaimet

  • Salaa lohkollisen selkotekstin merkkejä kerralla.
    • Viesti jaetaan salausta varten lohkoihin
    • Lohkon koko riippuu salaimesta, tavallisesti 64-bittiä
  • Lohkon bittien salaus riippuu koko lohkosta
    • Salauksessa hyödynnetään korvausta että sekoitusta
      • Lohkon sisällä bitit vaihtavat paikkaa
      • Lohkon sisällä pienempi joukko bittejä korvataan toisella joukolla bittejä
  • Tavoitteet: Diffusion and confusion
    • Confusion: Poistetaan viestin merkkien antama informaatio (korvaussalain)
    • Diffusion: Poistetaan viestin merkkien väliset yhteydet (sekoitussalain)
  • Lohkojen yhdistämiseen käytetään erilaisia moodeja
    • ECB (Electronic Code Book)
      • Lohkot toisistaan riippumattomia, laitetaan peräkkäin
    • CBC (Cipher Block Chaining), CFB (Cipher-Feedback Mode), OFB (Output-Feedback Mode), CTR (Counter Mode)
      • Edellinen lohko vaikuttaa jollain tavalla seuraavan lohkon koodaamiseen.
      • CFB:llä , OFB:llä ja CTR:llä, lohkosalain toimii kuten virtasalain
  • Vahvuudet
    • Pieni muutos tekstissä vaikuttaa koko lohkon tai jopa koko viestin salaukseen
    • Immuuni lisäyksille ja muutoksille
  • Heikkoudet
    • Hidas salaus
    • Virheen leviäminen
  • Tunnettuja algoritmeja: DES (1977), AES(2000), Blowfish

Lohkosalaimen lohkojen yhdistäminen

  • Lohkosalain tuottaa kiinteän kokoisen lohkon salattua tekstiä. Nämä salatut lohkot tulee yhdistää jotenkin toisiinsa.
  • Erilaisia yhdistämismentelmiä kutsutaan toiminta moodeiksi (modes of operation).
  • Moodeilla ovat itsenäisiä
    • Moodit eivät riipu salausalgoritmista
    • Eri moodeja voi käyttää kaikilla lohkosalaimilla
  • Moodit vaikuttavat sekä salauksen turvallisuuteen että salauksen ja purkamisen nopeuteen.

Lohkosalainten moodit: ECB Electronic Code Book (ECB)

  • Electronic code book (ECB)
  • Salatut lohkot kopioidaan toistensa perään.
    • Teoriassa voidaan tehdä avaimelle sähköinen koodikirja, josta kaikille mahdollisille lohkoille löytyy vastaava salattu lohko
    • Kuinka suuri koodikirja olisi yhdelle avaimelle?
  • Hyvät puolet
    • Yksinkertainen ja nopea.
    • Salaus ja purku helppo rinnakkaistaa.
    • Lohkot voidaan salata ja purkaa missä järjestyksessä tahansa.
    • Viallinen lohko ei vaikuta muiden lohkojen salauksen purkuun
  • Heikkouksia
    • Toistuvat kuviot salatun tekstin rakenteessa jäävät näkyviin salauksenkin jälkeen.
      • Koodikirja hyökkäykset
    • Lohkojen paikkoja voidaa vaihtaa
    • Lohkoja voidaan lisätä ja poistaa huomaamatta.
    • Lyhyet salattavat lohkot vaativat täydentämistä

Cipher Block Chaining (CBC)

  • Lohkot ketjutetaan toisiinsa
    • Edellisen lohko salattuna yhdistetään nykyiseen lohkoon, ennenkuin nykyinen lohko salataan
    • Yhdistäminen XOR funktiolla.
    • Purettaessa puretun lohkon tulos yhdistetään XOR:lla nykyiseen salattuun lohkoon.
    • C_{i}=E_{k}(P_{i}\oplus C_{i-1})
  • Alustus vektoria (IV) kaytetään ensimmäisen lohkon kanssa XOR:ttuna
    • IV on lohkon kokoinen
      • IV voi olla satunnainen, tai vaikka aikaleima
    • IV piilottaa säännönmukaisuudet viestin alusta.
      • toistuvat headerit esimerkiksi
  • Edut
    • Toistuvat kuviot tekstistä katoavat
    • Alustusvektorin johdosta sama teksti salattuna samalla avaimella ei ole salattuna samanlainen
    • Usemapia viestejä voidaan salata samalla avaimella.
    • Salattujen lohkojen paikkoja ei voi vaihtaa ainakaan helposti
  • Heikkoudet
    • Hitaampi kuin ECB (Ylimääräisen XOR:in verran XOR)
    • IV:n verran ylimääräsitä lähetettävää dataa
    • Ei voida tehdä esivalmisteluja ja laskemisia (vrt jonosalaimet)
    • Liian lyhyet lokot vaativat täydentämisen
    • Edellinen lohko pitää salata ennen nykyistä lohkoa
      • Algoritmin rinnakkaistus ei ole mahdollista
      • Purkamista ei voi aloittaa viestin keskeltä.
  • Virheen leviäminen
    • Bitti virhe lohkossa leivää maksimissaan kahteen seuraavaan lohkoon DES:iä käytettäessä → self healing
    • Bitin lisäys tai poisto sotkee salauksen kautta purun lisätystä bitistä eteenpäin.

Cipher-Feedback Mode (CFB)

  • Käytetään lohkosalainta jonosalaimena takaisinkytkennän kautta.
  • Salaus voidaan tehdä pienemmillekin lohkoille: n\leq cipher\, block\, size (n-bit CFB)
  • Toiminta:
    • Jono (shift register) täytetään IV:llä
    • Jono salataan ja n-bittiä vasemmalta XOR:taan selkotekstillä
    • XOR tulos lähetetään vastaanottajalla sekä lisätään salausjonon jatkoksi.
    • Salataan seuraavat n-bittiä
    • Purku käänteisessä järjestyksessä.
  • Edut
    • Toistot salattavassa materiaalissa piilotetaan
    • Samaa avainta voidana käyttää pidempään
    • Viesti voidana salata pienempinä osina.
    • Hyvä lumivyöry efekti (avalanche effect)
      • Yhden bitin muutos muokkaa koko salauksen muutetusta bitistä eteenpäin
    • Tarvitsee toteuttaa vain salaus-algoritmi.
      • Jossain algoritmeissa salaus ja purku algoritmit eroavat toisistaan suuresti
  • Haitat
    • Ei voi rinnakkaistaa
    • Virheet leviävät laajalle l. loppuun viestiin
    • Muut jonosalainten ongelmat.

Output-Feedback mode (OFB)

  • Muodostetaan lohkosalaimesta takaisinkytkennän avulla jonosalain
  • Alustetaan IV:llä
  • Takaisinkytkentä ei ole riippuvainen selko- tai salatusta tekstistä
    • C_{i}=P_{i}\oplus S_{i}\:;\: S_{i}=E_{k}(S_{i-1})
  • Turvallisuuden takia takaisinkytkentä tulee olla samankokoinen kuin lohkonkin (eli esimerkiksi DESin tapauksessa 64-bittiä)
  • Edut
    • Toistuvat kuviot selkotekstissä piiloutuvat
    • IV:n avulla satunnaisuutta
      • Samaa avainta voidaan käyttää useammin.
    • Avainvirta voidaan laskea etukäteen (salaus tapahtuu XOR:lla)
    • Virheet eivät leviä
    • Ei tarvetta viestin täydentämiselle.
    • Ainoastaan salausoperaatio tarvii implementoida lohkosalaimesta
  • Haitat
    • Muutokset selkotekstissä näkyvät suoraan salatussa tekstissä (IV auttaa)
      • Ei lumivyöry efektiä
    • Siirrettävän tiedon määrä on P+IV
    • Jonosalainten muut normaalit ongelmat

Counter Mode (CTR)

  • Laskuri moodi muokkaa lohkosalaimesta jonosalaimen salaamalla kasvavan laskurin
    • Laskurin koko on sama kuin lohkon koko
  • Lohko salaimella salataan laskuri. Tulos yhdistetään salattavan teksitn kanssa XOR funktiolla
    • C_{i}=P_{i}\oplus E_{k}(Counter_{i})
  • IV:tä käytetään piilottamaan säännönmukaisuutta viesteissä
    • IV voidaan esimerkiksi XOR:ta laskurin kanssa. (tulos saman kokoinen kuin lohko)
  • Edut
    • Toistuvuudet selkotekstissä piiloutuvat
    • Vain salaus algoritmi piilotetaan. Only encryption algorithm has to be implemented.
    • Voidaan rinnakkaistaa
    • Viestiä voidaan purkaa mistä pisteestä tahansa. (random access support)
    • Avain voidaan laskea etukäteen koska se on selkotekstistä riippumaton.
    • Viestiä ei tarvitse täydentää
  • Heikkoudet
    • Muutokset selkotekstissä näkyvät suoraan salatekstissä (IV:tä käytettävä)
      • Ei lumivyöry ilmiötä
    • Lähetettävän tiedon määrä kasvaa IV:n verran
    • Muut jonosalainten yleiset ongelmat

Lohkon täydentäminen (padding)

  • Lohko salaimet vaativat aina lohkon verran dataa salattavaksi, jolloin liian lyhyet lohkot on täydennettävä
    • Jotkut hash funktiotkin tarvitsevat täydentämistä
    • Lyhyissä viesteissä myös RSA:ssa suositellaan täydentämistä kyrptoanalyysin vaikeuttamiseksi.
  • Yleensä viestinnässä kannattaa aina täydentää viimeinen lohko epäselvyyksien välttämiseksi
    • VÄltetään salatekstin ja täydennyksen sekoittuminen.
  • Bitti täydennys (bit padding)
    • Viestin loppuun lisätään yksi 1 bitti ja sen jälkeen tarvittava määrä nollia.
    • RFC 1321
  • Tavu täydennys
    • Täydentäminen tehdään tavuittain.
    • Täydennetään esim nollilla ja viimeinen tavu kertoo täydennyksen määrän
  • Satunnaisilla biteillä täydentäminen
    • Luodaan viestin loppuun satunnaisia bittejä
    • Viestin viimeinen tavu kertoo täydennettyjen bittien määrän

Lohkosalain DES

  • DES (Data encryption standard)
    • Hyväksyttiin standardiksi USA:ssa 23 marraskuuta 1976
  • Hyödyntää sekä merkkien korvausta että paikkojen sekoittamista
    • Molempia tekniikoita käytetään lohkon sisällä useaan kertaan.
    • Operaatiot toteutetaan useaan kertaan 16:n syklin aikana
      • Yhden bitin vaikutusta salaukseen on vaikea seurata läpi kaikkien kierrosten.
  • Algoritmi käyttää 64-bittistä avainta
    • Avaimen käsittelystä johtuen avaimena toimii 56 bittinen luku.
  • Algoritmi ei ole enää turvallinen raa'an voiman hyökkäyksiä vastaan.
    • AES korvasi DES:n standardi salaimena vuonna 2001
    • DES toimii kuitenkin hyvänä esimerkkinä lohkoselainten toiminnasta

DES: Toiminta

  • Salattava viesti jaetaan 64-bitin lohkoihin
    • Lohkot salataan itsenäisesti yksikerrallaan
  • Alustus permutaatio
    • Bittien paikkoja selkotekstissä vaihdetaan
    • Ei käytännön vaikutusta turvallisuuteen
    • Tehty helpottamaan rautapohajisia toteutuksia

DES - kierrosavainten luonti

  • Salausavain lyhennetään pudottamalla joka 8's bitti pois oheista permutaatiota käyttäen
    • Tämän johdosta salausavainta luodessa ei ole tarvetta kuin 56 satunnaiselle bitille. Näiden luonnin jälkeen joka 8:nneksi bitiksi voidaan lisätä pariteettibitti. (MSB on bitti numero 1)
  • 56-bittinen avain jaetaan kahteen puolikkaaseen
  • Kierroksesta riippuen bittejä shiftataan vasemmalle joko yhden tai kaksi bittiä
  • Shiftauksen jälkeen puolikkaat yhdistetään.
  • Avain ajetaan tiivistys ja permutaation fukntion läpi, jotta saadaan 48-bittinen kierrosavain.
  • bitit 9,18,22,25,35,38,43,54 jäävät pois avaimesta
  • Laajennus permutaatio (E-box)
    • 64-bittinen selkotekstin lohko jaetaan kahteen 32-bittiseen puolikkaaseen
    • Oikea puolisko lohkosta laajennetaan 48-bittiin
      • Laajennettu puolisko on avaimen mittainen
      • Enemmän bittejä joita käsitellään myöhemmin
      • Bittien merkitystä lopputulokseen kasvatetaan.
  • E-Boxin tulos yhdistetään XOR:lla 48 bittinseen kierrosavaimeen
  • Korvaus (Substitution, S-Box)
    • Des koostuu 8:sta erilaisesta s-box:sta, jotka koostuvat 4 rivistä ja 16 sarakkeesta.
    • E-Boxin ja avaimen XOR:ttu tulos jaetaan 8:aan 6-bitin ali-lohkoon.
    • Jokainen alilohko syötetään omaan S-boxiin
      • Ensimmäinen ja viimeinen bitti alilohkosa määrittelevät käytetyn rivin
      • Keskimmäiset 4 bittiä kertovat sarakkeen josta korvaava arvo otetaan.
    • Jokainen S-box tuottaa 4 bittiä joten korvauksesta tulee ulos 8*4 =32 bittiä
  • Permutation (P-Box)
    • S-Box:n tulos ajetaan yksinkertaisen permutaation läpi
  • P-boxin tulos XOR:taan 32 bittisen lohkon vasemman puolikkaan kanssa.
  • Vasen ja oikea puolikas vaihtavat paikkaa.
  • 16 kierroksen jälken yhdistetään vasen ja oikea puolisko, jonka jälkeen tehdään lopullinen permutaatio
  • Kaikki lohkot käsitellään samalla tavalla.

DES Purku

  • Samaa algotimia käytetään salauksen purkuun
  • Ainoa ero on kierrosavainten generoinnissa
    • Salauksen purussa luodut kierros avaimet käytetään käänteisessä järjestyksessä.

Security of DES

  • Weak keys
    • Produce only 1 key instead of 16T
  • Rather weak keys
    • Produce only two different keys .
    • key pair provides same result no matter which of the keys is used.
  • Possibly weak keys
    • Produce only 4 different keys
  • total of 4+12+48=64 risky keys out of 72\,057\,594\,037\,927\,936 possible keys.
Last modified: 2013/07/01 14:42