Avaliku v - PowerPoint PPT Presentation

1 / 37
About This Presentation
Title:

Avaliku v

Description:

Avaliku v tmega kr ptogtaafia Sven Laur Motivatsioon S numite saatja ja vastuv tja on erinevate v imaluste ning huvidega. M ned osapooled pole alati v tme ... – PowerPoint PPT presentation

Number of Views:47
Avg rating:3.0/5.0
Slides: 38
Provided by: Sve81
Category:
Tags: avaliku | miller | rabin

less

Transcript and Presenter's Notes

Title: Avaliku v


1
Avaliku võtmega krüptogtaafia
  • Sven Laur

2
Motivatsioon
  • Sõnumite saatja ja vastuvõtja on erinevate
    võimaluste ning huvidega.
  • Mõned osapooled pole alati võtme salajas
    hoidmisest motiveeritud.
  • Maksimaalse avatuse printsiip.
  • Võtmevahetuse vältimine võimaldab luua tundmatute
    osapoolte vahel lihtsalt kaitstud andmevahetuse.

3
Olulised aastaarvud
  • 1976. Diffie-Hellmani võtmevahetusskeem --
    asümeetrilise krüptograafia algus.
  • 1977. Rivest, Shamir ja Adleman RSA.
  • 1985. ElGamal krüptosüsteem
    - esimene tõenäosuslik krüptosüsteem
    - 1994. DSS(Digital Signature Standard).
  • 1994. Bellare ja Rogaway tõestatavalt turvaline
    RSA skeem.
  • 2000. Schnorr üldise diskreetse logaritmi
    probleemi turvalisuse tõestus.

4
Minimaalsed nõuded
  • Peab leiduma kaks võtit ka ja ks, mis määravad
    ära teisendused Ek ja Dk.
  • Saatja peab olema võimeline krüpteerima suvalist
    avateksti.
  • Vastuvõtja peab olema võimeline dekrüpteerima
    suvalist krüptogrammi.
  • Vastuvõtjal peab olema võimatu efektiivselt
    arvutada dekrüpteerimisfunktsiooni Dk.

5
Avalik ja salajane võti
  • Definitsioon. Krüptosüsteem (P, C, K, E, D) on
    avaliku võtmega krüptosüsteem, kui teades
    krüpteerimisfunktsiooni Ek ei ole arvutus-likult
    efektiivselt võimalik leida dekrüptee-rimisfunkts
    iooni Dk. Avalik võti ka koos muu avaliku
    teabega määrab ära Ek ning salajane võti ks
    omakorda teisenduse Dk. Harilikult on avalik võti
    kõigile soovijatele kättesaadav.

6
Vältimatud skeemi osad
  • Kuna Ek peab olema permutatsioon, siis on seda
    võimalik alati pöörata.
  • Avaliku võtmega krüptograafia vajab seega
    funktsioone, mis on lihtsalt arvutatavad, kuid
    "raskesti" pöötatavad.
  • Näiteks telefoniraamatust nime järgi numbri
    määramine on lihtne, numbri järgi nime määramine
    on keeruline.

7
Ühesuunalised funktsioonid (I)
  • Definitsioon. Funktsioon f X?Y on ühe-suunaline
    kui on "lihtne" arvutada yf(x), kuid teades
    ainult y on arvutuslikult võima-tu efektiivselt
    määrata x nii, et f(x)y. Funktsioonil f on on
    salauks C, kui teades seda teavet C on võimalik
    funktsiooni f efektiivselt pöörata.

8
Ühesuunalised funktsioonid(II)
  • Selliste funktsioonide olemasolu pole tõestatud,
    kuid leidub sobilikke kandidaate.
  • Üks tuntumaid kandidaate on arvu xb arvutamine
    mooduli n järgi(1977).
  • Lihtne on leida võrrandi xb? y mod n lahendeid
    kõiki võimalikke x väärtusi proovides, kuid see
    on arvutuslikult ebaefektiivne, kui n on suur.

9
Laiendatud Eukleidese algoritm
  • Eelnevast teame, et kui süt(a,n)1 parajasti
    siis, kui leidub b nii, et ab ? 1 mod n. Seda
    saab leida laiendatud Eukleidese alg. abil

10
Euleri funktsioon
  • Definitsioon. Arvu m jäägiks mooduli n järgi
    nimetatakse arvu 0 ? a lt n, kui m
    nk a ning k on täisarv.
  • Definitsioon. Jääki a nimetatkse pöörata-vaks
    mooduli n järgi kui leidub jääk b nii, et ab ? 1
    mod n. Kõigi jääkide arvu mooduli n järgi, mis on
    pööratavad, nimetatakse Euleri funktsiooniks
    ?(n).

11
Euleri funktsiooni arvutamine
  • Olgu p algarv, siis jäägid on 0,1,2,4,5,...,p-1
    ja seega ühistegurita on ?(p)p - 1 jääki.
  • Kui npq, siis saab jäägid üles kirjutada kujul
  • 0,1,2,..,p,...,2p,...,3p,...,4p,...,(q-1)p
  • 0,1,2,3,..,q,...,2q,...,3q,...,4q,...,(p-1)q
  • ning seega ?(pq)n-p-q1(p-1)(q-1).

12
RSA ehitus
  • Võtme genereerimine. Valida juhuslikult kaks
    paaritut algarvu p ja q. Avalik võti on npq ja
    arv b nii, et ab?1 mod ?(n). Salajane võti on arv
    a. Avatekstid ja krüptogrammid on arvu n jäägid.
  • Krüpteerimine ja dekrüpteerimine.
  • Ek xb mod n
  • Dk ya mod n

13
Mis on rühm?
  • Meile tuntud tehted ja ? on tegelikult kahe
    kohalised funktsioonid(näiteks C ja Java).
  • Et defineerida ?(x,y) on esmalt tarvis määratleda
    andme tüüp, millel see tegutseb.
  • Korrutamisel on olemas kaks peamist omadust (x?y)
    ?z x?(y?z) ja 1?xx?1x.
  • Mõnikord ei kuulu 1 andmetüüpi ja vahel pole ta
    sisu üldse seotud arvuga 1.

14
Mis ikkagi on rühm?
  • Kui 1 vastab meie andmetüübile ning tehe ? täidab
    mõlemat peamist omadust, siis tekib küsimus, kas
    kõikvõimalike y korral leidub lahend võrranditele
    a?xx?ay. Kui vastus on jaatav, siis nimetatakse
    andmetüüpi tehte ? suhtes rühmaks.
  • Elementi ba-1, mille korral kehtib võrdus
    a?bb?a1 nimetatakse a pöördelemendiks.

15
Lagrangei teoreem
  • Definitsioon. Rühmaelementide alamhulka, mis
    sisaldab ühikut 1 ja mis on kinnine korrutamise
    ja pöördelemendi leidmise suhtes, nimetatakse
    alamrühmaks.
  • Lagrange teoreem. Iga lõpliku alamrühma
    elementide arv jagab rühma elementide arvu.

Kui element ei kuulu alamrühma H, siis tekib hulk
aH, mis ei kuulu ka alamrühma H. Tekkivad hulgad
on lõikumatud
16
Alamrühm ?a?
  • Definitsioon. Elemendi a poolt moodustatud
    alamrühmaks nimetatakse hulka
  • ?a?1,a,a2,a3...,a-1,a-2,....
  • Jääkide hulk mooduli n suhtes rahuldab
    korrutamise kahte peamist omadust. Kui a ja b
    on pööratavad siis süt(a,n)süt(b,n)1, siis on
    seda ka ab sest süt(ab,n)1. Seega pööratavate
    elementide hulk U(Zn) on rühm.

17
Euleri teoreem
  • Iga pööratav element b hulgast U(Zn) rahuldab
    tingimust a?(n) ? 1 mod n .
  • Kui hakata elementi a astendama, siis mingil
    hetkel peame saama varasema tulemuse.
  • Kuna a on pööratav saame liikuda ainult ühel
    viisi tagasi.
  • Lagrange' teoreemi tõttu jagub ?(n) arvuga k.

1
18
Miks RSA töötab?
  • Kui npq ja ab?1 mod ?(n), miks siis
  • Dk (Ek(x)) ? (xb)a ? x mod n
  • Kui x on pööratav, siis x?(n) ? 1 mod n ja seega
    abk?(n)1, siis
  • xab ? x?(n)k1 ? x(x?(n))k ? x1k ? x mod n
  • Seega iga pööratava elemendi korral saame
    avateksti edukalt kätte.

19
Hiina jäägiteoreem
  • Kui m ja n on ühistegurita arvud ja meil on
    kongurentside süsteem
  • x ? a mod m ja x ? b mod n,
  • siis on võimalik üheselt taastada arv x
    mooduli mn järgi.
  • Leitakse e1 ja e2 nii, et
  • e1 ? 1 mod m, e1 ? 0 mod n
  • e2 ? 0 mod m, e2 ? 1 mod n

20
Nulliteguri astmed
  • Kui p ja q on algarvud, siis p?(pq)1? p mod qp.
  • Mooduli p järgi on jada elemendid .
    kongurentsed jäägiga 0.
  • Mooduli q järgi tekib tsükkel, sest . p
    on pööratav mooduli q järgi.
  • Hiina jäägiteoreemi tõttu ei saa
    . mooduli pq järgi olla pi kahte eellast.
  • Seega moodustavad p astmed .suure .
    tsükli, mille pikkus on q-1.

21
Aga kui element pole pööratav?
  • Kui element pole pööratav, siis on tal ühine
    tegur arvuga npq. On kolm võimalust
  • süt(x,n)n, siis x ? 0 ja seega xab ? 0 mod n.
  • süt(x,n)p, siis xpk, kus k on pööratav, seega
    saame
  • xab ? (pk)ab ? pabkab ? pk ? x mod n
  • süt(x,n)q on analoogiline eelnevaga.

22
RSA realiseerimine
  • RSA realiseerimiseks on tarvis realiseerida
    efektiivselt modulaarne astendamine.
  • Lihtne on järjestikku arvutada x, x2,x4,...
  • Et tõsta arv astmesse b efektiivselt, tuleb b
    esitada kahendkujul b11101102 ning seejärel
  • xb ? x118 ? x2x4x16x32x64 mod n

23
Optimiseeritud algoritm
  • z 1 //x -astendatav b on k
    bitti pikk
  • for(ik-1 igt0 --i) //loeme esmalt kõrgemad
    bitid
  • z zz mod n //astendajaltlt1
  • if(bi) zzx mod n //astendaja1
  • //astendajab
  • Algoritm teeb täpselt k modulaarset korruta-mist,
    mille ligikaudne keerukus O(log2 n), kuna k lt log
    n, siis summarne keerukus O(log3 n), mis on
    üldiselt kehv kuid talutav.

24
Võtme genereerimine
  • Suvalise pikkusega algarvu leidmine on raske,
    sest ülesanne on klassist NP.
  • Teada on, et n-is algarv on ligikaudeselt
    p(n)?n/ln n, seega tõenäosus, et täisarv x on
    algarv on ligikaudu 1/ln(x).
  • Leidub kaks tõenäosuslikku algoritmi, mille
    väljundid on KORDARV või ALGARV, kuid vahel
    peavad need kordarvu algarvuks.

25
Fermat' algarvutest
  • Sisend on arv n
  • 1. Valida juhuslikult a?2,...n-2
  • 2. Arvutada b ? an-1 mod n
  • 3. Kui b?1, siis KORDARV muidu ALGARV
  • Kui n on algarv, siis ?(n)n-1 ja vastus on
    korrektne. Kui n on kordarv ja a pole pööratav
    b?1. Enamike kordarvude korral annab see algoritm
    õige vastuse tõenäosusega rohkem kui 1/2.

26
Miller-Rabini test
  • 1. Avaldada n-12km, kus m on paaritu.
  • 2. Valida juhuslikult a?2,...,n-2.
  • 3. Arvutada b ? am mod n.
  • 4. Kui b ? 1 mod n, siis väljastada ALGARV.
  • 5. for i 0,1,..,k-1 do
  • Kui b ? -1 mod n, siis väljastada
    ALGARV,
  • muidu b ? b2 mod n.
  • 6. Väljastada KORDARV.

27
Rabin-Milleri testi korrektsus
  • Kui n on algarv, siis 1 ühel on vaid kaks
    ruutjuurt -1 ja 1. Kuna an-1 ? 1 mod n, siis on
    vähemalt a2k-1m ?-1 mod n.
  • Kui n on kordarv, siis tõenäosusega vähem kui 1/4
    vastatakse ALGARV.
  • Rabin-Milleri algoritm toimib paremini, kui
    Fermat' algoritm tuvastades mõned eriti halvad
    kordarvud -- Carmichaeli arvud.

28
Miks võtme leidmine võtab aega?
  • Algarve otsitakse valides juhuslikult paaritu
    arvu pikkusega k. Tõenäosus, et see arv on algarv
    on ligikaudu 1/k, seega tuleb keskmiselt võtta k
    arvu ja testida neid.
  • Mõlema testi keerukus on ligikaudu O(k3), seega
    tuleb sumaarne keerukus ligikaudu O(k4), mis on
    tõeline probleem pihu-arvutitele ja
    kiipkaartidele.

29
RSA ründamine (I)
  • Euleri funktsiooni ?(n) teadmine on samaväärne
    arvu n faktoriseerimisega.
  • qn/p , ?(n)(p-1)(q-1) ? p?(n)(p-1)(n-p)
  • Tulemuseks on harilik ruutvõrrand üle
    ratsionaalarvude
  • p2(?(n)-n-1)pn0,
  • mida on võimalik kiiresti ligikaudselt
    lahendada ning saada nii üks arvu n tegur.

30
RSA ründamine (II)
  • Salajase võtme efektiivne arvutamine on
    samaväärne arvu tegurdamisega.
  • Mooduli n korral on arvul 1 olemas neli
    ruutjuurt!
  • Kui meil õnnestub leida ühejuur x, mis pole ?1,
    siis n jagab (x1)(x-1). Kuna n ei saa jagada
    ainult ühte tegurit, siis jagab p ühte ja q teist
    ning süt(x1,n) on n päristegur.

31
RSA ründamine (III)
  • Kui me teame salajast võtit a, siis iga pööratav
    element w korral wab-1?1 mod n
  • Me avaldame ab-12kr ja arvutame mooduli n järgi
    wr, w2r, w4r,..., w2kr
  • Otsime jadast üles esimese w astme, mis on 1. Kui
    sellele eelneb w aste, mis pole -1, siis oleme
    leidnud, 1 mitteriviaalse ruutjuure ning me
    saame n tegurdada. Edu on umbes 1/2.

32
Protokolli vead (I)
  • Kuna algarvude leidmine on tülikas, siis võiks
    usaldatav osapool leida npq ning jagada
    soovijatele võtmete paare ai,bi.
  • Kuna paari (ai,bi) teades on võimalik arv n
    efektiivselt tegurdada, siis saab leida ?(n) ning
    seejärel on osalejal lihtne leida teiste
    osalejate salajased võtmed vastavalt
    võtmegenereerimisalgoritmile.

33
Protokolli vead (II)
  • Oletame, et Alice alustada salajast suhtlust
    Bobiga, selleks hangib ta Bobi avaliku võtme ning
    teatab oma plokkšifri võtme. Tegelikult toimub
    hoopis midagi muud.

34
Väike avalik võti b3
  • Kui saatja tahab saata ühte avateksti x kolmele
    erinevale osapoolele, siis pealtkuulaja teab
  • x3 ? c1 mod n1
  • x3 ? c2 mod n2
  • x3 ? c3 mod n3
  • Ning kasutades Hiina jäägiteoreemi, saab taastada
    x3 ? d mod n1n2n3, kuna x3 on vaiksem kui n1n2n3,
    siis saab x teada harilikku kuupjuurt võttes,
    mis on kerge.

35
Kiipkaardi eksponendid
  • Kiirema krüpteerimise jaoks kasutatakse b3 ja
    b2161, see võib tuua kaasa lihtsamaid võimalusi
    tekstide ründamiseks.
  • Üldiselt soovitatakse võtta algarvud p ja q nii,
    et p-1, q-1, p1, q1, r-1 ja r'-1 omaksid suuri
    algarvulisi tegureid, kus r ja r' on suured p-1
    ja q-1 alarvulised tegurid.
  • Kui b3, siis p-1 ja q-1 ei tohi jaguda 3-ga.

36
Signatuuriskeemid
  • Vahel on tarvis tuvastada Alice seotust tekstiga.
    Siis kasutatakse signeerimisskeeme.
  • Alice erineb teistest selle poolest, et ta oskab
    dekrüpteerida oma võtmele vastavaid tekste.
  • Alice võimet dekrüpteerida Ek(x), saab
    kontrollida vaadates Alice'i vastust Dk(Ek(x)).
  • Seda saab simuleerida kui, Alice dekrüpteerib
    avateksti x, sest Dk(Ek(x))Ek(Dk(x)).

37
Skeemi parandused
  • Igaüks saab võltsida suvalisi signatuure kujul
    (Ek(y), y), genereerides signatuuri järgi
    avateksti.
  • Selle vältimiseks võib kasutusele võtta
    erikujulised avatekstid xf(x), kus
    f0,1k?0,1k on suvaline funktsioon .
  • Sobivaid avateksti saamise tõenäosus võltsimisel
    on vaid 1/2k, mis on väga väike.
Write a Comment
User Comments (0)
About PowerShow.com