Ana içeriğe atla

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!

Bu blogdaki popüler yayınlar

MATEMATİK OLİMPİYATLARINA HAZIRLIK: SAYILAR TEORİSİ DERS VİDEOLARI

Matematik Olimpiyatları için Sayılar Teorisi video eğitimine hoş geldiniz! Bu eğitim serisi Prof. Dr. Mustafa Özdemir tarafından yazılmış Matematik Olimpiyatlarına Hazırlık 3 - Sayılar Teorisi kitabından olimpiyatlara ilk adımı birlikte atabilmemiz için özenle seçtiğim çeşitli ülkelerin olimpiyat sorularının çözümlerini içermektedir. Sayılar teorisini 8 başlıkta ele alıyoruz: Bölünebilme Asal Sayılar ve Çarpım Fonksiyonları En Büyük Ortak Bölen ve En Küçük Ortak Kat Modüler Aritmetik Modüler Aritmetiğin Özel Teoremleri: Fermat, Euler, Wilson ve Çin Kalan Teoremleri Denklikler Tam Sayılarda Denklem Çözümleri Tam Değer Fonksiyon Bu videolar özellikle TÜBİTAK, AÜMO gibi matematik olimpiyatlarına yönelik olsa da matematik bölümü öğrencileri de bu videolardan elbette yararlanabilir.   Eğer bu videoların hepsini doğru bir şekilde bitirirseniz, Matematik olimpiyatlarının sistemini ve bu sistemin günümüz matematik eğitimine göre farklarını görecek, gerçek matematiği yapabilmenin tadını çıkar

Kriptoloji Serisi - 1: Temel Kriptoloji Terminolojisi ve Kitap Tavsiyeleri

25/02/2024 Herkese merhaba! Serinin ilk yazısında temel kriptoloji terminolojisini tanıtacağım. Ayrıca literatürü kolaylıkla takip edebilmeniz adına kavramları İngilizceleriyle birlikte vereceğim. Yazının sonunda bazı kitap tavsiyelerim bulunmaktadır. Faydalı olmasını dilerim. İsterseniz kriptoloji hakkında hazırlamış olduğum yoğun içerikli videoyu da izleyebilirsiniz:  https://www.youtube.com/watch?v=_Xc84ISoG1w Hazırsanız başlayalım! Kriptoloji (Cryptology):   Matematiğin gizli yazılar veya şifreli belgeler ile ilgilenen alt dalıdır (kısaca şifrelerin bilimi diyebiliriz). İki alt başlık altında incelenmektedir: Kriptografi (Cryptography): Verilerin güvenli bir şekilde şifrelenmesi ile ilgilenir ve bu amaca yönelik çözümler önerir.  Kriptanaliz (Cryptanalysis): Şifreli verilerin çözülmesi, kırılması ve önerilen çözümlerin güvenlik analizi ile ilgilenir. Not 1:  Kriptoloji kelimesinin yerine kriptografi kelimesinin kullanılabildiğini görebilirsiniz. Doğru kullanıma dikkat ediniz. Not

PYTHON PROGRAMLAMAYA ÇOK HIZLI BİR GİRİŞ

Python Kodlama Platformları OnlineGDB:  https://www.onlinegdb.com/ Google Colab:  https://colab.research.google.com/ Eğer bilgisayarınıza yazılım kurmak isterseniz: PyCharm:  https://www.jetbrains.com/pycharm/download/  (OnlineGDB alternatifi) Anaconda:  https://www.anaconda.com/products/distribution  (Google Colab alternatifi) Ücretsiz Python Eğitimleri (Sertifikalı) BTK Akademi Eğitimleri: https://www.btkakademi.gov.tr/portal/course/sifirdan-ileri-seviye-python-programlama-5877 https://www.btkakademi.gov.tr/portal/course/veri-bilimi-icin-python-ve-tensorflow-11705 Turkcell Geleceği Yazanlar Eğitimleri: https://gelecegiyazanlar.turkcell.com.tr/konu/egitim/python-programlama-101/pythona-giris https://gelecegiyazanlar.turkcell.com.tr/konu/ileri-python Global AI Hub Eğitimi: https://globalaihub.com/courses/introduction-to-python-turkish/ Diğer Bağlantılar Python Türkçe Dokümantasyon:  https://docs.python.org/tr/3/index.html ChatGPT:  https://chat.openai.com/chat/