Inhalt Grundgedanken und bereits bestehende Verfahren Anforderungen an Elektronischen Geld und grundlegende Protokolle Blinde Signaturen und Probleme die daraus erwachsen On-line Cash Off-line Cash Random Identity Strings Seminar: Codes und Kryptographie 1 1
Grundgedanken Hauptgedanke: Von David Chaum, die Nachbildung realen Geldes Man hebt Münzen bei der Bank ab und bezahlt damit beim Händler Münzen sagen nichts über den Käufer aus. Jeder Geldschein existiert genau einmal, dank Seriennummer. Es ergeben sich folgende Instanzen: Käufer, Händler, Bank, und Münzen Seminar: Codes und Kryptographie 2 Bisherige Verfahren im Vergleich Bezahlen per Kreditkarte (Real, wie im Internet) Es werden Name und die Kartennummer bekannt gegeben. Das Kreditkartenunternehmen (Bank) kann überprüfen welcher Kunde, wie viel Geld bei welchem Händler ausgegeben hat. Werden die Daten gestohlen, kann der Dieb bis zum Limit der Karte oder deren Sperrung einkaufen. Kundenkonto (z.b Amazon, Ebay) Dem Händler werden Daten wie Name, Adresse, Kontodaten, Telefonnummer etc. bekannt gegeben. Werden die Kontodaten gestohlen, kann der Dieb bei dem Händler beliebig viel einkaufen. Seminar: Codes und Kryptographie 3 2
Anforderungen an elektronisches Geld Authentizität: Nur autorisierte Instanzen haben das Recht Münzen herzustellen. Unikat: Münzen sind nicht kopierbar, oder werden als solche erkannt. Anonymität: Münzen dürfen keine Information auf seinen Besitzer enthalten. Verifizierbarkeit: Der Empfänger einer Münze kann diese verifizieren. Seminar: Codes und Kryptographie 4 Ein Ansatz mit Protokollen 1) Das Abheben von elektronischen Geld (withdrawal protocol). 2) Die Bezahlung mit elektronischen Geld (payment protocol). 3) Das Einzahlen von elektronischen Geld (deposit protcol). Die Bank besitzt einen geheimen Schlüssel SK B, mit dem es ausgehende Münzen unterschreibt. Der öffentliche Schlüssel PK B ist allen Beteiligten bekannt. {M} SK beschreibt eine Münze M die mit dem Schlüssel SK B unterschrieben wurde. Die Signatur von M, wird auch als s bezeichnet. Seminar: Codes und Kryptographie 5 3
Das Abheben Withdrawal protocol: 1) Der Käufer teilt der Bank mit er möchte 100 abheben, außerdem gibt er eine Seriennummer an. 2) Die Bank sendet auf die Anfrage folgende Münze: {M} SK = {( Ich bin 100 wert, #1234)}SK B 3) Die Bank bucht 100 vom Käuferkonto ab. 4) Der Käufer überprüft die Signatur mit dem öffentlichen Schlüssel PK B, und akzeptiert sie wenn sie gültig ist. Seminar: Codes und Kryptographie 6 Bezahlen und Einzahlen Payment protocol: Der Käufer sendet dem Händler die Münze. Der Händler überprüft die Signatur und akzeptiert die Münze falls sie gültig ist. Deposit protocol: Der Händler sendet die Münze der Bank. Die Bank überprüft die Signatur und akzeptiert die Münze falls sie gültig ist. Die Bank bucht den Wert der Münze auf das Händlerkonto. Die Münzen sollten so schnell wie möglich übermittelt werden, damit man keinen doppelt ausgegebenen aufsitzt. Wir gehen davon aus, dass die Signaturen (RSA in diesem Fall) sicher sind. Seminar: Codes und Kryptographie 7 4
Offene Probleme Gegenüber der Bank ist der Kunde nicht anonym. Eine Münze kann leicht kopiert werden und mehrere Male ausgegeben werden. ( double spending problem ) Mögliche Lösung für das Anonymitätsproblem: Blind Signatures Analogie: Man bedeckt einen Scheck mit einem Stück Kohlepapier und legt beide in einem Umschlag. Man sagt der Bank, um welchen Betrag es sich handelt und diese unterschreibt außen auf dem Umschlag. Damit ist der Scheck unterschrieben ohne, dass die Bank den Inhalt kennt. Seminar: Codes und Kryptographie 8 RSA blind signatures Sei e der öffentliche RSA-Schlüssel, d der geheime RSA-Schlüssel. Es gilt also d = Inv(e mod φ(n)). M sei die Münze die unterschieben werden soll, dann ist die Signatur: s=m d mod n n ist bekannt Die Unterschrift wird durch die Berechnung von s e mod n und dem Vergleichen mit M mod n verifiziert. Seminar: Codes und Kryptographie 9 5
Das Abheben mit Blenden Der Käufer wählt eine beliebige Nummer, r mod n und berechnet damit M = M * r e mod n Der Käufer übergibt der Bank M und diese erstellt mit Hilfe ihres Schlüssels eine Signatur für M s = (M ) d mod n Wir wissen durch M = M * r e mod n und s = (M ) d da: (M ) d = M d * (r e ) d = M d * r Der Käufer kann durch simples Dividieren von r die Unterschrift für die Münze M, s = M d erhalten. Die Bank bucht die Summe vom Konto des Käufers ab. Die Protokolle für Be- und Einzahlung werden nicht geändert. Seminar: Codes und Kryptographie 10 Das Abheben mit Blenden Seminar: Codes und Kryptographie 11 6
Der Käufer gibt der Bank einen falschen Betrag an (1) Der Käufer kann eine geblendete 100 -Münze als eine 10 -Münze ausgeben. Lösung: Für feste Beträge besitzt die Bank verschiedene Schlüssel PK 1B bis PK ib die nur für den Wert von i gültig sind. Gibt ein Käufer bei einer Münze einen falschen Wert an, das anhand der nicht gültigen Signatur erkannt. Seminar: Codes und Kryptographie 12 Der Käufer gibt der Bank einen falschen Betrag an (2) Lösung für variable Beiträge, das Cut and Choose -Verfahren: Der Käufer blendet mehrere Münzen mit verschiedenen r (Bsp. 100, 20 -Münzen ) und verschiedenen Seriennummern. Alle Münzen werden an die Bank übermittelt. Diese wählt zufällig eine Münze aus, unterschreibt diese, fordert von den anderen die zugehörigen r und überprüft ob alle Beträge gleich sind. So kann der Käufer die Bank nur mit einer Wahrscheinlichkeit von 0,01 betrügen. Für n viele Umschläge liegt die Wahrscheinlichkeit zu betrügen bei 1/n. Seminar: Codes und Kryptographie 13 7
On-line digital cash Skizziert den Zeitpunkt der Verifizierung der Münze: Die Bank führt eine Datenbank mit allen bisher eingegangenen Münzen. Beim Übermittlung einer neuen wird überprüft ob diese schon eingegangen ist. Während des Bezahlens wird vom Händler bei der Bank angefragt, ob die Münze schon eingereicht wurde. Wenn ja, wird die Münze vom Händler abgelehnt. Der Händler muss hierbei eine ständige Verbindung zur Bank haben. On-line Digital cash verhindert das Auftreten des double spending -Problems. Seminar: Codes und Kryptographie 14 Off-line digital cash Während des payment-protocols wird der Käufer dazu gezwungen eine Zufallszahl, einen random identity string, oder RIS an die Münze anzuhängen. Dieser muss bei jeder Münze anders sein. Nur der Benutzer kann eine gültige RIS erstellen. Zwei verschiedene RIS auf derselben Münze geben der Bank die Möglichkeit den Benutzernamen zu ermitteln. Der Händler muss hierbei nicht immer eine Verbindung zur Bank haben. Seminar: Codes und Kryptographie 15 8
Das Abheben mit Blenden und RIS 1) Der Käufer bereitet 100 Münzen zu je 100 der folgenden Form vor: M i = ( Ich bin 100 wert, #1234, y i,1, y i,1 ; y i,2, y i,2 ; ; y i,k, y i,k ) hierbei ist y i,j = H(x i,j ) und y i,j = H(x i,j ), uns es werden x i,j und x i,j zufällig unter der Bedingung gewählt, dass x i,j O+ x i,j = Käufername i,j 2) Der Käufer blendet nach bekannten Schema alle M i zu M i und sendet sie der Bank zu. 3) Die Bank fordert den Käufer auf 99 von 100 Münzen zu entblenden. 4) Beim Entblenden der Münzen übergibt der Käufer auch die entsprechenden x i,j und x i,j 5) Die Bank stellt nun nicht nur sicher, dass es sich um 100 Münzen handelt, sondern auch, dass y i,j = H(x i,j ) und y i,j = H(x i,j ) sowie x i,j O+ x i,j = Käufername 6) Die Bank gibt dem Käufer nur die Signatur für die geblendete Nachricht. Seminar: Codes und Kryptographie 16 Das Bezahlen mit Blenden und RIS 1) Der Käufer gibt M und die Signatur s an den Händler. 2) Der Händler überprüft die Gültigkeit von s und antwortet mit einem zufälligen bit-string der Länge K, b 1 b K 3) Sollte b j = 0 sein, dann gibt der Benutzer das entsprechende x j heraus, wenn b j = 1 ist dann x j 4) Der Händler überprüft ob für alle bekannten x j und x j gilt: y j = H(x j ) oder y j = H(x j ) und akzeptiert die Münze dann. Seminar: Codes und Kryptographie 17 9
Das Einzahlen mit Blenden und RIS 1) Der Händler übermittelt der Bank M, s und die ausgewählten Teile des RIS an die Bank. 2) Die Bank verifiziert die Signatur und überprüft ob die Münze M, s bereits signiert wurde. 3) Wurde die Münze bereits eingezahlt, vergleicht die Bank die RIS: Bei gleicher Seriennummer und Teil-RIS hat der Händler betrogen. Bei gleicher Seriennummer und verschiedener Teil-RIS hat der Käufer betrogen. Die Wahrscheinlichkeit, dass zufällig der gleiche Bit-String gewählt wird und beide Münzen bei Einzahlung die gleiche Teil-RIS besitzen, liegt bei: 2 k k = Länge des Bit-Strings Seminar: Codes und Kryptographie 18 Fazit Mit diesem Protokollen ist weitergehend anonymer Handel im Internet möglich. Dinge wie z.b. die korrekte Authentifizierung eines Bankkunden werden nicht betrachtet. Das Problem einer großen Datenbank aller eingegangenen Münzen bleibt bestehen. Man benötigt recht große Zufallszahlen um das Blinding und die RIS relativ sicher zu gestalten. Mit Off-line digital cash ist es möglich Münzen zwischen zu speichern. Seminar: Codes und Kryptographie 19 10