RSA

Aus ProgrammingWiki
< EGE
Archivierte Version vom 2017-11-15T07:46:27+00:00. Aktuelle Version

Inhaltsverzeichnis

schema_rsa.png

Entwurf öffentlicher Schlüssel (e, N)

Lege zwei (große) Primzahlen p und q fest mit p \neq q.

Bilde das Produkt N = p \cdot q.

Suche eine weitere Zahl e, für die gilt:

  • e ist Primzahl und größer als p und q oder
  • e ist teilerfremd zu (p-1) \cdot (q-1).

Die Zahlen e und N bilden den öffentlichen Schlüssel.

Entwurf privater Schlüssel (d)

  • d \le (p-1) \cdot (q-1) und
  • (d \cdot e) \bmod [(p-1) \cdot (q-1)] = 1

Bob verschlüsselt die Nachricht M

Voraussetzung: öffentlicher Schlüssel (e, N) Ein Klartext-Zeichen mit dem Code M wird mit

M^e \bmod N = C

zu C verschlüsselt.

Alice entschlüsselt die Nachricht C

Voraussetzung: privater Schlüssel d, öffentlicher Schlüssel N, Code C Der verschlüsselte Code C wird mit

C^d \bmod N = M

zum Code M 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?


Wir verschlüsseln uns Nachrichten gegenseitig

Tim

N = 2923723657325689753

e = 2^16+1

Aaron: 6109241775432 # 0445619957989 # 2011493422895 # 1753212313778 # 1560560402734 # 4668526465824

Für Tim: 0971158489226418555 # 2043547178206792772 # 0732029136643858939 # 1556005650193041109 # 0377185071036805876 # 1239559758108528165 # 2632998321014479199 # 0615496542965952553 # 1271428267648145280

Sie haben eine neue Nachricht von Theresa und Heidi: 0774675119867086861 # 2550189815429128910 # 0952425257611192653 # 2771040226284978916 # 0214213828173062652 # 1407000110238489289 # 1370936048719826808 # 0169368717175689352 # 1226329469454461222 # 2810237185961487629 # 2241053565050258674 # 2128553322512252893

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

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