5 Zigzag (Rail Fence) ve Rota (Route) Şifrelemesi
Skytale bölümünde şifreleme tarifimiz iki adımdan oluşuyordu: harfleri tabloya satır satır yaz, sonra sütun sütun oku. Bu bölümde aynı oyunun daha yaratıcı iki çeşidini inceleyeceğiz. Değişen tek şey, harflerin üzerinde yürüdüğü yol: önce harfleri hayali bir çit üzerinde aşağı yukarı dalgalandıran zigzag şifrelemesi, ardından tabloyu dilediğimiz güzergâhta dolaşan rota şifrelemesi.
Baştan vurgulayalım: iki yöntem de bir önceki bölümde tanıştığımız yer değiştirme (transposition) ailesindendir. Hiçbir harf başka bir harfe dönüşmez; yalnızca adresi değişir. Dolayısıyla üreteceğimiz her şifreli metin, açık metnin özenle karıştırılmış bir anagramıdır — bu basit gözlem, bölümün sonunda güvenlik analizimizin de anahtarı olacak.
5.1 Zigzag (Rail Fence) Şifrelemesi
Yöntemin İngilizce adı rail fence, yani “çit rayı”dır; çünkü harflerin dizilimi, Amerikan çiftliklerindeki zikzak desenli ahşap çitlerin çapraz raylarını andırır. Türkçede kısaca zigzag şifrelemesi diyeceğiz.
Tanım 5.1 (Zigzag (Rail Fence) Şifrelemesi) \(k \geq 2\) bir tam sayı olsun. Zigzag şifrelemesi üç adımda çalışır:
- Üst üste \(k\) hayali ray (rail) düşünülür.
- Açık metnin harfleri en üst raydan başlayarak çapraz biçimde aşağı, en alt raya varınca yukarı yazılır; bu iniş–çıkış dalgası metin bitene kadar sürer. Desen kendini her \(2(k-1)\) adımda bir tekrarlar.
- Şifreli metin (ciphertext), rayların yukarıdan aşağıya sırayla, her rayın da kendi içinde soldan sağa okunmasıyla elde edilir.
Anahtar, yalnızca ray sayısı \(k\)’dir.
Buradaki \(2(k-1)\) periyodunu görmenin en kolay yolu dalgayı izlemek: \(k = 3\) ray için yol, ray numaraları cinsinden \(1, 2, 3, 2\) dizisini yazar ve başa döner — toplam \(2 \cdot (3-1) = 4\) adım. En üst ve en alt raylar dalganın “tepe” ve “dip” noktaları olduğu için desende birer kez, aradaki raylar ise hem inişte hem çıkışta uğranıldığı için ikişer kez görünür. Bu küçük muhasebe, birazdan şifre çözmenin tüm yükünü taşıyacak.
Örnek 5.1 MATEMATİK GÜZELDİR mesajını \(k = 3\) anahtarıyla zigzag yöntemiyle şifreleyelim; ardından yalnızca şifreli metni ve \(k\)’yi bilen Bob’un mesajı nasıl geri kazandığını adım adım izleyelim.
Çözüm
Şifreleme. Klasik şifrelerde alışıldığı üzere boşlukları atıyoruz (boşluklar kelime sınırlarını ele vererek düşmana bedava ipucu verir): metnimiz MATEMATİKGÜZELDİR, toplam \(17\) harf. Harfleri üç ray üzerinde dalgalandıralım:
1. ray: M · · · M · · · K · · · E · · · R
2. ray: · A · E · A · İ · G · Z · L · İ ·
3. ray: · · T · · · T · · · Ü · · · D · ·
Şimdi rayları sırayla okuyoruz: birinci ray MMKER, ikinci ray AEAİGZLİ, üçüncü ray TTÜD. Bunları uç uca ekleyince şifreli metin çıkar: MMKERAEAİGZLİTTÜD.
Şifre çözme: ray uzunluklarının muhasebesi. Asıl öğretici kısım burası. Bob’un elinde yalnızca MMKERAEAİGZLİTTÜD (\(17\) harf) ve \(k = 3\) anahtarı var; tabloyu görmüyor. Şifreli metni raylara bölebilmesi için önce her raya kaç harf düştüğünü hesaplaması gerekir.
Desenin periyodu \(2(k-1) = 2 \cdot 2 = 4\) adımdır ve her tam dalga (\(1, 2, 3, 2\)) birinci raya \(1\), ikinci raya \(2\), üçüncü raya \(1\) harf bırakır. Metin uzunluğunu periyoda bölelim:
\[17 = 4 \cdot 4 + 1\]
Demek ki \(4\) tam dalga ve artakalan \(1\) adım var. Tam dalgalardan gelen paylar: birinci raya \(4 \cdot 1 = 4\), ikinci raya \(4 \cdot 2 = 8\), üçüncü raya \(4 \cdot 1 = 4\) harf. Artakalan tek adım ise desenin ilk adımıdır, yani birinci raya düşer. Sonuç:
| Ray | Tam dalgalardan | Artıktan | Toplam |
|---|---|---|---|
| Birinci | \(4\) | \(1\) | \(5\) |
| İkinci | \(8\) | \(0\) | \(8\) |
| Üçüncü | \(4\) | \(0\) | \(4\) |
Sağlama: \(5 + 8 + 4 = 17\) ✓. Artık Bob şifreli metni bu uzunluklarda dilimleyebilir: ilk \(5\) harf MMKER birinci ray, sonraki \(8\) harf AEAİGZLİ ikinci ray, son \(4\) harf TTÜD üçüncü raydır.
Son adım, zigzag yolunu boş tabloda yeniden yürümek: \(1, 2, 3, 2, 1, 2, 3, 2, \dots\) desenini izleyip her adımda sırası gelen rayın soldaki ilk kullanılmamış harfini almak yeterli:
ray sırası: 1 2 3 2 1 2 3 2 1 2 3 2 1 2 3 2 1
alınan harf: M A T E M A T İ K G Ü Z E L D İ R
Harfler yan yana MATEMATİKGÜZELDİR metnini, yani açık mesajımızı verir. Şifreleme de çözme de tutarlı: dalga aritmetiği çalışıyor.
\(\boxtimes\)
Zigzag çözerken en sık yapılan hata, şifreli metni raylara eşit parçalara bölerek dağıtmaya çalışmaktır. Oysa örnekte gördüğümüz gibi raylar eşit dolmaz: uç raylar dalganın tepe ve dip noktaları olduğundan seyrek, orta raylar iki kat sık dolar. Doğru bölme her zaman \(n = q \cdot 2(k-1) + r\) muhasebesinden geçer.
5.2 Rota (Route) Şifrelemesi
Zigzagda yol sabittir: aşağı, yukarı, aşağı, yukarı… Rota (route) şifrelemesi ise yolu tamamen serbest bırakır. Alice ile Bob, harflerin tabloda hangi güzergâhla okunacağını önceden kararlaştırır; Eve bu güzergâhı bilmediği sürece elindeki harf yığınını dizemez.
Tanım 5.2 (Rota (Route) Şifrelemesi) Alice ile Bob önceden \(m \times n\) boyutlu bir tablo ve bir okuma rotası (route) üzerinde anlaşır:
- Açık metin tabloya satır satır yazılır; boş kalan hücreler anlamsız dolgu (padding) harfleriyle tamamlanır.
- Şifreli metin, tablonun anlaşılan rota boyunca dolaşılıp harflerin bu sırayla okunmasıyla elde edilir.
Anahtar üç bilginin birleşimidir: tablonun boyutu, rotanın türü ve rotanın başlangıç köşesi ile yönü.
Rota için hayal gücü tek sınırdır; klasik repertuvarın gözdeleri şunlardır:
- Spiral: bir köşeden başlayıp saat yönünde (ya da tersinde) içe doğru kıvrılarak tabloyu salyangoz gibi dolaşmak,
- Boustrophedon: köşeden köşeye, satırları bir soldan sağa bir sağdan sola süpürmek — Yunanca adı “öküzün tarlayı sürüşü”nden gelir; öküz saban çekerken satır sonunda geri dönüp ters yönde ilerler,
- Yılankavi sütunlar: sütunları bir aşağı bir yukarı, iniş çıkışlarla kat etmek.
Örnek 5.2 GİZLİ MEKTUP mesajını \(3 \times 4\) bir tabloya yazıp sol üst köşeden başlayan, saat yönünde içe kıvrılan spiral rotayla şifreleyelim.
Çözüm
Boşluğu atınca metnimiz GİZLİMEKTUP, yani \(11\) harf; tablomuzda ise \(3 \cdot 4 = 12\) hücre var. Boş kalacak tek hücreye dolgu olarak X ekliyoruz ve harfleri satır satır yerleştiriyoruz:
G İ Z L
İ M E K
T U P X
Şimdi anlaşılan rotayı yürüyelim: sol üst köşeden üst satır boyunca sağa (G İ Z L), sağ kenardan aşağı (K X), alt satır boyunca sola (P U T), sol kenardan yukarı (İ) ve son olarak içeride kalan iki hücre soldan sağa (M E). Harfleri bu sırayla dizince şifreli metin çıkar: GİZLKXPUTİME.
Şifre çözme. Bob tam tersini yapar: \(3 \times 4\) boyutunda boş bir tablo çizer, şifreli metnin harflerini aynı spiral güzergâh boyunca hücrelere tek tek yerleştirir. Spiral, harfleri tam da Alice’in okuduğu hücrelere geri bırakacağından tablo yukarıdaki hâline döner; Bob tabloyu satır satır okuyup GİZLİMEKTUPX metnine ulaşır. Sondaki X’in dolgu olduğu bellidir, atılır: GİZLİ MEKTUP.
\(\boxtimes\)
Örnekteki şifreli metnin ilk dört harfine bakın: GİZL — açık metnin ilk satırı, olduğu gibi! Sol üst köşeden saat yönünde başlayan spiralin ilk hamlesi daima üst satırı kopyalar. Başlangıç köşesini veya yönü değiştirmek bu sızıntıyı başka bir kenara taşır ama yok etmez: rota şifrelerinde açık metnin bitişik harf blokları, şifreli metinde de bitişik bloklar hâlinde gezinir. Dikkatli bir Eve için bu, bulmacanın yarısının hazır çözülmüş olması demektir.
5.3 Anahtar Uzayı ve Güvenlik
Bu iki şifreyi Kerckhoffs prensibinin terazisine koyalım: düşmanın yöntemi bildiğini, yalnızca anahtarı bilmediğini varsayacağız.
Zigzagda anahtar tek bir sayıdır. Üstelik seçenekler de kısıtlıdır: \(n\) harflik bir mesajda işe yarayan ray sayıları \(2 \leq k \leq n-1\) aralığında kalır (\(k \geq n\) seçilirse her harf kendi rayına düşer ve “şifreli” metin açık metnin kopyası olur). Bizim \(17\) harflik örneğimizde bu, topu topu \(15\) olası anahtar demek. Eve tüm adayları kâğıt kalemle bir çay molasında, bilgisayarla göz açıp kapayıncaya kadar dener; anlamlı Türkçe üreten \(k\) kendini hemen ele verir. Bu, tam anlamıyla bir kaba kuvvet saldırısı (brute force attack) senaryosudur.
Rota şifresinin anahtarı daha zengindir: tablo boyutu, rota türü, başlangıç köşesi ve yön birlikte seçilir. Yalnızca spiral ailesini sayalım: \(4\) köşe \(\times\) \(2\) dönüş yönü \(\times\) \(2\) kıvrılma yönü (içe veya dışa) \(= 16\) farklı rota. Buna boustrophedon çeşitlerini, yılankavi sütunları, köşegen güzergâhları ve olası tablo boyutlarını da eklesek, en cömert sayımla birkaç yüz anahtara ulaşırız. Kulağa zigzagdan iyi geliyor; ama modern ölçekte birkaç yüz sayısı da sıfırdan farksızdır.
| Şifre | Anahtarın içeriği | Kabaca anahtar sayısı |
|---|---|---|
| Skytale | çubuğun kalınlığı (satır sayısı) | bir avuç |
| Zigzag | ray sayısı \(k\) | \(n - 2\) dolayında |
| Rota | tablo boyutu + rota + köşe + yön | birkaç yüz |
Asıl zafiyet ise anahtar sayısından da derindedir ve bütün transpozisyon ailesini vurur: harflerin yerini değiştirmek, sayılarını değiştirmez. Örneğimizdeki MMKERAEAİGZLİTTÜD metninde — tıpkı açık metinde olduğu gibi — ikişer tane M, A, T, E ve İ vardır. Eve bir harf sayımı yaptığında dağılımın Türkçenin doğal harf dağılımıyla çakıştığını görür ve iki şeyi birden öğrenir: karşısındaki şifre bir yerine koyma değil, bir transpozisyondur ve elindeki metin açık metnin bir anagramıdır. Usta çözücüler için gerisi sabırlı bir bulmacadır: sık harf öbeklerini yan yana getirerek anagram çözer gibi metni dizerler. Tarih bunun çarpıcı bir örneğini saklar: Amerikan İç Savaşı’nda Kuzey ordusunun telgraf servisi, harfler yerine tam kelimeleri tabloya dizen kelime tabanlı rota şifreleri kullanmış; Güney’in kriptanalistleri bu mesajlar karşısında öyle çaresiz kalmıştır ki ele geçirdikleri şifreli metinleri kimi zaman gazetelerde yayımlayıp okurlardan çözüm yardımı istemişlerdir.
Peki harflerin yerini değiştirmek boşa kürek çekmek mi? Tam tersine. Transpozisyonun yaptığı iş — açık metindeki komşulukları kırıp harfleri metnin geneline dağıtmak — ileride Shannon prensiplerini incelerken göreceğimiz yayılma (diffusion) fikrinin atasıdır. Tek başına zayıf olan bu işlem, yerine koymayla kaynaştırılıp defalarca tekrarlandığında bambaşka bir güce kavuşur: ileride inceleyeceğimiz DES algoritmasının kalbinde, bitlerin yerini değiştiren P-permütasyonu olarak transpozisyon modern kriptografiye geri dönecek.
5.4 Bir Sonraki Durak: Mesajın Varlığını Gizlemek
Zigzag da rota da mesajın içeriğini gizler; ama Eve’in eline geçen MMKERAEAİGZLİTTÜD gibi bir metin, anlamsız harf yığınıyla adeta “ben bir şifreyim!” diye bağırır ve saldırganı davet eder. Ya mesaj, kimsenin şüphesini çekmeyen masum bir metnin içine saklanabilseydi? Bir sonraki bölümde Francis Bacon’ın zarif düzenini inceleyeceğiz: içeriği değil, mesajın varlığını gizleyen bir şifre.