8 Sezar Şifrelemesi (Caesar Cipher)
Klasik kriptografinin en bilinen ve tarihsel olarak en eski algoritmalarından biri olan Sezar şifrelemesi, adını onu generalleriyle gizli mesajlaşmak için kullanan Romalı komutan Julius Sezar’dan alır. Orijinal kullanımında Sezar, alfabedeki her harfi daima üç harf ileri kaydırarak mesajlarını gizlemiştir.
Günümüzde “Sezar şifresi” terimi, sadece üç birimlik kaydırmayı değil; harflerin alfabe üzerinde belirli ve sabit bir sayı kadar ileri veya geri kaydırıldığı genelleştirilmiş kaydırma şifrelerini (shift ciphers) ifade etmek için kullanılır.
8.1 Sistemin Formal Tanımı
Tanım 8.1 (Sezar Şifrelemesinin Matematiksel Modeli) Bir önceki bölümde tanımladığımız beş bileşenli kriptosistem anatomisini \((\mathcal{P}, \mathcal{C}, \mathcal{K}, \mathcal{E}, \mathcal{D})\), İngiliz alfabesi kullanarak mod 26 üzerinde Sezar algoritmasına uyarlarsak şu yapıyı elde ederiz:
- Açık metin (\(\mathcal{P}\)): \(\mathbb{Z}_{26} = \{0, 1, 2, \dots, 25\}\)
- Şifreli metin (\(\mathcal{C}\)): \(\mathbb{Z}_{26} = \{0, 1, 2, \dots, 25\}\)
- Anahtar uzayı (\(\mathcal{K}\)): \(\mathbb{Z}_{26}\) — kullanılabilecek kaydırma miktarları.
- Şifreleme fonksiyonu (\(\mathcal{E}\)): Her \(k \in \mathcal{K}\) ve \(x \in \mathcal{P}\) için şifreleme, açık metin karakterine anahtar değerinin eklenmesiyle yapılır: \[e_k(x) \equiv x + k \pmod{26}\]
- Deşifreleme fonksiyonu (\(\mathcal{D}\)): Her \(y \in \mathcal{C}\) için açma işlemi, şifreli karakterden anahtar değerinin çıkarılmasıyla yapılır: \[d_k(y) \equiv y - k \pmod{26}\]
8.2 🔑 Anahtar Uzayının Boyutu ve Güvenlik Zafiyeti
Sezar şifrelemesinde anahtar uzayının büyüklüğü doğrudan seçilen alfabenin boyutuna bağlıdır. Şifreleme uzayımız 26 harfli İngiliz alfabesiyle sınırlandırıldığı için, harfleri kaydırabileceğimiz farklı miktar sayısı da \(26\)’dır.
İngiliz alfabesi (\(m = 26\)) için Sezar şifrelemesinin anahtar uzayı: \[|\mathcal{K}| = 26\]
Ancak \(k = 0\) durumu metni hiç değiştirmeyeceği için, etkili şifreleme yapan anahtar sayısı \(25\)’tir.
Bu neden kritik bir sorundur? Kerckhoffs prensibini hatırlayalım: düşmanın şifreleme algoritmasını (her harfe \(x + k \pmod{26}\) uygulandığını) bildiği kabul edilir; sistemin güvenliği yalnızca \(k\) anahtarının gizliliğine dayanmalıdır. Fakat olası yalnızca \(25\) anahtar bulunduğundan, düşman şifreli bir metni ele geçirdiğinde hiçbir zekice matematiğe başvurmadan kaba kuvvet saldırısı (brute force attack) ile tüm ihtimalleri deneyebilir. Bir insan bile kâğıt kalemle birkaç dakikada \(25\) kaydırmanın tamamını test edip anlamlı metni bulabilir.
Modern kriptografide güvenli kabul edilen sistemlerin anahtar uzayı (örneğin AES-256’da \(2^{256}\)) astronomik seviyededir. Sezar’ın alfabe boyutuna bağımlı \(25\)’lik anahtar uzayı ise modern standartlarda “yok” hükmündedir.
8.3 📝 Çözümlü Uygulamalar
Aşağıdaki örneklerde, bir önceki bölümdeki harf–sayı dönüşüm tablosunu referans alacağız. Çözümlere bakmadan önce tabloyu kullanarak denklemleri kendiniz kurmayı deneyin.
Örnek 8.1 Açık metni MATH olan bir mesajı, \(k = 7\) anahtarını kullanarak Sezar şifrelemesi ile şifreleyiniz.
Algoritmamız: \(e_7(x) \equiv x + 7 \pmod{26}\).
Her bir harfi sırayla tablodan sayısal karşılığına çevirip denklemde yerine koyalım:
- M \(\to 12 \implies 12 + 7 = 19 \implies\) T
- A \(\to 0 \implies 0 + 7 = 7 \implies\) H
- T \(\to 19 \implies 19 + 7 = 26 \equiv 0 \pmod{26} \implies\) A (modüler döngü burada devreye girdi)
- H \(\to 7 \implies 7 + 7 = 14 \implies\) O
Sonuç: MATH kelimesi, \(k = 7\) anahtarıyla THAO olarak şifrelenir.
\(\boxtimes\)
Örnek 8.2 \(k = 5\) anahtarı ile şifrelenmiş olan GTD kapalı metnini deşifre ediniz.
Algoritmamız: \(d_5(y) \equiv y - 5 \pmod{26}\).
- G \(\to 6 \implies 6 - 5 = 1 \implies\) B
- T \(\to 19 \implies 19 - 5 = 14 \implies\) O
- D \(\to 3 \implies 3 - 5 = -2\). Eksi bir sonuç bulduğumuzda, pozitif denki bulana kadar modülü ekleriz: \[-2 \equiv -2 + 26 \equiv 24 \pmod{26} \implies \textbf{Y}\]
Sonuç: Şifreli GTD metninin açık hâli BOY kelimesidir.
\(\boxtimes\)
Örnek 8.3 Düşman haberleşme hattından WKLV şifreli metnini ele geçirdiniz. Bunun aslında İngilizce THIS kelimesi olduğu bilindiğine göre, kullanılan Sezar anahtarını (\(k\)) cebirsel olarak bulunuz.
Şifreleme kuralının \(e_k(x) \equiv y \pmod{26}\) olduğunu biliyoruz. İlk harf olan T (açık metin) ile W (şifreli metin) arasındaki denklemi kurarak doğrudan çözüme ulaşabiliriz.
Tabloya göre:
- T \(\to 19\) (açık metin, \(x\))
- W \(\to 22\) (şifreli metin, \(y\))
Denklemi kuralım: \[19 + k \equiv 22 \pmod{26}\] \[k \equiv 22 - 19 \pmod{26}\] \[k \equiv 3 \pmod{26}\]
Doğrulama. Bulduğumuz \(k = 3\) anahtarının diğer harfler için de çalışıp çalışmadığını test edelim:
- H \((7) + 3 = 10 \implies\) K ✓
- I \((8) + 3 = 11 \implies\) L ✓
- S \((18) + 3 = 21 \implies\) V ✓
Sonuç: Düşmanın kullandığı anahtar \(k = 3\)’tür — yani orijinal Julius Sezar anahtarı.
\(\boxtimes\)
8.4 🕹️ İnteraktif Sezar Hesaplayıcı
Yukarıda öğrendiğimiz şifreleme ve deşifreleme fonksiyonlarının (\(x \pm k \pmod{26}\)) gerçek zamanlı olarak nasıl çalıştığını görmek için aşağıdaki aracı kullanabilirsiniz. Farklı mesajlar yazıp anahtar (\(k\)) değerini kaydırarak metnin şifreli uzayda nasıl evrildiğini test edin.
🧮 Canlı Sezar Hesaplayıcı
Yalnızca A–Z harfleri işleme alınır; rakamlar, boşluklar ve noktalama işaretleri olduğu gibi aktarılır.