
認證加密算法兼具加密算法和消息鑑別碼的功能,能夠同時保護數據機密性、完整性、以及數據源認證。認證加密算法的研究始於上世紀末,早期的算法多採用組合方式設計,人們憑直覺組合加密算法和消息鑑別碼算法設計了三種認證加密算法: 先加密後認證(EtM)、先認證後加密(MtE)、加密認證同時進行(E&M),這三種構造方式的優勢在於通用性,它們廣泛適用於常見的加密算法和消息鑑別碼算法,但其沒有令人信服的安全性。Bellare和Rogaway 等分析了EtM、MtE、E&M 的安全性,正式提出認證加密的概念。
现在的認證加密算法可以歸納為兩類,一是分組密碼工作模式類;另一類是直接設計的認證加密算法。分組密碼工作模式類的認證加密算法又稱分組密碼認證加密模式,它以黑盒調用分組密碼,優點是可以方便替換底層分組密碼算法,比較典型的算法有OCB 、GCM、CCM、EAX等,這方面的研究始於十幾年前NIST 對AES 認證加密工作模式的徵集,基於成熟的分組密碼,安全性分析採用可證明安全理論。
早期認證加密工作模式所面對的應用場景是一些比較寬泛的通用性場景,在軟硬件資源方面沒有嚴格限制, 對算法功能也很少有特別需求。近些年隨着信息產業的迅猛开展,需要密碼保護的範圍更為廣闊,人們卻發現以往的通用性算法不再適用。最常見原因是某些應用中軟硬件資源極其受限(比如RFID),沒有足夠的電池容量、電路門數、內存容量以運行傳統算法。
此外,新的應用環境對算法的安全強度、算法功能提出了新的指標,也導致了傳統算法在新環境下“水土不服”。在認證加密算法方面,最近幾年不斷湧現出專注於降低實現代價和優化效率的直接設計,比如AEGIS、ALE 等算法。藉助Intel近幾年推出的新款CPU中的AESNI 指令,它們可以達到極高的運行速度。
而在內存方面,FIDES等算法幾乎精簡到極致,以及基於置換的輕量化APE ,這使得它們在一些資源受限環境中擁有其他算法無可比擬的優勢。直接設計的認證加密算法一般實現代價低、速度快,通常利用消息更新密碼算法的狀態,消息認證的代價很少;但問題在於安全性不能從理論上證明,只能評估其針對各種分析方法的安全性。
近年的研究發現,標準GCM存在弱密鑰而且最初的安全證明存在缺陷,打破了人們對GCM 的安全性預期。考慮到GCM在全球通信系統中的廣泛應用,NIST專門資助展開CAESAR 競賽,旨在用五年時間有助于認證加密算法的研究和標準化。該競賽自2013年初正式發佈以來,在2014 年3月的第一輪中收到了來自全球的57 個算法, 集中體現了認證加密算法的設計趨勢。更加注重具體應用需求,比如預計算少、有效處理短消息、適宜嵌入式處理器或資源受限環境等。 努力提高算法的健壯性,儘量避免因算法實現者或使用者操作不當而導致的安全漏洞,比如抗Nonce 重用、健壯性認證加密等。分組密碼、流密碼和雜湊函數等對稱密碼設計理念在認證加密算法中得到了充分融合,許多候選算法以加密算法和認證算法作為基本單元或借鑑其設計理念。一些候選算法存在嚴重的安全漏洞, 一方面在於設計者經驗不足,過於注重速度、延遲等算法實現性能,而相對忽視了安全方面的考慮;另一方面在於大家對認證加密的安全模型認識不夠深刻。事實上,認證加密是一個成長中的概念,不同階段、不同的環境對它有着不同的要求,现在人們還沒有給出一個最終定論。直接設計的認證加密算法,種類多,效率高,是未來开展的趨勢,但是安全性基礎不夠堅固,安全性分析評估有待深入研究。
