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.
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:
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):
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!
26/02/2024 Merhaba, tekrardan hoş geldiniz! Umarım ilk yazım kriptolojinin temel terminolojisini size iyi bir şekilde tanıtmıştır. Artık ufaktan şifrelemeye ve şifre çözmeye başlıyoruz, fakat t arihten özel algoritma örneklerini incelemeye hemen başlamak yerine başlangıçta önemli temel kavramların oturtulması üzerine daha çok çalışacağız. Gelecekteki yazılarda birçok algoritma örneğini inceleyeceğiz, ancak bahsettiğim kavramların anlaşılması ile bu çok daha kolay olacaktır. Bu yüzden ilk yazılarda kavramsal bir başlangıç yapmayı uygun gördüm. Hazırsanız, kaldığımız yerden devam edelim. Buradan itibaren anlatımlarımı kod parçacıkları ile destekleyeceğim. Tüm kodlara aşağıdaki GitHub deposundan erişebilirsiniz: https://github.com/altugbeyhan/KriptolojiBlogSerisi/ Yer Değiştirme Şifrelemesi (Transposition/Permutation Cipher): Düz metnin harflerinin kendi içinde sıralanması ilkesine dayanır. Harflerin nasıl sıralanacağını sıralama anahtarı belirler. Aşağıda baz...
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...
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ı ç...