it-swarm-tr.com

Stream vs Block Ciphers'ın avantajları ve dezavantajları

Blowfish, AES, RC4, DES ve Seal gibi şifreleme algoritmaları iki şifreleme kategorisinden birinde uygulanır. Şifreleme tipinin avantajları/dezavantajları nelerdir?

66
Eric Warriner

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).

  • Akış şifreleri genellikle bloktan daha hızlıdır, ancak bunun kendi fiyatı vardır.
  • Blok şifreleri tipik olarak daha fazla bellek gerektirir, çünkü daha büyük veri parçaları üzerinde çalışırlar ve genellikle önceki bloklardan "taşınırlar", ancak akış şifreleri bir seferde sadece birkaç bit üzerinde çalıştıklarından, nispeten düşük bellek gereksinimlerine sahiptirler (ve bu nedenle yerleşik cihazlar, bellenim ve özellikle donanım gibi sınırlı senaryolarda uygulayın).
  • Akış şifrelemelerinin doğru şekilde uygulanması daha zordur ve kullanıma dayalı zayıflıklara eğilimlidir - ilkeler bir kerelik ped'e benzer olduğundan, anahtar akışının çok katı gereksinimleri vardır. Öte yandan, bu genellikle zor kısmıdır ve örn. harici bir kutu.
  • Blok şifreler bir kerede tüm bir bloğu şifrelediğinden (ve ayrıca en çok önerilen "geri bildirim" modlarına sahip olduklarından), iletimdeki gürültüye karşı daha hassastırlar, yani verilerin bir kısmını karıştırırsanız, geri kalan her şey muhtemelen kurtarılamayan. Akış şifrelemeli baytlar, diğer veri yığınlarına (çoğu şifreleme/modda) bağlantı olmadan ayrı ayrı şifrelenir ve genellikle hattaki kesintiler için desteklenir.
  • Ayrıca, akış şifreleri bütünlük koruması veya kimlik doğrulaması sağlamazken, bazı blok şifreleri (moda bağlı olarak) gizliliğin yanı sıra bütünlük koruması da sağlayabilir.
  • Yukarıdakilerin tümü nedeniyle, akış şifreleri genellikle ağ akışları gibi veri miktarının bilinmeyen veya sürekli olduğu durumlar için en iyisidir. Öte yandan, veri miktarı önceden biliniyorsa (örneğin dosya, veri alanları veya toplam ileti uzunluğunun zaten bilindiği HTTP gibi istek/yanıt protokolleri gibi) şifreleri engelleyin başlangıç.
48
AviD

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.

26
Thomas Pornin

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.

9
Bruno Rohée

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.

1
gbr