27
Andmeturve ja krüptoloogia, IX Andmeturve ja krüptoloogia, IX Asümmeetrilised Asümmeetrilised krüptoalgoritmid. RSA krüptoalgoritmid. RSA 1. november 2001 Valdo Praust [email protected] Loengukursus IT Kolledžis 2001. aasta sügissemestril

Andmeturve ja krüptoloogia, IX Asümmeetrilised krüptoalgoritmid. RSA

Embed Size (px)

DESCRIPTION

Andmeturve ja krüptoloogia, IX Asümmeetrilised krüptoalgoritmid. RSA. 1. november 2001 Valdo Praust [email protected] Loengukursus IT Kolled ž is 2001. aasta sügissemestril. Avaliku võtmega krüpto algoritm. - PowerPoint PPT Presentation

Citation preview

Page 1: Andmeturve ja krüptoloogia, IX Asümmeetrilised krüptoalgoritmid. RSA

Andmeturve ja krüptoloogia, IXAndmeturve ja krüptoloogia, IX

Asümmeetrilised Asümmeetrilised krüptoalgoritmid. RSAkrüptoalgoritmid. RSA

Andmeturve ja krüptoloogia, IXAndmeturve ja krüptoloogia, IX

Asümmeetrilised Asümmeetrilised krüptoalgoritmid. RSAkrüptoalgoritmid. RSA

1. november 2001

Valdo Praust 

[email protected]

Loengukursus IT Kolledžis2001. aasta sügissemestril 

  

Page 2: Andmeturve ja krüptoloogia, IX Asümmeetrilised krüptoalgoritmid. RSA

Avaliku võtmega krüptoAvaliku võtmega krüptoalgoritmalgoritmAvaliku võtmega krüptoAvaliku võtmega krüptoalgoritmalgoritm

 

Ühest võtmest teist ei ole võimalik praktikas leida

 

Avaliku võtmega krüptoalgoritm (public key cryptoalgorithm) ehk asümmeetriline krüptoalgoritm (asymmetric cryptoalgorithm) kasutab kahte võtit – esimese võtmega šifreeritud teave on dešifreeritav vaid teise võtmega ja vastupidi

Avaliku võtmega krüptoalgoritm (public key cryptoalgorithm) ehk asümmeetriline krüptoalgoritm (asymmetric cryptoalgorithm) kasutab kahte võtit – esimese võtmega šifreeritud teave on dešifreeritav vaid teise võtmega ja vastupidi

Page 3: Andmeturve ja krüptoloogia, IX Asümmeetrilised krüptoalgoritmid. RSA

Avaliku võtmega krüptoAvaliku võtmega krüptoalgoritm: algoritm: võtmedvõtmed

Avaliku võtmega krüptoAvaliku võtmega krüptoalgoritm: algoritm: võtmedvõtmed

 

 

Avaliku võtmega krüptoalgoritmi võtmeid nimetatakse reeglina avalikuks võtmeks ja privaatvõtmeks (public and private key)

Avaliku võtmega krüptoalgoritmi võtmeid nimetatakse reeglina avalikuks võtmeks ja privaatvõtmeks (public and private key)

• Avalik võti on tavaliselt kõigile soovijaile teada

• Privaatvõti on reeglina aga subjekti (inimese, tehnilise süsteemi, programmi vms) ainuvalduses

Page 4: Andmeturve ja krüptoloogia, IX Asümmeetrilised krüptoalgoritmid. RSA

AAlgoritmide tekke- ja kasutuslugulgoritmide tekke- ja kasutusluguAAlgoritmide tekke- ja kasutuslugulgoritmide tekke- ja kasutuslugu

• Ilmusid krüptograafiasse 1970tel aastatel, varem neid ei teatud/tuntud

• Peamised nimed, kes loomisega seotud: Diffie, Hellmann, Shamir, Adleman, Rivest

• Kasutama hakati peamiselt 1980tel, kaasajal on põhilised tervikluse tagamise mehhanismid ja digitaalallkirja teoreetiline alus

Page 5: Andmeturve ja krüptoloogia, IX Asümmeetrilised krüptoalgoritmid. RSA

Avaliku võtmega Avaliku võtmega krüptokrüptoalgoritm: RSAalgoritm: RSA

Avaliku võtmega Avaliku võtmega krüptokrüptoalgoritm: RSAalgoritm: RSA

 

RSA korral on tingimused veidi pehmemad: privaatvõtmest avalikku võtit saab leida, kuid avalikust võtmest privaatvõtit mitte

Nad on omavahel matemaatiliselt seotud, kuid avalikust võtmest privaatvõtme leidmine võtab aega miljoneid aastaid

Tuntuim avaliku võtmega krüptoalgoritm on RSA

Seda loetakse turvaliseks alates 768 või 1024 biti pikkusest võtmest

Tuntuim avaliku võtmega krüptoalgoritm on RSA

Seda loetakse turvaliseks alates 768 või 1024 biti pikkusest võtmest

Page 6: Andmeturve ja krüptoloogia, IX Asümmeetrilised krüptoalgoritmid. RSA

RSA eripäradRSA eripäradRSA eripäradRSA eripärad• Töötasid välja Rivest, Shamir ja Adleman 1978.

aastal

• Turvalisus põhineb matemaatilisel faktil, et suure kordarvu teguriteks lahutamine (kui ka tegurid on suured) on praktiliselt võimatu ülesanne

• Tagab praktilise turvalisuse, ei taga teoreetilist (nagu kõik avaliku võtmag krüptoalgoritmid)

• Murdmiseks läheb aega miljoneid aastaid (sõltub võtmepikkusest)

• On maailmas väga levinud

Page 7: Andmeturve ja krüptoloogia, IX Asümmeetrilised krüptoalgoritmid. RSA

RSA matemaatilised alusedRSA matemaatilised alusedRSA matemaatilised alusedRSA matemaatilised alusedAlgoritm on polünomiaalne (polünomiaalse keerukusega), kui pikkusega N ülesande lahendusaeg on võrdeline suurusega Nk mingi fikseeritud k korral

Polünomiaalset algoritmi peetakse praktiliseks lahendamiseks heaks algoritmiks: N kasvades ei kasva lahendusaeg eriti kiiresti väga suurte arvudeni

Palju halvemate omadustega on eksponentsiaalse keerukusega algoritmid: pikkusega N ülesande lahendusaeg on võrdeline suurusega 2N

Eksponentsiaalse keerukusega algoritmid on praktikas mittelahenduvad

Eksponentsiaalse keerukusega algoritmid on praktikas mittelahenduvad

Page 8: Andmeturve ja krüptoloogia, IX Asümmeetrilised krüptoalgoritmid. RSA

RSA matemaatilised alusedRSA matemaatilised alusedRSA matemaatilised alusedRSA matemaatilised alusedPaljud praktikas kasutatavad algoritmid on polünomiaalsed: st nende kohta on teada vastavate omadustega lahendusalgoritm

Paljude algoritmide kohta sellist algoritmi aga teada ei ole (need on praktikas lahendumatud)

Näide 1: suuri algtegureid omavate kordarvude teguriteks lahutamine (Arvu pikkus on log N, vaja läbi vaadata N1/2 varianti)

Näide 2: diskreetse logaritmi leidmine:

a = gn (mod p), leida a, g ja p (algarv) põhjal n

Nendel tõsiasjadel baseerub RSA turvalisusNendel tõsiasjadel baseerub RSA turvalisus

Page 9: Andmeturve ja krüptoloogia, IX Asümmeetrilised krüptoalgoritmid. RSA

• valitakse kaks suurt algarvu p ja q (nt 512-bitised)

• arvutatakse kahe suure algarvu korrutis • n = p • q

• valitakse arv e nii, et tal ei oleks ühistegureid arvuga (p-1)(q-1)

• leitakse arv d nii, et d • e = 1 mod (p-1)(q-1)

• avalik võti on (n, e)• privaatvõti on (p, q, d)

RSA võtmete genereerimineRSA võtmete genereerimineRSA võtmete genereerimineRSA võtmete genereerimine

Page 10: Andmeturve ja krüptoloogia, IX Asümmeetrilised krüptoalgoritmid. RSA

• Šifreerida saab tekste (arve) mis on väiksemad kui pq bitti (512 bitiste p ja q korral 1024 bitti, ca 300 kümnendkohta)

• Šifreerimisel leitakse

Y = Cip(X) = Xd (mod n)

• Dešifreerimisel leitakse

X = Cip(Y) = Xe (mod n)

Avatekst saadakse seepärast, et

(Xd)e = X (mod n)

põhjusel et

d • e = 1 mod (p-1)(q-1)

RSA RSA ššifreerimine/deifreerimine/deššifreerimineifreerimineRSA RSA ššifreerimine/deifreerimine/deššifreerimineifreerimine

Page 11: Andmeturve ja krüptoloogia, IX Asümmeetrilised krüptoalgoritmid. RSA

Miks on RSA praktikas turvaline?Miks on RSA praktikas turvaline?Miks on RSA praktikas turvaline?Miks on RSA praktikas turvaline?

• Selleks ta peab teadma d, mis sõltub definitsiooni põhjal aga suurustest p ja q

• p ja q ei saa ta teada: teguriteks lahutamiseks ei ole teada polünomiaalset algoritmi

Väide 1: kes teab avalikku võtit (n, e) ja avateksti X, kuid ei tea d, p ega q, ei suuda sooritada teisendust

Y = Cip(X) = Xd (mod n)

ilma p ja q või d teadmata, st ei suuda šifreerida

Väide 1: kes teab avalikku võtit (n, e) ja avateksti X, kuid ei tea d, p ega q, ei suuda sooritada teisendust

Y = Cip(X) = Xd (mod n)

ilma p ja q või d teadmata, st ei suuda šifreerida

Page 12: Andmeturve ja krüptoloogia, IX Asümmeetrilised krüptoalgoritmid. RSA

• Kuna X = Yd (mod n), siis on tarvis leida d

• d leidmine e põhjal eeldab aga, et on teada p ja q või osatakse arvutada diskreetset logaritmi

Miks on RSA praktikas turvaline?Miks on RSA praktikas turvaline?Miks on RSA praktikas turvaline?Miks on RSA praktikas turvaline?

Väide 2: kes teab avalikku võtit (n, e) ja krüptogrammi

Y = Cip(X) = Xe (mod n)

kuid ei tea d, p , q ega X, ei suuda leida avateksti X

Väide 2: kes teab avalikku võtit (n, e) ja krüptogrammi

Y = Cip(X) = Xe (mod n)

kuid ei tea d, p , q ega X, ei suuda leida avateksti X

Page 13: Andmeturve ja krüptoloogia, IX Asümmeetrilised krüptoalgoritmid. RSA

• Turvalisus on praktiline, matemaatika mõttes on kõik võimatuks peetav leitav (vaja on teha eksponentsiaalne arv tehteid)

• Privaatvõtmest saab avaliku võtme alati leida

• Avalikust võtmest privaatvõtit leida on võimatu

• Privaatvõtit omamata ei ole võimalik šifreerida nii, et avaliku võtmega dešifreerides asi lahti tuleks

• Kui teave on avaliku võtmega šifreeritud, ei ole võimalik seda avaliku võtmega enam lahti teha

RSA turvalisus krüptoterminitesRSA turvalisus krüptoterminitesRSA turvalisus krüptoterminitesRSA turvalisus krüptoterminites

Page 14: Andmeturve ja krüptoloogia, IX Asümmeetrilised krüptoalgoritmid. RSA

• e on avalik eksponent (public exponent)

• d on salajane eksponent (secret exponent)

• funktsiooni, mille väärtus on kergelt arvutatav, kuid selle pöördfunktsiooni ei ole praktikas arvutatav, nimetatakse ühesuunaliseks funktsiooniks (one-way function) Nt: kahe algarvu korrutamine vs teguriteks lahutamine; diskreetne eksponent vs diskreetne logaritm

• sellist ühesuunalist funktsiooni, mis on pööratav mingi täiendava teabekogumi põhjal nimetatakse salauksega ühesuunaliseks funktsiooniks (trapdoor one-way function). RSA ongi selline

RSA: termineidRSA: termineidRSA: termineidRSA: termineid

Page 15: Andmeturve ja krüptoloogia, IX Asümmeetrilised krüptoalgoritmid. RSA

Mitmed neist põhinevad nt Euler-Fermat’ teoreemil: Kui a ja n on ühistegurita, siis

aphi(n) = 1 (mod n)

Φ(n) on nende n väiksemate arvude arv, millega tal puudub ühistegur, kui n on algarv, siis

Φ(n) = n-1

Selle põhjal saab koostada testiseeria

RSA: algarvude leidmineRSA: algarvude leidmineRSA: algarvude leidmineRSA: algarvude leidmine

On olemas efektiivseid praktikas kasutatavaid algarvude generaatoreid. Reeglina genereeritakse juhuslikud arvud, mille algarvuks olemist siis testitakse

On olemas efektiivseid praktikas kasutatavaid algarvude generaatoreid. Reeglina genereeritakse juhuslikud arvud, mille algarvuks olemist siis testitakse

Page 16: Andmeturve ja krüptoloogia, IX Asümmeetrilised krüptoalgoritmid. RSA

• Ka e leidmiseks on testid olemas, mis tagavad, et tal ei oleks tegureid arvuga (p-1)(q-1)

• Suurimat ühistegurit saab kontrollida Eukleidese algoritmiga

• Kõik peale algarvude genereerimise ja e leidmise on pikkade modulaararitmeetika realiseerimise küsimus (on realiseeritav nii tark- kui ka riistvaras väga kiirelt)

RSA: algoritmi praktilisi detaileRSA: algoritmi praktilisi detaileRSA: algoritmi praktilisi detaileRSA: algoritmi praktilisi detaile

Page 17: Andmeturve ja krüptoloogia, IX Asümmeetrilised krüptoalgoritmid. RSA

• Šifreerimine ja dešifreerimine, kus kasutatakse modulaararitmeetikat, on küllalt kiired

• Siiski on need sümmeetrilistest krüptoalgoritmidest (DES, AES, IDEA jt) ca 2-3 suurusjärku (sadu kuni tuhandeid kordi) aeglasemad

• Võtmepaari genereerimine (sisaldab algarvude genereerimist) on šifreerimisest omakorda mitu suurusjärku aeglasem: kaasaja personaalarvuti leiab võtme siiski sekunditega või murdosadega

RSA eripärad praktikasRSA eripärad praktikasRSA eripärad praktikasRSA eripärad praktikas

Page 18: Andmeturve ja krüptoloogia, IX Asümmeetrilised krüptoalgoritmid. RSA

• p = 47, q = 71 (algarvud)• n = pq = 3337• (p-1)(q-1) = 46 x 70 = 3220• Valime e = 79, arvuga 3220 ei ole tal ühistegureid• Leiame d = e-1 (mod (p-1)(q-1)) = 79–1 (mod 3337)

= 1019• Avalik võti on (3337, 79)• Privaatvõti on (47, 71, 1019)• Šifreerimine, avatekst X = 688

Y = Xe (mod n) = 68879 (mod 3337) = 1570• Dešifreerimine:

X=Yd (mod n) = 15701019 (mod 3337) = 688

Näide (väikeste arvudega)Näide (väikeste arvudega)Näide (väikeste arvudega)Näide (väikeste arvudega)

Page 19: Andmeturve ja krüptoloogia, IX Asümmeetrilised krüptoalgoritmid. RSA

• Võtmepikkus võib olla suvaline, see määrab ära p ja q suuruse.

• Kaasajal peetakse RSAd turvaliseks alates 1024 bitisest võtmest (pq väärtusest).

• Kasutatavaimad väärtused on (512, 768,) 1024, 1536, 2048, 3072 ja 4096 bitti (kahte esimest ei soovita kasutada)

• 1024 bitine võti: on vaja kaheks 155-kohaliseks algteguriks vaja jagada 310-kohaline kordarv

RSA turvaline kasutusRSA turvaline kasutusRSA turvaline kasutusRSA turvaline kasutus

Page 20: Andmeturve ja krüptoloogia, IX Asümmeetrilised krüptoalgoritmid. RSA

• 70-kohalise arvu algteguriteks lahutamine nõuab kaasajal keskmiselt tööjaamalt ca 5 tundi

• 100-kohaline – samalt arvutilt ca pool aastat

• 140-kohaline arv lahutati 1996 teguriteks 5 aastaga, ühendades maailma paljude serverite jõupingutused

• Praegu on uusimatele matemaatilistele meetoditele tuginedes võimalik 150-kohalise arvu tagada kaheks algteguriks aastaga 50 miljonit krooni maksva arvutiga

RSA krüptoanalüüs, IRSA krüptoanalüüs, IRSA krüptoanalüüs, IRSA krüptoanalüüs, I

Page 21: Andmeturve ja krüptoloogia, IX Asümmeetrilised krüptoalgoritmid. RSA

• 200-kohaline arv nõuab kümneid miljardeid kroone maksva arvuti korral aega ca 10 tuhat aastat

• 300-kohaline arv nõuab kogu praeguselt arvutivõimsuselt tööd kauemaks kui on Päikese eluiga (sajad miljardid aastad)

• On teada mitmeid kaasaja matemaatika eriteadmistel põhinevaid krüproanalüütilisi võtteid, kuid need ei ole RSAd oluliselt nõrgendanud, kui kasutada pikki võtmeid

RSA krüptoanalüüs, IIRSA krüptoanalüüs, IIRSA krüptoanalüüs, IIRSA krüptoanalüüs, II

Page 22: Andmeturve ja krüptoloogia, IX Asümmeetrilised krüptoalgoritmid. RSA

• Pikka aega oli RSA USAs patenditud. RSAle anti 20. sept 1983 välja patent #4,405,829.

• Patent kaotas kehtivuse 20. sept 2000

• Algoritmi kirjeldus on avalik, samuti mitmed tarkvararealisatsioonid

• Riistvaraversioonid on mõnikümmend kuni sada korda kiiremad

RSA kasutamise praktilisi RSA kasutamise praktilisi aspekteaspekte

RSA kasutamise praktilisi RSA kasutamise praktilisi aspekteaspekte

Page 23: Andmeturve ja krüptoloogia, IX Asümmeetrilised krüptoalgoritmid. RSA

• Need krüpteeritakse sümmeetrilise krüptoalgoritmiga, mille võti (sessiooni võti) spetsiaalselt genereeritakse ja vaid see võti vahetatakse avaliku võtmega krüptoalgoritmiga

• RSAga krüpteeritakse reeglina seega lühike sessiooni võti (jm lühikesi infokogumeid), ei enamat

RSA koostöö sümmeetriliste RSA koostöö sümmeetriliste krüptoalgoritmidegakrüptoalgoritmidega

RSA koostöö sümmeetriliste RSA koostöö sümmeetriliste krüptoalgoritmidegakrüptoalgoritmidega

Pikkade andmekogumite krüpteerimiseks RSA ei sobi (on liiga aeglane)

Pikkade andmekogumite krüpteerimiseks RSA ei sobi (on liiga aeglane)

Page 24: Andmeturve ja krüptoloogia, IX Asümmeetrilised krüptoalgoritmid. RSA

Avaliku võtmega krüptoAvaliku võtmega krüptoalgoritmialgoritmi(RSA) kasutamine(RSA) kasutamine

 

• Avaliku võtmega krüptoalgoritme saab kasutada salajaste võtmete turvalisel edastamisel üle liinide ilma füüsilise kokkusaamiseta. Ainus tingimus on siin avaliku võtme avalikkus

• Avaliku võtmega krüptoalgoritme saab lisaks andmete konfidentsiaalsuse tagamisele kasutada ka nende tervikluse tagamisel. See ongi nende peamine kasutusvaldkond

• Avaliku võtmega krüptoalgoritmidel põhineb digitaalallkirja (digitaalsignatuuri) idee

Page 25: Andmeturve ja krüptoloogia, IX Asümmeetrilised krüptoalgoritmid. RSA

Avaliku võtmega krüptoAvaliku võtmega krüptoalgoritmialgoritmikasutamine kasutamine ššifreerimiselifreerimisel

Page 26: Andmeturve ja krüptoloogia, IX Asümmeetrilised krüptoalgoritmid. RSA

Avaliku võtmega krüptoAvaliku võtmega krüptoalgoritmialgoritmikasutamine signeerimiselkasutamine signeerimisel

Avaliku võtmega krüptoAvaliku võtmega krüptoalgoritmialgoritmikasutamine signeerimiselkasutamine signeerimisel

Page 27: Andmeturve ja krüptoloogia, IX Asümmeetrilised krüptoalgoritmid. RSA

• ElGamal• DSS• Diffie-Hellmann• LUC• XTR

Teisai avaliku võtmega Teisai avaliku võtmega krüptoalgoritmekrüptoalgoritme

Teisai avaliku võtmega Teisai avaliku võtmega krüptoalgoritmekrüptoalgoritme

RSA on neist populaarsemRSA on neist populaarsem