Authenticated-Encryption

“線上”認證加密的案例?

  • April 15, 2015

經過身份驗證的密碼的“線上”模式有什麼意義?

我明白在這種情況下“線上”是什麼意思。但是,我很難想出可以從這種功能中受益的應用程序。

通常,經過加密和驗證的“消息”不會太長,我認為這是由於人們不想完全解密“大消息”,只是在標籤最終無效時將它們丟棄。因此,至少對於網路協議來說,更頻繁地插入身份驗證標籤似乎是一個非常好的主意。

但是這種策略使得某些 AE 實現的“線上”特性顯得無關緊要,尤其是因為對線上模式的支持使得實現更加複雜。

線上 AE(本地)的用處:

假設您編寫了一個加密任意文件的程序。現在進一步假設使用者想要觀看使用此工具加密的電影。該工具現在可以使用線上屬性實時流式傳輸電影,因為它使用線上加密。

線上 AE 的用處(以程式方式):

假設您要處理敏感數據。如果您的密碼支持線上 AE,它可以在寫入/讀取數據後擦除數據,從而減少攻擊面。

線上 AE(網路相關)的用處:

假設您流式傳輸電影。您現在可以使用線上 AE 功能來最小化所需的 RAM(從而為影片解碼器提供更多 RAM),並且可以為使用者提供更好的載入時間。

總而言之:

線上 AE 減少了應用程序的記憶體使用和延遲。

如果您想使用經過身份驗證的加密來加密長消息,您應該將其分成許多小段(例如每個 4KiB),每個片段都有自己的標籤。這樣,您只需在驗證其標籤後將明文發佈到應用程序。(像往常一樣,設計這種結構存在一些陷阱)。

這種構造適用於任何 AEAD 方案,不需要單遍原語。由於向應用程序發布未經身份驗證的數據存在安全風險,因此我強烈建議不要支持流式解密以進行身份驗證加密,除非您實施了這種基於分段的高級構造。

單通道原語可能在 RAM 很少的嵌入式系統中很有用,或者如果您只需要在加密端而不是解密端進行流式傳輸。對於典型的電腦或移動設備的使用,“線上”認證的加密原語幾乎沒有優勢。

引用自:https://crypto.stackexchange.com/questions/15264