Tek Anahtarlı Yeni Bir Şifreleme Algoritması Daha Akademik Bilişim 2008 Tek Anahtarlı Yeni Bir Şifreleme Algoritması Daha DOKUZ EYLÜL ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ Gökhan DALKILIÇ Gülşah YILDIZOĞLU 1
Proje Hedefleri Projenin nihai hedefi : Bit tabanlı sistem kullanarak, yeni bir simetrik şifreleme algoritması geliştirmek. Diğer projelerle ilişkisi : Proje bit tabanlı şifreleme algoritmaları baz alınarak geliştirilmiştir. Projenin getirileri : Güvenlik ve hız. 2
Projenin Tanımı Kişilerin günlük hayatta bilgilerini taşımak, aktarmak için kullandıkları ortamların, kötü niyetli kişilere karşı korunmasını sağlayan bir yazılımdır. Teknik olarak ; Kablosuz ve kablolu bilgisayar ağları veya usb gibi ortamlardan aktarılan verilerin, saldırgan kişilere (hacker) ve yazılımlara (virüs, worm, trojen vb) karşı korumak için bit tabanlı şifreleme algoritmaları baz alınarak geliştirilmiş, tek anahtarlı simetrik şifreleme algoritmasıdır. 3
Projeye Geçiş Aşaması Simetrik Şifreleme Algoritmaları Karakter Tabanlı Simetrik Sistemler Monoalfabetik Polialfabetik Bit Tabanlı Simetrik Sistemler DES (Data Encryption Standard) Twofish Iron AES (Advanced Encryption Standard) Asimetrik Şifreleme Algoritmaları Feistel Yapısı 4
Şifreleme ve Simetrik Şifreleme Algoritmaları Şifreleme bir mesajın gizliliğini sağlamak için kullanılan bir yöntemdir. Şifreleme çeşitlerinden biri olan simetrik şifrelemede ise amaç, gönderici ile alıcının ortak bir anahtar üzerinde ve ortak bir şifreleme, de-şifreleme algoritması üzerinde anlaşıp, mesajı 3. şahıslardan korumaktır. 5
Simetrik Şifreleme Algoritmaları Simetrik şifrelemede güvenliği sağlayan anahtardır. Çünkü şifreleme ve de-şifreleme algoritmaları herkes tarafından bilinebilir. Ancak farklı anahtarlar sayesinde aynı mesaj ve aynı algoritma ile birbirinden bağımsız şifreli metinler üretilir. 6
Karakter Tabanlı Şifreleme Algoritmaları Değişiklikler metnin karakterleri üzerinde yapılmaktadır. Karakter tabanlı şifrelemede kısa anahtarlar kullanılarak üretilen şifrelenmiş metinler, frekans analizi ile çözülebilmektedir. Gerçekleştirimi kolay ve hızlıdır, ancak güvenliği bit tabanlı sistemlere göre daha azdır. 7
Bit Tabanlı Şifreleme Algoritmaları DES : 64 bitlik veriyi 56 bitlik anahtar kullanarak şifreler. Yayılma ve karıştırma tekniklerini kullanır. Iron : 64 bitlik veri bloklarını 128 bitlik anahtarla şifrelenir. Anahtar bağımlıdır. Döngü sayısı 16-32 arasındadır. Yazılım için tasarlanmıştır. AES : Uzunluğu 128 bitte sabit olan blok ile uzunluğu 128, 192 ya da 256 bit olan anahtar kullanır. DES’in yerini alması için tasarlanmıştır. Twofish : DES’ten farkı anahtar kullanılarak yaratılan değişken S-box’lara sahip olmasıdır. 128 bitlik düz metni 32 bitlik parçalara ayırarak işlemlerin çoğunu 32 bitlik değerler üzerinde gerçekleştirir. AES’den farklı olarak 2 adet 1 bitlik rotasyon eklenmiştir. %5 yavaşlatmıştır. 8
Feistel Yapısı Bit tabanlı algoritmaların çoğunda kullanılan bir yapıdır. Şifreleme ve de-şifreleme için aynı algoritmalar kullanılmaktadır, sadece oluşturulan alt anahtarlar de-şifreleme esnasında ters sıra ile kullanılır 9
Projede Kullanılan Şifreleme Mantığı Projede Feistel yapısı kullanılmıştır. Kullanılan anahtar uzunluğu sabit olmakla beraber 64 bittir (8 karakter). Anahtar olarak rakam, harf, özel karakter kabul edilir. Alt anahtarların sayısı 16’dır ve her birinin uzunluğu 48 bittir. Anahtar boyutları DES’ tekiyle aynıdır ancak alt anahtarları üretmede kullanılan işlemler farklıdır. Şifrelenecek metin 64 bit olarak işlenir, daha sonra varsa diğer 64 bit şifrelenir. Metin uzunluğu 8’e bölünecek şekilde gelmediyse, metne boşluk veya boşluklar eklenerek uzunluk 8’e bölünebilecek hale getirilir ve anahtarlar üretilerek şifreleme gerçekleştirilir. 10
Şifreleme Algoritması ve Kullanılan Fonksiyonlar 11
Şifreleme Algoritması ve Kullanılan Fonksiyonlar Devam 12
Alt Anahtarları Üretmek İçin Kullanılan Fonksiyonlar Anahtarlari_Uret : Bu fonksiyonda karakter katarı (string) olarak okunan anahtardaki her bir karakterin ASCII karşılığı alınır ve elemanları bayt olan bir diziye konulur. Daha sonra bu dizideki elemanların indeksleri “karakterleri_karistir” fonksiyonu ile değiştirilir. Karakterleri_karistir : Bu fonksiyonda dizideki her elemanın toplamı bir değişkene atılır. Bu işlemden sonra asci_degerler_toplami değikeninin 127’ ye göre modu alınır. En son elde edilen değerler dizideki elemanların yerlerini kaydırmak için kullanılır. 13
Kullanılan Fonksiyonlar Devam Anahtarlar_uretiliyor : anahtar_asci dizisindeki her sayı tek tek bitlerine ayrılır. 1 sayıdan 8 tane bit elde edilir ve bu bitler bir dizide toplanır. Toplam 64 tane bit elde edilir. Böylece 8 elemanlı dizi 64 elemanlı başka bir bayt dizisine dönüştürülmüş olur. Bu fonksiyonda 4 tane alt fonksiyon çağrılmaktadır: 14
Kullanılan Fonksiyonlar Devam Bitlerin_Yerlerini_Degistir : Anahtara ait olan 64 bitin bnrstr dizisindeki yerini karıştırmak için kullanılmaktadır. Anahtari_56ya_Dusur : Bu fonksiyonda 64 bitlik anahtar uzunluğu permutation choice tekniği ile 56 bite düşürülür. Anahtari_48e_Dusur : Bu fonksiyon 56 bite düşen anahtarı 48 bite azaltmak için kullanılır. Bu fonksiyondan çağrılan; -Anahtari_32_yap_48e_Cikar fonksiyonu anahtarı 48 bitten 32 bite azaltmak için S-box adı verilen yapıyı kullanır. Bu fonksiyonun sonunda ise “expansion box” tekniği ile 32 bitlik anahtar tekrar 48 bite çıkartılır. 15
Kullanılan Fonksiyonlar Devam Anahtari_Shift_et : 16 adet alt anahtar üretmektedir. Bir sonraki anahtar bir önceki anahtarın bitlerinin 1 kez sola kaydırılmasıyla üretilmiştir. Çığ etkisi : Shift işleminden dolayı her anahtar bir öncekine bağlıdır. Bir bit değiştirildiğinde bir çok farklı anahtar üretilmektedir. 16
Metin Bloklarını Şifreleme Li = Ri–1 Ri = Li–1 xor F(Ri–1, Ki) R16 ve L16 şifreli metni oluşturan parçalardır.
S-Box, E-Box, Permutation Choice Teknikleri “Expansion Box” Tekniği : Bazı bitler rastgele olarak tekrarlanır. “Permutation Choice” Tekniği : Bitlerin azaltılmasını sağlar. “Substitution Box” Tekniği : Gelen 6 bitten rastgele 4 tanesini seçiyor. 18
Deşifreleme Algoritması Şifreyi çözmede kullanılan fonksiyonda şifreli metin bloğu bitlerine ayrılır. Bu bitlerden ilk 32 si L0 parçasını, geri kalan 32 bit ise R0 parçasını oluşturur. Şifreleme algoritmasında anahtarları üretmek için kullanılan fonksiyonun aynısı deşifrelemede anahtarları tekrar üretmek için kullanılır. Feistel yapısı kullanıldığından şifreyi çözmek için anahtarları fonksiyona tersten veririz.
Örnek Uygulama Düz Metin: Kriptoloji şifreleme ve de-şifreleme işlemlerini kapsayan bir bilimdir ve diğer bilimlerde olduğu gibi bu biliminde bir tarihi vardır. Anahtar: Simetrik şifreleme bir mesajın gizliliğini sağlamak için kullanılan bir şifreleme türüdür. Şifrelenmiş-Metin: 25F221670F1FEC9C5DD9DD1B0E16EF0389DB391A524AF1C9D019568830E98A6C7B1C069A62BE11AD810A01AEC139168AC82AA81F468A1108DD22099E8650E7DB5C5CDADACF96FC46F9131DC7D518268ED21F008536E5CB76D91AA31AE6BE3728F1472C82DD582682DB484A5E09C4BF85DD0213B014506FD52CDA8CBF33CAB039940955DA74EDD57B De-şifre Edilmiş Metin: Kriptoloji şifreleme ve de-şifreleme işlemlerini kapsayan bir bilimdir ve diğer bilimlerde olduğu gibi bu biliminde bir tarihi vardır.
Karşılaştırmalı Analiz Güçlü olunan yanlar Çığ (avalanche) etkisi Anahtar uzunluğu Anahtar uzunluğundan dolayı Kaba Kuvvet (Brute Force) saldırısıyla anahtarın bulunması çok zordur. Zayıf olunan yanlar Anahtar uzunluğunun sabit olmasıdır. Döngü sayısının sabit olmasıdır. Donanıma uyum göstermeyebilir. Çalışma hızı, modüler aritmetik ve bit kaydırma işlemlerinden dolayı yavaşlamaktadır. 21
Sonuç Algoritma var olan şifreleme algoritmalarındaki tekniklerin üzerine yeni teknikler ekleyerek ve bu tekniklerin uygulama yerlerinin değiştirilmesiyle oluşturulmuştur. Algoritmanın başarılı bir şekilde çalıştığı örneklerle de test edilmiş, performans üzerindeki kısıtlamalarının ne olduğu açıkça dile getirilmiştir. Algoritma donanım için geliştirilmeye açıktır ve daha güvenilir bir sistem için yenilikleri içine alabilecek bir yapı üzerine kurulmuştur. Algoritmayı geliştirmek için anahtar uzunluğuyla döngü sayısının değişken olması sağlanabilir.
Kaynaklar [1]. Stallings W., Cryptography and Network Security: Principles and Practice Fourth Edition, Prentice Hall, New Jersey, 2006, ss.30. [2]. Stinson D. R., Cryptography, Theory and Practice, CRC Press, 1995, ss. 70. [3]. Stallings W., Network Security Essentials: Applications and Standards, Second Edition, Prentice Hall, New Jersey, 2003, ss. 33 [4]. Twofish, Bruce Schneier kişisel websitesi, http://www.schneier.com/twofish.html. [5]. Ferguson N., Schneir B., “Practical Cyrptography”, Wiley Publishing, 2003, ss. 59-61 [6]. Demir N., Dalkılıç G., “Anahtar Bağımlı Bir Şifreleme Algoritması (IRON)”, Akademik Bilişim 2007, 31 Ocak – 2 Şubat 2007, Kastamonu. [7]. Wikipedia, The Free Encylopedia, http://en.wikipedia.org/wiki/Advanced_Encryption_Standard.
Teşekkürler Sorular ? dalkilic@cs.deu.edu.tr gulsah_yildizoglu@hotmail.com