12 — Kriptografi
Şifreleme, hashing, simetrik/asimetrik algoritmalar. Verilerin gizliliğini ve bütünlüğünü sağlayan temel bilim.
🔐 Şifreleme Türleri
Simetrik Şifreleme
Aynı anahtar ile şifreleme ve deşifreleme yapılır. Hızlıdır, büyük veri bloklarında tercih edilir. Anahtar paylaşım problemi vardır — anahtar güvenli bir şekilde karşı tarafa ulaştırılmalıdır.
| Algoritma | Anahtar Boyutu | Durum |
|---|---|---|
| AES | 128/192/256 bit | ✅ Endüstri standardı |
| DES | 56 bit | ❌ Güvensiz, kullanılmamalı |
| 3DES | 168 bit | ⚠️ Eski, AES tercih edilmeli |
| ChaCha20 | 256 bit | ✅ Modern, hızlı |
Asimetrik Şifreleme
İki farklı anahtar kullanılır: açık anahtar (public key) şifreler, özel anahtar (private key) deşifre eder. Anahtar paylaşım problemini çözer. Dijital imza ve TLS/SSL bu sisteme dayanır.
| Algoritma | Kullanım | Güvenlik |
|---|---|---|
| RSA | Şifreleme, dijital imza | ✅ 2048+ bit |
| ECC | Şifreleme, TLS | ✅ Daha kısa anahtar |
| Diffie-Hellman | Anahtar değişimi | ✅ Anahtar anlaşması |
#️⃣ Hashing
Hash fonksiyonları, herhangi bir boyuttaki veriyi sabit uzunlukta bir değere dönüştürür. Tek yönlüdür — hash'ten orijinal veri geri elde edilemez. Veri bütünlüğü doğrulama, şifre saklama ve dijital imzalarda kullanılır.
| Algoritma | Çıktı Boyutu | Kullanım | Güvenlik |
|---|---|---|---|
| MD5 | 128 bit | Dosya doğrulama | ❌ Çatışma bulundu |
| SHA-1 | 160 bit | Eski sistemler | ❌ Güvensiz |
| SHA-256 | 256 bit | Dijital imza, TLS | ✅ Güvenli |
| SHA-3 | Değişken | Yeni uygulamalar | ✅ En yeni standart |
| bcrypt | 184 bit | Şifre saklama | ✅ Salt + iterasyon |
Python — Hash Hesaplama Örneği
import hashlib
metin = "Siber Güvenlik"
encoded = metin.encode('utf-8')
# MD5 (güvensiz, sadece dosya doğrulama için)
md5_hash = hashlib.md5(encoded).hexdigest()
print(f"MD5: {md5_hash}")
# SHA-256 (güvenli)
sha256_hash = hashlib.sha256(encoded).hexdigest()
print(f"SHA256: {sha256_hash}")
# SHA-3 (en yeni standart)
sha3_hash = hashlib.sha3_256(encoded).hexdigest()
print(f"SHA3: {sha3_hash}")
⚠️ Önemli Kurallar
- Şifreleri hash'leyerek saklayın, asla düz metin olarak tutmayın
- Salt kullanarak rainbow table saldırılarını engelleyin
- MD5 ve SHA-1 şifre hash'leme için kullanmayın
- Şifre hash'leme için bcrypt, scrypt veya Argon2 tercih edin
📝 Notlar 0