Diffie-Hellman

järjestelmä perustuu ajatukseen, että kaksi keskustelukumppania voivat yhdessä luoda yhteisen avaimen ilman, että viestintää kuunteleva tunkeilija saa sitä.

tähän valitaan kaksi julkista numeroa ja jokaiselle keskustelukumppanille salainen numero. Käyttäen matemaattista kaavaa, joka sisältää eksponentaation, jokainen keskustelukumppani tekee sarjan operaatioita, joissa on kaksi julkista numeroa ja niiden salainen numero. Sen jälkeen neuvottelukumppanit vaihtavat tulokset julkisesti. Teoriassa tämän funktion kääntäminen on yhtä vaikeaa kuin diskreetin logaritmin laskeminen (sekstiljoonaa kertaa kalliimpaa kuin lukujen muuntamiseen käytetty eksponentaatio). Tämän vuoksi luvun sanotaan olevan seurausta yksisuuntaisen funktion soveltamisesta salaiseen lukuun.

tämän jälkeen molemmat keskustelukumppanit käyttävät erikseen matemaattista kaavaa, joka yhdistää kaksi muunnettua lukua salaiseen lukuunsa ja lopulta molemmat päätyvät samaan tuloslukuun, joka on jaettu avain.

yksityiskohtainen kuvaus

Diffie-Hellman.

kahdelle osapuolelle, Alicelle ja Bobille, jotka yrittävät luoda salaista avainta, sekä vastustajalle Mallorylle, perusversio on seuraava:

  • aseta serkku p {\displaystyle p}
    p

    ja generaattorin g ∈ Z p ∗ {\displaystyle g\in \mathbf {Z} _ {p}^{*}}

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

    (). Nämä ovat julkisia, tiedossa paitsi osapuolet Alice ja Bob, mutta myös vastustaja Mallory.

  • Alice valitsee a ∈ Z p-1 {\displaystyle A\in \mathbf {Z} _ {p-1}}
     \ in {\mathbf {Z}} _ {{p-1}}

    sattumanvaraisesti lasketaan A = g a mod p {\displaystyle A=G^{A}\; {\bmod {\;}} p}

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

    , ja lähettää {\displaystyle A}

    Bob

  • Bob valitsee b ∈ Z p − 1 {\displaystyle B\in \mathbf {Z} _{p-1}}
    b\in {\mathbf {Z}} _ {p-1}}

    random laskee b = g b mod p {\displaystyle B=g^{b}\;{\bmod {\;}}p}

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

    , ja lähettää B {\displaystyle B}

    B

    Alice

huomaa, että sekä A että B voidaan laskea arvolla 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}\;{\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

koska molemmat osapuolet voivat laskea k {\displaystyle k}

K

, niin voimme käyttää sitä jaettuna avaimena.

attacksEdit

passiivinen attacksEdit

Malloryn vastustaja, jolla on p, g, A ja B, saattoi laskea jaetun salaisuuden, jos hänellä oli myös jokin yksityisistä arvoista (A tai b). Saadaan A tai b kääntöfunktiosta (a = l o G D i S C P ⁡ (A) {\displaystyle A = \operatorname {log\;disc} _{P} (A)}

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

and B = L o G D i S C P ⁡ ( B) {\displaystyle b=\operatorname {log\; disc} _{p} (B)}

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

) on diskreetin logaritmin ongelma järjestelmässä Z p ∗ {\displaystyle \mathbf {Z} _ {p}^{*}}

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

, ongelma, joka uskotaan hankala laskennallisesti aina, kun p on alkuluku suurempi kuin 200 tai enemmän numeroa, ja jotka eivät täytä tiettyjä ominaisuuksia heikentäviä.

Active attacksEdit

protokolla on herkkä aktiivisille Välihyökkäyksille. Jos kolmas osapuoli siepaa tiedonannon, se voidaan siirtää lähettäjänä vastaanottajaan päin ja päinvastoin, koska käytettävissä ei ole mekanismia, jolla voitaisiin vahvistaa tiedonantoon osallistuvien henkilöllisyys. Näin “keskimmäinen mies” saattoi sopia avaimesta jokaisen osallistujan kanssa ja välittää tiedot heidän välilleen kuunnellen keskustelua molempiin suuntiin. Kun symmetrinen kommunikaatio on luotu, hyökkääjän on jatkettava keskellä olevan liikenteen sieppaamista ja muokkaamista niin, etteivät he huomaa. Huomaa, että jotta hyökkäys olisi toimiva, hyökkääjän on tiedettävä käytettävä symmetrinen salausmenetelmä. Vedoten salaamiseen symmetrinen salausalgoritmi ei ole kerckhoffsin periaatteiden mukainen (järjestelmän tehokkuus ei saisi riippua sen suunnittelusta, joka pysyy salassa).

mies keskellä-hyökkäys Diffie-Hellmania vastaan.

tämän tyyppisen hyökkäyksen välttämiseksi käytetään yleensä yhtä tai useampaa seuraavista tekniikoista:

  • Ajanhallinta.
  • asianosaisten ennakkovarmennus. Käytä esimerkiksi kerroksen protokollatodennuksessa. Voisimme ensin luoda TLS-yhteyden ja soveltaa Diffie-Hellman-algoritmia siihen kerrokseen.
  • sisällön todentaminen. Esimerkiksi, voisimme käyttää MAC yli sisällön viestien.
  • salataan julkiset avaimet (epäsymmetrisellä) julkisen avaimen algoritmilla, vältetään Man-in-the-middle-ongelma ja puolestaan tarkistetaan, että julkinen avain on muu kuin 0 ja 1.
  • käyttäen kolmatta osapuolta (Carol), jonka kanssa joko Alice tai Bob ylläpitävät suojattua kanavaa. Tämä kolmas osapuoli voi havaita man-in-the-middle

jos Alicea tai Bobia kuunnellaan / muokataan, yksinkertaisesti haastamalla molemmat testiin, mikä viittaa kyseisessä testissä julkisen avaimen otro.Si Mallory vääristelee Alice-Bob-viestintää, ja myös Alice-Carol, hän ei voi vääristää Bob-Carol-suojattua kanavaa ja hänet havaitaan.Ja jos hän esittää Alice-Bobin ja Bob-Carolin väärin, hän ei voi esittää Alice-Carolia väärin (määritelmän mukaan kahden näistä kolmesta välillä täytyy olla jokin turvallinen kanava, vaikka Mallory vääristeleekin kahta muuta kanavaa). Tämä tarkoittaa sitä, että Diffie-Hellman-menetelmällä voidaan luoda 100% turvallisia monisolmuverkkoja alkaen niinkin harvoista kuin kahdesta aiemmin turvallisesta solmusta. Tätä menetelmää käytetään myös turvallisiksi epäiltyjen kanavien testaamiseen.

EjemploEditar

→ {\displaystyle \ rightarrow }

\rightarrow

← {\displaystyle \leftarrow }

\leftarrow

=

Liisa
sek kalkki
p, g
ja
ga mod p
(gb mod p) a mod p
kaikki
kalkki sek
p, g
b
gb mod p
(M M M M M M M M
  1. Alice ja Bob suostuvat käyttämään alkulukua p=23 ja kantalukua g=5.
  2. Liisa valitsee salaisen numeron a=6 ja lähettää sitten Bobin (ga mod p)
    • 56 mod 23 = 8.
  3. Bob valitsee salaisen numeron b=15 ja lähettää sitten Alicen (gb mod p)
    • 515 mod 23 = 19.
  4. Alice laskee (gb mod p) muotoon mod p
    • 196 mod 23 = 2.
  5. Bob laskee (ga mod p)b mod p
    • 815 mod 23 = 2.

esimerkki salaustoteutuksella edit

tämän esimerkin tarve on: Bobin täytyy lähettää Alicelle salausteksti, mutta salausavainta jakamatta. Miten hän tekee sen?

  1. Liisa valitsee salaisen luvun a=6, alkuluvun p=23 ja kantaluvun g=5. Sitten hän lähettää Bob Alicen julkisen avaimen (ga mod p), p ja g:
    • 56 mod 23 = 8.
    • 23
    • 5
  2. Bob valitsee salaisen luvun b=15, jonka jälkeen Bob laskee yhteisen salausavaimen (ga mod p)b mod P
    • 815 mod 23 = 2.
  3. Bob salaa symmetrisellä salakirjoituksella, kuten AES: llä, tavallisen tekstin generoidun salausavaimen avulla.
  4. salattu teksti = symmetrinen salakirjoitus (Plaintext, 2)
  5. Bob lähettää Liisalle salatun tekstin ja Bobin julkisen avaimen (gb mod p)
    • 515 mod 23 = 19.
    • salattu teksti
  6. Alice laskee (gb mod p) muotoon mod p
    • 196 mod 23 = 2.
  7. Alice käyttää luotua salausavainta purkaakseen Bobin lähettämän tiedon
  8. Cleartext = Symmetric Decryptor (salattu teksti, 2 )

paljon suurempia A -, b-ja p-arvoja tarvittaisiin, jotta tämä esimerkki olisi turvallinen. Koska se on hyvin yksinkertainen testata kaikki mahdolliset arvot gab mod 23 (siellä on enintään 22 arvot, vaikka A ja b ovat suuria lukuja).

toteutuksessa käsitellään ilmeisesti myös Alicen tarvetta lähettää Bobille salatut tiedot.

Leave a Reply