You are on page 1of 61

SVEUILITE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAUNARSTVA

DIPLOMSKI RAD

Slijepi potpis
Marijana Zelanto Voditelj: doc.dr.sc. Marin Golub

Zagreb, prosinac, 2008.

Zahvala Najvee hvala mojim roditeljima koji su tijekom cijelog studija uvijek bili uz mene. Hvala vam na podrci, razumjevanju i svim savjetima koji su mi pomogli da postanem osoba kakva sam danas. Zahvaljujem takoer i svima koji su mi pomogli prilikom izrade ovog diplomskog rada svojim savjetima i preporukama, posebno mentoru doc. dr. sc. M. Golubu. Hvala takoer i svim kolegama i prijateljima bez kojih studij ne bio tako zabavan.

Saetak
Iako se pojam slijepog potpisa vee uglavnom uz elektroniki novac i sustave anonimnog glasovanja mogue ga je koristiti u svakoj prilici kad je potprebno osigurati anonimnost pojedinca ili grupe. Protokol slijepog potpisa omoguuje poiljatelju da od potpisnika dobije potpis za svoju poruku bez da potpisnika upozna sa sadrajem iste. Od prvotnog Chaumovog prijedloga sheme slijepog potpisa pa do danas predloen je velik broj razliitih shema slijepog potpisa. U okviru ovog diplomskog rada dan je pregled nekih temeljnih shema slijepog potpisa kao i pravednog i opunomoenog slijepog potpisa. Kljune rijei: slijepi potpis, opunomoeni slijepi potpis, pravedni slijepi potpis, elektroniki novac, anonimni sustavi glasovanja, uporaba slijepog potpisa, sigurnost.

Abstract
Although the term of blind signature is usually associated with electronic money and anonimous voting systems, it is possible to use it in every occasion when it is necessary to assure the anonymity of an individual or a group. The blind signature protocol enables the sender to acquire a signature for his message without the signer having any insight into it. Since the original Chaum's proposal of a blind signature scheme till present day a great number of various blind signature schemes has been proposed. An overview of some basic blind signature schemes as well as fair and proxy blind signature schemes is given within this diploma thesis. Keywords: blind signature, proxy blind signature, fair blind signature, electronic money, anonimous voting systems, use of blind signature, security.

SADRAJ: 1. 2. 3. Uvod ......................................................................................................................................... 1 Matematika podloga slijepog potpisa ..................................................................................... 3 Slijepi potpis ............................................................................................................................. 6 3.1. 3.2. 4. 4.1. Chaumov slijepi potpis ...................................................................................................... 7 Analiza sigurnosti Chaumovog slijepog potpisa ........................................................ 9 Schnorrov slijepi potpis ................................................................................................... 10 Opunomoeni slijepi potpisi koji se temelje na DLP i ECDLP-u ................................... 13 Opunomoeni slijepi potpis temeljen na DLP-u ...................................................... 13 Analiza sigurnosti ..................................................................................................... 15 Opunomoeni slijepi potpis temeljen na ECDLP-u ................................................. 17 Analiza sigurnosti ..................................................................................................... 18 3.1.1.

Opunomoeni slijepi potpis .................................................................................................... 12 4.1.1. 4.1.2. 4.1.3. 4.1.4.

4.2. Opunomoeni slijepi potpis temeljen na Mambo-Usuda-Okamoto opunomoenom potpisu ........................................................................................................................................ 19 4.2.1. 4.2.2. 4.2.3. 5. 5.1. 5.2. 5.3. Nezatieni opunomoeni slijepi potpis ................................................................... 19 Zatieni opunomoeni slijepi potpis ....................................................................... 21 Analiza sigurnosti ..................................................................................................... 21

Pravedan slijepi potpis ........................................................................................................... 24 Koncept pravednog slijepog potpisa................................................................................ 24 Pravedni slijepi potpis koritenjem metode ''podijeli i izaberi'' ....................................... 25 Pravedni slijepi potpis tipa I koji koristi zaboravljiv transfer ......................................... 27 Varijanta FiatShamirove sheme potpisa ................................................................. 27 Pravedan jedan-od-dva zaboravljiv transfer ............................................................. 28 Pravedni Slijepi Fiat-Shamirov potpis ..................................................................... 30

5.3.1. 5.3.2. 5.3.3. 5.4. 6. 6.1. 6.2. 6.3. 6.4. 7. 7.1.

Pravedni slijepi potpis sa registracijom ........................................................................... 31 Elektroniko glasovanje .................................................................................................. 35 Elektroniki novac ........................................................................................................... 37 Sigurnosni aspekti slijepog potpisa ................................................................................. 39 Vrste napada na slijepe potpise ....................................................................................... 40 Programsko ostvarenje protokola slijepog potpisa .......................................................... 41 I

Uporaba slijepog potpisa ........................................................................................................ 35

Praktini rad ........................................................................................................................... 41

7.1.1. 7.1.2. 7.1.3. 7.1.4. 7.2. 8.

Grafiko suelje i uporaba programa ....................................................................... 41 Formati zapisa datoteka ............................................................................................ 42 Opis programske izvedbe Chaumovog slijepog potpisa .......................................... 43 Primjer izvoenja ..................................................................................................... 45

Interaktivne Web stranice ................................................................................................ 47

Zakljuak ................................................................................................................................ 50

DODATAK A Izvorni tekst programa (najvanije funkcije) ...................................................... 51 DODATAK B Popis slika i tablica ............................................................................................. 54 Popis Literature .............................................................................................................................. 55

1. Uvod
Sa razvojem elektronikog poslovanja i trgovine, javila se potreba za novim oblikom plaanja koji zadrava ista svojstva kao i papirnati novac, tj. primarno jami anonimnost pri plaanju te uvid odnosno kontrolu plaanja od strane banke. Osnovne kripografske naputke, koji su posluili kao temelj za razvoj elektronikog novca, postavio je David Chaum 1982. godine. Njegov je prijedlog bio da se anonimnost osigura koritenjem elektronikih novanica koje banka koja ih izdaje potpisuje tzv. slijepim digitalnim potpisom. Naime, elektroniki novac je oblik elektronikog plaanja kojeg banka digitalno potpisuje svojim tajnim kljuem. Ukoliko korisnik eli podii novac, banka mu dostavlja potpisanu elektroniku novanicu koju on tada moe potroiti u eljenoj trgovini, nakon ega trgovina novac stavlja na svoj raun u banci (Slika 1.1.). U sluaju kada bi banka znala koju je novanicu izdala kojem korisniku, tj. kada bi mogla razlikovati novanice i , ona bi mogla voditi evidenciju o svakoj novanici i na taj nain imati uvid u privatni ivot svakog svog korisnika. Dakle, banka bi mogla saznati kad, gdje i u koju svrhu je izdani novac potroen (npr. za prijevoz, veeru, hotel, ljekove itd.). Koritenjem protokola slijepog potpisa banka potpisuje novanicu bez uvida u njen sadraj. Korisniku je na taj nain omogueno da dobije valjanu novanicu, a pri tome zadri svoju privatnost pri troenju iste. No, potpuno slijepi potpis je za banku suvie rizian jer ne zna apsolutno nita o sadraju kojeg potpisuje, pa se u ovu svrhu najee koristi slijepi potpis sa djelominim uvidom, tj. slijepi potpis koritenjem metode ''podijeli i izaberi'' (engl. cut and choose).

Slika 1.1 Kruenje novca Osim u sluaju elektronikog novca protokol slijepog potpisa koristi se takoer i u postupku anonimnog elektronikog glasovanja, tj. openito kad god je potrebno osigurati anonimnost jednog ili vie korisnika. Zadatak ovog diplomskog rada je bio opisati osnovne sheme slijepog potpisa. Kako bi bilo jednostavnije shvatiti matematiku podlogu slijepog potpisa, u drugom poglavlju su dane neke definicije, funkcije i opisi metoda koje se koriste u ovdje opisanim shemama slijepog potpisa. U

treem, etvrtom i petom poglavlju su opisani slijepi potpis, opunomoeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih. esto poglavlje opisuje naine koritenja protokola slijepog potpisa i neke aspekte njegove sigurnosti. Konano, u sedmom poglavlju je opisan praktini rad u sklopu kojeg je programski ostvaren sustav slijepog potpisivanja pomou Chaumovog protokola te su izraene interaktivne Web stranice koje grafiki prikazuju neke vrste slijepog potpisa.

2. Matematika podloga slijepog potpisa


Poput veine kriptografskih protokola slijepi potpis temelji svoju sigurnost i uinkovitost u odreenim svojstvima brojeva koja se istrauju u teoriji brojeva. S obzirom da je tekst koji se potpisuje/kriptira/dekriptira u raunalu predstavljen binarno, on se interno u kriptografiji gleda kao niz cijelih brojeva. Dakle, pri kriptiranju se razgovjetni tekst (engl. plain text) kodira kao niz cijelih brojeva koji se odabranom funkcijom kriptiranja i kljuem kriptiranja preraunavaju u niz brojeva kriptiranog teksta. [1] Kako bi lake razumjeli protokole opisane u sljedeim poglavljima, u ovom poglavlju su dane neke injenice iz teorije brojeva. Prosti ili prim brojevi Cijeli broj 1 naziva se prostim ili prim brojem ako su mu jedini djelitelji 1 i .

Relativno prosti brojevi

Brojevi i su relativno prosti ako je najvei zajedniki djeljitelj brojeva i jednak 1, tj. brojevi i nemaju zajednikih faktora ili , 1. [1]

Neka je 0,1,2, , 1 prsten u kojem su definirane operacije zbrajanja, oduzimanja i podskup koji se sastoji od elemenata skupa koji su mnoenja po modulu , tada je relativno prosti u odnosu na : Ekvivalentnost po modulu (kongruentnost)
Z Z , , 1

(2.1)

Broj je ekvivalentan broju po modulu , ako vrijedi jednakost: Kae se da su i kongruentni po modulu i pie se: Kvadratni ostatak
mod mod mod

(2.2)

(2.3)

Cijeli broj se naziva kvadratni ostatak po modulu (engl. quadratic residue), ako je kongruentan sa kvadratom, tj. ako postoji cijeli broj takav da vrijedi: Inae se cijeli broj naziva kvadratnim neostatatakom po modulu n (engl. quadratic nonresidue). [[2]
mod (2.4)

Legendreov simbol sljedei nain:

Legendreov simbol ili | je definiran za cijele brojeve i pozitivne proste brojeve na


Ako je | 1 onda je kvadratni ostatak mod , a ako je | 1, onda je kvadratni neostatak. [3] Za neki cijeli broj i neki pozitivni neparni cijeli broj Jacobijev simbol se definira kao umnoak Legendreovih simbola:
(2.6)

0, 0 p | 1, 0 p : 1,

(2.5)

Jacobijev simbol

gdje je n . [4]

Jednosmjerne funkcije

Kao to i samo ime govori, jednosmjerne funkcije su funkcije kod kojih je relativno jednostavno izraunati za zadani , ali je vrlo teko (tj. nemogue u nekom razumnom vremenu) izraunati za zadani tako da vrijedi .

Jednosmjerna funkcija sa tajnim vratima (engl. trapdoor one-way function) je posebna vrsta jednosmjerne funkcije kod koje je mogue jednostavno izraunati za zadani uz pomo neke tajne informacije. Dva primjera jednosmjernih funkcija sa tajnim vratima su umnoak prostih brojeva i diskretna eksponentizacija. [5] Umnoak prostih brojeva

Neka je umnoak dva prosta broja. Da bi se izraunao inverz ove funkcije potrebno je faktorizirati , tj. pronai odgovarajue proste brojeve i . Meutim, faktoriziranje velikih brojeva je vrlo teko, a jedino rjeenje je da se broj dijeli sa nizom brojeva 2, 3, , . Ako broj ima bitova onda je 2 pa je sloenost faktoriziranja 2 . Diskretna eksponentizacija
Ako je prosti broj i , , tada moemo pisati:

ako zadovoljava jednadbu:

log h

(2.7)

(2.8)

Problem pronalaska takvog cijelog broja za zadane , (ako vrijedi: 1), naziva se problem diskretnog logaritma ili DLP (engl. Discrete Logatithm Problem). Ne postoji algoritam koji u razumnom vremenu moe rijeiti problem diskretnog logaritma. [6]

Saetak poruke Kriptografski saetak (engl. hash) izrauje se funkcijom za izradu saetka. To je jednosmjerna funkcija koja iz poruke proizvoljne duljine izraunava saetak stalne duljine. Najjednostavniji oblik funkcije saetka je uzastopna uporaba funkcije na niz nakupina bitova koji se dobivaju djeljenjem izvorne poruke na dijelove jednake duljine. [1] Karakteristika polja Karakteristika polja K je najmanji prirodni broj takav da je 1 1 1 1 0, gdje su 0 i 1 neutralni elementi za zbrajanje, odnosno mnoenje u K. Ako je 1 0 za svaki prirodan broj n, onda se kae da je K polje karakteristike 0. Elipti ke krivulje

Neka je polje karakteristike razliite od 2 i 3, te neka je (gdje su , ) kubni polinom bez viestrukih korijena. Eliptika krivulja nad je skup toaka , koje zadovoljavaju jednadbu: zajedno sa jo jednim elementom koji se oznaava sa i zove "toka beskonanosti". [7]
(2.9)

3. Slijepi potpis
U svakodnevnom ivotu, uloga potpisa je dobro poznata. Koristi se kao dokaz autorstva ili barem slaganja sa sadrajem potpisanog dokumenta, tj. potpis u sebi sadri pretpostavku da je u tekstu uistinu izraena prava volja potpisnika i da je upravo on (a ne netko drugi) potpisnik danog dokumenta. Sa razvojem osobnih raunala i interneta, usporedno je tekao i razvoj elektronikog poslovanja pa se javila potreba za digitalnom inaicom vlastorunog potpisa. Digitalni potpis je ekvivalentan vlastorunom na vie naina, no iz razloga to se u sluaju digitalnog potpisa koriste razne kriptografske metode i protokoli, ispravno implementiran digitalni potpis je tee krivotvoriti nego vlastoruni. Za poruke koje se alju nesigurnim komunikacijskim kanalom, digitalni potpis daje primatelju potvrdu da je poruku poslao upravo onaj za kojeg se tvrdi da je poiljatelj. tovie, ne samo da osigurava pouzdani dokaz identiteta potpisnika, digitalni potpis daje takoer i dokaz o izvornosti podataka. Osnovna ideja digitalnih potpisa kao i potpisa openito je da je onaj tko potpisuje dokument upoznat sa sadrajem istog. No ponekad uvid u sadraj dokumenta nije poeljan ili dozvoljen. U tu svrhu je razvijen protokol slijepog potpisa. Kriptosustav slijepog potpisa ine tri osnovne funkcije: funkcija potpisivanja, funkcija prikrivanja i funkcija otkrivanja (Slika 3.1). Ideja ovog protokola moe se ilustrirati primjerom uzetim iz poznatog svijeta papirnatih dokumenata. Pretpostavimo da imamo omotnicu koja je postavljena sa indigo papirom. Ukoliko se na vanjsku stranu takve omotnice neto napie ostat e trag na papiru unutar omotnice. Neka Ana ima dvije takve omotnice. U svaku omotnicu stavlja po jedan papir i zatvorene omotnice predaje Branku na potpis. Branko potpisuje obje omotnice izvana sa identinim potpisom i vraa ih Ani. Ana privatno mie papire iz omotnica. Oba papira sadre indigo sliku Brankovog potpisa. Ana zatim stavlja te papire u sluajni poredak i predoava ih Branku sa pitanjem: Koji je papir bio u prvoj omotnici? Branko ne moe sa sigurnou odgovoriti. Iako zna da su oba papira bila u omotnicama koje je on potpisao, on ipak ne moe znati koji je papir bio u kojoj omotnici. [8] Prethodno opisan slijepi potpis jo se naziva i potpuno slijepi potpis zato to Branko nema nikakav uvid u dokument koji potpisuje. No, najee je ovakav pristup prerizian za Branka pa se iz tog razloga ee koristi slijepi potpis sa djelominim uvidom u dokument koji se potpisuje, koji se ostvaruje pomou metode ''podijeli i izaberi''. U metodi ''podijeli i izaberi'' Ana dijeli neko dobro ili resurs na dva jednaka dijela, a Branko odabire koju polovicu eli. Stoga je Ani u interesu napraviti pravednu razdiobu jer ako to ne uini, postoji mogunost da e dobiti neeljeni dio. Openito u metodi ''podijeli i izaberi'' Ana alje Branku prikrivenih poruka koje je prethodno prekrila faktorom prikrivanja. Branko sluajno odabire podskup od 1 prikrivenih poruka i trai od Ane faktore prikrivanja za izabrane poruke. Nakon to primi faktore prikrivanja za izabrani skup, Branko provjerava odgovarajue poruke. Ukoliko su sve poruke u redu, Branko slijepo potpisuje preostalu poruku za koju nezna faktor prikrivanja. ak i za relativno maleni 100 Ani se ne isplati riskirati i meu ispravne poruke umetnuti zlonamjernu, jer je ansa da Branko ne izabere ba tu jednu tek 1%.

Ukoliko je kazna za prevaru dovoljno velika, pokuaj prevare moe se pokazati Ani posve neisplativim. [9]

Slika 3.1 Protokol slijepog potpisa Osnovna svojstva slijepog potpisa su dakle: 1) Svojstvo digitalnog potpisa svatko moe provjeriti da je potpis nastao kao rezultat slijepog potpisivanja kreiran koritenjem potpisnikovog tajnog kljua. Potpis ima svojstva autentinosti, integriteta i neporecivosti. 2) Svojstvo slijepog potpisa potpisnik ne moe povezati prikrivenu poruku koju je dobio na potpis sa konanom potpisanom porukom nastalom nakon funkcije otkrivanja. Protokol slijepog potpisa ima svojstvo nepovezivosti (engl. untraceability) 3) Zatita potpisa (engl. conservation of signatures) primatelj potpisa moe dobiti najvie jednu potpisanu poruku iz potpisane prikrivene poruke koju dobiva od potpisnika. [10]

3.1. Chaumov slijepi potpis


Jedan od najvanijih alata u razvoju elektronikog novca od samog poetka bio je upravo protokol slijepog potpisa. D. Chaum je predloio shemu slijepog potpisa koja se temelji na asimetrinom kriptpografskom algoritmu RSA. Parametri sustava su: : korisnik : potpisnik , : potpisnikov javni klju ( je produkt dva velika prosta broja, dok je cijeli broj relativno prost u odnosu na 1 1.

Chaumov protokol slijepog potpisa

1) Korisnik prikriva poruku faktorom prikrivanja i alje prikrivenu poruku , potpisniku na potpis. 2) Potpisnik potpisuje prikrivenu poruku i alje korisniku potpisanu prikrivenu poruku . 3) Korisnik uklanja sa potpisane prikrivene poruke faktor prikrivanja i dobiva potpisanu originalnu poruku 4) Potpis je mogue verificirati tako da se potvrdi da vrijedi:
mod mod

, : potpisnikov tajni klju ( i relativno prost u odnosu na ) : faktor prikrivanja, 1, 1 : poruka koja se potpisuje

mod

(3.1)

mod

(3.2)

(3.3)

RSA kljuevi zadovoljavaju jednadbu mod pa zato vrijedi:


mod

(3.4)

(3.5)

Takoer, je sluajno izabrana vrijednost, a preslikavanje mod je permutacija pa slijedi da je mod takoer sluajan. Iz ovog se moe zakljuiti da ne odaje nikakve informacije o poruci , tj. vrijedi svojstvo slijepog potpisa.

pa je stvarno digitalno potpisana poruka (zadovoljeno je svojstvo digitalnog potpisa).

Pretpostavimo da postoji razliitih poruka za 1 . Svaka od tih poruka je ulaz u funkciju prikrivanja koja koristi faktor prikrivanja , a rezultat je skup prikrivenih poruka . Potpisnik potpisuje sve poruke iz tog skupa pri emu je dobiven skup potpisanih prikrivenih poruka . Sad se na taj skup potpisanih prikrivenih poruka primjenjuje funkcija otkrivanja i dobiven je skup potpisanih poruka .

, ali ne zna koji element prvog skupa odgovara kojem Potpisnik ima uvid u dva skupa: i elementu drugog. Ako potpisnik pretpostavi da odgovara potpisanoj poruci , on moe pronai jedinstveni prikrivajui faktor koji je koriten pri dobivanju rjeavanjem jednadbe: postoji jedinstven Stoga, za svaki mogui nain na koji se mogu povezati skupovi i izbor faktora prikrivanja koji e to povezivanje uiniti istinitim. Pod pretpostavkom da su pri funkciji prikrivanja svi faktori prikrivanja izabrani uniformnom distribucijom moe se zakljuiti da su svi izbori za jednako vjerojatni pa su i sva mogua povezivanja skupa prikrivenih i skupa potpisanih poruka jednako vjerojatna.
mod

(3.6)

Primjer 3.1

Zadani su parametri: 29, 31. Modul kojeg potpisnik objavljuje je tada 29 31 899. Neka potpisnik izabire 17 i rauna 29 1 31 1 840 iz ega slijedi 593. Sljedea tablica pokazuje vrijednosti parametara slijepog potpisa za razliite vrijednosti ulazne poruke i faktora prikrivanja . Tablica 3.1 Vrijednosti parametara slijepog potpisa za razliite vrijednosti m i R 628 254 40 623 724 254 628 84 210 107 461 520 870 826 659 309 135 235 826 659 691 21 716 81 108 251 373

255 685 393 111 308 548 94

886

19 698 340 601 69 19 698

543 274 710 135 260 274 543

Moe se vidjeti da prvi i drugi red imaju iste vrijednosti kao predzadnji i zadnji red, ali su odgovarajue poruke zamjenjene razliitim vrijednostima .

3.1.1. Analiza sigurnosti Chaumovog slijepog potpisa Chaumov slijepi potpis je podloan RSA slijepom napadu kroz kojeg je mogue natjerati potpisnika da dekriptira neku poruku tako da ju slijepo potpie. S obzirom da je proces potpisivanja jednak procesu kriptiranja tajnim kljuem, napada moe potpisniku poslati prikrivenu verziju poruke kriptirane javnim kljuem:

Nakon to potpisnik slijepo potpie dobivenu poruku, primatelj potpisa ukljanja faktor prikrivanja i dobiva dektiptiranu potpisanu poruku, tj. potpisana verzija e imati itljiv tekst:
mod (3.8) mod

mod

(3.7)

Pomou funkcije otkrivanja lako se dobiva dekriptirana poruka :


mod mod

(3.9)

Meutim, protokoli potpisivanja uglavnom ne potpisuju cijelu poruku ve samo njen saetak pa se ovakav napad ne moe direktno iskoristiti.

3.2. Schnorrov slijepi potpis


Slijepi potpis kojeg je predloio C. P. Schnorr prvotno se koristio u prvim oblicima elektronikog novca koji nisu koristili metodu ''podijeli i izaberi''. [11] Parametri sustava su: : korisnik (poiljatelj, primatelj poruke) : potpisnik , : dva velika prosta broja, | 1. : element iz reda . : potpisnikov tajni klju, . : potpisnikov javni klju, gdje je mod . : javna funkcija saimanja (engl. hash). : poruka koja se slijepo potpisuje.
mod

Schnorrov protokol slijepog potpisa

1) Potpisnik sluajno odabire broj te rauna kojeg alje korisniku .

2) Korisnik sluajno izabire brojeve , i rauna (3.11), (3.12) i (3.13) te alje potpisniku.
mod (3.11)

(3.10)

10

, mod

3) Potpisnik rauna funkciju potpisivanja (3.14) i alje korisniku. 4) Korisnik provjerava potpis tako da se uvjeri da vrijedi:
mod

mod

(3.12) (3.13)

(3.14)

5) Korisnik primjenjuje funkciju otkrivanja. , je valjani Schnorrov potpis za poruku . 6) Potpis je mogue verificirati tako da se potvrdi da vrijedi:
m, g y mod

(3.15)

(3.16)

(3.17)

11

4. Opunomoeni slijepi potpis


Koncept opunomoenog (engl. proxy) digitalnog potpisa predloili su 1996. god. M. Mambo, K. Usuda i E. Okamoto. U toj shemi originalni potpisnik delegira svoje pravo potpisivanja nekom drugom (opunomoenom) potpisniku nakon ega opunomoeni potpisnik moe potpisati bilo koju poruku u ime originalnog potpisnika. Osoba koja eli verificirati potpis razlikuje opunomoeni potpis od originalnog potpisa. Verifikacija opunomoenog potpisa se obavlja na gotovo isti nain kao i verifikacija originalnog potpisa. Kratak opis Mambo Usuda Okamoto sheme opunomo enog potpisa Parametri sustava [12]:
: tajni klju originalnog potpisnika mod : javni klju originalnog potpisnika : veliki primarni broj : generator skupa

Koraci protokola:

1) Generiranje opunomoenikovog (proxy) kljua: Originalni potpisnik sluajno odabire broj i rauna ( 4.1) i (4.2).
1 mod (4.1) (4.2)

2) Dostava proxy kljua: Orginalni potpisnik alje proxy klju , opunomoenom potpisniku putem sigurnog komunikacijskog kanala. 3) Verifikacija proxy kljua: Opunomoeni potpisnik provjerava valjanost kljua pomou jednadbe (4.3). Ukoliko je proxy klju valjan opunomoeni potpisnik ga prihvaa. 4) Potpis opunomoenog potpisnika: Ako opunomoeni potpisnik potpisuje poruku , u ime originalnog potpisnika, on koristi isti protokol potpisivanja kao i originalni potpisnik sa razlikom da umjesto tajnog kljua koristi svoj proxy tajni klju . 5) Verifikacija opunomoenog potpisa: Verifikacija opunomoenog potpisa obavlja se na isti nain kao i verifikacija potpisa originalnog potpisnika sa razlikom to se jednadba (4.3) uzima kao javni klju potpisnika. Prva tri koraka protokola nazivaju se faza generiranja punomoi, etvrti korak je faza potpisivanja, a poslijednji faza verifikacije. H. M. Sun i B. T. Hsieh su pokazali da opunomoeni potpis kojeg su predloili Mambo, Usuda i Okamoto pati od problema delegacijskog transfera (engl. delegation transfer): opunomoeni potpisnik moe prenijeti dobivenu punomo za potpisivanje dokumenata nekom drugom, bez
mod (4.3)

12

prethodnog pristanka originalnog potpisnika. Na taj nain neka trea osoba moe generirati valjani opunomoeni potpis u ime originalnog potpisnika. Svojstva opunomo enog slijepog potpisa Opunomoeni slijepi potpis ukljuuje tri entiteta: primatelja potpisa, originalnog potpisnika i opunomoenog potpisnika. Svojstva opunomoenog slijepog potpisa su sljedea [13]: 1) Razluivanje (engl. distinguishability): Mogue je razlikovati opunomoeni potpis od normalnog (originalnog) potpisa. 2) Neporecivost (engl. nonrepudiation): Originalni potpisnik ne moe potpisati poruku u ime opunomoenog potpisnika (isto vrijedi za opunomoenog potpisnika), tj. on ne moe zanijekati da je upravo on taj koji je potpisao poruku. 3) Vjerodostojnost (engl. verifiability): Primatelj potpisa se moe uvjeriti u vjerodostojnost opunomoenog popisa na slian nain kao to je to sluaj kod originalnog potpisa. 4) Nekrivotvorivost (engl. unfogeability): Samo opunomoeni potpisnik moe generirati valjani opunomoeni potpis (ak ni originalni potpisnik to ne moe). 5) Nepovezivost (engl. unlinkability): Kad se potpis verificira, onaj koji je potpisao poruku ne moe povezati potpis sa odreenom instancom protokola potpisivanja. Vrste opunomo enog slijepog potpisa Postoje dvije vrste opunomoenog slijepog potpisa: 1) Nezatieni opunomoeni slijepi potpis i originalni i opunomoeni potpisnik mogu generirati valjani opunomoeni potpis. 2) Zatieni opunomoeni slijepi potpis samo opunomoeni potpisnik moe generirati valjani opunomoeni potpis. U nastavku je opisano nekoliko razliith shema protokola opunomoenog slijepog potpisa.

4.1. Opunomoeni slijepi potpisi koji se temelje na DLP i ECDLP-u


Z. Tan, Z. Liu i C. Tang su predloili digitalne opunomoene slijepe potpise koji se temelje na problemu rjeavanja diskretnih logaritama (engl. Discrete Logarithm Problem, DLP) i eliptikim krivuljama za problem diskretnih algoritama (engl. Elliptic Curve Discrete Logarithm Problem, ECDLP). 4.1.1. Opunomoeni slijepi potpis temeljen na DLP-u Parametri sustava su: : oginalni potpisnik : opunomoeni potpisnik : primatelj potpisa (engl. reciver) ,: dva velika prosta broja, | 1. : element iz reda . , : tajni kljuevi originalnog i opunomoenog potpisnika mod : javni klju originalnog potpisnika 13

Faza generiranja punomo i:

pod uvjetom da 1) Generiranje proxy kljua: Originalni potpisnik sluajno odabire postoji inverz od mod , pri emu je mod i rauna :

mod : javni klju opunomoenogs potpisnika : javna funkcija saimanja (engl. hash) ||: ulanavanje znakovnih nizova

2) Dostava proxy kljua: Originalni potpisnik na siguran nain alje par , opunomoenom potpisniku . 3) Verifikacija proxy kljua: provjerava funkciju delegacije: Ukoliko potvrdi istinitost funkcije delegacije, rauna svoj proxy tajni klju : Faza potpisivanja
mod
mod

mod

(4.4)

(4.5)

(4.6)

1) sluajno izabire broj i rauna ( 4.7), nakon ega alje par , primatelju potpisa . 2) sluajno izabire dva broja , i rauna:

mod

(4.7)

|| mod

mod

(4.8) (4.9) (4.10) (4.11)

3) Nakon to primi rauna (4.12) i alje ga primatelju potpisa .


mod mod

Ako je 0, izabire nove parametre i te rauna ispoetka sve dok 0, nakon ega se alje opunomoenom potpisniku .
(4.12)

mod

mod

4) Kada primi rauna ( 4.13), a opunomoeni potpis je skup , , ,

(4.13)

14

Faza verifikacije Primatelj opunomoenog slijepog potpisa moe verificirati potpis tako da se uvjeri da vrijedi:
|| mod

(4.14)

4.1.2. Analiza sigurnosti Shema opunomoenog slijepog potpisa temeljenog na DLP-u, kojeg su predloili Z. Tan, Z. Liu i C. Tang nije otporna na napade krivotvorenja opunomoenog potpisa od strane originalnog potpisnika ili od strane primatelja opunomoenog potpisa. Takoer ne vrijedi jedan od glavnih uvjeta slijepih potpisa, a to je nepovezivost. U nastavku su dana objanjenja ovih tvrdnji. NAPAD I. U namjeri da krivotvori opunomoeni potpis, originalni potpisnik sluajno odabire broj i rauna:

(4.15)

Tada je

(4.16)

valjani proxy klju potpisivanja. Dokaz:

Opunomoeni slijepi potpis se moe provjeriti pomou jednakosti (4.14). Iz jednakosti (4.9) i (4.14) slijedi:
mod

(4.17)

Koristei jednadbe (4.4) do (4.16) dobivamo:


g y y u mod

y y u mod g

t g g g y y u mod

t g y r y y y u mod

t g y r y y y r

t g y r

mod y

mod y

15

NAPAD II Primatelj potpisa nakon to dobije valjani opunomoeni potpis za neku svoju poruku, moe generirati valjani opunomoeni potpis za neku drugu poruku . Pretpostavimo da je , , , valjani potpis i neka su , a, b parametri koriteni pri dobivanju tog potpisa. Tada je , , , valjani potpis za poruku pri emu je:
||

(4.18)

(4.19)

Ovo je mogue zato to vrijedi:


g y y u mod

(4.20)

mod g
r

mod r

mod
r

mod y

Analiza nepovezivosti

Ukoliko opunomoeni potpisnik eli otkriti vezu izmeu originalne poruke i prikrivenih informacija koje prima za vrijeme protokola potpisa sve to treba je za svaki protokol potpisa pohraniti , i . Nakon to se otkrije potpis , , , , opunomoeni potpisnik rauna:
(4.21) (4.22) (4.23)

za neki i . Nakon toga opunomoeni potpisnik provjerava jednakost (4.24) za razliite vrijednosti . Ukoliko pronae odgovarajui za kojeg ta jednakost vrijedi, on zna da je trojka , , koritena pri generiranju opunomoenog slijepog potpisa za poruku . Dakle ova shema opunomoenog slijepog potpisa ne zadovoljava uvjet nepovezivosti.

mod

mod

(4.24)

16

4.1.3. Opunomoeni slijepi potpis temeljen na ECDLP-u

Eliptika krivulja je skup toaka , sa koordinatama i koje lee u polju i koje zadovoljavaju kubinu jednadbu:
(4.25)

Neka je toka ije su koordinate veliki prosti brojevi rada , gdje generira cijelu aditivnu grupu . Drugim rijeima polje je velikog karaktera. i svaki imaju svoje odgovarajue parove kljueva , i , , gdje su i tajni, a i javni kljuevi pri emu vrijedi: , . komponenta toke eliptike krivulje je oznaena sa . Koraci protokola slijepog potpisa su dani u nastavku. Malim slovom su oznaeni elementi iz , a velikim toke krivulje . Faza generiranja punomo i , 1 . i 1) Generiranje i dostava proxy kljua: Originalni potpisnik sluajno izabire rauna (4.26), (4.27) i (4.28) koje zatim alje opunomoenom potpisniku .
(4.26) (4.27) (4.28)

pri emu vrijedi 4 27 0. Entiteti koji su sudjeluju u protokolu su isti kao i u prethodnom sluaju, tj. originalni potpisnik , opunomoeni potpisnik i primatelj potpisa .

2) Verifikaacija proxy kljua: Opunomoeni potpisnik provjerava jednakost: Ukoliko prethodna jednakost vrijedi, rauna svoj tajni proxy klju : Faza potpisivanja
mod

mod

(4.29)

(4.30)

1) Opunomoeni potpisnik sluajno odabire , gdje je 1 i rauna (4.31) nakon (4.26), (4.28) i (4.31). ega alje primatelju potpisa 2) Primatelj potpisa sluajno izabire brojeve i , gdje je 1 , i rauna:
(4.31)

(4.32) (4.33)

17

|| mod mod mod

(4.34) (4.35) (4.36)

3) Primatelj potpisa alje opunomoenom potpisniku. 4) Nakon to primi opunomoeni potpisnik rauna i alje ga primatelju potpisa. 5) Primatelj potpisa na kraju rauna . , , , je opunomoeni potpis. Faza verifikacije Potpis , , , mogue je verificirati pomou sljedee jednadbe:
||

(4.37)

(4.38)

(4.39)

4.1.4. Analiza sigurnosti Ukoliko eli krivotvoriti opunomoeni slijepi potpis, originalni potpisnik to moe tako da izabere toku gdje je sluajno izabran broj i rauna:
(4.40)

(4.41)

Sada on moe generirati valjani proxy klju potpisivanja na sljedei nain: to je Generirani klju je valjan jer je proxy javni klju jednak: upravo odgovarajui javni klju za . Pretpostavimo da je , , , valjani potpis i da su , , parametri koji su koriteni pri dobivanju tog potpisa. U tom sluaju je , , , valjani potpis za neku poruku , ako su dani parametri:
zP (4.43) (4.44)
mod

(4.42)

18

Dokaz je vrlo slian onom iz DLP verzije protokola pa nije naveden. Slino prethodnom protokolu, opunomoeni potpisnik moe poduzeti iste korake kao prije da bi povezao otkrivenu poruku i prikrivene informacije koritene u potpisivanju te poruke.

e r||m

(4.45)

4.2. Opunomoeni slijepi potpis temeljen na Mambo-Usuda-Okamoto opunomoenom potpisu


S. Lal i A. K. Awasthi su predloili sheme zatienog i nezatienog opunomoenog slijepog potpisa koje za temelj imaju MamboUsudaOkamoto shemu opunomoenog potpisa. [14] Parametri sustava su: : originalni potpisnik : opunomoeni potpisnik : primatelj potpisa : veliki primarni broj : veliki primarni faktor od 1 : element iz reda : tajni klju originalnog potpisnika : javni klju originalnog potpisnika , gdje je mod : sigurna jednosmjerna funkcija saimanja (engl. hash)

4.2.1. Nezatieni opunomoeni slijepi potpis

U sluaju nezatienog opunomoenog slijepog potpisa, i originalni i opunomoeni potpisnik mogu generirati valjani opunomoeni slijepi potpis (Slika 4.1). Faza generiranja punomo i
1) Generiranje proxy kljua: Originalni potpisnik sluajno odabire broj , 1 i rauna:

mod mod

mod

(4.46) (4.47) (4.48)

2) Dostava proxy kljua: Originalni potpisnik objavljuje i na siguran nain alje , opunomoenom potpisniku . 3) Verifikacija proxy kljua: Nakon to primi tajni klju , opunomoeni potpisnik provjerava valjanost tajnog kljua kroz sljedeu kongruenciju:
mod (4.49)

19

Ako , zadovoljava kongruenciju (4.49) opunomoeni potpisnik prihvaa proxy klju, a u suprotnom ga odbacuje. Ukoliko se pokae da proxy klju nije valjan opunomoeni potpisnik moe zatraiti novi klju ili jednostavno zaustaviti protokol.

Slika 4.1 Nezatieni opunomoeni slijepi potpis Faza potpisivanja


, 1 i rauna kojeg zatim 1) Opunomoeni potpisnik sluajno izabire broj alje primatelju potpisa . 2) Primatelj potpisa sluajno odabire brojeve , i rauna:
mod

mod

(4.50)

(4.51)

Ukoliko je 0, izabire novi par , , a ukoliko je 0 rauna (4.53) i alje ga opunomoenom potpisniku .
mod mod (4.52) (4.53)

20

3) Nakon to primi , opunomoeni potpisnik rauna (4.54) i alje ga primatelju potpisa . 4) Primatelj opunomoenog potpisa rauna (4.55). Skup , , je opunomoeni slijepi potpis.
mod (4.55) mod (4.54)

Faza verifikacije Primatelj opunomoenog potpisa (ili bilo tko drugi) rauna: Ukoliko je tada je , , valjani slijepi potpis 4.2.2. Zatieni opunomoeni slijepi potpis
mod mod

(4.56)

U sluaju zatienog opunomoenog slijepog potpisnika samo opunomoeni potpisnik moe generirati valjani slijepi potpis. Razlika u odnosu na prethodni protokol je samo u koracima faze generiranja punomoi dok su faza potpisivanja i faza verifikacije iste kao i u prethodnom sluaju (Slika 4.2). Faza generiranja punomo i
1) Generiranje proxy kljua: Originalni potpisnik sluajno odabire broj , 1 i rauna:

mod mod

mod

(4.57) (4.58) (4.59)

2) Dostava proxy kljua: Originalni potpisnik na siguran nain alje , opunomoenom potpisniku i objavljuje . 3) Verifikacija proxy kljua: Nakon to provjeri ispravnost para , , opunomoeni potpisnik rauna proxy klju na sljedei nain:
mod (4.60)

4.2.3. Analiza sigurnosti Nedostatci ove sheme su prvenstveno nedostatak nepovezivosti kao jednog od osnovnih svojstava opunomoenog slijepog potpisa te objavljivanja javnog kljua. U nastavku je opisano kako se ti nedostaci mogu zlorabiti.

21

Analiza nepovezanosti Ukoliko eli povezati otkrivenu poruku sa prikrivenim informacijama koje dobiva za vrijeme protokola slijepog potpisa opunomoeni potpisnik pohranjuje prikrivene informacije u sljedeem obliku: , i . Nakon to je potpis , , otkriven, opunomoeni potpisnik rauna:

(4.61)

(4.62) (4.63)

za neki i , nakon ega provjerava jednadbu:


mod

mod

(4.64)

za neki . Ako pronae takav da vrijedi prethodna jednadba opunomoeni potpisnik zna da su , , podaci koji su koriteni u protokolu potpisivanja poruke . Dakle, ova shema opunomoenog slijepog potpisa ne posjeduje svojstvo nepovezivosti.

Slika 4.2 Zatieni opunomoeni slijepi potpis Objavljivanje proxy javnog klju a Openito, poeljno je da se pri verifikaciji opunomoenog slijepog potpisa, proxy javni klju rauna (a ne jednostavno dobije od originalnog potpisnika). To je zato to se raunanjem javnog kljua potvruje veza izmeu originalnog potpisnika i opunomoenog potpisnika. U ovoj shemi

22

objavljivanje javnog kljua omoguuje nekom npr. suparniku koji dobije javni klju da isti ponovo objavi. U tom sluaju neka trea strana moe tvrditi da je upravo ona/on originalni potpisnik. Dakle objavljivanje proxy kljua pati od nedostatka da se originalni potpisnik ne moe sa sigurnou autentificirati.

23

5. Pravedan slijepi potpis


Protokol slijepog potpisa je kriptografski primitiv koji ukljuuje dva entiteta: poiljatelja, koji zahtjeva potpis za neku svoju poruku i potpisnika, koji tu istu poruku potpisuje bez ikakvog znanja o njenom sadraaju. S obzirom da protokol slijepog potpisa prua potpunu nepovezivost (engl. unlinkability) izmeu potpisane poruke i potpisnikovog gledita protokola on se koristi kada je potrebno osigurati anonimnost jednog ili vie sudionika (npr. anonimno elektroniko glasovanje ili sigurni elektroniki sustavi plaanja). Tako npr. u anonimnim elektronikim sustavima plaanja, nije mogue povezati podizanje i naknadnu uplatu novca koje je izvrio isti pojedinac. Upravo tu nepovezivost, koju omoguuje slijepi potpis, mogu iskoristiti razni kriminalci kako bi izvrili "pranje novca" ili npr. na siguran nain dobili otkupninu. Zbog toga se javlja potreba za mogunou "micanja anonimnosti", ako je to potrebno u legalne svrhe. M. Stadler, J. M. Piveteau i J. Canenish [15] su predloili novu shemu slijepog potpisa nazvanu pravedni slijepi potpis (engl. fair blind signature). Njhov prijedlog slijepog potpisa ima dodatno svojstvo koje omoguuje, uz pomo entiteta kojem se moe vjerovati, povezivanje potpisane poruke sa potpisnikovim gleditem protokola.

5.1. Koncept pravednog slijepog potpisa


Model pravednog slijepog potpisa se sastoji od poiljatelja, potpisnika i suca (engl. judge) koji predstavlja entitet kojem se vjeruje (Slika 5.1). Pri izvoenju razlikujemo dva protokola: 1) Protokol potpisivanja (engl. signing protocol) ukljuuje poiljatelja i potpisnika izvravanjem ovog protokola poiljatelj dobiva valjan potpis za poruku po njegovom izboru, pri emu potpisnik ne moe povezati potpisanu poruku sa potpisnikovim gleditem protokola. ukljuuje potpisnika i suca potpisnik dobiva informaciju od suca koja mu omoguuje povezivanje potpisane poruke sa odgovarajuim glediem protokola potpisivanja.

2) Protokol oporavka veze (engl. link-recovery protocol) -

S obzirom na informaciju koju potpisnik alje sucu za vrijeme protokola oporavka veze postoje dva tipa pravednog slijepog potpisa: Tip I : Uz pomo danog potpisnikovog gledita protokola, sudac dostavlja informaciju koja omoguuje potpisniku (ili bilokom drugom) da uspjeno prepozna odgovarajuu potpisanu poruku (odgovarajui poruka-potpis par), tj. sudac moe ekstraktirati poruku. Tip II : Uz pomo dane potpisane poruke (para poruka-potpis), sudac dostavlja informaciju koja omoguuje potpisniku da uspjeno prepozna poiljatelja te poruke ili da pronae odgovarajue gledite protokola potpisivanja.

24

Dakle, u sustavima plaanja koji koriste pravedni slijepi potpis tipa I mogue je odrediti konanu destinaciju sumnjivog podignutog novca, dok je kod onih koji koriste pravedni slijepi potpis tipa II mogue odrediti podrijetlo sumnjivog novca.

Slika 5.1 Model sheme pravednog slijepog potpisa U nastavku je opisano nekoliko razliitih shema pravednog slijepog potpisa tipa I i tipa II.

5.2. Pravedni slijepi potpis koritenjem metode ''podijeli i izaberi''


Pravedni slijepi potpis koji koristi metodu ''podijeli i izaberi'' temelji se na Chaumovom slijepom potpisu te dobro poznatoj metodi ''podijeli i izaberi'' (engl. cut and coose) koji su ve prethodno opisani. Parametri sustava su sljedei: , , potpisnikov javni klju ( je produkt dva velika prosta broja, dok je cijeli broj relativno prost u odnosu na 1 1. , funkcija kriptiranja suevog kriptosustava sa javnim kljuem jednosmjerna funkcija saimanja (engl. hash) , sugurnosni parametar (npr. 20).

Na poetku poiljatelj i potpisnik razmjenjuju identifikator sjednice (engl. Session Identifier, ). Svaka istanca protokola potpisivanja ima razliiti . Nakon toga se izvrava sljedei protokol (Slika 5.2), gdje || oznaava ulanavanje znakovnih nizova: 1) Za 1,2, , 2 poiljatelj sluajno izabire i znakovne nizove i te rauna (5.1), (5.2) i (5.3), nakon ega potpisniku alje .

25

||

(5.1) (5.2) (5.3)

|| mod

||

2) Potpisnik sluajno odabire podskup 1, , 2, veliine i alje taj podskup poiljatelju. 3) Poiljatelj za svaki alje potpisniku trojku , , . 4) Potpisnik za svaki provjerava da li vrijedi jednakost (5.4). Ukoliko sve jednakosti vrijede, potpisnik rauna (5.5) i alje ga poiljatelju.
|| || mod mod (5.4) (5.5)

5) Poiljatelj nakon to primi rauna ( 5.6). Rezultirajui potpis se sastoji od izraunatog i skupa parova , | .

(5.6)

Potpis se moe provjeriti tako da se potvrdi jednakost (5.7):

Navedeni protokol pravednog slijepog potpisa je istovremeno tipa I (ako poznaje vrijednosti , , sudac moe otkriti poruku ) i tipa II (ako poznaje potpis , , sudac moe lako izraunati identifikator sjednice tako da dekriptira -ove u skupu T). Takoer, mogue je protokol modificirati kako bi bio ili tipa I ili tipa II:

, || || mod

(5.7)

S obzirom da svaki ovisi o identifikatoru sjednice, nije mogue generirati potpis bez izvravanja protokola potpisivanja, tj. nije mogue koristiti informacije dobivene prilikom prve sjednice da bi se dobio valjani potpis u nekoj drugoj sjednici. Nadalje, vjerojatnost da poiljatelj moe nabaviti ispravan potpis sa krivotvorenim je zanemarivo malen. No, iako razmjerno jednostavna, ovakva shema pravednog slijepog potpisa je neefikasna zbog toga to se prilikom protokola potpisivanja izmjenjuje velika koliina podataka, a i rezultirajui potpis je dugaak.

1) Tip I : svaki treba izraunati kao || . S obzirom da sudac ne moe otkriti identifikator sjednice , ova shema je tipa I. 2) Tip II : svaki treba izraunati kao || . S obzirom da sudac vie ne moe otkriti poruku , ova shema je tipa II.

26

Slika 5.2 Pravedni slijepi potpis koritenjem metode podijeli i izaberi

5.3. Pravedni slijepi potpis tipa I koji koristi zaboravljiv transfer


Pravedni slijepi potpis predstavljen u ovom odlomku temelji se na varijanti FiatShamirove sheme potpisa te na konceptu jedan-od-dva zaboravljivog transfera (engl. one-of-two oblivious transfer). Iako je protokol potpisivanja i dalje neefikasan, rezultirajui potpis je vrlo kratak. 5.3.1. Varijanta FiatShamirove sheme potpisa Za razliku od originalne FiatShamirove sheme potpisa, ova shema koristi trei korjen umjesto drugog korjena. Neka je produkt dva velika prosta broja koja je izabrao potpisnik takva da je 3 relativno prost u odnosu na 1 1 i neka je sluajna vrijednost iz . Tada je par , javni klju potpisnika. Nadalje, neka oznaava jednosmjernu funkciju saimanja i neka je sigurnosni parametar (npr. 80). Definirajmo nizove (5.8) i (5.9):
mod ,

mod ,

(5.8)

(5.9)

27

Jedino potpisnik, znajui faktorizaciju od , moe izraunati niz . Da bi potpisao poruku potpisnik sluajno izabire , i rauna redom ( 5.10), (5.11) i ( 5.12), pri emu oznaava -ti bit od .
mod || (5.10) (5.11) (5.12)

, je potpis poruke i moe se verificirati tako da se provjeri da vrijedi jednakost:


mod

mod

(5.13)

Jedan-od-dva zaboravljiv transfer (engl. one-out-of-two oblivious transfer, ) je protokol izmeu poiljatelja i primatelja koji omoguuje primatelju da izabere jednu od dvije poruke, koje mu alje poiljatelj, na nain da primatelj primi samo izabranu poruku, a poiljatelj ne zna koja je to poruka. Neka su sa i oznaene dvije poruke koje poiljatelj alje primatelju i neka je selekcijski bit koji oznaava odabir primatelja. Izvoenja protokola je tada prikazano na Slika 5.3.

5.3.2. Pravedan jedan-od-dva zaboravljiv transfer

Ukoliko se doda svojstvo da sudac, ali ne i poiljatelj, moe odrediti selekcijski bit tada se takav protokol naziva pravedni- (engl. fair-OT ) (Slika 5.4).

Slika 5.3 Izvoenje protokola

Pravedni jedan-od-dva zaboravljiv transfer mogue je realizirati na sljedei nain: Neka je produkt dva velika prosta broja takav da je faktorizacija od poznata samo sucu. Neka je nadalje velikg reda i neka je kvadratni neostatak gdje je sa 28

Slika 5.4 Izvoenje pravednog protokola

pozitivnim Jacobijevim simbolom. Funkcije " "i " "su jednostavne funkcije kriptiranja i dekriptiranja (npr. DES) koje se koriste da bi se prenjele poiljateljeve poruke (Slika 5.5):

1) Primatelj na sluajan nain izabire nakon ega rauna ( 5.14) kojeg zatim alje poiljatelju. 2) Poiljetelj prima , nakon ega sluajno odabire pa rauna ( 5.15), (5.16), (5.17), (5.18) i (5.19).
mod mod (5.15) (5.16) (5.17) (5.18) (5.19) mod (5.14)

Slika 5.5 Realizacija pravednog jedan-od-dva zaboravljivog transfera

mod

29

3) Poiljatelj primatelju alje trojku , , . 4) Primatelj rauna (5.20) i (5.21)


,

(5.20) (5.21)

Zbog pretpostavke o kvadratnom neostatku, poiljatelj ne moe saznati da li je primatelj dobio ili . Ali sudac moe lako izraunati selekcijski bit tako da provjeri da li je kvadratni neostatak u ili nije. 5.3.3. Pravedni Slijepi Fiat-Shamirov potpis
varijanta FiatShamirove sheme potpisa moe se transformirati u Uz pomo pravednog slijepi potpis tipa I (Slika 5.6):

1) Potpisnik sluajno izabire , , nakon ega rauna ( 5.22) kojeg alje poiljatelju. 2) Nakon to primi poiljatelj sluajno izabire i rauna ( 5.23) i (5.24).
mod

Slika 5.6 Pravedni slijepi Fiat-Shamirov potpis (tip I)

(5.22)

mod

(5.23)

30

3) Za 1, , izvrava se protokol pravednog zaboravljivog transfera, gdje predstavlja -ti bit od . 4) Nakon to je zavren protokol pravednog zaboravljivog transfera poiljatelj je za svaki poslani primio . Poiljatelj rauna ( 5.25) pri emu je , potpis poruke . Par , je valjani potpis poruke m ( je -ti bit od ||) ako vrijedi jednakost:
mod

||

(5.24)

mod

(5.25)

(5.26)

Ukoliko se pretpostavi da potpisnik ne moe odrediti selekcijski bit (zbog pravednog ), tada je jedina vrijednost koju potpisnik moe koristiti da bi prepoznao potpis kasnije. Ali za svaki valjani potpis , poruke postoji tono jedan za kojeg vrijedi mod i . Stoga je rezultirajui potpis zbog toga mod , gdje je -ti bit od || neovisan o protokolu potpisivanja i shema potpisivanja je potpuno slijepa (sa potpisnikovog gledita).

Analiza sljepo e (engl. blindness)

Ako potpisnik poalje svoje gledite protokola sucu, mogue je odrediti selekcijski bit pa je onda mogue odrediti i .

Analiza pravednosti (engl. fairness)

5.4. Pravedni slijepi potpis sa registracijom


Pravedni slijepi potpis sa registracijom je istovremeno tipa I i tipa II. Osnovna ideja je da poiljatelj kod suca ima registrirana dva pseudonima. Jedan od pseudonima se koristi za vrijeme protokola potpisivanja, dok je drugi dio potpisa. Na taj nain sudac, koji zna dva odgovarajua pseudonima, moe povezati potpisnikovo gledite protokola potpisivanja sa odgovarajuim potpisom. Ukoliko poiljatelj koristi isti pseudonim dva puta, tada potpisnik moe povezati svoja dva odgovarajua gledita protokola potpisivanja. Takoer, bilotko moe lako povezati dva rezultirajua potpisa. Ako postoji potreba za nepovezivou razliitih poruka, tada se poiljatelj mora iznova registrirati kod suca za svaku poruku koja se potpisuje. Zbog toga ova shema nije prikladna ukoliko se zahtjeva savrena anonimnost, tj. ako se razliite potpisane poruke ne smiju moi povezati. Parametri ovog sustava su: Grupa iji je red prosti broj i za ije je lanove teko izraunati diskretne logoritme javno poznat element . , je potpisnikov javni klju (gdje je njegov tajni klju). 31

Protokol pravednog slijepog potpisa sa registracijom se sastoji od dva podprotokola: 1) Protokol registracije (Slika 5.7.) za registraciju kod suca i 2) Protokol generiranja slijepog potpisa (Slika 5.8.).

, sueva shema potpisivanja, tako da svatko moe verificirati poruke koje potpie sudac. , sigurna jednosmjerna funkcija saimanja (engl. hash).

Slika 5.7. Protokol registracije Protokol registracije 1) Poiljatelj alje sucu zahtjev za registraciju. 2) Sudac na sluajan nain izabire i pohranjuje par , . 3) Sudac alje poiljatelju: , ||0. ||1 4) Sudac alje poiljatelju: , Sig i nakon ega rauna

Znak || oznaava ulanavanje, a bit koji se dodaje u potpisu suca na kraj pseudonimima i sprijeavaju da nepoteni poiljatelj moe razmijeniti (tj. permutirati) ta dva pseudonima. Protokol generiranja potpisa 1) Poiljatelj alje potpisniku par , ||0 2) Potpisnik verificira suev potpis ||0 i alje poiljatelju , gdje je njegov tajni klju. 3) Poiljatelj nakon to primi rauna 4) Potpisnik sluajno izabire i alje poiljatelju i (5.27), (5.28) i (5.29) kako bi mogao 5) Poiljatelj sluajno odabire , i rauna izraunati (5.30) kojeg zatim alje potpisniku.

5) Poiljatelj provjerava da li vrijedi jednakost:

(5.27)

32

6) Potpisnik rauna ( 5.31) i alje ga poiljatelju.


|||| || mod ||

(5.28) (5.29) (5.30)

7) Nakon to primi poiljatelj rauna ( 5.32). Rezultirajui potpis je 6-torka: , Sig ||1, , , , . ||1 nakon ega se Potpis se moe verificirati tako da se prvo verificira potpis suca Sig provjerava istinitost jednakosti (5.33) i (5.34): (5.33) (5.34)
mod (5.32)

(5.31)

Slika 5.8 Protokol generiranja potpisa

33

, Sig ||1, , , , i za svako Svojstvo sljepoe se moe lako potvrditi: za svaki potpis potpisnikovo gledite protokola potpisivanja postoje , i takvi da potpisnikovo gledite protokola vodi do tog potpisa. Kada se primjeni na zatitu privatnosti sustava za plaanje, pravedni slijepi potpis omoguuje zadovoljavanje zahtjeva svih sudionika: na jednoj strani klijenata, koji ele to je mogue bolju zatitu privatnosti, i s druge strane autoriteta (banke ili suca u predhodnim modelima), koji ele sprijeiti kriminalce da zlorabe tu zatitu privatniosti. U uobiajnom sluaju (koji podrazumijeva da sudac nije ukljuen u transakciju), anonimnost uplate muterije je zajamena. Meutim, u odreenim situacijama (npr. zbog legalnih razloga) mogue je ukloniti anonimnost uz pomo suca.

34

6. Uporaba slijepog potpisa


Protokol slijepog potpisa koristi se u aplikacijama u kojima je potrebno osigurati anonimnost jednog ili vie korisnika. Najei primjeri koritenja slijepog potpisa su elektroniki novac i anonimni sustavi elektronikog glasovanja.

6.1. Elektroniko glasovanje


Izbori su jedan od najvanijih instrumenata demokracije koji omoguuju pojedincu da izrazi svoje stavove. Sa sve veim porastom broja raunalnih mrea spojenih na Internet elektroniko glasovanje se moe smatrati dobrom alternativom klasinim izborima. Cilj elektronikih sustava glasovanja je postii bar jednaku razinu sigurnosti kao to je to sluaj kod klasinog glasovanja. Kako bi se u to veoj mjeri pokuala eliminirati prevara u sustavima elektronikog glasovanja, oni moraju zadovoljavati sljedee uvjete sigurnosti: 1) Tajnost (engl. confidentiality) Glasaki listi biraa mora ostati povjerljiv. Takoer, mora se osigurati da bira ne moe naknadno dobiti potvrdu o tome za koga je glasovao. Ovo je vano kako bi se izbjegla mogunost kupovanja glasova ili ucjene. 2) Cjelovitost (engl. integrity) Kod elektronikog glasovanja ne postoje fiziki glasaki listii. S obzirom da je digitalne glasake listie je relativno jednostavno krivotvoriti, sustav elektronikog glasovanja mora osigurati da se pri konanom prebrojavanju glasova broje samo valjani glasovi te da nitko ne moe promjeniti tui glas bez da bude otkriven. Konani objavljeni rezultati moraju pokazati kako su birai stvarno glasovali. 3) Autentifikacija (engl. authentication) Za vrijeme glasovanja, sustav elektronikog glasovanja mora osigurati nain provjere kojim se utvruje da bira uistinu ima pravo glasovati te da je on stvarno onaj za koga se izdaje. Stoga za vrijeme protokola registracije bira mora dobiti neki oblik potvrde pomou koje se moe autentificirati za vrijeme glasovanja. Takoer, mora se osigurati i svojstvo da jedna osoba moe glasovati samo jednom, tj. da se njen/njegov glas broji samo jednom. 4) Potvrda (engl. verifiability) Potvrda moe biti pojedinana ili univerzalna. Pojedinana potvrda osigurava birau mogunost potvrde da je njegov glas primljen i uraunat u konanom zbrajanju glasova. Univerzalna potvrda osigurava da svatko moe (nakon to zavre izbori) provjeriti da nije bilo nepravilnosti i da su svi glasovi dobro pobrojani. U sustavima elektronikog glasovanja i rezultati i glasaki listii se daju na javni uvid. Najee se tajnost osigurava koritenjem slijepog potpisa, a autentifikacija pomou digitalnog potpisa biraa. 35

S. Ibrahim, M. Kamat, M. Salleh, S. Rizan i A. Aziz su predloili sustav elektronikog glasovanja kojeg su nazvali E-Voting [16] i koji se izvrava u 4 faze (Slika 6.1): 1) Registracija biraa (engl. voter registration) Da bi mogao glasovati na izborima, svaki se pojedinac prethodno mora registrirati. U okviru E-Voting sustava registracija se obavlja na sljedei nain: a) Bira alje svoje osobne podatke (ime, prezime, broj osobne iskaznice) Registratoru. Prije slanja kroz mreu poruka koja sadri spomenute podatke se kriptira. b) Registrator usporeuje dobivene podatke sa podacima u bazi podataka nacionalne registracije kako bi odredio da li bira ima pravo glasovanja i koji je njegov izborni okrug. c) Ukoliko se ustanovi da bira ima pravo glasovanja, sustav generira RSA par kljueva. Javni klju se pohranjuje u E-Voting bazu podataka, a privatni klju se alje birau zatien unaprijed dogovorenom lozinkom. 2) Registracija kandidata (engl. candidate registration) Svakog kandidata moraju nominirati bar dva biraa i svi (kandidat i birai) moraju biti registrirani birai. Registracija kandidata obavlja se na sljedei nain: a) registrirani bira i dva biraa koji ga nominiraju alju svoje osobne podatke administratorskom posluitelju. b) Ti podaci se potpisuju i kriptiraju javnim kljuem administratora. 3) Glasovanje (engl. voting) U fazi glasovanja, bira mora poslati svoj glasaki listi validatoru i povjereniku. Proces glasovanja se odvija na sljedei nain: a) Bira alje svoje osobne podatke validatoru b) Validator provjerava da li je bira registriran i da li je ve glasovao. Ako su podaci biraa ispravni, validator provjerava izborni okrug biraa i alje mu glasaki listi. Svaki glasaki listi ima jedinstveni ID. c) Bira ispunjava glasaki listi te ga prikriva faktorom prikrivanja, potpisuje, kriptira i alje validatoru na provjeru valjanosti. d) Nakon to provjeri biraa, validator potpisuje glasaki listi i alje ga natrag birau. e) Bira provjerava cjelovitost glasakog listia tako to uklanja faktor prikrivanja i usporeuje ga sa originalnim glasakim listiem. f) Potpisani i originalni glasaki listii se alju povjereniku. Komunikacija je zatiena pomou sjednikog kljua dogovorenog u vrijeme uspostave veze. g) Povjerenik provjerava ispravnost glasakog listia koristei javni klju validatora. Potpisani glasaki listi se pohranjuje u E-Voting bazu podataka. h) Povjerenik alje birau ID, vrijeme i datum glasovanja koje potpisuje svojim tajnim kljuem.

36

4) Zbrajanje glasova (engl. counting protocol) Nakon to je zavrila faza glasovanja Povjerenik automatski zbraja glasove te objavljuje rezultate i pohranjuje ih u bazu podataka.

Slika 6.1 E-Voting sustav anonimnog elektronikog glasovanja

6.2. Elektroniki novac


Pod pojmom elektroniki, odnosno digitalni novac (engl. e-money, electronic cash, electronic currency, digital money, digital cash or digital currency) misli se na novac koji se moe koristiti samo elektronikim putem to tipino ukljuuje koritenje raunalnih mrea, interneta i digitalno pohranjenog sustava vrijenosti. Primjeri elektronikog novca su Electronic Funds Transfer (EFT) i direktni depozit (engl. direct deposit). Ovaj pojam takoer obuhvaa i cjelokupno podruje financijske kriptografije i tehnologije koja ju omoguuje. [17] 37

Dakle, po svojoj funkcionalnosti elektroniko plaanje je ekvivalent jednog od klasinih (neelektronikih) oblika plaanja te se stoga takoer moe podijeliti u dvije kategorije: 1) Notacijski (bezgotovinski) oblici pla anja Temelje se na nekom dokumentu koji predstavlja nalog banci u kojoj je novac pohranjen da ga prebaci na raun trgovca u trenutku kada joj se prezentira nalog. Primjeri su: E- ek - elektroniki ekvivalent klasinog papirnatog eka. Izdaje ga kupac trgovcu. Kreditna kartica - nije elektroniki nain plaanja, ali zbog velike rairenosti plaanje karticom je jedan od najzastupljenijih naina plaanja na Internetu. Debitna kartica - Debitna kartica je vrlo slina kreditnoj kartici, s tom razlikom da kupac mora u trenutku kupnje imati novac na raunu. Debitne kartice obino su zatiene 4-znamenkastim PIN brojem. 2) Simbloli ki (gotovinski) oblici pla anja Temelje se na simbolu koji u sebi nosi vrijednost ijim se ustupanjem ustupa i sama novana vrijednost. Primjeri su: E-gotovina - ima osobnosti vrlo sline gotovini u stvarnom svijetu kao npr. da je univerzalno prihvaena, da kupac pri njenoj potronji ostaje anoniman, korisnik ne mora imati raun u banci i sl. Nedostaci su: relativno visoki trokovi vezani uz proizvodnju i distribuciju, nepogodnost za mala plaanja (mikroplaanja, manja od 1 USD) , moe se krivotvoriti itd. Mikropla anje (engl. micropayments) - posebna vrsta e-gotovine, ija osobina su vrlo mali iznosi. [18] Neki od najee spominjanih problema elektronikog novca su: Anonimnost kupca - kako bi se banci onemoguilo stvaranje baze podataka s identitetom i serijskim brojem novanice, moe se prepustiti kupcu da generira serijski broj novanice, koji e zatim tehnikom prikrivanja sakriti od pogleda banke, te e takvu novanicu predati banci na slijepi potpis. Problem dvostruke potronje - obzirom na to da su e-novanice samo podaci (na disku ili u memoriji na kartici), kupac bi mogao pojedinu novanicu jednostavno kopirati i njome platiti dva puta u dvije razliite trgovine. Problem dvostruke potronje moe se rijeiti na dva naina: prevencijom i detekcijom dvostruke potronje.

Najpoznatiji modeli e-gotovine su Chaumov model i Brandsov model. Chaumov model predvia detekciju dvostruke potronje, dok Brandsov predvia njezino sprjeavanje hardverskim sklopom. Ni jedan ni drugi model ne predviaju mogunost prijenosa izmeu osoba ve se obavezno kao posrednik koristi banka. Kako bi mogao raspolagati e-gotovinom kupac ju mora prvo podii u banci. Prilikom plaanja potrebno je osigurati trgovacu mogunost provjere autentinosti novanice. U tu svrhu su razvijena dva modela provjere ovisno o tome da li trgovac u trenutku plaanja ima on-line vezu s bankom ili nema.

38

1) On-line sustav - provjera valjanosti elektronikog novca se obavlja u trenutku kad trgovac dobije elektroniki novac od kupca. Ako je novanica ispravna, trgovac ju odmah polae na svoj raun u banci i kupcu izdaje robu. 2) Off-line sustav - provjera elektronikog novca se odgaa za kasnije. Da bi se provjera obavila, novac se prosljeuje banci koja provjerava autentinost potpisa izdavatelja novanice te da li je novanica ve ranije poloena. Ako je sve u redu, uveava se iznos na bankovnom raunu trgovca.[19]

6.3. Sigurnosni aspekti slijepog potpisa


Digitalni potpis omoguuje potpisniku da potpie dokument te da bilotko moe provjeriti taj potpis, ali ga nitko ne moe krivotvoriti. Slijepi potpis ima dodatno svojstvo koje omoguuje potpisniku da potpise neki dokument (koji mu je dan u kriptiranom obliku) bez da sazna ita o sadraju dokumenta kojeg potpisuje. Pri dokazivanju sigurnosti digitalnog potpisa koriste se dva pristupa: dokazi bazirani na kompleksnsti (engl. comlexity based proofs) i sluajno pogaajui dokazi (engl. proofs based on random oracle model). 1) Dokazi bazirani na kompleksnsti Ovaj pristup su predloili W. Diffie i M. Hellman. Oni su predloili da se sigurnost kriptogravskih primitiva moe svesti na vrstou teze odreenjih temeljnih problema, kao to je npr. postojanje jednosmjernih funkcija. Prvi teorijski dokaz sigurnosti slijepog potpisa dali su A. Jules, M. Luby i R. Ostrovsky [15]. Njihov dokaz pretpostavlja da napada paralelno izvodi vie napada od kojih neke od napada moe obustaviti usred protokola potpisivanja ako se pokau nezadovoljavajuima. Tu vrstu napada su nazvali napadom prilagoenih naizmjenino izabranih poruka (engl. adaptive interleaved chossen-message attack). No iako njihov postupak dokazivanja jami dokazivanje sigurnosti pod openitim pretpostavkama kompleksnosti i izvrava se u polinomijalnom vremenu on je podosta kompliciran i neuinkovit. 2) Sluajno pogaajui dokazi M. Bellare i P. Rogaway su predloili sluajno-pogaajui model dokazivanja sigurnosti koji omoguuje dokaze sigurnosti za razne kriptografske sustave. Velik broj kriptografskih algoritama koristi fukciju saetka to stvara prepreku pri dokazivanju ak i osnovnih svojstva poput jednosmjernosti. U sluajno pogaajuem modelu za funkcije saetka se pretpostavlja da su stvarno sluajne i da daju za svaki upit odgovarajuu sluajnu vrijednost, tj. stvarne funkcije saimanja se zamjenjuju idealnim funkcijama. Sluajno pogaajui dokazi se najee koriste da bi se dokazao dobar dizajn kriptografskih shema, tj. kako bi se odbacile one sa loim dizajnom [11]. Ovakav model se moe koristiti za jednostavne i viestruke paralelne napade.

39

6.4. Vrste napada na slijepe potpise


Napadi na digitalne potpise openito ukljuuju pokuaje generiranja ispravnog potpisa za odreenu poruku bez poznavanja potpisnikovog tajnog kljua. Ovi napadi se mogu podijeliti u etiri kategorije (poredano po padajuoj snazi): 1) Pokuaj otkrivanja potpisnikovog privatnog kljua (potpuni proboj). 2) Osmiljavanje algoritma koji e generirati valjane potpise ekvivalentne onima koji se mogu dobiti pomou potpisnikovog tajnog kljua. 3) Pokuaj generiranja potpisa za neku izabranu poruku. 4) Pokuaj generiranja potpisa za bilo koju novu poruku. Napade takoer moemo okarakterizirati kao pasivne ili aktivne i to na sljedei nain: Pasivni napad napada nema pristup potpisnikovom privatnom kljuu ve koristi odreeni broj ve potpisanih poruka kako bi dobio potpis za neku svoju poruku. Aktivni napad napada koristi pristup potpisniku kako bi od njega dobio potpis za neku svoju poruku.

Takoer, posebno za slijepe digitalne potpise razlikujemo jo dvije vrste napada a to su: 1) Napad jedan na vie (engl. one-more forgery) Slubenu definiciju ovog napada su dali D. Pointcheval i J. Stern [11] Za neki cijeli broj , napad jedan na vie ili , 1-napad je pokuaj napadaa da nakon to je primio potpisa izrauna 1 potpis za neku proizvoljnu poruku

2) Napad ograniavanja

Napada uspjeva pribaviti potpis za poruku iji se sadraj razlikuje od neke predefinirane interne strukture.

40

7. Praktini rad
Praktini dio diplomskog rada sastoji se od dvije cjeline: programskog ostvarenja protokola slijepog potpisa te interaktivnih Web stranice koje grafiki prikazuju osnovne vrste slijepog te opunomoenog i pravednog slijepog potpisa.

7.1. Programsko ostvarenje protokola slijepog potpisa


Ostvareni sustav protokola slijepog potpisa temelji se na Chaumovom slijepom potpisu. Sustav se temelji na .NET platformi te je za rad potrebna instalacija Microsoft .NET frameworka v2.0 (ili vie) odnosno Microsoft Visual studio 2005. Programski jezik koriten za izradu je bio C#. S obzirom da je Chaumov slijepi potpis temeljen na RSA algoritmu ija se sigurnost zasniva na veliini kljua (veliina kljua u programu je 1024 bita) za rad je bilo nuno pronai nain za raunanje sa velikim brojevima. Ovo je rjeeno upotabom BigInteger klase iji je autor Chew Keang. Za generiranje kljueva koritene su ugraene klase .NET frameworka. 7.1.1. Grafiko suelje i uporaba programa Grafiko suelje se sastoji od dvije komponente, tj. dva prozora. Pri pokretanju programa otvara se jednostavan prozor (Slika 7.1) u kojem je mogue pogledati/promjeniti datoteke poruke koja se potpisuje i potpisane poruke. Dok se klikom na gumb "Izvri slijepi potpis" otvara prozor "Koraci slijepog potpisa" (Slika 7.2) u kojem je dan prikaz tri koraka slijepog potpisa, a to su:

1) Funkcija prikrivanja iji su ulazni parametri poruka , faktor prikrivanja te potpisnikov javni klju , , a izlaz joj je prikrivena poruka . 2) Funkcija potpisivanja koja kao ulaz uzima prikrivenu poruku i potpisnikov tajni klju , , a kao izlaz daje potpisanu prikrivenu poruku . 3) Funkcija otkrivanja koja konano daje potpisanu ulaznu poruku uz pomo potpisane prikrivene poruke , faktora prikrivanja te poruke i javnog kljua potpisnika , .

Slika 7.1 Poetni prozor programa

41

Slika 7.2 Koraci slijepog potpisa: Funkcija prikrivanja, Funkcija potpisivanja i Funkcija otkrivanja 7.1.2. Formati zapisa datoteka Datoteke u koje se spremaju kljuevi (potpisnikov javni i tajni klju), faktor prikrivanja kao i poruke koje se izmjenjuju tijekom izvravanja protokola slijepog potpisa su ASCII datoteke, tj. sadre iskljuivo ASCII znakove (uz znakove formatiranja: razmak, novi red). Svi podaci u datotekama su u sljedeem formatu:
[Polje]: [Vrijednost]

Ime [polje] poinje od prve kolone, dok se ispred [vrijednost]i nalaze etiri razmaka. Razliita polja su odvojena praznim redom. Ukoliko je vrijednost brojana ona se zapisuje u heksadecimalnom obliku tako da je najznaajniji oktet prvi, a prvi bit je najvee teine. Takoer broj znamenaka je paran pa tako ako elimo zapisati broj 12345610 onda zapis izgleda ovako: 01E240. Ako je [Vrijednost] dulja od 60 znakova, tada se nakon 60-tog znaka tekst nastavlja u sljedeem retku (nakon poetna etiri razmaka), npr.:
Q4dE4dPJSQQTBBSMBacUykpQJfsk3YXVHgho6e3CPjlz/udwjj3NY1AtiOXB lDkVukDlsVy1+gIYWm9aM2bCKvkWt03XbtD/rmP6Q9E13641fLak/vgl0333 ugMIUlN/2OHWFXd6i7kvsj2Z5mbDHL++LJugkOok6pPiNPU5Du0=

42

Sve datoteke sadre opis datoteke (Description) kao vrijednost parametra [polje] i to na samom poetku. Ostale vrijednosti ovise o sadraju datoteke. Ukoliko je vrijednost parametra [Vrijednost] jednaka Data tada su podaci koji slijede zapisani u Base64 formatu, a inae se koristi heksadecimalni zapis. Pri opisu izvoenja (u nastavku) su dani primjeri datoteka. NAPOMENA: ovaj format zapisa datoteka je pojednostavljeni oblik zapisa koji je koriten u okviru laboratorijskih vjebi iz predmeta "Operacijski sustavi II". Zapis u Base64 formatu Base64 kodiranje koristi skup od 64 znaka, a to su velika i mala slova engleske abecede (A Z, a z ), decimalni brojevi (0 9) te znakovi "+" i "/". Kao posebna sufiksna oznaka koristi se znak "=". Kako bi se podaci pretvorili u Base64 format radi se sljedee: prvi oktet se stavlja u najznaajnijih osam bitova 24-bitnog spremnika, sljedei oktet ide u sredinu, a trei oktet ini najmanje znaajnih osam bitova. Ti bitovi se tada dijele na etiri dijela po est bita te se svaki dio zamjenjuje jednim od znakova tablice Base64 formata, a to su:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/

Ovaj postupak se ponavlja sve dok ne ostane manje od 4 okteta. Ako ostanu tri okteta, tada se i oni kodiraju na gore opisan nain. U sluaju da zadnji blok podataka koji se kodiraju sadri manje od tri okteta, ostatak se nadopunjava nulama. Ukoliko se dva okteta nadopunjavaju nulama (16 bita) tada se na kraj stavlja oznaka "==", odnosno ako se nadopunjava samo jedan oktet dodaje se oznaka "=". Poseban znak "=" je potreban kako bi se pri dekodiranju u neki drugi format mogli odbaciti dodani nulti okteti [20]. Tablica prikazuje primjer kodiranja tijei "tri" u Base64 format. Tablica 7.1. Primjer Base64 kodiranja
Tekst ASCII Binarno Index u tablici Base64 kodiranje t 116 r 114 i 105

0 1 1 1 0 1 0 0 0 1 1 1 0 0 1 0 0 1 1 0 1 0 0 1 29 d 7 H 9 J 41 p

7.1.3. Opis programske izvedbe Chaumovog slijepog potpisa Protokol slijepog potpisa kojeg je predloio D. Chaum ima dva sudionika: poiljatelja poruke i potpisnika. Ova dva sudionika su u programu predstavljena sa dva razreda, a to su sender i signer. Prije izvravanja samog protokola vri se provjera podataka ulazne datoteke, tj. da li ona sadri neku poruku. Ukoliko je ulazna datoteka prazna pojavljuje se upozorenje:
"Ulazna poruka ne moe biti prazan string!"

43

i ne izvrava se protokol. Potrebno je naglasiti da se prilikom instanciranja razreda sender takoer instancira i razred signer pri emu se generiraju privatni i javni klju potpisnika i koji se pohranjuju u datoteke privateKey, odnosno publicKey. Pri svakom pokretanju programa generira se novi par kljueva. Ukoliko ulazna datoteka nije prazna, slijepo se potpisuje ulazna poruka pozivom funkcije:
bool blindSignature(String in_path, string out_path)

Ova funkcija kao ulazne parametre prima putanju do poruke koja se potpisuje (in_path) i putanju do datoteke u koju se pohranjuje potpisana poruka (out_path), a kao izlaz vraa true ako je potpis uspjeno verificiran, odnosno false ako nije. Moe se rei da je uloga ove funkcije samo posrednika jer se unutar nje ne dogaaju nikakve transformacije podataka ve ona slui samo za pozivanje drugih funkcija i provjeru potpisa uz pomo formule (3.4). Funkcije koje poziva ova funkcija su opisane u nastavku, a one su: 1) blindMessage(String message_path): prikriva originalnu poruku faktorom prikrivanja. 2) signBlindMessage(BigInteger t): alje prikrivenu ulaznu poruku na potpisivanje 3) unblindMessage(BigInteger tc): uklanja faktor prikrivanja sa potpisane poruke Funkcija prikrivanja ulazne poruke je:
BigInteger blindMessage(String message_path)

Ulazni parametar funkcije prikrivanja je putanja do ulazne datoteke, dok joj je izlaz kao to samo ime govori, poruka potpisivanja. Na poetku se dohvaa potpisnikov javni klju i ita ulazna poruka, a zatim se generira faktor prikrivanja koji se razlikuje za svaku instancu izvoenja protokola. Pri generiranju faktora prikrivanja pazi se da vrijedi uvjet te se faktor prikrivanja zapisuje u datoteku blindFactor. Pomou formule (3.1) prikriva se ulazna poruka i rezultat se zapisuje u datoteku blindedMessage.
signBlindMessage(BigInteger Pomona funkcija signMessage(BigInteger t) i vraa rezultat iste. t)

poziva

funkciju

Funkcija potpisivanja prikrivene poruke je:


BigInteger signMessage(BigInteger t_bigInt).

Ova funkcija kao ulaz uzima prikrivenu poruku koju potpisuje potpisnikovim tajnim kljuem uz pomo formule (3.2) te potpisanu prikrivenu poruku pohranjuje u datoteku signedBlind. Funkcija otkrivanja potpisane prikrivene poruke je:
BigInteger unblindMessage(BigInteger tc)

Ulazni parametar ove funkcije je prikrivena potpisana poruka. Funkcija poziva pomonu funkciju mod_invert(BigInteger x, BigInteger n) koja rauna modularni multiplikativni inverz faktora prikrivanja te uz pomo formule (3.3) uklanja faktor prikrivanja sa potpisane prikrivene poruke te dobivenu potpisanu poruku zapisuje u datoteku koja je zadana pri pokretanju protokola slijepog potpisa.

44

Osim razreda signer i sender takoer postoji i razred SaveToFile u kojem se nalaze pomone funkcije za zapis potrebnih podataka u odgovarajue datoteke. Podaci se u datoteke zapisuju u prethodno opisanom formatu, a primjeri istih su dani u nastavku. 7.1.4. Primjer izvoenja U nastavku je dan jedan primjer izvoenja programske implementacije Chaumovog slijepog potpisa ostvarene u sklopu ovog diplomskog rada. Neka je dana sljedea ulazna datoteka:
Ovo je ulazna poruka za protokol slijepog potpisa: David Chaum je predlozio protokol slijepog potpis. Slijepi potpis se koristi kad je potrebno osigurati anonimnost jedne ili vise osoba...

Potpisnik generira svoje kljueve (javni i tajni) i pohranjuje ih u datoteke u sljedeem obliku:
Description: Potpisnikov javni klju Modulus: b32b9b62186ebac044c228e2e87a353b5dd2a8dda6fb60ce6ab3d1876d04 591739aac6ace9bd99bb3fda1fd27fbbd5bb158cf265788df581679c8b24 a09e96737b637620a25e83c0268a6b3440962abd040b7b1b4f05d7dd2c11 2185e3ca9d67d953269222fc29695fcd1e356a00e5daf604fe6748e85533 90da3eb546fd22fb Public exponent: 010001 ____________________________________________________________________ Description: Potpisnikov tajni klju D: 5a6f1d3bb32758bda936f31a2ccb5a48ffbf4f9aa928e2a0ed7c9bbaa64c f686e185904840a6818ce0dac10b278bf082408b66e1ceaaa08b5377d147 8886e35ac79ed98a9a91efcc986096119bf57dd47633151b20b1d81bd70c 88e9c6c8e1ef0015bab5114381be5b00df4abbe32f91a688f46e8deb06d0 60c2569741641fc9 DP: 8f7d27294710672f856d406d369ac89984d18bce2bc4d30c1edc3de340db 7788f429a1e0fb4b0ab89a0999d9f8e3523a914de5a0fa378660e29525ff fcf0cc65 DQ: 228413973b99bc2195a72106215e418103e57601dd6590eeec3fad78bc20 93516d47f8d65cb4c20c35ed6d2c270d996c518a395f8fc32fdb7f3be33d 97a21f85 Exponent: 010001

45

InverseQ: 64776486c2762c187035a9300cdcff921175e4dd93b68887c90273d53d95 0ee1ebba0de903c560f7535b7fa2649c60560edff36b41d7e7d75713f9da 9893c435 Modulus: b32b9b62186ebac044c228e2e87a353b5dd2a8dda6fb60ce6ab3d1876d04 591739aac6ace9bd99bb3fda1fd27fbbd5bb158cf265788df581679c8b24 a09e96737b637620a25e83c0268a6b3440962abd040b7b1b4f05d7dd2c11 2185e3ca9d67d953269222fc29695fcd1e356a00e5daf604fe6748e85533 90da3eb546fd22fb P: e98c6afafc2d484b8293a10769da30e4de02dd7170e0b491dca3c8a1e398 fabb63e471f9a98bb3a6fe98a064d3f458c49bab54ea3fabc64c6a440bb4 aa44dd45 Q: c464f406eaa3d83ea0d80212a2590e9bca9fa0256a5c83250e0f6b2eeebc bb46ea1dbdbab05ddaf2cc126218b86d2f62597e87f9724239ab6e89f213 2da5633f

Poiljatelj generira faktor prikrivanja i pohranju je ga u datoteku blindFactor na sljedei nain:


Description: Faktor prikrivanja Data: 8ee3a6dfc49d2299d13c3c19b9eb1435

Poiljatelj pomou generiranog faktora prikrivanja i javnog kljua potpisnika rauna funkciju prikrivanja te dobivenu prikrivenu poruku alje potpisniku na potpis i pohranjuje u datoteku blindedMessage na sljedei nain:
Description: Prikrivena Poruka Data: H51051cGVsEreulexkMutpmf38Y0OHAEtDcYQ+6k54ydHVl+LUSV10/a515m AB2CsPgA82NvINFNl7ijHp3BiPKqXWrb6WOwHibWpzCRHFueA5UpuUDsyMsl xoM9qDtO0/6IpYuAdt+e8oEVqUR6xrz+MARq4ZVxqR+XEvEn6g0=

Potpisnik rauna funkciju potpisivanja koristei svoj tajni klju i rezultat vraa poiljatelju te ga takoer zapisuje u datoteku u sljedeem obliku:
Description: Potpisana prikrivena poruka Data: GK75ZvM7YngHbILRrRs0vg+wyVTI5Uure+6Ssr3yCO+7kaV+dAka2TzMobm2 jM7Q4DJqIGJbVZH2lHvzeqr3KdLZRfO5Rvdf7/mwiQS09BbZINYWXuN0RmpK 81+vL+NMtjMZlqncKJwqy/pGfsjBWVFvd+E0AFO6b37r2HzXdlE=

Poiljatelj nakon to primi potpisanu poruku uklanja faktor prikrivanja sa potpisane prikrivene poruke te rezultat zapisuje u datoteku u sljedeem obliku: 46

Description: Potpisana ulazna poruka Data: nPmL1ZYUwF6Y5WJBmYMkL4fxj8s/Oy5ISP+88W76SuuHSFQqo5R76pk4YuB5 +YEITFOJFdL41IArJN7Sl9AjHDVVem3qN8AbxaHAS/zku09S0CRpIYcG7Zmu RsKKXJFA5SfiQOXEWxiB7sP2FRSLjlYyiPtSa0VRLV8YViXiX64=

7.2. Interaktivne Web stranice


Interaktivne Web stranice su izraene u pomo Macromedia Flash 8 Professional, tonije besplatne 30-dnevne trial verzije koja se moe download-ati na adresi http://www.adobe.com/uk/downloads/. Za svaku prethodno opisanu shemu slijepog potpisa napravljena je po jedna Web stranica koja ga opisuje (Slika 7.4.). Iako se te sheme meusobno razlikuju osnovna forma svih stranica je ista: Pri pokretanju pojedine .fla datoteke otvara se poetni kadar u kojem su ispisani parametri tog protokola (Slika 7.3.)

Slika 7.3 Na poetku se mogu vidjeti svi parametri koji se koriste u protokolu i njihova objanjenja

47

Slika 7.4 Interaktivne Web stranice opisanih protokola

48

U svakom koraku protokola crvenom bojom su oznaene transformacije koje se raunaju te poruke koje se izmjenjuju u tom koraku. Takoer, osim grafikog dan je i tekstualni opis svakog koraka (Slika 7.4). NAPOMENA: U opisu drugog koraka pravednog Fiat-Shamirovog potpisa pojavljuje se znak klikom na koji se otvara nova scena u kojoj je opisan protokol jedanoddva zaboravljivog transfera ( ). i desno

Pregled koraka pojedinog protokola je jednostavan koristei strelice za lijevo pomou kojih se moe lako navigirati na sljedei (odnosno prethodni) korak.

49

8. Zakljuak
D. Chaum je predloio protokol slijepog potpisa kao jedan nain osiguravanja anonimnosti potroaa pri troenju elektronikog novca. Od tad do danas je predloen velik broj shema slijepog potpisa, a osim u sluaju elektronikog novca slijepi potpis je pronaao svoju primjenu u mnogim aplikacijama gdje je bilo potrebno osigurati anonimnost jednog ili vie korisnika (npr. u anonimnim elektronikim sustavima glasovanja). Najea uporaba slijepog potpisa je ipak u elektronikim platenim sustavima jer zadovoljava zahtjeve obje strane: i potroaa i trgovca (ili banke). Potroaima je osigurana anonimnost pri troenju, tj. ne moe ih se naknadno povezati s potroenim novcem, a s druge strane banka moe sprijeiti zlonamjerne korisnike da se krivo predstavljaju ili zloupotrebljavaju tue podatke u svrhu vlastitog profita, jer ukoliko se koristi protokol pravednog slijepog potpisa mogue je ukloniti svojstvo anonimnosti (naravno ako se za to pokae valjani razlog). Kada se predloi nova shema slijepog potpisa, njen autor (ili autori) uvijek vjeruje da je ba njegova shema potpuno sigurna i otporna na napade od strane zlonamjernih korisnika ukoliko isti ne mogu pronai nain da dou do potpisnikovog privatnog kljua. No, snaga kriptografske sheme se ne moe dokazati ve zapravo sve to autor moe napraviti je demonstrirati snagu predloene sheme protiv poznatih napada. Meutim esto vidimo da se za novo predloenu shemu slijepog potpisa izume novi napadi pa novije predloene sheme gotovo uvijek pate od nekih poetnih slabosti, stoga moramo uvijek biti na oprezu ukoliko koristimo nove kriptografske sheme.

50

DODATAK A Izvorni tekst programa (najvanije funkcije)


public bool blindSignature(String in_path, string out_path) { //prikri orginalnu poruku faktorom prikrivanja BigInteger t = blindMessage(in_path); //poalji prikrivenu ulaznu poruku na potpisivanje BigInteger tc = signBlindMessage(t); //makni faktor prikrivanja BigInteger mc = unblindMessage(tc); //provjera potpisa: mc^e(mod n) BigInteger provjera = mc.modPow(_e, _n); byte[] provjera_byteArray = provjera.getBytes(); if (provjera % _n == _m % _n) { return true; } return false; } private BigInteger blindMessage(String message_path) { //dohvati javni klju potpisnika RSAParameters param = sign.getSignerPublicKey(); StreamReader sr = new StreamReader(message_path); ASCIIEncoding myASCII = new ASCIIEncoding(); //proitaj ulaznu poruku String message = sr.ReadToEnd(); byte[] message_byteArray = myASCII.GetBytes(message); sr.Close(); BigInteger m_bigInt = new BigInteger(message_byteArray);//ulazna //poruka BigInteger R_bigInt = new BigInteger();//sluajno generiran broj BigInteger n_bigInt = new BigInteger(param.Modulus);//modul BigInteger e_bigInt = new BigInteger(param.Exponent);//eksponent BigInteger tmp_bigInt = new BigInteger();//k^e (mod n) BigInteger t_bigInt = new BigInteger();//prikrivena poruka Random rand = new Random(2147483647);//maksimalni int //generiraj R < n do { R_bigInt.genRandomBits(param.Modulus.Length, rand); } while (R_bigInt > n_bigInt); //zapisi faktor prikrivanja u datoteku: blindFactor.txt

51

byte[] R_byteArray = R_bigInt.getBytes(); //zapisiFaktorPrikrivanja(R_bigInt); writeToFile(path + "blindFactor", R_byteArray, "Faktor prikrivanja"); //blinded message: t = m * R^e (mod n) tmp_bigInt = R_bigInt.modPow(e_bigInt, n_bigInt); t_bigInt = (m_bigInt * tmp_bigInt) % n_bigInt; //zapisi prikrivenu poruku u datoteku: blindedMessage.txt byte[] t_byteArray = t_bigInt.getBytes(); writeToFile(path + "blindedMessage", t_byteArray, "Prikrivena Poruka"); return t_bigInt; } private BigInteger signBlindMessage(BigInteger t) { BigInteger tc = sign.signMessage(t); return tc; } public BigInteger unblindMessage(BigInteger tc) { BigInteger mc = new BigInteger(); //multiplikativni inverz BigInteger Rinvert_bigInt = mod_invert(_R, _n); mc = (tc * Rinvert_bigInt) % _n; byte[] mc_byteArray = mc.getBytes(); writeToFile(exit_path, mc_byteArray, "Potpisana ulazna poruka"); return mc; } public BigInteger mod_invert(BigInteger x, BigInteger n) { BigInteger A, B, C, D, E, F, G, H; //inicijalne vrijednosti A = x; B = n; //G = 1 G = new BigInteger(); G = 1; //H = 0 H = new BigInteger(); H = 0; while (A != 0) { C = B / A; D = B % A; E = (C * G) % n; F = (H - E) % n;

52

H G B A

= = = =

G; F; A; D;

} return H; } } public BigInteger signMessage(BigInteger t_bigInt) { RSAParameters param = getPrivateKey(); BigInteger d_bigInt = new BigInteger(param.D); BigInteger tc_bigInt = new BigInteger(); BigInteger n_bigInt= new BigInteger(param.Modulus); //potpisi poruku: tc=t^d%n tc_bigInt = t_bigInt.modPow(d_bigInt, n_bigInt); byte[] tc_byteArray = tc_bigInt.getBytes(); writeToFile(path + "signedBlind", tc_byteArray, "Potpisana prikrivena poruka"); return tc_bigInt; }

53

DODATAK B Popis slika i tablica


Slika 1.1Kruenje novca .................................................................................................................. 1 Slika 3.1. Protokol slijepog potpisa ................................................................................................. 7 Slika 4.1 Proxy nezatieni slijepi potpis ...................................................................................... 20 Slika 4.2 Proxy zatieni slijepi potpis .......................................................................................... 22 Slika 5.1 Model sheme pravednog slijepog potpisa ...................................................................... 25 Slika 5.2 Pravedni slijepi potpis koritenjem protokola podijeli i izaberi ..................................... 27 Slika 5.4 Izvoenje pravednog 21 protokola ........................................................................... 28 Slika 5.3 Izvoenje 21 protokola ............................................................................................. 28

Slika 5.5 Realizacija pravednog jedan-od-dva zaboravljivog transfera ........................................ 29 Slika 5.6 Pravedni Slijepi Fiat-Shamirov potpis (tip I) ................................................................. 30 Slika 5.7. Protokol registracije ...................................................................................................... 32 Slika 5.8 Protokol generiranja potpisa........................................................................................... 33 Slika 6.1. E-Voting sustav anonimnog elektronikog glasovanja ................................................. 37 Slika 8.1. Poetni prozor programa ............................................................................................... 41 Slika 8.2. Koraci slijepog potpisa: Funkcija prikrivanja, Funkcija potpisivanja i Funkcija otkrivanja ....................................................................................................................................... 42 Slika 8.3. Na poetku se mogu vidjeti svi parametri koji se koriste u protokolu i njihova objanjenja ..................................................................................................................................... 47 Slika 8.4. Interaktivne web stranice opisanih protokola ................................................................ 48

Tablica 3.1 Vrijednosti parametara slijepog potpisa za razliite vrijednosti m i R ......................... 9 Tablica 8.1. Primjer Base64 kodiranja .......................................................................................... 43

54

Popis Literature
[1] L. Budin, M. Golub: Predavanja iz predmeta Operacijski sustavi 2 [2] Kvadratni ostatak (Wikipedia), URL: http://en.wikipedia.org/wiki/Quadratic_residue [3] Legenderov simbol (Wikipedia), URL: http://en.wikipedia.org/wiki/Legendre_symbol [4] Jacobijev simbol (Wikipedia), URL: http://en.wikipedia.org/wiki/Jacobi_symbol [5] Funkcije i protokoli unutar sigurnih transakcija, URL: http://staticweb.rasip.fer.hr/research/ecash/broshura/ch4.htm [6] Problem diskretnog logaritma, URL: http://garden.irmacs.sfu.ca/?q=op/discrete_logarithm_problem [7] Definicija eliptike krivulje, URL: http://web.math.hr/~duje/ecc/elipdef.html [8] C., David: Blind Signature Systems (US Patent 4759063) URL: http://www.freepatentsonline.com/4759063.html?query=PN%2F47590

63+OR+4759063&ste mming=on
[9] Cut and choose protocols, URL: http://everything2.com/title/cut%2520and%2520choose%2520protocols [10] C. David: Blind signatures for untraceable payments URL:http://www.hit.bme.hu/~buttyan/courses/BMEVIHI5316/Chaum.BlindSigForPaym ent.1982.PDF [11] D. Pointcheval, J. Stern: Provably Secure Blind Signature Schemes URL: ftp://ftp.di.ens.fr/pub/users/pointche//Papers/1996_asiacrypt.pdf [12] W. B. Lee, T. H. Chen: constructing a proxy signature scheme based on existing security mechanisms URL: http://se2.isn.ch/serviceengine/FileContent?serviceID=10&fileid=F151A561-C59FBF4E-F7D4-6BD4FCC23060&lng=en [13] Z. Tan, Z. Zhoujun, C. Tang: Digital Proxy Signature Scheme Based on DLP and ECDLP URL: http://www.mmrc.iss.ac.cn/pub/mm21.pdf/tan.pdf [14] S. Lal, A. K. Awasthi: Proxy Blind signature Scheme 55

URL: http://eprint.iacr.org/2003/072.pdf [15] M. Stadler, J. M. Piveteau, J. Camenisch: Fair Blind Signatures URL: ftp://ftp.hacktic.nl/pub/mirrors/Advances%20in%20Cryptology/HTML/PDF/E95/2 09.PDF [16] S. Ibrahim, M. Kamat, M. Salleh, S. Rizan A. Aziz: Secure E-Voting With Blind Signature URL: http://eprints.utm.my/3262/1/IEEE02-EVS_full_paper_ver14Nov.pdf [17] Elektroniki novac (Wikipedia), URL: http://en.wikipedia.org/wiki/Electronic_money [18] Elektroniki novac, URL: http://ponude.biz/tekstovi/elektronicki-novac.pdf [19] Sustavi elektronikog plaanja(Elektroniki novac) URL: http://web.zpr.fer.hr/ergonomija/2004/slivonja/placanje_e_gotovinom.htm [20] Base64 kodiranje (Wikipedia), URL: http://en.wikipedia.org/wiki/Base64

56

You might also like