Tls

為什麼 TLS 1.3 對 AEAD 使用看起來隨機的隨機數?

  • December 12, 2018

在 TLS 1.3 中,似乎 AEAD 的隨機數是通過將記錄的序列號與 server/client_write_IV (在握手期間生成)進行異或來構造的。因此,隨機數看起來是隨機的,並且隨著序列號單調增加而不能重複使用。

為什麼不只使用序列號?為 AEAD 提供一個看起來隨機的 nonce 是否有優勢?如果不是,如何解釋這種實現選擇?

正如@CodesInChaos 在評論中提到的,TLS 1.3 中隨機數隨機化的目的是對抗多使用者攻擊。也就是說,攻擊者同時攻擊多個使用者,只要它中斷至少一個使用者的連接就很高興,而不考慮具體是哪個使用者。這種動機在 RFC(附錄 E.2)中明確指出:

當相同的明文被不同的使用者使用相同的密鑰重複加密時,為了防止大規模密碼分析(這在 HTTP 中很常見),nonce 是通過將序列號與導出的每個連接的秘密初始化向量混合形成的交通密鑰。看

$$ BT16 $$分析這個結構。

隨機化隨機數的想法已在兩篇學術論文中得到分析:

  • 米希爾·貝拉雷和比約恩·塔克曼。認證加密的多使用者安全性:TLS 1.3 中的 AES-GCM。加密貨幣'16。電子列印連結
  • Viet Tung Hoang、Stefano Tessaro 和 Aishwarya Thiruvengadam。重新審視 GCM 的多使用者安全性:Nonce 隨機化的嚴格界限。CCS'18。電子列印連結

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