电子签名系统安全性文档格式.docx
《电子签名系统安全性文档格式.docx》由会员分享,可在线阅读,更多相关《电子签名系统安全性文档格式.docx(8页珍藏版)》请在冰豆网上搜索。
YuYuan
(HubeiUniversityofscienceandTechnology,Schoolofcomputerscienceandtechnology,XianningHubei)
Abstract:
Intelligentisthefuturedevelopmentdirectionofelectronicproducts.Theelectroniccommercewithitsefficient,convenient,lowcostadvantage,sothattheelectronicsignatureinsteadofahandwrittensignature.Bute-commercebasedonnetworkopen,unsafe,sosecuritybecomesthemostimportantfactorofitsdevelopment.BasedontheanalysisoftheelectronicsignaturesystemimplementationtechniquesandtheuseofnonsymmetricencryptionalgorithmRSAtoensuretheirsafety,andapplicationprospectoftheelectronicsignaturesystemmadesomefeasiblesummary.
Keywords:
Electronicsignature;
RSA;
applicationprospect
0引言
为了确保传输的安全性,不得不采取一系列的安全技术,如数字签名、加密技术、密钥管理、防火墙、身份认证、安全协议等。
其中数字签名就是电子商务的核心技术之一,它可以保证信息传输的完整性、发送信息的不可否认性和不可抵赖性、交易者身份的确定性等。
1数字签名
1.1数字签名概述
数字签名是电子商务安全担当非常重要的角色。
随着电子商务的高速发展,电子签名的使用越来越频繁。
所谓数字签名就是附加在数据单元上的一些数据,或是对数据单元所作的密码变换。
这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性并保护数据,防止被人(例如接收者)进行伪造。
它是对电子形式的消息进行签名的一种方法,一个签名消息能在一个通信网络中传输。
密码技术是数字签名的技术基础,基于公钥密码体制和私钥密码体制都可以获得数字签名,现在主要运用是基于公钥密码体制的数字签名。
1.2数字签名的特点
(1)签名者事后不能抵赖自己的签名;
(2)确认信息自签名后到收到为止,未被修改过;
(3)如果双方关于签名的真伪发生争执,能够在公正的仲裁者面前通过验证签名来鉴别其真伪。
1.3数字签名的原理
数字签名采用了双重加密的方法来实现防伪、防赖。
其原理为:
(1)被发送文件用SHA编码加密产生128bit的数字摘要。
(2)发送方用自己的私钥对摘要再加密,这就形成了数字签名。
(3)将原文和加密的摘要同时传给对方。
(4)对方用发送方的公共密钥对摘要解密,同时对收到的文件用SHA编码加密产生又一摘要。
(5)将解密后的摘要和收到的文件在接收方重新加密产生的摘要相互对比。
如两者一致,则说明传送过程中信息没有被破坏或篡改过。
否则不然。
1.4数字签名的作用
数字签名机制作为保障网络信息安全的手段之一,可以解决伪造,抵赖和篡改问题。
数字签名的目的之一,就是在网络环境中代替传统的手工签字与印章,其可抵御的网络攻击主要有:
1)防冒充。
其他人不能伪造对消息的签名,因为私有密钥只有签名者自己知道,所以其他人不可以构造出正确的签名结果数据。
显然要求各位保存好自己的私有密钥,好像保存自己家门的钥匙一样。
2)可鉴别身份。
网上交易的双方很可能素昧平生,相隔千里。
对于商家要确认客户端不是骗子,而客户也要相信网上的商店不是一个玩弄欺诈的黑店,因此能方便而可靠地确认对方的身份是网上交易的前提。
为顾客或用户开展服务的银行、信用卡公司和销售商店,为了做到安全、保密、可靠地开展服务活动,都需要进行身份认证的工作。
对有关的销售商店来说,他们不知道顾客的信用卡号码,只能把信用卡的确认工作完全交给银行来完成。
银行和信用卡公司可以采用各种保密与识别方法来确认顾客的身份是否合法、确认订货和订货收据信息同时还要注意防止发生拒付款等问题。
3)防篡改(防破坏信息的完整性)。
传统的手工签字,假如要签署一本200页的合同,是仅仅在合同末尾签名呢还是对每一页都有签名,不然,对方会不会偷换其中几页这些都是问题所在。
而数字签名,如前所述:
签名与原有文件已经形成了一个混合的整体数据,不可能篡改,从而保证了数据的完整性。
4)防重放。
如在日常生活中,A向B借了钱,同时写了一张借条给B;
当A还钱的时候,肯定要向B索回他写的借条撕毁,不然,恐怕他会再次挟借条要求A再次还钱。
在数字签名中,如果采用了对签名报文添加流水号,时戳等技术,可以防止重放攻击。
5)防抵赖。
,数字签名可以鉴别身份,不可能冒充伪造,那么,只要保存好签名的报文,就好似保存好了手工签署的合同文本,也就是保留了证据,签名者就无法抵赖。
以上是签名者不能抵赖,那如果接受者确已收到对方的签名报文,却抵赖没有收到呢?
要预防接受者的抵赖,在数字签名体制中,要求接受者返回一个自己签名的表示收到的报文,给对方或者是第三方,或者引入第三方机制。
如此操作,双方均不可抵赖。
6)信息传输的保密性。
有了机密性保证,截收攻击也就失效了。
手工签字的文件(如合同文本)是不具备保密性的,文件一旦丢失,文件信息就极可能泄露。
数字签名,可以加密要签名的消息。
当然,签名的报文如果不要求机密性,也可以不用加密。
2电子签名技术中的函数和加密算法
数字签名技术是结合消息摘要函数和公钥加密算法的具体加密应用技术。
数字签名(DigitalSignature)指一个用自己的非对称密码算法私钥加密后的信息摘要,附在消息后面;
别人得到这个数字签名及签名前的信息内容,使用该用户分发的非对称密码算法公钥,就可以检验签名前的信息内容在传输过程或分发过程中是否己被篡改并且可以确认发送者的身份。
2.1MD5函数
MD5是RonRivest设计的单向散列函数,MD表示消息摘要。
MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。
在MD5算法中,首先需要对信息进行填充,使其字节长度对512求余的结果等于448。
因此,信息的字节长度(BitsLength)将被扩展至N*512+448,即N*64+56个字节(Bytes),N为一个正整数。
填充的方法如下,在信息的后面填充一个1和无数个0,直到满足上面的条件时才停止用0对信息的填充。
然后,在在这个结果后面附加一个以64位二进制表示的填充前信息长度。
经过这两步的处理,现在的信息字节长度=N*512+448+64=(N+1)*512,即长度恰好是512的整数倍。
这样做的原因是为满足后面处理中对信息长度的要求。
MD5中有四个32位被称作链接变量(ChainingVariable)的整数参数,他们分别为:
A=0x01234567,B=0x89abcdef,C=0xfedcba98,D=0x76543210。
当设置好这四个链接变量后,就开始进入算法的四轮循环运算。
循环的次数是信息中512位信息分组的数目。
将上面四个链接变量复制到另外四个变量中:
A到a,B到b,C到c,D到d。
主循环有四轮(MD4只有三轮),每轮循环都很相似。
第一轮进行16次操作。
每次操作对a、b、c和d中的其中三个作一次非线性函数运算,然后将所得结果加上第四个变量,文本的一个子分组和一个常数。
再将所得结果向右环移一个不定的数,并加上a、b、c或d中之一。
最后用该结果取代a、b、c或d中之一。
以一下是每次操作中用到的四个非线性函数(每轮一个)。
F(X,Y,Z)=(X&
Y)|((~X)&
Z)
G(X,Y,Z)=(X&
Z)|(Y&
(~Z))
H(X,Y,Z)=X^Y^Z
I(X,Y,Z)=Y^(X|(~Z))
(&
是与,|是或,~是非,^是异或)
这四个函数的说明:
如果X、Y和Z的对应位是独立和均匀的,那么结果的每一位也应是独立和均匀的。
F是一个逐位运算的函数。
即,如果X,那么Y,否则Z。
函数H是逐位奇偶操作符。
假设Mj表示消息的第j个子分组(从0到15),<
<
s表示左移s个单位
FF(a,b,c,d,Mj,s,t)表示a=b+((a+(F(b,c,d)+Mj+ti)<
s
GG(a,b,c,d,Mj,s,t)表示a=b+((a+(G(b,c,d)+Mj+ti)<
HH(a,b,c,d,Mj,s,t)表示a=b+((a+(H(b,c,d)+Mj+ti)<
II(a,b,c,d,Mj,s,t)表示a=b+((a+(I(b,c,d)+Mj+ti)<
2.2对称密钥密码学算法
对称算法有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,反过来也成立。
在大多数对称算法中,加密和解密的密钥是相同的。
这些算法也叫秘密密钥算法。
它要求发送者和接受者在安全通讯之前,商定一个密钥。
对称算法的安全性依赖于密钥,泄露秘钥就意味着任何人都能对消息进行加解密。
只要通讯需要保密,密钥就必须保密。
著名的对称分组加密算法包括:
DES、3DES、RC5、IDEA及AES等。
对称加密过程
2.3非对称加密算法
RSA密码体制是美国麻省理工学院(MIT)Rivest、Shamir、Adleman于1978年提出来的,它是第一个理论上最为成功的公开密钥密码体制。
到目前为止,RSA是使用最广泛的公开密钥算法,在世界上许多地方RSA已经成为事实上的标准。
它的安全性基于数论中的Euler定理和计算复杂性理论中的论断:
求两个大素数的乘积是很容易的,但要分解两个大素数的乘积,求出它们的素数因子却是非常困难的。
RSA密码体制是一种幂模运算的加密体制。
要构造RSA解密算法中的公钥和私钥,必须首先构造两个大素数。
RSA解密算法的安全性与所使用的大素数有密切关系。
因此,研究RSA公钥体制中的大素数生成,构造符合RSA安全体系要求的强素数,是实现RSA算法的基础。
2.3.1RSA算法原理
1.公钥、私钥生成算法
(1)选择两个素数p和q;
(2)计算n=p*q,使φ(n)=(p-1)*(q-1);
(3)选择一个与φ(n)互质的数d;
(4)随机选取正整数e,使其满足e*d==1(modφ(n));
公钥由(e,n)构成,私钥由(d,n)构成。
2.加密算法
对于明文M,由C=M^emodn,得到密文C。
3.解密算法
对于密文C,M=C^dmodn,得到明文M。
该算法应满足以下条件:
(1)可以找到e,d和n,是的对所有M<
n,有M^ed=Mmodn;
(2)对所有M<
n,计算M^e和C^d是比较容易的;
(3)由e和n确定d是不可以的;
如果被窃取者得到了n,e和密文C,为了破解密文必须计算出私钥d,为此必须分解n为p和q。
因此为了提高破解的难度,增加更好的安全性,一般商业应用要求n长度不小于1024bit。
2.3.2RSA签名过程
(1)发送方采用某种摘要算法从报文中生成一个128位的散列值(称为报文摘要);
(2)发送方用RSA算法和自己的私钥对这个散列值进行加密,产生一个摘要密文,这就是发送方的数字签名;
(3)将这个加密后的数字签名作为报文的附件和报文一起发送给接收方;
(4)接收方从接收到的原始报文中采用相同的摘要算法计算出128位的散列值;
(5)报文的接收方用RSA算法和发送方的公钥对报文附加的数字签名进行解密;
(6)如果两个散列值相同,那么接收方就能确认报文是由发送方签名的。
RSA签名过程
2.4Hash签名
哈希(Hash)运算,是系统软件的一种功能,通过该软件,不论内容有多长的报文都可以转化为一串定长的散列值,报文发送者只要用自己的私钥对这一串散列值加密,就可得到发送者的数字签名,发送者不直接对报文加密的原因是防止生成大于报文长度2倍以上的数码,从而影响数字签名的生成速度.需要附带说明的是,哈希运算(Hash)在加密中需要,在验证数字签名中也需要。
Hash签名不属于强计算密集型算法,应用较广泛.它可以降低服务器资源的消耗,减轻中央服务器的负荷。
Hash的主要局限是接收方必须持有用户密钥的副本以检验签名,因为双方都知道生成签名的密钥,较容易攻破,存在伪造签名的可能。
3电子签名技术的应用
3.1电子签名在网络中的应用
利用数字签名技术虽然可以保证信息的完整性和不可伪造性,但不能保证信息传送的保密性,信息的内容可以被任何知道信息发送者公开密钥的人阅读。
为了保证网络通信的安全,保证信息传送的完整性、不可抵赖性和保密性,需要对要传送的信息进行电子签名。
3.2电子签名在商务中的作用
3.2.1多人签字
在实际的报文传输中,常常会遇到要求多个人在同一份报文上进行签字的情况。
多人数字签名的实现方法如下:
设定发送方的签名次序,每个签名者只验证前一个签名人的签名。
如果验证通过,就在此基础上加上自己的签名,否则终止签名。
每—个签名者都可以推算出前一个签名人和后一个签名人,并且知道他们的公开密钥。
最后一位签名者在签名完成后将最终信息和签名加上公开加密信息一起发送出去。
3.2.2数字签名技术可以提供防伪功能
由于数字签名具有不可伪造的特性,所以在防止重放攻击的情况下,可以用于厂家给贵重商品提供防伪标识。
3.2.3数字签名还可以用来为网址做签名
在网络上,它可以用于鉴别真假网址防止网络诈骗,网络诈骗被认为是一个难题,运用数字签名可以非常有效解决。
电子商务的网址如果附加上可信方的数字签名,就可以为顾客证明自己的真实性。
3.2.4数字签名和代理签名技术
通过法律认可的数字签名和代理签名技术,能够实现网络和虚拟环境下的不可否认和身份验证,从而建立信任关系,消除顾客疑虑。
代理签名技术能够将具有很好信誉的大型厂家的信誉传递给由其认证过的代理商,为顾客提供产品质量、售后服务等各种保障和承诺。
从而,顾客可以凭借厂家的信誉进而相信商家,商家也凭借信任关系扩大经营规模,以数字签名和代理签名的形式为顾客提供多样化的信誉保障。
最终它们解决电子商务各方的后顾之忧。
3.2.5数字签名代替其他签名
由于数字签名技术可以代替一切的签名、盖章、证件等,如学生证、获奖证书、车票、护照、通行证、档案、病历、发票、手写合同等等。
在电子政务中它可以用于审批、各种签名等。
可见利用数字签名,一方面可以提供更多的服务,甚至还可以提供各种证明和认证的服务,另一方面,利用数字签名可以为电子商务提供完整的支付、凭据、信任等方面的数字化解决方案,如电子商务活动过程中的电子支付、开发票、签定电子合同等环节。
4结束语
随着Interact和电子商务的快速发展和广泛应用,确保数据的可靠性、保密性、完整性和不可否认性显得越来越重要了。
数字签名技术作为信息安全的一项重要技术,其应用领域也将日益广泛,也将会越来越受到重视。
电子签名技术是实现交易安全的核心技术之一,在保障电子数据交换的安全性上是一个突破性的进展,可以解决否认、伪造、篡改及冒充等问题。
电子签名的应用范围十分广泛,凡是需要对用户的身份进行判断的情况都可以使用电子签名。
因此,加快电子签名的应用是非常有需要的。
参考文献
[1]张瑞娟,数字签名技术在网络安全中的应用研究[J].江苏财经职业技术学院.2010.6
[2]黄玮,基于网络系统文件安全数字签名的研究[D].西安:
西安电子科技大学,2007
[3]张磊,任云鹏.数字签名技术在网络安全中的应用[J].中国海洋大学,2010
[4]毛臣,基于改进的数字签名的研究与应用[D].复旦大学,2009.03.20
[5]耿敏,电子签名系统的设计与实现[D].东北大学.通信与信息系统.2003.1.1
[6]郑光明,一种数字签名系统的设计与实现[J].湖南理工学院.计算机系.2007.4