andmeturve ja kr ptoloogia ix as mmeetrilised kr ptoalgoritmid rsa n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Andmeturve ja krüptoloogia, IX Asümmeetrilised krüptoalgoritmid. RSA PowerPoint Presentation
Download Presentation
Andmeturve ja krüptoloogia, IX Asümmeetrilised krüptoalgoritmid. RSA

Loading in 2 Seconds...

play fullscreen
1 / 27

Andmeturve ja krüptoloogia, IX Asümmeetrilised krüptoalgoritmid. RSA - PowerPoint PPT Presentation


  • 166 Views
  • Uploaded on

Andmeturve ja krüptoloogia, IX Asümmeetrilised krüptoalgoritmid. RSA. 29. oktoober 2001 Valdo Praust vpraust@delfi.ee Loengukursus IT Kolled ž is 2002. aasta sügissemestril. Avaliku võtmega krüpto algoritm.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Andmeturve ja krüptoloogia, IX Asümmeetrilised krüptoalgoritmid. RSA' - quyn-hill


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
andmeturve ja kr ptoloogia ix as mmeetrilised kr ptoalgoritmid rsa
Andmeturve ja krüptoloogia, IXAsümmeetrilised krüptoalgoritmid. RSA

29. oktoober 2001

Valdo Praust

vpraust@delfi.ee

Loengukursus IT Kolledžis

2002. aasta sügissemestril

avaliku v tmega kr pto algoritm
Avaliku võtmega krüptoalgoritm

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

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

avaliku v tmega kr pto algoritm v tmed
Avaliku võtmega krüptoalgoritm: võtmed

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
slide4

Algoritmide 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
avaliku v tmega kr pto algoritm rsa
Avaliku võtmega krüptoalgoritm: RSA

Tuntuim avaliku võtmega krüptoalgoritm on RSA

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

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

slide6

RSA 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
slide7

RSA matemaatilised alused

Algoritm 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

slide8

RSA matemaatilised alused

Paljud 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 turvalisus

slide9

RSA võtmete genereerimine

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)

slide10

RSA šifreerimine/dešifreerimine

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

slide11

Miks on RSA praktikas turvaline?

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

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

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

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

slide13

RSA turvalisus krüptoterminites

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

slide14

RSA: termineid

e on avalik eksponent(public exponent)

don 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

slide15

RSA: algarvude leidmine

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

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

slide16

RSA: algoritmi praktilisi detaile

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)

slide17

RSA eripärad praktikas

Š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

slide18

Näide (väikeste arvudega)

p = 47, q = 71(algarvud)

n = pq = 3337

(p-1)(q-1) = 46 x 70 = 3220

Valimee = 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

slide19

RSA turvaline kasutus

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

slide20

RSA krüptoanalüüs, I

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

slide21

RSA krüptoanalüüs, II

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

slide22

RSA kasutamise praktilisi aspekte

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

slide23

RSA koostöö sümmeetriliste krüptoalgoritmidega

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

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

avaliku v tmega kr pto algoritmi rsa kasutamine
Avaliku võtmega krüptoalgoritmi(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
elgamal dss diffie hellmann luc xtr

Teisai avaliku võtmega krüptoalgoritme

ElGamal

DSS

Diffie-Hellmann

LUC

XTR

RSA on neist populaarsem