• 18 HAZİRAN 2020
  • Okunma Sayısı: 922

Fatih AKBAŞ - Karaelmas Kriptoloji Takımı

Zonguldak Bülent Ecevit Üniversitesi - [email protected]

 

GİRİŞ
Bu yazımda Diffie-Hellman Anahtar Değişimi bahsedeceğim.

1.1 Diffie-Hellman Anahtar Değişimi Tarihçesi

Diffie-Hellman Anahtar Değişimi kriptografik alanlarda kullanılan önemli ve özel yöntemlerden birisidir. Aynı zamanda kriptografi alanında uygulanan ilk pratik anahtar değiştirme yöntemlerinden birisidir. Diffie-Hellman anahtar değişimi metodu karşılıklı iki tarafın ortaklaşa güvensiz medya üzerinden ortak gizli anahtar elde etmelerine olanak sağlar. Bu tasarım ilk defa 1976 yılında Whitfield Diffie ve Martin Hellman tarafından "New Directions in Cryptography" isimli makalelerinde yayımlanmış.

1.2 Diffie-Hellman Anahtar Değişimi Nedir?

Diffie-Hellman gizli iletişimlerde kullanılabilecek ortak gizli anahtar üretir. Bu anahtar da ortak ağlarda (güvenli olmayan kanaldan) güvenli veri alışverişini sağlar. Aşağıdaki diyagram anahtar değişiminin genel çalışma mantığını çok büyük sayılar yerine renkler kullanarak açıklar. Bu sürecin önemli bir parçası Alice ve Bob kendi gizli renklerini sadece karışım içinde değişirler. Sonunda her iki taraf matematiksel olarak arada dinleyen başka bir kişi tarafından geri döndürülmesi zor olan (bugünkü süper bilgisayarların mantıklı bir zamanda geri döndürememesi)aynı anahtarı elde eder. Bu aşamadan sonra Alice ve Bob oluşturmuş oldukarı ortak gizli anahtarla aralarındaki veri alışverişini şifrelemek ve deşifrelemek için kullanırlar.

DİFFİE-HELLMAN ÇALIŞMA ŞEKLİ / MANTIĞI



Şimdi ise bu şifrelemenin matematiksel olarak gerçekleştirimine açıklık getirelim: Orijinal ve en sade haliyle protokolün gerçekleştirimi tam sayıların çarpımsal grubu modül p, buradaki p asal sayı ve g primitif kök(mod)p'ye göre. Aşağıda protokolle ilgili bir örnek verilmiştir. Gizli olmayan değerler mavi, gizli değerler ise kırmızı ile gösterilmiştir:
• s = ortak gizli anahtar olsun. S = 2
• g = herkes tarafından bilinen taban(base) olsun. G = 5
• p = herkes tarafından bilinen (asal) sayı olsun. P = 23
• a = Alice'in gizli anahtarı olsun. A = 6
• A = Alice'in açık anahtarı olsun. A = ga mod p = 8
• b = Bob'un gizli anahtarı olsun. B = 15
• B = Bob'un açık anahtarı olsun. B = gb mod p = 19
1.Alice ve Bob aralarında asal sayı olarak p=23 ve taban olarak g=5'i seçmeyi
anlaşırlar.
2.Alice gizli bir tam sayı seçer a=6, ve Bob'a A = ga(mod)p hesaplayıp gönderir.
•A = 56(mod)23
•A = 15.625(mod)23
•A = 8
3.Bob da gizli bir tam sayı seçer b=15, ve aynı şekilde Alice'e B = gb(mod)p
hesaplayıp gönderir.
•B = 515(mod)23
•B = 30.517.578.125(mod)23
•B = 19
4.Alice s = Ba(mod)p yi hesaplar.
•s = 196(mod)23
•s = 47.045.881(mod)23
•s = 2
5.Bob da s = Ab(mod)p yi hesaplar.
•s = 815(mod)23
•s = 35.184.372.088.832(mod)23
•s = 2
6.Bu aşamada Alice ve Bob aynı gizli anahtara sahiptirler: s = 2. Çünkü 6*15 ile 15*6 aynıdır. Bu yüzden bu iki gizli tam sayıyı bilen biri de s yi aşağıdaki gibi hesaplayabilir:
•s = 56*15(mod)23
•s = 515*6(mod)23
•s = 590(mod)23
•s = 807.793.566.946.316.088.741.610.050.849.573.099.185.363.389.551.639.556.884.765.625(mod)23
•s = 2
Alice de Bob da aynı sonucu ulaştılar, çünkü (ga)b ve (gb)a ikisi de aynı (mod)p'ye göre işlem yaptılar. Sadece a, b ve gab = gba(mod)p gizli tutulmuştu. Geri kalan bütün değerler “p, g, ga(mod)p, ve gb(mod)p” açıkça hesaplanarak gönderilmişti. Tabii ki, bu örneğimizi daha güvenli hale getirmek için daha büyük a, b, ve p değerlerine ihtiyacımız var. Çünkü gab(mod)23 bütün olası değerlerini denemek oldukça basittir. 

Burada (mod)23'ün sonucunda olası 23 tane tam sayı değeri vardır. Eğer p en az 300 haneli asal sayı olsaydı, a ve b de en az 100 haneli olsalardı, işte o zaman günümüzde bilinen en iyi algoritmaların bile bu işin altından kalkma ihtimali sıfıra daha çok yakınlaşırdı. Bilindiği üzere hiçbir yöntem kırılamaz değildir. Sadece zaman mef’umuna bağlıdır. Bu ayrık logaritma problemi olarak bilinir. Dikkat edin g'nin
büyük olmasına gerek yoktur, ve pratikte genelde 2, 3 veya 5 kullanılır.


• s = ortak gizli anahtar olsun. S = 2
• g = herkes tarafından bilinen taban(base) olsun. G = 5
• p = herkes tarafından bilinen (asal) sayı olsun. P = 23
• a = Alice'in gizli anahtarı olsun. A = 6
• A = Alice'in açık anahtarı olsun. A = ga mod p = 8
• b = Bob'un gizli anahtarı olsun. B = 15
• B = Bob'un açık anahtarı olsun. B = gb mod p = 19


Şimdi de gelelim kim ne biliyor?


KAYNAKÇA

1. https://tr.wikipedia.org/wiki/Diffie-Hellman_anahtar_değişimi
2. https://medium.com/@muhammedkaralar/diffie-hellman-anahtardeğişimi-
61a3387cc3b
3. http://bilgisayarkavramlari.sadievrenseker.com/2008/03/20/diffie-hellmanahahtar-
degisimi-key-exchange/
4. https://tr.qwe.wiki/wiki/Diffie –Hellman_key_exchange
5. https://www.slideshare.net/enescaglar/diffie-hellman

TÜM MAKALELER