Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Az RSA algoritmus Fóti Marcell.

Hasonló előadás


Az előadások a következő témára: "Az RSA algoritmus Fóti Marcell."— Előadás másolata:

1 Az RSA algoritmus Fóti Marcell

2 Hogy műkö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 működik (sőt!)

6 Trapdoor függvények Olyan függvényeket keresünk, melyek nem műkö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 Moduloegyenlőség 127  1 (mod 21) Összeadásra, szorzásra elemenként is igaz!

8 Az RSA előzményei T(N-1) mod N = 1 és TN mod N = T
Erre még visszatérünk! 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 Ezzel dolgozunk. T=14 és N=17 esetén... 1416 mod 17 = 1 1417 mod 17 = 14

9 Relatív prímek Prímtényezőkre bontás A legnagyobb közös osztó (LKO)
18 = 2 * 3 * 3 30 = 2 * 3 * 5 A legnagyobb közös osztó (LKO) Két szám közös prímtényezőinek 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= 1

11 Euler fíje Mitől működik a TN mod N = T? A két N „véletlenül” azonos!
A kitevő valójában N relatív prímjeinek száma + 1 Prímszámoknál f(N) = N-1 Így a kitevő „véletlenül” N-1+1=N A többi számnál a szám prímtényezőinek 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 Szuper! Jöhet a hatványkitevő felbontása!
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 = 5 Szuper! Jöhet a hatványkitevő felbontása!

13 A hatványkitevő felbontása
f(N)+1 = P*Q T(P*Q)  T (mod N után) Az előző példában a kitevő 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 Kész 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 Megfejtő: RQ mod N = T Kész

16 Kézi RSA példa Titkosítandó (T): 8 Modulus(N): 15 (relatív prím 8-hoz)
15 prímtényezői: 3 * 5 f = 2*4 = 8 Szorzótényezőkre bontandó: K * f + 1 = 1 * = 9 -> 3*3, azonos a két kulcs :( 2 * = 17 3 * = 25 -> 5 *5, azonos a két kulcs :( 4 * = 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 tetszőleges számmal 1 legyen Könyű 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 elegendő 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 belőle bőven 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 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ényezőkre bontásához, mint a próbálgatás Az RSA Labs pályázatot hirdet prímtényezőkre bontásra 576 bites: $ 2048 bites: $ factoring/index.html

24  Szünet Kérdések?


Letölteni ppt "Az RSA algoritmus Fóti Marcell."

Hasonló előadás


Google Hirdetések