Blowfish, AES, RC4, DES ve Seal gibi şifreleme algoritmaları iki şifreleme kategorisinden birinde uygulanır. Şifreleme tipinin avantajları/dezavantajları nelerdir?
Her ikisi de simetrik şifreleme olsa da, akış şifrelemeleri "sonsuz" bir kriptograpik anahtar akışı üretmeye ve bunu bir kerede bir bit veya bayt şifrelemek için kullanmaya (tek seferlik pad'e benzer) dayalıdır, oysa blok şifrelemeler daha büyük veri yığınlarında çalışır (yani bloklar) bir kerede, genellikle ek güvenlik için blokları birleştirir (örneğin CBC modunda AES).
Bir blok şifreleme , sabit sayıda bitin dizisi olan ("bloklar" olarak adlandırılır) anahtarlara bağımlı değer permütasyonu uygulayan çok yönlü bir algoritmadır. Birçok kriptografik protokolde çeşitli roller için kullanılabilir. Böyle bir rol, uzun veri akışlarının toplu olarak şifrelenmesidir; böyle bir şeyi başarmak için, blok şifre uygun bir çalışma mod ("zincirleme modu" olarak da bilinir), geleneksel olan CBC ve modaya uygun daha yeni modun TO olması gerekir.
A akış şifresi , uzun veri akışlarının toplu olarak şifrelenmesi amacıyla özel bir algoritmadır. Fikir, blok şifrenin çok yönlülüğünü kaybederek daha verimli bir algoritma (yani verileri şifreleyen bir şey daha hızlı) mümkün olacaktır.
Her ikisi de akış yönelimli şifreleme modu ile blok şifreleri ve akış şifreleri, aynı anahtar uygun, benzersiz/rastgele yeterli olmadan iki farklı akış için iki kez kullanılırsa, güvenlik sorunları ile karşılaşabilir Başlatma Vektör. CBC şifrelemesi için, IV her yeni mesaj için bloktan aynı büyüklükte yeni bir muntazam rastgele bit dizisi olmalıdır. İyi akış şifreleri de bir IV kabul eder. RC4 adlı geleneksel bir akış şifresi IV'tür (spesifikasyonu bir IV'ün nereye veya nasıl yerleştirilebileceğini belirtmez), bu da çok kargaşaya neden olur ve akış şifreleme kavramına kötü bir isim verir.
Daha yeni, daha güvenli (ve daha hızlı) akış şifreleri için eSTREAM portföyü konusuna bakın. Bu algoritmalar birçok kriptograf tarafından oldukça kapsamlı bir analizden geçmiştir ve "oldukça güvenli" kabul edilmektedir.
Bir akış şifresi, sıfır değerine sahip uzun bir bayt dizisini şifreleyerek bir Pseudorandom Number Generator biçimine dönüştürülebilir. Aslında, birçok (hepsi değil) akış şifresi, bir PRNG olarak dahili olarak çalışır, daha sonra şifrelemek (veya şifresini çözmek) verilerle birleştirilen (bitsel XOR ile) uzun bir anahtara bağlı sahte rasgele bayt üreterek, daha sonra sıfır baytın şifrelenmesi XOR tümüyle yok sayılmaya eşdeğerdir) Bu nedenle, akış şifreleri genellikle özel PRNG olarak kullanılır.
Daha önce bahsedilmeyen akış şifrelemelerinin bir avantajı, dolguya ihtiyaç duymamalarıdır (blok şifrelemeler tam bloklarda çalışır, bu nedenle yeterli veriye sahip değilseniz, bir şekilde daha fazla oluşturmanız gerekir). Ve sürpriz (gerçekte değil, kriptografi, Murphy'nin her yerde olduğu alan), örneğin Pratik Dolgu Oracle Saldırıları .
Ayrıca blok şifrelemelerin güvenliği de neredeyse çalışma modlarına bağlıdır, hala burada ve orada ECB'nin kullanıldığını görüyorsunuz ve hiç kriptodan daha iyi değil.
Temelde birinin diğerinden daha iyi olduğunu söyleyemezsiniz, biri güvenlik yargısı yapmak için eksiksiz bir şifreleme sistemine bakmalıdır.
Stream Ciphers düz metin verilerini rastgele bir bit akışı ile şifreler (genellikle XOR ile kolayca tersine çevrilebilir çünkü). 128bit verileriniz varsa, 128 bit psedurandom strem ( anahtarınız).
Engelle Şifrelemeleri, düz metin verilerini aynı dönüşümle bir kerede bir blok şifreler (anahtara göre). 128bit verileriniz var, şifre bloklar halinde kırılıyor (32 bitlik 4 blok gibi) ve 4 şifreli blok elde eden her bloğa aynı dönüşümü uygular, bu birleştirilen son şifrelemeyi oluşturur.
Tabii ki bu Blok Cyphers, dahil olan donanım karmaşıklığı açısından daha güvenli ancak kullanımı pahalıdır. Stream Ciphers daha hızlı ve "ucuz" ama yanlış uygulanırsa güvenlik sorunları duyarlı olabilirler.