Padding

填充總是一樣的,問題與否?

  • June 19, 2015

我需要通過有限容量的鏈路將長加密消息傳輸到智能卡,因此我需要在發送 thzm 之前將消息分段。

我的問題是我將消息拆分為 64 字節塊,然後應用 pkcs7 填充。結果是填充的消息在加密之前總是以一個完整的 16 秒塊結束。由於攻擊者會知道最後一個明文塊,這是否會造成安全問題?

我可能使用的一種可能的解決方案是分成大小為 64+x 的塊,其中 x 隨機在 0 到 15 之間,因此填充將不可預測。這是一個好/更好的主意嗎?

PS:我使用 AES-CBC 和 128 位密鑰

不,在消息末尾使用相同的填充不是問題。一些已知的明文通常在實踐中可用(協議欄位等)。系統的安全性(或至少應該)完全基於密鑰。

如果您出於某種原因真的擔心它,只需更改每個 64 字節塊的 IV。或者正如 CodesInChaos 在評論中所說,如果消息總是 16 字節的倍數,甚至不要使用填充。

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