Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
kurse:ef05a-2021:crypto-crash-course [2022/05/16 09:53] Ivo Blöchliger [Aktuelle Verfahren] |
kurse:ef05a-2021:crypto-crash-course [2022/05/16 10:34] (current) Ivo Blöchliger [NFT] |
||
---|---|---|---|
Line 69: | Line 69: | ||
=== RSA === | === RSA === | ||
- | Für einen Modulus $n=pq$ mit $p,q$ prim können zwei Exponenten $e$ und $d$ bestimmt werden, so dass | + | Für einen Modulus $n=pq$ mit $p,q$ prim können zwei Exponenten $e$ und $d$ bestimmt werden, so dass für alle $m<n$ gilt: |
$$ | $$ | ||
\left(m^d\right)^e = m \mod n \qquad \text{und damit} \qquad \left(m^d\right)^e = m^{de} = \left(m^e\right)^d = m | \left(m^d\right)^e = m \mod n \qquad \text{und damit} \qquad \left(m^d\right)^e = m^{de} = \left(m^e\right)^d = m | ||
Line 94: | Line 94: | ||
==== Challenge/ | ==== Challenge/ | ||
* Besitznachweis eines privaten Schlüssels, | * Besitznachweis eines privaten Schlüssels, | ||
+ | * Server: Verschlüssle mal diese Zufallszahl! | ||
+ | * Client: Bitte sehr. | ||
+ | * Server entschlüsselt mit öffentlichem Schlüssel. Das kann nur der Besitzer vom privaten Schlüssel sein. | ||
==== Bemerkung zu RSA vs. Elliptic Curves ==== | ==== Bemerkung zu RSA vs. Elliptic Curves ==== | ||
Line 107: | Line 110: | ||
* Integrität der Nachricht. | * Integrität der Nachricht. | ||
==== Prinzipien ==== | ==== Prinzipien ==== | ||
+ | * Mit privatem Schlüssel verschlüsseln. | ||
+ | * Kann nur mit öffentlichem Schlüssel entschlüsselt werden. | ||
+ | * Kommt dabei was sinnvolles heraus, kann das nur der Besitzer des privaten Schlüssels verschlüsselt haben. | ||
==== Effektive Umsetzung ==== | ==== Effektive Umsetzung ==== | ||
Nur der Hash der Nachricht wird verschlüsselt, | Nur der Hash der Nachricht wird verschlüsselt, | ||
Line 113: | Line 119: | ||
==== Anwendung bei https ==== | ==== Anwendung bei https ==== | ||
+ | * Zentrale Stellen | ||
+ | * deren öffentliche Schlüssel sind im Browser hinterlegt. | ||
+ | * Zentrale stelle unterschreibt, | ||
+ | * Client überprüft unterschrift auf vom Server präsentierten Zertifikat. | ||
+ | * wenn Zertifikat OK (d.h. der unterschreibenden Stelle wird vertraut), wird dem Server vertraut | ||
+ | * Schlüsseltausch (z.B. Diffie-Hellman oder ähnliches Verfahren). | ||
+ | === Pre-Snowden === | ||
+ | * Kaum https, Passwörter im Klartext übers Netz. | ||
+ | * Wenn https, dann oft Schlüssel-Tausch via privatem Server-Schlüssel. Problem: nachträgliche Entschlüsselung möglich, wenn Zugriff auf privaten Server-Schlüssel. | ||
+ | * Zertifikate waren schweineteuer. Heute gratis dank Letsencrypt (Spenden von Bürgerrechtsorganisationen). | ||
===== POW-Blockchain ===== | ===== POW-Blockchain ===== | ||
- | Proof of work, z.B. Bitcoin. | + | * Öffentliche Buchhaltung |
+ | * Transaktionen sind vom Sender unterschrieben. | ||
+ | * Block: | ||
+ | * Hashwert vom letzen Block | ||
+ | * Liste von Transaktionen | ||
+ | * inkl. Transaktionsgebühren und Belohnung für den Erzeuger vom Block | ||
+ | * Zu findende Zufallszahl | ||
+ | * ergibt einen Hashwert mit $x$ führenden Nullen (binär). Schwierigkeit $2^x$ | ||
+ | * Konsens: Längste Kette ist massgebend. | ||
+ | * Transaktion erst «sicher», wenn ein paar Blöcke angehängt | ||
+ | * Transaktion wieder «löschen» nur mit enormer Rechenpower möglich (z.B. wenn man mehr als 50% der Power hat, kann man eine parallele Kette ohne die eigene Transaktion rechnen). | ||
+ | |||
+ | |||
+ | ==== Aufwand/ | ||
+ | |||
+ | * Bitcoin | ||
+ | * Anzahl Transaktionen: | ||
+ | |||
+ | ==== Alternativen ==== | ||
+ | * Proof of Stake (anstatt Proof of work). | ||
+ | * Bieterrunde, | ||
+ | * Pseudozufälliges aber deterministisch nachvollziehbares Auswahlverfahren, | ||
+ | * Ausgewählter signiert Block, bekommt Transaktionsgebühren. | ||
+ | * Wer beim Verfahren «falsch» agiert, verliert den gebotenen Einsatz. | ||
==== Welches «Problem» löst eine Blockchain? ==== | ==== Welches «Problem» löst eine Blockchain? ==== | ||
+ | * Kein Vertrauen in zentrale Stelle. | ||
+ | * Kein Vertrauen in Marktzteilnehmer. | ||
+ | |||
+ | Meine Meinung: Vertrauen ist das höchste Wirtschaftsgut, | ||
+ | |||
==== Braucht es für $xy$ eine Blockchain? ==== | ==== Braucht es für $xy$ eine Blockchain? ==== | ||
- | Antwort: Nein. | + | Kurze Antwort: Nein. |
+ | |||
+ | Lange Antwort: Meist reicht eine digitale Unterschrift einer vertrauenswürdigen Stelle (worauf fast alle Blockchains in öffentlichen Projekten basieren). | ||
==== NFT ==== | ==== NFT ==== | ||
Vergleichbar mit Autogramm. Wertvoll für den Fan, sonst Altpapier. Siehe auch Steve Moulds Video dazu: https:// | Vergleichbar mit Autogramm. Wertvoll für den Fan, sonst Altpapier. Siehe auch Steve Moulds Video dazu: https:// | ||
Line 124: | Line 171: | ||
+ | ===== Weitere Buildingblocks ===== | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * Unlesbare Transaktionen: |