TKK | Tietoverkkolaboratorio | Opetus

Diffie-Hellman

Julkinen avain
[Esittely]
[Salaus]
[Julkinen avain]
+ [Kehitys]
+ [Minne]
+ [Algoritmeja]
+ + [Diffie-Hellman]
+ + [RSA]
+ + [Muita]
+ [Riskit]
+ [Hallinta]
[Tuotteita]
[Termejä]
[Lähdeluettelo]


Jyri Lindström
Teemu Mäkelä


Yleistä

Diffie-Hellman on ensimmäinen julkisen avaimen algoritmi, vuodelta 1976. Se ei sinällään ole asymmetrinen tiedon salaus algoritmi, vaan symmetrisen algoritmin avaimen vaihto algoritmi. Se kuitenkin perustuu julkisiin avaimiin, ja on matematiikaltaan erittäin yksinkertaista, ja näinollen erinomainen aiheeseen perehdyttämis algoritmi.


Algoritmi

Algoritmi on yksinkertainen. Ensin osapuolet, Matti ja Liisa valitsevat yhteisen suuren alkuluvun n sekä g:n, joka on primitiivinen n:n suhteen. Näiden lukujen ei tarvitse olla salaisia, ja ne voivat olla kaikille samoja. Nyt protokolla etenee seuraavasti:

  1. Matti valitsee suuren satunnaisen kokonaisluvun x, ja lähettää Liisalle X:n, jossa X on (g^x) mod n.
  2. Liisa valitsee suuren satunnaisen kokonaisluvun y, ja lähettää Liisalle Y:n, jossa Y on (g^y) mod n.
  3. Matti laskee Liisan lähettämästä Y:stä k:n, jossa k on (Y^x) mod n.
  4. Liisa laskee Matin lähettämästä X:stä k':n, jossa k' on (X^y) mod n.

Nyt sekä k että k' ovat (g^(x*y)) mod n, joka on yhteinen avain symmetriselle salaukselle. k ei missään vaiheessa liiku selväkielisenä yhteyden yli, vaan osapuolet laskevat sen itsenäisesti.

Algoritmi on helposti laajennettavissa useammalle osallistujalle.


Turvallisuus

Diffie-Hellmanin turvallisuus perustuu diskreettien logaritmien laskemisen vaikeuteen modulus aritmetiikalla verrattuna eksponentin laskemisen helppouteen samalla alueella. Ketään muu ei voi tietää osapuolien erikseen laskemaa k:ta, ellei tämä voi laskea diskreettiä logaritmia X:stä tai Y:stä, ja näin saada x:ää tai y:tä haltuunsa.

n:n ja g:n valinnalla on vaikutusta diskreetin logaritmin laskennan vaikeuteen. Selvästikin n:n tulee olla hyvin suuri, ja myös (n-1)/2:n tulisi olla alkuluku. g:lle riittää, että se on primitiivinen n:n suhteen. g voi tyypillisesti olla yksi merkkinen luku.


Tietoverkkolaboratorio on nyt osa Tietoliikenne- ja tietoverkkotekniikan laitosta. Tällä sivulla oleva tieto voi olla vanhentunutta.

Kurssien ajantasainen tieto on MyCourses-palvelussa.

Tämä sivu on tehty oppilaiden harjoitustyönä. Tietoverkkolaboratorio ei vastaa sivun oikeellisuudesta, ajantasaisuudesta tai ylläpidosta. Vakavissa tapauksissa yhteyshenkilöinä toimivat ja Webmaster.
Sivua on viimeksi päivitetty 25.11.1998 10:37.
URI: http://www.netlab.tkk.fi/opetus/s38118/s98/htyo/48/dh.shtml
[ TKK > Sähkö- ja tietoliikennetekniikan osasto > Tietoverkkolaboratorio > Opetus ]