Yazan: Faruk Sanlı

Bir kriptosistem, şifreleme algoritması, açık metin, şifreli metin ve anahtardan oluşmaktadır. Şifreleme algoritmaları kriptosistemin en önemli parçasıdır. Temel olarak şifreleme algoritmalarını simetrik (symmetric) , asimetrik (asymmetric) ve hash algoritmaları (özet algoritmaları) olarak üç gruba ayırabiliriz. Bu şifreleme algoritmalarından simetrik algoritmalar şifreleme ve de şifreleme işlemlerinde aynı anahtarı, gizli anahtarı, kullanır. Diğer yandan kriptografide blok şifreleme ve akış (stream) şifreleme olmak üzere iki temel simetrik algoritma tipi vardır. Bunlardan blok şifreleme, orijinal metni veya şifreli metni bloklara bölerek şifreleme/de şifreleme işlemini yapar. Akış şifrelemede ise bir bit veya byte üzerinde şifreleme ve de şifreleme işlemleri yapılır. Aşağıda inceleyecek olduğumuz şifre algoritması bir akış şifrelemedir.

PY AKIŞ ŞİFRELEMESİ

Bihom ve Seberry tarafından dizayn edilen Py şifresi, ECRYPT projesinde yüksek hızlı uygulamalar için uygun olan yazılım tabanlı akış şifrelemesini gösteren Profil 1 için aday gösterilmiştir. Son birkaç yılda, hızlı ve güvenli akış şifrelemesini tasarımlamak için kriptograflar arasında gitgide artan bir ilgi oluşmuştur. Bunun nedeni de RC4 gibi birçok “de facto” standardında bulunan zayıflıklardan kaynaklanmaktadır. Ayrıca diğer bir neden de NESSIE projesi kapsamında bir akış şifrelemesi bulmaya çalışırken karşılaştığı oldukça sıkı güvenlik gereklilikleri ile alakalı yaşadığı başarısızlıktır. Şimdiki akış şifrelemesi, yani Py, bu doğrultudaki girişimlerden bir tanesidir.

Py, akış şifrelemelerini içeren sınıfa son zamanlarda eklenen oldukça yeni bir türdür. Py’ın tasarım prensipleri RC4 tarafından harekete geçirilmiştir. Tıpkı RC4’deki gibi, Py rastgele karıştırma tekniğini kullanarak içyapıyı günceller. Ek olarak; Py yeni bir teknik kullanarak her bir turda(round) tüm dizi elemanlarını minimum bir süre içinde döndürür. Py’nin bu yüksek performansı ve açık şekilde görünen güvenlik üstünlüğü onu ECRYPT projesinin Profil 1 seçiminde çekici kılmıştır.

Şifre iki geniş dizide bulunmaktadır. Bunlardan biri 256 bytes ve diğeri de 1040 bytes. Yüksek hızdaki yazılım uygulamaları için tasarlanmıştır. Py, Pentium III deki RC4 ‘ten 2,5 kat daha hızlıdır. İlk ve üçüncü turlarda, Py çıktılarının dağılımında istatistiksel bir önyargı söz konusu olabilir. Ayırt edici(Distinguisher) tarafından gerekli olan süre ve datalar sırasıyla tini: 284.7 ve 289.2 dir.

En iyi ayırt ediciler, rastgele 284.7 olarak seçilmiş key ile beraber şekilde çalışır. Ayırt ediciye gösterilen basit uyum, anahtar sayısını azaltır. Py’ın izin verilen anahtar boyutu ve anahtar akış uzunluğu, sırasıyla 256 bit ve 264 byte’dır. Böylece bu da gösteriyor ki Py ideal bir akış şifrelemesinden parametre boyutlarıyla beraber, beklenen bir güvenlik seviyesi sağlamakta başarısızlığa uğramıştır.

Algoritma 1: Py’ın tek bir turu

Input: Y[ 3,…,256], P[0,…,255], bir 32-bit s değişkeni

Output: 64-bit rastgele output

/*P’yi güncelle ve çevir */

1: swap (P[0], P[Y[185]&255]);

2: rotate (P);

/* s’yi güncelle*/

3: s+ = Y[P[72]] Y[P[239]];

4: s = ROTL32(s,((P[116]+18)&31));

/* Output 8 bytes (ilk olarak en önemsiz byte lar)*/

5: output ((ROTL32(s,25)?Y[256])+Y[P[26]]);

6: output (( s ?Y[ 1])+Y[P[208]]);

/* Y’yi güncelle ve çevir*/

7: Y[ 3] = (ROTL32(s,14)?Y[ 3])+Y[P[153]];

8: rotate(Y);

AYIRT EDİCİ

Ayırt edici rastgele akan bitler arasından bir grup biti ayıran algoritmadır. Bir şifre çözücünün bunu güvenli olmayan bir bit üreticisi tarafından yaratılan dizi arasından yapmasının birkaç yolu vardır.

Algoritma 2: Bir ayırt edicinin Py ve Random’ı ayırması

Input: n bitli bir seri (z1,z2,z3,…,zn)

Output: rastgele veya Py tarafından üretilmiş olsa dahi

1: LLR’ı hesapla LLR=∑i log(P0[zi] / P1[zi]);

2:If LLR ≥ 0 1 döndür (Ör: Seri Py tarafından olursa)

Else 0(Seri rastgeleyse);

ŞİFREYE SALDIRI VE ŞİFRENİN KIRILMASI

Teoride sağlam geliştirilmiş bir yapıya sahip olsak bile şifrenin kırılması konusu halen tartışmalıdır. En büyük problem de kullanışlı akış şifrelerinin analizlerinin frameworke uydurulamamasıdır. Kâğıt üzerinde yapılan saldırılar teorik olarak şifrenin kırılabileceğine dair ipuçları verdiyse de sunulan her saldırı algoritmasının iş yükü en az 285‘tir. Bu yüzden Py şifresine gerçekçi ve pratikte bir tehdit bulunmamaktadır.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir