User:Florida Kurtaj/sandbox

= Algoritmi RSA. = Algoritmi RSA (Rivest-Shamir-Adleman) është baza e një kriptosistemi - një grup algoritmesh kriptografike që përdoren për shërbime ose qëllime specifike sigurie i cili mundëson enkriptimin e çelësit publik dhe përdoret gjerësisht për të siguruar të dhëna të ndjeshme, veçanërisht kur është duke u dërguar përmes një rrjeti të pasigurt siç është interneti. RSA u shfaq për herë të parë publikisht në 1977 nga Ron Rivest,Adi Shamir dhe Leonard Adleman të Institutit të Teknologjisë në Masaçusets, megjithëse krijimi i një algoritmi të çelësit publik në 1973 nga matematikani britanik Clifford Cocks u mbajt i klasifikuar nga GCHQ i MB deri në 1997.

Kriptografia e çelësit publik, e njohur gjithashtu si kriptografia asimetrike, përdor dy çelësa të ndryshëm, por të lidhur matematikisht,një publik dhe një privat. Çelësi publik mund të ndahet me të gjithë, ndërsa çelësi privat duhet të mbahet sekret.Në kriptografinë RSA, si çelësi publik ashtu edhe ai privat mund të enkriptojnë një mesazh. Çelësi i kundërt nga ai që përdoret për të enkriptuar një mesazh përdoret për ta deshifruar(dekriptuar) atë. Ky atribut është një arsye pse RSA është bërë algoritmi asimetrik më i përdorur: Ai siguron një metodë për të siguruar konfidencialitetin, integritetin, origjinalitetin dhe mospranimin e komunikimeve elektronike dhe ruajtjes së të dhënave.

Si funksionon algoritmi RSA?

 * Gjenerimi i çelësave.

1.Zgjidhni dy numra të thjeshtë të mëdhenj, $$x$$ dhe $$y$$. Numrat e thjeshtë duhet të jenë të mëdhenj, në mënyrë që dikush t'i ketë të vështirë t'i kuptojë.

2.Llogaritni modulin; $$n=x\times y$$

3.Llogaritni funksionin e Euilerit;$$\phi(n)=(x-1)(y-1)$$

4.Zgjidhni një numër të plotë $$e$$, i tillë që e të jetë numër i thjeshtë me $$\phi(n)$$ dhe $$1<e<\phi(n)$$. Çifti i numrave $$(n.e)$$ përbën çelësin publik.

5.Llogarit $$d$$,ku $$d $$ është inversi multiplikativ i $$e $$ modul $$\phi(n) $$ që $$d \times e= 1(\mod \phi({n}))$$ prej nga kemi $$d=e^{-1}(\mod \phi({n})) $$.$$d$$ mund të gjendet duke përdorur algoritmin euklidian të zgjeruar. Çifti i numrave $$(n,d)$$ përbën çelësin privat


 * Enkriptimi

Duke pasur parasysh një tekst të thjeshtë P, të përfaqësuar si një numër, teksti shifror C llogaritet si:

$$C=P^e\pmod{n}$$


 * Dekriptimi

Duke përdorur çelësin privat $$(n,d)$$, teksti i thjeshtë mund të gjendet duke përdorur:

$$P=C^d \pmod{n}$$

Siguria e RSA.
Siguria RSA mbështetet në vështirësinë llogaritëse të faktorizimit të numrave të plotë të mëdhenj. Ndërsa fuqia llogaritëse rritet dhe zbulohen algoritme më efikase të faktorizimit, rritet edhe aftësia për të faktorizuar numra gjithnjë e më të mëdhenj.

Forca e kriptimit është e lidhur drejtpërdrejt me madhësinë e çelësit. Dyfishimi i gjatësisë së çelësit mund të sjellë një rritje eksponenciale të forcës, megjithëse dëmton performancën. Çelësat RSA janë zakonisht 1024- ose 2048-bit të gjatë, por ekspertët besojnë se çelësat 1024-bit nuk janë më plotësisht të sigurt kundër të gjitha sulmeve. Kjo është arsyeja pse qeveria dhe disa industri po lëvizin në një gjatësi minimale kyçe prej 2048-bitësh.Me përjashtim të një përparimi të paparashikuar në llogaritjen kuantike, do të duhen shumë vite para se të kërkohen çelësa më të gjatë, por kriptografia e kurbës eliptike (ECC) po fiton favorin e shumë ekspertëve të sigurisë si një alternativë ndaj RSA për të zbatuar kriptografinë me çelës publik. Mund të krijojë çelësa kriptografikë më të shpejtë, më të vegjël dhe më efikas.

Shembull

 * Gjenerimi i çelësave.

Si mesazh kemi fjalen "HI" që sipas kodimit do te jetë 08-09.

Hapi 1:-Merr dy numra te thjeshtë të ndryshëm $$p$$ dhe $$q$$.

Le të jetë $$p=17$$ dhe $$q=13$$

Hapi 2:-Llogaritet $$n$$ dhe $$\phi$$.

$$n=p\times q=17\times13=221$$

$$\phi (n)=(p-1)(q-1)=(16,12)=192$$

Hapi 3:-Zgjidhet një numer i plotë $$e$$,ashtu që $$1<e<\phi (n); 1<e<192$$.

Që të mbajmë shembullin të thjeshtë do të zgjedhim një $$e$$ të vogël $$e=5$$.

Hapi 4:-Përcaktohet d si $$d=e^{-1}(\mod \phi({n})) $$ ose $$d $$ mund të llogaritet edhe me formulen $$d=(1+k(p-1)(q-1))/e $$ për ndonjë $$k $$ numër të plotë$$(k\in Z) $$.

Për $$k=2 $$ kemi $$d=77 $$.

Deri tani kemi vlerat ,$$p=17;q=13;n=221;\phi(n)=192;e=5;d=77 $$ ku $$e $$ është çelësi publik ndërsa $$d $$ është çelësi privat.


 * Enkriptimi

Për të enkriptuar mesazhin tonë "08-09", përdorim formulën $$C=P^e\pmod{n}$$.Ku $$C$$ paraqiste tekstin shifror.

$$08^5\pmod{221}=50$$

$$09^5\pmod{221}=42$$

Përfundimisht kemi $$C=5042$$.

Dekriptimi

Për të deshifruar mesazhin e enkriptuar "08-09",përdorim formulën $$P=C^d \pmod{n}$$.

$$P=C^d \pmod{n}=5042\pmod{221}$$ prej nga kemi: $$50^{77}\pmod{221}=08$$ dhe $$42^{77}\pmod{221}=09$$,ku 08 perfaqëson shkronjen "H" dhe 09 shkronjen "I" në alfabetin anglez.

Shiko edhe
1.HASH Algoritmi.

2.Enkriptimi Simetrik.