77百科网
当前位置: 首页 文学教育

rsa加密算法常见应用(每天一个算法RSA加密算法)

时间:2023-05-08 作者: 小编 阅读量: 1 栏目名: 文学教育

每天一个算法RSA加密算法昨天,心血来潮给大家分享了一个《每天一个算法——霍夫曼编码压缩算法》,大家的反应很好,挺感谢大家的支持今天,准备继续分享一个算法,我个人认为比较有意思,也比较重要RSA算法是一种

昨天,心血来潮给大家分享了一个《每天一个算法——霍夫曼编码压缩算法》,大家的反应很好,挺感谢大家的支持。今天,准备继续分享一个算法,我个人认为比较有意思,也比较重要。


RSA算法是一种"公钥加密算法"。早期的加密模式,就是加密和解密都是用同一种规则(密钥)。这种加密模式,就要求加密规则需要在双方进行传递,信息是很不安全的。在这种加密模式下的算法,也叫"对称加密算法"。而我们今天要讲的RSA算法,是一种"非对称加密算法",加密和解密使用不同的规则,只要这两种规则之间存在某种对应关系即可,这样就避免了直接传递密钥。

这种“非对称加密算法”的模式,信息交互方式如下:

在这种加密模式下,只要私钥不公开,通信就是安全的。


我自己今天看了挺久的加密原理,里面设计到一点数学,具体为什么就要这样做,我也不懂更深层次的原因,这里就讲点比较浅的东西。

  • 质数(素数)

  • 在大于1的自然数中,除了1和它本身以外不再有其他因数的数称为质数,也叫素数。

    如果两个数除了1以外,没有其他公因子,我们就称这两个数存在互质关系。比如,15和32没有公因子,所以它们之间有互质关系(不是质数也可以构成互质关系)。

    在数论中,对于正整数N,小于或等于N ([1,N]),且与N互质的正整数(包括1)的个数,记作φ(n)。

    任意两个数p、q,如果p、q存在互质关系,我们有φ(p*q) = (p-1)*(q-1)。这里就不证明了,举个例子就好。互质关系2、5,则φ(10)=1*4。结论,在1到10中,和10互质的正整数有4个(1,3,7,9)。

    如果两个互质数p,q,那么一定可以找到整数x,使得 qx-1被p整除,或者说qx被p除的余数是1。这时,x就叫做q的模反元素。(上面公式,可以变换求xqyp = 1,求x,这里y为负数)

    例子:互质数3、5,这里求5的模反元素,即5x3y = 1。可以口算一下,这里x=2,y=-3(或者x=5,y=-8)。可以看出模反元素不唯一,但一旦x确定,y也是确定的。


    上面提到的几个概念,大家反复推敲一下,RSA算法的密钥就是从这几个公式中推断出来。了解了上面的几个公式,下面我们来讲解RSA算法,获取到加密的公钥和私钥。

    1.随机选择两个不相等的质数p和q。

    这里我们选择p = 3 , q = 11。(实际应用中,这两个质数越大,就越难破解。)

    2.计算p和q的乘积n。

    n = p * q = 3 * 11 = 33

    3.计算n的欧拉函数φ(n)。

    φ(n) = (p - 1) * (q - 1) = 2 * 10 = 20

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

    我们选择与20互质的数,e=7(随机选择)。

    5.计算e对于φ(n)的模反元素d。

    这里要求7对于20的模反元素,可以有多个,我们计算出一个即可。

    公式7*d20*m = 1,求d。

    这里我们选择d=3,m=-1。(m这里没用)

    6.将n和e封装成公钥,n和d封装成私钥。

    这个例子中n=33,e=7,d=3,所以公钥就是 (33,7),私钥就是(33, 3)。


    有了公钥和私钥,我们就可以进行安全通信,公钥进行加密,私钥解密。但是RSA的算法可靠吗?下面我们来讨论一下。

    回顾一下上面密钥的生成步骤,总共出现了六个数字:

    在这六个数字中,公钥(33,7)用到了两个(n和e),其他四个数都是不公开的。其中最关键的数是d,因为n和d组成了私钥(33,3),假如d泄漏,就等于知道了n、d、e,密钥就泄露了。

    那么,有没有可能在知道n和e的情况下,推导出d?

    结论:假如n可以被因数分解,那么d就可以算出,也就意味着私钥被破解。

    对大整数进行因式分解,是一件很困难的事情,目前只有用暴力破解,就是一个一个去试。目前已知,被破解最长RSA密钥是768个二进制位。就是说,长度超过768位的密钥,还没有被人破解(至少没公开宣布)。因此可以认为,1024位的RSA密钥基本安全,2048位的密钥极其安全。

    举个例子,我们可以对33进行分解成11和3,但下面这个数你没办法分解:

    它等于下面两个质数的乘积:


    上面获取到了公钥和私钥,还没用他们加过密。这里来举例一下就好:

    公式上大家一一对照就好,具体数学原理这里不做解释了。大家感兴趣可以继续深入研究其背后的数学,我想着才是真正的数学之美。

      推荐阅读
    • 电压力锅做蛋糕的方法的做法(电压力锅做蛋糕的方法的做法介绍)

      电压力锅做蛋糕的方法的做法材料:鸡蛋4个,面粉、牛奶、白糖适量。打蛋后将蛋清分离。加一点盐,再放入一勺糖,开始打。当蛋清被打到起沫时,加入第二勺糖,继续打。在蛋黄里加入2勺糖、3勺面粉,6勺牛奶、搅动一会儿,成为糊状。将奶油状蛋清放入,上下搅动,使蛋清与蛋黄充分融合。电压力锅底部放少许油,将搅动好的糊糊倒入电压力锅,抖动锅,使气泡散出。按下煮饭键,25分钟后即可。

    • 冰箱冷藏室上面的12345是调什么的(冰箱冷藏室上面的12345是什么意思)

      冰箱冷藏室上面的12345是调什么的?12345是冷冻档位,1是高温,3是中低温,5是低温,我来为大家科普一下关于冰箱冷藏室上面的12345是调什么的?下面希望有你要的答案,我们一起来看看吧!数字式温控器的档位,不同档位对应着冰箱压缩机的工作时间。0档压缩机停止工作,7档压缩机一直工作不停机。夏季2~3;春秋季3~4;冬季4~5,当室温低于10°C时,温度补偿开关应打开、温控器调到6。

    • 如何简单入静(再谈入静的方法)

      再谈入静的方法这几天晚饭结束后,喜欢坐在桌旁,房间的灯关掉,将自己置身于黑暗的环境,双手放在膝上,静静的听着呼吸,慢慢的心绪稳定下来,半个小时后,气定神闲有时也会很难入静,只好拿出喜欢看的书,针对知识点反复不停的看。

    • s10阿bin剑姬五杀(S10决赛Bin逆天剑姬5杀)

      S10决赛Bin逆天剑姬5杀北京时间10月31日晚,2020英雄联盟全球总决赛在上海浦东足球场迎来了万众瞩目的决赛,由东道主LPL赛区三号种子SN对阵LCK赛区一号种子DWGSofM在第二局祭出“黑科技”狮子狗打野,帮助SN扳回。

    • 决胜法庭叶龙恩为什么这么做(居然还想做无罪辩护?)

      居然还想做无罪辩护?《决胜法庭》就要大结局了,这部剧演员阵容了得,但是因为宣传力度不够所以关注度不太高整部剧里演员的演技是没有问题的,剧情也很吸引人不过有些细节处还是做得不太到位,让观众们吐槽了不少如今的剧情里,大反派叶。

    • 社保卡余额怎么用(社保卡余额如何用)

      社保卡余额如何用工具/原料:手机、支付宝在手机里打开支付宝选择“更多”选项,打开选项卡在“更多”里面选择“城市服务”点击“城市服务”后,选择“电子社保卡”选项进入之后,点击选择“电子社保卡”进入之后,选择“医保支付”。

    • 就这样被你感动作文(就这样被你感动作文范文)

      就这样被你感动作文范文什么是感动?有人这样说,当你夜晚在灯下苦读时,母亲的一杯热牛奶是感动;当你心中寂寞无助时,朋友的探视、问候是感动;当你漂泊而归,站台前家人那痴痴等待的身影是感动……人间处处有真情,真情时时感人心那一次。

    • 海洋里的植物种类(海洋里那些巨大的植物)

      海洋里那些巨大的植物本文由黄老讲海洋原创首发,严禁转载!大家好,我是黄老讲海洋,上期我讲了海洋里的一些古老生物,今天就来讲一讲海洋里的一些有趣的植物吧!海底“森林”:巨藻海底与陆地相似,也有高山平原、沙漠和森林藻类是单细。

    • 乒乓球中最具有杀伤力的打法(百晓生乒器谱之常见乒乓球TOP10)

      乒乓百晓生综合江湖道友评价,市场销量,个人使用体验等因素,作出以下排名,供江湖同道品评探讨,不针对任何品牌和个人。TOP2:许绍发桶装红标金三星无缝球此款仅此于银河红三星。唯一遗憾之处是不如银河红三星那么好摩擦,击打较多的球友应该非常喜欢此款的手感,综合使用率,排名第二。

    • 江门市景点有哪些(广东省江门市八大著名景点)

      广东省江门市八大著名景点江门历史悠久,文化底蕴深厚,是广府文化的代表城市之一,是明代心学奠基者陈白沙、近代维新先驱梁启超、中国航空之父冯如故里;拥有世界文化遗产开平碉楼与村落,让大文豪巴金先生为之陶醉的小鸟天堂江门东邻中山、。