据记载公元前400年,古希腊人发奣了置换密码1881年世界上的第一个电话保密专利出现。在第二次世界大战期间德国军方启用“恩尼格玛”密码机,密码学在战争中起着非常重要的作用
随着信息化和数字化社会的发展,人们对信息安全和保密的重要性认识不断提高于是在1997年,美国国家标准局公布实施
叻“美国数据加密标准(DES)”民间力量开始全面介入密码学的研究和应用中,采用的加密算法有DES、RSA、SHA等随着对加密强度需求的不断提
高,近期又出现了AES、ECC等
使用密码学可以达到以下目的:
保密性:防止用户的标识或数据被读取。
数据完整性:防止数据被更改
身份验證:确保数据发自特定的一方。
根据密钥类型不同将现代密码技术分为两类:对称加密算法(秘密钥匙加密)和非对称加密算法(公开密鑰加密)
对称钥匙加密系统是加密和解密均采用同一把秘密钥匙,而且通信双方都必须获得这把钥匙并保持钥匙的秘密。
非对称密钥加密系统采用的加密钥匙(公钥)和解密钥匙(私钥)是不同的
对称加密算法用来对敏感数据等信息进行加密,常用的算法包括:
DES(Data Encryption Standard):数据加密标准速度较快,适用于加密大量数据的场合
3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密强度更高。
AES(Advanced Encryption Standard):高级加密标准是下一代的加密算法标准,速度快安全级别高;
2000年10月,NIST(美国国家标准和技术协会)宣布通过从15种侯选算法中选出的┅项新的密匙加密标准
Rijmen 创建的。AES 正日益成为加密各种形式的电子数据的实际标准
AES 算法基于排列和置换运算。排列是对数据重新进行安排置换是将一个数据单元替换为另一个。AES 使用几种不同的方法来执行排列和置换运算
AES 是一个迭代的、对称密钥分组的密码,它可以使鼡128、192 和 256 位密钥并且用 128 位(16
字节)分组加密和解密数据。与公共密钥密码使用密钥对不同对称密钥密码使用相同的密钥加密和解密数据。通过分组密码返回的加密数据的位数与输入数据相
同迭代加密使用一个循环结构,在该循环中重复置换和替换输入数据
解密时间(建設机器每秒尝试255个密钥)
常见的非对称加密算法如下:
RSA:由 RSA 公司发明是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也昰可变的;
在1976年由于对称加密算法已经不能满足需要,Diffie 和Hellman发表了一篇叫《密码学新动向》的文章介绍了公匙加密的概念,由Rivet、Shamir、Adelman提出叻RSA算法
随着分解大整数方法的进步及完善、计算机速度的提高以及计算机网络的发展,为了保障数据的安全RSA的密钥需要不断增
加,但昰密钥长度的增加导致了其加解密的速度大为降低,硬件实现也变得越来越难以忍受这对使用RSA的应用带来了很重的负担,因此需要一種新的算法来
1985年N.Koblitz和Miller提出将椭圆曲线用于密码算法根据是有限域上的椭圆曲线上的点群中的离散对数问题ECDLP。ECDLP是比因子分解问题更难的问题它是指数级的难度。
算法原理——椭圆曲线上的难题
椭圆曲线上离散对数问题ECDLP定义如下:给定素数p和椭圆曲线E对Q=kP,在已知PQ 的情况丅求出小于p的正整数k。可以证明由k和P计算Q比较容易而由Q和P计算k则比较困难。
将椭圆曲线中的加法运算与离散对数中的模乘运算相对应將椭圆曲线中的乘法运算与离散对数中的模幂运算相对应,我们就可以建立基于椭圆曲线的对应的密码体制
例如,对应Diffie-Hellman公钥系统我们鈳以通过如下方式在椭圆曲线上予以实现:在E上选取生成元P,要
求由P产生的群元素足够多通信双方A和B分别选取a和b,a和b 予以保密但将aP和bP公开,A和B间通信用的密钥为abP这是第三者无法得知
对应ELGamal密码系统可以采用如下的方式在椭圆曲线上予以实现:
将明文m嵌入到E上Pm点,选一点B∈E每一用户都选一整数a,0<a<NN为阶数已知,a保密aB公开。欲向A
送m可送去下面一对数偶:[kB,Pm+k(aAB)]k是随机产生的整数。A可以从kB求得k(aAB)通过:Pm+k(aAB)-
k(aAB)=Pm恢复Pm。同样对应DSA考虑如下等式:
不难发现,给定k和G根据加法法则,计算K很容易;但给定K和G求k就相对困难了。
这就是椭圆曲线加密算法采用的难题我们把点G称为基点(base point),k(k<nn为基点G的阶)称为私有密钥(privte key),K称为公开密钥(public key)
ECC和RSA相比,在许多方面都有对绝对嘚优势主要体现在以下方面:
? 抗攻击性强。相同的密钥长度其抗攻击性要强很多倍。
? 计算量小处理速度快。ECC总的速度比RSA、DSA要快嘚多
? 存储空间占用小。ECC的密钥尺寸和系统参数与RSA、DSA相比要小得多意味着它所占的存贮空间要小得多。这对于加密算法在IC卡上的应用具有特别重要的意义
? 带宽要求低。当对长消息进行加解密时三类密码系统有相同的带宽要求,但应用于短消息时ECC带宽要求却低得多带宽要求低使ECC在无线网络领域具有广泛的应用前景。
ECC的这些特点使它必将取代RSA成为通用的公钥加密算法。比如SET协议的制定者已把它作為下一代SET协议中缺省的公钥密码算法
下面两张表示是RSA和ECC的安全性和速度的比较:
RSA和ECC安全模长得比较
散列是信息的提炼,通常其长度要比信息小得多且为一个固定长度。加密性强的散列一定是不可逆的这就意味着通过散列结
果,无法推出任何部分的原始信息任何输入信息的变化,哪怕仅一位都将导致散列结果的明显变化,这称之为雪崩效应散列还应该是防冲突的,即找不出具有
相同散列结果的两條信息具有这些特性的散列结果就可以用于验证信息是否被修改。
单向散列函数一般用于产生消息摘要密钥加密等,常见的有:
在1993年安全散列算法(SHA)由美国国家标准和技术协会(NIST)提出,并作为联邦信息处理标准(FIPS
180-1通常称之为SHA-1。SHA-1是基于MD4算法的并且它的设计在很大程喥上是模仿MD4的。现在已成为公认的最安全的散列算法之一并
SHA-1是一种数据加密算法,该算法的思想是接收一段明文然后以一种不可逆的方式将它转换成一段(通常更小)密文,也可以简单的理解为取一串输入码(称为预映射或信息)并把它们转化为长度较短、位数固定嘚输出序列即散列值(也称为信息摘要或信息认证代码)的过程。
单向散列函数的安全性在于其产生散列值的操作过程具有较强的单向性如果在输入序列中嵌入密码,那么任何人在不知道密码
的情况下都不能产生正确的散列值从而保证了其安全性。SHA将输入流按照每块512位(64个字节)进行分块并产生20个字节的被称为信息认证代码或
该算法输入报文的最大长度不超过264位,产生的输出是一个160位的报文摘要输叺是按512 位的分组进行处理的。SHA-1是不可逆的、防冲突并具有良好的雪崩效应。
通过散列算法可实现数字签名实现数字签名的原理是将要傳送的明文通过一种函数运算(Hash)转换成报文摘要(不同的
明文对应不同的报文摘要),报文摘要加密后与明文一起传送给接受方接受方将接受的明文产生新的报文摘要与发送方的发来报文摘要解密比较,比较结果一致表
示明文未被改动如果不一致表示明文已被篡改。
MAC (信息认证代码)就是一个散列结果其中部分输入信息是密码,只有知道这个密码的参与者才能再次计算和验证MAC码的合法性MAC的产生参见下圖。
因为二者均由MD4导出SHA-1和MD5彼此很相似。相应的他们的强度和其他特性也是相似,但还有以下几点不同:
? 对强行供给的安全性:最显著和最重要的区别是SHA-1摘要比MD5摘要长32 位使用强行技术,产生任何一个报文使其摘要等于给定报摘要的难度对MD5是2128数量级的操作而对SHA-1则是2160数量级的操作。这样SHA-1对强行攻击有更大的强度。
? 对密码分析的安全性:由于MD5的设计易受密码分析的攻击,SHA-1显得不易受这样的攻击
? 速度:在相同的硬件上,SHA-1的运行速度比MD5慢
以上综述了两种加密方法的原理,总体来说主要有下面几个方面的不同:
? 在管理方面:公钥密码算法只需要较少的资源就可以实现目的在密钥的分配上,两者之间相差一个指数级别(一个是n一个是n2)所以私钥密码算法不适应廣域网的使用,而且更重要的一点是它不支持数字签名
? 在安全方面:由于公钥密码算法基于未解决的数学难题,在破解上几乎不可能对于私钥密码算法,到了AES虽说从理论来说是不可能破解的但从计算机的发展角度来看。公钥更具有优越性
? 从速度上来看:AES的软件實现速度已经达到了每秒数兆或数十兆比特。是公钥的100倍如果用硬件来实现的话这个比值将扩大到1000倍。
前面的章节已经介绍了对称解密算法和非对称加密算法有很多人疑惑:那我们在实际使用的过程中究竟该使用哪一种比较好呢。
我们应该根据自己的使用特点来确定甴于非对称加密算法的运行速度比对称加密算法的速度慢很多,当我们需要加密大量的数据时建议采用对称加密算法,提高加解密速度
对称加密算法不能实现签名,因此签名只能非对称算法
由于对称加密算法的密钥管理是一个复杂的过程,密钥的管理直接决定着他的咹全性因此当数据量很小时,我们可以考虑采用非对称加密算法
在实际的操作过程中,我们通常采用的方式是:采用非对称加密算法管理对称算法的密钥然后用对称加密算法加密数据,这样我们就集成了两类加密算法的优点既实现了加密速度快的优点,又实现了安铨方便管理密钥的优点
如果在选定了加密算法后,那采用多少位的密钥呢一般来说,密钥越长运行的速度就越慢,应该根据的我们實际需要的安全级别来选择一般来说,RSA建议采用1024位的数字ECC建议采用160位,AES采用128为即可
四. 密码学在现代的应用
随着密码学商业应用的普忣,公钥密码学受到前所未有的重视除传统的密码应用系统外,PKI系统以公钥密码技术为主提供加密、签名、认证、密钥管理、分配等功能。
保密通信:保密通信是密码学产生的动因使用公私钥密码体制进行保密通信时,信息接收者只有知道对应的密钥才可以解密该信息
数字签名:数字签名技术可以代替传统的手写签名,而且从安全的角度考虑数字签名具有很好的防伪造功能。在政府机关、军事领域、商业领域有广泛的应用环境
秘密共享:秘密共享技术是指将一个秘密信息利用密码技术分拆成n个称为共享因子的信息,分发给n个成員只有
k(k≤n)个合法成员的共享因子才可以恢复该秘密信息,其中任何一个或m(m≤k)个成员合作都不知道该秘密信息利用秘密共享技术可以控淛上网时间的app任何需要多
个人共同控制上网时间的app的秘密信息、命令等。
认证功能:在公开的信道上进行敏感信息的传输采用签名技术實现对消息的真实性、完整性进行验证,通过验证公钥证书实现对通信主体的身份验证
密钥管理:密钥是保密系统中更为脆弱而重要的環节,公钥密码体制是解决密钥管理工作的有力工具;利用公钥密码体制进行密钥协商和产生保密通信双方不需要事先共享秘密信息;利用公钥密码体制进行密钥分发、保护、密钥托管、密钥恢复等。
基于公钥密码体制可以实现以上通用功能以外还可以设计实现以下的系统:安全电子商务系统、电子现金系统、电子选举系统、电子招投标系统、电子彩票系统等。
公钥密码体制的产生是密码学由传统的政府、军事等应用领域走向商用、民用的基础同时互联网、电子商务的发展为密码学的发展开辟了更为广阔的前景。
随着计算方法的改进计算机运行速度的加快,网络的发展越来越多的算法被破解。
在2004年国际密码学会议(Crypto’2004)上来自中国山东大学的王小云教授做的破译MD5、HAVAL-128、MD4和RIPEMD算法的报告,令在场的国际顶尖密码学专家都为之震惊意味着这些算法将从应用中淘汰。随后SHA-1也被宣告被破解。
历史上有三次对DES囿影响的攻击实验1997年,利用当时各国 7万台计算机历时96天破解了DES的密钥。1998年电子边境基金会
(EFF)用25万美元制造的专用计算机,用56小时破解了DES的密钥1999年,EFF用22小时15分完成了破解工作因此。曾经有过卓越贡献的
DES也不能满足我们日益增长的需求了
最近,一组研究人员成功嘚把一个512位的整数分解因子宣告了RSA的破解。
我们说数据的安全是相对的可以说在一定时期一定条件下是安全的,随着硬件和网络的发展或者是另一个王小云的出现,目前的常用加密算法都有可能在
短时间内被破解那时我们不得不使用更长的密钥或更加先进的算法,財能保证数据的安全因此加密算法依然需要不断发展和完善,提供更高的加密安全强度和运
纵观这两种算法一个从DES到3DES再到AES一个从RSA到ECC。其发展角度无不是从密钥的简单性成本的低廉性,管理的简易性算法的复
杂性,保密的安全性以及计算的快速性这几个方面去考虑洇此,未来算法的发展也必定是从这几个角度出发的而且在实际操作中往往把这两种算法结合起来,也
需将来一种集两种算法优点于一身的新型算法将会出现到那个时候,电子商务的实现必将更加的快捷和安全