Diffie-Hellman anahtar değişimi güvensiz bir ağda iki kişinin haberleşmesini güvenli bir şekilde yapmalarını sağlamak için kullanılan bir yöntemdir. Bu yöntemle mutabık kılınan bir değer üzerinden başka şifreleme algoritmaları kullanılarak (ElGamal, AES vb) güvenli bir haberleşme sağlanır. SSH, TLS ve IPSec gibi yerlerde de sıklıkla kullanılır.
Diffe-Hellman nasıl çalışır:
- Büyük bir asal sayı seçilir. (p)
- 2 ile p – 2 arasında bir tamsayı seçilir. (a)
- Daha sonra a ile p paylaşılır
Ali ile Veli kendi aralarında haberleşmek için bir anahtar belirlemek istesinler:
- Ali ile Veli sadece kendi bildikleri rastgele bir sayı seçerler (Özel Anahtarları). Seçtikleri sayılara köA ve köV diyelim ve bu sayılar daha önceden seçilen asal sayıdan 1 eksik olmalıdır (p-1)
- Daha sonra Ali ve Veli kendi genel anahtarlarını oluşturup birbirlerine gönderirler (kgA ve kgV). Bu genel anahtar daha önceden seçilen a ile birlikte hesaplanır. Olarak seçilir ve birbirleri arasında takas edilir. Daha sonra bu iki genel anahtardan kendi aralarında kullanabilecekleri bir anahtar üretirler. (kAV)
kgA = aköA mod p
kgV = aköV mod p
kAV = (kgV)köA mod p
kAV = (kgA)köV mod p - Daha sonra ortaklaşa karar verilen anahtar üzerinden (kAV) iletişim başlayabilir.
Bu sefer sayılar üzerinden gidelim ve Ali, Veli ile iletişime geçmek istesin:
- Ali p = 29 ve a = 2 seçsin ve Veliye bu sayıları göndersin.
- Daha sonra Ali kendi içinde köA = 5, Veli kendi içinde köV = 12 seçsin.
- Daha sonra Ali ve Veli kendi genel anahtarlarını hesaplayıp birbirlerine gönderirler.
kgA = 25 = 32 mod 29 = 3 mod 29
kgV = 212 = 4096 mod 29 = 7 mod 29 - Artık Ali’de 7, Veli’de 3 bilgisi var. Daha sonra bunları kullanarak kendi özel anahtarlarını oluşturup iletişime başlayabilirler.
kAV = 75 = 16807 mod 29 = 16 mod 29
kAV = 312 = 531441 mod 29 = 16 mod 29 - Görüldüğü üzere Ali ve Veli ortak olarak 16 sayısına ulaştılar bundan sonra da bunun üzerinden güvenli olarak iletişim kurabilirler.