这就是我对合成IVs的理解。
您有两个键K_1 & K_2。
F是PRF
而不是选择单独的IV,而是从PlainText生成IV。
您不需要单独的标记/哈希来进行身份验证。因为IV是使用PT本身生成的,在解密CT之后,您可以在解密端生成IV &检查它是否与CT一起发送的IV相同。
我在看AES-GCM-SIV https://www.rfc-editor.org/rfc/rfc8452
在这里,IV似乎是作为加密算法的输入传递的&不是从PT生成的。
AES-GCM-SIV加密采用16或32字节的密钥生成密钥、96位的当前密钥以及明文和可变长度的附加数据字节字符串.
它似乎也产生了一个标签
计算S_s =POLYVAL(消息-身份验证-密钥、X_1、X_2、.)。XOR是S_s的前12个字节,并清除最后一个字节中最重要的一个字节。使用AES使用消息加密密钥对结果进行加密以生成标记。
那么为什么这种加密被命名为SIV方案呢?
发布于 2021-02-16 07:45:53
您所描述的SIV通常是专门为密钥包装指定的方式。但是,您总是希望拥有一个IV,因为对同一条消息进行两次加密会产生不同的密文。如果您只从消息和键派生IV,那么对于相同的消息,它始终是相同的。通过从输入IV、消息和密钥中导出有效IV,您可以保证不同的消息和不同的IVs总是提供不同的密文,唯一的“缺陷”是当同一个消息用同一个IV加密两次时(在这种情况下,只有这个事实被揭示)。这是最佳的现在重用电阻。
请注意,IV输入到AES-GCM-SIV,但它用于从标记派生“有效”IV,该标记实际上用于加密消息。您引用的RFC中的延续是:“加密的明文是使用AES生成的,加密密钥以计数器模式(参见SP800-38A,第6.5节)在未添加的明文上生成。初始计数器块是最后一个字节设置为一个的标记。”(请注意,初始的计数器块是标记.)
为了获得更好的安全边界,AES-GCM还不断地从输入IV中派生密钥。然而,这是一个正交的问题。
https://crypto.stackexchange.com/questions/88271
复制相似问题