DES(Data Encryption Standard)
Bu yazımızda askeri amaçlı olmayan çalışmalarının ilki ve şifreleme algoritmalarının yeni bir boyut kazanmaya başladığı nokta olarak kabul edilen DES(Data Encryption Standard)' i inceleyeceğiz. 1970lerde Kriptoloji üzerine askeri olmayan çalışmalar yapan çok az akademisyen ve araştırmacı vardı. Oysa günümüzde kriptoloji ve kriptografi üzerine yapılan askeri olmayan çalışmalar yadsınamayacak boyutlara ulaşmıştır. Kriptolojinin ve kriptoanalizin askeri olmayan çalışmalarının başlangıcı olarak DES kabul edilmektedir.Bu yazımızda askeri amaçlı olmayan çalışmalarının ilki ve şifreleme algoritmalarının yeni bir boyut kazanmaya başladığı nokta olarak kabul edilen DES(Data Encryption Standard)' i inceleyeceğiz. 1970lerde Kriptoloji üzerine askeri olmayan çalışmalar yapan çok az akademisyen ve araştırmacı vardı. Oysa günümüzde kriptoloji ve kriptografi üzerine yapılan askeri olmayan çalışmalar yadsınamayacak boyutlara ulaşmıştır. Kriptolojinin ve kriptoanalizin askeri olmayan çalışmalarının başlangıcı olarak DES kabul edilmektedir.
1972'de NBS Institute for Computer Sciences and Technology (ICST) bilgisayar güvenliği için bir proje geliştirmeye başladı. Projenin en önemli amacı verilerin aktarımı ve belleklerde saklanması sırasında kullanılabilecek bir şifreleme algoritması geliştirmekti. NBS bu girişimine kadar veri şifreleme sadece askeri ve istihbarat teşkilatlarının ilgilendikleri bir alandı. ICST öncelikle geliştirilen algoritmanın federal standartı olarak değerinin ölçülmesi için NSA(National Security Agency[Uluslararası Güvenlik Ajansı])' dan ölçü kriterlerinin belirlenmesini istedi. Ardından ilk denemede istenen standartlarda bir algoritma geliştirilemedi. İkinci denemede, 17 Ağustos 1974'ta IBM Corp. tarafından finansal uygulamalar için geliştirmiş olduğu bir şifreleme ailesi(LUCIFER) duyuruldu. Amerikan hükümetiyle ortaklaşa yürütülen çalışmalar sonucu istenen algoritmanın teknik gereksinimleri ve özellikleri 17 Mart 1975'te detaylı olarak çıkartıldı. Ardından NBS'ye bir çok öneri ve düşünce iletildi. Uzun süren analiz ve çalışmalardan sonra, IBM'in önerdiği şifreleme ailesi NBS tarafından geliştirildi ve 23 Kasım 1977'te NBS, Data Encrypiton Standard (DES)'i Federal Information Processing Standard (FIPS) 46 olarak duyurdu. 1981'de ANSI standardlarına da dahil edilen DES algoritması uzun süre finansal bilgilerin korunması için kullanılanılan şifreleme algoritması olarak kalmıştır.
DES algoritması bir Block Cipher algoritmasıdır. Yani şifrelenecek metin bloklar halinde şifreleme işleminden geçirilir. Ayrıca DES algoritması simetrik şifreleme prensibine dayanmaktadır. Yani DES, veri bloklarını şifrelemek ve deşifrelemek için aynı anahtarları kullanmaktadır. DES 64 Bitlik düz metin blokları üzerinde işlem yapmaktadır. 64 bitlik veri blokları, 56 bitlik bir anahtarın kontrolünde şifrelenerek yine 64 bitlik şifrelenmiş metin bloklarına dönüştürülür. Deşifrelenirken de 64 bitlik şifrelenmiş veri blokları, 56 bitlik bir anahtarın kontrolünde deşifrelenerek yine 64 bitlik deşifrelenmiş metinlere(düz metne) dönüştürülür.
DES' de şifreleme ve deşifreleme için yer değiştirme, permütasyon gibi bir dizi işlem yürütülerek gerçeklenmektedir. Bu işlemlerin sırası şifreleme ve deşifreleme için birbirlerinin tam tersi şeklindedir. Şimdi DES algoritmasını basit olarak inceleyelim;
1. IP(Initial Permutation) şifreleme işleminde kullanılacak ilk permütasyondur. Verilen bir düz metin(x) üzerine ilk permütasyon uygulanarak x0 elde edilir.
x0= IP(x)=L0R 0
L0= x'in ilk 32 biti
R0=x'in son 32 biti
2. Ardından 16 defa tekrarlanan bir fonksiyonla yeni değerler hesaplanır. LiRi(1<=i<=16) aşağıdaki kurala göre hesaplanır:
Li=Ri-1
Ri=Li-1 f(Ri-1,Ki)
: iki bit stringinin Exclusive-or işlemine tabi tutulacağını gösterir.
3. En son olarak da R16L16'ya IP -1 uygulanarak şifreli metin elde edilir.
Şimdi de f fonksiyonunu inceleyelim. f fonksiyonu iki parametre alır. Birincisi 32 bitlik bir bitstring(A), ikincisi de 48 bitlik bir bitstring(J). Sonuç olarak 32 bitlik bir bitstring oluşturulur.
S1, ... S8 ile gösterilen kısma SBox denir. Bu kısımda 48 bitlik bir bitstringinden 32 bitlik bir bitstringi oluşturulur. DES'te 8 tane SBox vardır. SBoxlar 6 bitlik bir bitstringten 4 bitlik bitstringler elde ederler. Bunların detayına burada girmeyeceğiz. Ancak şunu da belirtmek de fayda var ki, SBoxlar DES'in en zayıf olduğu noktalardır. Zaten DES bu SBoxlardaki açıklar yüzünden kırılabilmektedir.
Sonuç olarak, DES askeri amaçlı olmayan çalışmalarının ilki ve şifreleme algoritmalarının yeni bir boyut kazanmaya başladığı noktadır. DES'in kırılabilirliği ve algoritmasındaki eksiğinin SBoxlardan kaynaklandığını gördük. Ama bu demek değildir ki DES zayıf bir şifreleme algoritmasına sahiptir. DES'in algoritmasından kaynaklanan bu sorunlar "Triple DES" ya da "DES-3" olarak bilinen yeni bir algoritma ile düzeltilmiştir. SSH gibi günümüzde kullanılan çoğu uygulama 3DES'i kullanmaktadır. Bu konu hakkında daha detaylı bilgileri ilerleyen makalelerimizde bulabilirsiniz.
DES'in hiç de kolay olmayan bir implementasyonu olduğu da bir gerçek. Şükür ki, artık bu kadar karışık işlemler uğraşmak zorunda değiliz. Daha önceki yazımızda da bahsettiğimiz gibi .NET Framework DES implementasyonu kendi bünyesinde içermektedir. Zaten bir sonraki yazımızda .Net ile DES kullanarak verilerimizi nasıl şifreleyebileceğimizi sizlerle paylaşacağız. Ama DES'in nasıl çalıştığını bilmemiz yararımıza olacaktır. Bir sonraki yazımızda görüşmek üzere...
Yunus Emre ALPÖZEN – Suphi UÇAR
Hiç yorum yok:
Yorum Gönder
isterseniz anonim seçeneginden kayıtsız gönderebilirsiniz iyi günler