我在WCF项目中实施AES GCM加密。 在阅读和搜索之后,我发现了这个example(第一类,AESGCM),它似乎写得很好并且更新了。
据我所知,nonce尽可能是独一无二的,并希望确保我理解这门课程的运作方式。
当我过去使用IV时,在CBC模式下,有必要将其保存以供将来解密,但在附加的示例中,我看到IV(nonce)未保存。
我的问题是Cipher Text的nonce部分是否使用:
提取cipherReader.ReadBytes(NonceBitSize / 8)
或者我错过了什么,应该保存IV / nonce?
另外 - GCM是否需要使用盐?
答案 0 :(得分:1)
在链接的代码段中,nonce被添加到密文之前。因此可以恢复。丢失现时意味着丢失数据。
在评论中,我看到了一个危险的想法:不以加密安全的方式生成nonce。这不是一个好主意,因为你冒险以这种方式碰撞nonces。它不必要地削弱了安全性。