Curve25519 Key Agreement Protocol
Gelir İdaresi Başkanlığı teknik kılavuzları, Vergi Usul Kanunu ve UBL-TR standartları referans alınarak doğrulanmıştır.
Tanımı ve Tasarım Felsefesi
Curve25519, 2005 yılında Daniel J. Bernstein tarafından tanıtılan ve IETF RFC 7748 standardıyla kabul edilen, Diffie-Hellman anahtar değişimi (ECDH) için özel olarak optimize edilmiş dünyaca ünlü bir Montgomery eliptik eğrisidir. Bu eğri üzerindeki anahtar değişim protokolüne literatürde X25519 adı verilir.
Curve25519, kriptografi dünyasında bir dönüm noktası olarak kabul edilir; çünkü geleneksel NIST eğrilerinin aksine, 'şüpheli rastgele sabitler' (backdoor kuşkusu) içermez, patent kısıtlamalarından tamamen aridir ve tasarımında matematiksel açıklık esastır.
Matematiksel Eğri Denklemi
Eğri, bir Montgomery eğrisi formundadır ve $GF(2^{255}-19)$ cismi üzerinde tanımlıdır:
y² = x³ + 486662x² + x (mod 2²⁵⁵ - 19)
Montgomery eğrilerinin en devrimci yönü, nokta çarpma işlemlerinde (scalar multiplication) Montgomery Merdiveni (Montgomery Ladder) algoritmasının kullanılabilmesidir. Bu algoritma sayesinde Y koordinatı tamamen göz ardı edilerek yalnızca X koordinatı üzerinden hesaplama yapılır. Bu hem bellek kullanımını yarıya indirir hem de işlemci üzerinde her bit için tam olarak eşit sayıda döngü çalıştırarak yan kanal (timing) saldırılarını imkansız kılar.
X25519 Anahtar Değişimi Nasıl Çalışır?
- Alice 32 baytlık rastgele bir gizli anahtar ($a$) seçer ve bunu temel nokta ($G$) ile çarparak açık anahtarını ($A = a \cdot G$) hesaplar ve Bob'a iletir.
- Bob 32 baytlık rastgele bir gizli anahtar ($b$) seçer ve açık anahtarını ($B = b \cdot G$) hesaplayarak Alice'e iletir.
- Ortak Sırrın Hesaplanması: Alice, Bob'un açık anahtarını kendi gizli anahtarıyla çarpar ($K = a \cdot B$). Bob ise Alice'in açık anahtarını kendi gizli anahtarıyla çarpar ($K = b \cdot A$).
- Eliptik eğri cebiri gereğince $a \cdot (b \cdot G) = b \cdot (a \cdot G)$ olduğundan her iki taraf da aradaki güvensiz hattan hiçbir gizli bilgi geçmeden aynı 32 baytlık simetrik oturum anahtarını ($K$) elde eder.
Küresel Standartlardaki Kullanımı
- TLS 1.3: Modern web tarayıcıları ve güvenli sunucular arasındaki HTTPS trafiğinin %90'ından fazlası anahtar değişiminde varsayılan olarak X25519 kullanır.
- WireGuard VPN: IPsec ve OpenVPN'in karmaşık yapısını geride bırakan modern WireGuard protokolü omurgasını Curve25519 üzerine kurmuştur.
- Signal & WhatsApp Uçtan Uca Şifreleme: Milyarlarca kullanıcının mesajlaşma güvenliğini sağlayan Double Ratchet algoritması Curve25519 anahtar değişimiyle çalışır.
- Ed25519 ile İlişkisi: X25519 anahtar değişimi (şifreleme oturumu başlatma) yaparken, Ed25519 ise aynı matematiksel cisim üzerinde dijital imza üretir. İkisi modern güvenli iletişimin ayrılmaz ikilisidir.