AES GCM IV / nonce用法

时间:2014-04-01 10:42:55

标签: c# encryption aes aes-gcm

我在WCF项目中实施AES GCM加密。 在阅读和搜索之后,我发现了这个example(第一类,AESGCM),它似乎写得很好并且更新了。

据我所知,nonce尽可能是独一无二的,并希望确保我理解这门课程的运作方式。

当我过去使用IV时,在CBC模式下,有必要将其保存以供将来解密,但在附加的示例中,我看到IV(nonce)未保存。

我的问题是Cipher Text的nonce部分是否使用:

提取
cipherReader.ReadBytes(NonceBitSize / 8)

或者我错过了什么,应该保存IV / nonce?

另外 - GCM是否需要使用盐?

1 个答案:

答案 0 :(得分:1)

在链接的代码段中,nonce被添加到密文之前。因此可以恢复。丢失现时意味着丢失数据。

在评论中,我看到了一个危险的想法:不以加密安全的方式生成nonce。这不是一个好主意,因为你冒险以这种方式碰撞nonces。它不必要地削弱了安全性。