• 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!
75
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)Algorithmische Kryptographie (WS2015/16) Kapitel 8 Elektronisches Geld Walter Unger Lehrstuhl für Informatik 1. 9:54 Uhr, den 7. Januar 2016.

(2) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8. Inhaltsverzeichnis. Walter Unger 7.1.2016 9:54. WS2015/16. Inhalt I 1. Einleitung Anforderungen Einfaches Protokoll 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 Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:1. Anforderungen. Walter Unger 7.1.2016 9:54. 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 Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:2. Einfaches Protokoll. Walter Unger 7.1.2016 9:54. WS2015/16. Idee Bank X : Konto von B enthällt: 12000 + 1500 = 13500. sigB (A zahlt an B 1500). sigA (A zahlt an B 1500). 5. 2. 1. Kunde A:. 4 sigX (A ist Kunde von X ). 6. Konto von A enthält: 2300 − 1500 = 800. 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 Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:3. Einfaches Protokoll. Walter Unger 7.1.2016 9:54. 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 Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:4. Einfaches Protokoll. Walter Unger 7.1.2016 9:54. 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 Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:5. Einfaches Protokoll. Walter Unger 7.1.2016 9:54. Ü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. WS2015/16.

(8) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:6. Sicherheitsaspekte zum einfachen Protokoll. Walter Unger 7.1.2016 9:54. WS2015/16. Sicherheitsaspekte A: DA , EA , EX , DX (EA ), nA , tA , zA (zu sendender Betrag) !. testet: zB = zA |tA − tB | < ε Sekunden. B: DB , EB , EX , DX (EB ), nB , tB A, zA , DX (EA ) B, zB , tB , r , DX (EB ). zB (zu empfangender Betrag) !. testet: zB = zA r := Zufallszahl. testet: nA > zA A, zA , tA , r , DA (zA tA r ) ! nA := nA − zA zA tA r = EA (DA (zA tA r )) B, DB (−zA tB r ) ! nB := nB + zB −zA tB r = EB (DB (−zA tB r )) 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 Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:7. Einfaches Protokoll mit Steuersatz. Walter Unger 7.1.2016 9:54. 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 Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:8. Einleitung. Walter Unger 7.1.2016 9:54. 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 Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:9. Münze weiterreichen. Walter Unger 7.1.2016 9:54. 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: 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..

(12) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:10. Münze weiterreichen. Walter Unger 7.1.2016 9:54. 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 Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:11. Münze weiterreichen. Walter Unger 7.1.2016 9:54. WS2015/16. Zahlungen bestätigen (Zeit verwalten) A: pa , xa , pb , pc. BB:. C : pc , xc , pa , pb. B: pb , xb , pa , pc Tab. T0 , k. 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: 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.

(14) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:12. Münze weiterreichen. Walter Unger 7.1.2016 9:54. 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 Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:13. Grundlagen. Walter Unger 7.1.2016 9:54. Situation (Basis). 1. 5. Staat:. Bank X :. 4. 2. Kunde:. Laden: 3. WS2015/16.

(16) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:14. Grundlagen. Walter Unger 7.1.2016 9:54. Situation (Rückverfolgung). 1. 5. Staat:. Bank X :. 4. 2. Kunde:. Laden: 3. WS2015/16.

(17) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:15. Anonymes Geld. Walter Unger 7.1.2016 9:54. Situation (Ohne Rückverfolgung). 1. 5. Staat:. Bank X :. 4. 2. Kunde:. Laden: 3. WS2015/16.

(18) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:16. Anonymes Geld. Walter Unger 7.1.2016 9:54. Situation (Ohne Rückverfolgung, mit Kopie) Staat:. 1. Bank X :. 4. 2. Kunde:. Laden: 3. WS2015/16.

(19) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:17. Anonymes Geld. Walter Unger 7.1.2016 9:54. 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 Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:18. Anonymes Geld. Walter Unger 7.1.2016 9:54. 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 Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:19. Ziel. Walter Unger 7.1.2016 9:54. 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 Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:20. Motivation. Walter Unger 7.1.2016 9:54. 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 Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:21. Idee: Schnorrs Identifikation. Walter Unger 7.1.2016 9:54. 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.. WS2015/16.

(24) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:22. Idee: Schnorrs Identifikation. Walter Unger 7.1.2016 9:54. Protokoll ProofLog (g , y ). 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 ) V : y , g , p, q. P: x, y , g , p, q r ∈ {0, . . . , q − 1} zufällig a := g r b := r − cx. WS2015/16. a. c ∈ {0, . . . , q − 1} zufällig. c b. ? 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) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:23. Schnorrs Identifikation (nicht-interaktive Version). Walter Unger 7.1.2016 9:54. WS2015/16. Protokoll σ(m) = (c, b) = ProofLogh (m, g , y ). 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. 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 ) 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. ?. 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) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:24. Sicherh.. Walter Unger 7.1.2016 9:54. Sicherheitsaspekte. 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. (c, b), m. WS2015/16. ?. 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. Beachte dabei: G Untergruppe der Ordnung g Generator in G .. b1−b2 . c2 −c1 q in Z∗p. und.

(27) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:25. Aufbau einer blinden Unterschrift. Walter Unger 7.1.2016 9:54. 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 Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:26. Aufbau einer blinden Unterschrift. Walter Unger 7.1.2016 9:54. 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 a := g r c := h(m ◦ a) b := r − cx. (c, b), m. ?. Teste: c = h(m ◦ g b y c ). 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. ? Teste: a ≡ g b y c.

(29) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:27. Aufbau einer blinden Unterschrift. Walter Unger 7.1.2016 9:54. 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 a := g r b := r − cx. a c b. 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) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:28. Aufbau einer blinden Unterschrift. Walter Unger 7.1.2016 9:54. 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 a := g r b := r − cx. β(u,v ,w ) :. ProofLog (g , y ) σ(m) = (c, b) = ProofLogh (m, g , y ) ProofLogh (g , y ). a c b. c = h(m, . . .) ? Teste: a ≡ g b y c. G × Z2q → G × Z2q (a, c, b) 7→ (a, c, b). 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) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:29. Sicherheit des Kunden. Walter Unger 7.1.2016 9:54. WS2015/16. Sicherheit des Kunden β(u,v ,w ) :. 2 G × Z2 q → G × Zq (a, c, b) 7→ (a, c, b). mit:. 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. Lemma Eine Unterscheidung der Transcripte durch die Bank ist nicht möglich. Beweis. Untersuche die Verteilung der Transcripte..

(32) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:30. Sicherheit des Kunden. Walter Unger 7.1.2016 9:54. WS2015/16. Sicherheit des Kunden (Beweis) β(u,v ,w ) :. 2 G × Z2 q → G × Zq (a, c, b) 7→ (a, c, b). mit:. 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) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:31. Sicherheit der Bank. Walter Unger 7.1.2016 9:54. 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. 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) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:32. Sicherheit der Bank. Walter Unger 7.1.2016 9:54. 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 a := g r b := r − cx. a c b. 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) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:33. Sicherheit der Bank. Walter Unger 7.1.2016 9:54. WS2015/16. Sicherheit der Bank (2. Teil) V : y , g , p, q, m. P: x, y , g , p, q r ∈ {0, . . . , q − 1} zufällig a := g r b := r − cx. a c b. 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) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:34. Blinde Unterschriften. Walter Unger 7.1.2016 9:54. WS2015/16. Protokoll BlindLogSigh (m). 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 a := g r b := r − cx. 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) V : y , g , p, q, m. P: x, y , g , p, q 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) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:35. Blinde Unterschriften. Walter Unger 7.1.2016 9:54. WS2015/16. Bemerkungen BlindLogSigh (m) V : y , g , p, q, m. P: x, y , g , p, q r ∈ {0, . . . , q − 1} a := g r b := r − cx. a c b. 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) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:36. Blinde Unterschriften. Walter Unger 7.1.2016 9:54. Erinnerung: V : y1 , y2 g , p, q. P: g , p, q. WS2015/16. 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. 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) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:37. Blinde Unterschrift mit zwei gleichen Logarithmen. Walter Unger 7.1.2016 9:54. 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 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!.

(40) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:38. Blinde Unterschrift mit zwei gleichen Logarithmen. Walter Unger 7.1.2016 9:54. 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 z := mx a := (a1 , a2 ) := (g r , mr ). b := r − cx. m a, z. c b. s, t ∈ {0, . . . , q − 1} zufällig, s 6= 0 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) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:39. Faires Elektronisches Geld (Systemaufbau). Walter Unger 7.1.2016 9:54. 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 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) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:40. Faires Elektronisches Geld (Systemaufbau). Walter Unger 7.1.2016 9:54. WS2015/16. Aufbau des Systems Bank: g. BB: g , g1 , g2 y. Staat: 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 := 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 Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:41. Einleitung. Walter Unger 7.1.2016 9:54. 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 Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:42. Münze von der Bank abheben. Walter Unger 7.1.2016 9:54. 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:. WS2015/16.

(45) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:43. Münze von der Bank abheben. Walter Unger 7.1.2016 9:54. WS2015/16. Münze von der Bank abheben 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.

(46) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:44. Zahlungsverkehr. Walter Unger 7.1.2016 9:54. WS2015/16. 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) ?. 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 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..

(47) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:45. Zahlungsverkehr. Walter Unger 7.1.2016 9:54. 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. WS2015/16. (c, b) Sicherheitstest Testergebnis. Testergebnis. Kunde: g , g1 , g2 , xC , yC , y , p, q.

(48) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:46. Sicherheitsaspekte. Walter Unger 7.1.2016 9:54. 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 Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:47. Zusammenfassung. Walter Unger 7.1.2016 9:54. 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 y := g x ö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 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 (u, v , w ) := DxT (EyT (u, v , w )). a, c, 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.

(50) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:48. Zusammenfassung. Walter Unger 7.1.2016 9:54. 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 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 (u, v , w ) := DxT (EyT (u, v , w )). a, c, 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.

(51) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:49. Einleitung. Walter Unger 7.1.2016 9:54. Idee (On-Line −→ Off-Line). WS2015/16. 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 Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:50. Einleitung. Walter Unger 7.1.2016 9:54. WS2015/16. 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 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) P kennt logg (y ) = logm (z).

(53) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:51. Einleitung. Walter Unger 7.1.2016 9:54. Einleitung. ProofLog (g , y ) σ(m) = (c, b) = ProofLogh (m, g , y ) ProofLogh (g , y ) BlindLogSigh (m). Münze: (m, z) mit m = g1 g2s 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 =. g1 g2s. WS2015/16. = g1 d 1/xT .. Rückverfolgung durch m = m1/s ..

(54) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:52. Münze von der Bank abheben. Walter Unger 7.1.2016 9:54. WS2015/16. Münze von der Bank abheben. (m, z): m = g1 g2s und z = mx x s d = yTs = g2T 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 ?. c = h((m/g2 )b g1c ) ?. c = h(yTb d c ) Speichere d. g2. (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.

(55) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:53. Münze von der Bank abheben. Walter Unger 7.1.2016 9:54. WS2015/16. Münze von der Bank abheben. (m, z): m = g1 g2s und z = mx x s d = yTs = g2T 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 ) ? c = h(yTb d c ) r ∈ {0, . . . , q − 1} zuf. z := mx a := (a1 , a2 ) := (g r , mr ). 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. b := r − cx. c b. z := z s , c1 := h(c# ◦ m ◦ z ◦ a1 ◦ a2 ) c := (c1 − w )u −1 ?. teste: a1 ≡ g b y c ?. b c. a2 ≡ m z d.h. logg (y ) = logm (z) = log 1/s (mx/s ) m b1 := ub + v , Ergebnis: (z, c1 , b1 ).

(56) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:54. Münze von der Bank abheben. Walter Unger 7.1.2016 9:54. WS2015/16. Eigenschaften x s. (m, z): m = g1 g2s und z = mx und d = yTs = g2T und m = m1/s logm/g (g1 ) = logy (d) = s und logg (y ) = logm (z) = log 1/s (mx/s ) mit SigBank (c# ) 2 T Bank: g , g1 , g2 , p, q, x, y , yC , yT Kunde: g , g1 , g2 , p, q, m xC , 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. logm/g2 (g1 ) = logyT (d) = s logg (y ) = logm (z) = logm1/s (mx/s ) Bank hat c# unterschrieben.. 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 ? a2 ≡ m b z c d.h. logg (y ) = logm (z) = log 1/s (mx/s ) m b1 := ub + v , Ergebnis: (z, c1 , b1 ).

(57) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:55. Bezahlung im Geschäft. Walter Unger 7.1.2016 9:54. WS2015/16. Bezahlung im Geschäft x s. (m, z): m = g1 g2s und z = mx und d = yTs = g2T und m = m1/s logm/g (g1 ) = logy (d) = s 2 T 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 ◦ g22 ). 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) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:56. Bezahlung im Geschäft. Walter Unger 7.1.2016 9:54. WS2015/16. Bezahlung im Geschäft x s. (m, z): m = g1 g2s und z = mx und d = yTs = g2T und m = m1/s logm/g (g1 ) = logy (d) = s 2 T logg (y ) = logm (z) = log 1/s (mx/s ) mit SigBank (c# ) σ(m) = (c, b) = ProofLogh (m, g , y ) 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 ◦ g22 ).

(59) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:57. Bezahlung im Geschäft. Walter Unger 7.1.2016 9:54. WS2015/16. Bezahlung im Geschäft x s. (m, z): m = g1 g2s und z = mx und d = yTs = g2T σ(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. logm/g (g1 ) = logy (d) = s 2 T. 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 ◦ g22 ).

(60) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:58. Bezahlung im Geschäft. Walter Unger 7.1.2016 9:54. WS2015/16. Geldfluss x s (m, z): m = g1 g2s und z = mx und d = yTs = g2T und m = m1/s. Bank: g , g1 , g2 , p, q, x, y , yC , yT. ?. c = h((m/g2 )b g1c ) ? c = h(yTb d c ) r ∈ {0, . . . , q − 1} zuf. z := mx a := (a1 , a2 ) := (g r , mr ). 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 g , g , g , p, q, x , y , y , y Kunde: 1 2 C C T 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 2 T 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 ? teste: a1 ≡ g b y c ? a2 ≡ m b 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 ◦ g22 ).

(61) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:59. Einzahlung bei der Bank. Walter Unger 7.1.2016 9:54. WS2015/16. Einzahlung bei der Bank x s (m, z): m = g1 g2s und z = mx und d = yTs = g2T und m = m1/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 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 ◦ 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 Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:60. Einzahlung bei der Bank. Walter Unger 7.1.2016 9:54. WS2015/16. Einzahlung bei der Bank x s (m, z): m = g1 g2s und z = mx und d = yTs = g2T und m = m1/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 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 ◦ 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 Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:61. Rückverfolgung. Walter Unger 7.1.2016 9:54. WS2015/16. Zahlungsrückverfolgung einer Münze x s (m, z): m = g1 g2s und z = mx und d = yTs = g2T und m = m1/s. Bank: g , g1 , g2 , p, q, x, y , yC , yT. 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# m Kunde: g , g1 , g2 , p, q, xC , yC , y , yT2 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. Bank: g , g1 , g2 , x, y , yC , p, q. 2. m. z := mx a := (a1 , a2 ) := (g r , mr ). 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. 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 ? a2 ≡ m b 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) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:62. Rückverfolgung. Walter Unger 7.1.2016 9:54. WS2015/16. Zahlungsrückverfolgung einer Münze x s (m, z): m = g1 g2s und z = mx und d = yTs = g2T und m = m1/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# m Kunde: g , g1 , g2 , p, q, xC , yC , y , yT2. 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. 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 ? a2 ≡ m b 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. 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. (m/g1 )xT = (g2s )xT = yTs = d.

(65) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:63. Sicherheit. Walter Unger 7.1.2016 9:54. WS2015/16. Münzverdopplung x s (m, z): m = g1 g2s und z = mx und d = yTs = g2T und m = m1/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 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 ◦ g22 ). 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) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:64. Sicherheit. Walter Unger 7.1.2016 9:54. WS2015/16. Münzverdopplung x s (m, z): m = g1 g2s und z = mx und d = yTs = g2T und m = m1/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 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 ◦ g22 ). Falls der Laden verdoppelt, ist die verdoppelte Münze identisch. Damit wird sie von der Bank abgelehnt..

(67) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:65. Sicherheit. Walter Unger 7.1.2016 9:54. WS2015/16. Sicherheit des Kunden x s (m, z): m = g1 g2s und z = mx und d = yTs = g2T und m = m1/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) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:66. Sicherheit. Walter Unger 7.1.2016 9:54. WS2015/16. Sicherheit der Staats x s (m, z): m = g1 g2s und z = mx und d = yTs = g2T und m = m1/s. Der Kunde muss Der Kunde muss Der Kunde muss. 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) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:67. Sicherheit. Walter Unger 7.1.2016 9:54. 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 ,Q . . . , ar ) ist eine Darstellung von y bezüglich g genau dann wenn y = ri=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..

(70) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:68. Sicherheit. Walter Unger 7.1.2016 9:54. 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 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..

(71) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:69. Sicherheit. Walter Unger 7.1.2016 9:54. 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. WS2015/16.

(72) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:70. Sicherheit. Walter Unger 7.1.2016 9:54. WS2015/16. 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.

(73) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:71. Sicherheit. Walter Unger 7.1.2016 9:54. 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 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 )..

(74) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:72. Sicherheit. Walter Unger 7.1.2016 9:54. 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) Z. Einleitung BitCoins Motivation Grundlagen Sicherh. Protok. Aufb. On-Line S. Off-Line System Sicherheitsaspekt 8:73. Sicherheit. Walter Unger 7.1.2016 9:54. Legende : Nicht relevant : Grundlagen, die implizit genutzt werden : Idee des Beweises oder des Vorgehens : Struktur des Beweises oder des Vorgehens : Vollständiges Wissen. WS2015/16.

(76)

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

4:26 Idee der Datenübertragung Walter Unger 12.12.2015 16:03 WS2015/16 Z?.

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

7:7 Wählen durch gegenseitiges Mischen Walter Unger 12.12.2015 15:57 WS2015/16 Z.. Wählen durch gegenseitiges Mischen

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

Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau On-Line S... Einleitung BitCoins Motivation Grundlagen Sicherheit Protokolle Aufbau