1 / 57

Andmeturve ja krüptoloogia, V III Alternatiivseid sümmeetrilisi algoritme AESile

Andmeturve ja krüptoloogia, V III Alternatiivseid sümmeetrilisi algoritme AESile. 18. oktoober 2011 Valdo Praust mois @ mois .ee Loengukursus IT Kolled ž is 2011. aasta sügissemestril. Krüptoalgoritmide peamised liigid.

belle
Download Presentation

Andmeturve ja krüptoloogia, V III Alternatiivseid sümmeetrilisi algoritme AESile

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Andmeturve ja krüptoloogia, VIIIAlternatiivseid sümmeetrilisi algoritme AESile 18. oktoober 2011 Valdo Praust mois@mois.ee Loengukursus IT Kolledžis 2011. aasta sügissemestril

  2. Krüptoalgoritmide peamised liigid Sümmeetrilised ehk salajase võtmega krüptoalgoritmid (on traditsioonilised e ajaloolised) Asümmeetrilised ehk avaliku võtmega krüptoalgoritmid (levinud viimase 20 aasta jooksul) Krüptograafilised sõnumilühendid jms sellesarnased funktsioonid Eriotstarbega algoritmid tõestusteks, autentimisteks, ajatempli jaoks jm

  3. Sümmeetriline ehk salajase võtmega krüptoalgoritm Salajase võtmega krüptoalgoritm (secret key cryptoalgorithm) ehk sümmeetriline krüptoalgoritm (symmetric cryptoalgorithm), on selline, kus nii šifreerimisel kui ka dešifreerimisel kasutatakse sama (salajast) võtit • Et sümmeetriline krüptoalgoritm oleks praktikas turvaline, peab: • võti olema 80 bitti pikk (võimalusel tegelikult 128 bitti); vastasel korral on algoritmi võimalik murda ammendava otsinguga • ei tohi olla teada olulist efekti andvaid krüptoanalüütilisi võtteid

  4. Salajase võtmega krüptoalgoritm

  5. Salajase võtmega krüptoalgoritm: kasutusalad Neid on kaks: • konfidentsiaalse teabe edastamiseks üle (mitte pealtkuulamiskindlate) võrkude • konfidentsiaalsete teabekogumite salvestamine avalikus keskkonnas sooviga teabe saajate hulka piirata • pseudojuhusliku bitijada genereerimine turvaliseks kustutamiseks

  6. Plokk- ja jadašifrid Sümmeetrilised krüptoalgoritmid jagatakse plokk- ja jadašifriteks. Plokkšifrid on palju enam levinud kui jadašifrid • Plokkšifri (block cipher) korral jagatakse avatekst teatud pikkustega plokkideks, mis krüpteeritakse ükshaaval. Kas ja kuidas järgmise ploki tulemus eelmisest sõltub, määrab ära plokkšifri kasutusresiim • Jadašifri (stream cipher) korral leitakse salajasest võtmest teatud algoritmi alusel võtmejada (key sequence), mis liidetakse mooduliga (XOR) avatekstile

  7. Plokkšifri ploki tüüpne siseehitus

  8. Plokkšifrit iseloomustavad parameetrid • Võtme pikkus • Ploki pikkus (vahel võrdub võtme pikkusega, aga ei pruugi) • Raundide arv (ja vahel raunditüüpide arv) • Võtmejaotusalgoritmi olemasolu • Raundivõtmete arv (võtmejaotusalgoritmi olemasolu korral) • Raundivõtme(te) pikkus (võtmejaotudsalhoritmi olemasolu korral) • Enne raunde tehtavate eeltegevuste ja pärast raunde tehtavate järeltegevuste olemasolu

  9. Krüptograafia kaks põhivõtet raundi “ehituskividena” • substitutsioon(substitution) – olemasolevate märkide asendamine teiste märkidega • transpositsioon ehk permutatsioon(transposition, permutation) – olemasolevate märkide järjekorra muutmine Valdav enamik plokkšifrite raundi sees tehtavaid teisendusi on nende kahe põhivõtte keerukas sümbioos

  10. Tuntuimad esindajad, I AES ehk Rijndael (võtmepikkus varieeruv; kas 128, 192 või 256 bitti). Viimaste aastate standard, mille konkurss lõppes 2000. aasta sügisel. Vahetas välja nõrgukeseks jäänud DESi IDEA (128 bitine võti). Pärineb Šveitsist 1980te lõpust Skipjack (80 bitine võti). Pärineb 1990te algusest NSAlt (National Security Agency), oli kaua aega (kuni 1998. aastani) salastatud

  11. Tuntuimad esindajad, II RC4 (varieeruva pikkusega võti, kuni 448 bitti). Pärineb Bruce Schneierilt 1990 ndatest Blowfish (varieeruva pikkusega võti, kuni 448 bitti). Pärineb Bruce Schneierilt 1990 ndatest DES(56 bitine võti). On USA standard 1977. aastast ja oli laialt maailmas kasutusel. NB! Kaasajal on juba nõrgukene

  12. IDEA: fakte • on plokkšiffer ploki pikkusega 64 bitti (8 baiti) • kasutab 128-bitist (16-baidist) võtit • on koostatud Šveitsis, publitseeriti 1991 • on patenteeritud Šveitsi firma MediaCrypt poolt, patent aegub 2010-11 aastail • 2005 publitseeriti IDEA järglane IDEA NXT (FOX), mis ei ole vana IDEA polulaarsust saavutanud

  13. IDEA: tehniline üldkirjeldus • On projekteeritud omal ajal vastukaaluks DESile, et oleks võimalik kiire realiseerimine tarkvaras • On huvitav selle poolest, et plokkšifritele traditsiooniliste S-bokside asemel pruugib ta pööramatuid räsifunktsioone • IDEA genereerib 128 bitilisest üldvõtmest 52 16-bitist alamvõtit • IDEA koosneb kaheksast raundist • 64 bitise avateksti jagab IDEA neljaks 16-bitiseks osaks • Iga raund kasutab 6 alamvõtit, peale raunde kasutatakse veel 4 võtit

  14. IDEA: raundi kirjeldus • Raundi vältel tehakse hulga tehteid 16-bitiste plokkide ning alamvõtmetega • Raundis kasutatavad tehted on: • tavaline liitmine (mooduliga 216 ehk 65536) • XOR • korrutamine mooduliga 216+1 (65537) Nimetatud tehete kogusumma annab piisava mittelineaarse funktsiooni; üks põhjusi selleks on, et 65537 on algarv

  15. IDEA: raundi skeem

  16. IDEA: üldskeem

  17. IDEA: võtmejaotusalgoritm • esimesed 8 alamvõtit saadakse üldvõtme tükeldamisest 8 osaks • seejärel tehakse üldvõtme bititinihe 25 biti ulatuses ja leitakse nii järgmised 8 alamvõtit • seda protseduuri korratakse 7 korda, kuni leitakse 52 alamvõtit (viimased neli jäetakse kasutamata 7 x 8 = 56) Seega on alamvõtmed iga kaheksa tagant omavahel seotud

  18. IDEA: krüptoanalüüs • ammendav otsing nõuab 2128 variandi läbivaatamist • olulist võitu andvaid krüptoanalüütilisi võtteid ei ole teada –seega on algoritm praktikas murdmatu • parim tulemus on 5-raundise algoritmi mõningane murdmine valitud avateksti kollisioonründega (DeMirci 2003) Järeldus: IDEA on praktiliseks kasutamiseks turvaline algoritm (eripära: väga kaua ”turul” olnud)

  19. IDEA: eelised ja puudused Eelised: • IDEAt on hea tarkvaras realiseerida, kuna ta sisaldab tuntuid bitioperatsioone • IDEA C-keelne lähtetekst on ca paar KB suur ja koosneb veidi rohkemast kui 100 reast • On kasutatav paljudes programmides (sh PGPs) Puudused: • on patenteeritud, kuid isiklikuks (mitteäriliseks) kasutamiseks on vabalt pruugitav. Jaosvara (shareware) jaoks on litsensitingimused soodsad • AES on selgelt parem

  20. Skipjack: fakte • on plokkšiffer ploki pikkusega 64 bitti (8 baiti) • kasutab 80-bitist (10-baidist) võtit • on koostatud USAs NSA (National Security Agency) poolt 1990te algul • plaaniti kasutada Clipperi kiibis (projekt ei realiseerunud) • kirjeldus oli kuni 1998. aasta juunini salastatud

  21. Skipjack: tehniline üldkirjeldus • on projekteeritud selliselt, et oleks võimalik kiire realiseerimine tarkvaras (ei sisalda erikujulisi bititehteid) • avatekst jagatakse neljaks 16-bitiseks neljandikuks • Skipjack koosneb 32 raundist • iga raund muudab vaid ühte neljandikku (16 bitti) teabest) • kasutatakse kahte tüüpi raunde, A ja B: kaheksale A raundile järgneb 8 B raundi kasutamine • 80bitine võti jagatakse kümneks kaheksabitiliseks alamvõtmeks lihtsa jagamise teel

  22. Skipjack: raundide kirjeldus • B tüüpi raund erineb A tüüpi raundist väikeste tehniliste üksikasjade poolest XORimisel • Iga raund sisaldab põhimõtteliselt sama krüpteemisfunktsiooni G ehk nn Feisteli struktuuri, kus 16 bitise teksti teisendamiseks kasutatakse nelja alamvõtit ja permutatsiooni F • funktsioonile G eelneb raundi järjenumbri ja eelmise neljandiku XORimine

  23. Skipjack: funktsiooni G skeem

  24. Skipjack: permutatsioon F (Feisteli struktuur)

  25. Skipjack: esimesed 8 raundi (tüüp A)

  26. Skipjack: raundid 8-16 (tüüp B)

  27. Skipjack: rakendatavus • ammendav otsing nõuab 280 variandi läbivaatamist, mis ei ole kaasaja arvutitele jõukohane • ei ole teada erilisi võitu andvaid krüptoanalüütilisi võtteid • võimatute erinevuste krüptoanalüüs on tehtud 1998 vähendatud raundidega variandi jaoks; (Biham, Shamir, Birjukov) Järeldus: Skipjacki võib pidada turvaliseks algoritmiks, kuigi AESi ajastus jääb efektiivsus veidi soovida

  28. Paralleelnimetused ARC4, ARCFOUR on jadašiffer (maailmas tuntuim jadašiffer) kasutab varieeruva pikkusega võtit, mis on olla pikkuses 40 kuni 128 bitti on koostatud Bruce Schneieri poolt 1987 On saanud ülilaiat tuntuks WiFiga seotud protokollides WEP ja WPA On olemas terve RC-perekond (RC-2, RC-5, RC-6) RC4: fakte

  29. Kujutab (nagu kõik jadašifrit) endast pseudojuhuslikku bitijada generaatorit (samm 256 bitti) Siseehituses sisaldab ta kaks faasi: A. 256 bitise pikkusega bitipermutatsiooni S moodustamine B. Kahe 8-bitise indeksviida moodustamine Permutatsiooni S määrab ära võtmejaotusalgoritm algvõtmest, mis näeb välja järgmine: RC4: siseehitus

  30. Leiab 256 järgmist bitiväärtust alljärgneva algoritmi ehk PRGA (pseudo-random generation algoritm) järgi: RC4 juhuarvugeneraatori samm

  31. Jadašifrite krüptoanalüütiliste võtete efektiivsust ei saa tavaliselt väljendada kujul 2N nagu plokkšifrite oma Flucher’i Martin’i ja Shamir’i rünne (2001): võtmejada esimesed bitid (kas 768 või 3072) pole usaldusväärsed ja seega ei tohiks neid kasutada Klein’i rünne: 104-bitine RC4 murtakse minutiga (128ne on väidetavalt veel murdmatu) RC4 praktikas ja krüptoanalüüs Eeltoodu tõttu ollakse RC4 kasutamisel kaasajal tihti väga skeptilised ja kiputakse eelistama muid algoritme (nt AESi)

  32. on plokkšiffer ploki pikkusega 64 bitti (8 baiti) kasutab varieeruva pikkusega võtit, max võtmepikkus on 448 bitti on koostatud Bruce Schneieri poolt 1993 algoritmi järglane on Twofish (1990ndate lõpp, AESi üks kandidaatidest 1997-2000), mis kasutab paljusid Blowfish’i detaile Blowfish: fakte

  33. Blowfish: tehniline üldkirjeldus • koosneb 16 raundist, mille põhiosa on F: Feisteli struktuur (teisendus) • kasutab 18 32-bitist alamvõtit, mis genereeritakse algvõtmest • kasutab nelja 32-bitist S-boksi • raundide sees jagatakse 64-bitine plokk kaheks pooleks, millest iga raundi jooksul teisendatakse ühte poolt

  34. Blowfish: skeem

  35. Blowfish: võtmejaotusalgoritm Algoritmi põhijooned: • väärtustatakse S massiiv, mis on võtmega samapikkune, transtsendentse arvu π (3,1415926...) tüvenumbritega 16nd-süsteemis • XORitakse võtmeväärtus S väärtustega • asendatakse pool arvust π saadud väärtustest XORimise lõppväärtustega ja korratakse XORimise protseduuri • 521 iteratsiooni tulemusena leitakse 18 16-bitist alamvõtit

  36. Retrospektiivne tagasivaade — DES DES on, nagu teisedki plokkšifrid, iteratiivsel põhimõttel konstrueeritud algoritm, koosnedes järgmistest protseduuridest: • võtmejaotusarvutusest (key schedule calculation), mis teisendab 56-bitise võtme 16-ks 48-bitiseks alamvõtmeks (subkey), mis kasutatakse raundides • algpermutatsioonist (initial permutation) • 16 raundist (round); • lõpp-permutatsioonist (final permutation)

  37. DESi toimimise üldskeem

  38. DES: algpermutatsioon

  39. DES: alamvõtmete leidmine 56 biti pikkusest võtmest leitakse 16 pikkust raundi võtit (igaüks 48 bitti pikk) spetsiaalse võtmejaotusalgoritmi alusel. Igat raundi võtit kasutatakse täpselt ühes raundis • Algoritmi põhilised koostisosad on standardsed: • substitutsioon (bitikombinatsioonide asendamine teiste kombinatsioonidega) • permutatsioon (bittide järjekorra muutus bitijadas)

  40. DES: alamvõtmete leidmine

  41. DES: alamvõtmete leidmine Permuteerivad valikud (permuted choices):

  42. DES: raundide sisu • 64-bitine plokk jagatakse kaheks 32-bitiseks pooleks • üht 32-bitist poolt teisendatakse krüpteeriva funktsiooniga (round function), kasutades vastavat 48-bitist alamvõtit • teise poolega ei tehta midagi • saadud tulemus XORitakse teise poolega • pooled vahetatakse omavahel ära

  43. DES: raundis kasutatav krüpteeriv funktsioon Krüpteeriv funktsioon kujutab endast bititehteid, mille käigus: • laiendatatakse 32-bitine tekst kõigepealt 48-bitiseks • XORitakse sellele talle vastav 48-bitine osavõti • teisendatakse tulemus tagasi 32-bitiseks 48 biti pikkuse teabekogumi 32 bitisteks teisendamise tabeleid nimetatakse S-boksideks (S-box). Need moodustavad turvalisuse (matemaatilises) mõttes DES-i olulisima osa

  44. DES: raundis kasutatav krüpteeriv funktsioon

  45. DES: raundis kasutatav laiendustabel

  46. DES: raundis kasutatavad S-boksid

  47. DES: raundis kasutatavad S-boksid

  48. DES: raundi lõpp-permutatsioon

  49. DES: arvutuste lõpp-permutatsioon On algpermutatsiooni pöördpermutatsioon (inverse initial permutation):

  50. DES: realisatsioonid • Keerukatest bitipermutatsioonidest tingituna on DESi tarkvararealisatsioonid tunduvalt aeglasemad kui tarkvararealisatsioonid(moodsamad algoritmid on sellest puudusest vabad) • Kiiruste vahe riist- ja tarkvararealisatsioonide vahel on tuhandeid kordi ja enam • Tarkvararealisatsioonid töötavad juba 10 aastakest kaasajal kettale kirjutamise/sealt lugemise kiirusega • On tihti integreeritud (arhailisematesse) standarditesse/seadmetesse ja tehtud seeläbi “sunniviisiliseks”

More Related