• Keine Ergebnisse gefunden

Algorithmische Kryptographie (WS2013/14) Kapitel 8 Elektronisches Geld Walter Unger

N/A
N/A
Protected

Academic year: 2022

Aktie "Algorithmische Kryptographie (WS2013/14) Kapitel 8 Elektronisches Geld Walter Unger"

Copied!
75
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)Algorithmische Kryptographie (WS2013/14) Kapitel 8 Elektronisches Geld Walter Unger Lehrstuhl für Informatik 1. 19:41 Uhr, den 13. Dezember 2013.

(2) Einleitung BitCoins Motivation Grundlagen. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:2). <> Walter Unger 13.12.2013 19:41. WS2013/14. Inhalt I 1. 2. Z. Sicherheitsaspekte. Sicherheit der Bank. Einleitung Anforderungen Einfaches Protokoll (1978, Shimon Even (1935-2004)) Sicherheitsaspekte zum einfachen Protokoll Einfaches Protokoll mit Steuersatz. 6. Protokolle Blinde Unterschriften Blinde Unterschrift mit zwei gleichen Logarithmen. 7. Aufbau Faires Elektronisches Geld (Systemaufbau). BitCoins Einleitung Münze weiterreichen. 8. On-Line System Einleitung Münze von der Bank abheben Zahlungsverkehr Sicherheitsaspekte Zusammenfassung. 9. Off-Line System Einleitung Münze von der Bank abheben Bezahlung im Geschäft Einzahlung bei der Bank. 3. Motivation Grundlagen Anonymes Geld Ziel. 4. Grundlagen Motivation Idee: Schnorrs Identifikation Schnorrs Identifikation (nicht-interaktive Version) Sicherheit Aufbau einer blinden Unterschrift. 5. Sicherheit Sicherheit des Kunden. 10. Sicherheitsaspekte Rückverfolgung Sicherheitsaspekte und zugrundeliegende Probleme. x.

(3) Einleitung BitCoins Motivation Grundlagen Anforderungen. (8:1). Sicherheit Protokolle Aufbau On-Line S. Off-Line System <> Walter Unger 13.12.2013 19:41. WS2013/14. Anforderungen an Elektronisches Geld 1. Soll mindestens so sicher sein wie eine normale Brieftasche.. 2. Sollte denselben Freiheitsgrad wie beim Umgang mit Geld liefern.. 3. Sollte anonymen Zahlungsverkehr ermöglichen.. 4. Sollte keine hohen Zusatzkosten benötigen.. Z. Sicherheitsaspekte. Die ersten beiden Forderungen wurden bereits 1978 durch ein Protokoll von Shimon Even realisiert.. g.

(4) Einleitung BitCoins Motivation Grundlagen. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. Einfaches Protokoll (1978, Shimon Even (1935-2004)). (8:2). <> Walter Unger 13.12.2013 19:41. WS2013/14. Idee Bank X : sigA (A zahlt an B 1500) 2. 1. 4 sigX (A ist Kunde von X ). 6. Konto von B enthällt: 12000 + 1500 = 13500. sigB (A zahlt an B 1500) 5. Konto von A enthält: 2300 − 1500 = 800. Kunde A:. Kunde B:. 3. sigB (A zahlt an B 1500). sigX (B ist Kunde von X ) sigA (A zahlt an B 1500). Sehr einfache Idee. Einfache Anwendung von Unterschriften. Entspricht also Schuldschein und Quittung.. Z. Sicherheitsaspekte i.

(5) Einleitung BitCoins Motivation Grundlagen. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. Einfaches Protokoll (1978, Shimon Even (1935-2004)). (8:3). <> Walter Unger 13.12.2013 19:41. WS2013/14. Einleitung Direkte Anwendung von Public-Keys. Basierte auf dem Austausch von Quittungen und Unterschriften. Benutzt Taschencomputer mit Infrarotkommunikationsschnittstelle. Gerät sollte gegen gewaltsames Öffnen gesichert sein. Ein automatischer Einzug von Steuern würde möglich. Rechner wird von Bank mit Geld gefüllt, d.h. erhält ein von der Bank unterschriebenes Public-Key-Verfahren für den Nutzer und den öffentlichen Schlüssel der Bank. Damit können nun Quittungen und unterschriebene Rechnungen ausgetauscht werden. Diese können später bei der Bank zum Kontoausgleich vorgelegt werden. Der Kassenstand der elektronischen Brieftasche wird durch diese verwaltet.. Z. Sicherheitsaspekte i.

(6) Einleitung BitCoins Motivation Grundlagen. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. Einfaches Protokoll (1978, Shimon Even (1935-2004)). (8:4). <> Walter Unger 13.12.2013 19:41. WS2013/14. Systemaufbau Beteiligte Partner sind A, B (Privatpersonen) und X (Bank). Die Bank kennt dabei DX , EX , DA , EA , DB , EB und die Kontostände. X : DX , EX Bestimmt: EA , DA IA := DX (EA ) A:. n =zu übertragender Geldwert t =aktuelle Zeit. EX , DA , EA , IA , t, n. EX , DA , EA , IA , t, n. Bestimmt: EB , DB IB := DX (EB ) B:. n =zu übertragender Geldwert t =aktuelle Zeit. EX , DB , EB , IB , t, n. EX , DB , EB , IB , t, n. Z. Sicherheitsaspekte i.

(7) Einleitung BitCoins Motivation Grundlagen. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. Einfaches Protokoll (1978, Shimon Even (1935-2004)). (8:5). <> Walter Unger 13.12.2013 19:41. Übertragung von Geld zwischen A und B A: DA , EA , EX , DX (EA ), nA , tA ,. B: DB , EB , EX , DX (EB ), nB , tB. zA (zu sendender Betrag). zB (zu empfangender Betrag) A, zA , DX (EA ). !. testet: zB = zA !. B, zB , tB , r , DX (EB ). testet: zB = zA. r := Zufallszahl. |tA − tB | < ε Sekunden testet: nA > zA nA := nA − zA !. −zA tB r = EB (DB (−zA tB r )). A, DA (zA tA r ). !. zA tA r = EA (DA (zA tA r )) B, DB (−zA tB r ). nB := nB + zB. Z. Sicherheitsaspekte. WS2013/14. i.

(8) Einleitung BitCoins Motivation Grundlagen Sicherheitsaspekte zum einfachen Protokoll. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:6). <> Walter Unger 13.12.2013 19:41. WS2013/14. Sicherheitsaspekte A: DA , EA , EX , DX (EA ), nA , tA , zA (zu sendender Betrag) !. B: DB , EB , EX , DX (EB ), nB , tB A, zA , DX (EA ) B, zB , tB , r , DX (EB ). testet: zB = zA |tA − tB | < ε Sekunden testet: nA > zA nA := nA − zA !. −zA tB r = EB (DB (−zA tB r )). A, DA (zA tA r ) B, DB (−zA tB r ). Z. Sicherheitsaspekte. zB (zu empfangender Betrag) !. testet: zB = zA r := Zufallszahl. !. zA tA r = EA (DA (zA tA r )) nB := nB + zB. 1. Verfahren ist so sicher wie die unterliegenden Verfahren.. 2. Jeder Zahlungsverkehr ist durch die Bank direkt nachvollziehbar.. 3. Ein Vorteil ist, dass man bei jedem Zahlungsverkehr Steuern erheben kann.. 4. Dann würde ein Steuersatz unter 3% alle anderen Steuern ersetzen.. 5. Für das Erheben der Steuern entstehen fast keine Zusatzkosten.. i.

(9) Einleitung BitCoins Motivation Grundlagen Einfaches Protokoll mit Steuersatz. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:7). <> Walter Unger 13.12.2013 19:41. WS2013/14. Übertragung zwischen A und B mit Steuersatz Staat druckt (erzeugt) Geld und kassiert es durch Steuern wieder ein. Das ist viel Aufwand. Idee: der Steuersatz verschwindet bei der Übertragung. A: DA , EA , EX , DX (EA ), nA , tA , zA (zu sendender Betrag). B: DB , EB , EX , DX (EB ), nB , tB A, zA , DX (EA ). zB (zu empfangender Betrag) !. !. testet: zB = zA · (1 − δ). B, zB , tB , r , DX (EB ). testet: zB = zA · (1 − δ) r := Zufallszahl. |tA − tB | < ε Sekunden testet: nA > zA nA := nA − zA !. −zA tB r = EB (DB (−zA tB r )). A, DA (zA tA r ) B, DB (−zA tB r ). !. zA tA r = EA (DA (zA tA r )) nB := nB + zB. Z. Sicherheitsaspekte i.

(10) Einleitung BitCoins Motivation Grundlagen Einleitung. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:8). <> Walter Unger 13.12.2013 19:41. WS2013/14. Grundlagen Es werden elektronische Münzen weitergegeben. Kein vertrauenswürdiges Zentrum (kein Staat). Kein Zentrum welches dem Geld Geltung gibt. Alle Aufgeben werden von der Gemeinschaft erledigt, wie: Eine gemeinsame “Zeit” bestimmen. Zahlungen bestätigen. Zahlung durch Kette von Unterschriften. Zahlungen gültig, wenn von der Mehrheit der Teilnehmer bestätigt. Notwendige Grundlagen: Jeder Teilnehmer hat Public Key Verfahren Es gibt eine sichere Hashfunktion Es gibt ein Netzwerk (Broadcast) oder Bulletin Board. Z. Sicherheitsaspekte i.

(11) Einleitung BitCoins Motivation Grundlagen Münze weiterreichen. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:9). <> Walter Unger 13.12.2013 19:41. WS2013/14. Münze weiterreichen Idee: Sender unterschreibt letzte Transaktion der Münze. Dabei wird Hashfunktion h eingesetzt. Nehmen wir erst mal an, eine Bank gäbe eine Münze aus. Dann haben wir das folgende Protokoll: A: pa , xa , pb. Bank: m.p, x Ta = (m, Sigx (h(m, pa ))). B: pb , xb , pa. Ta (m, s) = Ta Testp (s, m, pa ) Tb = (Ta , Sigxa (h(Ta , pb ))). Tb Testpa (Sigxa (h(m, pa ))). Problem: Münze ist ohne Probleme zu verdoppeln. Man muss alle Transaktionen überwachen.. Z. Sicherheitsaspekte i.

(12) Einleitung BitCoins Motivation Grundlagen Münze weiterreichen. (8:10). Sicherheit Protokolle Aufbau On-Line S. Off-Line System <> Walter Unger 13.12.2013 19:41. WS2013/14. Zahlungen bestätigen (Zeit verwalten) Zeit wird über durchgeführte Transaktionen verwaltet. Zeit vergeht dabei durch den Einsatz von Rechenleistung. Dazu werden folgende Schritte gemacht: 1 2 3. 4. 5. Transaktionen werden veröffentlicht. Jeder Teilnehmer sammelt die anstehenden Transaktionen. Jeder Teilnehmer bestimmt Hashwert von: Liste der anstehenden Transaktionen, Dem vorherigen Hashwert und einer Zahl aus einer Zahlenfolge. Das Hashergebnis muss mit einer bestimmten Zahl von Nullen starten. D.h. es muss viel Rechenleistung eingesetzt werden.. Diese Schritte nun mit Hilfe eines Bulletin Boards.. Z. Sicherheitsaspekte i.

(13) Einleitung BitCoins Motivation Grundlagen Münze weiterreichen. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:11). <> Walter Unger 13.12.2013 19:41. WS2013/14. Zahlungen bestätigen (Zeit verwalten) A: pa , xa , pb , pc. BB:. B: pb , xb , pa , pc Tab. T0 , k. Tac. C : pc , xc , pa , pb Tbc. Tbc Tac Tab T0 Tbc Tac Tab T0 Tbc Tac Tab T0 Tbc Tac Tab T = T0 Tbc Tac Tab Teste T Suche x mit: h(T , x ) ∈ 0k {0, 1}∗ ... ... ... ... ... ... ... ... x x. Teste x. T = T0 Tbc Tac Tab Teste T Suche x mit: h(T , x ) ∈ 0k {0, 1}∗ ... ... ... ... ... ... ... ... hat x gefunden x. T = T0 Tbc Tac Tab Teste T Suche x mit: h(T , x ) ∈ 0k {0, 1}∗ ... ... ... ... ... ... ... ... Teste x. Z. Sicherheitsaspekte i.

(14) Einleitung BitCoins Motivation Grundlagen Münze weiterreichen. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:12). <> Walter Unger 13.12.2013 19:41. WS2013/14. Initiale Münzen Es gibt keinen Staat, der initial Geld ausgibt. Ergo, jeder muss Geld “generieren” können. Das darf nicht einfach sein. Das muss kosten: Energie, Zeit. D.h., zum Erzeugen von initialen Münzen ist Rechenleistung und Zeit notwendig. Jemand der Münze braucht, kann diese herkömmlich kaufen. Dieser Kauf erfolgt zum Tageskurs. Erzeugung kann analog wie beim “Zahlungen bestätigen” erfolgen. Erweiterungen sind möglich.. Z. Sicherheitsaspekte i.

(15) Einleitung BitCoins Motivation Grundlagen Grundlagen. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:13). <> Walter Unger 13.12.2013 19:41. Situation (Basis). 1. 5. Staat:. Bank X :. 4. 2. Kunde:. Laden: 3. Z. Sicherheitsaspekte. WS2013/14. g.

(16) Einleitung BitCoins Motivation Grundlagen Grundlagen. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:14). <> Walter Unger 13.12.2013 19:41. Situation (Rückverfolgung). 1. 5. Staat:. Bank X :. 4. 2. Kunde:. Laden: 3. Z. Sicherheitsaspekte. WS2013/14. g.

(17) Einleitung BitCoins Motivation Grundlagen Anonymes Geld. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:15). <> Walter Unger 13.12.2013 19:41. Situation (Ohne Rückverfolgung). 1. 5. Staat:. Bank X :. 4. 2. Kunde:. Laden: 3. Z. Sicherheitsaspekte. WS2013/14. g.

(18) Einleitung BitCoins Motivation Grundlagen Anonymes Geld. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:16). <> Walter Unger 13.12.2013 19:41. Situation (Ohne Rückverfolgung, mit Kopie) Staat:. 1. Bank X :. 4. 2. Kunde:. Laden: 3. Z. Sicherheitsaspekte. WS2013/14. g.

(19) Einleitung BitCoins Motivation Grundlagen Anonymes Geld. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:17). <> Walter Unger 13.12.2013 19:41. WS2013/14. Situation (Ziel: Ohne Rückverfolgung, ohne Kopie). 1. 5. Staat:. Bank X :. 4. 2. Kunde:. Laden: 3. Z. Sicherheitsaspekte g.

(20) Einleitung BitCoins Motivation Grundlagen Anonymes Geld. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:18). <> Walter Unger 13.12.2013 19:41. WS2013/14. Situation (Ohne Rückverfolgung, doppelter Zahlung) Staat:. 1. Bank X :. 4. 4. 2. Laden A:. Kunde: 3. Laden B: 3. Problematisch nur im Off-Line Fall.. Z. Sicherheitsaspekte g.

(21) Einleitung BitCoins Motivation Grundlagen Ziel. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:19). <> Walter Unger 13.12.2013 19:41. Situation (Rückverfolgung nur durch Staat) Staat: ←Kunde→ 1. 2. Bank X :. 4. 2. Kunde:. Laden: 3. Z. Sicherheitsaspekte. WS2013/14. g.

(22) Einleitung BitCoins Motivation Grundlagen Motivation. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:20). <> Walter Unger 13.12.2013 19:41. Z. Sicherheitsaspekte. WS2013/14. Einleitung 1. Heute will man aber faire Systeme.. 2. Also Systeme, die den Zahlungsverkehr nicht der Bank offen legen.. 3. Ein Nachverfolgen des Zahlungsverkehrs sollte nur über eine autorisierte Stelle (Staat) möglich sein.. 4. Idee zur Anonymisierung des Zahlungsverkehrs ist eine blinde digitale Unterschrift der Bank unter einer Münze.. 5. Nur der Staat kann die Unterschrift ggf. lesen.. g.

(23) Einleitung BitCoins Motivation Grundlagen Idee: Schnorrs Identifikation. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:21). <> Walter Unger 13.12.2013 19:41. Voraussetzungen 1. p, q Primzahlen mit q teilt p − 1.. 2. G Untergruppe der Ordnung q in Z∗p .. 3. g Generator in G.. 4. h : {0, 1}∗ → Zp kollisionssichere Hashfunktion.. 5. Der geheime Schlüssel ist dann x ∈ {0, . . . , q − 1}.. 6. Und der öffentliche Schlüssel (p, q, g, y ) mit y = g x .. 7. Damit wird Schnorrs Identifikations-Protokoll aufgebaut.. Z. Sicherheitsaspekte. WS2013/14. g.

(24) Einleitung BitCoins Motivation Grundlagen Idee: Schnorrs Identifikation. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:22). <> Walter Unger 13.12.2013 19:41. Protokoll ProofLog(g, y ). Z. Sicherheitsaspekte. WS2013/14. g. G Untergruppe der Ordnung q in Z∗ p g Generator in G ∗ h : {0, 1} → Zp y = gx. Protokoll ProofLog(g, y ): ProofLog(g, y ) P: x , y , g, p, q. V : y , g, p, q. r ∈ {0, . . . , q − 1} zufällig a := g r. a. b := r − cx. c b. c ∈ {0, . . . , q − 1} zufällig. ? teste: a ≡ g b y c. Dieses Protokoll kann mit der Hashfunktion h einfach in eine nicht-interaktive Version übertragen werden. Dabei wird ggf. gleichzeitig eine Nachricht m unterschrieben..

(25) Einleitung BitCoins Motivation Grundlagen. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. Schnorrs Identifikation (nicht-interaktive Version). (8:23). <> Walter Unger 13.12.2013 19:41. WS2013/14. Protokoll σ(m) = (c, b) = ProofLogh (m, g, y ). a c b. c ∈ {0, . . . , q − 1} zufällig ? teste: a ≡ g b y c. Das Protokoll: ProofLogh (m, g, y ) σ(m) = (c, b) = ProofLogh (m, g, y ) P: x , y , g, p, q, h. V : y , g, p, q, h. r ∈ {0, . . . , q − 1} zufällig a := g r c := h(m ◦ a) b := r − cx. (c, b), m. s. G Untergruppe der Ordnung q in Z∗ p g Generator in G ∗ h : {0, 1} → Zp y = gx ProofLog(g, y ). ProofLog(g, y ) P: x , y , g, p, q V : y , g, p, q r ∈ {0, . . . , q − 1} zufällig a := g r b := r − cx. Z. Sicherheitsaspekte. ?. Teste: c = h(m ◦ g b y c ). Falls m = ε schreiben wir (c, b) = ProofLogh (g, y ). Dann ist dies ein nicht-interaktiver Beweis der Kenntnis von logg (y )..

(26) Einleitung BitCoins Motivation Grundlagen Sicherheit. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:24). <> Walter Unger 13.12.2013 19:41. WS2013/14. Sicherheitsaspekte. (c, b), m. ?. Teste: c = h(m ◦ g b y c ). 1. Die Sicherheit ergibt sich aus der Schwierigkeit, den diskreten Logarithmus logg (y ) zu bestimmen.. 2. Falls das gleiche r für zwei verschiedenen Nachrichten m1 , m2 verwendet wird, so ist das Verfahren unsicher.. 3. Sei σ(mi ) = (ci , bi ) für i ∈ {1, 2}.. 4. Dann gilt: g r = g b1 y c1 = g b2 y c2 .. 5. Weiter gilt: g b1 +xc1 = g b2 +xc2 und damit x =. 6. s. G Untergruppe der Ordnung q in Z∗ p g Generator in G ∗ h : {0, 1} → Zp y = gx ProofLog(g, y ) σ(m) = (c, b) = ProofLogh (m, g, y ) ProofLogh (g, y ). σ(m) = (c, b) = ProofLogh (m, g, y ) P: x , y , g, p, q, h V : y , g, p, q, h r ∈ {0, . . . , q − 1} zufällig a := g r c := h(m ◦ a) b := r − cx. Z. Sicherheitsaspekte. b1−b2 . c2 −c1. Beachte dabei: G Untergruppe der Ordnung q in Z∗p und g Generator in G..

(27) Einleitung BitCoins Motivation Grundlagen Aufbau einer blinden Unterschrift. (8:25). Sicherheit Protokolle Aufbau On-Line S. Off-Line System <> Walter Unger 13.12.2013 19:41. Z. Sicherheitsaspekte. WS2013/14. Einleitung. g. ProofLog(g, y ) σ(m) = (c, b) = ProofLogh (m, g, y ) ProofLogh (g, y ) 1. Aus diesem Protokoll machen wir nun eine blinde Unterschrift.. 2. Dazu wird der Kunde von der Bank eine blinde Unterschrift anfordern.. 3. Aber er wird nicht dem Geschäft gegenüber diese Unterschrift vorlegen, sondern eine von dem Kunden transformierte Unterschrift.. 4. Damit ist es dann der Bank nicht mehr möglich, durch Speichern aller Kommunikationen, auf den auf Verbleib der ausgegebenen Münzen zu schließen.. 5. Für dieses Protokoll und die notwendige Transformation der Unterschrift bauen wir zuerst die Idee auf:.

(28) Einleitung BitCoins Motivation Grundlagen Aufbau einer blinden Unterschrift. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:26). <> Walter Unger 13.12.2013 19:41. Idee einer blinden Unterschrift. (c, b), m. ?. Teste: c = h(m ◦ g b y c ). P: x , y , g, p, q. V : y , g, p, q, m. r ∈ {0, . . . , q − 1} zufällig a := g r b := r − cx. WS2013/14. s. ProofLog(g, y ) σ(m) = (c, b) = ProofLogh (m, g, y ) ProofLogh (g, y ). σ(m) = (c, b) = ProofLogh (m, g, y ) P: x , y , g, p, q, h V : y , g, p, q, h r ∈ {0, . . . , q − 1} zufällig a := g r c := h(m ◦ a) b := r − cx. Z. Sicherheitsaspekte. a. c = h(m, . . .). c b. ? Teste: a ≡ g b y c.

(29) Einleitung BitCoins Motivation Grundlagen Aufbau einer blinden Unterschrift. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:27). <> Walter Unger 13.12.2013 19:41. WS2013/14. Idee einer blinden Unterschrift (Teil 2) P: x , y , g, p, q r ∈ {0, . . . , q − 1} zufällig a := g r b := r − cx. V : y , g, p, q, m a c b. Z. Sicherheitsaspekte s. ProofLog(g, y ) σ(m) = (c, b) = ProofLogh (m, g, y ) ProofLogh (g, y ). c = h(m, . . .) ? Teste: a ≡ g b y c. 1. Die Bank könnte dieses Transcript τ = (a, c, b) speichern.. 2. Dann kann sie später auf die Herkunft einer eingezahlten Münze schließen.. 3. Daher formt der Kunde das Transcript τ = (a, c, b) in ein neues Transcript τ = (a, c, b) um.. 4. Dieses neue Transcript τ = (a, c, b) soll aber auch eine gültige Unterschrift der Bank sein.. 5. Dieses neue Transcript kann nur mit Hilfe von τ erzeugt werden.. 6. Ein weiteres Transcript kann vom Kunden nicht erzeugt werden.. 7. Die Transformation erfolgt durch eine Funktion β(u,v ,w ) ..

(30) Einleitung BitCoins Motivation Grundlagen Aufbau einer blinden Unterschrift. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:28). <> Walter Unger 13.12.2013 19:41. WS2013/14. Idee einer blinden Unterschrift (Teil 2) P: x , y , g, p, q r ∈ {0, . . . , q − 1} zufällig a := g r b := r − cx. β(u,v ,w ) :. c = h(m, . . .) ? Teste: a ≡ g b y c. G × Z2q → G × Z2q (a, c, b) 7→ (a, c, b). s. ProofLog(g, y ) σ(m) = (c, b) = ProofLogh (m, g, y ) ProofLogh (g, y ). V : y , g, p, q, m a c b. Z. Sicherheitsaspekte. mit:. a = au g v y w c = uc + w b = ub + v. Es gilt: a = au g v y w = (g b y c )u g v y w = g ub+v y uc+w = g b y c . Damit ist τ = (a, c, b) auch ein korrektes Transcript einer Unterschrift..

(31) Einleitung BitCoins Motivation Grundlagen Sicherheit des Kunden. (8:29). Sicherheit Protokolle Aufbau On-Line S. Off-Line System <> Walter Unger 13.12.2013 19:41. WS2013/14. Sicherheit des Kunden β(u,v ,w ) :. G × Z2q → G × Z2q (a, c, b) 7→ (a, c, b). mit:. c = uc + w b = ub + v. Eine Unterscheidung der Transcripte durch die Bank ist nicht möglich.. Untersuche die Verteilung der Transcripte.. i. ProofLog(g, y ) σ(m) = (c, b) = ProofLogh (m, g, y ) ProofLogh (g, y ) a = au g v y w. Lemma. Beweis.. Z. Sicherheitsaspekte.

(32) Einleitung BitCoins Motivation Grundlagen Sicherheit des Kunden. (8:30). Sicherheit Protokolle Aufbau On-Line S. Off-Line System <> Walter Unger 13.12.2013 19:41. WS2013/14. Sicherheit des Kunden (Beweis) β(u,v ,w ) :. G × Z2q → G × Z2q (a, c, b) 7→ (a, c, b). mit:. Z. Sicherheitsaspekte i. ProofLog(g, y ) σ(m) = (c, b) = ProofLogh (m, g, y ) ProofLogh (g, y ) a = au g v y w c = uc + w b = ub + v. Falls u, v , w zufällig gewählt werden, so sind τ und τ unabhängig. Für τ = (a, c, b) gibt es jedes (a, c, b) genau q-mal in β(u,v ,w ) (a, c, b) mit (u, v , w ) ∈ Z3q . Damit ist die Wahrscheinlichkeit, dass τ = (a, c, b) eine Transformation von τ = (a, c, b) ist |{(u, v , w ) ∈ Z3q | β(u,v ,w ) (a, c, b) = (a, c, b)}| = q −2 |Z3q | gleich der eines zufällig gewählten Transcripts τ = (a, c, b). Damit ist eine Unterscheidung durch die Bank nicht möglich..

(33) Einleitung BitCoins Motivation Grundlagen Sicherheit der Bank. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:31). <> Walter Unger 13.12.2013 19:41. Z. Sicherheitsaspekte. WS2013/14. Sicherheit der Bank. i. ProofLog(g, y ) σ(m) = (c, b) = ProofLogh (m, g, y ) ProofLogh (g, y ). Lemma Die oben beschriebene Transformation ist die einzig mögliche. Beweis. Das wird in zwei Schritten gezeigt: 1. Zeige a := au g v y w muss so gesetzt werden.. 2. Falls τ = (a, c, b) korrektes Transcript ist, so sind c und b auch so zu setzen..

(34) Einleitung BitCoins Motivation Grundlagen Sicherheit der Bank. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:32). <> Walter Unger 13.12.2013 19:41. WS2013/14. Sicherheit der Bank (1. Teil) P: x , y , g, p, q r ∈ {0, . . . , q − 1} zufällig a := g r b := r − cx. V : y , g, p, q, m a c b. Z. Sicherheitsaspekte i. ProofLog(g, y ) σ(m) = (c, b) = ProofLogh (m, g, y ) ProofLogh (g, y ). c = h(m, . . .) ? Teste: a ≡ g b y c. Zeige a := au g v y w muss so gesetzt werden. Annahme a := au g v y w g 0 , dann gilt: a = au g v y w g 0 = (g b y c )u g v y w g 0 = g ub+v y uc+w g 0 = g b y c . Die letzte Gleichung muss gelten, da τ = (a, c, b) korrektes Transcript sein muss. Damit gilt: g b−(ub+v )+x (c−(uc+w )) = g 0 . Damit können der Kunde und die Bank den diskreten Logarithmus logg (g 0 ) bestimmen. Da g 0 zufällig gewählt worden ist, kann dieses nicht sein..

(35) Einleitung BitCoins Motivation Grundlagen Sicherheit der Bank. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:33). <> Walter Unger 13.12.2013 19:41. WS2013/14. Sicherheit der Bank (2. Teil) P: x , y , g, p, q r ∈ {0, . . . , q − 1} zufällig a := g r b := r − cx. V : y , g, p, q, m a c b. Z. Sicherheitsaspekte i. ProofLog(g, y ) σ(m) = (c, b) = ProofLogh (m, g, y ) ProofLogh (g, y ). c = h(m, . . .) ? Teste: a ≡ g b y c. Falls τ = (a, c, b) korrektes Transcript ist, so sind c und b wie oben zu setzen. Aus g b y c = a = au g v y w = (g b y c )u g v y w = g ub+v y uc+w folgt g (ub+v )−b = y c−uc+w . Damit gilt nun b = ub + v und c = uc + w , denn sonst könnte x bestimmt werden..

(36) Einleitung BitCoins Motivation Grundlagen Blinde Unterschriften. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:34). <> Walter Unger 13.12.2013 19:41. Z. Sicherheitsaspekte. WS2013/14. Protokoll BlindLogSigh (m). i. ProofLog(g, y ) σ(m) = (c, b) = ProofLogh (m, g, y ) ProofLogh (g, y ) P: x , y , g, p, q r ∈ {0, . . . , q − 1} zufällig a := g r b := r − cx. V : y , g, p, q, m a c b. β(u,v ,w ) :. c = h(m, . . .). mit:. ?. Teste: a ≡ g b y c. G × Z2q → G × Z2q (a, c, b) 7→ (a, c, b) a = au g v y w c = uc + w b = ub + v. BlindLogSigh (m) P: x , y , g, p, q. V : y , g, p, q, m. r ∈ {0, . . . , q − 1} a := g r. a. u, v , w ∈ {0, . . . , q − 1}, v 6= 0 zufällig a := au g v y w und c := h(m ◦ a). b := r − cx. c b. c := (c − w )u −1 ?. Teste: a ≡ g b y c b := ub + v und σ(m) := (c, b) ?. Ein Test dieser Unterschrift erfolgt durch c = h(m ◦ g b y c )..

(37) Einleitung BitCoins Motivation Grundlagen Blinde Unterschriften. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:35). <> Walter Unger 13.12.2013 19:41. WS2013/14. Bemerkungen BlindLogSigh (m) P: x , y , g, p, q r ∈ {0, . . . , q − 1} a := g r b := r − cx. V : y , g, p, q, m a c b. Z. Sicherheitsaspekte i. ProofLog(g, y ) σ(m) = (c, b) = ProofLogh (m, g, y ) ProofLogh (g, y ) BlindLogSigh (m). u, v , w ∈ {0, . . . , q − 1}, v 6= 0 zufällig a := au g v y w und c := h(m ◦ a) c := (c − w )u −1 ?. Teste: a ≡ g b y c b := ub + v und σ(m) := (c, b). 1. Es ist nur eine Unterschrift (Münze) möglich, denn h ist kollisionssicher.. 2. Durch die oben genannte Überlegung kann V nur ein a kennen mit au g v y w und zugehörigen korrekten Werten (c, b).. 3. Eine Erweiterung, das Okamoto-Schnorr Protokoll, ist sicher unter der Annahme, dass der Diskrete Logarithmus nicht effizient berechenbar ist.. 4. Schreibweise: (c, b) = BlindLogSigh (m)..

(38) Einleitung BitCoins Motivation Grundlagen Blinde Unterschriften. (8:36). Sicherheit Protokolle Aufbau On-Line S. Off-Line System <> Walter Unger 13.12.2013 19:41. Erinnerung: V : y1 , y2 g, p, q. P: g, p, q. Z. Sicherheitsaspekte. WS2013/14. ProofLog(g, y ) σ(m) = (c, b) = ProofLogh (m, g, y ) ProofLogh (g, y ) BlindLogSigh (m). r ∈ {0, . . . , q − 1} zufällig a := (a1 , a2 ) := (g1r , g2r ). a. b := r − cx. c b. i. c ∈ {0, . . . , q − 1} zufällig. ? Teste: a1 ≡ g1b y1c ? Teste: a2 ≡ g2b y2c. Analog kann ein Protokoll, dass zwei Logarithmen gleich sind, mit blinder Unterschrift aus dem oben genannten Protokoll aufgebaut werden..

(39) Einleitung BitCoins Motivation Grundlagen. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. Blinde Unterschrift mit zwei gleichen Logarithmen. (8:37). <> Walter Unger 13.12.2013 19:41. Protokoll BlindLogSigEqh (g, y , m) V : y , g, p, q, m s, t∈ {0, . . . , q − 1} zufällig, s 6= 0 r ∈ {0, . . . , q − 1} zufällig. m. m := m1/s g −t/s. z := mx a := (a1 , a2 ) := (g r , mr ). a, z. u, v , w ∈ {0, . . . , q − 1}, v 6= 0 zufällig a1 := au1 g v y w a2 := (au2 mv z w )s (au1 g v y w )t z := z s y t c := h(m ◦ z◦a1 ◦a2 ). b := r − cx. c b. c := (c − w )u −1 b := ub + v ?. teste: a1 ≡ g b y c ?. teste: a2 ≡ mb z c Ergebnis: (z,c, b). Geschafft!. WS2013/14. i. ProofLog(g, y ) σ(m) = (c, b) = ProofLogh (m, g, y ) ProofLogh (g, y ) BlindLogSigh (m). BlindLogSigEq P: x , y , g, p, q. Z. Sicherheitsaspekte.

(40) Einleitung BitCoins Motivation Grundlagen. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. Blinde Unterschrift mit zwei gleichen Logarithmen. (8:38). <> Walter Unger 13.12.2013 19:41. WS2013/14. Protokoll BlindLogSigEqh (g, y , m) V : y , g, p, q, m. s, t∈ {0, . . . , q − 1} zufällig, s 6= 0 r ∈ {0, . . . , q − 1} zufällig z := mx a := (a1 , a2 ) := (g r , mr ). b := r − cx. m a, z. c b. i. ProofLog(g, y ) σ(m) = (c, b) = ProofLogh (m, g, y ) ProofLogh (g, y ) BlindLogSigh (m). BlindLogSigEq P: x , y , g, p, q. Z. Sicherheitsaspekte. m := m1/s g −t/s u, v , w ∈ {0, . . . , q − 1}, v 6= 0 zufällig a1 := au1 g v y w a2 := (au2 mv z w )s (au1 g v y w )t z := z s y t c := h(m ◦ z◦a1 ◦a2 ) c := (c − w )u −1 b := ub + v ?. teste: a1 ≡ g b y c ? teste: a2 ≡ mb z c Ergebnis: (z,c, b). Schreibweise: (z, c, b) = BlindLogSigEqh (g, y , m). ?. Test der erzeugten blinden Unterschrift: c = h(m ◦ z ◦ g b y c ◦ mb z c ) Weiterhin kann noch eine weitere Nachricht M von P unterschrieben werden, indem M als zusätzlicher Parameter zu h hinzugenommen wird, d.h. h(M ◦ m ◦ z ◦ a1 ◦ a2 ) bestimmt wird..

(41) Einleitung BitCoins Motivation Grundlagen Faires Elektronisches Geld (Systemaufbau). Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:39). <> Walter Unger 13.12.2013 19:41. Z. Sicherheitsaspekte. WS2013/14. Einleitung. i. ProofLog(g, y ) σ(m) = (c, b) = ProofLogh (m, g, y ) ProofLogh (g, y ) BlindLogSigh (m). Im Folgenden entspricht Geld einer einzelnen Münze. D.h. wir zeigen, wie eine Münze fair übertragen wird. Eine Erweiterung auf mehrere Münzen oder auf Münzen von verschiedenem Wert ist einfach. Aufbau: p, q Primzahlen mit q teilt p − 1, G Untergruppe der Ordnung q in Z∗p , g, g1 , g2 Generatoren in G und h : {0, 1}∗ → Zp kollisionssichere Hashfunktion. Es ist wichtig, dass der diskrete Logarithmus zwischen den Generatoren g, g1 , g2 unbekannt ist..

(42) Einleitung BitCoins Motivation Grundlagen Faires Elektronisches Geld (Systemaufbau). Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:40). <> Walter Unger 13.12.2013 19:41. WS2013/14. Aufbau des Systems. y. Staat: g2. Bank: g. BB: g, g1 , g2. Kunde: g1. Laden: g1. wählt x ∈ {1, . . . q − 1} geheimer Schlüssel y. y := g x öffentlicher Schlüssel wählt xT ∈ {1, . . . q − 1} geheimer Schlüssel. yT. yC. yT. x. yT := g2 T öffentlicher Schlüssel wählt xC ∈ {1, . . . q − 1} geheimer Schlüssel yC. x. yC := g1 C öffentlicher Schlüssel wählt xS ∈ {1, . . . q − 1} geheimer Schlüssel. yS. yS. x. yS := g1 S öffentlicher Schlüssel. Kunde belegt seine Identität mit ProofLog(g1 , yC ).. Z. Sicherheitsaspekte i.

(43) Einleitung BitCoins Motivation Grundlagen Einleitung. (8:41). Sicherheit Protokolle Aufbau On-Line S. Off-Line System <> Walter Unger 13.12.2013 19:41. Z. Sicherheitsaspekte. WS2013/14. Einleitung Im Folgenden werden wir zuerst ein on-line System betrachten,. d.h. bei dem Abheben der Münze und beim Bezahlen im Laden wird eine Kommunikation mit der Bank bzw. Staat durchgeführt, um die Münze zu verifizieren. Dann ist das Kopieren einer Münze nicht möglich, da die Bank eine Liste der eingezahlten Münzen vorhält. Das Abheben einer Münze von der Bank geschieht mit einem Protokoll analog zum Protokoll BlindLogSigh mit einer leeren Nachricht m.. i.

(44) Einleitung BitCoins Motivation Grundlagen Münze von der Bank abheben. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:42). <> Walter Unger 13.12.2013 19:41. Situation (Geld abheben) Staat:. a, c, EStaat (u, v , w ). 3:a, c, h. 4:a, c, h. 2:c, h. Speichert: (a, c, b) 7→ (a, c, b). 5:b. Bank X : τ = (a, c, b). 1:a. Kunde:. β(u,v ,w ) (τ ) = τ = (a, c, b) h = EStaat (u, v , w ). Münze: (c, b). Laden:. Z. Sicherheitsaspekte. WS2013/14. i.

(45) Einleitung BitCoins Motivation Grundlagen Münze von der Bank abheben. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:43). <> Walter Unger 13.12.2013 19:41. WS2013/14. Münze von der Bank abheben (1.Teil) BlindLogSigh (m) P: x , y , g, p, q V : y , g, p, q, m r ∈ {0, . . . , q − 1} a u, v , w ∈ {0, . . . , q − 1}, v 6= 0 zufällig a := g r a := au g v y w und c := h(m ◦ a) c c := (c − w )u −1 b := r − cx b ? Teste: a ≡ g b y c b := ub + v und σ(m) := (c, b) Bank: g, g1 , g2 , x , y , yC , p, q Kunde: g, g1 , g2 , xC , yC , y , p, q. r ∈ {0, . . . , q − 1} a := g r. a. u, v , w ∈ {0, . . . , q − 1}, v 6= 0 a := au g v y w. c, EyT (u, v , w ). c, EyT (u, v , w ). c := h(a) c := (c − w )u −1 Staat: g, g1 , g2 , xT , yT , yC , y , p, q. a, c, EyT (u, v , w ). (u, v , w ) := DxT (EyT (u, v , w )) ?. test uc + w ≡ h(au g v y w ) Speichert: (a, c) ↔ (u, v , w ). Testergebnis b := r − cx. b. ?. Teste: a ≡ g b y c b := ub + v σ := (c, b) ist die Münze. Z. Sicherheitsaspekte i.

(46) Einleitung BitCoins Motivation Grundlagen Zahlungsverkehr. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:44). <> Walter Unger 13.12.2013 19:41. WS2013/14. Situation (Geld ausgeben) Staat:. a, c, EStaat (u, v , w ). 4:a, c, h. 3:a, c, h. Speichert: (a, c, b) 7→ (a, c, b). Bank X : τ = (a, c, b). Münze: (c, b) ?. β(u,v ,w ) (τ ) = τ = (a, c, b) h = EStaat (u, v , w ). 7:(c, b). 5:b. 1:a. Kunde:. 2:c, h. c = h(g b y c ). Münze: (c, b). 6:(c, b). Laden: Münze: (c, b) ?. c = h(g b y c ). Problematisch nur im Off-Line Fall.. Z. Sicherheitsaspekte i.

(47) Einleitung BitCoins Motivation Grundlagen Zahlungsverkehr. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:45). <> Walter Unger 13.12.2013 19:41. WS2013/14. Zahlungsverkehr Bank: g, g1 , g2 , x , y , yC , p, q. Laden: g, g1 , g2 , xS , yS , y , yC , p, q (c, b) b c. Test: c = h(g y ) Test: c = h(g b y c ) Test: (c, b) Ersteinzahlung. (c, b) Testergebnis. Sicherheitstest Testergebnis. Z. Sicherheitsaspekte. Kunde: g, g1 , g2 , xC , yC , y , p, q. i.

(48) Einleitung BitCoins Motivation Grundlagen Sicherheitsaspekte. (8:46). Sicherheit Protokolle Aufbau On-Line S. Off-Line System <> Walter Unger 13.12.2013 19:41. WS2013/14. Zahlungsrückverfolgung und Sicherheit. Z. Sicherheitsaspekte. Der Staat kann über die Verbindung (a, c, b) ↔ (a, b) die Münze zurückverfolgen. Die Sicherheit ergibt sich über die Sicherheit der blinden Unterschrift und die Sicherheit der Verschlüsselungsverfahren.. i.

(49) Einleitung BitCoins Motivation Grundlagen Zusammenfassung. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:47). <> Walter Unger 13.12.2013 19:41. WS2013/14. Zusammenfassung (Vorbereitung) BB: g, g1 , g2 y yT yC yS. Bank: g y. Staat: g2. Kunde: g1. Laden: g1. wählt x ∈ {1, . . . q − 1} geheimer Schlüssel y := g x öffentlicher Schlüssel wählt xT ∈ {1, . . . q − 1} geheimer Schlüssel yT x yT := g2 T öffentlicher Schlüssel wählt xC ∈ {1, . . . q − 1} geheimer Schlüssel yC x yC := g1 C öffentlicher Schlüssel wählt xS ∈ {1, . . . q − 1} geheimer Schlüssel yS x yS := g1 S öffentlicher Schlüssel. Bank: g, g1 , g2 , x , y , yC , p, q r ∈ {0, . . . , q − 1} a := g r. c, EyT (u, v , w ). a. c, EyT (u, v , w ). Kunde: g, g1 , g2 , xC , yC , y , p, q u, v , w ∈ {0, . . . , q − 1}, v 6= 0 a := au g v y w c := h(a) c := (c − w )u −1 Staat: g, g1 , g2 , xT , yT , yC , y , p, q. a, c, EyT (u, v , w ). (u, v , w ) := DxT (EyT (u, v , w )) ? test uc + w ≡ h(au g v y w ) Speichert: (a, c) ↔ (u, v , w ). Testergebnis b := r − cx. b. ?. Teste: a ≡ g b y c b := ub + v σ := (c, b) ist die Münze. Z. Sicherheitsaspekte i.

(50) Einleitung BitCoins Motivation Grundlagen Zusammenfassung. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:48). <> Walter Unger 13.12.2013 19:41. WS2013/14. Zusammenfassung Bank: g, g1 , g2 , x , y , yC , p, q r ∈ {0, . . . , q − 1} a := g r. c, EyT (u, v , w ). Kunde: g, g1 , g2 , xC , yC , y , p, q. a. c, EyT (u, v , w ). u, v , w ∈ {0, . . . , q − 1}, v 6= 0 a := au g v y w c := h(a) c := (c − w )u −1 Staat: g, g1 , g2 , xT , yT , yC , y , p, q. a, c, EyT (u, v , w ). (u, v , w ) := DxT (EyT (u, v , w )) ? test uc + w ≡ h(au g v y w ) Speichert: (a, c) ↔ (u, v , w ). Testergebnis b := r − cx. b. Bank: g, g1 , g2 , x , y , yC , p, q. Test: c = h(g b y c ) Test: (c, b) Ersteinzahlung. ?. Teste: a ≡ g b y c b := ub + v σ := (c, b) ist die Münze Laden: g, g1 , g2 , xS , yS , y , yC , p, q (c, b) Kunde: g, g1 , g2 , xC , yC , y , p, q. (c, b) Testergebnis. Test: c = h(g b y c ) Sicherheitstest Testergebnis. Z. Sicherheitsaspekte i.

(51) Einleitung BitCoins Motivation Grundlagen Einleitung. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:49). <> Walter Unger 13.12.2013 19:41. Idee (On-Line −→ Off-Line). Z. Sicherheitsaspekte. WS2013/14. Idee: On-Line: Münze durch blinde Unterschrift. Off-Line: Also keine Kommunikation mit dem Staat. Off-Line: Dann muss Staat später Münze lesen können. Münze: zwei Logarithmen sind gleich (Beteiligt: Staatslogarithmus). Vorgehen: Eine Verdopplung der Münze ist nun möglich. Diese Verdopplung kann vom Kunden und vom Geschäft versucht werden. Aber über den Staat kann man feststellen, wer die Münze verdoppelt hat. Daher wird dieses Mal als Basisprotokoll BlindLogSigEqh verwendet. Dadurch ist eine Rückverfolgung über gemeinsame Exponenten möglich.. i.

(52) Einleitung BitCoins Motivation Grundlagen Einleitung. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:50). <> Walter Unger 13.12.2013 19:41. Erinnerung V : y , g, p, q, m s, t∈ {0, . . . , q − 1} zufällig, s 6= 0 r ∈ {0, . . . , q − 1} zufällig. m. m := m1/s g −t/s. z := mx a := (a1 , a2 ) := (g r , mr ). a, z. u, v , w ∈ {0, . . . , q − 1}, v 6= 0 zufällig a1 := au1 g v y w a2 := (au2 mv z w )s (au1 g v y w )t z := z s y t c := h(m ◦ z◦a1 ◦a2 ). b := r − cx. c b. WS2013/14. i. ProofLog(g, y ) σ(m) = (c, b) = ProofLogh (m, g, y ) ProofLogh (g, y ) BlindLogSigh (m). BlindLogSigEq P: x , y , g, p, q. Z. Sicherheitsaspekte. c := (c − w )u −1 b := ub + v ?. teste: a1 ≡ g b y c ?. teste: a2 ≡ mb z c Ergebnis: (z,c, b) P kennt logg (y ) = logm (z).

(53) Einleitung BitCoins Motivation Grundlagen Einleitung. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:51). <> Walter Unger 13.12.2013 19:41. Einleitung. s zufällig vom Kunden gewählt und z = mx . Unterschrift durch Bank BlindLogEqSigh . Bank sieht m = m1/s g −t/s (hier t = 0) Kunde kann beweisen: ProofLogh (M, m/g1 , g2 ), d.h. kennt s x s. s wird verschlüsselt: d = yTs = g2 T . Rückverfolgung durch m =. WS2013/14. i. ProofLog(g, y ) σ(m) = (c, b) = ProofLogh (m, g, y ) ProofLogh (g, y ) BlindLogSigh (m). Münze: (m, z) mit m = g1 g2s. g1 g2s. Z. Sicherheitsaspekte. = g1 d 1/xT .. Rückverfolgung durch m = m1/s ..

(54) Einleitung BitCoins Motivation Grundlagen Münze von der Bank abheben. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:52). <> Walter Unger 13.12.2013 19:41. WS2013/14. Münze von der Bank abheben. (m, z): m = g1 g2s und z = mx x s d = yTs = g2 T m = m1/s Kunde: g, g1 , g2 , p, q, xC , yC , y , yT. Bank: g, g1 , g2 , p, q, x , y , yC , yT. s ∈ {0, . . . , q − 1} m = g1 g2s d = yT s 1/s m = m1/s = g1 g2 ?. c = h((m/g2 )b g1c ) ?. c = h(yTb d c ) Speichere d. Z. Sicherheitsaspekte. (c, b) = ProofLogEqh (m/g2 , g1 , yT , d) d.h. logm/g (g1 ) = logy (d) = s. c, b, m/g2. 2. g1 , d, yT. T. r ∈ {0, . . . , q − 1} c# = g r Nummer der Münze (z, c1 , b1 ) = BlindLogSigEqh (c# , g, y , m) 1/s. s von oben t = 0, d.h. m = m1/s = g1. g2 wird genutzt. Bank hat c# unterschrieben. i.

(55) Einleitung BitCoins Motivation Grundlagen Münze von der Bank abheben. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:53). <> Walter Unger 13.12.2013 19:41. WS2013/14. Münze von der Bank abheben. (m, z): m = g1 g2s und z = mx x s d = yTs = g2 T m = m1/s Kunde: g, g1 , g2 , p, q, xC , yC , y , yT. Bank: g, g1 , g2 , p, q, x , y , yC , yT. s ∈ {0, . . . , q − 1} 1/s. ?. c = h((m/g2 )b g1c ) ?. h(yTb d c ). c = r ∈ {0, . . . , q − 1} zuf. z := mx. a := (a1 , a2 ) := (g r , mr ). b := r − cx. Z. Sicherheitsaspekte. c, b, m/g2 , g1 , d, yT m. a, z. m = g1 g2s , d = yT s , m = m1/s = g1 g2 (c, b) = ProofLogEqh (m/g2 , g1 , yT , d) d.h. logm/g (g1 ) = logy (d) = s 2. T. r ∈ {0, . . . , q − 1} c# = g r. u, v , w ∈ {0, . . . , q − 1}, v 6= 0 zuf. a1 := au1 g v y w , a2 := (au2 mv z w )s. c b. z := z s , c1 := h(c# ◦ m ◦ z ◦ a1 ◦ a2 ) c := (c1 − w )u −1 ?. teste: a1 ≡ g b y c ? a 2 ≡ mb z c d.h. logg (y ) = logm (z) = log 1/s (mx /s ) m b1 := ub + v , Ergebnis: (z, c1 , b1 ). i.

(56) Einleitung BitCoins Motivation Grundlagen Münze von der Bank abheben. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:54). <> Walter Unger 13.12.2013 19:41. Z. Sicherheitsaspekte. WS2013/14. Eigenschaften. i. x s (m, z): m = g1 g2s und z = mx und d = yTs = g2 T und m = m1/s. logm/g (g1 ) = logy (d) = s und logg (y ) = logm (z) = log 1/s (mx /s ) mit SigBank (c# ) T Bank: g, g1 , g2 , p, q, x , y , yC , yT 2 Kunde: g, g1 , g2 , p, q, xCm, yC , y , yT s ∈ {0, . . . , q − 1} 1/s. ?. c = h((m/g2 )b g1c ). c, b, m/g2 , g1 , d, yT. ?. c = h(yTb d c ) r ∈ {0, . . . , q − 1} zuf. z := mx. a := (a1 , a2 ) := (g r , mr ). b := r − cx. m. a, z. c b. m = g1 g2s , d = yT s , m = m1/s = g1 g2 (c, b) = ProofLogEqh (m/g2 , g1 , yT , d) d.h. logm/g (g1 ) = logy (d) = s 2. T. r ∈ {0, . . . , q − 1} c# = g r. u, v , w ∈ {0, . . . , q − 1}, v 6= 0 zuf. a1 := au1 g v y w , a2 := (au2 mv z w )s. z := z s , c1 := h(c# ◦ m ◦ z ◦ a1 ◦ a2 ) c := (c1 − w )u −1 ? teste: a1 ≡ g b y c ?. a 2 ≡ mb z c d.h. logg (y ) = logm (z) = log 1/s (mx /s ) m b1 := ub + v , Ergebnis: (z, c1 , b1 ). logm/g2 (g1 ) = logyT (d) = s logg (y ) = logm (z) = logm1/s (mx /s ) Bank hat c# unterschrieben..

(57) Einleitung BitCoins Motivation Grundlagen Bezahlung im Geschäft. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:55). <> Walter Unger 13.12.2013 19:41. Z. Sicherheitsaspekte. WS2013/14. Bezahlung im Geschäft x s. i. (m, z): m = g1 g2s und z = mx und d = yTs = g2 T und m = m1/s logm/g (g1 ) = logy (d) = s T 2 logg (y ) = logm (z) = log 1/s (mx /s ) mit SigBank (c# ) m. Laden: g, g1 , g2 , p, q, xS , yS , y , yC. Kunde: g, g1 , g2 , p, q, xC , yC , y M = yS ◦ time ◦ (c1 , b1 ) (c2 , b2 ) = ProofLogh (M, m/g1 , g2 ). teste M ?. c2 = h(M, c# ) ?. (z, c1 , b1 ) = BlindLogSigEqh (c# , g, y , m) ?. (c2 , b2 ) = ProofLogh (M, m/g1 , g2 ) ?. c. d.h. c2 = h(M ◦ (m/g1 )b2 ◦ g2 2 ). C1 = (c1 , b1 , c# , g, y , m, z) C2 = (c2 , b2 , M, g2 , m/g1 ). mit: c# = g r für a mit Geheimnis s = logg (m/g1 ) 2.

(58) Einleitung BitCoins Motivation Grundlagen Bezahlung im Geschäft. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:56). <> Walter Unger 13.12.2013 19:41. Z. Sicherheitsaspekte. WS2013/14. Bezahlung im Geschäft x s. i. (m, z): m = g1 g2s und z = mx und d = yTs = g2 T und m = m1/s logm/g (g1 ) = logy (d) = s T 2 σ(m) = (c, b) = ProofLogh (m, g, y ) logg (y ) = logm (z) = log 1/s (mx /s ) mit SigBank (c# ) m P: x , y , g, p, q, h V : y , g, p, q, h r ∈ {0, . . . , q − 1} zufällig a := g r c := h(m ◦ a) b := r − cx. (c, b), m. Laden: g, g1 , g2 , p, q, xS , yS , y , yC. ?. Teste: c = h(m ◦ g b y c ) Kunde: g, g1 , g2 , p, q, xC , yC , y. M = yS ◦ time ◦ (c1 , b1 ) (c2 , b2 ) = ProofLogh (M, m/g1 , g2 ) mit: c# = g r für a C1 = (c1 , b1 , c# , g, y , m, z) mit Geheimnis s = logg (m/g1 ) teste M 2 C2 = (c2 , b2 , M, g2 , m/g1 ) ? c2 = h(M, c# ) ? (z, c1 , b1 ) = BlindLogSigEqh (c# , g, y , m) ? (c2 , b2 ) = ProofLogh (M, m/g1 , g2 ) ? c d.h. c2 = h(M ◦ (m/g1 )b2 ◦ g2 2 ).

(59) Einleitung BitCoins Motivation Grundlagen Bezahlung im Geschäft. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:57). <> Walter Unger 13.12.2013 19:41. WS2013/14. Bezahlung im Geschäft x s. (m, z): m = g1 g2s und z = mx und d = yTs = g2 T σ(m) = (c, b) = ProofLogh (m, g, y ) P: x , y , g, p, q, h V : y , g, p, q, h r ∈ {0, . . . , q − 1} zufällig a := g r c := h(m ◦ a) b := r − cx. (c, b), m. Laden: g, g1 , g2 , p, q, xS , yS , y , yC. und m = m1/s. Z. Sicherheitsaspekte i. logm/g (g1 ) = logy (d) = s T 2. logg (y ) = logm (z) = log 1/s (mx /s ) mit c# m s = logg (m/g1 ) mit c# 2. ?. Teste: c = h(m ◦ g b y c ) Kunde: g, g1 , g2 , p, q, xC , yC , y. M = yS ◦ time ◦ (c1 , b1 ) (c2 , b2 ) = ProofLogh (M, m/g1 , g2 ) mit: c# = g r für a C1 = (c1 , b1 , c# , g, y , m, z) mit Geheimnis s = logg (m/g1 ) teste M 2 C2 = (c2 , b2 , M, g2 , m/g1 ) ? c2 = h(M, c# ) ? (z, c1 , b1 ) = BlindLogSigEqh (c# , g, y , m) ? (c2 , b2 ) = ProofLogh (M, m/g1 , g2 ) ? c d.h. c2 = h(M ◦ (m/g1 )b2 ◦ g2 2 ).

(60) Einleitung BitCoins Motivation Grundlagen Bezahlung im Geschäft. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:58). <> Walter Unger 13.12.2013 19:41. Z. Sicherheitsaspekte. WS2013/14. Geldfluss x s (m, z): m = g1 g2s und z = mx und d = yTs = g2 T und m = m1/s. Bank: g, g1 , g2 , p, q, x , y , yC , yT. ?. b c c = h((m/g 2 ) g1 ) ? c = h(yTb d c ) r ∈ {0, . . . , q − 1} zuf. z := mx a := (a1 , a2 ) := (g r , mr ). i. logm/g (g1 ) = logy (d) = s 2. T. logg (y ) = logm (z) = log 1/s (mx /s ) mit c# und s = logg (m/g1 ) mit c# 2 Kunde:mg, g1 , g2 , p, q, xC , yC , y , yT s ∈ {0, . . . , q − 1} 1/s m = g1 g2s , d = yT s , m = m1/s = g1 g2 c, b, m/g2 , g1 , d, yT (c, b) = ProofLogEqh (m/g2 , g1 , yT , d) d.h. logm/g (g1 ) = logy (d) = s T 2 m r ∈ {0, . . . , q − 1} c# = g r. b := r − cx. Laden: g, g1 , g2 , p, q, xS , yS , y , yC. a, z. c b. u, v , w ∈ {0, . . . , q − 1}, v 6= 0 zuf. a1 := au1 g v y w , a2 := (au2 mv z w )s z := z s , c1 := h(c# ◦ m ◦ z ◦ a1 ◦ a2 ) c := (c1 − w )u −1 ?. b c teste: ? a1 ≡ g y a 2 ≡ mb z c d.h. logg (y ) = logm (z) = log 1/s (mx /s ) m b1 := ub + v , Ergebnis: (z, c1 , b1 ). Kunde: g, g1 , g2 , p, q, xC , yC , y M = yS ◦ time ◦ (c1 , b1 ) (c2 , b2 ) = ProofLogh (M, m/g1 , g2 ) r C1 = (c1 , b1 , c# , g, y , m, z) mit: c# = g für a mit Geheimnis s = logg (m/g1 ) teste M 2 ? C2 = (c2 , b2 , M, g2 , m/g1 ) c2 = h(M, c# ) ? (z, c1 , b1 ) = BlindLogSigEqh (c# , g, y , m) ? (c2 , b2 ) =? ProofLogh (M, m/g1 , g2 ) c d.h. c2 = h(M ◦ (m/g1 )b2 ◦ g2 2 ).

(61) Einleitung BitCoins Motivation Grundlagen Einzahlung bei der Bank. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:59). <> Walter Unger 13.12.2013 19:41. Z. Sicherheitsaspekte. WS2013/14. Einzahlung bei der Bank x s (m, z): m = g1 g2s und z = mx und d = yTs = g2 T und m = m1/s. i. logm/g (g1 ) = logy (d) = s 2. T. logg (y ) = logm (z) = log 1/s (mx /s ) mit c# und s = logg (m/g1 ) mit c# 2 m Laden: g, g1 , g2 , p, q, xS , yS , y , yC. Kunde: g, g1 , g2 , p, q, xC , yC , y. M = yS ◦ time ◦ (c1 , b1 ) (c2 , b2 ) = ProofLogh (M, m/g1 , g2 ) mit: c# = g r für a C1 = (c1 , b1 , c# , g, y , m, z) mit Geheimnis s = logg (m/g1 ) teste M 2 C2 = (c2 , b2 , M, g2 , m/g1 ) ? c2 = h(M, c# ) ? (z, c1 , b1 ) = BlindLogSigEqh (c# , g, y , m) ? (c2 , b2 ) = ProofLogh (M, m/g1 , g2 ) ? c d.h. c2 = h(M ◦ (m/g1 )b2 ◦ g2 2 ). Es werden einfach die Transscipte der Bank übergeben. D.h. Bank bekommt C1 , C2 . Falls C1 , C2 vorhanden, so hat das Geschäft verdoppelt. Falls nur C1 vorhanden, so hat der Kunde verdoppelt..

(62) Einleitung BitCoins Motivation Grundlagen Einzahlung bei der Bank. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:60). <> Walter Unger 13.12.2013 19:41. Z. Sicherheitsaspekte. WS2013/14. Einzahlung bei der Bank x s (m, z): m = g1 g2s und z = mx und d = yTs = g2 T und m = m1/s. i. logm/g (g1 ) = logy (d) = s 2. T. logg (y ) = logm (z) = log 1/s (mx /s ) mit c# und s = logg (m/g1 ) mit c# 2 m Laden: g, g1 , g2 , p, q, xS , yS , y , yC. Kunde: g, g1 , g2 , p, q, xC , yC , y. M = yS ◦ time ◦ (c1 , b1 ) (c2 , b2 ) = ProofLogh (M, m/g1 , g2 ) mit: c# = g r für a C1 = (c1 , b1 , c# , g, y , m, z) mit Geheimnis s = logg (m/g1 ) teste M 2 C2 = (c2 , b2 , M, g2 , m/g1 ) ? c2 = h(M, c# ) ? (z, c1 , b1 ) = BlindLogSigEqh (c# , g, y , m) ? (c2 , b2 ) = ProofLogh (M, m/g1 , g2 ) ? c d.h. c2 = h(M ◦ (m/g1 )b2 ◦ g2 2 ) Laden: g, g1 , g2 , xS , yS , y , yC , p, q. C1 , C2. Bank: g, g1 , g2 , x , y , yC , p, q Falls C1 , C2 vorhanden, hat Geschäft verdoppelt; Falls nur C1 vorhanden, hat Kunde verdoppelt..

(63) Einleitung BitCoins Motivation Grundlagen Rückverfolgung. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:61). <> Walter Unger 13.12.2013 19:41. Z. Sicherheitsaspekte. WS2013/14. Zahlungsrückverfolgung einer Münze x s (m, z): m = g1 g2s und z = mx und d = yTs = g2 T und m = m1/s. logm/g (g1 ) = logy (d) = s T. 2. logg (y ) = logm (z) = log 1/s (mx /s ) mit c# und s = logg (m/g1 ) mit c# m Kunde: g, g1 , g2 , p, q, xC , yC , y , yT 2. Bank: g, g1 , g2 , p, q, x , y , yC , yT. s ∈ {0, . . . , q − 1} 1/s. ?. c = h((m/g2 )b g1c ) ? c = h(yTb d c ) r ∈ {0, . . . , q − 1} zuf.. c, b, m/g2 , g1 , d, yT. c b. Suche m in Transaktionen. d m. T. r ∈ {0, . . . , q − 1} c# = g r. a, z. b := r − cx. m = g1 g2s , d = yT s , m = m1/s = g1 g2 (c, b) = ProofLogEqh (m/g2 , g1 , yT , d) d.h. logm/g (g1 ) = logy (d) = s 2. m. z := mx a := (a1 , a2 ) := (g r , mr ). Bank: g, g1 , g2 , x , y , yC , p, q. i. u, v , w ∈ {0, . . . , q − 1}, v 6= 0 zuf. a1 := au1 g v y w , a2 := (au2 mv z w )s z := z s , c1 := h(c# ◦ m ◦ z ◦ a1 ◦ a2 ) c := (c1 − w )u −1 ?. teste: a1 ≡ g b y c ? a 2 ≡ mb z c d.h. logg (y ) = logm (z) = log 1/s (mx /s ) m b1 := ub + v , Ergebnis: (z, c1 , b1 ) Staat: g, g1 , g2 , xT , yT , yC , y , p, q g1 d 1/xT = g1 g2s = m.

(64) Einleitung BitCoins Motivation Grundlagen Rückverfolgung. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. (8:62). <> Walter Unger 13.12.2013 19:41. Z. Sicherheitsaspekte. WS2013/14. Zahlungsrückverfolgung einer Münze x s (m, z): m = g1 g2s und z = mx und d = yTs = g2 T und m = m1/s. logm/g (g1 ) = logy (d) = s T. 2. logg (y ) = logm (z) = log 1/s (mx /s ) mit c# und s = logg (m/g1 ) mit c# m Kunde: g, g1 , g2 , p, q, xC , yC , y , yT 2. Bank: g, g1 , g2 , p, q, x , y , yC , yT. s ∈ {0, . . . , q − 1} 1/s. c, b, m/g2 , g1 , d, yT. ?. c = h((m/g2 )b g1c ) ? c = h(yTb d c ) r ∈ {0, . . . , q − 1} zuf.. m. z := mx a := (a1 , a2 ) := (g r , mr ). a, z. c b. b := r − cx. Bank: g, g1 , g2 , x , y , yC , p, q. m = g1 g2s , d = yT s , m = m1/s = g1 g2 (c, b) = ProofLogEqh (m/g2 , g1 , yT , d) d.h. logm/g (g1 ) = logy (d) = s 2. d. T. r ∈ {0, . . . , q − 1} c# = g r. u, v , w ∈ {0, . . . , q − 1}, v 6= 0 zuf. a1 := au1 g v y w , a2 := (au2 mv z w )s z := z s , c1 := h(c# ◦ m ◦ z ◦ a1 ◦ a2 ) c := (c1 − w )u −1 ?. teste: a1 ≡ g b y c ? a 2 ≡ mb z c d.h. logg (y ) = logm (z) = log 1/s (mx /s ) m b1 := ub + v , Ergebnis: (z, c1 , b1 ). Staat: g, g1 , g2 , xT , yT , yC , y , p, q m. Suche d in Transaktionen. i. (m/g1 )xT = (g2s )xT = yTs = d.

(65) Einleitung BitCoins Motivation Grundlagen. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. Sicherheitsaspekte und zugrundeliegende Probleme. (8:63). <> Walter Unger 13.12.2013 19:41. Z. Sicherheitsaspekte. WS2013/14. Münzverdopplung x s (m, z): m = g1 g2s und z = mx und d = yTs = g2 T und m = m1/s. i. logm/g (g1 ) = logy (d) = s 2. T. logg (y ) = logm (z) = log 1/s (mx /s ) mit c# und s = logg (m/g1 ) mit c# 2 m Laden: g, g1 , g2 , p, q, xS , yS , y , yC. Kunde: g, g1 , g2 , p, q, xC , yC , y. M = yS ◦ time ◦ (c1 , b1 ) (c2 , b2 ) = ProofLogh (M, m/g1 , g2 ) mit: c# = g r für a C1 = (c1 , b1 , c# , g, y , m, z) mit Geheimnis s = logg (m/g1 ) teste M 2 C2 = (c2 , b2 , M, g2 , m/g1 ) ? c2 = h(M, c# ) ? (z, c1 , b1 ) = BlindLogSigEqh (c# , g, y , m) ? (c2 , b2 ) = ProofLogh (M, m/g1 , g2 ) ? c d.h. c2 = h(M ◦ (m/g1 )b2 ◦ g2 2 ). Falls der Kunde verdoppelt, unterschreibt er zweimal c#. Damit gibt er s preis. Damit kann die Bank m = m1/s bestimmen. Damit ist der Kunde erkannt..

(66) Einleitung BitCoins Motivation Grundlagen. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. Sicherheitsaspekte und zugrundeliegende Probleme. (8:64). <> Walter Unger 13.12.2013 19:41. Z. Sicherheitsaspekte. WS2013/14. Münzverdopplung x s (m, z): m = g1 g2s und z = mx und d = yTs = g2 T und m = m1/s. i. logm/g (g1 ) = logy (d) = s 2. T. logg (y ) = logm (z) = log 1/s (mx /s ) mit c# und s = logg (m/g1 ) mit c# 2 m Laden: g, g1 , g2 , p, q, xS , yS , y , yC. Kunde: g, g1 , g2 , p, q, xC , yC , y. M = yS ◦ time ◦ (c1 , b1 ) (c2 , b2 ) = ProofLogh (M, m/g1 , g2 ) mit: c# = g r für a C1 = (c1 , b1 , c# , g, y , m, z) mit Geheimnis s = logg (m/g1 ) teste M 2 C2 = (c2 , b2 , M, g2 , m/g1 ) ? c2 = h(M, c# ) ? (z, c1 , b1 ) = BlindLogSigEqh (c# , g, y , m) ? (c2 , b2 ) = ProofLogh (M, m/g1 , g2 ) ? c d.h. c2 = h(M ◦ (m/g1 )b2 ◦ g2 2 ). Falls der Laden verdoppelt, ist die verdoppelte Münze identisch. Damit wird sie von der Bank abgelehnt..

(67) Einleitung BitCoins Motivation Grundlagen. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. Sicherheitsaspekte und zugrundeliegende Probleme. (8:65). <> Walter Unger 13.12.2013 19:41. Z. Sicherheitsaspekte. WS2013/14. Sicherheit des Kunden x s (m, z): m = g1 g2s und z = mx und d = yTs = g2 T und m = m1/s. s. logm/g (g1 ) = logy (d) = s 2. T. logg (y ) = logm (z) = log 1/s (mx /s ) mit c# und s = logg (m/g1 ) mit c# 2 m. BlindLogEqSigh ist sicher. ProofLogEq ist sicher mit ehrlichen Verifizierer. Falls die Bank bestimmen könnte ?. logg2 (m/g1 ) = logm/g2 (g1 ), dann könnte sie Auszahlung und Einzahlung erkennen. Das ist aber so schwer wie das Diffie-Hellman Entscheidungsproblem..

(68) Einleitung BitCoins Motivation Grundlagen. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. Sicherheitsaspekte und zugrundeliegende Probleme. (8:66). <> Walter Unger 13.12.2013 19:41. Z. Sicherheitsaspekte. WS2013/14. Sicherheit der Staats x s (m, z): m = g1 g2s und z = mx und d = yTs = g2 T und m = m1/s. Der Kunde muss Der Kunde muss Der Kunde muss. s. logm/g (g1 ) = logy (d) = s 2. T. logg (y ) = logm (z) = log 1/s (mx /s ) mit c# und s = logg (m/g1 ) mit c# 2 m m = g1 g2s richtig bestimmt haben. 1/s m = m1/s = g1 g2 richtig bestimmt haben. d = yTs richtig bestimmt haben.. Im Protokoll beweist der Kunde: 1/s. m = g1 g2 d = yTs m = g1 g2s̃ Im Protokoll BlindLogEqSigh kann m nur mit Zufallswerten σ und τ wie folgt bestimmt werden: m = mσ g τ . Damit gilt (siehe Darstellungsproblem): s̃ = s und m = ms : 1/s. σ/s. g1 g2s̃ = m = mσ g τ = (g1 g2 )σ g τ = g1 mit: τ = 0 und σ = s̃ = s.. g2σ g τ.

(69) Einleitung BitCoins Motivation Grundlagen. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. Sicherheitsaspekte und zugrundeliegende Probleme. (8:67). <> Walter Unger 13.12.2013 19:41. Z. Sicherheitsaspekte. WS2013/14. Darstellungsproblem Definition Seien p, q Primzahlen mit q teilt p − 1 und G Untergruppe der Ordnung q. Seien weiter r > 2 und g1 , g2 , . . . , gr Generatoren in G. Dann nennen wir g = (g1 , g2 , . . . , gr ) Generator der Länge r . Sei y ∈ G, a = (a1 , a2 , Q . . . , ar ) ist eine Darstellung von y bezüglich g r genau dann wenn y = i=1 giai . Beachte a1 , a2 , . . . , ar −1 sind frei wählbar. Damit hat jedes y ∈ G q r −1 Darstellungen.. Somit ist die Wahrscheinlichkeit, dass a ∈ {0, . . . , q − 1}r Darstellung ist, 1/q.. s.

(70) Einleitung BitCoins Motivation Grundlagen. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. Sicherheitsaspekte und zugrundeliegende Probleme. (8:68). <> Walter Unger 13.12.2013 19:41. Z. Sicherheitsaspekte. WS2013/14. Aussage Lemma Falls ein diskreter Logarithmus nicht effizient berechenbar ist, dann gibt es keinen effizienten Algorithmus, der zu einem zufällig gewählten g und y ∈ G zwei verschiedene Darstellungen liefert. 1. Annahme: Es gibt einen Algorithmus A0 , der zu g 0 = (g1 , g2 , . . . , gr ) und y zwei Darstellungen a = (a1 , a2 , . . . , ar ) und b = (b1 , b2 , . . . , br ) bestimmt.. 2. Dann ist a − b eine Darstellung der 1.. 3. Damit haben wir einen Algorithmus, der eine nicht triviale Darstellung der 1 liefert. Diesen nennen wir Algorithmus A.. 4. Damit wird nun ein Algorithmus B konstruiert, der zu einem g ∈ G mit g 6= 1 und z ∈ G den diskreten Logarithmus von z bezüglich g bestimmt.. 5. D.h. x bestimmt mit g x = z.. s.

(71) Einleitung BitCoins Motivation Grundlagen. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. Sicherheitsaspekte und zugrundeliegende Probleme. (8:69). <> Walter Unger 13.12.2013 19:41. Beweis int B(int g,z) repeat wähle i ∈ {1, . . . , r } uj ∈ {1, . . . , q − 1}, 1 6 j 6 r zufällig gi := z ui gj := g uj , 1 6 j 6 r , i 6= j (a1 , a2 , . . . , ar ) = A(g1 , g2 , . . . , gr ) until ai ui 6≡ 0 P return −(ai ui ) i6=j aj uj mod q. Z. Sicherheitsaspekte. WS2013/14. s.

(72) Einleitung BitCoins Motivation Grundlagen. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. Sicherheitsaspekte und zugrundeliegende Probleme. (8:70). <> Walter Unger 13.12.2013 19:41. Z. Sicherheitsaspekte. WS2013/14. Beweis int B(int g,z) repeat wähle i ∈ {1, . . . , r } uj ∈ {1, . . . , q − 1}, 1 6 j 6 r zufällig gi := z ui gj := g uj , 1 6 j 6 r , i 6= j (a1 , a2 , . . . , ar ) = A(g1 , g2 , . . . , gr ) until ai ui 6≡ 0 P return −(ai ui ) i6=j aj uj mod q 1. Damit gilt z ai ui = z.. 2. Die Wahrscheinlichkeit, dass ein Schleifendurchlauf erfolgreich endet (d.h. ai 6= 0), ist 1/r .. 3. Damit terminiert die Schleife mit hoher Wahrscheinlichkeit nach r Durchläufen.. 4. Damit ist die erwartete Laufzeit |p|.. Q i6=j. g aj uj und B liefert den diskreten Logarithmus von. s.

(73) Einleitung BitCoins Motivation Grundlagen. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. Sicherheitsaspekte und zugrundeliegende Probleme. (8:71). <> Walter Unger 13.12.2013 19:41. Z. Sicherheitsaspekte. WS2013/14. Diffie-Hellman Entscheidungsproblem Definition 1. Seien p, q Primzahlen mit q teilt p − 1 und G Untergruppe der Ordnung q.. 2. Sei weiter g ∈ G und a, b ∈ {0, . . . , q − 1} zufällig.. 3. Es wird als schwer angesehen: Bestimme g ab aus g a und g b .. 4. Das Diffie-Hellman Entscheidungsproblem ist dann: Gegeben: g1 = g a , g2 = g b und g3 Frage: Gilt g3 = g ab ?. 5. D.h. gilt logg (g3 ) = logg (g1 ) · logg (g2 ) bzw. logg2 (g3 ) = logg (g1 ).. n.

(74) Einleitung BitCoins Motivation Grundlagen. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. Sicherheitsaspekte und zugrundeliegende Probleme. (8:72). <> Walter Unger 13.12.2013 19:41. Z. Sicherheitsaspekte. WS2013/14. Fragen Wie ist die Idee beim On-Line elektronischen Geld? Was sind die Sicherheitsaspekte beim On-Line elektronischen Geld? Wie ist die Idee beim Off-Line elektronischen Geld? Was sind die Sicherheitsaspekte beim Off-Line elektronischen Geld?. x.

(75) Einleitung BitCoins Motivation Grundlagen. Sicherheit Protokolle Aufbau On-Line S. Off-Line System. Sicherheitsaspekte und zugrundeliegende Probleme. (8:73). <> Walter Unger 13.12.2013 19:41. Legende n Nicht relevant g Grundlagen, die implizit genutzt werden i Idee des Beweises oder des Vorgehens s Struktur des Beweises oder des Vorgehens w Vollständiges Wissen. Z. Sicherheitsaspekte. WS2013/14. x.

(76)

Referenzen

ÄHNLICHE DOKUMENTE

Motivation aus der Geschichte und Grundlagen DES IDEA AES Ausklang Von der Zeitenwende bis 1900 (1:14) &lt;&gt; Walter Unger 17.10.2013 17:05 WS2013/14 Z n..

Unabhängig von Merkle entwickelt, zwei Jahre später veröffentlicht.. Gerüchteweise schon vorher von

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen. (3:2.3) &lt;&gt; Walter Unger 17.10.2013 16:34

Einleitung Hilfsfunktionen Weitere Angriffe Bit-Sicherheit Bestimmung von Primzahlen Agrawal, Kayal und Saxena (3:60) &lt;&gt; Walter Unger 17.10.2013 17:01 WS2013/14 Z n.

Stattdessen wird vom Verschlüsseler eine zusätzliche Information angegeben, mit deren Hilfe der Emfänger entschlüsseln kann... ElGamal (1985

ElGamal Elliptische Kurven Quantenkryptographie Idee der Datenübertragung (4:26) &lt;&gt; Walter Unger 26.11.2013 10:42 WS2013/14 Z n?.

Dieses Protokoll werden wir beim elektronischen Geld und dem letzten Wahlsystem noch sehen... Beweist, dass zwei diskrete Logarithmen

Einfaches Protokoll (1978, Shimon Even (1935-2004)) (8:3.1) &lt;&gt; Walter Unger 13.12.2013 19:41 WS2013/14