Elektroniki novac Elektroniki novac Elektroniki novac je prezentacija

  • Slides: 23
Download presentation
Elektronički novac

Elektronički novac

Elektronički novac • • Elektronički novac je prezentacija novca u obliku bitova. Za razliku

Elektronički novac • • Elektronički novac je prezentacija novca u obliku bitova. Za razliku od stvarnog novca može se kopirati. Problemi Kopiranje stvarne novčanice = prijevara. Kopiranje ecash podataka nije prijevara. • Kako izdavati? Trošiti? • Učinkovitost (da se može koristiti offline) • Anonimnost Niti jedan postojeći sustav ne rješave sve probleme

Online v. Offline sustavi • Online sustav zahtjeva pristup poslužitelju za svaku transakciju –

Online v. Offline sustavi • Online sustav zahtjeva pristup poslužitelju za svaku transakciju – Primjer: autorizacija kreditnih kartica. • Offline sustav dozvoljava transakciju bez poslužitelja – Primjer: plaćanje novcem. Trgovac provjerava novac samostalno (vizualno) bez komunikacije s bankom. Komunikacija nije potrebna.

Electronic Cash -- Ideja 1 • Banka izdaje karakter stringove koji sadrže – klasifikaciju

Electronic Cash -- Ideja 1 • Banka izdaje karakter stringove koji sadrže – klasifikaciju – serijski broj – ID banke + enkripciju gornjih vrijednosti • Prva osoba koja vrati string banci dobija novac PROBLEMI: • Ne može se koristiti offline. Mora se provjeriti da novac nije već potrošen. • Nije anonimno. Banka može zapisati serijski broj. • Potreban je sofisticirani sustav za obradu transakcija i zaštitu od višestrukog trošenja • Prisluškivanje

Slijepi potpisi • Ponekad je korisno da ljudi potpisuju stvari za koje ne znaju

Slijepi potpisi • Ponekad je korisno da ljudi potpisuju stvari za koje ne znaju što potpisuju – potvrđivanje autentičnosti povjerljivih dokumenata – zaštita anonimnosti • A želi da B potpiše poruku M. (U kriptografiji je poruka samo broj). • A množi M s brojem -- maskirajući faktor • A šalje maskiranu poruku B. On je ne može pročitati jer je maskirana. • B potpisuje sa svojim privatnim ključem, šalje natrag A. • A dijeli sa maskirajućim faktorom. Sada ima M potpisan od B.

Slijepi potpisi • • A traži od B da potpiše pruku M. B ima

Slijepi potpisi • • A traži od B da potpiše pruku M. B ima javni ključ (e, n). B ima privatni ključ d. A odabire maskirni faktor između 1 i n. A maskira poruku izračunom T = M ke (mod n). A šalje B poruku. e • d = 1 (mod n) • B potpisuje T izračunom: Td = (M ke)d (mod n) = Md k (mod n) • A demaskira ovo dijeljenjem sa maskirajućim faktorom: S = Td/k = Md k (mod n)/k = Md (mod n) • Ovo je isto kao da je B potpisao samo M, osim što B nije u mogućnosti pročitati poruku.

Slijepi potpisi • Problem je potpisivanje dokumenata koje ne znaš čitati • Ovo se

Slijepi potpisi • Problem je potpisivanje dokumenata koje ne znaš čitati • Ovo se može korisiti samo u izuzetnim situacijama • Primjer: – Zahtjev banci da potpiše (potvrdi) elektronički novac za $100 – Banka koristi poseban potpis koji važi samo za $100 vrijednosti • Slijepi potpisi su temelj anonimnosti u elektroničkom novcu

e. Cash (Digi. Cash) A ŠALJE NEPOTPISANE MASKIRANE KOVANICE U BANKU Podizanje (Kovanje): EL.

e. Cash (Digi. Cash) A ŠALJE NEPOTPISANE MASKIRANE KOVANICE U BANKU Podizanje (Kovanje): EL. NOVČANIK A KUPUJE DIGITALNE KOVANICE IZ BANKE BANKA POTPISUJE KOVANICE, ŠALJE IH NATRAG. A IH DEMASKIRA B PROVJERAVA DA KOVANICE NISU POTROŠENE A PLACA B Trošenje: B POLAŽE C PROVJERAVA DA KOVANICE NISU POTROŠENE Transfer: C DOBIVA NATRAG KOVANICE A TRANSFERIRA KOVANICE C

Izdavanje e. Cash-a • A zahtjeva novce od banke gdje ima račun • A

Izdavanje e. Cash-a • A zahtjeva novce od banke gdje ima račun • A šalje banci – { { maskirane kovanice}Sig. A }PKBanka • Banka zna da su od A i da nisu izmjenjene (digitalni potpis) • Poruka je tajna (samo je banka može dekodirati) • Banka poznaje bankovni račun od A • Suma se skida s računa od A

Izdavanje e. Cash-a, nast. • Banka sada mora napraviti kovanice za A • Svaka

Izdavanje e. Cash-a, nast. • Banka sada mora napraviti kovanice za A • Svaka od maskiranih kovanica od A ima serijski # • Bankovni javni ključ za $5 je (e 5, m 5) (eksponent i modul). Privatni ključ je d 5. • A odabire maskirajući faktor r. • A maskira serijski # množeći ga s r e 5 (mod m 5) e 5 • d 5 = 1 (mod m 5) (serial# r e 5) (mod m 5) • Banka potpisuje kovanicu s vlastitim privatnim ključem d 5: • (serial# r e 5)d 5 (mod m 5) = (serial#)d 5 r (mod m 5) • A dijeli s maskirajućim faktorom r. Preostaje (serial#)d 5 (mod m 5) = { serial# } SKBank 5 Upravo kao da je banka potpisala serijski #. Ali banka ne zna koji je.

Trošenje e. Cash-a • A naručuje dobra od B • B izdaje dobra i

Trošenje e. Cash-a • A naručuje dobra od B • B izdaje dobra i zahtjeva novce od A (wallet) zahtzaplac = { valuta, iznos, vrijeme, IDbanke_trgovca, IDračuna_trgovca, opis } • A odobrava zahtjev. Pokreće se plaćanje (wallet): placanje = { plac_info, {kovanice, H(plac_info)}PKtrg. banke } plac_info = { ID_banke. A, iznos, valuta, nkovanica, vrijeme, ID_trgovca, H(opis), H(kod_platitelja) }

Naplata e. Cash-a • B zaprima poruku o plaćanju, prosljeđuje je banci na naplatu

Naplata e. Cash-a • B zaprima poruku o plaćanju, prosljeđuje je banci na naplatu iznos = { { placanje }Sig. B }PKBanke • Banka dekriptira poruku korištenjem SKBanke. • Banka ispituje plac_info da dobije serijske # i provjerava da kovanice nisu već potrošene • Banka stavlja na B-ov račun i šalje mu potvrdu iznos_pot = { iznos_podaci, iznos }Sig. Banke

Dokazivanje e. Cash plaćanja • A generira kod_platitelja prije plaćanja B • A hash-ira

Dokazivanje e. Cash plaćanja • A generira kod_platitelja prije plaćanja B • A hash-ira kod_platitelja i uključuje ga u plac_info • B ne može zloupotrijebiti (mijenjati) H(kod_platitelja) jer je plac_info enkriptiran s javnim ključem banke • Banka bilježi H(kod_platitelja) zajedno s iznosom • Ukoliko B zaniječe da mu je A platio, A otkriva svoj kod_platitelja banci • Inače A je anoniman, a B nije

Izgubljen e. Cash • e. Cash se može “izgubiti”. Pad diska, zaboravljeni password-a, …

Izgubljen e. Cash • e. Cash se može “izgubiti”. Pad diska, zaboravljeni password-a, … • A šalje poruku banci da su se kovanice izgubile • Banka ponovno odašilje A njezinih zadnjih n pošiljaka maskiranih kovanica (n=16) • Ukoliko A još uvijek ima maskirajući faktor on ih može demaskirati • A polaže sve kovanice u banku. (One koje su potrošene biti će odbačene) • A povlači nove kovanice. • e. Cash demo

Ecash anonimnost i kriminal • • Otmičar uzima taoca Otkupnina je niz maskiranih kovanica

Ecash anonimnost i kriminal • • Otmičar uzima taoca Otkupnina je niz maskiranih kovanica Banka potpisuje kovanice da plati otkupninu Otmičar kaže banci da publicira kovanice u novinama (to su samo stringovi) • Samo otmičar može demaskirati kovanice (jedino on zna maskirajući faktor) • Otmičar sada može korisiti kovanice potpuno anonimno

Offline dvostruko-trošenje • Dvostruko trošenje se jednostavno zaustavlja u online sustavima. Sustav prati zapise

Offline dvostruko-trošenje • Dvostruko trošenje se jednostavno zaustavlja u online sustavima. Sustav prati zapise o serijskim brojevima potrošenih kovanica. • Ukoliko B ne može provjeriti svaku kovanicu online. Kako može znati da nisu prethodno potrošene? • Metoda 1: kreirati smart card sustav koji neće potrošiti kovanicu više nego jednom. – Problem replay-a je ipak moguć. Potrebno je samo zapamtiti bitove kad izlaze iz kartice. • Metoda 2: protokol koji dokazivo identificira dvostrukog potrošača, ali je anoniman za jedostrukog

Chaum Double-Spending Protocol • A želi 100 pet dolarskih kovanica • A šalje 200

Chaum Double-Spending Protocol • A želi 100 pet dolarskih kovanica • A šalje 200 pet dolarskih kovanica u banku (dvostruko više nego treba). Za svaku kovanicu, A – kombinira b različitih slučajnih brojeva s brojem vlastitog računa i serijskim brojem kovanice (korištenjem exclusive. ILI) – Maskira kovanicu • Banka odabire pola kovanica (100), potpisuje ih i vraća A • Banka zahtijeva od A slučajne brojeve za drugih 100 kovanica i koristi ih za čitanje broja računa od A – Banka je sigurna da su maskirane kovanice koje je potpisala imale stvarni broj računa. (Banka je odabrala 100 od 200 a ne A)

Vjerojatnost kod odabira • Ako A pošalje 2 n kovanica banci ali k ima

Vjerojatnost kod odabira • Ako A pošalje 2 n kovanica banci ali k ima pogrešan broj računa. Koja je vjerojatnost da se pojavi među n kovanica koje banka odabire? NAČINA DA SE ODABERE TOČNO j OD k LOŠIH KOVANICA NAČINA DA SE ODABERE TOČNO n-j OD 2 n-k KOVANICA NAČINA DA SE ODABERE TOČNO n OD 2 n UKUPNO KOVANICA • Vjerojatnost da A uspije to napraviti i proći neopaženo je p(0) • Za k = 1, p(0) = 1/2 • Za n = 100, k = 10, p(0) ~ 8/10000 • Za n = 100, k = 100, p(0) ~ 10 -59

Chaum Protocol • • Ukoliko je broj računa od A 12, što je hex

Chaum Protocol • • Ukoliko je broj računa od A 12, što je hex 0 C= 00001100 A odabire serijski broj 100 i maskirajući broj 5 Zahtijeva od banke kovanicu sa serijskim brojem 100 x 5 = 500 A odabire slučajan broj b i kreira b slučajnih brojeva za tu kovanicu. Uzmimo b = 6 • A radi XOR svakog slučajnog broja sa vlastitim brojem računa

Chaum Protocol • B zaprima kovanice od A. Pronalazi b i odabire slučajan broj

Chaum Protocol • B zaprima kovanice od A. Pronalazi b i odabire slučajan broj sa b bitova, npr. 111010 • Za svaku poziciju bita u kojoj B-ov broj ima 1, on zaprima slučajan broj od A za tu poziciju • Za svaku poziciju sa 0, B zaprima broj računa od A XOR sa slučajnim brojem A za tu poziciju • B šalje zadnji stupac u banku kada polaže kovanicu

Chaum Protocol • Sada A pokušava potrošiti kovanicu ponovno kod C. On pronalazi b=6

Chaum Protocol • Sada A pokušava potrošiti kovanicu ponovno kod C. On pronalazi b=6 i odabire slučajni broj 010000. • C prolazi istu proceduru kao B i šalje brojeve koje je primio u banku kamo polaže kovanicu

Chaum Protocol • Banka odbija platiti C-u, jer je kovanicu položio B. • Banka

Chaum Protocol • Banka odbija platiti C-u, jer je kovanicu položio B. • Banka kombinira podatke od B i C korištenjem XOR gdje je pronašla podatke iz dva izvora • Ovo identificira A kao varalicu. Niti B niti A niti banka nisu to mogli napraviti sami.

Chaum Protocol • Ukoliko slučajni broj od A ima b bitova, koja je vjerojatnost

Chaum Protocol • Ukoliko slučajni broj od A ima b bitova, koja je vjerojatnost da može potrošiti novac dva puta bez da bude otkriven? • Slučajni brojevi od B i C moraju biti identični. Ukoliko se razlikuju za 1 bit banka može identificirati A. • Vjerojatnost da dva b-bitna broja jesu identična p(b) = 2 -b p(1) = 0. 5 p(10) ~. 001 p(20) ~ 1/1, 000 p(30) ~ 1/1, 000, 000 p(64) ~ 5 x 10 -20 p(128) ~ 3 x 10 -39 • Chaum protocol ne garantira otkrivanje počinitelja