LKG/Inf 11 2011/RSA
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Pascal</language> [[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''. === 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 ==== Francie ==== öffentlicher Schlüssel: N=1431437030849222339 e=2^16+1 verschlüsselte Nachricht=0417939609475754312 # 1060955068056772435 # 1258214308725367701 # 1389478806375584696 # 0346553690748376968 # 0570059529587367499 # 0733480071254248446 # 1261445539584838999 # 0039435362133118661 # 0912735714777767741 ==== Richard ==== öffentlicher Schlüssel: N=1896449098453339123 e=2^16+1 verschlüsselte Nachricht=1280116750136387220 # 1661000223075064354 ==== Philipp H. ==== öffentlicher Schlüssel: N= 2177326478801898553 e= 2^16+1 verschlüsselte Nachricht=2009040741514800016 # 0735694030482758840 # 1020697340199942904 # 0903156089032506757 # 0642036224991268196 # 0157224371174463232 # 1531682724501512477 # 1311078886738264062 # 0655676110137671382 # 0996858054334617526 # 2028621840852321505 ==== Philipp S. ==== öffentlicher Schlüssel: N=411857132437 e=2^16+1 verschlüsselte Nachricht= 385487335992 # 403881225077 # 037642453666 # 067206062299 # 235606390310 ==== Tobias ==== öffentlicher Schlüssel: N=2800635402089001277 e=2^16+1 verschlüsselte Nachricht= 2129297134567025589 # 2407104043446179026 # 0968784953113403636 # 1206301219419036940 ==== Jessie ==== öffentlicher Schlüssel: N= 3560446196300011253 e= 2^16+1 verschlüsselte Nachricht= 2833064651890972196 # 1207466354618744003 ==== Felix ==== öffentlicher Schlüssel: N=1932023130238543669 e=2^16+1 verschlüsselte Nachricht= 1494167949896615947 # 1348221857579424473 # 0142507524711799447 # 1487753119306129738 # 1765304673078267850 # 0238611105367120370 # 0138031027211726614 # 0427749053554550766 # 1930388541075427710 ==== Henri ==== öffentlicher Schlüssel: N=1573800593199814937 e=2^16+1 verschlüsselte Nachricht= <code id="4f5f217beaa71" hidden>[http://de.wikipedia.org/wiki/RSA_Factoring_Challenge RSA-Factoring-Challenge]</code>