61
SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD Slijepi potpis Marijana Zelanto Voditelj: doc.dr.sc. Marin Golub Zagreb, prosinac, 2008.

Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

SVEUČILIŠTE U ZAGREBU

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

DIPLOMSKI RAD

Slijepi potpis

Marijana Zelanto

Voditelj: doc.dr.sc. Marin Golub

Zagreb, prosinac, 2008.

Page 2: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

Zahvala

Najveće hvala mojim roditeljima koji su tijekom cijelog studija uvijek bili uz mene. Hvala

vam na podršci, razumjevanju i svim savjetima koji su mi pomogli da postanem osoba

kakva sam danas.

Zahvaljujem također i svima koji su mi pomogli prilikom izrade ovog diplomskog rada

svojim savjetima i preporukama, posebno mentoru doc. dr. sc. M. Golubu.

Hvala također i svim kolegama i prijateljima bez kojih studij ne bio tako zabavan.

Page 3: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

Sažetak Iako se pojam slijepog potpisa veže uglavnom uz elektronički novac i sustave anonimnog glasovanja moguće ga je koristiti u svakoj prilici kad je potprebno osigurati anonimnost pojedinca ili grupe. Protokol slijepog potpisa omogućuje pošiljatelju da od potpisnika dobije potpis za svoju poruku bez da potpisnika upozna sa sadržajem iste. Od prvotnog Chaumovog prijedloga sheme slijepog potpisa pa do danas predložen je velik broj različitih shema slijepog potpisa. U okviru ovog diplomskog rada dan je pregled nekih temeljnih shema slijepog potpisa kao i pravednog i opunomoćenog slijepog potpisa.

Ključne riječi: slijepi potpis, opunomoćeni slijepi potpis, pravedni slijepi potpis,

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

Page 4: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

I

SADRŽAJ:

1. Uvod ......................................................................................................................................... 1

2. Matematička podloga slijepog potpisa ..................................................................................... 3

3. Slijepi potpis ............................................................................................................................. 6

3.1. Chaumov slijepi potpis ...................................................................................................... 7

3.1.1. Analiza sigurnosti Chaumovog slijepog potpisa ........................................................ 9

3.2. Schnorrov slijepi potpis ................................................................................................... 10

4. Opunomoćeni slijepi potpis .................................................................................................... 12

4.1. Opunomoćeni slijepi potpisi koji se temelje na DLP i ECDLP-u ................................... 13

4.1.1. Opunomoćeni slijepi potpis temeljen na DLP-u ...................................................... 13

4.1.2. Analiza sigurnosti ..................................................................................................... 15

4.1.3. Opunomoćeni slijepi potpis temeljen na ECDLP-u ................................................. 17

4.1.4. Analiza sigurnosti ..................................................................................................... 18

4.2. Opunomoćeni slijepi potpis temeljen na Mambo-Usuda-Okamoto opunomoćenom potpisu ........................................................................................................................................ 19

4.2.1. Nezaštićeni opunomoćeni slijepi potpis ................................................................... 19

4.2.2. Zaštićeni opunomoćeni slijepi potpis ....................................................................... 21

4.2.3. Analiza sigurnosti ..................................................................................................... 21

5. Pravedan slijepi potpis ........................................................................................................... 24

5.1. Koncept pravednog slijepog potpisa ................................................................................ 24

5.2. Pravedni slijepi potpis korištenjem metode ''podijeli i izaberi'' ....................................... 25

5.3. Pravedni slijepi potpis tipa I koji koristi zaboravljiv transfer ......................................... 27

5.3.1. Varijanta Fiat–Shamirove sheme potpisa ................................................................. 27

5.3.2. Pravedan jedan-od-dva zaboravljiv transfer ............................................................. 28

5.3.3. Pravedni Slijepi Fiat-Shamirov potpis ..................................................................... 30

5.4. Pravedni slijepi potpis sa registracijom ........................................................................... 31

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

6.1. Elektroničko glasovanje .................................................................................................. 35

6.2. Elektronički novac ........................................................................................................... 37

6.3. Sigurnosni aspekti slijepog potpisa ................................................................................. 39

6.4. Vrste napada na slijepe potpise ....................................................................................... 40

7. Praktični rad ........................................................................................................................... 41

7.1. Programsko ostvarenje protokola slijepog potpisa .......................................................... 41

Page 5: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

7.1.1. Grafičko sučelje i uporaba programa ....................................................................... 41

7.1.2. Formati zapisa datoteka ............................................................................................ 42

7.1.3. Opis programske izvedbe Chaumovog slijepog potpisa .......................................... 43

7.1.4. Primjer izvođenja ..................................................................................................... 45

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

8. Zaključak ................................................................................................................................ 50

DODATAK A – Izvorni tekst programa (najvažnije funkcije) ...................................................... 51

DODATAK B – Popis slika i tablica ............................................................................................. 54

Popis Literature .............................................................................................................................. 55

Page 6: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

1

1. Uvod

Sa razvojem elektroničkog poslovanja i trgovine, javila se potreba za novim oblikom plaćanja koji zadržava ista svojstva kao i papirnati novac, tj. primarno jamči anonimnost pri plaćanju te uvid odnosno kontrolu plaćanja od strane banke. Osnovne kripografske naputke, koji su poslužili kao temelj za razvoj elektroničkog novca, postavio je David Chaum 1982. godine. Njegov je prijedlog bio da se anonimnost osigura korištenjem elektroničkih novčanica koje banka koja ih izdaje potpisuje tzv. slijepim digitalnim potpisom.

Naime, elektronički novac je oblik elektroničkog plaćanja kojeg banka digitalno potpisuje svojim tajnim ključem. Ukoliko korisnik želi podići novac, banka mu dostavlja potpisanu elektroničku novčanicu koju on tada može potrošiti u željenoj trgovini, nakon čega trgovina novac stavlja na svoj račun u banci (Slika 1.1.). U slučaju kada bi banka znala koju je novčanicu izdala kojem korisniku, tj. kada bi mogla razlikovati novčanice �� i ��, ona bi mogla voditi evidenciju o svakoj novčanici i na taj način imati uvid u privatni život svakog svog korisnika. Dakle, banka bi mogla saznati kad, gdje i u koju svrhu je izdani novac potrošen (npr. za prijevoz, večeru, hotel, ljekove itd.).

Korištenjem protokola slijepog potpisa banka potpisuje novčanicu bez uvida u njen sadržaj. Korisniku je na taj način omogućeno da dobije valjanu novčanicu, a pri tome zadrži svoju privatnost pri trošenju iste. No, potpuno slijepi potpis je za banku suviše rizičan jer ne zna apsolutno ništa o sadržaju kojeg potpisuje, pa se u ovu svrhu najčeće koristi slijepi potpis sa djelomičnim uvidom, tj. slijepi potpis korištenjem metode ''podijeli i izaberi'' (engl. cut and

choose).

Slika 1.1 Kruženje novca

Osim u slučaju elektroničkog novca protokol slijepog potpisa koristi se također i u postupku anonimnog elektroničkog glasovanja, tj. općenito kad god je potrebno osigurati anonimnost jednog ili više korisnika.

Zadatak ovog diplomskog rada je bio opisati osnovne sheme slijepog potpisa. Kako bi bilo jednostavnije shvatiti matematičku podlogu slijepog potpisa, u drugom poglavlju su dane neke definicije, funkcije i opisi metoda koje se koriste u ovdje opisanim shemama slijepog potpisa. U

Page 7: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

2

trećem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomoćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih. Šesto poglavlje opisuje načine korištenja protokola slijepog potpisa i neke aspekte njegove sigurnosti. Konačno, u sedmom poglavlju je opisan praktični rad u sklopu kojeg je programski ostvaren sustav slijepog potpisivanja pomoću Chaumovog protokola te su izrađene interaktivne Web stranice koje grafički prikazuju neke vrste slijepog potpisa.

Page 8: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

3

2. Matematička podloga slijepog potpisa

Poput većine kriptografskih protokola slijepi potpis temelji svoju sigurnost i učinkovitost u određenim svojstvima brojeva koja se istražuju u teoriji brojeva. S obzirom da je tekst koji se potpisuje/kriptira/dekriptira u računalu 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 ključem kriptiranja preračunavaju u niz brojeva kriptiranog teksta. [1]

Kako bi lakše razumjeli protokole opisane u sljedećim 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 najveći zajednički djeljitelj brojeva � i � jednak 1, tj. brojevi � i � nemaju zajedničkih faktora ili ���, � � 1. [1] ���

Neka je �� � �0,1,2, … , � � 1� prsten u kojem su definirane operacije zbrajanja, oduzimanja i množenja po modulu �, tada je ��� podskup koji se sastoji od elemenata skupa �� koji su relativno prosti u odnosu na �:

Z�� � �� � Z� , ���, � � 1� (2.1)

Ekvivalentnost po modulu (kongruentnost)

Broj � je ekvivalentan broju � po modulu �, ako vrijedi jednakost:

� mod � � � mod � (2.2)

Kaže se da su � i � kongruentni po modulu � i piše se:

� ! � �mod � (2.3)

Kvadratni ostatak

Cijeli broj " se naziva kvadratni ostatak po modulu � (engl. quadratic residue), ako je kongruentan sa kvadratom, tj. ako postoji cijeli broj # takav da vrijedi:

#� ! " �mod � (2.4)

Inače se cijeli broj " naziva kvadratnim neostatatakom po modulu n (engl. quadratic non-

residue). [[2]

Page 9: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

4

Legendreov simbol

Legendreov simbol $%&' ili ��|) je definiran za cijele brojeve � i pozitivne proste brojeve ) na

sljedeći način:

��|) � * 0, �+, � ! 0 �-, p /1, �+, � 0 0 �-, p 1 ),23,41 # � +,456 781451: #� ! � �-, ) �1, �+, �5 ),23,41 3�+�7 # : (2.5)

Ako je ��|) � 1 onda je � kvadratni ostatak �mod ) , a ako je ��|) � �1, onda je � kvadratni neostatak. [3]

Jacobijev simbol

Za neki cijeli broj � i neki pozitivni neparni cijeli broj � Jacobijev simbol se definira kao umnožak Legendreovih simbola:

$��' � ; �)�<=> ; �)�<

=? @; �)A<=B (2.6)

gdje je n � )�=> )�=? @ )A=B. [4]

Jednosmjerne funkcije

Kao što i samo ime govori, jednosmjerne funkcije su funkcije kod kojih je relativno jednostavno izračunati D�# za zadani #, ali je vrlo teško (tj. nemoguće u nekom razumnom vremenu) izračunati # za zadani E tako da vrijedi D�# � E.

Jednosmjerna funkcija sa tajnim vratima (engl. trapdoor one-way function) je posebna vrsta jednosmjerne funkcije kod koje je moguće jednostavno izračunati # za zadani E uz pomoć neke tajne informacije. Dva primjera jednosmjernih funkcija sa tajnim vratima su umnožak prostih brojeva i diskretna eksponentizacija. [5]

Umnožak prostih brojeva

Neka je � � ) · " umnožak dva prosta broja. Da bi se izračunao inverz ove funkcije potrebno je faktorizirati �, tj. pronaći odgovarajuće proste brojeve ) i ". Međutim, faktoriziranje velikih brojeva je vrlo teško, a jedino rješenje je da se broj dijeli sa nizom brojeva 2, 3, … , √�. Ako broj � ima - bitova onda je √� I √2J pa je složenost faktoriziranja K�√2J . Diskretna eksponentizacija

Ako je ) prosti broj i 6, L � �&� , tada možemo pisati:

logOL � � (2.7)

ako � � P zadovoljava jednadžbu:

6� � h (2.8)

Page 10: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

5

Problem pronalaska takvog cijelog broja � za zadane 6, L � �&� (ako vrijedi: 6 R 1), naziva se problem diskretnog logaritma ili DLP (engl. Discrete Logatithm Problem). Ne postoji algoritam koji u razumnom vremenu može riješiti problem diskretnog logaritma. [6]

Sažetak poruke

Kriptografski sažetak (engl. hash) izrađuje se funkcijom za izradu sažetka. To je jednosmjerna funkcija koja iz poruke proizvoljne duljine izračunava sažetak stalne duljine. Najjednostavniji oblik funkcije sažetka je uzastopna uporaba SKT 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 množenje u K. Ako je � · 1 R 0 za svaki prirodan broj n, onda se kaže da je K polje karakteristike 0.

Eliptičke krivulje

Neka je V polje karakteristike različite od 2 i 3, te neka je D�# � #W / �# / � (gdje su �, � � V) kubni polinom bez višestrukih korijena. Eliptička krivulja X nad V je skup točaka �#, E � V Y V koje zadovoljavaju jednadžbu:

E� � #W / �# / � (2.9)

zajedno sa još jednim elementom koji se označava sa K i zove "točka beskonačnosti". [7]

Page 11: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

6

3. Slijepi potpis

U svakodnevnom životu, uloga potpisa je dobro poznata. Koristi se kao dokaz autorstva ili barem slaganja sa sadržajem potpisanog dokumenta, tj. potpis u sebi sadrži pretpostavku da je u tekstu uistinu izražena prava volja potpisnika i da je upravo on (a ne netko drugi) potpisnik danog dokumenta. Sa razvojem osobnih računala i interneta, usporedno je tekao i razvoj elektroničkog poslovanja pa se javila potreba za digitalnom inačicom vlastoručnog potpisa.

Digitalni potpis je ekvivalentan vlastoručnom na više načina, no iz razloga što se u slučaju digitalnog potpisa koriste razne kriptografske metode i protokoli, ispravno implementiran digitalni potpis je teže krivotvoriti nego vlastoručni. 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 pošiljatelj. Štoviše, ne samo da osigurava pouzdani dokaz identiteta potpisnika, digitalni potpis daje također i dokaz o izvornosti podataka.

Osnovna ideja digitalnih potpisa kao i potpisa općenito je da je onaj tko potpisuje dokument upoznat sa sadržajem istog. No ponekad uvid u sadržaj dokumenta nije poželjan 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 može 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 nešto napiše 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 identičnim potpisom i vraća ih Ani. Ana privatno miče papire iz omotnica. Oba papira sadrže indigo sliku Brankovog potpisa. Ana zatim stavlja te papire u slučajni poredak i predočava ih Branku sa pitanjem: Koji je papir bio u prvoj omotnici? Branko ne može sa sigurnošću odgovoriti. Iako zna da su oba papira bila u omotnicama koje je on potpisao, on ipak ne može 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, najčešće je ovakav pristup prerizičan za Branka pa se iz tog razloga češće koristi slijepi potpis sa djelomičnim uvidom u dokument koji se potpisuje, koji se ostvaruje pomoću 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 učini, postoji mogućnost da će dobiti neželjeni dio. Općenito u metodi ''podijeli i izaberi'' Ana šalje Branku � prikrivenih poruka koje je prethodno prekrila faktorom prikrivanja. Branko slučajno odabire podskup od � � 1 prikrivenih poruka i traži od Ane faktore prikrivanja za izabrane poruke. Nakon što primi faktore prikrivanja za izabrani skup, Branko provjerava odgovarajuće 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 među ispravne poruke umetnuti zlonamjernu, jer je šansa da Branko ne izabere baš tu jednu tek 1%.

Page 12: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

7

Ukoliko je kazna za prevaru dovoljno velika, pokušaj prevare može se pokazati Ani posve neisplativim. [9]

Slika 3.1 Protokol slijepog potpisa

Osnovna svojstva slijepog potpisa su dakle:

1) Svojstvo digitalnog potpisa – svatko može provjeriti da je potpis nastao kao rezultat slijepog potpisivanja kreiran korištenjem potpisnikovog tajnog ključa. Potpis ima svojstva autentičnosti, integriteta i neporecivosti.

2) Svojstvo slijepog potpisa – potpisnik ne može povezati prikrivenu poruku koju je dobio na potpis sa konačnom potpisanom porukom nastalom nakon funkcije otkrivanja. Protokol slijepog potpisa ima svojstvo nepovezivosti (engl. untraceability)

3) Zaštita potpisa (engl. conservation of signatures) – primatelj potpisa može dobiti najviše jednu potpisanu poruku iz potpisane prikrivene poruke koju dobiva od potpisnika. [10]

3.1. Chaumov slijepi potpis

Jedan od najvažnijih alata u razvoju elektroničkog novca od samog početka bio je upravo protokol slijepog potpisa. D. Chaum je predložio shemu slijepog potpisa koja se temelji na asimetričnom kriptpografskom algoritmu RSA. Parametri sustava su:

− Z: korisnik − [: potpisnik − �5, � : potpisnikov javni ključ (� � )" je produkt dva velika prosta broja, dok je 5 cijeli

broj relativno prost u odnosu na \�� � �) � 1 �" � 1 .

Page 13: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

8

− �, � : potpisnikov tajni ključ ( ] \�� i relativno prost u odnosu na \�� ) − T: faktor prikrivanja, T � ^1, � � 1_ − -: poruka koja se potpisuje

Chaumov protokol slijepog potpisa

1) Korisnik Z prikriva poruku - faktorom prikrivanja i šalje prikrivenu poruku 3, potpisniku na potpis.

3 ! - · T` �mod � (3.1)

2) Potpisnik [ potpisuje prikrivenu poruku i šalje korisniku potpisanu prikrivenu poruku 3a. 3b ! 3c �mod � (3.2)

3) Korisnik uklanja sa potpisane prikrivene poruke faktor prikrivanja i dobiva potpisanu originalnu poruku -a

-a ! 3b d Te��mod � (3.3)

4) Potpis je moguće verificirati tako da se potvrdi da vrijedi:

- ! -b`�mod � (3.4)

RSA ključevi zadovoljavaju jednadžbu #`c ! # �mod � pa zato vrijedi:

-a ! 3b d Te� ! 3c d Te� ! �- d T` c d Te� ! -cTTe� ! -c �mod �

(3.5)

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

Također, T je slučajno izabrana vrijednost, a preslikavanje T f T` �mod � je permutacija pa slijedi da je T` �mod � također slučajan. Iz ovog se može zaključiti da 3 ne odaje nikakve informacije o poruci -, tj. vrijedi svojstvo slijepog potpisa.

Pretpostavimo da postoji ℓ različitih poruka -h za 1 ] 4 ] i. Svaka od tih poruka je ulaz u funkciju prikrivanja koja koristi faktor prikrivanja Th , a rezultat je skup prikrivenih poruka 3h. Potpisnik potpisuje sve poruke iz tog skupa pri čemu je dobiven skup potpisanih prikrivenih poruka 3hb. Sad se na taj skup potpisanih prikrivenih poruka primjenjuje funkcija otkrivanja i dobiven je skup potpisanih poruka -hb.

Page 14: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

9

Potpisnik ima uvid u dva skupa: j3hk i j-hbk, ali ne zna koji element prvog skupa odgovara kojem elementu drugog. Ako potpisnik pretpostavi da 3l odgovara potpisanoj poruci -mb , on može pronaći jedinstveni prikrivajući faktor Tl koji je korišten pri dobivanju 3l rješavanjem jednadžbe:

3l d Tl̀ ! -mb ` �mod � (3.6)

Stoga, za svaki mogući način na koji se mogu povezati skupovi j3hk i j-hbk postoji jedinstven izbor faktora prikrivanja Th koji će to povezivanje učiniti istinitim. Pod pretpostavkom da su pri funkciji prikrivanja svi faktori prikrivanja izabrani uniformnom distribucijom može se zaključiti da su svi izbori za +h jednako vjerojatni pa su i sva moguća povezivanja skupa prikrivenih i skupa potpisanih poruka jednako vjerojatna.

Primjer 3.1

Zadani su parametri: ) � 29, " � 31. Modul kojeg potpisnik objavljuje je tada � � 29 d 31 � 899. Neka potpisnik izabire 5 � 17 i računa \�� � �29 � 1 · �31 � 1 � 840 iz čega slijedi � 593. Sljedeća tablica pokazuje vrijednosti parametara slijepog potpisa za različite vrijednosti ulazne poruke - i faktora prikrivanja T.

Tablica 3.1 Vrijednosti parametara slijepog potpisa za različite vrijednosti m i R

- T T` 3 3a Te� -a 628 255 886 826 19 691 543

254 685 84 659 698 21 274

40 393 210 309 340 716 710

623 111 107 135 601 81 135

724 308 461 235 69 108 260

254 548 520 826 19 251 274

628 94 870 659 698 373 543

Može se vidjeti da prvi i drugi red imaju iste vrijednosti 3 kao predzadnji i zadnji red, ali su odgovarajuće poruke - zamjenjene različitim vrijednostima T.

3.1.1. Analiza sigurnosti Chaumovog slijepog potpisa

Chaumov slijepi potpis je podložan RSA slijepom napadu kroz kojeg je moguće natjerati potpisnika da dekriptira neku poruku tako da ju slijepo potpiše. S obzirom da je proces potpisivanja jednak procesu kriptiranja tajnim ključem, napadač može potpisniku poslati prikrivenu verziju poruke kriptirane javnim ključem:

Page 15: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

10

-aa � -` d T` �mod � (3.7)

Nakon što potpisnik slijepo potpiše dobivenu poruku, primatelj potpisa ukljanja faktor prikrivanja i dobiva dektiptiranu potpisanu poruku, tj. potpisana verzija će imati čitljiv tekst:

3a � -aac �mod � (3.8)

� �- d T `c �mod �

� - d T

Pomoću funkcije otkrivanja lako se dobiva dekriptirana poruka -:

-a � 3b d Te��mod � (3.9)

� - d T d Te� �mod �

� -

Međutim, protokoli potpisivanja uglavnom ne potpisuju cijelu poruku - već samo njen sažetak pa se ovakav napad ne može direktno iskoristiti.

3.2. Schnorrov slijepi potpis

Slijepi potpis kojeg je predložio C. P. Schnorr prvotno se koristio u prvim oblicima elektroničkog novca koji nisu koristili metodu ''podijeli i izaberi''. [11] Parametri sustava su:

− Z: korisnik (pošiljatelj, primatelj poruke) − [: potpisnik − ), ": dva velika prosta broja, "|) � 1:. − 6: element iz �&� reda ". − #: potpisnikov tajni ključ, # � �&. − E: potpisnikov javni ključ, gdje je E � 6es �mod ) . − t�· : javna funkcija sažimanja (engl. hash). − -: poruka koja se slijepo potpisuje.

Schnorrov protokol slijepog potpisa

1) Potpisnik slučajno odabire broj + � �u te računa 8 kojeg šalje korisniku Z. 8 � 6A �mod ) (3.10)

2) Korisnik slučajno izabire brojeve w, x � �u i računa 8a (3.11), 5b (3.12) i 5 (3.13) te šalje 5 potpisniku.

8b � 86e=Eey �mod ) (3.11)

Page 16: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

11

5b � t�-, 8a �mod " (3.12)

5 � 5b / x �mod " (3.13)

3) Potpisnik računa funkciju potpisivanja (3.14) i šalje 2 korisniku.

2 � + / 5# �mod " (3.14)

4) Korisnik provjerava potpis tako da se uvjeri da vrijedi:

6zE` � 8 �-, ) (3.15)

5) Korisnik primjenjuje funkciju otkrivanja. �5b, 2a je valjani Schnorrov potpis za poruku -.

2b � 2 � w �-, " (3.16)

6) Potpis je moguće verificirati tako da se potvrdi da vrijedi:

5b � t$m, g{|y~|�mod ) ' (3.17)

Page 17: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

12

4. Opunomoćeni slijepi potpis

Koncept opunomoćenog (engl. proxy) digitalnog potpisa predložili su 1996. god. M. Mambo, K. Usuda i E. Okamoto. U toj shemi originalni potpisnik delegira svoje pravo potpisivanja nekom drugom (opunomoćenom) potpisniku nakon čega opunomoćeni potpisnik može potpisati bilo koju poruku u ime originalnog potpisnika. Osoba koja želi verificirati potpis razlikuje opunomoćeni potpis od originalnog potpisa. Verifikacija opunomoćenog potpisa se obavlja na gotovo isti način kao i verifikacija originalnog potpisa.

Kratak opis Mambo – Usuda – Okamoto sheme opunomoćenog potpisa

Parametri sustava [12]:

− 2 � �&e�� : tajni ključ originalnog potpisnika − 7 � 6z �mod ) : javni ključ originalnog potpisnika − ): veliki primarni broj − 6: generator skupa �&�

Koraci protokola:

1) Generiranje opunomoćenikovog (proxy) ključa: Originalni potpisnik slučajno odabire broj + � �&e�� i računa V (4.1) i � (4.2).

V � 6A �mod ) (4.1)

� � 2 / + V �-, �) � 1 (4.2)

2) Dostava proxy ključa: Orginalni potpisnik šalje proxy ključ ��, V opunomoćenom potpisniku putem sigurnog komunikacijskog kanala.

3) Verifikacija proxy ključa: Opunomoćeni potpisnik provjerava valjanost ključa pomoću jednadžbe (4.3). Ukoliko je proxy ključ valjan opunomoćeni potpisnik ga prihvaća.

6� � 7V� �mod ) (4.3)

4) Potpis opunomoćenog potpisnika: Ako opunomoćeni potpisnik potpisuje poruku -, u ime originalnog potpisnika, on koristi isti protokol potpisivanja kao i originalni potpisnik sa razlikom da umjesto tajnog ključa 2 koristi svoj proxy tajni ključ �.

5) Verifikacija opunomoćenog potpisa: Verifikacija opunomoćenog potpisa obavlja se na isti način kao i verifikacija potpisa originalnog potpisnika sa razlikom što se jednadžba (4.3) uzima kao javni ključ potpisnika.

Prva tri koraka protokola nazivaju se faza generiranja punomoći, četvrti korak je faza potpisivanja, a poslijednji faza verifikacije.

H. M. Sun i B. T. Hsieh su pokazali da opunomoćeni potpis kojeg su predložili Mambo, Usuda i Okamoto pati od problema delegacijskog transfera (engl. delegation transfer): opunomoćeni potpisnik može prenijeti dobivenu punomoć za potpisivanje dokumenata nekom drugom, bez

Page 18: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

13

prethodnog pristanka originalnog potpisnika. Na taj način neka treća osoba može generirati valjani opunomoćeni potpis u ime originalnog potpisnika.

Svojstva opunomoćenog slijepog potpisa

Opunomoćeni slijepi potpis uključuje tri entiteta: primatelja potpisa, originalnog potpisnika i opunomoćenog potpisnika. Svojstva opunomoćenog slijepog potpisa su sljedeća [13]:

1) Razlučivanje (engl. distinguishability): Moguće je razlikovati opunomoćeni potpis od normalnog (originalnog) potpisa.

2) Neporecivost (engl. nonrepudiation): Originalni potpisnik ne može potpisati poruku u ime opunomoćenog potpisnika (isto vrijedi za opunomoćenog potpisnika), tj. on ne može zanijekati da je upravo on taj koji je potpisao poruku.

3) Vjerodostojnost (engl. verifiability): Primatelj potpisa se može uvjeriti u vjerodostojnost opunomoćenog popisa na sličan način kao što je to slučaj kod originalnog potpisa.

4) Nekrivotvorivost (engl. unfogeability): Samo opunomoćeni potpisnik može generirati valjani opunomoćeni potpis (čak ni originalni potpisnik to ne može).

5) Nepovezivost (engl. unlinkability): Kad se potpis verificira, onaj koji je potpisao poruku ne može povezati potpis sa određenom instancom protokola potpisivanja.

Vrste opunomoćenog slijepog potpisa

Postoje dvije vrste opunomoćenog slijepog potpisa:

1) Nezaštićeni opunomoćeni slijepi potpis – i originalni i opunomoćeni potpisnik mogu generirati valjani opunomoćeni potpis.

2) Zaštićeni opunomoćeni slijepi potpis – samo opunomoćeni potpisnik može generirati valjani opunomoćeni potpis.

U nastavku je opisano nekoliko različith shema protokola opunomoćenog slijepog potpisa.

4.1. Opunomoćeni slijepi potpisi koji se temelje na DLP i ECDLP-u

Z. Tan, Z. Liu i C. Tang su predložili digitalne opunomoćene slijepe potpise koji se temelje na problemu rješavanja diskretnih logaritama (engl. Discrete Logarithm Problem, DLP) i eliptičkim krivuljama za problem diskretnih algoritama (engl. Elliptic Curve Discrete Logarithm Problem, ECDLP).

4.1.1. Opunomoćeni slijepi potpis temeljen na DLP-u

Parametri sustava su:

- Z: oginalni potpisnik - [: opunomoćeni potpisnik - T: primatelj potpisa (engl. reciver) - ),": dva velika prosta broja, "|) � 1:. - 6: element iz �&� reda ". - #�, #�: tajni ključevi originalnog i opunomoćenog potpisnika - E� ! 6s� �mod ) : javni ključ originalnog potpisnika

Page 19: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

14

- E� ! 6s� �mod ) : javni ključ opunomoćenogs potpisnika - t�· : javna funkcija sažimanja (engl. hash) - ||: ulančavanje znakovnih nizova

Faza generiranja punomoći:

1) Generiranje proxy ključa: Originalni potpisnik Z slučajno odabire +� � �u� pod uvjetom da

postoji inverz od 8� E��� �mod " , pri čemu je 8� ! 6A� �mod ) i računa 2�: 2� � #�8� / +� �mod " (4.4)

2) Dostava proxy ključa: Originalni potpisnik Z na siguran način šalje par �8�, 2� opunomoćenom potpisniku [.

3) Verifikacija proxy ključa: [ provjerava funkciju delegacije:

6z� � 8� E��� �mod ) (4.5)

Ukoliko potvrdi istinitost funkcije delegacije, [ računa svoj proxy tajni ključ 2b : 2b � 2� / #� �mod " (4.6)

Faza potpisivanja

1) [ slučajno izabire broj + � �u� i računa 3 (4.7), nakon čega šalje par �8�, 3 primatelju potpisa T.

3 ! 6A �mod ) (4.7)

2) T slučajno izabire dva broja �, � � �u� i računa:

8 ! 36�E�e%e��8�E����e% �mod ) (4.8)

5 ! t�8||- �mod " (4.9)

� ! �8�E����e`��E�e` �mod " (4.10)

5� ! 5 � � � � �mod " (4.11)

Ako je 5� � 0, T izabire nove parametre � i � te računa ispočetka sve dok 5� R 0, nakon čega se 5� šalje opunomoćenom potpisniku [.

3) Nakon što primi 5� [ računa 2bb (4.12) i šalje ga primatelju potpisa T.

2bb � 5�2b / + �mod " (4.12)

4) Kada primi 2bb T računa 2 (4.13), a opunomoćeni potpis je skup �-, �, 2, 5 2 � � / 2bb �mod " (4.13)

Page 20: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

15

Faza verifikacije

Primatelj opunomoćenog slijepog potpisa može verificirati potpis tako da se uvjeri da vrijedi:

5 � t�6zE�e`E�̀�||- �mod " (4.14)

4.1.2. Analiza sigurnosti

Shema opunomoćenog slijepog potpisa temeljenog na DLP-u, kojeg su predložili Z. Tan, Z. Liu i C. Tang nije otporna na napade krivotvorenja opunomoćenog potpisa od strane originalnog potpisnika ili od strane primatelja opunomoćenog potpisa. Također ne vrijedi jedan od glavnih uvjeta slijepih potpisa, a to je nepovezivost. U nastavku su dana objašnjenja ovih tvrdnji.

NAPAD I.

U namjeri da krivotvori opunomoćeni potpis, originalni potpisnik slučajno odabire broj 7 i računa:

8�b � E�e�6l �-, ) (4.15)

Tada je

2&�b � #�8�b / 7 (4.16)

valjani proxy ključ potpisivanja.

Dokaz:

Opunomoćeni slijepi potpis se može provjeriti pomoću jednakosti (4.14). Iz jednakosti (4.9) i (4.14) slijedi:

8 � 6zE�e`E�̀� �mod ) (4.17)

Koristeći jednadžbe (4.4) do (4.16) dobivamo:

g{ · y�e~ · y�~ · u �mod ) � g����~�{��| · y�e~ · y�~ · u �mod ) � t · g� · g~�����| · g~�� · y�e~ · y�~ · u �mod ) � t · g� · y���|~� · �r� by� ~� · y�e~ · y�~ · u �mod ) � t · g� · �y���|r�b�~� · y�~�e~ · y�~ · �y���|r� b�e~�� · y�e~ �mod ) � t · g� · �y���|r�b�e� · y�e�e� �mod ) � r

Page 21: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

16

NAPAD II

Primatelj potpisa nakon što dobije valjani opunomoćeni potpis za neku svoju poruku, može generirati valjani opunomoćeni potpis za neku drugu poruku -b. Pretpostavimo da je �-, �, 2, 5 valjani potpis i neka su �8 � 36�E�e%e��8�E��� e%, a, b� parametri korišteni pri dobivanju tog potpisa. Tada je �-b, �b, 2, 5�� valjani potpis za poruku -b pri čemu je:

5� � t�8�||-b (4.18)

� 5 � 5� (4.19)

�b � �E���8��e`�� · E�e`� · E�e  (4.20)

Ovo je moguće zato što vrijedi:

g{ · y�e~¡ · y�~¡ · ub �mod ) � 6A�� · 6�z��s� `�E�e`� · E�̀� · �b �mod ) � 3 · g� · 6z��`e%e� E�̀ �e`� · E�̀� · �b �mod ) � 3 · 6� · �E��� r¢�~e�e� · E�̀�e`� · E�̀� · �E��� r��e`�� · E�e`� · y�e£ �mod ) � 3 · 6� · �E��� r��e� · E�e%e� �mod ) � r

Analiza nepovezivosti

Ukoliko opunomoćeni potpisnik želi otkriti vezu između originalne poruke i prikrivenih informacija koje prima za vrijeme protokola potpisa sve što treba je za svaki protokol potpisa pohraniti 3�2 , 5a�2 i 2a�2 . Nakon što se otkrije potpis �-, 2, �, 5 , opunomoćeni potpisnik računa:

�b � 2 � 2b (4.21)

�b � 5 � �b � 5a (4.22)

8b � 6zE�e`E�̀� �mod ) (4.23)

za neki 2a � 2a�2 i 5a � 5a�2 . Nakon toga opunomoćeni potpisnik provjerava jednakost (4.24) za različite vrijednosti 3 � 3�2 . Ukoliko pronađe odgovarajući 3 za kojeg ta jednakost vrijedi, on zna da je trojka �3, 5b, 2a korištena pri generiranju opunomoćenog slijepog potpisa za poruku -. Dakle ova shema opunomoćenog slijepog potpisa ne zadovoljava uvjet nepovezivosti.

8b � 36�|E�e%|e�|�E��� 8��e%| �mod ) (4.24)

Page 22: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

17

4.1.3. Opunomoćeni slijepi potpis temeljen na ECDLP-u

Eliptička krivulja X je skup točaka �#, E sa koordinatama # i E koje leže u polju ¤u i koje zadovoljavaju kubičnu jednadžbu:

E� � #W / �# / � (4.25)

pri čemu vrijedi 4�W / 27�� R 0. Entiteti koji su sudjeluju u protokolu su isti kao i u prethodnom slučaju, tj. originalni potpisnik Z, opunomoćeni potpisnik [ i primatelj potpisa T. Neka je ¥ točka čije su koordinate veliki prosti brojevi rada �, gdje � generira cijelu aditivnu grupu X. Drugim riječima polje ¤u je velikog karaktera. Z i [ svaki imaju svoje odgovarajuće parove ključeva �#�, ¥� i �#� , ¥� , gdje su #� i #� tajni, a ¥� i ¥� javni ključevi pri čemu vrijedi: ¥� � #�¥, ¥� � #�¥. # komponenta točke ¦ eliptičke krivulje X je označena sa #�¦ . Koraci protokola slijepog potpisa su dani u nastavku. Malim slovom su označeni elementi iz ¤u, a velikim točke krivulje X.

Faza generiranja punomoći

1) Generiranje i dostava proxy ključa: Originalni potpisnik slučajno izabire +�, 1 ] +� ] �. i računa T� (4.26), 8� (4.27) i 2� (4.28) koje zatim šalje opunomoćenom potpisniku [.

T� � +�¥ (4.26)

8� � #�T� (4.27)

2� � #�8� / +� �mod � (4.28)

2) Verifikaacija proxy ključa: Opunomoćeni potpisnik [ provjerava jednakost:

T� � 2� ¥ � 8� ¥� (4.29)

Ukoliko prethodna jednakost vrijedi, [ računa svoj tajni proxy ključ 2a: 2b � 2� / #� �mod � (4.30)

Faza potpisivanja

1) Opunomoćeni potpisnik [ slučajno odabire +, gdje je 1 ] + ] � i računa § (4.31) nakon čega šalje primatelju potpisa T� (4.26), 8� (4.28) i § (4.31).

§ � +¥ (4.31)

2) Primatelj potpisa T slučajno izabire brojeve � i �, gdje je 1 ] �, � ] � i računa:

T � § / �¥ / ��� � � ¥� / ��� T� / ���8� ¥� (4.32)

8 � #�T (4.33)

Page 23: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

18

5 � t�8||- �mod � (4.34)

5� � 5 � � � � (4.35)

¨ � ��5 / � T / ��5 / � 8�¥� � 5¥� (4.36)

3) Primatelj potpisa šalje 5� opunomoćenom potpisniku. 4) Nakon što primi 5� opunomoćeni potpisnik računa 2aa i šalje ga primatelju potpisa.

2bb � 5�2b / + �mod � (4.37)

5) Primatelj potpisa na kraju računa 2. �-, 2, 5, ¨ je opunomoćeni potpis.

2 � 2bb / � �mod � (4.38)

Faza verifikacije

Potpis �-, 2, 5, ¨ moguće je verificirati pomoću sljedeće jednadžbe:

5 � t�#�2¥ � 5¥� / 5¥� / ¨ ||- (4.39)

4.1.4. Analiza sigurnosti

Ukoliko želi krivotvoriti opunomoćeni slijepi potpis, originalni potpisnik to može tako da izabere točku

T�b � �¥� / 7¥ (4.40)

gdje je 7 slučajno izabran broj i računa:

8�b � #�T�b (4.41)

Sada on može generirati valjani proxy ključ potpisivanja na sljedeći način:

2&�b � #�8�b / 7 �mod " (4.42)

Generirani ključ je valjan jer je proxy javni ključ jednak: 8�b¥� / T�b / ¥� � 8�b©� / 7¥ što je upravo odgovarajući javni ključ za 2&�b .

Pretpostavimo da je �-, ¨, 2, 5 valjani potpis i da su �8 � #�T , �, � parametri koji su korišteni pri dobivanju tog potpisa. U tom slučaju je �-b, ¨b, 2, 5�� valjani potpis za neku poruku -a, ako su dani parametri:

� 5 � 5� (4.43)

¨b � ��5 / � T / ��5 / � 8�¥� � 5�¥� � zP� (4.44)

Page 24: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

19

e­ � t�r||mb (4.45)

Dokaz je vrlo sličan onom iz DLP verzije protokola pa nije naveden.

Slično prethodnom protokolu, opunomoćeni potpisnik može poduzeti iste korake kao prije da bi povezao otkrivenu poruku i prikrivene informacije korištene u potpisivanju te poruke.

4.2. Opunomoćeni slijepi potpis temeljen na Mambo-Usuda-Okamoto

opunomoćenom potpisu

S. Lal i A. K. Awasthi su predložili sheme zaštićenog i nezaštićenog opunomoćenog slijepog potpisa koje za temelj imaju Mambo–Usuda–Okamoto shemu opunomoćenog potpisa. [14] Parametri sustava su:

− Z: originalni potpisnik − [: opunomoćeni potpisnik − ®: primatelj potpisa − ): veliki primarni broj − ": veliki primarni faktor od �) � 1 − 6: element iz �&� reda " − #�: tajni ključ originalnog potpisnika Z − E�: javni ključ originalnog potpisnika Z, gdje je E� � 6s� �mod ) − t�· : sigurna jednosmjerna funkcija sažimanja (engl. hash)

4.2.1. Nezaštićeni opunomoćeni slijepi potpis

U slučaju nezaštićenog opunomoćenog slijepog potpisa, i originalni i opunomoćeni potpisnik mogu generirati valjani opunomoćeni slijepi potpis (Slika 4.1).

Faza generiranja punomoći

1) Generiranje proxy ključa: Originalni potpisnik Z slučajno odabire broj + � �u� , + R 1 i računa:

8 � 6A �mod ) (4.46)

2 � #� / + 8 �mod " (4.47)

E& � 6z �mod ) (4.48)

2) Dostava proxy ključa: Originalni potpisnik Z objavljuje E& i na siguran način šalje �2, 8 opunomoćenom potpisniku [.

3) Verifikacija proxy ključa: Nakon što primi tajni ključ �2, 8 opunomoćeni potpisnik [ provjerava valjanost tajnog ključa kroz sljedeću kongruenciju:

E& ! 6z ! E�8� �mod ) (4.49)

Page 25: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

20

Ako �2, 8 zadovoljava kongruenciju (4.49) opunomoćeni potpisnik prihvaća proxy ključ, a u suprotnom ga odbacuje. Ukoliko se pokaže da proxy ključ nije valjan opunomoćeni potpisnik može zatražiti novi ključ ili jednostavno zaustaviti protokol.

Slika 4.1 Nezaštićeni opunomoćeni slijepi potpis

Faza potpisivanja

1) Opunomoćeni potpisnik [ slučajno izabire broj V � �u�, V R 1 i računa T kojeg zatim šalje primatelju potpisa ®.

T � 6� �mod ) (4.50)

2) Primatelj potpisa ® slučajno odabire brojeve w, x � �&� i računa:

8b � T 6e=E&ey �mod ) (4.51)

Ukoliko je 8b � 0, izabire novi par w, x, a ukoliko je 8a R 0 računa 5 (4.53) i šalje ga opunomoćenom potpisniku [.

5b � t�8a¯- �mod " (4.52)

5 � 5b / x �mod " (4.53)

Page 26: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

21

3) Nakon što primi 5, opunomoćeni potpisnik [ računa 2a (4.54) i šalje ga primatelju potpisa ®.

2b � V � 2 5 �mod " (4.54)

4) Primatelj opunomoćenog potpisa računa °& (4.55). Skup �-, °& , 5a� je opunomoćeni slijepi potpis.

°& � 2b � w �mod " (4.55)

Faza verifikacije

Primatelj opunomoćenog potpisa (ili bilo tko drugi) računa:

5bb � t�6±²E&̀ |�mod ) ³-� �mod " (4.56)

Ukoliko je 5bb � 5a tada je �-, °&, 5a� valjani slijepi potpis

4.2.2. Zaštićeni opunomoćeni slijepi potpis

U slučaju zaštićenog opunomoćenog slijepog potpisnika samo opunomoćeni potpisnik može generirati valjani slijepi potpis. Razlika u odnosu na prethodni protokol je samo u koracima faze generiranja punomoći dok su faza potpisivanja i faza verifikacije iste kao i u prethodnom slučaju (Slika 4.2).

Faza generiranja punomoći

1) Generiranje proxy ključa: Originalni potpisnik Z slučajno odabire broj + � �u� , + R 1 i računa:

8 � 6A �mod ) (4.57)

� � #� / + 8 �mod " (4.58)

E& � 6� E� �mod ) (4.59)

2) Dostava proxy ključa: Originalni potpisnik Z na siguran način šalje ��, 8 opunomoćenom potpisniku [ i objavljuje E�.

3) Verifikacija proxy ključa: Nakon što provjeri ispravnost para ��, 8 , opunomoćeni potpisnik [ računa proxy ključ na sljedeći način:

2 � � / #� �mod " (4.60)

4.2.3. Analiza sigurnosti

Nedostatci ove sheme su prvenstveno nedostatak nepovezivosti kao jednog od osnovnih svojstava opunomoćenog slijepog potpisa te objavljivanja javnog ključa. U nastavku je opisano kako se ti nedostaci mogu zlorabiti.

Page 27: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

22

Analiza nepovezanosti

Ukoliko želi povezati otkrivenu poruku sa prikrivenim informacijama koje dobiva za vrijeme protokola slijepog potpisa opunomoćeni potpisnik pohranjuje prikrivene informacije u sljedećem obliku: 3�2 , 5�2 i 2b�2 . Nakon što je potpis �-, 2, 5a otkriven, opunomoćeni potpisnik računa:

�b � 2b � °& (4.61)

�b � 5 � 5a (4.62)

8b � 36e%|E&e�| �mod ) (4.63)

za neki 2 � 2b�2 i 5 � 5�2 , nakon čega provjerava jednadžbu:

8b � 36e%|E&e�| �mod ) (4.64)

za neki 3 � 3�2 . Ako pronađe 3 takav da vrijedi prethodna jednadžba opunomoćeni potpisnik zna da su �3, 5, 2a podaci koji su korišteni u protokolu potpisivanja poruke -. Dakle, ova shema opunomoćenog slijepog potpisa ne posjeduje svojstvo nepovezivosti.

Slika 4.2 Zaštićeni opunomoćeni slijepi potpis

Objavljivanje proxy javnog ključa

Općenito, poželjno je da se pri verifikaciji opunomoćenog slijepog potpisa, proxy javni ključ računa (a ne jednostavno dobije od originalnog potpisnika). To je zato što se računanjem javnog ključa potvrđuje veza između originalnog potpisnika i opunomoćenog potpisnika. U ovoj shemi

Page 28: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

23

objavljivanje javnog ključa omogućuje nekom npr. suparniku koji dobije javni ključ da isti ponovo objavi. U tom slučaju neka treća strana može tvrditi da je upravo ona/on originalni potpisnik. Dakle objavljivanje proxy ključa pati od nedostatka da se originalni potpisnik ne može sa sigurnošću autentificirati.

Page 29: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

24

5. Pravedan slijepi potpis

Protokol slijepog potpisa je kriptografski primitiv koji uključuje dva entiteta: pošiljatelja, koji zahtjeva potpis za neku svoju poruku i potpisnika, koji tu istu poruku potpisuje bez ikakvog znanja o njenom sadražaju. S obzirom da protokol slijepog potpisa pruža potpunu nepovezivost (engl. unlinkability) između potpisane poruke i potpisnikovog gledišta protokola on se koristi kada je potrebno osigurati anonimnost jednog ili više sudionika (npr. anonimno elektroničko glasovanje ili sigurni elektronički sustavi plaćanja). Tako npr. u anonimnim elektroničkim sustavima plaćanja, nije moguće povezati podizanje i naknadnu uplatu novca koje je izvršio isti pojedinac.

Upravo tu nepovezivost, koju omogućuje slijepi potpis, mogu iskoristiti razni kriminalci kako bi izvršili "pranje novca" ili npr. na siguran način dobili otkupninu. Zbog toga se javlja potreba za mogućnošću "micanja anonimnosti", ako je to potrebno u legalne svrhe. M. Stadler, J. M. Piveteau i J. Canenish [15] su predložili novu shemu slijepog potpisa nazvanu pravedni slijepi potpis (engl. fair blind signature). Njhov prijedlog slijepog potpisa ima dodatno svojstvo koje omogućuje, uz pomoć entiteta kojem se može vjerovati, povezivanje potpisane poruke sa potpisnikovim gledištem protokola.

5.1. Koncept pravednog slijepog potpisa

Model pravednog slijepog potpisa se sastoji od pošiljatelja, potpisnika i suca (engl. judge) koji predstavlja entitet kojem se vjeruje (Slika 5.1). Pri izvođenju razlikujemo dva protokola:

1) Protokol potpisivanja (engl. signing protocol)

- uključuje pošiljatelja i potpisnika - izvršavanjem ovog protokola pošiljatelj dobiva valjan potpis za poruku po njegovom

izboru, pri čemu potpisnik ne može povezati potpisanu poruku sa potpisnikovim gledištem protokola.

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

- uključuje potpisnika i suca - potpisnik dobiva informaciju od suca koja mu omogućuje povezivanje potpisane poruke

sa odgovarajućim gledišem protokola potpisivanja.

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 gledišta protokola, sudac dostavlja informaciju koja omogućuje potpisniku (ili bilokom drugom) da uspješno prepozna odgovarajuću potpisanu poruku (odgovarajući poruka-potpis par), tj. sudac može ekstraktirati poruku.

− Tip II: Uz pomoć dane potpisane poruke (para poruka-potpis), sudac dostavlja informaciju koja omogućuje potpisniku da uspješno prepozna pošiljatelja te poruke ili da pronađe odgovarajuće gledište protokola potpisivanja.

Page 30: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

25

Dakle, u sustavima plaćanja koji koriste pravedni slijepi potpis tipa I moguće je odrediti konačnu destinaciju sumnjivog podignutog novca, dok je kod onih koji koriste pravedni slijepi potpis tipa II moguće odrediti podrijetlo sumnjivog novca.

Slika 5.1 Model sheme pravednog slijepog potpisa

U nastavku je opisano nekoliko različitih shema pravednog slijepog potpisa tipa I i tipa II.

5.2. Pravedni slijepi potpis korištenjem 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 sljedeći:

- ��, 5 , potpisnikov javni ključ (� � )" je produkt dva velika prosta broja, dok je 5 cijeli broj relativno prost u odnosu na \�� � �) � 1 �" � 1 .

- X´�· , funkcija kriptiranja sučevog kriptosustava sa javnim ključem - t jednosmjerna funkcija sažimanja (engl. hash) - +, sugurnosni parametar (npr. + � 20).

Na početku pošiljatelj i potpisnik razmjenjuju identifikator sjednice (engl. Session Identifier, µ¶). Svaka istanca protokola potpisivanja ima različiti µ¶. Nakon toga se izvršava sljedeći protokol (Slika 5.2), gdje || označava ulančavanje znakovnih nizova:

1) Za 1 � 1,2, … , 2+ pošiljatelj slučajno izabire 8· � �� i znakovne nizove w· i x· te računa �· (5.1), 7· (5.2) i -· (5.3), nakon čega potpisniku šalje -·.

Page 31: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

26

�· � X́ �-||w· (5.1)

7· � X́ �µ¶||x· (5.2)

-· � 8·̀ t��·||7· �mod � (5.3)

2) Potpisnik slučajno odabire podskup ° ¸ �1,… , 2+�, veličine + i šalje taj podskup pošiljatelju.

3) Pošiljatelj za svaki 1 � ° šalje potpisniku trojku �8· , �·, x· . 4) Potpisnik za svaki 1 � ° provjerava da li vrijedi jednakost (5.4). Ukoliko sve jednakosti

vrijede, potpisnik računa � (5.5) i šalje ga pošiljatelju.

-· � 8·̀ t$�·||X́ �µ¶||x· ' �mod � (5.4)

� � �∏ -··º± � W⁄ �mod � (5.5)

5) Pošiljatelj nakon što primi � računa 2 (5.6). Rezultirajući potpis se sastoji od izračunatog 2 i skupa parova § � ��w·, 7· |1 º °�. 2 � �∏ �¼¼º½ (5.6)

Potpis se može provjeriti tako da se potvrdi jednakost (5.7):

2` � ∏ t�X́ �-||w ||7� �mod � �=,l �¾ (5.7)

Navedeni protokol pravednog slijepog potpisa je istovremeno tipa I (ako poznaje vrijednosti �·, 1 � °, sudac može otkriti poruku -) i tipa II (ako poznaje potpis �2, § , sudac može lako izračunati identifikator sjednice µ¶ tako da dekriptira 7-ove u skupu T). Također, moguće je protokol modificirati kako bi bio ili tipa I ili tipa II:

1) Tip I: svaki 7· treba izračunati kao 7· � t �µ¶||x· . S obzirom da sudac ne može otkriti identifikator sjednice µ¶, ova shema je tipa I.

2) Tip II: svaki �· treba izračunati kao �· � t�-||w· . S obzirom da sudac više ne može otkriti poruku -, ova shema je tipa II.

S obzirom da svaki 7· ovisi o identifikatoru sjednice, nije moguće generirati potpis bez izvršavanja protokola potpisivanja, tj. nije moguće koristiti informacije dobivene prilikom prve sjednice da bi se dobio valjani potpis u nekoj drugoj sjednici. Nadalje, vjerojatnost da pošiljatelj može 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 količina podataka, a i rezultirajući potpis je dugačak.

Page 32: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

27

Slika 5.2 Pravedni slijepi potpis korištenjem 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 Fiat–Shamirove sheme potpisa te na konceptu jedan-od-dva zaboravljivog transfera (engl. one-of-two oblivious

transfer). Iako je protokol potpisivanja i dalje neefikasan, rezultirajući potpis je vrlo kratak.

5.3.1. Varijanta Fiat–Shamirove sheme potpisa

Za razliku od originalne Fiat–Shamirove sheme potpisa, ova shema koristi treći 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 E slučajna vrijednost iz ��� . Tada je par ��, E javni ključ potpisnika. Nadalje, neka t označava jednosmjernu funkciju sažimanja i neka je + sigurnosni parametar (npr. + � 80). Definirajmo nizove E· (5.8) i #· (5.9):

E· � t�E / 1 �mod � , 1 � 1…+ (5.8)

#· � E·� W⁄ �mod � , 1 � 1…+ (5.9)

Page 33: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

28

Jedino potpisnik, znajući faktorizaciju od �, može izračunati niz #·. Da bi potpisao poruku potpisnik slučajno izabire 8 � ��� , i računa redom 3 (5.10), � (5.11) i 2 (5.12), pri čemu �· označava 1-ti bit od �.

3 � 8W �mod � (5.10)

� � t�3||- (5.11)

2 � 8 ∏ #·¿¼A·À� �mod � (5.12)

�2, 3 je potpis poruke - i može se verificirati tako da se provjeri da vrijedi jednakost:

2W � 3 ∏ E·¿¼A·À� �mod � (5.13)

5.3.2. Pravedan jedan-od-dva zaboravljiv transfer

Jedan-od-dva zaboravljiv transfer (engl. one-out-of-two oblivious transfer, K§��) je protokol između pošiljatelja i primatelja koji omogućuje primatelju da izabere jednu od dvije poruke, koje mu šalje pošiljatelj, na način da primatelj primi samo izabranu poruku, a pošiljatelj ne zna koja je to poruka. Neka su sa -Á i -� označene dvije poruke koje pošiljatelj šalje primatelju i neka je � selekcijski bit koji označava odabir primatelja. Izvođenja K§�� protokola je tada prikazano na Slika 5.3.

Slika 5.3 Izvođenje K§�� protokola

Ukoliko se doda svojstvo da sudac, ali ne i pošiljatelj, može odrediti selekcijski bit � tada se takav protokol naziva pravedni-K§�� (engl. fair-OT��) (Slika 5.4).

Slika 5.4 Izvođenje pravednog K§�� protokola

Pravedni jedan-od-dva zaboravljiv transfer moguće je realizirati na sljedeći način: Neka je �´ � )´"´ produkt dva velika prosta broja takav da je faktorizacija od �´ poznata samo sucu. Neka je nadalje 6 � ¦T�Ä velikg reda i neka je L kvadratni neostatak gdje je L � ��Ä� sa

Page 34: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

29

pozitivnim Jacobijevim simbolom. Funkcije "5��8" i "5�8" su jednostavne funkcije kriptiranja i dekriptiranja (npr. DES) koje se koriste da bi se prenjele pošiljateljeve poruke (Slika 5.5):

Slika 5.5 Realizacija pravednog jedan-od-dva zaboravljivog transfera

1) Primatelj na slučajan način izabire 8 � ��Ä nakon čega računa 3 (5.14) kojeg zatim šalje pošiljatelju.

3 � 6� L¿ �mod �´� (5.14)

2) Pošiljetelj prima 3, nakon čega slučajno odabire w � ��Ä pa računa Z (5.15), +Á (5.16), +�

(5.17), EÁ (5.18) i E� (5.19).

Z � 6= �mod �´� (5.15)

+Á � 3= �mod �´� (5.16)

+� � �3Le� = �mod �´� (5.17)

EÁ � 5��8�-Á, +Á (5.18)

E� � 5��8�-�, +� (5.19)

Page 35: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

30

3) Pošiljatelj primatelju šalje trojku �Z, EÁ, E� . 4) Primatelj računa +¿ (5.20) i -¿ (5.21)

+¿ � Z� �-, �´� (5.20)

-¿ � 5�8�E¿ , +¿ (5.21)

Zbog pretpostavke o kvadratnom neostatku, pošiljatelj ne može saznati da li je primatelj dobio -Á ili -�. Ali sudac može lako izračunati selekcijski bit � tako da provjeri da li je 3 kvadratni neostatak u ��Ä� ili nije.

5.3.3. Pravedni Slijepi Fiat-Shamirov potpis

Uz pomoć pravednog K§�� varijanta Fiat–Shamirove sheme potpisa može se transformirati u slijepi potpis tipa I (Slika 5.6):

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

1) Potpisnik slučajno izabire 8�, … , 8A � ��� nakon čega računa 3 (5.22) kojeg šalje pošiljatelju.

3 � ∏ 8·WA·À� �mod � (5.22)

2) Nakon što primi 3 pošiljatelj slučajno izabire w � ��� i računa 3̃ (5.23) i � (5.24).

3̃ � 3 wW �mod � (5.23)

Page 36: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

31

� � t�3̃||- (5.24)

3) Za 1 � 1,… , + izvršava se protokol pravednog zaboravljivog transfera, gdje �· predstavlja 1-ti bit od �. 4) Nakon što je završen protokol pravednog zaboravljivog transfera pošiljatelj je za svaki

poslani �· primio 2· � -¿¼. Pošiljatelj računa 2̃ (5.25) pri čemu je �2̃, 3̃ potpis poruke -.

2̃ � w∏ 2·A·À� �mod � (5.25)

Par �2̃, 3̃ je valjani potpis poruke m (�· je 1-ti bit od t�3̃||- ) ako vrijedi jednakost:

2̃W � 3̃ · ∏ E·¿¼ �mod � A·À� (5.26)

Analiza sljepoće (engl. blindness)

Ukoliko se pretpostavi da potpisnik ne može odrediti selekcijski bit �· (zbog pravednog K§��), tada je 3 jedina vrijednost koju potpisnik može koristiti da bi prepoznao potpis kasnije. Ali za svaki valjani potpis �2̂, 3̂ poruke -È postoji točno jedan w za kojeg vrijedi 3̂ � 3 wW �mod � i zbog toga 2̂ � w ∏ 8· #·¿̂¼A·À� �mod � , gdje je �· 1-ti bit od t�3̂||-È . Stoga je rezultirajući potpis neovisan o protokolu potpisivanja i shema potpisivanja je potpuno slijepa (sa potpisnikovog gledišta).

Analiza pravednosti (engl. fairness)

Ako potpisnik pošalje svoje gledište protokola sucu, moguće je odrediti selekcijski bit �· pa je onda moguće odrediti i �.

5.4. Pravedni slijepi potpis sa registracijom

Pravedni slijepi potpis sa registracijom je istovremeno tipa I i tipa II. Osnovna ideja je da pošiljatelj kod suca ima registrirana dva pseudonima. Jedan od pseudonima se koristi za vrijeme protokola potpisivanja, dok je drugi dio potpisa. Na taj način sudac, koji zna dva odgovarajuća pseudonima, može povezati potpisnikovo gledište protokola potpisivanja sa odgovarajućim potpisom.

Ukoliko pošiljatelj koristi isti pseudonim dva puta, tada potpisnik može povezati svoja dva odgovarajuća gledišta protokola potpisivanja. Također, bilotko može lako povezati dva rezultirajuća potpisa. Ako postoji potreba za nepovezivošću različitih poruka, tada se pošiljatelj mora iznova registrirati kod suca za svaku poruku koja se potpisuje. Zbog toga ova shema nije prikladna ukoliko se zahtjeva savršena anonimnost, tj. ako se različite potpisane poruke ne smiju moći povezati.

Parametri ovog sustava su:

- Grupa É čiji je red prosti broj " i za čije je članove teško izračunati diskretne logoritme - javno poznat element 6 � É. - E � 6s, je potpisnikov javni ključ (gdje je # njegov tajni ključ).

Page 37: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

32

- °16�· , sučeva shema potpisivanja, tako da svatko može verificirati poruke koje potpiše sudac.

- t, sigurna jednosmjerna funkcija sažimanja (engl. hash).

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

Slika 5.7. Protokol registracije

Protokol registracije

1) Pošiljatelj šalje sucu zahtjev za registraciju. 2) Sudac na slučajan način izabire Z � É i w � �u nakon čega računa ZÊ � Z= i pohranjuje par �Z, ZÊ�. 3) Sudac šalje pošiljatelju: �Z, °16�Z||0 �.

4) Sudac šalje pošiljatelju: $w, Sig�ZÊ||1�'

5) Pošiljatelj provjerava da li vrijedi jednakost: ZÊ � Z=

Znak || označava ulančavanje, a bit koji se dodaje u potpisu suca na kraj pseudonimima Z i ZÊ spriječavaju da nepošteni pošiljatelj može razmijeniti (tj. permutirati) ta dva pseudonima.

Protokol generiranja potpisa

1) Pošiljatelj šalje potpisniku par $Z, °16´�Z||0 '

2) Potpisnik verificira sučev potpis °16´�Z||0 i šalje pošiljatelju � Zs , gdje je # njegov tajni ključ.

3) Pošiljatelj nakon što primi računa ̃ � = 4) Potpisnik slučajno izabire 8 � �u i šalje pošiljatelju 3� � 6� i 3� � Z� 5) Pošiljatelj slučajno odabire x, Í � �u i računa 3̃� (5.27), 3̃� (5.28) i �̃ (5.29) kako bi mogao

izračunati � (5.30) kojeg zatim šalje potpisniku.

3̃� � 3�y 6Î (5.27)

Page 38: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

33

3̃� � 3�=y ZÊÎ (5.28)

�̃ � t�-||ZÊ||̃||3̃�||3̃�� �mod " (5.29)

� � ¿̃y �ÏÐÑ � (5.30)

6) Potpisnik računa 2 (5.31) i šalje ga pošiljatelju.

2 � 8 / �# �-, " (5.31)

7) Nakon što primi 2 pošiljatelj računa 2̃ (5.32). Rezultirajući potpis je 6-torka: �ZÊ, Sig´�ZÊ||1�, ̃, 3̃�, 3̃�, 2̃�.

2̃ � x2 / Í �mod " (5.32)

Potpis se može verificirati tako da se prvo verificira potpis suca Sig´�ZÊ||1� nakon čega se provjerava istinitost jednakosti (5.33) i (5.34):

6z̃ � 3̃� E¿̃ (5.33)

ZÊz̃ � 3̃�̃¿̃ (5.34)

Slika 5.8 Protokol generiranja potpisa

Page 39: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

34

Svojstvo sljepoće se može lako potvrditi: za svaki potpis �ZÊ, Sig´�ZÊ||1�, ̃, 3̃�, 3̃�, 2̃� i za svako potpisnikovo gledište protokola potpisivanja postoje w, x i Í takvi da potpisnikovo gledište protokola vodi do tog potpisa.

Kada se primjeni na zaštitu privatnosti sustava za plaćanje, pravedni slijepi potpis omogućuje zadovoljavanje zahtjeva svih sudionika: na jednoj strani klijenata, koji žele što je moguće bolju zaštitu privatnosti, i s druge strane autoriteta (banke ili suca u predhodnim modelima), koji žele spriječiti kriminalce da zlorabe tu zaštitu privatniosti. U uobičajnom slučaju (koji podrazumijeva da sudac nije uključen u transakciju), anonimnost uplate mušterije je zajamčena. Međutim, u određenim situacijama (npr. zbog legalnih razloga) moguće je ukloniti anonimnost uz pomoć suca.

Page 40: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

35

6. Uporaba slijepog potpisa

Protokol slijepog potpisa koristi se u aplikacijama u kojima je potrebno osigurati anonimnost jednog ili više korisnika. Najčešći primjeri korištenja slijepog potpisa su elektronički novac i anonimni sustavi elektroničkog glasovanja.

6.1. Elektroničko glasovanje

Izbori su jedan od najvažnijih instrumenata demokracije koji omogućuju pojedincu da izrazi svoje stavove. Sa sve većim porastom broja računalnih mreža spojenih na Internet elektroničko glasovanje se može smatrati dobrom alternativom klasičnim izborima. Cilj elektroničkih sustava glasovanja je postići bar jednaku razinu sigurnosti kao što je to slučaj kod klasičnog glasovanja.

Kako bi se u što većoj mjeri pokušala eliminirati prevara u sustavima elektroničkog glasovanja, oni moraju zadovoljavati sljedeće uvjete sigurnosti:

1) Tajnost (engl. confidentiality)

Glasački listić birača mora ostati povjerljiv. Također, mora se osigurati da birač ne može naknadno dobiti potvrdu o tome za koga je glasovao. Ovo je važno kako bi se izbjegla mogućnost kupovanja glasova ili ucjene.

2) Cjelovitost (engl. integrity)

Kod elektroničkog glasovanja ne postoje fizički glasački listići. S obzirom da je digitalne glasačke listiće je relativno jednostavno krivotvoriti, sustav elektroničkog glasovanja mora osigurati da se pri konačnom prebrojavanju glasova broje samo valjani glasovi te da nitko ne može promjeniti tuđi glas bez da bude otkriven. Konačni objavljeni rezultati moraju pokazati kako su birači stvarno glasovali.

3) Autentifikacija (engl. authentication)

Za vrijeme glasovanja, sustav elektroničkog glasovanja mora osigurati način provjere kojim se utvrđuje 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 pomoću koje se može autentificirati za vrijeme glasovanja. Također, mora se osigurati i svojstvo da jedna osoba može glasovati samo jednom, tj. da se njen/njegov glas broji samo jednom.

4) Potvrda (engl. verifiability)

Potvrda može biti pojedinačna ili univerzalna. Pojedinačna potvrda osigurava biraču mogućnost potvrde da je njegov glas primljen i uračunat u konačnom zbrajanju glasova. Univerzalna potvrda osigurava da svatko može (nakon što završe izbori) provjeriti da nije bilo nepravilnosti i da su svi glasovi dobro pobrojani. U sustavima elektroničkog glasovanja i rezultati i glasački listići se daju na javni uvid.

Najčešće se tajnost osigurava korištenjem slijepog potpisa, a autentifikacija pomoću digitalnog potpisa birača.

Page 41: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

36

S. Ibrahim, M. Kamat, M. Salleh, S. Rizan i A. Aziz su predložili sustav elektroničkog glasovanja kojeg su nazvali E-Voting [16] i koji se izvršava u 4 faze (Slika 6.1):

1) Registracija birača (engl. voter registration)

Da bi mogao glasovati na izborima, svaki se pojedinac prethodno mora registrirati. U okviru E-Voting sustava registracija se obavlja na sljedeći način:

a) Birač šalje svoje osobne podatke (ime, prezime, broj osobne iskaznice) Registratoru. Prije slanja kroz mrežu poruka koja sadrži spomenute podatke se kriptira.

b) Registrator uspoređuje 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 ključeva. Javni ključ se pohranjuje u E-Voting bazu podataka, a privatni ključ se šalje biraču zaštićen unaprijed dogovorenom lozinkom.

2) Registracija kandidata (engl. candidate registration)

Svakog kandidata moraju nominirati bar dva birača i svi (kandidat i birači) moraju biti registrirani birači. Registracija kandidata obavlja se na sljedeći način:

a) registrirani birač i dva birača koji ga nominiraju šalju svoje osobne podatke administratorskom poslužitelju.

b) Ti podaci se potpisuju i kriptiraju javnim ključem administratora.

3) Glasovanje (engl. voting)

U fazi glasovanja, birač mora poslati svoj glasački listić validatoru i povjereniku. Proces glasovanja se odvija na sljedeći način:

a) Birač šalje svoje osobne podatke validatoru b) Validator provjerava da li je birač registriran i da li je već glasovao. Ako su podaci

birača ispravni, validator provjerava izborni okrug birača i šalje mu glasački listić. Svaki glasački listić ima jedinstveni ID.

c) Birač ispunjava glasački listić te ga prikriva faktorom prikrivanja, potpisuje, kriptira i šalje validatoru na provjeru valjanosti.

d) Nakon što provjeri birača, validator potpisuje glasački listić i šalje ga natrag biraču. e) Birač provjerava cjelovitost glasačkog listića tako što uklanja faktor prikrivanja i

uspoređuje ga sa originalnim glasačkim listićem. f) Potpisani i originalni glasački listići se šalju povjereniku. Komunikacija je zaštićena

pomoću sjedničkog ključa dogovorenog u vrijeme uspostave veze. g) Povjerenik provjerava ispravnost glasačkog listića koristeči javni ključ validatora.

Potpisani glasački listić se pohranjuje u E-Voting bazu podataka. h) Povjerenik šalje biraču ID, vrijeme i datum glasovanja koje potpisuje svojim tajnim

ključem.

Page 42: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

37

4) Zbrajanje glasova (engl. counting protocol)

Nakon što je završila faza glasovanja Povjerenik automatski zbraja glasove te objavljuje rezultate i pohranjuje ih u bazu podataka.

Slika 6.1 E-Voting sustav anonimnog elektroničkog glasovanja

6.2. Elektronički novac

Pod pojmom elektronički, odnosno digitalni novac (engl. e-money, electronic cash, electronic

currency, digital money, digital cash or digital currency) misli se na novac koji se može koristiti samo elektroničkim putem što tipično uključuje korištenje računalnih mreža, interneta i digitalno pohranjenog sustava vrijenosti. Primjeri elektroničkog novca su Electronic Funds Transfer (EFT) i direktni depozit (engl. direct deposit). Ovaj pojam također obuhvaća i cjelokupno područje financijske kriptografije i tehnologije koja ju omogućuje. [17]

Page 43: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

38

Dakle, po svojoj funkcionalnosti elektroničko plaćanje je ekvivalent jednog od klasičnih (neelektroničkih) oblika plaćanja te se stoga također može 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 račun trgovca u trenutku kada joj se prezentira nalog. Primjeri su:

E-ček - elektronički ekvivalent klasičnog papirnatog čeka. Izdaje ga kupac trgovcu.

Kreditna kartica - nije elektronički način plaćanja, ali zbog velike raširenosti plaćanje karticom je jedan od najzastupljenijih načina plaćanja na Internetu.

Debitna kartica - Debitna kartica je vrlo slična kreditnoj kartici, s tom razlikom da kupac mora u trenutku kupnje imati novac na računu. Debitne kartice obično su zaštićene 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 novčana vrijednost. Primjeri su:

E-gotovina - ima osobnosti vrlo slične gotovini u stvarnom svijetu kao npr. da je univerzalno prihvaćena, da kupac pri njenoj potrošnji ostaje anoniman, korisnik ne mora imati račun u banci i sl. Nedostaci su: relativno visoki troškovi vezani uz proizvodnju i distribuciju, nepogodnost za mala plaćanja (mikroplaćanja, manja od 1 USD) , može se krivotvoriti itd.

Mikroplaćanje (engl. micropayments) - posebna vrsta e-gotovine, čija osobina su vrlo mali iznosi. [18]

Neki od najčešće spominjanih problema elektroničkog novca su:

- Anonimnost kupca - kako bi se banci onemogućilo stvaranje baze podataka s identitetom i serijskim brojem novčanice, može se prepustiti kupcu da generira serijski broj novčanice, koji će zatim tehnikom prikrivanja sakriti od pogleda banke, te će takvu novčanicu predati banci na slijepi potpis.

- Problem dvostruke potrošnje - obzirom na to da su e-novčanice samo podaci (na disku ili u memoriji na kartici), kupac bi mogao pojedinu novčanicu jednostavno kopirati i njome platiti dva puta u dvije različite trgovine. Problem dvostruke potrošnje može se riješiti na dva načina: prevencijom i detekcijom dvostruke potrošnje.

Najpoznatiji modeli e-gotovine su Chaumov model i Brandsov model. Chaumov model predviđa detekciju dvostruke potrošnje, dok Brandsov predviđa njezino sprječavanje hardverskim sklopom. Ni jedan ni drugi model ne predviđaju mogućnost prijenosa između osoba već se obavezno kao posrednik koristi banka.

Kako bi mogao raspolagati e-gotovinom kupac ju mora prvo podići u banci. Prilikom plaćanja potrebno je osigurati trgovacu mogućnost provjere autentičnosti novčanice. U tu svrhu su razvijena dva modela provjere ovisno o tome da li trgovac u trenutku plaćanja ima on-line vezu s bankom ili nema.

Page 44: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

39

1) On-line sustav - provjera valjanosti elektroničkog novca se obavlja u trenutku kad trgovac dobije elektronički novac od kupca. Ako je novčanica ispravna, trgovac ju odmah polaže na svoj račun u banci i kupcu izdaje robu.

2) Off-line sustav - provjera elektroničkog novca se odgađa za kasnije. Da bi se provjera obavila, novac se prosljeđuje banci koja provjerava autentičnost potpisa izdavatelja novčanice te da li je novčanica već ranije položena. Ako je sve u redu, uvećava se iznos na bankovnom računu trgovca.[19]

6.3. Sigurnosni aspekti slijepog potpisa

Digitalni potpis omogućuje potpisniku da potpiše dokument te da bilotko može provjeriti taj potpis, ali ga nitko ne može krivotvoriti. Slijepi potpis ima dodatno svojstvo koje omogućuje potpisniku da potpise neki dokument (koji mu je dan u kriptiranom obliku) bez da sazna išta o sadržaju dokumenta kojeg potpisuje. Pri dokazivanju sigurnosti digitalnog potpisa koriste se dva pristupa: dokazi bazirani na kompleksnsti (engl. comlexity based proofs) i slučajno pogađajući dokazi (engl. proofs based on random oracle model).

1) Dokazi bazirani na kompleksnsti

Ovaj pristup su predložili W. Diffie i M. Hellman. Oni su predložili da se sigurnost kriptogravskih primitiva može svesti na čvrstoču teze određenjih 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 više napada od kojih neke od napada može obustaviti usred protokola potpisivanja ako se pokažu nezadovoljavajućima. Tu vrstu napada su nazvali napadom prilagođenih naizmjenično izabranih poruka (engl. adaptive interleaved

chossen-message attack). No iako njihov postupak dokazivanja jamči dokazivanje sigurnosti pod općenitim pretpostavkama kompleksnosti i izvršava se u polinomijalnom vremenu on je podosta kompliciran i neučinkovit.

2) Slučajno pogađajući dokazi

M. Bellare i P. Rogaway su predložili slučajno-pogađajući model dokazivanja sigurnosti koji omogućuje dokaze sigurnosti za razne kriptografske sustave. Velik broj kriptografskih algoritama koristi fukciju sažetka što stvara prepreku pri dokazivanju čak i osnovnih svojstva poput jednosmjernosti. U slučajno – pogađajućem modelu za funkcije sažetka se pretpostavlja da su stvarno slučajne i da daju za svaki upit odgovarajuću slučajnu vrijednost, tj. stvarne funkcije sažimanja se zamjenjuju idealnim funkcijama. Slučajno pogađajući dokazi se najčešće koriste da bi se dokazao dobar dizajn kriptografskih shema, tj. kako bi se odbacile one sa lošim dizajnom [11]. Ovakav model se može koristiti za jednostavne i višestruke paralelne napade.

Page 45: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

40

6.4. Vrste napada na slijepe potpise

Napadi na digitalne potpise općenito uključuju pokušaje generiranja ispravnog potpisa za određenu poruku bez poznavanja potpisnikovog tajnog ključa. Ovi napadi se mogu podijeliti u četiri kategorije (poredano po padajućoj snazi):

1) Pokušaj otkrivanja potpisnikovog privatnog ključa (potpuni proboj). 2) Osmišljavanje algoritma koji će generirati valjane potpise ekvivalentne onima koji se

mogu dobiti pomoću potpisnikovog tajnog ključa. 3) Pokušaj generiranja potpisa za neku izabranu poruku. 4) Pokušaj generiranja potpisa za bilo koju novu poruku.

Napade također možemo okarakterizirati kao pasivne ili aktivne i to na sljedeći način:

- Pasivni napad – napadač nema pristup potpisnikovom privatnom ključu već koristi određeni 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.

Također, posebno za slijepe digitalne potpise razlikujemo još dvije vrste napada a to su:

1) Napad jedan na više (engl. one-more forgery)

Službenu definiciju ovog napada su dali D. Pointcheval i J. Stern [11] Za neki cijeli broj ℓ, napad jedan na više ili �ℓ, ℓ / 1 -napad je pokušaj napadača da nakon što je primio ℓ potpisa izračuna ℓ / 1 potpis za neku proizvoljnu poruku

2) Napad ograničavanja

Napadač uspjeva pribaviti potpis za poruku čiji se sadržaj razlikuje od neke predefinirane interne strukture.

Page 46: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

41

7. Praktični rad

Praktični dio diplomskog rada sastoji se od dvije cjeline: programskog ostvarenja protokola slijepog potpisa te interaktivnih Web stranice koje grafički prikazuju osnovne vrste slijepog te opunomoćenog 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 više) odnosno Microsoft Visual studio 2005. Programski jezik korišten za izradu je bio C#.

S obzirom da je Chaumov slijepi potpis temeljen na RSA algoritmu čija se sigurnost zasniva na veličini ključa (veličina ključa u programu je 1024 bita) za rad je bilo nužno pronaći način za računanje sa velikim brojevima. Ovo je rješeno upotabom BigInteger klase čiji je autor Chew Keang.

Za generiranje ključeva korištene su ugrađene klase .NET frameworka.

7.1.1. Grafičko sučelje i uporaba programa

Grafičko sučelje se sastoji od dvije komponente, tj. dva prozora. Pri pokretanju programa otvara se jednostavan prozor (Slika 7.1) u kojem je moguće pogledati/promjeniti datoteke poruke koja se potpisuje i potpisane poruke. Dok se klikom na gumb "Izvrši 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 T te potpisnikov javni ključ �5, � , a izlaz joj je prikrivena poruka 3.

2) Funkcija potpisivanja koja kao ulaz uzima prikrivenu poruku 3 i potpisnikov tajni ključ �, � , a kao izlaz daje potpisanu prikrivenu poruku 3a. 3) Funkcija otkrivanja koja konačno daje potpisanu ulaznu poruku -a uz pomoć potpisane

prikrivene poruke 3a, faktora prikrivanja te poruke i javnog ključa potpisnika �5, � .

Slika 7.1 Početni prozor programa

Page 47: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

42

Slika 7.2 Koraci slijepog potpisa: Funkcija prikrivanja, Funkcija potpisivanja i Funkcija

otkrivanja

7.1.2. Formati zapisa datoteka

Datoteke u koje se spremaju ključevi (potpisnikov javni i tajni ključ), faktor prikrivanja kao i poruke koje se izmjenjuju tijekom izvršavanja protokola slijepog potpisa su ASCII datoteke, tj. sadrže isključivo ASCII znakove (uz znakove formatiranja: razmak, novi red).

Svi podaci u datotekama su u sljedećem formatu:

[Polje]:

[Vrijednost]

Ime [polje] počinje od prve kolone, dok se ispred [vrijednost]–i nalaze četiri razmaka. Različita polja su odvojena praznim redom. Ukoliko je vrijednost brojčana ona se zapisuje u heksadecimalnom obliku tako da je najznačajniji oktet prvi, a prvi bit je najveće težine. Također 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 sljedećem retku (nakon početna četiri razmaka), npr.:

Q4dE4dPJSQQTBBSMBacUykpQJfsk3YXVHgho6e3CPjlz/udwjj3NY1AtiOXB

lDkVukDlsVy1+gIYWm9aM2bCKvkWt03XbtD/rmP6Q9E13641fLak/vgl0333

ugMIUlN/2OHWFXd6i7kvsj2Z5mbDHL++LJugkOok6pPiNPU5Du0=

Page 48: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

43

Sve datoteke sadrže opis datoteke (Description) kao vrijednost parametra [polje] i to na samom početku. Ostale vrijednosti ovise o sadržaju datoteke. Ukoliko je vrijednost parametra [Vrijednost] jednaka Data tada su podaci koji slijede zapisani u Base64 formatu, a inače se koristi heksadecimalni zapis. Pri opisu izvođenja (u nastavku) su dani primjeri datoteka.

NAPOMENA: ovaj format zapisa datoteka je pojednostavljeni oblik zapisa koji je korišten u okviru laboratorijskih vježbi 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 sljedeće: prvi oktet se stavlja u najznačajnijih osam bitova 24-bitnog spremnika, sljedeći oktet ide u sredinu, a treći oktet čini najmanje značajnih 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 način. U slučaju da zadnji blok podataka koji se kodiraju sadrži 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 tiječi "tri" u Base64 format.

Tablica 7.1. Primjer Base64 kodiranja

Tekst t r i

ASCII 116 114 105

Binarno 0 1 1 1 0 1 0 0 0 1 1 1 0 0 1 0 0 1 1 0 1 0 0 1

Index u tablici 29 7 9 41

Base64 kodiranje d H J p

7.1.3. Opis programske izvedbe Chaumovog slijepog potpisa

Protokol slijepog potpisa kojeg je predložio D. Chaum ima dva sudionika: pošiljatelja poruke i potpisnika. Ova dva sudionika su u programu predstavljena sa dva razreda, a to su sender i signer.

Prije izvršavanja samog protokola vrši se provjera podataka ulazne datoteke, tj. da li ona sadrži neku poruku. Ukoliko je ulazna datoteka prazna pojavljuje se upozorenje:

"Ulazna poruka ne može biti prazan string!"

Page 49: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

44

i ne izvršava se protokol. Potrebno je naglasiti da se prilikom instanciranja razreda sender također 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 ključeva.

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 vraća true ako je potpis uspješno verificiran, odnosno false ako nije. Može se reći da je uloga ove funkcije samo posrednička jer se unutar nje ne događaju nikakve transformacije podataka već ona služi 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 početku se dohvaća potpisnikov javni ključ i čita ulazna poruka, a zatim se generira faktor prikrivanja koji se razlikuje za svaku instancu izvođenja protokola. Pri generiranju faktora prikrivanja T pazi se da vrijedi uvjet T ] � te se faktor prikrivanja zapisuje u datoteku blindFactor. Pomoću formule (3.1) prikriva se ulazna poruka i rezultat se zapisuje u datoteku blindedMessage.

Pomoćna funkcija signBlindMessage(BigInteger t) poziva funkciju signMessage(BigInteger t) i vraća rezultat iste.

Funkcija potpisivanja prikrivene poruke je:

BigInteger signMessage(BigInteger t_bigInt).

Ova funkcija kao ulaz uzima prikrivenu poruku koju potpisuje potpisnikovim tajnim ključem 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 pomoćnu funkciju mod_invert(BigInteger x, BigInteger n) koja računa 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.

Page 50: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

45

Osim razreda signer i sender također postoji i razred SaveToFile u kojem se nalaze pomoćne funkcije za zapis potrebnih podataka u odgovarajuće datoteke. Podaci se u datoteke zapisuju u prethodno opisanom formatu, a primjeri istih su dani u nastavku.

7.1.4. Primjer izvođenja

U nastavku je dan jedan primjer izvođenja programske implementacije Chaumovog slijepog potpisa ostvarene u sklopu ovog diplomskog rada.

Neka je dana sljedeća 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 ključeve (javni i tajni) i pohranjuje ih u datoteke u sljedećem 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

Page 51: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

46

InverseQ:

64776486c2762c187035a9300cdcff921175e4dd93b68887c90273d53d95

0ee1ebba0de903c560f7535b7fa2649c60560edff36b41d7e7d75713f9da

9893c435

Modulus:

b32b9b62186ebac044c228e2e87a353b5dd2a8dda6fb60ce6ab3d1876d04

591739aac6ace9bd99bb3fda1fd27fbbd5bb158cf265788df581679c8b24

a09e96737b637620a25e83c0268a6b3440962abd040b7b1b4f05d7dd2c11

2185e3ca9d67d953269222fc29695fcd1e356a00e5daf604fe6748e85533

90da3eb546fd22fb

P:

e98c6afafc2d484b8293a10769da30e4de02dd7170e0b491dca3c8a1e398

fabb63e471f9a98bb3a6fe98a064d3f458c49bab54ea3fabc64c6a440bb4

aa44dd45

Q:

c464f406eaa3d83ea0d80212a2590e9bca9fa0256a5c83250e0f6b2eeebc

bb46ea1dbdbab05ddaf2cc126218b86d2f62597e87f9724239ab6e89f213

2da5633f

Pošiljatelj generira faktor prikrivanja i pohranju je ga u datoteku blindFactor na sljedeći način:

Description:

Faktor prikrivanja

Data:

8ee3a6dfc49d2299d13c3c19b9eb1435

Pošiljatelj pomoću generiranog faktora prikrivanja i javnog ključa potpisnika računa funkciju prikrivanja te dobivenu prikrivenu poruku šalje potpisniku na potpis i pohranjuje u datoteku blindedMessage na sljedeći način:

Description:

Prikrivena Poruka

Data:

H51051cGVsEreulexkMutpmf38Y0OHAEtDcYQ+6k54ydHVl+LUSV10/a515m

AB2CsPgA82NvINFNl7ijHp3BiPKqXWrb6WOwHibWpzCRHFueA5UpuUDsyMsl

xoM9qDtO0/6IpYuAdt+e8oEVqUR6xrz+MARq4ZVxqR+XEvEn6g0=

Potpisnik računa funkciju potpisivanja koristeći svoj tajni ključ i rezultat vraća pošiljatelju te ga također zapisuje u datoteku u sljedećem obliku:

Description:

Potpisana prikrivena poruka

Data:

GK75ZvM7YngHbILRrRs0vg+wyVTI5Uure+6Ssr3yCO+7kaV+dAka2TzMobm2

jM7Q4DJqIGJbVZH2lHvzeqr3KdLZRfO5Rvdf7/mwiQS09BbZINYWXuN0RmpK

81+vL+NMtjMZlqncKJwqy/pGfsjBWVFvd+E0AFO6b37r2HzXdlE=

Pošiljatelj nakon što primi potpisanu poruku uklanja faktor prikrivanja sa potpisane prikrivene poruke te rezultat zapisuje u datoteku u sljedećem obliku:

Page 52: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

47

Description:

Potpisana ulazna poruka

Data:

nPmL1ZYUwF6Y5WJBmYMkL4fxj8s/Oy5ISP+88W76SuuHSFQqo5R76pk4YuB5

+YEITFOJFdL41IArJN7Sl9AjHDVVem3qN8AbxaHAS/zku09S0CRpIYcG7Zmu

RsKKXJFA5SfiQOXEWxiB7sP2FRSLjlYyiPtSa0VRLV8YViXiX64=

7.2. Interaktivne Web stranice

Interaktivne Web stranice su izrađene u pomoć Macromedia Flash 8 Professional, točnije besplatne 30-dnevne trial verzije koja se može 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 međusobno razlikuju osnovna forma svih stranica je ista: Pri pokretanju pojedine .fla datoteke otvara se početni kadar u kojem su ispisani parametri tog protokola (Slika 7.3.)

Slika 7.3 Na početku se mogu vidjeti svi parametri koji se koriste u protokolu i njihova

objašnjenja

Page 53: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

48

Slika 7.4 Interaktivne Web stranice opisanih protokola

Page 54: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

49

U svakom koraku protokola crvenom bojom su označene transformacije koje se računaju te poruke koje se izmjenjuju u tom koraku. Također, osim grafičkog 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 jedan–od–dva zaboravljivog transfera (K§��).

Pregled koraka pojedinog protokola je jednostavan koristeći strelice za lijevo i desno pomoću kojih se može lako navigirati na sljedeći (odnosno prethodni) korak.

Page 55: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

50

8. Zaključak

D. Chaum je predložio protokol slijepog potpisa kao jedan način osiguravanja anonimnosti potrošača pri trošenju elektroničkog novca. Od tad do danas je predložen velik broj shema slijepog potpisa, a osim u slučaju elektroničkog novca slijepi potpis je pronašao svoju primjenu u mnogim aplikacijama gdje je bilo potrebno osigurati anonimnost jednog ili više korisnika (npr. u anonimnim elektroničkim sustavima glasovanja).

Najčešća uporaba slijepog potpisa je ipak u elektroničkim platežnim sustavima jer zadovoljava zahtjeve obje strane: i potrošača i trgovca (ili banke). Potrošačima je osigurana anonimnost pri trošenju, tj. ne može ih se naknadno povezati s potrošenim novcem, a s druge strane banka može spriječiti zlonamjerne korisnike da se krivo predstavljaju ili zloupotrebljavaju tuđe podatke u svrhu vlastitog profita, jer ukoliko se koristi protokol pravednog slijepog potpisa moguće je ukloniti svojstvo anonimnosti (naravno ako se za to pokaže valjani razlog).

Kada se predloži 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 pronaći način da dođu do potpisnikovog privatnog ključa. No, snaga kriptografske sheme se ne može dokazati već zapravo sve što autor može napraviti je demonstrirati snagu predložene sheme protiv poznatih napada. Međutim često vidimo da se za novo predloženu shemu slijepog potpisa izume novi napadi pa novije predložene sheme gotovo uvijek pate od nekih početnih slabosti, stoga moramo uvijek biti na oprezu ukoliko koristimo nove kriptografske sheme.

Page 56: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

51

DODATAK A – Izvorni tekst programa (najvažnije funkcije)

public bool blindSignature(String in_path, string out_path)

{

//prikri orginalnu poruku faktorom prikrivanja

BigInteger t = blindMessage(in_path);

//pošalji 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();

//pročitaj 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();//slučajno 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

Page 57: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

52

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;

Page 58: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

53

H = G;

G = F;

B = A;

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;

}

Page 59: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

54

DODATAK B – Popis slika i tablica

Slika 1.1Kruženje novca .................................................................................................................. 1

Slika 3.1. Protokol slijepog potpisa ................................................................................................. 7

Slika 4.1 Proxy nezaštićeni slijepi potpis ...................................................................................... 20

Slika 4.2 Proxy zaštićeni slijepi potpis .......................................................................................... 22

Slika 5.1 Model sheme pravednog slijepog potpisa ...................................................................... 25

Slika 5.2 Pravedni slijepi potpis korištenjem protokola podijeli i izaberi ..................................... 27

Slika 5.3 Izvođenje K§21 protokola ............................................................................................. 28

Slika 5.4 Izvođenje pravednog K§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 elektroničkog glasovanja ................................................. 37

Slika 8.1. Početni prozor programa ............................................................................................... 41

Slika 8.2. Koraci slijepog potpisa: Funkcija prikrivanja, Funkcija potpisivanja i Funkcija otkrivanja ....................................................................................................................................... 42

Slika 8.3. Na početku se mogu vidjeti svi parametri koji se koriste u protokolu i njihova objašnjenja ..................................................................................................................................... 47

Slika 8.4. Interaktivne web stranice opisanih protokola ................................................................ 48

Tablica 3.1 Vrijednosti parametara slijepog potpisa za različite vrijednosti m i R ......................... 9

Tablica 8.1. Primjer Base64 kodiranja .......................................................................................... 43

Page 60: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

55

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 eliptičke 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-C59F-BF4E-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

Page 61: Slijepi potpis - bib.irb.hr · 2 tre ćem, četvrtom i petom poglavlju su opisani slijepi potpis, opunomo ćeni slijepi potpis i pravedni slijepi potpis, tj. neke vrste istih

56

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] Elektronički novac (Wikipedia),

URL: http://en.wikipedia.org/wiki/Electronic_money

[18] Elektronički novac,

URL: http://ponude.biz/tekstovi/elektronicki-novac.pdf

[19] Sustavi elektroničkog plaćanja(Elektronički 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