DES Algoritması

  • Konuyu başlatan ghost-tr
  • Başlangıç tarihi
G

ghost-tr

DES, veri şifrelemek (encryption) ve şifrelenmiş verileri açmak (decryption) için geliştirilmiş bir standarttır. Esas olarak kullanılan yönteme (veya algoritmaya) DEA yani Data Encryption Algorithm (Veri Şifreleme Algoritması) adı verilir. Bu algoritmanın standartlaştırılmış halinin ismi DES olarak geçmektedir.

DES yapısı itibari ile blok şifreleme örneğidir (daha fazla bilgi için vigenere şifrelemesine bakabilirsiniz). Yani basitçe şifrelenecek olan açık metni (plain text) parçalara bölerek (blok) her parçayı birbirinden bağımsız olarak şifreler ve şifrenmiş metni (cipher text) açmak içinden aynı işlemi bloklar üzerinde yapar. Bu blokların uzunluğu 64 bittir.
Aşağıda 64 bitlik bir veri girişinin bir geçiş boyunca yaptığı işlemler gösterilmiştir:

DES aynı zamanda 64 bit uzunluğunda bir anahtar alır. Ancak bu anahtarın geçerli olan uzunluğu 56 bittir çünkü 8 bit partiy için harcanır.

DES’in çalışması aşağıdaki şekilde verilmiştir:
des_birgecis.jpg

yukarıdaki şekilde 64 bitten oluşan bir metnin öncelikle 2 parçaya ayrılması gerekir, soldaki ve sağdaki parça ayrı ayrı işlenmektedir. Bu işleme sağdaki 32 bitlik parçanın f fonksiyonuna anahtar ile birlikte girmesi ve parçaların yer değiştirmesi şeklinde yapılmaktadır.
Yukarıdaki şekilde + işlemi yahut işlemidir (xor (exclusive or, özel veya)) .
Yukarıdaki şekilde DES için yapılan bir geçiş çizilmiştir, DES şifrelemesinde bu işlem 16 defa tekrar edilmektedir.
Yukarıdaki şekilde f fonksiyonu olarak verilen fonksiyonun detayı aşağıdaki şekilde verilmiştir:
des_fonksiyonu1.jpg

Yukarıdaki şekilde bir DES geçişi (pass) içindeki f fonksiyonunun nasıl çalıştığı gösterilmiştir. Bu fonksiyon bir 32bit’lik parçayı alarak 48 bit’lik anahtar ile 32 bit’lik sonuç üretmektedir. Bu üretme işlemi sırasında en kritik işlem yukarıdaki şekilde E olarka görüntülenmiş expansion işlemidir. Bu işlem basitçe aynı bit için birden fazla sonuç üretilebilmesini ön görür. Aşağıda detaylıca anlatılacaktır ancak yukarıdaki resmin detaylarına devam edilecek olursa genişletilmiş (expanded) bili, anahtar ile xor işleminetabî tutulur. Sonuçta 48 bitlik olarak üretilen metin 8 bloğa bölünür. Her blok 6 bitlik bir parçadan oluşmaktadır. Her 6 bitlik parça bu sefer expansion işleminin tersi olarak küçültülmekte ve 4 bit’e indirilmektedir. Sonuçta 4 bitlik 8 blok yani toplam 32 bitlik veri üretilmiştir.

Yukarıdaki işlemde genişletme işlemi olarak adlandırılan işlem (expansion) basitçe aşağıdakine benzer bir tablo ile yapılmaktadır:
des_expansion_table.jpg

Yukarıdaki tablodaki mantık basitçe bir sayının birden fazla pozisyonda bulunmasıdır. Bu durumda örneğin 1 sayısı için hem 2. hem de 4. konumda karşılık bulunmaktadır.

DES ile ilgili diğer bir ayrıntı da anahtar üretilmesidir. Dikkat edilirse DES’in 64 bitlik bir anahtar ile çalıştığı ve 8 bitlik parity kontrolü çıkarılacak olursa bu anahtarın 56 bitlik olduğu yukarıda anlatılmıştı. Ancak f fonksiyonuna giren her geçişteki anahtar boyutu yukarıda 48 bit olarak verilmiştir. Dolayısıyla aslında her geçiş (pass) için farklı bir anahtar üretilmektedir. Bu anahtarlar 56 bitlik esas anahtardan üretilen anahtarlardır. Aşağıda bu anahtarların nasıl üretildiği gösterilmiştir:
des_anahtar.jpg

Yukarıdaki şekilde 56 bitlik giriş anahtarından her geçiş için gereken anahtarların üretilmesi gösterilmiştir. Bu işlem 16 adımda yapılmaktadır ve her adımda o adım için üretilmiş olan tablo kullanılmaktadır. Her adım öncelikle 2 adet 28 bitlik parçaya bölünmüştür. Tablolara PC1’den PC16’ya kadar isimler verilmiştir. Ayrıca her tablo girişinden önce bir kaydırma işlemi kullanılarak üretilen anahtar değiştirilmektedir. Buna göre örneğin 10. adımda orjinal verinin her iki parçası da 10 bit kaydırılmış olacaktır.

DES ile şifrelenmiş bir metni açmak için aynı algoritmaya şifreli metni (cipher text) aynı anahtar ile vermek yeterlidir.

DES için zaman içinde bilgisayarların işlem hızının gelişmesi ile saldırılar kolay hale gelmiştir. DES’in daha zor saldırılır hale gelmesi için 128 bit anahtar uzunluğu kullanan 3DES uygulaması geliştirilmiştir. Bankalar vb. kurumlar kullanmaktadır.
 
131,446Konular
3,268,219Mesajlar
315,149Kullanıcılar
metin 123Son Üye
Üst Alt