1、数字签名技术6.1 6.1 数字签名原理数字签名原理在网络环境下,发送方不承认自己发送过某一报文;接收方自己伪造一份报文,并声称它来自发送方;网络上的某个用户冒充另一个用户接收或发送报文;接收方对收到的信息进行篡改。数字签名技术可以解决上述情况引发的争端。数字签名离不开公钥密码学,在公钥密码学中,密钥由公开密钥和私有密钥组成。数字签名包含两个过程:使用私有密钥进行加密(称为签名过程),接受方或验证方用公开密钥进行解密(称为验证过程)。26.1 6.1 数字签名原理数字签名原理由于从公开密钥不能推算出私有密钥,所以公开密钥不会损害私有密钥的安全;公开密钥无须保密,可以公开传播,而私有密钥必须保密
2、。因此,当某人用其私有密钥加密消息,能够用他的公开密钥正确解密,就可一定该消息是某人签名的。因为其他人的公开密钥不可能正确解密该加密过的消息,其他人也不可能拥有该人的私有密钥而制造出该加密过的消息,这就是数字签名的原理。从技术上来讲,数字签名其实就是通过一个单向函数对要传送的报文(或消息)进行处理产生别人无法识别的一段数字串,这个数字串用来证明报文的来源并核实报文是否发生了变化。在数字签名中,私有密钥是某个人知道的秘密值,与之配对的唯一公开密钥存放在数字证书或公共数据库中,用签名人掌握的秘密值签署文件,用对应的数字证书进行验证36.2 RSA6.2 RSA数字签名数字签名任何公钥密码体制,当用
3、私钥签名时,接收方可认证签名人的身份;当用接收方的公钥加密时,只有接受方能够解密。这就是说,公钥密码体制即可用作数字签名,也可用作加密。1.RSA1.RSA数字签名数字签名设A为签名人,任意选取两个大素数p 和q,计算n=pq,(n)=(p-1)(q-1),随机选择整数e(n),满足 gcd(e,(n)=1;计算整数 d,满足:ed=1mod(n)。P,q和(n)保密,A的公钥为(n,e),私钥为 d。签名过程:对于消息m(mn,则可用哈希函数h进行压缩,计算 ,接收方或验证方收到(m,s)后,先计算 ,然后检查 是否成立,即可验证签名是否正确。在这里,可以判断m 是否被篡改。如果m包含重要的
4、信息,不能泄露,则签名还需要进行加密处理,再传送。56.2 RSA6.2 RSA数字签名数字签名2.RSA2.RSA加密加密这是常用的方案,此处介绍的目的是与签名方案进行对比,便于用法上的区分。不妨设接收人B的公钥e,私钥d保密,其他参数如上所述。A要将秘密信息m传输给B,先从公共数据库中查找到B的公钥e,然后计算密文:c=me mod n,再发送给B。B收到密文c后,计算m=cd mod n,从而恢复明文。因为只有他才可能利用其私钥d解密,对m来说,起到保密的作用。66.3 6.3 SchnorrSchnorr数字签名数字签名Schnorr数字签名方案是ElGamal型签名方案的一种变形该方
5、案由Schnorr于1989年提出,包括初始过程、加密过程和验证过程。.初始过程初始过程(1)系统参数:大素数p,q满足qp-1,q2160是整数,p2512是整数,确保在 Zp中求解离散对数的困难性;g Zp,且满足 gq=1modp,g1;h为单向哈希函数。p,q,g 作为系统参数,供所有用户使用,在系统内公开。(2)用户私钥:用户选取一个私钥x,1x q,保密。(3)用户公钥:用户的公钥y,y=gx modp,公开。76.3 6.3 SchnorrSchnorr数字签名数字签名2.2.签名过程签名过程用户随机选取一整数k,kZp*,计算r=gx modp,e=h(r,m),s=(k-xe
6、)mod q,(e,s)为用户对m 的签名。3.3.验证过程验证过程接收者收到消息 m和签名(e,s)后,先计算 r=gsyemodp ,然后计算e=h(r,m),检验e=e 是否成立?如果e=e,则签名有效;否则,签名无效。若(e,s)为合法签名,则有 gsye=gk-xegxe=gkmodp=rmodp。所以当签名有效时,上式成立,从而说明验证过程是正确的。86.4 DSA6.4 DSA数字签名数字签名1991年8月美国国家标准局(NIST)公布了数字签名标准(Digital Signature Standard,DSS)。此标准采用的算法称为数字签名算法(Digital Signatur
7、e Algorithm,DSA),它作为ElGamal和Schnorr签名算法的变种,其安全性基于离散对数难题;并且采用了Schnorr系统中,g为非本原元的做法,以降低其签名文件的长度。方案包括初始过程、签名过程和验证过程。.初始过程初始过程(1)系统参数:大素数p,q满足qp-1,2511p21024,2159q2160,确保在 Zp中求解离散对数的困难性;g Zp,且满足 g=h(p-1)/qmodp,其中h是一整数,1h1 。p,q,g 作为系统参数,供所有用户使用,在系统内公开。(2)用户私钥:用户选取一个私钥x,1x q,保密。(3)用户公钥:用户的公钥y,y=gx modp,公开
8、。96.4 DSA6.4 DSA数字签名数字签名2.2.签名过程签名过程对待签消息m,设 0mp。签名过程如下:(1)生成一随机整数 k,k Zp*;(2)计算 r=(gkmodp)modq;(3)计算 s=k-1(h(m)+xr)modq。则(r,s)为签名人对m的签名。3.3.验证过程验证过程(1)首先检查r和s是否属于0,q,若不是,则(r,s)不是签名;(2)计算t=s-1modq,r=(gh(m)tmodqyrtmodq modp)modq;(3)比较r=r 是否成立?若成立,则(r,s)为合法签名。则(r,s)为签名人对m的签名。106.4 DSA6.4 DSA数字签名数字签名正确
9、性证明:中间结论:对于任何整数t,若g=h(p-1)/qmodp,则 g tmodp=g tmodqmodp。116.5 6.5 特殊数字签名特殊数字签名盲签名:指签名人不知道所签文件内容的一种签名。代理签名:指签名人将其签名权委托给代理人,由代理人代表他签名的一种签名。多重签名:由多人分别对同一文件进行签名的特殊数字签名。群签名:由个体代表群体执行签名,验证者从签名不能判定签名者的真实身份,但能通过群管理员查出真实签名者。环签名:一种与群签名有许多相似处的签名形式,它的签名者身份是不可跟踪的,具有完全匿名性。前向安全签名:主要是考虑密钥的安全性,签名私钥能按时间段不断更新,而验证公钥却保持不
10、变。攻击者不能根据当前时间段的私钥,推算出先前任一时间段的私钥,从而达到不能伪造过去时间段的签名,对先前的签名进行了保护。双线性对技术:它是利用超奇异椭圆曲线中Weil对和Tate对所具有的双线性性质,构造各种性能良好的数字签名方案。126.6 6.6 数字签名应用数字签名应用数字签名技术最早应用于用户登录过程。推动数字签名广泛应用的最大功臣应当是PKI技术,在各国政府的积极支持下,PKI作为电子商务、电子政务的技术平台,使得技术应用、商业价值、生产力提高成为有机的整体,得到了长足的发展。到目前为止,全国各省市几乎都建立了自己的CA认证中心,这些CA中心的数字证书及相关应用方案被广泛应用于网上
11、报关、网上报税、网上报检、网上办公、网上招投标、网上采购、数字工商等大型电子政务和电子商务工程。136.6 6.6 数字签名应用数字签名应用iSignature电子签章系统可以在Word,Excel,Html文件上加盖电子印章和手写签名,并将该签章和文件绑定在一起,一旦被绑定的文件内容发生改变(非法篡改或传输错误),签章将失效。只有合法拥有印章钥匙盘并且有密码权限的用户才能在文件上加盖电子签章。iSignature电子签章系统的技术特点主要有:采用第三方CA认证机构的数字证书、用数字证书和电子印章或手写签名信息绑定、系统为每一个电子印章生成唯一序列编号、采用标准的散列算法(HASH)产生文件内
12、容数字摘要、采用标准的RSA和DES算法加密电子文件、采用智能钥匙盘存储印章和签名以及密钥信息、支持多个厂商的智能钥匙盘和标准第三方CA认证机构等。个人私钥保存到USB接口的一种集智能卡和读写器于一体的USB加密钥匙EKEY里面。146.6 6.6 数字签名应用数字签名应用iSignature电子签章系统操作流程如图所示。15小结小结1判断电子数据真伪的依据是数字签名,数字签名其实就是通过一个单向函数对电子数据计算产生别人无法识别的数字串,这个数字串用来证明电子数据的来源是否真实,内容是否完整。数字签名可以解决电子数据的篡改、冒充、伪造和否认等问题。2本章介绍了三个数字签名方案,其中RSA数字
13、签名的安全性是基于大整数因子分解的困难问题;Schnorr数字签名方案和DSA数字签名方案的安全性是基于素数域上离散对数求解的困难问题。其共性是签名过程一定用到签名人的私钥,验证过程一定用到签名人的公钥。16小结小结3为适应特殊的应用需求,各种数字签名方案相继被提出,本章介绍了盲签名、代理签名、签名加密、多重签名、群签名和环签名等基本概念。4数字签名应用的公钥基础设施,称为PKI。目前,我国各省市几乎都建立了CA中心,专门为政府部门、企业、社会团体和个人用户提供加密和数字签名服务。5iSignature电子签章系统是一套基于Windows平台的应用软件,它可以对Word,Excel,Html文件进行数字签名,即加盖电子印章,只有合法用户才能使用。17
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100