Doğrusal Şifreleme (Affine Cipher)
Yazan: Şadi Evren ŞEKER
Bu şifreleme yöntemindeki amaç geometride doğrunun denklemi olarak bilinen y=ax+b doğrusal fonksiyonunu şifreleme işleminde kullanmaktır. Buna göre x, şifrelenecek mesajı (plain text), y şifrelenmiş mesajı (cipher text) ifade etmekte olup a ve b ikilisi anahtarı oluşturmaktadır.
Örnek mesaj: “baba dede”
Anahtar: (3,2) yani a=3, b=2 olarak verilmiş
Şifreli mesajın oluşuturulması: b harfi için 2. harf olduğu kabul edilirse, 3×2 + 2 = 8 olarak bulunur yani karşılığı allfabenin 8. harfidir. Bu harf ‘h’ harfidir. Diğer harflerde benzer şekilde hesaplanır. Örneğin ‘e’ harfine karşılık gelen harf için 3×5 +2 = 17 yani ‘q’ harfi bulunur.
Şifreli mesaj: “hehe nqnq”
Bu şifreleme yönteminin aslında bir yerine koyma şifrelemesi (substitution cipher) olduğu söylenebilir. Buna göre sadece hangi karakterin hangi karakter yerine konulacağı bir formüle bağlanmıştır.
Bu şifreleme yöntemine saldırı için frekans analizi yöntemi kullanılabilir.
örnek için şifreli mesaj’ı 26 harflik alfabe için
“hehe nqnq” olarak buluyorum.
Bu şifreleme yönteminde kullanılan harfler ve her herfin sayısal hesaplaması aşağıda verilmiştir.
b: 2
3×2+2 = 8 -> h
a: 1
3×1+2 = 5 -> e
d: 4
3×4+2 = 14 -> n
e: 5
3×5+2 = 17 -> q
Bu durumda şifreli mesaj sizin de belirttiğiniz gibi “hehe nqnq” oluyor. Yazıdaki bu hatayı düzeltiyorum, uyarınız için teşekkürler.
burada boşlukta karakter gibi kabul edilir. bunu atlamışsınız.. baba dede arasında boşluk varsa elbette!
Doğrusal şifreleme gibi ilkel şifreleme yöntemlerinde boşluk karakteri atlanır ve şifrelenmez. Bunun sebebi frekans saldırısı gibi yöntemlerde önemli bir açık oluşturmalarıdır.
Bir metinde doğal olarak en çok geçen karakter boşluk karakteridir ve bu sayede tahmin edilmesi kolaydır. Boşluk karakterinin tahmin edilmesinin yanında kelime boyutlarını ele vermesi itibariyle de kullanılması risklidir.
Dolayısıyla boşluk karakteri, ilkel şifrelemelerde genelde atlanır ve kelimeler birleştirilerek şifrelenir.
dipnot: boşluklardan sonra her bir dil için harflerin ortalama kullanım yoğunlukları vardır. örneğin ingilizce için yoğundan seyreğe doğru sırasıyla etoanirsh… diye gider. (Şadi Bey’in yorumda verdiği makalede tüm harfler için grafikler var)
Hatirlatmak isterim yanlis bilgi olmasin affine kurali A harfini 1. Degil 0. Olarak almaktadir.
güzel anlatmışsınız da keşke bunun deşifrelemesini de anlatsaymışsınız
Atladığınız bir nokta var. Alfabedeki harfleri kullanırken index 0’dan başlar. b 2. harf ise çarpımdaki indexi 2 değil a=0, b=1 olduğundan 1’dir.
https://en.wikipedia.org/wiki/Affine_cipher