Java 确定私钥(Diffie Hellman)
我遇到了一个挑战,它与测试朋友的加密过程有关 这是一个Diffie-Hellman交换过程,以下是已知的变量/常量:Java 确定私钥(Diffie Hellman),java,diffie-hellman,Java,Diffie Hellman,我遇到了一个挑战,它与测试朋友的加密过程有关 这是一个Diffie-Hellman交换过程,以下是已知的变量/常量: P,G 我生成的私钥(变量) 我生成的公钥(变量) 收件人的公钥(常量) 查看我的私钥时,p和G都在其中。例如,第一个“x”字节似乎与任何内容都没有关系,接下来的“y”字节是P,接下来的两个字节是静态的,接下来的“z”字节是G,其余的是可变的 这个过程是加密一个文件,并将其发送到一个设备,该设备将对其进行解密-我的攻击思路如下: 尝试复制秘密共享密钥。这里的问题是,只要我知道
,P
G
- 我生成的私钥(变量)
- 我生成的公钥(变量)
- 收件人的公钥(常量)李>
p
和G
都在其中。例如,第一个“x”字节似乎与任何内容都没有关系,接下来的“y”字节是P
,接下来的两个字节是静态的,接下来的“z”字节是G
,其余的是可变的
这个过程是加密一个文件,并将其发送到一个设备,该设备将对其进行解密-我的攻击思路如下:
在尝试攻击这一点时,还有其他选择吗?我可能应该闭嘴,但对于那些对Diffie Hellman感兴趣的人来说,这也是一个学习一些东西的机会:
在处理安全协议时,必须非常精确地确定哪些数据存储在何处。例如,在您的问题中,您使用短语“私钥”表示两件事:数据布局(文件或网络数据包)和实际私钥(X)。我建议仔细地写下协议的详细说明。然后更新你的问题,使协议描述更清晰。根据你的想法判断。第二,我想你们看到的是Diffie-Hellman协议的基本属性。你不会在那里发现一个bug:核心加密算法不会被破坏。这个错误总是一个错误的实现(例如,留下机密数据,或执行错误的计算),一个坏的协议(这些确实会发生,协议很复杂),或者一个旁道。回答不错,尽管我认为是Mallory获得了所有的乐趣。:)