如何使用SE051 IoT SDK正确参数化SECP256K1曲线?

问题描述 投票:0回答:1

为了在SE051物联网安全元件(NXP)中使用椭圆曲线,例如SECP256K1曲线(比特币或以太坊使用),需要首先创建该曲线并使用函数

SetECCurveParam

对其进行参数化

NXP 文档本身并没有过多说明参数化,只是曲线中的所有参数必须依次设置(显然没有精确的顺序),一旦收到最后一个参数,卡将返回最终的参数状态:如果所有参数都有效,则为 Ok (0x9000),否则为错误消息(0x9000 以外的其他内容)

这五个参数定义如下:

CURVE_PARAM_A 0x01

CURVE_PARAM_B 0x02

CURVE_PARAM_G 0x04

CURVE_PARAM_N 0x08

CURVE_PARAM_PRIME 0x10

这应该足够明确: A 是曲线简化 Weierstrass 形式中的“A”参数 (y^2 = x^3 + Ax + B) B 是曲线简化 Weierstrass 形式中的“B”参数 (y^2 = x^3 + Ax + B) G是曲线的基点 N是基点的阶数 PRIME 是曲线所基于的 F_p 的阶数

我以此结束

byte PRIME[]={ 0xFF,0xFF,0xFF,0xFF ,0xFF,0xFF,0xFF,0xFF ,0xFF,0xFF,0xFF,0xFF ,0xFF,0xFF,0xFF,0xFF ,0xFF,0xFF,0xFF,0xFF ,0xFF,0xFF,0xFF,0xFF ,0xFF,0xFF,0xFF,0xFE ,0xFF,0xFF,0xFC,0x2F};

byte A[] ={0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00};

byte B[] ={0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x07};

//uncompressed
byte G[]={0x04 ,0x79,0xBE,0x66,0x7E ,0xF9,0xDC,0xBB,0xAC ,0x55,0xA0,0x62,0x95 ,0xCE,0x87,0x0B,0x07 ,0x02,0x9B,0xFC,0xDB ,0x2D,0xCE,0x28,0xD9 ,0x59,0xF2,0x81,0x5B ,0x16,0xF8,0x17,0x98 ,0x48,0x3A,0xDA,0x77 ,0x26,0xA3,0xC4,0x65 ,0x5D,0xA4,0xFB,0xFC ,0x0E,0x11,0x08,0xA8 ,0xFD,0x17,0xB4,0x48 ,0xA6,0x85,0x54,0x19 ,0x9C,0x47,0xD0,0x8F ,0xFB,0x10,0xD4,0xB8};
//compressed
//byte G[]={0x02 ,0x79,0xBE,0x66,0x7E ,0xF9,0xDC,0xBB,0xAC ,0x55,0xA0,0x62,0x95 ,0xCE,0x87,0x0B,0x07 ,0x02,0x9B,0xFC,0xDB ,0x2D,0xCE,0x28,0xD9 ,0x59,0xF2,0x81,0x5B ,0x16,0xF8,0x17,0x98};

byte n[] = {0xFF,0xFF,0xFF,0xFF ,0xFF,0xFF,0xFF,0xFF ,0xFF,0xFF,0xFF,0xFF ,0xFF,0xFF,0xFF,0xFE ,0xBA,0xAE,0xDC,0xE6 ,0xAF,0x48,0xA0,0x3B ,0xBFD,0x25,0xE8,0xC ,0xD0,0x36,0x41,0x41};

对于这些值(G 压缩或未压缩),我在最后一个参数后收到“0x6985”,表明出现了问题。然而,SECP256K1的参数是众所周知的,经过反复检查,我找不到错误的原因。这也不是字节序问题。

有人在 SE051 上遇到过类似的问题吗?那里可能出了什么问题?

iot smartcard elliptic-curve secp256k1
1个回答
0
投票

N 的字节数组中有一个拼写错误...

© www.soinside.com 2019 - 2024. All rights reserved.