3
Nis

Geçtiğimiz cuma günü, matematik dersinin sonlarına doğru hocamız bakın matrisler aynı zamanda şu işe de yarıyormuş diye “Matrisler ve Kriptoloji” adlı matematik kitabında bir bölüm okudu. Okan’a baktım, o da bana baktı. Beyinde kıvılcımlar, düşünmeler … bir anda EVET! dedim.(tabi içimden) Hemen koşuldu kitabın o bölümü ele geçirildi.

Neyse meğerse soruları çok kolay olan matrislerin ciddi işe yaradığı bir nokta varmış o da kriptoloji. Çok köklü bir araştırma yapmadan okuduğuma ve anladığıma göre şu an anlatacaklarım kriptoloji teknolojisinin belki de ilk adımlarıdır. Hatta kesin kırma yolları da vardır. Ama sizin de eğleneceğinizi düşünüyorum. (Oturup bundan esinlenmek gerek, kendinizi tekrar etmek yerine)

Mantık aslında çok basit. Her karakter için bir integer belirliyorsunuz. Aynen şöyle:

A B C D …
0  1  2 3 …   gibi

Sonra göndereceğiniz yazıyı belirliyorsunuz:

Y -> 27
O -> 17
K -> 13
U -> 24
Ş  -> 22

betiğimiz bu sayı dizisini oluşturuyor otomatik, sonra bunu bir matris yapıyor. Şöyle:

[ 27 13  22 ]
[ 17 24  34 ] (satırın 2 gelmesi için 34 otomatik eklenmeli.)

Sonra bir anahtar matrisi ile bunu çarpıyorsunuz:

[1  2]
[3  5] gibi

Matris çarpımı için 11. sınıf Matematik kitabınız duruyorsa bakabilirsiniz. :) Ya da vikiye:

Her birimi toplam karakter sayısının bir fazlasının moduna alırsanız (örneğin 35), elinize şifrelenmiş bir matris kalacaktır. Bunu geri sayı dizisine çevirebilirsiniz.

Gelelim şifreyi çözmeye!

Bildiğiniz gibi matrisleri çarptıktan sonra tersi ile çarparsanız eski haline döner. Biz de aynısı yapıp anahtar matrisin tersi ile şifrelenmiş matrisi çarpacağız bir daha moddaki değerini bulursak elimize ilk girdiğimiz sayı dizi kalır. Artık geri çevirebilirsiniz.

Oynaması çok eğlenceliydi. Derseniz ki nasıl yapılır Python ile şurada benim yaptığım, şurada ise Okan’ın bir sürü karakter destekli sürümüne(benim betiği modifiye etti. :) ) ulaşabilirsiniz. (Bu arada kodlar tamamen 1 saatlik uğraşmanın ürünüdür, saçma berbat kodlama olabilir.)

Bu peki nasıl geliştirilir ? Oturup düşünmek gerek(anahtar matrisi büyütmek, karmaşıklaştırmak), bunun üzerine hayatını adayan uğraşan bir sürü profesyonel insanlar olduğunu unutmayın!