百摩网
当前位置: 首页 生活百科

rsa的加密和解密(非对称加密RSA算法原理)

时间:2023-06-28 作者: 小编 阅读量: 2 栏目名: 生活百科

非对称加密又称为公钥加密,RSA只是公钥加密的一种。签名的作用有两个,一个是身份验证,一个是数据完整性验证。当然,不经过CA机构,由自己完成签名的证书称为自签名证书。CA机构作为互联网密码体系中的基础机构,拥有相当高级的安全防范能力,所有的证书体系中的基本条件就是CA机构的私钥不被窃取。换言之,对一极大整数做因数分解愈困难,RSA算法愈可靠。所以实际使用中的1024位秘钥基本安全,2048位秘钥绝对安全。

加密和解密使用的是两个不同的秘钥,这种算法叫做非对称加密。非对称加密又称为公钥加密,RSA只是公钥加密的一种。

数字签名 && 数字证书

现实生活中有签名,互联网中也存在签名。签名的作用有两个,一个是身份验证,一个是数据完整性验证。数字签名通过摘要算法来确保接收到的数据没有被篡改,再通过签名者的私钥加密,只能使用对应的公钥解密,以此来保证身份的一致性。

数字证书是将个人信息和数字签名放到一起,经由CA机构的私钥加密之后生成。当然,不经过CA机构,由自己完成签名的证书称为自签名证书。CA机构作为互联网密码体系中的基础机构,拥有相当高级的安全防范能力,所有的证书体系中的基本条件就是CA机构的私钥不被窃取。

CA证书的生成过程如下:

证书参与信息传递完成加密和解密的过程如下:

欧拉函数

互质关系:互质是公约数只有1的两个整数,1和1互质,13和13就不互质了。 欧拉函数:表示任意给定正整数 n,在小于等于n的正整数之中,有多少个与 n 构成互质关系,其表达式为:

其中,若P为质数,则其表达式可以简写为:

情况一:φ(1)=1;

1和任何数都互质,所以φ(1)=1;

情况二:n 是质数, φ(n)=n-1;

因为 n 是质数,所以和小于自己的所有数都是互质关系,所以φ(n)=n-1;

情况三:如果 n 是质数的某一个次方,即 n = p^k ( p 为质数,k 为大于等于1的整数),则φ(n)=(p-1)p^(k-1);

因为 p 为质数,所以除了 p 的倍数之外,小于 n 的所有数都是 n 的质数;

情况四:如果 n 可以分解成两个互质的整数之积,n = p1 × p2,则φ(n) = φ(p1p2) = φ(p1)φ(p2);

比如,φ(30)=φ(5×6)=φ(5)×φ(6)=4×2=8。此种情况可以通过"中国剩余定理"证明,证明过程不再本文讨论范围内。

情况五:基于情况四,如果 p1 和 p2 都是质数,且 n=p1 × p2,则φ(n) = φ(p1p2) = φ(p1)φ(p2)=(p1-1)(p2-1)

例如,φ(39) = φ(3×13) = φ(3)φ(13)=2 × 12 = 14;

而 RSA 算法的基本原理就是欧拉函数中的第五种情况,即: φ(n)=(p1-1)(p2-1);

模反元素

如果两个正整数 a 和 n 互质,那么一定可以找到整数 b,使得 ab-1 被 n 整除,或者说ab被n除的余数是1。这时,b就叫做a的“模反元素”。欧拉定理可以用来证明模反元素必然存在。

可以看到,a的 φ(n)-1 次方,就是a对模数n的模反元素。

RSA算法原理

1、随机选择两个质数并计算乘积

n=p x q = 3233,3233写成二进制是110010100001,一共有12位,所以这个密钥就是12位。

在实际使用中,一般场景下选择1024位长度的数字,更高安全要求的场景下,选择2048位的数字,这里作为演示,选取p=61和q=53;

2、计算n的欧拉函数φ(n)。

因为n、p、q都为质数,所以φ(n) = (p-1)(q-1)=60×52= 3120

3、随机选择一个整数e,条件是1< e < φ(n),且e与φ(n) 互质。

1< e <3120,注意,这里是和φ(n) 互互质而不是n!假设选择的值是17,即 e=17;

4、计算e对于φ(n)的模反元素 d

模反元素就是指有一个整数 d,可以使得 ed 被 φ(n) 除的余数为1。表示为:(ed-1)=φ(n) y --> 17d=3120y 1,算出一组解为(2753,15),即 d=2753,y=-15,也就是(17 2753-1)/3120=15。

注意,这里不能选择 3119,否则公私钥相同.

5、生成结果

公钥:(n,e)=(3233,2753) 私钥:(n,d)=(3233,17)

为什么无法破解

公钥是公开的,也就是说 m=p*q=3233 是公开的,那么怎么求 e ?e 是通过模反函数求得,17d=3120y 1,e是公开的等于 17,这时候想要求d就要知道 3120,也就是 φ(n),也就是 φ(3233),说白了,3233 是公开的,你能对 3233 进行因数分解,你就能知道 d,也就能破解私钥。

正常情况下,3233 我们可以因数分解为 61*53,但是对于很大的数字,人类只能通过枚举的方法来因数分解,所以RSA安全性的本质就是:对极大整数做因数分解的难度决定了 RSA 算法的可靠性。换言之,对一极大整数做因数分解愈困难,RSA 算法愈可靠。

人类已经分解的最大整数是:

这个人类已经分解的最大整数为 232 个十进制位,768 个二进制位,比它更大的因数分解,还没有被报道过,因此目前被破解的最长RSA密钥就是 768 位。所以实际使用中的 1024 位秘钥基本安全,2048 位秘钥绝对安全。

    推荐阅读
  • 廉租房跟公租房具体有多少差别(廉租房和公租房有什么差别)

    廉租房是指政府以租金补贴或实物配租的方式向符合城镇居民生活保障标准且住房困难的家庭提供社会保障性质的住房。公租房一般是政府出资建房低租金租给租户。因特殊原因需转让的由政府以购房价加利息回购再作为公租房流转使用。廉租房月租金标准约为0812元平方米。而公租房则根据地段不同租金也有变化一般是同地段同品质房屋的60.不同城市公租房和廉租房租金缴纳金额不同具体依据本地政策执行。

  • 清香饼做法(清香鸡蛋饼这样做真好吃)

    下面希望有你要的答案,我们一起来看看吧!清香饼做法主料:鸡蛋6个、肉末250克。辅料:藕150克、盐15克、油30克。把剁成茸的藕放入肉末中,加入盐,一起搅拌。锅烧热,小火,倒入3g油,待油冒小烟后,倒入一勺鸡蛋,等鸡蛋煎得差不多,放入一小块肉末。用锅铲沿着鸡蛋的一边对折,保证肉都要鸡蛋里面,防止肉没有包好,以此类推下面的蛋饼也是这样操作把所有煎好的蛋饺再放到锅中蒸上10分钟即可。

  • 包饺子面硬了怎么办(包饺子面硬了如何解决)

    以下内容大家不妨参考一二希望能帮到您!包饺子面硬了怎么办饺子面和硬了最好的方法就是继续吸水。最好的方法是用一个带笼屉的锅,里面装适量的水,先把水烧热,直到冒出蒸汽为止,然后把火关掉,把饺子面放到笼屉上,把锅盖盖上。饺子面和好之后就可以擀面皮做成饺子皮,包入自己喜欢吃的馅料放入蒸锅蒸熟,一道美味的饺子就做好了。

  • 吹口琴的最好方法(吹口琴的正确方法)

    呼吸采用胸腹联合呼吸,即运用胸腔、横膈膜和腹部肌肉共同控制气息的呼吸。这种方法的优点是,可以充分发挥呼吸器官的作用,使胸腔扩大,增大气息的容量,便于对气流进行调节。这样,即便减少换气,也能使吹奏圆滑而轻松。换气,应预先设计好乐曲应换气的地方,并采用嘴鼻一起呼吸。主要应用于乐曲的旋律连续的吹或吸时,感到气量不够的地方。需换气的地方应在乐谱上做好记号。要善于发现规律,来解决好运气的问题。

  • 数字7的写法田字格(数字7的写法田字格怎么写规范)

    跟着小编一起来看一看吧!阿拉伯数字由0,1,2,3,4,5,6,7,8,9共10个计数符号组成,阿拉伯数字最初由古印度人发明,后由阿拉伯人传向欧洲,之后再经欧洲人将其现代化,人们以为是阿拉伯发明,所以人们称其为“阿拉伯数字”。采取位值法,高位在左,低位在右,从左往右书写。借助一些简单的数学符号,这个系统可以明确的表示所有的有理数。为了表示极大或极小的数字,人们在阿拉伯数字的基础上创造了科学记数法。

  • 冯太后和拓跋宏的故事(两朝风云二九冯太后与拓跋弘有什么仇恨)

    实际上冯太后并不是拓跋弘的亲生母亲,而是拓跋弘的嫡母。按理说虽然这对母子并非亲生,但关系应该是很密切的。一股是随鲜卑族南下入侵中原的北方少数民族各部,其中以匈奴各部的数量和势力最大。胡人贵族的代言人是皇太子拓跋晃,而汉族门阀士族的代言人是大臣崔浩。但是在拓跋焘末年南征刘宋铩羽而归后,国力在多次用兵中出现空虚,使得国家政局出现了动荡的隐患。冯太后是拓跋濬皇后,也是北魏第一个汉族出生的正宫皇后。

  • 长笛指的是什么笛子(长笛简介)

    我们一起去了解并探讨一下这个问题吧!长笛指的是什么笛子长笛是现代管弦乐和室乐中主要的高音旋律乐器,外型是一根开有数个音孔的圆柱型长管。早期的长笛是乌木或者椰木制,现代多使用金属的材质,比如比较低级的黄铜、白铜,普通的镍银合金到专业型的银合金,9K、14K、18K、20K、24K金和铂金长笛等。

  • 周瑜和诸葛亮的关系(周瑜和诸葛亮是什么关系)

    周瑜和诸葛亮的关系诸葛亮与周瑜是对手关系。继又击败曹军,夺得汉中。后主刘禅继位,诸葛亮被封为武乡侯,领益州牧。周瑜:周瑜少与孙策交好,21岁起随孙策奔赴战场平定江东,后孙策遇刺身亡,孙权继任,周瑜将兵赴丧,以中护军的身份与长史张昭共掌众事。建安十三年,周瑜率军与刘备联合,于赤壁之战中大败曹操,由此奠定了“三分天下”的基础。建安十五年病逝于巴丘,年仅36岁。

  • 丙烯颜料干了怎么洗(丙烯颜料干了怎么洗教程)

    已经干透的丙烯的话,普通的衣物最好用酒精进行擦洗可以的话最好选择浓度高些的,很多商店都售卖酒精,而且几块钱就能买到一瓶如果没有的话,可以用白酒代替,今天小编就来聊一聊关于丙烯颜料干了怎么洗?丙烯颜料干了怎么洗已经干透的丙烯的话,普通的衣物最好用酒精进行擦洗。汽油是一种很好的溶剂,而且挥发性很强,很适合清洗特殊污渍的衣服。用吸管或者其他工具把汽油滴在丙烯处,辅助以揉搓,就可以帮助我们清洗丙烯颜料了。

  • 西玛杜鹃怎么养(西玛杜鹃的养殖技巧)

    接下来我们就一起去研究一下吧!西玛杜鹃怎么养养殖西玛杜鹃花需要用疏松肥沃的土壤,一般用泥炭土、腐叶土和煤渣进行配制,保证土壤有良好的排水性。由于植株怕热,因此夏季一定要适当遮阴,避免受到强光照射,冬季则要放到光照充足的地方。浇水要勤,保持盆土的湿润。生长期可以薄肥勤施,多选用复合肥。