2015-12-24 93 views
0

首先,對於我的無知感到抱歉,我是密碼學方面的新手。我正在嘗試生成一個公鑰,用於給定私鑰的橢圓曲線。使用OpenSSL的EC私鑰和域參數

因此,在現階段,我有:

  1. 我將使用y^2 = x^3 - ax + b(prime256v1)曲線

  2. 一個.pem文件用私鑰。

第一個問題是,私鑰是否必須是隨機的?我的意思是,它可以是我想要的嗎?

當我使用OpenSSL命令:

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

如果我做的public.pem一隻貓,我得到:

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

但沒有公共密鑰。

第二個問題是,有人知道我在做什麼錯嗎?

在此先感謝。

+1

這有點偏離主題在這裏,因爲它只是命令行用法。但它是X-mas。下一次,請使用超級用戶。 –

+0

@Maarten - 我準備好接近尾聲,但我會跟隨你的領先。 [Unix和Linux堆棧交換](http://unix.stackexchange.com/)和[信息安全堆棧交換](http://security.stackexchange.com/)也可能會有用。 – jww

回答

1

帶私鑰的.pem文件。我在這裏有第一個問題。私鑰可以是隨機的?我的意思是,它可以是我想要的嗎?

號私鑰的參數S可以是隨機的,但ASN.1 - > DER - > PEM 編碼私鑰 - 其中包括參數 - 不能。

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