密碼學/Generate a keypair using OpenSSL

維基教科書,自由的教學讀本

下載並安裝OpenSSL:OpenSSL。如果使用Windows操作系統,從這裡下載[1]

OpenSSL可以生成幾種公鑰/私鑰對。RSA時最常用的。[1]

也可以用PuTTYgen或ssh-keygen生成RSA公鑰/私鑰對[2][3]

使用2048位私鑰生成RSA密鑰對[編輯]

執行命令: "openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048"[4] (以前是 「openssl genrsa -out private_key.pem 2048」)

從RSA密鑰對抽取公鑰[編輯]

執行命令: "openssl rsa -pubout -in private_key.pem -out public_key.pem"

該命令只是抽取出存放在私鑰文件中的公鑰,並用Base64 PEM編碼後寫入公鑰文件中。[5]

查看密鑰[編輯]

執行命令: "openssl rsa -text -in private_key.pem"

顯式內容包括:[6]

  • modulus (也稱作public key與 n)
  • public exponent (也稱作 e 與 exponent; 缺省值是 0x010001)
  • private exponent
  • 兩個質數用於創建密鑰。
    • prime1,稱作p
    • prime2,稱作q
    • exponent1 等於d mod (p − 1)。
    • exponent2 等於d mod (q − 1)。
    • coefficient 是CRT係數 q–1 mod p。

把BASE64編碼的.pem文件解碼為二進制文件:

openssl base64 -d  -in private_key.pem -out private_key_bin.pem

無口令的登錄[編輯]

生成無口令保護的私鑰。[7] 也可以生成有口令保護的私鑰,每次系統啟動時自動輸入口令獲取私鑰。[8][3]

進一步閱讀[編輯]