陕西理工学院毕业论文(设计)
3.5.3 结论分析
开始输入两个素数p=11和q=23产生公钥和私钥e和d,通过调用hash变换将输入明文的英文字母转换为ASCII码,用公钥通过加密公式C= mi^e ( mod n )对明文进行加密,在仿真软件上显示出密文为乱码,第三方窃取也无法理解其意思,加密成功。密文通过传输到对方,接受到密文者可以用私钥通过解密公式P = ci^d ( mod n )对密文进行解密,然后在调用hash变换将ASCII码转换为英语传输内容显示出。结果与传输前的明文完全一致,加密解密成功。
第22页 共41页
陕西理工学院毕业论文(设计)
4 基于RSA的数字签名
4.1 数字签名概述
[4]
1976年Whittled Diffie和Maitin Hellman最先提出数字签名档概念,目的是使签名者对电子文件进行签名并且无法否认,验证者无法篡改文件。这位数字签名的发展奠定了理路基础。
2005年4月1日起开始施行的《中华人民共和国电子签名法》中数字签名的定义:“是指数据电文中以电子形式所含、所附用于识别签名人身份并表明签名人认可其中内容的数据。”
数字签名主要的功能是:保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生。 数字签名技术是将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者只有用发送的公钥才能解密被加密的摘要信息,然后用Hash函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。
按照不同的分类方式可以对数字签名进行不同的分类:
(1)按照数学难题分类:数字签名方案可分为基于离散对数问题的签名方案和基于素因子分解问题的签名方案。
[5]
(2)按照签名用户分类:可分为单个用户签名和多个用户签名方案。
(3)按照数字签名的特性分类:可分为不具有消息自动恢复的数字签名和具有消息自动恢复特性的数字签名。
(4)按照数字签名的实现分类:可分为直接和需仲裁的数字签名。
(5)按照数字签名的功能可将数字签名分为:普通数字签名和特殊数字签名。特殊数字签名主要包括:盲签名、双重签名、群签名、门限签名、代理签名、门限代理签名和不可否认的门限代理签
[6]
名等签名方案。
一个数字签名体制一般包含两个组成部分:签名算法(Signature Algorithm)和验证算法(Verification Algorithm)。签名算法用于对消息产生数字签名,它通常受一个签名密钥的控制,签名算法或者签名密钥是保密的,有签名者掌握;验证算法用于对消息的数字签名进行验证,根据签名是否有效验证算法能够给出该签名为“真”或者“假”的结论。验证算法通常也受一个验证密
[7]
钥的控制,但验证算法和验证密钥应当是公开的,以便需要验证签名的人能够方便的验证。
[8]
数字签名机制作为保障网络信息安全的手段之一,可以解决伪造、抵赖、冒充和篡改问题。 (1)防冒充(伪造):其他人不能伪造对消息的签名,因为私有密钥只有签名者自己知道,所以其他人不可能构造出正确的签名结果数据。显然要求各位保存好自己的私有密钥,好象保存自己家门的钥匙一样。
可鉴别身份:由于传统的手工签字一般是双方直接见面的,身份可以很清楚;在网络环境中,接收方必须能够鉴别发送方宣称的身份。接收者使用发送者的公开密钥对签名报文进行解密运算,如其结果为明文,则签名有效,证明对方身份是真实的。
(2)防篡改(防破坏信息的完整性):数字签名时,签名与原有文件已经形成了一个混合的整体数据,不可能篡改,从而保证了数据的完整性。
(3)防重放:在数字签名中,如果采用了对签名报文添加流水号、时戳等技术,可以防止重放攻击。
(4)防抵赖:数字签名可以鉴别身份,不可能冒充伪造,那么,只要保存好签名的报文,就好似保存好了手工签署的合同文本,也就是保留了证据,签名者就无法抵赖。以上是签名者不能抵赖,如果接收者确已收到对方的签名报文,要防接收者的抵赖,在数字签名体制中,要求接收者返回一个自己签名的表示收到的报文,给对方或者是第三方,或者引入第三方机制,如此操作,双方均不可抵赖。
(5)机密性(保密性):有了机密性保证,截收攻击也就失效了。手工签字的文件是不具备保密性的,文件一旦丢失,文件信息就极可能泄露。数字签名,可以加密要签名的信息。 数字签名体制(Signature Algorithm System)是一个满足下列条件的五元组(M,S,K,SIG,VER),
第23页 共41页
陕西理工学院毕业论文(设计)
其中
(1)M为消息空间,它是某个字母表中所有字符串的集合; (2)S代表签名空间,它是所有可能的数字签名构成的集合;
(3)K代表密钥空间,它是所有可能的签名密钥和验证密钥对(sk,vk)构成的集合;
(4)SIG是签名算法,VER是验证算法。对于任意的一个密钥对(sk,vk)∈K,每一个消息m∈M和签名s∈S,签名变换SIG:M×Ksk→S和验证变换VER:M×S×Klvk→{true,false}是满足下列条件的函数:
?trueVERvk(m,s)???falses?SIGsk(m)s?SIGsk(m) (3.1)
4.2基于RSA的数字签名
RSA是目前使用最为广泛、最著名的公开密钥系统,它是由麻省理工学院的三位学者Rivest、Shamir和Adleman于1978年提出的。RSA密码系统可以完成数据加密、数字签名以及密钥交换等功
[9]
能,其安全性是建立在大素数因子分解困难问题上的。
设n=pq,p、q是两个大素数,消息空间和签名空间为P=A=Zn,定义K={(n,p,q,a,b)ln=pq,p,q为素数,ab=l(mod(n))}。值n和b公开的,p、q、a是保密的。对K=(n,p,q,a,b),签名及验证算法定义如下:
签名算法:
a
y=Sigk (x)=xmodn,n∈Z; (3.2)
验证算法:
Verk(x,y)=真
x=y modn,x,y∈Zn。 (3.3)
6
如果B使用RSA解密规则Dk签一个消息x,那么B是能产生签名的唯一的人,这是因为Dk是保密的。验证算法使用RSA的加密规则Ek,因为Ek是公开的,保存在公开的信任机构服务器中,所以任何人能验证一个签名。
4.3 RSA数字签名方案的不足
(1) 随着计算机速度的提高,以及集群计算技术的应用,RSA算法已经不足够安全,对RSA的破解也成为可能。RSA算法运行中所需要的密钥长度变得越来越大,使其计算量也猛增。经过实验得到,
[10]
密钥长度为1024位至2048位是比较合理的,既可以保证系统的安全性,计算量又可以接受。然而密钥长度的猛增,对RSA的应用带来严重的负面影响,使其应用范围越来越受到制约。 (2)任何人能通过对某一y计算x=Ek(y)来伪造一个随机消息x关于B的签名y,这是因为y=sig( ; kx)(3) 如果消息x1和x2的签名分别是y1和y2,则拥有x1、x2、y1、y2的任何人可伪造B关于消息x1x2的签名y1y2,这是因为sigk(x1x2)= sigk (x1) sigk (x2)modn。
(4) 由于RSA算法每次只能对[log2n]比特长的消息进行签名,这就的消息签名变得繁琐。这就减缓了系统的运行速度,降低了签名效率。
克服上述弱点的办法是对消息进行签名之前作杂凑变换,亦称杂凑函数计算。变换之后再进行签名,降低了签名计算量,这样既能完成签名任务,又能保证签名效率。
第24页 共41页
陕西理工学院毕业论文(设计)
5 RSA算法的实际应用及发展
5.1 算法的应用
RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。
RSA算法是第一个既能用于数据加密又能用于数字签名的算法,其中在数字签名方面的应用最为广泛。基于RSA 算法的数字签名技术在电子商务安全中的应用, 就可以防止交易过程中伪造、篡改信息, 或冒用别人名义发送信息, 或发出( 收到) 信件后又加以否认等情况发生。这是因为, 由于发送方用私钥加密消息, 事后就不能否认发送的报文签名( 即抗否认性) ; 接收者能够利用发送方的公钥核实发送者发送的报文签名, 由于接收者不知道发送方的密钥, 就不可能伪造发送者的报文签名( 即认证性) ; 也不能对发送者的报文进行窃取( 即保密性) 或篡改( 即完整性) 。因此, 利用数字签名技术可以有效地达到电子商务系统中信息传递的保密性、完整性、认证性和不可否认性等要求, 有效防止各种电子商务中的安全隐患, 充分实现电子商务交易活动中的信息安全。
随着密码学商业应用的普及,公钥密码学受到前所未有的重视。除传统的密码应用系统外,PKI系统以公钥密码技术为主,提供加密、签名、认证、密钥管理、分配等功能。
保密通信:保密通信是密码学产生的动因。使用公私钥密码体制进行保密通信时,信息接收者只有知道对应的密钥才可以解密该信息。
数字签名:数字签名技术可以代替传统的手写签名,而且从安全的角度考虑,数字签名具有很好的防伪造功能。在政府机关、军事领域、商业领域有广泛的应用环境。
秘密共享:秘密共享技术是指将一个秘密信息利用密码技术分拆成n个称为共享因子的信息,分发给n个成员,只有k(k?n)个合法成员的共享因子才可以恢复该秘密信息,其中任何一个或m(m?k)个成员合作都不知道该秘密信息。利用秘密共享技术可以控制任何需要多个人共同控制的秘密信息、命令等。
认证功能:在公开的信道上进行敏感信息的传输,采用签名技术实现对消息的真实性、完整性进行验证,通过验证公钥证书实现对通信主体的身份验证。
密钥管理:密钥是保密系统中更为脆弱而重要的环节,公钥密码体制是解决密钥管理工作的有力工具;利用公钥密码体制进行密钥协商和产生,保密通信双方不需要事先共享秘密信息;利用公钥密码体制进行密钥分发、保护、密钥托管、密钥恢复等。
基于公钥密码体制可以实现以上通用功能以外,还可以设计实现以下的系统:安全电子商务系统、电子现金系统、电子选举系统、电子招投标系统、电子彩票系统等。
公钥密码体制的产生是密码学由传统的政府、军事等应用领域走向商用、民用的基础,同时互联网、电子商务的发展为密码学的发展开辟了更为广阔的前景。
第25页 共41页
陕西理工学院毕业论文(设计)
5.2算法的改进
RSA算法是第一个能同时用于加密和数字签名的算法,从提出到现在已近20 年,经历了各种攻击的考验,是目前最优秀的公钥方案之一. RSA 的安全性依赖于大数的因子分解,缺点主要有二:1) 产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密;2) 分组长度太大,为保证安全性,n 至少也要600bit s 以上,运算代价高、速度慢,较对称密码算法慢几个数量级,而且随着大数分解技术的发展,这个长度还在增加,也不利于数据格式的标准化.下面是针对RSA解密速度慢的缺陷,利用中国剩余定理对其加以改进.这个改进措施主要是针对解密过程所做的改进。过程如下:
首先给出中国剩余定理: 令n1,n2,...nt为两两互素的正整数, N?n1n2...nt,则以下同余系统中,
x?a1modn1,x?a2modn2,...,x?atmodnt会在[0 , N - 1 ] 中有唯一解, 且这个解可以表示为
?t?N???N?x?????yiai?modN,其中??yi?1modni
?ni??i?1?ni??m1?mmodp, (1) m2?mmodq, (2)
根据在生成密钥时计算的额外参数dP,dQ ,以及原来的解密变换m?cmodr,可以计算下式:
dm1?mmodp?(cdmodn)modp?(kn?cd)modp?cdmodp?cr(p?1)?dpmodp (3)
由式(3),根据费尔马定理得
m1?cdPmodp,
同理可得
m2?cdQmodq.
将式(1)和式(2)稍做变换得, m?m1modp,m?m2modq.可以看出这是一个t=2的中国剩余定理的形式. 因此,根据中国剩余定理在t=2 时的简化形式,得到
x?(((a1?a2)?u)modn1)?n2?a2
其中, u满足u?n2?1modn1,即u为n2模n1的乘法逆元. 因此,我们利用化简的方法,将解密的步骤改为:
1) 设c为已加密数据,如果c<0或者c>n?1 ,消息不能被解密,转入异常处理. 2) 计算m1?cdPmodp. 3) 计算m2?cdQmodq. 4) 计算h?qInv(m1?m2)modp. 5) 计算m?m2?hp. 6) 返回m.
第26页 共41页