加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 服务器 > 安全 > 正文

被“鼹鼠”支配的恐惧

发布时间:2017-05-16 16:23:00 所属栏目:安全 来源:雷锋网
导读:副标题#e# 本文作者:我们(letshome)编辑实习小苏,对一切未知事物充满好奇,偶尔毒舌 说起Mole,你会想到什么?化学单位“摩尔”?萌物“鼹鼠”?抑或是“间谍”? 还记得小时候非常喜欢的一部捷克动画片,名字叫《鼹鼠的故事》。发生在那个灵动的小东西身

非对称加密算法不同于对称加密,它的密钥不是一个,而是两个(一对)。比如有两个密钥S1和S2,一段信息以S1加密后是不能通过S1来解的,只能通过S2来解密。同理,被S2加密的信息也只能通过S1来解密。S1和S2则被称为“公钥”与“私钥”。

一对密钥像是难以分割的小情侣,有且仅有彼此才能实现人生大和谐。

那么RSA加密算法又是怎么工作的呢?

RSA算法基于一个十分简单的数论事实:将两个大质数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。

而想要生成一对RSA密钥,则需要三个参数:n、d、e。(下面这一段为数学算法,不感兴趣的同学可以略过)

选择两个质数 p 和 q,它们的乘积就是 n。

假设 p = 29, q = 31, 则 n = p * q = 899。

计算 φ = ( p - 1 ) * ( q - 1 ) = 840。

再选择一个比 φ 小且与 φ 互质的数,作为 e。

选择 e = 37。

找到一个数 d,使 e * d % φ = 1。

算出来最小的 d 就是 613。

现在,得到了 n, d, e ,把 p 和 q 扔掉,(n, e)作公钥,(n, d)作私钥,就可以执行 RSA 加密运算了。

如果把(899, 37)作为公钥发出去了,看到这个公钥的人一定不能算出 d 值吗?

由上面的密钥算法可知,要算出 d,必须先知道 φ。

那么由 n 和 e 能算出 φ 来吗?e 是随便选的,只须考虑 n。

n = p * q

φ = ( p - 1 ) * ( q - 1 ) = n - p - q + 1

如果不知道 p 和 q,就不可能从 n 算出 φ。

那么将 n 分解质因数,不就能得到 p 和 q 了吗?幸好,这个运算虽然能够成立,将 899 分解为 29 * 31 也不太难,但对于一个实际使用的 1024 位或者更大的 n,计算的速度会慢到无法实现。

例如,n = 186506401784256749805468037221367015183

你能分解它吗?这个 n 还只是 128 位的。

(以上算法环节来自guideep)

而RSA-1024就是1024位的。“鼹鼠爸爸”们则是用RC4加密了文件本身及文件名,又用RSA-1024加密法加密了RC4加密法的密钥。而他们这么做的原因在于RSA加密法本身无法加密如此多的文件,而RC4可以。不得不说,这种俄罗斯套娃般的加密方式直叫人感叹人生之多艰。

被“鼹鼠”支配的恐惧

珍爱生命,远离流氓

连勒索软件的设计者都知道狡兔三窟的道理,我们作为遨游在赛博世界的一员多少还是得有点儿自保意识的。重要数据时时做好备份是必须的,真中招了我们也可以潇洒的给绑匪们发个问候家人的邮件,然后保持淡定的心态重做系统,不至于在屏幕这头跳脚骂娘。

如果想要从源头解决问题,方法也很简单

被“鼹鼠”支配的恐惧

---The End---

,。

被“鼹鼠”支配的恐惧

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读