天天看点

常用加密算法比较研究

信息加密技术是利用数学或物理手段,对电子信息在传输过程中

和存储体内进行保护,以防止泄漏的技术

由于计算机软件的非法复

制,通信的泄密

数据安全受到威胁,解密及盗版问题日益严重,甚至

引发国际争端,所以在信息安全技术中,加密技术占有不可替代的位

置,因此对信息加密技术和加密手段的研究与开发,受到各国计算机界

的重视,发展日新月异

现就几种常用的加密算法加以比较

信息加密技术是利用数学或物理手段,对电子信息在传输过程中和存储体内进行保护,以防止泄漏的技术。由于计算机软件的非法复制,通信的泄密、数据安全受到威胁,解密及盗版问题日益严重,甚至引发国际争端,所以在信息安全技术中,加密技术占有不可替代的位置,因此对信息加密技术和加密手段的研究与开发,受到各国计算机界的重视,发展日新月异。现就几种常用的加密算法加以比较。

1.DES

DES算法是由IBM公司研制的,并于1977年定为美国联邦信息

加密标准 它是一种分组密码,以64位为分组对数据加密,它的密钥

长度是56位(每个第8位作为奇偶校验),加密解密用同一算法

DES算法是对密钥进行保密,而公开算法,包括加密和解密算法

这样,只有掌握了和发送方相同密钥的人才能解读由DES算法加密的

密文数据 因此,破译DES算法实际上就是搜索密钥的编码 对于56

位长度的密钥来说,如果用穷举法来进行搜索的话,其运算次数为

256

随着计算机系统能力的不断发展,DES的安全性比它刚出现时会

弱得多,然而从非关键性质的实际出发,仍可以认为它是足够的 不过

,DES现在仅用于旧系统的鉴定,而更多地选择新的加密标准 高级

加密标准( AdvancedEncryptionStandard,AES )

2.AES

密码学中的高级加密标准 (Advanced Encryption Standard,

AES ),又称Rijndael加密法,为比利时密码学家JoanDaemen和

VincentRijmen所设计,结合两位作者的名字,以Rijndael命名 该

算法采用对称分组密码体制,密钥长度的最少支持为128 192 256,

分组长度128位,算法应易于各种硬件和软件实现 这种算法是美国

联邦政府采用的区块加密标准,这个标准用来替代原先的DES,已经

被多方分析且广为全世界所使用

AES算法被设计为支持128/192/256位(/32=Nb)数据块大小(即

分组长度);支持128/192/256 位(/32=Nk)密钥长度,在10 进制里,

对应3.4 1038 6.2 1057 1.1 1077个密钥

3.RSA

RSA是目前最有影响力的公钥加密算法,并且被普遍认为是目前

最优秀的公钥方案之一 RSA是第一个能同时用于加密和数字签名的

算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为

公钥数据加密标准 RSA算法基于一个十分简单的数论事实:将两个

大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,

因此可以将乘积公开作为加密密钥

4.BASE64

Base64是网络上最常见的用于传输8Bit字节代码的编码方式之

一,Base64编码可用于在HTTP环境下传递较长的标识信息 例如,

在JavaPers is tence 系统Hibernate 中,采用了Base64来将一个较

长的唯一标识符(一般为128- bit的UUID )编码为一个字符串,用作

HTTP表单和HTTPGETURL中的参数 在其他应用程序中,也常常

需要把二进制数据编码为适合放在URL(包括隐藏表单域) 中的形式

此时,采用Base64编码不仅比较简短,同时也具有不可读性,即所编

码的数据不会被人用肉眼所直接看到

这个编码的规则:1 )把3个字符变成4个字符;2 )每76个字符加一个换行符;3 )最后的结束符也要处理

5.MD5

Mes sage Diges tAlgorithmMD5 为计算机安全领域广泛使用的

一种散列函数,用以提供消息的完整性保护

对MD5算法简要的叙述可以为:MD5以512位分组来处理输入

的信息,且每一分组又被划分为16个32位子分组,经过了一系列的

处理后,算法的输出由四个32位分组组成,将这四个32位分组级联

后将生成一个128位散列值

MD5被广泛用于各种软件的密码认证和钥匙识别上 MD5用的

是哈希函数,它的典型应用是对一段信息( Mes sage ) 产生信息摘要

(Mes sage- Diges t ),以防止被篡改 MD5 的典型应用是对一段

Mes sage(字节串)产生fingerprint(指纹),以防止被 篡改 如果再有

一个第三方的认证机构,用MD5还可以防止文件作者的 抵赖 ,这

就是所谓的数字签名应用 MD5还广泛用于操作系统的登陆认证上,

如Unix 各类BSD系统登录密码 数字签名等诸多方

6.SHA1

SHA1( Secure HashAlgorithm ) 是和MD5 一样流行的消息摘

要算法 1995年,联邦信息处理标准( FIPS )发布了180- 1,作为安

全散列标准 180- 1出版的算法被定义为安全散列算法1( SHA1 ) 国

家标准技术研究所( NIST )和国家安全局( NSA )开发了SHA1算法

SHA1 算法模仿 MD4 算法 现在有一个更新 SHA1 算法的 FIPS

180- 2草案 SHA1设计为和数字签名算法( DSA )一起使用

SHA1 主要适用于数字签名标准 (Digital Signature Standard

DSS ) 里面定义的数字签名算法( DigitalSignature AlgorithmDSA )对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要

当接收到消息的时候,这个消息摘要可以用来验证数据的完整性 在传

输的过程中,数据很可能会发生变化,那么这时候就会产生不同的消息

摘要 。SHA1不可以从消息摘要中复原信息,而两个不同的消息不会产

生同样的消息摘要 这样,SHA1就可以验证数据的完整性,所以说

SHA1是为了保证文件完整性的技术

SHA1算法可以采用不超过264位的数据输入,并产生一个160

位的摘要 输入被划分为512位的块,并单独处理 160位缓冲器用

来保存散列函数的中间和最后结果 缓冲器可以由5 个32 位寄存器

( A B C D和E )来表示

SHA1是一种比md5的安全性强的算法,理论上,凡是采取 消

息摘要 方式的数字验证算法都是有 碰撞 的 也就是两个不同的

东西算出的消息摘要相同,互通作弊图就是如此 但是安全性高的算法

要找到指定数据的 碰撞 很困难,而利用公式来计算 碰撞 就更困

难 目前为止通用安全算法中仅有md5被破解

密码算法是密码技术的核心,以上这些密码算法是常用的密码算

法,而这些算法有些已经遭到破译,有些安全度不高,有些强度不明,

有些待进一步分析,有些需要深入研究,而神秘的密码算法世界,又会

有新的成员加入,期待更安全的算法诞生

继续阅读