Aes
使用 AES-256-GCM 時,密文大小可以小於 IV 是否正常?
我注意到當使用 AES-256-CBC 和 128 位 IV 時,密文總是至少 16 個字節長(IV 的大小)。
我還注意到,當使用 96 位 IV 的 AES-256-GCM 時,密文大小可以小於 IV。
普通的?為什麼?
我注意到當使用帶有 128 位 IV 的 AES-256-CBC 時,密文總是至少 16 個字節長。
AES-256-CBC 使用 PKCS#7 填充意味著最多可以有 16 個額外字節。
通常人們會看到
IV|ciphertext
密文是填充塊的加密。我還注意到,當使用 96 位 IV 的 AES-256-GCM 時,密文長度可能小於 12 個字節。
AES-GCM 使用不需要填充的 CTR 模式,因此密文始終等於明文大小。
通常人們會看到
IV|ciphertext|tag
預設標籤是 16 字節。這很奇怪,實際上取決於軟體庫的輸出。
使用 AES-256-GCM 時,密文大小可以小於 IV 是否正常?
如果我們只談論密文,在 CTR 模式下它總是等於明文大小。
然而,在語義上,IV 是密文的一部分,因為沒有它就無法完全解密密文——CBC 只失去了第一個塊,而 CTR 失去了所有塊。