现在的位置: 首页 > 综合 > 正文

加密算法介绍及如何选择加密算法

2013年09月12日 ⁄ 综合 ⁄ 共 2715字 ⁄ 字号 评论关闭
 

加密算法介绍

褚庆东

一.          密码学简介

据记载,公元前400年,古希腊人发明了置换密码。1881年世界上的第一个电话保密专利出现。在第二次世界大战期间,德国军方启用“恩尼格玛”密码机,密码学在战争中起着非常重要的作用。

随着信息化和数字化社会的发展,人们对信息安全和保密的重要性认识不断提高,于是在1997年,美国国家标准局公布实施了“美国数据加密标准(DES)”,民间力量开始全面介入密码学的研究和应用中,采用的加密算法有DESRSASHA等。随着对加密强度需求的不断提高,近期又出现了AESECC等。

使用密码学可以达到以下目的:

保密性:防止用户的标识或数据被读取。

数据完整性:防止数据被更改。

身份验证:确保数据发自特定的一方。

二.          加密算法介绍

根据密钥类型不同将现代密码技术分为两类:对称加密算法(秘密钥匙加密)和非对称加密算法(公开密钥加密)。

对称钥匙加密系统是加密和解密均采用同一把秘密钥匙,而且通信双方都必须获得这把钥匙,并保持钥匙的秘密。

非对称密钥加密系统采用的加密钥匙(公钥)和解密钥匙(私钥)是不同的。

对称加密算法

对称加密算法用来对敏感数据等信息进行加密,常用的算法包括:

DESData Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合。

3DESTriple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高。

AESAdvanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高;

AES

200010月,NIST(美国国家标准和技术协会)宣布通过从15种侯选算法中选出的一项新的密匙加密标准。Rijndael被选中成为将来的AES Rijndael是在 1999 年下半年,由研究员 Joan Daemen Vincent Rijmen 创建的。AES 正日益成为加密各种形式的电子数据的实际标准。

美国标准与技术研究院 (NIST) 2002 5 26 日制定了新的高级加密标准 (AES) 规范。

算法原理

AES 算法基于排列和置换运算。排列是对数据重新进行安排,置换是将一个数据单元替换为另一个。AES 使用几种不同的方法来执行排列和置换运算。

AES 是一个迭代的、对称密钥分组的密码,它可以使用128192 256 位密钥,并且用 128 位(16字节)分组加密和解密数据。与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。通过分组密码返回的加密数据的位数与输入数据相同。迭代加密使用一个循环结构,在该循环中重复置换和替换输入数据。

AES3DES的比较

算法名称

算法类型

密钥长度

速度

解密时间(建设机器每秒尝试255个密钥)

资源消耗

AES

对称block密码

128192256

1490000亿年

3DES

对称feistel密码

112位或168

46亿年

非对称算法

常见的非对称加密算法如下:

RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的;

DSADigital Signature Algorithm):数字签名算法,是一种标准的 DSS(数字签名标准);

ECCElliptic Curves Cryptography):椭圆曲线密码编码学。

ECC

1976年,由于对称加密算法已经不能满足需要,Diffie Hellman发表了一篇叫《密码学新动向》的文章,介绍了公匙加密的概念,由RivetShamirAdelman提出了RSA算法。

随着分解大整数方法的进步及完善、计算机速度的提高以及计算机网络的发展,为了保障数据的安全,RSA的密钥需要不断增加,但是,密钥长度的增加导致了其加解密的速度大为降低,硬件实现也变得越来越难以忍受,这对使用RSA的应用带来了很重的负担,因此需要一种新的算法来代替RSA

1985N.KoblitzMiller提出将椭圆曲线用于密码算法,根据是有限域上的椭圆曲线上的点群中的离散对数问题ECDLPECDLP是比因子分解问题更难的问题,它是指数级的难度。

原理——椭圆曲线上的难题

 椭圆曲线上离散对数问题ECDLP定义如下:给定素数p和椭圆曲线E,对QkP,在已知PQ 的情况下求出小于p的正整数k。可以证明由kP计算Q比较容易,而由QP计算k则比较困难。

将椭圆曲线中的加法运算与离散对数中的模乘运算相对应,将椭圆曲线中的乘法运算与离散对数中的模幂运算相对应,我们就可以建立基于椭圆曲线的对应的密码体制。

例如,对应Diffie-Hellman公钥系统,我们可以通过如下方式在椭圆曲线上予以实现:在E上选取生成元P,要求由P产生的群元素足够多,通信双方AB分别选取abab 予以保密,但将aPbP公开,AB间通信用的密钥为abP,这是第三者无法得知的。

对应ELGamal密码系统可以采用如下的方式在椭圆曲线上予以实现:

将明文m嵌入到EPm点,选一点BE,每一用户都选一整数a0aNN为阶数已知,a保密,aB公开。欲向Am,可送去下面一对数偶:[kBPm+k(aAB)],k是随机产生的整数。A可以从kB求得k(aAB)。通过:Pm+k(aAB)- k(aAB)=Pm恢复Pm。同样对应DSA,考虑如下等式:

K=kG  [其中 KGEp(a,b)上的点,k为小于nn是点G的阶)的整数]

不难发现,给定kG,根据加法法则,计算K很容易;但给定KG,求k就相对困难了。

这就是椭圆曲线加密算法采用的难题。我们把点G称为基点(base point),kk<nn为基点G的阶)称为私有密钥(privte key),K称为公开密钥(public key)

ECCRSA的比较

ECCRSA相比,在许多方面都有对绝对的优势,主要体现在以下方面:

抗攻击性强。相同的密钥长度,其抗攻击性要强很多倍。

计算量小,处理速度快。ECC总的速度比RSADSA要快得多。

存储空间占用小。ECC的密钥尺寸和系统参数与RSADSA相比要小得多,意味着它所占的存贮空间要小得多。这对于加密算法在IC卡上的应用具有特别重要的意义。

带宽要求低。当对长消息进行加解密时,三类密码系统有相同的带宽要求,但应用于短消息时ECC带宽要求却低得多。带宽要求低使ECC在无线网络领域具有广泛的应用前景。

ECC的这些特点使它必将取代RSA,成为通用的公钥加密算法。比如SET协议的制定者已把它作为下一代SET协议中缺省的公钥密码算法。

下面两张表示是RSAECC的安全性和速度的比较。

攻破时间(MIPS)

抱歉!评论已关闭.