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=3731025641594503419741568882036125135837845056174901063114772391450747468526864965794292224829891688137917429316289568460271299239065078112443623687838629568510542255492389063296175280669776877707334497193764513489277038692096195412993414900686944115768986159035694128952775007718968586809542667566421923196571262318520819230206433623217346183718867262047639367

e=2^16+1

verschlüsselte Nachricht=2990099868748898431416127733239333299438252990718588947189627323862541320759723075359298002049945454633364655148048199507211108165727687436312872406544839729575529520270271212122028280365380192629059572326697528192650854391087074787830145645541039617319693261751740962406625982611599743519772133569772510859136968203669002607093387421841449330961737401917372593

==== Richard ====
öffentlicher Schlüssel: N=

173207312716345347388228167089849158229323171875688189180524243919601277410144791544465289459957790317002541646794123746658335851669437800686755984353141198569869096505364467877464490320461721129036994279229771120412405822986461323095040596446169452324548441940247516071235592303813319426855251114722477604741686057975838269244139298976249487806543864904484539

e=2^16+1

verschlüsselte Nachricht=020972515483720612305316420754157281061056598460332073014261675470200449751444010728474865733702829017323832415763496705189491573442308196585593245338408367280494454582082188417523860397589287508224480168803462485165428087601319704610927923692157112374434862405264993906500058558317387868483219990385762678778856083061118135907795150917072016434934537520925475

==== Philipp H. ====
öffentlicher Schlüssel: N= 40462136585917579212629197045439538492413313611857142688963241293681293736732847745235727062248825655910471095971256868158435979680882227001006548418162349279127183764367549815533485911172923931599236691394243585460443637554602198544388733295952491668293506568601135474117538851950934808117765279271810843646942849656792401735283336468090391533038839588457081 
e= 2^16+1

verschlüsselte Nachricht=

==== Philipp S. ====
öffentlicher Schlüssel: N=47365052785923405877749601542710450495290496153256556813096853784484624221642121422260794468131672417938012227781533752371191684340376706464554264808148924726247726713143549554493614456950606889979518146187810021018427728612455315511156959621246501195598384742021922323213196051166659731215569405906749044462872890103107232317961577804123434044411518082801060687400935397832368569542626605163458392115773356130127231653867
e=2^16+1

verschlüsselte Nachricht=
0757589266590435829149250651183037826820240747015960616781942643604883729370669501389907819261175669942112938960656736425157937249325510250533521173575842926207616942465102996120620442699849967551410714865558512877620616288407103340234862705221285920360374173471020375512243664913564617419717128224827219022494115785450437318736905706012015151473407414512021691

==== Tobias ====
öffentlicher Schlüssel: N=1392591820228166155816688383886133939396497247225108937050742695863681846726864582644556591198341546200327317385519027717624983738017741013544440271594873087849099030320504915829915767387889361239137047141799130032511190188205166488858575753568542478783222560186344650236124822535703612524702239712828397167120792274198582504828575161412533920388062991850528297
e=2^16+1

verschlüsselte Nachricht=
0802354138280909266280586804919451106232058148819604601058868128564436610823846119737510090503053599565160326577015653875655347187301344378876387098392789699640667692725049220949303824513249672575297187199409074997287485542471249364696260450753217942220162332240541549488105224033332419621617027707361008934446351375165578545311869164451543191305059871210742732

==== Jessie ====
öffentlicher Schlüssel: 

N= 13925918202281661558166883838861339393964972472251089370507426958636818467268645826445565911983415462003273173
85519027717624983738017741013544440271594873087849099030320504915829915767387889361239137047141799130032511190
18820516648885857575356854247878322256018634465023612482253570361252470223971282839716712079227419858250482857
5161412533920388062991850528297

e= 2^16+1

verschlüsselte Nachricht= 0638826796452127133060851735150951071430275056123130294086692593854251533885996256027311975652580597327242054997242527919041738118652229949698800962172399502731603526218563378085587136121874198025540968920749108964742030494235298986856087470764881654124936705626178295448354161462318481557194240255986478224075382581281653576272394078618884158963166707921691394

==== Felix ====
öffentlicher Schlüssel: N=2067500669502472369228111472592470862747493142585099535992808515150800589274468701699859352853365869030476044365363328820750758777023368085412623120390833844339066038217166530149962676455959868282361611790872645433423880635706042713638514225337059156062742620829740407904430750748323688708139105503819548995010150997549284551725238872657475890658436538649506271
e=2^16+1

verschlüsselte Nachricht=
1254544438086010397039061204298908079469205254524408687415689490059644530176722544430609264427178867395880255290343010043170390550685863497367714259899864183969585589056046525268324777327724591133401505755558766387342663931343173392696426001503783209452694269672576570768116204758581902298588500582871562821858936797178310397471364620497070913599210773880753162

==== Henri ====
öffentlicher Schlüssel: N=1573800593199814937
e=2^16+1

verschlüsselte Nachricht= 068323648144579065 # 0990084553871274927 # 1311280311930049458 # 0843323830638507610 # 1106220979580947313 # 0685672372419448786 # 1265585044974512265 # 1372958567399979422 # 0124366538256305897 # 1416334406985722316 # 0554230601006169976 # 0289824759239524350 # 1059336406429740812 # 1543618570264532185 # 0824900330332617813 # 1548264951443031537 # 0548021684665399878 # 0716876255052240635

N=1392591820228166155816688383886133939396497247225108937050742695863681846726864582644556591198341546200327317385519027717624983738017741013544440271594873087849099030320504915829915767387889361239137047141799130032511190188205166488858575753568542478783222560186344650236124822535703612524702239712828397167120792274198582504828575161412533920388062991850528297
e=2^16+1


[http://de.wikipedia.org/wiki/RSA_Factoring_Challenge RSA-Factoring-Challenge]