kurse:ef05a-2021:crypto-crash-course

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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/Response ==== ==== Challenge/Response ====
   * Besitznachweis eines privaten Schlüssels, ohne den Schlüssel zu zeigen.   * Besitznachweis eines privaten Schlüssels, ohne den Schlüssel zu zeigen.
 +    * 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, nicht die Nachricht selbst. Nur der Hash der Nachricht wird verschlüsselt, nicht die Nachricht selbst.
Line 113: Line 119:
  
 ==== Anwendung bei https ==== ==== Anwendung bei https ====
 +  * Zentrale Stellen 
 +    * deren öffentliche Schlüssel sind im Browser hinterlegt. 
 +  * Zentrale stelle unterschreibt, öffentlichen Schlüssel vom Server. 
 +  * 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/Ertrag ==== 
 + 
 +  * Bitcoin Stromverbrauch: Wie Irland. 
 +  * Anzahl Transaktionen: ca. 4/s (zum Vergleich: Visa: 65'000/s). 
 + 
 +==== Alternativen ==== 
 +  * Proof of Stake (anstatt Proof of work).  
 +    * Bieterrunde, wer den nächsten Block signieren darf. 
 +    * Pseudozufälliges aber deterministisch nachvollziehbares Auswahlverfahren, mit Wahrscheinlichkeit proportional zum Einsatz. 
 +    * 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, ein wichtiger Grund für das wirtschaftliche Wohlergehen der Schweiz. Vertrauen ist verdammt effizient.
 +
 ==== 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://www.youtube.com/watch?v=IZaTd0hDtkI Vergleichbar mit Autogramm. Wertvoll für den Fan, sonst Altpapier. Siehe auch Steve Moulds Video dazu: https://www.youtube.com/watch?v=IZaTd0hDtkI
Line 124: Line 171:
  
  
 +===== Weitere Buildingblocks =====
 +  * https://en.wikipedia.org/wiki/Zero-knowledge_proof
 +  * https://en.wikipedia.org/wiki/Group_signature
 +  * https://en.wikipedia.org/wiki/Ring_signature
 +  * Unlesbare Transaktionen: https://en.wikipedia.org/wiki/Monero
  • kurse/ef05a-2021/crypto-crash-course.1652687636.txt.gz
  • Last modified: 2022/05/16 09:53
  • by Ivo Blöchliger