1、现代密码学论文同名13947现代密码学课程论文学习现代密码学后的感受院系:数学与信息科学系班级:姓名:学号:对现代密码学的认识一、密码学的发展历程密码学在公元前400多年就早已经产生了,正如破译者一书中所说“人类使用密码的历史几乎与使用文字的时间一样长”。密码学的起源的确要追溯到人类刚刚出现,并且尝试去学习如何通信的时候,为了确保他们的通信的机密,最先是有意识的使用一些简单的方法来加密信息,通过一些(密码)象形文字相互传达信息。接着由于文字的出现和使用,确保通信的机密性就成为一种艺术,古代发明了不少加密信息和传达信息的方法。例如我国古代的烽火就是一种传递军情的方法,再如古代的兵符就是用来传达信
2、息的密令。就连闯荡江湖的侠士,都有秘密的黑道行话,更何况是那些不堪忍受压迫义士在秘密起义前进行地下联络的暗语,这都促进了密码学的发展。事实上,密码学真正成为科学是在19世纪末和20世纪初期,由于军事、数学、通讯等相关技术的发展,特别是两次世界大战中对军事信息保密传递和破获敌方信息的需求,密码学得到了空前的发展,并广泛的用于军事情报部门的决策。例如在希特勒一上台时,德国就试验并使用了一种命名为“谜”的密码机,“谜”型机能产生220亿种不同的密钥组合,假如一个人日夜不停地工作,每分钟测试一种密钥的话,需要约4.2万年才能将所有的密钥可能组合试完,希特勒完全相信了这种密码机的安全性。然而,英国获知了
3、“谜”型机的密码原理,完成了一部针对“谜”型机的绰号叫“炸弹”的密码破译机,每秒钟可处理2000个字符,它几乎可以破译截获德国的所有情报。后来又研制出一种每秒钟可处理5000个字符的“巨人”型密码破译机并投入使用,至此同盟国几乎掌握了德国纳粹的绝大多数军事秘密和机密,而德国军方却对此一无所知;太平洋战争中,美军成功破译了日本海军的密码机,读懂了日本舰队司令官山本五十六发给各指挥官的命令,在中途岛彻底击溃了日本海军,击毙了山本五十六,导致了太平洋战争的决定性转折。因此,我们可以说,密码学为战争的胜利立了大功。在当今密码学不仅用于国家军事安全上,人们已经将重点更多的集中在实际应用,在你的生活就有很
4、多密码,例如为了防止别人查阅你文件,你可以将你的文件加密;为了防止窃取你钱物,你在银行账户上设置密码,等等。随着科技的发展和信息保密的需求,密码学的应用将融入了你的日常生活。二 、密码学的基础知识密码学(Cryptogra phy)在希腊文用Kruptos(hidden)+graphein(to write)表达,现代准确的术语为“密码编制学”,简称“编密学”, 与之相对的专门研究如何破解密码的学问称之为“密码分析学”。密码学是主要研究通信安全和保密的学科,他包括两个分支:密码编码学和密码分析学。密码编码学主要研究对信息进行变换,以保护信息在传递过程中不被敌方窃取、解读和利用的方法,而密码分析
5、学则于密码编码学相反,它主要研究如何分析和破译密码。这两者之间既相互对立又相互促进。密码的基本思想是对机密信息进行伪装。一个密码系统完成如下伪装:加密者对需要进行伪装机密信息(明文)进行伪装进行变换(加密变换),得到另外一种看起来似乎与原有信息不相关的表示(密文),如果合法者(接收者)获得了伪装后的信息,那么他可以通过事先约定的密钥,从得到的信息中分析得到原有的机密信息(解密变换),而如果不合法的用户(密码分析者)试图从这种伪装后信息中分析得到原有的机密信息,那么,要么这种分析过程根本是不可能的,要么代价过于巨大,以至于无法进行。 在计算机出现以前,密码学的算法主要是通过字符之间代替或易位实现
6、的,我们称这些密码体制为古典密码。其中包括:易位密码、代替密码(单表代替密码、多表代替密码等)。这些密码算法大都十分简单,现在已经很少在实际应用中使用了。由于密码学是涉及数学、通讯、计算机等相关学科的知识,就我们现有的知识水平而言,只能初步研究古典密码学的基本原理和方法。但是对古典密码学的研究,对于理解、构造和分析现代实用的密码都是很有帮助。以下介绍我们所研究的古典密码学。三、现代密码学的作用 现代密码学研究信息从发端到收端的安全传输和安全存储,是研究“知己知彼”的一门科学。其核心是密码编码学和密码分析学。前者致力于建立难以被敌方或对手攻破的安全密码体制,即“知己”;后者则力图破译敌方或对手已
7、有的密码体制,即“知彼”。 人类有记载的通信密码始于公元前400年。古希腊人是置换密码的发明者。1881年世界上的第一个电话保密专利出现。电报、无线电的发明使密码学成为通信领域中不可回避的研究课题。 在第二次世界大战初期,德国军方启用“恩尼格玛”密码机,盟军对德军加密的信息有好几年一筹莫展,“恩尼格玛”密码机似乎是不可破的。但是经过盟军密码分析学家的不懈努力,“恩尼格玛”密码机被攻破,盟军掌握了德军的许多机密,而德国军方却对此一无所知。 太平洋战争中,美军破译了日本海军的密码机,读懂了日本舰队司令官山本五十六发给各指挥官的命令,在中途岛彻底击溃了日本海军,导致了太平洋战争的决定性转折,而且不久
8、还击毙了山本五十六。相反轴心国中,只有德国是在第二次世界大战的初期在密码破译方面取得过辉煌的战绩。因此,我们可以说,密码学在战争中起着非常重要的作用。 随着信息化和数字化社会的发展,人们对信息安全和保密的重要性认识不断提高。如网络银行、电子购物、电子邮件等正在悄悄地融入普通百姓的日常生活中,人们自然要关注其安全性如何。1977年,美国国家标准局公布实施了“美国数据加密标(DES)”,军事部门垄断密码的局面被打破,民间力量开始全面介入密码学的研究和应用中。民用的加密产品在市场上已有大量出售,采用的加密算法有DES、IDEA、RSA等。 现有的密码体制千千万万,各不相同。但是它们都可以分为私钥密码
9、体制(如 DES密码)和公钥密码(如公开密钥密码)。前者的加密过程和脱密过程相同,而且所用的密钥也相同;后者,每个用户都有公开和秘密钥。 编码密码学主要致力于信息加密、信息认证、数字签名和密钥管理方面的研究。信息加密的目的在于将可读信息转变为无法识别的内容,使得截获这些信息的人无法阅读,同时信息的接收人能够验证接收到的信息是否被敌方篡改或替换过;数字签名就是信息的接收人能够确定接收到的信息是否确实是由所希望的发信人发出的;密钥管理是信息加密中最难的部分,因为信息加密的安全性在于密钥。历史上,各国军事情报机构在猎取别国的密钥管理方法上要比破译加密算法成功得多。 密码分析学与编码学的方法不同,它不
10、依赖数学逻辑的不变真理,必须凭经验,依赖客观世界觉察得到的事实。因而,密码分析更需要发挥人们的聪明才智,更具有挑战性。 现代密码学是一门迅速发展的应用科学。随着因特网的迅速普及,人们依靠它传送大量的信息,但是这些信息在网络上的传输都是公开的。因此,对于关系到个人利益的信息必须经过加密之后才可以在网上传送,这将离不开现代密码技术。 1976年Diffie和Hellman在密码新方向中提出了著名的D-H密钥交换协议,标志着公钥密码体制的出现。 Diffie和Hellman第一次提出了不基于秘密信道的密钥 分发,这就是D-H协议的重大意义所在。PKI(Public Key Infrastructur
11、e)是一个用公钥概念与技术来实施和提供安全服务的具有普适性的安全基础设施。PKI公钥基础设施的主要任务是在开放环境中为开放性业务提供数字签名服务。 四、现代密码学的算法研究信息安全本身包括的范围很大,从安全性需求的角度来说涉及到信息的保密性、完整性、可用性、认证性和不可否认性。其中, 密码技术是保障信息安全的核心技术。密码学是一门充挑战的交叉学科, 有着悠久而迷人的历史。4 000多年前就有埃及人运用简单的加密手段传递秘密信息的记录。在两次世界大战中, 密码学更是扮演了举足轻重的角色。但是, 早期密码技术的研究和应用多属于军队、外交和政府行为。20世纪60年代计算机与通信系统的迅猛发展, 促使
12、人们开始考虑如何通过计算机和通信网络安全地完成各项事务, 从而使得密码技术开始广泛应用于民间, 也进一步促进了密码技术的迅猛发展。传统密码技术更多被看成是一门艺术, 密码学专家常常是凭自己的直觉来进行密码算法的设计和分析。直到1949 年Shannon1发表保密系统的通信理论一文, 文章从信息论的角度讨论了加密系统的安全性和设计准则, 从此将密码学从艺术带入了系统科学的殿堂。20世纪70年代, IBM公司设计出数据加密标准(D ES)分组密码算法, 并在1977 年被美国联邦政府采纳为联邦信息处理标准。几乎同时, D iffie和H ellm an2提出了公钥密码学的思想。他们在密码学的新方向
13、一文中解决了原有对称密码系统存在的密钥分配问题, 并提出了数字签名的新思路。1978 年, R ivest、Sham ir和A ldlem an3设计出了第一个在实践中可用的公开密钥加密和签名方案R SA , 从而拉开了现代密码学的序幕。4.1 对称加密算法密码算法主要分为对称密码算法和非对称密码算法两大类。对称加密算法指加密密钥和解密密钥相同,或知道密钥之一很容易推导得到另一个密钥。通常情况下, 对称密钥加密算法的加/解密速度非常快, 因此,这类算法适用于大批量数据加密的场合。这类算法又分为分组密码和流密码两大类。4.1.1 分组密码分组密码算法如图1 所示。相对流密码算法来说, 分组密码算
14、法不需要存储生成的密钥序列, 所以适用于存储空间有限的加密场合。此外, 目前使用的分组密码算法的分析和设计过程都相对公开, 通常伴随着大型的征集和公开评估活动。这样一来不仅仅增加了算法的透明度, 防止攻击者隐藏陷门并使得用户充分相信算法的安全强度; 另一方面极大促进了分组密码技术的飞速发展。1973 年5 月13 日的美国联邦政府提出征求在传输和存储数据中保护计算机数据的密码算法的建议, 这一举措最终导致了D ES算法的研制。在公开征得的众多算法中, IBM 公司提出的算法Lucifer中选。1975 年3 月17日, 美国国家标准局(N BS)首次公布了此算法, 请公众评议。1977 年1
15、月N BS 正式向社会公布, 采纳IBM 公司设计的方案作为非机密数据的数据加密标准。D ES正式成为美国联邦政府信息处理标准, 即FIPS-46 标准, 同年7月15 日开始生效。此后, 每隔5 年美国国家保密局(N SA )对D ES 作新的评估, 并重新批准它是否继续作为联邦加密标准。1997 年, 美国标准技术研究所(N IST ) 对D ES 进行再次评测并宣布:D ES算法的安全强度已经不足以保障联邦政府信息数据的安全性, 所以N IST 建议撤销相关标准, 此后D ES 算法只作为三重数据加密标准(TD ES)的一个组成部分使用。同时, N IST 开始征集新的数据加密标准高级数
16、据加密标准(A ES)4, 他们要求新算法的分组长度为128, 支持可变密钥长度128、192、256比特。1998年, N IST 在第一轮A ES征集会议上公布了征集到15 个算法, 并且邀请全世界的密码研究机构对算法进行安全性等方面的评测。1999年, N IST 从中选取了5个优良的算法作为A ES的候选算法, 它们分别是M A R S、R C6、R ijndael、Serpent和Twofish, 并通过最终的综合评价确定R ijndael算法为新的数据加密标准,2001年12月正式公布FIPS-197标准。欧洲于2000 年1 月启动了N ESSIE工程5, 该工程的目的是评价出包
17、含分组密码、流密码等在内的一系列安全、高效和灵活的密码算法。至2000年9 月, 共收集到了17 个分组密码算法, 同时他们将TD ES 和A ES 纳入了评估范围, 并作为分组密码算法的评测基准。经过3 年2 个阶段的筛选, 最终确定下列算法为推荐的分组密码算法: M ISTY 164、Cam llia128、SH A CA L-2和A ES128。日本政府在2000年成立了密码研究与评估委员会(CR Y PTR EC )6并参考欧洲N ESSIE 工程的作法对密码算法的安全性和效率等问题进行评估,以备政府使用。评估涵盖了对称密码算法、非对称密码算法、散列函数和随机数生成器4 部分。2002
18、 年初步拟定了推荐算法的草案, 2003 年3 月确定了推荐算法名单, 其中分组密码算法包括:! 分组长度为64 比特的算法:CIPH ER U N ICO R N -E 、M ISTY 1 M a00和3-keyTD ES。!分组长度为128 比特的算法:Cam ellia、CIPH ER U N ICO R N -A 、SC2000、H ierocrypt-3和R ijndael128。目前, 分组密码的设计与分析依然是密码学研究的热点。设计方面主要是寻求更好的设计技术在安全性和效率方面突破A ES算法。分析方面主要是可证明安全性理论研究、应用安全性研究及新的攻击方法挖掘。此外, 利用分组
19、密码技术设计新的流密码算法、新的H ash 函数算法也是研究的热点。4.1 .2 流密码流密码(也叫序列密码)的理论基础是一次一密算法, 它的主要原理是: 生成与明文信息流同样长度的随机密钥序列, 使用该序列按比特加密信息流, 得到密文序列, 解密变换是加密变换的逆过程。根据Shannon的研究, 这样的算法可以达到完全保密的要求。但是, 在现实生活中, 生成完全随机的密钥序列是不可行的, 因此只能生成一些类似随机的密钥序列, 称之为伪随机序列。流密码内部存在记忆元件(存储器)来存储生成的密钥序列。根据加密器中记忆元件的存储状态是否依赖于输入的明文序列, 又分为同步流密码算法(如图2 所示)和
20、自同步流密码算法(如图3所示)。流密码算法最初主要用于政府、军方等国家要害部门, 因此, 流密码不像分组密码那样有公开的国际标准, 大多数设计、分析成果都是保密的。但是随着流密码的应用需求越来越广泛, 从N ESSIE 工程开始, 流密码算法的设计与分析也列上了公开征集评测的日程。2000 年1 月欧洲启动的N ESSIE 工程中, 有6 个流密码算法(Leviathan、U Ii-128 、BM G L 、SO BER -t32 、SN O W 、SO BER -tl)进入了第二阶段评估, 但是因为他们都不符合N ESSIE 的征集准则而最终全部落选。2003 年3 月, 日本政府的密码研究
21、与评估委员会(CR Y PTR EC )推荐了3个流密码算法: M U G I、M U LTI-S01 和R C4-128。ECR Y PT 7是欧洲第6 框架研究计划(FP6)下IST 基金支持的一个为期4年的项目, 该项目启动于2004 年2 月,分为A ZTEC 、PR O V ILA B 、V A M PIR E 、STV L 和W A V ILA 5 个部分。其中STV L正在进行流密码算法的公开征集评估活动: 2004 年10 月14 15 日在比利时举行了一个名为SA SC 的特别会议,会议的讨论引发了流密码算法的征集活动, 并于2004 年11 月发布了征集公告, 这也是对N
22、ESSIE 没有征集到流密码算法的一个补充。征集活动到2005 年4 月29 日结束, 根据4 个征集原则, 一共征集到了34 个流密码算法。2007 年4 月开始进入第三轮评估, 针对软件设计的候选算法有CryptM T(V ersion3)、D ragon、R abbit、H C (H C-128和H C-256)、LEX (LEX -128、LEX -192和LEX -256)、N LS(N LSv2 加密)、Salsa20和SO SEM A N U K 。针对硬设计的候选算法包括D ECIM ( D ECIM v2 和D ECIM -128)、F-FCSR (F-FCSR -H v2
23、和F-FCSR -16)、Edon80、G rain (G rainv1 和G rain-128)、M ICK EY (M ICK EY 2.0 和M ICK EY -1282.0)、M oustique、Trivium 和Pom aranch (V ersion 3)。对流密码研究内容集中在如下两方面:(1)衡量密钥流序列好坏的标准。通常, 密钥序列的检验标准采用G olom b 的3 点随机性公设, 除此之外,还需做进一步局部随机性检验, 包括频率检验、序列检验、扑克检验、自相关检验和游程检验, 以及反映序列不可预测性的复杂度测试等。但是, 究竟什么样的序列可以作为安全可靠的密钥序列, 还
24、是一个未知的问题。(2)构造线性复杂度高、周期大的密钥流序列。当前最常用的密钥序列产生器主要有: 基于线性反馈移位寄存器的前馈序列产生器、非线性组合序列产生器、钟控序列产生器、基于分组密码技术的密钥生成器等。4.2 Has h 函数H ash函数(也称杂凑函数、散列函数)就是把任意长的输入消息串变化成固定长度的输出“ 0”、“ 1”串的函数, 输出“ 0”、“ 1”串被称为该消息的H ash 值(或杂凑值)。一个比较安全的H ash 函数应该至少满足以下几个条件:输出串长度至少为128 比特,以抵抗生日攻击。!对每一个给定的输入, 计算H ash值很容易(H ash 算法的运行效率通常都很高)
25、。对给定的H ash函数, 已知H ash值, 得到相应的输入消息串(求逆)是计算上不可行的。对给定的H ash 函数和一个随机选择的消息, 找到另一个与该消息不同的消息使得它们H ash值相同(第二原像攻击)是计算上不可行的。对给定的H ash 函数, 找到两个不同的输入消息串使得它们的H ash值相同(即碰撞攻击)实际计算上是不可行的H ash 函数主要用于消息认证算法构造、口令保护、比特承诺协议、随机数生成和数字签名算法中。H ash函数算法有很多, 最著名的主要有M D系列和SH A 系列, 一直以来, 对于这些算法的安全性分析结果没有很大突破, 这给了人们足够的信心相信它们是足够安全
26、的, 并被广泛应用于网络通信协议当中。直到2004 年, 中国密码学家王小云教授和她的团队将M D 4 的碰撞攻击复杂度时间降到手工可计算8; 并将寻找M D 5 算法实际碰撞的复杂度和SH A -1 算法碰撞的理论复杂度分别降为239和263 9-10。她们的出色工作, 颠覆了这座坚固的大厦, 也迫使众多密码学家重新评价目前H ash 算法的安全强度, 同时思考新的H ash函数算法设计方法。N ESSIE 工程推荐使用的H ash 算法有SH A -256/384/512 和W hirlpool, 日本密码研究与评估委员会推荐使用的算法有SH A -1/256/384/512、R IPEM
27、 D -160。ECR Y PT 也在H ash 算法研究方面举办了一系列活动。此外, N IST 研究所将于2008 年启动新的H ash 标准的征集活动。3 非对称密码算法非对称密钥密码体制, 即公开密钥密码体制指用户有两个密钥, 一个公开密钥, 一个私有密钥, 并且从私有密钥推导公开密钥是计算不可行的。公钥加密算法在运行速度方面无法和对称加密算法媲美, 但是这一思想很好地解决了对称密码学面临的密钥的分发与管理问题, 同时对于数字签名问题也给出了完美的解答, 并正在继续产生许多新的, 优秀的思想和方案。4.3 .1 基于CA的公钥密码公钥密码算法设计的关键是存在多项式时间内不可解的困难问题
28、。最早的也是目前使用最广泛的公钥加密和签名方案是R SA 算法, 该算法的安全性基于大整数分解问题。D iffie和H ellm an 提出的D H 密钥交换方案以及后来的数字签名标准(D SS)和ElG am al加密算法多基于同离散对数问题相关的困难问题。此外,在基于离散对数问题的密码算法中有一类特殊的算法椭圆曲线和超椭圆曲线密码学(ECC )。这类算法的优点是参数长度较短(见表1)可以达到较高的安全性, 因此, 非常适合在智能卡等存储空间有限的密码设备上使用。在N ESSIE 工程中共推荐了3 个数字签名算法: ECD SA 、R SA -PSS、SFLA SH 。2003年3月, 日本
29、政府的密码研究与评估委员会推荐了两个公钥加密算法(R SA ES-PK CS1-v1 5、R A S-O A EP ) 和4 个数字签名算法(ECD SA 、R SA SSA -PK CS1-v1 5、D SA 、R SA -PSS)。历经20 多年的分析研究, 密码学家依然没有彻底攻破基于整数分解和基于离散对数的经典算法, 从而增强了人们对于这些算法的信心, 但是这并不意味着公钥加密和签名算法的研究可以停滞不前了。首先, 虽然在原始计算模型的假设下, 目前为止最有效的分解因子解法和离散对数解法都是亚指数时间。但是离散对数问题和分解因子问题始终没有被证明是多项式时间内不可解(N P )问题。其
30、次, 即使证明他们是N P 问题, 也不能确保相应的密码算法是安全的, 例如基于背包问题设计的密码算法几乎全军覆没。最后, 在量子计算机问世后, 这两类问题将存在多项式时间解法11。所以, 密码学家一直在探寻新的、可以用于设计公钥密码算法的困难问题。目前研究比较广泛的算法主要有如下几种: 基于编码问题的公钥密码算法(M cEliece, 1978)、基于格问题的密码算法(N TR U , 1996)、多变量密码系统(M ultivariate PK C , 1999)以及基于无限群理论的密码算法(辫子群, 2000)等。4.3 .2 基于身份的公钥密码基于身份的密码学是由Sham ir12于1
31、984 年提出。其主要思想是, 系统中可以直接使用用户的标识, 如姓名、IP 地址、电子邮件地址等作为用户的公钥。用户的私钥通过一个被称作私钥生成器(PK G )的可信任第三方计算分发给用户。Sham ir在提出这一思想的同时设计了一个基于身份的数字签名方案。然而, 直到2001 年,Boneh 等人13利用椭圆曲线的双线性对才得到一个真正有效的基于身份的加密体制(IBE )。目前, 基于身份的方案(包括基于身份的加密算法、签名算法以及各种协议) 不断涌现出来。现阶段, 基于对的运算效率问题是亟需解决的问题, 也是现在研究的热门问题。4.3.3 密码协议所谓协议, 就是两个或者两个以上的参与者
32、为完成某项特定的任务而采取的一系列步骤。密码协议的参与者可能是可以信任的人, 也可能是攻击者。在网络通信中最常用的基本的密码协议按照其完成的功能可以分成以下3类:(1)密钥交换协议参与协议的两个或者多个实体之间建立共享的秘密, 例如在一次通信中所使用的会话密钥。协议可以采用对称密码体制, 也可以采用非对称密码体制, 例如D iffie-H ellm an 密钥交换协议。日本政府的密码研究与评估委员会推荐了3个密钥交换协议(D H 、ECD H 、PSEC-K EM )。(2)认证协议认证协议中包括实体认证(身份认证)协议、消息认证协议、数据源认证和数据目的认证协议等, 用来防止假冒、篡改、否认等攻击。N ESSIE 工程中推荐了一个由法国的Ecole N orm alSuperieure 大学和电信公司提交的鉴别方案G PS。(3)解决特殊问题的安全协议解决特殊问题的安全协议有电子选举协议、电子钱币协议、安全多方计算协议等。ECR Y PT 的PR O V I实验室在密码协议研究方面又划分了3 个研究小组: 模型和定义小组, 主要负责认证、密钥协商、零知识和身份认证的研究; 安全计算小组, 主要
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1