问题标签 [ecdh]

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 投票
0 回答
88 浏览

java - android中的ecdh密钥生成

我们有一个与 ble 外围设备通信的应用程序,为此我们在外围设备上实现了通信层 ECDH,因此现在 Android 应用程序只需要创建自己的 64 字节长度的 ECDH 密钥对。如何在android中创建64字节的ECDH密钥

0 投票
1 回答
431 浏览

c# - c# 使用 ecdh prime256v1 生成密钥对

我正在使用 ecdh 制作私钥/公钥

此代码工作正常,但我想使用算法prime256v1并且CngAlgorithm没有这样的选项。我怎样才能做到这一点 ?

0 投票
1 回答
708 浏览

openssl - 从缓冲区到 EVP_PKEY 的 OpenSSL 服务器公钥

我正在编写一个通过连接到 Google 服务器的 TCP 套接字发送消息来参与 TLS 1.2 握手的客户端。我正在使用 ECDH 密钥交换方法。

我正在尝试使用代码导出共享秘密。

我通过 serverKeyExchange 消息接收到密钥并将其存储在缓冲区中,所以我的问题是:如何从缓冲区生成 EVP_PKEY? 我在这篇文章中找到了一个可能的解决方案并尝试了:

但是当我运行代码时,这一步出现错误:

这让我觉得我没有成功检索服务器公钥。

有什么建议么?我怎么知道密钥是否已成功编码?

0 投票
1 回答
918 浏览

c# - 椭圆曲线 Diffie Hellman 公钥大小

我想使用 Diffie hellman 在 ac# Server 和 c++ Client 之间生成密钥。此代码为服务器生成一个公钥:

我想知道为什么 publicKey 字节数组大小是 72 而我期望一个 64 字节长的数组?除此之外,这是我在客户端生成公钥的实现:

在这段代码中,公钥长度为 128 字节(字符?),这又是奇数,因为我指定了 NID_X9_62_prime256v1 曲线。我的错误在哪里?除了 C++ 和 C# 中的 NID_X9_62_prime256v1 和 nistP256 匹配吗?

编辑:这是 cout << ECDHPublicKey << endl output 的示例:

-----开始公钥----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEUFD9ZNby6x2bf/VC16/NHSxIXdit Ips60uLoi0/jKmbmMHRg2xbXVVzV8Uc1DElMlZA817bMFCnVvi1VsM5JYg==

-----结束公钥-----

0 投票
0 回答
236 浏览

java - 无法使用 Curve25519 生成 DSA/ECDH 密钥以用作使用 Bouncy Castle 的 OpenPGP 密钥

我正在尝试使用 Bouncy Castle 的 Java API 使用 DSA 和 ECDH 密钥对组合生成 OpenPGP 密钥环。为了不依赖 NIST 曲线,我选择了 Curve25519 作为我想要使用的函数。但是,在密钥环导出后,我得到一个IllegalArgumentException

我用来生成两个密钥对的代码如下:

供参考:生成 Curve25519 密钥的代码我改编自这个 GitHub 问题,以及生成和导出整个密钥环的代码我改编自这个 Bouncy Castle 示例

但是,上面的代码使用ECNamedCurveTable来自prime256v1.

为什么 JCA 密钥对和 OpenPGP 密钥对之间的转换对于使用 Curve25519 创建的密钥失败,而不是使用来自 的规范创建的密钥ECNamedCurveTable?我是否遗漏了某些东西,或者 Bouncy Castle 不支持 OpenPGP 键的自定义曲线?

0 投票
0 回答
245 浏览

ios - 如何使用 ECDH 加密快速创建 64 字节公钥和 32 字节私钥?

我必须保护我的锁免受 MITM(即中间人攻击)。为此,我必须整合ECDH encryption。我没有这方面的知识。请帮助我如何创建64 bytes public32 byte private键入。下面是我正在尝试的代码

请帮我。提前致谢。

0 投票
0 回答
1123 浏览

swift - 使用 SecKeyCreateWithData 创建 secKey 表单数据/十六进制/字节给 nil

我是加密新手。我想seckey从数据中创建公共,但我总是得到零。请帮我。我需要这个公钥seckey来创建一个shared secrete key,但我总是得到 nil 。我如何将数据转换为seckey

以下是参考代码。我正在使用快速语言。

更新

以下是我要转换为 seckey 的字节:

}

下面我生成一对密钥:

0 投票
2 回答
350 浏览

c# - 使用 ECC 加密证书签署令牌

我正在使用自签名证书ECDH_secP384r1来签署令牌。这是我创建证书的 PowerShell:

现在在我的 .net 核心应用程序中,我首先加载证书:

现在通过获得证书,我在创建 SigningCredentials 时出错:我试图按照这种方式

但是我在 ECDsa.Create 中遇到了一个异常:

更新

我也尝试过这种方式来修复尺寸

但在这种情况下 input[0] != 0我有一个例外,我input[0]不是 0 也是input.Length1250 并且预期大小是 48

我错过了什么?请有任何想法。

0 投票
0 回答
150 浏览

c# - 获取ECC加密证书的字节数组

我正在使用自签名证书ECDH_secP384r1来签署令牌。这是我创建证书的 PowerShell:

现在在我的 .net 核心应用程序中,我首先加载证书:

而且我也可以ECDsa像这样获取私钥

但是我怎么能有这些键的字节数组呢?

对于 Rsa,我可以使用:

但是怎么样ECDsa?任何想法?

0 投票
1 回答
171 浏览

c - 使用 libECC 执行 ECDH

我正在寻找一种没有大型图书馆重量的 ECDH 方法。经过一番搜索/头痛后,我找到了几乎执行它的 libECC。

在库中,您可以找到一个 ECDH“example_ECDH.c”,但使用它我在导入 PEM 证书并对其进行处理时遇到了很多麻烦。所以在这里我发布我的例子,希望它能帮助其他人赢得时间。

祝你今天过得愉快。