我可以在 AES-GCM 中发送未加密的随机数吗?
Can I send unencrypted nonce in AES-GCM?
我正在通过简单的聊天实现 AES-GCM。由于 nonce 是 public 没有问题,我需要在每条消息中更改它,我可以发送未加密的消息 nonce 和消息本身吗?
一个例子:
有这样一个函数:
AESGCM(nonce, key, data_to_encrypt, unencrypted_data)
而我是这样使用的:
message = AESGCM(nonce, key, data, nonce)
然后,加密的消息将如下所示:
unencrypted_nonce | encrypted_data | authentication_tag
AES-GCM 文档提到随机数 3 次;
A value that is used only once within a specified context.
The IV is essentially a nonce
AESGCM(nonce, key, data, unencrypted_data)
AES-GCM 在 CTR 操作模式下内部使用 AES,CTR 模式将块密码转换为流密码。对于 AES-GCM 安全和 CTR 模式,每个密钥只能使用一次随机数(使用一次的数字)。 nonce-key 对应该只出现一次。如果随机数重复,这可能会导致
- 由于像所有流密码一样的 crib-dragging,保密性失败。
- Even a single AES-GCM nonce reuse can be catastrophic.
随机数可以随机生成,但是,基于 counter/LFSR 的解决方案更好,更好的解决方案是 combination。
- 如果您发送
nonce
加密邮件,您希望如何解密邮件。必须以未加密方式发送。
我正在通过简单的聊天实现 AES-GCM。由于 nonce 是 public 没有问题,我需要在每条消息中更改它,我可以发送未加密的消息 nonce 和消息本身吗?
一个例子:
有这样一个函数:
AESGCM(nonce, key, data_to_encrypt, unencrypted_data)
而我是这样使用的:
message = AESGCM(nonce, key, data, nonce)
然后,加密的消息将如下所示:
unencrypted_nonce | encrypted_data | authentication_tag
AES-GCM 文档提到随机数 3 次;
A value that is used only once within a specified context.
The IV is essentially a nonce
AESGCM(nonce, key, data, unencrypted_data)
AES-GCM 在 CTR 操作模式下内部使用 AES,CTR 模式将块密码转换为流密码。对于 AES-GCM 安全和 CTR 模式,每个密钥只能使用一次随机数(使用一次的数字)。 nonce-key 对应该只出现一次。如果随机数重复,这可能会导致
- 由于像所有流密码一样的 crib-dragging,保密性失败。
- Even a single AES-GCM nonce reuse can be catastrophic.
随机数可以随机生成,但是,基于 counter/LFSR 的解决方案更好,更好的解决方案是 combination。
- 如果您发送
nonce
加密邮件,您希望如何解密邮件。必须以未加密方式发送。