问题标签 [diffie-hellman]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
763 浏览

openssl - Ephemeral Diffie Hellman 的工作原理是什么?

任何人都可以提供链接,该链接将清楚地解释临时 Diffie hellman 算法的工作原理(TLS_DHE_RSA_DES_256_CBC)?

0 投票
1 回答
178 浏览

java - 与可选方的密钥交换算法

我需要在多方同意的情况下生成一个密钥(或密码),其中一些方是可选的。

例如,A、B、C 和 D 先生是可以进行协议的成员,其中至少需要两个协议才能生成秘密。但是,所有此类密钥协议的秘密应该相同。

我经历了 Diffie-Hellman 算法,但它需要所有密钥。本质上,我正在查看的是 1 个私钥和 n 个公钥类型的密钥交换算法。

请建议一些算法来实现这种行为。

0 投票
1 回答
480 浏览

openssl - 以编程方式进行 SSL 解密

我想解密使用密码套件 TLS-DHE-RSA-WITH-AES-256-CBC-SHA 的数据包。使用主密钥我能够解密wireshark中的数据。我仍然无法保存解密的wireshark文件所以我正在以编程方式进行操作。我有 Keyblock,其中包括客户端 mac、服务器 mac、客户端写入、服务器写入以及客户端和服务器 iv。那么如何以编程方式解密加密数据?

0 投票
1 回答
33 浏览

public-key-encryption - 用户可以根据自己的化名申请另一个公钥,并在DH密钥交换中使用获得的公钥吗?

我有一个场景,其中有三方:一个用户、一个内容提供者和一个代理。数据将通过代理在用户和内容提供者之间匿名传输。我有两个问题。1、如果用户根据自己的公钥有假名,是否可以申请另一个公钥?2.对于用户和内容提供者之间的数据保密,代理无法读取传输的内容,可以使用Diffie-Hellman密钥交换。但是我可以使用第 1 部分中获得的公钥来获取用户和内容提供者之间的加密数据吗?

此致

亚历山大

0 投票
1 回答
83 浏览

security - 基于客户端的在线加密实用吗?

我想知道是否存在允许客户端到客户端加密的机制。例如,启用后,在一个客户端上输入的任何信息都只能使用特定密钥进行解密。

类似于常规公钥交易的工作方式,但与服务器无关。

一个用例:

我的 Facebook 个人资料上的所有内容都是加密的,任何人都无法查看该信息(甚至 Facebook 也不行)。我提供密钥的用户将能够解密该信息。

这将允许完全控制在线存储的数据。

同样的想法也适用于上传到互联网的图片。

我看到的一个问题是拥有一种实用的密钥管理机制和一种将密钥分发给其他用户的安全方式。

有没有人做过这样的事情?

0 投票
1 回答
919 浏览

node.js - 为什么双方的秘密不一样?

我试图了解 diffie hellman 密钥交换是如何工作的,并编写了一个简单的 node.js 程序来进行测试:

如果我正确理解了这篇维基百科文章中的正确图形,那么这两个秘密应该是相同的。但他们从来都不是,为什么?

0 投票
1 回答
2399 浏览

c - 为什么使用 OpenSSL diffie hellman 的密钥不相等?

在执行这个 diffie hellman 交换示例时,我无法弄清楚为什么我的密钥不相等。我在 C (openssl/dh.h) 中使用 openssl 库。

这看起来很简单,但由于某种原因,键不一样。我错过了什么?

有任何想法吗?谢谢!

0 投票
0 回答
152 浏览

openid - OpenId 2.0:会话类型与关联类型

OpenID 2.0 规范很少提及 OpenID 关联请求中会话类型和关联类型之间的关系。我的问题:(1)会话类型“DH-SHA1”和关联类型“HMAC-SHA256”的组合是否有效?(2) 反过来呢,即“DH-SHA256”和“HMAC-SHA1”?

我不认为规范明确禁止这些混合组合,但第 8.2.3 节描述了加密 MAC 密钥以进行传输的过程,如下所示:

这是否意味着会话类型 DH-SHA1 的 MAC 密钥长度必须为 20 字节,会话类型 DH-SHA256 的 MAC 密钥长度必须为 32 字节?规范第 6.2 节规定

这是否意味着 DH-SHA1 必须始终与 HMAC-SHA1 配对,对于 ...256 版本也是如此?

另一个数据点:https ://me.yahoo.com/ 上的 OpenId 提供程序似乎接受会话类型为 DH-SHA1 和关联类型为 HMAC-SHA256 的关联请求,返回一个 20 字节的 MAC 密钥。

0 投票
2 回答
7702 浏览

java - Diffie Hellman 密钥交换

我目前正在尝试使用 java 加密库进行 diffie hellman 密钥交换,我已经成功地找到了一个安全的素数以及它的生成器。但是,我似乎无法使用我找到的值创建 DH 密钥。它给了我以下异常

线程“main”中的异常 java.security.InvalidAlgorithmParameterException:素数大小必须是 64 的倍数,并且只能在 com.sun.crypto.provider.DHKeyPairGenerator.initialize(DHKeyPairGenerator.java:120) 的范围内为 512 到 1024(含)在 java.security.KeyPairGenerator$Delegate.initialize(Unknown Source) at java.security.KeyPairGenerator.initialize(Unknown Source) at DH.createSpecificKey(DH.java:35) at DH.main(DH.java:166)

众所周知,在密码学中,我们不能让质数很小。我如何满足我的安全素数和生成器以符合 DH 库的标准。

下面是我的源代码

希望你们能帮助我解决这个问题。提前致谢!

0 投票
3 回答
122 浏览

java - Java XpowYmodN 函数,DiffieHellman

我需要 Diffie Hellman 协议来创建函数 XpowYmodN。我在网上找到了以下功能:

对于这个例子:XpowYmodN(29,83,53) 结果是 43。根据设备制造商的计算结果应该是 50。谁能指出我做错了什么?对于这个例子,我已经尝试过 Math.pow(X,Y) % N,我得到了结果 28。我很困惑,想要一些关于如何修复它的提示。谢谢你。