Top Banner
Digitalni potpis SPECIJALISTIČKI RAD UNIVERZITET CRNE GORE Prirodno –matematički fakultet Podgorica Kriptografija Doc.dr Vladimir Božovid Darinka Vučinid Studijski program Računarske nauke 0602988218006 Podgorica, Avgust 2010.
53

Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

Feb 09, 2018

Download

Documents

phungduong
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

Digitalni potpis SPECIJALISTIČKI RAD

UNIVERZITET CRNE GORE

Prirodno –matematički fakultet

Podgorica

Kriptografija

Doc.dr Vladimir Božovid

Darinka Vučinid

Studijski program Računarske nauke

0602988218006

Podgorica, Avgust 2010.

Page 2: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

2

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.

Page 3: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

3

Sadržaj

1. Uvod ..................................................................................................................................... 5

2. Matematičke i kriptografske osnove digitalnog potpisa .......................................................... 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

3. Š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

4. RSA šema digitalnog potpisa ................................................................................................ 29

4.1. Školski primjer RSA digitalnog potpisa .................................................................................. 29

4.2. Računarski aspekat ................................................................................................................ 31

4.3. Sigurnost................................................................................................................................ 31

5. Elgamal šema digitalnog potpisa .......................................................................................... 35

5.1. Školski primjer Elgamal digitalnog potpisa ............................................................................ 35

5.2. Računarski aspekat ................................................................................................................ 37

5.3. Sigurnost................................................................................................................................ 38

6. Algoritam digitalnog potpisa (DSA) ...................................................................................... 41

6.1. DSA algoritam ........................................................................................................................ 41

6.2. Računarski aspekat ................................................................................................................ 44

6.3. Sigurnost................................................................................................................................ 45

7. 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

8. Zaključak ............................................................................................................................. 52

Literatura ................................................................................................................................... 53

Page 4: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

4

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

Page 5: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

5

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

Page 6: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

6

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

Page 7: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

7

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

Page 8: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

8

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 dijeli , u oznaci , odnosno da je

djeljivo sa , ako postoji cio broj tako da je .

Lema. Neka su i cijeli brojevi.

a) Ako je i , onda .

b) Ako je i , onda .

c) Ako je i , 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 .

Page 9: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

9

Euklidov algoritam

Naš cilj je da ustanovimo efikasan algoritam za nalaženje dva cijela broja U tom smislu

koristimo Euklidov algoritam.

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 i , takvi da je . Algoritam:

1. Neka je , a . 2. Dijeljenjem sa dobijamo količnik i ostatak , tako da

3. Ako je onda i algoritam je okončan. 4. Ako je , onda postavimo 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 , gdje su , broj je najmanji.

Kao što smo ved vidjeli, za prirodne brojeve i jednačina

Uvijek ima rješenje za u skupu cijelih brojeva.

Opštije, ako je jedno rješenje prethodne jednačine, onda svako njeno rješenje ima oblik

i

, za .

Page 10: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

10

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 cijeli broj. Kažemo da su cijeli brojevi i kongruentni po modulu ako je

njihova razlika djeljiva sa , odnosno ako . Tada pišemo

.

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 akko .

Broj nazivamo multiplikativnim inverzom broja po modulu .

Na primjer, brojevi imaju multiplikativne inverze po modulu .

Page 11: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

11

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

.

Page 12: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

12

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 naziva se

polugrupa.

3. Polugrupa sa jediničnim elementom ( ) se naziva

monoid.

4. Monoid u kom svaki element ima inverzni ( a + b = b + a = e) je grupa.

5. Ako je operacija + komutativna ( ), onda je Abelova

grupa.

Prsten

Neka je dat skup , na kom su definisane dvije binarne operacije:

,

.

Uređena trojka je prsten ako

Page 13: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

13

1. je Abelova grupa.

2. je polugrupa.

3. Za svako važi distributivnost množenja u odnosu na sabiranje

, .

Polje

Neka je prsten. Definišimo skup .

Ako je Abelova grupa, onda nazivamo poljem.

Primjer. Neka je skup ostataka po modulu , gdje je - prost broj. Tada je polje, gdje su

„ “ i „ “ sabiranje i množenje po modulu .

Često, umjesto koristimo oznaku .

Red elementa u grupi

Neka je data grupa sa jediničnim elementom, i proizvoljan element . Pretpostavimo da

postoji prirodan broj takav da .

Najmanji takav broj je red elementa u grupi . Ako je grupa konačna, tada broj elemenata u

njoj nazivamo redom grupe.

Lema. Neka je data konačna grupa . Tada je red svakog elementa u njoj konačan i dijeli red

grupe.

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 prost broj. Tada postoji element koji generiše

svaki element iz , odnosno

.

Elementi koji imaju ovu osobinu se zovu primitivnim korijenima ili generatorima .

Definicija. Grupa se naziva cikličnom ako postoji element u , takav da je .

Page 14: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

14

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 diskretnog logaritma je

problem nalaženja eksponenta tako da

.

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č.

Page 15: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

15

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 , i sva izračunavanja se izvode u

modularnoj aritmetici.

Inicijalna faza algoritma se izvodi u četiri koraka:

Page 16: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

16

1. Vršimo odabir dva velika prosta broja i .

2. Računamo i

3. Biramo broj , relativno prost sa brojem .

4. 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.

Page 17: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

17

Š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, , i maskiranog teksta, . Pošto u principu

svi parametri imaju bitsku dužinu , šifrovani tekst 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.

Page 18: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

18

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

Page 19: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

19

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.

Page 20: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

20

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

Page 21: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

21

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.

Page 22: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

22

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:

Page 23: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

23

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 i

čiji su izlazi i jednaki.

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 Za verifikaciju, Alisa računa i

verifikuje potpis nad .

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.

Page 24: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

24

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.

Page 25: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

25

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. Osnovne odredbe,

II. Elektronski dokument, elektronski potpis i napredni elektronski potpis,

Page 26: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

26

III. Certifikati i davanje usluga certifikovanja,

IV. Prava, obaveze i odgovornosti potpisnika i davalaca usluga certifikovanja,

V. Nadzor,

VI. Kaznene odredbe,

VII. 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.

Page 27: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

27

Č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.

Page 28: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

28

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.

Page 29: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

29

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

Page 30: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

30

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.

Page 31: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

31

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:

Page 32: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

32

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:

Page 33: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

33

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 , heš vrijednosti i .

3. Izračunaj heš vrijednost stringa .

4. Izvrši konkatenaciju fiksiranog dodatka i vrijednosti tako da

formiraju blok podataka .

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 i bloka podataka da bi

izračunali .

7. Kodirana poruka se dobija konkatenacijom , heš vrijednosti i fiksnog dodatka .

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.

Page 34: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

34

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.

Page 35: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

35

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 podgrupe

.

3. Izaberi slučajan broj iz skupa .

4. Izračunaj .

Sada smo fomirali javni ključ , 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

Page 36: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

36

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 za

potpisivanje, korisno je proučiti sljededi dokaz.

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:

Page 37: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

37

Odakle dobijamo formiranje parametara potpisa kako slijedi:

.

Uslov da je je potreban zato što je potrebno računanje inverznog elementa

efemeralnog ključa po modulu 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

Page 38: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

38

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:

Page 39: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

39

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.

Page 40: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

40

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:

.

Page 41: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

41

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.

Page 42: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

42

p q potpis

1024 160 320

2048 224 448

3072 256 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č za koji važi . 2. Izračunaj . 3. Izračunaj

.

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. Izračunaj pomodnu vrijednost . 2. Izračunaj pomodnu vrijednost . 3. Izračunaj pomodnu vrijednost . 4. Izračunaj . 5. 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.

Page 43: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

43

Dokaz. Pokazademo da potpis zadovoljava uslov koji se ispituje u postupku

verifikacije. Počedemo sa parametrom potpisa :

Š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 , ovaj izraz je

identičan uslovu koji koristimo da verifikujemo potpis kao validan:

.

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:

Page 44: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

44

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

Page 45: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

45

„ “. 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 i uključuje samo operande od 160-bita, što čini ove

operacije veoma brzim.

6.3. 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 .

Page 46: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

46

p q Heš izlaz(min) Nivo sigurnosti

1024 160 160 80

2048 224 224 112

3072 256 256 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.

Page 47: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

47

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 za koji važi . 3. Izračunaj .

Ključevi su:

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.

Page 48: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

48

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. Izaberi slučajan efemeralni ključ za koji važi . 2. Izračunaj . 3. Neka je 4. Izračunaj

.

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. Izračunaj pomodnu vrijednost . 2. Izračunaj pomodnu vrijednost . 3. Izračunaj pomodnu vrijednost . 4. Izračunaj . 5. 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 koji se ispituje u postupku

verifikacije. Počedemo sa parametrom potpisa :

Što je ekvivalentno sa:

Page 49: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

49

.

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

Page 50: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

50

.

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

.

Page 51: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

51

q Heš izlaz(min) Nivo sigurnosti

192 192 96

224 224 112

256 256 128

384 384 192

512 512 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.

Page 52: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

52

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.

Page 53: Digitalni potpis - Владимир Божовићvladimirbozovic.net/univerzitet/wp-content/uploads/2011/06/digital... · Studijski program Računarske nauke 0602988218006 ... Uloga

53

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.