Kriptoloji Serisi - 4: Scytale Sarmalı Şifrelemesi


28/02/2024

Merhaba, tekrar hoş geldiniz. Hazırsanız başlayalım!


Şimdi birlikte tarihin ilk kriptografik cihazı olarak anılan "Scytale (veya Skytale) Sarmalı" yöntemini ele alacağız. Scytale sarmalı, milattan önce 500'lü yıllarda yapılan Peloponez Savaşlarında Spartalılar tarafından Atinalılara karşı kullanılmıştır.




Şimdi şifreleme yönteminin detaylarını ele alalım:


Şifreleme: Şerit sarmala sarılır ve düz metin satırlar boyunca yazılır. Şerit açılınca şifreli metin elde edilir.

Şifre Çözme: Üzerinde şifreli metin olan şerit, aynı boyutlardaki sarmala sarılarak düz metne ulaşılır.


Not: Scytale sarmalı, dikkat edeceğiniz üzere bir "yer değiştirme" yöntemi örneğidir. Çünkü düz metnin harfleri kendi arasında sarmala göre sıralanacaktır. 

Not: Burada sarmalın boyutları veya şeridin sarmala toplam sarım sayısı anahtar olarak düşünülebilir. Çünkü şifreli metni taşıyan bir şeridi farklı boyutlarda bir sarmala sarılması sonucunda (sarım sayısı da değişeceğinden) düz metin doğru bir şekilde elde edilemeyecektir. Biz anahtar olarak şeridin sarmala sarım sayısını tercih edeceğiz, bu daha anlaşılır olacaktır.


Örnek (Şifreleme): Alice, Bob'a "GİZLİ BULUŞMA YEDİDE KONGRE MERKEZİNDE" düz metnini Scytale sarmalı yöntemiyle şifreleyip iletecektir. Şifreleme işlemini sarmala 6 turda sarılmış şerit üzerinde yapacaktır (anahtar = sarım sayısı = 6). Buna göre Alice, aşağıdaki şekilde şifreleme işlemini yapar:



Bu çizim üzerinde tüm metni göstermek zor. Sarmal olmadan, kâğıt üstünde şifreleme yapmanın basit yolu, sarım sayısı kadar sütun içeren basit bir tablo üzerinde şifreleme yapmaktır:



Dikkat edilirse, son satırda doldurma harfleri kullanılması gerekmiştir. Çünkü,
  • Düz metnin harf sayısı = 34
  • Anahtar (sarım sayısı) = 6
  • 34'ü 6'ya bölersek bölüm 5, kalan 4
  • --> SATIR SAYISI = bölüm+1 = 5+1 = 6 (kalan 0 olmadığı için +1 ekledik, eğer kalan 0 olsaydı satır sayısı = bölüm olacaktı)
  • --> DOLDURMA HARFİ SAYISI = sarım sayısı-kalan = 6-4 = 2

Böylece şerit sarmaldan ayrıldığında aşağıdaki şekilde bir görüntü oluşacaktır:



Dolayısıyla şifreli metin "GUYKMİİLEOENZUDNRDLŞİGKEİMDREXBAEEZX" şeklinde bulunur (sarımların ardışıklığından, yani yukarıda oluşturduğumuz tabloda sıra sıra sütunları okuyarak elde edeceğimiz metindir). Alice, Bob'a bu metni içeren şeridi veriyor.

Örnek (Şifre Çözme): Bob, Alice'ten "GUYKMİİLEOENZUDNRDLŞİGKEİMDREXBAEEZX" şifreli metnini içeren şeridi almıştır. Ayrıca bu şifreli metnin Scytale sarmalı ile oluşturulduğunu ve şeridin sarım sayısının (yani anahtarın) 6 olduğunu biliyor (ya da, Alice'in kullandığı sarmalın bir eşi de Bob'da vardır diyebiliriz). O halde Bob, bu şeridi sarım sayısı 6 olacak şekilde bir sarmala sarar ve metni satır satır okursa "GİZLİ BULUŞMA YEDİDE KONGRE MERKEZİNDE" düz metnine ulaşır. Dikkat ediniz ki,
  • Şifreli metnin harf sayısı = 36
  • Anahtar (sarım sayısı) = 6
  • --> SATIR SAYISI = 36/6 = 6
  • --> Şifreli metin, 6 (= satır sayısı) harfli bloklara ayrılırsa sarımlar elde edilmiş olur ve böylece düz metne ulaşılabilir:
    • "GUYKMİ" --> 1. SARIM
    • "İLEOEN" --> 2. SARIM
    • "ZUDNRD" --> 3. SARIM
    • "LŞİGKE" --> 4. SARIM
    • "İMDREX" --> 5. SARIM
    • "BAEEZX" --> 6. SARIM
PYTHON KODU

Bu kodu kopyalayıp OnlineGDB (https://www.onlinegdb.com) sitesinde çalıştırabilirsiniz: 

https://github.com/altugbeyhan/KriptolojiBlogSerisi/blob/main/Ders4-Scytale.py

ÇIKTI:

ŞİFRELİ METİN: GUYKMİİLEOENZUDNRDLŞİGKEİMDREXBAEEZX

DÜZ METİN: GİZLİBULUŞMAYEDİDEKONGREMERKEZİNDEXX


Siz de deneyin! "İSTİKBAL GÖKLERDEDİR" düz metnini Scytale sarmalına 4 turda sarılmış şerit üzerinde şifreleyin. Ardından elde ettiğiniz şifreli metni deşifre ediniz. Ayrıca gerçek hayatta da bu şifrelemeyi mutlaka deneyin.


Bir sonraki yazıda görüşmek üzere!