Simetrik şifreleme: Caesar'dan AES'e, çalışma modları
Şifrelemenin temel dili, Caesar ve Vigenère ile elle şifreleme, XOR ve tek kullanımlık şifre, DES/AES fikri, ECB/CBC/CTR modları ve anahtar dağıtımı sorunu. Elle şifreleme ve mod soruları burada.
Kriptografi, ağ güvenliğinin motoru. Gizlilik, bütünlük ve kimlik doğrulama hedeflerinin hepsi sonunda bir şifreleme, özet ya da imza işlemine dayanır. Bu hafta iki sayfa: bu sayfada simetrik şifreleme, sonraki sayfada açık anahtar, özet fonksiyonları, imzalar ve TLS. Sınavda bu sayfadan elle şifreleme (Caesar, Vigenère, XOR), mod izleri ve anahtar uzayı hesapları çıkar. Altın kurallar:
- Simetrik = tek ortak anahtar. Şifreleyen ve çözen aynı anahtarı bilir.
- Harfleri sayıya çevir, mod 26 al. A = 0, B = 1, …, Z = 25.
- XOR kendini götürür. .
- ECB’yi kullanma. Aynı blok aynı çıktıyı verir, desen sızar.
- Anahtarı tekrar kullanma. OTP’de ve CTR’de anahtar akışı bir kez kullanılır.
Temel kavramlar
Açık metin (plaintext) , şifreleme algoritması ve anahtar ile şifreli metne (ciphertext) dönüşür: . Deşifre: . Simetrik şifrelemede (symmetric encryption) iki tarafta aynı vardır.
Kerckhoffs ilkesi: algoritma gizli değildir; bütün güvenlik anahtarın gizliliğindedir. Algoritmayı saklamaya dayanan güvenlik (security through obscurity) ilk tersine mühendislikte çöker.
Saldırganın elindeki bilgiye göre kriptanaliz türleri: yalnız şifreli metin (ciphertext-only), bilinen açık metin (known-plaintext), seçilmiş açık metin (chosen-plaintext). En kaba saldırı kaba kuvvet (brute force): bütün anahtarları denemek. bitlik anahtar için en kötü , ortalama deneme.
Klasik şifreler
Caesar (kaydırma) şifresi
Her harf alfabede adım kaydırılır:
Örnek: NETWORK, .
N(13)+3=16 Q E(4)+3=7 H T(19)+3=22 W W(22)+3=25 Z
O(14)+3=17 R R(17)+3=20 U K(10)+3=13 N
NETWORK → QHWZRUN
Sadece 25 anlamlı anahtar var; hepsini denemek saniyeler sürer.
Tek alfabeli yerine koyma ve frekans analizi
Her harfi alfabenin rastgele bir permütasyonuna eşlersen anahtar olur. Kaba kuvvet imkânsız, ama şifre yine kırılır: dilde harf sıklıkları sabittir (İngilizcede E, T, A en sık). Şifreli metinde en sık geçen harf büyük ihtimalle E’dir. Ders: büyük anahtar uzayı tek başına güvenlik demek değildir.
Vigenère şifresi
Bir anahtar kelime tekrarlanır ve her harf, altındaki anahtar harfi kadar kaydırılır. Aynı açık harf farklı konumlarda farklı şifrelenir, frekans dağılımı düzleşir.
Örnek: SECURE, anahtar KEY (K = 10, E = 4, Y = 24).
açık S(18) E(4) C(2) U(20) R(17) E(4)
anahtar K(10) E(4) Y(24) K(10) E(4) Y(24)
toplam 28 8 26 30 21 28
mod 26 2 8 0 4 21 2
şifreli C I A E V C
SECURE → CIAEVC. İki E harfi farklı çıktı (I ve C). Anahtar uzunluğu bulunursa (tekrar eden kalıplardan) şifre yine Caesar parçalarına bölünüp kırılır.
XOR ve tek kullanımlık şifre
Bilgisayarda harf yerine bitlerle çalışırız. XOR (): bitler aynıysa 0, farklıysa 1.
P = 1011 0110
K = 0110 1101
C = 1101 1011 (P ⊕ K)
C ⊕ K = 1011 0110 = P
Tek kullanımlık şifre (one-time pad, OTP): anahtar tamamen rastgele, mesaj kadar uzun ve bir kez kullanılır. Bu koşullarda teorik olarak kırılamaz. Pratikte anahtarı dağıtmak çok zordur. Anahtar iki kez kullanılırsa olur ve güvenlik çöker.
Akış şifreleri (stream cipher) OTP’yi taklit eder: kısa bir anahtardan uzun bir sözde rastgele anahtar akışı üretir ve açık metinle XOR’lar.
Modern blok şifreler: DES ve AES
Blok şifre (block cipher) sabit boylu bir bloğu, anahtara bağlı bir permütasyonla başka bir bloğa çevirir. Turlar (rounds) boyunca yerine koyma (substitution, karıştırma) ve yer değiştirme (permutation, yayma) tekrarlanır. Amaç: açık metnin ya da anahtarın tek bir biti değişince çıktının yaklaşık yarısının değişmesi (avalanche).
| DES | AES | |
|---|---|---|
| Blok | 64 bit | 128 bit |
| Anahtar | 56 bit (etkin) | 128 / 192 / 256 bit |
| Tur | 16 | 10 / 12 / 14 |
| Durum | Kaba kuvvetle kırıldı | Bugünün standardı |
AES’in bir turu dört adımdır: SubBytes (bayt bayt S-kutusu ile yerine koyma), ShiftRows (satırları kaydırma), MixColumns (sütunları karıştırma) ve AddRoundKey (tur anahtarıyla XOR). Ayrıntılarını ezberlemen beklenmez; sıralamayı ve amacı bilmen yeter.
Kaba kuvvet karşılaştırması (saniyede deneme):
DES 2^56 ≈ 7.2 × 10^16 → ≈ 72 058 s ≈ 20 saat
AES-128 2^128 ≈ 3.4 × 10^38 → ≈ 1.1 × 10^19 yıl
Çalışma modları
Blok şifre tek bir bloğu şifreler. Uzun mesaj için bir çalışma modu (mode of operation) gerekir. Göstermek için oyuncak bir 4 bitlik şifre kullanalım: = ‘yı sola 1 bit döndür. , açık metin blokları .
ECB (electronic codebook)
Her blok bağımsız: .
E(1010): 1010 ⊕ 0110 = 1100 → döndür → 1001
E(1010): aynı → 1001
E(0011): 0011 ⊕ 0110 = 0101 → döndür → 1010
ECB: 1001 1001 1010
İlk iki blok aynı, şifreli halleri de aynı. Saldırgan “bu iki blok aynı” bilgisini öğrendi. Resimlerde desen görünür kalır.
CBC (cipher block chaining)
Her blok şifrelenmeden önce bir önceki şifreli blokla XOR’lanır. İlk blok için rastgele bir başlangıç vektörü (initialization vector, IV) kullanılır: , . :
C1 = E(1010 ⊕ 1001) = E(0011) = rotl(0101) = 1010
C2 = E(1010 ⊕ 1010) = E(0000) = rotl(0110) = 1100
C3 = E(0011 ⊕ 1100) = E(1111) = rotl(1001) = 0011
CBC: 1010 1100 0011
Aynı iki açık blok artık farklı şifrelendi. Deşifre: . CBC şifrelemesi sıralıdır (paralel yapılamaz), deşifre paralel yapılabilir. IV gizli olmak zorunda değildir ama tahmin edilemez olmalıdır.
CTR (counter)
Blok şifre bir sayaç değerini şifreler, çıkan anahtar akışı açık metinle XOR’lanır: . Blok şifre bir akış şifresine dönüşür. Sayaç ‘dan başlasın:
E(0100) = rotl(0010) = 0100 C1 = 1010 ⊕ 0100 = 1110
E(0101) = rotl(0011) = 0110 C2 = 1010 ⊕ 0110 = 1100
E(0110) = rotl(0000) = 0000 C3 = 0011 ⊕ 0000 = 0011
(Oyuncak şifrede son anahtar akışı bloğu 0000 çıktı; gerçek AES’te bu ihtimal ihmal edilebilir.) CTR tamamen paraleldir ve deşifre için sadece gerekir. Bedeli: aynı anahtarla aynı nonce/sayaç asla tekrarlanmamalı, yoksa OTP’nin anahtar tekrarı sorununa düşersin.
TUZAK · CBC’de neyle XOR’lanır? Açık metin, bir önceki şifreli blokla XOR’lanır, önceki açık blokla değil. İlk blok IV ile XOR’lanır. Sınavda önceki açık bloğu kullanan bütün zinciri yanlış hesaplar.
İPUCU · modları bir cümleyle ayırt et. ECB: bağımsız, desen sızar. CBC: zincir, IV rastgele. CTR: sayacı şifrele ve XOR’la, nonce tekil. Modern sistemler şifreleme ile bütünlüğü birleştiren GCM gibi modlar kullanır.
Anahtar dağıtımı sorunu
Simetrik şifreleme hızlıdır, ama iki tarafın önceden aynı anahtarı paylaşması gerekir. kişinin her çifti ayrı anahtar isterse:
Üstelik bu anahtarlar güvenli bir kanaldan dağıtılmalı. İnternette hiç tanışmadığın bir sunucuyla nasıl anahtar paylaşırsın? Cevap sonraki sayfada: açık anahtarlı kriptografi ve Diffie-Hellman. Pratikte ikisi birlikte kullanılır: açık anahtarla bir oturum anahtarı kurulur, veri hızlı simetrik şifreyle (AES) şifrelenir.
Sık yapılan hatalar
| Yanlış düşünce | Doğrusu |
|---|---|
| Caesar’da Z + 3 = ”]” | Mod 26: Z(25) + 3 = 28 → 2 = C |
| Büyük anahtar uzayı = güvenli | 26! anahtarlı yerine koyma frekans analiziyle kırılır |
| Vigenère’de anahtar bir kez yazılır | Mesaj boyunca tekrarlanır |
| OTP anahtarı tekrar kullanılabilir | Tekrar edilirse sızar |
| AES-256’nın bloğu 256 bit | Blok her zaman 128 bit; 256 anahtar boyu |
| ECB güvenli çünkü AES kullanıyor | Mod zayıfsa aynı bloklar aynı çıkar |
| CBC’de önceki açık blokla XOR | Önceki şifreli blokla (ilk blokta IV) |
| CTR’de nonce tekrar kullanılabilir | Aynı anahtarla nonce tekrarı anahtar akışını tekrarlar |
| Algoritmayı gizlemek güvenliği artırır | Kerckhoffs: güvenlik sadece anahtarda |
| 1 bit uzun anahtar biraz daha güvenli | Her ek bit kaba kuvvet süresini iki katına çıkarır |
Kendini test et
Sınavdaki gibi İngilizce sorular. Önce kâğıt kalemle çöz, sonra cevabı aç.
Encrypt the word ATTACK with a Caesar (shift) cipher using key k = 7.
Cevabı göster
Kural: , A = 0.
A(0) → 7 = H. T(19) → 26 mod 26 = 0 = A. T → A. A → H. C(2) → 9 = J. K(10) → 17 = R.
Sonuç: HAAHJR. T harfinde 26'yı aşınca başa sarmayı (mod 26) unutma.
The ciphertext KHOOR was produced by a Caesar cipher with key 3. Recover the plaintext.
Cevabı göster
Deşifre: . Her harfi 3 geri kaydır.
K → H, H → E, O → L, O → L, R → O. Sonuç HELLO.
Anahtar bilinmeseydi bile sadece 25 anlamlı anahtar olduğu için hepsi denenirdi. Caesar kaba kuvvete karşı hiç dayanıksızdır.
Encrypt PACKET with the Vigenère cipher using the keyword LOCK (A = 0).
Cevabı göster
Anahtar tekrarlanır: P A C K E T altına L O C K L O yazılır. Her harf çifti toplanır, mod 26.
P(15) + L(11) = 26 → 0 = A
A(0) + O(14) = 14 = O
C(2) + C(2) = 4 = E
K(10) + K(10) = 20 = U
E(4) + L(11) = 15 = P
T(19) + O(14) = 33 → 7 = H
Sonuç AOEUPH. Aynı harf (K ve C) farklı konumlarda farklı şifrelenebilir; frekans analizini zorlaştıran budur.
Compute the one-time pad ciphertext C = P XOR K for P = 11001010 and K = 01010011.
Cevabı göster
XOR bit bit: aynıysa 0, farklıysa 1.
P = 1 1 0 0 1 0 1 0
K = 0 1 0 1 0 0 1 1
C = 1 0 0 1 1 0 0 1. Kontrol: . XOR iki kez uygulanınca kendini götürür, deşifre aynı işlemdir.
A toy 4-bit block cipher is E_K(x) = rotate-left-by-1(x XOR K) with K = 0110. In ECB mode, what is the ciphertext of the block 1100?
Cevabı göster
Önce XOR: .
Sola 1 bit döndür: en soldaki 1 en sağa geçer. .
ECB'de her blok bağımsız şifrelenir, bu kadar. Aynı blok her zaman 0101 verir.
Same toy cipher (K = 0110). In CBC mode with IV = 0011, what is the first ciphertext block C1 for plaintext block P1 = 1100?
Cevabı göster
CBC: .
.
, sola döndür: .
. Bir önceki soruda aynı blok ECB'de 0101 vermişti; IV sonucu değiştirdi.
An image is encrypted with AES, and the outline of the original picture is still visible in the ciphertext. Which mode of operation was most likely used?
- CBC with a random IV
- CTR with a unique nonce
- ECB
- GCM
Cevabı göster
ECB her bloğu bağımsız ve aynı anahtarla şifreler: aynı açık metin bloğu her zaman aynı şifreli bloğu verir. Görüntüde aynı renkli alanlar aynı bloklara dönüşür, şekil görünür kalır. CBC ve CTR zincirleme ya da sayaç kullandığı için aynı bloklar farklı çıkar. ECB tek bloktan uzun veride kullanılmamalı.
A cipher has a 40-bit key. An attacker can test 10^9 keys per second. How long does an exhaustive key search take in the worst case?
Cevabı göster
Anahtar sayısı .
s dakika. Ortalama yarısı kadar.
Karşılaştır: 56 bit DES saniyede denemeyle yaklaşık 20 saat, 128 bit AES ise yaklaşık yıl. Her ek bit süreyi ikiye katlar.
A group of 20 people wants every pair to communicate privately using symmetric encryption, with a separate key per pair. How many keys are needed?
Cevabı göster
Her çift için bir anahtar: .
Kişi sayısı arttıkça anahtar sayısı karesel büyür (100 kişi için 4950). Açık anahtarlı sistemde her kişi bir anahtar çifti tutar: 20 çift yeter. Anahtar dağıtımı sorunu açık anahtarlı kriptografinin ana motivasyonudur.
What is the block size of AES?
- 56 bits
- 64 bits
- 128 bits
- 256 bits
Cevabı göster
AES'in blok boyu her zaman 128 bittir. Anahtar boyu 128, 192 ya da 256 bit olabilir (10, 12, 14 tur). 64 bit DES'in blok boyu, 56 bit DES'in etkin anahtar boyudur. "AES-256" anahtarı anlatır, bloğu değil.
Two messages are encrypted with a stream cipher (or one-time pad) using the SAME keystream K. What can an eavesdropper who sees both ciphertexts compute without knowing K?
- K itself, directly
- P1 XOR P2
- The hash of K
- Nothing useful
Cevabı göster
. Anahtar yok oldu. Açık metinlerden birinin bir parçası tahmin edilirse ötekinin aynı parçası ve o konumdaki anahtar ortaya çıkar. Bu yüzden tek kullanımlık şifre gerçekten tek kullanılır, CTR modunda da nonce asla tekrarlanmaz.
Kerckhoffs's principle states that a cryptosystem should be secure even if:
- the key is published
- everything about the system except the key is public
- the attacker controls the network
- the algorithm is kept secret
Cevabı göster
Kerckhoffs ilkesi: güvenlik sadece anahtarın gizliliğine dayanmalı; algoritma herkes tarafından bilinse de sistem güvenli kalmalı. Algoritmayı gizlemek (security through obscurity) tersine mühendislikle bozulur. AES'in algoritması açıktır, gücü 128 bitlik anahtardan gelir.
Doğrulama: Caesar ve Vigenère şifreleri, XOR işlemleri, oyuncak 4-bit blok şifre ile ECB/CBC/CTR izleri (CBC deşifre ile geri kontrol edildi), anahtar uzayı süreleri, 26! ve ikili anahtar sayıları node ile hesaplandı (verify/SEN2008/12.mjs). Mod ve ilke soruları kavramsal.