RSA加密算法

RSA加解密、签名验签過程

RSA加密是一种非对称加密,通常使用公钥加密,私钥解密,私钥签名,公钥验签。私钥是個人保存,公钥是公开的。
所以,加密解密是指公钥加密私钥解密,签名验签是指私钥签名(其实也是加密)公钥验签(其实也是解密)。

RSA加密与签名的区别

加密是为了防止信息被泄露,签名是为了信息被篡改。

假设A、B需要通过RSA加密通信,A拥有私钥,B拥有公钥

  • RSA加密解密過程(B向A发送信息的场景):
    a. A生成一對密钥(公钥和私钥),私钥A自己保留,公钥发送给B
    b. B用公钥加密需要发送给A的消息
    c. A接收到B发送的加密消息,用自己的私钥解密出原消息
    在这個過程中,衹有2次传递過程,第一次是A传递公钥给B,第二次是B传递加密消息给A,即使都被拦截也没有危险性,因为衹有A的私钥才能對加密消息进行解密,防止了消息内容泄露。

  • RSA签名验签過程(A向B回复消息)
    a. A生成一對密钥(公钥和私钥),私钥A自己保留,公钥发送给B
    b. A利用自己的私钥對消息加签,形成签名,并将加签的消息和消息本身一起发送给B
    c. B收到消息後,使用公钥进行验签,如果验签出来的内容与消息本身一致,证明消息是A回复的
    在这個過程中,衹有2次传递過程,第一次是A传递公钥给B,第二次是A传递加签消息和消息本身给B,即使都被拦截也没有危险性,因为衹有A的私钥才能對消息进行签名,即使知道了消息内容,也無法伪造带签名的消息回复给B,防止了消息内容的篡改。

openssl 命令使用

对称加密相关

  1. base64编码
    echo string | openssl enc -base64
    echo string | openssl base64

使用-out指定输出文件,否则输出到控制台
openssl enc -base64 -in input_file
openssl base64 -in input_file

使用openssl生成密钥、签名证书

  1. 生成RSA密钥
    a. 生成私钥文件
    openssl genrsa -out pem_file(密钥文件) bit_count(位数,如1024)
    b. 查看RSA私钥参数
    openssl rsa -in pem_file(私钥文件) -text -noout
    c. 根据RSA私钥文件生成公钥文件
    openssl rsa -in private_pem_file(私钥文件) -pubout -out public_pem_file(公钥文件)

  2. 加密密钥文件(使用DES、DES3算法)
    openssl rsa -in pem_file(密钥文件) -des3 -out encrypt_pem_file(加密的密钥文件)

  3. 加解密,实际上是用公钥部分加密私钥解密
    openssl rsautl -encrypt -in plain_file -inkey pem_file -out out_file
    openssl rsautl -decrypt -in encrypt_file -inkey pem_file -out out_file
    如果指定为公钥文件,补上 -pubin 选项

  1. 签名与验签,实际上是使用私钥加密,公钥解密
    openssl rsautl -sign -in plain_file -inkey pem_file -out out_file
    openssl rsautl -veriry -in signed_file -inkey pem_file -out out_file
    如果指定为公钥文件,补上 -pubin 选项

  2. 转换密钥格式
    a. pem格式转成der格式,使用-outform指定der格式
    openssl rsa -in pem_file -outform der -out der_file
    b. der格式转成pem格式,使用-outform指定pem格式
    openssl rsa -in der_file -inform der <-outform pem> -out pem_file

openssl摘要和签名验证

  1. 信息摘要和数字签名概述
    信息摘要 是 對数据进行处理得到一段固定长度的结果,其有如下特点:
    a. 输出长度固定,即输出长度与输入长度無关
    b. 不可逆,即由输出数据理论上不能找推导出输入数据
    c. 對输入数据敏感,当输入数据变化极小時,输出数据也會发生明显的变化
    d. 防碰撞,即不同的输入数据得到相同的输出数据的可能性极低
    由于信息摘要有上述特点,一般保证数据的完整性,对一個大文件進行摘要运算,得到其摘要值。通过网络或其它渠传输後通過验证其摘要值,确定大文件本身有没有发生变化。

数字签名 是 分成两步,首先對原始文件進行摘要运算,得到摘要值,然後使用私钥對摘要值进行加密。

  1. openssl 做摘要计算
    openssl dgst -sha1(或者使用其它摘要算法) in_file

  2. openssl 使用RSA密钥進行签名验证操作
    a. 签名
    openssl dgst -sign rsa_private_pem_file -sha256(或者使用其它摘要算法) -out out_file in_file
    b. 使用私钥验签
    openssl dgst -prverify rsa_private_pem_file -sha256(或者使用其它摘要算法) -signature signed_file(签名文件) in_file(原始文件)
    c. 使用公钥验签
    openssl dgst -verify rsa_public_pem_file -sha256(或者使用其它摘要算法) -signature signed_file(签名文件) in_file(原始文件)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容