Shkëmbimi i çelësave përmes protokollit Diffie-Hellman

Hyrje 
Mundësia për të komunikuar në mënyrë të sigurtë ka qenë një sfidë për mijëra vite. Që nga kohët e lashta njerëzit janë munduar të këmbejnë informacione private, dhe të  tjerët janë munduar ti kapin dhe ti deformojnë ato. Në hapësirën e komunikimieve moderne, rrjetat digjitale mbarë botërore siq është Interneti shkalla e sigurisë së privatësisë vihet mjaft në dyshim. Fusha e Kriptografisë ka bërë përparime të mëdha në lidhje me luftimin e dukurisë së përgjimit dhe thyerjes së privatësisë. Metodat e enkriptimit dhe dekriptimit, ndahen në dy kategori të mëdha: algoritmet simetrike, dhe asimetrike. Në kriptografinë simetrike palët ndajnë të njëjtin çelës për enkriptim/dekriptim të dhënave, ashtuqë para se të fillojnë komunikimin palët duhet të pajtohen për një çelës me të cilin do të enkriptojnë/dekriptojnë të dhënat. Këtu shfaqet një problem kur palët janë në distancë të mëdha le të themi qindar-mijëra kilometra, që është e qëndrueshme në botën tonë digjitale, si dotë ndanin çelësat ata në një kanal jo të sigurt në mënyrë që tjerët to mos e kuptojnë? Problemi i shpërndarjes së çelësave në mënyrë të sigurtë duke ruajtur privatësinë ka qenë sfidë për vite me radhë, deri sa në vitin 1977 Whitfield Diffie dhe Martin Hellman paraqitën një protokoll mbi shkëmbimin e sigurt të çelësave që në nder të tyre sot njihet si Diffie-Hellman key exchange protocol.

 Diffie Hellman Analogjia 
Protokolli Diffie-Hellman mbështetet në vështirësinë e zgjidhjeve të logaritmave diskret në fusha të fundme. Me vështërisinë e zgjidhjes së këtyre problemeve matematikore, një përgjues do ta kishte të pamundur të kap çelësin ose ndonjë pjesë të informacionit në kanalin komunikues të palëve. Pas një shkëmbimi të sigurtë të çelësave, palët mund të vazhdojnë me enkriptimin dhe dekriptimin e të dhënave mes tyre. Para se të shkëmbejnë çelësin palët së pari duhet të merren vesh për një numër të thjeshtë që do të definonte hapësirën në të cilën do të ndodhet çelësi. Nëse numri i thjesht është i madhësisë së kërkuar për sigurinë e çelësit atëhere një (Brute-Force Attack) do të ishte e parealizushme. 

 Protokolli Diffie Hellman 

Protokolli Diffie-Hellman ka krijuar zgjidhjen e parë praktike mbi këmbimin e çelësave, duke lejuar dy palë (por jo vetëm dy) pa u takuar më parë të këmbejnë çelësat sekret në një kanal të hapur, pastaj ky çelës mund të përdoret për enkriptimin dhe dekriptimin e të dhënave. Siguria mbështetet në rëndësinë e problemit të Diffie-Hellman i cili na dërgon në problemin e llogaritjes së logaritmave diskret. Dy palët të cilat do të shkëmbejnë çelësat do ti quajm “Alice” edhe “Bob”.
Hapat e Diffie-Hellman:
	Zgjedhim një numër të thjeshtë p dhe një gjenerator α të bashkësisë së numrave të plotë të thjeshtë Zp (2≤ α≤p-2) të cilët do të jenë publik.
	Alice zgjedh një numër random sekret x , (1≤x≤p-2) dhe i dërgon Bobit vlerën αx mod p, pra A=>B: αx mod p
	Bob zgjedh një numër random sekret y, (1≤y≤p-2) dhe i dërgon Alice vlerën αy mod p, pra B=>A: αy mod p
	Bob e pranon vlerën αx dhe e krijon çelësin e këmbimit si:K= (αx )y  mod p
	Alice e pranon vlerën αy dhe e krijon çelësin e këmbimit si: K=(αy )x  mod p
Pasi që (αx )y =(αy )x , Alice dhe Bob do të kenë arritur te i njëjti çelës sekret. Vetëm x, y dhe αxy janë vlera sekrete, të gjitha vlerat tjera janë publike. Marrim një shembull për ilustrim:
	Le të pajtohen Alice dhe Bob për p=37 dhe α=2.
	Alice le të zgjedhë x=14 dhe 214 mod 37 =30, pra A=>B: 30
	Bob le të zgjedhë y=23 dhe 223mod 37=5, pra B=>A: 5
	Bob e pranon vlerën 30 dhe e krijon çelësin 3023mod 37=28
	Alice e pranon vlerën 5 dhe e krijon çelësin 514mod 37=28
Pra Alice dhe Bob kanë këmbyer çelësin e tyre sekret i cili është 28.

650px|center|thumb|Shembull i shkëmbimit të çelësave përmes protokollit Diffie-Hellman

Applied Cryptography: Second Edition - Bruce Schneier   ISBN 0-471-12845-7
Understanding Cryptography Christof Paar •Jan Pelzl        ISBN 978-3-642-04100-6
Cryptography and Network Security William Stallings        ISBN 978-0-13-609704-4
Internet Security. Edited by M.Y. Rhee  2003 John Wiley & Sons, Ltd ISBN 0-470-85285-2
Diffie-Hellman Protocol

 Problemi i Man in the Middle 

Pamë se protokolli Diffie-Hellman ofron një këmbim të sigurt të çelësit mes palëve komunikuese, por e metë e këtij protokolli është që nuk ofron autentifikim. Pra nuk mund të sigurojë palën A që me të vërtetë po këmben çelësin me palën B. Kjo avari e këtij protokolli është e njohur si problemi i Man in the Middle. Por si mund një person I padëshiruar të ndërhyjë në mes palëve A dhe B?
Supozojmë se Alice dhe Bob dëshirojnë të këmbejnë çelësat përmes protokollit Diffie-Hellman dhe le të jetë Eve personi jo i dëshiruar pra personi që përgjon. Hapat se si Eve do të sulmonte përmes sulmit Man in the Middle janë si më poshtë:
	Eve përgaditet për sulmin duke krijuar dy çelësa privat të rastësishëm XE1 dhe XE2 dhe formon çelësat publik përkatës YE1 dhe YE2.
	Alice transmeton YA tek Bob.
	Eve e kap YA, dhe e transmeton YE1 tek Bob, dhe gjithashtu formon një çelës                      K2= (YA)XE2mod q.
	Bob e pranon YE1 dhe formon çelësin K1=( YE1)Xbmod q.
	Bob e transmeton YB për tek Alice.
	Eve e kap YB, dhe e transmeton YE2 tek Alice, dhe gjithashtu formon një çelës                   K1=( YB)XE1mod q.
	Alice e pranon YE2, dhe e llogarit K2=( YE2)Xamod q.
Në këtë pikë Alice dhe Bob mendojnë se ndajnë një çelës sekret të përbashkët, por ajo që ka ndodhur me të vertetë është se Alice edhe Eve ndajnë një çelës sekret K2 dhe, Bob de Eve ndajnë një çelës sekret K1. Dhe tash e tutje çdo komunikim mes Alice edhe Bob do të kalojë detyrimisht përmes Eve, e cila mund edhe të modifikoj përmbajtjen e mesazhit.
Kjo avari e protokollit Diffie-Hellman mund të evitohet përmes përdorimit nënshkrimeve digjitale(Digital signature) ose çertifikatave digjitale(Public key certificate).
Key exchange
650px|center|thumb|Problemi i Man in the Middle

 Referimet