80
Andmeturve ja krüptoloogia, V Andmeturve ja krüptoloogia, V Sümmeetrilised krüptoalgoritmid Sümmeetrilised krüptoalgoritmid 18. veebruar 2015 Valdo Praust [email protected] Loengukursus IT Kolledžis 2015. aasta kevadsemestril õhtustele tudengitele

Andmeturve ja krüptoloogia, V Sümmeetrilised krüptoalgoritmid

Embed Size (px)

DESCRIPTION

Andmeturve ja krüptoloogia, V Sümmeetrilised krüptoalgoritmid. 19. veebruar 2014 Valdo Praust mois @ mois .ee Loengukursus IT Kolled ž is 2014. aasta kevadsemestril õhtustele tudengitele. Krüptograafia ajalooline olemus. - PowerPoint PPT Presentation

Citation preview

Andmeturve ja krüptoloogia, VAndmeturve ja krüptoloogia, V

Sümmeetrilised krüptoalgoritmidSümmeetrilised krüptoalgoritmid

Andmeturve ja krüptoloogia, VAndmeturve ja krüptoloogia, V

Sümmeetrilised krüptoalgoritmidSümmeetrilised krüptoalgoritmid

18. veebruar 2015

Valdo Praust 

[email protected]

Loengukursus IT Kolledžis2015. aasta kevadsemestril õhtustele tudengitele 

  

18. veebruar 2015

Valdo Praust 

[email protected]

Loengukursus IT Kolledžis2015. aasta kevadsemestril õhtustele tudengitele 

  

Krüptograafia ajalooline Krüptograafia ajalooline olemusolemus

Krüptograafia (cryptography) oli ajaloolises plaanis teadus, mis tegeles teabe (andmete sisu) peitmisega võõraste pilkude eest selle ”kentsaka” üleskirjutamise teel

Krüptograafia (cryptography) oli ajaloolises plaanis teadus, mis tegeles teabe (andmete sisu) peitmisega võõraste pilkude eest selle ”kentsaka” üleskirjutamise teel

Distsipliini nimetus pärineb kreeka keelest (nagu enamik klassikaliste teaduste nimetusi):• κρνπτος (kryptos) – peidetud• γραπηο (graphō) – kirjutan

Krüptograafia tähendab kreeka keeles peidetud sõna

Üleminek käsitsi krüpteerimiselt arvutipõhisele ei muutnud esialgu krüptograafia kasutusvaldkonda

Üleminek käsitsi krüpteerimiselt arvutipõhisele ei muutnud esialgu krüptograafia kasutusvaldkonda

Diplomaatide ja sõjardite Diplomaatide ja sõjardite käsutuseskäsutuses

Traditsioonlise krüptograafia (kuni 1940ndad) ajastul oli sellel väga kitsas kasutusvaldkond: diplomaatia ja sõjandus

Paljudes riikides olid kuni 1970-80teni krüptoalgoritmid ja –seadmed oma käitumisreeglitelt võrdsustatud relvadega

Krüptograafia levik sõjardite ja diplomaatide mängumaast masspruukimisse algas seoses teabe liikumisega ülemaailmses arvutivõrgus – Internetis – ja selle kaitse vajadustega. See sai alguse 1980te lõpul ja 1990te algul

Krüptograafia levik sõjardite ja diplomaatide mängumaast masspruukimisse algas seoses teabe liikumisega ülemaailmses arvutivõrgus – Internetis – ja selle kaitse vajadustega. See sai alguse 1980te lõpul ja 1990te algul

1980ndad 1980ndad –– sõjardite sõjardite pärusmaalt masskasutusse pärusmaalt masskasutusse

Täiendava tõuke andsid siin krüptoalgoritmid ja võtted, mida ei kasutatus enam teabe konfidentsiaalsuse, vaid tervikluse kaitseks

Krüptograafia olemus Krüptograafia olemus ja roll ja roll kaasajalkaasajal

Kaasajal ei tegele krüptograafia küll enam pelgalt teabe salastuse tagamisega, vaid lisaks volitamata muutmise ärahoidmisega (tervikluse tagamisega), mida võib lugeda isegi tema põhifunktsiooniks

Kaasajal ei tegele krüptograafia küll enam pelgalt teabe salastuse tagamisega, vaid lisaks volitamata muutmise ärahoidmisega (tervikluse tagamisega), mida võib lugeda isegi tema põhifunktsiooniks

Nimetus krüptograafia (peidetud sõna) on traditsioonide tõttu jäänud küll alles ja kasutusse, kuigi tihti pole salastusega selle rakendamisel mingit tegemist

Kaasaja krüptograafia teabe Kaasaja krüptograafia teabe teisenduse tüüpvõttena teisenduse tüüpvõttena

Kaasajal on krüptograafial põhinevad võtted muutunud (Internetis) teabe kaitsmise tüüpvõteteks, ilma milleta ei ole teavet võimalik töödelda

Selle vaatlemine erivahendina on lõplikult ja jäädavalt ajalugu

Selle vaatlemine erivahendina on lõplikult ja jäädavalt ajalugu

Konfidentsiaalsuse lisandub Konfidentsiaalsuse lisandub terviklusterviklus

Kaasajal ei tegele krüptograafia küll enam pelgalt teabe salastuse tagamisega, vaid lisaks tervikluse tagamisega, mida võib lugeda tema põhifunktsiooniks

Kaasajal ei tegele krüptograafia küll enam pelgalt teabe salastuse tagamisega, vaid lisaks tervikluse tagamisega, mida võib lugeda tema põhifunktsiooniks

Nimetus krüptograafia (peidetud sõna) on traditsioonide tõttu jäänud küll alles ja kasutusse, kuigi tihti pole salastusega selle rakendamisel mingit tegemist

Krüptograafia põhimõisteidKrüptograafia põhimõisteid• Krüpteeritavat (loetamatule või muutmatule

kujule teisendatavat) teksti nimetatakse avatekstiks (plaintext)

• Krüpteeritud ehk loetamatule kujule viidud teksti nimetatakse krüptogrammiks (ciphertext)

• Avateksti teisendamist loetamatul kujul olevaks krüptogrammiks nimetatakse krüpteerimiseks ehk šifreerimiseks (encryption, enciphering)

• Krüptogrammi teisendamist avatekstiks normaalolukorras nimetatakse dešifreerimiseks (deciphering, decryption)

Krüptograafia põhimõisteid (järg)Krüptograafia põhimõisteid (järg)

• Nii šifreerimise kui ka dešifreerimise juures kasutatakse salajast võtit ((secret) key), ilma milleta on need tegevused praktikas võimatud

• Dešifreerimine on krüptogrammi teisendamine avatekstiks võtme kaasabil

• Krüptogrammist avateksti leidmist ilma salajast võtit teadmata nimetatakse krüptosüsteemi (krüptoalgoritmi) murdmiseks, millega tegeleb krüptoanalüüs

Krüptograafia ja krüptoanalüüsKrüptograafia ja krüptoanalüüs• Krüptograafia (cryptography) tegeleb

teabe teisendusmeetodite väljatöötamisega, mis kaitsekid teabe konfidentsiaalsust või terviklust

• Krüptoanalüüs (cryptanalysis) tegeleb vastupidisega – nende meetodite ehk olemasolevate krüptosüsteemide või krüpteerimisvõtete murdmisega

• Krüptograafia ja krüptoanalüüs koos koos moodustavad krüptoloogia (cryptology)

Krüptograafia Krüptograafia erijooni, Ierijooni, I

Säärane võte lubab sõltumatutel ekspertidel süsteemide turvalisust abstraktselt hinnata, pääsemata ligi kaitsmist vajavatele andmetele

Praktikas tegelevad sellega küll kitsa eriharidusega inimesed – krüptoloogid –, kes on reeglina eriteadmistega matemaatikud 

Tänapäeval on krüpteerimisalgoritmid (andmete teisendusreeglid) reeglina avalikud, kogu salastus põhineb turvalisus kasutataval salajasel võtmel (mis on lühike digitaalteabekogum)

Tänapäeval on krüpteerimisalgoritmid (andmete teisendusreeglid) reeglina avalikud, kogu salastus põhineb turvalisus kasutataval salajasel võtmel (mis on lühike digitaalteabekogum)

Krüptograafia Krüptograafia erijooni, IIerijooni, II

Nende algoritmide koostamine krüptograafia (matemaatika) alaseid eriteadmisi

Mida kauem on krüptoalgoritm avalikus kasutuses olnud, seda väiksem on tõenäosus, et tal leidub efektiivseid murdrmisvõtteid 

Kaasaja krüptograafia kasutab eranditult matemaatikute (krüptograafide) poolt koostatud tüüpalgoritme, ise oma kasutamiseks välja töötatatavad unikaalsed algoritmid on ajalugu

Kaasaja krüptograafia kasutab eranditult matemaatikute (krüptograafide) poolt koostatud tüüpalgoritme, ise oma kasutamiseks välja töötatatavad unikaalsed algoritmid on ajalugu

Krüptograafia Krüptograafia erijooni, IIIerijooni, III

Krüptoanalüüsil on oluline tehete kiirus: arvuti taktsagedus on GHZ-des, käsitsi arvutamisel heal juhul mõni Hz

Krüptograafia (tegelikult kogu krüptoloogia) on praktilise poole pealt informaatika üks rakendusi 

Kaasaja krüptograafia kasutab eranditult arvutustehnikat, käsitsi paberil arvutamine on jäädavalt ajalugu

Kaasaja krüptograafia kasutab eranditult arvutustehnikat, käsitsi paberil arvutamine on jäädavalt ajalugu

Krüptograafia Krüptograafia erijooni, IVerijooni, IV

Standardid on nagu ikka vabatahtlikud, kuid sünergeetilisel efektil põhinevas koostoimivas maailmas on mõistlik neid järgida

Ilma ühtsete standarditeta ei teki ühtset infrastruktuuri, mille eri osad saaksid koos toimida 

Kaasaja krüptograafia kasutab suurt hulka standardeid, mida järgib kogu (virtuaal)maailm

Kaasaja krüptograafia kasutab suurt hulka standardeid, mida järgib kogu (virtuaal)maailm

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

Krüpteerimine ehk šifreerimine (encryption, encipherment) nõuab salajase võtme (key) kasutamist, mis peab olema vähemalt 80 (kõrgendatud turbenõuete korral 128) bitti pikk

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

Salajase võtmega Salajase võtmega krüptokrüptoalgoritm: turvalisusalgoritm: turvalisus

Kaasajal loetakse piisavalt tugevaks vähemalt 80 biti pikkuse salajase võtmega algoritme. See välistab ammendava otsingu võimaluse

Kaasajal loetakse piisavalt tugevaks vähemalt 80 biti pikkuse salajase võtmega algoritme. See välistab ammendava otsingu võimaluse

Järjest enam (pikaajalist turvet nõudvates vüi kõrgendatud turbeomadustega keskkondades) nõutakse 80 biti asemel koguni 128 biti pikkust võtit

Lisaks võtmepikkusele ei tohi algoritmil olla tuntavaid efekte andvaid krüptoanalüütilisi ehk murdmisvõtteid

Tuntuimad esindajad, ITuntuimad esindajad, I1. AES (võtmepikkus varieeruv; kas 128, 192 või

256 bitti). Alates 2001 de facto rahvusvaheline standard, hinnanguliselt vähemalt 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

• 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 2014) ca 100 000 EUR

Järeldus: AES-i kõik kolm versiooni on väga turvalised ja praktikas hetkel (AD 2014) täiesti murdmatud ja jäävad vast veel 10-15 aastaks

Järeldus: AES-i kõik kolm versiooni on väga turvalised ja praktikas hetkel (AD 2014) täiesti murdmatud ja jäävad vast veel 10-15 aastaks

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

IDEA: fakteIDEA: 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 aegus aga 2010-11 aastail

• 2005 publitseeriti IDEA järglane IDEA NXT (FOX), mis ei ole vana IDEA polulaarsust saavutanud

IDEA: tehniline üldkirjeldusIDEA: 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

IDEA: raundi kirjeldusIDEA: 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

Nimetatud tehete kogusumma annab piisava mittelineaarse funktsiooni; üks põhjusi selleks on, et 65537 on algarv

IDEA: raundi skeemIDEA: raundi skeem

IDEA: IDEA: üldskeemüldskeem

IDEA: võtmejaotusalgoritmIDEA: 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 seotudSeega on alamvõtmed iga kaheksa tagant omavahel seotud

IDEA: krüptoanalüüsIDEA: 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)

Järeldus: IDEA on praktiliseks kasutamiseks turvaline algoritm (eripära: väga kaua ”turul” olnud)

IDEA: eelised ja puudusedIDEA: eelised ja puudusedEelised:• 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

• 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: fakteRC4: fakte

• 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: siseehitusRC4: siseehitus

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

RC4 juhuarvugeneraatori sammRC4 juhuarvugeneraatori samm

• 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üüsRC4 praktikas ja krüptoanalüüs

Eeltoodu tõttu ollakse RC4 kasutamisel kaasajal tihti väga skeptilised ja kiputakse eelistama muid algoritme (nt AESi)

Eeltoodu tõttu ollakse RC4 kasutamisel kaasajal tihti väga skeptilised ja kiputakse eelistama muid algoritme (nt AESi)

• 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)

Retrospektiivne Retrospektiivne tagasivaade tagasivaade — — DESDES

DES on, nagu teisedki plokkšifrid, iteratiivsel põhimõttel konstrueeritud algoritm, koosnedes järgmistest protseduuridest:

DESi toimimise üldskeemDESi toimimise üldskeem

DES: algpermutatsioonDES: algpermutatsioon

DES: alamvõtmete leidmineDES: 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

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)

DES: alamvõtmete leidmineDES: alamvõtmete leidmine

Permuteerivad valikud (permuted choices):

DES: alamvõtmete leidmineDES: alamvõtmete leidmine

• 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

DES: raundide sisuDES: raundide sisu

• 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

48 biti pikkuse teabekogumi 32 bitisteks teisendamise tabeleid nimetatakse S-boksideks (S-box). Need moodustavad turvalisuse (matemaatilises) mõttes DES-i olulisima osa

DES: raundis kasutatav DES: raundis kasutatav krüpteeriv funktsioonkrüpteeriv funktsioon

Krüpteeriv funktsioon kujutab endast bititehteid, mille käigus:

DES: raundis kasutatav DES: raundis kasutatav krüpteeriv funktsioonkrüpteeriv funktsioon

DES: raundis kasutatav DES: raundis kasutatav laiendustabellaiendustabel

DES: raundis kasutatavad DES: raundis kasutatavad S-boksidS-boksid

DES: raundis kasutatavad DES: raundis kasutatavad S-boksidS-boksid

DES: raundi DES: raundi lõpp-permutatsioonlõpp-permutatsioon

On algpermutatsiooni pöördpermutatsioon (inverse initial permutation):

DES: arvutuste DES: arvutuste lõpp-permutatsioonlõpp-permutatsioon

• 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”

DES: realisatsioonid DES: realisatsioonid

• Ammendav otsing on teostatav 256 operatsiooniga – arvestades kaasaja arvutstehnika arengut on see juba täiesti reaalne maht (suur)arvuti jaoks

• On võimalik ehitada spetsiaalne paralleelsetest kiipidest koosnev murdmismasinmasin, mis maksaks hetkel (AD 2014) ca 100 000 EUR ja murraks ammendava otsingu teel algoritmi ca sekundiga

• Teiste hindadega murdmismasinad vastavalt kiiremad või aeglasemad

DESi ammendav otsingDESi ammendav otsing

• on teada märgatavat võitu andvaid krüptoanalüütilisi võtteid

• adaptiivselt valitud avateksti ründe korral piisab algoritmi murdmiseks erinevuste krüptoanalüüsiga 247 variandi läbivaatamisest 256

asemel (Biham, Shamir, 1991)

• lineaarne krüptoanalüüs võimaldab piirduda vaid 243 variandiga (Junod 2001)

Kurb järeldus: DES ei ole kaasajal enam turvaline praktikas kasutamiseks (juba ca 15 aastat)

Kurb järeldus: DES ei ole kaasajal enam turvaline praktikas kasutamiseks (juba ca 15 aastat)

DESi krüptoanalüüsDESi krüptoanalüüs

• Alternatiiv 1 (soovitav): pruukida teisi sümmeetrilisi krüprtoalgoritme, kus võti on pikem ja mille korral ei ole teada krüptoanalüütilisi võtteid

• Alternatiiv 2 (vaid siis, kui kammitsevad arhailised süsteemid): pruukida tavalise DESi asemel kolmekordset DESi (triple DES), kus võtmepikkus on 168 bitti ja mis on seni turvaline

DES: kuidas ja kas üldse DES: kuidas ja kas üldse praktikas rakendadapraktikas rakendada

Standardi viimane versioon FIPS PUB 46-3 (25. oktoober 1999) sätestaski vaid kolmekordse DESi kasutamise, standard tühistus ametlikult 2005

Standardi viimane versioon FIPS PUB 46-3 (25. oktoober 1999) sätestaski vaid kolmekordse DESi kasutamise, standard tühistus ametlikult 2005

Kolmekordne DESKolmekordne DES

• DESi võib erandjuhul (kolmekordsena) pruukida üksnes seal, kus algoritm on arhailise muutmatu süsteemi poolt rangelt ette antud. Kindlalt tuleks vältida tuleks DESi kasutamist koodiraamatu resiimis

• Kui arhailine seade/standard ei võimalda DESi kolmekordses resiimis pruukida, tuleb tõsiselt kaaluda sellise seadme kasutamise lõpetamist

DES: praktilisi soovitusi DES: praktilisi soovitusi

Mitmed vanemaid standardid ja tehnilised süsteemid nõuavad aga jätkuvalt DESi kasutamist

Mitmed vanemaid standardid ja tehnilised süsteemid nõuavad aga jätkuvalt DESi kasutamist

KokkuvõteKokkuvõte

Alates 2001. aastast on AES teistest mäekõrguselt üle ning lähiaastad seda vahet vast veelgi suurendavad

Alates 2001. aastast on AES teistest mäekõrguselt üle ning lähiaastad seda vahet vast veelgi suurendavad

Kõiki siintoodud algoritme (v.a. DES) võib praktikas kasutada ja nad on turvalised (Blowfishil leitud nõrgad võtmed ei muuda olukorda)

Väga palju on muid sümmeetrilisi krüptoalgoritme, mida käibes ringleb ja mida on teoreetikud vahel turvaliseks pidanudNende korral tasub eelistada alati mõnda eeltoodud algoritmidest, kui seda ei piira mingi jäid tehniline standard vms

Ülejäänud algoritmid?Ülejäänud algoritmid?

Rusikareeglid teiste algoritmide jaoks:• vaja võrgutsi veenduda, et ei ole

murdmidsvõtteid• vähemalt mõned aastad peab olema

olnud avalikkusele ”uurida”

Rusikareeglid teiste algoritmide jaoks:• vaja võrgutsi veenduda, et ei ole

murdmidsvõtteid• vähemalt mõned aastad peab olema

olnud avalikkusele ”uurida”