(1)非对称加密——全网最简单理解(带案例)

前言

看到这个“高大上”的名字,许多人是不是就准备放弃继续看下去了!且听我用“人话”细细道来。

第一个例子

据说康熙打仗时,就用到了加密技术(当然西方那就更早了),边疆将军将军情信息使用事先约定好的方法加密,皇帝使用同样的加密方法(俗称算法),解密[1]。这就是所谓的对称加密!顾名思义,加密和解密使用同样的方法(算法或密码)。而非对称加密,即,加密和解密使用的方法是不相同的。

非对称加密的例子

你心里想一个三位数,将其乘以91,将结果的后三位告诉我,我就能知道你心里想的数字是多少!
你心里想一个四位数,将其乘以73,将结果的后四位告诉我,我就能知道你心里想的数字是多少!
你心里想一个五位数,将其乘以11,将结果的后五位告诉我,我就能知道你心里想的数字是多少!
如:

(1)需要传输:251;加密:251*91=22841;传输的密文:841;解密:841*11=9251;获得实际数据(后三位):251
(2)需要传输:3697;加密:3697*73=269881;传输的密文:9881;解密:9881*137=9251;获得实际数据(后四位):3697
(3)需要传输:56841;加密:3697*11=625251;传输的密文:25251;解密:25251*9091=229556841;获得实际数据(后五位):56841
Excel的加密“软件”算法


此处我使用Excel做了一个简单的加密解密工具,使用链接:https://pan.baidu.com/s/1Va54Q2UHVuuJe_fy5EA-hA 提取码: ap6e
具体是什么原因,先卖个关子,待在文章结尾给大家揭晓。

实际的非对称加密——RSA

即将出现大家最讨厌的东西——概念!!
明文:需要加密的信息(如各类军事情报、银行数据等)
公钥:所有人都可以知道的加密密码(这个是最难理解的,也就是说:即使你知道了,也截获了传输中的信息,也是没有用)[2]
私钥:只有需要解密的一方才知道的绝对密码(这个肯定是保存在银行自己手里,其他人是断然不能让知道的!类似例子,你懂的!)
加密算法:就是具体将这些密码如何与需要传输的信息相互作用(需要一种方法的吧——如上例子中的两次乘法操作,实际中这两个方法不一定相同,显然,它很有可能是公开的)
密文:需要保密的数据——明文和密码相作用后的秘密信息(如你和女朋友的羞羞聊天记录——如果你有女朋友的话——传输路线上早被转换成二进制)
RSA加密原理:
此处为干货,需要带上你聪明的大脑!

非对称加密流程

关键技术:

(1)发生数据:Input
(2)加密方法F1:Input的e次方,再除以N得到余数C;
(3)传输的数据:C
(4)加密密码:e
(5)解密方法F2:C的d次方,再除以N,得到余数
(6)解密密码:d
(7)获得明文:output = d;
(8)关键核心:显然以上最关键的是,e,d和N是怎么来的。
1)选取两个质数(素数),P和Q,将其相乘,得N;
2)y=(P-1)*(Q-1);
3)选个数e,其要满足以下条件:比1大,比y小,且要和y互质
4)计算一个数d;其要满足以下条件:d =(y*k+1)/e;此处的k是任意一个整数,目的是让d为整数(显然只要的k会有很多,也就可以得到很多满足条件的d,我们只需要取其中一个就行!)

至此这个RSA加密的原理就全部完了,是不是还意犹未尽!实际也就这么简单,我们的现在几乎所有的银行系统、射频卡加密系统、XX加密系统都是这个原理。如果你发现这其中的漏洞,那恭喜你,马上就不愁吃住了——全球所有的大国情报系统都会争相把你保护起来——因为你动摇了这个星球的安全系统![3]

RSA安全性

关于此类的帖子到处都是,几乎每篇讲RSA的文章都会说,不再赘述。
在此只做注释,即,RAS的安全性在于,一个足够大的数如何分解质因数,如上即使你破解了C,也知道了N,但是,你如果无法求解出N到底由哪两个数(P和Q),y也就无从知晓,d自然无法求解,然后的然后......仍然后面是凉凉!
(大胆猜测:如果有人实现了一个足够大的数——如主流银行的1024或2048位——如何因式分解的方法,那RSA的安全性就瞬间崩塌了!!你要不要挑战呢?那就从黎曼猜想开始吧!)
其他非对称加密原理也大致如此,只是安全性的机理是其他内容罢了。

写在最后

最后向大家揭秘上面的第一个例子,为什么出现这么神秘的一对数字,加密方和解密方不相同,却可以实现加密与解密。奥秘在于:
91乘11=1001;
73乘137=10001;
11乘9091=100001;
其本质是,加密方和解密方使用的两个算法(乘法),等于原数乘以1,(因为末尾都是1,其余位为0,中间位为0,不影响除了3、4、5位的值),因而实现了非对称加密,是不是觉得非常easy!!
(动脑的小伙伴可以发现类似的许多数:1000001=9001乘101,这样似乎可以为0-999999的数据做此类的非对称加密——思考为什么是从0开始!?)
参考文献:
[1]https://www.bilibili.com/video/BV1GA411s7ZE
[2] https://www.cnblogs.com/btgyoyo/p/6245618.html
[3]https://www.bilibili.com/video/BV164411676m?from=search&seid=13745271747718316492
[4]https://www.bilibili.com/video/BV12Z4y1G7rY?from=search&seid=13745271747718316492
[5]https://www.bilibili.com/video/BV1cp4y197AM?from=search&seid=13745271747718316492
[6]https://www.bilibili.com/video/BV1kE411h7ui/?spm_id_from=autoNext

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rexinx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值