Döngü (kriptografi)

testwiki sitesinden
Gezinti kısmına atla Arama kısmına atla

Kriptografide bir döngü, çevrim, tur veya döngü fonksiyonu (Şablon:Dil) algoritma içinde birçok kez tekrarlanan (yinelemeli) temel bir dönüşümdür. Büyük bir algoritmik işlevi döngülere bölmek hem uygulamayı hem de kriptanalizi basitleştirir.Şablon:Sfn

Örneğin, aşırı basitleştirilmiş üç döngülü bir şifre kullanılarak şifreleme C=R3(R2(R1(P))) şeklinde yazılabilir, burada Şablon:Mvar şifreli metin ve Şablon:Mvar düz metindir. Tipik olarak, R1,R2,... döngüleri, döngü sabiti ve blok şifreler için anahtar çizelgesinden döngü anahtarı ile parametrelendirilen aynı fonksiyon kullanılarak uygulanır. Parametrelendirme, şifrenin kaydırma saldırısına ("slide attack") yol açabilecek kendine benzerliğini azaltmak için gereklidir.Şablon:Sfn

Döngü sayısını artırmak "neredeyse her zaman"Şablon:Sfn diferansiyel ve doğrusal kriptanalize karşı koruma sağlar, çünkü bu araçlar için deşifre çabası, döngü sayısı ile katlanarak artar. Ancak, bazı saldırılar döngü sayısına bağlı olmadığından döngü sayısını artırmak zayıf şifreleri "her zaman" güçlü hale getirmez.Şablon:Sfn

Basit değişmeyen işlemlerin tekrar tekrar uygulanmasıyla karıştırma ve dağıtma üreten bir yinelemeli şifre fikri 1945 yılına, C. E. Shannon'ın Gizlilik Sistemlerinin İletişim Teorisi ("Communication Theory of Secrecy Systems") adlı çalışmasına;[1] o zamanki gizli versiyonuna kadar uzanır. Shannon, dinamik sistemler teorisi alanında kullanılan karıştırma dönüşümlerinden esinlenmiştir (bkz. at nalı haritası). Modern şifrelerin çoğu yinelemeli tasarım kullanır ve döngü sayısı genellikle 8 ile 32 arasında seçilir (kriptografik özetlerde 64 ve hatta 80 kullanılır).Şablon:Sfn

Bazı Feistel benzeri şifre tanımları için, özellikle RC5 için, verinin bir kısmının dönüşümünü tanımlamak için bir "yarım döngü" terimi kullanılır (Feistel tasarımının ayırt edici bir özelliği). Bu işlem Feistel şifrelerinin geleneksel tanımlarında (DES gibi) tam döngüye karşılık gelir.Şablon:Sfn

Döngü sabitleri

Şifreleme sürecine döngüye bağlı sabitlerin eklenmesi döngüler arasındaki simetriyi bozar ve böylece en belirgin kaydırma saldırılarını engeller.Şablon:Sfn Bu teknik çoğu modern blok şifrenin standart bir özelliğidir. Bununla birlikte, döngü sabitlerinin kötü seçilmesi veya sabitler ile diğer şifre bileşenleri arasındaki istenmeyen ilişkiler yine de kaydırma saldırılarına izin verebilir (örneğin, biçim koruyan şifreleme modu FF3'ün ilk sürümüne saldırmak).Şablon:Sfn

Birçok hafif şifre, çok basit anahtar zamanlaması kullanır: yuvarlak anahtarlar döngü sabitlerinin şifreleme anahtarına eklenmesiyle elde edilir. Bu durumda kötü bir döngü sabiti seçimi, şifreyi değişmez saldırılara karşı savunmasız hale getirebilir; bu şekilde kırılan şifreler arasında SCREAM ve Midori64 bulunur.Şablon:Sfn

Optimizasyon

Daemen ve Rijmen şifreyi optimize etmenin amaçlarından birinin döngü karmaşıklığı ve döngü sayısının çarpımı olan toplam iş yükünü azaltmak olduğunu ileri sürmektedir. Bu hedefe ulaşmak için iki yaklaşım vardır:Şablon:Sfn

  • Yerel optimizasyon, tek bir döngünün en kötü durum davranışını iyileştirir (Feistel şifreleri için iki döngü);
  • Global optimizasyon, birden fazla döngünün en kötü durum davranışını optimize ederek daha az karmaşık bileşenlerin kullanılmasına olanak sağlar.

İndirgenmiş döngü şifreleri

Kriptanaliz teknikleri, şifrelerin tasarımcıları tarafından belirtilenden daha az döngülü versiyonlarının kullanılmasını içerir. Tek bir döngü genellikle kriptografik olarak zayıf olduğundan, şifrelerin tam sürümüne karşı çalışmayan birçok saldırı bu tür indirgenmiş döngülü ("reduced-round") varyantlarda çalışacaktır. Bu tür bir saldırının sonucu algoritmanın gücü hakkında değerli bilgiler sağlar,Şablon:Sfn tam şifrenin tipik bir kırılması, azaltılmış döngülü bir şifreye karşı başarı olarak başlar.Şablon:Sfn

Notlar

Şablon:Kaynakça

Kaynakça