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: 3665439550325647873

1842313926348178432 # 2792151817157424385 # 3528961273352578221 # 2930238185180721216 # 2761957194522262336 # 3493491432291593701 # 0026056796205141427 # 1694251208532680033 # 2211927068170531751 # 2092810116549692288 # 3232912713356286719 # 0069295229873900096 # 3586033872724439881 # 2830426920846224039 # 0096310557989816448 # 0155091583290175875 # 0888291098052164288

=== Serena ===

=== Pauline ===
e=2^16 +1
N=4452601854469770817

=== Martin ===
N= 181978153409718707132699 e=2^16+1
1791541161559690158 # 2362736324235176671 # 0755041534608257260

0544031044188577895 # 2285796495212479756 # 1729066050556416874 # 0327172484106590813 # 1498898169084748372 # 1907549796126166438 # 1818664093342985491 # 0954432930120608548

=== Fabian ===
N= 3688524632749527271 e=2^16+1
1655990932263485336 # 3124834471925988262 # 2307764915349100880

=== Ruben ===

=== Stefan ===
N= 2313333094337945657
e= 2^16+1
Geheimtext:
0494711453153591574 # 1513310358632394946 # 0152473026152516796

=== Robine ===
N= 2186129232435676273
e= 2^16+1
Nachricht: 1603377087122248620 # 1962403192502823082 # 0052178576996812159 # 0453129501104852780 # 2033770051849744253 # 2044870858148458891

Nachricht von Serena und Pauli: 1292117696178265931 # 1365170118474428301 # 1708087723975674770

=== Theresa ===
N = 66521346470667295308205965299
e = 2^16+1
Nachricht: 29887306457325499198222372623 # 62160726530736614839390479465

=== Ludwig ===
N= 2407738743807459809
e= 2^16+1

0544031044188577895 # 2285796495212479756 # 1729066050556416874 # 0327172484106590813 # 1498898169084748372 # 1907549796126166438 # 1818664093342985491 # 0954432930120608548

=== Kevin ===
SC

SCHREIBT DA ETWAS REIN!!!!!

3708632922753294001 2^16+1

=== Milena ===
N=283397273111
e=2^16+1


231655745914 # 025321764743 # 283029502257 # 213793709784 # 123152657490 # 100404057328 # 139279107176 # 019259644563 # 158134466685 # 166283469043 # 039599029296 # 013215323833 # 001904028289 # 007945451255

=== Oliver ===
Öffentlicher schlüssel:
N:233555458668544594979400202582823969778199979323
e:2^16+1

22356805537854580 # 28464588481644146 # 31363987528818720


076170867572919621791920632751285031309136635109 # 165121222462072426907216822362214630264085617903 # 222015713824133356901935574394793577314293231648


Nachricht (msc): 176698457520685650309504891359846630345140750829 # 127977239309087256306264976186958058610566078229 # 104375971032488158694962490772328887593205519622

=== Josephine ===
N=1431437030849222339 e=2^16+1

=== Felix ===

=== Deborah ===
N=3454354140502097533 e=2^16+1
2008378301689616473 # 2034484527520277266

=== Nico ===

=== Josua ===
N:2451090033318431447 2^16+1

=== Saskia ===
N= 1837625933157484369
e= 2^16+1
Nachricht: 0597398993801353581 # 0111604453718295403 # 0282981538987544304

Nachricht: 1774308459101458914 # 0436264860952010124 # 1291635563479905666 # 0646183648683304909 # 0313996583718723153 # 0615899658558220174 # 0074886707533060763

=== Johanna ===

=== Tobias ===
N:8534815750927117319 2^16+1

7186244736488455815 # 4051774561632283300 # 5369269101717014617 # 7022745143947782012 # 3398135143735631489 # 7835823176011848904 # 0281148186603857921

=== Ella ===
N=3921338813725917869  e=2^16+1