问题标签 [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.
openssl - mbedTLS ECDH 曲线 25519 和 openSSL
我尝试学习一些关于 diffie-hellman 椭圆曲线的知识……我的目标实际上是在我的 windows pc 上使用 openSSL 生成一个密钥对,将生成的公钥传输到我的 stm32 目标,然后使用 mbedTLS 库计算秘密,等等 ...
视窗:
目标:
我在 stm32 上的代码基于此示例: https ://github.com/ARMmbed/mbedtls/blob/development/programs/pkey/ecdh_curve25519.c
我现在的问题是,我不知道如何使用 mbedTLS 解析生成的 PEM(或 DER)格式,以便我可以正确使用此示例代码和由 openSSL 生成的公钥。
我对 PEM 或 DER 文件的内部 ASN.1 结构了解不多,所以我需要帮助来找到正确的 API 来解析密钥并提取所需的数据。
谢谢
javascript - P-521 (Web Crypto Api) / secp521r1 (NodeJS Crypto) 的 ECDH 生成略有不同的共享密钥
ECDH
我已经从 NodeJS生成了一个公钥和私钥对
鲍勃私钥
鲍勃公钥
和Alice
的密钥来自带有Web Crypto API的网页
爱丽丝公钥
当我试图推导出发生了shared key
一件奇怪的事情时,密钥最后有不同的位。
节点JS:
网络加密 API
结果:
这仅发生在曲线P-521/secp521r1 上,但不会发生在曲线P-256/secp256r1和P-384/secp384r1 上
security - 如何将 ECC 公钥的 DER 或 PEM 格式转换为 RAW 格式
在 OpenSSL 或 WolfSSL 中
我知道总有一种方法可以使用 OpenSSL 或 WolfSSL 将 RAW 公钥格式转换为 DER 或 PEM,但是如何将 DER 或 PEM 公钥格式转换回 RAW 密钥格式。
DER 格式为(十六进制,长度为 158 字节)
openssl - 如何在 openssl 中使用 ECC 公钥共享 AES-256 密钥
我在 openssl 中找到了生成 AES-256 和 ecc 密钥的调用。我知道要共享一个秘密 ECDH_compute_key 必须使用。以下示例显示了创建共享密钥,但我不明白如何合并 AES-256 密钥。
假设我添加了一个 EVP_CIPHER_CTX *ctx,我将如何将密钥传递给对方?
c - ECDSA的公钥是否需要有两个坐标?
我正在尝试使用名为easy-ecc的外部库生成 ECDSA 密钥对。我不明白的是这个库为公钥生成了一个坐标。据我从书籍、在线 ECDSA 生成器或 NIST 测试向量中看到,公钥在曲线上总是有两个坐标(X 和 Y)。例如,如果P-384 curve
使用 ,则私钥的长度将为 48 字节,公钥将有两个不同的点 X 和 Y,48 bytes
每个点。所以,总共96 bytes
. 然而,该ecc_make_key
函数的行为并不像预期的那样。
下面是创建密钥对的函数原型:
此函数使用按引用传递策略填充空数组。但是,为什么p_publicKey
必须ECC_BYTES+1
代替ECC_BYTES*2
?
java - Java/Android - ECDH 加密 - 从字符串创建 ECPublicKey
我对 ECDH(椭圆曲线 Diffie-Hellman)加密有一点问题。我使用 BouncyCastle 库。
这是我生成密钥的功能:
我用 base64 对我的公钥进行编码:
这是收到的密钥的示例:
现在,我需要使用公钥(字符串)生成一个 ECPublicKey 对象。
但是,我有一个错误:当我使用ECPointUtil.decodePoint()时点编码无效 0x30
我不明白如何解决这个错误,以及我是否使用正确的方法从字符串创建 ECPublicKey 对象。
你能帮我吗 ?:)
c# - (C#) 在 (EC)DHE x25519 上使用私钥和公钥计算密钥份额
我正在使用 (EC)DHE 加密类型 x25519,我在计算共享密钥时遇到了一个大问题。
我有三个关键:
爱丽丝的私钥:
爱丽丝的公钥:
Bob 的公钥:
所以现在我需要像这样组合 Alice 的私钥和 Bob 的公钥(以找到它们之间的共享密钥):
有人用 C# 帮我解决这个问题吗?(我需要一个编程代码)。
pkcs#11 - 如何使用 IAIK PKCS#11 Wrapper 执行 ECDH
我正在尝试使用 IAIK PKCS#11 包装器来执行 ECDH 密钥协议。我可以看到有一类参数:EcDH1KeyDerivationParameters。但我没有看到任何类别的 ECDH 密钥:http: //javadoc.iaik.tugraz.at/pkcs11_wrapper/current/iaik/pkcs/pkcs11/objects/package-summary.html
通过 IAIK PKCS#11 包装器运行 ECDH 密钥协议时,我应该输入哪些密钥类型?我可以使用 ECDSA 密钥对象或 DH 密钥对象吗?或者我需要额外的东西?
谢谢
node.js - 如何在 Node JS v10.11.0 中使用 secp256R1 曲线生成 200 长度的 Ecc256 公钥
我想使用 NODEJS V10.11.0 使用 secp256r1 曲线生成一个 200 字符长度的 EC 公钥
ios - 使用 ECDH 快速生成共享密钥
我正在尝试加密发送给服务器的消息。为此,我生成了一个公钥和私钥。我将我的公钥发送到服务器并从中接收它的公钥。
收到后,我尝试生成一个共享密钥来加密数据。
但我得到了错误(sharedKey = crypto.sharedSecret(forPublicKeyBase64: key))
*** 由于未捕获的异常“无效密钥”而终止应用程序,原因:“公钥 {length = 64, bytes = 0xace3000d e1483ed9 82d88432 9397c716 ... d64e0fe1 47920d9f } 无效”
我的公钥和服务器密钥长度相同。
我做错了什么?