Ključi, organizacija hrambe ključev, distribucija ključev. Distribucija javnih ključev

Predavanje 6: Upravljanje kriptografskih ključev. Kriptografski protokoli.

vprašanja:

1. Kriptografski protokoli.

2. Distribucija tajnih ključev.

3. Distribucija javnih ključev.

4. Distribucija tajnih ključev s sistemom javnih ključev.

1 Kriptografski protokoli.

Kriptografski protokol – nabor formaliziranih pravil, ki opisujejo zaporedje dejanj, ki jih izvedeta dve ali več strank za rešitev problema zaščite informacij s kriptografijo. To pomeni, da kriptografski protokol vključuje nekaj kriptografskih algoritmov.

V vsakdanjem življenju se neformalni protokoli uporabljajo skoraj povsod:

· pri igranju kart;

· pri naročilu blaga po telefonu.

Ti protokoli so bili razviti v daljšem časovnem obdobju in delujejo precej zanesljivo.

Povsem druga zadeva so računalniški protokoli. Računalniki potrebujejo formalne protokole, da delajo to, kar ljudje počnejo brez razmišljanja.

Za lažji prikaz delovanja protokolov se uporablja več udeležencev:

· Alice je prva udeleženka.

· Bob je drugi udeleženec.

· Carol je udeleženka tristranskih protokolov.

· Dave je štirismerni protokol.

· Eve je prestreznik sporočil.

· Mallory je aktiven vlomilec.

· Trant je zaupanja vreden posrednik.

· Walter je upravnik (varuje Alice in Boba).

· Peggy je izzivalec (poskuša nekaj dokazati).

· Victor je verifikator (preveri Peggy).

Obstajajo:

· samostojni protokoli;

· protokole s posrednikom;

· protokole z arbitrom.

V samostojnih protokolih integriteta strank je zagotovljena s samim protokolom. Za izvajanje protokola ni potrebna tretja oseba. Odsotnost sporov je zagotovljena z zasnovo protokola. To je najboljša vrsta protokola, vendar žal takšni protokoli niso primerni za vsako situacijo.

Alice Bob

Protokoli s posrednikom.

Mediatorklical nezainteresiran tretja oseba, ki zaupano dokončati izvedbo protokola. »Nezainteresiranost« pomeni, da je posrednik brezbrižen tako do rezultata protokola kot do katerega koli od njegovih udeležencev. Vsi udeleženci v protokolu zaznavajo mediatorjeve besede kot resnico in vsa njegova dejanja so priznana kot pravilna.

V vsakdanjem življenju je posrednik lahko odvetnik, agencija, banka itd. Z računalniškimi omrežji je situacija bolj zapletena.


Protokoli z arbitrom.


Arbiter- posebna vrsta posrednika. to nezainteresiran in zaupanja vreden Tretja stran. Za razliko od mediatorja ni nujno vključen v izvedbo vsakega protokola, ampak le takrat, ko med strankama pride do nesoglasij.

Primer bi bili sodniki.

Arbitražni računalniški protokoli so znani. Ti protokoli temeljijo na predpostavki, da so stranke poštene. Če pa nekdo sumi goljufijo, lahko zaupanja vredna tretja oseba razkrije goljufijo na podlagi obstoječega nabora podatkov. Poleg tega dober arbitražni protokol omogoča arbitru, da ugotovi identiteto napadalca. Tako arbitražni protokoli ne preprečite, A odkriti goljufijo. V tem primeru neizogibnost odkrivanja deluje kot preventivni ukrep, ki odvrne napadalca.

Organizacija komunikacije z uporabo simetrične kriptografije.

Model simetričnega kriptosistema:

1. Alice in Bob izbereta kriptosistem.

2. Alice in Bob izbereta ključ.

3. Alice šifrira odprto besedilo sporočila z uporabo šifrirnega algoritma in ključa.

4. Alice pošlje šifrirano besedilo Bobu.

5. Bob dešifrira šifrirano besedilo s pomočjo ključa in pridobi odprto besedilo.

Eva, ki je med Alico in Bobom, lahko le presliši prenos na 4. stopnji, nato pa bo morala šifrirano besedilo podvrči kriptoanalizi. To je pasivni napad, ki uporablja samo šifrirano besedilo.

Eva lahko presliši koraka 1 in 2. V dobrem kriptosistemu je varnost odvisna od poznavanja ključa. Zato je upravljanje ključev tako pomembno v kriptografiji.

Aktivni vlomilec Mallory lahko gre še dlje. Na 4. stopnji lahko prekine komunikacijsko linijo. Ali pa prestrezite Alicino sporočilo in ga zamenjajte s svojim. Bob nikakor ne more prepoznati, da sporočila ni poslala Alice.

Alice ali Bob lahko data kopijo ključa Evi itd.

Če povzamemo, naštejemo slabosti simetričnih kriptosistemov:

1. Ključi so tako dragoceni kot sporočila, ki jih šifrirajo, zato sledi problem distribucije ključev.

2. Pri prejemu ključa je možno ustvarjanje lažnih sporočil.

3. Če vsak par omrežnih uporabnikov uporablja ločen ključ, skupno število ključev hitro narašča s številom uporabnikov.

n uporabnikov - n (n – 1) / 2 – ključa,

10 uporabnikov - 45 ključev,

100 uporabnikov - 4950 ključev itd.

Organizacija komunikacije z uporabo kriptografije z javnim ključem.

1. Alice in Bob se strinjata, da bosta uporabila kriptosistem z javnim ključem.

2. Bob pošlje Alice svoj javni ključ.

3. Alice šifrira svoje sporočilo z Bobovim javnim ključem in ga pošlje Bobu.

4. Bob dešifrira sporočilo s svojim zasebnim ključem.

To odpravi problem distribucije ključev, ki je boleč za simetrične kriptosisteme.


2. Distribucija tajnih ključev.

Pri tradicionalnem šifriranju morata obe strani prejeti isti ključ. Iz varnostnih razlogov so potrebne pogoste spremembe ključev.

Zato Moč katerega koli simetričnega kriptografskega sistema je močno odvisna od vrste uporabljenega kriptografskega sistema. ključni distribucijski sistemi (tj. sredstvo za dostavo ključev dvema strankama).

Za dve stranki A in B lahko razdelitev ključev organiziramo na različne načine:

1. Ključ izbere stranka A in ga fizično dostavi B.

2. Ključ izbere tretja oseba in ga fizično dostavi A in B.

3. Ena od strank pošlje nov ključ v šifrirani obliki s starim ključem.

4. Tretja oseba C dostavi ključ do A in B preko varnih komunikacijskih kanalov, tj. se uporablja določena Center za distribucijo ključev (KDC).

Shema distribucije ključev (protokol) je lahko centralizirano in porazdeljeno(s posrednikom in samooskrbno).

Razmislimo o točki 4.

Uporaba DRC vključuje organizacijo hierarhije ključev (vsaj dve ravni). Komunikacija med končnimi uporabniki je šifrirana z uporabo začasnega ključa, imenovanega sejni ključ . Ključ seje prejme od DRC prek istih komunikacijskih kanalov, ki se uporabljajo za dostavo podatkov. Ključi seje se prenašajo v šifrirani obliki in so šifrirani z uporabo glavni ključ , skupno za DR Kongo in tega uporabnika.

Potrebni so glavni ključi n (po številu uporabnikov). Distribuirajo se na nekriptografski način (s fizično dostavo prejemniku).

Scenarij porazdelitve ključev (centralizirana shema).

Predpostavimo, da namerava uporabnik A prenesti informacije uporabniku B in je za zaščito podatkov potreben enkratni sejni ključ.

V tem primeru ima uporabnik A skrivni ključ K a , znan samo njemu in TsRK, uporabnik B pa ima K b (K a in K b – glavni ključi, K s – ključ enkratne seje).

Izmenjava informacij poteka na naslednji način:

1. Uporabnik A pošlje zahtevo DRC za pridobitev ključa seje za zaščito komunikacije z B.

Poslana zahteva mora vsebovati:

- informacije, ki omogočajo nedvoumno določitev A in B ( ID A, ID B);

- neki identifikator N 1 , edinstven za vsako zahtevo in klicano priložnost. Priložnost je lahko čas, števec, naključno število.

2. CRC odgovarja na zahtevo uporabnika A, šifriranje odgovora s ključem K a(glavni A). Edini uporabnik, ki bo lahko prebral odgovor, je A (zato je A prepričan, da je sporočilo prišlo iz CRC).

Odgovorno sporočilo vključuje naslednje elemente:

· Zasnovan za A :

S (za povezavo A z B).

- Zahteva za priložnost N 1 tako da lahko uporabnik A poveže odgovor z zahtevo.

Na ta način se lahko A prepriča, da njegova zahteva ni bila spremenjena na poti do Centralne nadzorne komisije, priložnost pa mu ne dopušča, da bi zamenjal odgovor na to zahtevo z odgovorom na prejšnje zahteve.

· Zasnovan za B .

Ključ za enkratno sejo K s.

ID uporabnika A - ID A (na primer omrežni naslov A).

Oba elementa sta šifrirana s ključem KB (glavni ključ TsRK in B). Naknadno naj bi jih poslali B-ju, da vzpostavi povezavo in identificira A-ja.

E Ka [ K S ||Zahteva|| N 1 || E Kb (K S , ID A )]

3. Uporabnik A shrani svoj ključ seje in stranki B posreduje informacije iz DRC, namenjene B.

Uporabnik B prejme K s in ve, da so prejete informacije prišle iz TsRK (saj so šifrirane s KB, kar vesta samo B in TsRK).

Sejni ključ imata torej A in B. Toda pred izmenjavo podatkov je priporočljivo narediti naslednje:

4. Z uporabo prejetega sejnega ključa K s uporabnik B pošlje uporabniku A novo priložnost N 2.

5. Uporaba K s uporabnik A odgovarja z f (N 2 ). To je potrebno, da se B prepriča, da sporočila, ki ga je prvotno prejel, ni reproduciral napadalec.

To ne zagotavlja samo prenosa ključa, ampak tudi avtentikacijo (4. in 5. korak).


Funkcije razdeljevanja ključev ni potrebno dodeliti enemu centru za razdeljevanje ključev. Bolj ugodno je uporabiti neko hierarhijo DRC. Pogosteje kot se spreminjajo ključi seje, bolj zanesljivi so, vendar distribucija ključev seje zakasni začetek komunikacijske seje in poveča obremenitev omrežja.

Uporaba CRC pomeni, da mora CRC vzbujati zaupanje in biti zanesljivo zaščiten pred napadi. Tem zahtevam se lahko odpoveste, če uporabljate decentralizirano (samozadostno) shemo distribucije ključev.

Decentralizirana shema razdeljevanja ključev.

Ključ seje je mogoče določiti kot rezultat naslednjega zaporedja dejanj:


1) A pošlje zahtevo za prejem K s + priložnost N 1.

2) B se odzove s šifriranjem odgovora z glavnim ključem E MK, ki je skupen A-ju in B-ju m.

3) A vrne f (N 2 ), šifriranje s K s.

3. Podelitev javnih ključev.

Ena glavnih aplikacij šifrirne sheme z javnim ključem je je rešitev problema distribucije ključev. Na tem področju obstajata dve zelo različni uporabi šifriranja z javnim ključem:

1. distribucija javnih ključev;

2. uporabo šifriranja z javnim ključem za distribucijo tajnih ključev.

Za distribucijo javnih ključev je bilo predlaganih več metod. Pravzaprav jih lahko razvrstimo v naslednje splošne razrede:

1. javna objava;

2. javno dostopen imenik;

4. potrdila javnih ključev.

1) Javna objava javnih ključev (Nenadzorovana distribucija) .

Vsaka stranka, ki sodeluje pri izmenjavi podatkov, lahko posreduje svoj javni ključ katerikoli drugi stranki ali pa ključ posreduje prek komunikacije vsem – nenadzorovana distribucija javnih ključev.

Ta pristop je priročen, vendar ima ena pomanjkljivost: Tako javno objavo lahko poda kdorkoli, tudi napadalec. To pomeni, da se bo nekdo pretvarjal, da je uporabnik A in poslal javni ključ drugemu uporabniku v omrežju ali ponudil tak javni ključ v javno uporabo. Medtem ko uporabnik A odpre ponaredek in opozori druge uporabnike, ponarejevalec bo lahko prebral vsa šifrirana sporočila, prispel v tem času za A, in bo lahko za avtentikacijo uporabil ponarejene ključe.

2) Javno dostopen imenik (centralizirana shema).

Večjo stopnjo varnosti lahko dosežemo z uporabo javno dostopnega imenika dinamičnih javnih ključev. Vzdrževanje in distribucija javnega kataloga morata biti odgovornost zaupanja vrednega centra ali organizacije. Takšna shema mora vsebovati naslednje elemente:

1. Avtoritativni objekt, ki vzdržuje imenik z vnosi oblike (ime, javni ključ) za vsakega od udeležencev.

2. Vsak udeleženec registrira svoj javni ključ. Takšna registracija mora potekati med osebnim nastopom udeleženca ali prek varnih komunikacijskih kanalov.

3. Vsak udeleženec lahko kadarkoli zamenja obstoječi ključ z novim z orodji za preverjanje pristnosti. (Zasebni ključ je morda na nek način ogrožen ali pa je bilo z njegovo pomočjo že prenesenih veliko informacij.)

4. Celoten katalog ali njegove posodobitve so objavljene občasno.

Ta shema je varnejša od posameznih javnih objav, vendar je tudi ranljiva . Če nasprotniku uspe pridobiti zasebni ključ subjekta, pooblaščenega za vzdrževanje imenika, se bo lahko izdajo ponarejene javne ključe in zato delujejo v imenu katerega koli udeleženca v komunikaciji in berejo sporočila, namenjena kateremu koli udeležencu. Isti rezultat sovražnik lahko doseči z spremembe vnosov, shranjenih v imeniku.

Najboljša zaščitadistribucijo javnih ključev lahko dosežemo s poostrenim nadzorom nad distribucijo javnih ključev.

Tipičen scenarij je prikazan spodaj. Scenarij predvideva prisotnost določenega digitalnega distribucijskega centra, pooblaščenega za vzdrževanje dinamičnega imenika javnih ključev vseh udeležencev v izmenjavi podatkov. Poleg tega vsak od udeležencev zanesljivo pozna javni ključ centra, le center pa pozna ustrezni zasebni ključ. Izvajajo se naslednja dejanja:

(1) Pobudnik A pošlje sporočilo z datumskim/časovnim žigom (priložnost N 1 ) avtoritativnemu viru javnih ključev z zahtevo po trenutnem javnem ključu udeleženca B.

(2) Organ odgovori s sporočilom, ki je šifrirano z zasebnim ključem organa KR avtor . Pobudnik A lahko dešifrira to sporočilo z uporabo javnega ključa avtoritativnega vira. Zato je lahko pošiljatelj A prepričan, da sporočilo prihaja iz uglednega vira. To sporočilo mora vsebovati naslednje:

· Javni ključ udeleženca B , KU b ;

· Prvotna zahteva , tako da lahko stranka A preveri, ali zahteva ni bila spremenjena na poti do verodostojnega vira.


· Izvirni datum/časovni žig (priložnost št. 1 ), tako da lahko pošiljatelj A preveri, ali je to odgovor na to posebno zahtevo.

(3) Pobudnik A shrani B-jev javni ključ in ga uporabi za šifriranje sporočila, poslanega prejemniku B, ki vsebuje A-jev ID pošiljatelja ( ID A) in priložnost N 1.

(4) (5) Odgovoritelj B prejme A-jev javni ključ od avtoritativnega vira na popolnoma enak način, kot je pošiljatelj A pridobil A-jev javni ključ prejemnika B.

Na tej točki so bili javni ključi dostavljeni udeležencem A in B, torej da zdaj lahko A in B začneta varno komunikacijo. Toda pred tem priporočljivo je narediti dva naslednji dodatna dejanja.

(6) Odzivnik B pošlje sporočilo pobudniku A, šifrirano z uporabo KU A in vsebuje izjavo pošiljatelja A ( N 1 ), kot tudi novo priložnost, ki jo je ustvaril udeleženec B ( N 2). Prisotnost št. 1 v sporočilu (6) prepriča udeleženca A, da je bil pošiljatelj prejetega sporočila B.

(7) Pobudnik A se vrne n2 šifriran z B-jevim javnim ključem, tako da lahko preveri, ali je pošiljatelj odgovora A.

Torej, skupaj bo potrebnih sedem sporočil. Vendar pošiljanje prvih štirih sporočil je redko potrebno, saj lahko obe strani drug drugega shranita javne ključe za kasnejšo uporabo, kar se običajno imenuje predpomnjenje.

4) Certifikati javnih ključev .

Confelder je predlagal alternativni pristop. Temelji na certifikatih.

Vsako potrdilo vsebuje javni ključ in druge informacije generira avtoritativni vir potrdila in jih izda udeležencu.

Sistemske zahteve :

1. Vsak udeleženec mora imeti možnost prebrati potrdilo, da ugotovi ime in javni ključ lastnika potrdila.

2. Vsak udeleženec mora imeti možnost preveriti, ali certifikat izvira iz uglednega vira certifikatov in ni ponarejen.

4. Denningdodal naslednjo zahtevo - vsak udeleženec mora imeti možnost preveriti obdobje veljavnosti potrdila.


riž. Izmenjava certifikatov javnih ključev.

Vsak udeleženec dostopa do AIS tako, da posreduje javni ključ in prek varne oblike komunikacije zahteva potrdilo zanj.

AIS pošlje potrdila C A in C B, ki vsebujeta 1) obdobje veljavnosti potrdila; 2) ID lastnika; 3) javni ključ lastnika potrdila. Potrdila so šifrirana z uporabo zasebnega ključa avtoritativnega vira.

Lahko pa posreduje potrdilo kateremu koli udeležencu.

Prejemnik uporablja javni ključ KU avt AIS za branje potrdila. To zagotavlja, da je potrdilo prišlo od njega.

D KU [ C A ]= D KU [ E KR [ T , ID A , KU A ]]=(T , ID A , KU )

4. Distribucija tajnih ključev po sistemu javnih ključev.

Nekateri uporabniki se bodo odločili za uporabo šifriranja z javnim ključem le v izjemnih okoliščinah zaradi razmeroma počasnega prenosa podatkov pri uporabi šifriranja. Zato je treba na šifriranje z javnim ključem gledati bolj kot na sredstvo za distribucijo tajnih ključev, ki se uporabljajo za tradicionalno šifriranje.

1) Shema Merkle (samozadosten protokol)

Če namerava pobudnik A izmenjati podatke z uporabnikom B, se predpostavlja naslednji postopek:


1. Stranka A ustvari par javni/zasebni ključ ( KU A, KR A ) in pošlje sporočilo stranki B, ki vsebuje KU A in ID pošiljatelja A, ID A.

2. Prejemnik B ustvari skrivni ključ KS in ta ključ posreduje iniciatorju sporočila A, šifriranega z javnim ključem iniciatorja A.

3. Uporabnik A izračuna D KRa [ E KUa [ K S ]] za obnovitev zasebnega ključa. Ker lahko le udeleženec A dešifrira to sporočilo, bosta samo udeleženca izmenjave A in B poznala pomen K S.

Zdaj lahko obe strani A in B uporabljata komunikacijo, zaščiteno s tradicionalnim šifriranjem sejnega ključa K S . Na koncu izmenjave podatkov se tako A kot B zavržeta K S . Kljub svoji preprostosti je ta protokol zelo privlačen.

Dostojanstvo: Pred začetkom komunikacije ne obstaja noben ključ in po koncu komunikacije ne ostane noben ključ. Zato je tveganje za kompromis minimalno. Hkrati je povezava zaščitena pred prisluškovanjem.

Napaka: Ta protokol je ranljiv za aktivni napadi. Če ima nasprotnik E možnost infiltracije v komunikacijski kanal, potem lahko ogrozi komunikacijo, ne da bi bil zaznan na naslednji način.

1. Udeleženec A ustvari par javni/zasebni ključ ( KU A, KR A KU A in ID udeleženca A, ID A.

2. Nasprotnik E prestreže sporočilo, ustvari svoj par javnih/zasebnih ključev ( KU E, KR E ) in pošlje sporočilo naslovniku B, ki vsebuje KU E || ID A.

3. B ustvari skrivni ključ K S in oddaja E KUe [ K S ].

4. Nasprotnik E prestreže to sporočilo in ugotovi K S , izračun D KRe [ E KUe [ K S ]].

5. Nasprotnik E pošlje sporočilo udeležencu A E KU a [K S].

Posledično bosta oba udeleženca, A in B, vedela K S , vendar tega ne bo sumil K S znan tudi sovražniku E . torej to preprosto protokol se izkaže za uporabnega le takrat, ko je edina možna grožnja pasivno prestrezanje sporočil.

2) Distribucija tajnih ključev, ki zagotavljajo zaupnost in avtentikacijo.

Shema zagotavlja zaščito pred aktivnimi in pasivnimi oblikami napada. Kot izhodišče predpostavimo, da sta A in B že izmenjala javne ključe z uporabo ene od zgoraj opisanih shem.


(1) Stran A uporablja javni ključ stranke B, da pošlje stranki B šifrirano sporočilo, ki vsebuje ID stranke A ( ID A) in priložnost (N 1 ) za identifikacijo določene transakcije.

(2) Uporabnik B dešifrira (1) z uporabo KR B . Uporabnik B pošlje uporabniku A sporočilo, šifrirano z KU A in vsebuje priložnost, prejeto od njega ( N 1) in nova priložnost (N 2 ). Ker je samo udeleženec B lahko dešifriral sporočilo (1), prisotnost N 1 v sporočilu (2) prepričuje stranko A, da je respondent stranka B.

( 3) Stran A se vrača N 2 , šifriranje sporočila z javnim ključem stranke B, da se zagotovi, da je njegov respondent stranka A.

(4) Udeleženec A izbere skrivni ključ K S in pošlje sporočilo udeležencu B M = E KUb [ E KRa [ K S ]]. Šifriranje tega sporočila z javnim ključem B-ja zagotavlja, da ga lahko prebere samo B, šifriranje z zasebnim ključem A pa zagotavlja, da ga lahko pošlje samo A.

(5) Stranka B izračuna B KU a [ E KRb [ K S ]] za obnovitev zasebnega ključa.

Pri izmenjavi tajnih ključev ta shema zagotavlja tako zaupnost kot avtentikacijo.

3) Hibridna shema (tristopenjska).

Predstavlja hibridni pristop, ki se uporablja na velikih računalnikih IBM . Ta posredovana shema vključuje sodelovanje centra za distribucijo ključev (KDC), s katerim vsak uporabnik deli svoj glavni skrivni ključ, in distribucijo skrivnih ključev seje, šifriranih z glavnim ključem. Za distribucijo glavnih ključev se uporablja shema šifriranja javnega ključa. Ta tristopenjski pristop temelji na naslednji logiki:

· Hitrost postopka .

Obstaja veliko aplikacij, kjer se morajo ključi seje spreminjati zelo pogosto. Distribucija ključev seje z uporabo sheme javnih ključev bi lahko povzročila preslabo delovanje sistema zaradi razmeroma visokih računalniških zahtev šifriranja in dešifriranja z uporabo takšne sheme. V primeru trinivojske hierarhije se šifriranje z javnim ključem uporablja le občasno za spremembo glavnega ključa.

· združljivost za nazaj .

Hibridno shemo je mogoče preprosto implementirati kot razširitev obstoječe sheme, ki vključuje uporabo DRC, z minimalnimi spremembami zagotovljenega postopka in programske opreme.

Dodatek sloja šifriranja javnega ključa zagotavlja varen in učinkovit način distribucije glavnih ključev. To je prednost v konfiguraciji, kjer en digitalni distribucijski center služi velikemu številu uporabnikov, ki so med seboj precej oddaljeni.

5. Izmenjava ključev po Diffie-Hellmanovi shemi.

Prvi objavljen algoritem javnega ključa se je pojavil v delu Diffieja in Hellmana, v katerem je bil definiran sam koncept kriptografije z javnim ključem. Običajno ta algoritem se imenuje izmenjava ključev Diffie-Hellman. Ta tehnologija izmenjave ključev je implementirana v številne komercialne izdelke .

Namen sheme– zagotoviti varen način za dva uporabnika, da drug drugemu sporočita ključ, tako da ga lahko uporabita za šifriranje naslednjih sporočil.

Kriptografska moč Diffie-Hellmanovega algoritma temelji na težavah pri izračunavanju diskretnih logaritmov . Formalno lahko diskretni logaritem definiramo na naslednji način. Najprej se določi antiderivacijski koren praštevila str– število a, katerega potence generirajo vsa cela števila od 1 do str-1. To pomeni, da če je a primitivni koren praštevila p , nato vse številke

a mod p, a 2 mod p,…, a p-1 mod p

mora biti različno in predstavljati vsa cela števila od 1 do str -1 v neki permutaciji.

Izmenjava ključev Diffie-Hellman je prikazana na sliki. V tej shemi sta dve odprti števili: praštevilo q in celo število a, ki je primitivni koren q . Recimo, da nameravata uporabnika A in B izmenjati ključa.

Uporabnik A izbere naključno celo število X A< q in izračuna Y A =a XA mod q . Podobno uporabnik B neodvisno izbere naključno celo število X B< q и вычисляет Y B = a XB mod q . Vsaka stranka hrani vrednost X v tajnosti in ustvarja vrednost Y prosto na drugo stran. Uporabnik A izračuna ključ z uporabo formule K = ( Y B ) XA mod q , uporabnik B pa po formuli K = ( Y A ) X B mod q . te dve formuli za izračun dajeta enake rezultate.

Tako sta si obe strani izmenjali tajne ključe. In ker sta bila X A in X B samo za osebno uporabo in zato zaupna, bo sovražnik moral sodelovati samo z njima q, a, X A, X B. Tako bo moral izračunati diskretni logaritem za določitev ključa. Na primer, za določitev ključa.

Nato bo lahko izračunal ključ K na enak način kot uporabnik B.

Varnost izmenjave ključev Diffie-Hellman pravzaprav temelji na dejstvu, da je potence po modulu praštevila relativno enostavno izračunati, diskretne logaritme pa je zelo težko izračunati. Za velika praštevila velja slednje za praktično nerešljiv problem.


Sovražnik ve: q, a, Y A, Y B. Če želite določiti ključ, morate izračunati diskretni logaritem.

Pri tradicionalnem šifriranju morata obe strani, vključeni v izmenjavo podatkov, prejeti isti ključ, do katerega je drugim uporabnikom onemogočen dostop. To običajno zahteva pogoste menjave ključev, da se zmanjša količina izgubljenih podatkov v primeru, da eden od ključev postane znan sovražniku.

Zato je zanesljivost katerega koli kriptografskega sistema v veliki meri odvisna od sistemi distribucije ključev, ki je sredstvo za dostavo ključev dvema stranema, ki načrtujeta izmenjavo podatkov, ne da bi drugim omogočili ogled teh ključev.

Za dve strani, A in IN, Kot je navedeno spodaj, je distribucijo ključev mogoče organizirati na različne načine:

  • 1. Ključ lahko izbere stranka A in fizično dostavi stranki IN.
  • 2. Ključ lahko izbere tretja oseba in ga fizično dostavi udeležencem A in IN.
  • 3. Če udeleženci izmenjave A in INže uporablja nek skupni ključ, lahko ena od strani posreduje novi ključ drugi strani v šifrirani obliki s starim ključem.
  • 4. Če sta obe strani A in IN imajo kriptografsko varne komunikacijske kanale s tretjo osebo C, potem lahko slednja dostavi ključ udeležencem A in IN prek teh varnih kanalov.

Možnosti 1 in 2 vključujeta prenos ključa iz roke v roko. Pri šifriranju kanala je ta zahteva morda povsem razumna, saj katera koli naprava za šifriranje kanala vključuje izmenjavo podatkov samo z ustrezno napravo na drugem koncu kanala.

Toda v primeru šifriranja od konca do konca je fizična dostava ključa praktično nesprejemljiva. V katerem koli porazdeljenem sistemu lahko vsako glavno vozlišče ali terminal komunicira s številnimi drugimi glavnimi vozlišči in terminali. Zato bo vsaka taka naprava zahtevala veliko ključev, ki jih bo treba dobavljati dinamično. Težava se izkaže za zelo težko rešljivo, še posebej v primeru velikih, globalno porazdeljenih sistemov.

Obseg problema je odvisen od števila kontaktnih parov, ki jih je treba servisirati. Če je šifriranje od konca do konca implementirano na ravni omrežja ali IP, bo potreben en ključ za vsak par glavnih vozlišč v omrežju, ki komunicira. Torej, če obstaja n vodilnih vozlišč, bo število zahtevanih ključev enako / 2. Če se šifriranje izvaja na ravni aplikacije, bo vsak par uporabnikov ali procesov, ki komunicirajo, potreboval svoj ključ. V tem primeru ima lahko omrežje na stotine vodilnih vozlišč ter na tisoče uporabnikov in procesov. Na sl. 6.2 za primer šifriranja od konca do konca prikazuje odvisnost kompleksnosti problema porazdelitve ključev od števila parov, ki sodelujejo pri izmenjavi podatkov. Na primer, v omrežju s 1000 vozlišči, kjer se šifriranje izvaja na ravni vozlišča, bi bilo verjetno treba razdeliti približno pol milijona ključev. In če takšno omrežje podpira približno 10.000 aplikacij, lahko šifriranje na ravni aplikacije zahteva razdelitev približno 50 milijonov ključev.

riž. 6.2.

Če se vrnemo k seznamu metod distribucije ključev, ugotavljamo, da je metoda 3 možna tako za šifriranje kanala kot za šifriranje od konca do konca, vendar če bo nasprotniku kdaj uspelo pridobiti dostop do enega od ključev, bo lahko pridobite vse naslednje. Poleg tega mora biti začetna distribucija potencialno milijonov ključev še dokončana.

Za šifriranje od konca do konca se pogosto uporablja shema, ki je različica metode 4. V tej shemi je nek center za distribucijo ključev odgovoren za dostavo ključev parom uporabnikov (glavna vozlišča, procesi, aplikacije). Vsak uporabnik mora prejeti svoj unikatni ključ, ki ga uporablja skupaj z distribucijo ključev za namen organizacije dostave ključev.

riž. 6.3.

Uporaba centra za distribucijo ključev vključuje organiziranje določene hierarhije ključev. V minimalni konfiguraciji taka hierarhija vključuje dve ravni (slika 6.3). Komunikacija med končnimi sistemi je šifrirana z uporabo začasnega ključa, ki se pogosto imenuje ključ seje. Običajno se ključ seje uporablja samo za določeno logično povezavo, kot je navidezno vezje, ali za prenos podatkov, po katerem se ključ ne uporablja več. Ključ seje se pridobi iz centra za distribucijo ključev z enakim načinom dostave podatkov v omrežju, ki služi za organizacijo komunikacije med končnimi uporabniki. V skladu s tem se sejni ključi prenašajo v šifrirani obliki, glavni ključ, ki je skupen centru za distribucijo ključev in danemu končnemu sistemu ali določenemu uporabniku, pa se uporablja za šifriranje.

Za vsak končni sistem ali končnega uporabnika se ustvari edinstven glavni ključ in se deli s centrom za distribucijo ključev. Seveda je treba tudi te glavne ključe nekako razdeliti. Vendar pa je ta problem veliko bolj zapleten. Kot že omenjeno, N objektov, ki komunicirajo v parih, zahteva /2 sejnih ključev. In potrebnih je samo N glavnih ključev, eden za vsak predmet. Zato se lahko glavni ključi distribuirajo na nekriptografski način, na primer s fizično dostavo prejemniku.

Distribucijo ključev lahko izvajamo na različne načine. Tipičen scenarij je prikazan na sl. 6.4. Ta scenarij predvideva, da ima vsak uporabnik enoličen glavni ključ v skupni rabi s centrom za distribucijo ključev (KDC).

Predpostavimo, da namerava uporabnik A ustvariti logično povezavo z uporabnikom B in je potreben enkratni sejni ključ za zaščito podatkov, ki naj bi bili preneseni med to povezavo.

V tem primeru ima uporabnik A skrivni ključ K a, ki ga pozna samo on in DRC, in na enak način B uporablja glavni ključ K c, skupen z DRC.

Sistem izmenjave informacij izgleda takole:

  • 1. Pobudnik A pošlje zahtevo DRC za pridobitev ključa seje za zaščito logične povezave z B. Sporočilo, poslano v tem primeru, mora vsebovati informacije, ki omogočajo enolično identifikacijo A in B, kot tudi nekaj identifikatorja N1, edinstvenega za to zahtevo, običajno imenovano priložnost (popse - določen primer, določen čas (angleško)). Takšni identifikatorji so lahko trenutni čas, kakšen števec ali naključna številka - vsaj ta identifikator mora biti edinstven za vsako zahtevo. Poleg tega mora biti nasprotniku težko uganiti ta identifikator, da bi nasprotniku preprečili ponarejanje sporočila. Zato lahko naključno število štejemo za dobro izbiro za priložnost.
  • 2. CRC odgovori na zahtevo s sporočilom, šifriranim s ključem Ka. Edini uporabnik, ki lahko prejme in prebere to sporočilo, je A, zato je A lahko prepričan, da je to sporočilo prišlo iz CRC. Sporočilo vsebuje dva elementa, namenjena A:
    • - enkratni sejni ključ Ks, ki bo uporabljen v komunikacijski seji;
    • - prvotno sporočilo zahteve, vključno s priložnostjo, tako da ima uporabnik A možnost uskladiti odgovor z ustrezno zahtevo.
  • 3. Na ta način se lahko A prepriča, da njegova prvotna zahteva ni bila spremenjena na poti do CRC, priložnost pa mu ne bo dovolila, da bi zamenjal odgovor na to zahtevo z odgovorom na katero koli od prejšnjih zahtev.

riž. 6.4.

  • 1. Poleg tega sporočilo vsebuje tudi dva elementa, namenjena IN:
    • - ključ enkratne seje K. y, ki bo uporabljen v komunikacijski seji;
    • - identifikator GO A uporabnika A (na primer njegov omrežni naslov).
  • 2. Oba elementa sta šifrirana s ključem K b(glavni ključ, ki ga skupaj uporabljata TsK in IN), in namenjeno je, da se naknadno pošljejo IN, vzpostaviti povezavo in prepoznati A.
  • 3. Stranka A shrani ključ seje za prihajajočo komunikacijsko sejo in jo posreduje stranki IN informacije, prejete od CRC in namenjene IN(in sicer informacija Ek[K L ||GO A ]). Ker so te informacije šifrirane z uporabo K b, se znajde zaščitena. Zdaj pa prejemnik IN pozna ključ seje (K s) in ve, da so prejete informacije prišle iz DRC (ker so te informacije šifrirane s ključem Kb).

Na tej točki je bil ključ seje dostavljen stranki A in stranki IN, in tako lahko začnejo varno izmenjevati podatke. Pred tem pa je priporočljivo opraviti še dve operaciji.

  • 1. Z uporabo novo prejetega sejnega ključa K za šifriranje stranka IN pošlje stranki A novo priložnost L/
  • 2. Z isto tipko K s se stran A vrne /(N2 ), kjer je / funkcija, ki izvaja neko transformacijo n2 (na primer dodajanje enega).

Ta dejanja so namenjena prepričevanju naslovnika IN je, da sporočilo, ki ga je prvotno prejel (klavzula 3), ni bilo reproducirano.

Upoštevati je treba, da se sam postopek prenosa ključa dejansko izvede v korakih 1-3, koraka 4 in 5 ter deloma korak 3 pa sta zasnovana tako, da zagotavljata funkcijo avtentikacije.

Distribucija ključev je najbolj kritičen proces pri upravljanju ključev. Zanj veljajo naslednje zahteve:

  • učinkovitost in natančnost distribucije;
  • tajnost porazdeljenih ključev. Porazdelitev ključev med uporabniki računalniškega omrežja se izvaja na dva načina:
  1. Uporaba enega ali več ključnih distribucijskih centrov;
  2. Neposredna izmenjava sejnih ključev med uporabniki omrežja.

Slabost prvega pristopa je, da center za distribucijo ključev ve, kateri ključi so komu razdeljeni, in to omogoča branje vseh sporočil, ki se prenašajo po omrežju. Morebitne zlorabe pomembno vplivajo na zaščito. Pri drugem pristopu je izziv zanesljiva avtentikacija identitete omrežnih entitet. V obeh primerih mora biti zagotovljena pristnost komunikacijske seje. To je mogoče storiti z uporabo mehanizma zahteva-odgovor ali mehanizma časovnega žiga.

Mehanizem zahteve-odgovora je naslednji. Uporabnik A v sporočilo (zahtevo), poslano uporabniku B, vključi nepredvidljiv element (na primer naključno število). Uporabnik B mora pri odgovoru izvesti neko operacijo s tem elementom (npr. dodati enega), česar pa ni mogoče storiti vnaprej, saj ni znano, katero naključno število bo prišlo v zahtevi. Po prejemu rezultata dejanj uporabnika B (odgovor) je lahko uporabnik A prepričan, da je seja pristna.

Mehanizem časovnega žiga vključuje beleženje časa za vsako sporočilo. To vsakemu omrežnemu subjektu omogoča, da ugotovi, koliko je staro dohodno sporočilo, in ga zavrne, če obstaja dvom o njegovi pristnosti. Pri uporabi časovnih žigov morate nastaviti sprejemljiv časovni interval zakasnitve. V obeh primerih se šifriranje uporablja za zaščito nadzora, da se zagotovi, da odgovora ni poslal napadalec in da časovni žig ni bil spremenjen.

Problem distribucije ključev se zmanjša na sestavo protokola za distribucijo ključev, ki zagotavlja:

  • medsebojno potrjevanje pristnosti udeležencev seje;
  • potrditev veljavnosti seje z mehanizmom za zahtevo po odgovoru ali časovnem žigu;
  • uporaba minimalnega števila sporočil pri izmenjavi ključev;
  • možnost odprave zlorab s strani distribucijskega centra ključev (do vključno opustitve).

Rešitev problema razdelitve ključev je priporočljivo zasnovati na načelu ločevanja postopka potrjevanja pristnosti partnerjev od samega postopka razdeljevanja ključev. Namen tega pristopa je ustvariti metodo, pri kateri po avtentikaciji udeleženci sami generirajo ključ seje brez sodelovanja centra za distribucijo ključev, tako da distributer ključev nima možnosti razkriti vsebine sporočil.

Distribucija ključev s sodelovanjem centra za distribucijo ključev. Pri razdeljevanju ključev med udeleženci prihajajoče izmenjave informacij mora biti zagotovljena pristnost komunikacijske seje. Za medsebojno avtentikacijo partnerjev je sprejemljiv model rokovanja. V tem primeru nihče od udeležencev med postopkom avtentikacije ne bo prejel občutljivih informacij.

Vzajemna avtentikacija zagotavlja, da se pokliče pravilna entiteta z visoko stopnjo zaupanja, da je bila povezava vzpostavljena z zahtevanim prejemnikom in da ni bilo poskusov lažnega predstavljanja. Dejanski postopek za organizacijo povezave med udeleženci v izmenjavi informacij vključuje tako fazo distribucije kot fazo potrjevanja pristnosti partnerjev.

Ko je center za distribucijo ključev (KDC) vključen v proces distribucije ključev, sodeluje z enim ali obema udeležencema seje, da razdeli tajne ali javne ključe za uporabo v naslednjih komunikacijskih sejah.

Naslednji korak, avtentikacija udeležencev, vključuje izmenjavo avtentifikacijskih sporočil, da se lahko zazna morebitna zamenjava ali ponovitev enega od prejšnjih klicev.

Protokol razdelitve ključev Protokol za vzpostavitev ključa je kriptografski protokol, v katerem postane skupna skrivnost na voljo dvema ali več strankam za kasnejšo uporabo v kriptografske namene.

Protokoli za distribucijo ključev so razdeljeni v dva razreda:

    Ključni transportni protokoli;

    Protokoli za izmenjavo ključev.

Ključni transportni protokoli(transport ključev) so protokoli za distribucijo ključev, pri katerih en udeleženec ustvari ali kako drugače pridobi skrivnost in jo varno posreduje drugim udeležencem.

Protokoli za izmenjavo ključev(key agreement, key exchange) so protokoli za distribucijo ključev, v katerih skupno skrivnost oblikujeta dva ali več udeležencev kot funkcijo informacij, ki jih je prispeval (ali je bil povezan z) vsak od njih na tak način, da (idealno) noben drug stranka lahko vnaprej določi svojo skupno skrivnost.

Obstajata dve dodatni obliki protokolov za distribucijo ključev. Protokol naj bi izvedel posodobitev ključa, če ustvari popolnoma nov ključ, ki je neodvisen od ključev, ustvarjenih v prejšnjih sejah protokola. Protokol generira izpeljane ključe (izpeljavo ključa), če je nov ključ "izpeljan" iz že obstoječih med udeleženci v kriptosistemu.

Glavne lastnosti protokolov za distribucijo ključev vključujejo lastnosti avtentikacije ključa, potrditve ključa in eksplicitne avtentikacije ključa.

(Implicitna) avtentikacija ključa(implicitna avtentikacija ključa) – lastnost, s katero en udeleženec v protokolu zagotovi, da nobena druga stranka razen posebej identificiranega drugega udeleženca v protokolu (in po možnosti zaupanja vrednega organa) ne more dostopati do skrivnih ključev, pridobljenih v protokolu. Nobenega zagotovila ni, da je drugi udeleženec dejansko dobil dostop do ključa, vendar ga ni mogel dobiti nihče drug razen njega. Implicitna avtentikacija ključa je neodvisna od dejanskega lastništva ključa druge strani in ne zahteva nobenega dejanja druge stranke.

Potrditev ključa(potrditev ključa) - lastnost, s katero je en udeleženec v protokolu prepričan, da drug udeleženec (po možnosti neidentificiran) dejansko poseduje tajne ključe, pridobljene v protokolu.

Eksplicitna avtentikacija ključa(eksplicitna avtentikacija ključa) - lastnost, ki se izvede, ko (implicitna) avtentikacija ključa in potrditev ključa potekata hkrati.

    1. Needham-Schroederjev protokol na simetričnih ključih

Ta protokol je podlaga za veliko število protokolov za distribucijo ključev, ki uporabljajo zaupanja vredna središča. Obstajata dve vrsti tega protokola:

    Needham-Schroederjev protokol na simetričnih ključih;

    Needham-Schroederjev protokol na asimetričnih ključih.

Protokol simetričnega ključa deluje na naslednji način:

Predhodna faza:

Ne glede na to, kako kompleksen in zanesljiv je sam kriptosistem, temelji na uporabi ključev. Če je postopek izmenjave ključev trivialen za zagotavljanje zaupne izmenjave informacij med dvema uporabnikoma, potem je v sistemu, kjer je število uporabnikov na desetine ali stotine, upravljanje ključev resen problem.

Ključne informacije se razumejo kot celota vseh ključev, ki so aktivni v sistemu. Če ni zagotovljeno dovolj zanesljivo upravljanje s ključnimi informacijami, potem, ko se jih polasti, napadalec pridobi neomejen dostop do vseh informacij.

Upravljanje ključev je informacijski proces, ki vključuje tri elemente:

    ustvarjanje ključev;

    kopičenje ključev;

    razdelitev ključev.

Generiranje ključev. V realnih sistemih se za generiranje naključnih ključev uporabljajo posebne metode strojne in programske opreme. Praviloma se uporabljajo senzorji naključnih števil. Vendar bi morala biti stopnja naključnosti njihovega generiranja precej visoka. Idealni generatorji so naprave, ki temeljijo na "naravnih" naključnih procesih. Na primer generiranje ključev na podlagi belega radijskega šuma. Drug naključen matematični predmet so decimalke iracionalnih števil, kot sta  ali e, ki se izračunajo s standardnimi matematičnimi metodami.

V sistemih s povprečnimi varnostnimi zahtevami so povsem sprejemljivi programski generatorji ključev, ki izračunajo naključna števila kot kompleksno funkcijo trenutnega časa in (ali) številke, ki jo vnese uporabnik.

Kopičenje ključev. Kopičenje ključev se nanaša na organizacijo njihovega shranjevanja, evidentiranja in odstranitve.

Ker je ključ najprivlačnejši predmet za napadalca, ki odpira pot do zaupnih informacij, je treba posebno pozornost nameniti kopičenju ključev.

Zasebni ključi ne smejo biti nikoli izrecno zapisani na medij, ki ga je mogoče brati ali kopirati.

V dokaj zapletenem sistemu lahko en uporabnik dela z veliko količino ključnih informacij, včasih pa je treba celo organizirati mini baze ključnih informacij. Takšne zbirke podatkov so odgovorne za sprejemanje, shranjevanje, beleženje in brisanje uporabljenih ključev.

Vsak podatek o uporabljenih ključih mora biti shranjen v šifrirani obliki. Ključi, ki šifrirajo podatke o ključu, se imenujejo glavni ključi. Zaželeno je, da vsak uporabnik zna glavne ključe na pamet in jih sploh ne shranjuje na nobenem otipljivem mediju.

Zelo pomemben pogoj za informacijsko varnost je občasno posodabljanje ključnih informacij v sistemu. V tem primeru je treba znova dodeliti tako običajne kot glavne ključe. V kritičnih sistemih je treba ključne informacije dnevno posodabljati.

Problematika ažuriranja ključnih informacij je povezana tudi s tretjim elementom upravljanja ključev – distribucijo ključev.

Distribucija ključev. Distribucija ključev je najbolj kritičen proces pri upravljanju ključev. Za to sta dve zahtevi:

    učinkovitost in natančnost distribucije;

    tajnost porazdeljenih ključev.

V zadnjem času je opazen premik v smeri uporabe kriptosistemov z javnimi ključi, pri katerih je problem distribucije ključev odpravljen. Vendar distribucija ključnih informacij v sistemu zahteva nove učinkovite rešitve.

Razdeljevanje ključev med uporabniki je izvedeno na dva različna pristopa:

1 Z ustvarjanjem enega ali več ključnih distribucijskih centrov. Slabost tega pristopa je, da distribucijski center ve, komu so dodeljeni kateri ključi, kar omogoča branje vseh sporočil, ki krožijo po sistemu. Morebitne zlorabe pomembno vplivajo na zaščito.

2 Neposredna izmenjava ključev med uporabniki sistema. Izziv je torej zanesljiva avtentikacija subjektov.

V obeh primerih mora biti zagotovljena pristnost komunikacijske seje. To je mogoče doseči na dva načina:

1 Mehanizem zahteva-odgovor, ki je naslednji. Če se želi uporabnik A prepričati, da sporočila, ki jih prejme od uporabnika B, niso lažna, v sporočilo, ki ga pošlje B-ju, vključi nepredvidljiv element (zahtevo). Ko odgovarja, mora uporabnik B izvesti neko operacijo na tem elementu (na primer dodati 1). Tega ni mogoče storiti vnaprej, saj ni znano, katera naključna številka bo prišla v zahtevo. Po prejemu odgovora z rezultati dejanj je lahko uporabnik A prepričan, da je seja pristna. Slabost te metode je možnost vzpostavljanja, čeprav zapletenih, vzorcev med zahtevo in odgovorom.

2 Mehanizem časovnega žiga. Vključuje beleženje časa za vsako sporočilo. V tem primeru lahko vsak uporabnik sistema ve, koliko "staro" je dohodno sporočilo.

V obeh primerih je treba uporabiti šifriranje, da se zagotovi, da odgovora ni poslal napadalec in da časovni žig ni bil spremenjen.

Pri uporabi časovnih žigov se pojavi vprašanje sprejemljivega časovnega intervala zakasnitve za preverjanje pristnosti seje. Navsezadnje sporočila s časovnim žigom načeloma ni mogoče poslati takoj. Poleg tega računalniških ur prejemnika in pošiljatelja ni mogoče popolnoma sinhronizirati.

Kriptosisteme z javnimi ključi je mogoče uporabiti za izmenjavo ključev z uporabo istega algoritma RSA.

Toda Diffie-Hellmanov algoritem se je izkazal za zelo učinkovitega, saj je dvema uporabnikoma omogočil, da si brez posrednikov izmenjata ključ, ki ga nato lahko uporabita za simetrično šifriranje.

Diffie-Hellmanov algoritem. Diffie in Hellman sta predlagala funkcijo diskretnega stopnjevanja za ustvarjanje kriptografskih sistemov z javnim ključem.

Nepovratnost transformacije v tem primeru je zagotovljena z dejstvom, da je zelo enostavno izračunati eksponentno funkcijo v končnem Galoisovem polju, sestavljenem iz p elementov ( str– praštevilo ali praštevilo na poljubno stopnjo). Računanje logaritmov v takih poljih je veliko bolj delovno intenzivna operacija.

Za izmenjavo informacij prvi uporabnik izbere naključno številko x 1, enako verjetna cela števila od 1 do str– 1. To številko zamolči in jo pošlje drugemu uporabniku l 1 = , kjer je α fiksni element Galoisovega polja GF(str), ki je skupaj s p vnaprej razdeljen med uporabnike.

Drugi uporabnik naredi isto, generira x 2 in računanje l 2 in ga pošlje prvemu uporabniku. Kot rezultat tega lahko oba izračunata skupni tajni ključ k 12 =
.

Da bi izračunali k 12, prvi uporabnik postavi l 2 na moč x 1 in najde ostanek pri deljenju z str. Drugi uporabnik naredi isto, le z uporabo l 1 in x 2. Tako imata oba uporabnika skupni ključ k 12, ki se lahko uporablja za šifriranje informacij z uporabo običajnih algoritmov. Za razliko od algoritma RSA ta algoritem ne omogoča šifriranja dejanskih informacij.

Ne vem x 1 in x 2, lahko napadalec poskusi izračunati k 12, vedo le prestregli l 1 in l 2. Enakovrednost tega problema s problemom izračuna diskretnega logaritma je veliko in odprto vprašanje v sistemih z javnimi ključi. Enostavne rešitve do danes ni bilo. Torej, če neposredna pretvorba 1000-bitnih praštevil zahteva 2000 operacij, bo inverzna pretvorba (izračun logaritma v Galoisovem polju) zahtevala približno 1030 operacij.

Kot lahko vidite, je kljub preprostosti Diffie-Hellmanovega algoritma njegova pomanjkljivost v primerjavi s sistemom RSA pomanjkanje zajamčene spodnje meje za kompleksnost odkrivanja ključa.

Poleg tega, čeprav opisani algoritem zaobide problem skritega prenosa ključev, ostaja potreba po avtentikaciji. Brez dodatnih sredstev eden od uporabnikov ne more biti prepričan, da je zamenjal ključe s točno tistim uporabnikom, ki ga potrebuje.