• Keine Ergebnisse gefunden

Algorithmische Kryptographie (WS2015/16) Kapitel 8 Elektronisches Geld Walter Unger

N/A
N/A
Protected

Academic year: 2022

Aktie "Algorithmische Kryptographie (WS2015/16) Kapitel 8 Elektronisches Geld Walter Unger"

Copied!
74
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)Algorithmische Kryptographie (WS2015/16) Kapitel 8 Elektronisches Geld Walter Unger Lehrstuhl für Informatik 1. 16:56 Uhr, den 29. Oktober 2015.

(2) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8. Inhaltsverzeichnis. > Walter Unger 29.10.2015 16:56. <. WS2015/16. Inhalt I 1. Einleitung Anforderungen Einfaches Protokoll (1978, Shimon Even (1935-2004)) Sicherheitsaspekte zum einfachen Protokoll Einfaches Protokoll mit Steuersatz. 2. BitCoins Einleitung Münze weiterreichen. 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. Sicherheit der Bank. 6. Protokolle Blinde Unterschriften Blinde Unterschrift mit zwei gleichen Logarithmen. 7. Aufbau Faires Elektronisches Geld (Systemaufbau). 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. 10. Sicherheitsaspekte Rückverfolgung Sicherheitsaspekte und zugrundeliegende Probleme.

(3) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:1. Anforderungen. <. > Walter Unger 29.10.2015 16:56. WS2015/16. 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.. Die ersten beiden Forderungen wurden bereits 1978 durch ein Protokoll von Shimon Even realisiert..

(4) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:2 Einfaches Protokoll (1978, Shimon Even (1935-2004)) < > Walter Unger 29.10.2015 16:56 WS2015/16. Bank X : Konto von B enthällt: 12000 + 1500 = 13500. sigB (A zahlt an B 1500). sigA (A zahlt an B 1500) 2. 1. Kunde A:. 4 sigX (A ist Kunde von X ). 6. Konto von A enthält: 2300 − 1500 = 800. 5. Idee. 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..

(5) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:3 Einfaches Protokoll (1978, Shimon Even (1935-2004)) < > Walter Unger 29.10.2015 16:56 WS2015/16. 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..

(6) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:4 Einfaches Protokoll (1978, Shimon Even (1935-2004)) < > Walter Unger 29.10.2015 16:56 WS2015/16. 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.

(7) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:5 Einfaches Protokoll (1978, Shimon Even (1935-2004)) < > Walter Unger 29.10.2015 16:56 WS2015/16. Ü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, zA , tA , r , DA (zA tA r ) B, DB (−zA tB r ). !. zA tA r = EA (DA (zA tA r )) nB ∶= nB + zB.

(8) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:6 Sicherheitsaspekte zum einfachen Protokoll < > Walter Unger 29.10.2015 16:56 WS2015/16. Sicherheitsaspekte A: DA , EA , EX , DX (EA ), nA , tA , zA (zu sendender Betrag) !. testet: zB = zA ∣tA − tB ∣ < ε Sekunden testet: nA ⩾ zA nA ∶= nA − zA !. −zA tB r = EB (DB (−zA tB r )). B: DB , EB , EX , DX (EB ), nB , tB A, zA , DX (EA ) B, zB , tB , r , DX (EB ). A, zA , tA , r , DA (zA tA r ) B, DB (−zA tB r ). 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..

(9) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:7. Einfaches Protokoll mit Steuersatz. <. > Walter Unger 29.10.2015 16:56. WS2015/16. Ü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, zA , tA , r , DA (zA tA r ) B, DB (−zA tB r ). !. zA tA r = EA (DA (zA tA r )) nB ∶= nB + zB.

(10) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:8. Einleitung. <. > Walter Unger 29.10.2015 16:56. WS2015/16. 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.

(11) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:9. Münze weiterreichen. <. > Walter Unger 29.10.2015 16:56. WS2015/16. 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: Bank: m.p, x Ta = (m, Sigx (h(m, pa ))). A: pa , xa , pb. 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..

(12) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:10. Münze weiterreichen. <. > Walter Unger 29.10.2015 16:56. WS2015/16. 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..

(13) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:11. Münze weiterreichen. > Walter Unger 29.10.2015 16:56. <. Zahlungen bestätigen (Zeit verwalten) A: pa , xa , pb , pc. BB: T0 , k. C : pc , xc , pa , pb. B: pb , xb , pa , pc Tab. Tac. 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: k ∗ h(T , x) ∈ 0 {0, 1} ... ... ... ... ... ... ... ... x x. Teste x. T = T0 Tbc Tac Tab Teste T Suche x mit: k ∗ h(T , x) ∈ 0 {0, 1} ... ... ... ... ... ... ... ... hat x gefunden x. T = T0 Tbc Tac Tab Teste T Suche x mit: k ∗ h(T , x) ∈ 0 {0, 1} ... ... ... ... ... ... ... ... Teste x. WS2015/16.

(14) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:12. Münze weiterreichen. <. > Walter Unger 29.10.2015 16:56. WS2015/16. 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..

(15) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:13. Grundlagen. > Walter Unger 29.10.2015 16:56. <. Situation (Basis). 1. 5. Staat:. Bank X :. 4. 2. Kunde:. Laden: 3. WS2015/16.

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

(17) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:15. Anonymes Geld. > Walter Unger 29.10.2015 16:56. <. Situation (Ohne Rückverfolgung). 1. 5. Staat:. Bank X :. 4. 2. Kunde:. Laden: 3. WS2015/16.

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

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

(20) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:18. Anonymes Geld. > Walter Unger 29.10.2015 16:56. <. WS2015/16. 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..

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

(22) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:20. Motivation. <. > Walter Unger 29.10.2015 16:56. WS2015/16. 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..

(23) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:21. Idee: Schnorrs Identifikation. <. > Walter Unger 29.10.2015 16:56. Voraussetzungen 1. p, q Primzahlen mit q teilt p − 1.. 2. G Untergruppe der Ordnung q in Zp .. 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 .. 7. Damit wird Schnorrs Identifikations-Protokoll aufgebaut.. ∗. ∗. x. WS2015/16.

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

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

(26) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:24. Sicherheit. > Walter Unger 29.10.2015 16:56. <. WS2015/16. Sicherheitsaspekte. ∗. G Untergruppe der Ordnung q in Zp g Generator in G ∗ h ∶ {0, 1} → Zp x y =g 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 r a ∶= g c ∶= h(m ◦ a) b ∶= r − cx. (c, b), m. ?. b c. Teste: c = h(m ◦ g y ). 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 = g 1 y. 5. Weiter gilt: g. 6. Beachte dabei: G Untergruppe der Ordnung q in Zp und g Generator in G .. r. b. b1 +xc1. c1. =g. b. c. = g 2y 2. b2 +xc2. und damit x =. b1−b2 . c2 −c1 ∗.

(27) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:25. Aufbau einer blinden Unterschrift. <. > Walter Unger 29.10.2015 16:56. WS2015/16. Einleitung. 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) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:26. Aufbau einer blinden Unterschrift. > Walter Unger 29.10.2015 16:56. <. Idee einer blinden Unterschrift. 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 r a ∶= g c ∶= h(m ◦ a) b ∶= r − cx. (c, b), m. ?. b c. Teste: c = h(m ◦ g y ). V : y , g , p, q, m. P: x, y , g , p, q r ∈ {0, . . . , q − 1} zufällig a ∶= g. r. b ∶= r − cx. WS2015/16. a. c = h(m, . . .). c b. ?. b c. Teste: a ≡ g y.

(29) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:27. Aufbau einer blinden Unterschrift. > Walter Unger 29.10.2015 16:56. <. WS2015/16. Idee einer blinden Unterschrift (Teil 2) V : y , g , p, q, m. P: x, y , g , p, q r ∈ {0, . . . , q − 1} zufällig r a ∶= g b ∶= r − cx. a c b. ProofLog (g , y ) σ(m) = (c, b) = ProofLogh (m, g , y ) ProofLogh (g , y ). c = h(m, . . .) ?. b c. Teste: a ≡ g y. 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. 4. Daher formt der Kunde das Transcript τ = (a, c, b) in ein neues Transcript τ = (a, c, b) um. 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) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:28. Aufbau einer blinden Unterschrift. > Walter Unger 29.10.2015 16:56. <. WS2015/16. Idee einer blinden Unterschrift (Teil 2). ProofLog (g , y ) σ(m) = (c, b) = ProofLogh (m, g , y ) ProofLogh (g , y ). V : y , g , p, q, m. P: x, y , g , p, q r ∈ {0, . . . , q − 1} zufällig r a ∶= g. a c b. b ∶= r − cx. c = h(m, . . .) ?. b c. Teste: a ≡ g y. 2. 2. G × Zq → G × Zq (a, c, b) ↦ (a, c, b). β(u,v ,w ) ∶. Es gilt: a = a g y = (g y ) g y = g u. v. w. b c u. v. w. mit:. ub+v. y. u. v. w. a=a g y c = uc + w b = ub + v. uc+w. b c. =g y .. Damit ist τ = (a, c, b) auch ein korrektes Transcript einer Unterschrift..

(31) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:29. Sicherheit des Kunden. > Walter Unger 29.10.2015 16:56. <. WS2015/16. Sicherheit des Kunden β(u,v ,w ) ∶. 2. 2. G × Zq → G × Zq (a, c, b) ↦ (a, c, b). mit:. u v w. ProofLog (g , y ) σ(m) = (c, b) = ProofLogh (m, g , y ) ProofLogh (g , y ). a=a g y c = uc + w b = ub + v. Lemma Eine Unterscheidung der Transcripte durch die Bank ist nicht möglich. Beweis. Untersuche die Verteilung der Transcripte..

(32) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:30. Sicherheit des Kunden. > Walter Unger 29.10.2015 16:56. <. WS2015/16. Sicherheit des Kunden (Beweis) β(u,v ,w ) ∶. 2. 2. G × Zq → G × Zq (a, c, b) ↦ (a, c, b). mit:. u v w. ProofLog (g , y ) σ(m) = (c, b) = ProofLogh (m, g , y ) ProofLogh (g , y ). a=a g y 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 3 (u, v , w ) ∈ Zq . Damit ist die Wahrscheinlichkeit, dass τ = (a, c, b) eine Transformation von τ = (a, c, b) ist ∣{(u, v , w ) ∈ Zq ∣ β(u,v ,w ) (a, c, b) = (a, c, b)}∣ 3. ∣Z3q ∣. =q. −2. gleich der eines zufällig gewählten Transcripts τ = (a, c, b). Damit ist eine Unterscheidung durch die Bank nicht möglich..

(33) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:31. Sicherheit der Bank. <. > Walter Unger 29.10.2015 16:56. WS2015/16. Sicherheit der Bank. 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 2. u. v. Zeige a ∶= a g y. w. muss so gesetzt werden.. Falls τ = (a, c, b) korrektes Transcript ist, so sind c und b auch so zu setzen..

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

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

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

(37) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:35. Blinde Unterschriften. > Walter Unger 29.10.2015 16:56. <. WS2015/16. Bemerkungen BlindLogSigh (m) V : y , g , p, q, m. P: x, y , g , p, q r ∈ {0, . . . , q − 1} r. a. b ∶= r − cx. c b. a ∶= g. ProofLog (g , y ) σ(m) = (c, b) = ProofLogh (m, g , y ) ProofLogh (g , y ) BlindLogSigh (m). u, v , w ∈ {0, . . . , q − 1}, v = / 0 zufällig u v w a ∶= a g y und c ∶= h(m ◦ a) −1 c ∶= (c − w )u ?. b c. Teste: a ≡ g y 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 u v w a g y 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) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:36. Blinde Unterschriften. > Walter Unger 29.10.2015 16:56. <. WS2015/16. Erinnerung: V : y1 , y2 g , p, q. P: g , p, q. ProofLog (g , y ) σ(m) = (c, b) = ProofLogh (m, g , y ) ProofLogh (g , y ) BlindLogSigh (m). r ∈ {0, . . . , q − 1} zufällig r. r. a ∶= (a1 , a2 ) ∶= (g1 , g2 ) b ∶= r − cx. a. c ∈ {0, . . . , q − 1} zufällig. c b. ?. b c. ?. b c. Teste: a1 ≡ g1 y1 Teste: a2 ≡ g2 y2. Analog kann ein Protokoll, dass zwei Logarithmen gleich sind, mit blinder Unterschrift aus dem oben genannten Protokoll aufgebaut werden..

(39) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:37 Blinde Unterschrift mit zwei gleichen Logarithmen < > Walter Unger 29.10.2015 16:56 WS2015/16. Protokoll BlindLogSigEqh (g , y , m). ProofLog (g , y ) σ(m) = (c, b) = ProofLogh (m, g , y ) ProofLogh (g , y ) BlindLogSigh (m). BlindLogSigEq V : y , g , p, q, m. P: x, y , g , p, q. s, t∈ {0, . . . , q − 1} zufällig, s = /0 r ∈ {0, . . . , q − 1} zufällig z ∶= m r. m. m ∶= m. 1/s −t/s. g. x. r. a ∶= (a1 , a2 ) ∶= (g , m ). a, z. u, v , w ∈ {0, . . . , q − 1}, v = / 0 zufällig u v w. a1 ∶= a1 g y u. v w s. u v w t. a2 ∶= (a2 m z ) (a1 g y ) s t. z ∶= z y. c ∶= h(m ◦ z◦a1 ◦a2 ) b ∶= r − cx. c b. c ∶= (c − w )u. −1. b ∶= ub + v ?. b c. ?. b c. teste: a1 ≡ g y. teste: a2 ≡ m z. Ergebnis: (z,c, b). Geschafft!.

(40) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:38 Blinde Unterschrift mit zwei gleichen Logarithmen < > Walter Unger 29.10.2015 16:56 WS2015/16. Protokoll BlindLogSigEqh (g , y , m). ProofLog (g , y ) σ(m) = (c, b) = ProofLogh (m, g , y ) ProofLogh (g , y ) BlindLogSigh (m). BlindLogSigEq V : y , g , p, q, m. P: x, y , g , p, q r ∈ {0, . . . , q − 1} zufällig. m. x. z ∶= m r r a ∶= (a1 , a2 ) ∶= (g , m ). b ∶= r − cx. a, z. c b. s, t∈ {0, . . . , q − 1} zufällig, s = /0 m ∶= m. 1/s −t/s. g. u, v , w ∈ {0, . . . , q − 1}, v = / 0 zufällig u v w a1 ∶= a1 g y u v w s u v w t a2 ∶= (a2 m z ) (a1 g y ) s t z ∶= z y c ∶= h(m ◦ z◦a1 ◦a2 ) c ∶= (c − w )u. −1. b ∶= ub + v ? b c teste: a1 ≡ g y ? b c teste: a2 ≡ m z Ergebnis: (z,c, b). Schreibweise: (z, c, b) = BlindLogSigEqh (g , y , m). ?. Test der erzeugten blinden Unterschrift: c = h(m ◦ z ◦ g y ◦ m z ) b c. b 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) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:39 Faires Elektronisches Geld (Systemaufbau) < > Walter Unger 29.10.2015 16:56 WS2015/16. Einleitung 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 Zp , 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) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:40 Faires Elektronisches Geld (Systemaufbau) < > Walter Unger 29.10.2015 16:56 WS2015/16. Aufbau des Systems Bank: g. BB:. y. Staat: g2. Kunde: g1. Laden: g1. wählt x ∈ {1, . . . q − 1} geheimer Schlüssel. g , g1 , g2 y. y ∶= g. x. öffentlicher Schlüssel wählt xT ∈ {1, . . . q − 1} geheimer Schlüssel. yT. yC. yT. x. yT ∶= g2T öffentlicher Schlüssel wählt xC ∈ {1, . . . q − 1} geheimer Schlüssel yC. x. yC ∶= g1C öffentlicher Schlüssel wählt xS ∈ {1, . . . q − 1} geheimer Schlüssel. yS. yS. x. yS ∶= g1S öffentlicher Schlüssel. Kunde belegt seine Identität mit ProofLog (g1 , yC )..

(43) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:41. Einleitung. <. > Walter Unger 29.10.2015 16:56. WS2015/16. 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..

(44) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:42. Münze von der Bank abheben. <. > Walter Unger 29.10.2015 16:56. 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) ↦ (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:. WS2015/16.

(45) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:43. Münze von der Bank abheben. > Walter Unger 29.10.2015 16:56. <. WS2015/16. 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 r u, v , w ∈ {0, . . . , q − 1}, v = / 0 zufällig a ∶= g u v w a ∶= a g y und c ∶= h(m ◦ a) c −1 c ∶= (c − w )u b ∶= r − cx b ? b c Teste: a ≡ g y b ∶= ub + v und σ(m) ∶= (c, b) Bank: g , g1 , g2 , x, y , yC , p, q r ∈ {0, . . . , q − 1} a ∶= g. r. Kunde: g , g1 , g2 , xC , yC , y , p, q a. u, v , w ∈ {0, . . . , q − 1}, v = /0 u v w. a ∶= a g y 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 )) ?. b ∶= r − cx. b. u v w. test uc + w ≡ h(a g y ) Speichert: (a, c) ↔ (u, v , w ). Testergebnis ?. b c. Teste: a ≡ g y. b ∶= ub + v σ ∶= (c, b) ist die Münze.

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

(47) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:45. Zahlungsverkehr. <. > Walter Unger 29.10.2015 16:56. WS2015/16. 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 ) b c. Test: c = h(g y ) Test: (c, b) Ersteinzahlung. (c, b) Testergebnis. Sicherheitstest Testergebnis. Kunde: g , g1 , g2 , xC , yC , y , p, q.

(48) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:46. Sicherheitsaspekte. <. > Walter Unger 29.10.2015 16:56. WS2015/16. Zahlungsrückverfolgung und Sicherheit 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..

(49) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:47. Zusammenfassung. > Walter Unger 29.10.2015 16:56. <. WS2015/16. 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 x y ∶= g öffentlicher Schlüssel wählt xT ∈ {1, . . . q − 1} geheimer Schlüssel yT x yT ∶= g2T öffentlicher Schlüssel wählt xC ∈ {1, . . . q − 1} geheimer Schlüssel yC x yC ∶= g1C öffentlicher Schlüssel wählt xS ∈ {1, . . . q − 1} geheimer Schlüssel yS x yS ∶= g1S öffentlicher Schlüssel. 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 = /0 u v w a ∶= a g y 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 )) ?. b ∶= r − cx. b. u v w. test uc + w ≡ h(a g y ) Speichert: (a, c) ↔ (u, v , w ). Testergebnis ?. b c. Teste: a ≡ g y b ∶= ub + v σ ∶= (c, b) ist die Münze.

(50) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:48. Zusammenfassung. > Walter Unger 29.10.2015 16:56. <. WS2015/16. 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 = /0 u v w a ∶= a g y 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 )) ?. b ∶= r − cx. Bank: g , g1 , g2 , x, y , yC , p, q. b. u v w. test uc + w ≡ h(a g y ) Speichert: (a, c) ↔ (u, v , w ). Testergebnis ?. b c. Teste: a ≡ g y 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 b c. Test: c = h(g y ) (c, b) b c Sicherheitstest Test: c = h(g y ) Testergebnis Testergebnis Test: (c, b) Ersteinzahlung.

(51) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:49. Einleitung. <. > Walter Unger 29.10.2015 16:56. WS2015/16. Idee (On-Line ⟶ Off-Line) 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..

(52) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:50. Einleitung. > Walter Unger 29.10.2015 16:56. <. Erinnerung. ProofLog (g , y ) σ(m) = (c, b) = ProofLogh (m, g , y ) ProofLogh (g , y ) BlindLogSigh (m). BlindLogSigEq V : y , g , p, q, m. P: x, y , g , p, q. s, t∈ {0, . . . , q − 1} zufällig, s = /0 r ∈ {0, . . . , q − 1} zufällig z ∶= m r. m. m ∶= m. 1/s −t/s. g. x. r. a ∶= (a1 , a2 ) ∶= (g , m ). a, z. u, v , w ∈ {0, . . . , q − 1}, v = / 0 zufällig u v w. a1 ∶= a1 g y u. v w s. u v w t. a2 ∶= (a2 m z ) (a1 g y ) s t. z ∶= z y. c ∶= h(m ◦ z◦a1 ◦a2 ) b ∶= r − cx. c b. WS2015/16. c ∶= (c − w )u. −1. b ∶= ub + v ?. b c. ?. b c. teste: a1 ≡ g y. teste: a2 ≡ m z. Ergebnis: (z,c, b) P kennt logg (y ) = logm (z).

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

(54) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:52. Münze von der Bank abheben. > Walter Unger 29.10.2015 16:56. <. WS2015/16. Münze von der Bank abheben. x. s. (m, z): m = g1 g2 und z = m x s s d = yT = g2T Bank: g , g1 , g2 , p, q, x, y , yC , yT. Kunde: g , g1 , g2 , p, q, xC , yC , y , yT s ∈ {0, . . . , q − 1} s. m = g1 g2 d = yT m=m ?. b c. c = h((m/g2 ) g1 ) ?. b. c. c = h(yT d ) Speichere d. s. 1/s. 1/s. = g1 g2. (c, b) = ProofLogEqh (m/g2 , g1 , yT , d). c, b, m/g2. d.h. logm/g2 (g1 ) = logyT (d) = s. g1 , d, yT. r ∈ {0, . . . , q − 1} r. c# = g Nummer der Münze (z, c1 , b1 ) = BlindLogSigEqh (c# , g , y , m) s von oben t = 0, d.h. m = m. 1/s. 1/s. = g1 g2 wird genutzt Bank hat c# unterschrieben. m=m. 1/s.

(55) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:53. Münze von der Bank abheben. > Walter Unger 29.10.2015 16:56. <. WS2015/16. Münze von der Bank abheben. x. s. (m, z): m = g1 g2 und z = m x s s d = yT = g2T Bank: g , g1 , g2 , p, q, x, y , yC , yT. Kunde: g , g1 , g2 , p, q, xC , yC , y , yT s ∈ {0, . . . , q − 1} s. ?. b c. c = h((m/g2 ) g1 ) ?. b c h(yT d ). c= r ∈ {0, . . . , q − 1} zuf. z ∶= m r. c, b, m/g2 , g1 , d, yT m. 1/s. s. 1/s. m = g1 g2 , d = y T , m = m = g1 g2 (c, b) = ProofLogEqh (m/g2 , g1 , yT , d) d.h. logm/g2 (g1 ) = logyT (d) = s r ∈ {0, . . . , q − 1} c# = g. r. x. r. a ∶= (a1 , a2 ) ∶= (g , m ). a, z. u, v , w ∈ {0, . . . , q − 1}, v = / 0 zuf. u v w. u. v w s. a1 ∶= a1 g y , a2 ∶= (a2 m z ) s. b ∶= r − cx. c b. z ∶= z , c1 ∶= h(c# ◦ m ◦ z ◦ a1 ◦ a2 ) c ∶= (c1 − w )u ?. −1. b c. teste: a1 ≡ g y ?. b c. a2 ≡ m z x/s d.h. logg (y ) = logm (z) = log 1/s (m ) m b1 ∶= ub + v , Ergebnis: (z, c1 , b1 ). m=m. 1/s.

(56) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:54. Münze von der Bank abheben. > Walter Unger 29.10.2015 16:56. <. WS2015/16. Eigenschaften x. s. x s. s. (m, z): m = g1 g2 und z = m und d = yT = g2T x/s. und m = m. 1/s. logm/g2 (g1 ) = logyT (d) = s und logg (y ) = logm (z) = log 1/s (m ) mit SigBank (c# ) Bank: g , g1 , g2 , p, q, x, y , yC , yT Kunde: g , g1 , g2 , p, q, xC ,myC , y , yT s ∈ {0, . . . , q − 1}. ?. b c. c = h((m/g2 ) g1 ) ? b c c = h(yT d ) r ∈ {0, . . . , q − 1} zuf. z ∶= m r. c, b, m/g2 , g1 , d, yT m. 1/s. s. s. 1/s. m = g1 g2 , d = y T , m = m = g1 g2 (c, b) = ProofLogEqh (m/g2 , g1 , yT , d) d.h. logm/g2 (g1 ) = logyT (d) = s r ∈ {0, . . . , q − 1} c# = g. r. x. r. a ∶= (a1 , a2 ) ∶= (g , m ). b ∶= r − cx. a, z. u, v , w ∈ {0, . . . , q − 1}, v = / 0 zuf. u v w. u. v w s. a1 ∶= a1 g y , a2 ∶= (a2 m z ) s z ∶= z , c1 ∶= h(c# ◦ m ◦ z ◦ a1 ◦ a2 ). c. c ∶= (c1 − w )u. b. ?. −1. b c. teste: a1 ≡ g y ? b c a2 ≡ m z x/s d.h. logg (y ) = logm (z) = log 1/s (m ) m b1 ∶= ub + v , Ergebnis: (z, c1 , b1 ). logm/g2 (g1 ) = logyT (d) = s logg (y ) = logm (z) = logm1/s (m Bank hat c# unterschrieben.. x/s. ).

(57) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:55. Bezahlung im Geschäft. <. > Walter Unger 29.10.2015 16:56. WS2015/16. Bezahlung im Geschäft s. x. s. x s. 1/s. (m, z): m = g1 g2 und z = m und d = yT = g2T und m = m logm/g2 (g1 ) = logyT (d) = s logg (y ) = logm (z) = log 1/s (m m. Laden: g , g1 , g2 , p, q, xS , yS , y , yC. x/s. ) mit SigBank (c# ). Kunde: g , g1 , g2 , p, q, xC , yC , y M = yS ◦ time ◦ (c1 , b1 ) (c2 , b2 ) = ProofLogh (M, m/g1 , g2 ) r. teste M ?. c2 = h(M, c# ) ?. (z, c1 , b1 ) = BlindLogSigEqh (c# , g , y , m) ?. (c2 , b2 ) = ProofLogh (M, m/g1 , g2 ) ? c b d.h. c2 = h(M ◦ (m/g1 ) 2 ◦ g22 ). C1 = (c1 , b1 , c# , g , y , m, z) C2 = (c2 , b2 , M, g2 , m/g1 ). mit: c# = g für a mit Geheimnis s = logg2 (m/g1 ).

(58) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:56. Bezahlung im Geschäft. > Walter Unger 29.10.2015 16:56. <. WS2015/16. Bezahlung im Geschäft s. x. s. x s. 1/s. (m, z): m = g1 g2 und z = m und d = yT = g2T und m = m logm/g2 (g1 ) = logyT (d) = s. σ(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 r a ∶= g c ∶= h(m ◦ a) b ∶= r − cx. (c, b), m. Laden: g , g1 , g2 , p, q, xS , yS , y , yC. ?. logg (y ) = logm (z) = log 1/s (m m. x/s. ) mit SigBank (c# ). b c. Teste: c = h(m ◦ g y ) 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 = logg2 (m/g1 ) teste M 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 b d.h. c2 = h(M ◦ (m/g1 ) 2 ◦ g22 ).

(59) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:57. Bezahlung im Geschäft. > Walter Unger 29.10.2015 16:56. <. WS2015/16. Bezahlung im Geschäft x. s. s. x s. (m, z): m = g1 g2 und z = m und d = yT = g2T. (c, b), m. Laden: g , g1 , g2 , p, q, xS , yS , y , yC. ?. 1/s. logm/g2 (g1 ) = logyT (d) = s x/s. logg (y ) = logm (z) = log 1/s (m ) mit c# m s = logg2 (m/g1 ) mit c#. σ(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 r a ∶= g c ∶= h(m ◦ a) b ∶= r − cx. und m = m. b c. Teste: c = h(m ◦ g y ) 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 = logg2 (m/g1 ) teste M 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 b d.h. c2 = h(M ◦ (m/g1 ) 2 ◦ g22 ).

(60) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:58. Bezahlung im Geschäft. > Walter Unger 29.10.2015 16:56. <. WS2015/16. Geldfluss x. s. s. x s. (m, z): m = g1 g2 und z = m und d = yT = g2T Bank: g , g1 , g2 , p, q, x, y , yC , yT. ?. b c. c = h((m/g2 ) g1 ) ? b c c = h(yT d ) r ∈ {0, . . . , q − 1} zuf. x z ∶= m r r a ∶= (a1 , a2 ) ∶= (g , m ). und m = m x/s. 1/s. logm/g2 (g1 ) = logyT (d) = s. logg (y ) = logm (z) = log 1/s (m ) mit c# und s = logg2 (m/g1 ) mit c# Kunde: m g , g1 , g2 , p, q, xC , yC , y , yT s ∈ {0, . . . , q − 1} 1/s s s 1/s m = g1 g2 , d = yT , m = m = g1 g2 c, b, m/g2 , g1 , d, yT (c, b) = ProofLogEqh (m/g2 , g1 , yT , d) d.h. logm/g2 (g1 ) = logyT (d) = s m r r ∈ {0, . . . , q − 1} c# = g. b ∶= r − cx. Laden: g , g1 , g2 , p, q, xS , yS , y , yC. a, z. c b. u, v , w ∈ {0, . . . , q − 1}, v = / 0 zuf. u v w u v w s a1 ∶= a1 g y , a2 ∶= (a2 m z ) s z ∶= z , c1 ∶= h(c# ◦ m ◦ z ◦ a1 ◦ a2 ) −1 c ∶= (c1 − w )u ? b c teste: a1 ≡ g y ? b c a2 ≡ m z x/s d.h. logg (y ) = logm (z) = log 1/s (m ) 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 = logg2 (m/g1 ) teste M ? C = (c2 , b2 , M, g2 , m/g1 ) c2 = h(M, c# ) 2 ? (z, c1 , b1 ) = BlindLogSigEqh (c# , g , y , m) ? (c2 , b2 ) = ProofLogh (M, m/g1 , g2 ) ? c b d.h. c2 = h(M ◦ (m/g1 ) 2 ◦ g22 ).

(61) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:59. Einzahlung bei der Bank. > Walter Unger 29.10.2015 16:56. <. WS2015/16. Einzahlung bei der Bank x. s. s. x s. (m, z): m = g1 g2 und z = m und d = yT = g2T. und m = m. logg (y ) = logm (z) = log 1/s (m m Laden: g , g1 , g2 , p, q, xS , yS , y , yC. x/s. 1/s. logm/g2 (g1 ) = logyT (d) = s. ) mit c# und s = logg2 (m/g1 ) mit c#. 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 = logg2 (m/g1 ) teste M 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 b d.h. c2 = h(M ◦ (m/g1 ) 2 ◦ g22 ). 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) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:60. Einzahlung bei der Bank. > Walter Unger 29.10.2015 16:56. <. WS2015/16. Einzahlung bei der Bank x. s. s. x s. (m, z): m = g1 g2 und z = m und d = yT = g2T. und m = m. logg (y ) = logm (z) = log 1/s (m m Laden: g , g1 , g2 , p, q, xS , yS , y , yC. x/s. 1/s. logm/g2 (g1 ) = logyT (d) = s. ) mit c# und s = logg2 (m/g1 ) mit c#. 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 = logg2 (m/g1 ) teste M 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 b d.h. c2 = h(M ◦ (m/g1 ) 2 ◦ g22 ) 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) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:61. Rückverfolgung. > Walter Unger 29.10.2015 16:56. <. WS2015/16. Zahlungsrückverfolgung einer Münze x. s. x s. s. (m, z): m = g1 g2 und z = m und d = yT = g2T. und m = m. 1/s. logm/g2 (g1 ) = logyT (d) = s. x/s. logg (y ) = logm (z) = log 1/s (m ) mit c# und s = logg2 (m/g1 ) mit c# m g , g , g , p, q, x , y , y , y Kunde: 1 2 C C T. Bank: g , g1 , g2 , p, q, x, y , yC , yT. s ∈ {0, . . . , q − 1}. ?. b c. c = h((m/g2 ) g1 ) ? b c c = h(yT d ) r ∈ {0, . . . , q − 1} zuf.. c, b, m/g2 , g1 , d, yT m. 1/s. s. s. 1/s. m = g1 g2 , d = y T , m = m = g1 g2 (c, b) = ProofLogEqh (m/g2 , g1 , yT , d) d.h. logm/g2 (g1 ) = logyT (d) = s r ∈ {0, . . . , q − 1} c# = g. r. x. z ∶= m r r a ∶= (a1 , a2 ) ∶= (g , m ). a, z. c b. b ∶= r − cx. Bank: g , g1 , g2 , x, y , yC , p, q Suche m in Transaktionen. u, v , w ∈ {0, . . . , q − 1}, v = / 0 zuf. u v w u v w s a1 ∶= a1 g y , a2 ∶= (a2 m z ) s z ∶= z , c1 ∶= h(c# ◦ m ◦ z ◦ a1 ◦ a2 ). d m. c ∶= (c1 − w )u ?. −1. b c. teste: a1 ≡ g y ? b c a2 ≡ m z x/s d.h. logg (y ) = logm (z) = log 1/s (m ) m b1 ∶= ub + v , Ergebnis: (z, c1 , b1 ) Staat: g , g1 , g2 , xT , yT , yC , y , p, q g1 d. 1/xT. s. = g1 g2 = m.

(64) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:62. Rückverfolgung. > Walter Unger 29.10.2015 16:56. <. WS2015/16. Zahlungsrückverfolgung einer Münze x. s. s. x s. (m, z): m = g1 g2 und z = m und d = yT = g2T. und m = m. 1/s. logm/g2 (g1 ) = logyT (d) = s. x/s. logg (y ) = logm (z) = log 1/s (m ) mit c# und s = logg2 (m/g1 ) mit c# m g , g , g , p, q, x , y , y , y Kunde: 1 2 C C T. Bank: g , g1 , g2 , p, q, x, y , yC , yT. s ∈ {0, . . . , q − 1}. ?. c, b, m/g2 , g1 , d, yT. b c. c = h((m/g2 ) g1 ) ? b c c = h(yT d ) r ∈ {0, . . . , q − 1} zuf.. m. 1/s. s. s. 1/s. m = g1 g2 , d = y T , m = m = g1 g2 (c, b) = ProofLogEqh (m/g2 , g1 , yT , d) d.h. logm/g2 (g1 ) = logyT (d) = s r ∈ {0, . . . , q − 1} c# = g. r. x. z ∶= m r r a ∶= (a1 , a2 ) ∶= (g , m ). a, z. c b. b ∶= r − cx. Bank: g , g1 , g2 , x, y , yC , p, q. c ∶= (c1 − w )u ?. −1. b c. teste: a1 ≡ g y ? b c a2 ≡ m z x/s d.h. logg (y ) = logm (z) = log 1/s (m ) m b1 ∶= ub + v , Ergebnis: (z, c1 , b1 ). Staat: g , g1 , g2 , xT , yT , yC , y , p, q m. Suche d in Transaktionen. u, v , w ∈ {0, . . . , q − 1}, v = / 0 zuf. u v w u v w s a1 ∶= a1 g y , a2 ∶= (a2 m z ) s z ∶= z , c1 ∶= h(c# ◦ m ◦ z ◦ a1 ◦ a2 ). d. x s x s (m/g1 ) T = (g2 ) T = yT = d.

(65) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:63 Sicherheitsaspekte und zugrundeliegende Probleme < > Walter Unger 29.10.2015 16:56 WS2015/16. Münzverdopplung x. s. s. x s. (m, z): m = g1 g2 und z = m und d = yT = g2T. und m = m. logg (y ) = logm (z) = log 1/s (m m Laden: g , g1 , g2 , p, q, xS , yS , y , yC. x/s. 1/s. logm/g2 (g1 ) = logyT (d) = s. ) mit c# und s = logg2 (m/g1 ) mit c#. 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 = logg2 (m/g1 ) teste M 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 b d.h. c2 = h(M ◦ (m/g1 ) 2 ◦ g22 ). Falls der Kunde verdoppelt, unterschreibt er zweimal c#. Damit gibt er s preis. Damit kann die Bank m = m. 1/s. Damit ist der Kunde erkannt.. bestimmen..

(66) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:64 Sicherheitsaspekte und zugrundeliegende Probleme < > Walter Unger 29.10.2015 16:56 WS2015/16. Münzverdopplung s. x. s. x s. (m, z): m = g1 g2 und z = m und d = yT = g2T. und m = m. logg (y ) = logm (z) = log 1/s (m m Laden: g , g1 , g2 , p, q, xS , yS , y , yC. x/s. 1/s. logm/g2 (g1 ) = logyT (d) = s. ) mit c# und s = logg2 (m/g1 ) mit c#. 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 = logg2 (m/g1 ) teste M 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 b d.h. c2 = h(M ◦ (m/g1 ) 2 ◦ g22 ). Falls der Laden verdoppelt, ist die verdoppelte Münze identisch. Damit wird sie von der Bank abgelehnt..

(67) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:65 Sicherheitsaspekte und zugrundeliegende Probleme < > Walter Unger 29.10.2015 16:56 WS2015/16. Sicherheit des Kunden s. x. s. x s. (m, z): m = g1 g2 und z = m und d = yT = g2T. und m = m. logg (y ) = logm (z) = log 1/s (m m. x/s. 1/s. logm/g2 (g1 ) = logyT (d) = s. ) mit c# und s = logg2 (m/g1 ) mit c#. 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) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:66 Sicherheitsaspekte und zugrundeliegende Probleme < > Walter Unger 29.10.2015 16:56 WS2015/16. Sicherheit der Staats x. s. x s. s. (m, z): m = g1 g2 und z = m und d = yT = g2T s. und m = m. logg (y ) = logm (z) = log 1/s (m m. x/s. 1/s. logm/g2 (g1 ) = logyT (d) = s. ) mit c# und s = logg2 (m/g1 ) mit c#. Der Kunde muss m = g1 g2 richtig bestimmt haben. Der Kunde muss m = m. 1/s. 1/s. = g1 g2 richtig bestimmt haben.. s. Der Kunde muss d = yT richtig bestimmt haben. Im Protokoll beweist der Kunde: 1/s. m = g1 g2 s d = yT s̃ m = g1 g2 Im Protokoll BlindLogEqSigh kann m nur mit Zufallswerten σ und τ wie σ τ folgt bestimmt werden: m = m g . s. Damit gilt (siehe Darstellungsproblem): s̃ = s und m = m : s̃. σ. τ. 1/s. σ. τ. σ/s. σ. g1 g2 = m = m g = (g1 g2 ) g = g1 g2 g mit: τ = 0 und σ = s̃ = s.. τ.

(69) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:67 Sicherheitsaspekte und zugrundeliegende Probleme < > Walter Unger 29.10.2015 16:56 WS2015/16. 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 , . . . , ar ) ist eine Darstellung von y bezüglich g r a genau dann wenn y = ∏i=1 gi i . 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} Darstellung ist, 1/q. r.

(70) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:68 Sicherheitsaspekte und zugrundeliegende Probleme < > Walter Unger 29.10.2015 16:56 WS2015/16. 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 A , der zu g = (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= / 1 und z ∈ G den diskreten Logarithmus von z bezüglich g bestimmt.. 5. D.h. x bestimmt mit g = z.. x.

(71) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:69 Sicherheitsaspekte und zugrundeliegende Probleme < > Walter Unger 29.10.2015 16:56 WS2015/16. Beweis. int B(int g,z) repeat wähle i ∈ {1, . . . , r } uj ∈ {1, . . . , q − 1}, 1 ⩽ j ⩽ r zufällig gi ∶= z. ui. gj ∶= g j , 1 ⩽ j ⩽ r , i = /j u. (a1 , a2 , . . . , ar ) = A(g1 , g2 , . . . , gr ) until ai ui ≡ /0 return −(ai ui ) ∑i =/ j aj uj mod q.

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

(73) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:71 Sicherheitsaspekte und zugrundeliegende Probleme < > Walter Unger 29.10.2015 16:56 WS2015/16. 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. 4. Das Diffie-Hellman Entscheidungsproblem ist dann: a b Gegeben: g1 = g , g2 = g und g3 ab Frage: Gilt g3 = g ?. 5. ab. a. b. aus g und g .. D.h. gilt logg (g3 ) = logg (g1 ) ⋅ logg (g2 ) bzw. logg2 (g3 ) = logg (g1 )..

(74) Z. Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S. Off-Line System Sicherheitsa 8:72 Sicherheitsaspekte und zugrundeliegende Probleme < > Walter Unger 29.10.2015 16:56 WS2015/16. 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?.

(75)

Referenzen

ÄHNLICHE DOKUMENTE

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 Inhaltsverzeichnis Walter Unger 12.12.2015 15:32

Um die zu verhindern reicht es aus, OAEP oder kollisionssichere Hashfunktionen zu

Einleitung Definitionen Sehr einfache Quittung Einfache Quittung Schlüsselaustausch Kerberos-Verfahren Diffie-Hellman mit Authentifizierung Station to Station Bestimmen

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

Grundlagen Motivation Idee: Schnorrs Identifikation Schnorrs Identifikation nicht-interaktive Version Sicherheit Aufbau einer blinden Unterschrift.. Sicherheit Sicherheit des

Überblick Münze ist eine von der Bank unterschriebene sehr große Nummer.... Überblick Münze ist eine von der Bank unterschriebene sehr

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