gpt4 book ai didi

node.js - 有没有办法在node.js加密模块上获取用于ECDH的基点(P)?

转载 作者:行者123 更新时间:2023-12-02 10:06:14 28 4
gpt4 key购买 nike

我正在尝试在 2 个对等点之间建立椭圆曲线 Diffie-Hellman (ECDH) 协议(protocol),其中一个在 Node.js 应用程序中运行,另一个在 C 应用程序中运行。

为了做到这一点,我决定在 Node.js 端建立初始参数(曲线和基点),然后将它们传递给 C 应用程序(基本上抽象了协议(protocol)过程)。

Node.js Crypto 模块正在使用,但它没有提供在调用 ECDG.generateKeys() 方法时生成基点的方法(基于猜测,因为该主题的文档不是很清楚)。

规范中是否已定义基点?

对此的任何想法都会非常有帮助!

最佳答案

与 RSA 和标准 DH 等其他非对称原语相比,ECC 加密技术确实非常快。然而,生成曲线的域参数非常慢;即使对于较小的位,也要考虑几个小时。因此,通常曲线参数是从一组已知的、命名曲线中选择的。大多数已知的曲线都在the safe curves website上Daniel J. Bernstein 教授和 Tanja Lange 教授。

通常,协议(protocol)中使用的曲线始终是特定类型,例如F(p) 上的曲线称为素曲线。然后选择一组域参数,例如NIST 标准化曲线。最后建立域参数集。通常,这是通过名称(例如 NIST P-256)或 ID(例如 1.2.840.10045.3.1.7 或 {iso(1) member-body(2) us(840) ansi-x962(10045) curve( 3) prime(1) prime256v1(7)} 完整)。

对于 Node.JS,您在为这些参数生成 key 对之前选择了参数(包括曲线和基点):

const alice = crypto.createECDH('secp521r1');
const aliceKey = alice.generateKeys();

第一个已经设置了所有 6/7 域参数。然后, key 生成只是为私钥生成一个随机 secret 值s。与基点 G 相乘后,您将得到公共(public)点 W,它完成了执行基于 EC 的加密的参数集。

关于node.js - 有没有办法在node.js加密模块上获取用于ECDH的基点(P)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50839136/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com