Encryption 我们可以用钥匙作为AES的IV吗?

Encryption 我们可以用钥匙作为AES的IV吗?,encryption,aes,encryption-symmetric,symmetric-key,Encryption,Aes,Encryption Symmetric,Symmetric Key,我希望能更有效地生成用于加密的随机密钥和随机IV。但将随机密钥用作IV是否可行且安全?您可以,但它不会安全 通常的做法是对iv使用加密安全的随机字节序列,并将iv预先添加到加密数据中。这允许解密函数具有相同的iv 通过使用随机iv,如果相同的消息使用相同的密钥加密,则密码文本将不同,usia密钥将允许使用相同的密码文本。拥有相同的密文可能会泄露关键信息 证券交易效率不是一个好主意,如果不能通过基准测试证明需要额外的效率,那就是过早的优化 唐纳德·克努斯: 真正的问题是程序员花了太多的时间在错误的

我希望能更有效地生成用于加密的随机密钥和随机IV。但将随机密钥用作IV是否可行且安全?

您可以,但它不会安全

通常的做法是对iv使用加密安全的随机字节序列,并将iv预先添加到加密数据中。这允许解密函数具有相同的iv

通过使用随机iv,如果相同的消息使用相同的密钥加密,则密码文本将不同,usia密钥将允许使用相同的密码文本。拥有相同的密文可能会泄露关键信息

证券交易效率不是一个好主意,如果不能通过基准测试证明需要额外的效率,那就是过早的优化

唐纳德·克努斯:

真正的问题是程序员花了太多的时间在错误的地点和错误的时间担心效率;过早优化是编程中所有罪恶(或至少大部分)的根源


你的安全问题增加了一倍。普通的静脉输液可以通过密码短信发送,通常是在它的前面。如果你的IV和钥匙是一样的,那么你必须保持IV和钥匙一样安全,这意味着你不能做通常的预加。您必须在“密钥交换”流程中添加“IV交换”流程


所有这些都是额外的工作。更容易使用标准CSPRNG生成您的IV并进行预处理。

我投票结束这个问题,因为这与编程无关。它也是.True的跨站点副本,但它忽略了IV的要点,它允许对许多不同的消息使用单个键。对于key=IV,您需要在每条消息中更改一个新密钥以确保安全。IV只适用于一条信息;一个键可以用于许多信息,只要它们不太大。是的,这不是答案的信息。答案是当事实上没有什么额外的东西时,要保守一些额外的秘密。