UNIVERZITET CRNE GORE Prirodno –matematički fakultet Podgorica Digitalni potpis SPECIJALISTIČKI RAD Kriptografija Doc.dr Vladimir Božovid Darinka Vučinid Studijski program Računarske nauke 0602988218006 Podgorica, Avgust 2010. Sažetak Digitalizacija moderne kancelarije i sve češda upotreba Interneta u poslovnim primjenama dovodi do potrebe sigurnog i pouzdanog utvrđivanja autentičnosti dokumenata. Upravo zbog toga, digitalni potpis je postao jedan od najvažnijih kriptografskih alata koji je danas u širokoj upotrebi. Njegova osnovna uloga je da potvrdimo identitet pošiljaoca poruke ili potpisnika dokumenta, kao i da se obezbjedi dokaz da je originalni sadržaj poruke ili dokumenta koji je poslat nepromjenjen. Digitalni potpisi se sve više, po učestalosti upotrebe i važnosti dokumenata na koja se primjenjuju, približavaju klasičnim potpisima i samo je pitanje vremena kada de ih učiniti nepotrebnim. U ovom radu obrađujemo: RSA šemu digitalnog potpisa, Elgamal šemu digitalnog potpisa i dva algoritma koja su proistekla iz ove šeme: Algoritam digitalnog potpisa (DSA) i Algoritam digitalnog potpisa zasnovan na eliptičnim krivim(ECDSA). Ovo su jedni od najznačajnijih i u praksi najčešde korišdenih algoritama digitalnog potpisivanja. Abstract Digitization of modern office and more frequent use of the Internet in business applications lead to the need for secure and reliable authentication of documents. As a result, the digital signature has become one of the most important, broadly used contemporary cryptographic tools. Its main purpose is to verify the identity of the sender or signer of a document, as well as to provide evidence that the original content of the sent message or document is unchanged. Digital signatures are getting closer to handwritten signatures by frequency of use and the relevance of documents to be signed, and is only a matter of time before former will become obsolete. In this paper we discuss: RSA digital signature scheme, The Elgamal digital signature scheme and two extensions of it, the digital signature algorithm (DSA) and the elliptic curve digital signature algorithm (ECDSA) These are one of the most important and most commonly used digital signature algorithms in practice. 2 Sadržaj 1. Uvod ..................................................................................................................................... 5 2. Matematičke i kriptografske osnove digitalnog potpisa .......................................................... 8 3. 4. 5. 6. 7. 8. 2.1. Matematička priprema ........................................................................................................... 8 2.2. Problem diskretnog logaritma i Diffie-Hellman protokol za razmjenu ključeva ................... 14 2.3. Kriptografski temelji digitalnog potpisa ................................................................................ 15 2.3.1. RSA (Rivest-Shamir-Adleman algoritam) ....................................................................... 15 2.3.2. Elgamal algoritam .......................................................................................................... 16 2.3.3. Eliptične krive ................................................................................................................ 17 Šta je digitalni potpis? ......................................................................................................... 20 3.1. Motivacija .............................................................................................................................. 20 3.2. Principi funkcionisanja digitalnog potpisa............................................................................. 21 3.3. Uloga „Autoriteta od povjerenja“ i potpisivanje javnog ključa ............................................. 24 3.4. Potpisi i zakoni....................................................................................................................... 24 3.5. Sigurnosni zahtjevi ................................................................................................................ 27 RSA šema digitalnog potpisa ................................................................................................ 29 4.1. Školski primjer RSA digitalnog potpisa .................................................................................. 29 4.2. Računarski aspekat ................................................................................................................ 31 4.3. Sigurnost................................................................................................................................ 31 Elgamal šema digitalnog potpisa .......................................................................................... 35 5.1. Školski primjer Elgamal digitalnog potpisa............................................................................ 35 5.2. Računarski aspekat ................................................................................................................ 37 5.3. Sigurnost................................................................................................................................ 38 Algoritam digitalnog potpisa (DSA) ...................................................................................... 41 6.1. DSA algoritam ........................................................................................................................ 41 6.2. Računarski aspekat ................................................................................................................ 44 6.3. Sigurnost................................................................................................................................ 45 Algoritam digitalnog potpisa zasnovan na eliptičnim krivim (ECDSA) .................................... 47 7.1. Šema ECDSA algoritma .......................................................................................................... 47 7.2. Računarski aspekat ................................................................................................................ 50 7.3. Sigurnost................................................................................................................................ 50 Zaključak............................................................................................................................. 52 Literatura ................................................................................................................................... 53 3 Spisak slika Slika 1. Tipičan primjer eliptične krive .................................................................................................. 18 Slika 2. Sabiranje i množenje u grupi koju stvara eliptična kriva .......................................................... 18 Slika 3. Princip rada digitalnog potpisa koji uključuje potpisivanje i verifikaciju poruke ...................... 22 Slika 4. EMSA-PSS metod kodiranja ...................................................................................................... 33 Slika 5. Princip funkcionisanja EMSA-PSS šeme kodiranja .................................................................... 34 Spisak tabela Tabela 1. Bitska dužina važnih parametara DSA algoritma ................................................................... 42 Tabela 2. Standardizovane vrijednosti bitske dužine parametara i nivoi sigurnosti za DSA ................. 46 Tabela 3. Bitske dužine i nivoi sigurnosti ECDSA algoritma .................................................................. 51 4 1. Uvod Vijekovima unazad, potpisi su bili najbolje prihvadeni način autentifikacije. Ovjeravanje dokumenata svojeručnim potpisom vuče korijene od samih početaka ljudske pismenosti. Rimski zakoni priznavali su kombinaciju pečata i potpisa kao osnovni način ovjeravanja dokumenata i pravnih ugovora. Potpisi se danas nalaze na najrazličitijm dokumentima, od različitih ugovora, naloga, računa pa sve do privatnih pisama. Tridesetih godina XIX vijeka došlo je do prvih znakova elektronske komunikacije i zakonski priznatih elektronskih potpisa pronalaskom telegrafa i Morzeove azbuke. Ipak, kada su računari u pitanju, ne smatra se svaki potpis digitalnim potpisom. Različite znakovne ili tekstualne oznake u datotekama ili elektronskoj pošti ili kopije svojeručnog potpisa krajnje su neprimjerene i nepouzdane, prije svega zbog lakog falsifikovanja. Razvojem informacionih tehnologija i računarskih mreža, postalo je jasno da je potreban novi način ovjeravanja dokumenata. Temelji za pouzdanu provjeru porijekla informacija, „digitalni potpis“, stvoreni su 1976. godine otkridem kriptografije javnog ključa (Diffie-Hellman), koja se još naziva i asimetričnom kriptografijom. Zanimljivo je napomenuti da je ovaj način kriptovanja podataka, prema nekim informacijama 1 bio poznat britanskoj tajnoj službi nekoliko godina ranije nego spomenutoj dvojici istraživača. Digitalni potpis služi da obezbjedi dokaz da je elektonski dokument (e-mail poruka, tabela, ugovor, tekstualni fajl, itd.) autentičan. Autentičan znači da nam je poznato ko je kreirao dokument i da znamo da dokument nije izmjenjen na bilo koji način od trenutka kada nam je poslat. Digitalni potpisi se obično koriste za distribuciju softvera, finansijske transakcije, kao i u drugim slučajevima u kojima je važno da se otkrije falsifikat ili manipulacija. Privatni i javni ključevi koji se koriste u asimetričnoj kriptografiji služe za prenošenje osjetljivih informacija, ali se takođe mogu koristiti da obezbjede provjeru identiteta pošiljaoca poruke ili dokumenta. Upotreba privatnog i javnog ključa u algoritmima digitalnog potpisa ne štiti sadržaj poruke, ved je samo dokaz da je pošiljaoc poruke upravo onaj za kojega se predstavlja. Digitalni potpisi primaocu poruke pružaju neku vrstu dokaza kada je u pitanju identitiet pošiljaoca, kao i to da je poruka stigla nepromjenjena. Digitalni potpisi funkcionišu na sljededi način: prvo se formira sažetak poruke (engl. message digest) korišdenjem određenog algoritma za heširanje. Sažetak poruke, koji je obično dužine 128 ili 256 bita, se zatim enkriptuje korišdenjem privatnog ključa pošiljaoca i dodaje na kraj poruke. Kada primalac primi poruku on je „propusti“ kroz isti algoritam za heširanje i generiše sažetak poruke. Zatim, primaoc dekriptuje potpis korišdenjem javnog ključa pošiljaoca i upoređuje broj koji je dobijen na izlazu iz heš funkcije sa brojem koji je dobio prilikom dekripcije. Ukoliko su brojevi identični, on može biti siguran da je poruka stigla od „pravog“ pošiljaoca, i da nije izmjenjena prilikom prenosa. Prva praktična realizacija digitalnog potpisa bila je u radu Rivesta, Shamira i Adlemana koji je objavljen 1978. godine. RSA digitalni potpis je standardizovan od strane više tijela za standardizaciju. RSA potpisi su bili, i još uvijek su, de facto standard za mnoge aplikacije, posebno za sertifikate na Internetu. 1 J H Ellis: The Possibility of Secure Non-Secret Digital Encryption, CESG Report, Januar 1970 5 Elgamal digitalni potpis objavljen je 1985. godine. Tokom godina su predložene različite varijante ove šeme. DSA algoritam je predložen 1991. godine i postao je standard u SAD-u 1994. godine. Postoje dva moguda motiva što je američka vlada uvela ovaj standard kao alternativu RSA algoritmu. Prvo, RSA je bio patentiran u to vrijeme, a za Ameriku je bilo poželjno da ima i besplatnu alternativu. Drugo, RSA implemenacija digitalnog potpisa se takođe može koristiiti za enkripciju. Ovo nije bilo poželjno (sa tačke gledišta američke vlade) jer su u to vrijeme i dalje bila na snazi stroga organičenja za izvoz kriptografskih alata iz SAD-a. Nasuprot tome, DSA implementacija se može koristiti samo za potpisivanje, ne i za enkripciju, i zbog toga je bilo lakše da se izvezu sistemi koji uključuju samo funkcionalnost potpisa. Treba imati na umu da se termin DSA odnosi na Algoritam digitalnog potpisa, a odgovarajudi standard se označava kao DSS- Standard digitalnog potpisa. Danas, DSS uključuje ne samo DSA algoritam, ved i ECDSA i RSA digitalni potpis. Pored navedenih algoritama postoji još i niz drugih algoritama kao što su: Rabinov digitalni potpis, Fiat-Shamir algoritam za digitalni potpis, i mnogi drugi koje u ovom radu nedemo obrađivati. Danas, kada vedina razvijenih zemalja u svoje zakone uvodi i zakon o digitalnom potpisu, ovo područje se nalazi na granici dva svijeta, kriptografije i prava. Osim pravnih problema oko primjene digitalnog potpisa, postoje i pravni problemi vezani za implementaciju algoritama digitalnog potpisa, uglavnom zbog softverskih patenata kojima je velik broj algoritama zaštiden, ali i zbog restriktivnih regulativa pojedinih zemalja vezanih za kriptografske proizvode uopšte. Tako je npr. izvoz „jakog“ enkripcijskog softvera iz SAD-a bio zabranjen sve do pred kraj 1999. godine. Isto tako, u Francuskoj je upotreba alata za enkripciju bila zabranjena do početka 1999. godine. Ipak, naglim širenjem elektronskog poslovanja postalo je nužno ovakve odredbe ukinuti, i omoguditi kako sigurnu zaštitu informacija šifrovanjem tako i zaštitu od mogudih prevara autentifikacijom. Upravo kao idealan alat za autentifikaciju nametnuo se digitalni potpis. Rad je organizovan na sljededi način: u poglavlju 2 date su definicije osnovnih matematičkih pojmova i teorema koji su neophodne za razumjevanje suštine algoritama digitalnog potpisa. Poglavlje 2 takođe sadrži i definiciju problema diskretnog logaritma, kao i opis jednog od najuticajnijih protokola u istoriji kriptografije- Diffie-Hellman protokola, koji je zasnovan na problemu diskretnog logaritma. Ovdje smo dali i kratak opis osnovnih kriptografskih algoritama koji su poslužili za izgradnju algoritama digitalnog potpisa. Poglavlje 3 detaljnije objašnjava sam pojam digitalnog potpisa, i sve ono što taj pojam predstavlja. Tu smo naveli i principe funkcionisanja digitalnog potpisa, kao i spisak sigurnosnih zahtjeva koje algoritmi digitalnog potpisa trebaju da ispune. Takođe, u ovom poglavlju se bavimo i primjenom zakona o digitalnom potpisu u svijetu i kod nas. U poglavlju 4 bavimo se RSA algoritmom za digitalni potpis. Ovaj algoritam, baziran na RSA enkripciji, je prilično brz, ali osnovni nedostatak mu je dužina potpisa, koja može biti problem u sistemima sa ograničenim propusnim opsegom. Poglavlje 5 sadrži opis Elgamal algoritma digitalnog potpisivanja. Za razliku od RSA, gdje su enkripcija i digitalni potpis gotovo identične operacije, Elgamal digitalni potpis se prilično razlikuje od šeme za enkripciju sa istim imenom. Ovaj algoritam se vrlo rijetko koristi u praksi, ali je poslužio kao osnova za 6 DSA- Algoritam digitalnog potpisa, koji opisujemo u poglavlju 6. DSA algoritam je standard za digitalne potpise Vlade Sjedinjenih Američkih Država. Glavna prednost ovog potpisa u poređenju sa Elgamal šemom digitalnog potpisivanja je ta da je potpis dugačak samo 320 bita, i neki napadi koji mogu da ugroze Elgamal šemu se ne mogu primjeniti na DSA. Posljednji algoritam digitalnog potpisivanja koji opisujemo u ovom radu je ECDSA- Algoritam digitalnog potpisa zasnovan na eliptičnim krivim (poglavlje 7). Korišdenje eliptičnih krivih ima određenih prednosti u poređenju sa RSA i šemama koje se zasnivaju na problemu diskretnog logaritma, kao što su Elgamal i DSA. Osnovne prednosti ovog algoritma su krade vrijeme procesiranja i kradi potpisi. Iz ovih razloga, Algoritam digitalnog potpisa zasnovan na eliptičnim krivim (ECDSA) standardizovan je 1998. godine od strane Američkog nacionalnog instituta za standardizaciju (ANSI). 7 2. Matematičke i kriptografske osnove digitalnog potpisa U ovom poglavlju dademo definicije matematičkih pojmova i formulacije teorema koje su neophodne za razumjevanje algoritama koje obrađujemo u radu. Zatim demo definisati problem diskretnog logaritma, i objasniti jedan od najuticajnijih protokola u istoriji kriptografije: Diffie-Hellman protokol. Na kraju ovog poglavlja obrađujemo osnovne kriptografske algoritme koji su poslužili kao temelji za izgradnju algoritama digitalnog potpisa. 2.1. Matematička priprema Najvedi dio moderne kriptografije je izgrađen na temelju algebre i teorije brojeva. Zato je neophodno da razvijemo odgovarajudi matematički aparat prije nego što se počnemo baviti tipično kriptorafskim temama. Skupovi brojeva Osnovni skupovi brojeva sa kojima demo se susresti u ovom radu su prirodni i cijeli brojevi. Skup prirodnih brojeva je , a skup cijelih brojeva . Podsjetimo se definicije i osnovnih osobina djeljivosti. Definicija. Neka su i cijeli brojevi i . Kažemo da djeljivo sa , ako postoji cio broj tako da je . Lema. Neka su a) Ako je b) Ako je c) Ako je dijeli , u oznaci , odnosno da je i cijeli brojevi. i i i , onda , onda , onda . . . Najveći zajednički djelilac Pojam najvedeg zajedničkog djelioca, iako elementaran, ima brojne implikacije u aritmetici. Podsjedamo se definicije i notacije. Definicija. Zajednički djelilac dva broja i je pozitivan cio broj koji dijeli oba broja. Najvedi zajednički djelilac brojeva i je, kao što ime sugeriše, najvedi pozitivan, cio broj takav da i . Najvedi zajednički djelilac i se označava . Ako je onda nije definisan. Prvo elementarno pitanje je kako efikasno nadi za dva prirodna broja . 8 Euklidov algoritam Naš cilj je da ustanovimo efikasan algoritam za nalaženje koristimo Euklidov algoritam. dva cijela broja U tom smislu Ako je onda elelmentarnom analizom zaključujemo . Ovo elementarno zapažanje je suština Euklidovog algoritma. Jasno, postupak možemo nastaviti, a sljededa iteracija, umjesto brojeva de početi sa brojevima Očigledno, svaki sljededi korak sadrži manje brojeve od prethodnog. Osnovni oblik Euklidovog algoritma Neka su dati prirodni brojevi Algoritam: 1. Neka je 2. Dijeljenjem sa 3. Ako je 4. Ako je i , takvi da je . ,a . dobijamo količnik i ostatak onda , onda postavimo , tako da i algoritam je okončan. i vradamo se na korak 2. Napomena. Korak podjele 2 obavljamo najviše puta. Ukoliko krenemo unazad kroz Euklidov algoritam, onda možemo uz malo spretnosti uočiti da se može predstaviti kao linearna kombinacija brojeva i . Naime, važi sljededa lema: Lema. Ako je za dva prirodna broja i , onda postoje cijeli brojevi tako da . Posebno, od svih prirodnih brojeva oblika Kao što smo ved vidjeli, za prirodne brojeve Uvijek ima rješenje za Opštije, ako je , gdje su , broj je najmanji. i jednačina u skupu cijelih brojeva. jedno rješenje prethodne jednačine, onda svako njeno rješenje ima oblik i , za . 9 Prošireni Euklidov algoritam Neka su dati prirodni brojevi a i b, takvi da je . Tražimo , kao i brojeve i tako da važi Algoritam: 1. Neka je , , 2. Postavimo , a zatim računamo , , , . 3. Ako je onda se vradamo na korak 2. 4. Ako je , onda ,a . , . i algoritam je okončan. Modularna aritmetika Modularna aritmetika je veoma zastupljen i koristan aparat u teoriji brojeva. Osnovna ideja se može slikovito predstaviti kao aritmetika zatvorenog kruga. Na primjer, u aritmetici po modulu 12, imamo brojeve od 0 do 11, 12 opet tretiramo kao 0, 13 kao 1 itd. Definicija. Neka je njihova razlika cijeli broj. Kažemo da su cijeli brojevi i kongruentni po modulu djeljiva sa , odnosno ako . Tada pišemo ako je . Razlog zbog kojeg koristimo oznaku u modularnoj aritmetici je taj što ona ima mnoge osobine koje podsjedaju na jednakost u klasičnoj aritmetici, kao što pokazuje i sljededa lema. Lema. Ako je i onda je , . Jedan od najvažnijih pojmova u modularnoj aritmetici uopšte, je pojam multiplikativnog inverza po modulu. Lema. Neka je cio broj. Tada je za neko Broj nazivamo multiplikativnim inverzom broja Na primjer, brojevi akko po modulu . . imaju multiplikativne inverze po modulu . 10 Prosti brojevi Prosti brojevi se mogu u izvjesnom smislu smatrati osnovnim gradivnim komponentama cijelih brojeva. Definicija. Prirodan broj je prost ako je i ako su jedini pozitivni djelioci broja , brojevi i . Sljededa lema je osnov za dokazivanje osnovne teoreme aritmetike. Lema. Neka je prost broj i pretpostavimo da . Tada dijeli ili . Opštije, ako , Tada dijeli bar jedan od , za . Osnovna teorema aritmetike Teorema. Neka je cio broj. Tada se može predstaviti (faktorisati) na sljededi način: . Ova faktorizacija je jedinstvena do na poredak prostih brojeva. Značaj prethodne teoreme je izuzetan, što i samo ime potvrđuje. Prije svega, ona nam govori da se svi cijeli brojevi mogu izgraditi pomodu prostih brojeva. Ta činjenica ima mnoge značajne implikacije u aritmetici i matematici uopšte. Ojlerova funkcija Osnovna struktura modularne aritmetike po modulu je prsten cijelih brojeva . Unutar ovog skupa, nalazi se, skup jedinica po modulu , odnosno multiplikativnih inverza , . Jedna od najpoznatijih i vjerovatno najvažnijih funkcija u klasičnoj aritmetici je Ojlerova φ funkcija, koju definišemo jednostavno kao . Podsjedajudi se definicije funkcije, lako se izvodi zaključak da je , gdje je prost broj. Međutim, naš cilj je da nađemo formulu za Ojlerovu funkciju za svaki prirodan broj i u tom smislu nam može biti od pomodi sljededa teorema. Teorema. Ojlerova funkcija je multiplikativna. To znači da za , važi . 11 Posljedica. Neka je faktorizacija prirodnog broja . Tada je . Na primjer, . Ojlerova teorema Ova teorema se veoma često koristi, kako u teorijskim razmatranjima, tako i u nekim praktičnim problemima. Ova teorema ima značajno mjesto u razumjevanju nekih važnih kriptografskih algoritama među kojima je najpoznatiji RSA. Teorema. Ako je nz , onda je . Fermaova teorema Posljedica Ojlerove teoreme, odnosno njen specijalni slučaj je čuvena Fermaova teorema. Teorema. Ako je prost broj i ne dijeli , onda je . Posljedično, ako je prost broj i proizvoljan cio broj, tada važi . Grupa Neka je dat skup , na kom je definisana binarna operacija . 1. Uređeni par se naziva grupoid. 2. Grupoid, u kom je operacija + asocijativna, tj. važi polugrupa. 3. Polugrupa sa jediničnim elementom ( monoid. 4. Monoid u kom svaki element ima inverzni ( 5. Ako je operacija + komutativna ( grupa. naziva se ) se naziva a + b = b + a = e) je grupa. ), onda je Abelova Prsten Neka je dat skup , na kom su definisane dvije binarne operacije: , . Uređena trojka je prsten ako 12 1. je Abelova grupa. 2. je polugrupa. 3. Za svako važi distributivnost množenja u odnosu na sabiranje , . Polje Neka je Ako je prsten. Definišimo skup Abelova grupa, onda . nazivamo poljem. Primjer. Neka je skup ostataka po modulu , gdje je - prost broj. Tada je „ “ i „ “ sabiranje i množenje po modulu . Često, umjesto koristimo oznaku polje, gdje su . Red elementa u grupi Neka je data grupa postoji prirodan broj sa jediničnim elementom, i proizvoljan element takav da . Najmanji takav broj je red elementa njoj nazivamo redom grupe. Lema. Neka je data konačna grupa grupe. . Pretpostavimo da u grupi . Ako je grupa konačna, tada broj elemenata u . Tada je red svakog elementa u njoj konačan i dijeli red Konačno polje je generisano jednim elementom Fermaova teorema definiše jednu važnu osobinu jedinica (elemenata različitih od nule) u konačnom polju. Ovdje pominjemo jednu veoma važnu osobinu konačnog polja koja ima jednako teorijsku i praktičnu vrijednost. Teorema o primitivnom korijenu. Neka je svaki element iz , odnosno prost broj. Tada postoji element koji generiše . Elementi koji imaju ovu osobinu se zovu primitivnim korijenima ili generatorima Definicija. Grupa se naziva cikličnom ako postoji element u , takav da je . . 13 2.2. Problem diskretnog logaritma i Diffie-Hellman protokol za razmjenu ključeva Problem diskretnog logaritma(DLP) je matematički problem veoma zastupljen u kriptografiji. Definicija DLP. Neka je primitivni korjen (generator) polja problem nalaženja eksponenta tako da . Problem diskretnog logaritma je . Broj nazivamo diskretnim logaritmom od u odnosu na bazu i označavamo sa . DLP se smatra kao jedna vrsta jednosmjerne funkcije. To znači da ne postoji dovoljno efikasan algoritam koji bi računao diskretni logaritam. Primjer. Tražimo diskretni logaritam u polju od 41 po osnovi 5. Znamo da je 5 generator multiplikativne grupe. Primjenom algoritma puke sile dobijamo rješenje kongruencije Za . Čak i za male primjere, nije lako samo koristedi prosto pretraživanje nadi diskretni logaritam. Diffie-Hellman protokol Diffie-Hellman protokol za razmjenu ključeva predstavlja prvu asimetričnu šemu koja je objavljena u dostupnoj literaturi. Ovaj protokol omogudava dvijema stranama da razmjene tajni ključ preko nesigurnog kanala. Algoritam započinje na sljededi način: 1. Izaberimo veliki prost broj . 2. Izaberimo cijeli broj 3. Objavimo i . . Protokol koristi dva parametra i , oba javna. Parametar je prost broj, a parametar (obično se naziva generator) je cijeli broj manji od , koji ima sposobnost da generiše bilo koju vrijednost od do kada se pomnoži samim sobom određeni broj puta po modulu . Pretpostavimo sada da dvije osobe, Alisa i Bob, žele razmjenjivati šifrovane poruke preko nesigurne veze, a da prethodno nemaju neki tajni ključ. 14 Prema Diffie-Hellman protokolu, obije strane generišu tajne vrijednosti: Alisa generiše slučajan broj , a Bob slučajan broj . Nakon toga koriste javne parametre i da bi izračunali vrijednost zajedničkog tajnog ključa , i to tako da Alisa izračuna svoju javnu vrijednost kao , a Bob . Javne vrijednosti se razmjene (nesigurnim kanalom), a potom Alisa računa , a Bob računa . Obije strane ovim postupkom dobijaju isti rezultat, tj. razmjenili su tajni ključ preko nesigurne veze. Sigurnost ovog protokola temelji se na problemu izračunavanja diskretnih logaritama. Naime, praktično je vrlo teško izračunati dijeljeni tajni ključ uz dovoljno veliko i poznavanje samo javnih vrijednosti i . 2.3. Kriptografski temelji digitalnog potpisa Današnje tehnike digitalnog potpisivanja temelje se na algoritmima asimetrične kriptografije, poznate još i pod nazivom kriptografija javnog ključa (engl. Public-key cryptography). Kriptografske algoritme možemo podijeliti u tri osnovne grupe: 1. Algoritmi koji se zasnivaju na praktičnoj nemogudnosti faktorizovanja velikih brojeva 2. Algoritmi koji se zasnivaju na praktičnoj nemogudnosti izračunavanja disktretnih logaritama (Diffie-Hellman protokol, Elgamal, DSA) 3. Algoritmi koji se temelje na eliptičnim krivim (praktične realizacije ove metode su tek u povojima) Osim ovih algoritama postoji i nekolicina koji se rjeđe koriste (npr. Knapsack algoritmi ), ali vedina današnjih komercijalnih implementacija se može svrstati u jednu od tri glavne kategorije. Treba navesti još i to da se različite verzije Knapsack algoritma ne smatraju sigurnim zbog toga jer su Rivest i Shamir (nezavisno jedan od drugog) uspjeli „razbiti“ ovakvu zaštitu. 2.3.1. RSA (Rivest-Shamir-Adleman algoritam) Tipičan algoritam iz prve grupe je i najčešde korišteni algoritam javnog ključa, RSA [8]. RSA enkripcija i dekripcija se izvode u prstenu cijelih brojeva modularnoj aritmetici. , i sva izračunavanja se izvode u Inicijalna faza algoritma se izvodi u četiri koraka: 15 1. 2. 3. 4. Vršimo odabir dva velika prosta broja i . Računamo i Biramo broj , relativno prost sa brojem . Računamo broj tako da vrijedi . Kad smo izračunali sve ove parametre, spremni smo za šifrovanje podataka: Prije svega potrebno je poruku podijeliti u djelove od kojih svaki sadrži najviše znakova (obično se zbog toga uzimaju blokovi po bita tako da važi ). RSA enkripcija Za zadati javni ključ i poruku , funkcija enkripcije je: , gdje su . RSA dekripcija Za zadati privatni ključ i šifrovanu poruku , funkcija dekripcije je: , gdje su . Za šifrovanje RSA algoritmom potrebni su i , a za dešifrovanje i . Iz toga vidimo da se javni ključ sastoji od , a tajni ključ od Sigurnost ove metode sadržana je u tome što je vrlo teško faktorizovati velike brojeve [3]. Matematička osnova RSA algoritma je elementarna. Naime, faktorizovanjem dobijemo i . Iz i vrlo jednostavno izračunamo . Uz poznati i (koji je dio javnog ključa) Euklidovim algoritmom dolazimo do i imamo i tajni ključ . Ipak, da bi se faktorizovao broj od 200 cifara potrebno je oko 2 godine, uz korišdenje najboljeg poznatog algoritma i nekoliko stotina računara. 2.3.2. Elgamal algoritam Tipičan algoritam druge grupe je Elgamal algoritam. Elgamal šemu enkripcije predložio je Taher Elgamal 1985. godine [6]. Ovaj algoritam može se posmatrati kao proširenje Diffie-Hellman protokola za razmjenu ključeva. Sigurnost Elgamal šeme se bazira na težini problema računanja diskretnog logaritma. 16 Šema se sastoji iz tri faze. Faza podešavanja parametara se izvršava samo jednom od strane onoga ko posjeduje javni ključ i koji de primiti poruku. Faza enkripcije i faza dekripcije se izvršavaju svaki put kada se šalje poruka. U ovom protokolu Bob bira veliki prosti broj i generator , i objavljuje ih. Šifrovani tekst se sastoji iz dva dijela, efemeralnog ključa, svi parametri imaju bitsku dužinu , šifrovani tekst , i maskiranog teksta, . Pošto u principu je dva puta duži od poruke. Važno je primjetiti da je, za razliku od RSA algoritma, Elgamal vjerovatnosni algoritam. To znači da za dvije iste poruke i , gdje , ukoliko koristimo isti javni ključ sa veoma velikom vjerovatnodom dobidemo dvije različite šifrovane poruke . To je zato što se bira slučajno iz skupa za svaku enkripciju, i zbog toga su ključevi sesije koje koristimo za enkripciju različiti. 2.3.3. Eliptične krive Jedno relativno novo područje (prvi radovi su iz 1993. godine, A. Menezes, Elliptic Curve Public Key Cryptosystems, Kluwer Academic Publishers, Boston, 1993) u kriptografiji javnog ključa je i šifrovanje korištenjem eliptičnih krivih [5]. Prednosti ove metode su prije svega kradi ključevi i kao rezultat toga bolje performanse algoritma uz zadržavanje jednake sigurnosti kao i kod prethodno opisanih algoritama. Pod pojmom „eliptična kriva“ (engl. „elliptic curve“) podrazumijeva se poseban tip krive (ne elipsa) kao na slici 1. 17 Slika 1. Tipičan primjer eliptične krive Ovakav tip krive (konkretan primjer je ) ima svojstvo da iako se „proteže“ u beskonačnost, kriva prolazi kroz konačno mnogo cjelobrojnih koordinatnih parova . Ako definišemo operator sabiranja nad tim parovima dobili smo grupu. Sabiranjem dvije tačke iz tako stvorene grupe dobijamo tredu tačku (takođe iz grupe). Kriva prikazana na obije slike može stvoriti polje od svega 5 cjelobrojnih parova (uključujudi tačku koja je svojevrsni neutralni element), što za bilo kakvu kriptografsku upotrebu nije dovoljno, ali de poslužiti za ilustraciju. Da bi cijela stvar funkcionisala potrebno je još definisati i tačku , negdje u beskonačnosti, gdje sve vertikalne linije konvergiraju. Uočimo još jedno vrlo zanimljivo svojstvo: kada povučemo tangentu na krivu u nekoj tački, tangenta uvijek prolazi kroz još jednu tačku krive. Npr. tangenta kroz prolazi i kroz tačku , a tangenta na i kroz (donja slika). Slika 2. Sabiranje i množenje u grupi eliptične krive 18 Sabiranje elemenata vršimo tako da povučemo pravu kroz dvije tačke koje želimo sabrati, zatim kroz tačku kojoj je ta prava tangenta povučemo pravu u tačku . Ta nova prava siječe krivu u još jednoj tački koja je rezultat sabiranja prethodne dvije. Na slici 2 imamo primjer sabiranja tačaka i tako da povučemo pravu kroz te dvije tačke. Pošto je ta prava tangenta na krivu u tački , kroz tačku povučemo pravu u tačku . Ta nova prava siječe krivu u tački i to je rezultat sabiranja i . Sabiranje tačka i daje rezultat . Skalarno množenje nije ništa drugo nego višestruko sabiranje elementa sa samim sobom. Tako npr. , U kriptografskim primjenama posmatraju se samo cjelobrojne koordinate a aritmetika se izvodi u modulo gdje je ili veliki prost broj ili veliki stepen broja 2. Za kriptografske primjene prikladna grupa sadrži elemenata gdje je skoro jednak , , je prost broj a je mali broj. Iz ovoga vidimo da smo uspjeli stvoriti algebarsku grupu, koja sadrži članova i pogodna je za izvođenje kriptografskih operacija poput Diffie-Hellman protokola za razmjenu ključeva. 19 3. Šta je digitalni potpis? Digitalni potpis je jedan od najvažnijih kriptografskih alata koji je danas u širokoj upotrebi. Koristi se da potvrdimo identitet pošiljaoca poruke ili potpisnika dokumenta, kao i da se obezbjedi dokaz da je originalni sadržaj poruke ili dokument koji je poslat nepromjenjen. Lako su prenosivi, ne mogu biti imitirani, i mogu se automatski označiti vremenskom markom. Digitalni potpisi su zasnovani na asimetričnoj kriptografiji. Za poruke koje su poslate preko nesigurnog kanala, pravilno implementiran digialni potpis daje primaocu poruke razlog da vjeruje da je poruka poslata od strane onog za koga se predstavlja. Digitalni potpisi su ekvivalentni tradicionalnim potpisima u mnogim aspektima, a pravilno implementiran digitalni potpis je mnogo teže falsifikovati nego tradicionalni potpis. Šeme digitalnog potpisa koje opisujemo u radu su bazirane na kriptografiji, i moraju se pravilno implementirati da bi bile efektivne. Digitalni potpisi takođe mogu da obezbijede i nemogudnost odbacivanja, u smislu da onaj koji je potpisao poruku ne može da porekne njeno potpisivanje, istovremeno tvrdedi da je njegov privatni ključ ostao tajna, a takođe neke šeme nude i mogudnost označavanja poruka vremenskim markama, tako da čak i ako je privatni ključ otkriven, potpis i dalje može biti važedi. Digitalni potpisi se mogu koristiti za sve vrste poruka, bilo da su one kodirane ili ne, i jednostavno primalac poruke može biti siguran kada je u pitanju identitiet pošiljaoca, kao i u to da je poruka stigla nepromjenjena. U ovom dijelu dademo motivacioni primjer zašto su potrebni digitalni potpisi i zašto moraju biti zasnovani na asimetričnoj kriptografiji. Zatim demo opisati princip funkcionisanja digitalnog potpisa, a konkretni algoritmi bide opisani u narednim poglavljima. 3.1. Motivacija Pretpostavimo da imamo dvije strane koje komuniciraju, Alisu i Boba, koji dijele tajni ključ. Tajni ključ se korisiti za enkripciju poruka koje šalju jedno drugom. Kada Alisa primi i dekriptuje poruku, koja u stvari predstavlja tekst na srpskom jeziku, ona može zaključiti da je tu poruku generisala osoba sa kojom dijeli tajni ključ. Ako samo Alisa i Bob imaju ključ, onda je jasno da poruka koja je stigla ne može biti promjenjena prilikom prenosa od strane tredeg lica. U praksi, čest je slučaj da dvije osobe hode da bezbjedno komuniciraju, ali u isto vrijeme one mogu biti i zainteresovane da prevare jedna drugu. Ispostavlja se da šeme koje koriste simetrični ključ ne štite strane koje komuniciraju jednu od druge. Razmotrimo sljededi scenario: Pretpostavimo da je Alisa autorizovani diler za onlajn prodaju automobila. Pretpostavimo dalje da su Bob, mušterija, i Alisa, prodavac, uspostavili zajednički ključ , korišdenjem Diffi-Hellman protokola za razmjenu ključa. Bob zatim daje specifikaciju automobila koji želi da kupi, uključujudi i boju karoserije (narandžasta) i boju unutrašnjosti (pink). Dakle, Bob (oda)bira kombinaciju boja koja se vedini ljudi ne bi svidjela. Bob šalje narudžbu u enkriptovanoj formi. Alisa dekriptuje narudžbenicu i zadovoljna je što je prodala automobil od 25 000€. Nakon isporuke automobila tri nedelje kasnije, Bob se predomislio oko svog izbora, dijelom što mu je supruga zaprijetila razvodom nakon što je vidjela automobil. Na žalost za Boba (i njegovu porodicu), politika Alisinog poslovanja je da nema povratka robe. Pošto je Alisa prodavac sa iskustvom, ona zna da nede biti lako prodati automobil 20 narandžaste boje sa pink unutrašnošdu, pa zato odlučuje da ne pravi nikakve izuzetke. Pošto sada Bob tvrdi da nikada nije naručio automobil, ona nema drugog izbora nego da ga tuži. Pred sudijom, Alisin advokat prikazuje Bobovu digitalnu narudžbenicu, zajedno sa njenom enkriptovanom verzijom. Očigledno, argumenti advokata su da je Bob morao biti taj koji je generisao poruku, pošto on posjeduje ključ kojim je enkriptovana poruka. Međutim, Bobov advokat objašnjava sudiji da prodavac automobila, Alisa, takođe zna i da je u stvari Alisa ta koja ima veliki motiv da napravi lažnu porudžbinu automobila. Ispostavlja se da sudija nema adekvatnog načina da sazna ko je generisao par- porudžbenicu i šifrovani tekst, Alisa ili Bob. S obzirom na zakone u vedini zemalja, Bob de se vjerovatno izvudi, uprkos lažnom svjedočenju. Prethodni primjer može izgledati kao prilično specifičan i pomalo vještački konstruisani slučaj, ali u stvari nije. Postoji mnogo situacija gdje je važno da postoji neutralna treda strana, tj. lice koje se ponaša kao sudija, koje može da dokaže da je jedna od dvije (ili više) strana generisala poruku. Pod dokazivanjem mislimo da sudija može bez sumnje zaključiti ko je generisao poruku, čak i ako su sve stranke potencijalno neiskrene. Zašto ne možemo koristiti neku komplikovaniju šemu sa simetričnim ključem da postignemo ovaj cilj? Na visokom nivou, objašnjenje je vrlo jednostavno: upravo zbog toga što je u pitanju simetrični ključ, Alisa i Bob imaju isto znanje, a samim tim i iste mogudnosti. Sve što Alisa može da uradi, takođe može uraditi i Bob. Zbog toga, neutralna treda strana ne može da utvrdi da li je određene kriptografske operacije izvršila Alisa, Bob, ili oboje. Uopšteno govoredi, rješenje ovog problema je u kriptografiji sa javnim ključem. Asimetrična podešavanja koja se koriste kod algoritama sa javnim ključem omogudavaju sudiji da razgraniči operacije koje može da izvrši samo jedna osoba (odnosno lice koje posjeduje privatni ključ), i one koje mogu oboje da izvrše (odnosno računanja koja uključuju javni ključ). Ispostavlja se da su digitalni potpisi u stvari algoritmi asimetrične kriptografije koji imaju osobine da razriješe situacije kada učesnici u razmjeni podataka varaju. U opisanom scenariju koji se odnosi na elektronsku trgovinu, od Boba bi se zahtijevalo da digitalno potpiše svoju narudžbenicu korišdenjem svog privatnog ključa. 3.2. Principi funkcionisanja digitalnog potpisa Osobina da možemo dokazati da je određena osoba generisala poruku je veoma važna van digitalnog domena. U realnom svijetu, ovo se postiže svojeručnim potpisom na papiru. Na primjer, ako potpisujemo ugovor ili račun, korisnik može dokazati sudiji da smo upravo mi potpisali papir. Naravno, možemo pokušati da falsifikujemo potpis, ali postoje pravne i društvene barijere koje de spriječiti ljude da pokušaju to da učine. Kao i sa tradicionalnim potpisom, samo osoba koja je kreirala digitalnu poruku može generisati i validan potpis. Da bi ovo postigli koristidemo principe asimetrične kriptografije. Osnovna ideja je da osoba koja potpisuje poruku koristi privatni ključ, a osoba koja prima poruku koristi odgovarajudi javni ključ . Šema je data na slici 3. Pretpostavimo da dvoje ljudi, Alisa i Bob, žele razmjenjivati potpisane poruke (podatke) tj. žele biti sigurni u identitet osobe od koje su poruku primili. Kao prvo, obije osobe kreiraju par komplementarnih ključeva, javni i tajni ključ. Važno je naglasiti da se poznavanjem javnog ključa ne može izračunati tajni ključ u nekom razumnom vremenu (vrijeme potrebno za izračunavanje tajnog ključa iz poznatog javnog ključa, tj. razbijanje šifre, mjeri se milionima godina na danas najjačim raspoloživim računarima). Nakon kreiranja ključeva, Alisa i Bob razmjenjuju svoje javne ključeve. Neka sada Bob želi Alisi poslati poruku. 21 Slika 3. Princip rada digitalnog potpisa koji uključuje potpisivanje i verifikaciju poruke Proces počinje tako što Bob potpisuje poruku . Algoritam potpisivanja je funkcija čiji je argument Bobov privatni ključ, . Dakle, pod pretpostavkom da je Bobov privatni ključ poznat samo njemu, samo Bob može potpisati poruku svojim imenom. Da bi se potpis povezao sa porukom, je ulaz algoritma za potpisivanje. Nakon potpisivanja poruke, potpis se nadovezuje na poruku i par se šalje Alisi. Važno je napomenuti da digitаlni potpis sam po sebi nije od koristi osim ako nije uz poruku koja se potpisuje. Digitalni potpis bez poruke je ekvivalentan ručnom potpisu na parčetu papira bez ikakvog ugovora ili računa koji je trebao biti potpisan. Za Alisu potpis je koristan samo ako ona ima načina da provjeri da li je on važedi ili ne. Za ovo nam je potrebna funkcija verifikacije koja kao ulaz uzima i poruku i potpis . Da bi mogla provjeriti da li potpis stavrno pripada Bobu, potreban joj je i Bobov javni ključ. Funkcija za verifikaciju može da vrati samo dva moguda izlaza: da ili ne. Ako je poruka stvarno potpisana privatnim ključem koji odgovara javnom ključu koji Alisi služi za verifikaciju, izlaz je „da“, a inače izlaz je „ne“. Iz ovih opštih zapažanja lako možemo prikazati osnovni protokol digitalnog potpisa: 22 Napomena 3.1. Osnovni protokol koji je gore naveden ne obezbjeđuje tajnost poruke, ved je sadržaj poruke koja se šalje javan. Naravno, ukoliko je poruka povjerljiva može se enkriptovati, na primjer AES-om ili DES-om. Napomena 3.2. Vedina šema za digitalne potpise može da „potpiše“ samo malu količinu podataka, npr. bita, gdje je cijeli broj između 80 i 1000. Ovo je nedovoljno za potpisivanje velikog digitalnog dokumenta . Prvo, zato što je potrebno mnogo vremena potpisati svakih bita dokumenta , a drugo što je dobijeni digitalni potpis veličine originalnog dokumenta. Rješenje ovog problema je korišdenje heš (engl. hash) funkcije [2], koja je veoma laka za izračunavanje: Hash: (dokument proizvoljne veličine)-> i za koju je veoma teško nadi „inverznu funkciju“. Opštije, veoma je teško nadi dva različita ulaza čiji su izlazi i jednaki. i Kriptografska heš funkcija je deterministički postupak koji uzima proizvoljan blok podataka i vrade niz bita fiksne dužine, tj. heš vrijednost. Ukoliko se podaci slučajno ili namjerno promjene mijenja se i heš vrijednost. Podaci koji se kodiraju često nazivamo porukom, a heš vrijednost se još i naziva sažetak poruke ili „message digest“. Idealna kriptografska heš funkcija ima četiri glavne karakteristike: Za bilo koju poruku lako je izračunati heš vrijednost Za zadatu heš vrijednost nemogude je pronadi originalnu poruku Nemogude je modifikovati poruku, a da se njena heš vrijenost ne promjeni Nemogude je pronadi dvije poruke koje imaju istu heš vrijednost Dakle, prije potpisivanja dokumenta , Bob računa i potpisuje verifikuje potpis nad . Za verifikaciju, Alisa računa i Postoji nekoliko razloga da se potpisuje heširana verzija poruke umjesto kompletne poruke: Zbog efikasnosti: potpis de biti značajno kradi i zbog toga imamo uštedu na vremenu jer je heširanje u praksi brža operacija od potpisivanja. Zbog kompatibilnosti: poruke su obično nizovi bita, ali neke šeme potpisivanja funkcionišu u drugim domenima (npr. u slučaju RSA, računa se po modulu ). Heš funkcija se može koristiti da se proizvoljna poruka pretvori u odgovarajudi format. Zbog integriteta: bez korišdenja heš funkcija, tekst koji treba potpisati se mora podijeliti u blokove koji su dovoljno mali da bi se šema potpisivanja mogla direktno primjeniti na takve blokove. Štaviše, primalac potpisane poruke nije u stanju da prepozna potpis ukoliko svi blokovi nisu prisutni u odgovarajudem poretku. U cijeloj proceduri samo je jedna stvar slaba karika. Moramo biti apsolutno sigurni da javni ključ za koji mislimo da pripada pošiljaocu (Bobu) zaista i pripada Bobu. Naime, ukoliko primaoc poruke (Alisa) ima javni ključ nekog drugog pošiljaoca (npr. Oskara), a vjeruje da ključ pripada Bobu tada je Oskar u mogudnosti krivotvoriti Bobove podatke, tj. predstaviti se kao Bob. 23 3.3. Uloga „Autoriteta od povjerenja“ i potpisivanje javnog ključa Opisani problem rješava se na način da se uvodi „Autoritet od povjerenja“, TA (engl. „trusted authority“). Pretpostavka je da Autoritetu od povjerenja sve ostale strane vjeruju, i da svoje javne ključeve lično odnesu na potpisivanje, s tim da im TA prethodno provjeri uobičajene „fizičke“ dokumente. U tom slučaju TA koristi svoj tajni ključ (javni ključ TA svima je poznat) za potpisivanje javnog ključa te time garantuje svima ostalima ispravnost potpisanog javnog ključa. Postoji i druga mogudnost, a to je da TA svima generiše par ključeva, i uz prethodnu fizičku autentifikaciju, dodjeljuje ključeve. U tom slučaju svako ko bi htio provjeriti ispravnost potpisa osobe (O) morao bi u bazi javnih ključeva (koju čuva TA), pronadi javni ključ osobe (O) i potom tim ključem pokušati dešifrovati primljene podatke. Nedostatak ovog drugog modela je taj što u tom slučaju TA posjeduje i tajne ključeve što predstavlja znatan sigurnosni problem ako se isti par ključeva koristi osim za potpisivanje i za šifrovanje podataka. Kao logičan izbor za TA namedu se državne ustanove, sudovi i javni bilježnici. Osim modela jednog centralnog „Autoriteta od povjerenja“ postoji i neka vrsta hijerarhijskog modela, kod kojeg je svaki korisnik u mogudnosti potpisati javne ključeve drugih osoba (za koje je siguran da pripadaju pravim osobama) i time garantovati drugima, koji su sigurni u ispravnost njegovog javnog ključa, ispravnost potpisanih ključeva. 3.4. Potpisi i zakoni Oko 2000. godine mnoge države su uvele odgovarajude zakone koji se odnose na digitalni potpis. Na ovaj način otvorene su naizgled beskrajne mogudnosti poslovanja na Internetu, i zakoni o digitalnom potpisu postali su od velikog značaja za odvijanje poslovnih transakacija na Internetu. Iako se mnogo elektronske trgovine danas vrši bez upotrebe zakona o digitalnom potpisu, bez sumnje de biti sve više i više situacija kada de ovi zakoni zaista biti potrebni. Zakonske regulative (zemalja koje imaju zakon o digitalnom potpisu) ne određuju ni jednu tehnologiju potpisivanja kao dominantnu, ved samo donose propise kojih se svaka od tehnologija mora pridržavati. Kao prvo, od digitalnog potpisa se očekuje da bude jedinstven osobi koja ga koristi, drugo, da se može provjeriti kome pripada odnosno da li zaista pripada osobi koja ga je koristila, trede, da je u potpunoj kontroli osobe koja ga koristi, četvrto, da potvrđuje i sebe i podatke koje potpisuje. Ved iz ovog vidimo da postoji znatna prednost digitalnog potpisa nad klasičnim metodama autentifikacije. Najveda prednost je ta što se valjanost potpisa provjerava svaki put pri prijemu dokumenta, za razliku od klasičnih potpisa koji se provjeravaju tek na sudu, kad se prevara ved odigrala. Osim ove prednosti postoji još jedna značajna prednost, a to je nemogudnost naknadne izmjene potpisanog dokumenta, kao i nemogudnost potpisivanja praznih dokumenata. Ipak, ukoliko krivotvorac uspije dodi do tajnog ključa, tada bez ikakvih problema može falsifikovati podatke tako da ne postoji ni najmanja mogudnost utvrđivanja različitosti takvog potpisa od pravog potpisa, što kod klasičnih metoda ipak nije slučaj. 24 Veliki broj kriptografskih algoritama zaštiden je različitim patentima. Tako je npr. najrašireniji asimetrični kriptografski algoritam, RSA, bio patentiran 17 godina sve do septembra 2000. godine, a drugom isto tako vrlo značajnom protokolu, Diffie-Hellman protokolu, patent je istekao u maju 1997. godine. Nažalost, ovo nisu jedini takvi primjeri kao ni jedini problemi u široj primjeni kriptografskih algoritama. Proizvođači kriptografskog softvera (bili) su prisiljeni proizvoditi po dvije ili čak tri različite verzije istog softverskog paketa da bi se udovoljilo svim izvoznim i patentnim regulativama; zabrana izvoza kriptografskog softvera iz SAD-a s ključem dužim od 40-bita bila je na snazi do pred kraj 1999. godine, tako da je npr. NAI („Network Associates“) bio prisiljen imati dvije verzije svog programa PGP, jednu za tržište SAD-a a drugu za internacionalno tržište. Ipak, obije su verzije koristile „jaku“ enkripciju tako što je iskorištena „rupa“ u zakonu SAD-a kojim se zabranjuje izvoz softvera u binarnom obliku ali ne i izvornog koda. Osim ovog, postojao je i problem zbog patentiranog RSA algoritma, tako da verzije za SAD nisu koristile istu osnovu kao i internacionalne. Sličan problem javlja se i s pojavom novog američkog standarda za digitalno potpisivivanje („Digital Signature Standard“, DSS, 1994), jer se dijelovi korištenog algoritma (koji sam po sebi nije patentiran) nalaze pod patentnom zaštitom autora sličnog algoritma temeljenog na diskretnim logaritmima (Schorr, 1994, patent vrijedi 17 godina). Ovaj primjer ipak odskače iz mnoštva drugih upravo zbog toga što se radi o standardu koji su obavezne koristiti sve državne ustanove SAD-a; drugim riječima ovaj de patent vrlo vjerovatno američki poreski obveznici osjetiti na vlastitom džepu. Na kraju spomenimo još i zabranu izvoza bilo kakvog kriptografskog softvera zemljama poput Iraka, Sjeverne Koreje ili Kube. Zakon o elektronskom potpisu u Crnoj Gori Direktiva Evropske Unije 1999/93/EC o elektronskim potpisima (usvojena 13. decembra 1999, a formalno stupila na snagu 19. januara. 2000. godine) predstavlja pravno utemeljenje elektronskog potpisa i na osnovu nje su donijeti Zakoni o elektronskom potpisu u svim zemljama EU, kao i u vedini ostalih zemalja Evrope. Zakon o elektronskom potpisu u Crnoj Gori je donesen 12.07.2005. i pubilkovan u Službenom listu (“Sl.list RCG”, br: 55/03 i 31/05). Time je završena priča koja je započela još u avgustu 2000. godine kada je radna grupa pod okriljem tadašnjeg Saveznog zavoda za informatiku započela izradu Prijedloga Zakona o elektronskom poslovanju i elektronskom potpisu. Definicije elektronskog potpisa: „Elektronski potpis“ - skup podataka u elektronskom obliku koji su pridruženi ili su logički povezani sa elektronskim dokumentom i koji služe za identifikaciju potpisnika; „Napredni elektronski potpis“ – elektronski potpis kojim se pouzdano garantuje identitet potpisnika i integritet elektronskih dokumenata i koji ispunjava uslove utvrđene ovim zakonom; (Dakle, ono što mi u ovom radu nazivamo digitalnim potpisom u Zakonu je u stvari napredni elektronski potpis.) Zakon se sastoji od sljededih 7 poglavlja: I. II. Osnovne odredbe, Elektronski dokument, elektronski potpis i napredni elektronski potpis, 25 III. IV. V. VI. VII. Certifikati i davanje usluga certifikovanja, Prava, obaveze i odgovornosti potpisnika i davalaca usluga certifikovanja, Nadzor, Kaznene odredbe, Prelazne i završne odredbe. Osnovna uloga Zakona se svodi na dvije najvažnije stvari: Da propiše uslove pod kojima je elektronski potpis pravno ekvivalentan svojeručnom potpisu, Da propiše uslove koje moraju da ispune Certifikaciona tijela koja izdaju kvalifikovane certifikate za verifikaciju kvalifikovanih elektronskih potpisa. Napredni elektronski potpis (tj. digitalni potpis) mora da zadovolji sljedede uslove: isključivo je povezan sa potpisnikom; nedvosmisleno identifikuje potpisnika; nastaje korišdenjem sredstava kojima potpisnik može samostalno da upravlja i koja su isključivo pod nadzorom potpisnika; sadrži direktnu povezanost sa podacima na koje se odnosi i to na način koji nedvosmisleno omogudava uvid u bilo koju izmjenu izvornih podataka; formiran je sredstvima za formiranje naprednog elektronskog potpisa; provjerava se na osnovu naprednog elektronskog certifikata potpisnika; napredni elektronski potpis u odnosu na podatke u elektronskom obliku ima isto pravno dejstvo i dokaznu snagu kao i svojeručni potpis, odnosno svojeručni potpis i pečat, u odnosu na podatke u papirnom obliku. Iz Pravilnika o mjerama i postupcima upotrebe i zaštite elektonskog potpisa, sredstava za izradu elektronskog potpisa i sistema certifikovanja (objavljenog u „Sl. listu RCG“, br. 25/05) izdvajamo: Član 2 Postupci za izradu elektronskog potpisa, kriterijumi koje treba da ispunjavaju sredstva za izradu i provjeru elektronskog potpisa, kao i izdavanje certifikata, moraju biti usklađeni sa odgovarajudim međunarodnim standardima i preporukama, i to: 1) tehničkim standardima Evropske organizacije ETSI (Europen Telecommunications Standards Institute) i ESI (Elektronic Signatures and Infrastructures); 2) evropskim standardima CEN/ISSS i dokumentima CWA (CEN Workshop Agreement); 3) standardima EESSI SG (European Electronic Signatures Standardisation Initiative Steering Group); 4) IETF RFC (Request for Comments) dokumentima; 5) PKCS ( Publik Key Criptographic Standards) dokumentima i preporukama kompanije RSA Data Security; 6) evropskim standardima Common Criteria (for Information Technology Security Evaluation) u odjeljku EAL ( Evaluation Assurance Level); 7) američkim standardima FIPS 140-1 (koje je utvrdilo tijelo za standardizaciju:National Institute of Standards and Technology -Federal Information Processing Standards ), kao i standardima FIPS 140-2. 26 Član 5 Podaci za izradu elektronskog potpisa moraju se u potpunosti razlikovati od podataka za provjeru elektronskog potpisa. Postupak izrade elektronskog potpisa ne smije izmijeniti podatke koji se potpisuju niti spriječiti prikaz tih podataka potpisniku prije čina potpisivanja. Potpisnik u elektronski potpis ugrađuje osnovne podatke o postupku, algoritmu i sadržaju potpisa kako bi korisnik elektronskog potpisa mogao provjeriti potpis na osnovu iste ili slične tehnologije i postupaka. Napredni elektronski potpis mora se izrađivati primjenom standardizovanih algoritama iz grupe RSA (rsagen1) odnosno DSA (dsagen1). Kod izrade naprednog elektronskog potpisa obvezno se koristi hash funkcija iz grupe SHA-1 (Secure Hash Algorithm), odnosno RIPEMD 160. Član 10 Programska oprema za izradu naprednog elektronskog potpisa mora imati ugrađene osnovne oblike zaštite, saglasno dokumentima o osnovnim pravilima zaštite i sigurnosti sredstva za izradu naprednog elektronskog potpisa – CWA 14168 i 14169 defined a Common Criteria Protection Profile (PP) for secure signature creation devices (SSCDs) , odnosno EAL4+ preporukama. Donošenjem Zakona o elektronskom potpisu, elektronskom poslovanju i pratedih podzakonskih akata u Crnoj Gori normativno je uređena oblast elektronskih transakcija. Takođe su jasno definisani postupci izdavanja i korišdenja digitalnih sertifikata, a samim tim i mehanizmi koji se primjenjuju u zaštiti elektronskih transakcija. Ministarstvo za informaciono društvo Vlade Crne Gore od sredine decembra 2009. godine obezbjeđuje usluge sertifikovanja digitalnog potpisa, enkriptovanja dokumenata i elektronske pošte za organe državne uprave. Očekuje se da de takva primjena digitalnog potpisa povedati sigurnost, stabilnost i bezbjednost komunikacije unutar organa državne uprave. 3.5. Sigurnosni zahtjevi Veoma je poučno detaljnije razmotriti sigurnosne ciljeve koje možemo postidi sa digitalnim potpisima. U stvari, u ovom trenutku demo se malo distancirati od digitalnog potpisa i pitati jedno uopšteno pitanje: Koji su sve mogudi bezbjedonosni ciljevi koje jedan sigurnosni sistem može da posjeduje? Postoji mnogo zahtjeva što se tiče obezbjeđivanja sigurnosti, a oni koji su poželjni u vedini aplikacija, dati su kako slijedi: 1. Povjerljivost: Informacija se čuva u tajnosti od svih, osim od autorizovanih strana. 2. Integritet: Poruke nisu izmjenjene prilikom prenosa. 3. Autentifikacija poruke: Pošiljaoc poruke je autentičan. Drugi termin koji se koristi je i provjera izvora podataka. 4. Nemogudnost odbacivanja: Pošiljaoc poruke ne može poredi da je kreirao poruku. 27 Različite aplikacije ispunjavaju različite uslove što se tiče bezbjednosti. Na primjer, za privatnu elektronsku poštu prva tri uslova su poželjna, dok sistem za elektronsku poštu velikih korporacija zahtjeva i nemogudnost odbacivanja. Napominjemo da autentifikacija poruke uvijek podrazumjeva i integritet podataka, ali da ne važi i obratno. Pored četiri osnovna zahtjeva što se tiče bezbjednosti podataka, postoji i niz drugih: 5. Identifikacija: Uspostavljanje i provjera identiteta lica, npr. osoba, računar, ili kreditna kartica. 6. Kontrola pristupa: Ograničiti pristup resursima. Omoguditi da pristup resursima imaju samo privilegovani entiteti. 7. Dostupnost: Uvjerenje da je elektronski sistem pouzdan i na raspolaganju. 8. Mogudnost revizije: Obezbjeđuje dokaze o aktivnostima koje su bitne za bezbjednost, npr. čuvanje evidencije o pojedinim događajima. 9. Fizička bezbjednost: Obezbjeđuje fizičku zaštitu podataka i resursa sistema. 10. Anonimnost : Obezbjeđuje zaštitu od otkrivanja i zloupotreba identiteta. Koji su ciljevi vezani za bezbjednost poželjni u datom sistemu zavisi od tipa aplikacije i njene namjene. Na primjer, kada je u pitanju elektronska pošta anonimnost nema mnogo smisla, jer se za e-mailove pretpostavlja da imamo jasnu informaciju ko je pošiljaoc. Kao drugi primjer, da bi osigurali bezbjednost operativnog sistema, kontrola pristupa određenim djelovima računarskog sistema je često od ključnog značaja. Vedina, ali ne i svi gore navedeni ciljevi mogu se postidi korišdenjem kriptografskih algoritama. Međutim, u nekim slučajevima mora se uvesti i korišdenje nekriptografskih metoda. Na primjer, dostupnost se često postiže uvođenjem redundantnosti, npr. redundantno skladištenje podataka. Takva rješenja su samo indirektno, ako su i uopšte, povezana sa kriptografijom. 28 4. RSA šema digitalnog potpisa RSA šema digitalnog potpisa je bazirana na RSA sistemu enkripcije. Njena sigurnost počiva na težini problema faktorisanja proizvoda dva velika prosta broja. Od prvog opisa RSA šeme digitalnog potpisivanja 1978. godine, postala je najdešde korišdena šema digitalnog potpisa u praksi. 4.1. Školski primjer RSA digitalnog potpisa Pretpostavimo da Bob želi da pošalje Alisi potpisanu poruku . On generiše isti par RSA ključeva koji se koristi u RSA enkripciji koju smo ranije opisali. Na kraju, on ima sljedede parametre: RSA ključevi 1. Bobov privatni ključ: 2. Bobov javni ključ: Protokol potpisivanja dat je na slici ispod. Napominjemo da je poruka . koja se potpisuje u skupu Kao što se može vidjeti iz protokola, Bob računa potpis za poruku na taj način što enkriptuje poruku sa svojim privatnim ključem . Bob je jedini koji može enkriptovati poruku ključem ,i njegovo vlasništvo nad privatnim ključem ga identifikuje kao vlasnika potpisane poruke. Bob nadovezuje potpis na poruku i taj par šalje Alisi. Alisa prima potpisanu poruku i RSA dekriptuje pomodu Bobovog javnog ključa . Ako se i poklapaju, Alisa zna dvije važne stvari: Prvo, autor poruke posjeduje Bobov privatni ključ, i ako samo Bob ima pristup tom ključu, onda je samo Bob mogao biti taj koji je potpisao poruku. Drugo, poruka nije izmjenjena prilikom prenosa, tako da je 29 integritet poruke zagarantovan. Sjetimo se iz prethodnog poglavlja da su ovo dva osnovna zahtjeva prema bezbjednosti koja su potrebna u praksi. Dokaz. Sada demo dokazati da je šema ispravna, tj. da proces verifikacije vrada „validan potpis“ ako poruka i potpis nisu izmjenjeni prilikom prenosa podataka. Počinjemo od operacije verifikacije : zbog matematičkog odnosa privatnog i javnog ključa, koji je dat formulom dobijamo da podizanje bilo kog cijelog broja na daje u stvari taj isti cijeli broj. Uloga javnog i privatnog ključa su zamijenjeni u odnosu na RSA šemu enkripcije. Dok RSA enkripcija primjenjuje javni ključ za poruku , šema digitalnog potpisa primjenjuje privatni ključ . Sa druge strane komunikacionog kanala, kod RSA šeme za enkripciju primaoc poruke koristi privatni ključ, dok kod digitalnog potpisa za verifikaciju se koristi javni ključ. Primjer 4.1. Pretpostavimo da Bob želi Alisi da pošalje potpisanu poruku Prvi korak je isti kao i kod RSA algoritma za enkripciju: Bob računa svoje RSA parametre i Alisi šalje svoj javni ključ. Za razliku od šeme za enkripciju, sada se privatni ključ koristi za potpisivanje, dok se javni ključ koristi za verifikaciju potpisa. Pošto je funkcija za verifikaciju vratila da je potpis validan Alisa može zaljučiti da je Bob generisao poruku i da poruka nije mijenjana tokom prenosa, tj. autentičnost i integritet poruke su zagarantovani. Treba napomenuti da smo dali samo šemu digitalnog potpisa. U ovom slučaju poruka koja se prenosi nije enkriptovana i samim tim povjerljivost podataka nije obezbjeđena. Ako se zahtjeva i povjerljivost podataka, poruka i potpis se moraju enkriptovati, npr. korišdenjem nekog simetričnog algoritma, kao što je AES. 30 4.2. Računarski aspekat Prvo, primjetimo da je potpis dugačak kao i broj , tj. grubo rečeno bita. Radi obezbjeđenja sigurnosti, potrebno je da bude u opsegu od 1024 do 3072 bita. Iako tolika dužina potpisa nije problem u vedini Internet aplikacija, dužina potpisa je veoma bitna u sistemima kod kojih je propusni opseg ograničen, npr. kod mobilnih telefona. Proces generisanja ključa je identičan onome koji se koristi za RSA enkripciju. Da bi izračunali i verifikovali potpis može se koristiti npr. algoritam brzog stepenovanja [1]. Posebno su interesantni kratki javni ključevi , na primjer . Ovo čini da verifikacija postane jako brza operacija. Pošto je u mnogim praktičnim scenarijima poruka potpisana samo jednom, ali se verifikuje više puta, činjenica da je verifikacija brza nam je veoma korisna. To je, na primjer, slučaj u infrastrukturi javnog ključa koja koristi sertifikate. Sertifikati se potpisuju samo jednom, ali se potvrđuju iznova svaki put kada korisnik koristi svoje ključeve. 4.3. Sigurnost Kao i u svakoj drugoj asimetričnoj šemi, mora se obezbjediti da javni ključevi budu autentični. Ovo znači da strana koja vrši verifikaciju zaista ima javni ključ koji je komplementaran privatnom ključu koji je korišten prilikom potpisivanja. Ako napadač uspije da obezbjedi verifikator sa netačnim javnim ključem koji navodno pripada potpisniku, napadač očigledno može i da potpisuje poruke. U cilju sprečavanja napada mogu se koristiti sertifikati. Sertifikat je elektronski dokument koji se koristi za identifikovanje osobe, servera, kompanije ili nekog drugog subjekta i za povezivanje tog identiteta sa javnim ključem (engl. public key). Sertifikat daje opšte priznati dokaz o identitetu. Sertifikat se može posmatrati kao digitalna lična karta odgovarajudeg entiteta. (Lična karta kod nas je opšte prihvadeni dokaz o identitetu vlasnika izdata od strane MUP-a (državne institucije). Pošto se vjeruje državnoj instituciji da je prije izdavanja lične karte izvršila provjeru identiteta osobe, time se vjeruje u identitet osobe kojoj je izdata lična karta.) Algoritamski napadi Prva grupa napada pokušava da razbije osnovnu RSA šemu na kojoj počiva algoritam. Cilj je računanje privatnog ključa . Najopštija vrsta ovog napada pokušava da faktoriše broj u proste brojeve i . Ako napadač uspije u tome, on može lako izračunati privatni ključ iz javnog ključa . U cilju sprečavanja napada faktorisanjem broj mora biti dovoljno veliki. U praksi se preporučuje da bude najmanje 1024-bitni broj. Napad falsifikovanjem Sljededi napad na RSA digitalni potpis je taj da napadač može da generiše validan potpis za slučajnu poruku . Napad funkcioniše na sljededi način: 31 Napadač imitira Boba, odnosno Oskar tvrdi pred Alisom da je on u stvari Bob. Pošto Alisa obavlja potpuno iste operacije kao Oskar, ona de verifikovati potpis kao ispravan. Međutim, ako pažljivo pogledamo korake 1 i 2 koje Oskar obavlja, vidi se da je napad prilično neobičan. Napadač prvo bira potpis, a zatim računa poruku Kao posljedica toga, napadač nije u mogudnosti da kontroliše značenje poruke . Na primjer, Oskar ne može generisati poruku „Uplatiti 1000€ na Oskarov račun“ . Ipak, činjenica da automatizovani proces verifikacije ne prepoznaje falsifikat sigurno nije poželjan. Iz ovog razloga, školska verzija RSA algoritma se veoma rijetko koristi u praksi, i dopunjene šeme se koriste u cilju sprečavanja ovog i drugih napada. Dopuna RSA algoritma: PSS algoritam Gore navedeni napad može da se spriječi zadavanjem određenog formata poruke. Grubo govoredi, formatiranje namede pravila koja omogudavaju verifikatoru, u našem slučaju Alisi, da razlikuje validne i nevalidne poruke. Na primjer, jednostavno pravilo formatiranja može biti to da kod svih poruka posljednjih 100 bita imaju vrijednost 0 (ili bilo koju drugu kombinaciju 0 i 1 koja je unaprijed zadata). Ako Oskar odabere vrijednost potpisa i izračuna poruku , veoma je malo vjerovatno da je u traženom formatu. Ako zahtjevamo, na primjer, da na kraju poruke posljednjih 100 bita budu 0, šansa da ima traženi format je , što je znatno niže nego mogudnost dobitka na lutriji. Sada demo dati dopunjenu šemu koja se često koristi u praksi. RSA-PSS je šema potpisivanja koja se bazira na RSA kriptosistemu. Ona kombinuje potpisivanje i verifikaciju sa kodiranjem poruke. Razmotrimo detaljnije RSA-PSS šemu [4]. Gotovo uvijek u praksi ne potpisuje se direktno poruka, ved heš vrijednost poruke. Heš funkcija računa digitalni „otisak prsta“ poruke. Taj otisak je fiksne dužine, npr. 160 ili 256 bita, dok poruka nad kojom se računa heš funkcija može imati proizvoljnu dužinu. Da bi bili u skladu sa terminologijom koja se koristi u standardima, poruku demo umjesto sa označavati sa . Potpis za poruku se računa u 3 koraka: 32 1. Primjeni se heš funkcija na poruku da bi dobili heš vrijednost . 2. Heš vrijednost se transformiše u kodiranu poruku (engl. Encoded message). 3. Na kodiranu poruku primjeni se algoritam potpisivanja korišdenjem privatnog ključa. Na taj način smo dobili potpis . Pošto kodiranu verziju poruke dobijamo iz potpisa, potpis verifikujemo u 3 koraka: 1. Primjenimo heš funkciju na poruku da bi dobili heš vrijednost . 2. Primjenimo algoritam za verifikaciju potpisa da dobijemo kodiranu poruku 3. Provjerimo da li je validna transformacija heš vrijednosti . Slika 4 prikazuje proceduru kodiranja koja je poznata kao Metod za kodiranje potpisa sa dodatkom za PSS (EMSA-PSS). Šema kodiranja EMSA-PSS Neka je veličina RSA modula u bitima. Kodirana poruka EM ima dužinu bajta, tako da je dužina EM u bitima najviše bita. 1. Generiši slučajnu vrijednost 2. Formiraj string . konkatenacijom fiksiranog dodatka i . 3. Izračunaj heš vrijednost stringa , heš vrijednosti . 4. Izvrši konkatenaciju fiksiranog dodatka formiraju blok podataka . i vrijednosti tako da 5. Primjeni funkciju generisanja maske na string da bi izračunali vrijednost maske . U praksi, heš funkcija kao što je na primjer često se koristi kao . 6. Izvrši funkciju XOR nad vrijednosti maske izračunali . 7. Kodirana poruka fiksnog dodatka . se dobija konkatenacijom i bloka podataka da bi , heš vrijednosti i Slika 4. EMSA-PSS metod kodiranja Napomena 4.1. Funkcija generisanja maske – uzima niz bita proizvoljne dužine i generiše niz bita fiksne dužine. Izlaz iz treba da bude pseudo-slučajan, to jest veoma teško predvidiv. Zbog toga se za implementaciju najčešde koriste heš funkcije. Nakon kodiranja, operacija potpisivanja se primjenjuje nad kodiranom porukom tj. 33 Procedura verifikacije se, zatim, odvija na sličan način: formiranje vrijednosti i provjeravanje da li je EMSA-PSS kodiranje korektno. Da bi to postigli potrebno je prodi kroz korake od 7 do 4 i dobiti vrijednosti i , a zatim ponoviti korake 2 i 3 da ispitamo da li je heš vrijednost ispravna. Treba imati na umu da primaoc poruke zna vrijednosti i iz standarda. Slika 5. Princip funkcionisanja EMSA-PSS šeme kodiranja Vrijednosti su u suštini heš vrijednosti poruke. Dodavanjem slučajne vrijednosti prije drugog heširanja, kodirana vrijednost postaje vjerovatnosna. Kao posljedica toga, ako kodiramo i potpišemo dva puta istu poruku dobijamo različite potpise, što je poželjna osobina. 34 5. Elgamal šema digitalnog potpisa Elgamal šema digitalnog potpisa, koja je objavljena 1985. godine, zasnovana je na težini problema računanja diskretnog logaritma. Za razliku od RSA, gdje su enkripcija i digitalni potpis gotovo identične operacije, Elgamal digitalni potpis se prilično razlikuje od šeme za enkripciju sa istim imenom. 5.1. Školski primjer Elgamal digitalnog potpisa Generisanje ključeva Kao i u svakoj asimetričnoj šemi, postoji faza tokom koje se generišu ključevi. Počinjemo odabiranjem velikog prostog broja i konstruisanjem problema diskretnog algoritma kako slijedi: Generisanje ključeva za Elgamal šemu digitalnog potpisa 1. Izaberi veliki prost broj p. 2. Izaberi primitivni element 3. Izaberi slučajan broj 4. Izračunaj Sada smo fomirali javni ključ podgrupe iz skupa . . . , i privatni ključ . Potpis i verifikacija Korišdenjem privatnog ključa i parametara javnog ključa računa se potpis za poruku : Primjetimo da se potpis sastoji od dva cijela broja . Potpisivanje se sastoji iz dva glavna koraka: Slučajnog odabira vrijednosti , koja u stvari predstavlja privatni efemeralni ključ Računanja stvarnog potpisa za poruku 35 Generisanje Elgamal potpisa 1. Izaberi slučajan efemeralni ključ za koji važi da je . 2. Izračunaj parametre potpisa: , . Na prijemnoj strani, potpis je potrebno verifikovati korišdenjem javnog ključa, potpisa i poruke. Verifikacija Elgamal potpisa 1. Izračunaj vrijednost: , 2. Verifikacija slijedi iz: Ukratko, onaj koji verifikuje poruku prihvata potpis samo ako je relacija zadovoljena. U protivnom, verifikacija nije uspjela. Da bi razjasnili način odabira parametara potpisivanje, korisno je proučiti sljededi dokaz. za Dokaz. Dokazujemo korektnost Elgamal šeme potpisivanja. Specijalno, pokazademo da proces verifikacije vrada „potpis je validan“ ako onaj koji verifikuje poruku koristi ispravni javni ključ i ispravnu poruku, i ako su parametri potpisa odabrani kao što je navedeno. Počinjemo sa jednačinom verifikacije: . Potpis treba smatrati validnim ako je ovaj izraz jednak : Prema maloj Fermaovoj teoremi, posljednja relacija važi ako su eksponenti na obije strane izraza jednaki u modulo aritmetici: 36 Odakle dobijamo formiranje parametara potpisa kako slijedi: . Uslov da je efemeralnog ključa po modulu je potreban zato što je potrebno računanje inverznog elementa kada računamo . Primjer. Ponovo, Bob želi poslati Alisi poruku. Ovoga puta, on je želi potpisati sa Elgamal šemom potpisivanja. Potpisivanje i verifikacija funkcionišu na sljededi način: 5.2. Računarski aspekat Važno je primjetiti da je postupak generisanja ključeva identičan kao i kod Elgamal enkripcije. Bududi da se sigurnost ove šeme zasniva na problemu diskretnog logaritma, mora da zadovoljava određene uslove. Specijalno, mora biti dužine najmanje 1024 bita. Prost broj se može generisati korišdenjem algoritma za traženje prostih brojeva [1]. Javni ključ se generiše slučajno, a za stepenovanje javnog ključa može se koristiti algoritam brzog stepenovanja [1]. Potpis se sastoji od para Oboje imaju dužinu u bitima kao i broj , tako da je ukupna dužina paketa trostruka dužina poruke . Računanje broja zahtjeva podizanje broja α na neki stepen po modulu , što se može postidi koršdenjem algoritma brzog stepenovanja [1]. Glavna operacija prilikom računanja broja je traženje inverza od . Ovo se može postidi korišdenjem proširenog Euklidovog algoritma. Ubrzanje algoritma je mogude uvođenjem preprocesiranja. Potpisnik može unaprijed da generiše efemeralne ključeve i vrijednosti, i da sačuva ove podatke. Kada treba potpisati poruku, oni se mogu preuzeti i koristiti za računanje vrijednosti . Onaj koji 37 prima poruku i treba da je verifikuje izvršava dvije operacije stepenovanja korišdenjem algoritma brzog stepenovanja [1] i jedno množenje. 5.3. Sigurnost Prvo, moramo biti sigurni da onaj koji verifikuje poruku ima ispravan javni ključ. U suprotnom, mogud je napad koji je opisan u poglavlju 4.3. U ovom dijelu opisujemo ostale vrste napada na Elgamal digitalni potpis. Računanje diskretnih logaritama Sigurnost šeme potpisivanja počiva na težini problema diskretnog logaritma (DLP). Ako je Oskar sposoban da računa diskretne logaritme, on može izračunati privatni ključ iz kao i efemeralni ključ iz . Sa ovim informacijama, on može potpisati proizvoljne poruke u tuđe ime. Otuda Elgamal parametri moraju biti izabrani da je problem diskretnog logaritma težak. Da bi problem određivanja diskretnog logaritma bio težak broj mora bti najmanje 1024 bita. Ponovno korišćenje efemeralnog ključa Ako potpisnik poruke više puta koristi isti efemeralni ključ , napadač lako može izračunati privatni ključ . Ovo vodi do potpunog razbijanja sistema. Evo kako napad funkcioniše. Oskar posmatra dva digitalna potpisa i poruke oblika Ako dvije poruke i imaju isti efemeralni ključ , Oskar lako može to da primjeti, jer su dvije vrijednosti iste pošto se računaju na sljededi način: vrijednosti su različite, pa Oskar u stvari dobija dvije jednačine: Ovo je sistem jednačina sa dvije nepoznate: - što je i Bobov privatni ključ - efemeralni ključ Ako obije jednačine pomnožimo sa ovo postaje linearni sistem jednačina koji se lako rješava. Oskar jednostavno oduzima drugu jednačinu od prve, i dobija: Iz prethodne jednačine možemo dobiti efemeralni ključ po formuli: 38 Ako je jednačina ima višestruko rješenje za , i Oskar mora da provjeri koje je ispravno. U svakom slučaju, korišdenjem , Oskar takođe može izračunati privatni ključ iz jedne od jednačina sistema, na primjer po formuli: Sa poznavanjem privatnog ključa i parametara javnog ključa, Oskar sada slobodno može potpisati bilo koji dokument u Bobovo ime. U cilju izbjegavanja napada, za svako potpisivanje bilo bi poželjno birati efemeralne ključeve koji se slučajno generišu. Dat je primjer napada sa malim brojevima. Primjer. Pretpostavimo da imamo situaciju u kojoj Oskar presrede dvije poruke koje je potpisao Bob korišdenjem istog efemeralnog ključa : 1. 2. . Podrazumjeva se da Oskar zna Bobov javni ključ, koji je u ovom slučaju: . Posjedujudi ove informacije, Oskar je u mogudnosti da izračuna efemeralni ključ: I na kraju otkrije Bobov privatni ključ : . Napad falsifikovanjem Slično kao i u slučaju RSA digitalnog potpisa, takođe je mogude da napadač generiše validan potpis za slučajnu poruku . Napadač Oskar glumi Boba, tj. Oskar tvrdi pred Alisom da je on u stvari Bob. 39 Napad se odigrava na sljededi način: Verifikacija vodi do validnog potpisa zato što važi: Pošto je poruka konstruisana kao , posljednji izraz je jednak: Što je i upravo uslov koji Alisa provjerava za prihvatanje potpisa kao validnog. Napadač u koraku 3 računa poruku , čije značenje ne može da kontroliše. Zbog toga, Oskar može praviti validne potpise samo za pseudoslučajne poruke. Napad nije mogude izvesti ako se poruka hešira, što je u praksi veoma čest slučaj. Umjesto da se poruka koristi za računanje potpisa, prije potpisivanja nad porukom se primjenjuje heš funkcija, odnosno jednačina potpisivanja postaje: . 40 6. Algoritam digitalnog potpisa (DSA) Osnovni Elgamal algortam digitalnog potpisa koji je opisan u prethodnom odjeljku veoma se rijetko koristi u praksi. Umjesto njega, koristi se popularnija varijanta koja je poznata kao Algoritam digitalnog potpisa (engl. Digital Signature Algorithm - DSA). To je standard za digitalne potpise vlade Sjedinjenih Američkih Država (engl. Digital Signature Standard - DSS) koji je predložen od strane Nacionalnog instituta za tehnologiju i standarde (NIST). Glavna prednost ovog potpisa u poređenju sa Elgamal šemom digitalnog potpisivanja je ta da je potpis dugačak samo 320 bita, i neki napadi koji mogu da ugroze Elgamal šemu se ne mogu primjeniti na DSA. 6.1. DSA algoritam Ovdje demo prikazati DSA algoritam sa dužinom od 1024 bita. Važno je napomenuti da su vede dužine takođe mogude korišdenjem ovog standarda. Generisanje ključa Ključevi za DSA algoritam se računaju na sljededi način: Generisanje ključeva za DSA 1. Generiši prost broj za koji važi . 2. Nađi prost djelioc broja za koji važi . 3. Nađi element za koji je , tj. α generiše podgrupu koja ima elemenata 4. Izaberi slučajni cijeli broj za koji važi . 5. Izračunaj . Ključevi su: Osnovna ideja DSA je da se koriste dvije ciklične grupe. Jedna od njih je velika ciklična grupa čiji je red dužine 1024 bita. Druga je 160-bitna podgrupa grupe . Ovakav izbor grupa daje krade potpise, kao što je opisano u daljem tekstu. Pored ovakvog odabira brojeva , postoje i druge kombinacije bitskih dužina koje se mogu odabrati za ove brojeve. Prema posljednjoj verziji standarda, kombinacije su date u tabeli 1. Ukoliko odaberemo neku drugu kombinaciju dužine brojeva u bitima, samo je potrebno promjeniti korake 1 i 2 u procesu generisanja ključeva. O pitanju odabira bitske dužine bide riječi kasnije. 41 p 1024 2048 3072 q 160 224 256 potpis 320 448 512 Tabela 1. Bitska dužina važnih parametara DSA algoritma Potpis i verifikacija Kao i u Elgamal šemi digitalnog potpisa, DSA potpis se sastoji od para cijelih brojeva Pošto je svaki od parametara dugačak samo 160 bita, ukupna dužina potpisa je 320 bita. Korišdenjem privatnog i javnog ključa, potpis za pouku se računa na sljededi način: Generisanje DSA potpisa 1. Izaberi slučajan efemeralni ključ 2. Izračunaj 3. Izračunaj . za koji važi . . Prema standardu, da bi izračunali poruka se hešira korišdenjem heš funkcije . Heš funkcija računa 160-bitni sažetak poruke , što u stvari predstavlja njen „otisak“. Ovaj otisak se može smatrati zamjenom za poruku . Proces verifikacije potpisa odvija se na sljededi način: Verifikacija DSA potpisa 1. 2. 3. 4. 5. Izračunaj pomodnu vrijednost Izračunaj pomodnu vrijednost Izračunaj pomodnu vrijednost Izračunaj Verifikacija slijedi iz: . . . . Potpis se prihvata samo ako je zadovoljeno. U suprotnom, verifikacija nije uspjela. U slučaju da verifikacija nije uspjela, ili poruka ili potpis su izmjenjeni prilikom prenosa, ili onaj koji vrši verifikaciju ne posjeduje ispravan javni ljuč. U svakom slučaju, potpis se smatra nevalidnim. 42 Dokaz. Pokazademo da potpis zadovoljava uslov verifikacije. Počedemo sa parametrom potpisa : koji se ispituje u postupku Što je ekvivalentno sa: . Desna strana se može zapisati pomodu pomodnih vrijednosti i : . Sada možemo podidi na , i to sve u modulo aritmetici, tako da dobijamo: . Pošto se parametar javnog ključa računa po formuli , možemo napisati: . Sada obije strane jednačine redukujemo po modulu : . Pošto smo konstruisali kao i identičan uslovu koji koristimo da verifikujemo potpis kao validan: , ovaj izraz je . Slijedi primjer, koji služi samo za ilustraciju. Primjer. Bob želi poslati Alisi poruku koju potpisuje DSA algoritmom. Neka je heš vrijednost poruke . Dalje proces potpisivanja i verifikacije funkcioniše po sljededem principu: 43 U prethodnom primjeru, podgrupa ima red koji je prost broj , dok „velika“ ciklična grupa modulo ima 58 elemenata. Primjetimo da je . Zamjenili smo funkciju funkcijom jer je izlaz heš funkcije ima dužinu 160 bita. 6.2. Računarski aspekat Sada demo govoriti o složenosti DSA šeme digitalnog potpisa. Najzahtjevniji dio je faza generisanja ključa. Međutim, ova faza se izvršava samo prilikom podešavanja sistema. Generisanje ključa Osnovni zadatak u fazi generisanja ključa je nadi cikličnu grupu , gdje ima bitsku dužinu 1024, i koja ima prostu podgrupu veličine Ovaj uslov ispunjen je ako ima prosti faktor dužine 160 bita. Opšti pristup generisanja parametara koji ispunjavaju date uslove je da prvo pronađemo prosti broj dužine 160 bita, a zatim da konstruišemo vedi prosti broj koji zadovoljava zadate uslove. Ispod je dat primjer algoritma koji funkcioniše na takav način. Generisanje prostih brojeva za DSA Izlaz: prosti brojevi za koje važi , tako da je umnožak od . Inicijalizacija: Algoritam: 1. Pronađi prost broj koristedi Miller-Rabin algoritam tako da važi 2. For 2.1. Generiši slučajan cijeli broj za koji važi 2.2. 2.3. (primjetimo da je umnožak broja IF prost (koristi Miller-Rabinov test primalnosti) 2.4. RETURN 2.5. 3. GOTO korak 1 ) Izbor vrijednosti kao modul u koraku 2.3 osigurava da su kandidati koji su generisani u koraku 2.3 neparni brojevi. Pošto je djeljivo sa to znači da je istovremeno djeljivo i sa . Ako je prost broj, onda ima podgrupu reda . Potpisivanje Prilkom potpisivanja računaju se parametri . Prilikom računanja potrebno je prvo izračunati korišdenjem algoritma brzog stepenovanja. Pošto ima samo 160 bita, potrebno je u prosjeku oko 1.5×160 = 240 stepenovanja i množenja, iako se aritmetika vrši nad 1024 – bitnim brojevima. Rezultat, koji je takođe dužine 1024 bita, se zatim smanjuje na 160 bita pomodu operacije 44 „ “. Računanje vrijednosti uključuje samo brojeve koji su veličine 160 bita. Najskuplji korak je traženje inverza od . Od svih operacija koje je potrebno izvršiti, stepenovanje je najskuplje u smislu računske složenosti. Pošto parametar ne zavisi od poruke, on se može izračunati u fazi preprocesiranja, tako da potpisivanje postaje prilično brza operacija. Verifikacija Računanje pomodnih parametara operacije veoma brzim. 6.3. i uključuje samo operande od 160-bita, što čini ove Sigurnost Interesantan aspekat DSA algoritma je da ga moramo zaštititi od dvije različite vrste napada na diskretni logaritam. Ako napadač želi razbiti DSA, mogao bi pokušati da izračuna privatni ključ rješavanjem problema diskretnog logaritma u velikoj cikličnoj grupi po modulu : . Najmodniji metod ovog napada je napad računanjem indeksa [1]. U cilju sprečavanja ovakve vrste napada mora biti dugačak najmanje 1024 bita. Procjenjeno je da dužina parametra od 1024 bita pruža nivo sigurnosti 2 80 bita, odnosno, napad bi u najboljem slučaju imao operacija. Za vedi nivo sigurnosti, NIST preporučuje i proste brojeve dužine 2048 i 3072 bita. Drugi napad na diskretni logaritam DSA algoritma je taj da napadač iskoristi činjenicu da α generiše samo malu podgrupu reda . Dakle, čini se obedavajudim napasti samo podgrupu, koja je veličine oko elemenata, prije nego veliku cikličnu grupu koju generiše i koja sadrži oko elemenata. Međutim, ispostavlja se da modni napad računanja indeksa nije primjenljiv ukoliko Oskar želi da iskoristi osobine podgrupe. Najbolje što može da uradi je da izvede jedan od generičkih napada na problem diskretnog logaritma, npr. Šanksov baby step giant step metod, ili Polardov ro metod [1]. To su takozvani napadi koji imaju složenost kvadratnog korijena, i s obzirom da podgrupa ima red približno , ovi napadi obezbjeđuju nivo sigurnosti . Nije slučajno da napadi pomodu računanja indeksa i generički napadi imaju sličnu složenost, jer su veličine parametara namjerno izabrane na taj način. Ako veličinu povedamo na 2048 ili 3072 bita, to samo povedava problem napada pomodu računanja indeksa, ali napad na malu podgrupu de i dalje imati složenost ako podgrupa ostane iste veličine. Iz ovog razloga, ako povedamo veličinu takođe se mora povedati i veličina . Tabela 2 daje dužine brojeva i , kao i nivoe sigurnosti koje je propisao NIST. Nivo sigurnosti heš funkcije takođe mora da odgovara problemu diskretnog logaritma. Pošto kriptografska snaga heš funkcije uglavnom zavisi od dužine izlaza iz heš funkcije, minimalne vrijednosti izlaza heš funkcije takođe su dati u tabeli 2. 2 Algoritam ima „nivo sigurnosti od bita“ ako najbolji poznati napad na taj algoritam ima složenost . 45 p 1024 2048 3072 q 160 224 256 Heš izlaz(min) 160 224 256 Nivo sigurnosti 80 112 128 Tabela 2. Standardizovane vrijednosti bitske dužine parametara i nivoi sigurnosti za DSA Treba istadi da je rekord za proračune diskretnog logaritma 532 bita, tako da je 1024-bitna varijanta DSA trenutno sigurna, a varijante sa 2048 i 3072 bita bi trebale biti dugoročno bezbjedne. Pored napada na diskretni logaritam, DSA postaje ranjiv ukoliko se isti efemeralni ključ koristi više puta. Ovaj napad je potpuno analogan napadu na Elgamal digitalni potpis. Dakle, moramo biti sigurni da su efemeralni ključevi odabrani potpuno nasumično za svaku operaciju potpisivanja. 46 7. Algoritam digitalnog potpisa zasnovan na eliptičnim krivim (ECDSA) Korišdenje eliptičnih krivih ima određenih prednosti u poređenju sa RSA i šemama koje se zasnivaju na problemu diskretnog logaritma, kao što su Elgamal i DSA. Konkretno, na kriptosisteme koji su zasnovani na eliptičnim krivim nema jakih napada, pa možemo odabrati bitsku dužinu parametara u opsegu od 160-256 bita da bi imali isti nivo sigurnosti kao i RSA šema i šeme koje su zasnovane na problemu diskretnog logaritma, a čije su dužine 1024-3072 bita. Zbog manje bitske dužine, kriptosistemi koji su zasnovani na eliptičnim krivim imaju krade vrijeme procesiranja i krade potpise. Iz ovih razloga, Algoritam digitalnog potpisa zasnovan na eliptičnim krivim (ECDSA) standardizovan je 1998. godine od strane Američkog nacionalnog instituta za standardizaciju (ANSI). 7.1. Šema ECDSA algoritma Koraci ECDSA standarda su konceptualno veoma slični DSA šemi. Ipak, ovdje je problem diskretnog logaritma konstruisan u grupi koju pravi eliptična kriva. Zbog toga, aritmetika koja se vrši da bi se izračunao ECDSA potpis potpuno je drugačija od one koja se koristi za DSA. ECDSA standard je definisan nad poljem i Galoovim poljem – GF( ). Generisanje ključeva Ključevi ECDSA algoritma se izračunavaju na sljededi način: Generisanje ključeva za ECDSA 1. Koristimo eliptičnu krivu sa: Modulom Koeficijentima Tačkom koja generiše cikličnu grupu čiji je red prost broj 2. Izaberi slučajni cijeli broj 3. Izračunaj . Ključevi su: za koji važi . Treba imati na umu da smo postavili problem diskretnog logaritma gdje je cijeli broj privatni ključ, a rezultat skalarnog množenja, tačka , je javni ključ. Slično kao i kod DSA, ciklična grupa reda trebala bi imati veličinu 160 bita ili više, ukoliko želimo vedi nivo sigurnosti. 47 Potpis i verifikacija Kao kod DSA, i ECDSA potpis se sastoji od para cijelih brojeva Svaka od ovih vrijednosti ima istu bitsku dužinu kao , što nam daje prilično kompaktan potpis. Korišdenjem javnog i privatnog ključa potpis za poruku se računa na sljededi način: Generisanje ECDSA potpisa 1. 2. 3. 4. Izaberi slučajan efemeralni ključ Izračunaj . Neka je Izračunaj . za koji važi . U koraku 3 -koordinata tačke R dodjeljuje se promjenljivoj . Poruka se mora heširati korišdenjem funkcije u cilju računanja vrijednosti . Izlaz iz heš funkcije mora biti najmanje iste dužine kao i vrijednost . Proces verifikacije funkcioniše po sljededem principu: Verifikacija ECDSA potpisa 1. 2. 3. 4. 5. Izračunaj pomodnu vrijednost Izračunaj pomodnu vrijednost Izračunaj pomodnu vrijednost Izračunaj . Verifikacija slijedi iz: . . . U posljednjem koraku, oznaka označava -koordinatu tačke P. Onaj koji vrši verifikaciju potpis prihvata kao validan samo ako ima istu vrijednost kao i parametar po modulu . U suprotnom, potpis se smatra nevalidnim. Dokaz. Pokazademo da potpis zadovoljava uslov verifikacije. Počedemo sa parametrom potpisa : koji se ispituje u postupku Što je ekvivalentno sa: 48 . Desna strana se može zapisati korišdenjem pomodnih vrijednosti i : . Pošto tačka : generiše cikličnu grupu reda , možemo obije strane prethodne jednačine pomnožiti sa . Pošto je operacija u grupi asocijativna, možemo napisati: i . Do sada smo pokazali da je izraz jednak ukoliko smo koristili ispravan potpis i ključ (i naravno poruku). Dobijamo da je upravo ovo uslov koji provjeravamo u procesu verifikacije poređenjem -koordinate tačke i . Primjer. Bob želi poslati Alisi poruku koju potpisuje ECDSA algoritmom. Proces potpisivanja i verifikacije funkcioniše na sljededi način: Važno je napomenuti da smo odabrali eliptičnu krivu 49 . Pošto sve tačke ove krive formiraju cikličnu grupu reda 19, odnosno, ne postoje podgrupe, pa samim tim u ovom slučaju važi . 7.2. Računarski aspekat Sada demo govoriti o računskim operacijama koji su sastavni dio osnovne tri faze ECDSA algoritma. Generisanje ključeva Odabir eliptične krive sa dobrim kriptografskim osobinama nije ni malo lak zadatak. Upravo iz tog razloga, u praksi se najčešde koriste standardizovane krive koje su predložene od strane NIST-a i Brainpool konzorcijuma. Ostala izračunavanja u ovoj fazi su množenje sa jednom tačkom, što se može obaviti primjenom algoritma dupliranja i sabiranja [1]. Potpisivanje U fazi potpisivanja prvo računamo tačku , koja zahtjeva množenje sa jednom tačkom, iz čega odmah možemo izraziti . Za parametar potrebno je nadi inverz od efemeralnog ključa, što se računa korišdenjem proširenog Euklidovog algoritma. Ostale operacije se odnose na heširanje poruke i redukciju po modulu . Množenje sa tačkom, što je u vedini slučajeva operacija koja najviše košta, može se izračunati u fazi preprocesiranja ukoliko unaprijed izaberemo efemeralne ključeve, na primjer u vrijeme kada je procesor besposlen. Dakle, ukoliko koristimo izračunavanje unaprijed, potpisivanje postaje veoma brza operacija. Verifikacija Računanje pomodnih vrijednosti , i podrazumjeva korišdenje modularne aritmetike. Glavno opteredenje nastaje prilikom računanja izraza . Ovo se može postidi razbijanjem izraza na dva dijela i računanjem dva odvojena množenja tačkom, a zatim sabiranjem rezultata. Takođe, postoje i specijalizovane metode za stepenovanje (u ovom slučaju je množenje sa tačkom slično stepenovanju) koje su brže od dva individualna množenja sa tačkom. 7.3. Sigurnost Pod pretpostavkom da smo parametre koji su vezani za eliptičnu krivu pravilno odabrali, glavni analitički napad na ECDSA sastoji se od pokušaja da se riješi problem diskretnog logaritma nad eliptičnim krivim [7]. Ukoliko je napadač u stanju da riješi ovaj problem, on može izračunati privatni ključ i/ili efemeralni ključ. Međutim, najbolji poznati napad na kriptografiju eliptičnih krivih ima složenost proporcionalnu kvadratnom korjenu veličine grupe u kojoj je definisan problem diskretnog logaritma, tj. proporcionalno . Bitske dužine parametara ECDSA algoritma i odgovarajudi nivo sigurnosti dati su u tabeli 3. Podsjedamo da je prost broj obično samo neznatno vedi od , tako da se sva aritmetika vezana za ECDSA obavlja sa operandima koji otprilike imaju istu bitsku dužinu kao i . 50 q 192 224 256 384 512 Heš izlaz(min) 192 224 256 384 512 Nivo sigurnosti 96 112 128 192 256 Tabela 3. Bitske dužine i nivoi sigurnosti ECDSA algoritma Nivo sigurnosti heš funkcije takođe mora odgovarati nivou sigurnosti problema diskretnog logaritma. Kriptografska snaga heš funkcije uglavnom zavisi od dužine izlaza iz heš funkcije. Nivoi sigurnosti 128, 192 i 256 su odabrani tako da odgovaraju nivoima sigurnosti koje nudi AES, sa svoje tri odgovarajude dužine ključa. Suptilniji napadi na ECDSA su takođe mogudi. U cilju sprečavanja određenih napada na početku verifikacije mora se provjeriti da li je . Takođe, slabost protokola, na primjer, da više puta koristimo isti efemeralni ključ takođe mora biti spriječena. 51 8. Zaključak Digitalizacija moderne kancelarije i sve češda upotreba Interneta u poslovnim primjenama dovodi do potrebe sigurnog i pouzdanog utvrđivanja autentičnosti dokumenata. Digitalni potpisi se zbog toga sve više, po učestalosti upotrebe i važnosti dokumenata koje potpisuju, približavaju klasičnim potpisima i samo je pitanje vremena kada de ih učiniti nepotrebnim. Sve češda upotreba digitalnih potpisa dovodi do vede učestalosti napada – pokušaja lažnog predstavljanja. Zbog toga je potrebno definisati politiku upravljanja digitalnim potpisima koja detaljno propisuje dozvoljene i sigurne načine korišdenja digitalnih potpisa, propisuje korišdenje infrastrukture digitalnih potpisa i korišdenje siguronosnih normi. Oko primjene digitalnog potpisa u praksi postoje još brojna otvorena pitanja. Na Internetu se može nadi velik broj članaka i analiza o toj problematici, ali sve to može se podjeliti u dve osnovne grupe. Prvu grupu čine proizvođači rješenja za izvođenje sistema digitalnog potpisa, kao i sistema za poslovanje na Internetu koji pokušavaju istaknuti brojne prednosti uvođenja sistema digitalnog potpisa. S druge strane nalaze se brojni analitičari koji ne osporavaju način izvođenja i opravdanost sistema, koliko upozoravaju na nedovoljnu provjerenost i kvalitet tehnoloških rješenja koja bi se konkretno trebala primjenjivati u praksi, prije svega u smislu sigurnosti i pouzdanosti. Vjerovatno takav stav proizlazi i iz činjenice da zakonska regulativa ne propisuje koja tehnološka rješenja valja primjenjivati, odnosno barem koje standarde ona moraju zadovoljavati. Bududnost digitalnog potpisa je u svakom slučaju svijetla. Koja god tehnologija ili algoritam bili korišteni, teško je ved danas zamisliti svijet računarskih mreža bez odgovarajudih algoritama autentifikacije. Uprkos tome što je digitalni potpis dio svijeta računara koji se vrlo brzo mijenja i prihvata novitete, pri oslanjanju na jedan od algoritama za digitalni potpis važno je razmišljati ne samo o današnjoj modi računara, ved i o nadolazedim računarima koji de eventualno biti dovoljno snažni za krivotvorenje potpisa pukom silom (engl. „brute force attack“). Druga, uvijek prisutna neugodna mogudnost je da ved danas postoji način „razbijanja“ kripto zaštite (isto tako i digitalnih potpisa) pomodu nekih brzih metoda faktorizovanja (velikih) brojeva, koje bi tad ugrozile ne samo kripto zaštitu algoritama poput danas najrasprostranjenijeg RSA, ved bi vrlo lako osporile i digitalne potpise (načinjene s RSA ili sličnim algoritmom). Ipak, dok se to ne dogodi (ako se ikad dogodi), ostaje nam da vjerujemo saznanjima današnje matematike koja kaže da je digitalni potpis praktično neprobojan ne samo danas, ved i za decenije koji dolaze. 52 Literatura [1] Christof Paar, Jan Pelzl. Understanding Cryptography: A Textbook for Students and Practitioners. Springer-Verlag Berlin Heidelberg 2010. [2] Jeffrey Hoffstein, Jill Pipher, Joseph H. Silverman. An Introduction to Mathematical Cryptography. Springer Science+Business Media, LLC, 2008. [3] Wenbo Mao. Modern Cryptography: Theory and Practice. Prentice Hall PTR, 2003. [4] Mihir Bellare, Phillip Rogaway. PSS: Provably Secure Encoding Method for Digital Signatures. IEEE, Avgust 1998. [5] I. Blake, G. Seroussi, N. Smart, and J. W. S. Cassels. Advances in Elliptic Curve Cryptography (London Mathematical Society Lecture Note Series). Cambridge University Press, New York, NY, USA, 2005. [6] T. ElGamal. A public-key cryptosystem and a signature scheme based on discrete logarithms. IEEE Transactions on Information Theory, 1985. [7] D. R. Hankerson, A. J. Menezes, and S. A. Vanstone. Guide to Elliptic Curve Cryptography. Springer, 2004. [8] R. L. Rivest, A. Shamir, and L. Adleman. A method for obtaining digital signatures and public-key cryptosystems. Communications of the ACM, 1978. 53
© Copyright 2024 Paperzz