İLKEL KRİPTOLOJİ ALGORİTMALARI
Merhaba arkadaşlar , bu yazımda size kriptoloji , algoritmaları ve detaylarından bahsetmek istedim. Şimdi konuya geçelim.
Kriptoloji ; temeli matematiğe dayanan şifreleme bilimidir. Teknolojinin bu kadar hızla geliştiği bir dönemde , güvenlik açıkları da göz önüne alınırsa, verilerimizi güçlü şekilde korumak zorundayız.
Bunu da ancak şifreleme ile yapabiliriz. Kriptolojideki asıl amaç sadece şifrelemek değil, aynı zamanda şifreli verimizin de deşifre edilememesidir.
Kriptoloji aslında iki alt alanın birleşmesi ile meydana gelir. Bunlar kriptografi ve kriptanalizdir.
Kriptografi ; şifreli yazı yazma , Kriptanaliz ; şifreleri analiz edip çözmek anlamına gelir. Şuan inceleyeceğimiz bölümler kriptografinin altında bulunmaktadır.
Şifrelemenin 3 temel güvenlik unsuru vardır. Buna CIA üçlemesi denir.
C:Confidentiality (gizlilik)
I:Integrity(bütünlük)
A:Availability(erişilebilirlik)
Şifrelemeyi simetrik ve asimetrik olarak iki grupta inceleyeceğiz.
Simetrik şifreleme ; diğer bir adı gizli anahtarlı şifrelemedir. Bu şifrelemede elimizdeki veriyi anahtar ile şifreleyip karşı tarafa göndeririz ve bu şekilde metnin gizliliği sağlanmış olur. Aynı anahtar ile karşı taraf da bu şifrelenmiş metni çözerek orijinal halini bulur.
Bu şifrelemenin en büyük avantajı boyu ve bit sayısı küçük olduğundan diğer şifrelemelere göre oldukça hızlı ve kullanımı kolaydır. Avantajının yanı sıra dezavantajları da mevcuttur. Anahtarı karşı taraf dışında üçüncü şahısların erişim sağlaması durumunda gizlilik bozulmuş olur. Veri bütünlüğü sağlanamaz , bundan dolayı anahtarın saklanması zordur ve güvenlik riski içerir.
Simetrik şifrelemeyi de kendi içerisinde iki alt alanda inceleyeceğiz.
1)Karakter Tabanlı Şifreleme(İlkel Şifreleme):
1.a Sezar Şifrelemesi(Ceaser’s) : Bu şifrelemede anahtar sayısı belirlenir ve o sayıya göre bulunduğumuz harften atlayarak şifreli harfe gelinir (encrypt). Şifrenin açılması için anahtar sayısı kadar her bir harfte geriye gelerek asıl metin bulunur (decrypt).
Örnek Metin(plain) : CYBER
Örnek metnimiz İngilizce olduğu için İngiliz alfabesi kullanarak şifreliyoruz.
Anahtar(key) : 2
Şifreli Metin(cipher) : EADGT
1.b Yerine Koyma Şifrelemesi(Substitution) : Yerine koyma şifrelemesindeki temel amaç , her harfin yerine yine aynı alfabeden belirlenen farklı harflerin gelmesidir. Yerine gelecek harfler şifreli metni oluşturmuş olur. Öncesinde şifreleyen kişi tablo oluşturur hangi harfin hangisine karşılık geldiğini gösterir. Aynı tablo ile alıcı da şifreli metni orijinal haline çevirir. Buradaki tablo tamamen taraflara özgüdür istenildiği şekilde düzenlenebilir.
Örnek Metin : CRYPTOGRAPHY
Şifreli Metin : ZOVMQLDOXMEV
1.c Doğrusal Şifreleme(Affine) : Bu şifreleme yönteminde adından anlaşılacağı gibi geometrideki doğru denklemi olan y=ax+b şifreleme işleminde kullanılmaktadır. Belirlenen anahtara göre denklem sonucunda çıkan sayı alfabede hangi harfe karşılık geliyorsa şifreli harfimiz o oluyor. Burada x şifrelenecek mesajı , y şifrelenmiş mesajı oluşturuyor. Dolayısıyla (a) ve (b) de anahtarı oluşturuyor. Fakat Affine cipher için index 0 kabul edilir. Yani alfabe 1’den değil 0’dan başlar.
Örnek Metin : CYBER
Anahtar(2,1) yani a=2 , b=1 oluyor.
y=2x+1 İlk harfimizden şifrelemeye başlarsak alfabede bulunduğu konumu denkleme yazıyoruz.
C’nin alfabedeki konumu 2
y=2.(2)+1 = 5. Harf F oluyor.
Y’nin alfabedeki konumu 24
y=2.(24)+1=49 bu şekilde alfabedeki harf sayısını geçen değer çıktığında hangi alfabeye göre işlem yapıyorsak , o alfabeye göre modunu alıyoruz. İngiliz alfabesi olduğu için mod=26 alıyoruz.
Şu anlama geliyor ; çıkan sonucu mod’a bölüp kalanı alıyoruz. Aldığımız kalan değeri alfabeden buluyoruz. 49’u 26’ya bölersek kalan 23 olur. Bu da X harfine denk gelir.
B’nin alfabedeki konumu 1
y=2.(1)+1 = 3. Harf D oluyor.
E’nin alfabedeki konumu 4
y=2.(4)+1 = 9. Harf J oluyor.
R’nin alfabedeki konumu 17
y=2.(17)+1 = 35 modunu alıyoruz. 35=9(mod26)
Dolayısıyla 9. Harf J oluyor.
Şifreli Metin : FXDJJ
2)Bit Tabanlı Şifreleme(Gelişmiş Şifreleme)
2.a Data Encryption Standard(DES):Yapısal olarak bir blok şifreleme örneğidir. Blok şifreleme , şifrelenecek olan plain text’i parçalara ayırarak(blok) her bir parçayı ayrı şifreler. Şifreli metni çözmek için de aynı şekilde parçalara ayırarak blok blok çözülür. Bu blokların uzunluğu 64 bittir.
Veri şifrelemek ve şifreli veriyi analiz edip çözmek için geliştirilmiş bir standarttır.
Çalışma mantığı şu şekildedir; Öncelikle elimizdeki 64bitlik plain text’i 2’ye ayırıyoruz 32 bit olacak şekilde. Ayrılan bu parçalar birbirinden bağımsız şekilde işlenir. Sağ taraftaki 32 bitlik parçanın, f fonksiyonuna anahtar ile birlikte girdikten sonra iki parça birbiri arasında yer değiştirir. (+) işlemi -veya- anlamına gelmektedir. Yani ikili sayı sisteminde iki sayının bitlerinin birbirinden farklı olup olmadığını anlamak için kullanırız. Bu yukarıdaki geçiş işlemi 16 defa tekrar eder.