KSS - Predavanje 5 - Asimetricni Kriptografski Algoritmi. RSA
description
Transcript of 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.
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
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.
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
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.
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) =
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.