- AdminCP
- #1
Curve25519 tabanlı ECDH, modern kriptografi dünyasında hem yüksek güvenlik hem de yüksek performans sağlamak için tasarlanmış bir anahtar değişim protokolüdür.
Bunu adım adım teknik olarak açalım:
Temel adımlar:
Bu shared değeri, artık sadece sizde ve karşı tarafta bulunur.
Özet:
Curve25519 tabanlı ECDH, eliptik eğri kriptografisinde hız, güvenlik ve saldırı dirençliliğini en iyi dengeleyen yöntemlerden biridir. Özellikle güvenli mesajlaşma, VPN tünelleme ve TLS anahtar değişiminde endüstri standardı haline gelmiştir.
Bunu adım adım teknik olarak açalım:
Ön Bilgi: ECDH Nedir?
- ECDH (Elliptic Curve Diffie–Hellman), Diffie–Hellman anahtar değişiminin eliptik eğriler üzerinde çalışan versiyonudur.
- Amaç: İki tarafın (örneğin Alice ve Bob) gizli bir ortak anahtar üretmesi.
- Bu ortak anahtar:
- Asla ağ üzerinden açık şekilde iletilmez.
- Sadece tarafların kendi özel anahtarları ve karşı tarafın açık anahtarı ile hesaplanır.
Curve25519 Nedir?
- Curve25519, Daniel J. Bernstein tarafından tasarlanmış bir eliptik eğridir.
- Özellikleri:
- Prime field üzerinde çalışır:
p=2255−19p = 2^{255} - 19p=2255−19 - Montgomery formu:
Bu form, scalar multiplication (skaler çarpma) işlemlerini çok hızlı ve yan kanal saldırılarına dayanıklı şekilde yapar. - 256-bit güvenlik seviyesi (yaklaşık 128-bit simetrik güvenliğe eşdeğer).
- Sabit-zamanlı algoritmalar → Zaman tabanlı saldırılara karşı koruma.
- Prime field üzerinde çalışır:
Curve25519 + ECDH Nasıl Çalışır?
Temel adımlar:
- Anahtar Çifti Üretimi
- Her taraf rastgele 32 baytlık bir özel anahtar üretir.
- Curve25519 algoritması ile buna karşılık gelen 32 baytlık açık anahtar hesaplanır.
- Açık Anahtarların Paylaşılması
- Alice, Bob’a kendi açık anahtarını yollar.
- Bob, Alice’e kendi açık anahtarını yollar.
- Ortak Sır Oluşturma
- Alice:
Shared=Curve25519(PrivateAlice,PublicBob)Shared = Curve25519(Private_Alice, Public_Bob)Shared=Curve25519(PrivateAlice,PublicBob) - Bob:
Shared=Curve25519(PrivateBob,PublicAlice)Shared = Curve25519(Private_Bob, Public_Alice)Shared=Curve25519(PrivateBob,PublicAlice) - Matematiksel olarak bu işlemler aynı sonucu verir.
- Alice:
- Anahtar Türetme
- Bu ortak sır, HKDF gibi bir key derivation function (KDF) ile şifreleme anahtarı haline getirilir.
Avantajları
- Hız → Hem yazılımda hem donanımda çok hızlı.
- Güvenlik → Bilinen yan kanal saldırılarına karşı dayanıklı tasarım.
- Basit API → Özellikle libsodium, NaCl gibi kütüphanelerde tek satırla kullanılabilir.
- Geniş destek → TLS 1.3, Signal, WhatsApp, WireGuard gibi modern protokollerde kullanılır.
Kısa Örnek (libsodium ile)
Kod:
#include <sodium.h>
unsigned char my_pk[crypto_scalarmult_BYTES];
unsigned char my_sk[crypto_scalarmult_SCALARBYTES];
unsigned char peer_pk[crypto_scalarmult_BYTES];
unsigned char shared[crypto_scalarmult_BYTES];
crypto_box_keypair(my_pk, my_sk); // Anahtar çifti üret
// Karşı tarafın public key'i peer_pk olarak gelsin
crypto_scalarmult(shared, my_sk, peer_pk);
Bu shared değeri, artık sadece sizde ve karşı tarafta bulunur.
Curve25519 tabanlı ECDH, eliptik eğri kriptografisinde hız, güvenlik ve saldırı dirençliliğini en iyi dengeleyen yöntemlerden biridir. Özellikle güvenli mesajlaşma, VPN tünelleme ve TLS anahtar değişiminde endüstri standardı haline gelmiştir.