Simetrik Şifreleme
- İngilizcesi
- Symmetric Encryption
- Okunuşu
- simetrik inkripşın
Kısaca
Simetrik şifreleme, şifrelemek ve çözmek için aynı gizli anahtarı kullanır; hızlı olduğundan saklanan ve aktarılan verinin çoğunu, genellikle AES ile korur.
Simetrik şifreleme (symmetric encryption) nedir?
Simetrik şifrelemede anahtara sahip olan herkes düz metni şifreli metne ve geri çevirebilir. Hâkim algoritma, 2001'de ABD standardı olarak seçilen ve modern işlemcilerce doğrudan desteklenen AES'tir; anahtarları 128, 192 ya da 256 bittir. ChaCha20 ise AES donanım desteği olmayan cihazlarda hızlı olan, yaygın kullanılan bir alternatiftir.
Modern sistemler, veriyi şifreleyip ayrıca her türlü oynamayı yakalayan bir etiket de ekleyen AES-GCM ya da ChaCha20-Poly1305 gibi kimlik doğrulamalı (authenticated) modlar kullanır. Her mesajın benzersiz bir nonce'a, yani yalnızca bir kez kullanılan bir sayıya ihtiyacı vardır; aynı anahtarla bir nonce'u yeniden kullanmak şifrelemeyi tamamen kırabilir. Temel parçaları elle birleştirmek yerine iyi incelenmiş bir kütüphane kullanmak bu tür hatalardan kaçınmayı sağlar.
Zor olan kısım anahtarı paylaşmaktır. İki tarafın da ona ihtiyacı vardır ve onu ele geçiren herkes her şeyi okuyabilir. TLS gibi protokollerin yeni bir simetrik anahtarda anlaşmak için açık anahtarlı kriptografiyle başlayıp asıl veri için çok daha hızlı olan simetrik şifrelemeye geçmesinin nedeni budur. Disk şifreleme, şifreli veritabanları ve parola yöneticilerinin hepsi bir parolayla ya da bir anahtar yönetim servisiyle korunan simetrik anahtarlara dayanır.
Sık yapılan bir yanlış, simetrik şifrelemenin açık anahtarlı şifrelemeden daha zayıf olduğunu düşünmektir. 128 bitlik bir AES anahtarı güvenli kabul edilir; açık anahtarlı algoritmalar ise benzer güç için çok daha uzun anahtarlara ihtiyaç duyar. İkisi birlikte kullanılır: açık anahtarlar anahtar değişimini çözer, simetrik anahtarlar veriyi korur.
Önemli noktalar
- Simetrik şifreleme, şifrelemek ve çözmek için paylaşılan tek bir anahtar kullanır.
- AES standart algoritmadır; ChaCha20 yaygın bir alternatiftir.
- AES-GCM gibi kimlik doğrulamalı modlar oynamayı da yakalar.
- Nonce'lar aynı anahtarla asla yeniden kullanılmamalıdır.
- TLS açık anahtarlı kriptografiyle bir simetrik anahtarda anlaşır, sonra onu kullanır.
Örnek
import os
from cryptography.hazmat.primitives.ciphers.aead import AESGCM
key = AESGCM.generate_key(bit_length=256) # keep this secret, e.g. in a key manager
aes = AESGCM(key)
nonce = os.urandom(12) # unique for every message
ciphertext = aes.encrypt(nonce, b"card ending 4242", b"order-1001")
# Decrypting with the same key; any change to the data raises InvalidTag
plaintext = aes.decrypt(nonce, ciphertext, b"order-1001")
print(plaintext)Sık sorulan sorular
Simetrik ile asimetrik şifreleme arasındaki fark nedir?
Simetrik şifreleme hem şifreleme hem çözme için paylaşılan tek bir anahtar kullanır ve çok hızlıdır. Asimetrik şifreleme ise şifrelemek için açık, çözmek için özel bir anahtar kullanır; bu anahtar paylaşma sorununu çözer ama çok daha yavaştır.
AES güvenli mi?
Evet. GCM gibi kimlik doğrulamalı bir modda, benzersiz nonce'larla kullanılan 128 bitlik ya da 256 bitlik anahtarlı AES güvenli kabul edilir; hükümetler, bankalar ve bütün büyük tarayıcılar tarafından kullanılır.
Simetrik şifreleme nerede kullanılır?
Verinin şifrelendiği neredeyse her yerde: el sıkışmadan sonraki HTTPS trafiği, tam disk şifreleme, şifreli veritabanı alanları ve yedekler, VPN'ler, mesajlaşma uygulamaları ve parola yöneticileri.
Sık karşılaştırılanlar
İlgili sayfalar
- ŞifrelemeGüvenlik, s. 42Şifreleme, veriyi bir anahtarla karıştırarak yalnızca doğru anahtara sahip olanın onu özgün ve okunabilir hâline geri çevirebilmesini sağlama işlemidir.
- Açık Anahtarlı KriptografiGüvenlik, s. 1Açık anahtarlı kriptografi, veriyi şifreleyip imzalamak için herkesin görebildiği bir açık anahtar ile gizli tutulan bir özel anahtardan oluşan çift kullanır.
- TLSGüvenlik, s. 44TLS, ağda gönderilen veriyi şifreleyen ve sunucunun kimliğini doğrulayan, HTTPS, e-posta ve birçok başka bağlantıyı güvenceye alan kriptografik protokoldür.
- HashingGüvenlik, s. 12Hashing, bir girdiyi tek yönlü bir fonksiyonla sabit uzunlukta bir değere dönüştürmektir; veri bütünlüğünü doğrulamaya ve parolaları güvenle saklamaya yarar.
- Secrets ManagementGüvenlik, s. 34Secrets management, parola, API anahtarı ve token gibi hassas kimlik bilgilerini güvenle saklama, dağıtma, döndürme ve denetleme pratiğidir.
- Uçtan Uca ŞifrelemeGüvenlik, s. 45Uçtan uca şifreleme (E2EE), mesajları gönderenin cihazında şifreler; yalnızca hedeflenen alıcılar çözebilir, mesajı taşıyan servis bile çözemez.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin