Affine şifreleme

Affine şifreleme veya Doğrusal şifreleme, bir tür monoalfabetik ikame şifresi olup, bir alfabedeki her harf sayısal eşdeğeriyle eşleştirilir, basit bir matematiksel fonksiyon kullanılarak şifrelenir ve tekrar bir harfe dönüştürülür. Kullanılan formül, her harfin başka bir harfe şifrelendiği ve tekrar geri döndüğü anlamına gelir, yani şifre esasen hangi harfin hangisine gideceğini düzenleyen bir kurala sahip standart bir ikame şifresidir. Bu nedenle, tüm ikame şifrelerinin zayıflıklarına sahiptir. Her harf fonksiyonu ile şifrelenir, burada kaydırmanın büyüklüğüdür.

Tanım
Burada, boyutundaki bir alfabenin harfleri ilk olarak aralığındaki tam sayılara eşlenir. Daha sonra modüler aritmetik kullanarak her bir düz metin, harfinin karşılık geldiği tam sayıyı bir şifreli metin harfine karşılık gelen başka bir tamsayıya dönüştürür.
Tek bir harf için şifreleme işlevi şöyledir;
burada modül , alfabenin boyutu ve ile ise şifrenin anahtarlarıdır. değeri, ve aralarında asal olacak şekilde seçilmelidir. Şifre çözme fonksiyonu şöyledir;
burada , modulo 'nın modüler çarpımsal tersidir. Yani, şu denklemi karşılar;
'nın çarpımsal tersi yalnızca ve 'nin eş olması durumunda mevcuttur. Dolayısıyla kısıtlaması olmadan şifre çözme mümkün olmayabilir.
Şifre çözme fonksiyonunun şifreleme fonksiyonunun tersi olduğu aşağıdaki gibi gösterilebilir;
Zayıf yönler
Afin şifresi, özünde bir monoalfabetik ikame şifresi olduğundan, bu şifreler sınıfının zayıflıklarını miras alır. Sezar şifrelemesi ile bir Afin şifresidir, çünkü şifreleme fonksiyonu basitçe doğrusal bir kaydırmaya indirgenir. Atbash şifresi ise kullanır.

İngilizce mesajların şifrelenmesi, özel durumu göz önüne alındığında (yani ), 26 önemsiz Sezar şifresini saymazsak, toplam 286 önemsiz olmayan afin şifre vardır. Bu sayı, 26'dan küçük olan 26 ile aralarında asal olan 12 sayı olduğu gerçeğinden gelir (bunlar 'nın olası değerleridir). Her değeri, 26 farklı toplama kaymasına sahip olabilir ( değeri); bu nedenle 12 × 26 veya 312 olası anahtar vardır. Bu çeşitlilik eksikliği, Kerckhoffs İlkesi ışığında düşünüldüğünde sistemi oldukça güvensiz hale getirir.

Şifrenin birincil zayıflığı, kriptanalistin iki şifreli metin karakterinin düz metnini (frekans analizi, kaba-kuvvet (brute force), tahmin veya başka bir yolla) keşfedebilmesi durumunda anahtarın bir eşzamanlı denklem çözülerek elde edilebileceği gerçeğinden kaynaklanmaktadır. ve 'nin nispeten asal olduğunu bildiğimizden, bu otomatik bir sistemde birçok "yanlış" anahtarı hızla elemek için kullanılabilir.

Afin şifrelerde kullanılan aynı dönüşüm türü, bir sözde rastgele sayı üreteci türü olan doğrusal kongrüansiyel üreteçlerde de kullanılır. Bu üreteç, afin şifrenin güvenli olmamasıyla aynı sebepten dolayı kriptografik olarak güvenli sözde rastgele sayı üreteci değildir.

Örnek
Şifreleme ve şifre çözmeyi gösteren bu örnekte İngiliz alfabesi temel alınarak, alfabe A'dan Z'ye kadar olan harfler olacak ve aşağıdaki tabloda bulunan karşılık gelen değerlere sahip olacaktır.



Şifreleme
Bu şifreleme örneğinde, şifrelenecek düz metin, her harfin sayısal değerleri için yukarıda belirtilen tablo kullanılarak, 5, 8 ve kullanılan alfabede 26 karakter olduğu için 26 olarak alınarak "AFFINE CIPHER" şeklindedir. Sadece değerinin 26 ile eş olması gerektiğinden bir kısıtlaması vardır. 'nın alabileceği olası değerler 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23 ve 25'tir. için değer, 1'e eşit olmadığı sürece keyfi olabilir, çünkü bu şifrenin kaymasıdır. Böylece, bu örnek için şifreleme fonksiyonu olacaktır. Mesajı şifrelemenin ilk adımı her harfin sayısal değerlerini yazmaktır.



Şimdi, 'in her bir değerini alın ve denklemin ilk kısmını, çözün. Her karakter için değerini bulduktan sonra, sonucunu 26'ya böldüğünüzde kalanı alın. Aşağıdaki tablo şifreleme işleminin ilk dört adımını göstermektedir.



Mesajı şifrelemenin son adımı, karşılık gelen harfler için tablodaki her bir sayısal değeri aramaktır. Bu örnekte, şifrelenmiş metin IHHWVCSWFRCP olacaktır. Aşağıdaki tablo Affine şifrelemesinde bir mesajın şifrelenmesi için tamamlanmış tabloyu göstermektedir.



Şifre çözme
Bu şifre çözme örneğinde, şifresi çözülecek olan şifreli metin, şifreleme örneğindeki şifreli metindir. İlgili şifre çözme fonksiyonu 'dır, burada 21 ve 8 olarak hesaplanır. Başlamak için, aşağıdaki tabloda gösterildiği gibi, şifre metnindeki her harfin sayısal karşılıkları yazılır.



Şimdi, bir sonraki adım 'i hesaplamak ve ardından bu sonuç 26'ya bölündüğünde kalanı almaktır. Aşağıdaki tablo her iki hesaplamanın sonuçlarını göstermektedir.



Şifreli metnin şifresini çözmenin son adımı, sayısal değerleri tekrar harflere dönüştürmek için tabloyu kullanmaktır. Bu şifre çözme işlemindeki düz metin AFFINECIPHER'dır. Son adımın tamamlandığı tablo aşağıdadır.



Kodlanmış alfabenin tümü
Şifrelemeyi ve şifre çözmeyi daha hızlı hale getirmek için, açık metin ve şifreli metnin harfleri arasında bire bir harita oluşturmak üzere tüm alfabe şifrelenebilir. Bu örnekte, bire bir harita aşağıdaki gibi olacaktır:



Programlama örnekleri
Aşağıdaki Python kodu, afin şifreleme ile metin şifrelemek için kullanılabilir:

Prints a transposition table for an affine cipher.
def affine(a: int, b: int, s: str):
import string

D = dict(enumerate(string.ascii_lowercase, start=0))
E = {v: k for k,v in D.items()}
size = len(string.ascii_lowercase)
ret = ""
print(size)
for c in s:
N = E[c]
val = a * N + b
val = val % size
print(f"{c}({N}) -> {D[val]}({val})")
ret += D[val]
return ret

affine(7, 3, 'foobar')

Ayrıca bakınız
Afin fonksiyonlar
Atbash kodu
Sezar şifrelemesi
ROT13
Kriptografi konuları

Notlar
Kaynakça
Dış bağlantılar