如何在AES加密中使用随机随机数解密



我是密码学的新手。我需要使用具有某些配置的AES加密文本

Encryption mode: GCM
Key size: 256 bits
Nonce size: 96 bits
MAC size: 128 bits

因为AES是一个对称算法。 所以我有一个秘密密钥。我用谷歌搜索并找到了

nonce是一个随机数,用于确保消息是唯一的

但我有一个疑问,如果随机数是随机数,我该如何执行解密。 我是否需要将随机数与每个加密一起存储。 或者我需要使用密钥拆分随机数,密码和Mac的任何其他方式。 如何使用提供的配置进行加密。

但是我有一个疑问,如果随机数是随机数,我该如何执行解密。 我是否需要将随机数与每个加密一起存储。

是的,存储/发送的加密结果是随机数,密文,mac。

如果随机数是随机数,我如何执行解密

随机数在加密输入时随机生成,然后随机数沿密文传递(通常随机数作为第一个块前缀(。事实上,在解密时你需要相同的随机数值,那么随机数是用于分减的输入的一部分,而不是随机

或者我需要使用密钥拆分随机数、密码和 Mac 的任何其他方式。 如何使用提供的配置进行加密。

加密文档或加密 XML 消息有标准化的消息格式,但这些非常复杂。

实际上 - 对于更简单的应用程序,我们经常看到加密输出组成为IV || ciphertext || MAC(作为串联(。IV 和 MAC 具有固定长度,因此您可以将它们剪掉并使用参数进行解密。

解密发生在不同的机器和语言上。 他们只共享一个用于加密的密钥。 他们用于解密的相同密钥。 如果我将任何随机值添加为随机数,那么嘿将如何知道我为 nonc 使用了什么逻辑

在提供相同的输入之前,这并不重要。如前所述 - 您可以将 IV(nonce(作为消息的一部分传递,并在解密之前将随机数和原始密文分开。

顺便说一句:我有几个加密示例链接

确切地说,随机数必须与密文一起存储。

请记住,随机数是密文的一部分不会给攻击者带来任何优势。

来自维基百科

初始化 向量与密钥具有不同的安全要求,因此 IV 通常不需要是机密的。但是,在大多数情况下,重要的是,初始化向量永远不要在同一键重用。对于 CBC 和 CFB,重用 IV 会泄漏有关第一个明文块以及两条消息共享的任何公共前缀的一些信息。

初始化向量的目的是在加密过程中插入一些随机性,以便攻击者无法知道何时使用相同的密钥加密了两条相同的明文消息。

解密需要IV,您可以简单地将其与密文连接发送。

IV || ciphertext

实际上,传输初始化向量的最常见方法是在密文之前将其预置。

最新更新