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. Hogy működik az RSA? T e mod N = R R d mod N = T Ahol e és d egymás multiplikatív inverze.

Hasonló előadás


Az előadások a következő témára: "Az RSA algoritmus Fóti Marcell. Hogy működik az RSA? T e mod N = R R d mod N = T Ahol e és d egymás multiplikatív inverze."— Előadás másolata:

1 Az RSA algoritmus Fóti Marcell

2 Hogy működik az RSA? T e mod N = R R d 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 1.T (N-1) mod N = 1 és 2.T N mod N = T ha N nagyobb mint T, és N prímszám Ókori trükk Euler bácsi rég bebizonyította Erre még visszatérünk! Ezzel dolgozunk. T=14 és N=17 esetén mod 17 = mod 17 = 14

9 Relatív prímek Prímtényezőkre 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é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 5 6 mod 6= 1

11 Euler fíje Mitől működik a T N 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  (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 =3 * 5 * 7, 2 * 4 * 6 =  =  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  (N)+1  T (mod N) Próba T=5 N=6 Ez relatív prím T-hez  (6)=2 5 (2+1) mod 6 = 5 Szuper! Jöhet a hatványkitevő felbontása!

13 A hatványkitevő felbontása  (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 T  (N) mod N = 1 Mindkét oldalt emeljük négyzetre: T  (N) * T  (N)  1 * 1 (mod N) Most köbre: T  (N) * T  (N) * T  (N)  1 * 1 * 1 (mod N) Összevonva T 3*  (N)  1 (mod N) T bármennyi*  (N)  1 (mod N) Mindkét oldalt szorozzuk meg T-vel: T bármennyi*  (N)+1  T (mod N)

15 Az utolsó lépések Ismétlés: T bármennyi*  (N)+1  T (mod N) bármennyi*  (N)+1 „könnyedén” felbontható két szám szorzatára bármennyi*  (N)+1=P*Q Titkosító: T P mod N = R Megfejtő: R Q 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ényezői: 3 * 5  = 2*4 = 8 Szorzótényezőkre bontandó: K *  + 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 8 3 mod 15 = 2 Kibontás 2 11 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  -jét

19 Kulcsgenerálás 1.Veszünk (generálunk) két bazinagy prímszámot (P és Q) 2.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 3.Mindkét prímszámnak tudjuk a  -jét, így N  je:  =(P – 1) * (Q - 1) 4.Ezután felbontjuk bármennyi*  -et két szám szorzatára (e és d). 5.A bazinagy prímszámokat elhajítjuk. Többé nem kellenek. 6.A kulcspárok pedig e, N és d, N

20 Van-e elegendő prímszám? Euklidész szerint… 1.Tegyük fel, hogy véges számú prímszám van. 2.A legnagyobb prímszámot nevezzük P-nek 3.Q, legyen egy P-nél nagyobb szám, mégpedig így: Q=(2 x 3 x 4 x 5 x... x P)+1 4.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. 5.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. Hogy működik az RSA? T e mod N = R R d mod N = T Ahol e és d egymás multiplikatív inverze."

Hasonló előadás


Google Hirdetések