问题标签 [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.
security - SSL 密钥交换加密技术
三种密钥交换算法即匿名 DH、临时 DH 和固定 DH 之间有什么区别?
java - 加密密钥交换的同行评审
在过去的几天里,我一直在玩 Bouncy Castle (java),并且我已经达到了我相信我可以通过 Diffie-Hellman 交换安全地交换密钥的地步。
在阅读了许多强调正确实施加密交换困难的帖子后,我希望您能对我的工作发表诚实的看法。所有底层密码操作都基于 Bouncy Castle,因此可能被认为是可靠的。
这种交换可以被认为是安全的吗?我是否应该坚持使用 SSL 套接字,尽管我的辛勤工作会受到伤害?提前感谢您的意见!
(顺便说一句,我的 Bouncy-Castle-Wrapping-Library 是完全开源的,所以如果你想要存储库的 URL,请告诉我。)
cryptography - 生成器 G 要求是 Diffie Hellman 算法中的原始根模 p
经过搜索,我发现自己对 Diffie Hellman 算法中 P 和 G 的使用感到困惑。要求P是素数,G是P的原根。
我知道安全性是基于分解两个非常大的素数的结果的难度,所以我对此没有任何问题。然而,关于 G 成为 P 的原始根的目的似乎很少有可用信息。谁能回答为什么存在这个要求(如果可能,请提供参考资料)?它只是增加了安全性吗?鉴于共享密钥显然可以用 p 和 g 的任意组合创建,即使是非质数组合,我觉得这很有趣。肯定只能是为了安全?如果是这样,它是如何增加的?
提前致谢
丹尼尔
c# - Bouncy Castle ECDH 和 .net4 原生 ECDiffieHellmanCNG 之间的区别
我已经能够使用 .net4 中的 ECDiffieHellmanCNG 生成私钥,并且我还使用 Bouncy Castle C# 库成功生成了私钥。我想知道为什么 .net 4 版本会生成一个字节数组,而 Bouncy Castle 的 ECDHBasicAgreement 会生成一种 BigInteger(手动实现)。我希望能够互换使用这些库。谢谢!
c++ - Diffie Hellman 上的 C++ 教程
是否有使用 OpenSSL 进行 Diffie Hellman 密钥交换的 C++ 教程?我一直在寻找,我找不到任何东西。如果您知道教程,我将不胜感激它的链接。谢谢你。
php - iPhone和带有密钥交换的php页面之间的加密
我需要从我的 iPhone 应用程序向 php 页面发送数据和从 php 页面发送数据,现在我有几个问题要在第一次就正确处理它,并且最好的结果:)
让我们从数据传输开始。从 php 页面获取数据的最佳方式是什么?
选项 1:在后台线程中使用 NSString
或选项 2:将 NSURLConnection 与代表一起使用?
然后我们有加密部分。我有一点谷歌,但还没有找到这么多。我需要能够在双方(在 iPhone 应用程序和 php 页面上)进行加密和解密。什么加密最适合这个?是否有任何良好加密的实现?
最后,用于密钥交换。我正在考虑使用 diffie-hellman,它“需要”大素数。有没有简单的方法来生成这样的东西(在 iPhone 和 php 页面上)?
c# - 我可以用于 BlowFish/DH 的最佳库是什么?
什么是我可以用于 BlowFish/DH 的最佳库,因为我使用的是 BouncyCastle,但它看起来不像我想要的那样,所以我想知道是否有另一个库我可以使用,所以它让我可以使用 CFB/卫生署?谢谢
这是我的 BouncyCastle 课程:
cryptography - EC公钥是否有标准化的固定长度编码?
我想知道是否有(我希望有)ECDH(椭圆曲线 Diffie-Hellman)和 ECDSA(椭圆曲线数字签名算法)的公钥大小标准,适用于素数字段(192、224、256)上的每种曲线类型, 384 和 521)。
java - 确定私钥(Diffie-Hellman)
我遇到了一个挑战,它与测试朋友的加密过程有关。
这是一个 Diffie-Hellman 交换过程,这里是已知的变量/常量:
P
,G
- 我生成的私钥(变量)
- 我生成的公钥(变量)
- 收件人公钥(常量)。
查看我的私钥时 -P
并且G
都在其中。例如,前 'x' 字节似乎与任何东西无关,然后接下来的 'y' 字节是P
,接下来的两个字节是静态的,接下来的 'z' 字节是G
,其余的都是可变的。
该过程是加密文件,然后将其发送到设备,然后设备将对其进行解密-我的攻击思路是:
尝试复制秘密共享密钥。这里的问题是只要我知道我生成的私钥就可以了,在这种情况下 - 我不喜欢他给我的文件。
尝试找到收件人的私钥。在这里,我可以蛮力闯入——但除非我有某种超级计算机,否则我会花很长时间。
尝试攻击时还有其他选择吗?
java - 为什么 SSL 握手会给出“无法生成 DH 密钥对”异常?
当我与一些 IRC 服务器(但不是其他服务器 - 可能是由于服务器的首选加密方法)建立 SSL 连接时,我得到以下异常:
最终原因:
演示此问题的服务器示例是 Aperture.esper.net:6697(这是一个 IRC 服务器)。kornbluth.freenode.net:6697 是未证明该问题的服务器示例。[毫不奇怪,每个网络上的所有服务器都共享相同的各自行为。]
我的代码(如前所述,在连接到某些 SSL 服务器时确实有效)是:
正是最后一次 startHandshake 引发了异常。是的,“trustAllCerts”有一些魔力;该代码强制 SSL 系统不验证证书。(所以......不是证书问题。)
显然,一种可能性是 esper 的服务器配置错误,但我搜索并没有找到任何其他关于 esper 的 SSL 端口有问题的人的引用,并且“openssl”连接到它(见下文)。所以我想知道这是否是 Java 默认 SSL 支持的限制,或者其他什么。有什么建议么?
当我从命令行使用“openssl”连接到 Aperture.esper.net 6697 时,会发生以下情况:
如前所述,毕竟,它确实连接成功,这比我的 Java 应用程序所能说的要多。
如果相关,我使用的是 OS X 10.6.8,Java 版本 1.6.0_26。