首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Curve448 - Ed448的关键材料能被用于X448吗?

Curve448 - Ed448的关键材料能被用于X448吗?
EN

Cryptography用户
提问于 2022-05-05 07:10:59
回答 1查看 421关注 0票数 3

目前,我面临的情况是,Ed448密钥对(私钥+公钥)是可用的,系统应该通过Diffie (ECDH)操作进行扩展。首先,让我总结一下我到目前为止所理解的。

Ed448:是edwards448上的数字签名算法。

X448:是为Curve448构建的Diffie-Hellman函数.

Curve448:是RFC7748中指定的蒙哥马利格式的椭圆曲线。

edwards448:是一条椭圆曲线,由RFC7748中指定的映射与Curve448相关。

对于Curve25519,我阅读了对E 25519的密钥交换?为什么?,对我来说,通过应用定义的映射,可以将现有的Ed25519公钥转换为X25519密钥。不知怎么的,我对这里使用的所有数学并不那么熟悉。后来,我又读了一些书,发现了在密码学中,“出生等效”是什么意思?,它为我提供了更多的见解。然后,我又读了一遍RFC7748,并看到了对Curve448来说,出生等价也是正确的。此外,还有"edwards448“定义,它提供了蒙哥马利和爱德华兹曲线点之间的地图。要使用的地图定义为:

(u, v) = (\frac{y^2}{x^2}, \frac{(2 - x^2 - y^2)*y}{x^3})

如果我正确理解了上述引用,就应该能够将公钥转换为X448函数中使用的坐标。例外情况是,如果上述方程的x为0,则不能应用映射,也不可能进行转换。此外,与Curve448有关的椭圆曲线密码Ecc章节将我引向相同的方向,即可能转换现有的关键材料,然后再将其用于X448。如果我正确理解它,ECC中的私钥是整数而不是“曲线点”。

现在,我很好奇是否真的有可能转换一个现有的密钥对,这样它就可以用于ECDH,以及如何重用。或者,如果有必要只为ECDH“引入”第二个密钥对。因此,我请求一些帮助,因为我是新的这个话题。

EN

回答 1

Cryptography用户

回答已采纳

发布于 2022-05-05 18:16:47

  1. 您不需要将Edwards448公钥转换为出生时等效的Curve448公钥才能执行ECDH。你可以坚持使用Edwards448。如果使用Curve448,将获得性能增益,但根据实现的不同,这种性能增益可能会被验证器从Edwards448公钥派生Curve448公钥所必须进行的转换所抵消。您将使用Edwards448 EC库的“标量乘法”函数来执行ECDH操作。
  2. EC私钥是“标量”,这意味着一个正整数小于该曲线上生成器点的组大小。公钥是曲线上的点,是一对“字段元素”坐标。字段元素是小于素数p = 2^{448} - 2^{224} - 1的正整数。
  3. 如果您确实决定从Edwards448转换为Curve448,那么这些点将共享完全相同的标量私钥。注意,由于X448在变量基标量乘密钥协议中只使用Curve448 x坐标的方式,映射将使Edwards448点PI-P映射到相同的X448密钥协议Curve448点(其中I是无穷远处的Edwards448点)。幸运的是,您正在从Edwards448映射到Curve448,这意味着您不会发现自己有歧义。
  4. 从Edwards448到Curve448的转换是简单的:\texttt{curve448}_{x-coord} = \left(\frac{\texttt{ed448}_{y-coord}}{\texttt{ed448}_{x-coord}}\right)^2注意到“除法”是通过模乘逆乘法实现的。您的EC库应该为您提供此功能。操作是mod\ p完成的。
  5. 请注意,Ed448将以'raw‘57字节的私钥开始,使用SHAKE256散列它,清除最重要的字节,强制第二个最重要字节的最重要位为1,并清除最不重要字节的两个最不重要位。因此,您需要与Ed448相同地使用原始Curve448私钥的散列和修改版本。Curve448键是56个字节,分割57字节散列和修改后的Edwards448键中最重要的字节是安全的,因为Edwards448键总是在最重要的字节中包含零。注意,由于所有字段元素都是小endian,所以“最重要的字节”是字节数组中的最后一个字节。
  6. 有趣的是,BouncyCastle X448实现使用Curve448基点执行标量乘法,方法是要求BouncyCastle Ed448实现对Ed448基点执行完全相同标量的标量乘法。然后,BouncyCastle使用上面第4点中指定的相同公式将结果转换回等效的Curve448点。请参阅代码这里
票数 5
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/99974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档