Principet e Public-Key Kriptosistemit

Termi **publik-key kriptografi** është i pandashëm me termin kriptografia asimetrike, të dyja këto theksojnë të njëjtën gjë.
Kriptografia simetrike daton pothuajse para 4000 viteve por koncepti i kriptografisë asimetrike është relativisht i ri. Ai për të paren herë është përmendur nga Whithfield Diffie, Martin Hellman dhe Ralph Merkle në vitin 1976 por koncepti i kriptografisë asimetrike për të parën herë është përmendur në vitin 1972 nga shkencëtarët britanikë James Ellis, Clifford Cocks dhe Graham Williamson por kjo është marr vesh vetëm pas de-klasifikimit të letrave të punuara nga këta shkrimtar në 1997 gjë që nuk luan rol se kush e ka përmendur i pari por qëllimi ka qenë që të krijohet një sistem i kriptografisë që nuk bazohet në zhvendosje dhe permutacione të mesazhit për dërgim por në funksione matematike.
Problemi ka filluar nga fakti se sado që kanë qenë i fuqishëm kriptimi simetrikë ai e ka pas një të metë, sepse është përdorur vetëm një çelës për enkriptim dhe dekriptim dhe defekti ka qenë tek shkëmbimi i çelësit gjë që ka kërkuar përfshirjen edhe të një pale të tretë të besueshme si dhe algoritmet për kriptim dhe dekriptim kanë qenë në esencë të njëjta. Një problem tjetër ka qenë se është dashur gjeneruar një numër i madh i çelësave për komunikim mes çifteve të ndryshme në rrjet, e ky numër e çelësa është: *[n*(n-1)]/2*.
Po ashtu pasi që çdo dy njerëz në rrjetë e kanë pasur çelësin e njëjtë për enkriptim ka pasur probleme sepse në qoftë se njëri ka bërë ndonjë transaksion ose ka dërguar diçka dhe më vonë i ka rënë pishman për kërkesën e bërë ai ka mundur lehtë të thotë se personi tjetër që ka çelësin e njëjtë ka bërë atë kërkesë.
Shtytje tjetër për krijimin e një sistemi asimetrik për kriptim ka qenë edhe pjesa e nënshkrimeve digjitale, pra se si do të verifikohet autenticiteti i ndonjë pune në formë elektronike.
Gjitha këto probleme ka shtyrë në krijimin e një sistemi kriptografik asimetrik që përdor çelësa dhe algoritme të ndryshme për kriptim dhe dekriptim.

Megjithëqe Diffie, Hellman dhe Merkel kanë japur postulatet mbi punën e një sistemi të tillë të kriptimit mirëpo algoritmi i parë për këtë sistem është zbuluar nga tre inxhinier të MIT dhe njihet me emrin RSA dhe pothuajse është algoritmi më i përdorur në ditës e sotme për enkriptime asimetrike.
Pas RSA janë zbuluar edhe disa algoritme të tjera por fokusi jonë në këtë shkrim nuk janë algoritmet që përdoren në publik-key kriptosistemin po vet principi i punës së këtij algoritmi, funksionaliteti dhe përdorshmëria e tij si dhe të metat dhe sulmet e mundshme në këtë sistem.

## Principet e punës së public-key kriptosistemit
Konceptet themelore të public-key kriptosistemit(PKK) kanë evoluar duke sulmuar dy problemet kryesore te enkriptimeve simetrike. Problemin e shkëmbimit të çelësave dhe nënshkrimit digjital. Principet e PKK bazohen në dy çelësa e jo në një çelësi si tek enkriptimi simetrik. Njëri çelës përdoret për enkriptim dhe tjetri për dekriptim. Pra njëri çelës bëhet publik dhe tjetri mbetet privat. Ka mbetur të thuhet çelësi publik dhe çelësi privat në mënyrë që të mos shkaktohen konfuzione mes PKK dhe algoritmeve simetrike sepse tek këto të fundit çelësi quhet çelës sekret. Nuk ka rëndësi se cili çelës i gjeneruar në PKK bëhet publik e cili privat por ka rëndësi se cili nga ata përdoret për enkriptimin e të dhënave. Për këtë do të diskutohet më vonë kur arrijmë tek pjesa se ku dhe për çfarë përdoren algoritmet asimetrike.
PKK kanë bërë revolucion në kriptografi sepse janë sistemet e para që bazohen në funksione matematikore e jo në zëvendësime dhe permutacione. PKK mund të përdoret për kredencialitet,autentikim si dhe për të dyja njëkohësisht.
Diffie dhe Hellman janë të parët që paraqiten postulatet mbi të cilat bazohet PKK edhe pse ata nuk e kishin ndonjë algoritëm specifik për këtë detyrë.
Postulatet Diffie-Hellman që PKK duhet të përmbushë:
**1. Të jetë e lehtë për palë që përdorë këtë sistem të gjeneroj çiftin e çelësave (PuK dhe PrK)**
**2. Të jetë e lehtë për dërguesin (A) duke e ditur çelësin publik të pranuesit (B) të gjeneroj mesazhin e kriptuar. C=E(PuKB,M)**
**3. Të jetë e lehtë për pranuesin ta deshifroj mesazhin e pranuar, të enkriptuar me çelësin publik të tij, me anë të çelësit të tij privat. M = D(PrKB, C) = D[PrKB,E(PuKB,M)]**
**4. Të jetë praktikisht e pamundur që një palë e tretë përgjuese duke ditur PuK të gjeneroj PrK.**
**5. Të jetë e praktikisht e pamundur për palën e tretë përgjuese duke e ditur PuK dhe mesazhin e enkriptuar ta gjej mesazhin origjinal.**
Këto janë 5 postulatet sipas Diffie dhe Hellman që një PKK duhet të përmbush por mund të shtohet edhe një i gjashtë që thot:
**6. Se mesazhi i enkriptuar me PuK mund të deshifrohet me PrK si dhe anasjelltas.M = D[PUB,E(PRB,M)] = D[PRB,E(PUB,M)]**

Që të plotësohen këto kondita është dashur që të gjendet një funksion njëkahorë me ndonjë parametër të caktuar që në bazë të tij lehtë mund të caktohet inversi i funksionit por pa atë parametër është e thuajse e pamundur të gjendet inversi i funksionit.
*Y = f(X)* funksion njëkahorë.
*X = f-1(Y)* inversi i tij thuajse i pamundur.
Por në qoftë se marrim një funksion një kahorë me ndonjë parametër k:
*Y = fk(X)* funksion një kahorë me parametër të çfarëdoshëm k.
*X = fk-1(Y)* inversi i tij lehtë gjendet në qoftë se e dimë k në rast se jo atëherë është thuajse e pamundur të gjendet inversi i funksionit.
Me konceptin lehtë gjendet nënkuptojmë se kompleksiteti i një vargu prej n-bitave, rritet në mënyrë polinomiale kurse praktikisht e pamundur në qoftë se kompleksiteti i i tij rritet eksponencialisht me 2n.
## Përdorimi i publik-key kriptosistemit
### Procedura e enkriptimit dhe dekriptimit në public-key kriptosistem
Publik-key kriptosistemi mund të përdoret për enkriptim dhe dekriptim të të dhënave, për nënshkrim digjital të të dhënave si dhe të dyja bashkë.

#### Enkriptimi dhe dekriptimi i të dhënave në publik-key kriptosistem
Në shembullin tonë Alisa (dërguesi) bënë enkriptimin e të dhënva që dëshiron ti dërgon me çelësin publik të marrësist apo të Bobit në rastin tonë. Çelësin publik të Bobit, Alisa e merrë nga ndonjë hapësirë ku gjenden çelësat publik që mund të jetë ndonjë server ose ndonjë autoritet tjetër. Pas enkriptimit të plaintekstit fitohet chiperteksti. Pas pranimit të chipertekstit nga Bobi ai e dekripton atë me çelësin e tij privat.
i_kornizuar|qendër

#### Nënshkrimi digjital i të dhënave në publik-key kriptosistem
Përveç enkriptimit dhe dekriptimit mund të bëhet edhe nënshkrimi digjital i të dhënave. Alisa në qoftë se dëshiron të nënshkruaj dokumentin para se ta dërgoj ajo e enkripton atë me çelësin e saj privat dhe pastaj e dërgon dokumentin. Bobi për të dekriptuar dokumentin e pranuar nga Alisa e përdorë çelësin publik të saj.
Në praktikë nuk përdoret kjo metodë por së pari gjendet HASH-i i dokumentit dhe pastaj nënshkruhet HASH-i. HASHI mund të gjenerohet me çfarëdo funksioni MD5, SHA1 etj.
i_kornizuar|qendër
#### Nënshkrimi digjital i të dhënave të enkriptuara në public-key kriptosistem
Gjithashtu ekziston mundësia që të bëhet nënshkrimi digjital i të dhënave të enkriptuara. Në këtë rast nuk luan rol se a bëjmë enkriptimin së pari dhe pastaj nënshkruajm apo të kundërtën. Disa preferojnë mënyrën e parë disa të tjerë mënyren e dytë.
Pra Alisa bënë enkriptimin e të dhënave për dërgim me çelësin publik të Bobit dhe pastaj ajo ciphertekstin e fituar e enkripton me çelësin e saj private. Nga ana tjetër Bob së pari dekripton me çelësin publik të Alisës dhe pastaj dekripton me çelësin e tij privat.
i_kornizuar|qendër

## Siguria e public-key kriptosistemit dhe sulmet e mundëshme
Sikurse siguria tek enkriptimet simetrike ashtu edhe tek ato asimetrike varet nga gjatësia e çelësit. Në kushtet të njëjta enkriptimet simetrike janë pothuajse 1000 herë më të shpejta sesa ato asimetrike. Me kushte të njëjta nënkuptojmë që madhësia e mesazhit me qenë e njëjtë po ashtu edhe madhësia e çelësit me qenë e njëjtë, kështu që një metodë që përdoret për enkriptimin e paketave të mëdha ku koha e dërgimit është kritike është, që paketën e enkriptojmë me ndonjë AS dhe pastaj çelësin e enkriptojmë me një algoritëm asimetrik me çelësin publik të palës që dëshirojmë ta deshifroj paketën.
Megjithatë edhe PKK ka mangësitë e veta. Njëra është autenticiteti i çelësave publik. Si mund ta verifikojmë që një çelës i takon palës së dëshiruar. Kjo është arritur me anë të certifikatave digjitale, që detyrë e tyre është që një çelësi publik ti bashkëngjisin edhe identitetin se kujt i takon çelësi.
Sikurse enkriptimet simetrike ashtu edhe ato asimetrike janë të thyeshme nga “brute force attacks”. Mbrojtja e vetme është madhësia e çelësit por një gjë duhet pasur në mend se me rritjen e madhësisë së çelësit koha e kalkulimit të funksioneve një kahore mbi të cilat bazohet algoritmi i caktuar asimetrik rritet eksponencialisht.
Pikë e dobët tjetër është gjetja e ndonjë mënyre për kalkulimin e çelësit privat nga ai publik. Deri më sot nuk ekziston diçka e tillë por ky fakt nuk e mohon mundësin e gjetjes së ndonjë metode të tillë.
Një metodë tjetër e thyerjes së këtij algoritmi është kur e shfrytëzojmë atë për enkriptimin e ndonjë çelësi që dëshirojmë ta dërgojmë. Pala e tretë me anë të çelësit publik i enkripton gjitha mundësit (me madhësi të çelësit që e kemi dërguar) dhe pastaj i krahason ato me formë e enkriptuar të çelësit të dërguar dhe kështu pastaj sulmi kalon në një “brute force attack”.

## Referime