密码学/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]

进一步阅读[编辑]