OpenSSL之十一:非对称加密算法指令

本文详细介绍了OpenSSL中非对称加密算法,包括RSA的genrsa、rsa和rsautl指令,DH算法的dhparam、gendh和dh指令,以及DSA的dsaparma、gendsa和dsa指令。讨论了数字签名和密钥交换的不同要求,并提供了多个实例展示如何生成和管理密钥。
摘要由CSDN通过智能技术生成

非对称加密算法并非都可以用来进行密钥交换和数字签名的。数字签名和密钥交换对公开密钥算法的要求有一定的区别:

  1. 密钥交换算法使用公开密钥进行加密,使用私人密钥进行解密;而数字签名算法则使用私人密钥进行加密,使用公开密钥进行解密。
  2. 密钥交换算法要求从加密密钥(公开密钥)很难推算出解密密钥(私人密钥);而数字签名算法则要求从解密密钥(公开密钥)很难推算出加密密钥(私人密钥)。

OpenSSL支持的三种非对称算法:

算法类型 密钥交换 数字签名
RSA 支持 支持
DH 支持 不建议使用
DSA 不支持 支持

OpenSSL的非对称加密算法指令:

指令 种类 描述
genrsa RSA 生成并输出一个RSA私钥
rsa RSA 处理RSA密钥的格式转换等问题
rsautl RSA 使用RSA密钥进行加密、解密、签名和验证等运算
gendh DH 生成DH密钥参数
dhparam DH 用于生成和处理DH密钥参数
dh DH 处理DH密钥参数的格式转换等
dsaparam DSA 生成和处理DSA密钥参数,并可以生成DSA密钥
gendsa DSA 根据DSA参数文件生成一个DSA密钥
dsa DSA 处理DSA密钥的格式转换和解释等

RSA算法与指令

RSA密钥加密的特定是输入数据不能超过RSA密钥长度,而输出数据长度总是与RSA密钥长度相同,所以大数据加密一般需要数据分割。解密的时候RSA输入数据长度总是跟密钥长度相同,如果数据数据长度超过密钥长度,需要进行分割解密后在拼接。
数字签名的RSA算法通常跟信息摘要函数一起使用,对于一个大文件可以先使用摘要算法转换成摘要信息,然后再使用RSA算法进行加密从而完成该文件的数字签名过程。再验签的时候,使用同样的信息值啊要算法对该文件进行运算得到信息摘要值,然后使用RSA算法(通常是公钥)进行解密得到签名方信息摘要值,然后对比摘要值,如果一致,则签名验证成功。

genrsa:生成RSA密钥

genrsa
参数说明:

参数 描述
out 指定密钥输出文件名,后缀通常为pem;输出密钥是RSA密钥的私钥 。RSA公钥包含模数n和指数e,私钥包含了d。通常OpenSSL的私钥结构中会把公钥参数包含在一起。所以可以使用rsa指令从私钥文件中提取公钥结构并进行转换。
passout 指定了输出密钥文件的加密保护口令
* 加密算法选项,包括DES、DES3、IDEA、AES128、AES192和AES256,对输出密钥进行加密
f4、F4和3 指数选项,RSA算法的指数是一个公开参数,术语公钥参数的一部分,常用值为3、17和65537(OpenSSL目前只支持3和65535),使用-f4可以指定使用65535,使用-3则指定使用3,默认使用65535
密钥长度 512、1024、2048等,密钥使用的周期越长,使用的场合安全性要求越高,密钥要求的长度也就越长,默认为2048
engin 使用第三方加密库或者硬件设备
rand 指定产生随机数的参考种子文件,可以是任意文件

应用实例:

  1. 生成1024位RSA密钥
OpenSSL> genrsa -out RsaPrivateKey.pem 1024

genrsa demo
2. 生成1024位RSA密钥,采用DES3加密,输出文件的加密保护口令为12345678

OpenSSL> genrsa -out RsaPrivateKey.pem -des3 -passout pass:12345678 1024

在这里插入图片描述

rsa:管理RSA密钥

rsa
参数说明:

参数 描述
inform和outform 密钥格式选项。指定输入输出密钥格式
in和out 输入和输出文件选项, 指定输入输出文件名
passin和passout 输入和输出口令选项,passin指定了获取RSA私钥解密口令的源,passout指定了输出RSA私钥是进行加密的口令的源
pubin和pubout 密钥输入和输出类型选项,使用pubin输入RSA公钥文件,如果RSA私钥,学昂输出一个对应的公钥,使用pubout
* 加密算法类型选项,包括DES、DES3、IDEA、AES128、AES192和AES256,对输出密钥进行加密
text 以明文形式输出密钥各个参数的值
noout 不输出任何密钥到文件中,即便使用了out选项
modulus 输出模数值
engin
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二流人物

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值