58
Andmeturve ja krüptoloogia, Andmeturve ja krüptoloogia, VIII VIII Moodsaid sümmeetrilisi Moodsaid sümmeetrilisi krüptoalgoritme krüptoalgoritme 22. oktoober 2001 Valdo Praust [email protected] Loengukursus IT Kolledžis 2002. aasta sügissemestril

Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

  • Upload
    nodin

  • View
    60

  • Download
    0

Embed Size (px)

DESCRIPTION

Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme. 22. oktoober 2001 Valdo Praust [email protected] Loengukursus IT Kolled ž is 2002. aasta sügissemestril. S ümmeetriline ehk s alajase võtmega krüpto algoritm. - PowerPoint PPT Presentation

Citation preview

Page 1: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

Andmeturve ja krüptoloogia, VIIIAndmeturve ja krüptoloogia, VIII

Moodsaid sümmeetrilisi Moodsaid sümmeetrilisi krüptoalgoritmekrüptoalgoritme

Andmeturve ja krüptoloogia, VIIIAndmeturve ja krüptoloogia, VIII

Moodsaid sümmeetrilisi Moodsaid sümmeetrilisi krüptoalgoritmekrüptoalgoritme

22. oktoober 2001

Valdo Praust 

[email protected]

Loengukursus IT Kolledžis2002. aasta sügissemestril 

  

Page 2: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

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 vähemalt 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

Page 3: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

Salajase võtmega krüptoSalajase võtmega krüptoalgoritmalgoritm

Page 4: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

Kasutatavamaid algoritme, IKasutatavamaid algoritme, I

1. IDEA.128 bitine võti. Pärineb Šveitsist 1980te lõpust

2. Skipjack. 80 bitine võti. Pärineb 1990te algusest NSAlt, oli kaua aega (kuni 1998. aastani) salastatud

3. Blowfish. Varieeruva pikkusega võti, võib olla pikk 78 baiti, s.o 624 bitti. Pärineb Bruce Schreierilt 1990ndatest

Page 5: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

Kasutatavamaid algoritme, IIKasutatavamaid algoritme, II

4. AES (Rijndael). Võtme pikkus varieeruv, võib olla 128,198 või 256 bitti. On koostatud Belgias J. Daemeni ja V.Rjimeni poolt AESi konkursi jaoks 1990te lõpul, mille ta äsja võitis

5. MARS. Võtme pikkus varieeruv, võib olla 128 kuni 448 bitti, saab suurendada 32 biti kaupa. On koostatud IBMi poolt uue krüptoalgoritmi (AES) konkursile 1990te lõpul

Page 6: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

Kasutatavamaid algoritme, IIIKasutatavamaid algoritme, III

6. RC6. Võtme pikkus varieeruv, võib olla 1 kuni 255 baiti ehk siis 2040 bitti. Autorid: R. Rivest, M. Robshaw, R. Sidney, Y.Lin. On koostatud AES konkursi jaoks 1990te lõpul

7. Serpent. Võtme pikkus varieeruv, võib olla 128, 198 või 255 bitti. Autorid: R. Anderson, E. Biham, L. Knudsen. On koostatud AES konkursi jaoks 1990te lõpul

Page 7: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

Kasutatavamaid algoritme, IVKasutatavamaid algoritme, IV

8. Twofish. Võtme pikkus varieeruv, võib olla 128,198 või 256 bitti. Autorid: B. Schneier J. Kelsey, D. Whitning, D. Wagner, C. Hall, N. Feguson. Koostatud 1998. aastal AESi konkursi jaoks.

Page 8: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

IDEA: fakteIDEA: fakte• on plokkšiffer ploki pikkusega 64 bitti (8

baiti)

• kasutab 128-bitist (16-baidist) võtit

• on koostatud Šveitsis 1980te aastate lõpul

• on patenteeritud Šveitsi firma Ascom poolt, mitteärilistel eesmärkidel võib vabalt kasutada

Page 9: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

IDEA: tehniline üldkirjeldusIDEA: tehniline üldkirjeldus• On projekteeritud selliselt, et oleks võimalik kiire

realiseerimine tarkvaras (vastukaaluks nt DESile, kus pearõhk oli pandud riistvarale)

• 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

Page 10: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

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

Page 11: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

IDEA: raundi skeemIDEA: raundi skeem

Page 12: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

IDEA: IDEA: üldskeemüldskeem

Page 13: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

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 kaks jäetakse kasutamata 7 x 8 = 56)

Seega on alamvõtmed iga 8 tagant omavahel seotudSeega on alamvõtmed iga 8 tagant omavahel seotud

Page 14: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

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

• arvestades algoritmi vanust, on see tähelepanuväärne tulemus

Järeldus: IDEA on praktiliseks kasutamiseks turvaline algoritmJäreldus: IDEA on praktiliseks kasutamiseks turvaline algoritm

Page 15: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

IDEA: eelised ja puudusedIDEA: 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 vabavarana levitatavas PGPs)

Ainus puudus: oli patenteeritud, kuid patendi tähtaeg on saanud otsa

Page 16: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

Skipjack: fakteSkipjack: 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

• kasutatakse Clipperi kiibis

• kirjeldus oli kuni 1999. aasta juunini salastatud

Page 17: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

Skipjack: tehniline üldkirjeldusSkipjack: 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

Page 18: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

Skipjack: raundide kirjeldusSkipjack: 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

Page 19: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

Skipjack: funktsiooni G skeemSkipjack: funktsiooni G skeem

Page 20: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

Skipjack: permutatsioon F Skipjack: permutatsioon F (Feisteli struktuur)(Feisteli struktuur)

Page 21: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

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

Page 22: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

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

Page 23: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

Skipjack: rakendatavusSkipjack: 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

Järeldus: Skipjacki võib pidada turvaliseks algoritmiks ning ta on IDEAst veidi kiirem

Järeldus: Skipjacki võib pidada turvaliseks algoritmiks ning ta on IDEAst veidi kiirem

Skipjack’i kasutatakse Clipperi kiibis ning ka paljudes muudes paikades

Page 24: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

• on plokkšiffer ploki pikkusega 64 bitti (8 baiti)

• kasutab varieeruva pikkusega võtit, max võtmepikkus on 448 bitti

• on koostatud Bruce Schreieri poolt 1993

Blowfish: fakteBlowfish: fakte

Page 25: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

Blowfish: tehniline üldkirjeldusBlowfish: tehniline üldkirjeldus

• koosneb 16 raundist

• kasutab 18 32-bitist alamvõtit, mis genereeritakse algvõtmest

• kasutab nelja 32-bitist S-boksi, mida kasutatakse võtmejaotusalgoritmi juures

• sarnaselt DESiga jagatakse 64-bitine plokk kaheks pooleks, millest iga raundi jooksul teisendatakse ühte poolt

Page 26: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

Blowfish: raundi kirjeldusBlowfish: raundi kirjeldusDivide x into two 32-bit halves: xL, xR

For i = 1 to 16:

xL = xL XOR Pi

xR = F(xL) XOR xR

Swap xL and xR

Swap xL and xR (Undo the last swap.)

xR = xR XOR P17

xL = xL XOR P18

Recombine xL and xR

Function F:

Divide xL into four eight-bit quarters: a, b, c, and d

F(xL) = ((S1,a + S2,b mod 232) XOR S3,c) + S4,d mod 232

Page 27: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

Blowfish: võtmejaotusalgoritmBlowfish: 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

Page 28: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

AES ehk Rijndael: fakteAES ehk Rijndael: 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

• autorid on Joan Daemen ja Vincent Rijmen Belgiast

• võitis 2. oktoobril 2000 AESi konkursi

Page 29: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

AES ehk Rijndael: tehniline AES ehk Rijndael: tehniline üldkirjeldusüldkirjeldus

128 bitise võtme korral koosneb 9 raundist, 192 bitise võtme korral 11 raundist ja 256-bitise võtme korral 13 raundist

Iga raund koosneb neljast erilaadsest tehtest:• asendusbait (byte sub)• ridade nihutus (shift row)• tulpade segamine (mix column)• raundivõtme lisamine (add round key)

Page 30: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

Teksti iga bait asendatakse vastavalt ühele suurele S-boksile:

AES eh Rjindael: asendusbaidi AES eh Rjindael: asendusbaidi faasfaas

Page 31: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

Teksti baidid vahetatakse omavahel ära, 128-bitise ploki puhul skeemiga:

192-bitise ploki puhul skeemiga:

AES ehk Rjindael: ridade AES ehk Rjindael: ridade nihutuse faasnihutuse faas

Page 32: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

256-bitise ploki puhul skeemiga:

AES ehk Rjindael: ridade AES ehk Rjindael: ridade nihutuse faasnihutuse faas

Page 33: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

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 ehk Rjindael: tulpade AES ehk Rjindael: tulpade segamise faassegamise faas

Page 34: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

AES ehk Rjindael: toimimiskeemAES ehk Rjindael: toimimiskeem

Page 35: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

AES ehk Rjindael: AES ehk Rjindael: võtmejaotusalgoritmvõtmejaotusalgoritm

Võtmejaotusalgoritmi põhjal leitakse algsest võtmest N baidi pikkust raundi võtit ( N = raudi arv x ploki pikkus)

Raundi võtmed saadakse algsest võtmest mitmete teisenduste teel, mis sisaldavad:• bitikaupa nihutamist• XORimist võtmeosade vahel• XORimist spetsiaalsete raundikondtantidega

Page 36: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

AES ehk Rjindael: AES ehk Rjindael: võtmejaotusalgoritmi koodijuppvõtmejaotusalgoritmi koodijupp

Page 37: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

AES ehk Rjindael: krüptoanalüüsAES ehk Rjindael: 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)

Page 38: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

AES ehk Rjindael: AES ehk Rjindael: algebraline krüptoanalüüsalgebraline krüptoanalüüs

• 2002 oktoobris pakuti välja uudne, algebralise krüptoanalüüsi võte, mis võib-olla võimaldab AESi murda 287 sammuga

• Seni ei ole oma keerukuse tõttu seda keegi realiseerinud

• Samas ei ole selle kasutamist AESi murdmisel ka keegi ümber lükanud

Lähikuud ja –aastad näitavad, kas tegemist on pelgalt teoreetilise konstruktsiooniga või on sel ka praktiline väärtus, st kas AES on endiselt turvaline

Lähikuud ja –aastad näitavad, kas tegemist on pelgalt teoreetilise konstruktsiooniga või on sel ka praktiline väärtus, st kas AES on endiselt turvaline

Page 39: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

• on plokkšiffer ploki pikkusega 128 bitti (16 baiti)

• kasutab kas 128-bitist, 192-bitist või 256-bitist võtit

• on koostanud IBM AESi konkursi jaoks

MARS: fakteMARS: fakte

Page 40: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

MARS: tehniline üldkirjeldusMARS: tehniline üldkirjeldus

• 128 bitist plokki vaadeldakse nelja neljast baidist koosneva osana

• Kõigepealt XORitakse võtmematerjaliga kogu plokk• Seejärel rakendatakse 8 DESi sarnast raundi, mis

sisaldab S-bokse• Nende järel rakendatakse 16 Skipjacki sarnast raundi• Lõpuks rakendatakse jälle 8 algse raundiga sarnast

raundi• Sellele järgneb XOR võtmematerjaliga• Algoritmil 40 32-bitist alamvõtit, mille genereerib

võtmejaotusalgoritm (sarnane pajude teistega)

Page 41: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

MARS: esimest tüüpi raundi MARS: esimest tüüpi raundi skeemskeem

Page 42: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

MARS: osa esimest tüüpi raundi MARS: osa esimest tüüpi raundi S-boksistS-boksist

Page 43: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

MARS: teist tüüpi raundi skeemMARS: teist tüüpi raundi skeem

Page 44: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

• on plokkšiffer, kus ploki pikkus on 128 bitti

• nii võtme pikkus kui ka raundide arv on reguleeritav

• autorid: Ron Rivest (põhiidee ja –teostus), M. Robshaw, R. Sidney, Y.Lin.

• an koostatud AES konkursi jaoks 1990te lõpul

RC6: fakteRC6: fakte

Page 45: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

RC6: tehniline üldkirjeldusRC6: tehniline üldkirjeldus

• 128 bitist plokki vaadeldakse raundides nelja 32-bitise osana

• Kasutab 44 32bitist alamvõtit, mis leitakse võtmsjaotusalgoritmiga

• Igas raundis kasutatakse kahte alamvõtit

Raundis kasutatavad tehted:• artitmeetika modulo 232

• bitikaupa nihe (lg)• ringnihe paremale/vasakule nii nii mitu

kohta, kui mingi arv näitab

Page 46: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

RC6: raundi algoritmi näideRC6: raundi algoritmi näide

Page 47: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

RC6: krüptoanalüüsRC6: krüptoanalüüs

On leitud mõningaid krüptoanalüütilisi võtteid, kuid suurest võtmepikkusest tingituna ei tee need algoritmi ebaturvaliseks

On leitud mõningaid krüptoanalüütilisi võtteid, kuid suurest võtmepikkusest tingituna ei tee need algoritmi ebaturvaliseks

Wenling, Dengguo, Sihan (Hiina) 2000:

• 256 bitise võtme korral on algoritm murtav 2212 katsega

• 192 bitise võtme korral on algoritm murtav 2172 katsega

Page 48: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

on plokkšiffer ploki pikkusega 128 bitti

võtmepikkus on 256 bitti; on olemas algoritmid, mis laiendavad 128- ja 192-bitised võtmed 256-bitiseks

autorid on Eli Biham (kaasaja ühe moodsaima krüptoanalüüsi, erinevuste krüptoanalüüsi, loojaid), R. Anderson ja L. Knudsen

on koostatud AESi konkursi jaoks

Serpent: fakteSerpent: fakte

Page 49: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

Serpent: tehniline üldkirjeldusSerpent: tehniline üldkirjeldus• koosneb 32 raundist• enne ja pärast raunde tehakse

algpermutatsioon ja selle pöördpermutatsioon• raundi sees vaadeldakse 128 bitist plokki nelja

32-bitise veeranditena• võtmejaotusalgoritm leiab 128 32-bitilist

alamvõtit olemasolevate 32bitiste osade XORimise teel

Igas raundis tehakse• XOR vastavate alamvõtmetega• teisendamine S-bokside abil• osade veerandite ringnihked• Teatud XORid osade veerandite vahel

Page 50: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

Serpent: toimimisskeemSerpent: toimimisskeem

Page 51: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

• on plokkšiffer ploki pikkusega 128 bitti (8 baiti)

• võtme pikkus varieeruv: 128,198 või 256 bitti.

• autorid: B. Schneier J. Kelsey, D. Whitning, D. Wagner, C. Hall, N. Feguson.

• on koostatud 1998. aastal AESi konkursi jaoks

• on Blowfishi edasiarendus

Twofish: fakteTwofish: fakte

Page 52: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

Twofish: tehniline üldkirjeldusTwofish: tehniline üldkirjeldus

• 128 bitist plokki vaadeldakse neljast 32-bitisest osast koosnevana

• kasutab 40 32-bitist alamvõtit, mis leitakse võtmevahetusalgoritmi abil

• 32 alamvõtit kasutatakse raundides, 8 ülejäänud alamvõtmete XORimisel enne esimest ja pärast viimast raundi (whitening)

• koosneb 16 raundist, iga raund pruugib kahte alamvõtit

Page 53: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

Kasutab oma põhielemendina 8-baidise jupi korrutamist järgmise maatriksiga, mida kasutatakse iteratiivselt teatud seaduspärasuse kohaselt:

Twofish: võtmejaotusalgoritmTwofish: võtmejaotusalgoritm

Page 54: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

Raundis toimub:• osade ringnihked• osade korrutamine järgmise maatriksiga

• alamvõtmete lisamine• tulemustele ringnihete tegemine ja

osade omavahel vahetamine

Twofish: raundi kirjeldusTwofish: raundi kirjeldus

Page 55: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

Twofish: üldskeemTwofish: üldskeem

Page 56: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

Twofish: raundi skeemTwofish: raundi skeem

Page 57: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

Twofish: S-bokside näitedTwofish: S-bokside näited

Page 58: Andmeturve ja krüptoloogia, VIII Moodsaid sümmeetrilisi krüptoalgoritme

KokkuvõteKokkuvõte

Lähitulevikus muutub kasutatavaimaks arvatavasti AES (Rijndael), sest AESi konkursi eesmärgiks oli leida nõrgaks jäänud DESile asendaja

Lähitulevikus muutub kasutatavaimaks arvatavasti AES (Rijndael), sest AESi konkursi eesmärgiks oli leida nõrgaks jäänud DESile asendaja

• Kõiki siintoodud 8 algoritmi võib praktikas kasutada ja nad on turvalised (Blowfishil leitud nõrgad võtmed ei muuda olukorda)

• Praegu on neist kasutatavaim IDEA