Nøkler, organisering av nøkkeloppbevaring, utdeling av nøkler. Offentlig nøkkeldistribusjon

Forelesning 6: Kryptografisk nøkkelhåndtering. Kryptografiske protokoller.

Spørsmål:

1. Kryptografiske protokoller.

2. Distribusjon av hemmelige nøkler.

3. Distribusjon av offentlige nøkler.

4. Distribuere hemmelige nøkler ved hjelp av et offentlig nøkkelsystem.

1 Kryptografiske protokoller.

Kryptografisk protokoll – et sett med formaliserte regler som beskriver rekkefølgen av handlinger utført av to eller flere parter for å løse problemet med å beskytte informasjon ved hjelp av kryptografi. Det vil si at den kryptografiske protokollen inkluderer en eller annen kryptografisk algoritme.

I hverdagen brukes uformelle protokoller nesten overalt:

· når du spiller kort;

· ved bestilling av varer på telefon.

Disse protokollene er utviklet over lang tid og fungerer ganske pålitelig.

Dataprotokoller er en helt annen sak. For å gjøre det mennesker gjør uten å tenke, trenger datamaskiner formelle protokoller.

For å gjøre det lettere å demonstrere hvordan protokollene fungerer, brukes flere deltakere:

· Alice er den første deltakeren.

· Bob er den andre deltakeren.

· Carol er deltaker i trepartsprotokoller.

· Dave er en fireveis protokoll.

· Eva er en meldingsavskjærer.

· Mallory er en aktiv innbruddstyv.

· Trant er en pålitelig mellommann.

· Walter er vaktmesteren (vokter Alice og Bob).

· Peggy er en utfordrer (prøver å bevise noe).

· Victor er en verifikator (sjekker Peggy).

Det er:

· selvstendige protokoller;

· protokoller med en mellommann;

· protokoller med voldgiftsdommeren.

I selvstendige protokoller partenes integritet er garantert av selve protokollen. Ingen tredjepart er nødvendig for å implementere protokollen. Fraværet av tvister er sikret ved utformingen av protokollen. Dette er den beste typen protokoll, men slike protokoller egner seg dessverre ikke for enhver situasjon.

Alice Bob

Protokoller med en mellommann.

Formidlerkalt uinteressert tredjepart, som betrodd fullføre utførelsen av protokollen. "Uinteresse" betyr at mellommannen er likegyldig til både resultatet av protokollen og noen av dens deltakere. Alle deltakere i protokollen oppfatter meglerens ord som sannhet, og alle hans handlinger blir anerkjent som korrekte.

I hverdagen kan en mellommann være advokat, byrå, bank osv. Med datanettverk er situasjonen mer komplisert.


Protokoller med voldgiftsdommeren.


Megler- en spesiell type mellomledd. Dette uinteressert og pålitelig Tredje side. I motsetning til en mekler er han ikke nødvendigvis involvert i gjennomføringen av hver protokoll, men kun når det oppstår uenigheter mellom partene.

Et eksempel kan være dommere.

Voldgiftsdataprotokoller er kjent. Disse protokollene er avhengige av at partene er ærlige. Men hvis noen mistenker svindel, kan en pålitelig tredjepart avsløre svindelen basert på det eksisterende datasettet. I tillegg lar en god voldgiftsprotokoll voldgiftsdommeren bestemme identiteten til angriperen. Dermed voldgiftsprotokollene ikke hindre, A oppdage svindel. I dette tilfellet fungerer uunngåelig deteksjon som et forebyggende tiltak som fraråder angriperen.

Organisering av kommunikasjon ved hjelp av symmetrisk kryptografi.

Modell av et symmetrisk kryptosystem:

1. Alice og Bob velger et kryptosystem.

2. Alice og Bob velger en nøkkel.

3. Alice krypterer klarteksten til meldingen ved hjelp av en krypteringsalgoritme og en nøkkel.

4. Alice sender chifferteksten til Bob.

5. Bob dekrypterer chifferteksten ved å bruke nøkkelen og henter klarteksten.

Eve, som er mellom Alice og Bob, kan bare overhøre overføringen på trinn 4, da må hun utsette chifferteksten for kryptoanalyse. Dette er et passivt angrep som kun bruker chiffertekst.

Eve kan overhøre trinn 1 og 2. I et godt kryptosystem er sikkerhet avhengig av å kjenne nøkkelen. Dette er grunnen til at nøkkelhåndtering er så viktig i kryptografi.

Den aktive innbruddstyven Mallory kan gå lenger. På trinn 4 kan han forstyrre kommunikasjonslinjen. Eller fange opp Alices melding og erstatte den med din egen. Bob har ingen måte å gjenkjenne at meldingen ikke ble sendt av Alice.

Alice eller Bob kan gi en kopi av nøkkelen til Eve osv.

For å oppsummere, lister vi ulemper med symmetriske kryptosystemer:

1. Nøkler er bare like verdifulle som meldingene de krypterer, så det følger nøkkelfordelingsproblem.

2. Når du mottar nøkkelen, er det mulig å lage falske meldinger.

3. Hvis hvert par nettverksbrukere bruker en egen nøkkel, det totale antallet nøkler øker raskt med antall brukere.

n brukere - n (n – 1) / 2 – nøkler,

10 brukere - 45 nøkler,

100 brukere - 4950 nøkler osv.

Organisering av kommunikasjon ved bruk av offentlig nøkkelkryptografi.

1. Alice og Bob er enige om å bruke et offentlig nøkkelkryptosystem.

2. Bob sender Alice sin offentlige nøkkel.

3. Alice krypterer meldingen sin ved å bruke Bobs offentlige nøkkel og sender den til Bob.

4. Bob dekrypterer meldingen med sin private nøkkel.

Dette eliminerer problemet med nøkkeldistribusjon, som er smertefullt for symmetriske kryptosystemer.


2. Distribusjon av hemmelige nøkler.

Med tradisjonell kryptering må begge parter motta samme nøkkel. Av sikkerhetsmessige årsaker kreves hyppige nøkkelskift.

Derfor Styrken til ethvert symmetrisk kryptosystem avhenger betydelig av typen kryptografisk system som brukes. nøkkeldistribusjonssystemer (dvs. midler for å levere nøkler til to parter).

For to parter A og B kan nøkkelfordeling organiseres på ulike måter:

1. Nøkkelen velges av part A og leveres fysisk til B.

2. Nøkkelen velges av en tredjepart og leveres fysisk til A og B.

3. En av partene overfører den nye nøkkelen i kryptert form ved bruk av den gamle nøkkelen.

4. Tredjeparten C leverer nøkkelen til A og B via sikre kommunikasjonskanaler, dvs. en bestemt brukes Nøkkeldistribusjonssenter (KDC).

Nøkkelfordelingsordningen (protokollen) kan være sentralisert og distribuert(med en mellommann og selvforsynt).

La oss vurdere punkt 4.

Bruken av DRC innebærer å organisere et hierarki av nøkler (minst to nivåer). Kommunikasjon mellom sluttbrukere er kryptert ved hjelp av en midlertidig nøkkel kalt øktnøkkel . Sesjonsnøkkelen mottas fra DRC via de samme kommunikasjonskanalene som brukes for datalevering. Sesjonsnøkler overføres i kryptert form, og de krypteres ved hjelp av Hovednøkkel , felles for DRC og denne brukeren.

Hovednøkler kreves N (etter antall brukere). De distribueres på en ikke-kryptografisk måte (ved fysisk levering til mottakeren).

Nøkkelfordelingsscenario (sentralisert ordning).

La oss anta at bruker A har til hensikt å overføre informasjon til bruker B og det kreves en engangs sesjonsnøkkel for å beskytte dataene.

I dette tilfellet har bruker A en hemmelig nøkkel K en , kjent bare for ham og TsRK, og bruker B har K b (Ka og K b – hovednøkler, K s – engangsøktnøkkel).

Informasjonsutveksling skjer som følger:

1. Bruker A sender en forespørsel til DRC om å få en sesjonsnøkkel for å beskytte kommunikasjon med B.

Forespørselen som sendes må inneholde:

- informasjon som lar en entydig bestemme A og B ( ID A, ID B);

- noen identifikator N 1 , unik for hver forespørsel og kalt mulighet. Muligheten kan være tid, en teller, et tilfeldig tall.

2. CRC svarer på forespørselen fra bruker A, kryptering av svaret med nøkkel K en(hoved A). Den eneste brukeren som vil kunne lese svaret er A (derfor er A sikker på at meldingen kom fra CRC).

Svarmeldingen inneholder følgende elementer:

· Designet for A :

S (for å koble A til B).

- Mulighetsforespørsel N 1 slik at bruker A kan matche svaret med forespørselen.

På denne måten kan A forsikre seg om at forespørselen hans ikke ble endret på vei til den sentrale kontrollkommisjonen, og muligheten tillater ham ikke å forveksle svaret på denne forespørselen med svaret på tidligere henvendelser.

· Designet for B .

Engangsøktnøkkel K s.

Bruker-ID A - ID A (for eksempel nettverksadresse A).

Begge elementene er kryptert med nøkkelen KB (hovednøkkel TsRK og B). De skal deretter sendes til B for å etablere en forbindelse og identifisere A.

E Ka [ K S ||Forespørsel|| N 1 || E Kb (K S , ID A )]

3. Bruker A lagrer øktnøkkelen sin og videresender informasjon til part B fra DRC beregnet på B.

Bruker B mottar K s og vet at informasjonen som ble mottatt kom fra TsRK (siden den er kryptert av KB, som bare B og TsRK kjenner til).

Dermed har A og B øktnøkkelen. Men før du utveksler data, er det lurt å gjøre følgende:

4. Ved å bruke den mottatte øktnøkkelen K s bruker B sender bruker A en ny mulighet N 2.

5. Bruk K s bruker A svarer med f (N 2 ). Dette er nødvendig for å overbevise B om at meldingen han opprinnelig mottok ikke ble gjengitt av en angriper.

Dette sikrer ikke bare nøkkeloverføring, men også autentisering (trinn 4 og 5).


Det er ikke nødvendig å tilordne nøkkeldistribusjonsfunksjonen til ett nøkkeldistribusjonssenter. Det er mer fordelaktig å bruke et visst hierarki i DRC. Jo oftere øktnøkler endres, jo mer pålitelige er de, men distribusjon av øktnøkler forsinker starten på en kommunikasjonsøkt og øker nettverksbelastningen.

Bruken av CRC innebærer at CRC må inspirere til tillit og være pålitelig beskyttet mot angrep. Disse kravene kan fravikes dersom du bruker en desentralisert (selvforsynt) nøkkeldistribusjonsordning.

Desentralisert nøkkelfordelingsordning.

Sesjonsnøkkelen kan bestemmes som et resultat av følgende handlingssekvens:


1) A sender en forespørsel om å motta K s + mulighet N 1.

2) B svarer ved å kryptere svaret ved å bruke hovednøkkelen E MK felles for A og B m.

3) A returnerer f (N 2 ), krypterer med K s.

3. Distribusjon av offentlige nøkler.

En av hovedapplikasjonene til krypteringsskjemaet for offentlig nøkkel er er en løsning på nøkkelfordelingsproblemet. Det er to svært forskjellige bruksområder for offentlig nøkkelkryptering i dette området:

1. distribusjon av offentlige nøkler;

2. bruke offentlig nøkkelkryptering for å distribuere hemmelige nøkler.

Det er foreslått flere metoder for distribusjon av offentlig nøkkel. Faktisk kan de grupperes i følgende generelle klasser:

1. offentlig kunngjøring;

2. offentlig tilgjengelig katalog;

4. offentlige nøkkelsertifikater.

1) Offentlig kunngjøring av offentlige nøkler (ukontrollert distribusjon) .

Enhver part som er involvert i utveksling av data kan gi sin offentlige nøkkel til enhver annen part eller overføre nøkkelen via kommunikasjon til alle i det hele tatt - en ukontrollert distribusjon av offentlige nøkler.

Denne tilnærmingen er praktisk, men har en ulempe: En slik offentlig kunngjøring kan gjøres av hvem som helst, inkludert en angriper. Dette betyr at noen vil utgi seg for å være bruker A og sende den offentlige nøkkelen til en annen bruker på nettverket eller tilby en slik offentlig nøkkel for offentlig bruk. Mens bruker A åpner forfalskningen og advarer andre brukere, forfalskeren vil kunne lese alle krypterte meldinger, ankom i løpet av denne tiden for A, og vil kunne bruke forfalskede nøkler for autentisering.

2) Offentlig tilgjengelig katalog (sentralisert ordning).

En høyere grad av sikkerhet kan oppnås ved å bruke en offentlig tilgjengelig dynamisk offentlig nøkkelkatalog. Vedlikehold og distribusjon av den offentlige katalogen må være et pålitelig senter eller organisasjons ansvar. En slik ordning bør inneholde følgende elementer:

1. Et autoritativt objekt som opprettholder en katalog med oppføringer av skjemaet (navn, offentlig nøkkel) for hver av deltakerne.

2. Hver deltaker registrerer sin egen offentlige nøkkel. Slik registrering må skje enten under deltakerens personlige oppmøte eller gjennom sikre kommunikasjonskanaler.

3. Enhver deltaker kan når som helst erstatte den eksisterende nøkkelen med en ny ved å bruke autentiseringsverktøy. (Den private nøkkelen kan ha blitt kompromittert på en eller annen måte, eller mye informasjon har allerede blitt overført med den.)

4. Hele katalogen eller oppdateringer av den publiseres med jevne mellomrom.

Denne ordningen er sikrere enn individuelle offentlige kunngjøringer, men den er også sårbar . Hvis en motstander klarer å få tak i den private nøkkelen til en enhet som er autorisert til å vedlikeholde katalogen, vil han vil kunne utstede forfalskede offentlige nøkler og derfor opptre på vegne av noen av deltakerne i kommunikasjonen og lese meldinger beregnet på enhver deltaker. Samme resultat fienden kan oppnå med endringer i oppføringer som er lagret i en katalog.

Beste beskyttelseoffentlig nøkkeldistribusjon kan oppnås gjennom strengere kontroll over distribusjonen av offentlige nøkler.

Et typisk scenario er vist nedenfor. Scenariet antar tilstedeværelsen av et bestemt digitalt distribusjonssenter som er autorisert til å opprettholde en dynamisk katalog over offentlige nøkler til alle deltakere i datautvekslingen. I tillegg kjenner hver av deltakerne pålitelig den offentlige nøkkelen til senteret, men bare senteret kjenner den tilsvarende private nøkkelen. Følgende handlinger utføres:

(1) Initiativtaker A sender en melding med et dato/tidsstempel (mulighet N 1 ) til en autoritativ kilde til offentlige nøkler med en forespørsel om den gjeldende offentlige nøkkelen til deltaker B.

(2) Myndigheten svarer med en melding som er kryptert med myndighetens private nøkkel KR auth . Initiator A kan dekryptere denne meldingen ved å bruke den offentlige nøkkelen til en autoritativ kilde. Derfor kan avsender A være trygg på at meldingen kommer fra en anerkjent kilde. Denne meldingen bør inneholde følgende:

· Deltaker Bs offentlige nøkkel KU b;

· Opprinnelig forespørsel , slik at Part A kan verifisere at forespørselen ikke har blitt endret på vei til en autoritativ kilde.


· Originalt dato/tidsstempel (mulighet nr. 1 ) slik at avsender A kan bekrefte at dette er et svar på denne forespørselen.

(3) Opphavsperson A lagrer Bs offentlige nøkkel og bruker den til å kryptere en melding sendt til mottaker B som inneholder As avsender-ID ( ID A) og mulighet N 1.

(4) (5) Responder B mottar As offentlige nøkkel fra en autoritativ kilde på nøyaktig samme måte som avsender A fikk mottaker Bs offentlige nøkkel.

På dette tidspunktet har de offentlige nøklene blitt levert til deltakerne A og B, så at nå kan A og B begynne sikker kommunikasjon. Men før det det er tilrådelig å gjøre to følgende ytterligere handlinger.

(6) Responder B sender en melding til initiator A, kryptert ved hjelp av KU A og inneholder avsenderens erklæring A ( N 1 ), samt en ny mulighet generert av deltaker B ( N 2). Tilstedeværelse nr. 1 i melding (6) overbeviser deltaker A om at avsenderen av den mottatte meldingen var B.

(7) Initiativtaker A kommer tilbake N2 kryptert med Bs offentlige nøkkel slik at han kan bekrefte at avsenderen av svaret er A.

Så, totalt syv meldinger vil være nødvendig. derimot det er sjelden nødvendig å sende de fire første meldingene, siden begge parter kan lagre hverandres offentlige nøkler for senere bruk, som vanligvis kalles caching.

4) Offentlige nøkkelsertifikater .

En alternativ tilnærming ble foreslått av Confelder. Det er basert på sertifikater.

Hvert sertifikat inneholder offentlig nøkkel og annen informasjon genereres av en autoritativ sertifikatkilde og utstedes til deltakeren.

Systemkrav :

1. Enhver deltaker må kunne lese sertifikatet for å fastslå navnet og den offentlige nøkkelen til sertifikateieren.

2. Enhver deltaker må kunne bekrefte at sertifikatet kommer fra en anerkjent sertifikatkilde og ikke er forfalsket.

4. Denninglagt til følgende krav - enhver deltaker må kunne kontrollere sertifikatets gyldighetsperiode.


Ris. Utveksling av offentlige nøkkelsertifikater.

Hver deltaker får tilgang til AIS ved å gi en offentlig nøkkel og be om et sertifikat for den via en sikker form for kommunikasjon.

AIS sender sertifikater C A og C B, som inneholder 1) sertifikatets gyldighetsperiode; 2) eier-ID; 3) offentlig nøkkel til sertifikateieren. Sertifikatene er kryptert med den private nøkkelen til en autoritativ kilde.

Eller den kan videresende sertifikatet til en hvilken som helst deltaker.

Mottakeren bruker den offentlige nøkkelen KU auth AIS for å lese sertifikatet. Dette garanterer at sertifikatet kom fra ham.

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

4. Distribusjon av hemmelige nøkler ved hjelp av et offentlig nøkkelsystem.

Noen brukere vil velge å bruke offentlig nøkkelkryptering kun i unntakstilfeller på grunn av den relativt lave dataoverføringshastigheten når kryptering brukes. Derfor må kryptering av offentlig nøkkel ses mer på som et middel til å distribuere de hemmelige nøklene som brukes til tradisjonell kryptering.

1) Merkle-ordning (selvforsynt protokoll)

Hvis initiativtaker A har til hensikt å utveksle data med bruker B, forutsettes følgende prosedyre:


1. Part A genererer et offentlig/privat nøkkelpar ( KU A, KR A ) og sender en melding til part B som inneholder KU A og avsender ID A, ID A.

2. Mottaker B genererer en hemmelig nøkkel KS og sender denne nøkkelen til initiatoren av meldingen A, kryptert ved bruk av den offentlige nøkkelen til initiatoren A.

3. Bruker A beregner D KRa [ E KUa [ K S ]] for å gjenopprette den private nøkkelen. Siden bare deltaker A kan dekryptere denne meldingen, vil bare utvekslingsdeltakerne A og B vite betydningen K S .

Nå kan begge parter A og B bruke kommunikasjon beskyttet av tradisjonell sesjonsnøkkelkryptering K S . På slutten av datautvekslingen blir både A og B kastet K S . Til tross for sin enkelhet er denne protokollen veldig attraktiv.

Verdighet: Ingen nøkler eksisterer før kommunikasjonen begynner, og ingen nøkler er igjen etter at kommunikasjonen er avsluttet. Derfor er risikoen for kompromiss minimal. Samtidig er forbindelsen beskyttet mot avlytting.

Feil: Denne protokollen er sårbar for aktive angrep. Hvis motstander E har evnen til å infiltrere kommunikasjonskanalen, kan han kompromittere kommunikasjonen uten å bli oppdaget på følgende måte.

1. Deltaker A genererer et offentlig/privat nøkkelpar ( KU A, KR A KU A og deltaker ID A, ID A.

2. Motstander E fanger opp meldingen, lager sitt eget offentlige/private nøkkelpar ( KU E, KR E ) og sender en melding til adressat B som inneholder KU E || ID A.

3. B genererer en hemmelig nøkkel K S og sender E KUe [ K S ].

4. Motstander E avskjærer denne meldingen og finner ut av det K S , beregner D KRe [ E KUe [ K S ]].

5. Motstander E sender en melding til deltaker A E KU a [K S].

Som et resultat vil begge deltakerne, A og B, vite K S , men vil ikke mistenke det K S også kjent for fienden E . Dermed, dette enkel protokollen viser seg å være nyttig bare når den eneste mulige trusselen er passiv meldingsavskjæring.

2) Distribusjon av hemmelige nøkler som sikrer konfidensialitet og autentisering.

Ordningen gir beskyttelse mot både aktive og passive former for angrep. Som et utgangspunkt, anta at A og B allerede har utvekslet offentlige nøkler ved hjelp av en av ordningene beskrevet ovenfor.


(1) Part A bruker Part Bs offentlige nøkkel for å sende Part B en kryptert melding som inneholder Part A sin ID ( ID A) og mulighet (N 1 ) brukes til å identifisere den aktuelle transaksjonen.

(2) Bruker B dekrypterer (1) ved hjelp av KR B . Bruker B sender en melding til bruker A, kryptert med KU A og inneholder muligheten mottatt fra ham ( N 1) og en ny mulighet (N 2 ). På grunn av det faktum at kun deltaker B kunne dekryptere melding (1), tilstedeværelsen N 1 i melding (2) overbeviser part A om at respondenten er part B.

( 3) Side A returnerer N 2 , krypterer meldingen med part Bs offentlige nøkkel for å sikre at dens respondent er part A.

(4) Deltaker A velger en hemmelig nøkkel K S og sender en melding til deltaker B M = E KUb [ E KRa [ K S ]]. Kryptering av denne meldingen med Bs offentlige nøkkel sikrer at bare B kan lese den, og kryptering med As private nøkkel sikrer at bare A kan sende den.

(5) Part B beregner B KU a [ E KRb [ K S ]] for å gjenopprette den private nøkkelen.

Ved utveksling av hemmelige nøkler garanterer denne ordningen både konfidensialitet og autentisering.

3) Hybridopplegg (tre-nivå).

Representerer en hybrid tilnærming brukt på stormaskiner IBM . Dette meglede opplegget innebærer deltakelse av et nøkkeldistribusjonssenter (KDC), som hver bruker deler sin egen hovedhemmelige nøkkel med, og distribusjon av hemmelige sesjonsnøkler, kryptert med hovednøkkelen. Et offentlig nøkkelkrypteringsskjema brukes til å distribuere hovednøkler. Denne tre-nivå tilnærmingen er basert på følgende logikk:

· Prosedyrehastighet .

Det er mange applikasjoner der øktnøkler må endres veldig ofte. Distribuering av øktnøkler ved bruk av et offentlig nøkkelskjema kan gjøre systemytelsen for dårlig på grunn av de relativt høye beregningskravene til kryptering og dekryptering ved bruk av et slikt opplegg. I tilfellet med et hierarki på tre nivåer, brukes offentlig nøkkelkryptering bare av og til for å endre hovednøkkelen.

· bakoverkompatibilitet .

Hybridordningen kan enkelt implementeres som en utvidelse av en eksisterende ordning som involverer bruk av DRC, med minimale endringer i den medfølgende prosedyren og programvaren.

Tillegget av et krypteringslag for offentlig nøkkel gir en sikker og effektiv måte å distribuere hovednøkler på. Dette er en fordel i en konfigurasjon hvor ett digitalt distribusjonssenter betjener et stort antall brukere som befinner seg i betydelig avstand fra hverandre.

5. Nøkkelutveksling ved hjelp av Diffie-Hellman-ordningen.

Første publiserte offentlige nøkkelalgoritme dukket opp i arbeidet til Diffie og Hellman, der selve konseptet med offentlig nøkkelkryptografi ble definert. Som oftest denne algoritmen kalles Diffie-Hellman nøkkelutveksling. Denne nøkkelutvekslingsteknologien er implementert i en rekke kommersielle produkter .

Formålet med ordningen– gi en sikker måte for to brukere å kommunisere en nøkkel til hverandre slik at de kan bruke den til å kryptere påfølgende meldinger.

Den kryptografiske styrken til Diffie-Hellman-algoritmen er avhengig av vanskeligheten med å beregne diskrete logaritmer . Formelt kan den diskrete logaritmen defineres som følger. Først bestemmes antiderivatroten til et primtall s– tallet a, hvis potenser genereres av alle heltall fra 1 til s-1. Dette betyr at hvis a er en primitiv rot av et primtall p , deretter alle tall

en mod p, en 2 mod p,..., en p-1 mod p

må være forskjellige og representere alle heltall fra 1 til s -1 i en eller annen permutasjon.

Diffie-Hellman nøkkelutveksling er illustrert i figuren. I denne ordningen er det to åpne tall: et primtall q og et heltall a, som er en primitiv rot q . Anta at brukerne A og B har til hensikt å bytte nøkler.

Bruker A velger et tilfeldig heltall X A< q og beregner Y A =a XA mod q . På samme måte velger bruker B uavhengig et tilfeldig heltall X B< q и вычисляет Y B = a XB mod q . Hver part holder verdien av X hemmelig og gjør verdien Y fri til den andre siden. Bruker A beregner nøkkelen ved å bruke formelen K = ( Y B ) XA mod q , og bruker B i henhold til formelen K = ( Y A ) X B mod q . Disse to beregningsformler gir samme resultater.

Så begge parter utvekslet hemmelige nøkler. Og siden X A og X B kun var til personlig bruk og derfor holdt hemmelig, vil fienden bare måtte jobbe med q, a, XA, XB. Dermed må han beregne den diskrete logaritmen for å bestemme nøkkelen. For eksempel for å definere en nøkkel.

Han vil da kunne beregne nøkkel K på samme måte som bruker B gjør.

Sikkerheten til Diffie-Hellman nøkkelutveksling hviler faktisk på det faktum at mens potenser modulo et primtall er relativt enkle å beregne, er diskrete logaritmer svært vanskelige å beregne. For store primtall anses sistnevnte som et praktisk talt uløselig problem.


Fienden vet: q, a, Y A, Y B. For å bestemme nøkkelen, må du beregne den diskrete logaritmen.

Med tradisjonell kryptering må begge parter som er involvert i datautvekslingen motta samme nøkkel, som andre brukere nektes tilgang til. Dette krever vanligvis hyppige endringer av nøkler for å redusere mengden data som går tapt i tilfelle en av nøklene blir kjent for fienden.

Derfor avhenger påliteligheten til ethvert kryptografisk system i stor grad av nøkkeldistribusjonssystemer, som er et middel for å levere nøkler til to parter som planlegger å utveksle data uten å la andre se disse nøklene.

For to sider, A og I, Som angitt nedenfor, kan nøkkeldistribusjon organiseres på forskjellige måter:

  • 1. Nøkkelen kan velges av part A og leveres fysisk til part I.
  • 2. Nøkkelen kan velges av en tredjepart og leveres fysisk til deltakere A og I.
  • 3. Hvis utvekslingsdeltakerne A og I allerede bruker en delt nøkkel, kan en av partene overføre den nye nøkkelen til den andre parten i kryptert form ved å bruke den gamle nøkkelen.
  • 4. Hvis begge sider A og I ha kryptografisk sikre kommunikasjonskanaler med en tredjepart C, så kan denne levere nøkkelen til deltakere A og I gjennom disse sikre kanalene.

Alternativ 1 og 2 innebærer å overføre nøkkelen fra hånd til hånd. Med kanalkryptering kan dette kravet være ganske rimelig, siden enhver kanalkrypteringsenhet innebærer utveksling av data kun med den tilsvarende enheten i den andre enden av kanalen.

Men når det gjelder ende-til-ende-kryptering, er fysisk levering av nøkkelen praktisk talt uakseptabel. I et hvilket som helst distribuert system kan hver masternode eller terminal delta i kommunikasjon med mange andre masternoder og terminaler. Derfor vil hver slik enhet kreve mange nøkler, som må leveres dynamisk. Problemet viser seg å være svært vanskelig å løse, spesielt når det gjelder store, globalt distribuerte systemer.

Omfanget av problemet avhenger av antall kontaktpar som må betjenes. Hvis ende-til-ende-kryptering er implementert på nettverks- eller IP-nivå, vil det kreves én nøkkel for hvert par masternoder på nettverket som kommuniserer. Derfor, hvis det er N ledende noder, vil antallet nødvendige nøkler være lik / 2. Hvis kryptering utføres på applikasjonsnivå, vil hvert par brukere eller prosesser som kommuniserer, trenge sin egen nøkkel. I dette tilfellet kan nettverket ha hundrevis av ledende noder og tusenvis av brukere og prosesser. I fig. 6.2 for ende-til-ende-kryptering viser avhengigheten av kompleksiteten til nøkkeldistribusjonsproblemet av antall par som deltar i datautvekslingen. For eksempel, på et nettverk med 1000 noder der kryptering utføres på nodenivå, vil det sannsynligvis være omtrent en halv million nøkler å distribuere. Og hvis et slikt nettverk støtter ca. 10 000 applikasjoner, kan kryptering på applikasjonsnivå kreve distribusjon av ca. 50 millioner nøkler.

Ris. 6.2.

For å gå tilbake til listen over nøkkeldistribusjonsmetoder, merker vi at metode 3 er mulig både for kanalkryptering og for ende-til-ende-kryptering, men hvis en motstander noen gang klarer å få tilgang til en av nøklene, vil han kunne få alle påfølgende. I tillegg må den første distribusjonen av potensielt millioner av nøkler fortsatt fullføres.

For ende-til-ende-kryptering er det mye brukt et opplegg som er en eller annen variant av metode 4. I dette opplegget er et nøkkeldistribusjonssenter ansvarlig for å levere nøkler til brukerpar (masternoder, prosesser, applikasjoner). Hver bruker må få sin egen unike nøkkel, som han bruker sammen med nøkkeldistribusjonssentralen for å organisere nøkkellevering.

Ris. 6.3.

Å bruke et nøkkeldistribusjonssenter innebærer å organisere et visst hierarki av nøkler. I en minimal konfigurasjon inkluderer et slikt hierarki to nivåer (fig. 6.3). Kommunikasjon mellom sluttsystemer er kryptert ved hjelp av en midlertidig nøkkel, ofte kalt en sesjonsnøkkel. Vanligvis brukes en øktnøkkel bare for en spesifikk logisk tilkobling, for eksempel en virtuell krets, eller for å transportere data, hvoretter nøkkelen ikke lenger brukes. Sesjonsnøkkelen hentes fra nøkkeldistribusjonssenteret ved å bruke de samme metodene for datalevering på nettverket som tjener til å organisere kommunikasjon mellom sluttbrukere. Følgelig blir sesjonsnøkler overført i kryptert form, og hovednøkkelen, felles for nøkkeldistribusjonssenteret og det gitte sluttsystemet eller spesifikke brukeren, brukes til kryptering.

En unik hovednøkkel opprettes for hvert sluttsystem eller sluttbruker og deles med et nøkkeldistribusjonssenter. Selvfølgelig må disse hovednøklene også distribueres på en eller annen måte. Imidlertid er dette problemet mye enklere i kompleksitet. Som nevnt krever N objekter som kommuniserer i par /2 sesjonsnøkler. Og bare N hovednøkler kreves, én for hvert objekt. Derfor kan hovednøkler distribueres på en eller annen ikke-kryptografisk måte, for eksempel ved fysisk levering til mottakeren.

Nøkkeldistribusjon kan implementeres på forskjellige måter. Et typisk scenario er vist i fig. 6.4. Dette scenariet forutsetter at hver bruker har en unik hovednøkkel som deles med et nøkkeldistribusjonssenter (KDC).

La oss anta at bruker A har til hensikt å opprette en logisk forbindelse med bruker B og det kreves en engangs sesjonsnøkkel for å beskytte dataene som skal overføres under denne forbindelsen.

I dette tilfellet har bruker A en hemmelig nøkkel Ka, kjent bare for ham og DRC, og på samme måte bruker B hovednøkkelen Kc, felles med DRC.

Informasjonsutvekslingssystemet ser slik ut:

  • 1. Initiator A sender en forespørsel til DRC om å få en sesjonsnøkkel for å beskytte den logiske forbindelsen med B. Meldingen som sendes i dette tilfellet må inneholde informasjon som gjør at man unikt kan identifisere A og B, samt noen identifikator N1, unik for denne forespørselen, vanligvis kalt mulighet (popse - gitt tilfelle, gitt tid (engelsk)). Slike identifikatorer kan være gjeldende klokkeslett, en teller eller et tilfeldig tall - i det minste må denne identifikatoren være unik for hver forespørsel. I tillegg, for å forhindre at motstanderen forfalsker meldingen, bør det være vanskelig for motstanderen å gjette denne identifikatoren. Derfor kan et tilfeldig tall betraktes som et godt valg for en mulighet.
  • 2. CRC svarer på forespørselen med en melding kryptert med Ka-nøkkelen. Den eneste brukeren som kan motta og lese denne meldingen er A, og derfor kan A være sikker på at denne meldingen kom fra CRC. Meldingen inneholder to elementer beregnet på A:
    • - engangsøktnøkkel Ks, som vil bli brukt i kommunikasjonsøkten;
    • - den opprinnelige forespørselsmeldingen, inkludert muligheten, slik at bruker A har mulighet til å matche svaret med den tilsvarende forespørselen.
  • 3. På denne måten kan A forsikre seg om at hans opprinnelige forespørsel ikke ble endret på vei til CRC, og muligheten vil ikke tillate ham å forveksle svaret på denne forespørselen med svaret på noen av de tidligere forespørslene.

Ris. 6.4.

  • 1. I tillegg inneholder meldingen også to elementer beregnet på I:
    • - engangsøktnøkkel K. y, som vil bli brukt i kommunikasjonsøkten;
    • - identifikator GO A for bruker A (for eksempel hans nettverksadresse).
  • 2. Begge elementene er kryptert med nøkkelen K b(hovednøkkelen brukt av TsK og I), og det er meningen at de senere skal sendes I, for å etablere en forbindelse og identifisere A.
  • 3. Part A lagrer sesjonsnøkkelen for den kommende kommunikasjonsøkten og videresender den til parten I informasjon mottatt fra CRC og beregnet på I(nemlig informasjon Ek[K L ||GO A ]). Siden denne informasjonen er kryptert ved hjelp av K b, hun finner seg beskyttet. Nå mottakeren I kjenner øktnøkkelen (K s) og vet at den mottatte informasjonen kom fra DRC (siden denne informasjonen er kryptert med nøkkelen Kb).

På dette tidspunktet er øktnøkkelen levert til både part A og part I, og slik at de kan begynne å utveksle data sikkert. Men før det er det tilrådelig å utføre ytterligere to operasjoner.

  • 1. Ved å bruke den nylig mottatte sesjonsnøkkelen K for kryptering, parten I sender part A en ny mulighet L/
  • 2. Ved å bruke den samme tasten K s, returnerer side A /(N2 ), hvor / er en funksjon som utfører noen transformasjon N2 (for eksempel å legge til en).

Disse handlingene er ment å overbevise adressaten I er at meldingen han opprinnelig mottok (klausul 3) ikke ble gjengitt.

Det skal bemerkes at selve nøkkeloverføringsprosessen faktisk utføres i trinn 1-3, og trinn 4 og 5, samt delvis trinn 3, er utformet for å gi en autentiseringsfunksjon.

Nøkkeldistribusjon er den mest kritiske prosessen i nøkkelhåndtering. Følgende krav gjelder for den:

  • effektivitet og nøyaktighet av distribusjon;
  • hemmelighold av distribuerte nøkler. Distribusjon av nøkler mellom brukere av et datanettverk implementeres på to måter:
  1. Bruk av ett eller flere nøkkeldistribusjonssentre;
  2. Direkte utveksling av sesjonsnøkler mellom nettverksbrukere.

Ulempen med den første tilnærmingen er at nøkkeldistribusjonssentralen vet hvilke nøkler som distribueres til hvem, og dette gjør at alle meldinger som sendes over nettverket kan leses. Mulige overgrep har en betydelig innvirkning på beskyttelsen. I den andre tilnærmingen er utfordringen å pålitelig autentisere identiteten til nettverksenheter. I begge tilfeller må autentisiteten til kommunikasjonsøkten sikres. Dette kan gjøres ved å bruke en forespørsel-svar-mekanisme eller en tidsstempelmekanisme.

Forespørsels-svar-mekanismen er som følger. Bruker A inkluderer et uforutsigbart element (for eksempel et tilfeldig tall) i meldingen (forespørselen) sendt til bruker B. Når bruker B svarer, må bruker B utføre en operasjon med dette elementet (for eksempel legge til en), noe som ikke kan gjøres på forhånd, siden det ikke er kjent hvilket tilfeldig tall som kommer i forespørselen. Etter å ha mottatt resultatet av bruker Bs handlinger (svar), kan bruker A være trygg på at økten er ekte.

Tidsstempelmekanismen innebærer å registrere tiden for hver melding. Dette lar hver nettverksenhet bestemme hvor gammel en innkommende melding er og avvise den hvis det er tvil om dens autentisitet. Når du bruker tidsstempler, må du angi et akseptabelt forsinkelsestidsintervall. I begge tilfeller brukes kryptering for å beskytte kontrollen for å sikre at svaret ikke ble sendt av en angriper og at tidsstemplet ikke er tuklet med.

Nøkkeldistribusjonsproblemet kommer ned til å konstruere en nøkkeldistribusjonsprotokoll som gir:

  • gjensidig bekreftelse av ektheten til sesjonsdeltakere;
  • bekreftelse av sesjonens gyldighet ved hjelp av en mekanisme for å be om et svar eller tidsstempel;
  • bruke et minimum antall meldinger ved utveksling av nøkler;
  • muligheten for å eliminere misbruk fra nøkkeldistribusjonssenterets side (til og med å forlate det).

Det er tilrådelig å basere løsningen på problemet med nøkkeldistribusjon på prinsippet om å skille prosedyren for å bekrefte ektheten til partnere fra prosedyren for å distribuere nøkler i seg selv. Hensikten med denne tilnærmingen er å lage en metode der deltakerne etter autentisering selv genererer en sesjonsnøkkel uten deltakelse fra et nøkkeldistribusjonssenter, slik at nøkkeldistributøren ikke har noen måte å avsløre innholdet i meldinger.

Nøkkelutdeling med deltagelse av nøkkeldistribusjonssentralen. Ved utdeling av nøkler mellom deltakere i den kommende informasjonsutvekslingen, skal autentisiteten til kommunikasjonsøkten garanteres. For gjensidig autentisering av partnere er håndtrykkmodellen akseptabel. I dette tilfellet vil ingen av deltakerne motta noen sensitiv informasjon under autentiseringsprosedyren.

Gjensidig autentisering sikrer at den riktige enheten kalles opp med en høy grad av sikkerhet for at forbindelsen er opprettet med den nødvendige mottakeren og at det ikke er gjort spoofingforsøk. Selve prosedyren for å organisere en forbindelse mellom deltakere i en informasjonsutveksling inkluderer både distribusjonsstadiet og stadiet for å bekrefte ektheten til partnere.

Når et nøkkeldistribusjonssenter (KDC) er inkludert i nøkkeldistribusjonsprosessen, samhandler det med en eller begge sesjonsdeltakerne for å distribuere hemmelige eller offentlige nøkler for bruk i påfølgende kommunikasjonsøkter.

Det neste trinnet, autentisering av deltakerne, innebærer å utveksle autentiseringsmeldinger for å kunne oppdage enhver erstatning eller avspilling av en av de tidligere samtalene.

Nøkkeldistribusjonsprotokoll En nøkkeletableringsprotokoll er en kryptografisk protokoll der en delt hemmelighet blir tilgjengelig for to eller flere parter for senere bruk for kryptografiske formål.

Nøkkeldistribusjonsprotokoller er delt inn i to klasser:

    Viktige transportprotokoller;

    Nøkkelutvekslingsprotokoller.

Viktige transportprotokoller(nøkkeltransport) er nøkkeldistribusjonsprotokoller der en deltaker oppretter eller på annen måte skaffer seg en hemmelighet og overfører den sikkert til andre deltakere.

Nøkkelutvekslingsprotokoller(nøkkelavtale, nøkkelutveksling) er nøkkeldistribusjonsprotokoller der en delt hemmelighet utarbeides av to eller flere deltakere som en funksjon av informasjonen som er bidratt med (eller knyttet til) hver av dem på en slik måte at (ideelt sett) ingen andre part kan forhåndsbestemme sin felles hemmelighet.

Det er to tilleggsformer for nøkkeldistribusjonsprotokoller. En protokoll sies å utføre en nøkkeloppdatering hvis protokollen genererer en helt ny nøkkel som er uavhengig av nøklene generert i tidligere økter av protokollen. Protokollen genererer derivatnøkler (nøkkelavledning) hvis en ny nøkkel "avledes" fra de som allerede eksisterer blant deltakere i kryptosystemet.

Hovedegenskapene til nøkkeldistribusjonsprotokoller inkluderer egenskapene til nøkkelautentisering, nøkkelbekreftelse og eksplisitt nøkkelautentisering.

(implisitt) nøkkelautentisering(implisitt nøkkelautentisering) - en egenskap der én deltaker i en protokoll sikrer at ingen annen part enn en spesifikt identifisert andre deltaker i protokollen (og muligens en tillitsautoritet) kan få tilgang til de hemmelige nøklene som er oppnådd i protokollen. Det er ingen garanti for at den andre deltakeren faktisk fikk tilgang til nøkkelen, men ingen andre enn ham kunne få den. Implisitt nøkkelautentisering er uavhengig av den andre partens faktiske eierskap av nøkkelen og krever ingen handling fra den andre parten.

Nøkkelbekreftelse(nøkkelbekreftelse) - en egenskap der en deltaker i protokollen er overbevist om at en annen deltaker (muligens uidentifisert) faktisk besitter de hemmelige nøklene som er oppnådd i protokollen.

Eksplisitt nøkkelautentisering(eksplisitt nøkkelautentisering) - en egenskap som utføres når (implisitt) nøkkelautentisering og nøkkelbekreftelse finner sted samtidig.

    1. Needham-Schroeder-protokollen på symmetriske nøkler

Denne protokollen ligger til grunn for et stort antall nøkkeldistribusjonsprotokoller som bruker klarerte sentre. Det er to typer av denne protokollen:

    Needham-Schroeder-protokoll på symmetriske nøkler;

    Needham-Schroeder-protokollen på asymmetriske nøkler.

Den symmetriske nøkkelprotokollen fungerer som følger:

Innledende fase:

Uansett hvor komplekst og pålitelig kryptosystemet i seg selv er, er det basert på bruk av nøkler. Hvis nøkkelutvekslingsprosessen er triviell for å sikre konfidensiell utveksling av informasjon mellom to brukere, så er nøkkelhåndtering et alvorlig problem i et system der antall brukere er titalls eller hundrevis.

Nøkkelinformasjon forstås som helheten av alle nøkler som er aktive i systemet. Hvis tilstrekkelig pålitelig håndtering av nøkkelinformasjon ikke er sikret, får angriperen, etter å ha tatt den i besittelse, ubegrenset tilgang til all informasjon.

Nøkkelhåndtering er en informasjonsprosess som inkluderer tre elementer:

    nøkkel generering;

    akkumulering av nøkler;

    nøkkeldistribusjon.

Nøkkelgenerering. I virkelige systemer brukes spesielle maskinvare- og programvaremetoder for å generere tilfeldige nøkler. Som regel brukes tilfeldige tallsensorer. Imidlertid bør graden av tilfeldighet for deres generasjon være ganske høy. Ideelle generatorer er enheter basert på "naturlige" tilfeldige prosesser. For eksempel generere nøkler basert på hvit radiostøy. Et annet tilfeldig matematisk objekt er desimalene til irrasjonelle tall, som  eller e, som beregnes ved hjelp av standard matematiske metoder.

I systemer med gjennomsnittlige sikkerhetskrav er programvarenøkkelgeneratorer som beregner tilfeldige tall som en kompleks funksjon av gjeldende klokkeslett og (eller) tallet angitt av brukeren ganske akseptable.

Akkumulering av nøkler. Akkumulering av nøkler refererer til organiseringen av lagring, regnskap og fjerning.

Siden nøkkelen er det mest attraktive objektet for en angriper, og åpner veien for konfidensiell informasjon, bør spesiell oppmerksomhet rettes mot akkumulering av nøkler.

Private nøkler skal aldri skrives eksplisitt på et medium som kan leses eller kopieres.

I et ganske komplekst system kan én bruker jobbe med en stor mengde nøkkelinformasjon, og noen ganger er det til og med behov for å organisere minidatabaser med nøkkelinformasjon. Slike databaser er ansvarlige for å akseptere, lagre, registrere og slette brukte nøkler.

Hver informasjon om nøklene som brukes må lagres i kryptert form. Nøkler som krypterer nøkkelinformasjon kalles hovednøkler. Det er ønskelig at hver bruker kan hovednøklene utenat og ikke lagrer dem på noen materielle medier i det hele tatt.

En svært viktig betingelse for informasjonssikkerhet er periodisk oppdatering av nøkkelinformasjon i systemet. I dette tilfellet må både vanlige nøkler og hovednøkler tildeles på nytt. I kritiske systemer skal nøkkelinformasjon oppdateres daglig.

Spørsmålet om å oppdatere nøkkelinformasjon er også relatert til det tredje elementet i nøkkelstyring – nøkkeldistribusjon.

Nøkkelfordeling. Nøkkeldistribusjon er den mest kritiske prosessen i nøkkelhåndtering. Det er to krav til det:

    effektivitet og nøyaktighet av distribusjon;

    hemmelighold av distribuerte nøkler.

Nylig har det vært et merkbart skifte mot bruk av offentlige nøkkelkryptosystemer, der problemet med nøkkeldistribusjon er eliminert. Distribusjon av nøkkelinformasjon i systemet krever imidlertid nye effektive løsninger.

Fordeling av nøkler mellom brukere er implementert i to forskjellige tilnærminger:

1 Ved å opprette ett eller flere sentrale distribusjonssentre. Ulempen med denne tilnærmingen er at distribusjonssentralen vet hvem som er tildelt hvilke nøkler, og dette gjør at alle meldinger som sirkulerer i systemet kan leses. Mulige overgrep har en betydelig innvirkning på beskyttelsen.

2 Direkte utveksling av nøkler mellom systembrukere. Utfordringen er da å pålitelig autentisere fagene.

I begge tilfeller må autentisiteten til kommunikasjonsøkten garanteres. Dette kan oppnås på to måter:

1 Forespørsel-svar-mekanismen, som er som følger. Hvis bruker A ønsker å være sikker på at meldingene han mottar fra bruker B ikke er falske, inkluderer han et uforutsigbart element (forespørsel) i meldingen han sender til B. Når du svarer, må bruker B utføre en operasjon på dette elementet (for eksempel legge til 1). Dette kan ikke gjøres på forhånd, siden det ikke er kjent hvilket tilfeldig tall som kommer i forespørselen. Etter å ha mottatt et svar med resultatene av handlingene, kan bruker A være sikker på at økten er ekte. Ulempen med denne metoden er muligheten for å etablere, om enn komplekse, mønstre mellom forespørselen og svaret.

2 tidsstempelmekanisme. Det innebærer å registrere tiden for hver melding. I dette tilfellet kan hver bruker av systemet vite hvor "gammel" den innkommende meldingen er.

I begge tilfeller bør kryptering brukes for å sikre at svaret ikke ble sendt av en angriper og at tidsstemplet ikke er endret.

Når du bruker tidsstempler, oppstår problemet med det akseptable forsinkelsesintervallet for å verifisere ektheten til en økt. Tross alt kan en melding med et tidsstempel i prinsippet ikke overføres umiddelbart. I tillegg kan datamaskinklokkene til mottakeren og avsenderen ikke synkroniseres absolutt.

Offentlige nøkkelkryptosystemer kan brukes til å utveksle nøkler ved hjelp av samme RSA-algoritme.

Men Diffie-Hellman-algoritmen viste seg å være veldig effektiv, og tillot to brukere å utveksle en nøkkel uten mellomledd, som deretter kan brukes til symmetrisk kryptering.

Diffie-Hellman algoritme. Diffie og Hellman foreslo en diskret eksponentieringsfunksjon for å lage kryptografiske systemer med offentlig nøkkel.

Irreversibiliteten til transformasjonen i dette tilfellet sikres ved at det er ganske enkelt å beregne eksponentialfunksjonen i et endelig Galois-felt som består av p elementer ( s– enten et primtall eller primtall i en hvilken som helst grad). Å beregne logaritmer i slike felt er en mye mer arbeidskrevende operasjon.

For å utveksle informasjon velger den første brukeren et tilfeldig tall x 1, like sannsynlig for heltall fra 1 til s– 1. Han holder dette nummeret hemmelig, og sender nummeret til en annen bruker y 1 = , hvor α er et fast element i Galois-feltet GF(s), som sammen med p fordeles på forhånd blant brukerne.

Den andre brukeren gjør det samme, genererer x 2 og beregner y 2, sende den til den første brukeren. Som et resultat av dette kan begge beregne den delte hemmelige nøkkelen k 12 =
.

For å beregne k 12, første bruker reiser seg y 2 til makten x 1 og finner resten når deles på s. Den andre brukeren gjør det samme, bare bruker y 1 og x 2. Dermed har begge brukerne en felles nøkkel k 12, som kan brukes til å kryptere informasjon ved bruk av konvensjonelle algoritmer. I motsetning til RSA-algoritmen, tillater ikke denne algoritmen at den faktiske informasjonen krypteres.

Vet ikke x 1 og x 2, kan en angriper prøve å beregne k 12, vet bare avlyttet y 1 og y 2. Ekvivalensen av dette problemet med problemet med å beregne en diskret logaritme er et stort og åpent spørsmål i offentlige nøkkelsystemer. En enkel løsning er ikke funnet til dags dato. Så hvis den direkte konverteringen av 1000-biters primtall krever 2000 operasjoner, vil den inverse konverteringen (beregning av logaritmen i Galois-feltet) kreve omtrent 1030 operasjoner.

Som du kan se, til tross for enkelheten til Diffie-Hellman-algoritmen, er dens ulempe sammenlignet med RSA-systemet mangelen på en garantert nedre grense for kompleksiteten til nøkkelfunn.

I tillegg, selv om den beskrevne algoritmen omgår problemet med skjult nøkkeloverføring, gjenstår behovet for autentisering. Uten ekstra midler kan ikke en av brukerne være sikker på at han byttet nøkler med akkurat den brukeren han trenger.