Döngü (kriptografi)

Algoritma içinde birden çok kez tekrarlanan (yinelenen) temel bir dönüşüm.

Kriptografide bir döngü, çevrim, tur veya döngü fonksiyonu (İngilizceround veya round function) 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.[1]

Örneğin, aşırı basitleştirilmiş üç döngülü bir şifre kullanılarak şifreleme şeklinde yazılabilir, burada C şifreli metin ve P düz metindir. Tipik olarak, 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.[1]

Döngü sayısını artırmak "neredeyse her zaman"[2] 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.[3]

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;[4] 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).[5]

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.[6]

Döngü sabitleri

değiştir

Ş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.[3] 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).[7]

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.[8]

Optimizasyon

değiştir

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:[2]

  • 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

değiştir

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,[9] tam şifrenin tipik bir kırılması, azaltılmış döngülü bir şifreye karşı başarı olarak başlar.[10]

  1. ^ a b Aumasson 2017, s. 56.
  2. ^ a b Daemen & Rijmen 2013, s. 74.
  3. ^ a b Biryukov & Wagner 1999.
  4. ^ Shannon, Claude (1 Eylül 1945). "A Mathematical Theory of Cryptography" (PDF). s. 97. 28 Mart 2016 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 19 Nisan 2024. 
  5. ^ Biryukov 2005.
  6. ^ Kaliski & Yin 1995, s. 173.
  7. ^ Dunkelman et al. 2020, s. 252.
  8. ^ Beierle et al. 2017.
  9. ^ Robshaw 1995, s. 23.
  10. ^ Schneier 2000, s. 2.

Kaynakça

değiştir