230 likes | 480 Views
Hogy mukdik az RSA?. Te mod N = RRd mod N = TAhol e s d egyms multiplikatv inverze. Sznet. Krdsek?. Clok. Az RSA algoritmus megrtseRSA titkosts puszta kzzel ( calc.exe)RSA algoritmus kifejlesztseVBScriptbenASP lapbanC
E N D
1. Az RSA algoritmus Fóti Marcell
2. Hogy muködik az RSA? Te mod N = R
Rd mod N = T
Ahol e és d egymás multiplikatív inverze
3. Szünet Kérdések?
4. Célok Az RSA algoritmus megértése
RSA titkosítás puszta kézzel (+calc.exe)
RSA algoritmus kifejlesztése
VBScriptben
ASP lapban
C#-ban
5. Nemek Nem az RSA az egyetlen nyílt kulcsú algoritmus
Nem a Certificate Authority generálja a kulcspárokat
Az RSA nem csak prímszámokkal muködik (sot!)
6. Trapdoor függvények Olyan függvényeket keresünk, melyek nem muködnek visszafelé
Diffie-Hellmann, 1976
Rivest, Shamir, Adleman, 1977
Ellpitikus függvények
Tech.net december
Stb.
7. Moduloaritmetika A modulo ideális trapdoor függvény
127 mod 21 = 1
A 21 és az 1 ismeretében soha nem találjuk ki a kiindulási számot
Kongruencia
Moduloegyenloség
127 ? 1 (mod 21)
Összeadásra, szorzásra elemenként is igaz!
8. Az RSA elozményei T(N-1) mod N = 1 és
TN mod N = T
ha N nagyobb mint T, és N prímszám
Ókori trükk
Euler bácsi rég bebizonyította
9. Relatív prímek Prímtényezokre bontás
18 = 2 * 3 * 3
30 = 2 * 3 * 5
A legnagyobb közös osztó (LKO)
Két szám közös prímtényezoinek szorzata
18 és 36 esetén 2*3=6
Ha LKO=1, a két szám relatív prím egymáshoz képest
10. Kísérlet relatív prímekkel... Vajon T(P*Q) ?T (mod N) ?
Ha N=P*Q és N relatív prím T-hez?
Próba:
T=5
N=6
Ez relatív prím T-hez
56 mod 6=
11. Euler fíje Mitol muködik a TN mod N = T?
A két N véletlenül azonos!
A kitevo valójában N relatív prímjeinek száma + 1
Prímszámoknál f(N) = N-1
Így a kitevo véletlenül N-1+1=N
A többi számnál a szám prímtényezoinek relatív prímjeinek szorzata + 1
315= 3 * 5 * 7,
2 * 4 * 6 = f = 48
Ellenpróba
x(48+1) mod 315 = x, ha x relatív prím 315-höz
12. Kísérlet fível
T f(N)+1 ?T (mod N)
Próba
T=5
N=6
Ez relatív prím T-hez
f(6)=2
5(2+1) mod 6 =
13. A hatványkitevo felbontása f(N)+1 = P*Q
T(P*Q) ? T (mod N után)
Az elozo példában a kitevo 3 volt
Hogy bontható fel?
3 * 1 ? vagy 1 * 3 ??
Nem jó, mert 1. hatványra felesleges emelni!
14. ...visszatérünk Tf(N) mod N = 1
Mindkét oldalt emeljük négyzetre:
Tf(N) * Tf(N) ? 1 * 1 (mod N)
Most köbre:
Tf(N) * Tf(N) * Tf(N) ? 1 * 1 * 1 (mod N)
Összevonva
T3*f(N) ? 1 (mod N)
Tbármennyi*f(N) ? 1 (mod N)
Mindkét oldalt szorozzuk meg T-vel:
Tbármennyi*f(N)+1 ? T (mod N)
15. Az utolsó lépések Ismétlés: Tbármennyi*f(N)+1 ? T (mod N)
bármennyi*f(N)+1 könnyedén felbontható két szám szorzatára
bármennyi*f(N)+1=P*Q
Titkosító: TP mod N = R
Megfejto: RQ mod N = T
16. Kézi RSA példa Titkosítandó (T): 8
Modulus(N): 15 (relatív prím 8-hoz)
15 prímtényezoi: 3 * 5
f = 2*4 = 8
Szorzótényezokre bontandó: K * f + 1 =
1 * 8 + 1 = 9 -> 3*3, azonos a két kulcs :(
2 * 8 + 1 = 17
3 * 8 + 1 = 25 -> 5 *5, azonos a két kulcs :(
4 * 8 + 1 = 33 -> 3 * 11
3 és 11 egymás multiplikatív inverze
17. Kézi RSA példa Publikus kulcs: e=3, N=15
Privát kulcs: d=11, N=15
Titkosítás
83 mod 15 = 2
Kibontás
211 mod 15 = 8
18. Milyen legyen a modulus? N (a modulus) legyen
Oltári nagy szám
Univerzális relatív prím
Legnagyobb közös osztója tetszoleges számmal 1 legyen
Könyu legyen megállapítani a f-jét
19. Kulcsgenerálás Veszünk (generálunk) két bazinagy prímszámot (P és Q)
A modulus N = P * Q
Ez ugyan nem prím, de mivel két elvetemülten nagy prímszám szorzata, gyakorlatilag bármilyen nagy számhoz relatív prím lesz
Mindkét prímszámnak tudjuk a f-jét, így N f-je:
f=(P 1) * (Q - 1)
Ezután felbontjuk bármennyi*f+1-et két szám szorzatára (e és d).
A bazinagy prímszámokat elhajítjuk. Többé nem kellenek.
A kulcspárok pedig e, N és d, N
20. Van-e elegendo prímszám? Euklidész szerint
Tegyük fel, hogy véges számú prímszám van.
A legnagyobb prímszámot nevezzük P-nek
Q, legyen egy P-nél nagyobb szám, mégpedig így:
Q=(2 x 3 x 4 x 5 x ... x P)+1
Q-nak tehát nem osztója sem a 2, sem a 3, sem ... P
mert a plusz egy miatt mindig 1 a maradék.
Ha Q nem prím, akkor kizárólag egy P-nél nagyobb prím lehet az osztója, mert P-ig bezárólag egyik sem osztja maradék nélkül.
5.b Ha Q prím, akkor mint P-nél nagyobb szám, leüti P-t a trónról
Tehát nem P a legnagyobb prímszám ->van belole boven
q.e.d.
21. Prímszámgenerálás: az Ulam négyzet
22. Óriási prímszámok 512 bites kulcshossz
10^151 darab 512 bites van
az Univerzumban 10^77 atom van
Great Internet Mersenne Prime Search
http://www.mersenne.org
Martin Mersenne (XVII. szd.)
Ha N prím, akkor 2^N-1 is
talán
Rabin-Miller teszt
23. Gyenge pontok Az RSA gyenge pontja nem az algoritmus, hanem a kulcsgenerálás
Az RSA addig él, amíg nincs jobb módszer N prímtényezokre bontásához, mint a próbálgatás
Az RSA Labs pályázatot hirdet prímtényezokre bontásra
576 bites: 10.000$
2048 bites: 200.000$
http://www.rsasecurity.com/rsalabs/challenges/factoring/index.html
24. Szünet Kérdések?