RSA加密

一、概述
二、对称加密
三、RSA加密
四、OpenSSL使用

一、概述

RSA是一种非对称加密算法,1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的,因此以三人姓氏的首字母命名了该非对称加密算法,RSA算法。

提到非对称加密,下面简单看一下对称加密流程:

二、对称加密

先举个栗子:
1、天王盖地虎对宝塔镇河妖,我们都知道,所以你给我发天王盖地虎,我就翻译成宝塔镇河妖。因此对称加密也可以说是秘密交易者的暗号;

2、战争片中的电报,发送方和接收方都有一个密码本,每一个字母都有与之对应的密文,发送时对照密码本发送密文,接收时拿密文在密码本上进行比对;

3、开发中如同我告诉接收方我给你的数据都是用base64加密的,那么接收方就可以采用base64解密。

综上所知,消息发送方与接收方均知道对数据的处理方式,那么我们称这种处理方式方法为秘钥(key),也就是上面暗号的上下句,密码本,base64。对数据加密解密都是由一个秘钥(key)来处理,消息发送端和消息接收端同时存有秘钥(key),因此也称之为单秘钥加密。第三方可以通过归纳总结或强行获取秘钥(key),如果第三方拿到了秘钥(key)那么消息也就会被第三方获取,所以对称加密安全性一般,适用与一般数据加密。如下图:

symmetric.png

三、RSA加密

RSA非对称加密存在大量的取模运算,加密速度慢,只适用于对小数据量加密,所有在应用中经常结合对称加密使用,对对称加密的私钥进行加密。非对称加密应用有支付宝,微信等支付做签名验证,苹果开发证书签名等。

欧拉函数

在数论中,存在正整数 n,小于n并且与n互质的正整数的数目称为n的欧拉函数记着φ(n)。例如:
φ(7) 7对应的比7小的与7互质的数有1、2、3、4、5、6共6个,因此φ(7)=6
φ(8) 8对应的比8小的与8互质的数有1,3,5,7共4个,因此φ(8)=4
φ(9) 9对应的比9小的与9互质的数有1,2,4,5,7,8共6个,,因此φ(9)=6

互质:除了1没有其他公因数的两个整数,称为互质整数。
通式:φ(x)=x∏(1-1/pi) 1=<x<n。(p1~pnx的所有质因数)
m n互质:φ(n * m)=φ(n)* φ(m),如果n为质数那么φ(n)=n-1
分解质因数求值:φ(12)=φ(4 * 3)=φ( 2^2 * 3^1 )=( 2^2 - 2^1 ) * (3^1 - 3^0)=4

欧拉定理

如果两个正整数mn互质,那么mφ(n) 次方对n取余衡等于1m^φ(n)%n≡1

费马小定理

存在一个质数p,而整数a不是p的倍数,则存在a^(p-1)%p≡1。费马小定理是欧拉定理的特殊情况。因为φ(p)=p-1(任何数都与质数互质)。

模反元素

如果两个正整数ex互质,那么一定存在一个整数d,使得ed-1能够被x整除,则称dex的模反元素。e * d % x≡1,那么e * d ≡ k*x+1

由以上定理得出以下几个公式:
1、m^φ(n)%n≡1
2、m^(k * φ(n))%n≡1 (两端同乘以m
3、m^(k * φ(n)+1)%n≡m
4、e * d≡k * x+1
5、m^e * d%n≡m (替换第3步k * φ(n)+1

m^e*d%n≡m就是我们需要的一个非对称加密的公式。m为明文,ed分别对应的是公钥私钥。迪菲卡尔曼秘钥交换对公式拆分:
m^e%n=c 加密
c^d%n=m 解密
其中c为通过e加密后的密文,然后通过d可以解出明文m。因此:
公钥: en
秘钥:dn
明文:m
密文:c

RSA加密过程

1、取两个质数p1p2
2、确定n值,n=p1 * p2n值一般会很大长度一般为1024个二进制位;
3、确定φ(n)φ(n)=(p1-1) * (p2-1)
4、确定e值,1<e<φ(n)e为整数并且与φ(n)互质;
5、确定d值,e*d%φ(n)=1
6、加密 c=m^e%n
7、解密m=c^d%n

实际验证:
1、p1=3p2=7
2、n=p1 * p2=3 * 7=21
3、φ(n)=(p1-1) * (p2-1)=2*6=12
4、1<e<12e=5e12互质则取值{1,5,7,11}φ(12)=4个互质数,满足条件的有4个);
5、e * d % φ(n)=5 * d % 12=1,得d=17
6、设置明文m=3,则c = m^e % n = 3^5 % 21=12
7、解密密文m=c^d % n=12^17 % 21=3

数据传输过程(迪菲赫尔曼秘钥交换):

RSA.png

四、OpenSSL

OpenSSLMac系统内置的开源加密库,我们可以是用终端来获取私钥公钥,数据加密。
主要命令:

1、生成一个RSA私钥

openssl genrsa -out private.pem 1024

2、从私钥中提取公钥

openssl rsa -in private.pem -pubout -out public.pem

3、将私钥转换成明文

openssl rsa -in private.pem -text -out private.txt

4、通过公钥进行加密

openssl rsautl -encrypt -in message.txt -inkey public.pem -pubin -out enmsg.txt

5、通过私钥进行解密

openssl rsautl -decrypt -in enmsg.txt -inkey private.pem -out demsg.txt

6、通过私钥进行加密

openssl rsautl -sign -in message.txt -inkey private.pem -out enmsg2.txt

7、通过公钥进行解密

openssl rsautl -verify -in enmsg2.txt -inkey public.pem -pubin -out demsg2.txt

通过终端显示加密解密过程:
1、创建私钥公钥:

create.png

2、查看私钥公钥:

overview.png

3、创建文本:

message.png

4、公钥对数据加密:

encode1.png

5、私钥解密:

decode1.png

6、私钥加密:

encode2.png

7、公钥解密:

decode2.png

来看看长什么样:

cer.png

这么看就很熟悉了。

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