(Affine Cipher Algorithm) Doğrusal Şifreleme Algoritması
Doğrusal Şifreleme algoritması ilkel bir şifreleme biçimidir. İsmini , mantığında yatan doğrunun denklemi fonksiyonundan almıştır.
Bildiğiniz üzere doğrunun denklemi 'y = ax+b' dir. Burada bahsettiğimiz (a,b) ikilisi bir anahtar görevi görmektedir. Anahtar nedir diyecek olursanız birçok şifreleme algoritması karşı tarafa veri aktarmak ve karşı tarafın bu veriyi çözüp kendisine tekrar şifrelenmiş bir veri göndermesini ister. Anahtar veriyi şifreleme de kullanacağımız verileri tutmaktadır. (Bu algoritma da 2 tane bulunmaktadır. bkz: a,b)
Şimdi doğrusal şifreleme algoritmasının felsefesini anlatmaya başlayabiliriz. Elimizde bir veri seti bulunduğunu düşünün bu bir kelime, cümle, veya paragraf olabilir. ilk olarak anahtar değerleri belirlemeniz gerekmektedir ben bu örnekte a = 3 , b = 4 vereceğim. yani formülümüz 'y = 3*a+4' şeklini aldı. Veri seti olarak da 'James Gosling' diyelim. Şimdi asıl konuya gelecek olursak algoritma şu şekilde ilerliyor. Veri setinizde bulunan her harf değerlendirmeye alınarak bu doğrusal fonksiyona tabi tutuluyor. Nasıl mı ?
İlk harfimiz 'J' harfi alfabe de 13. sırada bulunmaktadır. (alfabeyi 1. indisten başlatacak olursak) a'nın değeri burada 13 olmaktadır. Buna göre veri setinde ki şifrelenmiş ilk harf (y = 3*13+4 = 43 fakat alfabe de 43.sırada bir harf bulunmamakta boyutu aştığı için mod almamız gerekmektedir. 43%29 = 14 olmaktadır.) K'dır. Veri setinde ki diğer harfleri de bu şekilde devam ederek şifrelersek bir şifrelenmiş veri ortaya çıkartıp karşı tarafa bu veriyi ve anahtarı da beraberinde gönderdiğimizde veriyi güvenli bir şekilde aktarmış oluruz. Karşı tarafta gönderdiğimiz anahtar ile bu şifrelenmiş veriyi çözüp asıl veriyi elde etmedir ve aynı şekilde şifreleyerek size göndermektedir. Bu şekilde bir döngü halinde veri paylaşımı gerçekleşebilir. Tabi burada güvenlik açsından bir kaç parametre daha eklenebilir; mesela anahtarın bir 3.şahısın eline geçmesi durumunda sorun oluşmaması için belirli zaman periyotlarında anahtarın değiştirilmesi tavsiye edilir. Bunun için çeşitli algoritmalar bulunmaktadır ama bu yazının konusu olmadığı için anlatarak kafasını karıştırmak istemem. Kısaca Affine Cipher (Doğrusal Şifreleme) algoritması bu şekildedir.