Post-Quantum Kriptografi: Hybrid Kyber + AES-256-GCM ile Kuantum Sonrası Şifreleme Rehberi

⚛️ POST-QUANTUM KRİPTOGRAFİ REHBERİ – Kuantum Bilgisayarlar Geldiğinde Çıplak Kalmayın Bak dostum, kimse sana "yarının savaşını bugün kazan" gibi boş laflar söylemeyecek. Sana...

⚛️ POST-QUANTUM KRİPTOGRAFİ REHBERİ – Kuantum Bilgisayarlar Geldiğinde Çıplak Kalmayın​

Bak dostum, kimse sana "yarının savaşını bugün kazan" gibi boş laflar söylemeyecek. Sana direkt şunu diyorum: Birkaç yıl içinde kullandığın tüm şifreleme çöpe gidebilir. O RSA anahtarların, o ECC imzaların... Hepsini bir kuantum bilgisayar saniyeler içinde kırabilir. Kullandığın VPN programları, RAT'lar, belki günlük hayatta kullandığın herşey Quantum tehlikesinde.

Bu rehberde tam olarak şunları bulacaksın:

  1. Neden post-quantum kriptografi? – Quantum bilgisayarların tehlikesi ne, Q-Day ne?
  2. Hangi dili seçmeli? – Python, C++, Rust, Go, JavaScript, Java/C# artıları ve eksileri
  3. Hangi kütüphaneler? – liboqs, Bouncy Castle, noble/post-quantum, Trail of Bits Go libs
  4. Ek güvenlik önlemleri – Yan kanal saldırıları, constant-time kod, hybrid yaklaşım
  5. Kendi şifreleme programını yazmak – Hybrid Kyber + AES-256-GCM ile full örnek kod
  6. Şifreli mesajlaşma entegrasyonu – Signal/Matrix tarzı sistemlere PQC eklemek
  7. Video kaynakları – İzleyip derinleşebileceğin güncel içerikler
Bu yazıyı okuyan bir daha "ben AES kullanıyorum yeter" diyemeyecek. Hazırsan dalıyoruz.



🔻 1. NEDEN POST-QUANTUM? – Quantum Bilgisayarların Tehlikesi

"Savunması olmayanın saldırısı, sadece intihardır." – Sun Tzu


🧠 Olayın Özü: Shor ve Grover​

Bildiğimiz şifreleme sistemleri (RSA, ECC, Diffie-Hellman) şu temel sorunların klasik bilgisayarlarla çözülmesi zor olmasına dayanır:

  • RSA: Büyük sayıları asal çarpanlarına ayırma
  • ECC/ElGamal: Ayrık logaritma problemi
Bir quantum bilgisayar, Shor'un algoritması sayesinde bu problemleri exponential hızda çözebilir. Yani bugün "milyar yıl" dediğimiz süre, quantum bilgisayar için birkaç saniye. Bazı araştırmalar, RSA'yı kırmak için sadece 10,000 atomik qubit yeterli olabileceğini söylüyor – bu, daha önce tahmin edilen milyonlarca qubit'ten çok daha az.

Q-Day (Quantum Apocalypse): Kuantum bilgisayarın mevcut şifrelemeyi kırabilecek hale geldiği an. Bu anın 2030'lar civarında gelebileceği konuşuluyor. O gün geldiğinde, bugün "şifreli" diye sakladığın her şey – mesajların, bankacılık işlemlerin, VPN kayıtların – dümdüz okunabilir olacak.

⚠️ Ama Bekle, Daha da Kötüsü Var: "Harvest Now, Decrypt Later"​

Diyelim ki quantum bilgisayar 2035'te geldi. O zamana kadar geçen 10 yıl içinde tüm şifreli trafik kaydedilebilir. İstihbarat teşkilatları ve büyük şirketler şu anda "ileride çözeriz" diyerek bugünkü şifreli verileri topluyor olabilir. Yani mesajların belki şimdi güvende, ama 2035'te herkes okuyacak.

🔐 O Halde Çözüm Nedir?​

Post-Quantum Kriptografi (PQC): Klasik bilgisayarlarda çalışan, ancak quantum bilgisayarlara karşı da dayanıklı olacak şekilde tasarlanmış algoritmalar. NIST (ABD Ulusal Standartlar ve Teknoloji Enstitüsü) 2024'te ilk üç standart algoritmayı finalize etti:



NIST StandardıAlgoritmaTürüNe İşe Yarar
FIPS 203 (ML-KEM)CRYSTALS-KyberKEM (Key Encapsulation)Kuantum-safe anahtar değişimi
FIPS 204 (ML-DSA)CRYSTALS-DilithiumDijital imzaKuantum-safe imzalama
FIPS 205 (SLH-DSA)SPHINCS+Hash-based imzaAlternatif imza (daha yavaş ama farklı güvence)
Mart 2025'te HQC (Hamming Quasi-Cyclic) bir yedek KEM olarak eklendi.


🎯 2. HANGİ DİL VE HANGİ KÜTÜPHANE? – Seviyene Göre Seç​

Her dilin derdi ayrı. İhtiyacına göre seç. Ama şunu unutma: Hangi dili seçersen seç, doğru kütüphane olmadan işin zor.

🐍 Python – Hızlı Prototip ve Öğrenme İçin​

Artıları: Öğrenmesi kolay, kütüphane bolluğu, hızlı fikir geliştirme.
Eksileri: Yavaş, production için çok güvenilmez (özellikle constant-time kod yazması zor).



KütüphaneNe YaparKullanımı
liboqs-pythonOpen Quantum Safe projesinin Python binding'i. Kyber, Dilithium, Falcon vs. hepsi var.pip install liboqs
pqmagicÇin'in FIPS 203/204/205 uyumlu yüksek performanslı PQC kütüphanesi.pip install pqmagic
kyber-pySaf Python ile Kyber implementasyonu – öğrenmek için ideal.git clone ...
Kurulum Örneği (liboqs-python) :

bash
pip install liboqs
# veya kaynaktan:
git clone https://github.com/open-quantum-safe/liboqs-python
cd liboqs-python && pip install -e .

🦀 Rust – Production Kalitesi ve Güvenlik İçin​

Artıları: Memory-safe, hız, constant-time kod yazmaya elverişli.
Eksileri: Öğrenmesi dik yokuş.



KütüphaneNe Yapar
liboqs-rustRust binding for liboqs. Ama uyarı: liboqs README'de "PRODUCTION ORTAMINDA KULLANMAYIN" yazıyor. Hala deneysel.
pqc-rsSaf Rust PQC implementasyonları.
RustCrypto PQC cratesKyber, Dilithium implementasyonları var.


⚙️ C/C++ – Performans Canavarı, Ama Dikkat!​

Artıları: En hızlı, en çok test edilmiş implementasyonlar.
Eksileri: Memory leak, buffer overflow, yan kanal saldırılarına açık.



KütüphaneNe Yapar
liboqs (C)OQS'nin ana C kütüphanesi. Tüm NIST algoritmaları burada.
liboqs-cppC++ wrapper.
OpenSSL (oqs-provider)OpenSSL 3.0+ için PQC provider eklentisi.


🫨 Go – Cloud-native için​

Artıları: Kolay concurrency, deployment kolay, Trail of Bits gibi sağlam oyuncular destekliyor.
Eksileri: GC overhead, kütüphane ekosistemi hala olgunlaşıyor.



KütüphaneNe Yapar
Trail of Bits Go libs (ml-dsa, slh-dsa)Saf Go implementasyonları, constant-time, side-channel korumalı.
CIRCL (Cloudflare)Cloudflare'ın PQ + ECC hibrit kütüphanesi.
hpqcHybrid PQC + klasik primitives.
go-pqswTLS benzeri quantum-safe wire protokolü.


🌐 JavaScript/TypeScript – Browser ve Node.js için​

Artıları: Her yerde çalışır, Web Crypto API ile entegre.
Eksileri: JS'de constant-time kod yazmak imkansıza yakın.



KütüphaneNe Yapar
@noble/post-quantumNoble ekibinin minimal, auditable, zero-dependency JS PQC kütüphanesi. Kyber ve Dilithium destekliyor.
crystals-kyber-jsKyber JS implementasyonu, Web Crypto API üzerine inşa edilmiş.
dilithium-crystals-jsDilithium JS implementasyonu, hem Node.js hem browser.
hpke-jsHybrid Public Key Encryption, Web Crypto API üzerinde.


☕ Java / C# – Kurumsal Dünya için​

Artıları: Olgun ekosistem, kurumsal destek, Bouncy Castle ile full PQC desteği.
Eksileri: Dilersen diline göre değişir.



KütüphaneNe Yapar
Bouncy Castle (Java 1.81+ / C# 2.6.1+)PQC için en sağlam seçeneklerden biri. Hem Java hem C# için NIST PQC algoritmalarını destekliyor. HQC, Kyber, Dilithium hepsi burada.
BC .NET 2.6.1C# geliştiriciler için artık PKCS#8 formatında PQC private key desteği var.
Kurulum (C#/.NET) :

csharp
// NuGet: BouncyCastle.Cryptography
using Org.BouncyCastle.Pqc.Crypto.Frodo;
using Org.BouncyCastle.Pqc.Crypto.Kyber;


📊 Hızlı Karar Tablosu​



İhtiyacınDili SeçKütüphaneyi Seç
Öğreniyorum, prototip yapıyorumPythonliboqs-python veya pqmagic
Production'a koyacağım, hız lazımRust / C++liboqs-rust (deneysel) / liboqs
Cloud-native, kolay deploymentGoTrail of Bits Go libs veya CIRCL
Web uygulaması, browser'da çalışacakTypeScript@noble/post-quantum
Kurumsal uygulama, .NET dünyasıC#Bouncy Castle .NET 2.6.1
Android / kurumsal JavaJavaBouncy Castle Java 1.81


🛡️ 3. EK GÜVENLİK ÖNLEMLERİ – "PQC Kullandım Oldu" Deme​

PQC algoritmaları teoride quantum dirençli olabilir ama gerçek dünyada implementasyon hataları seni bitirir.

🚨 Yan Kanal Saldırıları (Side-Channel Attacks) – En Büyük Tehlike​

NIST'in seçtiği algoritmalar quantum'a karşı dayanıklı ama güç analizi, zamanlama saldırıları ve hata enjeksiyonu gibi klasik yan kanal saldırılarına karşı otomatik olarak korumalı değil. Örneğin KyberSlash saldırısı, Kyber implementasyonundaki bir zamanlama zafiyetini kullanarak özel anahtarı çalabiliyor.

✅ Alman Gereken Önlemler​



ÖnlemNe Demek?Nasıl Yapılır?
Constant-time kodTüm işlemler aynı sürede bitsin, yoksa "şu işlem daha uzun sürdü → o bit 1'miş" diye anahtar sızdırırsın.crypto/ altındaki kütüphaneleri tercih et. Kendin yazıyorsan conditional branching'ten kaç, bitwise operation kullan.
Rastgelelik (RNG) doğru olsunZayıf RNG = kırılgan anahtar./dev/urandom kullan. Python'da secrets modülü, Go'da crypto/rand.
Hybrid yaklaşım"Klasik + PQC" birlikte çalışsın. Hem bugün güvende ol, hem yarın.Önce ECDH ile anahtar üret, sonra Kyber ile, ikisini hash'le. Biri kırılsa diğeri kurtarır.
"Shift Left" güvenlikGüvenlik testlerini geliştirmenin en başına koy.Implementasyonu yazarken hemen side-channel testleri ekle. Sonra değil.
Üçüncü parti denetimKendi koduna güvenme.liboqs, Bouncy Castle gibi denetlenmiş kütüphaneler kullan.


💻 4. KENDİ ŞİFRELEME PROGRAMINI YAZMAK – Hybrid Kyber + AES-256-GCM​

Şimdi işin tekniğine giriyoruz. Aşağıda Python ile çalışan, kopyala-yapıştır yapabileceğin bir hybrid şifreleme örneği var.

Nasıl çalışıyor?

  1. Kyber (ML-KEM) ile quantum-safe bir paylaşımlı gizli (shared secret) üret
  2. Bu gizliyi bir KDF'den geçirip AES-256 anahtarı oluştur
  3. Mesajını AES-256-GCM ile şifrele (authenticated encryption)
  4. Hem Kyber ciphertext'ini hem de AES ciphertext'ini sakla veya gönder


📜 Full Örnek Kod – Hybrid Kyber-512 + AES-256-GCM

python
#!/usr/bin/env python3
"""
HYBRID POST-QUANTUM ŞİFRELEME DEMO
Kyber-512 (ML-KEM) + AES-256-GCM
Kuantum sonrası dünyaya hazır ol!
"""

import os
import hashlib
from cryptography.hazmat.primitives.ciphers.aead import AESGCM
import liboqs # pip install liboqs

# 1. Kyber anahtar çifti oluştur
def kyber_keygen():
kem = liboqs.KeyEncapsulation('Kyber-512')
public_key = kem.generate_keypair()
secret_key = kem.export_secret_key()
kem.free()
return public_key, secret_key

# 2. Kyber ile kapsüllenmiş anahtar üret (Alice tarafı)
def kyber_encapsulate(public_key):
kem = liboqs.KeyEncapsulation('Kyber-512')
kem.public_key = public_key
ciphertext, shared_secret = kem.encap_secret()
kem.free()
return ciphertext, shared_secret

# 3. Kyber ile anahtarı aç (Bob tarafı)
def kyber_decap(ciphertext, secret_key):
kem = liboqs.KeyEncapsulation('Kyber-512')
kem.secret_key = secret_key
shared_secret = kem.decap_secret(ciphertext)
kem.free()
return shared_secret

# 4. Shared secret'ten AES-256 anahtarı türet (KDF olarak SHA-256)
def derive_aes_key(shared_secret, salt):
return hashlib.pbkdf2_hmac('sha256', shared_secret, salt, 100000, dklen=32)

# 5. AES-256-GCM ile şifrele
def aes_encrypt(key, plaintext):
aesgcm = AESGCM(key)
nonce = os.urandom(12) # GCM için 12 byte nonce standart
ciphertext = aesgcm.encrypt(nonce, plaintext, None)
return nonce, ciphertext

# 6. AES-256-GCM ile çöz
def aes_decrypt(key, nonce, ciphertext):
aesgcm = AESGCM(key)
return aesgcm.decrypt(nonce, ciphertext, None)

# ------------------ DEMO ------------------
if __name__ == "__main__":
print("🔐 HYBRID POST-QUANTUM ŞİFRELEME DEMO\n")

# Bob: Anahtar çifti oluştur
print("[Bob] Kyber-512 anahtar çifti oluşturuyor...")
bob_pub, bob_priv = kyber_keygen()

# Alice: Bob'un public key'i ile kapsüllenmiş anahtar üret
print("[Alice] Bob'un public key'i ile kapsülleniyor...")
ciphertext, alice_shared = kyber_encapsulate(bob_pub)

# Bob: ciphertext ile shared secret'i çöz
print("[Bob] Ciphertext'i çözüyor...")
bob_shared = kyber_decap(ciphertext, bob_priv)

# Aynı shared secret mi? Kontrol et
assert alice_shared == bob_shared, "Shared secret uyuşmuyor!"
print("[✓] Shared secret başarıyla eşleşti.")

# AES anahtarı türet (salt kullanarak)
salt = os.urandom(16)
aes_key = derive_aes_key(alice_shared, salt)

# Şifrelenecek mesaj
plaintext = b"SELAM DOSTUM! Bu mesaj quantum bilgisayarlara karşı dayanıklı."
print(f"\n[+] Orijinal mesaj: {plaintext.decode()}")

# Şifrele
nonce, aes_ciphertext = aes_encrypt(aes_key, plaintext)
print(f"[+] Şifrelenmiş mesaj (hex): {aes_ciphertext.hex()[:32]}...")

# Çöz
decrypted = aes_decrypt(aes_key, nonce, aes_ciphertext)
print(f"[+] Çözülen mesaj: {decrypted.decode()}")

print("\n✨ Başarılı! Hybrid PQC + AES çalışıyor.")


🧠 Kodun Mantığı – Adım Adım​



AdımNe Oluyor?Neden Önemli?
Kyber keypairBob kendi public/private anahtarını üretiyor.Public key herkese açık, private key sadece Bob'ta.
Kyber encapsulateAlice Bob'un public key'ini kullanarak bir ciphertext ve shared secret üretiyor.Ciphertext'i Bob'a gönderecek.
Kyber decapsulateBob ciphertext'i alıp aynı shared secret'i çıkarıyor.Quantum-safe anahtar değişimi tamamlandı.
AES key derivationShared secret'ten SHA-256 ile 32 byte AES anahtarı türetiliyor.Aynı shared secret'ten aynı anahtar çıkıyor.
AES-256-GCMMesaj şifreleniyor, authentication da ekleniyor.Sadece şifreleme değil, bütünlük ve doğrulama da var.
Not: Bu kod liboqs ve cryptography kütüphanelerini gerektirir. Yüklemek için:
bash
pip install liboqs cryptography


🚀 Go ile Aynı Şey (Trail of Bits Kütüphanesi ile)

Go sevenler için Trail of Bits'in saf Go implementasyonları şu anda en güvenilir seçeneklerden. Örnek kullanım:

go
import "github.com/trailofbits/go-ml-dsa"

// ML-DSA (Dilithium) ile imzalama
func signMessage(privateKey []byte, message []byte) []byte {
signature := ml_dsa.Sign(privateKey, message)
return signature
}


🔗 5. ŞİFRELİ MESAJLAŞMA ENTEGRASYONU – Signal/Matrix Tarzı Sistemlere PQC Eklemek​

Şimdi işin can alıcı kısmına geliyoruz. Mevcut şifreli mesajlaşma sistemlerine nasıl PQC eklersin?

📱 Signal / Matrix / WhatsApp Benzeri Sistemler​

Bu sistemler şu anda klasik ECDH + AES kullanıyor. Quantum geldiğinde, geçmiş mesajların tamamı çözülebilir (eğer "Harvest Now, Decrypt Later" yapılıyorsa).

Çözüm: Hybrid key exchange.

text
Klasik yöntem: ECDH (X25519) → shared secret
PQC yöntem: ML-KEM (Kyber) → shared secret
Hybrid: shared = SHA-256(ECDH_shared || Kyber_shared)
Böylece:

  • ECDH kırılsa bile Kyber sağlam
  • Kyber'de zafiyet çıksa ECDH sağlam
  • İkisi birden kırılmadıkça mesajlar güvende

🧩 Entegrasyon Stratejileri​



StratejiNasıl?Kullanım Alanı
Dual key exchangeHer iki algoritmayı da çalıştır, sonuçları birleştir.En güvenli, en çok işlem gücü ister.
PQ-onlySadece Kyber kullan.Riskli (PQC henüz yeterince test edilmedi).
Kademeli geçişÖnce hibrit, birkaç yıl sonra PQ-only.NSA/CISA'nın önerdiği yol.


🔧 Pratik Entegrasyon Adımları (Signal benzeri sistem için)​

  1. Protocol katmanında mesaj yapısına pq_ciphertext field'ı ekle
  2. Key Agreement sırasında hem X25519 hem Kyber çalıştır
  3. Ratchet (Double Ratchet) mekanizmasını PQC ile güncelle
  4. Prekey bundle içine hem klasik hem PQC public key'leri koy
⚠️ Uyarı: liboqs ve benzeri kütüphaneler hala deneysel aşamada. PRODUCTION'da kullanmadan önce mutlaka uzman denetiminden geçir.


📺 6. VİDEO KAYNAKLARI – İzleyerek Derinleş​

Kimse uzun yazı okumak istemez. İşte güncel, kaliteli video içerikleri:



VideoNe Anlatıyor?Link
NIST PQC Standards and Implementation UpdateNIST uzmanları Andrew Regenscheid ve Bill Newhouse ile 2024'te yayınlanan FIPS 203/204/205 standartlarının detaylı analizi. 2025 webinar.Class Central
Post-Quantum Cryptography ExplainedSecurity engineer'lar için pratik, non-matematiksel PQC giriş. Kyber, Dilithium, hybrid sistemler ve migration stratejileri. 2026.Cryptography101.ca
Post-Quantum Cryptography for 2025BSides London'dan quantum tehdidine hazırlık konuşması. 2026.Class Central / BSides
Warsaw IACR Summer School on PQCAkademik seviyede PQC dersleri – matematik isteyenler için. 2025.IDEAS NCBR YouTube
IDEMIA PQC Implementation TeaserGerçek dünyada PQC implementasyonu yapanların deneyimleri. YouTube
The Mathematics of Lattice-Based CryptographyAlfred Menezes'in lattice tabanlı kriptografi dersleri. Kyber ve Dilithium'un matematik temelleri.AnilKeshwani.github.io
Trail of Bits: Post-Quantum Go LibrariesGo ile side-channel-safe PQC implementasyonu yapmanın incelikleri. 2025.Trail of Bits Blog


🧩 7. ÖZET – Unutma Bunları​


Ne Yapacaksın?Nasıl Yapacaksın?
Bugün başlaPQC'yi "yarın" düşünme. Hybrid yaklaşımla bugünden entegre et.
Hybrid kullanKlasik + PQC birlikte çalışsın. Birinin kırılması diğerini kurtarsın.
Doğru kütüphaneyi seçPython'da liboqs, C#/Java'da Bouncy Castle, Go'da Trail of Bits, JS'de @noble.
Yan kanallara dikkatConstant-time kod, doğru RNG, "shift left" güvenlik.
Takip etNIST duyurularını, liboqs güncellemelerini, CVE'leri izle.
Denetimden geçirKendi yazdığın koda güvenme. Profesyonel denetim şart.


🎯 Vizyon​

"Kuantum bilgisayar gelince ne olacak?" diye sorma. "Ben bugün ne yapabilirim?" diye sor.
Bu rehberde anlattıklarımı uygulayan biri, yarının kripto apokalipsinde çıplak kalmayacak. Hybrid şifreleme kullan, doğru kütüphaneleri seç, yan kanal saldırılarına karşı önlem al. Gerisi teferruat.

Unutma: Savunması olmayanın saldırısı, sadece intihardır. Şimdi kalk ve bu yazdıklarımı bir kenara not et. Gölgelerde kalmak istiyorsan, kuantum ışığını asla üzerine çekmeyeceksin.


Bu rehber, eğitim ve farkındalık amaçlıdır. Tüm sorumluluk kullanıcıya aittir. Kendi sistemlerinde test et, izinli ortamlarda dene, yasal sınırları aşma.

Son güncelleme: Nisan 2026 – NIST FIPS 203/204/205 ve HQC standardizasyonu dahildir.
 
💬 SpyHackerz Telegram — Anlık tartışmalar ve duyurular için katıl
132,581Konular
3,282,495Mesajlar
317,774Kullanıcılar
benloee7Son Üye
Üst Alt