第二十七個知識點:什么是對稱密碼加密的AEAD安全定義?


第二十七個知識點:什么是對稱密碼加密的AEAD安全定義?

AEAD

在之前的博客里,Luke描述了一種被廣泛使用的操作模式(ECB,CBC和CTR)對塊密碼。我們也可能會想我們加密方案的完整性,完整性意味着接收到的消息就是發送的消息,在信道中沒有意外修改或者惡意修改,真實性意味着接收者確實是收到了發送者的消息。為了使用這些特性,我們通常使用消息認證碼(MAC),那些基於hash的消息認證碼叫做HMAC。把這兩個密碼原語放在一起不是平凡的:為了獲得IND-CCA安全方案,我們需要遵循加密然后MAC的范式,使用安全的加密方案和一個強不可偽造的MAC,這意味着在密文上進行MAC。(這里這里給出了更多的信息關於“加密和MAC”,“MAC后加密”,關注為了我們要避免它們。“AD”指的是可變長度的相關數據(Associated Data),如包頭,我們通常期望真實性和完整性,但不希望這個可選組件具有保密性。更多的閱讀和例子,看Adam Langley's 博客關於這個話題的。

實際上傳統的EtM,MtE,MaE都是有一些問題的,設計時要用真正的AEAD算法。

  • AES-128-GCM
  • AES-192-GCM
  • AES-256-GCM
  • ChaCha20-IETF-Poly1305
  • XChaCha20-IETF-Poly1305

在具備 AES 加速的 CPU(桌面,服務器)上,建議使用 AES-XXX-GCM 系列,移動設備建議使用 ChaCha20-IETF-Poly1305 系列。

IND-CCA

下周的博客將會深入研究IND-CCA2安全在一個公鑰加密的上下文。在真隨機數下的IND-CCA2(和IND-CCA1)安全定義是給攻擊者一個加密oracle的權利,加密oracle的密鑰是固定的。輸入消息m,返回一個加密過的\(E_k(m)\)或者返回一個\(E_k(\$^{|x|})\),同時也給一個解密oracle給出密文\(c\),然后返回\(D_k(c)\)。然后攻擊者進行區分。在2004年,Shrimpton展示了一種新的被稱為IND-CCA3的概念,解密oracle對一個無法解密的oracle會返回一個不合法的符號,與之前考慮過的AE概念相同,其中隱私和真實性/完整性的概念分別進行研究。這一觀察結果被納入羅格威和希姆普頓的論文中,研究密鑰包裝問題和確定性認證加密。有關關聯數據影響的更多信息,請參見此處此處

CCM和GCM

實際上,大量組織使用CCM模式和GCM模式。CCM模式是一種計數模式和CBC-MAC使用MAC-then-Encrypt方法構造的。GCM是塊密碼的計數模式和基於多項式的哈希函數GHASH使用Encrypt-then-MAC構造的。CCM相對沒有效率,每次需要兩個塊密碼的調用,同時CCM也不是在線的(每次在處理消息之前需要知道消息的長度)。GCM在這篇文章里也有一些缺點:http://eprint.iacr.org/2011/202

CAESAR competition

凱撒密碼競賽目前正在進行中,目的是在經過徹底的學術公眾審查的基礎上,選擇一組經過認證的密碼進行推薦。主要目標之一是讓更多的研究人員思考這樣一個重要的主題,而第一輪提交的大量論文(性質各異)表明,這一目標已經實現。第二輪的候選名單預計將於下周公布,提交的名單可以在AE Zoo(https://aezoo.compute.dtu.dk/doku.php)找到,由DTU的一些研究人員管理。

競賽已經結束。(2020年)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM