首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RC4 Klein (或其他)攻击易感性问题

RC4 Klein (或其他)攻击易感性问题
EN

Cryptography用户
提问于 2023-01-11 05:30:27
回答 1查看 70关注 0票数 2

从密钥恢复和相关密钥攻击的角度来看,您都看到了哪些问题:

RC4过去常常“签署”一个名为“nonce”的词:

3字节零连接,16字节长键> RC4密钥流生成器>259个字节密钥流输出

丢弃前256字节的密钥流,只留下最后3个字节的“签名”

3字节的无号/3字节的签名对是唯一公开发送的信息

EN

回答 1

Cryptography用户

发布于 2023-01-12 00:50:46

这里面有很多问题。

  • 一个明显的问题是,您的“签名”是三个字节长,这是24位,并受到蛮力的强迫。
  • 另一种情况是,在大多数情况下,三字节的无位数在大小上是不够的。这仅仅是1600万个请求,而在大多数应用程序中,这是不够的。对于单个连接,TLS使用64位序列号,这是不需要包装的.

正如您所提到的,RC4实际上非常容易受到相关的密钥攻击,而且您的方法非常类似于WEP,由于这个原因,WEP是完全不安全的。这里的主要区别是WEP中的nonce被附加到键中,而在这里它是加在前面的。尽管RC4的数据量要少得多,但它仍远不是理想的流密码,而且存在偏见。它不再是我用来做任何东西的设计。

然而,有一个好消息。如果您正在寻找一种使用共享密钥对某些数据进行对称验证的方法,那么我们有一种简单的方法: MAC。具有16字节密钥的HMAC- that 256可以用于此操作,但这确实意味着您通常需要发送更多的数据以避免攻击。通常,您会发送整个MAC,即32字节。带有16字节密钥的AES-CMAC也是一个很好的选择,而且是16字节.

如果你在寻找一个长期的钥匙,你的不合格应该要大得多。我们推荐至少192位(24字节),如果你是随机选择,但就个人而言,我建议256位(32字节)。如果您正在使用计数器,它可以更小,但许多算法有弱点,如果一个现在被重用,所以您必须确保永远不会发生在您的情况。

此外,有些算法,如CBC,需要不可预测的非安全属性,所以您应该确保验证算法所需的内容。您还可以使用任何相关大小(包括计数器)和长期密钥,并使用类似HKDF的密钥派生函数来生成每个请求的新密钥和新值,从而避免了所有这些问题。

票数 1
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/103685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档