Encryption AES的衍生IV

Encryption AES的衍生IV,encryption,aes,rsa,Encryption,Aes,Rsa,如果每次当事方之间发生交易时都生成一个新的随机AES密钥。如果IV是从钥匙派生的,这有关系吗 例如: Bob向Alice发送AES-CBC加密消息。Bob为其创建了一个随机的256位密钥。现在假设Bob使用sha256(密钥)的前128位来获取IV进行加密 Bob使用Alice的公钥通过RSA加密保护密钥。现在Alice使用她的RSA私钥解密密钥。然后Alice使用sha256(密钥)的前128位来获得用于解密的IV Alice和Bob继续使用相同的过程进行交谈,但每次发送消息时都会生成一个新的

如果每次当事方之间发生交易时都生成一个新的随机AES密钥。如果IV是从钥匙派生的,这有关系吗

例如: Bob向Alice发送AES-CBC加密消息。Bob为其创建了一个随机的256位密钥。现在假设Bob使用sha256(密钥)的前128位来获取IV进行加密

Bob使用Alice的公钥通过RSA加密保护密钥。现在Alice使用她的RSA私钥解密密钥。然后Alice使用sha256(密钥)的前128位来获得用于解密的IV

Alice和Bob继续使用相同的过程进行交谈,但每次发送消息时都会生成一个新的随机键


现在假设Eve可以阅读Bob和Alice的密码文本AES和RSA。Eve也知道Bob和Alice是根据钥匙和使用的方法推导IV的。这仍然不能帮助Eve破解邮件?

如果每条邮件的密钥不同,则不需要IV(换句话说,您的IV可能由全零组成)。您真正应该而不是做的是使用相同的密钥加密IV,或者从密钥派生IV


IV用于允许密钥重用。如果你不重复使用钥匙(即使及时),那么静脉注射是无用的。因为IV是用于密钥重用的,仅从密钥派生它显然不是一件容易的事情,如果您想重用它,您可能会很容易地破坏密钥。

如果您的密钥对于每条消息都不同,那么您就不需要IV(换句话说,您的IV可能由全零组成)。您真正应该而不是做的是使用相同的密钥加密IV,或者从密钥派生IV


IV用于允许密钥重用。如果你不重复使用钥匙(即使及时),那么静脉注射是无用的。因为IV是用于密钥重用的,因此仅从密钥派生它显然不是一件容易的事情,如果您想重用它,您可能会很容易地破坏密钥。

难道您不能为IV再生成几个随机字节并发送它吗?如果你把AES密钥交换给每一条奇怪的消息,那么开销已经很大了,这几乎不重要了。。。(是的,这是一个隐藏的提示,没有必要为每条消息交换新的密钥)您不能为IV生成更多的随机字节并发送它吗?如果你把AES密钥交换给每一条奇怪的消息,那么开销已经很大了,这几乎不重要了。。。(是的,这是一个隐藏的提示,表明没有必要为每条消息交换新密钥)如果主密钥大于实际密钥,则从主密钥派生IV是一个好主意。例如,您可以从相同的256位主密钥派生128位AES密钥和128位IV。我正在我的一个项目中这样做。在这种情况下,IV可以防止一些多目标攻击。@ownlstead:事实上,在攻击者可能强制密钥重用的选定纯文本攻击场景中,使用从主密钥派生的cek和IV至少不会更糟,而不是使用常量iv。如果主密钥大于实际密钥,则从主密钥派生iv是一个好主意。例如,您可以从相同的256位主密钥派生128位AES密钥和128位IV。我正在我的一个项目中这样做。IV在这种情况下可以防止一些多目标攻击。@ownlstead:事实上,在攻击者可能强制密钥重用的选定纯文本攻击场景中,使用从主密钥派生的cek和IV至少不会比使用常量IV更糟糕。