EGE/RSA
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
[[Bild:schema_rsa.png]] == Entwurf öffentlicher Schlüssel (e, N) == Lege zwei (große) Primzahlen <math>p</math> und <math>q</math> fest mit <math>p \neq q</math>. Bilde das Produkt <math>N = p \cdot q</math>. Suche eine weitere Zahl <math>e</math>, für die gilt: * <math>e</math> ist Primzahl und größer als <math>p</math> und <math>q</math> <u>oder</u> * <math>e</math> ist teilerfremd zu <math>(p-1) \cdot (q-1)</math>. Die Zahlen <math>e</math> und <math>N</math> bilden den ''öffentlichen Schlüssel''. == Entwurf privater Schlüssel (d) == * <math>d \le (p-1) \cdot (q-1)</math> <u>und</u> * <math>(d \cdot e) \bmod [(p-1) \cdot (q-1)] = 1</math> == Bob verschlüsselt die Nachricht M == Voraussetzung: öffentlicher Schlüssel (e, N) Ein Klartext-Zeichen mit dem Code <math>M</math> wird mit <blockquote><math>M^e \bmod N = C</math></blockquote> zu <math>C</math> ''verschlüsselt''. == Alice entschlüsselt die Nachricht C == Voraussetzung: privater Schlüssel d, öffentlicher Schlüssel N, Code C Der verschlüsselte Code <math>C</math> wird mit <blockquote><math>C^d \bmod N = M</math></blockquote> zum Code <math>M</math> des Klartext-Zeichens ''entschlüsselt''. == Hausaufgabe == RSA-Faktoring-Chalenge (Wikipedia) lesen * Warum ist das RSA-Verfahren mit kleinen Primzahlen immer noch unsicher? (Wozu benötigt man möglichst große Primzahlen?) * Was bedeutet 205 Bit? * Wie groß sollten zwei sichere Primzahlen sein? [https://vimeo.com/114048258 RSA mit dem Android-Handy] ansehen und versuchen, umzusetzen. == Wir verschlüsseln Nachrichten gegenseitig == === Beispiel === öffentlicher Schlüssel: N=2212356658925775797 e=2^16+1 verschlüsselte Nachricht = 0154053610309353007 # 0414178728190804750 # 1697057945399357863 # 2070423477403309778 # 1073508525444459212 # 0381990340997203895 # 1748647492571070100 # 0323355113406576190 # 0471324455178646453 # 1739775672006346255 # 0855733748764982545 # 1461509390385958697 === Janis === e: 2^16+1 N: 3665439546487061440 22356805537854580 # 28464588481644146 # 31363987528818720 === Serena === === Pauline === e=2^16 +1 N=4452601854469770817 verschlüsselte Nachricht= 1573470199159879196 # 4110547422669658479 # 4194336050484187897 === Martin === === Fabian === N= 3688524632749527271 e=2^16+1 === Ruben === === Stefan === === Robine === N= 2186129232435676273 e= 2^16+1 Nachricht: 1603377087122248620 # 1962403192502823082 # 0052178576996812159 # 0453129501104852780 # 2033770051849744253 # 2044870858148458891 === Theresa === === Ludwig === N= 2407738743807459809 e= 65537 === Kevin === === Milena === N=283397273111 e=2^16+1 === Oliver === Öffentlicher schlüssel: N:233555458668544594979400202582823969778199979323 e:2^16+1 === Josephine === === Felix === === Deborah === N=3454354140502097533 e=2^16+1 === Nico === === Josua === === Saskia === N= 1837625933157484369 e= 2^16+1 === Johanna === === Tobias === N:8534815750927117319 2^16+1 7186244736488455815 # 4051774561632283300 # 5369269101717014617 # 7022745143947782012 # 3398135143735631489 # 7835823176011848904 # 0281148186603857921 === Ella === N=2240339100055897937 e=2^16+1