当前位置: 首页 > 知识库问答 >
问题:

实现Diffie-Hellman密钥交换时的预主密钥误匹配

羊舌赞
2023-03-14

我正在尝试将DHE_DSS实现到Go的Crypto/TLS包中。不幸的是,我似乎无法使PreMasterSecret(Z)相同,我的基本工作流程是:

  • 提取P、G、YS
  • 使用提供的数字签名进行验证
    null
ckx := make([]byte, len(yC)+2)
ckx[0] = byte(len(Yc)>>8)
ckx[1] = byte(len(Yc))
copy(ckx[2:], yBytes)

以下是我更改的一个补丁:

https://08766345559465695203.googlegroups.com/attach/48587532C74B4348/crypto.patch?part=4&view=1&vt=anajvrhbwydqezc3zjuwqq5c8q5zekwxzldl0w6jjg3hyntolburuty7mc9xr9otfe0bjxs4eel5a5sgd2jj9eifxcwjqglvjchxogkykbbynbpfshy8kuq

共有1个答案

梁成双
2023-03-14

客户端密钥交换将包含:

length (2 bytes) --> Y_C (in plain text)

我用Java实现了TLS,我遵循相同的结构,对我来说工作很好。

我需要在退回的YC上签名吗?

如果你仍然得到不同的前主秘密,那么在秘密生成的逻辑上似乎有一些问题。

 类似资料:
  • 我试图用Java实现Diffie-Hellman密钥交换,但我很难理解规范: 根据JWA(RFC 7518),在直接密钥协商模式下,使用曲线P-256、dT和QC完成Diffie-Hellman密钥交换过程,作为本地机制,产生一对由事务ID标识的CEK(每个方向一个)。本规范版本支持的参数值为: alg: ECDH-ES "apv": SDK参考号 epk:QC,JSON Web Key(JWK)

  • 我正在Java的一个个人项目中工作,该项目涉及通过不安全的通道发送敏感数据。我需要知道如何实现Diffie Hellman密钥交换(DHKE)在java使用其库。我知道关于它的所有密码理论,所以不需要深入细节,我只需要一个非常基本的实现,所以我可以让两个程序共享一个密钥。我从java2s.com得到了这个例子,但它并不完整: 我该怎么做呢?有人能帮我完成剩下的代码吗?

  • 在Diffie Hellman密钥交换过程中,如果中间的人能够得到素数“p”和生成器“g”的值。他现在能破译私钥或者生成的共享秘密秘密吗?

  • 因为这是我正在生成的一个自签名证书,所以我认为我做错了什么。 我首先创建一个根CA证书,并传入私钥来签署我的证书。 方法返回true,我读到的这个值可能返回假阳性。

  • 本文向大家介绍迪菲-赫尔曼密钥交换(Diffie–Hellman)算法原理和PHP实现版,包括了迪菲-赫尔曼密钥交换(Diffie–Hellman)算法原理和PHP实现版的使用技巧和注意事项,需要的朋友参考一下 迪菲-赫尔曼(Diffie–Hellman)是一个可以让双方在不安全的公共信道上建立秘钥的一种算法,双方后期就可以利用这个秘钥加密(如RC4)内容。 迪菲-赫尔曼(Diffie–Hellm

  • 我目前正在使用Aptana Studio3.6.1(一个带有一些PHP语法修复的自定义构建)。我使用SFTP将文件从我的项目上传到一个测试站点,使用发布工具(项目顶部的上传/下载箭头)。 最近,我变得无法上传文件。WinSCP可以很好地执行这些操作,并且我可以在使用PuTTY或普通旧OpenSSH时将SSH插入服务器而没有问题。然而,Aptana却大发雷霆: auth.log(带有LogLevel