21 Ocak 2013 Pazartesi

KLASİK KRİPTOGRAFİ 2


Klasik Şifreleme Teknikleri (II)

Geçen yazımızda incelenen bütün teknikler düz metindeki belirli bir karakterin yada karakter grubunun başka bir karakter ya da karakter grubuyla değiştirilmesiyle gerçekleştirilmiştir. Klasik şifrelemede kullanılan bir başka yaklaşım da, var olan karakterlerin belirli bir permütasyon kullanılarak yerdeğiştirilmesi prensibine dayanan Transposition Teknikleridir.
Şifrelenecek metindeki bütün karakterler boşluk bırakılmadan belirli bir boyuttaki bir matise satır satır taşınır. Ardından da bu matris sutünlar şeklinde yeniden yazılarak şifrelenmiş metin oluşturulur. Ayrıca bunun terside yapılabilir; şifrelenecek metin sutünlar şeklinde taşınıp, satırlar düzeyinde yeniden yazılabilir. İkisi de olasıdır, ve kullanılabilir. Bu yönteme rail fence yöntemi denir. Yer değiştirme teknikleri içerisinde yer alan tekniklerin en basiti ve en çok kullanılanıdır. Örnek; “Araba sahilde bekleyecek” mesajının şifrelenmiş hali aşağıdaki iki şekilde de olabilir.

Matris
Şifrelenmiş Metin
ARABASAHİLD
EBEKLEYECEK
AERBAEBKALSEAYHEİCLEDK
AAAAİDBKEEE
RBSHLEELYCK
AAAAİDBKEEERBSHLEELYCK


Burada dikkat edilecek ikinci önemli husus da şifrelenecek matrisin boyutlarıdır. Yukarıdaki örneklerde 2x11’ lik bir matris kullanılmıştır. Matrisin satır sayısı kullanılan şifreleme tekniğinin derinliğini belirtir. Burada verilen örnek 2 derinlikli (“Rail fence of a Depth 2”) rail fence şeklinde okunur. Aynı örnekten matrisi iki değişik şekilde oluşturmamıza karşın, birbirinden oldukça alakasız metinler oluşturulmuştur. Fakat ikisi arasında en önemli fark birinin diğerinden çok daha zayıf olmasıdır. İlk örnekteki şifrelenmiş metne dikkat edersek, verilen metin şifrelenirken matrise satır satır aktarılmıştır. Aralarındaki güvenilirlik farkı da buradan kaynaklanmaktadır. Şifrelenmiş metni ilk karakterden başlayıp birer karakter atlayarak okuyun ve şifre çözüldü. Transposition tekniklerini bilmeseniz bile biraz dikkat ederek şifrelenmiş bu metni rahatlıkla kırabilirsiniz. Ancak diğeri bu kadar kolay olmayacaktır.

Yine verilen örnek üzerinde bu tekniği incelemeye devam edelim. Şifrelenecek metin boşluk karakterini ve noktalama işaretlerini çıkarttığımızda 22 karakter içermektedir. 22 sayısının iki asal sayının çarpımı olduğuna dikkat ederseniz bu metni ancak 2x11’ lik bir matrise aktarıldığını tahmin etmemiz hiç de zor olmayacaktır. Peki ne yapabiliriz? Şifrelenmemiş metnin sonuna ya da başına doldurma karakterleri ekleyerek bu sorunu aşabiliriz. Bir kural olmamasına karşın doldurma karakterleri başa eklendiğinde genellikle alfabenin ilk harfleri, sona eklendiğinde genellikle alfabenin son harfleridir. Ancak burada karşımıza çıkacak bir diğer soru da; ne kadar doldurma karakteri eklemekiyiz, olacaktır. Bu noktada biraz matematik bilgilerimizi tazeleyelim. a,b,c... birbirinden farklı asal sayılar ve x, y, z... birer doğal sayı olmak üzere, bir A sayma sayısının çarpanlara ayrılmış şekli;

A= ax.by.cz... olarak tanımlanır. A sayma sayısının pozitif tam bölenlerinin sayısı; (x+1).(y+1).(z+1) çarpımı kadardır. Şifrelenmiş metnimizin kırılma olasılığını azaltmak için yapmamız gereken boşluk karakterinin ve noktalama işaretlerinin çıkartılmış şifrelenecek metindeki karakter sayısının pozitif tam bölenlerinin sayısını en yüksek değerde tutmaktır. Fakat, çok fazla doldurma karakterinin varlığı şifreleme tekniğimize zarar vereceğini de dikkat edersek, optimal bir değer bulma zorunluluğumuz ortaya çıkacaktır. Matematik dersine devam edelim. Öncelikle bulmak istediğimiz sayının özelliklerini tanımlayalım. Bulmak istediğimiz sayıyı şifrelenmemiş metni oluşturan karakter sayısına bir x(x değeri alfabedeki karakter sayısından küçük olmalıdır) değeri eklenerek bulunacaktır. Bulacağımız sayının asal çarpanlarının üslerinin en büyük olması için asal çarpanlarının en küçük olması gereklidir. Bu yüzden genellikle genişletilmiş şifrelenmiş metnin karakter sayısı ikinin ya da üçün katı olacak şekilde seçilir. Bu durumda seçilmesi en mantıklı x değerleri 2 ve 10’dur.

Bu şifreleme tekniğiyle ilgili verilen iki örneğe de dikkat ederseniz ilk karakterler ikisinde de orjinal metinle aynıdır. Doldurma karakterlerinizi metnin başına eklemediyseniz, oluşturulacak matrisin tahmini için bir açık kapı bırakmış oluyorsunuz. Her ne kadar doldurma karakterler de kullanmışsanız da yine sonlu sayı da matris oluşturularak şifrelenmiş metinden şifrelenmemiş metin elde edilebilir. Günümüz işlemcilerinin 2.5Ghz gibi çok yüksek hızlarda çalıştıklarını da göz önünde bulundurursanız, bu teknik üzerinde şimdiye kadar anlatılan yöntemleri kullanmış da olsanız şifrelenmiş bir metnin kırılması 1 saniyeden de çok az bir zaman alacaktır.

Bu şifrelemenin biraz daha mantıklı ve güvenli bir hale getirelim. Oluşturulan matrisi sutün düzeyinde bir permütasyona tabi tutularak sutünları yer değiştirelim. Oluşan matrisi sutünlar düzeyinde yeniden yazdığımızda şifrelenmiş metni oluşturmuş oluruz(Aynı işlemleri satırlar düzeyinde de yapabilirdik). Şimdi aynı şifrelenmemiş metni yukarıda saydığımız özellikleri dikkate alarak yeniden oluşturalım.

Şifrelenecek metin: “Araba sahilde bekleyecek”. Boşluk karakterlerden ve noktalama işaretlerinden arındırılmış metindeki karakter sayısı 22’dir. Daha önceden açıkladığımız nedenlerden ötürü 2 ya da 10 karakterlik bir doldurma karakterler dizisi eklemeliyiz. İlk karakterlerin şifrelenmiş ve şifrelenmemiş metinde aynı kalmasının istenmeyen bir durum olduğunu da hatırlayarak; şifrelenecek metnimizi şu şekilde dönüştürmüş oluyoruz: “ABARABASAHİLDEBEKLEYECEK”. Bu metni 4x6’lık bir matrise sutünlar şeklinde taşıyalım. Oluşan matris aşağıdaki gibidir:
1
2
3
4
5
6
A
A
A
D
K
E
B
B
H
E
L
C
A
A
İ
B
E
E
R
S
L
E
Y
K

Şimdi bu matrisi belirli bir permütasyona göre sutün bazında karalım. Oluşturacağımız matrisin üst satırındaki sayı bizim kullandığımız permütasyonu gösterecek ve anahtar olarak kullanılacaktır.

4
1
6
3
2
5
D
A
E
A
A
K
E
B
C
H
B
L
B
A
E
İ
A
E
E
R
K
L
S
Y


Bu durumda kullanılan permütasyona göre anahtarımız ”416325” olacaktır. Şimdi şifrelenmiş metnimizi satır satır işleyerek oluşturabiliriz: “DAEA AKEB CHBL BAEİ AEER KLSY”. Oluşturulan şifrelenmiş metin her ne kadar şifrelenmemiş metin ile çok alakasız gibi dursa da, her durum için bütün kombinasyonları oluşturmak o kadar da zor değil. Değişik boyutlardaki matrislere şifrelenmiş metni aktararak şifrelenmemiş metni ele geçirebilirsiniz. Belki biraz vakit alır, ama kırılması en zor olanı bile beş dakikadan fazla süre almaz.

Son Söz
Klasik şifreleme teknikleri konusu dahilinde daha çokça detaylandırabileceğimiz bir çok bölüm mevcuttur. Ancak bu ve bundan önceki makalelerimizde bunların en çok bilinenleri ve en eskilerini irdeleyebildik. Ayrıca, bu başlık adı altında bahsi geçen şifreleme tekniklerinin yeterli olamadıklarını ve nasıl kırıldıklarından da bahsettik. Günümüzde çok daha karmaşık ve kırılması zor şifreleme teknikleri kullanılmaktadır. Unutmayalım ki, hangi şifreleme tekniğini kullanıyor olursak olalım, bir şifreleme tekniğinin güvenilirliği ve kullanılabilirliği için en önemli etmenler şifreleme- deşifreleme hızı ve kırılmasının zorluğudur(imkansız olamaz!!). Ayrıca, çok yakın bir zamandaki makalelerimizde .NET ile sistem güvenliği sağlayacak uygulama geliştirmekten bahsedeceğimiz müjdesini şimdiden verelim.


Alıntı:Suphi UÇAR – Yunus Emre ALPÖZEN

Hiç yorum yok:

Yorum Gönder

isterseniz anonim seçeneginden kayıtsız gönderebilirsiniz iyi günler