一、加密算法的作用以及种类
数据加密的基本过程就是对原来为明文的文件或数据按某种算法,使其成为一段不可读的 “密文”,来达到保护数据不被非法阅读的目的。该过程的逆向即为解密。
加密算法分为对称加密和非对称加密两种。
对称加密就是加密和解密使用同一个密钥,这种加密技术在当今被广泛采用,如美国政府所采用的AES加密标准就是一种典型的“对称式”加密法,它提供128bits、192bits和256bits三种密钥长度。
非对称加密则需要一个密钥对,即公钥和私钥,这种加密技术应用于在不安全的网络中安全的传递数据。最常见的应用领域为访问网页和电子商务。
二、数据加密流程与强度
(一) 对称加密算法
使用对称加密算法加密明文类似于“锁门”的操作,使用与之相对应的钥匙即可解密获得明文。
AES是典型的对称加密算法,该算法由美国国家标准与技术研究院(National Institute of Standards and Technology,NIST)于2001年发布的高级加密标准(Advanced Encryption Standard)的简称,旨在取代1977年被美国联邦政府国家标准局确定为联邦资料处理标准(FIPS)的DES(Data Encryption Standard,数据加密标准),成为新一代的加密标准,现已广泛应用于各个领域。
原因是随着密码破译技术的发展和计算机运算水平的提高,使用56位密钥的DES算法已无法满足当今数据加密安全性的要求,在1997年举办的首届DES挑战赛中,来自科罗拉多州洛夫兰的洛克·沃瑟所带领的团队耗时96天成功破解DES密文,获得一万美金奖励。
1998年第二届DES挑战赛挑战者使用自己的个人计算机参与计算,共历时39天成功破译密文。为了响应第二届DES挑战赛的号召,电子前哨基金会建造了“深译”,总共花费不超过250,000美元。“深译”加入了1998年7月15日举行的复赛,仅用56小时成功破解了DES加密的消息,获得了10,000美元奖金。破译后得到“机密信息为:是时候让128位,192位与256位密钥登场了”(The secret message is: It’s time for those 128-, 192-, and 256-bit keys)。此次暴力破解攻击展现了破解DES是非常可行的计划,多数政府和大型企业完全有能力建造一台类似“深译”的机器。
一种安全性更高的加密标准亟待提出,最终NIST选择Rijndael算法作为AES算法。相比于DES算法密钥长度为56位,AES的密钥长度可以为128位、192位和256位三种。
暴力攻击又称为穷举攻击,即依次穷举每一个可能的密钥进行解密运算,直至找出正确的密钥,成功破解密码算法平均需要遍历一半的密钥空间。相对于DES加密算法56位的密钥大小,密钥个数总和约为7.206X10的16次方个。在每纳秒执行一万次破解尝试的情况下,仅需要约2小时时间即可完成全部组合的尝试。

截止2020年4月全球超级计算机算力最新排行榜为2019年11月公布的数据,前十名算力总和为742479万亿次浮点运算每秒,大概需要花费2^128/742479000000000000/3153600000000000(亿年秒数)约等于1453278亿年。
(二) 非对称加密算法
非对称加密算法则使用一个密钥对,分为公钥和私钥,公钥对外公开,私钥则相反。如用户A希望在不安全的网络中安全向的B传递数据,则首先需要从公网中下载B的公钥(Pub.B),通过非对称加密算法利用B的公钥Pub.B加密数据,此时的密文只有B的私钥(Pri.B)才可以解密数据。相对于对称加密算法,为防止“中间人”攻击,非对称加密算法还支持数字签名,即用户A在使用Pub.B加密数据时,可以使用自己的私钥Pri.A对密文进行数字签名,当用户B获取到密文时,可以先通过用户A的公钥Pub.A验证数字签名,如验证通过则证明数据未经非法篡改。
以最具代表性的RSA加密算法为例,RSA的安全性依赖于大数的因子分解,密钥长度每增加10位二进制数,分解的时间就要加长一倍。简要的说,如果对公钥中{m,e}中的m进行因子分解,且m的长度为200位,则一台每秒可以因子分解一亿次的高速计算机需要尝试380万年,现今超过2048位的密钥对才被认为拥有足够的强度。
三、日常实践
以访问网页为例,访问网页首先通过运行在TCP/IP协议之上的http超文本传输协议协议完成,为解决其数据的明文传送隐患和无法验证数据完整性的缺陷,在HTTP协议基础上加入SSL安全套接层,使之成为HTTPS超文本传输安全协议。其工作原理是使用非对称加密算法生成密钥对公钥和私钥,通过向公认的可信机构提交网站公钥(证书请求文件),机构通过非对称加密数字签名特性,使用机构的私钥对网站提交的公钥进行数字签名实现防篡改,网站拿到经签名的证书后搭配私钥使用。
用户访问该网站将会先通过握手获得网站支持的最高等级加密和通讯标准,获取并验证其证书数字签名有效性,验证证书与网站是否匹配,如均通过检查,则会生成一个随机数使用网站公钥(即证书)通过与公钥相匹配的非对称加密算法加密传回网站,后面在有效期的通讯均将使用效率更高的对称加密算法,通过随机数作为对称加密算法的密钥实现加密通讯。
发表回复