Andmeturve ja krüptoloogia, V II Sümmeetrilised krüptoalgoritmid. AES
description
Transcript of Andmeturve ja krüptoloogia, V II Sümmeetrilised krüptoalgoritmid. AES
Andmeturve ja krüptoloogia, Andmeturve ja krüptoloogia, VVIIII
Sümmeetrilised Sümmeetrilised krüptoalgoritmid. AESkrüptoalgoritmid. AES
Andmeturve ja krüptoloogia, Andmeturve ja krüptoloogia, VVIIII
Sümmeetrilised Sümmeetrilised krüptoalgoritmid. AESkrüptoalgoritmid. AES
12. oktoober 2010
Valdo Praust
Loengukursus IT Kolledžis2010. aasta sügissemestril
12. oktoober 2010
Valdo Praust
Loengukursus IT Kolledžis2010. aasta sügissemestril
Krüptoalgoritmide peamised Krüptoalgoritmide peamised liigidliigid
Krüptoalgoritmide peamised Krüptoalgoritmide peamised liigidliigid
1. Sümmeetrilised ehk salajase võtmega krüptoalgoritmid (on traditsioonilised e ajaloolised)
2. Asümmeetrilised ehk avaliku võtmega krüptoalgoritmid (levinud viimase 20 aasta jooksul)
3. Krüptograafilised sõnumilühendid jms sellesarnased funktsioonid
4. Eriotstarbega algoritmid tõestusteks, autentimisteks, ajatempli jaoks jm
SSümmeetriline ehk sümmeetriline ehk salajase alajase võtmega krüptovõtmega krüptoalgoritmalgoritm
Et sümmeetriline krüptoalgoritm oleks praktikas turvaline, peab:
• võti olema 128 bitti pikk (hädapäraselt 80 bitti pikk); vastasel korral on algoritmi võimalik murda ammendava otsinguga
• ei tohi olla teada olulist efekti andvaid krüptoanalüütilisi võtteid
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
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
Krüpteerimine ehk šifreerimine (encryption, encipherment) nõuab salajase võtme (key) kasutamist
Vastupidine tegevus on dešifreerimine (decryption, decipherment), mille käigus taastatakse sama salajase võtme kaasabil algsed andmed
Ilma ühte sama võtit teadmata on mõlemad tegevused võimatud
Ilma ühte sama võtit teadmata on mõlemad tegevused võimatud
Võtme osa Võtme osa ššifreerimises ja ifreerimises ja dedeššifreerimisesifreerimises
Võtme osa Võtme osa ššifreerimises ja ifreerimises ja dedeššifreerimisesifreerimises
Salajase võtmega krüptoSalajase võtmega krüptoalgoritmalgoritm
Salajase võtmega Salajase võtmega krüptokrüptoalgoritm: kasutusaladalgoritm: kasutusalad
Neid on kaks:
• konfidentsiaalse teabe edastamiseks üle (mitte pealtkuulamiskindlate) võrkude
• konfidentsiaalsete teabekogumite salvestamine avalikus keskkonnas sooviga teabe saajate hulka piirata
Tuntuimad esindajad, ITuntuimad esindajad, I1. AES (võtmepikkus varieeruv; kas 128, 192 või
256 bitti). Alates 2001 de facto rahvusvaheline standard, hinnanguliselt 70-80% kommertsvaldkonna sümmeetrilise krüptoalgoritmi kasutamisest on hetkel AES
2. IDEA (128 bitine võti). Pärineb Šveitsist 1980te lõpust
3. CAST5 ehk CAST-128 (40 kuni 128 bitine võti). Pärineb 1996. aastast Carlisle Adams’ilt ja Stafford Tavares’ilt.
Tuntuimad esindajad, IITuntuimad esindajad, II
4. Blowfish (varieeruva pikkusega võti, kuni 448 bitti). Pärineb Bruce Schreierilt 1990 ndatest
5. RC4. Jadašiffer, võtmepikkus 40 kuni 256 bitti, pärineb 1987. aastast
6. DES (56 bitine võti). On USA standard 1977. aastast ja oli laialt maailmas kasutusel. NB! Kaasajal on juba nõrgukene
Plokk- ja jadaPlokk- ja jadaššifridifrid
Sümmeetrilised krüptoalgoritmid jagatakse plokk- ja jadašifriteks. Plokkšifrid on palju enam levinud kui 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
PlokkPlokkššifrite tööresiimidifrite tööresiimid
• koodiraamatu resiim (Electronic Codebook Mode, ECM)
• ahelresiim (Cipher Block Chaining Mode, CBC)
• šifri tagasiside resiim (k-bit Cipher Feedback Mode, CFB)
• väljundi tagasiside resiim (k-bit Output Feedback Mode, OFB)
Koodiraamatu resiimKoodiraamatu resiim
Avateksti plokid krüpteeritakse üksteisest sõltumatult sama salajase võtmega:
Puudus: krüptogrammi iga plokk sõltub ainult ühest lähteteksti plokist
Puudus: krüptogrammi iga plokk sõltub ainult ühest lähteteksti plokist
Eelis: krüptogrammi iga plokk sõltub kogu eelnevast avatekstist
Eelis: krüptogrammi iga plokk sõltub kogu eelnevast avatekstist
AhelresiimAhelresiimEnne järgmise ploki krüpteerimist liidetakse avatekstile XORiga eelmise ploki lõpptulemus, s.o. krüptogramm:
ŠŠifri tagasiside ja väljundi ifri tagasiside ja väljundi tagasiside resiimidtagasiside resiimid
Šifri ja väljundi tagasiside resiimid kujutavad endast olukordi, kus on organiseeritud tagasiside
Šifri ja väljundi tagasiside resiimid kujutavad endast olukordi, kus on organiseeritud tagasiside
• šifri tagasiside korral kuuluvad tagasisidega hõlmatavasse tsüklisse nii plokkšifri plokk kui ka avateksti ja krüpteeritud teksti mooduliga 2 liitmine
• väljundi tagasiside korral kuulub tsüklisse ainult plokkšifri plokk, mis on rekurrentselt "käima lastud" mingilt algväärtuselt
Väljundi tagasiside resiimVäljundi tagasiside resiim
• Mugavaim on koodiraamatu resiim, aga see on ebaturvalisim – krüptogrammi iga bitt sõltub ainult ühest avateksti plokist
• Kasutatavaim on ahelresiim, mis annab ka piisava turvalisuse – krüptogrammi iga bitt sõltub kogu eelnevast avatekstist
• Tagasiside resiimid on harvem pruugitavad. Nt väljundi tagasiside resiim võimaldab saada pseudojuhuslikku ehk nn heleroosat bitijada (väga vajalik nt andmete kustutamisel)
Resiimide kasutamineResiimide kasutamine
• Plokkšifri plokk sisaldab endas tavaliselt mittut üksteisele järgnevat avateksti standardset teisendust, mida nimetatakse raundiks (round). Eelmise raundi lõpptulemus on järgmise raundi sisendiks
• Kas ja kuidas raundid kasutavad salajast võtit või sellest tuletatud võtmeid, määrab ära võtmejaotusalgoritm (key sequence algorithm). Võtmejaotusalgoritm võib ka puududa, sel korral kasutab iga raund otse algvõtit
• Kui võtmejaotusalgoritm eksisteerib, siis nimetatakse selle arvutatud võtmeid raundivõtmeteks (round keys)
Plokkšifri siseehitusPlokkšifri siseehitus
Plokkšifri ploki tüüpne siseehitusPlokkšifri ploki tüüpne siseehitus
• 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
Plokkšifrit iseloomustavad Plokkšifrit iseloomustavad parameetridparameetrid
KrKrüptograafia kaks põhivõtet üptograafia kaks põhivõtet raundi “raundi “ehituskividena”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
Valdav enamik plokkšifrite raundi sees tehtavaid teisendusi on nende kahe põhivõtte keerukas sümbioos
• 1977. aastal võeti ametliku krüptostandardina kõikjal USAs kasutamiseks vastu DES. DES-i näol oli tegu maailma esimese krüptograafiastandardiga, mida kasutati paar aastakümmet väga suures ulatuses
• DES oli plokkšiffer, ploki pikkusega 64 bitti ning võtmepikkusega 56 bitti
• oli standarditud, kirjeldus oli saadaval FIPS PUB 46-s (viimane versioon pärines aastast 1999, kehtis aastani 2005)
AES: saamislugu, IAES: saamislugu, I
AES: AES: saamislugu, saamislugu, IIII
• 1990te aastate lõpul oli DES oli oma 56 biti pikkuse võtmega juba nõrgukene, seepärast käivitati uue standardi – AESi – konkurss
• Uus süsteem pidi olema plokksiffer, ploki pikkuse 128 bitti ja mitmete võtmete pikkustega (128, 192 ja 256 bitti)
• 2. jaanuaril 1997. aastal kuulutas USA Rahvuslik Standardibüroo NIST (National Insitute of Standards and Technology) välja AESi (Advanced Encryption Standard) konkursi
AES: AES: saamislugu, IIsaamislugu, II
• 20. augustil 1998 kuulutas NIST 15 kandidaat-algoritmi edasise uurimise vääriliseks
• 1999. aasta augustiks sõeluti välja viis finalisti: MARS, RC6, Rijndael, Serpent ja Twofish
26. novembril 2001 kuulutati Rijndael ametlikuks konkursi võitjaks, misjärgselt sai ta laialt tuntuks AESi nime all ja kogu maailmas laia laviku osaliseks
26. novembril 2001 kuulutati Rijndael ametlikuks konkursi võitjaks, misjärgselt sai ta laialt tuntuks AESi nime all ja kogu maailmas laia laviku osaliseks
AES: fakteAES: fakte• on plokkšiffer ploki pikkusega 128, 192 või
256 bitti
• kasutab varieeruva pikkusega võtit, mis võib olla samuti 128, 192 või 256 bitti; ploki pikkus võrdub võtmepikkusega
• autorid on Joan Daemen ja Vincent Rijmen Belgiast
• võitis 26. novembril 2001 AESi konkursi, enne võitmist kandis nime Rijndael
• algoritm on publitseeritud stsandardi FIPS 197 all
AES: tehniline üldkirjeldusAES: tehniline üldkirjeldus128 bitise võtme korral koosneb 10 raundist, 192 bitise võtme korral 12 raundist ja 256-bitise võtme korral 14 raundist
Võtmejaotusalgoritm AESil puudub
Iga raund koosneb neljast erilaadsest tehtest:• asendusbait (byte sub)• ridade nihutus (shift row)• tulpade segamine (mix column)• raundivõtme lisamine (add round key)
Teksti iga bait asendatakse vastavalt ühele suurele substitutsioonile (S-boksile):
AES: asendusbaidi faasAES: asendusbaidi faas
Teksti baidid vahetatakse omavahel ära, 128-bitise ploki puhul skeemiga:
192-bitise ploki puhul skeemiga:
AES: ridade nihutuse faasAES: ridade nihutuse faas
256-bitise ploki puhul skeemiga:
AES: ridade nihutuse faasAES: ridade nihutuse faas
Raundivõtme lisamise faasRaundivõtme lisamise faas
Iga 4 baidist koosnev tulp (vt eelnev) korrutatakse järgmise 4 x 4 maatriksiga modulo 28 = 256
Igale teksti bitile XORitakse vastava osavõtme bitt
AES: tulpade segamise faasAES: tulpade segamise faas
AES: toimimiskeemAES: toimimiskeem
AES: krüptoanalüüsAES: krüptoanalüüs• ammendav otsing nõuab 2128 kuni 2256
variandi läbivaatamist
• algoritmi autorid ise on tõestanud seda suure osa teadaolevate krüptoanalüütiliste võtete korral
• olulist võitu andvaid krüptoanalüütilisi võtteid ei olnud kuni hiljutise ajani teada (seega arvati algoritm praktikas olevat murdmatu)
AES: krüptoanalüüsAES: krüptoanalüüs• 2002 oktoobris pakuti välja uudne, algebralise
krüptoanalüüsi võte (Courtois, Piperszyk) mis võib-olla võimaldab AESi murda 287 sammuga
• Seni ei ole oma keerukuse tõttu seda keegi realiseerinud
• Senini on see jäänud teoreetiliseks konstruktsiooniks, st AES on endiselt turvaline
• Veidi on saavutatud edu (2009) ka seotud võtmete ründe (related key attack) korral, kus eeldatakse mitme matemaatiliselt seotud võtme kasutamist. Praktikat see ei puuduta
• Ka lisakanali ründe võtted (side-channel attack), kus saadakse teatud teavet ploki sees toimuvast, on andnud teatud teoreetilisi tulemusi, mis praktilist turvet ei puuduta
AES: ammendava otsinguAES: ammendava otsingu ”murdmismasin””murdmismasin”
• ”Murdmismasin” (keerukas ammendavat otsingut realiseeriv spetsiaalriistvaral põhinev paralleelarvuti), mis murraks DESi sekundiga, kulutaks AES-i lihtsama variandi murdmisele sada tuhat miljonit aastat
• säärase masina valmistamine maksaks hetkel (AD 2009) veidi alla miljoni euro (ca 12 miljonit krooni)
Järeldus: AES-i kõik kolm versiooni on väga turvalised ja praktikas hetkel (AD 2009) täiesti murdmatud
Järeldus: AES-i kõik kolm versiooni on väga turvalised ja praktikas hetkel (AD 2009) täiesti murdmatud
AES: AES: realisatsioonidrealisatsioonid• AES on koostatud nii, et teda oleks mugav (kiire)
realiseerida nii riist- kui ka tarkvaras
• Riistvararealisatsioonid on küll kümneid ja vahel ka sadu kordi kiiremad
• Nii riist- kui tarkvaras saab AESi kaasajal realiseetrida ”taustana”, nt kettale lugemise ja/või kettalt kirjutamise kõrvaltegevusena
Väga laialt levinud on nii AESi tark- kui ka riistvaraversioonid
Väga laialt levinud on nii AESi tark- kui ka riistvaraversioonid