浅谈背包公钥密码体制全解
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一个实用的公开密钥密码系统的建立和发展依赖于找到一个单向陷门函数。
5.公开密钥密码分析
6.公钥密码的的应用和优缺点
7.背包问题(Knapsack Problem):贪心算法程序等
引言:基于背包密码算法是密码学历史上最早被设计出来的几个公钥密码算法之一.由于背包密码的快速加解密优势和背包问题是NP完全问题,很长一段时间内背包算法受到普遍的关注.自从Hellman提出第一个背包算法以来,密码学界提出了很多背包型加密算法.然而,这些背包算法易于遭受低密度子集和攻击、GCD攻击、联立丢番图逼近攻击以及正交格攻击等.背包密钥密码体制所依赖的困难问题,大多数公钥密码体制可以分为两大类:一类是建立在数论问题基础之上,另一类则以背包问题为基础.这两种类型的公钥密码体制各数论难题的公钥密码系统保密性较强,但加、解密速度比较慢;基于背包问题的公钥密码系统的加、解密速度较快,但随着各种攻击的出现,其安全性似乎越来越得不到保障.基于此,为了兼顾加、解密算法的速度和安全性,对基于背包问题的现有公钥密码算法和GF(p)上椭圆曲线密码体制进行了深入的研究。
正文:
公钥密码体制的核心思想是:加密和解密采用不同的密钥。这是公钥密码体制和传统的对称密码体制最大的区别。对于传统对称密码而言,密文的安全性完全依赖于密钥的保密性,一旦密钥泄漏,将毫无保密性可言。但是公钥密码体制彻底改变了这一状况。在公钥密码体制中,公钥是公开的,只有私钥是需要保密的。知道公钥和密码算法要推测出私钥在计算上是不可行的。这样,只要私钥是安全的,那么加密就是可信的。
背包密码体制之背包算法
姓名:张全英
学号:20143967
专业:信息与计算科学1班
学院:数学与信息科学
摘要:网络和信息安全正在成为一个国家政治、军事、经济以及社会生活正常运行的基础,它将是一个国家综合实力的重要体现。而密码学是信息安全的核心。公钥密码又是将加密、解密密钥甚至加密、解密函数分开,用户只保留解密密钥,而将加密密钥和加密函数一起公之于众,是密码学的重要组成部分。背包公钥和RSA一样是著名的公钥体制之一,特别是背包公钥的安全基础是背包问题,这是一个NP难问题。虽然在提出不久就遭到破解,但是在提出的背包公钥系统的改进方案中依然有几个被证明是安全的。背包公钥是首个把NP问题用于公钥密码的密码体制,而其他现阶段应用的公钥密码体制都是基于因式分解或离散对数问题的,他们都不是NP问题构造的,因此背包公钥体制的研究是十分有意义的。本文从背包体制的常用攻击方法入手,寻找被破解的原因,并针对这些原因提出了新的构造思路,利用非超递增序列构造背包体制。利用非超递增序列构造背包公钥有2个必须解决的问题是加密结果的不唯一性和解密的困难性。本文对一种同余多模背包序列进行分析,并利用得出的性质构造一种新的L序列,并证明了L序列能解决以上2个问题,并提出了利用L序列构造背包公钥体制的方案。为了加快加解密速度,还提出了模M和W-1的逆向构造算法。然后给出了非超递增背包公钥体制的模拟实现。
这些要求最终可以归结到设计一个单向陷门函数。
4.单向函数:单项陷门函数:
一个单向函数是满足下列条件的函数:它将一个定义域映射到值域,使得每个函数值有一个唯一的原像,同时还要满足下列条件:函数值计算很容易,而逆计算是不可行的。
所谓单向陷门函数是这样的函数,即除非知道某种附加的信息,否则这样的函数在一个方向上容易计算,而在另外的方向上要计算是不可行的。有了附加的信息,函数的逆就可以在多项式时间内计算出来。
公钥密码体制原理简介及补遗- 2 -
方为A,相应的公钥对为(PUA,PRA)。这里,PUA表示A的公钥,PRA表示A的私钥。同理,假设消息的接收方为B,相应的公钥对为(PUB,PRB)。其中,PUB表示B的公钥,PRB表示B的私钥。对于A而言,既知道自己的公钥PUA,也知道B的公钥PUB。通常,就将A所知道的公钥集合称为公钥环。当需要对消息进行加密时,A从自己的公钥环中取出接收方的公钥,对消息进行加密,然后将消息发送给接收方。接收方收到加密消息后,用自己的私钥对密文进行解密。这个过程如图1所示。
两种密码体制的特征对比
表1将对称密码和公钥密码的特征进行了对比。如前所述,公钥密码体制使用两个密钥,习惯上,为了将其与对称密码体制中的密钥相区分,把公钥密码体制中使用的两个密钥分别称为公钥和私钥。公钥是可公开的,而私钥则是要保密的。
公钥密码的两种基本用途
公钥密码的两种基本用途是用来进行加密和认证。为了便于说明,不妨假设消息的发送
显然,对称密码和公钥密码都需要保证密钥的安全,不同之处在于密钥的管理和分发上面。在对称密码中,必须要有一种可靠的手段将加密密钥(同时也是解密密钥)告诉给解密方;而在公钥密码体制中,这是不需要的。解密方只需要保证自己的私钥的保密性即可,对于公钥,无论是对加密方而言还是对密码分析者而言都是公开的,故无需考虑采用可靠的通道进行密码分发。这使得密钥管理和密钥分发的难度大大降低了。
D.接收方B使用私有密钥容易通过计算解密所得的密文以便恢复原来的报文:
E.M = Dk2(C)= Dk2[Ek1(M)]
F.除A和B以外的其他人即使知道公钥k1,要确定私钥K2在计算上也是不可行的。
G.除A和B以外的其他人即使知道公钥k1和密文C,要想恢复原来的明文C在计算上也是不可行的。
3.数论基础知识:
关键字:模逆,欧几里德算法,同余式,超递增序列
目录:
1.公钥密码的原理
2.公钥密码的数学基础:
一个公开密钥密码系统必须满足的条件是:
A.通讯双方A和B容易通过计算产生出一对密钥(公开密钥K1,私钥密钥K2)。
B.在知道公开密钥K1和待加密报文M的情况下,对于发送方A,很容易通过计算产生对应的密文:
C.C = Ek1(M)
方为A,相应的公钥对为(PUA,PRA)。这里,PUA表示A的公钥,PRA表示A的私钥。同理,假设消息的接收方为B,相应的公钥对为(PUB,PRB)。其中,PUB表示B的公钥,PRB表示B的私钥。对于A而言,既知道自己的公钥PUA,也知道B的公钥PUB。通常,就将A所知道的公钥集合称为公钥环。当需要对消息进行加密时,A从自己的公来自百度文库环中取出接收方的公钥,对消息进行加密,然后将消息发送给接收方。接收方收到加密消息后,用自己的私钥对密文进行解密。这个过程如图1所示。
5.公开密钥密码分析
6.公钥密码的的应用和优缺点
7.背包问题(Knapsack Problem):贪心算法程序等
引言:基于背包密码算法是密码学历史上最早被设计出来的几个公钥密码算法之一.由于背包密码的快速加解密优势和背包问题是NP完全问题,很长一段时间内背包算法受到普遍的关注.自从Hellman提出第一个背包算法以来,密码学界提出了很多背包型加密算法.然而,这些背包算法易于遭受低密度子集和攻击、GCD攻击、联立丢番图逼近攻击以及正交格攻击等.背包密钥密码体制所依赖的困难问题,大多数公钥密码体制可以分为两大类:一类是建立在数论问题基础之上,另一类则以背包问题为基础.这两种类型的公钥密码体制各数论难题的公钥密码系统保密性较强,但加、解密速度比较慢;基于背包问题的公钥密码系统的加、解密速度较快,但随着各种攻击的出现,其安全性似乎越来越得不到保障.基于此,为了兼顾加、解密算法的速度和安全性,对基于背包问题的现有公钥密码算法和GF(p)上椭圆曲线密码体制进行了深入的研究。
正文:
公钥密码体制的核心思想是:加密和解密采用不同的密钥。这是公钥密码体制和传统的对称密码体制最大的区别。对于传统对称密码而言,密文的安全性完全依赖于密钥的保密性,一旦密钥泄漏,将毫无保密性可言。但是公钥密码体制彻底改变了这一状况。在公钥密码体制中,公钥是公开的,只有私钥是需要保密的。知道公钥和密码算法要推测出私钥在计算上是不可行的。这样,只要私钥是安全的,那么加密就是可信的。
背包密码体制之背包算法
姓名:张全英
学号:20143967
专业:信息与计算科学1班
学院:数学与信息科学
摘要:网络和信息安全正在成为一个国家政治、军事、经济以及社会生活正常运行的基础,它将是一个国家综合实力的重要体现。而密码学是信息安全的核心。公钥密码又是将加密、解密密钥甚至加密、解密函数分开,用户只保留解密密钥,而将加密密钥和加密函数一起公之于众,是密码学的重要组成部分。背包公钥和RSA一样是著名的公钥体制之一,特别是背包公钥的安全基础是背包问题,这是一个NP难问题。虽然在提出不久就遭到破解,但是在提出的背包公钥系统的改进方案中依然有几个被证明是安全的。背包公钥是首个把NP问题用于公钥密码的密码体制,而其他现阶段应用的公钥密码体制都是基于因式分解或离散对数问题的,他们都不是NP问题构造的,因此背包公钥体制的研究是十分有意义的。本文从背包体制的常用攻击方法入手,寻找被破解的原因,并针对这些原因提出了新的构造思路,利用非超递增序列构造背包体制。利用非超递增序列构造背包公钥有2个必须解决的问题是加密结果的不唯一性和解密的困难性。本文对一种同余多模背包序列进行分析,并利用得出的性质构造一种新的L序列,并证明了L序列能解决以上2个问题,并提出了利用L序列构造背包公钥体制的方案。为了加快加解密速度,还提出了模M和W-1的逆向构造算法。然后给出了非超递增背包公钥体制的模拟实现。
这些要求最终可以归结到设计一个单向陷门函数。
4.单向函数:单项陷门函数:
一个单向函数是满足下列条件的函数:它将一个定义域映射到值域,使得每个函数值有一个唯一的原像,同时还要满足下列条件:函数值计算很容易,而逆计算是不可行的。
所谓单向陷门函数是这样的函数,即除非知道某种附加的信息,否则这样的函数在一个方向上容易计算,而在另外的方向上要计算是不可行的。有了附加的信息,函数的逆就可以在多项式时间内计算出来。
公钥密码体制原理简介及补遗- 2 -
方为A,相应的公钥对为(PUA,PRA)。这里,PUA表示A的公钥,PRA表示A的私钥。同理,假设消息的接收方为B,相应的公钥对为(PUB,PRB)。其中,PUB表示B的公钥,PRB表示B的私钥。对于A而言,既知道自己的公钥PUA,也知道B的公钥PUB。通常,就将A所知道的公钥集合称为公钥环。当需要对消息进行加密时,A从自己的公钥环中取出接收方的公钥,对消息进行加密,然后将消息发送给接收方。接收方收到加密消息后,用自己的私钥对密文进行解密。这个过程如图1所示。
两种密码体制的特征对比
表1将对称密码和公钥密码的特征进行了对比。如前所述,公钥密码体制使用两个密钥,习惯上,为了将其与对称密码体制中的密钥相区分,把公钥密码体制中使用的两个密钥分别称为公钥和私钥。公钥是可公开的,而私钥则是要保密的。
公钥密码的两种基本用途
公钥密码的两种基本用途是用来进行加密和认证。为了便于说明,不妨假设消息的发送
显然,对称密码和公钥密码都需要保证密钥的安全,不同之处在于密钥的管理和分发上面。在对称密码中,必须要有一种可靠的手段将加密密钥(同时也是解密密钥)告诉给解密方;而在公钥密码体制中,这是不需要的。解密方只需要保证自己的私钥的保密性即可,对于公钥,无论是对加密方而言还是对密码分析者而言都是公开的,故无需考虑采用可靠的通道进行密码分发。这使得密钥管理和密钥分发的难度大大降低了。
D.接收方B使用私有密钥容易通过计算解密所得的密文以便恢复原来的报文:
E.M = Dk2(C)= Dk2[Ek1(M)]
F.除A和B以外的其他人即使知道公钥k1,要确定私钥K2在计算上也是不可行的。
G.除A和B以外的其他人即使知道公钥k1和密文C,要想恢复原来的明文C在计算上也是不可行的。
3.数论基础知识:
关键字:模逆,欧几里德算法,同余式,超递增序列
目录:
1.公钥密码的原理
2.公钥密码的数学基础:
一个公开密钥密码系统必须满足的条件是:
A.通讯双方A和B容易通过计算产生出一对密钥(公开密钥K1,私钥密钥K2)。
B.在知道公开密钥K1和待加密报文M的情况下,对于发送方A,很容易通过计算产生对应的密文:
C.C = Ek1(M)
方为A,相应的公钥对为(PUA,PRA)。这里,PUA表示A的公钥,PRA表示A的私钥。同理,假设消息的接收方为B,相应的公钥对为(PUB,PRB)。其中,PUB表示B的公钥,PRB表示B的私钥。对于A而言,既知道自己的公钥PUA,也知道B的公钥PUB。通常,就将A所知道的公钥集合称为公钥环。当需要对消息进行加密时,A从自己的公来自百度文库环中取出接收方的公钥,对消息进行加密,然后将消息发送给接收方。接收方收到加密消息后,用自己的私钥对密文进行解密。这个过程如图1所示。