Ključevi, organizacija čuvanja ključeva, distribucija ključeva. Distribucija javnih ključeva

Predavanje 6: Upravljanje kriptografskim ključem. Kriptografski protokoli.

Pitanja:

1. Kriptografski protokoli.

2. Distribucija tajnih ključeva.

3. Distribucija javnih ključeva.

4. Distribucija tajnih ključeva korištenjem sustava javnih ključeva.

1 Kriptografski protokoli.

Kriptografski protokol – skup formaliziranih pravila koja opisuju slijed radnji koje provode dvije ili više strana kako bi riješile problem zaštite informacija korištenjem kriptografije. To jest, kriptografski protokol uključuje neki kriptografski algoritam.

U svakodnevnom životu, neformalni protokoli se koriste gotovo posvuda:

· pri kartanju;

· prilikom naručivanja robe putem telefona.

Ovi su protokoli razvijani tijekom dugog vremenskog razdoblja i rade prilično pouzdano.

Računalni protokoli su sasvim druga stvar. Da bi radili ono što ljudi rade bez razmišljanja, računala trebaju formalne protokole.

Kako bismo lakše demonstrirali kako protokoli funkcioniraju, koristi se nekoliko sudionika:

· Alice je prva sudionica.

· Bob je drugi sudionik.

· Carol je sudionica trostranih protokola.

· Dave je četverostruki protokol.

· Eve je presretač poruka.

· Mallory je aktivni provalnik.

· Trant je posrednik od povjerenja.

· Walter je upravitelj (čuva Alice i Boba).

· Peggy je izazivač (pokušava nešto dokazati).

· Victor je verifikator (provjerava Peggy).

Tamo su:

· samostalni protokoli;

· protokoli s posrednikom;

· protokoli s arbitrom.

U samostalnim protokolima integritet stranaka zajamčen je samim protokolom. Za implementaciju protokola nije potrebna treća strana. Odsutnost sporova osigurava se dizajnom protokola. Ovo je najbolja vrsta protokola, ali nažalost takvi protokoli nisu prikladni za svaku situaciju.

Alice Bob

Protokoli s posrednikom.

Posredniknazvao nezainteresirano treća strana, koja povjereno završiti izvršenje protokola. "Nezainteresiranost" znači da je posrednik ravnodušan i prema ishodu protokola i prema bilo kojem od njegovih sudionika. Svi sudionici protokola doživljavaju posrednikove riječi kao istinu, a sve njegove radnje prepoznaju se kao ispravne.

U svakodnevnom životu posrednik može biti odvjetnik, agencija, banka itd. S računalnim mrežama situacija je složenija.


Protokoli s arbitrom.


Arbitar- posebna vrsta posrednika. Ovaj nezainteresiran i od povjerenja Treća strana. Za razliku od medijatora, on nije nužno uključen u izvršenje svakog protokola, već samo kada se pojave nesuglasice između stranaka.

Primjer bi bili suci.

Poznati su računalni protokoli arbitraže. Ovi se protokoli oslanjaju na pretpostavku da su stranke poštene. Međutim, ako netko posumnja na prijevaru, treća strana od povjerenja može razotkriti prijevaru na temelju postojećeg skupa podataka. Osim toga, dobar arbitražni protokol omogućuje arbitru da utvrdi identitet napadača. Dakle, arbitražni protokoli nemojte spriječiti, A otkriti prijevaru. U ovom slučaju, neizbježnost otkrivanja djeluje kao preventivna mjera koja obeshrabruje napadača.

Organizacija komunikacije primjenom simetrične kriptografije.

Model simetričnog kriptosustava:

1. Alice i Bob biraju kriptosustav.

2. Alice i Bob biraju ključ.

3. Alice šifrira otvoreni tekst poruke pomoću algoritma za šifriranje i ključa.

4. Alice šalje šifrirani tekst Bobu.

5. Bob dekriptira šifrirani tekst pomoću ključa i dobiva otvoreni tekst.

Eva, koja se nalazi između Alice i Boba, može samo preslušati prijenos u fazi 4, tada će šifrirani tekst morati podvrgnuti kriptoanalizi. Ovo je pasivni napad koji koristi samo šifrirani tekst.

Eva može prečuti korake 1 i 2. U dobrom kriptosustavu, sigurnost ovisi o poznavanju ključa. Zbog toga je upravljanje ključem toliko važno u kriptografiji.

Aktivni provalnik Mallory može ići dalje. U fazi 4, on može poremetiti komunikacijsku liniju. Ili presresti Aliceinu poruku i zamijeniti je svojom. Bob nikako ne može prepoznati da poruku nije poslala Alice.

Alice ili Bob mogu dati kopiju ključa Evi itd.

Da rezimiramo, popisujemo nedostaci simetričnih kriptosustava:

1. Ključevi su vrijedni koliko i poruke koje šifriraju, pa to slijedi problem distribucije ključa.

2. Prilikom primanja ključa moguće je kreirati lažne poruke.

3. Ako svaki par mrežnih korisnika koristi zasebni ključ, ukupan broj ključeva brzo raste s brojem korisnika.

n korisnika - n (n – 1) / 2 – tipke,

10 korisnika - 45 ključeva,

100 korisnika - 4950 ključeva itd.

Organizacija komunikacije korištenjem kriptografije s javnim ključem.

1. Alice i Bob pristaju koristiti kriptosustav s javnim ključem.

2. Bob šalje Alice svoj javni ključ.

3. Alice šifrira svoju poruku koristeći Bobov javni ključ i šalje je Bobu.

4. Bob dešifrira poruku svojim privatnim ključem.

Ovo eliminira problem distribucije ključeva, koji je bolan za simetrične kriptosustave.


2. Distribucija tajnih ključeva.

Kod tradicionalne enkripcije obje strane moraju primiti isti ključ. Iz sigurnosnih razloga potrebne su česte promjene ključa.

Zato Snaga bilo kojeg simetričnog kriptografskog sustava značajno ovisi o vrsti kriptografskog sustava koji se koristi. sustavi distribucije ključeva (tj. način dostave ključeva dvjema stranama).

Za dvije strane A i B, distribucija ključeva može se organizirati na različite načine:

1. Ključ odabire stranka A i fizički ga dostavlja B.

2. Ključ odabire treća strana i fizički ga dostavlja A i B.

3. Jedna od strana prenosi novi ključ u šifriranom obliku koristeći stari ključ.

4. Treća strana C dostavlja ključ A i B putem sigurnih komunikacijskih kanala, tj. koristi se određena Centar za distribuciju ključeva (KDC).

Shema distribucije ključeva (protokol) može biti centralizirano i distribuirano(uz posrednika i samodostatno).

Razmotrimo točku 4.

Korištenje DRC-a uključuje organiziranje hijerarhije ključeva (barem dvije razine). Komunikacija između krajnjih korisnika šifrirana je pomoću privremenog ključa tzv ključ sesije . Ključ sesije prima se od DRC-a putem istih komunikacijskih kanala koji se koriste za isporuku podataka. Ključevi sesije prenose se u šifriranom obliku, a šifriraju se korištenjem glavni ključ , zajedničko za DRC i ovog korisnika.

Potrebni glavni ključevi N (po broju korisnika). Distribuiraju se na nekriptografski način (fizičkom dostavom primatelju).

Scenarij distribucije ključa (centralizirana shema).

Pretpostavimo da korisnik A namjerava prenijeti informacije korisniku B i da je za zaštitu podataka potreban jednokratni ključ sesije.

U ovom slučaju korisnik A ima tajni ključ K a , poznat samo njemu i TsRK, a korisnik B ima K b (K a i K b – glavne tipke, K s – jednokratni ključ sesije).

Razmjena informacija odvija se na sljedeći način:

1. Korisnik A šalje zahtjev DRC-u za dobivanje ključa sesije za zaštitu komunikacije s B.

Poslani zahtjev mora sadržavati:

- informacije koje omogućuju jednoznačno određivanje A i B ( ID A, ID B);

- neki identifikator N 1 , jedinstven za svaki zahtjev i poziv prilika. Prilika može biti vrijeme, brojač, nasumični broj.

2. CRC odgovara na zahtjev korisnika A, šifriranje odgovora ključem K a(glavni A). Jedini korisnik koji će moći pročitati odgovor je A (dakle, A je siguran da je poruka došla iz CRC-a).

Poruka odgovora uključuje sljedeće elemente:

· Dizajniran za A :

S (za komunikaciju između A i B).

- Zahtjev za priliku N 1 tako da korisnik A može spojiti odgovor sa zahtjevom.

Na taj način A može biti siguran da njegov zahtjev nije promijenjen na putu do Centralne kontrolne komisije, a prilika mu ne dopušta da pobrka odgovor na ovaj zahtjev s odgovorom na prethodne zahtjeve.

· Dizajniran za B .

Ključ jednokratne sesije K s.

ID korisnika A - ID A (na primjer, mrežna adresa A).

Oba elementa su šifrirana pomoću ključa KB (glavni ključ TsRK i B). Oni bi trebali biti naknadno poslani B kako bi se uspostavila veza i identificirao A.

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

3. Korisnik A sprema svoj ključ sesije i prosljeđuje strani B informacije iz DRC-a namijenjene B.

Korisnik B prima K s i zna da je primljena informacija došla od TsRK (budući da je šifrirana od strane KB, što samo B i TsRK znaju).

Dakle, A i B imaju ključ sesije, ali prije razmjene podataka, preporučljivo je učiniti sljedeće:

4. Koristeći primljeni ključ sesije K s korisnik B šalje korisniku A novu priliku N 2.

5. Korištenje K s korisnik A odgovara sa f (N 2 ). Ovo je neophodno kako bi se B uvjerio da poruku koju je izvorno primio nije reproducirao napadač.

Ovo osigurava ne samo prijenos ključa, već i autentifikaciju (koraci 4 i 5).


Nije potrebno dodijeliti funkciju distribucije ključeva jednom centru za distribuciju ključeva. Korisnije je koristiti neku hijerarhiju DRC-a. Što se češće mijenjaju ključevi sesije, to su pouzdaniji, ali distribucija ključeva sesije odgađa početak komunikacijske sesije i povećava opterećenje mreže.

Korištenje CRC-a podrazumijeva da CRC mora ulijevati povjerenje i biti pouzdano zaštićen od napada. Od ovih se zahtjeva može odustati ako koristite decentraliziranu (samodostatnu) shemu distribucije ključeva.

Decentralizirana shema distribucije ključeva.

Ključ sesije može se odrediti kao rezultat sljedećeg niza radnji:


1) A šalje zahtjev za primanje K s + prilika N 1.

2) B odgovara šifriranjem odgovora pomoću glavnog ključa E MK zajedničkog za A i B m.

3) A vraća f (N 2 ), šifriranje s K s.

3. Distribucija javnih ključeva.

Jedna od glavnih primjena sheme šifriranja s javnim ključem je je rješenje problema distribucije ključeva. U ovom području postoje dvije vrlo različite upotrebe enkripcije s javnim ključem:

1. distribucija javnih ključeva;

2. korištenje enkripcije s javnim ključem za distribuciju tajnih ključeva.

Predloženo je nekoliko metoda za distribuciju javnih ključeva. Zapravo, mogu se grupirati u sljedeće opće klase:

1. javna objava;

2. javno dostupan imenik;

4. certifikati javnih ključeva.

1) Javna objava javnih ključeva (Nekontrolirana distribucija) .

Svaka strana uključena u razmjenu podataka može dati svoj javni ključ bilo kojoj drugoj strani ili prenijeti ključ putem komunikacije svima – nekontrolirana distribucija javnih ključeva.

Ovaj pristup je prikladan, ali ima jedan nedostatak: Takvu javnu objavu može dati bilo tko, uključujući i napadača. To znači da će se netko pretvarati da je korisnik A i poslati javni ključ drugom korisniku na mreži ili ponuditi takav javni ključ za javnu upotrebu. Dok korisnik A otvara krivotvorinu i upozorava druge korisnike, krivotvoritelj će moći pročitati sve šifrirane poruke, stigao za to vrijeme za A, i moći će koristiti krivotvorene ključeve za provjeru autentičnosti.

2) Javno dostupan imenik (Centralizirana shema).

Viši stupanj sigurnosti može se postići korištenjem javno dostupnog imenika dinamičkih javnih ključeva. Održavanje i distribucija javnog kataloga mora biti odgovornost nekog centra ili organizacije od povjerenja. Takva shema treba uključivati ​​sljedeće elemente:

1. Mjerodavni objekt koji održava direktorij s unosima oblika (ime, javni ključ) za svakog od sudionika.

2. Svaki sudionik registrira vlastiti javni ključ. Takva se registracija mora dogoditi tijekom osobnog pojavljivanja sudionika ili putem sigurnih komunikacijskih kanala.

3. Svaki sudionik može zamijeniti postojeći ključ novim u bilo kojem trenutku pomoću alata za provjeru autentičnosti. (Privatni ključ je možda na neki način ugrožen ili je pomoću njega već preneseno puno informacija.)

4. Cijeli katalog ili njegova ažuriranja objavljuju se povremeno.

Ova je shema sigurnija od pojedinačnih javnih objava, ali je i ranjiva . Ako protivnik uspije doći do privatnog ključa subjekta ovlaštenog za održavanje imenika, on moći izdati krivotvorene javne ključeve te stoga djelovati u ime bilo kojeg sudionika u komunikaciji i čitati poruke namijenjene bilo kojem sudioniku. Isti rezultat neprijatelj može postići sa promjene unosa pohranjenih u imeniku.

Najbolja zaštitadistribucija javnih ključeva može se postići strožom kontrolom distribucije javnih ključeva.

Dolje je prikazan tipičan scenarij. Scenarij pretpostavlja postojanje određenog digitalnog distribucijskog centra ovlaštenog za održavanje dinamičkog imenika javnih ključeva svih sudionika u razmjeni podataka. Osim toga, svaki od sudionika pouzdano zna javni ključ centra, ali samo centar zna odgovarajući privatni ključ. Izvode se sljedeće radnje:

(1) Inicijator A šalje poruku s oznakom datuma/vremena (prilika N 1 ) mjerodavnom izvoru javnih ključeva sa zahtjevom za trenutni javni ključ sudionika B.

(2) Tijelo odgovara porukom koja je šifrirana privatnim ključem tijela KR autor . Inicijator A može dešifrirati ovu poruku korištenjem javnog ključa autoritativnog izvora. Stoga pošiljatelj A može biti siguran da poruka dolazi iz renomiranog izvora. Ova poruka treba sadržavati sljedeće:

· Javni ključ sudionika B , KU b ;

· Izvorni zahtjev , tako da strana A može provjeriti da zahtjev nije izmijenjen na putu do mjerodavnog izvora.


· Izvorni datum/vrijeme (prilika br. 1 ) tako da pošiljatelj A može potvrditi da je ovo odgovor na ovaj zahtjev.

(3) Pokretač A pohranjuje B-ov javni ključ i koristi ga za šifriranje poruke poslane primatelju B koja sadrži A-ov ID pošiljatelja ( ID A) i prilika N 1.

(4) (5) Odgovaratelj B prima A-ov javni ključ od autoritativnog izvora na točno isti način na koji je pošiljatelj A dobio javni ključ primatelja B-a.

U ovom trenutku, javni ključevi su dostavljeni sudionicima A i B, tako da da sada A i B mogu započeti sigurnu komunikaciju. Ali prije toga preporučljivo je učiniti dva sljedeće dodatne akcije.

(6) Odgovarač B šalje poruku inicijatoru A, šifriranu korištenjem KU A i sadrži izjavu pošiljatelja A ( N 1 ), kao i nova prilika koju je generirao sudionik B ( N 2). Prisutnost br. 1 u poruci (6) uvjerava sudionika A da je pošiljatelj primljene poruke B.

(7) Inicijator A se vraća N2 šifriran korištenjem B-ovog javnog ključa tako da može potvrditi da je pošiljatelj odgovora A.

Tako, bit će potrebno ukupno sedam poruka. Međutim slanje prve četiri poruke rijetko je potrebno, budući da obje strane mogu spremiti međusobne javne ključeve za kasniju upotrebu, što se obično naziva predmemoriranje.

4) Certifikati javnih ključeva .

Confelder je predložio alternativni pristup. Temelji se na certifikatima.

Svaki certifikat sadrži javni ključ i druge informacije generira autoritativni izvor certifikata i izdaje ih sudioniku.

Zahtjevi sustava :

1. Svaki sudionik mora moći pročitati certifikat kako bi odredio ime i javni ključ vlasnika certifikata.

2. Svaki sudionik mora biti u mogućnosti provjeriti da certifikat dolazi iz renomiranog izvora certifikata i da nije krivotvoren.

4. Denningdodao je sljedeći zahtjev - svaki sudionik mora moći provjeriti rok valjanosti certifikata.


Riža. Razmjena certifikata javnih ključeva.

Svaki sudionik pristupa AIS-u davanjem javnog ključa i traženjem certifikata za isti putem sigurnog oblika komunikacije.

AIS šalje certifikate C A i C B koji sadrže 1) rok valjanosti certifikata; 2) iskaznicu vlasnika; 3) javni ključ vlasnika certifikata. Certifikati su šifrirani korištenjem privatnog ključa autoritativnog izvora.

Ili može proslijediti potvrdu bilo kojem sudioniku.

Primatelj koristi javni ključ KU auth AIS za čitanje certifikata. To jamči da je potvrda došla od njega.

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

4. Distribucija tajnih ključeva korištenjem sustava javnih ključeva.

Neki će korisnici odlučiti koristiti enkripciju s javnim ključem samo u iznimnim okolnostima zbog relativno niske brzine prijenosa podataka kada se koristi enkripcija. Stoga se šifriranje javnim ključem mora više promatrati kao sredstvo distribucije tajnih ključeva koji se koriste za tradicionalno šifriranje.

1) Merkle shema (samodostatni protokol)

Ako inicijator A namjerava razmijeniti podatke s korisnikom B, pretpostavlja se sljedeći postupak:


1. Strana A generira par javni/privatni ključ ( KU A, KR A ) i šalje poruku strani B koja sadrži KU A i ID pošiljatelja A, ID A .

2. Primatelj B generira tajni ključ KS i prenosi ovaj ključ inicijatoru poruke A, kriptiran korištenjem javnog ključa inicijatora A.

3. Korisnik A izračunava D KRa [ E KUa [ K S ]] za oporavak tajnog ključa. Budući da samo sudionik A može dešifrirati ovu poruku, samo će sudionici razmjene A i B znati značenje K S .

Sada obje strane A i B mogu koristiti komunikaciju zaštićenu tradicionalnom enkripcijom ključa sesije K S . Na kraju razmjene podataka, i A i B se odbacuju K S . Unatoč svojoj jednostavnosti, ovaj protokol je vrlo atraktivan.

Dostojanstvo: Ključevi ne postoje prije nego što komunikacija započne, niti ključevi ostaju nakon završetka komunikacije. Stoga je rizik od kompromisa minimalan. Ujedno je veza zaštićena od prisluškivanja.

Mana: Ovaj protokol je ranjiv na aktivni napadi. Ako protivnik E ima mogućnost infiltracije u komunikacijski kanal, tada može kompromitirati komunikaciju bez da bude otkriven na sljedeći način.

1. Sudionik A generira par javni/privatni ključ ( KU A, KR A KU A i ID sudionika A, ID A .

2. Protivnik E presreće poruku, stvara svoj vlastiti par javni/privatni ključ ( KU E, KR E ) i šalje poruku primatelju B koja sadrži KU E || ID A .

3. B generira tajni ključ K S i prenosi E KUe [ K S ].

4. Protivnik E presreće ovu poruku i saznaje K S , izračunavanje D KRe [ E KUe [ K S ]].

5. Suparnik E šalje poruku sudioniku A E KU a [K S].

Kao rezultat toga, oba sudionika, A i B, će znati K S , ali neće sumnjati u to K S poznat i neprijatelju E . Tako, ovaj jednostavan protokol se pokaže korisnim samo kad je jedina moguća prijetnja pasivno presretanje poruka.

2) Distribucija tajnih ključeva koji osiguravaju povjerljivost i autentifikaciju.

Shema pruža zaštitu od aktivnih i pasivnih oblika napada. Kao početnu točku pretpostavimo da su A i B već razmijenili javne ključeve pomoću jedne od gore opisanih shema.


(1) Strana A koristi javni ključ strane B da pošalje strani B šifriranu poruku koja sadrži ID strane A ( ID A) i prilika (N 1 ) koristi se za identifikaciju te određene transakcije.

(2) Korisnik B dešifrira (1) pomoću KR B . Korisnik B šalje poruku korisniku A, šifriranu s KU A i sadrži priliku koju je dobio od njega ( N 1) i nova prilika (N 2 ). Zbog činjenice da je samo sudionik B mogao dešifrirati poruku (1), prisutnost N 1 u poruci (2) uvjerava stranku A da je ispitanik stranka B.

( 3) Strana A se vraća N 2 , šifrirajući poruku s javnim ključem strane B kako bi se osiguralo da je njezin ispitanik strana A.

(4) Sudionik A bira tajni ključ K S i šalje poruku sudioniku B M = E KUb [ E KRa [ K S ]]. Šifriranje ove poruke s B-ovim javnim ključem osigurava da je samo B može pročitati, a šifriranje s A-ovim privatnim ključem osigurava da je samo A može poslati.

(5) Strana B izračunava B KU a [ E KRb [ K S ]] za oporavak privatnog ključa.

Prilikom razmjene tajnih ključeva, ova shema jamči i povjerljivost i autentifikaciju.

3) Hibridna shema (trorazinska).

Predstavlja hibridni pristup primijenjen na glavnim računalima IBM . Ova posredovana shema uključuje sudjelovanje centra za distribuciju ključeva (KDC), s kojim svaki korisnik dijeli vlastiti glavni tajni ključ, i distribuciju tajnih ključeva sesije, šifriranih glavnim ključem. Za distribuciju glavnih ključeva koristi se shema šifriranja s javnim ključem. Ovaj pristup na tri razine temelji se na sljedećoj logici:

· Brzina postupka .

Postoje mnoge aplikacije u kojima se ključevi sesije moraju mijenjati vrlo često. Distribucija ključeva sesije korištenjem sheme javnih ključeva mogla bi učiniti performanse sustava preslabima zbog relativno visokih računalnih zahtjeva enkripcije i dešifriranja korištenjem takve sheme. U slučaju hijerarhije na tri razine, enkripcija s javnim ključem koristi se samo povremeno za promjenu glavnog ključa.

· kompatibilnost unatrag .

Hibridna shema može se jednostavno implementirati kao proširenje postojeće sheme koja uključuje korištenje DRC-a, uz minimalne izmjene predviđenog postupka i softvera.

Dodavanje sloja enkripcije javnog ključa osigurava siguran i učinkovit način distribucije glavnih ključeva. To je prednost u konfiguraciji u kojoj jedan digitalni distribucijski centar opslužuje veliki broj korisnika koji se nalaze na znatnoj međusobnoj udaljenosti.

5. Razmjena ključeva pomoću Diffie-Hellmanove sheme.

Prvi objavljeni algoritam javnog ključa pojavio se u radu Diffieja i Hellmana, u kojem je definiran sam koncept kriptografije s javnim ključem. Obično ovaj algoritam se zove Diffie-Hellman key exchange. Ova tehnologija razmjene ključeva implementirana je u brojne komercijalne proizvode .

Svrha sheme– osigurati siguran način za dva korisnika da međusobno komuniciraju ključ kako bi ga mogli koristiti za šifriranje sljedećih poruka.

Kriptografska snaga Diffie-Hellmanovog algoritma oslanja se na poteškoće u izračunavanju diskretnih logaritama . Formalno, diskretni logaritam se može definirati na sljedeći način. Prvo se određuje antiderivacijski korijen prostog broja str– broj a čije potencije generiraju svi cijeli brojevi od 1 do str-1. To znači da ako je a primitivni korijen prostog broja p , zatim svi brojevi

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

mora biti različit i predstavljati sve cijele brojeve od 1 do str -1 u nekoj permutaciji.

Diffie-Hellmanova razmjena ključeva ilustrirana je na slici. U ovoj shemi postoje dva otvorena broja: prosti broj q i cijeli broj a, koji je primitivni korijen q . Pretpostavimo da korisnici A i B namjeravaju razmijeniti ključeve.

Korisnik A odabire nasumični cijeli broj X A< q i izračunava Y A =a XA mod q . Slično, korisnik B samostalno bira slučajni cijeli broj X B< q и вычисляет Y B = a XB mod q . Svaka strana čuva vrijednost X u tajnosti i stvara vrijednost Y slobodno na drugu stranu. Korisnik A izračunava ključ pomoću formule K = ( Y B ) XA mod q , a korisnik B prema formuli K = ( Y A ) X B mod q . ove dvije formule za izračun daju iste rezultate.

Dakle, obje su strane razmijenile tajne ključeve. A budući da su X A i X B bili samo za osobnu upotrebu i stoga držani u tajnosti, neprijatelj će morati raditi samo s njima q, a, X A, X B. Stoga će morati izračunati diskretni logaritam kako bi odredio ključ. Na primjer, za definiranje ključa.

Tada će moći izračunati ključ K na isti način kao i korisnik B.

Sigurnost Diffie-Hellmanove razmjene ključeva zapravo počiva na činjenici da dok je potencije po modulu prostog broja relativno lako izračunati, diskretne logaritme je vrlo teško izračunati. Za velike proste brojeve, potonji se smatra praktički nerješivim problemom.


Neprijatelj zna: q, a, Y A, Y B. Da biste odredili ključ, morate izračunati diskretni logaritam.

Kod tradicionalne enkripcije, obje strane uključene u razmjenu podataka moraju dobiti isti ključ, kojem je drugim korisnicima zabranjen pristup. To obično zahtijeva česte promjene ključeva kako bi se smanjila količina izgubljenih podataka u slučaju da jedan od ključeva postane poznat neprijatelju.

Stoga pouzdanost svakog kriptografskog sustava uvelike ovisi o sustavi distribucije ključeva,što je način isporuke ključeva dvjema stranama koje planiraju razmjenjivati ​​podatke bez dopuštanja drugima da vide te ključeve.

Za dvije strane, A i U, Kao što je dolje navedeno, distribucija ključeva može se organizirati na različite načine:

  • 1. Ključ može odabrati strana A i fizički dostaviti strani U.
  • 2. Ključ može odabrati treća osoba i fizički ga dostaviti sudionicima A i U.
  • 3. Ako sudionici razmjene A i U već koristite neki zajednički ključ, jedna od strana može prenijeti novi ključ drugoj strani u šifriranom obliku pomoću starog ključa.
  • 4. Ako su obje strane A i U imaju kriptografski sigurne komunikacijske kanale s trećom stranom C, tada potonja može dostaviti ključ sudionicima A i U kroz ove sigurne kanale.

Opcija 1 i 2 uključuje prijenos ključa iz ruke u ruku. S enkripcijom kanala, ovaj zahtjev može biti sasvim razuman, budući da svaki uređaj za enkripciju kanala uključuje razmjenu podataka samo s odgovarajućim uređajem na drugom kraju kanala.

Ali u slučaju end-to-end enkripcije, fizička dostava ključa praktički je neprihvatljiva. U svakom distribuiranom sustavu, svaki glavni čvor ili terminal može sudjelovati u komunikaciji s mnogim drugim glavnim čvorovima i terminalima. Stoga će svaki takav uređaj zahtijevati mnogo ključeva, koji će se morati dinamički isporučivati. Ispostavilo se da je problem vrlo teško rješiv, posebno u slučaju velikih, globalno distribuiranih sustava.

Opseg problema ovisi o broju kontaktnih parova koje je potrebno servisirati. Ako je end-to-end enkripcija implementirana na mrežnoj ili IP razini, tada će biti potreban jedan ključ za svaki par glavnih čvorova na mreži koji komuniciraju. Stoga, ako postoji N vodećih čvorova, broj potrebnih ključeva bit će jednak / 2. Ako se šifriranje provodi na razini aplikacije, tada će svaki par korisnika ili procesa koji komuniciraju trebati vlastiti ključ. U tom slučaju mreža može imati stotine vodećih čvorova i tisuće korisnika i procesa. Na sl. 6.2 za slučaj enkripcije s kraja na kraj prikazuje ovisnost složenosti problema distribucije ključa o broju parova koji sudjeluju u razmjeni podataka. Na primjer, na mreži od 1000 čvorova gdje se enkripcija vrši na razini čvora, vjerojatno biste morali distribuirati oko pola milijuna ključeva. A ako takva mreža podržava oko 10 000 aplikacija, tada enkripcija na razini aplikacije može zahtijevati distribuciju oko 50 milijuna ključeva.

Riža. 6.2.

Vraćajući se na popis metoda distribucije ključeva, napominjemo da je metoda 3 moguća i za enkripciju kanala i za end-to-end enkripciju, ali ako protivnik ikada uspije dobiti pristup jednom od ključeva, tada će moći dobiti sve naredne. Dodatno, početna distribucija potencijalno milijuna ključeva još mora biti dovršena.

Za end-to-end enkripciju široko se koristi shema koja je neka varijacija metode 4. U ovoj shemi neki centar za distribuciju ključeva odgovoran je za isporuku ključeva parovima korisnika (glavni čvorovi, procesi, aplikacije). Svaki korisnik mora dobiti svoj jedinstveni ključ koji koristi zajedno sa centrom za distribuciju ključeva u svrhu organizacije dostave ključeva.

Riža. 6.3.

Korištenje centra za distribuciju ključeva uključuje organiziranje određene hijerarhije ključeva. U minimalnoj konfiguraciji, takva hijerarhija uključuje dvije razine (slika 6.3). Komunikacija između krajnjih sustava šifrirana je pomoću privremenog ključa, koji se često naziva ključ sesije. Obično se ključ sesije koristi samo za određenu logičku vezu, kao što je virtualni krug, ili za prijenos podataka, nakon čega se ključ više ne koristi. Ključ sesije dobiva se od centra za distribuciju ključeva istim načinom dostave podataka na mreži koji služi za organiziranje komunikacije između krajnjih korisnika. Sukladno tome, ključevi sesije prenose se u kriptiranom obliku, a za šifriranje se koristi glavni ključ, zajednički centru za distribuciju ključeva i određenom krajnjem sustavu ili određenom korisniku.

Jedinstveni glavni ključ kreira se za svaki krajnji sustav ili krajnjeg korisnika i dijeli se s centrom za distribuciju ključeva. Naravno, i ti glavni ključevi moraju se nekako distribuirati. Međutim, ovaj problem je mnogo jednostavniji u složenosti. Kao što je spomenuto, N objekata koji komuniciraju u parovima zahtijevaju /2 ključeve sesije. I potrebno je samo N glavnih ključeva, jedan za svaki objekt. Stoga se glavni ključevi mogu distribuirati na neki nekriptografski način, kao što je fizička isporuka primatelju.

Distribucija ključeva može se provesti na različite načine. Tipičan scenarij prikazan je na sl. 6.4. Ovaj scenarij pretpostavlja da svaki korisnik ima jedinstveni glavni ključ koji se dijeli s centrom za distribuciju ključeva (KDC).

Pretpostavimo da korisnik A namjerava stvoriti logičku vezu s korisnikom B i da je jednokratni ključ sesije potreban za zaštitu podataka koji bi se trebali prenijeti tijekom ove veze.

U ovom slučaju korisnik A ima tajni ključ K a, poznat samo njemu i DRC-u, a na isti način B koristi glavni ključ K c, zajednički s DRC-om.

Sustav razmjene informacija izgleda ovako:

  • 1. Inicijator A šalje zahtjev DRC-u za dobivanje ključa sesije za zaštitu logičke veze s B. Poruka poslana u ovom slučaju mora sadržavati informacije koje omogućuju jedinstvenu identifikaciju A i B, kao i neki identifikator N1, jedinstven za ovaj zahtjev, koji se obično naziva prilika (popse - dati slučaj, određeno vrijeme (engleski)). Takvi identifikatori mogu biti trenutno vrijeme, neki brojač ili nasumični broj - u najmanju ruku, ovaj identifikator mora biti jedinstven za svaki zahtjev. Osim toga, kako bi se spriječilo da protivnik krivotvori poruku, protivniku bi trebalo biti teško pogoditi ovaj identifikator. Stoga se nasumični broj može smatrati dobrim izborom za priliku.
  • 2. CRC odgovara na zahtjev porukom šifriranom pomoću Ka ključa. Jedini korisnik koji može primiti i pročitati ovu poruku je A, i stoga A može biti siguran da je ova poruka došla iz CRC-a. Poruka sadrži dva elementa namijenjena A:
    • - jednokratni ključ sesije Ks, koji će se koristiti u komunikacijskoj sesiji;
    • - izvornu poruku zahtjeva, uključujući priliku, tako da korisnik A ima priliku uskladiti odgovor s odgovarajućim zahtjevom.
  • 3. Na ovaj način A može biti siguran da njegov izvorni zahtjev nije promijenjen na putu do CRC-a, a prilika mu neće dopustiti da pobrka odgovor na ovaj zahtjev s odgovorom na bilo koji od prethodnih zahtjeva.

Riža. 6.4.

  • 1. Osim toga, poruka također uključuje dva elementa namijenjena za U:
    • - jednokratni ključ sesije K. y, koji će se koristiti u komunikacijskoj sesiji;
    • - identifikator GO A korisnika A (na primjer, njegova mrežna adresa).
  • 2. Oba su elementa šifrirana pomoću ključa K b(glavni ključ koji zajednički koriste TsK i U), a predviđeno je da se naknadno pošalju U, uspostaviti vezu i identificirati A.
  • 3. Strana A sprema ključ sesije za nadolazeću komunikacijsku sesiju i prosljeđuje je strani U informacije dobivene od CRC-a i namijenjene U(naime, informacija Ek[K L ||GO A ]). Budući da su ove informacije šifrirane korištenjem K b, ona se nađe zaštićena. Sada primatelj U zna ključ sesije (K s) i zna da je primljena informacija došla iz DRC-a (budući da je ta informacija šifrirana pomoću ključa Kb).

U ovom trenutku, ključ sesije je isporučen i strani A i strani U, i tako mogu početi sigurno razmjenjivati ​​podatke. Ali prije toga, preporučljivo je izvršiti još dvije operacije.

  • 1. Koristeći novoprimljeni sesijski ključ K za enkripciju, stranka Ušalje stranci A novu priliku L/
  • 2. Koristeći istu tipku K s, strana A se vraća /(N2 ), gdje je / funkcija koja izvodi neku transformaciju N2 (na primjer, dodavanje jednog).

Ove radnje imaju za cilj uvjeriti primatelja U je da poruka koju je izvorno primio (klauzula 3) nije reproducirana.

Treba napomenuti da se sam proces prijenosa ključa zapravo izvodi u koracima 1-3, a koraci 4 i 5, kao i djelomično korak 3, osmišljeni su za pružanje funkcije provjere autentičnosti.

Distribucija ključeva je najkritičniji proces u upravljanju ključevima. Na njega se primjenjuju sljedeći zahtjevi:

  • učinkovitost i točnost distribucije;
  • tajnost distribuiranih ključeva. Distribucija ključeva između korisnika računalne mreže provodi se na dva načina:
  1. Korištenje jednog ili više ključnih distribucijskih centara;
  2. Izravna razmjena ključeva sesije između korisnika mreže.

Nedostatak prvog pristupa je taj što centar za distribuciju ključeva zna koji se ključevi kome distribuiraju, što omogućuje čitanje svih poruka koje se prenose mrežom. Moguće zlouporabe značajno utječu na zaštitu. U drugom pristupu, izazov je pouzdano potvrditi identitet mrežnih entiteta. U oba slučaja mora se osigurati autentičnost komunikacijske sesije. To se može učiniti pomoću mehanizma zahtjev-odgovor ili mehanizma vremenske oznake.

Mehanizam zahtjev-odgovor je sljedeći. Korisnik A uključuje nepredvidivi element (na primjer, slučajni broj) u poruci (zahtjevu) poslanoj korisniku B. Kada odgovara, korisnik B mora izvršiti neku operaciju s ovim elementom (npr. dodati jedan), što se ne može učiniti unaprijed, jer se ne zna koji će slučajni broj doći u zahtjevu. Nakon primitka rezultata radnji korisnika B (odgovor), korisnik A može biti siguran da je sesija autentična.

Mehanizam vremenskog žiga uključuje bilježenje vremena za svaku poruku. To omogućuje svakom mrežnom entitetu da odredi koliko je stara dolazna poruka i da je odbije ako postoji sumnja u njezinu autentičnost. Kada koristite vremenske oznake, morate postaviti prihvatljiv vremenski interval odgode. U oba slučaja, enkripcija se koristi za zaštitu kontrole kako bi se osiguralo da odgovor nije poslao napadač i da vremenska oznaka nije neovlašteno mijenjana.

Problem distribucije ključa svodi se na konstruiranje protokola distribucije ključa koji pruža:

  • međusobno potvrđivanje autentičnosti sudionika sesije;
  • potvrda valjanosti sesije mehanizmom za traženje odgovora ili vremenske oznake;
  • korištenje minimalnog broja poruka prilikom razmjene ključeva;
  • mogućnost otklanjanja zlouporabe od strane distribucijskog centra ključeva (sve do napuštanja).

Preporučljivo je rješenje problema distribucije ključeva temeljiti na načelu odvajanja postupka potvrđivanja autentičnosti partnera od samog postupka distribucije ključeva. Cilj ovog pristupa je stvoriti metodu u kojoj nakon autentifikacije sudionici sami generiraju ključ sesije bez sudjelovanja centra za distribuciju ključeva, tako da distributer ključa nema načina otkriti sadržaj poruka.

Distribucija ključeva uz sudjelovanje centra za distribuciju ključeva. Prilikom raspodjele ključeva između sudionika u nadolazećoj razmjeni informacija, mora se jamčiti autentičnost komunikacijske sesije. Za međusobnu autentifikaciju partnera prihvatljiv je model rukovanja. U tom slučaju nitko od sudionika neće dobiti nikakve osjetljive informacije tijekom postupka autentifikacije.

Uzajamna provjera autentičnosti osigurava da se pozove ispravan entitet s visokim stupnjem povjerenja da je veza uspostavljena sa traženim primateljem i da nije bilo pokušaja prijevare. Sam postupak organiziranja veze između sudionika u razmjeni informacija uključuje i fazu distribucije i fazu potvrđivanja autentičnosti partnera.

Kada je centar za distribuciju ključeva (KDC) uključen u proces distribucije ključeva, on komunicira s jednim ili oba sudionika sesije kako bi distribuirao tajne ili javne ključeve za korištenje u sljedećim komunikacijskim sesijama.

Sljedeći korak, autentifikacija sudionika, uključuje razmjenu autentifikacijskih poruka kako bi se mogla otkriti bilo kakva zamjena ili ponavljanje jednog od prethodnih poziva.

Protokol distribucije ključeva Protokol za uspostavu ključa je kriptografski protokol u kojem zajednička tajna postaje dostupna dvjema ili više strana za kasniju upotrebu u kriptografske svrhe.

Protokoli za distribuciju ključeva podijeljeni su u dvije klase:

    Ključni transportni protokoli;

    Protokoli za razmjenu ključeva.

Ključni transportni protokoli(transport ključeva) su protokoli za distribuciju ključeva u kojima jedan sudionik stvara ili na drugi način dobiva tajnu i sigurno je prenosi drugim sudionicima.

Protokoli za razmjenu ključeva(ključni sporazum, razmjena ključeva) su protokoli za distribuciju ključeva u kojima zajedničku tajnu razrađuju dva ili više sudionika kao funkciju informacija koje je svaki od njih pridonio (ili je povezan s njima) na takav način da (idealno) nitko drugi stranka može unaprijed odrediti njihovu zajedničku tajnu.

Postoje dva dodatna oblika protokola za distribuciju ključeva. Kaže se da protokol izvodi ažuriranje ključa ako protokol generira potpuno novi ključ koji je neovisan o ključevima generiranim u prethodnim sesijama protokola. Protokol generira izvedene ključeve (derivacija ključa) ako se novi ključ “izvede” iz onih koji već postoje među sudionicima u kriptosustavu.

Glavna svojstva protokola za distribuciju ključeva uključuju svojstva provjere autentičnosti ključa, potvrde ključa i eksplicitne provjere autentičnosti ključa.

(Implicitna) provjera autentičnosti ključa(implicitna provjera autentičnosti ključa) - svojstvo kojim jedan sudionik u protokolu osigurava da nijedna druga strana osim posebno identificiranog drugog sudionika u protokolu (i moguće autoriteta povjerenja) ne može pristupiti tajnim ključevima dobivenim u protokolu. Ne postoji jamstvo da je drugi sudionik stvarno dobio pristup ključu, ali nitko drugi osim njega nije ga mogao dobiti. Implicitna provjera autentičnosti ključa neovisna je o stvarnom vlasništvu druge strane nad ključem i ne zahtijeva nikakvu radnju druge strane.

Potvrda ključa(potvrda ključa) - svojstvo kojim je jedan sudionik u protokolu uvjeren da drugi sudionik (eventualno neidentificirani) stvarno posjeduje tajne ključeve dobivene u protokolu.

Eksplicitna provjera autentičnosti ključa(eksplicitna provjera autentičnosti ključa) - svojstvo koje se izvršava kada se (implicitna) provjera autentičnosti ključa i potvrda ključa odvijaju istovremeno.

    1. Needham-Schroederov protokol na simetričnim ključevima

Ovaj protokol je temelj velikog broja protokola za distribuciju ključeva koji koriste pouzdane centre. Postoje dvije vrste ovog protokola:

    Needham-Schroederov protokol na simetričnim ključevima;

    Needham-Schroederov protokol na asimetričnim ključevima.

Protokol simetričnog ključa radi na sljedeći način:

Preliminarna faza:

Koliko god sam kriptosustav bio složen i pouzdan, on se temelji na korištenju ključeva. Ako je proces razmjene ključeva trivijalan kako bi se osigurala povjerljiva razmjena informacija između dva korisnika, onda je u sustavu gdje je broj korisnika na desetke ili stotine, upravljanje ključem ozbiljan problem.

Pod ključnim informacijama podrazumijeva se ukupnost svih ključeva aktivnih u sustavu. Ako nije osigurano dovoljno pouzdano upravljanje ključnim informacijama, tada napadač, nakon što ih preuzme, dobiva neograničen pristup svim informacijama.

Upravljanje ključevima je informacijski proces koji uključuje tri elementa:

    generiranje ključeva;

    nakupljanje ključeva;

    raspodjela ključeva.

Generiranje ključeva. U stvarnim sustavima koriste se posebne hardverske i softverske metode za generiranje slučajnih ključeva. U pravilu se koriste senzori slučajnih brojeva. Međutim, stupanj slučajnosti njihove generacije trebao bi biti prilično visok. Idealni generatori su uređaji temeljeni na "prirodnim" slučajnim procesima. Na primjer, generiranje ključeva na temelju bijelog radio šuma. Drugi slučajni matematički objekt su decimale iracionalnih brojeva, kao što su  ili e, koje se izračunavaju korištenjem standardnih matematičkih metoda.

U sustavima s prosječnim sigurnosnim zahtjevima sasvim su prihvatljivi softverski generatori ključeva koji izračunavaju slučajne brojeve kao složenu funkciju trenutnog vremena i(li) broja koji unese korisnik.

Akumulacija ključeva. Akumulacija ključeva odnosi se na organizaciju njihovog skladištenja, računovodstva i uklanjanja.

Budući da je ključ za napadača najatraktivniji objekt koji otvara put do povjerljivih informacija, posebnu pozornost treba posvetiti gomilanju ključeva.

Privatni ključevi nikada ne bi trebali biti eksplicitno zapisani na mediju koji se može čitati ili kopirati.

U prilično složenom sustavu, jedan korisnik može raditi s velikom količinom ključnih informacija, a ponekad čak postoji potreba za organiziranjem mini-baza ključnih informacija. Takve baze podataka odgovorne su za prihvaćanje, pohranu, snimanje i brisanje korištenih ključeva.

Svaka informacija o korištenim ključevima mora biti pohranjena u šifriranom obliku. Ključevi koji šifriraju informacije o ključu nazivaju se glavni ključevi. Poželjno je da svaki korisnik zna glavne ključeve napamet i da ih uopće ne pohranjuje na materijalne medije.

Vrlo važan uvjet informacijske sigurnosti je periodično ažuriranje ključnih informacija u sustavu. U tom slučaju, i obični ključevi i glavni ključevi moraju se ponovno dodijeliti. U kritičnim sustavima ključne informacije moraju se svakodnevno ažurirati.

Pitanje ažuriranja ključnih informacija također je povezano s trećim elementom upravljanja ključevima – distribucijom ključeva.

Distribucija ključeva. Distribucija ključeva je najkritičniji proces u upravljanju ključevima. Postoje dva zahtjeva za to:

    učinkovitost i točnost distribucije;

    tajnost distribuiranih ključeva.

U posljednje vrijeme primjetan je pomak prema korištenju kriptosustava s javnim ključem, u kojem je problem distribucije ključa eliminiran. No, distribucija ključnih informacija u sustavu zahtijeva nova učinkovita rješenja.

Distribucija ključeva između korisnika implementirana je na dva različita pristupa:

1 Stvaranjem jednog ili više ključnih distribucijskih centara. Nedostatak ovog pristupa je što distribucijski centar zna kome su dodijeljeni koji ključevi, a to omogućuje čitanje svih poruka koje kruže sustavom. Moguće zlouporabe značajno utječu na zaštitu.

2 Izravna razmjena ključeva između korisnika sustava. Izazov je tada pouzdano potvrditi autentičnost subjekata.

U oba slučaja mora se jamčiti autentičnost komunikacijske sesije. To se može postići na dva načina:

1 Mehanizam zahtjev-odgovor, koji je sljedeći. Ako korisnik A želi biti siguran da poruke koje prima od korisnika B nisu lažne, on uključuje nepredvidivi element (zahtjev) u poruku koju šalje korisniku B. Kada odgovara, korisnik B mora izvršiti neku operaciju na ovom elementu (na primjer, dodati 1). To se ne može učiniti unaprijed, jer se ne zna koji će slučajni broj doći u zahtjevu. Nakon što primi odgovor s rezultatima radnji, korisnik A može biti siguran da je sesija autentična. Nedostatak ove metode je mogućnost uspostavljanja, iako složenih, obrazaca između zahtjeva i odgovora.

2 Mehanizam vremenskog žiga. To uključuje bilježenje vremena za svaku poruku. U tom slučaju svaki korisnik sustava može znati koliko je "stara" dolazna poruka.

U oba slučaja treba koristiti enkripciju kako bi se osiguralo da odgovor nije poslao napadač i da vremenska oznaka nije promijenjena.

Kod korištenja vremenskih oznaka javlja se problem prihvatljivog vremenskog intervala odgode za provjeru autentičnosti sesije. Uostalom, poruka s vremenskom oznakom u načelu se ne može poslati trenutno. Osim toga, računalni satovi primatelja i pošiljatelja ne mogu se apsolutno sinkronizirati.

Kriptosustavi s javnim ključem mogu se koristiti za razmjenu ključeva koristeći isti RSA algoritam.

Ali Diffie-Hellmanov algoritam pokazao se vrlo učinkovitim, omogućujući dvama korisnicima da razmijene ključ bez posrednika, koji se potom može koristiti za simetrično šifriranje.

Diffie-Hellmanov algoritam. Diffie i Hellman predložili su diskretnu funkciju stepenovanja za stvaranje kriptografskih sustava s javnim ključem.

Nepovratnost transformacije u ovom slučaju je osigurana činjenicom da je prilično jednostavno izračunati eksponencijalnu funkciju u konačnom Galoisovom polju koje se sastoji od p elemenata ( str– ili prost broj ili prost na bilo kojem stupnju). Izračunavanje logaritama u takvim poljima mnogo je radno intenzivnija operacija.

Za razmjenu informacija prvi korisnik odabire slučajni broj x 1, jednaka vjerojatnost cijelih brojeva od 1 do str– 1. Ovaj broj drži u tajnosti, a broj šalje drugom korisniku g 1 = , gdje je α fiksni element Galoisovog polja GF(str), koji se zajedno s p unaprijed distribuira korisnicima.

Drugi korisnik radi isto, generira x 2 i izračunavanje g 2, šaljući ga prvom korisniku. Kao rezultat toga, oboje mogu izračunati zajednički tajni ključ k 12 =
.

Da bi se izračunalo k 12, prvi korisnik postavlja g 2 na potenciju x 1 i pronalazi ostatak kada se podijeli sa str. Drugi korisnik čini isto, samo koristeći g 1 i x 2. Dakle, oba korisnika imaju zajednički ključ k 12, koji se može koristiti za šifriranje informacija korištenjem konvencionalnih algoritama. Za razliku od RSA algoritma, ovaj algoritam ne dopušta šifriranje stvarnih informacija.

Ne znati x 1 i x 2, napadač može pokušati izračunati k 12, znajući samo presretnuti g 1 i g 2. Ekvivalencija ovog problema s problemom izračuna diskretnog logaritma glavno je i otvoreno pitanje u sustavima s javnim ključem. Jednostavno rješenje do danas nije pronađeno. Dakle, ako izravna konverzija 1000-bitnih prostih brojeva zahtijeva 2000 operacija, tada će inverzna konverzija (izračunavanje logaritma u Galoisovom polju) zahtijevati oko 1030 operacija.

Kao što vidite, unatoč jednostavnosti Diffie-Hellmanovog algoritma, njegov nedostatak u usporedbi sa RSA sustavom je nedostatak zajamčene donje granice za složenost otkrivanja ključa.

Osim toga, iako opisani algoritam zaobilazi problem skrivenog prijenosa ključa, potreba za autentifikacijom ostaje. Bez dodatnih sredstava, jedan od korisnika ne može biti siguran da je razmijenio ključeve upravo s onim korisnikom kojeg treba.