WannaCry是一种“蠕虫式”的勒索病毒软件,它使用AES-128和RSA加密算法
恶意加密用户软件以勒索比特币。AES-128和RSA算法本来是非常优秀的对称加密算法,用于加密通信信息避免被敌手获取,但在坏人手中却被用来恶意加密用户的文件,成了勒索工具。也正是因为AES-128和RSA的强大的安全性,导致至今除了像亡羊补牢一样修复系统漏洞避免感染之外没有彻底的解决办法。
那么AES和RSA又是何种利器,竟让全世界都束手无策?
要想了解AES和RSA,首先让我们一起来看看什么是加密,什么是密码学。
生活中我们经常会用到密码,打开电脑,登陆邮箱,QQ,微博等等,但其实这些密码并不是真正意义上的密码,只是口令(password)。密码学是研究保密通信的一门科学,它研究在不安全的环境中,如何把所要传输的信息在发给接收者之前进行秘密转换以防止第三者对信息的窃取。
密码学包括密码编码学和密码分析学,这两个分支形成既对立又统一的矛盾体,安全的密码机制促使更强大的分析方法的发展,而强大的分析方法又强迫更加安全的密码机制的诞生,二者在相互斗争中共同进步,所以说密码学的发展史汇聚了人类文明的聪明才智。
我们在讨论加密问题的时候都是基于一个通信模型,假设通信双方Alice和Bob通过一个不安全的信道进行通信,而攻击者Trudy一直在窃听他们之间的交流,这种窃听总是防不胜防,所以Alice和Bob需要将他们之间交流的消息处理成只有他们自己看得懂的“文字”,而在其他人眼中只是一堆乱码。
古典密码学主要使用替换的手段进行加密,最早的加密算法可以追溯到古罗马时期的凯撒大帝使用的凯撒密码和武王伐纣时的阴符阴书。其中凯撒密码是一种单表替换加密技术,明文中的所有字母都在字母表上向后(或向前)移动若干位,以下是一个向后移动13位的例子:
明文:goodgoodstudydaydayup
密钥:13
密文:tbbqtbbqfghqlqnlqnlhc
稍微复杂一些的还有多表替换的维吉尼亚密码。这种替换加密虽然乍看之下混乱无序,但通过统计手段就能恢复出密钥,比如统计密文字母的频率,并与自然语言中各个字母出现的频率相对比,从而揭示隐藏在乱序密文后面的加密规律。笔者第一次接触这种加密方法是在福尔摩斯探案集中《跳舞的小人》一章,里面介绍了用简单的小人图案来代替英文字母,福尔摩斯破译的方法就是频率分析法。