Yazan : Alp Caskurlu
Simetrik anahtarlı şifreleme algoritmaları yapısı olan Feistel şifreleme IBM’s Lucifer şifrelemesi geliştirerek Feistel ve Don Coppersmith tarafından yayınladi. America Federe Devleti bu methot geliştirecek DES şifrelemeyi üretti.DES şifrelemedeki F fonsiyonu değiştirecek Iron şifreleme üretildi.
KULLANIM ALANLARI
Günümüzde işlerimiz bilgisayar platformuna taşıdığımızdan dolayı sanal verilerimiz önem kazandi .
Bu sanal verileri saklandığı Flash sürücülerde güvenliği artırmak için David Jevans ve ekibi IronKey
şifrelemesi kullanarak flash sürücülerin veriye şifre girilmeden ulaşılmasını sağlıyor. Bu sayede flash sürücüleri her türlü izin ulaşımdan korunduğu gibi virusleri ve trojenleri engeliyor.Kaynak 1.
ALGORITMA
Feistel Algoritması
Öncelik plaintext 128 bit boyutundadir.Anatharımız ise 64 bit boyutundadır.
Şekildeki K1,K2..Kn Alt anatharlardır. Bu anathar sayısı döngü sayısını belirler buda en az 16 en fazla 32 adettir.Bu Feistel şifrelemeyi anlatmamın sebebi DES,AES konu olan IRON şifrelemenin bu yapıyı kullanmasıdır.Aralarındaki fark şekildeki F fonsiyonu ve alt anatharlarının bulunmasıdır. Şifreleme işlemine başlarken ilk olarak döngü sayısı sonra gizli kutular ve alt anahtarlar hesaplanır.
Döngü Sayının Bulunması
İlk olarak 128 bitlik anatharlar 32 tane 4 bitlik bloklara bölünür.Bu Bloklar kendi aralarında XOR işleminden geçirilir.Elde edilen değerler decimal sisteme dönüştürülür.Bu decimal değerler çift sayı ise 16 ile toplanır tek sayı ise 17 ile toplanır Çünkü değerler 16 ile 32 arası olmalıdır.
Alt Anahtarların Bulunması
Her döngü sırasında 2 tane alt anathar çıkmasından dolayı alt anathar bulunurkenki döngü sayısı şifrelemedeki döngü sayısının yarısı kadardır
.
Alt anahtarların oluşmasında bu şekilde yapılır.
İlk128 bitlik anahtar, 64 bitlik bloklara ayrılır. Sonra Sol blok bitleri, sola bir bit kaydırılır. İlk bit, sona alınır. Çıkan 64 bitlik blok, 32 bitlik bloklara ayrılır ve bunlar P0, P1 ile XOR işlemine sokulur. çıkan 32 bitlik veriler birleştirilir, böylece ortaya ilk alt anahtar çıkar.Elde edilen sağ bloğun bitleri, sola bir bit kaydırılır. İlk bit, sona alınır.Kaydırma sonucu çıkan 64 bitlik blok, 32 bitlik bloklara ayrılır ve bunlar P2, P3 ile XOR işlemine sokulur. XOR işleminden sonra çıkan sonuç 32 bitlik veriler birleştirilir, böylece ortaya ikinci alt anahtar çıkar. Bu işlem sonunda ilk döngü tamamlanmış olur.
İkinci döngüde, 64 bitlik bloklar yine, sola kaydırma işlemine tabi tutulur.Sol 64 bitlik blok için uygulanır ama bir farkla XOR işlemi için P4 ve P5 kullanılır. Ardından bloklar birleştirilir. Sağ 64 bitlik blok için 32 bitlik Bloglar ayırıp ama bir farkla XOR işlemi için P6 ve P7 kullanılır. Ardından bloklar birleştirilir.Bundan sonraki adımlar da ikinci döngüde olduğu gibi devam eder ama bundan sonra kullanılacak olan sabitler P8, P9, …olarak artacaktır.
Bu işlemler esnasında 256 adet P sabitlerinden hepsi kullanılmaz. En az 32 tanesi, en fazla 64 tanesi kullanılır.
F Fonksiyonu
DES ile aradaki farklardan biri olan F fonksiyonu Feistel yapısının önemli bir yeri vardır. Çoğunlukla bu fonksiyon girdi olarak, bir önceki döngüden gelen verinin sağ bloğu ve alt anahtar olmak üzere iki parametre alır.
Bu algoritmada da girdiler bu şekilde alınmıştır, bunlar R ve SK olarak temsil edilecektir
R(Right dan gelmektedir Sağ bloğu temsil eder)
SK(Sub Key den gelmektedir Alt anatharı temsil eder)
F fonksiyonu içindeki toplama işlemi 232+1 moduna göre hesaplanmıştır.
fonksiyon oluşmasında bu adımlar izlenir Adimlar altıntıdır.
Alt anahtar (SK) sol ve sağ olmak üzere 32 bitlik bloklara ayrılı; SKL, SKR..SKL, R ile XOR işlemine sokulur.Çıkan sonuç 32 bitlik blok 4 adet 8 bitlik bloğa ayrılır.Her bir blok sırayla S0, S1, S2, ve S3 gizli kutularına girer ve 4 adet 32 bitlik blok çıkar; A0, A1, A2, A3. İlk olarak A0 ve A3 toplanır.sonraA1 ve A2 toplanır.Bu değerler 32 bitlik bloklar XOR işlemine sokulur.SKR, çıkan değer ile 32 bitlik blok ile XOR işlemine sokulur. Çıkan 32 bitlik blok F fonksiyonun çıktısıdır.
AVANTAJLARI
Anahtar bağımlı olması (Döngü sayısı, alt anahtarlar, gizli kutular)
Yenilik: döngü sayısının da anahtara bağımlı olması.
Programlama esnasında bitlerle değil de hexadecimal değer kullanılması (Örneğin DES‘te bitler ile işlem yapılır)
bitler yerine 16-tabanındaki sayılar kullanmasıdır
DEZAVANTAJLARI
Döngü sayısının değişken olması iş yükünü arttırabilir.
Değişken anahtar boyutları ile çalışamamaktadır.
Donanım için uygun olmayabilir
yazılım için tasarlanmış olmasıdır
SONUÇ
Feistel yapısını kullanır. IRON, 64 bitlik veri bloklarını 128 bitlik anahtarla şifrelemede kullanılır. Döngü (round) sayısı 16 ile 32 arasındadır. Alt anahtarlar döngü sayısına bağlıdır. Alt anahtarların sayısı döngü sayısına eşittir. Bu nedenden dolayı algoritma anahtar bağımlıdır. IRON algoritmasının var olan algoritmalardan farkı da budur.
KAYNAKLAR
[1] https://www.ironkey.com/
[2] Anahtar Bağımlı Bir Şifreleme Algoritması (IRON ) ab.org.tr/ab07/sunum/71.ppt
[3] http://ab.org.tr/ab07/bildiri/71.doc
[4] http://en.wikipedia.org/wiki/Feistel_cipher