Eliptik-eğri Diffie–Hellman

Eliptik Eğri Diffie-Hellman (ECDH), güvensiz bir kanal üzerinden paylaşılan bir giz (İngilizce: secret) oluşturmak için her biri eliptik-eğri açık-özel anahtar çiftine sahip iki partiye izin veren anonim bir anahtar anlaşma protokolüdür. Bu paylaşılan sır doğrudan bir anahtar olarak veya başka bir anahtar türetmek için kullanılabilir. Anahtar veya üretilen anahtar, daha sonra sonraki iletişimleri, bir simetrik anahtar algoritması kullanarak şifrelemek için kullanılabilir. Bu, Diffie-Hellman protokolünün eliptik eğri kriptografisi kullanan bir çeşididir.

Anahtar oluşturma protokolü
Sıradaki örnek anahtar oluşturulmasının nasıl yapıldığını açıklayacak. Diyelim ki Alice, Bob ile paylaşılan bir anahtar oluşturmak istiyor, ama ikisi için uygun olan tek kanal, üçüncü bir parti tarafından gizlice dinlenebilir. Başlangıçta, etki alanı parametreleri (yani, asal durumda veya ikilik taban durumunda ) konusunda anlaşma sağlanmalıdır. Ayrıca, her partinin eliptik eğri kriptografisine uygun, özel anahtar ( aralığından rastgele seçilmiş bir tam sayı) ve bir noktası ( , yani 'nin kendisine defa eklendiğinde çıkan sonuç) ile gösterilen bir açık anahtardan oluşan bir anahtar çifti olmalıdır. Alice'in anahtar çifti , Bob'un anahtar çifti olsun. Her parti diğer partinin protokol çalıştırılmadan önceki açık anahtarını bilmelidir.

Alice noktasını hesaplar. Bob noktasını hesaplar. Paylaşılan giz (İngilizce: secret), 'dır (noktanın x koordinatı). ECDH'e dayalı en standart hale getirilmiş protokoller, hash tabanlı anahtar üretim fonksiyonu kullanarak, 'dan simetrik anahtar üretir.

İki tarafın da hesapladığı paylaşılan giz eşittir, çünkü 'dır.

Alice'in başlangıçta açıkladığı özel anahtarı hakkında tek bilgi açık anahtarıdır. Yani, Alice'ten başka hiçbir parti, eliptik eğri ayrık logaritma problemini çözmedikçe Alice'in özel anahtarına karar veremez. Bob'un özel anahtarı da aynı şekilde güvendedir. Alice ve Bob'dan başka hiçbir parti, eliptik eğri Diffie-Hellman problemini çözmedikçe paylaşılan secreti hesaplayamaz.

Açık anahtarlar ya statiktir (ve güvenilirdir, mesela bir sertifika aracılığıyla) ya da geçicidirler (ECDHE olarak da bilinir, son E'nin "geçici" anlamına gelen "ephemeral"in baş harfidir.). Geçici anahtarlar geçicidir ve kimlik doğrulamasına gerek yoktur, yani eğer kimlik doğrulaması yapmak istenirse, authenticity başka yollarla sağlanmalıdır. Kimlik doğrulaması, ortadaki adam saldırılarından korunmak için gereklidir. Eğer Alice veya Bob’dan birinin açık anahtarı statik ise, ortadaki adam saldırıları önlenmiştir. Statik açık anahtarlar, diğer gelişmiş güvenlik özelliklerindenileriye dönük gizlilik (İngilizce: forward secrecy) veya anahtar-uzlaşma kimliğe bürünme esnekliği (İngilizce: key-compromise impersonation resilience) sağlamaz. Statik özel anahtarı olanlar, diğer açık anahtarı doğrulamalı ve statik özel anahtarla ilgili bilgi sızdırmamak için ham Diffie-Hellman paylaşılan gizine güvenli bir anahtar türetme fonksiyonu uygulamalıdır. Diğer güvenlik özelliklerine sahip programlar için MQV'ye bakınız.

Paylaşılan bir giz doğrudan bir anahtar olarak kullanılabilir, genelde Diffie-Hellman değişiminden kaynaklanan zayıf bitleri ortadan kaldırmak için gizi hashlemek tercih edilir.

Curve25519, eliptik eğri parametreleri kümesidir ve C Language Bindings'deki Daniel J. Bernstein tarafından yapılan referans gerçeklemesi ve alternatif gerçeklemeler de mevcuttur.
LINE messenger uygulaması, ECDH protokolünü Ekim 2015'ten bu yana, söz konusu uygulama aracılığıyla gönderilen tüm iletilerin "Letter Sealing" uçtan uca şifrelemesi için kullanmıştır.

Ayrıca bakınız
Diffie – Hellman anahtar değişimi

Kaynakça