Ana içeriğe atla

Kriptoloji Serisi - 3: Yerine Koyma (İkame) Şifrelemesi


27/02/2024 

Merhaba, hoş geldiniz. Hazırsanız hemen başlayabiliriz!


Bir önceki yazıda "yer değiştirme" kavramını ele almıştık. Şimdi "yerine koyma (ikame)" kavramına bakalım. Yer değiştirme şifrelemesinde şifreli metnin düz metnin harflerinin sıralanması ile elde edildiğini hatırlayınız. Yerine koyma şifrelemesinde ise şifreli metinde düz metinde olmayan harfler bulunabilmektedir. Yöntem, her bir harfin başka bir harf ile değiştirilmesi esasına dayanır. Şimdi detaylıca ele alalım.


Yerine Koyma (İkame) Şifrelemesi (Substitution Cipher): Bir alfabenin her bir harfine karşılık, anahtar tarafından belirlenen başka bir harf atanır. Yerine koyma yöntemlerini basitçe üçe ayırabiliriz:


1) Tekli Alfabetik Yerine Koyma (Monoalphabetic Substitution Cipher): Alfabedeki her bir harf, bir ve yalnız bir harf ile eşlenir. Dolayısıyla, düz metindeki özdeş karakterlerin şifrelenmesi sonucu aynı karakter elde edilir. Benzer şekilde, şifreli metindeki özdeş karakterlerin deşifresi sonucunda da aynı karaktere dönülür. Tarihten bazı örnekleri şunlardır:

  • Temura - Atbeş, Avgad ve Albam (Temurah - Atbash, Avgad and Albam)
  • Sezar (Caesar)
  • ROT13
  • Alberti
  • Afin (Affine)


Örnek (Şifreleme): Alice, "MATEMATİK" düz metnini aşağıdaki Q klavye üzerinde her bir harfi bir sağındaki ile şifreleyecektir (yalnızca harfler ile şifreleme işlemi yapıldığını, diğer tuşların görmezden gelindiğini varsayalım).




Yukarıdaki "Q klavye" ve "bir sağındaki" karakter ile şifreleme işleminin bu algoritmada anahtar görevi gördüğüne dikkat edelim. Anahtarı K=(Q,1) şeklinde ifade edebiliriz.

Her ne kadar klavye üzerinde görmesi kolay olsa da, bir atama tablosu çıkarmayı görmekte fayda var. Aşağıdaki atama tablosu aracılığıyla şifreleme yapabilir ve çözebilirsiniz (1. satır düz metin karakterlerini, 2. satır ise eşlenen şifreli metin karakterlerini göstermektedir):



Bundan faydalanarak düz metni aşağıdaki şekilde şifreleyebiliriz:

M --> Ö
A --> S
T --> Y
E --> R
M --> Ö
A --> S
T --> Y
İ --> A (sağında harf olmadığı, yani taştığı için en soldaki harf ile eşlendi)
K --> L

Böylece Alice şifreli metni "ÖSYRÖSYAL" olarak bulur (dikkat edin, düz metinden bambaşka harfler ortaya çıktı). Alice bu metni Bob'a gönderir.

Örnek (Şifre Çözme): Bob, Alice'ten "ÖSYRÖSYAL" şifreli metnini almıştır. Bob, Alice'in yukarıdaki klavyeyi kullandığını ve her karakteri bir sağındaki ile şifrelediğini bilmektedir. O halde Bob da aynı klavyeyi kullanarak ve her karakteri "bir solundaki" ile eşleyerek düz metne dönebilir:

Ö --> M
S --> A
Y --> T
R --> E
Ö --> M
S --> A
Y --> T
A --> İ (solunda harf olmadığı, yani taştığı için en sağdaki harf ile eşlendi)
L --> K

O halde Bob düz metni "MATEMATİK" olarak elde eder. 

Not: Oluşturulan bu yerine koyma yöntemi tekli alfabetiktir. Çünkü dikkat edilirse her bir harf, bir ve yalnız bir harf ile eşlenmiştir. Örneğin, düz metindeki tüm "M" harflerinin yerine şifreli metinde "Ö" konmuştur. Benzer şekilde, şifreli metindeki tüm "Y" harflerinin düz metinde karşılığı "T" harfidir. Çoklu alfabetik yerine koyma yöntemlerinde ise aynı harfin birden fazla harf ile eşlenebildiğini göreceğiz.

M  A  T  E  M  A  T  İ  K
Ö  S  Y  R  Ö  S  Y  A  L

PYTHON KODU
ÇIKTI

ŞİFRELİ METİN: ÖSYRÖSYAL
DÜZ METİN: MATEMATİK

Siz de deneyin! "MATEMATİK" düz metnini bu sefer aşağıdaki "F klavye" üzerinde ve harfleri "2 harf solundaki" ile eşleyerek şifreleyin. Yani anahtar bu sefer K=(F,-2) olacak. Atama tablosunu kendiniz oluşturmayı ayrıca deneyin.





2) Çoklu Alfabetik Yerine Koyma (Polyalphabetic Substitution Cipher): Tekli alfabetik yerine koymada her harf bir ve yalnız bir harf ile eşleniyordu. Çoklu alfabetik yerine koymada ise alfabedeki her bir harf, birden fazla harf ile eşlenir. Yani düz metindeki özdeş karakterlerin şifrelenmesi sonucu farklı karakterler elde edilebilir. Benzer şekilde, şifreli metindeki özdeş karakterlerin deşifresi sonucunda da farklı karakterlere dönülebilir. Tarihten bazı örnekleri şunlardır:
  • Trithemius
  • Bellaso
  • Vigenère
  • Otomatik Anahtar Şifrelemesi (Autokey/Autoclave Cipher)
  • Çalışan Anahtar Şifrelemesi (Running Key Cipher)

Örnek (Şifreleme): Alice, Bob'a "ASLA ASLA DEME" düz metnini şifreleyip iletmek istiyor. Bunun için öteleme anahtarını K=(1,2,3) olarak seçiyor. Bu anahtarı, şifreleme işleminde düz metindeki harfleri sırasıyla 1, 2, 3, 1, 2, 3, ... şeklinde ileriye ötelemek için kullanacaktır. O halde Alice, düz metni aşağıdaki şekilde şifreler:



Böylece Alice, şifreli metni "BTOBCUMCGFOĞ" olarak elde eder. Dikkat edilirse düz metindeki A harfleri hem B hem de C şeklinde şifrelenmiştir. Benzer şekilde, şifreli metindeki O harfi ise hem L hem de M harfi olarak deşifre edilecektir. Alice bu metni Bob'a gönderir. Bu sebeple bu şifreleme yöntemi "çoklu yerine koyma" olarak anılır.

Örnek (Şifreleme): Bob, Alice'ten "BTOBCUMCGFOĞ" şifreli metnini almıştır. Ayrıca öteleme anahtarının K=(1,2,3) olduğunu biliyor. O halde Bob, şifreli metni deşifre etmek için harfleri sırasıyla 1, 2, 3, 1, 2, 3, ... şeklinde geriye öteleyecektir:



ÇIKTI

ŞİFRELİ METİN: BTOBCUMCGFOĞ
DÜZ METİN: ASLAASLADEME

Siz de deneyin! Sevdiğiniz bir sözü K=(1,9,2,3) anahtarı ile, düz metnin harflerini sırasıyla 1, 9, 2, 3, 1, 9, 2, 3, ... ileri öteleyerek şifreleyiniz. Ardından, elde ettiğiniz şifreli metni çözerek düz metne ulaşınız.

3) Çoklu Harfle Yerine Koyma/Blok Şifreleme (Block Cipher): Bu yerine koyma yönteminde düz metin bloklar halinde temsil edilir ve şifreleme işlemi bloklar ile gerçekleştirilir. Blok şifreleme yöntemlerinde bloklar, sıklıkla lineer cebrin yapı taşı olan matrisler ile ilişkilendirilir. Tarihten bazı örnekleri şunlardır:
  • Polybius
  • ADFGX ve ADFGVX
  • VIC
  • Playfair
  • İkili Blok (Bifid Cipher)
  • Üçlü Blok (Trifid Cipher)
  • Dört Kare (Four-square Cipher)
  • Hill 
  • Afin Hill (Affine Hill Cipher)
  • Veri Şifreleme Standardı (DES - Data Encryption Standard)
  • Gelişmiş Şifreleme Standardı (AES - Advanced Encryption Standard)

Örnek: Bir önceki örnek blok şifreleme olarak da değerlendirilebilir. Çünkü anahtar K=(1,2,3) olduğu için metni üç harfli bloklara ayırıp her bir bloğu ayrı ayrı şifrelemiş olduk aslında. Blok şifrelemeyi şu şekilde görebiliriz (matris ifadesiyle):

(Şifreleme)

DÜZ METİN: "ASLA ASLA DEME"
DÜZ METİN BLOKLARI: "ASL", "AAS", "LAD", "EME"
ANAHTAR: (1,2,3)


ŞİFRELİ METİN: "BTOBCUMCGFOĞ"

(Şifre Çözme)

ŞİFRELİ METİN: "BTOBCUMCGFOĞ"
ŞİFRELİ METİN BLOKLARI: "BTO", "BCU", "MCG", "FOĞ"
ANAHTAR: (1,2,3)


DÜZ METİN: "ASLA ASLA DEME"

Bir önceki örnekte her harfin nasıl şifrelendiğini gördük. Mesela ilk A harfi, B şeklinde şifrelenmişti. Bu örnekte ise aslında bloklar şifreleniyor gibi görmeliyiz. Dolayısıyla "ASL" bloğu "BTO", "AAS" bloğu "BCU", "LAD" bloğu "MCG" ve "EME" bloğu ise "FOG" şeklinde şifrelendi. Burada harf bazında değil, gördüğünüz üzere blok bazında şifreleme işlemi yapıldı. Çoklu alfabetik yerine koyma yöntemiyle çok daha net ayrışan örnekleri gelecekte ele alacağız. Blok şifreleme başlı başına bir konu, detaylıca inceleyeceğiz. Şimdilik bu kadar yeterli olacaktır. 

Umarım faydalı olmuştur. 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/