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,但下面这个数你没办法分解:

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


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

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

      推荐阅读
    • 以家人之名电视剧经典句子(以家人之名电视剧经典句子有哪些)

      以家人之名电视剧经典句子?以下内容希望对你有帮助!因为分开,我们变得陌生,变得无话可说,他们有了新的朋友,也有了新的梦想。不姓一个姓,咱们也是一家子啊。有血缘的不一定能成为家人,但是互相爱护的人,一定可以。我,李尖尖今天来例假了!大难临头我们各自飞,你回你家找你亲妈,我回我家找我亲爸!我们一个赛一个混蛋!哥,你的被子上有你身上的味道,好香啊。

    • 网络安全人才持续增长(打赢网络安全人才争夺战的四个关键策略)

      打赢网络安全人才争夺战的四个关键策略网络安全人才短缺问题已经困扰企业多年人才荒,依然是制约网络安全发展的最大瓶颈之一在全球远程办公常态化、网络犯罪和数据泄露事件频发、地缘冲突加剧、高级持续威胁活动猖獗、政府企业数字化转型安全需求不断增长。

    • 微信压缩包怎么打开(微信压缩包如何打开)

      微信压缩包如何打开首先打开手机微信,点开收到的压缩包文件打开压缩文件之后,在页面下方有个用其他应用打开打开用其他应用打开之后在页面下方弹出的应用选择框里选择拷贝到QQ邮箱点击拷贝到QQ邮箱,然后就会自动转到手机QQ邮箱。

    • 守住男人心的方法(妖精都会用的几个)

      妖精都会用的几个01聪明女人,是最懂男人心理的把握好男人的心理,你就知道男人在想什么?男人需要什么?以及怎么给予男人想要的?不论是婚姻,还是恋爱,知己知彼,才能百战不殆那聪明女人,到底是怎么“勾引”男人的?1适当装无。

    • 为虎添翼的意思(为虎添翼的出处)

      为虎添翼的出处为虎添翼,汉语成语,拼音是wèihǔtiānyì,意思是替老虎加上翅膀;比喻帮助坏人,增加恶人的势力出自《逸周书·寤敬篇》:“毋为虎傅翼,将飞入邑,择人而食之”成语用法:偏正式;作谓语;含贬义。

    • 减肥可以喝星巴克吗(减肥期可以喝星巴克饮品吗)

      减肥期可以喝星巴克饮品吗俗话说,减肥的人没朋友确实是这样,一个人本来打算好不吃这个不吃那个但是,只要朋友一句话,立马就将减肥抛到身后,和朋友愉快地买杯星爸爸逛逛街所以真正要减肥的人不仅要自己下决心,还要禁得住那些瘦子朋友的诱。

    • 梦是连接平行宇宙的桥(几十年来做梦都想有座桥......)

      以下内容大家不妨参考一二希望能帮到您!梦是连接平行宇宙的桥暖春时节,走进水城县营盘乡红德村,红心柚、猕猴桃、刺梨等特色产业,随山势和海拔变化遍布田间地头,焕发勃勃生机。一条条宽阔平坦的水泥通村通组公路,蜿蜒伸展直通农家院落,错落有致的民居掩映于青山绿水之间,显得格外闲适宁静,勤劳、淳朴的村民,一边劳作一边不时发出欢声笑语,幸福感泉涌而出。

    • 带你看苹果往年发布会的新品汇总(苹果发布会新品价格开售时间一文汇总)

      苹果发布会新品价格开售时间一文汇总【手机中国新闻】备受瞩目的苹果新品发布会终于在9月8日正式召开,iPhone、AirPods、AppleWatch是本场发布会的三个主题在此次的发布会上,苹果带来了包括iPhone14系列、全新Air。

    • 厨师机和烘焙机有什么不同(烘培小白买了厨师机不会用)

      烘培小白买了厨师机不会用哈喽,我是M慢性子,一个厨房器材党厨艺不够,设备来凑,在我们的烘焙中,一款好用的设备能为我们能让我们的出品稳定的同时,效率也加倍而厨师机就是我们烘焙中不可或缺的设备,但如果选择不当,即使用了厨师机,仍。

    • 显卡有什么用(显卡的作用)

      显卡的作用显卡的主要作用是将CPU提供的指令和数据进行相应的处理变成显示器能够接受的文字或图象后显示出来以便为用户继续运行或终止程序提供依据通俗点,显卡在你玩大型3D游戏时发挥着不可替代的作用,显卡越高端,玩3。