[英]How to get Qx and Qy form DER Encoded EC_POINT
我在硝基键hsm上创建了一个Brainpool EC,并希望将其用于.NET Framework的加密操作,例如System.Security.Cryptography.ECDiffieHellman
。
我使用pkcs11-tool --list-objects
提取了公钥,但仅获得一个值 EC_POINT。
那么,如何获得这一点的坐标呢?
Public Key Object; EC EC_POINT 320 bits
EC_POINT: 0451040defed7988b095679e5aca422382d949c2e7fd937646def25cf7eb5140d41f12d077ac615773952da53efad266c8642c6877b8b215d091ba687acafd3c33f35ffb5ca6aadaf248ef1a126cd55e0d0598
EC_PARAMS: 06092b2403030208010109
label: Brainpool #1
ID: 10
Usage: verify
此EC_POINT是DER编码的,我用它来提取EC_POINT的真实值 。
040defed7988b095679e5aca422382d949c2e7fd937646def25cf7
eb5140d41f12d077ac615773952da53efad266c8642c6877b8b215
d091ba687acafd3c33f35ffb5ca6aadaf248ef1a126cd55e0d0598
040defed7988b095679e5aca422382d949c2e7fd937646def25cf7
eb5140d41f12d077ac615773952da53efad266c8642c6877b8b215
d091ba687acafd3c33f35ffb5ca6aadaf248ef1a126cd55e0d0598
是您的公钥。 第一个字节表示它是未压缩的密钥( 04
),这意味着在其余字节中,前半部分是X坐标,后半部分是Y坐标。
Qx = 0defed7988b095679e5aca422382d949c2e7fd937646def25cf7eb5140d41f12d077ac615773952d
Qy = a53efad266c8642c6877b8b215d091ba687acafd3c33f35ffb5ca6aadaf248ef1a126cd55e0d0598
http://www.secg.org/sec1-v2.pdf ,第2.3.4节(八进制字符串到椭圆曲线点转换)。
(并且由于参数( 06092b2403030208010109
)是DER-oid 1.3.36.3.3.2.8.1.1.9(brainpoolP320r1),所以所有内容看起来都是正确的,因为Qx / Qy是320位值)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.