信息安全技术论文-密码学密码算法概述.doc
《信息安全技术论文-密码学密码算法概述.doc》由会员分享,可在线阅读,更多相关《信息安全技术论文-密码学密码算法概述.doc(7页珍藏版)》请在冰点文库上搜索。
信息安全技术论文
密码学密码算法概述
摘要:
密码学是研究编制密码和破译密码的技术科学。
研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学;应用于破译密码以获取通信情报的,称为破译学。
总称密码学。
密码是通信双方按约定的法则进行明密特殊变换的一种重要保密手段。
依照这些法则,变明文为密文,称为加密变换;变密文为明文,称为脱密变换。
密码在早期仅对文字或数码进行加、脱密变换,随着通信技术的发展,对语音、图像、数据等都可实施加、脱密变换。
关键字:
密码学对称密码学密钥
密码学[1](在西欧语文中之源于希腊语kryptós,“隐藏的”,和gráphein,“书写”)是研究如何隐密地传递信息的学科。
在现代特别指对信息以及其传输的数学性研究,常被认为是数学和计算机科学的分支,和信息论也密切相关。
著名的密码学者RonRivest解释道:
“密码学是关于如何在敌人存在的环境中通讯”,自工程学的角度,这相当于密码学与纯数学的异同。
密码学是信息安全等相关议题,如认证、访问控制的核心。
密码学的首要目的是隐藏信息的涵义,并不是隐藏信息的存在。
密码学也促进了计算机科学,特别是在于电脑与网络安全所使用的技术,如访问控制与信息的机密性。
密码学已被应用在日常生活:
包括自动柜员机的芯片卡、电脑使用者存取密码、电子商务等等。
直到现代以前,密码学几乎专指加密(encryption)算法:
将普通信息(明文,plaintext)转换成难以理解的资料(密文,ciphertext)的过程;解密(decryption)算法则是其相反的过程:
由密文转换回明文;加解密包含了这两种算法,一般加密即同时指称加密(encrypt或encipher)与解密(decrypt或decipher)的技术。
加解密的具体运作由两部分决定:
一个是算法,另一个是密钥。
密钥是一个用于加解密算法的秘密参数,通常只有通讯者拥有。
历史上,密钥通常未经认证或完整性测试而被直接使用在密码机上。
密码协议(cryptographicprotocol)是使用密码技术的通信协议(communicationprotocol)。
近代密码学者多认为除了传统上的加解密算法,密码协议也一样重要,两者为密码学研究的两大课题。
在英文中,cryptography和cryptology都可代表密码学,前者又称密码术。
但更严谨地说,前者(cryptography)指密码技术的使用,而后者(cryptology)指研究密码的学科,包含密码术与密码分析。
密码分析(cryptanalysis)是研究如何破解密码学的学科。
但在实际使用中,通常都称密码学(英文通常称cryptography),而不具体区分其含义。
口语上,编码(code)常意指加密或隐藏信息的各种方法。
然而,在密码学中,编码有更特定的意义:
它意指以码字(codeword)取代特定的明文。
例如,以‘苹果派’(applepie)替换‘拂晓攻击’(attackatdawn)。
编码已经不再被使用在严谨的密码学,它在信息论或通讯原理上有更明确的意义。
在汉语口语中,电脑系统或网络使用的个人帐户口令(password)也常被以密码代称,虽然口令亦属密码学研究的范围,但学术上口令与密码学中所称的钥匙(key)并不相同,即使两者间常有密切的关连。
对称钥匙密码学指的是传送方与接收方都拥有相同的钥匙。
直到1976年这都还是唯一的公开加密法。
现代的研究主要在分组密码(blockcipher)与流密码(streamcipher)及其应用。
分组密码在某种意义上是阿伯提的多字符加密法的现代化。
分组密码取用明文的一个区块和钥匙,输出相同大小的密文区块。
由于信息通常比单一区块还长,因此有了各种方式将连续的区块编织在一起。
DES和AES是美国联邦政府核定的分组密码标准(AES将取代DES)。
尽管将从标准上废除,DES依然很流行(triple-DES变形仍然相当安全),被使用在非常多的应用上,从自动交易机、电子邮件到远端存取。
也有许多其他的区块加密被发明、释出,品质与应用上各有不同,其中不乏被破解者。
流密码,相对于区块加密,制造一段任意长的钥匙原料,与明文依位元或字符结合,有点类似一次一密密码本(one-timepad)。
输出的串流根据加密时的内部状态而定。
在一些流密码上由钥匙控制状态的变化。
RC4是相当有名的流密码。
密码杂凑函数(有时称作消息摘要函数,杂凑函数又称散列函数或哈希函数)不一定使用到钥匙,但和许多重要的密码算法相关。
它将输入资料(通常是一整份文件)输出成较短的固定长度杂凑值,这个过程是单向的,逆向操作难以完成,而且碰撞(两个不同的输入产生相同的杂凑值)发生的机率非常小。
信息认证码或押码(Messageauthenticationcodes,MACs)很类似密码杂凑函数,除了接收方额外使用秘密钥匙来认证杂凑值。
数据加密标准(DES)[2]是一种加密算法(一种加密信息的方法),1976年被美国联邦政府的联邦信息处理标准(FIPS)所选中,随后既在国际上广泛流传开来。
这个算法因为包含一些机密设计元素,相关的短密钥长度以及被怀疑内含美国国家安全局(NSA)的后门而在开始是有争议的,DES因此收到强烈的学院派式的审查,并以此推动了现代的分组密码及其密码分析。
DES现在已经不视为一种安全的加密算法,因为它使用的56位秘钥过短,以现代计算能力,24小时内即可能被破解。
也有一些分析报告提出了该算法的理论上的弱点,虽然实际情况未必出现。
该标准在最近已经被高级加密标准(AES)所取代。
高级加密标准(AdvancedEncryptionStandard,AES)[3],又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。
这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。
经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPSPUB197,并在2002年5月26日成为有效的标准。
2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。
该算法为比利时密码学家JoanDaemen和VincentRijmen所设计,结合两位作者的名字,以Rijndael之命名之,投稿高级加密标准的甄选流程。
(Rijndael的发音近于"Rhinedoll")
AES加密算法(使用128,192,和256位元密钥的版本)的安全性,在设计结构及密钥的长度上俱已到达保护机密资讯的标准。
最高机密资讯的传递,则至少需要192或256位元的密钥长度。
用以传递国家安全资讯的AES实作产品,必须先由国家安全局审核认证,方能被发放使用。
)
AES与3DES的比较[4]
公开钥匙密码学,简称公钥密码学[5],又称非对称钥匙密码学,相对于对称钥匙密码学,最大的特点在于加密和解密使用不同的钥匙。
在对称钥匙密码学中,加密和解密使用相同的钥匙,也许对不同的信息使用不同的钥匙,但都面临钥匙管理的难题。
由于每对通讯方都必须使用异于他组的钥匙,当网络成员的数量增加时,钥匙数量成二次方增加。
更尴尬的难题是:
当安全的通道不存在于双方时,如何建立一个共有的钥匙以利安全的通讯?
如果有通道可以安全地建立钥匙,何不使用现有的通道。
这个“鸡生蛋、蛋生鸡”的矛盾是长年以来密码学无法在真实世界应用的阻碍。
1976年,WhitfieldDiffie与MartinHellman发表开创性的论文,提出公开钥匙密码学的概念:
一对不同值但数学相关的钥匙,公开钥匙(公钥,publickey)与私密钥匙(私钥,privatekeyorsecretkey)。
在公钥系统中,由公开钥匙推算出配对的私密钥匙于计算上是不可行的。
历史学者DavidKahn这样描述公开钥匙密码学;“从文艺复兴的多字符取代法后最革命性的概念。
”
在公钥系统中,公钥可以随意流传,但私钥只有该人拥有。
典型的用法是,其他人用公钥来加密给该接受者,接受者使用自己的私钥解密。
Diffie与Hellman也展示了如何利用公开钥匙密码学来达成Diffie-Hellman钥匙交换协定。
1978年,MIT的RonRivest、AdiShamir和LenAdleman发明另一个公开钥匙系统,RSA。
直到1997年的公开文件中大众才知道,早在1970年代早期,英国情报机构GCHQ的数学家JamesH.Ellis便已发明非对称钥匙密码学,而且Diffie-Hellman与RSA都曾被MalcolmJ.Williamson与CliffordCocks分别发明于前。
这两个最早的公钥系统提供优良的加密法基础,因而被大量使用。
其他公钥系统还有Cramer-Shoup、Elgamal、以及椭圆曲线密码学等等。
除了加密外,公开钥匙密码学最显著的成就是实现了数字签名。
数字签名名符其实是普通签章的数字化,他们的特性都是某人可以轻易制造签章,但他人却难以仿冒。
数字签名可以永久地与被签署信息结合,无法自信息上移除。
数字签名大致包含两个算法:
一个是签署,使用私密钥匙处理信息或信息的杂凑值而产生签章;另一个是验证,使用公开钥匙验证签章的真实性。
RSA和DSA是两种最流行的数字签名机制。
数字签名是公开钥匙基础建设(publickeyinfranstructures,PKI)以及许多网络安全机制(SSL/TLS,VPNs等)的基础。
公开钥匙算法大多基于计算复杂度上的难题,通常来自于数论。
例如,RSA源于整数因子分解问题;DSA源于离散对数问题。
近年发展快速的椭圆曲线密码学则基于和椭圆曲线相关的数学难题,与离散对数相当。
由于这些底层的问题多涉及模数乘法或指数运算,相对于分组密码需要更多计算资源。
因此,公开钥匙系统通常是复合式的,内含一个高效率的对称钥匙算法,用以加密信息,再以公开钥匙加密对称钥匙系统所使用的钥匙,以增进效率。
公钥的形式就是数字证书。
优点:
与对称密钥加密相比,优点在于无需共享的通用密钥,解密的私钥不发往任何用户。
即使公钥在网上被截获,如果没有与其匹配的私钥,也无法解密,所截获的公钥是没有任何用处的。
RSA加密算法[6]在公钥加密标准和电子商业中RSA被广泛使用。
RSA是1977年由罗纳德·李维斯特(RonRivest)、阿迪·萨莫尔(AdiShamir)和伦纳德·阿德曼(LeonardAdleman)一起提出的。
当时他们三人都在麻省理工学院工作。
RSA就是他们三人姓氏开头字母拼在一起组成的。
分解极大整数的难度决定了RSA算法的可靠性。
换言之,分解极大整数愈困难,RSA算法愈可靠。
假如有人找到一种很快的分解因子的算法的话,那么用RSA加密的信息的可靠性就肯定会极度下降。
但找到这样的算法的可能性是非常小的。
今天只有短的RSA钥匙才可能被强力方式解破。
到2008年为止,世界上还没有任何可靠的攻击RSA算法的方式。
只要其钥匙的长度足够长,用RSA加密的信息实际上是不能被解破的。
1983年麻省理工学院在美国为RSA算法申请了专利。
其已于2000年9月21日失效。
在速度上,比起DES和其它对称算法来RSA要慢得多。
实际上甲一般使用一种对称算法来加密他的信息,然后用RSA来加密他的比较短的对称密码,然后将用RSA加密的对称密码和用对称算法加密的消息送给乙。
这样一来对随机数的要求就更高了,尤其对产生对称密码的要求非常高,因为否则的话可以越过RSA来直接攻击对称密码。
U盾(USBKey)是中国工商银行推出的一种用于在网络上以客户端的形式识别客户身份的数字证书。
它结合IC卡与数字证书、数字签名等技术。
U盾采用1024位的非对称RSA加密算法【7】。
U盾的私钥(唯一序列号)直接在IC卡中产生,将CA中心颁发的安全数字证书下载到卡中与私钥相对应。
用户在使用网上银行系统时,通过U盾的加密通道确认客户身份。
在进行网上交易时,数据先送入插入电脑USB接口的U盾,并使用私钥进行数字签名,然后再传送到网上银行进行验证。
NTRU(NumberTheoryResearchUnit)公钥密码算法[9]是在20世纪90年代中期,由数学家小组JeffreyHoffstein、JillPipher和JosephSilverman设计的[12]。
NTRU已被接受为IEEEP1363标准,被标准化在文档WorkingGroupforStandardsinPublicKeyCryptography中。
NTRU算法使用多项式代数及两个不同数的模。
它的安全性基于多项式、不同模混合运算的相互作用,也依赖于最大格及寻找最短向量的困难性。
NTRU性能分析如下:
(1)效率较RSA为高。
NTRU加密、解密一个长度为N的信息分组需要O(N2)次操作。
RSA需要O(N3)操作。
所以,NTRU比RSA快至少100倍。
(2)安全性介于RSA和ECC之间(表2中同一行表示相同的安全水平)
NTRU与ECC、RSA的安全性比较
RSANTRUECC
512167113
1024263160
2048503282
(3)NTRU的密钥生成速度比RSA快300倍;加密代码只须20行C代码,解密代码只须52行C代码。
但NTRU也有缺点,解密可能失败,但通过对系统参数仔细选择,解密失效的概率可小于5×105。
NTRU算法的安全性是基于数论中在一个非常大的维效格中寻找一个很短向量的数学难题。
NTRU算法与RSA等算法相比具有更高的运算速度,更快的密钥生成速度和更少的存储空间,尽管在安全性方面与RSA相比有一些缺陷,但也有弥补的方法,因此NTRU算法将会有更广阔的应用前景。
[8]
椭圆曲线密码学[10](Ellipticcurvecryptography,缩写为ECC)是基于椭圆曲线数学的一种公钥密码的方法。
椭圆曲线在密码学中的使用是在1985年由NealKoblitz和VictorMiller分别独立提出的。
ECC的主要优势是在某些情况下它比其他的方法使用更小的密钥——比如RSA——提供相当的或更高等级的安全。
ECC的另一个优势是可以定义群之间的双线性映射,基于Weil对或是Tate对;双线性映射已经在密码学中发现了大量的应用,例如基于身份的加密。
不过一个缺点是加密和解密操作的实现比其他机制花费的时间长。
在2005年2月16日,NSA宣布决定采用椭圆曲线密码的战略作为美国政府标准的一部分,用来保护敏感但不保密的信息。
NSA推荐了一组被称为SuitB的算法,包括用来密钥交换的Menezes-Qu-Vanstone椭圆曲线和Diffie-Hellman椭圆曲线,用来数字签名的椭圆曲线数字签名算法。
这一组中也包括AES和SHA。
RSA和ECC的安全性和速度的比较[11]
在十九世纪九十年代发生了数件挑战美国出口规范的事件[1]。
其中一件是PhillipZimmermann的PGP加密程式,于1991年6月在美国连源代码一并释出于互联网。
在RSASecurity公司提出抗议后,Zimmermann被商务部和联邦调查局侦讯达数年。
接着,柏克莱加州大学的研究生DanielBernstein发起了对美国政府的法律诉讼,以言论自由挑战禁令的某些观点。
1995年的Bernsteinv.UnitedStates案例促成了在1999年判决印出密码算法的源代码属美国宪法言论自由保障范围内。
在1996年,39个国家签订处理军武出口的华沙公约。
该公约约定使用短钥匙长度(对称钥匙56位元;RSA512位元)的密码学不再受到出口管制。
从2000年后,美国出口密码学已经宽松许多。
现在,几乎所有的互联网使用者都可存取到优良的密码学,就在浏览器内建的传输层安全性(TLS)或安全接口层(SSL)。
MozillaThunderbird和微软Outlook电子邮件用户端程式可以用TLS连结至IMAP或POP服务器,并以S/MIME收送加密的电子邮件。
许多网络用户并不知晓他们的基本应用内含大量的密码系统。
我们说数据的安全是相对的,可以说在一定时期一定条件下是安全的,随着硬件和网络的发展,或者是另一个王小云的出现,目前的常用加密算法都有可能在短时间内被破解,那时我们不得不使用更长的密钥或更加先进的算法,才能保证数据的安全,因此加密算法依然需要不断发展和完善,提供更高的加密安全强度和运算速度。
纵观这两种算法一个从DES到3DES再到AES,一个从RSA到ECC。
其发展角度无不是从密钥的简单性,成本的低廉性,管理的简易性,算法的复杂性,保密的安全性以及计算的快速性这几个方面去考虑。
因此,未来算法的发展也必定是从这几个角度出发的,而且在实际操作中往往把这两种算法结合起来,也需将来一种集两种算法优点于一身的新型算法将会出现,到那个时候,电子商务的实现必将更加的快捷和安全。
参考文献:
[1]密码学http:
//zh.wikipedia.org/zh-cn/%E5%AF%86%E7%A0%81%E5%AD%A6
[2]DEShttp:
//zh.wikipedia.org/zh-cn/DES
[3]AEShttp:
//zh.wikipedia.org/zh-cn/AES
[4]AES与3DES的比较
[5]公开密钥加密 http:
//zh.wikipedia.org/zh-cn/%E5%85%AC%E9%92%A5%E5%AF%86%E7%A
0%81
[6]RSA加密算法http:
//zh.wikipedia.org/zh-cn/RSA%E7%AE%97%E6%B3%95
[7]U盾http:
//zh.wikipedia.org/zh-cn/U%E7%9B%BE
[8]NTRU算法的分
%88%86%E6%9E%90/47706.html
[9]密码算法的现状和发展研究,计算机应用,2004年2期
[10]椭圆曲线密码学http:
//zh.wikipedia.org/zh-cn/%E6%A4%AD%E5%9C%86%E6%9B%B2
%E7%BA%BF%E5%AF%86%E7%A0%81%E5%AD%A6
[11]RSA和ECC的安全性和速度的比较
ezed.html