KSS - Predavanje 5 - Asimetricni Kriptografski Algoritmi. RSA

7
ELEKTROTEHNIČKI FAKULTET UNIVERZITET U SARAJEVU Odsjek za telekomunikacije MSc studij, I godina akademska godina 2011/2012 Predmet: Kriptografija i sigurnost sistema Predavač: R. prof. dr Narcis Behlilović, dipl. ing. el. PREDAVANJE 5 Asimetrični kriptografski algoritmi. RSA.

description

kss

Transcript of KSS - Predavanje 5 - Asimetricni Kriptografski Algoritmi. RSA

Page 1: KSS - Predavanje 5 - Asimetricni Kriptografski Algoritmi. RSA

ELEKTROTEHNIČKI FAKULTET UNIVERZITET U SARAJEVU

Odsjek za telekomunikacije MSc studij, I godina akademska godina 2011/2012

Predmet: Kriptografija i sigurnost sistema

Predavač: R. prof. dr Narcis Behlilović, dipl. ing. el.

PREDAVANJE 5

Asimetrični kriptografski algoritmi. RSA.

Page 2: KSS - Predavanje 5 - Asimetricni Kriptografski Algoritmi. RSA

Univerzitet u Sarajevu Elektrotehnički fakultet Odsjek za telekomunikacije

akademska godina: 2011/2012 Kriptografija i sigurnost sistema

Predavanje 5

2

2.5 Asimetrični kriptografski algoritmi

Tokom sedamdesetih godina dvadesetog stoljeća, simetrični kriptografski

algoritmi (DES), imali su posebno uočljiv problem tokom distribucije vlastitih

ključeva. Vojne strukture i državni organi, taj problem osjećali su ipak sa nešto

manjim intenzitetom, jer im u fokusu primarnih interesa, nije bio i njegov

finansijski aspekt.

Nasuprot tome, za civilne kompanije to je najvjerovatnije bio njegov

najbitniji aspekt, zbog čega je za širu civilnu upotrebu savremenih

kriptografskih algoritama, trebalo naći rješenje za problem distribucije

ključeva.

Dalekovidniji ICT stručnjaci već tada su naslućivali i potencijalne

mogućnosti ARPANETa (ARPA – Advanced Research Projects Agency), koji će

vrlo brzo postati izvorište za pojavljivanje prve verzije Interneta 1982. godine.

Jedan od ključnih naučnika, tokom pronalazenju racionalnog rješenja za

prevazilazenje problema distribucije kriptografskih ključeva, nesumnjivo je bio

Vitfild Difi (Whifield Diffie (1944- )) koji je 1965 godine diplomirao na MIT.

1974. godine, tokom svog predavanja u laboratoriji Tomas Dz Votson IBM-a,

saznao je da je na sličnu temu, u toj laboratoriji nedavno govorio i Martin

Helman (Martin Hellman (1945- )) istrazivač sa univerziteta u Stenfordu.

Vitfild Difi je vrlo brzo s Helmanom stupio u kontakt, a njihov sporazum da

nastave istrazivati zajedno problematiku distribucije kriptografskih ključeva,

smatra se jednom od bitnijih prekretnica savremene kriptografije. Nešto kasnije

tom dvojcu se pridruzio i Ralf Merkl (Ralph Merkle ( )).

Postojeću praksu da osobe koje komuniciraju kriptovanim porukama

moraju ostvariti direktni, ili indirektni kontakt (preko glasnika) zbog razmjene

ključa, Difi i Helman su ozbiljnije uzdrmali slijedećim algoritmom.

Osoba A napiše poruku, stavi je u kutiju i na tu kutiju stavi katanac za

koji samo ona ima ključ, pa je potom proslijedi osobi B. Osoba B stavi na istu

kutiju još svoj katanac (do poruke ne moze doći jer nema ključa od katanca

osobe A) za koji samo on ima ključ i vrati kutiju sa dva katanca osobi A. Ona

skida sada svoj katanac i vraća kutiju sa porukom i katancem osobe B osobi B.

Osoba B skida svoj katanac i čita poruku. Odgovor se moze poslati na nalogan

način. Na prvi pogled ja ostvarena bezbjedna kriptovana komunikacija, bez

potrebe da se provede i distribucija ključeva. Ali kada se opisani koncept sa

Page 3: KSS - Predavanje 5 - Asimetricni Kriptografski Algoritmi. RSA

Univerzitet u Sarajevu Elektrotehnički fakultet Odsjek za telekomunikacije

akademska godina: 2011/2012 Kriptografija i sigurnost sistema

Predavanje 5

3

ključeva za katanac, katanaca, kutija i poruka, modifikuje na kriptografske

ključeve, tada ako osoba A kriptuje izvorni tekst svojim ključem, pa ga

proslijedi osobi B, nakon čega ga i osoba B kriptuje svojim ključem te vrati tako

dvostruko kriptovan tekst osobi A, nakon dekriptovanja teksta prvo od strane

osobe A, a potom i od osobe B neće se dobiti izvorni tekst.

Naime dok je kod ključeva za katance, katanaca i kutija nevazan

redoslijed otključavanja i zaključavanja, kod kriptografskih ključeva je to

veoma bitno. Tu se mora poštivati pravilo „posljednji dođe, prvi ode“ , odnosno

posljednja primjenjena šifra enkripcije mora se prva ukloniti – dešifrovati

(osoba A je prva otključala svoj katanac - uklonila svoju šifru, što nije

prihvatljivo kada se radi sa kriptografskim ključevima) Često se obaveznost

opisanog pristupa „posljednji dođe, prvi ode“ opisuje primjerom u kojem

ujutro prvo obučemo čarape, pa potom cipele, a uvečer prvo skinemo cipele, pa

tek potom čarape. Opisani postupak ima međutim i bar još jedan problem, jer

neko moze presresti kutiju sa porukom i katancem od osobe A, staviti svoj

katanac i vratiti osobi A kutiju s dva katanca, pri čemu ta osoba oponaša osobu

B. Difi i Helman su pokušavali rješenje problema bezbjedne distribucije

ključeva rješiti pomoću upotrebe „jednosmjernih funkcija“. Jednosmjerne

funkcije se izračunavaju lako, ali se na osnovu poznate funkcije vrlo teško moze

doći do početne vrijednosti – argumenta. Za razliku od ovih funkcija,

dvosmjerne funkcije imaju osobinu da ih je lako i izračunati, ali i iz njihovog

rezultata, doći do početnih vrijednosti – odnosno argumenta (analogija s

paljenjem i gašenjem sijalice). Prirodu jednosmjernih funkcija dobro

odslikavaju slijedeći primjeri: mješanjem plave i zute boje dobija se zelena boja,

ali iz te zelene boje vrlo teško se izlučuje samo plava ili samo zuta boja; jaje se

lako razbije, ali povratak jajeta u prvobitno stanje, iz razbijene forme je vrlo

teško. Naslućujući da upotreba jednosmjernih funkcija moze biti jedna

varijanta rješenja, Helman se tokom 1975. godine posebno fokusirao na

jednosmjerne funkcije čija jednosmjernost proizilazi iz primjenjene modularne

aitmetike. U tabeli 2.5.1 naveden je primjer funkcije 3x , kada se vrijednost ove

funkcije računa u uobičajnoj aritmetci (druga vrsta) i u modularnoj aritmetici

(treća vrsta). Na osnovu rezultata tabele nije teško primjetiti da se u uobičajnoj

aritmetici ova funkcija ponaša „predvidivo“, kao monotono rastuća funkcija,

dok se u modularnoj aritmetici ona ponaša posve „neuobičajno“. Analizirajući

slične rezultate, Helman je predlozio da se pri konstrukciji ključa koristi

funkcija Yx(modP). Osoba A i osoba B dogovaraju vrijednosti parametara Y i

P.

Tabela broj 2.5.1.

Page 4: KSS - Predavanje 5 - Asimetricni Kriptografski Algoritmi. RSA

Univerzitet u Sarajevu Elektrotehnički fakultet Odsjek za telekomunikacije

akademska godina: 2011/2012 Kriptografija i sigurnost sistema

Predavanje 5

4

X 1 2 3 4 5 6

3x

3 9 27 81 243 729

3x (mod7) 3 2 6 4 5 1

Jedino ograničenje pri izboru tih parametata je da vazi odnos Y< P. Pri

tome ove vrijednosti nisu tajna, pa se mogu dogovarati i putem javne telefonske

linije. Ukoliko je Y = 7, a P = 11, tada su se oni dogovorili da koriste funkciju

7x (mod 11). Procedura formiranja vlastitih ključeva osobe A i osobe B,

prikazana je u nastavku teksta.

1. Osoba A bira kao vlastiti broj a, recimo prirodan broj 3, dakle a=3, te

taj podatak drzi tajnim. S druge strane osoba B bira kao vlastiti broj b,

neka je to prirodan broj 6, dakle b = 3, te također taj podatak drzi tajnim.

2. Osoba A zamjenjuje x sa brojem a, dakle piše da je x = 3, a potom

računa 73 (mod 11) = 343 (mod 11) = 2. Paralelno tome osoba B umjesto x

unosi broj b, odnosno piše x = b = 6, a potom i računa:

76 (mod 11) = 117649 (mod 11) = 4.

3. Osoba A obiljezava rezultat sa α = 2 i šalje ga osobi B. Osoba B također

obiljezava svoj rezultat sa β = 4 i šalje ga osobi A. Neko ko prisluškuje ovu

komunikaciju, pored već ranije registrovanih parametara Y = 7 i P = 11,

sada registruje i nove podatke α = 2 i β = 4.

4. Osoba A na osnovu dobijenog podatka β = 4 izračunava vrijednost

βa= 4

3( mod 11) = 64 (mod 11) = 9, dok osoba B izračunava na osnovu

dobijenog podatka α = 2, αb = 2

6 (mod 11) = 9. Broj 9 je ključ za njihovu

kriptografski zaštićenu komunikaciju.

Da bi onaj što prisluškuje njihovu komunikaciju mogao doći do ključa

njemu nedostaje još jedan podataka ili a = 3 ili b = 6.

Opisana procedura, kada se prevede u primjer kanti s bojama, ima slijedeću

interpretaciju. Osoba A, osoba B i osoba C (prisluškivač) imaju, svako

ponaosob, kantu od tri litra, u kojoj je već naliven litar zute boje. Osobe A i B

kada zele dogovoriti tajni kriptografski ključ, u kantu uliju po dodatni litar boje

u skladu sa sopstvenim izborom. Nakon toga osobe a i B razmjenjuju kante sa

po dva litra boje i ponovo sipaju litar boje po sopstvenom izboru. Na taj način

osoba A i osoba B imaju kante pune iste boje (tri litra od tri istovjetne litarske

Page 5: KSS - Predavanje 5 - Asimetricni Kriptografski Algoritmi. RSA

Univerzitet u Sarajevu Elektrotehnički fakultet Odsjek za telekomunikacije

akademska godina: 2011/2012 Kriptografija i sigurnost sistema

Predavanje 5

5

komponente), dok osoba C registruje pored svoje kante u kojoj je litar zute boje

i prolazak dvije kante napunjene sa po dva pitra različite boje.

Svoje otkriće opisanog algoritma za pouzdanu razmjenu kriptografskih

ključeva i bez fizičkog sastajanja osoba koje komuniciraju uz kriptografsku

zaštitu, Difi, Helman i Merkl, predstavili su američkoj javnosti na nacionalnoj

računarskoj konferenciji 1976. godine. Naredne godine oni su i patentirali svoj

algoritam. Opisani sistem i pored svoje nesumnjive inovativnosti, mogao se ipak

i dodatno dograđivati da bi se prevazišle neke njegove nedorečenosti.

Naime, tokom komunikacija određenih subjekata sa vrlo udaljenih

geografskih područja (međusobno pomjerenih za više časovnih zona) evidentan

problem postaje sinhronizovana razmjene parametara Y, P, α i β. Ovaj problem

je rješen tako što se one vrijednosti parametara, koje nisu tajna, stavljaju na

uvid cjelokupnoj javnosti – u formi javnog ključa. U tom smislu javni ključ

osobe A je ključ kojim svi koji hoće da joj pošalju šifrovanu poruku, šifruju

izorni tekst. Tajni ključ osobe A je ključ koji samo ona zna i uz čije djelovanje

se moze dešifrovati svaka poruka, šifrovana javnim ključem osobe A. Postupak

asimetrične kriptografije (jednim ključem se šifruje, a drugim dešifruje tekst), u

analogiji sa slanjem poruka u kutiji koja je zatvorena katancem imao bi

slijedeći smisao. Svako moze da zatvori katanac, ali ga moze otvoriti samo onaj

ko ima njegov ključ. Onaj ko hoće da sakrije poruku za osobu A u kutiju, treba

samo nabaviti katanac za osobu A, i zatvori katanac. To zatvaranje katanca je

ekvivalentno pribavljanju javnog ključa osobe A.

Dakle Difi, Helman i Merkl su algoritamski smislili revolucionarno nov

sistem za bezbjednu razmjenu ključeva, ali je ostao nerješen problem njegove

praktične implementacije.

Na tom problemu, uz niz drugih timova, u laboratorijama za računarsku

tehniku MIT-a, radili su i Ron Rivest (Ron Rivest (1947- )), Leonard Adlman

(Leonard Adlman (1945- )) i Adi Šamir (Adi Shamir (1952- )). Dok su Rivest i

Šamir bili kompjuterski stručnjaci, Adelman je bio matematičar i imao je

zadatak da ponuđene ideje oko pronalazenja odgovarajuće jednosmjerne

funkcije, kritički preispituje.

Primjer

Opisati proceduru konstrukcije i razmjene kriptografskih ključeva, koji se

koriste u okviru šifriranja RSA algoritmom komunikacije uspostavljene između

osobe A i osobe B.

Page 6: KSS - Predavanje 5 - Asimetricni Kriptografski Algoritmi. RSA

Univerzitet u Sarajevu Elektrotehnički fakultet Odsjek za telekomunikacije

akademska godina: 2011/2012 Kriptografija i sigurnost sistema

Predavanje 5

6

Osoba A bira dovoljno veliki broj NA, koji je određe kao proizvod dva prosta

broja pA i qA,( broj je prost u matematičkom smislu ako je djeljiv bez ostatka,

samo sa brojem 1 i sa samim sobom). Za broj NA, dakle važi relacija:

NA = pA ∙ qA

U praksi su brojevi pA i qA izuzetno veliki, kako bi se proces njihovog

pronalaženja kada je poznato NA učinio praktično nemogućim i uz upotrebu

enormnih računarskih resursa. Kod važnih bankarskih transakcija NA ima

vrijednost reda 10308

što je otprilike ekvivalentno ključu od 1024 bita, kojem

odgovara prostor ključeva od 21024

.

Za primjer koji se obrađuje u ovom tekstu, neka je pA = 17, a qA = 11, zbog čega

je:

NA = 17 ∙ 11 = 187

Dok se broj NA javno objavljuje, jer je dio javnog ključa osobe A, (osoba A ga

može staviti na svoju vizit kartu ili na svoj web site), brojevi pA i qA moraju se

držati u tajnosti, jer su komponente tajnog ključa osobe A. Osoba A potom bira

još jedan prost broj eA = 7. Treba voditi računa da i brojevi (pA -1), (qA-1) i eA

trebaju biti međusobno relativno prosti. Brojevi NA i eA čine javni ključ osobe

A.

Kada osoba B hoće da pošalje poruku osobi A i to u kriptovanoj formi, u skladu

sa algoritmom RSA, izvorni tekst poruke treba prvo prevesti u binarnu notaciju

prema ASCII kodu. Zatim se iz te binarne notacije, prvo prelazi u ekvivalentni

decimalni broj M, nakon čega se formira tek kriptovani oblik izvorne poruke

osobe B, neko CB ( koje se namjerava uputiti osobi A), u skladu sa relacijom:

CB = MeA

(mod NA)

Ukoliko je osoba B htjela da pošalje osobi A samo simbol X, on u ASCII notaciji

ima formu 1011000. Tome u decimalnoj notaciji odgovara broj 88. Dakle tada je

M = 88.

S obzirom da je javni ključ osobe A definisan parametrima NA = 187 i eA = 7,

tada je kriptovani oblik izvorne poruke

CB =88 7

(mod 187)

Računanje vrijednosti 88 7

može se pojednostaviti uzimajući u obzir da je

88 7

(mod 187) = 88 (mod 187) ∙ 88 2

(mod 187) ∙ 88

2 (mod 187) ∙ 88

2 (mod 187) =

Page 7: KSS - Predavanje 5 - Asimetricni Kriptografski Algoritmi. RSA

Univerzitet u Sarajevu Elektrotehnički fakultet Odsjek za telekomunikacije

akademska godina: 2011/2012 Kriptografija i sigurnost sistema

Predavanje 5

7

88 7

(mod 187) = 88 (mod 187) ∙77 (mod 187) ∙77 (mod 187) 77 (mod 187) =

88 7

(mod 187)= 11 (mod 187).

Neko ko želi da otkrije sadržaj komunikacije između osoba A i B, na osnovu

podataka: 11 = ? 7

(mod 187), teško da može otkriti kako je M = 88, pogotovo u

uslovima realnih eksploatacionih sistema kada je umjesto NA = 187 i eA = 7,

upotrebljena mnogo veća vrijednost.

Osoba A nakon prijema sadržaja CB = 11, ipak je u stanju, uz pomoć samo njoj

poznatog parametra dA , određenog relacijom:

eA ∙ dA = 1 (mod (pA-1)∙(qA-1)) =

7 ∙ dA = 1 (mod (16)∙(10)) = 1 (mod (160)) ,odakle se utvrđuje da je dA = 23

Pri određivanju vrijednosti parametra dA, koristi se Euklidov algoritam. Osoba

A sada na osnovu izračunate vrijednosti dA i uz pomoć relacije

M = CdA

( mod 187) = 1123

(mod 187) = 112 (mod 187) 11

21 (mod 187) =

M = 121 (mod 187) 1121

(mod 187) =.....= 88 , binarno 1011000, odnosno X u

ASCII notaciji.