毕业设计论文口令共享认证算法研究与实现模板Word文件下载.docx
- 文档编号:20722802
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:31
- 大小:265.16KB
毕业设计论文口令共享认证算法研究与实现模板Word文件下载.docx
《毕业设计论文口令共享认证算法研究与实现模板Word文件下载.docx》由会员分享,可在线阅读,更多相关《毕业设计论文口令共享认证算法研究与实现模板Word文件下载.docx(31页珍藏版)》请在冰豆网上搜索。
验证方能够方便而准确地确认、证实发方的签名;
发方不可否认性:
签名一旦发放,发方就不能否认该签名是他签署的。
但数字签名和手写签名之间也有很大的区别,具体表现在三方面:
执行媒体不同:
手写签名的签署和验证都是人工的,所以签名容易被模仿、伪造;
验证容易失误、容易发生纠纷。
而数字签名的执行媒体是计算机(或其它类似的电子设备),所以伪造非常困难,验证过程快速、准确,结果公正,不易发生纠纷。
签名特征不同:
手写签名因人而异,而数字签名则因人、因消息而异。
时空效果不同:
手写签名的支撑媒体(如纸张)容易损坏、遗失,传送也不方便;
而数字签名则易于长期保存,远距离传送。
为了实现签名目标,签名方必须公开足够的验证信息,以便使验证方能顺利地检查签名的真伪;
但又不能泄露产生签名的机密信息,以防止他人伪造自己的签名。
签名一旦发送,消息的签署者就承担了对所签消息的责任。
数字签名在包括身份认证识别、数据完整性保护、信息不可否认性及匿名性等许多信息安全领域中都有重要的用途。
甚至可以毫不夸张地说,有信息安全的地方,就有数字签名。
特别是在大型网络安全通信、电子商务系统的密钥分配、用户认证等过程中,数字签名都具有重要作用。
签名与加密有所不同。
加密的目的是保护信息不被非授权用户存取,而签名是目的是使消息的接收者确信信息的发送者是谁、信息是否被他人篡改。
另外,消息加解密可能是一次性的,所以要求它在解密之前是安全的即可;
而一个签名的消息(比如文件、合同等)很可能在签署了许多年之后才验证其有效性,而且还可能要进行多次验证。
因此签名的安全性和防伪造性的要求更高。
1.1.3秘密共享和门限签名
秘密共享是门限密码的基础。
在现实生活中,我们经常需要保存些秘密信息,但如果把秘密信息存放在一个地方的话,安全性得不到保证,我们可以用秘密共享来解决这类问题。
秘密共享是一种分割秘密的技术,目的是防止秘密过于集中,自从1979年Shamir[2]和Blakley[3]提出这种思想以来,秘密共享的理论和技术达到了空前的发展和应用,特别是其应用至今人们仍十分关注。
秘密共享技术是指将一个秘密信息利用密码技术分拆成n个称为子秘密的信息,分发给n个成员,只有找n个合法成员的子秘密才可以恢复该秘密信息其中任何一个或m(m<
t)个成员合作都不知道该秘密信息。
利用秘密共享技术可以控制任何需要多个人共同控制的秘密信息、命令等。
例如,一个国家的核发射命令只有国家元首、国防部长、军队司令等人都同意时才能发射;
银行金库有两个以上的管理人员管理钥匙;
利用可验证的秘密共享技术可以实现可分的电子现金系统。
Shamir的方法是目前应用最广泛的方法。
其思路主要是使用平面上的t个点可以唯一决定t-1次多项式的理论,以t为门限值,应用拉格朗日插值多项式方法,恢复原多项式,从而得到秘密。
Shamir的秘密共享方案简单、实用,得到了广泛的应用。
它属于(t,n)门限秘密共享方案,即任何不少于t个成员的小组都可以恢复秘密密钥。
Shamir门限方案是完善的秘密共享。
把秘密共享应用于签名方案就形成了门限签名,最初由Destnedt[4]等人引进。
门限签名是对普通数字签名的推广,不同之处在于:
普通数字签名的签名是由一个个体生成的,而门限签名的签名是由多个成员合作生成的,例如在(t,n)门限签名方案中,需要t个以上合作者才能生成签名。
签名密钥由一组成员共享,在对给定信息m进行签名时,先由单个签名者产生对信息的部分签名,然后合并成对m的完整签名。
采用门限签名方案可以保护签名密钥免受内、外对手的攻击,增加签名机构的可靠性,同时它所产生的签名与统方式产生的签名是一致的。
1.1.4口令共享认证
伴随着网络通信和电子商务的迅速发展,具有一个签名者和一个验证者的普通数字签名方案已经不能完全满足现代网络应用的要求。
因此,许多新型的数字签名方案不断被提了出来。
为解决将验证消息数字签名的权力分散化的问题,由传统的数字签名结合秘密共享方案发展而来的门限共享验证签名(即口令共享认证体制)应运而生,进一步提升了数字签名的作用。
门限共享验证签名的概念最初由Soete等于1989年提出,满足在n个数字签名的验证者中,任意t个都可以验证签名的有效性,而任意t-1个或更少的验证者则不能验证。
该方案主要目的是为了分散验证者的权力,以防止签名滥用,从而进一步提高系统的安全性.
传统的数字签名一般是由一个人完成签名验证过程的,特别是对于指定验证人签名。
如果只存在一个验证人,则不可避免存在验证人欺骗问题。
例如,甲公司经理A签名(使用指定验证人签名)一个文件给乙公司经理B,在这种情况下,只有B具有验证签名是否合法的权利,但B在告知签名验证结果时是否存在欺骗就不得而知了。
为了降低此类欺骗的概率,可以让多个人共同验证一个签名,而共享验证签名就可以用来实现多个人共同验证一个签名的愿望。
(t,n)门限共享验证签名方案是指满足以下两个条件的数字签名:
(1)n个验证者中任何t个合作可以验证签名的有效性;
(2)任何少于t个验证者合作无法验证签名是否有效。
它与(t,n)门限秘密分享类似,均能抵御少于t个成员的合谋攻击。
二者不同之处在于秘密分享方案中的秘密是一次性的,而共享验证签名方案中被分享的秘密只是用来验证签名。
从而秘密份额和被分享的秘密不需以明文的形式出现并可重复使用。
本课题主要是针对一个较好的口令共享认证方案进行深入研究和分析,并在VC++平台上通过调用Openssl和NTL密码函数库编程实现了该算法的软件仿真,从而验证该算法的安全性、有效性和可行性。
综上可以看出,本课题的研究就有较好的理论意义和实际意义。
1.2课题的研究现状
第一个(t,n)共享验证签名方案是由Soete.et.al.[5]于1989年提出的。
共享验证签名方案在实际中有着重要的应用。
HarnL.在文献[6]中提出了一个基于求离散对数的困难性的(t,n)共享验证签名方案。
在其方案中,签名者的私钥是固定的,但验证签名的公钥是随要签名的消息的不同而变化的。
签名者利用一个(t,n)门限秘密分享方案,给验证组的每一个验证者分配一个秘密份额。
在收到签名者对某一消息的签名后,验证组中的任何t个验证者可合作恢复出验证签名所需的公钥,对签名可进行验证。
文献[7]指出文献[6]中的签名方案是不安全的。
文献[8]对文献[6]中的签名方案进行了修改。
文献[9]在文献[6,8]的基础上提出了一个所谓的(t,n)共享验证签名方案,在其方案中,签名验证组所分享的是一个与签字人的公、私钥无关的秘密(验证组的私钥)。
签字人把对一个消息的签名以ElGama1体制用验证组的公钥加密后发送给验证组,验证组中任何t个或t个以上的成员可协作对收到的密文进行解密而得到签名的明文。
验证组中的每一成员都知道签名者的公钥,因而都可独立地验证签名者所做的签名是否合法。
可见,该方案中验证组成员所共享的并不是验证签字的权利,而是解密的权利。
在其方案中,签名者在发送对某一消息的签名的密文时,并没有附带消息本身或消息的密文。
因而,攻击者在截获由签字人发送的签名的密文后,可随意生成另一消息的密文(以验证组的公钥加密)发送给验证组,使验证组无法恢复出正确的签名,验证总会失败。
文献[10]利用Harn提出的门限共享验证数字签名方案目提出了口令共享认证的概念,但是由于Harn方案是全局可伪造的,所以文献[10]中的方案是不安全的,攻击者可以根据一个用户的口令伪造其他任何用户的口令。
1998年Hsu和Wu提出了具有门限共享验证的认证加密方案[11],2003年,张彰等人在文献[12]中指出:
文献[11]有两个缺点:
(1)该方案仍然采用了传统的先签名后加密的步骤,因此效率不高;
(2)该方案不能防止个别恶意的接收者欺骗合作恢复认证的其余接收者。
李继国等[13]先后提出了《具有指定接收组(t,n)门限共享验证签名加密方案》[13]以及《一个新的具有指定接收者的(t,n)门限签名加密方案.》[14]。
张福泰,赵福祥,王育民在文献[15]中指出了文献[9]中的问题:
(1)对密文的替换攻击:
攻击者在截获签名者发送的签名的密文后,随意选取r1∈Z*q,s1∈Z*q,然后随机选择一整数d∈Z*q,生成相应的密文(
、
):
(1-1)
之后用(
)替换(E1,E2,E3)发给验证组.当验证组收到密文(
)后,无法识别这一密文是否遭受了替换攻击。
(2)对密文的伪造攻击:
由于签名者给验证组发送的是对M的签名的密文,而对M的签名的密文是以验证组的公钥yv为加密密钥按ElGamal公钥体制加密得到的,这样的密文并不具有认证功能,因而,攻击者在截获签名者发送的密文(E1,E2,E3)后可随意选择
∈Z*q,
∈Z*q,把(
)发送给验证组。
验证组收到后无法识别真假,只能依此密文进行解密,然后恢复出一个假的信息。
(3)无法识别签名者是否给验证组某一成员分发了假的秘密份额。
(4)当验证组中t个或t个以上的成员合作恢复签名的密文时,无法识别某一成员是否使用或提供了假的秘密份额。
并以文献[9]中签名方案为基础,利用可验证秘密分享技术,提出一个基于离散对数的共享验证签名方案。
2003年张彰,蔡勉,肖国镇在文献[16]中提出的口令共享认证方案是EIGamal方案和Shamir门限方案的结合,在该方案中,n个认证者中任意t个可以认证口令的正确性,而t-1个或更少的认证者不能认证口令的正确性。
1.3本论文的主要工作
本文分析了秘密共享、门限方案、Hash函数和DSA密码算法,研究基于离散对数的口令共享验证签名方案。
依据门限和共享验证的思想,对张彰,蔡勉,肖国镇等提出的《一个高效的门限共享验证签名方案及其应用》进行了深入的研究和算法分析,并且实现该方案的软件仿真。
在仿真过程中,对口令共享验证签名的性能进行进一步了解和提出一些改进思想。
围绕仿真实现方案中的算法着重做了以下研究工作:
(1)研究密码学的主要签名算法:
RSA算法,ElGamal算法以及ElGamal的变形算法DSA;
(2)研究Shamir门限方案以及拉格朗日插值公式构建恢复系数;
(3)运用DSA算法实现基于离散对数的签名方案;
(4)通过调用Openssl密码库实现的SHA-1算法;
(5)对于张彰等人提出的《一个高效的门限共享验证签名方案及其应用》里的算法进行正确性、安全性和高效性的研究;
(6)利用密码库NTL和Openssl库实现对张彰等人提出的《一个高效的门限共享验证签名方案及其应用》的仿真,检验该算法的正确性;
(7)对仿真的结果做分析。
1.4本文的组织结构
第2章介绍了本论文需要用到的密码学基本概念和基本理论。
包括几个著名的密码学问题和公钥密码算法、重要的秘密共享以及门限签名的概念和性质等等。
第3章对于张彰,蔡勉,肖国镇提出的《一个高效的门限共享验证签名方案及其应用》中的算法,进行系统的分析研究,对算法的可行性,正确性,安全性,高效性进行全面的分析。
第4章对于实现算法仿真用到的密码算法库进行介绍,主要用到的是大数运算库NTL以及Openssl库,在这章里,对NTL库和Openssl库的安装及调用做了简明的介绍,相信只要是认真看了本章的读者都能对NTL库以及Openssl库的进行初步调用。
为下面仿真实现打下基础。
第5章对算法实现仿真,利用VC++平台,调用NTL库和Openssl库对张彰等人提出的算法进行仿真检测。
详尽的分析算法仿真,一步一步的对算法进行完整的检测。
第2章密码学基础
2.1ElGamal签名方案
ElGamal签名方案是两个最重要的数字签名方案之一(另一个是RSA),其安全性是基于有限域上离散对数的难解性。
基于ElGamal签名方案的DSA是现在普遍运用的签名方案。
DSA签名方案:
设p是大素数,q等于p-1或p-1的大素因子,g是Zp中的q阶元素,H为单向无碰撞Hash函数,
和
是签名者的私钥和公钥。
为了产生关于消息m的签名,签名者随机选取k∈Zq*,计算
,
(2-1)
则(r,s)即为签名者对消息m的签名,其验证方程为
(2-2)
DSA是基于整数有限域离散对数难题的,其安全性与RSA相比差不多。
DSA的一个重要特点是两个素数公开,这样,当使用别人的p和q时,即使不知道私钥,你也能确认它们是否是随机产生的,还是作了手脚。
RSA算法却作不到。
DSA(Digital
Signature
Algorithm),数字签名算法,用作数字签名标准的一部分),它是另一种公开密钥算法,它不能用作加密,只用作数字签名。
DSA使用公开密钥,为接受者验证数据的完整性和数据发送者的身份。
它也可用于由第三方去确定签名和所签数据的真实性。
DSA算法的安全性基于解离散对数的困难性,这类签字标准具有较大的兼容性和适用性,成为网络安全体系的基本构件之一。
另外,算法使用一个单向散列函数H(m)。
标准指定了安全散列算法(SHA-1)。
三个参数p,q和g是公开的,且可以被网络中所有的用户公有。
私人密钥是x,公开密钥是y。
对消息m签名时:
(1)
发送者产生一个小于q的随机数k。
(2)
发送者产生:
r和s就是发送者的签名,发送者将它们发送给接受者。
(3)
接受者通过计算来验证签名:
如果v=r,则签名有效。
2.2Shamir门限方案
Shamir于1979年提出的(t,n)门限秘密分享方案的,该方案的具体算法现介绍如下:
(t,n)门限秘密分享方案是在n个参与者的集合中分享密钥K的方法。
以这个方法,任何t个参与者都能计算出K的值,而任意t-1个参与者则不能得到K的任何信息。
以下简要介绍Shamir门限方案。
设K∈Zq,随机选择Zq上的t-1次多项式f(x)且满足f(0)=K,分发给每个用户Ui的秘密份额为f(ui),其中ui为用户Ui的公开信息。
任意t个用户都可以利用如下的Lagrange插值公式重构K=f(0):
(2-3)
可以证明,Shamir的(t,n)门限方案是一个完备的理想方案。
2.3Hash函数
Hash,一般翻译做"
散列"
,也有直接音译为"
哈希"
的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。
这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。
Hash主要用于信息安全领域中加密算法,他把一些不同长度的信息转化成杂乱的128位的编码里,叫做Hash值。
也可以说,Hash就是找到一种数据内容和数据存放地址之间的映射关系。
了解了Hash基本定义,就不能不提到一些著名的Hash算法,MD5和SHA-1可以说是目前应用最广泛的Hash算法,而它们都是以MD4为基础设计的。
那么他们都是什么意思呢?
这里简单介绍以下几种Hash函数:
1)MD4
MD4(RFC1320)是MIT的RonaldL.Rivest在1990年设计的,MD是MessageDigest的缩写。
它适用在32位字长的处理器上用高速软件实现——它是基于32位操作数的位操作来实现的。
2)MD5
MD5(RFC1321)是Rivest于1991年对MD4的改进版本。
它对输入仍以512位分组,其输出是4个32位字的级联,与MD4相同。
MD5比MD4来得复杂,并且速度较之要慢一点,但更安全,在抗分析和抗差分方面表现更好
3)SHA-1及其他
SHA-1是由NISTNSA设计为同DSA一起使用的,它对长度小于264的输入,产生长度为160bit的散列值,因此抗穷举(brute-force)性更好。
SHA-1设计时基于和MD4相同原理,并且模仿了该算法。
本文采用DSA算法实现签名,所以在使用Hash函数配套使用了SHA-1算法,从而具有较好的抗穷举性。
第3章口令共享认证算法介绍
3.1算法方案描述
张彰,蔡勉,肖国镇在文献[16]中提出一个新的基于离散对数问题门限共享验证签名方案,该方案是ElGamal签名方案[17]和Shamir门限方案的结合。
在该方案中,n个验证者中任意t个可以验证签名的有效性,而t-1个或更少的验证者不能验证签名的有效性。
伪造该方案的签名等价于伪造ElGamal签名。
下面,详细的介绍这个算法。
3.1.1参数设置
设p,q,g,H同上,PGC选择x∈Zq*以及xv∈Zq*作为PGC和认证系统的密钥,相对应的公钥分别是
(3-1)
共享密钥:
假设n个系统管理员的集合为G=(V1,V2,…Vn),PGC随机生成一个t-1次多项式
(3-2)
对每个系统管理员Vi,PGC计算xi=f(ui)modq其中ui是Vi的公开信息。
最后PGC公开y,yv,并把xi分别秘密地发送给Vi(i=1,2,…n)。
3.1.2口令
用户Uj在向PGC提交IDj并注册后,PGC将本文提出的门限共享验证签名中的消息m用用户身份值IDj代换,随机选取kj∈Zq*,计算
(3-3)
则PWj=(rj,sj)即为用户Uj的口令.且(IDj,PWj)满足方程
(3-4)
用户访问:
用户Uj在访问系统时,先用智能卡计算
(3-5)
其中随机数tj∈Zq*,T是用户访问系统的时间。
然后将Cj=(IDj,rj,A,B,T)送系统认证。
3.1.3共享认证
设T’是系统收到Cj的时间,如果ΔT=T’-T不超过规定值,并且经n个管理员中至少t个同意后,不妨设这t个管理员为G’=(V1,V2,…Vt),则Vi计算
,其中
(3-6)
最后系统验证
(3-7)
如果上式成立,则系统接受用户的访问要求。
3.2方案的正确性
证明:
由公式(3-3)有
由公式
(3-8)
和公式(3-6)有
所以
由公式(3-3),得
3.3方案的安全性分析
我们首先讨论伪造签名的困难性。
攻击者与t个验证者合谋可以求出验证密钥xv,注意到(rj,sj)是签名者对消息m的门限共享验证签名当且仅当(
)是签名者对消息m的ElGamal签名。
因此攻击者伪造方案的签名等价于伪造ElGamal签名。
由于方案利用了Shamir门限方案,少于t个验证者无法重构
,从而不能直接验证签名的有效性。
攻击者还可能试图通过判断(rj,y)相对于
的双重离散对数是否等于g相对于yv的离散对数,以验证签名的有效性,但这也是个困难问题。
由式(3-4)和式(3-5),签名的验证过程中求出验证者的秘密份额等价于求解离散对数问题。
攻击者根据截获的登陆信息Cj=(IDj,rj,A,B,T)通过式(3-9)求解sj等价于求解离散对数问题。
攻击者试图改变时间标记T以通过(3-11)式的验证将面临离散对数问题或单向函数的求逆问题。
少于t个验证者无法重构
,从而不能验证口令的正确性。
由于用户口令的认证必须得到系统的n个管理员中的至少t个同意,因此系统的安全性级别得到提高。
3.4方案的效率分析
设TE,TM和TI分别是模指数,模乘和模求逆运算的计算时间。
方案中生成签名的时间复杂性是2TE+2TM+TI,这取决于式(3-3)的计算量。
该方案签名产生的时间复杂性要优于文献[9]的方案,文献[9]的方案签名产生的时间复杂性是3TE+3TM。
该方案与文献[9]的方案签名验证的时间复杂性基本相同。
3.5方案的缺陷分析
口令共享认证的作用不仅在于防止系统内部个别管理人员对认证数据的截留和滥用,而且对涉及多个团体和行业的敏感数据的访问,必须经过若干管理人员的同意方可实施,从而可以控制和提高系统的安全等级。
从这个角度讲,文献[16]中的方案在安全性方面还存在以下问题:
(1)在共享密钥阶段,管理员无法识别PGC(口令产生中心)所给秘密份额xi的正确性;
如果PGC恶意地向管理员提供假的秘密份额,那么会造成正确口令的认证失败,另外,如果攻击者在截获PGC发送给管理员的秘密份额后,用随机选取的整数xt,替换xi,发给系统管理员,当管理员收到xt后,无法识别这一秘密份额是否遭到了替换攻击。
(2)在共享认证阶段,口令验证组无法识别某一管理员是否提供了假的秘密份额F’,一旦某个管理员恶意提供假的秘密份额,就会阻止合法用户访问系统。
(3)用户无法验证收到的口令PWj=(rj,sj)是否正确如果用户不掌握系统的秘密密钥xv,他就不可能利用方程(3-4)检验所收到口令是否正确,但是一旦他知道了xv,他就可以和任何一个管理员合谋,达到非法访问系统的目的。
反之,用户根本无法识别所给口令的有效性,从而给PGC的恶意欺骗和外部的替换攻击提供了机会。
第4章密码函数库使用介绍
4.1Openssl简介
Openssl是一个功能丰富且自包含的开源安全工具箱。
它提供的主要功能有:
SSL协议实现(包括SSLv2、SSLv3和TLSv1)、大量软算法(对称
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 口令 共享 认证 算法 研究 实现 模板
![提示](https://static.bdocx.com/images/bang_tan.gif)