Digitalni potpis

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