Diffie-Hellman

systemet er baseret på ideen om, at to samtalepartnere i fællesskab kan generere en delt nøgle uden en ubuden gæst, der lytter til kommunikationen, er i stand til at få den.

der vælges to offentlige numre til dette og hver samtalepartner et hemmeligt nummer. Ved hjælp af en matematisk formel, der inkluderer eksponentiering, foretager hver samtalepartner en række operationer med de to offentlige numre og deres hemmelige nummer. Derefter udveksler samtalerne resultaterne offentligt. I teorien er det lige så vanskeligt at vende denne funktion som at beregne en diskret logaritme (en sekstillion gange dyrere end eksponentieringen, der bruges til at transformere tallene). Derfor siges det, at dette nummer er resultatet af at anvende en envejsfunktion til det hemmelige nummer.

derefter bruger begge samtalepartnere separat en matematisk formel, der kombinerer de to transformerede tal med deres hemmelige nummer, og til sidst ankommer de to til det samme resultatnummer, som vil være den delte nøgle.

detaljeret beskrivelserediger

Diffie-Hellman.

for to parter Alice og Bob, der forsøger at etablere en hemmelig nøgle, og en modstander Mallory, den grundlæggende version er som følger:

  • sæt en fætter p {\displaystyle p}
    p

    og en generator g-kode p – kode {\displaystyle g \ in \ mathbf {å} _{p}^{*}}

    g \ in {\mathbf {å}}_{{p}}^{{*}}

    (). Disse er offentlige, ikke kun kendt for parterne Alice og Bob, men også for modstanderen Mallory.

  • Alice vælger en p-1 {\displaystyle a \ in \ mathbf {å} _{p-1}}
    til\in {\mathbf {å}}_{{p-1}}

    tilfældigt beregner a = g a mod p {\displaystyle A=g^{A}\; {\bmod {\;}} p}

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

    , og sender en {\displaystyle A}

     til

    Bob

  • Bob vælger B til P-1 {\displaystyle b \ in \ mathbf {å} _{p-1}}
    b \ in {\mathbf {å}}_{{p-1}}

    tilfældige beregner B = g b mod p {\displaystyle B=g^{b}\;{\bmod {\;}}p}

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

    og sender B {\displaystyle B}

    B

    Alice

bemærk , at både A og B kan beregnes ved hjælp af værdien K = G prist 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}\;{\bmod \;}p)^{b}\;{\bmod \;}p=(\overbrace {(g^{a}\;{\bmod \;}p)(g^{a}\;{\bmod \;}p)\cdots (g^{a}\;{\bmod \;}p)}^{\bmod\;} P=g^{{A \cdot b}}\; {\bmod\;} p=K

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

K

, så kan vi bruge den som en delt nøgle.

angrebrediger

Passive angrebrediger

en Mallory-modstander, der besidder p, g, A og B, kunne beregne den delte hemmelighed, hvis han også havde en af de private værdier (a eller b). Få en A eller b fra A eller B reverseringsfunktion ( a = l o G D i S c p lost (a ) {\displaystyle a=\operatorname {log\;disc} _{p} (A)}

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

og b = L O G D I S c p Lost ( B ) {\displaystyle b=\operatorname {log\;disc} _{p}(B)}

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

) er problemet med den diskrete logaritme I P L {\displaystyle \ mathbf {å} _{p}^{*}}

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

, et problem, der menes ufravigelig beregningsmæssigt når p er et primtal større end 200 eller flere cifre, og som ikke opfylder visse karakteristika invaliderende.

aktive angrebredit

protokollen er følsom over for aktive man-in-the-middle-angreb. Hvis kommunikationen opfanges af en tredjepart, kan denne videregives som afsenderen overfor modtageren og omvendt, da der ikke er nogen mekanisme til rådighed til at validere identiteten af deltagerne i kommunikationen. Således kunne “manden i midten” blive enige om en nøgle med hver deltager og videresende dataene mellem dem og lytte til samtalen i begge retninger. Når den symmetriske kommunikation er etableret, skal angriberen fortsætte med at opfange og ændre trafikken i midten, så de ikke bemærker det. Bemærk, at for at angrebet skal være operationelt, skal angriberen kende den symmetriske krypteringsmetode, der vil blive brugt. At stole på skjulingen af symmetrisk krypteringsalgoritme overholder ikke Kerckhoffs principper (systemets effektivitet bør ikke afhænge af dets design, der forbliver hemmeligt).

Man-in-the-middle angreb på Diffie-Hellman.

for at undgå denne type angreb anvendes normalt en eller flere af følgende teknikker:

  • tidskontrol.
  • forhåndsgodkendelse af parterne. Brug for eksempel i underliggende lagprotokolgodkendelse. Vi kunne først etablere en TLS-forbindelse og anvende Diffie-Hellman-algoritmen på det lag.
  • godkendelse af indholdet. For eksempel kunne vi bruge MAC over indholdet af meddelelser.
  • kryptering af de offentlige nøgler med en (asymmetrisk) offentlig nøglealgoritme, undgå man-in-the-middle-problemet og til gengæld kontrollere, at den offentlige nøgle er anden end 0 og 1.
  • brug af en tredjepart (Carol), som enten Alice eller Bob opretholder en sikker kanal med. Denne tredjepart kan opdage manden i midten

hvis Alice eller Bob bliver lyttet til / ændret, simpelthen ved at udfordre begge til en test, der i nævnte test indebærer den offentlige nøgle til otro.Si Mallory repræsenterer Alice-Bob-kommunikationen forkert, og også Alice-Carol, han kan ikke forkert repræsentere Bob-Carol secure channel og vil blive opdaget.Og hvis han fejlagtigt repræsenterer Alice-Bob og Bob-Carol, kan han ikke forkert repræsentere Alice-Carol (per definition skal der være en sikker kanal mellem to af de tre, selvom de to andre kanaler er forkert repræsenteret af Mallory). Dette betyder, at Diffie-Hellman-metoden kan oprette 100% sikre multi-node-netværk, startende fra så få som to tidligere sikre noder. Denne metode bruges også til at teste kanaler, der mistænkes for at være usikre.

EjemploEditar

→ {\displaystyle \ højre pil }

\højre pil

← {\displaystyle }

\venstre pil

=

Alice
sek Calc
p, g
og
ga mod p
(gb mod p) a mod p
alle
Calc sek
p, g
b
gb mod p
(ga mod p) b mod p
  1. Alice og Bob er enige om at bruge primtal p=23 og base g=5.
  2. Alice vælger et hemmeligt nummer a=6, sender derefter Bob (ga mod p)
    • 56 mod 23 = 8.
  3. Bob vælger et hemmeligt nummer b=15, sender derefter 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 krypteringsimplementeringedit

behovet for dette eksempel er: Bob skal sende en krypteringstekst til Alice, men uden at dele krypteringsnøglen. Hvordan gør han det?

  1. Alice vælger et hemmeligt nummer a=6, primtal p=23 og base g=5. Derefter sender han Bob Alice ‘ s offentlige nøgle (ga mod p), p og g:
    • 56 mod 23 = 8.
    • 23
    • 5
  2. Bob vælger et hemmeligt nummer b=15, derefter beregner Bob den fælles krypteringsnøgle (ga mod p)b mod p
    • 815 mod 23 = 2.
  3. Bob krypterer med en symmetrisk kryptering som AES, almindelig tekst ved hjælp af den genererede krypteringsnøgle.
  4. krypteret tekst = symmetrisk Cipher (klartekst, 2)
  5. Bob sender Alice den krypterede tekst og Bobs offentlige nøgle (gb mod p)
    • 515 mod 23 = 19.
    • krypteret tekst
  6. Alice beregner (gb mod p) til mod p
    • 196 mod 23 = 2.
  7. Alice bruger den genererede krypteringsnøgle til at dekryptere de data, der sendes af Bob
  8. klar tekst = symmetrisk Decryptor (krypteret tekst, 2 )

meget større værdier af a, b og p ville være nødvendige for at gøre dette eksempel sikkert. Da det er meget nemt at teste alle mulige værdier af gab mod 23 (der vil højst være 22 værdier, selvom a og b er store tal).

det er klart, at Alice ‘ s behov for at sende Bob de krypterede oplysninger også er dækket af implementeringen.

Leave a Reply