Resmi bir analiz, 2011 yılında Phil Rogaway tarafından yapılmıştır buraya . Bölüm 1.6, burada yazıya döktüğüm, kalın harflerle kendi vurgularımı eklediğim bir özet verir (eğer sabırsızsanız, tavsiyesi CTR modunu kullanmaktır, ancak aşağıda mesaj bütünlüğü ve şifreleme hakkındaki paragrafları okumanızı öneririz).
Bunların çoğunun IV'ün rasgele olmasını gerektirdiğini, bu da öngörülemez olduğu anlamına gelir ve bu nedenle kriptografik güvenlikle oluşturulması gerektiğini unutmayın. Ancak, bazıları sadece bu özelliği talep etmeyen bir "nonce" gerektirir, bunun yerine sadece yeniden kullanılmamasını gerektirir. Bu nedenle, bir nonce'ye dayanan tasarımlar, yapmayan tasarımlardan daha az hataya eğilimlidir (ve bana inanıyorum, CBC'nin uygun IV seçimi ile uygulanmadığı birçok durum gördüm). Bu yüzden Rogaway "IV bir nonce olduğunda gizlilik elde edilemez" gibi bir şey söylediğinde cesur eklediğimi göreceksiniz, bu da IV kriptografik olarak güvenli (öngörülemez) seçerseniz sorun olmaz demektir. Ancak bunu yapmazsanız, iyi güvenlik özelliklerini kaybedersiniz. Bu modlardan herhangi biri için asla IV'ü tekrar kullanmayın .
Ayrıca, mesaj bütünlüğü ve şifreleme arasındaki farkı anlamak da önemlidir. Şifreleme verileri gizler, ancak saldırgan şifrelenmiş verileri değiştirebilir ve mesaj bütünlüğünü kontrol etmezseniz sonuçlar yazılımınız tarafından kabul edilebilir. Geliştiricinin "ancak değiştirilen veriler şifre çözme işleminden sonra çöp olarak geri döneceğini" söyleyecek olsa da, iyi bir güvenlik mühendisi çöpün yazılımda olumsuz davranışlara neden olma olasılığını bulacaktır ve ardından bu analizi gerçek bir saldırıya dönüştürecektir. Şifrelemenin kullanıldığı birçok durum gördüm ancak mesaj bütünlüğünün şifrelemeden daha fazlasına ihtiyacı vardı. Neye ihtiyacınız olduğunu anlayın.
GCM'nin hem şifreleme hem de mesaj bütünlüğü olmasına rağmen, çok kırılgan bir tasarım olduğunu söylemeliyim: Bir IV'ü tekrar kullanırsanız, vidalanırsınız - saldırgan anahtarınızı kurtarabilir. Diğer tasarımlar daha az kırılgandır, bu yüzden şahsen GCM'yi uygulamada gördüğüm kötü şifreleme kodunun miktarına göre önermekten korkuyorum.
Hem mesaj bütünlüğüne hem de şifrelemeye ihtiyacınız varsa, iki algoritmayı birleştirebilirsiniz: genellikle CBC'yi HMAC ile görüyoruz, ancak kendinizi CBC'ye bağlamak için bir neden yok. Bilmeniz gereken önemli şey önce şifrelemek, daha sonra şifrelenmiş içeriği MAC'dir, tersi değil. Ayrıca, IV'ün MAC hesaplamasının bir parçası olması gerekir.
IP sorunlarının farkında değilim.
Şimdi Profesör Rogaway'in iyi şeylerine:
Şifreleme modlarını, şifrelemeyi engelle ancak ileti bütünlüğünü engelle
ECB : Bir blockcipher, mod, her bir n-bit parçasını ayrı ayrı şifreleyerek n bitin katları olan mesajları şifreler. Güvenlik özellikleri zayıftır , yöntem hem blok konumları hem de zaman boyunca blokların eşitliğini sızdırır. Önemli miras değerine ve diğer şemalar için bir yapı taşı olarak değere sahip olmakla birlikte, mod kendi başına genel olarak arzu edilen herhangi bir güvenlik hedefine ulaşmaz ve büyük bir dikkatle kullanılmalıdır; ECB “genel amaçlı” bir gizlilik modu olarak görülmemelidir .
CBC : IV tabanlı bir şifreleme şeması, mod, olasılıklı bir şifreleme şeması olarak güvenlidir ve rastgele bir IV varsayarak rastgele bitlerden ayırt edilemezlik sağlar. IV sadece bir nonce ise veya standart tarafından yanlış bir şekilde önerildiği gibi, şema tarafından kullanılan aynı anahtar altında şifrelenmemişse, gizlilik elde edilemez . Şifrelemeler oldukça yumuşaktır. Seçili şifreli metin saldırısı (CCA) güvenliği yok. Birçok dolgu yöntemi için doğru doldurma kehaneti varlığında gizlilik kaybedilir. Doğası gereği seri olmaktan şifreleme verimsiz. Yaygın olarak kullanılan modun yalnızca gizlilik güvenlik özellikleri sık sık yanlış kullanıma neden olur. CBC-MAC algoritmaları için yapı taşı olarak kullanılabilir. TO moduna göre önemli bir avantaj tanımlayamıyorum.
CFB : IV tabanlı bir şifreleme şeması, mod, olasılıklı bir şifreleme şeması olarak güvenlidir ve rastgele bir IV varsayarak rastgele bitlerden ayırt edilemezlik sağlar. IV öngörülebilirse veya standart tarafından yanlış bir şekilde önerildiği gibi, şema tarafından kullanılan anahtarla şifrelenmemiş bir kişi tarafından yapılmışsa gizlilik elde edilemez . Şifrelemeleri biçimlendirilebilir. CCA güvenliği yok. Doğası gereği seri olmaktan şifreleme verimsiz. Şema, s parametresine bağlıdır, 1 ≤ s ≤ n, tipik olarak s = 1 veya s = 8. Mod ilginç bir “kendini senkronizasyon” özelliğine sahiptir; herhangi bir sayıda s-bit karakterin şifreli metne eklenmesi veya silinmesi, doğru şifre çözmeyi yalnızca geçici olarak bozar.
OFB : IV tabanlı bir şifreleme şeması, mod, olasılıklı bir şifreleme şeması olarak güvenlidir ve rastgele bir IV varsayarak rastgele bitlerden ayırt edilemezlik sağlar. Sabit bir IV dizisi (örn., Bir sayaç) düzgün çalışmasına rağmen, IV bir nonce ise gizlilik elde edilemez. Şifrelemeler oldukça yumuşaktır. CCA güvenliği yok. Şifreleme ve şifre çözme, doğası gereği seri olmaktan yetersizdir. Herhangi bir bit uzunluğundaki dizeleri yerel olarak şifreler (dolgu gerekmez). TO moduna göre önemli bir avantaj tanımlayamıyorum.
CTR : IV tabanlı bir şifreleme şeması olan mod, IV olmayan bir varsayımla rastgele bitlerden ayırt edilemezlik sağlar. Güvenli bir nonce tabanlı şema olarak, mod rastgele bir IV ile olasılıklı bir şifreleme şeması olarak da kullanılabilir. Bir nonce şifreleme veya şifre çözme işleminde yeniden kullanılırsa gizliliğin tamamen başarısız olması. Modun paralelleştirilebilirliği genellikle bazı ayarlarda diğer gizlilik modlarından daha hızlıdır. Kimliği doğrulanmış şifreleme düzenleri için önemli bir yapı taşıdır. Genel olarak, yalnızca gizlilik şifrelemesini elde etmenin genellikle en iyi ve en modern yolu.
XTS : IV tabanlı bir şifreleme düzeni olan mod, her n-bit yığınına bir tweakable blok diski (güçlü bir PRP olarak güvenli) uygulayarak çalışır. Uzunlukları n ile bölünemeyen mesajlar için, son iki blok özel olarak ele alınır. Modun izin verilen tek kullanımı, blok yapılı bir depolama aygıtındaki verileri şifrelemek içindir. Altta yatan PRP'nin dar genişliği ve fraksiyonel son blokların kötü tedavisi problemlerdir. Daha etkili ancak (geniş bloklu) bir PRP-güvenli blokipere göre daha az arzu edilir.
MAC'ler (mesaj bütünlüğü ancak şifreleme değil)
ALG1–6 : Hepsi CBC- MAC'e dayanan bir MAC koleksiyonu. Çok fazla şema. Bazıları VIL PRF'leri, bazıları da FIL PRF'leri ve bazılarının kanıtlanabilir güvenliği yoktur. Bazı planlar zarar verici saldırıları kabul etmektedir. Bazı modlar tarihli. Anahtar ayrımına sahip modlar için yetersiz bir şekilde katılır. Toplu olarak kabul edilmemeli, ancak “en iyi” şemaların seçilerek seçilmesi mümkündür. Bu modlardan hiçbirini CMAC lehine kabul etmek de iyi olur. ISO 9797-1 MAC'lerin bazıları, özellikle bankacılıkta yaygın olarak standartlaştırılmış ve kullanılmaktadır. Standardın gözden geçirilmiş bir versiyonu (ISO / IEC FDIS 9797-1: 2010) yakında yayınlanacaktır [93].
CMAC : CBC-MAC tabanlı bir MAC, mod (VIL) PRF (temeldeki blokiperin iyi bir PRP olduğu varsayılarak) olarak güvenli bir şekilde (doğum gününe bağlı) güvenlidir. CBCMAC tabanlı bir şema için esasen minimum ek yük. Doğası gereği, seri uygulama bazı uygulama alanlarında bir sorun ve 64 bitlik bir blok disiplinin kullanılması, zaman zaman yeniden anahtarlama gerektirecektir. ISO 9797-1 MAC koleksiyonundan daha temiz.
HMAC : Bir blok şifreleme yerine bir şifreleme karma işlevine dayanan bir MAC (çoğu şifreleme karma işlevinin kendisi blok şifreleyicilere dayanmasına rağmen). Mekanizma, tercih edilen varsayımlardan olmasa da, güçlü kanıtlanabilir güvenlik sınırlarına sahiptir. Literatürdeki yakından ilişkili çok sayıda varyant, bilinenlerin anlaşılmasını zorlaştırmaktadır. Hiçbir zararlı saldırı önerilmemiştir. Yaygın olarak standartlaştırılmış ve kullanılır.
GMAC : GCM'nin özel bir örneği olan nonce tabanlı bir MAC. GCM'nin iyi ve kötü özelliklerinin çoğunu miras alır. Ancak, MAC için gereksiz gereksinim yoktur ve burada çok az fayda sağlar. Etiketler b 64 bite kesilirse ve şifre çözme derecesi izlenmez ve kısıtlanmazsa pratik saldırılar. Tekrar kullanılmadığında tam arıza. GCM kabul edilirse kullanım zaten örtüktür. Ayrı standartlaştırma için önerilmez.
kimliği doğrulanmış şifreleme (hem şifreleme hem de mesaj bütünlüğü)
CCM : TO modu şifrelemesini ve ham CBC-MAC'i birleştiren nonce tabanlı bir AEAD şeması. Doğası gereği seri, bazı bağlamlarda hızı sınırlar. Altta yatan blokiperin iyi bir PRP olduğunu varsayarak, iyi sınırlarla, güvenli bir şekilde güvence altına alın. İşi açıkça gösteren gayri meşru yapı. GCM'den daha basit uygulanması. Nonce tabanlı bir MAC olarak kullanılabilir. Yaygın olarak standartlaştırılmış ve kullanılır.
GCM : TO modu şifrelemesini ve GF (2128) tabanlı bir evrensel karma işlevini birleştiren nonce tabanlı bir AEAD şeması. Bazı uygulama ortamları için iyi verimlilik özellikleri. Minimum etiket kesimi varsayıldığında iyi güvenli sonuçlar. Önemli etiket kesilmeleri durumunda saldırılar ve zayıf kanıtlanabilir güvenlik sınırları. Daha sonra GMAC olarak adlandırılan nonce tabanlı bir MAC olarak kullanılabilir. 96 bit dışındaki duruşlara izin vermek için şüpheli bir seçim. Nüfuzları 96 bitle ve etiketleri en az 96 bitle sınırlamanızı öneririz. Yaygın olarak standartlaştırılmış ve kullanılır.