首先,抱歉我的无知,我是密码学的新手。我正在尝试生成一个公钥,用于给定私钥的椭圆曲线。
所以,目前我有:
我将使用的曲线y^2 = x^3 - ax + b
(prime256v1)
带有私钥的 .pem
文件。
第一个问题是,私钥是否必须是随机的?我的意思是,它可以是我想要的吗?
当我使用OpenSSL命令时:
openssl ecparam -in private.pem -name prime256v1 -out public.pem
如果我做了一只 public.pem
的猫,我会:
-----BEGIN EC PARAMETERS-----
BggqhkjOPQMBBw==
-----END EC PARAMETERS-----
但没有公钥。
第二个问题是,有谁知道我做错了什么?
提前致谢。
答案 0 :(得分:1)
带有私钥的.pem文件。我有第一个问题。私钥可以是随机的吗?我的意思是,它可以是我想要的吗?
没有。私钥的参数S可以是随机的,但是ASN.1 - > DER - > PEM 编码的私钥 - 包括参数 - 可以&#t; t。
openssl ecparam -in private.pem -name prime256v1 -out public.pem
...但是没有公钥,任何人都知道我做错了什么?
您需要使用ec
命令,并使用-pubout
。您当前获得的.pem
只包含编码为OID的曲线名称:
echo "BggqhkjOPQMBBw==" | openssl base64 -d | openssl asn1parse -inform DER
结果:
0:d=0 hl=2 l= 8 prim: OBJECT :prime256v1