Diffie-Hellman

a rendszer azon az elképzelésen alapul, hogy két beszélgetőpartner közösen generálhat egy megosztott kulcsot anélkül, hogy betolakodó lenne, aki hallgatja a kommunikációt, képes lenne megszerezni.

ehhez két nyilvános számot választanak, mindegyik beszélgetőpartnernek pedig egy titkos számot. Egy matematikai képlet segítségével, amely magában foglalja az exponenciálást, minden beszélgetőpartner egy sor műveletet hajt végre a két nyilvános számmal és azok titkos számával. Ezután a beszélgetőpartnerek nyilvánosan cserélik az eredményeket. Elméletileg ennek a függvénynek a megfordítása ugyanolyan nehéz, mint egy diszkrét logaritmus kiszámítása (sextillion-szor drágább, mint a számok átalakításához használt hatványozás). Ezért mondják, hogy ez a szám az egyirányú függvénynek a titkos számra történő alkalmazásának eredménye.

ezután mindkét beszélgetőpartner külön-külön használ egy matematikai képletet, amely egyesíti a két transzformált számot titkos számukkal, és végül a kettő ugyanazt az eredményszámot kapja, amely a megosztott kulcs lesz.

részletes leírásszerkesztés

Diffie-Hellman.

két fél Alice és Bob, akik megpróbálják létrehozni egy titkos kulcsot, és egy ellenfél Mallory, az alap verzió a következő:

  • állítson be egy unokatestvért p {\displaystyle p}
    p

    és egy generátor g \ z p \ {\displaystyle g \ in \ mathbf {Z} _ {p}^{*}}

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

    (). Ezek nyilvános, ismert, nem csak a felek Alice és Bob, hanem az ellenfél Mallory.

  • Alice választ egy \ z p-1 {\displaystyle A \in \ mathbf {Z} _ {p-1}}
    hogy \ in {\mathbf {Z}} _ {{p-1}}

    véletlenszerűen kiszámítja A = g a mod p {\displaystyle a = g^{a}\; {\bmod {\;}} p}

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

    , és elküldi a {\displaystyle A}

     - t a

    Bob

  • Bob kiválasztja a b-t a b-1 {\displaystyle b \ in \ mathbf {Z} _ {p-1}}
    b \ in {\mathbf {Z}} _ {{p-1}}

    véletlenszerű számítások B = g b mod p {\displaystyle b=g^{b}\;{\bmod {\;}}p}

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

    , és elküldi B {\displaystyle B}

    B

    Alice

vegye figyelembe, hogy mind a, mind B kiszámítható a K = G érték alapján 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)}^{b})\;{\bmod \;}p=g^{{a\cdot b}}\;{\bmod \;}p=K

mivel mindkét fél kiszámíthatja a K {\displaystyle k}

K

, akkor használhatjuk megosztott kulcsként.

attacksEdit

passzív attacksEdit

egy Mallory-ellenfél, P, g, A és B birtokában, kiszámíthatja a megosztott titkot, ha rendelkezik az egyik privát értékkel (a vagy b). A vagy b lekérése a vagy B irányváltó függvényből (a = l O g d i s c P (a) {\displaystyle a= \ operatorname {log\; disc} _{p}(a)}

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

és B=\L O g d i s c P P ( B) {\displaystyle b=\operatorname {log\; disc} _{p}(B)}

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

) a diszkrét logaritmus problémája z p-ben ({\displaystyle \mathbf {Z} _{p}^{*}}

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

, a probléma, hogy úgy vélik, megoldhatatlan számítási szempontból, amikor p egy prímszám nagyobb, mint 200 vagy több számjegy, és amelyek nem felelnek meg bizonyos jellemzők legyengítő.

Active attacksEdit

a protokoll érzékeny az aktív Man-in-the-middle támadásokra. Ha a kommunikációt egy harmadik fél lehallgatja, akkor ez továbbítható feladóként a címzett felé, és fordítva, mivel nem áll rendelkezésre mechanizmus a kommunikáció résztvevőinek személyazonosságának igazolására. Így a “középső ember” megegyezhet egy kulcsban minden résztvevővel, és továbbíthatja az adatokat közöttük, hallgatva a beszélgetést mindkét irányban. Miután a szimmetrikus kommunikáció létrejött, a támadónak folytatnia kell a középső forgalom elfogását és módosítását, hogy ne vegye észre. Vegye figyelembe, hogy ahhoz, hogy a támadás működőképes legyen, a támadónak ismernie kell a használni kívánt szimmetrikus titkosítási módszert. A szimmetrikus titkosítási algoritmus elrejtésére támaszkodva nem felel meg a Kerckhoffs elveinek (a rendszer hatékonysága nem függhet a titokban maradt tervétől).

Man-in-the-middle támadás Diffie-Hellman ellen.

az ilyen típusú támadások elkerülése érdekében általában a következő technikák közül egyet vagy többet használnak:

  • idő ellenőrzés.
  • a felek előzetes hitelesítése. Például használja az alapul szolgáló réteg protokoll hitelesítésében. Először létrehozhatunk egy TLS kapcsolatot, és alkalmazhatjuk a Diffie-Hellman algoritmust ezen a rétegen.
  • A tartalom hitelesítése. Például használhatjuk a MAC-et az üzenetek tartalma felett.
  • a nyilvános kulcsok titkosítása (aszimmetrikus) nyilvános kulcs algoritmussal, elkerülve a középső ember problémáját, és ellenőrizve, hogy a nyilvános kulcs nem 0 és 1.
  • harmadik fél (Carol) használata, akivel Alice vagy Bob biztonságos csatornát tart fenn. Ez a harmadik fél képes észlelni a középső embert

ha Alice-t vagy Bobot hallgatják / módosítják, egyszerűen azáltal, hogy mindkettőt kihívják egy tesztre, amely az említett tesztben a otro.Si Mallory félrevezeti az Alice-Bob kommunikációt, és az Alice-Carolt is, nem tudja hamisan bemutatni a Bob-Carol biztonságos csatornát, és észlelni fogják.És ha tévesen ábrázolja az Alice-Bobot és a Bob-Carolt, akkor nem tudja félrevezetni az Alice-Carolt (definíció szerint kell lennie valamilyen biztonságos csatornának a három közül kettő között, annak ellenére, hogy a másik két csatornát Mallory hamisan képviseli). Ez azt jelenti, hogy a Diffie-Hellman módszer 100%-ban biztonságos többcsomópontos hálózatokat hozhat létre, mindössze két korábban biztonságos csomóponttól kezdve. Ezt a módszert olyan csatornák tesztelésére is használják, amelyekről feltételezhető, hogy nem biztonságosak.

EjemploEditar

→ {\displaystyle \ rightarrow }

\rightarrow

← {\displaystyle \ leftarrow }

\leftarrow

=

Alice
Sec Calc
p, g
és
ga mod p
(gb mod p)a mod p
minden
Calc Sec
p, g
b
gb mod p
(ga mod p) b mod p
  1. Alice és Bob beleegyeznek, hogy a P=23 prímszámot és a G = 5 bázist használják.
  2. Alice választ egy titkos számot a=6, majd elküldi Bob (ga mod p)
    • 56 mod 23 = 8.
  3. Bob kiválaszt egy titkos számot b=15, majd elküldi Alice (gb mod p)
    • 515 mod 23 = 19.
  4. Alice kiszámítja (gb mod p) a mod p
    • 196 mod 23 = 2.
  5. Bob kiszámítja (ga mod p) b mod p
    • 815 mod 23 = 2.

Example with encryption implementationEdit

ennek a példának a szükségessége: Bobnak titkosítási szöveget kell küldenie Alice-nek, de a titkosítási kulcs megosztása nélkül. Hogy csinálja?

  1. Alice választ egy titkos számot a=6, a prímszám p=23 és az alap g=5. Ezután elküldi Bob Alice nyilvános kulcsát (ga mod p), p és g:
    • 56 mod 23 = 8.
    • 23
    • 5
  2. Bob kiválaszt egy titkos számot b=15, majd Bob kiszámítja a közös titkosítási kulcsot (ga mod p)b mod p
    • 815 mod 23 = 2.
  3. Bob szimmetrikus titkosítással, például AES-vel titkosítja a sima szöveget a generált titkosítási kulcs segítségével.
  4. titkosított szöveg = szimmetrikus rejtjel (egyszerű szöveg, 2)
  5. Bob elküldi Alice-nek a titkosított szöveget és Bob nyilvános kulcsát (gb mod p)
    • 515 mod 23 = 19.
    • titkosított szöveg
  6. Alice kiszámítja (gb mod p) a mod p
    • 196 mod 23 = 2.
  7. Alice ezt a generált titkosítási kulcsot használja a Bob által küldött adatok visszafejtésére
  8. Cleartext = szimmetrikus dekódoló (titkosított szöveg, 2 )

sokkal nagyobb a, b és p értékekre lenne szükség ahhoz, hogy ez a példa biztonságos legyen. Mivel nagyon egyszerű tesztelni a gab mod 23 összes lehetséges értékét (legfeljebb 22 érték lesz, még akkor is, ha a és b nagy számok).

nyilvánvalóan Alice kell küldeni Bob a titkosított információkat is kiterjed a végrehajtás.

Leave a Reply