蓝盟IT外包聊聊:勒索病毒的加密武器-RSA加密

发布者:上海IT外包 来源:www.linemore.com

RSA加密,只要你使用vpn,访问过https网站,被勒索病毒攻击过,手机支付,使用网银,都离不开它。
RSA这3个字母,代表3位创立者——Ron Rivest、Adi Shamir、Leonard Adleman。
接下来我们用最通俗的方式讲讲:
1. 你有一种特制的小保险箱,与普通保险箱不同的地方是,锁保险箱用一把钥匙,开保险箱用另外一把钥匙。
2. 你经常会用这个小保险箱与合作伙伴传递重要的文件,你给每个合作伙伴一把上锁的钥匙和一个特质的开锁状态的小保险箱,合作伙伴把重要的文件放入保险箱,然后用专门上锁的钥匙锁上它发给你。
3. 你收到保险箱后,用另外一把只有你才有的专用钥匙打开保险箱,就可以看到保险箱里的文件了。
这个过程的关键点就是,对同一个保险箱来说,上锁和开锁用的是两把不同的钥匙,而常规的保险箱用的都是同一把钥匙上锁开锁。
所以常规方式的钥匙都叫“对称钥匙”,而RSA因为使用了不同的钥匙,所以叫“非对称钥匙”,或者“非对称加密”。
以上这段比喻过程实际的逻辑是这样的:
你要设计出一把公开钥匙,之所以公开,是为了让每个人都能复制这把钥匙,用来给自己发信息加密用。但这把钥匙,又一定不能解开加密过的信息。所以这一步,需要一种不可逆的函数运算,只能加密不能解密,你还得有一把私人钥匙,它是不公开的,而这把钥匙,可以解开保险箱的锁。
以下是原理说明,觉得枯燥的可以直接跳过。
你公开展示出来的公共钥匙,是通过两个比较大的素数a和b相乘得到的一个更大的数c得到的。a和b具体是多少,只要自己知道就行,千万不要告诉别人。而乘积c是公开的,谁都可以知道。凡是要给你发消息的人,都需要用c来加密。加密的过程用的是模运算,而且模就是c。整个数学过程会保证这个模运算不可逆,所以别人就算知道c也没用。
那你是怎么解密的呢?你解密时就不需要c了,而是要用到a和b的具体值,而这两个值别人都不知道,只有你自己知道。具体来说,你私下做的另外一个模运算中的模,不是刚才我们说的c,而是另外一个值(a-1)×(b-1)。所以,在这个公式中就必须要知道a和b到底是多少才行。至于为什么一定要是(a-1)×(b-1),不用纠结,数学原理保证这样操作能算出一把新钥匙,这把新的钥匙就是你自己的私钥。用这把私钥,一定可以解出原文。
你说,这样做就能保证安全吗?别人已经知道了一个大数c,他难道不能利用精巧的算法,找出c到底是由哪两个大的质数相乘得到的吗?不能的,这种不能是由数学保证的。c越大,找到a和b两个因数的时间就增加得越夸张。现在银行使用的RSA加密,都要求c是一个超过300位的大数。想分解这样一个数,大约需要把全球计算机的算力集中起来算上几亿年才行。
有人可能会问,为什么非要用两个大的质数相乘呢?用两个巨大的合数相乘得到c,想把这个c的因数找齐,不是也要很久吗?没错,是要很久。但这样做的话,最后算出的私钥也没法解出原文了。所以,找两个质数相乘,也是由数学决定的。
现在我们再来回头看,密码学发展的过程中,公开透明的部分越来越多。
到了第六代的RSA加密法,不但加密的操作公开了,连部分钥匙都公开了。而且公钥不是情不得已才公开的,而是越公开益处越大,因为这样才能有更多的人给你发加密消息。到了现在,唯一不能公开的就只有私钥。
以下是勒索病毒加密文件的原理,通过上文会了解到勒索病毒加密文件是通过公钥加密,而黑客手中持有私钥,只有获得私钥才可以解密,否则你通过计算机来计算一个大数c是由哪两个大质数相乘得来,可能要花几辈子!
 
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部