認證加密(英語:Authenticated encryption,AE)和帶有關聯數據的認證加密(authenticated encryption with associated data,AEAD,AE的變種)是一種能夠同時保證數據的保密性、 完整性和真實性的一種加密模式。這些屬性都是在一個易於使用的編程接口下提供的。
人們觀察發現安全地將保密模式與認證模式組合可能是容易出錯和困難的,於是認證加密應運而生。[1][2] 這一點已由許多實際攻擊證實,這些攻擊通過對身份驗證(包括SSL與TLS)的不正確實現或缺失,引入到了生產協議和應用程序中。[3]
在2000年左右,圍繞這個概念進行了一些努力。特別是,2000年Charanjit Jutla發表IACBC和IAPM模式,引發了人們對這些模式的強烈興趣。[4] ISO/IEC 19772:2009已經對六種不同的認證加密模式(即OCB 2.0,Key Wrap, CCM, EAX,Encrypt-then-MAC(EtM)和GCM)進行了標準化。[5] 在NIST的徵集下開發了更多的模式。[6] 海綿函數可以在雙工模式下使用,提供經過認證的加密。[7]
認證加密的方法
首先對明文進行加密,然後根據得到的密文生成訊息鑑別碼(MAC)。密文和它的MAC一起發送。例如IPsec。EtM是ISO/IEC 19772:2009規定的六種認證加密方法中的一種。[5]這是唯一可以達到認證加密安全性最高定義的方法,但這只有在使用的MAC「強不可偽造」時才能實現。[8]2014年11月,EtM的傳輸層安全性協定(TLS)和資料包傳輸層安全(DTLS)擴展已經作為RFC 7366發布。各種EtM密碼套件也存在於SSHv2中(例如hmac-sha1-etm@openssh.com)。
基於明文生成MAC,並且明文在沒有MAC的情況下被加密。明文的MAC和密文一起發送。用於例如SSH。E&M方法本身並未被證明是「強不可偽造」的。[8]
基於明文生成MAC,然後將明文和MAC一起加密以基於兩者生成密文。密文(包含加密的MAC)被發送。MtE方法本身並未被證明是「強不可偽造」的。用於例如SSL/TLS。[8]儘管有理論上的安全性,但對SSL/TLS進行更深入的分析將保護模型化為MAC-then-pad-then-encrypt,即明文先填充到加密函數的塊大小。填充錯誤通常會導致接收方發現可檢測到的錯誤,從而導致密文填塞攻擊(Padding oracle attack),如Lucky Thirteen attack。
參見
參考文獻
外部連結
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.