gpt4 book ai didi

java - 使用 diffie-hellman 共享 key 继续加密

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:00:17 24 4
gpt4 key购买 nike

我目前正在研究一个协议(protocol),该协议(protocol)使用 Diffie-Hellman 进行 key 交换。我收到一个数据包,其中包含一个 aes-128 加密部分和一个 128 位 DH 公钥。

在协议(protocol)的最后一步,aes key 被发送到网络中的另一个对等点。此 aes key 应使用 128 位强 key 使用密码加密。

我打算使用 Blowfish(也可以是另一种密码,对问题来说并不重要)

现在要加密 aes key ,比方说河豚,我必须使用一个名为 SecretKeySpec 的类(我正在使用 javax.crypto 的东西)构建一个用于加密的 key ,它在构造函数中使用一个 byteArray 来构建 key 。

来自 DH 的共享 key 是一个 128 位的 BigInteger。好吧,现在我可以将我的共享 key 解释为一个 byteArray(这仍然给我 16 字节中的 128 位 [其中数字被解释为 8 位数据的帧])

所以我的问题是,我的 key 到底有多强?

是否有任何影响,因为我只使用数字作为 byteArray 的输入(所以这会以任何方式限制键空间吗?)

我认为情况并非如此,但我不是 100% 确定。也许有人可以计算并证明我是对还是错。

如果我错了,共享 key 的 key 大小是多少让我最终获得 128 位 SecretKey 进行加密?

最佳答案

Crypto++网站建议使用至少 3072 位的 p(或对于 ECC 实现为 256 位)来传输 128 位 AES key 。

您可能希望研究 http://www.keylength.com/en/compare/ 提供的引用资料有关比较不同算法之间的 key 长度的更多信息。

关于java - 使用 diffie-hellman 共享 key 继续加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7935890/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com