220 likes | 375 Vues
ecash : das Geld auf der Festplatte. Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de. http://www.inf.uos.de/ecash. Kaufmann. Kunde. Bank. Bezahlen im Internet. Verschlüsselung. z76;9#d5%j§öst. Ich bin ein Euro. Ich bin ein Euro.
E N D
ecash : das Geld auf der Festplatte Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de http://www.inf.uos.de/ecash
Kaufmann Kunde Bank Bezahlen im Internet
Verschlüsselung z76;9#d5%j§öst Ich bin ein Euro Ich bin ein Euro
Caesar-Chiffre Verschiebe Buchstaben im Alphabet z.B. 4 C A E S A R G E I W E V
Vigenère C A E S A R 3 1 3 1 3 1 F B H T D S
Schlüssel e Schlüssel d Klartext x Chiffre y Klartext x encode decode SPION Ablauf
Diffie & Hellman, 1976 decode( ) encode( ) x = x aus der Kenntnis vonencode läßt sich nicht decode ermitteln
Caan 456789Cabarena 423477Cadiz 996543Caesar 784513Carter 341123Castrop 458944Capellen 675432Caan 456789Cabarena 423477Cadiz 996543Caesar 784513Carter 341123Castrop 458944Capellen 675432 Einweg-Funktion
Alice Bob encB encB ( ) y Nachricht verschlüsseln encB decB x y := decB ( ) x :=
Rivest, Shamir, Adleman, 1978: 23571113171923293137414347... Geheim: Wähle 2 Primzahlenp,q Öffentlich: Bestimmen := p·q Geheim:Wähle Primzahld Öffentlich: Bestimmeemite·d mod (p-1)·(q-1) = 1 25 mod 12 = 1 encode(x) := x e mod n decode(y) := y d mod n
Beispiel mit 2-stelligen Primzahlen: p := 11 q := 13 n := 143 d := 23 e := 47 encode(x) := x 47 mod 143 decode(y) := y 23 mod 143
Beispiel mit 200-stelligen Primzahlen: p=89909531058836627717440422858641402456684976683721255300590190073945028024188735646917834001445460697949352415335921952260900528540697407053331179637761895800615635806322855777396006499513330486337609 q=79902175078147244686379339512677276366231220752229356019349893671876420931744377430687365812687754246830101282297574713772455933933867764022563251792393443769903948317050160321698561025532877647684683 n=7183967091857281647581304065755973526232171670874824234027764220263949612908867044764409948013198639812433071661572827626547829385245705289778323945746104767498330122039464149315665206737745079315029030505846196489917568869335544777353689814016451189380595050450835091699231543139661865507163114707749384671493207215643822775585016598035481820024189408851781761294219320404437751888461388903116142947 d=6912880792983134201795097575592609129094117142951732155916113134708061619270609376090284210013866218445930101961895056516397352324585120228774900720850196541261833070428620931661349155515945612960396000308199646278344377562606989931674080238238945773520492076314252906439396129185619926176106618391594863515996066327659034986867136911356014076859406917008870341895680167331429079515342903719787052113 e=32060956321701259905596578736460047365111500078235979150808651783912548293819432597831619829917499109195252931659284324831218397277144058830127546998961582106443297700554088899665948071647548434168832003527652121631893839546797171960967191537076338226340888927287616084554407880875931958510259177246251661227907691999195827804405610391749679780186113
Alice Bob [e , n] e mod n y Nachricht verschlüsseln p , q [d , n] [e , n] x y := x := d mod n
encode decode SPION Sicherheit • Der Spion kennt e, n, y • Faktorisieren von n würde p und q liefern. • Damit könnte er d ausrechnen. • Das Faktorisieren einer 500-stelligen Zahldauert Jahrzehnte.
Reihenfolge vertauschen • decode(encode(x)) = x • = xed mod n • = xde mod n • = encode(decode(x))
Alice Bob encB y Nachricht signieren encB decB decB( ) x y := encB( ) x :=
Alice Bank encBank y Münze signieren encBank decBank y := decBank( ) x encBank( ) x :=
Problem • Kunde darf die Münzenur einmal ausgeben. • Bank soll nicht wissen, wofür der Kunde sein Geld ausgíbt.
Bank Alice encBank Schecknr Blendfaktor encBank( ) x r s ecash erzeugen mit blinder Signatur encBank decBank s := • decBank( ) z := z z = (x• re)d mod n = xd• red mod n = xd• r mod n y:= z / r = xd mod n = decBank(x) BelasteKonto von Alicemit 1,- DM
Kaufmann Alice y Ware Bank y Münzen ausgeben y encBank( ) encBank( ) x := In Liste der verbrauchtenSchecks eintragen Kaufmann 1,- Euro gutschreiben OK !
ecash-Demo • 1998: Deutsche Bank bietet ecash an • 2001: Deutsche Bank stellt ecash ein. • http://pixelworld.plusline.de/usa-sf.html
ecash • erfunden von David Chaum • Firma Digicash • Firma ecash-Technologies • Alice besorgt sich von der Bank blind signierte Münzen • Alice transferiert die Münzen zum Kaufmann • Der Kaufmann läßt sie bei der Bank gutschreiben