Diffie-Hellman

systemet er basert på ideen om at to samtalepartnere i fellesskap kan generere en felles nøkkel uten en inntrenger, som lytter til kommunikasjonen, å kunne få det.

To offentlige numre er valgt for dette, og hver samtalepartner, et hemmelig nummer. Ved hjelp av en matematisk formel, som inkluderer eksponering, gjør hver samtalepartner en rekke operasjoner med de to offentlige tallene og deres hemmelige nummer. Deretter utveksler samtalerne resultatene offentlig. I teorien er reversering av denne funksjonen like vanskelig som å beregne en diskret logaritme (en sekstillion ganger dyrere enn eksponeringen som brukes til å transformere tallene). Det er derfor det sies at dette nummeret er resultatet av å bruke en enveisfunksjon til det hemmelige nummeret.

deretter bruker begge samtalepartnere en matematisk formel som kombinerer de to transformerte tallene med deres hemmelige nummer og til slutt kommer de to til samme resultatnummer, som vil være den delte nøkkelen.

Detaljert beskrivelserediger

Diffie-Hellman.

For To parter Alice Og Bob, som prøver å etablere en hemmelig nøkkel, Og en motstander Mallory, er grunnversjonen som følger:

  • sett en fetter p {\displaystyle p}
    p

    og en generator g ∈ Z p ∗ {\displaystyle g\in \ mathbf {Z} _ {p}^{*}}

    g \ i {\mathbf {Z}} _ {{p}}^{{*}}

    (). Disse er offentlige, ikke bare Kjent For Partiene Alice Og Bob, men også for motstanderen Mallory.

  • alice velger en ∈ Z p − 1 {\displaystyle a\i \mathbf {Z} _ {p-1}}
    til \ i {\mathbf {Z}} _ {{p-1}}

    tilfeldig beregner A = g a mod p {\displaystyle a=g^{a}\;{\bmod {\;}}p}

     A=g^{{til}}\; {\bmod \;}p

    , og sender a {\displaystyle A}

     Til

    Bob

  • Bob velger b ∈ Z p-1 {\displaystyle b \ i \ mathbf {Z} _{p-1}}
    b \ i {\mathbf {Z}} _ {{p-1}}

    tilfeldig beregner b = g b mod p {\displaystyle b=g^{b}\;{\bmod {\;}}p}

    B=g^{{b}}\;{\bmod \;}p

    , og sender b {\displaystyle B}

    B

    Alice

merk at både a og b kan beregnes med verdien k = g ⋅ b mod p {\displaystyle k=g^{a\cdot b}\;{\bmod {\;}}p}

K = g^{{a \ cdot b}}\; {\bmod\;} p

. En efecto, lo podemos demostrar usando las propiedades del grupo Z p ∗ {\displaystyle \mathbf {Z} _{p}^{*}}

{\mathbf {Z}}_{{p}}^{{*}}

: Para Alice: B a mod p = ( g b mod p ) a mod p = ( ( g b mod p ) ( g b mod p ) ⋯ ( g b mod p ) ⏞ a ) mod p = g b ⋅ a mod p = g a ⋅ b mod p = K {\displaystyle B^{a}\;\;{\bmod {\;}}\;p=(g^{b}\;{\bmod {\;}}p)^{a}\;{\bmod {\;}}p=(\overbrace {(g^{b}\;{\bmod {\;}}p)(g^{b}\;{\bmod {\;}}p)\cdots (g^{b}\;{\bmod {\;}}p)} ^{a})\;{\bmod {\;}}p=g^{b\cdot a}\;{\bmod {\;}}p=g^{a\cdot b}\;{\bmod {\;}}p=K}

B^{{a}}\;\;{\bmod \;}\;p=(g^{b}\;{\bmod \;}p)^{a}\;{\bmod \;}p=(\overbrace {(g^{b}\;{\bmod \;}p)(g^{b}\;{\bmod \;}p)\cdots (g^{b}\;{\bmod \;}p)}^{a})\;{\bmod \;}p=g^{{b\cdot a}}\;{\bmod \;}p=g^{{a\cdot b}}\;{\bmod \;}p=K

Para Bob: A b mod p = ( g a mod p ) b mod p = ( ( g a mod p ) ( g a mod p ) ⋯ ( g a mod p ) ⏞ b ) mod p = g a ⋅ b mod p = K {\displaystyle A^{b}\;{\bmod {\;}}p=(g^{a}\;{\bmod {\;}}p)^{b}\;{\bmod {\;}}p=(\overbrace {(g^{a}\;{\bmod {\;}}p)(g^{a}\;{\bmod {\;}}p)\cdots (g^{a}\;{\bmod {\;}}p)} ^{b})\;{\bmod {\;}}p=g^{a\cdot b}\;{\bmod {\;}}p=K}

A^{{b}}\;{\bmod \;}p=(g^{a}\;dette er en av de Beste måtene å Gjøre det På, og du Kan Ikke Gjøre Det På En Annen Måte Enn å Gjøre Det På En Annen Måte Enn Å Gjøre Det På En Annen Måte Enn Å Gjøre Det På En Annen Måte Enn Å Gjøre Det På En Annen Måte Enn Å Gjøre Det På En Annen Måte Enn Å Gjøre Det På En Annen Måte Enn Å Gjøre Det På En Annen Måte Enn Å Gjøre Det På En Annen Måte Enn Å Gjøre Det På En Annen Måte Enn Å Gjøre Det På En Annen Måte Enn Å Gjøre Det På En Annen Måte Enn Å Gjøre Det På En Annen Måte Enn Å Gjøre Det På En Annen Måte Enn Å Gjøre Det På En Annen Måte Enn Å Gjøre Det På En Annen Måte Enn Å Gjøre Det På en Annen Måte Enn Å Gjøre Det På En Annen Måte Enn Å Gjøre Det På En Annen Måte Enn Å Gjøre Det På En Annen Måte Enn Å Gjøre Det På En Annen Måte Enn Å Gjøre Det På En Annen Måte Enn Å Gjøre Det På En Annen Måte Enn Å Gjøre Det På En Annen Måte Enn Å Gjøre Det På En Annen Måte Enn Å Gjøre Det På En Annen Måte Enn Å Gjøre Det På En Annen Måte Enn Å Gjøre Det På En Annen Måte Enn Å Gjøre Det På En Annen Måte. 9867>

siden begge parter kan beregne en k {\displaystyle k}

K

, så kan vi bruke den som en delt nøkkel.

angrepsedit

Passive angrepsedit

En Mallory-motstander, som innehar p, g, A og B, kunne beregne den delte hemmeligheten hvis Han også hadde en av de private verdiene (a eller b). Få en a eller b fra a eller b reverseringsfunksjon ( a = l o g d i s c p ⁡ (A ) {\displaystyle a=\operatorname {log\;disc} _{p} (a)}

a = \operatorname {log\;disc}_{p}(a)

og b=l o g d i s c p ⁡ ( B ) {\displaystyle b = \operatorname {log\;disc} _{p}(b)}

 b=\operatorname {log\;disc}_{p} (B)

) er problemet Med den diskrete logaritmen I Z p ∗ {\displaystyle \ mathbf {Z} _{p}^{*}}

{\mathbf {Z}} _ {{p}}^{{*}}

, et problem som antas ugjennomtrengelig beregningsmessig når p er et primtall større enn 200 eller flere sifre, og som ikke oppfyller visse egenskaper svekkende.

Aktive angrepsedit

protokollen er følsom for aktive Man-in-the-middle-angrep. Hvis kommunikasjonen fanges opp av en tredjepart, kan dette sendes ut som avsender mot mottaker og omvendt, siden ingen mekanisme er tilgjengelig for å validere identiteten til deltakerne i kommunikasjonen. Dermed kan “mannen i midten” bli enige om en nøkkel med hver deltaker og videresende dataene mellom dem, lytte til samtalen i begge retninger. Når den symmetriske kommunikasjonen er etablert, må angriperen fortsette å fange opp og endre trafikken i midten slik at de ikke legger merke til. Merk at for at angrepet skal være operativt, må angriperen kjenne den symmetriske krypteringsmetoden som skal brukes. Stole på fortielse av symmetrisk krypteringsalgoritme ikke er i samsvar med prinsippene I Kerckhoffs (effektiviteten av systemet bør ikke avhenge av dens design gjenværende hemmelig).

Man-in-the-middle angrep På Diffie-Hellman.

for å unngå denne typen angrep, brukes en eller flere av følgende teknikker vanligvis:

  • Tidskontroll.
  • forhåndsgodkjenning av partene. Bruk for eksempel i underliggende lagprotokollautentisering. Vi kunne først etablere EN tls-tilkobling og bruke Diffie-Hellman-algoritmen på det laget.
  • Godkjenning av innholdet. FOR EKSEMPEL kan VI bruke MAC over innholdet i meldinger.
  • Kryptere de offentlige nøklene med en (asymmetrisk) offentlig nøkkelalgoritme, unngå Man-in-the-middle-problemet, og i sin tur kontrollere at den offentlige nøkkelen er annen enn 0 og 1.
  • Bruk av en tredjepart (Carol) Som Enten Alice eller Bob har en sikker kanal med. Denne tredjepart kan oppdage man-in-the-middle

Hvis Alice eller Bob blir lyttet til / endret, bare ved å utfordre begge til en test som innebærer i testen den offentlige nøkkelen til otro.Si Mallory fordreier Alice-Bob kommunikasjon, og Også Alice-Carol, han kan ikke fordreie Bob-Carol sikker kanal og vil bli oppdaget.Og hvis Han misrepresenterer Alice-Bob og Bob-Carol, kan han ikke misrepresentere Alice-Carol (per definisjon må det være en sikker kanal mellom to av de tre, selv om De to andre kanalene er misrepresentert Av Mallory). Dette betyr At Diffie-Hellman-metoden kan skape 100% sikre multi-node-nettverk, fra så få som to tidligere sikre noder. Denne metoden brukes også til å teste kanaler som mistenkes å være usikre.

EjemploEditar

→ {\displaystyle \ rightarrow }

\rightarrow

← {\displaystyle \ leftarrow }

\leftarrow

=

Alice
Sec Calc
p, g
og
ga mod p
((gb mod p) a mod p
Alle
Calc Sec
p, g
b
gb mod p
((ga mod p) b mod p
  1. Alice og Bob er enige om å bruke primtallet p = 23 og basen g=5.
  2. Alice velger et hemmelig nummer a = 6, sender Deretter Bob (ga mod p)
    • 56 mod 23 = 8.
  3. Bob velger et hemmelig nummer b=15, sender Deretter Alice (gb mod p)
    • 515 mod 23 = 19.
  4. Alice beregner (gb mod p) til mod p
    • 196 mod 23 = 2.
  5. Bob beregner (ga mod p) b mod p
    • 815 mod 23 = 2.

Eksempel med krypteringsimplementeringrediger

Behovet for dette eksemplet er: Bob må sende en chiffertekst Til Alice, men uten å dele krypteringsnøkkelen. Hvordan gjør han det?

  1. Alice velger et hemmelig tall a = 6, primtallet p=23 og basen g=5. Deretter sender Han Bob Alices offentlige nøkkel (ga mod p), p og g:
    • 56 mod 23 = 8.
    • 23
    • 5
  2. Bob velger et hemmelig nummer b=15, så beregner Bob den vanlige krypteringsnøkkelen (ga mod p) b mod p
    • 815 mod 23 = 2.
  3. Bob krypterer, med en symmetrisk kryptering SOM AES, ren tekst ved hjelp av den genererte krypteringsnøkkelen.
  4. Kryptert tekst = Symmetrisk Kryptering (Klartekst, 2)
  5. Bob sender Alice den krypterte teksten Og Bobs offentlige nøkkel (gb mod p)
    • 515 mod 23 = 19.
    • Kryptert tekst
  6. Alice beregner (gb mod p) til mod p
    • 196 mod 23 = 2.
  7. Alice bruker den genererte krypteringsnøkkelen til å dekryptere dataene sendt Av Bob
  8. Cleartext = Symmetrisk Dekryptering (Kryptert tekst, 2 )

Mye større verdier av a, b og p ville være nødvendig for å gjøre dette eksemplet trygt. Siden det er veldig enkelt å teste alle mulige verdier av gab mod 23 (det vil maksimalt være 22 verdier, selv om a og b er store tall).

Åpenbart Alice behov for å sende Bob den krypterte informasjonen er også dekket av gjennomføringen.

Leave a Reply