Encryption
隨機與固定填充
關於各種填充方案的優缺點是否有任何共識(即是否有任何研究結果)?
一般來說,似乎有兩種:
- 隨機填充,例如用隨機數據填充的 ISO10126
- 固定填充,如 PKCS5/7 和 X.923,用 0 或某些固定模式填充
有什麼理由更喜歡其中一個嗎?
在我的另一個問題中,有人提到隨機填充可能容易受到潛意識消息的影響,但該答案通常不包括填充。
通常,我們現在使用固定填充或流操作模式,例如 CTR。
身份驗證標籤通常用於驗證完整性/真實性。身份驗證標籤的範例是通過在密文和附加數據(如 IV)上計算 MAC 或 HMAC 而創建的標籤。通常已知的明文(包括填充)不應用於驗證完整性/真實性。
認證密碼結合了使用相同密鑰的操作模式和認證方案。他們中的許多人應用 CTR 模式加密而不是需要(內部)填充的模式。
如果需要填充,則應首選 PKCS#7 填充,因為它似乎是已定義標準中的臨時標準。基本上,您不應該在填充上綁定任何安全聲明(除非您的特定協議中不可能有潛意識通道)。
固定填充容易受到已知的明文攻擊。如果攻擊者知道某些明文值總是相同的,那麼他們就可以執行這樣的攻擊。
隨機填充不會導致這種攻擊。