RSA

Wikipedia(e)tik
Hona jo: nabigazioa, Bilatu

RSA, 1977 urtean Ronald Rivest, Adi Shamir eta Leonard Adlemanek sortu zuten kriptografia-sistema da. Oso kriptografia-sistema segurua da eta zenbaki-teorian oinarritzen da. Berezia da publikoa den gako bat erabiltzen duelako. Mezuak enkriptatuta jaso nahi dituen pertsonak bere gako publikoa beste edonori pasatzen dio, baina mezu enkriptatu horiek irakurtzeko behar den gako pribatua berak bakarrik daki. Sistema honetan abantaila handia da igorle eta hartzailearen artean ez dela gako sekretua adostu behar.

Adi Shamir, RSA algoritmoaren hiru egileetako bat.

RSA algoritmoa erabiliz bidalitako mezuak, zenbakien bidez agertzen dira eta enkriptatzearen funtzionamendua ausaz aukeratutako bi zenbaki lehen handi lortzean datza (gutxienez 100 digitu dituzten zenbaki lehenak).

Funtzionamendua[aldatu | aldatu iturburu kodea]

Oso zaila da gaur egun 200 digitu dituen zenbaki oso bat zenbaki lehenetan faktorizatzea. Baina aldi berean ez da oso zaila 100 digitu dituen zenbaki lehen pare bat aurkitzea eta ez da oso zaila bi zenbaki horien biderkadura kalkulatzea. Hori da enkriptatze-sistema honen arrakastaren oinarria. Aurrerakuntza teknologikoek gero eta aukera gehiago emango dituzte teknika hau erasotzeko, baina horren aurrean erabiltzen diren gakoen luzatzea aski izango da erasoak baliogabetzeko.

Modulu funtzioan oinarritutako eragiketa matematikoak zenbaki lehenei aplikatzen zaizkienean sortzen diren abantailak erabiltzen ditu RSAk. Bereziki, funtzio esponentzial diskretuak erabiltzen ditu zifratu eta deszifratzeko, bere alderantzizkoa (logaritmo diskretoa), kalkulatzeko oso zaila baita.

Modulu publikoa (n) izeneko zenbaki bat erabiltzen dute algoritmo honen kalkulu matematikoek. Zenbaki hori, gako publikoaren partea da eta isilpeko gakoaren parte diren bi zenbaki lehen, p eta q, handi (1024 bit ingurukoak) biderkatuz lortzen da. RSA metodoak n hori publikoa izan daitekeela dio, horrela p eta q zenbakien sekretutasuna galtzen ez baita, esan bezala horrelako zenbaki handi baten faktoreak lortzea oso zaila baita gaur egun.

Faktoreak lortzea: biderkaketaren alderantzizko eragiketa da. N emanda, beren biderkadurak N balio duen zenbakien multzoa bilatzean datza. Orokorrean, eta emaitza bakarra izateko, baldintza gisa, N-ren faktoreak, zenbaki lehenak izan behar direla jartzen da. Logaritmo diskretuen kasuan bezala, faktoreak ongi aukeratuak izan badira, kalkulu mota hau egiteko algoritmo onik ez da lortu. Honen ondorioz esan daiteke nahiz eta N jakin bere faktoreak lortzea ezinezkoa dela.

Gakoak aukeratu[aldatu | aldatu iturburu kodea]

  1. Aukeratu p, q zenbaki lehenak.
  2. n=p*q.
  3. Gako publikoa ezarri (n eta r zenbakiak). r balioak hauek bete behar ditu: mkt(p-1, q-1)=k eta zkh(k,r)=1
  4. Gako pribatua ezarri (n eta s zenbakiak). s balioak hau bete behar du: r*s mod k = 1

Mezua kodetu[aldatu | aldatu iturburu kodea]

Igorleak M mezua kodetzen du, gako publikoa (n eta r zenbakiak) erabiliz: MK = (M**r) mod n , non 0<= m < n

Mezua dekodetu[aldatu | aldatu iturburu kodea]

Hartzaileak MK mezua dekodetzen du, gako pribatua (n eta s zenbakiak) erabiliz: M = (MK**s) mod n

Kalkuluak errazteko modua[aldatu | aldatu iturburu kodea]

Kalkuluak errazteko aritmetika modularraren teorema hau erabilzen da: (a*b) mod n = ((a mod n)(b mod n)) mod n

Adibidez: 49**11 mod 85 = ((49**8 mod 85) (49**2 mod 85) (49 mod 85)) mod 85 = (1*21*49) mod 85 = 9


Ikus, gainera[aldatu | aldatu iturburu kodea]