使用OpenSSL的EC私钥和域参数

时间:2015-12-24 10:02:56

标签: openssl cryptography elliptic-curve

首先,抱歉我的无知,我是密码学的新手。我正在尝试生成一个公钥,用于给定私钥的椭圆曲线。

所以,目前我有:

  1. 我将使用的曲线y^2 = x^3 - ax + b(prime256v1)

  2. 带有私钥的 .pem 文件。

  3. 第一个问题是,私钥是否必须是随机的?我的意思是,它可以是我想要的吗?

    当我使用OpenSSL命令时:

    openssl ecparam -in private.pem -name prime256v1 -out public.pem
    

    如果我做了一只 public.pem 的猫,我会:

    -----BEGIN EC PARAMETERS-----
    BggqhkjOPQMBBw==
    -----END EC PARAMETERS-----
    

    但没有公钥。

    第二个问题是,有谁知道我做错了什么?

    提前致谢。

1 个答案:

答案 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