6 Bacon Şifreleme
İngiliz filozof ve devlet adamı Francis Bacon (1561–1626), bilimsel yöntemin kurucularından biri olduğu kadar gizli yazışma sanatının da tutkulu bir zanaatkârıydı. Gençliğinde Paris’teki diplomatik görevi sırasında geliştirdiğini söylediği yöntemini ilk kez 1605 tarihli Of the Proficience and Advancement of Learning adlı eserinde kısaca anmış; sistemin tam tarifini ise 1623’te yayımladığı Latince genişletme De Augmentis Scientiarum’da vermiştir.
Bacon’ın hayali, kendi sözleriyle omnia per omnia — “her şeyi her şeyle yazmak” — idi: gizli mesaj, şifreli olduğu belli olan tuhaf bir harf yığınına değil, tamamen masum görünen sıradan bir metnin içine saklanacaktı. Mektubu ele geçiren Eve, ortada gizlenecek bir şey olduğundan şüphelenmeyecekti bile.
Bu bölüm, kitabın harflerin yerlerini değiştiren yöntemlere ayırdığımız kısmında yer alsa da, Bacon’ın yöntemi teknik olarak bir yer değiştirme (transposition) şifresi değildir; hatta tam anlamıyla bir şifre bile sayılmaz. İki katmandan oluşur:
- Herkesçe bilinebilecek sabit bir kodlama (encoding) — her harfe değişmez bir kod sözcüğü atanır; ortada gizli bir anahtar yoktur.
- Asıl marifet olan steganografi (steganography) — Yunanca steganós (örtülü) + graphein (yazmak): mesajın içeriğini değil, bizzat varlığını gizleme sanatı.
Terminoloji bölümünde gördüğümüz kriptografi tanımını hatırlayın: kriptografi mesajı okunamaz kılar, ama şifreli metnin ortada olduğu herkesçe görülür. Steganografi ise tam tersine, ortada bir mesaj olduğu gerçeğini saklar. Bacon’ın yöntemi bu ikinci aileye aittir; tarihsel akışı bozmamak için onu klasik şifrelerin arasında, ait olduğu çağda anlatıyoruz.
6.1 Beş Yuvalı Kod: Çift Harfli Alfabe
Bacon’ın sisteminin ilk katmanı, bugün çift harfli şifre (biliteral cipher) olarak anılan kodlamadır. Fikir şaşırtıcı derecede sadedir: alfabenin her harfini, yalnızca iki sembolden — \(a\) ve \(b\) — oluşan beş yuvalık bir kod sözcüğüyle temsil etmek.
Peki neden tam olarak beş yuva? Her yuvaya iki değerden biri yazılabildiğine göre, beş yuvanın üretebileceği farklı kalıp sayısı
\[2 \cdot 2 \cdot 2 \cdot 2 \cdot 2 = 2^5 = 32\]
olur; bu, 26 harflik alfabenin tamamına yeter (\(32 \geq 26\)) ve üstelik 6 kalıp da artar. Dört yuva ise yetmezdi: \(2^4 = 16 < 26\). Yani beş, iki sembolle bütün alfabeyi kodlayabilen en küçük yuva sayısıdır.
Tanım 6.1 (Bacon Kodu (Çift Harfli Kod)) Bacon kodu, alfabenin her harfine \(\{a, b\}\) sembolleri üzerinden 5 uzunluğunda bir kod sözcüğü (codeword) atayan sabit bir kodlamadır. Modern 26 harfli sürümde kural şudur: harfin alfabedeki sıra numarası alınır (A için \(0\), B için \(1\), …, Z için \(25\)) ve bu sayı, yalnızca iki rakamla sayan bir düzende — \(a\) küçük, \(b\) büyük rakam olacak biçimde — beş haneli olarak yazılır.
abbaa'dır. İki değerli beş yuva toplam 32 farklı kalıp üretir; bu da 26 harfin tamamına yeter.Bu kurala göre A \(= aaaaa\), B \(= aaaab\) ile başlar; her adımda “iki rakamlı sayaç” bir ilerler ve Z \(= bbaab\) ile biter. Tablonun tamamı şöyledir:
| Harf | Kod | Harf | Kod | Harf | Kod |
|---|---|---|---|---|---|
| A | aaaaa |
J | abaab |
S | baaba |
| B | aaaab |
K | ababa |
T | baabb |
| C | aaaba |
L | ababb |
U | babaa |
| D | aaabb |
M | abbaa |
V | babab |
| E | aabaa |
N | abbab |
W | babba |
| F | aabab |
O | abbba |
X | babbb |
| G | aabba |
P | abbbb |
Y | bbaaa |
| H | aabbb |
Q | baaaa |
Z | bbaab |
| I | abaaa |
R | baaab |
Bacon’ın kendi çağının Latin kökenli alfabesinde I ile J tek harf sayılıyordu; U ile V de öyle. Bu yüzden orijinal tablo 24 harflikti ve I/J ile U/V ortak birer kod paylaşıyordu. Sonuç olarak tarihî metinlerde göreceğiniz tablonun kodları, I/J birleşmesinin ardından K’den itibaren bizimkinden bir miktar kayar: örneğin orijinal tabloda T \(= baaba\) iken modern tabloda T \(= baabb\)’dir. Bu bölümde Tablo 6.1’daki modern 26 harfli sürümü kullanacağız.
Kodlamanın kendisi mekanik bir sözlük işleminden ibarettir: mesajın her harfi tablodan karşılığıyla değiştirilir.
Örnek 6.1 MAT kelimesini Bacon koduyla kodlayınız.
Çözüm
Tablo 6.1’dan her harfin kod sözcüğünü sırayla okuyalım:
- M — alfabede 12 numaralı harf \(\to\)
abbaa - A — 0 numaralı harf \(\to\)
aaaaa - T — 19 numaralı harf \(\to\)
baabb
Sonuç: MAT kelimesinin Bacon kodu, beşerli üç grup hâlinde
abbaa aaaaa baabb
dizisidir. Toplam \(3 \times 5 = 15\) sembol kullandık.
\(\boxtimes\)
6.2 Asıl Sihir: Mesajı Görünmez Kılmak
Buraya kadar yaptığımız şeyin güvenlikle pek ilgisi yok: abbaa aaaaa baabb dizisini bir kâğıda yazıp gönderirseniz, bu tuhaf dizi şifreli bir mesaj taşıdığınızı dünyaya ilan eder. Bacon’ın dehası ikinci katmandadır: bu diziyi hiç göndermezsiniz.
Bunun yerine, gizlenecek her harf için en az beş harf içeren, tamamen masum herhangi bir taşıyıcı metin (cover text) seçilir. Taşıyıcı metnin her harfi, birbirinden belli belirsiz farklı iki biçimden biriyle dizilir: Bacon’ın önerisinde bunlar birbirine çok benzeyen iki matbaa yazı biçimiydi. Sistemi bilen alıcı, harflerin ne söylediğine değil nasıl basıldığına bakar: birinci biçimdeki her harfi \(a\), ikinci biçimdeki her harfi \(b\) olarak okur, elde ettiği diziyi beşerli gruplar ve tablodan çözer.
Taşıyıcı metnin içeriği tamamen önemsizdir — alışveriş listesi de olabilir, hava durumu sohbeti de. Mesaj harflerde değil, harflerin biçimlerinde yaşar.
Aşağıdaki örnekte iki biçimi gözle kolay seçilsin diye abartılı biçimde ayırıyoruz: normal harf \(a\), kalın (bold) harf \(b\) anlamına gelsin. Gerçek bir uygulamada fark bundan çok daha ince olurdu.
Örnek 6.2 MAT mesajını, Kediler süt sever taşıyıcı cümlesinin içine Bacon yöntemiyle gizleyiniz.
Çözüm
Adım 1 — Kapasite kontrolü. Gizlenecek mesaj 3 harf olduğundan \(3 \times 5 = 15\) yuvaya ihtiyacımız var. Taşıyıcı cümlede boşluklar sayılmaz: Kediler süt sever tam 15 harf içerir — kapasite tam yetiyor.
Adım 2 — Kod dizisini harflerin üzerine sermek. Örnek 6.1’da bulduğumuz abbaa aaaaa baabb dizisini, taşıyıcının 15 harfiyle soldan sağa eşleştirelim (kelime sınırlarının gruplarla örtüşmesi gerekmez):
K e d i l e r s ü t s e v e r
a b b a a a a a a a b a a b b
Adım 3 — Biçimleri uygulamak. \(b\)’ye denk gelen harfleri kalın, \(a\)’ya denk gelenleri normal dizersek masum cümlemiz ortaya çıkar:
Kediler süt sever
Eve’in gördüğü tek şey kedilerle ilgili sıradan bir cümledir.
Adım 4 — Alıcının çözümü. Sistemi bilen Bob ters yönde ilerler: harflerin biçimlerinden \(a/b\) dizisini çıkarır, beşerli gruplar ve Tablo 6.1’dan çözer:
\[\underbrace{abbaa}_{\textbf{M}} \; \underbrace{aaaaa}_{\textbf{A}} \; \underbrace{baabb}_{\textbf{T}}\]
Gizli mesaj geri geldi: MAT.
abbaa aaaaa baabb, yani MAT mesajı ortaya çıkar.\(\boxtimes\)
6.3 Güvenlik ve Tarihsel Önemi
Güvenlik gözlüğümüzü takalım. Bacon’ın sisteminde dikkat çekici bir eksik var: anahtar yok. Kod tablosu sabittir ve iki biçimin hangisinin \(a\) hangisinin \(b\) olduğu sistemin kendisinin parçasıdır. Yöntemi bilen herkes, ele geçirdiği metindeki biçim farkını görebildiği anda mesajı çözer. Kerckhoffs prensibi diliyle söylersek: sistemin bütün güvenliği, algoritmanın — daha doğrusu ortada bir mesaj olduğunun — gizli kalmasına dayanır. Gizleme bir kez fark edildiğinde geriye hiçbir koruma kalmaz. Bu yüzden modern kriptografi steganografiyi şifrelemenin yerine değil, olsa olsa yanına koyar.
Buna karşılık yöntemin düşünsel mirası, güvenlik değerinin kat kat üzerindedir. Bacon’ın yaptığı şeye bir kez daha bakın: alfabenin her harfini, yalnızca iki değer alabilen beş sembole indirgedi. Bu, harfleri iki durumlu sinyallere kodlama fikrinin — yani ikili kodlamanın — zamanından 250 yıldan fazla önce ortaya konmuş hâlidir. On dokuzuncu yüzyılın sonunda telgraf için geliştirilen ve her harfi beş adet iki durumlu sinyalle temsil eden Baudot kodu ile bilgisayar çağının ASCII’si, Bacon’ın bu fikrinin doğrudan torunlarıdır. Aynı fikri 0 ve 1’lerle, modern kriptografiye geçişte yeniden karşılayacağız.
Son bir uyarı notu: Bacon’ın şifresinin ünü zamanla bilim dışı sulara da taşmış, on dokuzuncu ve yirminci yüzyılda “Baconcı” araştırmacılar Shakespeare’in eserlerini aslında Bacon’ın yazdığını kanıtlamak umuduyla First Folio baskılarının harf biçimlerinde bu şifreyi aramışlardır — yeterince istekli bir gözün istatistiksel titizlik olmadan her yerde “gizli mesaj” bulabileceğini gösteren ibretlik bir hikâye.