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 uns Nachrichten gegenseitig ==
=== Tim ===
N = 2951496213141662331323665053128112557378911707093713492954789957537231681683032654203439442684989259303550465631213589388871323904730918478024673146050974374184029991675195149432744206146108231886549386552991581064377450979852881966895979134531826358941364454722375485044829485265639664011582319334250043031090676544576122883714970235494357318190231720540246670794151681100977732757063290446580710379323044482215917092131909505882464099680214817217724378706043017975599248131170828138859232153415378355650370118143644321361592959242030885583046225895822976010539797767795394679615254227265607237235751274593784154359271251377725420277154394575958222944682111911211201371796566162188091071630490817110562029081042512031938343752630633952255937686764881299400473306362144718149647792841490514356878964237845723962222797432389858238988839172814221863479717960538033372044532184979436259862897653773907177479210498264909262465138168256151148061508449980215896368187781716992848221547972841419916470928479327781180557556631138303960489900944303699112595506096217465711547212154899627239692182547617840348139493302730431981881993263227630518100429366221858075213461994946334604694591132001941108521807543438026992971556601021266606190130121

e = 2^16+1

1) 2392224459871828915041138653819651437883711117792746758435005777272266397058246475673863870825613037122370514985984850879580657341245535983044748962732061971626459001311509916793375588005942125612142491747166631193332625308962621091512919440369176875007257512259029772123241973196954843995515743022079706710836362583655996107071911693671690264018948558388283547128640307015898701406790573361674406417677694137770605087789495250969339181374515753572992636383697509758764128523662432717187661112758685767579196230179057950548475041049914997943500538070501135550083570549833335271348135092591604605014624443930362166649030644084001790883987250606544454665515352128931512894790097008893681235672615013777328451363321217989622627323078677190722630772137922383768352750497521330258532075112458202544679792806946363268675306442989696234826522453019031913976364163918591333051682822797405733502002730935320241431482376183306138641589791812556281769064168422916563729737834198908102704696609689563703004994786598605713733005751451481125549258944351248454691105501478044154640548687041685999060635154184586331686525908193395696379100946075013575606676736766251275120428369883210633953178163442995699774758912199228245198164130741358610943832684

=== Elise ===
N 2923723657325689753
e 2^16+1
Text 0322250827748490414 # 2472611229660409538

=== Aaron ===


N = 8657171789267

e = 2^16+1

Tim: 2403605539189261130 # 1416580827313331326 # 2408159993458149277 # 2190278437483377366 # 1562642152801134763 # 1560000634633346060 # 2423329647570075338

=== Johannes ===
N= 2185487837714976281
e= 2^16+1

Schlüssel für dich :D 1234120474465912099 # 1230353083399707634 # 0462960430889572536 # 1668559233401989181 # 0558528854443029121 # 0061871616029764787 # 1433346339072452767 # 0197958887340782944

=== Dandy ===
N = 1688180727500347741

e = 65537

Schlüssel für Josef: 1234120474465912099 # 1230353083399707634 # 0462960430889572536 # 1668559233401989181 # 0558528854443029121 # 0061871616029764787 # 1433346339072452767 # 0197958887340782944



NEUES N: 70313059467932863650169950936591565248388630662268540577171426278710028722595972264074667753231715421602362044623199540558837571477071006385223272585194864727758823723363967365015529293171819326248730074249401342569750344511699494229111082865475344604279641227176985435756309410186029080389810872928399150596276996577278698614619434466713766369267319034270346313522879773243476720004777695933246705455221495249461522498937603515923818161571063793269519622612555578346508550406497713662914147387067822963264081898155885513293859099084743803993977664963035440168382471722577533736377750321721078751825224181296308321319

=== Josef ===
N = 3972654221287674281

e = 2^16+1 bzw. (65537)


Für Dandy:

0122301579634764561 # 1138874609656961026 # 1455350204229145620 # 0076053920598175809

Für dich:

0372068089527068742 # 2704354384167637835 # 0859976639556390370 # 2933727468122837164 # 2366356262357904522 # 1217942004898521553 # 3048092893633181704 # 0365519012583822276

Eine neue Nachricht von Heidi und Theresa: 2325465541807843648 # 1151074438883173384 # 3264133952077835052 # 3039733249956097550 # 2890426579773798594 # 1762238958402113938 # 3711105966038706406 # 1589893707205075915 # 1801374974859278383 # 1236277937692417126 # 3636590972469261553

=== Theresa ===
N=2189329218283721051
e=2^16+1

1 neue Nachricht von Heidi:0960431449687320593 # 1321373400322207727 # 0782940085349524221 # 0386420003740380966 # 0537310695899918429 # 0873795174461400411 # 1767094842803462446 # 0107150302338772149 # 0332336724158767107 # 1819778149649941543 # 0684844835086246406 # 1646236126423120900 # 2118456125486013924 # 2023364804533987443 # 0975267753970930938

=== Heidi ===
e: 2^16+1

N: 2923723657325689753

verschlüsselte Nachricht:

1136011545364292294 # 1061740183986791317 # 2111626553460064403 # 2368350865761515465 # 1105560748490278701 # 0232785873229391537 # 2094094700269354771 # 0426665001269638855