Diffie-Hellman
systemet bygger på tanken att två samtalare gemensamt kan generera en delad nyckel utan en inkräktare, som lyssnar på kommunikationen, kan få den.
två offentliga nummer väljs för detta och, varje samtalspartner, ett hemligt nummer. Med hjälp av en matematisk formel, som inkluderar exponentiering, gör varje samtalspartner en serie operationer med de två offentliga siffrorna och deras hemliga nummer. Sedan utbyter samtalarna resultaten offentligt. I teorin är det lika svårt att vända denna funktion som att beräkna en diskret logaritm (en sextillion gånger dyrare än exponentieringen som används för att omvandla siffrorna). Det är därför som det sägs att detta nummer är resultatet av att en envägsfunktion tillämpas på det hemliga numret.
sedan använder båda samtalarna separat en matematisk formel som kombinerar de två transformerade siffrorna med deras hemliga nummer och i slutändan kommer de två till samma resultatnummer, vilket kommer att vara den delade nyckeln.
detaljerad beskrivningredigera
för två parter Alice och Bob, som försöker etablera en hemlig nyckel, och en motståndare Mallory, är den grundläggande versionen som följer:
- Ställ in en kusin p {\displaystyle p}
och en generator g exportorienterad z p exportorienterad {\displaystyle G \ in \ mathbf {z} _{p}^{*}}
(). Dessa är offentliga, kända inte bara för festerna Alice och Bob utan också för motståndaren Mallory.
- Alice väljer en cu z p – 1 {\displaystyle a \ in \ mathbf {Z} _{p-1}}
slumpmässigt beräknar A = g a mod p {\displaystyle A=g^{a}\; {\bmod {\;}} p}
, och skickar en {\displaystyle A}
Bob
- Bob väljer B exportorienterad z p – 1 {\displaystyle b \ in \ mathbf {Z} _{p-1}}
slumpmässiga beräkningar b = g b mod p {\displaystyle B=g^{b}\;{\bmod {\;}}p}
och skickar B {\displaystyle B}
Alice
Observera att både A och B kan beräknas med värdet k = g 2BK b mod p {\displaystyle K=G^{A\cdot b}\;{\bmod {\;}}p}
. En efecto, lo podemos demostrar usando las propiedades del grupo Z p ∗ {\displaystyle \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}
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}
eftersom båda parter kan beräkna en k {\displaystyle K}
, då kan vi använda den som en delad nyckel.
attacksEdit
passiv attacksEdit
en Mallory-motståndare, som har p, g, a och B, kunde beräkna den delade hemligheten om han också hade ett av de privata värdena (a eller b). Få en a eller b från A eller B-reverseringsfunktion (a = l o g d I S c p (A) {\displaystyle a=\operatorname {log\; disc} _{p}(a)}
och b = l o g d i S c P II (b) {\displaystyle b=\operatorname {log\; disc} _{p} (B)}
) är problemet med den diskreta logaritmen i z p IC {\displaystyle \ mathbf {Z} _{p}^{*}}
, ett problem som tros svår beräkningsmässigt när p är ett primtal större än 200 eller fler siffror, och som inte uppfyller vissa egenskaper försvagande.
Active attacksEdit
protokollet är känsligt för aktiva Man-in-the-middle-attacker. Om kommunikationen avlyssnas av en tredje part kan detta överföras som avsändaren mot mottagaren och vice versa, eftersom ingen mekanism finns tillgänglig för att validera deltagarnas identitet i kommunikationen. Således kan “mannen i mitten” komma överens om en nyckel med varje deltagare och vidarebefordra data mellan dem och lyssna på konversationen i båda riktningarna. När den symmetriska kommunikationen har upprättats måste angriparen fortsätta avlyssna och modifiera trafiken i mitten så att de inte märker det. Observera att för att attacken ska fungera måste angriparen känna till den symmetriska krypteringsmetoden som kommer att användas. Förlita sig på döljande av symmetrisk krypteringsalgoritm inte överensstämmer med principerna för Kerckhoffs (effektiviteten i systemet bör inte bero på dess utformning återstående hemlighet).
för att undvika denna typ av attack används vanligtvis en eller flera av följande tekniker:
- tidskontroll.
- förhandsautentisering av parterna. Använd till exempel autentisering av underliggande lagerprotokoll. Vi kunde först upprätta en TLS-anslutning och tillämpa Diffie-Hellman-algoritmen på det lagret.
- autentisering av innehållet. Vi kan till exempel använda MAC över innehållet i meddelanden.
- Kryptera de offentliga nycklarna med en (asymmetrisk) Offentlig nyckelalgoritm, undvik Man-in-the-middle-problemet och kontrollera i sin tur att den offentliga nyckeln är annan än 0 och 1.
- använda en tredje part (Carol) med vilken antingen Alice eller Bob upprätthåller en säker kanal. Denna tredje part kan upptäcka man-in-the-middle
om Alice eller Bob lyssnas på / modifieras, helt enkelt genom att utmana båda till ett test som innebär i nämnda test den offentliga nyckeln till otro.Si Mallory förvränger Alice-Bob-kommunikationen, och även Alice-Carol, han kan inte förvränga Bob-Carol secure channel och kommer att upptäckas.Och om han förvränger Alice-Bob och Bob-Carol, kan han inte förvränga Alice-Carol (per definition måste det finnas någon säker kanal mellan två av de tre, även om de andra två kanalerna är felaktiga av Mallory). Detta innebär att Diffie-Hellman-metoden kan skapa 100% säkra multi-node-nätverk, från så få som två tidigare säkra noder. Denna metod används också för att testa kanaler som misstänks vara osäkra.
EjemploEditar
|
|
|
exempel med encryption implementationEdit
behovet av detta exempel är: Bob måste skicka en chiffertext till Alice men utan att dela krypteringsnyckeln. Hur gör han det?
- Alice väljer ett hemligt tal a=6, primtalet p=23 och basen g=5. Sedan skickar han Bob Alices offentliga nyckel (ga mod p), p och g:
- 56 mod 23 = 8.
- 23
- 5
- Bob väljer ett hemligt nummer b=15, sedan beräknar Bob den vanliga krypteringsnyckeln (ga mod p)b mod p
- 815 mod 23 = 2.
- Bob krypterar, med en symmetrisk chiffer som AES, klartext med den genererade krypteringsnyckeln.
- krypterad text = symmetrisk chiffer (klartext, 2)
- Bob skickar Alice den krypterade texten och bObs offentliga nyckel (gb mod p)
- 515 mod 23 = 19.
- krypterad text
- Alice beräknar (gb mod p) till mod p
- 196 mod 23 = 2.
- Alice använder den genererade krypteringsnyckeln för att dekryptera data som skickas av Bob
- Cleartext = symmetrisk Decryptor (krypterad text, 2 )
mycket större värden på a, b och p skulle behövas för att göra detta exempel säkert. Eftersom det är väldigt enkelt att testa alla möjliga värden för gab mod 23 (Det kommer högst 22 värden, även om a och b är stora tal).
uppenbarligen Alice behov av att skicka Bob den krypterade informationen omfattas också av genomförandet.
Leave a Reply