Feistel şifresi
Kriptografide Feistel şifresi, blok şifrelerin yapımında kullanılan ve adını Alman IBM kriptografı Horst Feistel'den alan simetrik bir yapıdır; yaygın olarak Feistel ağı olarak da bilinir. Veri Şifreleme Standardı da dahil olmak üzere geniş bir blok şifre seti bu şemayı kullanır
Feistel yapısı, şifreleme ve şifre çözme işlemlerinin çok benzer, hatta bazı durumlarda aynı olması ve yalnızca anahtar programının tersine çevrilmesini gerektirmesi avantajına sahiptir. Bu nedenle böyle bir şifreyi uygulamak için gereken kod veya devre boyutu neredeyse yarı yarıya azalır.
Feistel yapısı doğası gereği yinelemelidir, bu da kriptosistemin donanımda uygulanmasını kolaylaştırır.
Feistel ağları ve benzer yapılar çarpım şifreleridir ve bu nedenle tekrarlanan işlemlerin birden fazla turunu birleştirir, örneğin
- Bit-karıştırma (genellikle permütasyon kutuları veya P-kutuları olarak adlandırılır)
- Basit doğrusal olmayan fonksiyonlar (genellikle ikame kutuları veya S-kutuları olarak adlandırılır)
- Claude Shannon'un "karışıklık ve yayılma" olarak tanımladığı büyük miktarlarda bir fonksiyon üretmek için XOR kullanarak doğrusal karıştırma (modüler cebir anlamında).
Bit karıştırma difüzyon etkisi yaratırken, ikame karışıklık için kullanılır.
Teorik çalışma
Birçok modern simetrik blok şifre Feistel ağlarını kullanır ve Feistel şifrelerinin yapısı ve özellikleri kriptograflar tarafından kapsamlı bir şekilde araştırılmıştır. Özellikle, Michael Luby ve Charles Rackoff Feistel blok şifre yapısını analiz etmiş ve eğer tur fonksiyonu kriptografik olarak güvenli bir sözde rasgele fonksiyon ise, Ki tohum olarak kullanıldığında, blok şifreyi bir sözde rasgele permütasyon yapmak için 3 turun yeterli olduğunu, "güçlü" bir sözde rasgele permütasyon yapmak için ise 4 turun yeterli olduğunu kanıtlamıştır (bu, ters permütasyonuna oracle erişimi olan bir düşman için bile sözde rasgele kaldığı anlamına gelir). Luby ve Rackoff'un bu çok önemli sonucu nedeniyle Feistel şifreleri bazen Luby-Rackoff blok şifreleri olarak adlandırılır. Daha sonraki teorik çalışmalar bu yapıyı genelleştirmiş ve güvenlik için daha kesin sınırlar tanımlamıştır.
İnşaat
F {\displaystyle {\rm {F}} tur fonksiyonu olsun ve K 1 , K 2 , ... , K n {\displaystyle K_{1},K_{2},\ldots ,K_{n}} sırasıyla 1 , 2 , ... , n {\displaystyle 1,2,\ldots ,n} turları için alt anahtarlar olsun.
O halde temel işlem aşağıdaki gibidir:
Düz metin bloğunu iki eşit parçaya bölün, ( L 1 {\displaystyle L_{1}} , R 1 {\displaystyle R_{1}} )
Her tur için i = 1 , 2 , ... , n {\displaystyle i=1,2,\dots ,n} , compute (hesapla)
L i + 1 = R i {\displaystyle L_{i+1}=R_{i}\,}
R i + 1 = L i ⊕ F ( R i , K i ) {\displaystyle R_{i+1}=L_{i}\oplus {\rm {F}}(R_{i},K_{i})} .
Bu durumda şifreli metin ( R n + 1 , L n + 1 ) {\displaystyle (R_{n+1},L_{n+1})} şeklindedir. (Genellikle iki parça R n {\displaystyle R_{n}} ve L n {\displaystyle L_{n}} son turdan sonra değiştirilmez).
Bir şifreli metnin ( R n , L n ) {\displaystyle (R_{n},L_{n})} şifresinin çözülmesi i = n , n - 1 , ... , 1 {\displaystyle i=n,n-1,\ldots ,1} için hesaplanarak gerçekleştirilir.
R i = L i + 1 {\displaystyle R_{i}=L_{i+1}\,}
L i = R i + 1 ⊕ F ( L i + 1 , K i ) {\displaystyle L_{i}=R_{i+1}\oplus {\rm {F}}(L_{i+1},K_{i})} .
Sonra ( L 1 , R 1 ) {\displaystyle (L_{1},R_{1})} yine düz metindir.
Bu modelin bir avantajı, F {\displaystyle {\rm {F}} yuvarlak fonksiyonunun ters çevrilebilir olması gerekmemesi ve çok karmaşık olabilmesidir.
Diyagram şifreleme sürecini göstermektedir. Şifre çözme işlemi yalnızca K n , K n - 1 , ... , K 1 {\displaystyle K_{n},K_{n-1},\ldots ,K_{1}} alt anahtarlarının sırasını aynı işlemi kullanarak tersine çevirmeyi gerektirir; şifreleme ve şifre çözme arasındaki tek fark budur:
Dengesiz Feistel şifreleri, L 1 {\displaystyle L_{1}} ve R 1 {\displaystyle R_{1}} eşit uzunlukta olmadığı değiştirilmiş bir yapı kullanır. MacGuffin şifresi böyle bir şifrenin deneysel bir örneğidir.
Feistel yapısı blok şifreler dışındaki kriptografik algoritmalarda da kullanılmaktadır. Örneğin, Optimal Asimetrik Şifreleme Dolgusu (OAEP) şeması, belirli asimetrik anahtar şifreleme şemalarında şifre metinlerini rastgele hale getirmek için basit bir Feistel ağı kullanır.
P'nin düz metin ve C'nin şifreli metin olduğu blok şifre üzerinde Feistel ağ işlemi
Feistel şifrelerinin listesi
Feistel veya değiştirilmiş Feistel: Blowfish, Camellia, CAST-128, DES, FEAL, ICE, KASUMI, LOKI97, Lucifer, MARS, MAGENTA, MISTY1, RC5, TEA, Triple DES, Twofish, XTEA, GOST 28147-89
Genelleştirilmiş Feistel: CAST-256, MacGuffin, RC2, RC6, Skipjack
Sorular ve Yanıtlar
S: Feistel şifresi nedir?
C: Feistel şifresi, blok şifrelerin yapımında kullanılan ve adını Alman IBM kriptografı Horst Feistel'den alan simetrik bir yapıdır. Yaygın olarak Feistel ağı olarak da bilinir.
S: Feistel yapısı kullanmanın bazı avantajları nelerdir?
C: Feistel yapısı kullanmanın temel avantajı, şifreleme ve şifre çözme işlemlerinin çok benzer, hatta bazı durumlarda aynı olması ve sadece anahtar programının tersine çevrilmesini gerektirmesidir. Bu, böyle bir şifreyi uygulamak için gereken kod veya devre boyutunu neredeyse yarı yarıya azaltır. Ayrıca, yinelemeli yapısı kriptosistemin donanımda uygulanmasını kolaylaştırır.
S: Claude Shannon "karışıklık ve yayılmayı" nasıl tanımlıyor?
C: Claude Shannon "karışıklık ve yayılmayı" bir saldırganın şifrelenmiş bir mesajı deşifre etmesini zorlaştırmak için her iki unsurun da büyük miktarlarda mevcut olması olarak tanımlamıştır.
S: Karışıklık ve yayılma yaratmak için hangi teknikler kullanılır?
C: Karışıklık ve yayılma, bit karıştırma (genellikle permütasyon kutuları veya P-kutuları olarak adlandırılır) ve basit doğrusal olmayan fonksiyonlar (genellikle ikame kutuları veya S-kutuları olarak adlandırılır) ve XOR kullanılarak doğrusal karıştırma (modüler cebir anlamında) yoluyla oluşturulur. Bit karıştırma difüzyon etkisi yaratırken, ikame kafa karışıklığı için kullanılır.
S: Feistel ağı ne tür bir şifrelemedir?
C: Feistel ağı, verileri güvenli bir şekilde şifrelemek için birden fazla tekrarlanan işlem turunu birleştiren bir tür ürün şifresidir.
S: Bu kriptografi türünü kim geliştirdi?
C: Feistel yapısı Alman IBM kriptografı Horst Feistel tarafından geliştirilmiştir.
S: Veri Şifreleme Standardı bu kriptografi türüne mi dayanmaktadır?
C: Evet, Veri Şifreleme Standardı, şifrelenmiş bir mesaj içinde karışıklık ve yayılma yaratmak için yukarıda özetlenen aynı ilkeleri kullanan bu şifreleme türünü kullanır.