首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >关于ECC测试向量格式的问题

关于ECC测试向量格式的问题
EN

Cryptography用户
提问于 2019-06-06 01:50:16
回答 1查看 243关注 0票数 0

我正在寻找一些ECC测试向量,以供使用。我只是找到了一些帖子(比如)和github资源(比如 ),它们是对我的C测试代码的很好的参考,但是我想得到一些更多的建议.

给出的大多数测试向量看起来都是这样的格式:

代码语言:javascript
运行
复制
k (or m):m = 20
X = 0x83A01A9378395BAB9BCD6A0AD03CC56D56E6B19250465A94A234DC4C6B28DA9A
Y = 0x76E49B6DE2F73234AE6A5EB9D612B75C9F2202BB6923F54FF8240AAA86F640B8

根据我的理解,k(或m)是私钥,(X,Y)是公钥--所以(X,Y)=(m点G),G是NIST或BP曲线定义为“标准”的基点。问题1:这样的理解正确吗?

这是有意义的看到X/Y都是32字节曲线七层256k1-所以预计键的长度将是256 b(32字节);

我的问题是关于私钥(表示为m或k)。对于某些测试向量,m(或k)表示为:

代码语言:javascript
运行
复制
m = AA5E28D6A97A2479A65527F7290311A3624D4CC0FA1578598EE3C2613BF99522

然而,其他一些测试向量m(或k)如下:

代码语言:javascript
运行
复制
k = 112233445566778899
k = 10
k = 57896044618658097711785492504343953926418782139537452191302581570759080747168

这些都是纯数字,所以Q2:这是否意味着我们需要将它们转换为十六进制--通过这样做,我可以得到精确的32字节测试向量?

EN

回答 1

Cryptography用户

回答已采纳

发布于 2019-06-11 16:06:02

因此,(X,Y)=(m点G),G是由NIST或BP曲线定义为“标准”的基点。Q1:这样的理解正确吗?

Q2:这是否意味着我们需要将它们转换为十六进制--通过这样做,我可以得到精确的32字节测试向量?

您的C测试代码处理的格式是,好的,直到您的C测试代码。它们表示的是一个整数,不管你选择将它存储在曲线的标量环中。

其他一些曲线,如BP-521,是否意味着关键位长为521 b?

BP-521指的是什么,我不知道,但如果是E-521或NISTP-521,它很可能是指坐标场模量的位数,即坐标xy所在的字段:默森素数2^{521} - 1作为算术模数很方便,因为2^{521} x_{\mathrm{hi}} + x_{\mathrm{lo}} \equiv x_{\mathrm{hi}} + x_{\mathrm{lo}} \pmod{2^{521} - 1},所以缩减步骤只需要移动-和-加法。

Hasse定理表明标量环的尺寸\ell和坐标场的尺寸q不可能有太大的不同,|\ell - (q + 1)| \leq 2\sqrt q,因此标量环模\ell在这种情况下也将接近q = 2^{521} - 1,但可能与2^{261}无关。

票数 1
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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