信息安全报告-数字签名技术

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《信息安全》期末报告题目数字签名技术学生姓名班级学号任课教师完成日期2013年6月11日评分数字签名技术在平常生活中,使用手写签字与印章签署合同、文件、命令、条约等。但是,当计算机网络出现之后,如何对电子文档!电子文件签名就成了一个需要解决的问题。该问题不解决,就会严重阻碍计算机网络的进一步应用,如电子商务、电子政务等。在数字签名技术出现之前,曾经出现过一种数字化签名技术,简单地说就是在手写板上签名,然后将签字的图像传输到电子文档中,这种数字化签名可以被剪切,然后粘贴到任意文档上,由于非法复制非常容易,所以这种签名方式是不安全的。数字签名技术与数字化签名技术是两种截然不同的安全技术,数字签名与用户的姓名和手写签名形式毫无关系,它使用了信息发送者的私有密钥变换需传输的信息。对于不同的文档信息,发送者的数字签名是不相同的。没有私有密钥,任何人都无法完成此变换,也就是不能冒充别人进行签名。现在,数字签名技术的常见应用方式是使用一个智能卡,甚至还附加采用指纹、视网膜扫描以及语音识别测试等其他技术,或者使用这些东西的合成技术以提高签名和认证的准确性。一、数字签名的定义所谓数字签名(DataSignature),是指一种能为接收者验证数据完整性和确认数据发送者身份,并可山第三方确定签名和所签数据真实性的算法方案。数字签名方案通常包括三个主要过程:系统初始化过程、签名产生过程和签名验证过程。系统的初始化过程产生数字签名方案用到的一切参数:签名产生过程中,用户利用给定的算法对消息产生签名;签名验证过程中,验证者利用公开的验证方法对给定的消息的签名进行验证,得出签名是否有效的结论。数字签名的形式化定义是数字签名描述性定义的一种抽象和形式化的概括。签名过程和验证过程本质上是两个不同的算法。通俗我们讲的数字签名,实际上就是数字签名方案。所谓数字签名方案,是指由消息集合M、密钥集合K、签名集合S、以及签名算法SIG和验证算法VER组成的5元组。其中K是包括公钥和私钥在内的所有密钥的集合,并要求满足下列条件:(l)签名算法:对于密钥集合K,相应的签名算法为SIGsigk,SM:sigk,对任意的消息Mm,有)(msigsk,那么Ss为消息m的签名,将),(sm传送到签名验证者。(2)验证算法:对于密钥集合K,有签名验证算法)(,)(,),(},{:xsigyFalsexsigyTrueyxVerFalseTrueSMVerkkkk签名接受者或验证者受到),(sm后,计算TrueyxVerk),(,签名有效;否则,签名无效。二、数字签名的分类(1)基于数学难题的分类根据数字签名所基于的数学难题,数字签名方案可分为基于离散对数问题的签名方案、基于素因子分解的签名方案、基于椭圆曲线离散对数问题的签名方案、基于离散对数和素因子分解的签名方案、基于二次剩余问题的签名方案等。(2)基于签名用户的分类根据数字签名用少/的多少,分为单用户签名和多用户签名的数字签名方案。多个用户的签名方案又称多重数字签名方案。根据签名过程的不同,多重数字签名方案可分为有序多重数字签名方案和广播多重数字签名方案。(3)基于数字签名是否具有恢复特性的分类根据数字签名是否具有恢复特性,数字签名分为两类:一类是不具有消息自动恢复的特性,另一类是具有消息自动恢复的特性。(4)基于签名人对消息是否可见的分类根据签名人对消息是否可见,数字签名分为普通数字签名方案和盲签名方案。盲签名方案表示签名者对消息不可见,但事后可以证明消息的存在。又根据签名者是否可以对消息拥有者进行追踪分为弱盲签名方案和强盲签名方案。(5)基于签名人是否受别人委托签名的分类根据签名人是否受别人委托,数字签名分为普通数字签名方案和代理签名方案。如果授权的不是一个人,而是多个人,这时的数字签名方案称为代理多重数字签名方案。三、数字签名的功能归纳起来,数字签名技术可以解决伪造、篡改、冒充、抵赖等问题,其功能主要表现在以下几方面:(1)机密性.数字签名中报文不要求加密,但在网络传输中,可以将报文信息用接收方的公钥进行加密,以保证信息的机密性。(2)完整性。数字签名与原始文件或其摘要一起发送给接收者,一旦信息被篡改,接收者可通过计算摘要和验证签名来判断该文件无效,从而保证了数据的完整性。(3)身份认证。在数字签名中,用户的公钥是其身份的标志,当其使用私钥签名时,如果接收方或验证方用其公钥进行验证并获通过,那么可以肯定签名人就是拥有私钥的那个人,因为私钥是签名人唯一知道的秘密。(4)防伪造。除签名人外,任何其他人不可能伪造消息的签名,因为签名密钥即私钥只有签名者自己知道,其他人不可能构造出正确的签名数据。(5)防抵赖。数字签名既可作为身份认证的依据,也可作为签名者签名操作的证据,防止抵赖。要防止接收者的抵赖,可以在数字签名系统中要求接收者返回一个自己签名的表示收到的报文,给发送者或受信任第三方。如果接收者不返回任何信息,此次通信可终止或重新开始,签名方也没有任何损失,由此双方均不可抵赖。(6)防重放攻击。如在电子商务中,公司A向公司B发送了一份商品订单,如果有攻击者中途截获订单并发送多份给公司B,这样会导致公司B以为公司A订购了多批商品。在数字签名中,通常采用了对签名报文加盖时间戳或添加处理流水号等技术,可以防止这种重放攻击。下面介绍一种数字签名算法——椭圆曲线签名算法。四、椭圆曲线签名算法椭圆曲线在代数学和几何学上已有一百五十多年的研究历史,有着复杂的数学背景,涉及到数论、群论和射影几何等学科。1985年N.Koblitz和V.Miller分别提出了椭圆曲线密码体制(ECC),其安全性依赖于椭圆曲线群上离散对数问题(ECDLP)的难解性,即已知椭圆曲线上的点P和kP,计算k的困难程度。ECC具有安全性高、计算量小、存储空间占用小、带宽要求低等特点。这些优点使得椭圆曲线公钥密码体制将应用到越来越多的领域,具有特别重要的意义。带宽要求低使ECC在无线网络领域具有广泛的应用前景。4.1密码学中的椭圆曲线在代数学和几何学中所涉及到的椭圆曲线都是连续的,这是因为椭圆曲线上点的坐标,是实数的(因为在代数学和几何学里的椭圆曲线是定义在实数域上的),实数是连续的,导致了曲线的连续。这样的曲线并不适合用于加密,所以,我们必须把椭圆曲线变成离散的点。因此,我们要把椭圆曲线定义在有限域上(顾名思义,有限域是一种只有由有限个元素组成的域)。下面,给出一个有限域pF,这个域只有有限个元素,同时满足下列条件:(1)pF中只有p(p为素数)个兀素0,1,2p-2,p-1;(2)pF的加法()ab法则是(mod)abcp;即/abp的余数和/ep的余数相同。(3)pF的乘法()ab法则是(mod)abcp;(4)pF的除法(/)ab法则是/(mod)abcp;即1(mod)abcp;(1b也是一个0到1p之间的整数,但满足11(mod)bbp)。(5)pF的单位元是1,零元是0。并不是所有的椭圆曲线都适合加密。23yxaxb是一类可以用来加密的椭圆曲线,也是最为简单的一类。我们首先需要把23yxaxb这条曲线定义在pF上,然后再利用这样的曲线进行加密签名。选择两个满足下列条件的小于p(p为素数)的非负整数a、b。324270(mod)abp则满足下列方程的所有点(,)xy,再加上无穷远点O,构成一条椭圆曲线。23(mod)yxaxbp其中x,y属于0到1p间的整数,并将这条椭圆曲线一记为(,)Epab。图1是23(mod23)yxaxb的图像。图123(mod23)yxaxb的图像。在图1中,椭圆曲线表现为一个一个离散的点。椭圆曲线在不同的数域中会呈现出不同的样子,但其本质仍是一条椭圆曲线。pF上的椭圆曲线同样有加法,但己经不能给出几何意义的解释。不过,加法法则和实数域上的差不多。(1)穷远点O是零元,有OOO,OPP。(2)(,)Pxy的负元是(,)xy,有()PPO。(3)11(,)Pxy,22(,)Qxy和33(,)Rxy有如下关系:23123131(mod)()(mod)xkxxpykxxyp其中,若PQ,则21(3)/2kxay;若PQ,则2121()/()kyyxx。最后,还要介绍一下椭圆曲线上的点的阶。如果椭圆曲线上一点P,存在最小的正整数n,使得数乘nPO,则将n称为P的阶;若n不存在,我们说P是无限阶的。事实上,在有限域上定义的椭圆曲线上所有的点的阶n都是存在的。4.2椭圆曲线上简单的加密与解密公开密钥算法总是要基于一个数学上的难题。比如RSA依据的是:给定两个素数p、q很容易相乘得到n,而对n进行因式分解却相对困难。ECC当然也是基于椭圆曲线上的难题。考虑如下等式:KkG其中,K,G为(,)Epab上的点,k为小于n(n是点G的阶)的整数。根据上述等式,给定k和G,根据加法法则,计算K很容易;但给定K和G,求k就相对困难了。这就是椭圆曲线加密算法采用的难题。我们把点G称为基点(basepoint),k(kn,n为基点G的阶)称为私有密钥(privatekey),K称为公开密钥(publickey)。利用椭圆曲线进行加密通信的过程如卜所述:(1)用户A选定一条椭圆曲线(,)Epab,并取椭圆曲线上一点,作为基点G。(2)用户A选择一个私有密钥k,并生成公开密钥KkG。(3)用户A将(,)Epab和K,G传给J日户B。(4)用户B接到信息后,将待传输的明文编码到(,)Epab上一点M,并产生一个随机整数r(rn)。(5)用户B计算点1CMrK;2CrG。(6)用户B将1C、2C传给用户A。(7)用户A接到信息后,计算12CkC,结果就是点M。因为12()()CkCMrKkrGMrKrkGM,再对点M进行解码就可以得到明文。在这个加密通信中,如果有一个偷窥者H,他只能看到(,)Epab、K、G、1C、2C而通过K、G求k或通过12CC求r都是相对困难的。因此,H无法得到A、B间传送的明文信息。图2ECC传输加密过程密码学中,描述一条pF上的椭圆曲线,常用到六个参量:(,,,,,)TpabGnh。P、a、b用来确定一条椭圆曲线;G为基点;n为点G的阶;h是椭圆曲线上所有点的个数m与n相除的整数部分。这几个参量取值的选择,直接影响了加密的安全性。参量值一般要求满足以下几个条件:(1)p当然越大越安全,但越大,计算速度会变慢,200位左右可以满足一般安全要求;(2)pnh;(3)1(mod),120pnt;(4)324270(mod)abp;(5)n为素数;(6)4h。4.3椭圆曲线签名方案从理论上讲,凡是基于离散对数的签名方案都可以平移到椭圆曲线密码体制中来,但椭圆曲线签名方案涉及的参数较为复杂,因此,先介绍ECDSA算法(ECDSA算法就是在椭圆曲线上实现DSA算法)所需的参数,然后再介绍签名过程和验证过程。4.3.1ECDSA参数ECDSA全局参数表示为(,,,,,,)qFRabGnh,其中q为有限域的大小,当qp时,p为奇素数,当mqp时,通常取2p,()GFq表示一个有限域;FR为()GFq中的一个元素;,()abGFq,椭圆曲线E的参数,定义椭圆曲线:23yxaxb或23yxyxaxb;基点(,)GGGxy,,()GGxyGFq,GE,G的阶为素数n,1602n,4nq,#(())/hEGFqn。用户私钥为随机整数[1,1]dn,相应的公钥为QdG。4.3.2签名过程(1)对于待签消息m,用哈希函数SHA-l计算()eHm,并转化为一个160位的整数;(2)任意选取一个随机整数k,[1,1]kn,计算11(,)kGxy;(3)计算1modrxn,如果0r,则返回第二步重新选择k;(4)计算1()modskedrn,如果0s,则返回第二步。消息m的签名为(r,s)。4.

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功