从密钥恢复和相关密钥攻击的角度来看,您都看到了哪些问题:
RC4过去常常“签署”一个名为“nonce”的词:
3字节零连接,16字节长键> RC4密钥流生成器>259个字节密钥流输出
丢弃前256字节的密钥流,只留下最后3个字节的“签名”
3字节的无号/3字节的签名对是唯一公开发送的信息
发布于 2023-01-12 00:50:46
这里面有很多问题。
正如您所提到的,RC4实际上非常容易受到相关的密钥攻击,而且您的方法非常类似于WEP,由于这个原因,WEP是完全不安全的。这里的主要区别是WEP中的nonce被附加到键中,而在这里它是加在前面的。尽管RC4的数据量要少得多,但它仍远不是理想的流密码,而且存在偏见。它不再是我用来做任何东西的设计。
然而,有一个好消息。如果您正在寻找一种使用共享密钥对某些数据进行对称验证的方法,那么我们有一种简单的方法: MAC。具有16字节密钥的HMAC- that 256可以用于此操作,但这确实意味着您通常需要发送更多的数据以避免攻击。通常,您会发送整个MAC,即32字节。带有16字节密钥的AES-CMAC也是一个很好的选择,而且是16字节.
如果你在寻找一个长期的钥匙,你的不合格应该要大得多。我们推荐至少192位(24字节),如果你是随机选择,但就个人而言,我建议256位(32字节)。如果您正在使用计数器,它可以更小,但许多算法有弱点,如果一个现在被重用,所以您必须确保永远不会发生在您的情况。
此外,有些算法,如CBC,需要不可预测的非安全属性,所以您应该确保验证算法所需的内容。您还可以使用任何相关大小(包括计数器)和长期密钥,并使用类似HKDF的密钥派生函数来生成每个请求的新密钥和新值,从而避免了所有这些问题。
https://crypto.stackexchange.com/questions/103685
复制相似问题