公钥密码学进展

公钥密码学进展
公钥密码学进展

公钥密码学进展

伍前红张焕国武汉大学

关键词:密码交换公钥加密

密钥交换

许多密码系统都要求用户之间有一个秘密信道,密钥交换的目的就是要建立一个这样的信道。密钥交换协议是公钥密码系统中最基本、最核心的协议,也是公钥密码学的基础之一。经典的密钥交换协议

密钥交换协议的目的是使两方或多方在一个公开网络中协商出一个公共密钥。经典的密钥协商协议有迪菲-赫尔曼(Diffie-Hellman(DH))协议[1]、布尔梅斯特-德梅特(Burmester-Desmedt (BD))协议[2]、尤克斯(Joux)协议和博内-席维伯格(Boneh-Silverberg(BS))协议。这些巧妙的协议都是为静态群设计的,它们在被动攻击下是安全的。但这种安全性只是直觉上的,除了2003年在假设迪菲-赫尔曼协议安全的条件下,布尔梅斯特-德梅特协议完成过安全性证明[3]外,其

余协议的安全性都没有证明,而是直接作为密

码学中的标准假设。

基本的迪菲-赫尔曼协议是一个单轮两方协议。如果在每次会话中固定一方而让另一方动态改变,从迪菲-赫尔曼协议就可以得到一种公钥加密方案,即著名的盖莫尔(ElGamal)密码体制[4]。布尔梅斯特-德梅特协议是一个两轮n方协议,作为目前效率最高的群密钥交换(Group Key Exchange,GKE)协议,其轮效率不受n的限制。尤克斯协议是一个类似于DH协议的单轮三方协议,如果固定三方中的两方,从尤克斯协议就可以得到一个微型的广播加密方案,除了发送者,只有被固定下来的两方可以解密消息。尤克斯协议只适用于三方密钥交换,到目前为止,是否能将其扩展到三方以上而不增加额外的轮数仍然是一个公开问题。博内-席维伯格协议是一个单轮n+1方协议,它基于多线性对,但多线性对的构造本身也是一个公开问题。如果将n个用户公开的消息作为他们的公钥,则该协议蕴含着一个

n个用户的广播加密方案。遗憾的是,多线性

继迪菲(Diffie)和赫尔曼(Hellman)的开创性工作之后,密码学的研究从密室里走向了公开。经过数十年的发展,公钥密码学已经成为现代密码学的最主要内容之一,其本身也得到极大的丰富,并在实践中保护着成千上万用户的敏感数据和隐私。本文综述了公钥密码学的主要分支,包括密钥协商、公钥加密、数字签名以及可证明安全理论的基本模型,并回顾了这些领域的历史发展和现状,指出这些领域中的一些公开的重要问题,从而帮助有兴趣的读者进行深入研究。此外,还讨论了一些密码学界在可证明安全理论方面的很有启发意义的争议。

wk_ad_begin({pid : 21});wk_ad_after(21, function(){$('.ad-hidden').hide();}, function(){$('.ad-hidden').show();});

21

对构造不出来,而且与尤克斯协议类似,即使假设存在多线性对,博内-席维伯格协议最多也只适用于n+1方,将其扩展到超过n+1方而不增加额外的轮数似乎很难。因此,构造单

轮的n方密钥交换协议仍然是一个长期的公开问题。

认证密钥交换协议

除了在被动攻击(窃听)下安全的基本密钥交换协议外,许多工作致力于研究如何对抗主动攻击者。这个目标基本上可以使用认证方法来实现,另外还有一些工作致力于研究如何提高密钥交换协议在实际应用中的效率。

最早提出密钥协商安全性概念的是贝拉尔(Bellare)和罗加威(Rogaway)[5]。文献[5]的主要贡献是使用了不可区分性来定义协商出来的密钥的安全性。粗略地说,在该定义中,如果在允许的攻击行为下,攻击者仍然不能区分一个密钥是由真实协议生成的,还是来自密钥空间的一个独立随机值,那么就称该密钥交换协议是安全的。后来对这个模型也有一些扩展,最著名的是布莱克-威尔逊(Blake-Wilson)等所作的研究。对两方密钥交换协议的研究已经比较成熟且被广泛接受,如文献[1]、[5]和[6]等。

对如何在n方中安全建立一个秘密信道的群密钥交换协议的研究还不多,还有一些工作致力于研究如何将两方的迪菲-赫尔曼协议推广到多方的环境[2]中去。这些协议都只考虑了被动攻击下的安全性。在抗主动攻击的认证群密钥交换协议方面具有开创性意义的工作包括文献[7~9]所列的内容,它们最早给出了群密钥交换协议安全性在标准模型下的形式化证明。随后,文献[10~11]分别提出了在随机预言机模型下可证明安全的常数轮的认证群密钥交换协议。文献[7]中的安全性模型和可证明安全性协议是用于静态认证群密钥交换的,其安全模型源于贝拉尔等的两方密钥交换的安全模型[5~6]。

他们的方案需要O(n)轮。在文献[10~11]中分别提出了具有常数轮的静态认证群密钥交换协议。博伊德(Boyd)和涅托(Nieto)在随机预言机模型下证明了协议[10]的安全性。卡茨(Katz)和扬(Yung)提出了基于两轮协议[2]的认证静态群密钥交换协议[3]。最近,基于标准秘密共享技术,布列松(Bresson)和卡塔拉诺(Catalano)又提出了在标准模型下只需要两轮的可证明安全的认证静态群密钥交换协议。

对于动态群,布列松等改进了文献[9]中的协议,提出了动态群密钥交换协议[8]。但布列松等的协议不是常数轮,原因是每一个成员在中间密钥协商材料中嵌入他们的秘密,并将用这个秘密生成的最后结果提交给下一个群成员,这就使得在启动/加入算法中的轮数和群成员数目成线性关系。布列松等提出了一个两轮的可证明安全的认证群密钥分发协议,主要解决群成员的移动设备计算效率瓶颈,可用于功率受限的设备和无线环境。金(Kim)等人提出了一个不使用任何信任树的两轮动态认证协议,这是目前适用于动态群的最有效的群密钥交换方案。

基于口令的密钥交换协议

与熵很高的随机密钥不同,口令的熵通常很低,容易记忆,不必使用可信硬件产生或存储随机密钥。当然,从另一方面讲,低熵的口令容易遭到穷举搜索。如何在两方或多方中使用提前共享的由低熵口令组成的秘密信息来认证生成高质量的密钥,这是基于口令的密钥交换要解决的主要问题。在这种环境中,攻击者可以穷举整个口令空间,借助在线字典进行攻击,通过选择正确的口令,冒充一方使用每一个可能的共享秘密。因为这样的攻击是不可避免的,所以这个领域的工作就集中在如何防止离线字典攻击,保证在线穷举攻击是最有效的攻击,也就是说,为了验证每一个猜测的口

专题报道

28

机预言机模型下实现了一种具体的方案,其签名长度是一个常数。在PKC2007会议上,藤崎和铃木(Suzuki)提出可追踪环签名概念,实现文献[22]同样的安全目标,但他们的实现是线性复杂度的。

盲签名

盲签名允许签名请求者获得一个秘密消息的签名,签名者不能知道所签署的消息以及最终的签名,其主要用于电子现金和匿名认证。在物理世界,盲签名可以用下面简单的方法实现。请求者在待签署的秘密文件上附上一张复写纸装在一个信封里,将信封密封后让签名者在信封上指定的位置签名,请求者将信封打开,拿掉复写纸就得到了想要的秘密文件签名。密码学意义上的盲签名是这种物理方式签名的一个模拟。当然,这种简单的物理签名方式在密码学意义上是不安全的,恶意的请求者可能在信封里装了不止一份秘密文件,从而获得多个秘密文件的签名。在密码学意义上的盲签名需要防止这种攻击,这种安全性要求称为(k+1)-不可伪造性,即请求者与签名者k次交互后,至多只能获得k个签名。

盲签名的概念是常最先引入的,他最初实现的是基于RSA的盲签名,但没有安全证明。直到2003年,常最初的方案才在随机预言机模型下得到证明,还使用了一个非标准的计算假设。而盲签名的安全性定义直到2000年才由波伊切沃和斯特恩[16]正式给出。

最初的盲签名概念有一个显著的缺点。由于签名者完全不知道签署的内容,恶意的签名请求者可以欺骗签名者。例如,当签名请求者向银行申请1美元的电子硬币时,他可能让银行签署的消息却声称该银行欠他100万美元。为了防止这类攻击,对每一种面值的电子货币,银行必须使用不同的公钥,并有其它机构证实该公钥只用于签署该面值的货币,而不管被签署的消息的实际语意。这无疑增加了系统

的负担,因为可能有很多种面值的货币,而且嵌入的公开信息可能还有很多,比如货币的发行时间、有效期和适用范围等,这些信息的组合可以产生指数级的复杂度,上述简单的抗攻击方法显得很无力。为此阿贝(Abe)等提出了部分盲签名的概念,允许签名者在盲签名中嵌入一些公开信息。显然,盲签名是部分盲签名的一种特殊情况,即嵌入的公开信息是一个空串的情形。在文献中,给出了部分盲签名的形式化定义,并提出了一种在随机预言机模型下可证明安全的实现。吴等在文献[29]提出的盲签名和部分盲签名效率更高,实现同样的安全级别可以节省大约25%的带宽。

绝大多数的(部分)盲签名都是在随机预言机模型下考虑的安全性。波伊切沃和斯特恩[16]

第一个证明了安全的盲签名,不过该证明中

的盲签名最多只能签发O(logλ)次,其中λ是系统的安全参数。比如对于盲施努尔签名,最多只能签发几次。显然这样的限制使得盲签名在电子现金中的应用很不理想。目前,这个限制放松到了O(λ)次,阿贝等在文献提高了轮效率,并允许同时请求签名。贝拉尔等和博驰路(Boldyreva)提出了两轮的盲签名方案,在同时请求盲签名的情况下也是安全的。

在标准模型下可证明安全的盲签名很少。早期曾有文献指出,盲签名可以用通用两方安全计算技术构造,然而从实用的角度来看这样的构造是很不现实的。由于朱叶斯(Juels)、卢比(Luby)和奥斯特罗夫斯基(Ostrovsky)发现,简单地按这种方法构造盲签名并不安全,因此研究出了改进方法,以便得到安全的盲签名。尽管这些文章中都声称在同时申请盲签名的情形下方案仍然是安全的,但都没有提供安全证明的技术细节。卡梅尼西(Camenisch)等提出了第一个在标准模型下安全的高效盲签名方案,但其只允许顺序请求签名。林德尔已经证明在基于仿真的安全定义中不可能获得在同时请求签名下仍然安全的盲

29

签名。为了绕开这个限制,近期的研究工作集中在假定一个公共参考串的情况下证明同时请求签名的盲签名安全性。注意到林德尔限制并不适用于基于博弈的安全性定义,哈赞(Hazay)等提出了第一个在并行签名下安全的盲签名,该签名不需要随机预言机的帮助。奥(Au)和吴等提出了一种可以签署基群中的元素而不使用哈希函数的高效签名方案[25],该签名可以方便地转化为在标准模型下的两轮盲签名。

可证明安全性

在贝拉尔精彩的综述文章中,他认为现代密码学的发展可以分为2个阶段:一是设计和研究基本的单向函数阶段;二是设计和研究实现特定安全目标的安全方法阶段。前者的主要工作是构造基本的密码学原子原型,是一门艺术,因为直觉和经验在其中扮演着最重要的角色。后者的主要工作是对密码协议的设计与分析,可以视之为一门科学,因为安全性的数学方法证明在其中扮演了最重要的角色。由此可见,可证明安全在现代密码学中的重要地位。然而,密码学中的可证明安全理论发展充满了曲折、误解和争议,科布利茨(Koblitz)和梅内塞斯(Menezes)在文献[26]和其他文献中对此进行了很有启发意义的评论。下面将简述可证明安全中的基本数学模型及对它们的争议。

随机预言机模型与标准模型

许多密码协议的设计都需要用到哈希函数,因此在进行安全证明时,如何对待哈希函数成为密码学中的一个重要课题。在随机预言机模型里,哈希函数被视为一个随机函数,它的输出被认为是随机的,攻击者必须询问它才能知道输出,但对相同的询问,它的输出是一致的。绝大多数的密码学方案是在随机预言机模型下证明它们的安全性,其中最经典的结果包括文献[16]等等对基于RSA的签名、加密以

及基于离散对数的签名的安全性证明。而在标准模型里,哈希函数被视为一个满足单向性和抗碰撞性的确定性函数。当然,在标准模型下的密码学方案还可能根本就不需要哈希函数。已有少量的实用密码学方案在标准模型下证明了安全性,其中最经典包括文献[17]等等基于标准的DDH假设对克拉梅-舒普加密方案和基于标准的CDH假设对沃特斯签名[17]的安全性证明。

然而,多年来有不少密码学家对随机预言机模型表示了怀疑。例如,卡内蒂、戈德瑞克和哈列维(Halevi)构造了在随机预言机模型下可证明安全的密码学方案,但在现实世界对随机预言机的任何哈希函数实现得到的实例都是不安全的。虽然他们的设计是人为的,与实践中人们的任何真实的设计都不相同,但是,许多人还是觉得这一工作唤起了人们对在随机预言机假设下的安全性证明的可靠性的怀疑,认为需要开发一套基于哈希函数更弱假设的安全性系统。最近,贝拉尔、博驰路和帕拉西奥(Palacio)还得到一个令人吃惊的结果,他们构造了一类密码学方案例子,据称是很现实的,在随机预言机模型下具有一种重要而自然的安全性质。该文的目的是要引起人们对先前要求随机预言机反例更贴近实际的关切,证明在现实世界的密码学中,将依赖于随机预言机归约型安全证明的密码系统替换为使用更弱哈希函数模型的安全性证明是明智的。

科布利茨和梅内塞斯在文献[26]中简要地讨论了这种工作的一个案例,不过他们讨论的例子是关于签名而不是关于加密方案的。戈德瓦泽和陶曼(Tauman)声称,发现波伊切沃和斯特恩[16]在使用随机预言机假设证明由菲亚特-沙米尔(Fiat-Shamir)变换得到的签名的安全

性有难点没有解决。戈德瓦泽和陶曼看来是让顶级密码学家怀疑随机预言机模型的一类反例,但科布利茨和梅内塞斯认为他们的构造只是很人为的,与密码学实践没有非常合理的联

专题报道

30

系。

在可证明安全中,争议最大的可能就是关于随机预言机假设的有效性。一些顶级密码学家构造了反例证明他们的怀疑是有道理的,另一些顶级密码学家则认为这些反例是人为的,与实践中的密码系统没有合理的联系。由于一直没有人构造出很自然的反例,这让一些密码学家更相信随机预言机模型是合理的。事实上,很多密码学方案仍然选择了在随机预言机模型下证明密码系统的安全性。这可以解释为有安全证明总比没有好,因而多少会增加人们对方案的信心,尽管这种趋势在减弱。也许只有当密码学家构造出一个自然的密码学方案,在随机预言机模型下可以证明安全性,但将随机预言机实例化为任何现实的哈希函数方案都是显然不安全的情况下,争议才会真正停止。这无疑是密码学的另一个公开问题。另外,密码学家对标准模型下证明的安全性表示了一致的信心,在标准模型下的一个自然的反例必然动摇现代密码学的基础,但从公开的文献来看,很少有密码学家做这样的尝试。

通用群模型

在标准模型下安全的密码学方案中,只有极少数使用了标准的计算假设,在此模型下的更多方案证明要用到新的数论假设。这就产生了一个如何评估这些新假设难度的问题,通用群模型就是这样一种数学工具。这一概念最初是由奈切夫(Nechaev)和舒普引入的。粗略地说,通用群算法是一种概率算法,给定一个群作为黑盒子,只能执行一系列基本的群操作,在满足群运算法则后,能求群元素的逆和进行相等性测试。由于群被视为黑盒子,因此该算法不能利用具体群表示特殊性质。通用群模型只是形式化地保证一个群没有可以被攻击者用于解决某个问题的特殊结构的一种简便方法。如果对群元素的编码有特殊性质可以带来解决该问题的算法,那么用通用

群算法分析该问题的难度就没有任何意义。如加法群Zp,用通用群模型可以证明其中的离散对数问题是困难的,但这样的证明没有意义。

通用群模型主要用于考察没有特殊结构的群中的计算问题的难度,对于RSA这样的环结构会受到限制。目前文献中给出的求解RSA问题的通用算法就有局限性,它只利用乘法群的代数结构而不是完整的环结构,后者对RSA问题可能更自然。而且,其中的RSA模数没有作为算法的输入,它的乘法群是根据已知的概率分布随机选择的,算法仅知道群的阶在某个范围。丹嘎(Damg覽rd)和考普罗斯基(Koprowski)将在没有这些限制的一个更自然的通用模型中考察RSA问题,并留作了一个公开问题。利安德(Leander)和鲁普(Rupp)在2006年的亚密会上提出了更自然的通用环模型,并指出任何解决低指数RSA问题的有效的通用环算法都可以转化为一种有效算法分解大整数,因此低指数RSA问题和大整数分解在通用环模型下是等价的。对一般指数的RSA问题,利安德和鲁普没有回答,因此丹嘎和考普罗斯基留下的公开问题仍然没有完全解决。

菲什林(Fischlin)讨论了在安全性归约中使用通用群模型的缺陷。他最重要的例子是关于施努尔签名方案的,该方案当时刚被施努尔和雅各布森(Jakobsson)在通用群模型下证明

是安全的。在考察了菲什林的例子后,科布利茨和梅内塞斯[26]认为菲什林构造的例子不能说明通用群模型的任何缺陷。在文献[27]中,登特(Dent)将卡内蒂、戈德瑞克和哈列维质疑随机预言机模型的证据用到了通用群模型上。科布利茨和梅内塞斯认为文献[27]中的证据也是人为的,和实践密码学没有多大关系,对理解通用群模型这样的重要概念的微妙之处或弱点帮助不大,而且他构造的所谓反例可能会降低理论密码学的声誉,在政府或工业界形成对

31

密码学理论的怀疑。结论

在迪菲与赫尔曼的开创性工作之后,公钥密码学已经成为现代密码学的主要内容,并广泛用于各种电子交易中,成为每天保护着数

千万上亿的因特网用户的隐私的基础。经过30年的发展,公钥密码学包含了丰富的内容,最主要包括密钥协商、公钥加密、数字签名以及保障系统安全性的可证明安全理论等。本文简要综述了公钥密码学主要分支的发展、最新进展、公开问题及争议,提供了公钥密码学进展的一个概貌。■

伍前红

武汉大学计算机学院副教授,2004年在西安电子电子科技大学获博士学位。研究兴趣:密码学、电子商务安全。

张焕国

武汉大学计算机学院教授,博士生导师,中国计算机学会高级会员。研究兴趣:密码学、可信计算、信息安全。

现代密码学考试重点总结 (1)

古典密码 1.密码的基本概念 ○1作为数学的一个分支,是密码编码学和密码分析学的统称 ○2密码编码学:使消息保密的技术和科学 研究内容:1、序列密码算法的编码技术 2、分组密码算法的编码技术 3、公钥密码体制的编码技术 ○3密码分析学:破译密文的科学和技术 研究内容:1、密码算法的安全性分析和破译的理论、方法、技术和实践 2、密码协议的安全性分析的理论与方法 3、安全保密系统的安全性分析和攻击的理论、方法、技术和实践2.密码体制的5构成要素: ○1M:明文消息空间,表示所有可能的明文组成的有限集。 ○2C:密文消息空间,表示所有可能的密文组成的有限集。 ○3K:密钥空间,表示所有可能的密钥组成的有限集。 ○4E:加密算法集合。 ○5D:解密算法集合 3.密码体制的分类: ○1对称密匙密码系统加密密钥=解密密钥钥匙是保密的依赖密钥选择 ○2非对称密匙密码系统加密密钥≠解密密钥 加密密钥为公钥(Public Key)解密密钥为私钥(Private Key) 4.古典密码体制的算法 ○1棋盘密码希腊作家Polybius提出密钥空间:25 ○2移位密码 ○3代换密码 ○4维吉尼亚密码 ○5仿射密码:仿射密码是移位密码的一个推广,其加密过程中不仅包含移位操作,而且使用了乘法运算 例题: 1-1mod26=1 3-1mod26=9 5- 1mod26=21 7-1mod26=15 11-1mod26=19 17-1mod26=23 25- 1mod26=25 ○6置换密码 ○7Hill密码 例题: 5.密码分析的Kerckhoffs原 则:攻击者知道所用的加密算法的内部机理,不知道的仅仅是加密算法所采用的加密密钥 6.常用的密码分析攻击分为以下四类:

密码学实验-RSA公钥密码

实验报告 实验八、RSA公钥密码 实验目的: 熟练掌握RSA公钥密码算法原理及实现。 实验内容: 1、写出RSA公钥密码算法及其实现。 2、当取两素数分别为17、23,加密密钥为35时,写出其明文空间,并求出下列明文的密 文:1、15、17、23、48、235。 3、当取两素数分别为17、23,加密密钥为35时,求相应的解密密钥。 实验结果: 1.算法: Step1:选取两个大素数p和q,p和q保密 Step2:计算n=pq,f(n)=(p-1)(q-1),n公开,f(n)保密 Step3:随机选取正整数1 #include #include void main() { int i; double M,C,e,n,p,q,t; cout<<"请输入素数p:"; cin>>p; cout<<"请输入素数q:"; cin>>q;

n=p*q; t=(p-1)*(q-1); cout<<"请输入加密密钥e:"; cin>>e; cout<<"输入明文M:"; cin>>M; C=1; for(i=0;i

《密码学基础复习提要》

第一部分内容提要 1 引论 OSI:开发系统互联中的安全结构,提供了定义安全攻击、安全机制和安全服务的框架; 安全攻击:主动和被动攻击。被动攻击包括非授权阅读消息、文件以及流量分析;主动攻击包括对消息或文件的修改以及拒绝服务。 安全机制:一种处理过程,用来检测、阻止攻击或从被攻击的状态中恢复的机制。包括:加密算法、签名算法和认证协议。 安全服务:包括认证、访问控制、数据保密性、数据完整性、不可否认新以及可用性。 分析一个信息系统的安全问题: 注脚:对任何一个信息系统,系统安全方面的分析思路是:设定系统的安全需求,分析可能的攻击,配置相应的安全服务以满足需求,根据安全机制开发设计或者集成构建安全服务。 2 传统密码 对称密码是一种加密和解密使用相同密钥的体制,也称为传统密码。 对称密码利用密钥和加密算法将明文变为密文。运用相同的密钥将密文恢复成明文。 对密码的两种攻击方法:对密钥的穷举攻击(要求明文有结构和意义);对加密算法的密码分析,发现其缺陷降低i密钥攻击和难度。 传统对称密码:采用代换和置换技术。代换将明文元素映射为密文元素。置换将明文元素的位置进行系统的置换。转轮机是计算机出现前使用代换技术的复杂密码设备。 注脚:置换和代换是两种最基本的数据变换方法,保证其可逆就可以设计相应的密码算法。加密其实很简单:改掉原来的值,改掉原来值放的位置,但是记住你还要能改回来才行。 3 分组密码和DES 分组密码是一种将输入的明文以分组的方式处理的加密技术。 Feistel结构是一种常用的分组密码结构,它由许多轮构成,每轮中将分组的一半进行代换,然后和另外一半交换位置进行置换。 DES是最广泛应用的加密算法,它采用了Feistel 结构,简单高效,而且能进一步扩展到2DES和3DES。 注脚:Feistel是一种美妙的置换和代换网络,其美妙之处是他是那么简单而且遵从对称的原则,可以让加密和解密共用同一段代码。 4 数学基础——有限域 域是定义了加和乘算术运算的元素的集合。 模算术是一种整数算术,它将所有的整数约减为固定的集合,以保证计算的封闭性。 有限域在密码的若干领域有重要的应用。一个有限域就是有有限个元素构成的域。可以证明有限域的阶可以写成素数的幂形式。 阶为p的域可由模p的算术定义 阶为p n的域可由多项式算术来定义 注脚:基础代数的很多概念很颠覆我们习以为常了的小学算术,接触过这段内容,你起码留下这样的印象:原来四则运算是这样来的。 5 AES AES是一种分组密码,以取代DES,分组长度为128位,密钥长度为128,192,256 AES没有使用Feistel结构,每轮由四个单独的运算组成:字节代换,置换,有限于上的算术运算,以及密钥的异或。

密码学试题

密码学试题 选择题 1、如果发送方用私钥加密消息,则可以实现() A、保密性 B、保密与鉴别 C、保密而非鉴别 D、鉴别 2、在混合加密方式下,真正用来加解密通信过程中所传输数据(明文)的密钥是() A、非对称算法的公钥 B、对称算法的密钥 C、非对称算法的私钥 D、CA中心的公钥 3、以下关于加密说法,不正确的是() A、加密包括对称加密和非对称加密两种 B、信息隐蔽是加密的一种方法 C、如果没有信息加密的密钥,只要知道加密程序的细节就可以对信息进行解密 D、密钥的位数越多,信息的安全性就越高 4、以下关于混合加密方式说法不正确的是:() A、采用公开密钥体制进行通信过程中的加解密处理 B、采用公开密钥体制对对称密钥体制的密钥进行加密后的通信 C、采用对称密钥体制对对称密钥体制的密钥进行加密后的通信 D、采用混合加密方式,利用了对称密钥体制的密钥容易管理和非对称密钥体制的加解密处理速

度快的双重优点 5、两个不同的消息摘要具有相同的值时,称为() A、攻击 B、冲突 C、散列 D、都不是 6、()用于验证消息完整性。 A、消息摘要 B、加密算法 C、数字信封 D、都不是 7、HASH函数可应用于()。 A、数字签名 B、生成程序或文档的“数字指纹” C、安全存储口令 D、数据的抗抵赖性 8、数字证书采用公钥体制,每个用户设定一把公钥,由本人公开,用它进行: A、加密和验证签名 B、解密和签名 C、加密 D、解密 9、数字签名为保证其不可更改性,双方约定使用() A、HASH算法 B、RSA算法 C、CAP算法 D、ACR算法

10、1是网络通信中标志通信各方身份信息的一系列数据,提供一种在Internet上验证身份的 方式 A、数字认证 B、数字证书 C、电子证书 D、电子认证 11、以下关于CA认证中心说法正确的是 A、CA认证是使用对称密钥机制的认证方法 B、CA认证中心只负责签名,不负责证书的产生 C、CA认证中心负责证书的颁发和管理、并依靠证书证明一个用户的身份 D、CA认证中心不用保持中立,可以随便找一个用户来做为CA认证中心 12、关于CA 和数字证书的关系,以下说法不正确的是 A、数字证书是保证双方之间的通讯安全的电子信任关系,他由CA签发 B、数字证书一般依靠CA中心的对称密钥机制来实现 C、在电子交易中,数字证书可以用于表明参与方的身份 D、数字证书能以一种不能被假冒的方式证明证书持有人身份 13、以下关于数字签名说法正确的是 A、数字签名是在所传输的数据后附加上一段和传输数据毫无关系的数字信息 B、数字签名能够解决数据的加密传输,即安全传输问题 C、数字签名一般采用对称加密机制 D、数字签名能够解决篡改、伪造等安全性问题 14、密钥交换问题的最终解决方案是使用 A、身份证

公钥密码体制

数学文化课程报告论文题目:公钥密码体制的现状与发展 公钥密码体制的现状与发展 摘要:文中对公钥密码体制的现状与发展进行了介绍,其中着重讨论了几个比较重要的公钥密码体制M-H背包算法、RSA、ECC、量子密码、NTRU密码体制和基于辫群上的密码体制。 关键词:公钥密码体制;离散对数问题;格基归约;量子密码

1949年,Claude Shannon在《Bell System Technical Journal》上发表了题为“Communication Theory of Secrecy Systems”的论文,它是现代密码学的理论基础,这篇论文将密码学研究纳入了科学轨道,但由于受到一些因素的影响,该篇论文当时并没有引起人们的广泛重视。直到20世纪70年代,随着人类社会步入信息时代才引起人们的普遍重视,那个时期出现了现代密码的两个标志性成果。一个是美国国家标准局公开征集,并于1977年正式公布实施的美国数据加密标准;另一个是由Whitfield Diffie和Martin Hellman,在这篇文章中首次提出了公钥密码体制,冲破了长期以来一直沿用的私钥体制。自从公钥密码体制被提出以来,相继出现了许多公钥密码方案,如RSA、Elgamal密码体制、背包算法、ECC、XTR和NTRU等。 公钥密码体制的发现是密码学发展史上的一次革命。从古老的手工密码,到机电式密码,直至运用计算机的现代对称密码,这些编码系统虽然越来越复杂,但都建立在基本的替代和置换工具的基础上,而公钥密码体制的编码系统是基于数学中的单向陷门函数。更重要的是,公钥密码体制采用了两个不同的密钥,这对在公开的网络上进行保密通信、密钥分配、数字签名和认证有着深远的影响。文章共分为5部分:第1部分首先介绍了Merkle-Hellmen背包算法,第2,3,4,5,5部分分别讨论了RSA、ECC、量子密码、NTUR,同时对公钥密码体制进行了展望。 1、Merkle-Hellmen背包算法 1978年,Ralph Merkle和Martin Hellmen提出的背包算法是公钥密码体制用于加密的第一个算法,它起初只能用于加密,但后来经过Adi Shamtr的改进使之也能用于数字签名。其安全性基于背包难题,它是个NP完全问题,这意味

密码学基础教学大纲完整版

《密码学基础》课程教学大纲 (课程代码:07310620) 课程简介 密码学基础是信息安全专业的一门技术基础课程,该课程的学习将为后续的信息安全课程打下基础,同时也为将来从事信息安全研究和安全系统的设计提供 必要的基础。该课程主要讲授流密码(古典密码学)分组密码学、公钥密码学、 密钥分配与管理、信息认证和杂凑算法、数字签名以及网络加密与认证等几个部分,在其中将学习各种加解密、散列函数、单向函数、签名模式及伪随机发生器 等多种密码学工具,以及如何应用这些工具设计一个实现基本信息安全目标的系 统(目前学时不够,没有安排)。基本密码学工具的掌握和应用这些工具构造安 全服务就是本课程的基本目标。 本课程具有如下特点: (一)依赖很强的数学基础 本课程需要数论、近世代数、概率论、信息论、计算复杂性等数学知识作为 学习的基础。这些数学基础的讲解既要体现本身的体系性,同时还要兼顾密码学背景。 (二)可扩展性强 各种具体方法的学习不是本课程的最终目标,背后的基本原理以及应用这些原理设计新工具的能力才是本课程的最终目标。 (三)课程内容复杂且涉及面广 由于密码学内容丰富,且包含许多复杂的知识点,所以本课程的讲授以线为主,即在基本主线的勾勒基础上对授课内容及复杂程度做出取舍。 本课程先修课程有:数据结构、近世代数、概率论、高等数学、高级语言程 序设计等。后续课程有信息安全扫描技术、PKI技术、病毒学等专业课程。 课程教材选用国内信息安全优秀教材杨波编著的《现代密码学》(清华大学出版社),同时参考国外优秀教材:《经典密码学与现代密码学》,Richard Spillman,清华大学出版社、Douglas R. Stinson著,冯登国译的《密码学原理和实践》,电子工业出版社,2003年2月第二版。另外还向学生推荐国内的一些具有特色的操作系统教材如胡向东编写的《应用密码学教程》(电子工业出版社)等。 实验教材选用自编的实验指导书,同时参考上海交大的“信息安全综合实验系统实验指导书”,除了这些教材之外,学校的图书馆为师生提供了相关的学术 期刊和图书。 课程教学体系:理论课程(34学时)课程实验(16学时)。达到从算法 验证、综合设计、到创新应用知识的逐步提高、全面培养的目的。相应的教学 材料由教学大纲、实验大纲、实验指导书等。实践环节的实验条件有:计算机 科学技术系的实验中心(实施课程实验)。 课程教学安排 序号内容课时数备注 一密码学概述 2 二古典密码学算法(一) 2

密码学在电子商务中的应用

密码学在电子商务中的应用

密码学在电子商务中的应用 摘要 : 随着Internet的发展,电子商务已经逐渐成为人们进行商务活动的新模式。越来越多的人通过Internet进行商务活动。从而人们面对面的交易和作业变成网上相互不见面的操作,电子商务的发展前景十分诱人,但是由于没有国界、没有空间时间限制,可以利用互联网的资源和工具进行访问、攻击甚至破坏。而其安全问题也变得越来越突出,如何建立一个安全、便捷的电子商务应用环境,对心细提供足够的保护,已经成为商家和用户都十分关心的话题。本文从密码学基础,电子商务安全问题,电子商务中的信息安全技术出发进行分析。 关键词:密码学;电子商务;交易安全问题。 收稿日期:2011-06-11 中图分类号TP391 文献标识码 B 文章编号1007 - 7731 (2011) 23 - 40 – 02 作者简介:李春丹, 女, 理科部电子商务班大二学生,40926102。 互联网已经日渐融入到人类社会的各个方面中,网络防护与网络攻击之间的斗争也将更加激烈。这就对网络安全技术提出了更高的要求。未来的网络安全技术将会涉及到计算机网络的各个层次中,但围绕电子商务安全的防护技术将在未来几年中成为重点,如身份认证、授权检查、数据安全、通信安全等将对电子商务安全产生决定性影响。一,密码学基础 现代密码学研究信息从发端到收端的安全传输和安全存储,是研

究“知己知彼”的一门科学。其核心是密码编码学和密码分析学。前者致力于建立难以被敌方或对手攻破的安全密码体制,即“知己”;后者则力图破译敌方或对手已有的密码体制,即“知彼”。 编码密码学主要致力于信息加密、信息认证、数字签名和密钥管理方面的研究。信息加密的目的在于将可读信息转变为无法识别的内容,使得截获这些信息的人无法阅读,同时信息的接收人能够验证接收到的信息是否被敌方篡改或替换过;数字签名就是信息的接收人能够确定接收到的信息是否确实是由所希望的发信人发出的;密钥管理是信息加密中最难的部分,因为信息加密的安全性在于密钥。历史上,各国军事情报机构在猎取别国的密钥管理方法上要比破译加密算法成功得多。 密码分析学与编码学的方法不同,它不依赖数学逻辑的不变真理,必须凭经验,依赖客观世界觉察得到的事实。因而,密码分析更需要发挥人们的聪明才智,更具有挑战性。 现代密码学是一门迅速发展的应用科学。随着因特网的迅速普及,人们依靠它传送大量的信息,但是这些信息在网络上的传输都是公开的。因此,对于关系到个人利益的信息必须经过加密之后才可以在网上传送,这将离不开现代密码技术。 二,电子商务安全问题。 电子商务的一个重要技术特征是利用IT技术来传输和处理商业信息。因此,电子商务安全从整体上可分为两大部分:计算机网络安全和商务交易安全。

密码学及其研究现状(2014年)

密码学及其研究现状(2014年) {摘要}: 密码系统的两个基本要素是加密算法和密钥管理。加密算法是一些公式和法则,它规定了明文和密文之间的变换方法。由于密码系统的反复使用,仅靠加密算法已难以保证信息的安全了。事实上,加密信息的安全可靠依赖于密钥系统,密钥是控制加密算法和解密算法的关键信息,它的产生、传输、存储等工作是十分重要的。{关键词}:密码技术安全网络密匙管理 密码技术是信息安全的核心技术。如今,计算机网络环境下信息的保密性、完 整性、可用性和抗抵赖性,都需要采用密码技术来解决。密码体制大体分为对称密 码(又称为私钥密码)和非对称密码(又称为公钥密码)两种。公钥密码在信息安全中 担负起密钥协商、数字签名、消息认证等重要角色,已成为最核心的密码。 密码是通信双方按约定的法则进行信息特殊变换的一种重要保密手段。依照这 些法则,变明文为密文,称为加密变换;变密文为明文,称为脱密变换。密码在早 期仅对文字或数码进行加、脱密变换,随着通信技术的发展,对语音、图像、数据 等都可实施加、脱密变换。 密码学是在编码与破译的斗争实践中逐步发展起来的,并随着先进科学技术的 应用,已成为一门综合性的尖端技术科学。它与语言学、数学、电子学、声学、信 息论、计算机科学等有着广泛而密切的联系。它的现实研究成果,特别是各国政府 现用的密码编制及破译手段都具有高度的机密性。 进行明密变换的法则,称为密码的体制。指示这种变换的参数,称为密钥。它 们是密码编制的重要组成部分。密码体制的基本类型可以分为四种:错乱--按照 规定的图形和线路,改变明文字母或数码等的位置成为密文;代替--用一个或多 个代替表将明文字母或数码等代替为密文;密本--用预先编定的字母或数字密码 组,代替一定的词组单词等变明文为密文;加乱--用有限元素组成的一串序列作 为乱数,按规定的算法,同明文序列相结合变成密文。以上四种密码体制,既可单 独使用,也可混合使用,以编制出各种复杂度很高的实用密码。 当前,公钥密码的安全性概念已经被大大扩展了。像著名的RSA公钥密码算法、 Rabin公钥密码算法和ElGamal公钥密码算法都已经得到了广泛应用。但是,有些公

密码学的发展历史简介

密码学的发展简史 中国科学院研究生院信息安全国家重点实验室聂旭云学号:2004 密码学是一门年轻又古老的学科,它有着悠久而奇妙的历史。它用于保护军事和外交通信可追溯到几千年前。这几千年来,密码学一直在不断地向前发展。而随着当今信息时代的高速发展,密码学的作用也越来越显得重要。它已不仅仅局限于使用在军事、政治和外交方面,而更多的是与人们的生活息息相关:如人们在进行网上购物,与他人交流,使用信用卡进行匿名投票等等,都需要密码学的知识来保护人们的个人信息和隐私。现在我们就来简单的回顾一下密码学的历史。 密码学的发展历史大致可划分为三个阶段: 第一个阶段为从古代到1949年。这一时期可看作是科学密码学的前夜时期,这段时间的密码技术可以说是一种艺术,而不是一门科学。密码学专家常常是凭直觉和信念来进行密码设计和分析,而不是推理证明。这一个阶段使用的一些密码体制为古典密码体制,大多数都比较简单而且容易破译,但这些密码的设计原理和分析方法对于理解、设计和分析现代密码是有帮助的。这一阶段密码主要应用于军事、政治和外交。 最早的古典密码体制主要有单表代换密码体制和多表代换密码体制。这是古典密码中的两种重要体制,曾被广泛地使用过。单表代换的破译十分简单,因为在单表代换下,除了字母名称改变以外,字母的频度、重复字母模式、字母结合方式等统计特性均未发生改变,依靠这些不变的统计特性就能破译单表代换。相对单表代换来说,多表代换密码的破译要难得多。多表代换大约是在1467年左右由佛罗伦萨的建筑师Alberti发明的。多表代换密码又分为非周期多表代换密码和周期多表代换密码。非周期多表代换密码,对每个明文字母都采用不同的代换表(或密钥),称作一次一密密码,这是一种在理论上唯一不可破的密码。这种密码可以完全隐蔽明文的特点,但由于需要的密钥量和明文消息长度相同而难于广泛使用。为了减少密钥量,在实际应用当中多采用周期多表代换密码。在

密码学基础1

信息安全理论与技术第四讲密码学基础(三)

?讨论议题 ? 密钥分配 ? 公钥密码算法 – Diffie-Hellman密钥交换算法 –背包算法 – RSA算法 – EIGamal算法 –椭圆曲线密码算法ECC ?密钥分配(Key Distribution) 建立密钥分本协议必须考虑两个因素: 1)传输量和存储量就尽可能的小; 2)每一对用户U和V都能独立计算一个秘密密钥。 对于通信方A和B来说密钥分配方式由以下几种方式: 1)A选择密钥并手工传递给B; 2)第三方C选择密钥分别手工传递给A,B; 3)用A、B原有共享密钥传送新密钥(采用旧密作用于+新密钥方式); 4)与A、B分别有共享密钥的第三方C的加密连接,C就可以用加密连接传送新密钥给A和/或B。 ? N个用户集需要N(N-1)/2个共享密钥。 简单的密钥分配:

1)A产生公/私钥对{ PU a,PR a}并将PU a和其标识ID a的消息发送给B; 2)B产生秘密钥K S,并用A的公钥对K S,加密后发送给A; 3)A计算D(PU a E(PU a,K S)得出秘密钥K S。因为只有A能解密该消息,只有A和B知道K S; 4)A丢掉PU a,PR a,B丢掉PU a。 A和B 可以用传统的密码和会话密钥K S安全通信。 ●Key Distribution Center密钥分发中心 ●问题的提出 1)密钥管理量的困难 传统密钥管理:两两分别用一对密钥时,则n个用户需要C(n,2)=n(n-1)/2个密钥,当用户量增大时,密钥空间急剧增大。如: n=100 时, C(100,2)=4,995 n=5000时, C(5000,2)=12,497,500 (2)数字签名的问题 传统加密算法无法实现抗抵赖的需求。 密钥分发 1)每个用户与KDC有共享主密钥(Master Key); 2)N个用户,KDC只需分发N个Master Key; 3)两个用户间通信用会话密钥(Session Key); (会话密钥:端系统之间的通信使用一个临时的密钥进行加密,这个密钥叫会话密钥) 4)用户必须信任KDC;

公钥密码学的理论基础

公钥密码学的理论基础—单向函数 1976年,Diffie W.和Hellman M.E.在他们的《密码学的新方向》一文中提出了公钥密码的概念。随后,在1978年,Rivest R.L.,Shamir A.和Adleman L.M.在其文《实现数字签名和公钥密码体制的一种方法》中最先提出了一种可行的实现方法,这就是我们现在广泛使用的RSA 体制。RSA体制的提出真正使得互不相识的通信双方在一个不安全 的信道上进行安全通信最终成为可能,也是我们今天CA服务的源泉。然而,人们很少关心当前幸福生活的背后有一位默默的奉献者—单向函数。 单向和陷门单向函数的概念是公钥密码学的核心,可以说公钥密码体制的设计就是陷门单向函数的设计。那么什么是单向函数?什么是陷门单向函数?他们的密码学意义何在?本文试图作一个初浅的 介绍。 1 单向函数 给定任意两个集合X和Y。函数f:X Y 称为单向的,如果对每一个x属于X,很容易计算出函数f(x)的值,而对大多数y属于Y,要确定满足y=f(x)的x是计算上困难的(假设至少有这样一个x存在)。注意,不能将单向函数的概念与数学意义上的不可逆函数的概念混同,因为单向函数可能是一个数学意义上可逆或者一对一的函数,而一个不可逆函数却不一定是单向函数。

目前,还没有人能够从理论上证明单向函数是存在的。单向函数存在性的证明将意味着计算机科学中一个最具挑战性的猜想P=NP,即NP完全问题的解决,而关于NP完全性的理论却不足以证明单向函数的存在。有幸的是,现实中却存在几个单向函数的“候选”。说他们是“候选”,是因为他们表现出了单向函数的性质,但还没有办法从理论上证明它们一定是单向函数。 一个最简单的、大家熟知的“侯选”单向函数就是整数相乘。众所周知,不管给定两个多大的整数,我们很容易计算出它们的乘积,而对于一个300位左右的十进制整数,即使已知它是两个大小差不多(150位左右的十进制数)的素数之积,用世界上计算能力最强的计算机,也没有办法在一个合理的时间内分解出构成这个整数的两个素数因子来。这里讲的“合理的时间”是指一个可度量的相当长的时间,比如人类或者地球的寿命等。 另一个单向函数的侯选就是固定基数和模数的模指数运算。设n 和a是整数,而且1 2 陷门单向函数 显然,单向函数不能直接用作密码体制,因为如果用单向函数对明文进行加密,即使是合法的接收者也不能还原出明文了,因为单向函数的逆运算是困难的。与密码体制关系更为密切的概念是陷门单向函数。一个函数f:X Y 称为是陷门单向的,如果该函数及其逆函数的计算都存在有效的算法,而且可以将计算f的方法公开,即使由计

密码学试题

选择题 1、如果发送方用私钥加密消息,则可以实现() A、保密性 B、保密与鉴别 C、保密而非鉴别 D、鉴别 2、在混合加密方式下,真正用来加解密通信过程中所传输数据(明文)的密钥是() A、非对称算法的公钥 B、对称算法的密钥 C、非对称算法的私钥 D、CA中心的公钥 3、以下关于加密说法,不正确的是() A、加密包括对称加密和非对称加密两种 B、信息隐蔽是加密的一种方法 C、如果没有信息加密的密钥,只要知道加密程序的细节就可以对信息进行解密 D、密钥的位数越多,信息的安全性就越高 4、以下关于混合加密方式说法不正确的是:() A、采用公开密钥体制进行通信过程中的加解密处理 B、采用公开密钥体制对对称密钥体制的密钥进行加密后的通信 C、采用对称密钥体制对对称密钥体制的密钥进行加密后的通信 D、采用混合加密方式,利用了对称密钥体制的密钥容易管理和非对称密钥体制的加解密处理速度快的双重优点 5、两个不同的消息摘要具有相同的值时,称为() A、攻击 B、冲突 C、散列 D、都不是

6、()用于验证消息完整性。 A、消息摘要 B、加密算法 C、数字信封 D、都不是 7、HASH函数可应用于()。 A、数字签名 B、生成程序或文档的“数字指纹” C、安全存储口令 D、数据的抗抵赖性 8、数字证书采用公钥体制,每个用户设定一把公钥,由本人公开,用它进行: A、加密和验证签名 B、解密和签名 C、加密 D、解密 9、数字签名为保证其不可更改性,双方约定使用() A、HASH算法 B、RSA算法 C、CAP算法 D、ACR算法 10、1是网络通信中标志通信各方身份信息的一系列数据,提供一种在Internet上验证身份的方式 A、数字认证 B、数字证书 C、电子证书 D、电子认证 11、以下关于CA认证中心说法正确的是

计算机 密码学 实验四_RSA公钥密码体制实验

实验四:RSA公钥密码体制实验安全0901 王宇航 09283020 实验报告 1.实验步骤1:

2.实验步骤2、3、4: (1)文字描述每个函数的实现原理 1-RSA计算 公钥和私钥的产生 假设Alice想要通过一个不可靠的媒体接收Bob的一条私人讯息。她可以用以下 的方式来产生一个公钥和一个私钥: 随意选择两个大的质数p和q,p不等于q,计算N=pq。 根据欧拉函数,不大于N且与N互质的整数个数为(p-1)(q-1) 选择一个整数e与(p-1)(q-1)互质,并且e小于(p-1)(q-1) 用以下这个公式计算d:d× e ≡ 1 (mod (p-1)(q-1)) 将p和q的记录销毁。 (N,e)是公钥,(N,d)是私钥。(N,d)是秘密的。Alice将她的公钥(N,e)传给Bob,而 将她的私钥(N,d)藏起来。 加密消息 假设Bob想给Alice送一个消息m,他知道Alice产生的N和e。他使用起先与

Alice约好的格式将m转换为一个小于N的整数n,比如他可以将每一个字转换为这个字的Unicode码,然后将这些数字连在一起组成一个数字。假如他的信息非常长的话,他可以将这个信息分为几段,然后将每一段转换为n。用下面这个公式他可以将n加密为c: 计算c并不复杂。Bob算出c后就可以将它传递给Alice。 解密消息 Alice得到Bob的消息c后就可以利用她的密钥d来解码。她可以用以下这个公式来将c转换为n: 得到n后,她可以将原来的信息m重新复原。 解码的原理是 以及ed≡ 1 (mod p-1)和ed≡ 1 (mod q-1)。由费马小定理可证明(因为p和q 是质数)和 这说明(因为p和q是不同的质数,所以p和q互质) 签名消息 RSA也可以用来为一个消息署名。假如甲想给乙传递一个署名的消息的话,那么她可以为她的消息计算一个散列值(Message digest),然后用她的密钥(private key)加密这个散列值并将这个“署名”加在消息的后面。这个消息只有用她的公钥才能被解密。乙获得这个消息后可以用甲的公钥解密这个散列值,然后将这个数据与他自己为这个消息计算的散列值相比较。假如两者相符的话,那么他就可以知道发信人持有甲的密钥,以及这个消息在传播路径上没有被篡改过。(2)函数说明(包括函数参数, 返回值及实现过程的说明) 2-扩展欧几里德算法 void ext_euclid(inta,int b): 使用递归算法实现gcd(a,b)=gcd(b,a mod b)。 3-模幂运算 void modular_exponentitation(intx,intr,intp,int t): 使用递归算法实现: (1) a←x, b←r , c←1 (2)若b=0,则输出c, 结束. (3)若b是正的偶数,则b←b/2,a ←a2 mod p, 转(3) 否则, 转(4).

公钥密码体制的研究

目录 第一章绪论 1.1 研究背景与意义 第二章预备知识 2.1 复杂性理论 2.2 可证明安全理论 2.2.1 困难问题假设 2.2.2 形式化证明方法 2.3 公钥密码体制 2.3.1 PKE形式化定义 2.3.2 PKE的安全模型 2.5 密钥泄露 2.5.1 问题描述 2.5.2 解决方法 2.6 本章小结 致谢

第一章绪论 本章主要阐述了公钥密码体制的研究背景和积极意义,并简单介绍了代理重加密体制的研究现状以及该密码体制在云存储数据共享领域的独特优势。最后,本章介绍了本文的主要研究工作和论文结构。 1.1 研究背景与意义 密码学是伴随着信息保密而产生的,但是随着密码学技术本身的不断发展和通信网络技术的不断发展,现代的密码学研究已经远远超越了信息保密的范围,被广泛应用于各种安全和隐私保护应用之中。它是一门古老的学科,又是一门新兴的交叉学科,在今后人类社会的发展历程中必将发挥越来越重要的作用。密码学的发展可分为3个阶段:第一阶段:从古代一直到1949年,密码学都是停留在应用于军事政治等神秘领域的实践技术。从1949年香农(Shannon)发表了《保密系统的信息理论》[1]后,密码学才由理论基础指导而上升为学科。这一阶段,密码学研究的突破并不大,而且应用方面仍然只局限于特殊领域。 第二阶段:以1976年迪菲(Diffie)与赫尔曼(Hellman)发表的论文《密码学的新方向》[2]以及1977年美国发布的数据加密标准(DES)加密算法为标志,密码学进入了现代密码学。 第三阶段:伴随着相关理论的完善,以及由集成电路和因特网推动的信息化工业浪潮,密码学进入了一个全新爆发的时代:研究文献和成果层出不穷,研究的方向也不断拓展,并成为了一个数学、计算机科学、通信工程学等各学科密切相关的交叉学科,同时各种密码产品也走进了寻常百姓家,从原来局限的特殊领域进入了人民群众的生产、生活之中。 在信息社会,加密体制为保证信息的机密性提供了重要的技术手段。根据密钥的特点,可将加密体制分为对称密钥体制和非对称密钥体制两种。在对称加密体制中,通信双方为了建立一个安全的信道进行通信,需要选择相同的密钥,并将密钥秘密保存。根据对明文的加密方式不同,对称密码算法又分为分组加密算法和流密码算法。分组加密算法将明文分为固定长度的分组进行加密,而流密码算法则将明文按字符逐

密码学练习题

密码学练习题 一、单选题 1、密码学包括哪两个相互对立的分支(B) A、对称加密与非对称加密 B、密码编码学与密码分析学 C、序列算法与分组算法 D、DES和RSA 2、加密技术不能提供以下哪种安全服务?(D) A、鉴别` B、机密性 C、完整性 D、可用性 3、在密码学中,需要被变换的原消息被称为什么?(D) A、密文 B、算法 C、密码 D、明文 4、在凯撒密码中,每个字母被其后第几位的字母替换?(C) A、5 B、4 C、3 D、2 5、公元前500年的古希腊人曾使用了一种著名的加密方法,叫什么名字?(A) A、Scytale密码 B、凯撒密码 C、代替密码 D、置换密码 6、在密码学中,对RSA的描述是正确的是?(B) A、RSA是秘密密钥算法和对称密钥算法 B、RSA是非对称密钥算法和公钥算法 C、RSA是秘密密钥算法和非对称密钥算法 D、RSA是公钥算法和对称密钥算法 7、IDEA的密钥长度是多少bit?(D) A、56 B、64 C、96 D、128 8、DES的密钥长度是多少bit?(B) A、64 B、56 C、512 D、8 9、RSA使用不方便的最大问题是?(A) A、产生密钥需要强大的计算能力 B、算法中需要大数 C、算法中需要素数 D、被攻击过很多次 10、ECB指的是?(D) A、密文链接模式 B、密文反馈模式 C、输出反馈模式 D、电码本模式 11、下列为非对称加密算法的例子为(D) A、IDEA B、DES C、3DES D、ELLIPTOC CURVE 12、国际标准化组织在ISO 7498-2标准中定义了几类可选的安全服务?(D) A、8 B、7 C、11 D、6 13、下面关于密码算法的阐述,哪个是不正确的?(C) A、对于一个安全的密码算法,即使是达不到理论上的不破的,也应当为实际上是不可破的。即是说,从截获的密文或某些已知明文密文对,要决定密钥或任意明文在计算机上是不可行的。 B、系统的保密性不依赖于对加密体制或算法的保密,而依赖于密钥。 C、对于使用公钥密码体制加密的密文,知道密钥的人,就一定能够解密。 D、数字签名的理论基础是公钥密码体制。 14、下列古典密码算法是置换密码的是?(B) A、加法密码 B、Hill密码 C、多项式密码 D、栅栏式密码 15、若Bob给Alice发送一封邮件,并想让Alice确信邮件是由Bob发出的,则Bob应该选用哪种密钥对邮件加密?(D) A、Alice的公钥 B、Alice的私钥 C、Bob的公钥 D、Bob的私钥 16、根据所依据的难解问题,除了哪个以外,公钥密码体制分为以下分类。(D)

公钥密码学

第六章公钥密码学 1 什么是公钥密码体制 钥密码又称为双钥密码、非对称密码,是1976年由Diffie和Hellman在其“密码学新方向”一文中提出的,见划时代的文献: W.Diffie and M.E.Hellman, New Directrions in Cryptography, IEEE Transaction on Information Theory, V.IT-22.No.6, Nov 1976, PP.644-654 单向陷门函数是满足下列条件的函数f: (1)给定x,计算y=f(x)是容易的; (2)给定y, 计算x使y=f(x)是困难的。 (所谓计算x=f -1(y)困难是指计算上相当复杂,已无实际意义。) (3)存在δ,已知δ时,对给定的任何y,若相应的x存在,则计算x使y=f(x)是容易的。注:1*. 仅满足(1)、(2)两条的称为单向函数;第(3)条称为陷门性,δ称为陷门信息。 2*. 当用陷门函数f作为加密函数时,可将f公开,这相当于公开加密密钥。此时加密密钥便称为公开钥,记为Pk。f函数的设计者将δ保密,用作解密密钥,此时δ称为秘密钥匙,记为Sk。由于加密函数是公开的,任何人都可以将信息x加密成y=f(x),然后送给函数的设计者(当然可以通过不安全信道传送);由于设计者拥有Sk,他自然可以解出x=f-1(y)。 3*.单向陷门函数的第(2)条性质表明窃听者由截获的密文y=f(x)推测x是不可行的。 2.Diffie-Hellman密钥交换算法 Diffie和Hellman在其里程碑意义的文章中,虽然给出了密码的思想,但是没有给出真正意义上的公钥密码实例,也既没能找出一个真正带陷门的单向函数。然而,他们给出单向函数的实例,并且基于此提出Diffie-Hellman密钥交换算法。这个算法是基于有限域中计算离散对数的困难性问题之上的:设F为有限域,g∈F是F的乘法群F*=F\{0}=生成元。并且对任意正整数x,计算gx是容易的;但是已知g和y求x使y= gx,是计算上几乎不可能的。这个问题称为有限域F上的离散对数问题。公钥密码学中使用最广泛的有限域为素域FP. 对Diffie-Hellman密钥交换协议描述:Alice和Bob协商好一个大素数p,和大的整数g,1。p和g无须保密,可为网络上的所有用户共享。 对于一个素数q,如果数值:a mod q,a2 mod q,……,aq-1 mod q,是各不相同的整数,并且以某种排列方式组成了从1到q-1的所有整数 则称整数a是素数q的一个本原元(原根) 当Alice和Bob要进行保密通信时,他们可以按如下步骤来做: 由(4)知,Alice和Bob已获得了相同的秘密值K。双方以K作为加解密钥以传统对称密钥算法进行保密通信。

公钥密码体制总结及展望

公钥密码体制总结及展望 摘要:计算机网络的发展突飞猛进,与此同时产生了公钥密码体制,本文重点介绍了当前公钥密码体制的几种常见的算法以及公钥密码体制的未来发展趋势。 关键词公钥密码体制 RSA DSA ECDSA SHA-1 数字签名身份认证 1 引言 公开密钥密码体制的概念是1976年由美国密码学专家狄匪(Diffie)和赫尔曼(Hellman)[1]提出的,有两个重要的原则:第一,要求在加密算法和公钥都公开的前提下,其加密的密文必须是安全的;第二,要求所有加密的人和掌握私人秘密密钥的解密人,他们的计算或处理都应比较简单,但对其他不掌握秘密密钥的人,破译应是极困难的。随着计算机网络的发展,信息保密性要求的日益提高,公钥密码算法体现出了对称密钥加密算法不可替代的优越性。近年来,公钥密码加密体制和PKI、数字签名、电子商务等技术相结合,保证网上数据传输的机密性、完整性、有效性、不可否认性,在网络安全及信息安全方面发挥了巨大的作用。本文详细介绍了公钥密码体制常用的算法及其所支持的服务。 2 公钥密码算法 公钥密码算法中的密钥依性质划分,可分为公钥和私钥

两种。用户或系统产生一对密钥,将其中的一个公开,称为公钥;另一个自己保留,称为私钥。任何获悉用户公钥的人都可用用户的公钥对信息进行加密与用户实现安全信息交互。由于公钥与私钥之间存在的依存关系,只有用户本身才能解密该信息,任何未受授权用户甚至信息的发送者都无法将此信息解密。在近代公钥密码系统的研究中, 其安全性都是基于难解的可计算问题的。如: (1)大数分解问题;(2)计算有限域的离散对数问题;(3)平方剩余问题;(4)椭圆曲线的对数问题等。 基于这些问题, 于是就有了各种公钥密码体制。关于公钥密码有众多的研究, 主要集中在以下的几个方面: (1)RSA 公钥体制的研究;(2)椭圆曲线密码体制的研究;(3)各种公钥密码体制的研究;(4)数字签名研究。 公钥加密体制具有以下优点: (1)密钥分配简单;(2)密钥的保存量少;(3)可以满足互不相识的人之间进行私人谈话时的保密性要求;(4)可以完成数字签名和数字鉴别。 2.1 RSA算法 RSA算法[2]是Ron Rivest, Adi Shamir和Len Adleman 在1978年提出的,是一种公认十分安全的公钥密码算法。RSA算法是目前网络上进行保密通信和数字签名的最有效安全算法。RSA算法的安全性基于数论中大素数分解的困难性。

第9章 公钥密码学与RSA

第9章公钥密码学与RSA 1 什么是公钥密码体制 ?公钥密码又称为双钥密码和非对称密码,是1976年由Diffie和Hellman在其“密码学新方向”一文中提出的,见划时代的文献: W.Diffie and M.E.Hellman, New Directrions in Cryptography, IEEE Transaction on Information Theory, V.IT‐22.No.6, Nov 1976, PP.644‐654单向陷门函数是满足下列条件的函数f: (1)给定x,计算y=f(x)是容易的; ()给定y,计算使y()是困难的 (2) x y=f(x)是困难的。 (所谓计算x=f‐1(Y)困难是指计算上相当复杂;若经过数年的计算得出正确结果就无实际意义了。)

使得利用对给定的数值计算(3)存在δ,使得利用δ 对给定的函数值y ,计算x 使y=f(x)是容易的。 两条的函数称为单向函数若对第 注:1*. 仅满足(1)、(2)两条的函数称为单向函数;若对第(3)条也满足,称该函数为带δ 陷门信息的单向函数,也称为陷门单向函数。 2*. 当用陷门单向函数f 作为加密函数时,可将f 公开,这相当于公开加密密钥。此时加密密钥便称为公开钥,记为P k 。f 函数的设计者将δ 保密,用作解密密钥,此时δ 称为秘密钥匙,记为S k 。由于加密函数是公开的,任何人都可以将信息x 加密成y=f(x),然后送给函数的设计者(当然可以通过不安全信道传送);由于设计者他自然可以解出‐拥有Sk ,他自然可以解出x=f 1(y)。 3*.单向陷门函数的第(2)条性质表明窃听者由截获的是计算上不可行的 密文y=f(x)推测x 是计算上不可行的。

公钥密码、数字签名和数字证书相关知识及原理介绍

公钥密码、数字签名和数字证书相关知识及原理介绍一、从对称密码谈起 自从人类有了战争,智慧的人们就想出了很多的办法来解决通信保密问题,把需要通信的消息按固定规律转变成没有意义的乱码,而只有指定的合法接收者才能恢复解读出来,这就是密码学的基本思想。 通常,人们总是会有很多的秘密信息需要保护,比如个人的信用卡账号,个人的医疗记录和财政细节等等;企业也有秘密,例如战略报告、销售预测、公司财务、技术产品的细节、研究成果、人员档案等,密码学上将这些需要保护的原始信息称为明文。为了确保明文信息不被别人获知,在将这些明文保存在某个地方或从网络上传送出去之前,需要用某种方法(通常是数学方法)把它伪装起来以隐藏它的真实内容,我们把伪装的这个过程称为加密,把伪装采用的方法称之为加密算法,(明文)伪装后得到的结果称之为密文;相反地,把密文恢复成明文的过程称为解密,恢复时所用的方法称为解密算法。 上述这个过程还不是一个足够安全的过程。因为无论是加密算法还是解密算法,我们都可以用软件(一段程序)或硬件(加密机或加密卡)来实现。如果我们能绝对地保证加密和解密算法是保密的(例如只有通信双方知道),那么自然可以达到保密的效果。可事实上并非如此,实践证明,保护一段程序或者保护一个硬件是秘密的,和直接保护明文信息是秘密的,是一样的困难,高明的密码破译者们总能找到我们用来保密的加密算法和解密算法,从而找到我们要保密的信

息。更何况,如果我们有办法保全加密算法或解密算法是秘密的,那么我们何不用之以直接保全我们的明文信息呢?因此密码学家们最终放弃了保密加解密算法的念头,而选择了设计一类新的加解密算法,在用这类算法加密时需要引入一个只有自己知道的秘密参数,密码学家把它称为密钥,而且只有拥有同样密钥的人才能解密阅读被加密的明文。 顾名思义,“密钥”就是秘密的钥匙,起初人们总是把加解密比喻成利用钥匙给坚固的保险箱上锁开锁。这里“带锁的保险箱”好比是密码算法,可以用来保存明文文件,“钥匙”好比是密钥,“将明文文件放入保险箱并用钥匙锁上”就是加密过程,相反地,用钥匙将“锁有文件的保险箱”打开取出文件就是解密过程。整个过程如果没有钥匙,其他人即使能看到上锁的保险箱(密文),也不可能取出该文件,从而达到了保密的效果。 通常,人们用同一把钥匙进行上锁或开锁,上锁时,把钥匙插入锁里并旋转,锁的栓和结构就以预定好的方式形成障碍以阻止门被打开;开锁时,插入钥匙并反方向旋转,锁的栓和结构就会以相反的方式工作,使门可以打开。在这里,我们用了同一把钥匙进行上锁和开锁,也就是说我们用于加密(上锁)和解密(开锁)的密钥(钥匙)是完全相同的,我们把这种加密密钥和解密密钥相同的密码称之为对称密码。 现在国际上广泛采用的而且被证明足够安全的对称密码算法有3DES,IDEA,RC2,RC4,RC5等,当然还有很多其他好的算法,我们

相关文档
最新文档