APP下载

常用数据加密算法分析及比较

2017-03-12左晓静谭会君

漯河职业技术学院学报 2017年2期
关键词:明文加密算法密文

左晓静, 谭会君

(漯河职业技术学院 信息工程系, 河南 漯河 462000)

常用数据加密算法分析及比较

左晓静, 谭会君

(漯河职业技术学院 信息工程系, 河南 漯河 462000)

数据加密算法是互联网安全技术中常用的方法之一。通过对常用的几种加密算法进行分析比较,总结出使用的注意事项、优缺点、适用场合,并对数据加密算法的未来发展进行分析,为混合数据加密算法的使用者提供参考。

数据加密;加密算法;RSA加密算法

0 引言

伴随着网络信息技术的发展,网络开始影响人们生活的各个方面,但随之而来的安全性要求也就越来越高。应用数据加密技术,既保证了人们在网络活动中对相关数据和资料的保密要求,又保证了网络的安全性和保密性。在电子商务、数字货币、网络银行等网络业务快速兴起的时代,数据加密技术作为数据安全的核心技术显得尤为重要。实现数据加密技术的主要方法是数据加密算法,也可以说加密算法是加密技术的基础[1],任何一种成熟的加密技术都需要建立多种加密算法组合,或者使加密算法与其他应用软件有机结合。加密算法是对信息进行编码和解码的技术,编码是把可读信息(明文)译成代码形式(密文),其逆过程就是解密。一个加密算法S可以用数学符号描述为

S={P, C, K, E, D}

其中,P——明文,表示全体可能出现的明文集合;C——密文,表示全体可能出现的密文集合;K——密钥,是加密算法中的可变参数;E——加密算法,由一些公式、法则或程序构成;D——解密算法,它是E的逆过程。

当给定密钥K时,各符号之间有如下关系:

(1)C=EK(P), 对明文P使用加密算法E和密钥K后得到密文C;

(2)P=DK(C)=DK(EK(P)), 对密文C解密后得明文P。

因此,加密设计主要是确定E、D、K。笔者对几种常用的加密算法进行分析和比较。

1 DES、AES加密算法

DES加密算法是一种分组密码[2],以64位为分组对数据加密,它的密钥长度是56位,加密、解密使用同一算法。DES加密算法是对密钥进行保密,而其算法是公开的,包括加密算法和解密算法。这样,只有掌握了和发送方相同密钥的人才能解读由DES加密算法所加密的密文数据。因此,破译DES加密算法实际上就是搜索密钥的编码。对于56位长度的密钥来说,如果用穷举法进行搜索的话,其运算次数为256。随着计算机运算能力的不断提高,DES的安全性比它刚出现时要弱得多,然而从非关键性质的实际出发,仍可以认为它是足够的。不过,DES目前仅用于旧系统的鉴定,而更多场合则选择新的加密标准。

AES加密算法是密码学中的高级加密标准[3],该加密算法采用对称分组密码体制,密钥长度的最少支持为128位、192位、256位,分组长度为128位,算法应易于各种硬件和软件实现。这种加密算法是美国联邦政府采用的区块加密标准,这个标准用于替代原先的DES,已经被多方分析且广为全世界所使用。AES加密算法被设计为支持128/192/256位数据块大小;支持128/192/256位密码长度,在10进制里对应3.4×1038、6.2×1057、1.1×1077个密钥。由于其密码较长,使得这种算法几乎无法被破解,所以AES是目前各种互联网使用比较多的加密算法。

2 RSA加密算法

RSA公开密钥密码体制[4]。所谓公开密钥密码体制,就是使用不同的加密密钥与解密密钥,是一种“不能由已知加密密钥推导出解密密钥”的密码体制。

在公开密钥密码体制中,加密密钥PK(即公开密钥)是公开信息,而解密密钥SK(即秘密密钥)是需要保密的。加密算法E和解密算法D也都是公开的。虽然解密密钥SK是由公开密钥PK决定的,但却不能根据PK计算出SK。正是基于这种理论,1978年出现了著名的RSA算法,它通常是先生成一对RSA 密钥,其中之一是保密密钥,由用户保存;另一个为公开密钥,可对外公开,甚至可在网络服务器中注册。为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位。这就使加密的计算量很大。为减少计算量,在传送信息时常采用传统加密方法与公开密钥加密方法相结合的方式,即信息采用改进的DES或IDEA对话密钥加密,然后使用RSA密钥加密对话密钥和信息摘要。对方收到信息后,用不同的密钥解密并可核对信息摘要。

RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA是得到最广泛研究的公钥算法,从提出到现今的三十多年内,经历了各种攻击的考验,目前已经逐渐为人们所接受,普遍认为是目前最优秀的公钥方案之一。

3 MD5加密算法

MD5是一个安全的散列算法,输入两个不同的明文不会得到相同的输出值,而根据输出值也不能得到原始的明文,即其过程不可逆。所以要解密MD5没有现成的算法,只能用穷举法,把可能出现的明文用MD5算法散列之后,把得到的散列值和原始的数据形成一个一对一的映射表,在表中通过比较来破解密码的MD5算法散列值,通过匹配从映射表中找出破解密码所对应的原始明文。简单的MD5加密是没有办法达到绝对安全的,因为普通的MD5加密有多种暴力破解方式。因此,如果想要保证信息系统或者网站的安全,需要对MD5进行改造,以增强其安全性。对信息系统或者网站系统来说,MD5算法主要用于用户注册口令的加密,而对于普通强度的口令加密,可以通过以下三种方式进行破解:

(1)在线查询密码。一些在线的MD5值查询网站可以提供MD5密码值的查询,输入MD5密码值后,如果在数据库中存在,那么就可以很快获取其密码值。

(2)使用MD5破解工具。网络上有许多针对MD5破解的专用软件,通过设置字典进行破解。

(3)通过社会工程学来获取或者重新设置用户的口令。

MD5加密算法有一定的安全性,加之也可以免费使用该算法,因此该加密算法已被广泛使用。MD5算法主要用于数字签名、文件完整性验证以及口令加密等方面。

4 IDEA加密算法

IDEA(International Data Encryption Algorithm)在密码学中属于数据块加密算法(Block Cipher)类。IDEA使用长度为128bit的密钥,数据块大小为64bit。从理论上讲,IDEA属于“强”加密算法,至今还没有出现对该算法的有效攻击算法。IDEA是一种由8个相似圈(Round)和一个输出变换(Output Transformation)组成的迭代算法。IDEA的每个圈都由如下三种函数组成:模(216+1)乘法、模216加法和按位XOR。在加密之前,IDEA通过密钥扩展(Key Expansion)将128bit的密钥扩展为52Byte的加密密钥EK(Encryption Key),然后由EK计算出解密密钥DK(Decryption Key)。EK和DK分为八组半密钥,每组长度为6Byte,前八组密钥用于8圈加密,最后半组密钥(4Byte)用于输出变换。IDEA的加密过程和解密过程是一样的,只不过使用不同的密钥(加密时用EK,解密时用DK)。密钥扩展的过程如下:

(1)将128bit的密钥作为EK的前8byte;

(2)将前8byte循环左移25bit,得到下一8byte,将这个过程循环7次;

(3)在第7次循环时,取前4byte作为EK的最后4byte;

(4)至此52byte的EK生成完毕。

目前IDEA在工程中已有大量应用实例,PGP(Pretty Good Privacy)就使用IDEA作为其分组加密算法;安全套接字层SSL(Secure Socket Layer)也将IDEA包含在其加密算法库SSLRef中;IDEA算法专利的所有者Ascom公司也推出了一系列基于IDEA算法的安全产品,包括基于IDEA的Exchange安全插件、IDEA加密芯片、IDEA加密软件包等。

5 Blowfish加密算法

Blowfish算法是一个64位分组及可变密钥长度的对称密钥分组密码算法,可用来加密64比特长度的字符串。该算法的核心在于子密钥生成,它将变长密钥扩展成总长4168 Byte的子密钥数组。算法中使用了大量的子密钥,而子密钥又依赖于用户密钥,实际加密、解密过程中使用的是更新后的子密钥数组,子密钥即P数组和S盒。Blowfish算法有一个核心加密函数,即

BF_En()

该函数的输入是64位明文信息,经过运算,以64位密文信息的形式输出。用Blowfish算法加密信息,需要两个过程,即密钥预处理和信息加密。同样,解密亦需要两个过程,即密钥预处理和信息解密。Blowfish算法的源密钥——pbox和sbox是固定的,而我们要加密一个信息,需要自己选择一个key,用这个key对pbox和sbox进行变换,得到下一步信息加密所要用的key_pbox和key_sbox。解密亦是如此,由于Blowfish是对称加密算法,解密方在得到key后根据key生成解密所需要的key_box和key_sbox。对同一个信息进行加密、解密,选取不同的key会导致不同的密文。因此,Blowfish算法的关键在于key的选择及其保密。它的另一个特点是在每一轮中同时对两部分文件加密,增加了密码的强度。该加密算法用c语言和汇编语言实现起来都较为方便。

6 结束语

各种加密算法在实际应用中都有各自的优点及缺点,随着互联网技术的发展,它们迟早都会被淘汰。近年来,混沌学理论以及充满生机的量子密码,被认为是潜在的发展方向,对于在光纤通信中加强信息安全、对付拥有量子计算能力的破译,无疑是一种理想的解决方案。

[1] 路安平,杨济民,李锋,等.几种轻量级加密算法的比较研究[J].现代电子技术,2014(12).

[2] 刘平.基于混沌理论和DES的图像加密算法[J].计算机与现代化,2013(8).

[3] 张尧,叶玲.基于AES的WSN加密算法[J].计算机工程与设计,2015(3).

[4] 石井,吴哲,谭璐,王昊鹏,王娜.RSA数据加密算法的分析与改进[J].济南大学学报(自然科学版),2013(3).

[责任编辑 吴保奎]

Analysis and Comparison of Common Data Encryption Algorithms

ZUO Xiao-jing, TAN Hui-jun

(Luohe Vocational Technology College, Luohe 462000, China)

Data encryption algorithm is one of the commonly used methods in internet security technology. In this paper, several common encryption algorithms are analyzed and compared, and the attention items, advantages and disadvantages, and application occasions are summarized, and the future development of the data encryption algorithm is analyzed. It provides a good reference for the use of mixed data encryption algorithm.

data encryption; encryption algorithm; RSA encryption algorithm

2016-11-26

左晓静(1979-),女,河南漯河人,讲师,主要从事计算机网络与网络编程方面的教学和研究。

10.3969/j.issn.1671-7864.2017.02.008

TN918.1

A

1671-7864(2017)02-0027-03

猜你喜欢

明文加密算法密文
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
基于整数矩阵乘法的图像加密算法
奇怪的处罚
混沌参数调制下RSA数据加密算法研究
一种基于密文分析的密码识别技术*
一种基于密文分析的密码识别技术*
奇怪的处罚
基于小波变换和混沌映射的图像加密算法
四部委明文反对垃圾焚烧低价竞争