Jump to content

RSA (Algoritëm)

Checked
Nga Wikipedia, enciklopedia e lirë

RSA Algoritmi-Hyrje- Algoritmi asimetrik më i përdorur sot për sot është RSA, që plotësisht përkrahet edhe nga .Net framework.

  • Më 1977 Ronald Rivest, Adi Shamir dhe Leonard Adleman propozuan një skemë e cila u bë shpejt skema më e përdorur kripotgrafike-RSA. Kjo skemë ndonjëherë e referuar edhe si Rives-Shamir-Adleman algoritmi, është algoritmi asimetrik më i përdorur sot. Funksioni njëkahësh që përdoret është faktori kryesor në suksesin e këtij algoritmi: Shumëzimi i dy numrave është operacion i lehtë, por faktorizimi i rezultatit që fitohet është qështje e vështirë. Teorema e Eulerit, dhe faktori Pi i Eulerit luajnë rol të rëndësishëm në RSA.
Adi Shamir, njëri nga atuorët e RSA, bashkë me Rivest dhe Adleman

Funksionimi i RSA-se

[Redakto | Redakto nëpërmjet kodit]

Së pari në mënyrë të rastësishme (angl.randomly) gjenerojmë çiftin e çelësave publik dhe privat. Është e rëndësishme, praktikë kjo në kriptografi, që gjenerimi i këtyre çelësave të jetë sa më i rastësishëm dhe i paparashikueshëm. Pastaj bëhet enkriptimi i të dhënave me çelësin publik duke shfrytëzuar RSA algoritmin. Dekriptimi i tyre bëhet përmes çelësit privat'.[1]

Hapat për gjenerimin e celësit publik dhe atij privat

[Redakto | Redakto nëpërmjet kodit]
  1. Në mënyrë të rastësishme zgjedhen dy numra jo të njëjtë(prime p dhe q).
  2. Llogarisim produktin n=p*q
  3. Llogarisim faktorin e Eulerit për këta dy numra: Ф =(p-1)*(q-1)
  4. Pasi ti kemi vlerat n dhe Ф, vlerat p dhe q janë të panevojshme më tutje, prandaj bëjmë shkatërrimin e tyre.
  5. Në mënyrë të rastësishme zgjedhim numrin e, ashtu që vlera e tij të jetë më e madhe se 1 dhe më e vogël se Ф dhe të jetë relativisht prime me Ф.
  6. Llogarisim vlerën unike d, e cila plotëson konditat ashtu që nëse d*e pjesëtohet me Ф atëherë mbetja e pjesëtimit është 1. Vlera e d duhet të ruhet sekret. Nëse e dimë vlerën e Ф, vlera e d gjendet lehtë nga algoritmi Euclidean. Nëse e dimë n (që është publike), por asnjërën nga vlerat p dhe q ( të cilat i kemi shkatërruar) atëherë vlera Ф është shumë vështirë të gjindet. Vlera sekrete e d-se së bashku me vlerën e n paraqesin çelësin privat.[2]

Kriptimi i mesazhit me RSA

[Redakto | Redakto nëpërmjet kodit]

Pas gjenerimit të çelësave privat/publik, enkriptimi i mesazhit kërkon hapat në vijim:

  1. Marrim një numër të plotë m që paraqet pjesë të tekstit për kriptim. Në mënyrë që algjebra të funksionojë në rregull, vlera m duhet të jetë më e vogël se moduli n, që llogaritet si p*q.
  2. Llogarisim tekstin e kriptuar c duke shfrytëzuar çelësin publik që përmbanë e dhe n. Kemi ekuacionin c=m^e(mod n).

Dekriptimi i mesazhit me RSA

[Redakto | Redakto nëpërmjet kodit]

Procedura e dekriptimit me çelës privat kërkon hapat në vijim :

  1. Llogarisim mesazhin origjinal nga mesazhi i kriptuar duke shrytëzuar çelësin privat që përmbanë d dhe n. Kjo llogaritet përmes ekuacionit m=c^d(mod n).
  2. Krahasojmë vlerën e fituar m me mesazhin original m dhe duhet të jenë të ngjashme që të verifikohet që dekriptimi(process i kundert i kriptimit) është operacion invers me kriptimin.[1]

Programimi i Kriptimit Asimetrik me .NET

[Redakto | Redakto nëpërmjet kodit]

Nga figura shohim se AsymetricAlgorithm paraqet klasën abstrakte nën të cilën shihen klasët konkrete RSACryptoServiceProvider dhe DSACryptoServiceProvider. Të dyja janë të implementuara duke përdorur CryptoAPI. Te kriptimi Asimetrik vetëm numrat të cilët plotësojnë disa kritere matematike mund të mirren si çelës, dhe për sulmuesit do të jetë më e vështirë nëse këta numra janë sa më të mëdhenj. Është përllogaritur se çelësi 1024 bitësh i RSA-se ( madhësi e nënkuptuar e celësit në .NET) është përafërsisht e njëjtë, kriptoanalitikisht, me çelësin me madhësi sa më të madhe, por duhet pasur kujdes sepse kjo ndikon në perfomancat tjera.[1][3]

  1. HASH Algoritmi
  2. Steganografia Digjitale
  3. Nenshkrimet Digjitale
  4. Enkriptimi Simetrik
  1. ^ a b c Cristoph Paar,Jan Pelzl,"Understanding Cryptography", 372 faqe
  2. ^ Man Young Rhee, "Internet Security Cryptographic Principles, Algorithms and Protocols"
  3. ^ Berat Osmani, "Ushtrime nga Siguria e të Dhënave"