绪论:写作既是个人情感的抒发,也是对学术真理的探索,欢迎阅读由发表云整理的11篇数字签名技术论文范文,希望它们能为您的写作提供参考和启发。
0.引言
随着计算机网络的发展,网络的资源共享渗透到人们的日常生活中,在众多领域上实现了网上信息传输、无纸化办公。因此,信息在网络中传输的安全性、可靠性日趋受到网络设计者和网络用户的重视数字签名技术是实现交易安全的核心技术之一,在保障电子数据交换((edi)的安全性上是一个突破性的进展,可以解决否认、伪造、篡改及冒充等问题
1.数字签名
1.1数字签名技术的功能
数字签名必须满足三个性质
(1)接受者能够核实并确认发送者对信息的签名,但不能伪造签名
(2)发送者事后不能否认和抵赖对信息的签名。
(3)当双方关于签名的真伪发生争执时,能找到一个公证方做出仲裁,但公证方不能伪造这一过程
常用的数字签名技术有rsa签名体制、robin签名体制、e1gamal签名体制及在其基础之上产生的数字签名规范dss签名体制。
1.2数字签名技术的原理
为了提高安全性,可以对签名后的文件再进行加密。假如发送方a要给接收方b发送消息m,那么我们可以把发送和接收m的过程简单描述如下:
(1)发送方a先要将传送的消息m使用自己的私有密钥加密算法e(al)进行签名,得v=e(al(m))其中,a的私有加密密钥为al;
(2)发送方a用自己的私有密钥对消息加密以后,再用接收方b的公开密钥算法ebl对签名后的消息v进行加密,得c=e(b l (v))。其中,b的公开加密密钥为6l.
(3)最后,发送方a将加密后的签名消息c传送给接收方b
(4)接收方b收到加密的消息c后,先用自己的私有密钥算法d(62)对c进行解密,得v=d(h2挥))其中,b的私有解密密钥为62(5)然后接收方再用发送方a的公开密钥算法d(a2)对解密后的消息v再进行解密,得m=d(a2(v))。其中,,a的公开解密密钥为a2=这就是数字签名技术的基本原理。如果第三方想冒充a向b发送消息,因为他不知道.a的密钥,就无法做出a对消息的签名如果a想否认曾经发送消息给b.因为只有a的公钥才能解开a对消息的签名,.a也无法否认其对消息的签名数字签名的过程图l如下:
2. rsa算法
2.1 rsa算法的原理
rsa算法是第一个成熟的、迄今为止理论上最成功的公开密钥密码体制,该算法由美国的rivest,shamir,adle~三人于1978年提出。它的安全性基于数论中的enle:定理和计算复杂性理论中的下述论断:求两个大素数的乘积是容易计算的,但要分解两个大素数的乘积,求出它们的素因子则是非常困难的.它属于np一完全类
2.2 rsa算法
密钥的产生
①计算n用户秘密地选择两个大素数f和9,计算出n=p*q, n称为rsa算法的模数明文必须能够用小于n的数来表示实际上n是几百比特长的数
②计算 (n)用户再计算出n的欧拉函数(n)二(p-1)*(q-1),(n)定义为不超过n并与n互素的数的个数③选择。。用户从[(0, (n)一1〕中选择一个与}(n)互素的数b做为公开的加密指数
4计算d。用户计算出满足下式的d : ed = 1 mal (n)(a与h模n同余.记为a二h mnd n)做为解密指数。
⑤得出所需要的公开密钥和秘密密钥:公开密钥(加密密钥):pk={e,n} ;
秘密密钥(解密密钥);sk=(d,n}
加密和解密过程如下:
设消息为数m(m<n)
设c=(md)mod n,就得到了加密后的消息c;
设m=(ce)mod n,就得到了解密后的消息m。其中,上面的d和e可以互换
由于rsa算法具有以下特点:加密密钥(即公开密钥)pk是公开信息,而解密密钥(即秘密密钥))sk是需要保密的。加密算法e和解密算法d也都是公开的。虽然秘密密钥sk是由公开密钥pk决定的,但却不能根据pk计算出sk。它们满足条件:①加密密钥pk对明文m加密后,再用解密密钥sk解密,即可恢复出明文,或写为:dsk(esk(m))= m②加密密钥不能用来解密,即((d娜e,c}m)) } m③在计算机上可以容易地产生成对的pk和sk}④从已知的pk实际上不可能推导出sk⑤加密和解密的运算可以对调,即:e}(m)(es}(m)(m))=m所以能够防止身份的伪造、冒充,以及对信息的篡改。
3. rsa用于数字签名系统的实现
1概述
1.1概念与功能
数字签名是防止他人对传输的文件进行破坏.以及确定发信人的身份的手段该技术在数据单元上附加数据,或对数据单元进行秘密变换.这种数据和变换允许数据单元的接收者用以确认数据单元来源和数据单元的完整性,从而达到保护数据,防止被人进行伪造的目的。简单说来,数字签名是指用密码算法,对待发的数据进行加密处理,生成一段数据摘要信息附在原文上一起发送,接受方对其进行验证,判断原文真伪其签名思想是签名只能南一个人(个体)创建,但可以被任何人校验.
数字签名技术可以解决数据的否认、伪造、篡改及冒充等问题,满足上述要求的数字签名技术有如下主要功能:(1)发送者事后不能否认自己发送的签名;(2)接收者能够核实发送者发送的签名;(3)接收者不能伪造发送者的签名;(4)接收者不能对发送者的原文进行篡改;(5)数据交换中的某一用户不能冒充另一用户作为发送者或接收者
1.2数字签名与传统手写签名差别
(1)签署文件方面:一个手写签名是所签文件的物理部分,而数字签名不是,所以要使用其他的办法将数字签名与所签文件“绑定”。
(2)验证方面:一个手写签名是通过和一个真实的手写签名相比较来验证的而数字签名是通过一个公开的验证算法来验证:
(3)签名的复制:一个手写签名不容易被复制,因为复制品通常比较容易被鉴别来:而数字签名很容易被复制,因为一个文件的数字签名的复制品和原文件是一样的:所以要使用数字时问戳等特殊的技术避免数字签名的重复使用。
(4)手书签名是模拟的,且因人而异。数字签名是0和1的数字串,因人和消息而异。
一个安全有效的签名方案必须满足以下要求:1)任何人都可以验证签名的有效性;2)除了合法的签名者外,其他人伪造签名是困难的;3)对一个消息的签名不可复制为另一个消息的签名;4)签名的消息不可被篡改,一旦被篡改,则任何人都可以发现消息与签名的不一致;5)签名者事后不能否认自己的签名。
安全的数字签名实现的条件:发方必须向收方提供足够的非保密信息,以便使其能验证消息的签名,但又不能泄露用于产生签名的机密信息,以防止他人伪造签名。此外,还有赖于仔细设计的通信协议:
2原理
数字签名有两种:一种是对整体消息的签名,一种是对压缩消息的签名。每一种又可分为两个子类:一类是确定性(Deterministi)数字签名,其明文与密文是一一对应的,它对特定消息的签名不变化;一类是随机化的(Randomized)或概率式数字签名。
目前的数字签名技术大多是建立在公共密钥体制的基础上,其工作原理是:
(1)签名:发方将原文用哈希算法求得数字摘要,用签名私钥对数字摘要加密得数字签名,将原文与数字签名一起发送给接受方。
签名体制=(M,S,K,v),其中M:明文空间,S:签名的集合,K:密钥空间,V:证实函数的值域,由真、伪组成。
签名算法:对每一m∈M和每一k∈K,易于计算对m的签名s=Sigk(M)∈S
签名算法或签名密钥是秘密的,只有签名人掌握。
(2)验证:收方验证签名时,用发方公钥解密数字签名,得出数字摘要;收方将原文采用同样哈希算法又得一新的数字摘要,将两个数字摘要进行比较,如果二者匹配,说明经签名的电子文件传输成功。
验证算法:
Verk(S,M)∈{真,伪}={0,l1
3基于身份的数字签名
3.1优势
1984年Shamir提出基于身份的加密、签名、认证的设想,其中身份可以是用户的姓名、身份证号码、地址、电子邮件地址等。系统中每个用户都有一个身份,用户的公钥就是用户的身份,或者是可以通过一个公开的算法根据用户的身份可以容易地计算出来,而私钥则是由可信中心统一生成。在基于身份的密码系统中,任意两个用户都可以安全通信,不需要交换公钥证书,不必保存公钥证书列表,也不必使用在线的第三方,只需一个可信的密钥发行中心为每个第一次接入系统的用户分配一个对应其公钥的私钥就可以了。基于身份的密码系统不存在传统CA颁发证书所带来的存储和管理开销问题。
3.2形式化定义
基于身份的数字签名由以下4个算法组成,如图1所示。
Setup(系统初始化):输入一个安全参数k,输出系统参数param、和系统私钥mk,该算法由密钥产生机构PKG运行,最后PKG公开params,保存mk。Extract(用户密钥生成):输入params、mk和用户的身份ID,输出用户的私钥diD,该算法由PKG完成,PKG用安全的信道将diD返回给用户。Sign(签名):输入一个安全参数r、params、diD以及消息M,输出对}肖息M的签名盯,该算法由用户实现。Verify(验证):输入params、签名人身份ID、消息m和签名,输出签名验证结果1或0,代表真和伪,该算法由签名的验证者完成。其中,签名算法和验证算法与一般签名方案形式相同。
4数字签名在电子政务中的应用
4.1意义
数字签名的过程和政务公文的加密/解密过程虽然都使用公开密钥体系,但实现的过程正好相反,使用的密钥对也各不相同。数字签名使用的是发送方的密钥对,发送方用自己的私钥进行加密,接收方用发送方的公钥进行解密。这是一个一对多的关系,即任何拥有发送方公钥的人都可以验证数字签名的正确性。政务公文的加密/解密则使用接收方的密钥对,这是多对一的关系,即任何知道接收方公钥的人都可以向接收方发送加密公文,只有唯一拥有接收方私钥的人才能对公文解密。在实际应用过程中,通常一个用户拥有两个密钥对,一个密钥对用来对数字签名进行加密,解密;另一个密钥对用来对公文进行加密懈密,这种方式提供了更高的安全性。
4.2形式
4.2.1个人单独签名
由于政务公文的文件相对来说都比较大,所以一般需要先对所要传输的原文进行加密压缩后形成一个文件摘要,然后对这个文件摘要进行数字签名。一般由两个阶段组成:对原文的数字签名和对数字签名的验证。
(1)对原文的数字签名
先采用单向散列哈希算法对所要传输的政务公文x进行加密计算和压缩,推算出一个文件摘要z。然后,公文的发送方用自己的私钥SKA对其加密后形成数字签名Y,并将该数字签名附在所要传送的政务公文后形成一个完整的信息包(X+Y)。再用接收方的公钥PKB对该信息包进行加密后,通过网络传输给接收方。
(2)对数字签名的验证
接收方收到该信息包后,首先用自己的私钥SKB对整个信息包进行解密,得到两部分信息:数字签名部分Y和政务公文原文部分x;其次,接收方利用发送方的公钥PKA对数字签名部分进行解密,得到一个文件摘要Z;接着,接收方也采用单向散列哈希算法对所收到的政务公文原文部分进行加密压缩,推算出另外一个文件摘要z1。由于原文的任何改动都会使推算出的文件摘要发生变化,所以只要比较两个文件摘要z和z1就可以知道公文在传输途中是否被篡改以及公文的来源所在。如果两个文件摘要相同,那么接收方就能确认该数字签名是发送方的,并且说明文件在传输过程中没有被破坏。通过数字签名能够实现对原始报文的鉴别。
对称密码体制是一种传统密码体制,也称为私钥密码体制。在对称加密系统中,加密和解密采用相同的密钥。因为加解密密钥相同,需要通信的双方必须选择和保存他们共同的密钥,各方必须信任对方不会将密钥泄密出去,这样就可以实现数据的机密性和完整性。
二、非对称密码体制
非对称密码体制也叫公钥加密技术,该技术就是针对私钥密码体制的缺陷被提出来的。在公钥加密系统中,加密和解密是相对独立的,加密和解密会使用两把不同的密钥,加密密钥(公开密钥)向公众公开,谁都可以使用,解密密钥(秘密密钥)只有解密人自己知道,非法使用者根据公开的加密密钥无法推算出解密密钥,顾其可称为公钥密码体制。
采用分组密码、序列密码等对称密码体制时,加解密双方所用的密钥都是秘密的,而且需要定期更换,新的密钥总是要通过某种秘密渠道分配给使用方,在传递的过程中,稍有不慎,就容易泄露。
公钥密码加密密钥通常是公开的,而解密密钥是秘密的,由用户自己保存,不需要往返交换和传递,大大减少了密钥泄露的危险性。同时,在网络通信中使用对称密码体制时,网络内任何两个用户都需要使用互不相同的密钥,只有这样,才能保证不被第三方窃听,因而N个用户就要使用N(N–1)/2个密钥。对称密钥技术由于其自身的局限性,无法提供网络中的数字签名。这是因为数字签名是网络中表征人或机构的真实性的重要手段,数字签名的数据需要有惟一性、私有性,而对称密钥技术中的密钥至少需要在交互双方之间共享,因此,不满足惟一性、私有性,无法用做网络中的数字签名。相比之下,公钥密码技术由于存在一对公钥和私钥,私钥可以表征惟一性和私有性,而且经私钥加密的数据只能用与之对应的公钥来验证,其他人无法仿冒,所以,可以用做网络中的数字签名服务。
具体而言,一段消息以发送方的私钥加密之后,任何拥有与该私钥相对应的公钥的人均可将它解密。由于该私钥只有发送方拥有,且该私钥是密藏不公开的,所以,以该私钥加密的信息可看做发送方对该信息的签名,其作用和现实中的手工签名一样有效而且具有不可抵赖性。
一种具体的做法是:认证服务器和用户各持有自己的证书,用户端将一个随机数用自己的私钥签名后和证书一起用服务器的公钥加密后传输到服务器;使用服务器的公钥加密保证了只有认证服务器才能进行解密,使用用户的密钥签名保证了数据是由该用户发出;服务器收到用户端数据后,首先用自己的私钥解密,取出用户的证书后,使用用户的公钥进行解密,若成功,则到用户数据库中检索该用户及其权限信息,将认证成功的信息和用户端传来的随机数用服务器的私钥签名后,使用用户的公钥进行加密,然后,传回给用户端,用户端解密后即可得到认证成功的信息。
长期以来的日常生活中,对于重要的文件,为了防止对文件的否认、伪造、篡改等等的破坏,传统的方法是在文件上手写签名。但是在计算机系统中无法使用手写签名,而代之对应的数字签名机制。数字签名应该能实现手写签名的作用,其本质特征就是仅能利用签名者的私有信息产生签名。因此,当它被验证时,它也能被信任的第三方(如法官)在任一时刻证明只有私有信息的唯一掌握者才能产生此签名。
由于非对称密码体制的特点,对于数字签名的实现比在对称密码体制下要有效和简单的多。
中图分类号:TP309 文献标志码:A 文章编号:1006-8228(2015)05-44-03
Abstract: Access to information through the network is becoming more and more popular in people's daily life. At the same time, the information during the network transmission is faced with the security threats such as being intercepted or modified and so on, while digital signature technology can provide a range of security services in the data transmission. This paper designs and implements a digital signature system with C/C++ and the elliptic curve digital signature algorithm. The test shows that the system has a good performance and meets the safety requirements of the signature algorithm.
Key words: network transmission; digital signature; elliptic curve; e-commerce
0 引言
随着信息和电子技术的迅速发展以及网络技术的广泛应用,世界已经步入了信息社会。在政治、军事、商业和日常生活中,人们经常需要在纸质材料上手写签名。手写签名具有确认、核准、生效、负责等多种作用。近些年随着计算机网络技术的飞速发展,陆陆续续出现了电子商务、电子政务和电子金融系统。在这些系统应用中,人们需要通过网络信息传输对电子的文件、合同、信件及账单等进行数字签名以代替手写签名。计算机作为国家的关键基础设施和战略命脉,其安全状况直接影响到国家的安全和发展。信息加密是保证信息安全的关键技术,其理论是信息安全的核心内容之一。目前的数据加密、数字签名、消息认证等信息安全技术都是以密码技术作为基础进行设计的。
在电子商务活动日益盛行的今天,数字签名技术已经受到人们的广泛关注与认可,其使用已经越来越普遍。各国对数字签名的使用已颁布了相应法案,我国也于2004年8月通过了《电子签名法》。目前已有的签名算法主要有RSA签名方案、ELGamal签名方案、椭圆曲线数字签名算法、盲数字签名方案等等。因此,设计出简单、安全、高效的数字签名系统对于电子商务、电子政务的推广和应用具有十分重要的意义。
1 椭圆曲线公钥密码系统简介
1985年,Victor Miller和Neal Koblitz首次提出将椭圆曲线用于公钥密码学的思想。其理论基础是定义在有限域上的某一椭圆曲线上的有理点可构成有限交换群[1]。
1.1 椭圆曲线密码体制
如果能通过某种方法将明文通过适当的编码方式嵌入到椭圆曲线E上的点,则可以定义基于椭圆曲线E的ElGamal公钥密码系统[2]。
密钥生成算法:设(E,+)是有限域Fp上的椭圆曲线,G是E的循环子群,生成元为P,其阶n足够大,使得循环子群G上的离散对数问题是难解的。随机挑选一个整数a,使得1?a?n-1,计算Q=a・P;公开公钥(Q,P,G),保存私钥a。
加密算法:假设Bob想把明文m加密发送给Alice,Bob首先获取Alice的公钥(Q,P,G),将明文m编码为群G中的元素Pm,再选取随机数r,1?r?n-1,然后计算c1=r・P=(x1,y1),c2=Pm+r・Q=(x2,y2),则密文为(c1,c2)。
解密算法:Alice收到密文(c1,c2)后,利用私钥a计算出Pm=c2-a・c1,再对Pm解编码得到明文m[3]。
1.2 椭圆曲线数字签名算法
椭圆曲线数字签名算法ECDSA的安全性是基于有限域上椭圆曲线有理点群上离散对数问题的困难性。ECDSA已于1999年接受为ANSI X9.62标准,于2000年接受为IEEE 1363及FIPS 186-2标准[4]。
1.2.1 参数建立
⑴ 设q(>2160)是一个素数幂,E是有限域Fq上的一条椭圆曲线(q为素数或2m。当q为素数时,曲线E选为y2=x3+ax+b。当q=2m时,曲线E选为y2+xy=x3+ax2+b)。
⑵ 设G是E上有理点群E(Fq)上的具有大素数阶n(>2160)的元,称此元为基点。
⑶ h是单向Hash函数h,可选择SHA-1或SHA-256等。
⑷ 随机选取整数d:1
⑸ (q,E,G,h)是公开参数,d与P分别是签名者的私钥和公钥。
1.2.2 签名生成过程
⑴ 对消息,Alice随机选取一个整数k,1?k
⑵ 在群E(Fq)计算标量乘kP=(x1,x2),且认为x1是整数(否则可将它转换为整数)。
⑶ 记r=x1modn。如果r为0,返回第一步。
⑷ 计算s=k-1(h(m)+dr)modn。如果s为0,则返回第一步。
⑸ (r,s)是Alice对消息m的签名。将(r,s)发送给Bob。
1.2.3 签名验证过程
Bob收到(r,s)后执行以下操作。
⑴ 检验r与s是否满足:1?r,s?n-1,如不满足,则拒绝此签名。
⑵ 获取公开参数(q,E,G,h)及Alice的公钥P。
⑶ 计算w=s-1modn。
⑷ 计算u1=h(m)wmodn及u2=rwmodn。
⑸ 计算标量乘R=u1G+u2P。
⑹ 如果R=O,则拒绝签名,否则将R的x坐标转换成整数,并计算。
⑺ 检验v=r是否成立,若成立,则Bob接受签名,否则拒绝该签名。
2 签名系统分析及设计
本节主要讨论椭圆曲线数字签名系统的总体分析和设计。
2.1 域参数的选取
椭圆曲线密码体制的安全性是基于有限域上椭圆曲线离散对数问题的难解性。为了使签名系统更加安全,应该选取更加安全的椭圆曲线,基于某条椭圆曲线的离散对数问题求解难度很大。
设定义于有限域上的椭圆曲线E,其中q=pn,p是一个素数。椭圆曲线E的有理子群E()的阶用表示。椭圆曲线好坏的标准在于的大小。Hasse定理给出的是域上椭圆曲线的阶,其中q=pn。
对于超奇异椭圆曲线:
⑴ n是偶数,。
⑵ n是偶数,。
⑶ n是奇数或偶数,p≠1mod4,t=0。
对于非超奇异椭圆曲线,t满足性质。
2.2 签名系统流程
该签名系统包括签名和验证两个主要过程,分别如图1和图2所示。
2.3 系统总体设计
签名系统总体流程图如图3所示。
[开始][系统登录][合法
图4中,密钥生成模块主要负责生成签名所需密钥;摘要处理模块主要针对需要签名的文档生成HASH摘要;签名生成模块主要对数字摘要进行签名并将签名附加到源文档末尾;验证模块即对签名进行验证并返回验证结果,用数字1表示验证通过、数字0代表未通过。
3 椭圆曲线数字签名算法的实现
该系统利用C/C++基于.NET平台设计并实现[5]。系统中常用的运算法则为加减乘除和取余运算(取余运算被包含在除法运算中)。因为ECDSA算法均是大整数的运算,所以此系统所有运算方法均采用有符号的二进制运算方法且结果同样为有符号二进制数。由于加法和减法运算较为简单,下面主要列出乘法和取余数算法的具体过程。
乘法运算算法描述:
step 1 被乘数与乘数按低位对齐;
step 2 取乘数为运算的低位与被乘数相乘;
step 3 使用加法算法将此次step 2的结果与step 3的结果相加;
step 4 重复step 2直至加数位数取完。
取余数运算算法描述:
step 1 被除数与除数按低位对齐;
step 2 依次取被除数未被运算高位直至取出的数大于等于除数。当此数值小于除数是商,上0,否则上1;
step 3 将step 2的得数按减法算法减去除数;
step 4 重复step 2直至被减数取完,step 3的结果即为余数。
因为ECDSA算法的效率很大程度上取决于倍点算法的效率,所以在此详述此系统中的倍点算法[6]。在系统运行中无论是签名过程还是验证过程均需要计算k*G(x,y)即k倍的点G。k的取值是从1到n(n为基点G的阶)n为一个大素数,所以k的取值可能很大。这就意味着逐步点加的方法将消耗大量的时间。因此,在此系统中设计了一种较为快速的倍点算法,需要输入椭圆曲线上的点G及整数K,输出椭圆曲线上的点P=k*G(x,y),具体过程描述如下:
step 1 令num=1,i=1,P=G;建立数组point以储存每一步的点值,Point[0]=G;
step 2 如果num
step 3 计算num=num/2,n=num,i=i-2;P=point[i];执行下列循环:
for j from i to 1
如果 num=k 则输出P;否则 n=n/2,num=num+n;
P=P+point[j-1];
系统实现时初始化过程主要确定签名系统中各个参数,签名过程使用的是ECDSA中的签名生成算法,可以对本地文件进行签名。打开系统后,点击签名可以对选定的文档(TXT文件或者DOC文件)进行电子签名。
签名成功后,签名结果会追加在文档末尾,如图5所示。
文档验证人收到文档后,选择验证按钮来对已签名文档进行验证。若文档从未被篡改过,则会显示验证成功,如图6所示;若在传输过程中或者是在验证该文当前,有人对签名后的文档进行修改,则验证结果提示文件不可信(即有人篡改文档内容)。演示文档中以删除“war”为例进行验证,结果如图7所示。
4 安全性分析
该签名系统是基于有限域Fq上的椭圆曲线数字签名系统,其安全性基于椭圆曲线密码体制的安全性即椭圆曲线上离散对数问题的难解性。具体实现时还有几点需要考虑[7]。第一,系统参数组中使用安全的随机数。签名算法中使用了随机数,每一次的随机数需要安全生成、保存和使用并销毁,并且每次都使用不同的随机数,这在一定程度上可以提高系统的安全性。第二,确定合适的系统参数。选择恰当的系统参数可以保证ECDLP问题的难解性,可以使用NIST推荐的系统参数。第三,使用安全的Hash函数。算法中需要使用Hash函数对文档内容进行处理,好的Hash函数应具有如下特点:函数的正向计算容易;函数尽可能随机且不可逆。可以选取SHA-1等安全的Hash函数。
5 结束语
近年来,在电子商务、电子政务等快速发展的推动下,数字签名技术也得到了快速发展和应用,并且日益成为内容丰富、应用广泛的信息安全技术领域的核心技术之一。其中,椭圆曲线数字签名算法是众多签名算法中广受关注的一种算法。本文基于椭圆曲线数字签名算法,采用C/C++编程实现了一个椭圆曲线数字签名系统。通过测试表明,所设计和实现的签名系统完全满足信息防篡改等安全性要求,在电子商务、电子政务以及电子金融等领域具有一定的实用前景。
参考文献:
[1] 张龙军,沈钧毅,赵霖.椭圆曲线密码体制安全性研究[J].西安交通大学学报,2001.35(10).
[2] 何大可,彭代渊,唐小虎等.现代密码学[M].人民邮电出版社,2009.
[3] 赵泽茂.数字签名理论及应用研究[D].南京理工大学博士学位论文,2005.
[4] 徐茂智,游林.信息安全与密码学[M].清华大学出版社,2007.
关键词:信息安全;圆锥曲线数字签名;登录系统安全
中图分类号:TP309 文献标识码:A文章编号:1009-3044(2008)35-2463-01
A Secure Login Resolution Scheme
LONG Yong1,CAI Chang-xu2,CAI Chang-shu3
(1. Yunnan Energy School,Qujing 650001,China;puter and Information Department of Qujing Normal University,Qujing 650011,China;3.Yunnan E-government Network Management Center,Kunming 650031,China)
Abstract: The common information system login method adopts only user name and password to authenticate the users.In order to avoid the drawbacks of conventional methods which is vulnerable to the attacks of record keyboard, dictionary guess, SQL injection and so forth, the thesis design a novel scheme adopting Hash algorithm and Conic Curve Digital Signature technology. It can meet the security requirement of authentication, information integrity, non-repudiation.
Key words:information security;conic curve digital signature;system login security
1 前言
在大部分的C/S与B/S的登录页面中,都仅仅采用了用户名和密码两项来作为登录用户身份的验证,用户名和密码还直接就以明文的形式存储在数据库中,更有甚者,还只有密码一项来验证用户身份,且密码以明文的形式存储在数据库中。这样的系统都是极度不安全的,黑客打开数据库、记录合法用户的键盘敲击、或者字典猜测都很容易获取登录页面的用户名和密码。对于用户名推荐使用与部门或用户没有任何关联的符合一定复杂性的随机字符来最为用户名,不得使用Administrator、Admin等。黑客输入得到的用户名和密码就可以登录系统肆意进行相关的工作了。采用用户名加密码的哈西值组合,密码项就没有直接存储在数据库中,黑客打开数据库是找不到登录用户的密码项的,这样的安全性大大强于用户名和密码项的组合,但是它还不能抵抗字典猜测攻击,更危险的是,如果没有对用户名和密码框的输入进行非法字符的过滤,这样的系统还是很容易受到SQL注入攻击的,而SQL注入攻击是一种攻击效果非常好的攻击方法。
2 解决方案
为了保证登录页面的安全,必须采取更好的解决方案。本文针对常规解决方法的不足,设计了如下的安全登录解决方案:采用单向哈西用户名+用户授权文件+授权文件完整性校验+数字签名技术来解决登录的安全问题。登录的实际帐户在数据库在不存储实际名,而是存储帐户名的哈西摘要值,使用SHA-1,建议使用SHA-256。不同的用户角色授权文件不同,授权文件可以是任意格式的文件。完整性校验采用SHA-256算法,数字签名算法采用CCDSA算法[1]。CCDSA算法的参数选取采用文献[1]中的选取过成。数字签名算法不采用国际上流行算法如RSA,ECDSA,可以在一定的程度上避开了常见密码算法的已有攻击算法。本登录方案从源头上杜绝了SQL注入攻击,安全性极高。
登录的输入项目有:1)用户名;2)导入的授权文件,用户的私钥。
本登录方案的登录过程如下:
1) 登录用户输入符合一定复杂性要求的用户名。
2) 计算用户名的SHA-256哈西值,查找数据库中有无此哈西值存在,若存在说明此用户是一个存在的合法用户,否则退出登录。
3) 登录的用户导入登录的授权文件,用SHA-256计算哈西摘要值,在数据库中查找有无此授权文件的哈西值存在,若存在,则说明用户的授权文件是完整的,没有受到非法的篡改,否则退出登录。
4) 登录用户导入自己的私钥对计算出的授权文件哈西值进行圆锥曲线数字签名。
5) 登录的后台对授权文件的哈西摘要值的数字签名验证数字签名的合法性,若是合法的数字签名,则用户就可以最终登录入后台管理系统进行相关的操作了,否则退出登录。
3 结束语
关键词:数字身份数字签名RSAPKICA
日常生活中人们到商场购物,付款方式一般有两种:采用现金结算或采用银行卡结算。2006年1月4日和1月5日某媒体连续刊登了两篇报道,题目分别为《刷卡签名商家有责辨真伪》、《银行卡被盗刷商家没过错》。这两篇报道代表两个完全对立的观点,但是阐述的内容都具有相当的说服力。这就提出两个问题,第一,当银行卡被盗刷的情况下,由此产生的损失到底应该由“卡”的所有者承担,还是应该由收款的商家承担?第二,能否避免这种损失的发生?笔者对两个问题的回答是:在现有的法制环境、技术手段下,无法准确的判断损失、无法准确的分清责任,也就无法准确的判罚;采用新的安全技术能够避免这种损失,一旦出现被盗刷的情况,可以依法判罚。
传统身份识别、签名识别存在的缺陷
在现有金融支付平台上使用银行卡时,支付过程如下:在银行提供的联网POS机上刷卡,由客户输入密码,密码验证通过后POS机打印银行转账单据,客户在转账单据上签名,客户出示有效身份证明(如身份证),收款员验证客户签名及身份证明,收款员打印销售发票,至此整个支付过程结束。其中收款员验证客户签名及身份证明是非常关键的一个环节,本文所提出的问题就是针对这个环节。
该媒体两篇报道中支持卡所有者的观点认为,使用手写签名是银行卡不被盗刷的基本保障。这样可以鉴别刷卡人是否为卡的所有者。在中国银联颁发的《收单规范》中要求收单商户必须仔细核对签名,以防银行卡被盗刷。因此从卡的所有者角度出发,收单商户有责任对刷卡人的真实身份进行确认,对签名的真伪进行鉴别。如果收单商户不对刷卡人的手写签名进行鉴别,将意味着银行卡所有者的安全大门完全失去了最基本的设防。这种情况是任何合法交易对象,无论是收单商户、还是合法卡的所有者所不愿意看到的,将导致拥有银行卡的用户不再敢使用刷卡的方式消费,也意味着商户将失去一部份客户。
而站在收单商户的立场认为,银行卡被盗刷商家没有过错。商家无权干涉持卡者的消费方式,涉及的银行与银联也没有义务对POS机操作员进行培训,重要的是法院则认为刷卡过程中是否应该对签名进行鉴别、核对,相关法律法规没有做出特别规定,也就是说没有法律依据。所以据此,如果客户的银行卡丢失后没有及时挂失造成的损失,收单商户没有责任。
刷卡是一种非常方便的支付方式,但是要得到人们的认可、在生活中得以推广,必须有一个安全的支付环境和支付工具,使得卡的所有者、收单商户、银行三方的利益都得到充分的保护。
笔者认为,在目前的技术条件下,要求POS机操作员仅仅依靠身份证来识别刷卡人的真实身份,同时要鉴别刷卡人签名时的笔迹是一项非常困难的工作。因为,一方面现在使用的身份证技术含量低,容易伪造;另一方面鉴别签名笔迹是一项技术性非常强的工作,一般人无法胜任,只有行业内的专家才能准确的鉴别,然而在实际工作中不可能为每一台POS机配备一名这样的技术专家。
那么是否能够找到一种在身份鉴别、签名鉴别上都非常方便、快捷、安全、实用的技术,这一问题就是本文论述的核心:RSA非对称加密解密技术应用模型。
RSA加密解密算法论述
RSA是一个非对称加密解密算法,由加密解密算法、公共参数、一对存在数学关系的公钥和私钥构成,其中算法、公共参数、公钥是可以公开的,私钥必须秘密保存。RSA的核心在于,加密时使用私钥,而解密时则使用公钥。
例如:用户甲拥有公共参数PN=14803,公钥PK=151,私钥SK=8871。现有明文PM=1234。
用户甲使用私钥SK对明文PM进行加密得到密文SM。
SM=PMSKMOD(PN)=12348871MDO(14803)=13960用户甲将自己的公共参数PN,公钥PK,以及密文SM发送给用户乙。用户乙进行解密计算得到明文PM。
PM=SMPKMOD(PN)=13960151MDO(14803)=1234
RSA用作数字签名
作为签名必须具备两个特性:防篡改,除签名者以外的其他人对签过名的内容做的任何改动都将被发现;抗抵赖,签名者无法抵赖自己签名的内容。
每一个RSA的用户都将拥有一对公钥和私钥。使用私钥对明文进行加密的过程可以被看作是签名的过程,形成的密文可以被看作是签名。当密文被改动以后就无法使用公钥恢复出明文,这一点体现出作为签名的防篡改特性;使用公钥对密文进行解密的过程可以被看作是验证签名的过程,使用公钥对密文进行解密恢复出明文,因为公钥来自于签名的一方(即用私钥加密生成密文的一方)。因此,签名一方无法否认自己的公钥,抵赖使用自己公钥解密后恢复出的明文,这一点体现出作为签名的抗抵赖特性。
RSA用作数字身份
身份是一个人的社会属性,用于证明拥有者存在的真实性,例如身份证、驾驶证、军官证、护照等。作为身份证明,它必须是一个不会被伪造的,如果被伪造则能够通过鉴别来发现。
将RSA技术应用于身份证明。当一个人获得一对密钥后,为了使利用私钥进行的签名具有法律效力,为了使自己公开的公钥、公共参数能够作为身份被鉴别,一般通过第三方认证来实现。用户要将自己的公钥、公共参数提交给认证中心,申请并注册公钥证书,如果使用过程中有人对用户的公钥证书产生质疑,需要验证持有者身份,可以向认证中心提出认证请求,以确认公钥证书持有者身份的真实性以及公钥证书的有效性。因此,可以把这个公钥证书看作持有者的一个数字身份证。
数字身份、数字签名在线鉴别模型
公钥证书在使用过程中可能会涉及到两个主体,拥有者与持有者。拥有者是公钥证书真正的所有者,而持有者则可能是一个公钥证书及私钥的盗用者。目前,认证机构的认证平台一般是建立在PKI公钥基础设施之上。当收到对某一个公钥证书的认证请求时,认证完成后出具的认证结果仅能够证明公钥证书本身的真实性、与之相关的数字签名的不可抵赖性,却无法证明持有者就是拥有者。RSA的使用则要求私钥必须秘密保存,一旦泄露只能及时挂失,如果在挂失之前被盗用,所产生的损失只能由拥有者自己承担,这种情况与银行卡被盗刷是相同的。尽管数字身份、数字签名、数字认证都是非常新的技术手段,但是就目前的认证方式、认证过程以及认证结果来看,依然没有解决公钥证书和私钥被盗用的问题。
本文针对公钥证书、私钥被盗用的问题设计出“数字身份、数字签名在线鉴别”模型。
传统的数字认证过程中,被认证的公钥证书与持有公钥证书的实体即证书的持有者之间没有任何关联,即使被认证的公钥证书是真实的、有效的,也不能证明持有者就是拥有者,这样就为盗用者提供了可乘之机。因此,必须对鉴别模型重新设计。
传统的RSA应用模型
用户甲可以自己生成非对称密钥对,也可以选择由认证中心生成;向认证机构提交公钥和公共参数申请并注册公钥证书;用户甲使用私钥对明文进行加密,形成具有签名效用的密文,通常要采用HASH函数进行压缩;用户甲将公钥证书以及经过数字签名的密文发送给用户乙;用户乙使用用户甲的公钥鉴别密文的数字签名;如果用户乙对用户甲的公钥证书产生质疑,可以提交用户甲的公钥证书给认证中心进行认证,认证中心对提交的公钥证书的真实性、有效性进行认证,并将认证结果返回用户乙。由于数字身份与数字签名的特殊性,提供认证服务的机构不应该是一个商业化的机构,而应该是具有政府职能的部门,例如:颁发身份证的公安局、颁发驾照的交管局、颁发护照的外交部等。在笔者设计的模型中,公安局替代传统的认证中心;针对被认证的公钥证书与持有者缺乏直接的关联,在认证结果的信息中,笔者设计增加所有者的详细信息资料,从而可以通过认证结果来鉴别持有者的真实身份。
改造后的RSA应用模型
由公安局为用户甲颁发一个公钥;用户甲自己选择公共参数,并生成私钥;用户甲将公钥、公共参数及个人的详细资料(居住地址、传统身份证号、联系电话、照片、指纹等)提交给公安局,申请并注册数字身份证(即公钥证书),数字身份证的鉴别编号由公钥和公共参数组合而成;用户甲使用私钥对明文进行加密,形成具有签名效用的密文;用户甲将签字密文、数字身份证发送给用户乙;用户乙使用用户甲的公钥鉴别密文的数字签名,并恢复密文为明文;如果用户乙对用户甲的公钥证书产生质疑,可以提交用户甲的公钥证书给认证中心进行认证,认证中心可以根据不同认证的级别返回不同的认证结果。
在新的模型中,认证将分为三级认证。一级认证,返回所有者的身份证号、住址、联系电话;二级认证,在一级认证基础之上附加返回所有者的照片;三级认证,在二级认证基础之上附加返回所有者的指纹。
具体选择哪一种级别认证,取决于应用的性质。如果是签署网络协议可以采用一级认证,如果是在线支付可以选择二级或三级认证。这样可以通过认证的结果(联系电话、照片、指纹)来鉴别持有者与所有者身份是否相符。
RSA在刷卡中的应用
证书签发系统:负责证书的发放,如可以通过用户自己,或是通过目录服务。目录服务器可以是一个组织中现有的,也可以是PKI方案中提供的。PKI应用:包括在W eb服务器和浏览器之间的通讯、电子邮件、电子数据交换(E DI)、在Internet上的信用卡交易和虚拟专业网(VPN)等。应用接口系统(API):一个完整的PKI必须提供良好的应用接口系统,让用户能够方便地使用加密、数字签名等安全服务,使得各种各样的应用能够以安全、一致、可信的方式与PKI交互,确保所建立起来的网络环境的可信性,降低管理和维护的成本。
基于PKI的电子商务安全体系电子商务的关键是商务信息电子化,因此,电子商务安全性问题的关键是计算机信息的安全性。如何保障电子商务过程的顺利进行,即实现电子商务的真实性、完整性、机密性和不可否认性等。PKI体系结构采用证书管理公钥,通过第三方的可信机构,把用户的公钥和用户的其他标识信息(如用户身份识别码、用户名、身份证件号、地址等)捆绑在一起,形成数字证书,以便在Internet上验证用户的身份。PKI是建立在公钥理论基础上的,从公钥理论出发,公钥和私钥配合使用来保证数据传输的机密性;通过哈希函数、数字签名技术及消息认证码等技术来保证数据的完整性;通过数字签名技术来进行认证,且通过数字签名,安全时间戳等技术提供不可否认。因此PKI是比较完整的电子商务安全解决方案,能够全面保证信息的真实性、完整性、机密性和不可否认性。通常电子商务的参与方一般包括买方、卖方、银行和作为中介的电子交易市场。首先买方通过浏览器登录到电子交易市场的W eb服务器并寻找卖方。当买方登录服务器时,买卖双方都要在网上验证对方的电子身份证,这被称为双向认证。在双方身份被互相确认以后,建立起安全通道,并进行讨价还价,之后买方向卖方提交订单。订单里有两种信息:一部分是订货信息,包括商品名称和价格;另一部分是提交银行的支付信息,包括金额和支付账号。买方对这两种信息进行双重数字签名,分别用卖方和银行的证书公钥加密上述信息。当卖方收到这些交易信息后,留下订货单信息,而将支付信息转发给银行。卖方只能用自己专有的私钥解开订货单信息并验证签名。同理,银行只能用自己的私钥解开加密的支付信息、验证签名并进行划账。银行在完成划账以后,通知起中介作用的电子交易市场、物流中心和买方,并进行商品配送。整个交易过程都是在PKI所提供的安全服务之下进行,实现了真实性、完整性、机密性和不可否认性。综上所述,PKI技术是解决电子商务安全问题的关键,综合PKI的各种应用,我们可以建立一个可信任和足够安全的网络,能够全面保证电子商务中信息的真实性、完整性、机密性和不可否认性。
计算机通信技术的蓬勃发展推动电子商务的日益发展,电子商务将成为人类信息世界的核心,也是网络应用的发展方向,与此同时,信息安全问题也日益突出,安全问题是当前电子商务的最大障碍,如何堵住网络的安全漏洞和消除安全隐患已成为人们关注的焦点,有效保障电子商务信息安全也成为推动电子商务发展的关键问题之一。电子商务安全关键技术当前电子商务普遍存在着假冒、篡改信息、窃取信息、恶意破坏等多种安全隐患,为此,电子商务安全交易中主要保证以下四个方面:信息保密性、交易者身份的确定性、不可否认性、不可修改性。保证电子商务安全的关键技术是密码技术。密码学为解决电子商务信息安全问题提供了许多有用的技术,它可用来对信息提供保密性,对身份进行认证,保证数据的完整性和不可否认性。广泛应用的核心技术有:1.信息加密算法,如DE S、RSA、E CC、M DS等,主要用来保护在公开通信信道上传输的敏感信息,以防被非法窃取。2.数字签名技术,用来对网上传输的信息进行签名,保证数据的完整性和交易的不可否认性。数字签名技术具有可信性、不可伪造性和不可重用性,签名的文件不可更改,且数字签名是不可抵赖的。3.身份认证技术,安全的身份认证方式采用公钥密码体制来进行身份识别。E CC与RSA、DSA算法相比,其抗攻击性具有绝对的优势,如160位E CC与1024位RSA、DSA有相同的安全强度。而210位E CC则是与2048比特RSA、DSA具有相同的安全强度。虽然在RSA中可以通过选取较小的公钥(可以小到3)的方法提高公钥处理速度,使其在加密和签名验证速度上与E CC有可比性,但在私钥的处理速度上(解密和签名),E CC远比RSA、DSA快得多。通过对三类公钥密码体制的对比,E CC是当今最有发展前景的一种公钥密码体制。
椭圆曲线密码系统E CC密码安全体制椭圆曲线密码系统(E lliptic Curve Cry ptosy stem,E CC)是建立在椭圆曲线离散对数问题上的密码系统,是1985年由Koblitz(美国华盛顿大学)和Miller(IBM公司)两人分别提出的,是基于有限域上椭圆曲线的离散对数计算困难性。近年来,E CC被广泛应用于商用密码领域,如ANSI(American National Standards Institute)、IE E E、基于门限E C C的《商场现代化》2008年11月(上旬刊)总第556期84少t个接收者联合才能解密出消息。最后,密钥分配中心通过安全信道发送给,并将销毁。2.加密签名阶段:(1)选择一个随机数k,,并计算,。(2)如果r=O则回到步骤(1)。(3)计算,如果s=O则回到步骤(1)。(4)对消息m的加密签名为,最后Alice将发送给接收者。3.解密验证阶段:当方案解密时,接收者P收到密文后,P中的任意t个接收者能够对密文进行解密。设联合进行解密,认证和解密算法描述如下:(1)检查r,要求,并计算,。(2)如果X=O表示签名无效;否则,并且B中各成员计算,由这t个接收者联合恢复出群体密钥的影子。(3)计算,验证如果相等,则表示签名有效;否则表示签名无效。基于门限椭圆曲线的加密签名方案具有较强的安全性,在发送端接收者组P由签名消息及无法获得Alice的私钥,因为k是未知的,欲从及a中求得k等价于求解E CDL P问题。同理,攻击者即使监听到也无法获得Alice的私钥及k;在接收端,接收者无法进行合谋攻击,任意t-1或少于t-1个解密者无法重构t-1次多项式f(x),也就不能合谋得到接收者组p中各成员的私钥及组的私钥。
结束语为了保证电子商务信息安全顺利实现,在电子商务中使用了各种信息安全技术,如加密技术、密钥管理技术、数字签名等来满足信息安全的所有目标。论文对E CDSA方案进行改进,提出了一种门限椭圆曲线加密签名方案,该方案在对消息进行加密的过程中,同时实现数字签名,大大提高了原有方案单独加密和单独签名的效率和安全性。
参考文献
[1]Koblitz N.Elliptic Curve Cryprosystems.Mathematicsof Computation,1987,48:203~209
[2]IEEE P 1363:Standard of Public-Key Cryptography,WorkingDraft,1998~08
电子商务所具有的广阔发展前景,越来越为世人所瞩目。但在Inter给人们带来巨大便利的同时,也把人们引进了安全陷阱。目前,阻碍电子商务广泛应用的首要也是最大的问题就是安全问题。电子商务中的安全问题如得不到妥善解决,电子商务应用就只能是纸上谈兵。从事电子商务活动的主体都已普遍认识到电子商务的交易安全是电子商务成功实施的基础,是企业制订电子商务策略时必须首先要考虑的问题。对于实施电子商务战略的企业来说,保证电子商务的安全已成为当务之急。二、电子商务过程中面临的主要安全问题
从交易角度出发,电子商务面临的安全问题综合起来包括以下几个方面:
1.有效性
电子商务以电子形式取代了纸张,那么保证信息的有效性就成为开展电子商务的前提。因此,要对网络故障、操作错误、应用程序错误、硬件故障、系统软件错误及计算机病毒所产生的潜在威胁加以控制和预防,以保证贸易数据在确定的时刻、确定的地点是有效的。
2.真实性
由于在电子商务过程中,买卖双方的所有交易活动都通过网络联系,交易双方可能素昧平生,相隔万里。要使交易成功,首先要确认对方的身份。对于商家而言,要考虑客户端不能是骗子,而客户端也会担心网上商店是否是一个玩弄欺诈的黑店,因此,电子商务的开展要求能够对交易主体的真实身份进行鉴别。
3.机密性
电子商务作为贸易的一种手段,其信息直接代表着个人、企业或国家的商业机密。如信用卡的账号和用户名被人知悉,就可能被盗用而蒙受经济损失;订货和付款信息被竞争对手获悉,就可能丧失商机。因此建立在开放的网络环境电子商务活动,必须预防非法的信息存取和信息在传输过程中被非法窃取。三、电子商务安全中的几种技术手段
由于电子商务系统把服务商、客户和银行三方通过互联网连接起来,并实现了具体的业务操作。因此,电子商务安全系统可以由三个安全服务器及CA认证系统构成,它们遵循共同的协议,协调工作,实现电子商务交易信息的完整性、保密性和不可抵赖性等要求。其中采用的安全技术主要有以下几种:
1.防火墙(FireWall)技术
防火墙是一种隔离控制技术,在某个机构的网络和不安全的网络(如Inter)之间设置屏障,阻止对信息资源的非法访问,也可以使用防火墙阻止专利信息从企业的网络上被非法输出。
2.加密技术
数据加密技术是电子商务中采取的主要安全措施,贸易方可根据需要在信息交换的阶段使用。在网络应用中一般采取两种加密形式:对称加密和非对称加密,采用何种加密算法则要结合具体应用环境和系统,而不能简单地根据其加密强度来做出判断。
(1)对称加密
在对称加密方法中,对信息的加密和解密都使用相同的密钥。也就是说,一把钥匙开一把锁。这种加密算法可简化加密处理过程,贸易双方都不必彼此研究和交换专用的加密算法,如果进行通信的贸易方能够确保私有密钥在交换阶段未曾泄露,那么机密性和报文完整性就可以得到保证。不过,对称加密技术也存在一些不足,如果某一贸易方有n个贸易关系,那么他就要维护n个私有密钥。对称加密方式存在的另一个问题是无法鉴别贸易发起方或贸易最终方。因为贸易双方共享一把私有密钥。目前广泛采用的对称加密方式是数据加密标准(DES),它主要应用于银行业中的电子资金转账(EFT)领域。DES对64位二进制数据加密,产生64位密文数据。使用的密钥为64位,实际密钥长度为56位(8位用于奇偶校验)。解密时的过程和加密时相似,但密钥的顺序正好相反。
(2)非对称加密/公开密钥加密
在Inter中使用更多的是公钥系统,即公开密钥加密。在该体系中,密钥被分解为一对:公开密钥PK和私有密钥SK。这对密钥中的任何一把都可作为公开密钥(加密密钥)向他人公开,而另一把则作为私有密钥(解密密钥)加以保存。公开密钥用于加密,私有密钥用于解密,私有密钥只能由生成密钥对的贸易方掌握,公开密钥可广泛,但它只对应于生成该密钥的贸易方。在公开密钥体系中,加密算法E和解密算法D也都是公开的。虽然SK与PK成对出现,但却不能根据PK计算出SK。公开密钥算法的特点如下:
用加密密钥PK对明文X加密后,再用解密密钥SK解密,即可恢复出明文,或写为:DSK(EPK(X))=X。
加密密钥不能用来解密,即DPK(EPK(X))≠X
在计算机上可以容易地产生成对的PK和SK。
从已知的PK实际上不可能推导出SK。加密和解密的运算可以对调,即:EPK(DSK(X))=X
常用的公钥加密算法是RSA算法,加密强度很高。具体做法是将数字签名和数据加密结合起来。发送方在发送数据时必须加上数字签名,做法是用自己的私钥加密一段与发送数据相关的数据作为数字签名,然后与发送数据一起用接收方密钥加密。这些密文被接收方收到后,接收方用自己的私钥将密文解密得到发送的数据和发送方的数字签名,然后用方公布的公钥对数字签名进行解密,如果成功,则确定是由发送方发出的。由于加密强度高,而且不要求通信双方事先建立某种信任关系或共享某种秘密,因此十分适合Inter网上使用。
3.数字签名
数字签名技术是实现交易安全核心技术之一,它实现的基础就是加密技术。以往的书信或文件是根据亲笔签名或印章来证明其真实性的。但在计算机网络中传送的报文又如何盖章呢?这就是数字签名所要解决的问题。数字签名必须保证以下几点:接收者能够核实发送者对报文的签名;送者事后不能抵赖对报文的签名;接收者不能伪造对报文的签名。现在己有多种实现数字签名的方法,采用较多的就是公开密钥算法。
4.数字证书
(1)认证中心
在电子交易中,数字证书的发放不是靠交易双方来完成的,而是由具有权威性和公正性的第三方来完成的。认证中心就是承担网上安全电子交易认证服务、签发数字证书并确认用户身份的服务机构。
(2)数字证书
数字证书是用电子手段来证实一个用户的身份及他对网络资源的访问权限。在网上的电子交易中,如双方出示了各自的数字证书,并用它来进行交易操作,那么交易双方都可不必为对方身份的真伪担心。
5.消息摘要(MessageDigest)
消息摘要方法也称为Hash编码法或MDS编码法。它是由RonRivest所发明的。消息摘要是一个惟一对应一个消息的值。它由单向Hash加密算法对所需加密的明文直接作
这篇论文.用,生成一串128bit的密文,这一串密文又被称为“数字指纹”(FingerPrint)。所谓单向是指不能被解密,不同的明文摘要成密文,其结果是绝不会相同的,而同样的明文其摘要必定是一致的,因此,这串摘要成为了验证明文是否是“真身”的数字“指纹”了。四、小结
一、电子签名证据概述
根据联合国国际贸易法委员会《电子签名示范法》第二条中的规定,电子签名是指“以电子形式表现的数据,该数据在一段数据信息之中或附着于或与一段数据信息有逻辑上的联系,该数据可以用来确定签名人与数据信息的联系并且可以表明签名人对数据信息中的信息的同意。”我国在《电子签名法》第二条第一款中对电子签名也进行了规定:“本法所称电子签名,是指数据电文中以电子形式所含、所附用于识别签名人身份并表明签名人认可其中内容的数据。”
综上所述,我们可以这样认为,电子签名是在电子数据交换中,附属于数据电文中,以电子形式以表明签名人身份的数据。当今理论界又把电子签名有分为广义的电子签名和狭义的电子签名。广义的电子签名的定义可以简单的分解成以下几点:一是电子签名是以电子形式存在的;二是电子签名能确认电子合同的内容;三是当事人通过电子签名表明其身份,并表明接受合同项下的权利义务,继之表明愿意承担可能产生的合同责任;狭义的电子签名则是指利用特定的加密算法而进行的签名,通常是指数字签名。
二、电子签名证据的种类
1.数字签名(DigitalSignature),即狭义的电子签名,是以特定的电子签名技术所进行的签名。如前所述,数字签名是电子签名的一种,这种观点被广泛的学者所认可,一般是指以非对称加密技术所进行的电子签名。它是电子商务活动中使用最为普遍的电子签名方式。此外,通过动态签名的识别,也可以使个人身份与其签名发生特定的联系。
2.生物特征签名(SignatureByBiometries),是指籍由使用者的指纹、声波、视网膜纹等生理特征作为辨识的根据,而达到鉴别作用的签名。它是与用户个人生理特征相联系的。
三、电子签名证据进行审查判断的方法
(一)电子签名证据收集主体的审查
审查判断电子签名的收集主体是否适格问题是程序审查的首要步骤。对电子签名证据进行收集和保全的主体都应当是特定的,不具备法律规定主体资格的机关和个人将会否定其证据资格。在此需要注意的是,除法律规定之外,需要认证方能授予的主体资格一般需要具有相关资格的主体出具相应的证明。此外,由于电子签名其特殊的证据特征,这就要求对我们电子签名证据进行收集的个人进行审查时,不仅要看其是否具有相关的身份资格,而且要审查判断其是否掌握收集电子签名证据的相关技术。若身份适格但是缺乏相应的技术,我们可以认定其不具有证据收集主体资格。
(二)电子签名证据能力的审查
证据能力,又称为证据资格,“是指证据材料能够作为证据使用而在法律上享有正当性。通常情况下,必须同时具备真实性、合法性和关联性等的证据才具有证据能力。”对电子签名证据的证据能力进行审查,也就是对其是否满足作为证据使用条件进行审查。我国《电子签名法》第三条规定:“当事人约定使用电子签名、数据电文的文书,不得仅因为其采用电子签名、数据电文的形式而否定其法律效力”;第四条规定:“可靠地电子签名与手写或者盖章具有同等的法律效力”;第七条规定:“数据电文不得仅因为其是以电子、光学、磁或者类似手段生成、发送、接收或者存储而被拒绝作为证据使用。”从以上条文可知,我国从立法上对于数据电文和电子签名的证据能力及证明力给予了肯定。
另外,我国《电子签名法》第五条规定:“符合下列条件的数据电文,视为满足法律、法规规定的原件形式要求:(一)能够有效地表现所载内容并可供随时调取查用;(二)能够可靠的保证自最初形成时起,内容保持完整,未被更改。”但是,数据电文在储存和经行数据交换时发生形式的变化并不影响数据电文的完整性。上述的规定表明我国对电子签名证据的复印件与原件在功能相同的情况下,具有相同的证明力。
(三)电子签名证据来源的审查
对电子签名证据来源的审查主要包括以下几点:首先,审查电子签名证据是以什么方法、在什么情况下取得的。其次,由于电子签名证据是易变的数字信息,需要可靠的来源进行稳定性保障,因此我们对电子签名证据进行审查判断时,要检验电子签名证据的来源是否客观真实。例如,对生物特征签名的收集时,我们不仅要利用计算机取证技术进行合法的取证,而且要对取证的对象的真实性进行逐一的审查。最后,对未经公证的电子签名证据的审查,不能因为其未经过公证机关公证而丧失证据资格。没有经过公证机关公证的电子签名证据只会导致其证明力下降而非消失。例如EDI中心提供的提单签发、传输记录,CA认证中心提供的认证或公证书以及其他数字签名等就具有较强的来源可靠性,而没有经过这些认证的数据,证据资格存在一定的瑕疵,但并不因此而失去证据资格,可以通过数据鉴定进行补强。
注释:
何峰,.论电子证据的审查与举证.信息网络安全.2010(4).
参考文献:
[1]苏凤仙,谭德宏.民事诉讼中电子证据的审查判断.辽宁经济职业技术学院学报.2003(2).
中图分类号:TP393.08文献标识码:A文章编号:1009-3044(2011)12-2789-02
计算机网络和互联网的发展,网络安全越来越受到人们的和关注。网络安全措施应能胜任、应对不同的威胁和脆弱性,才能实现网络信息的保密性、完整性和可用性。信息的安全与畅通,局域网的安全防范措施已迫在眉睫。
1 网络安全业务
网络通信安全性涉及面很广泛,甚至在犯罪行为中也涉及到部分网络通信的安全性问题,往往会构成严重的犯罪行为。网络通信安全自身主要关心的是确保其他无关人员不能读取,更无法修改传送给他人的资料。网络通信的安全也对合法消息的截获和重播进行处理与分析,一般来说,网络安全问题的出现往往是由于有人恶意对某种能够获取利用的信息和资料进行截取和拦截而引起的。
网络通信安全的内容可以概括为以下几个方面。
保密性:保密性是指防止静态信息被非授权访问和防止动态信息被截取解密;完整性:完整性要求在存储或传输时信息的内容和顺序都不被伪造、乱序、重置、插入和修改;可靠性:可靠性是指信息的可信度,包括信息的完整性、准确性和发送人的身份认证等方面;实用性:实用性即信息的加密密钥不可丢失;可用性:可用性是指主机存放静态信息的可用性和可操作性;占有性:占有性是指存储信息的主机、磁盘等信息载体被盗用,导致对信息占有权的丧失。保护信息占有性的方法有使用版权、专利、商业秘密、使用物理和逻辑的访问限制方法,以及维护和检查有关盗窃文件的审计记录和使用标签等。
2 网络安全保密技术
密码学是基于数论、概率统计、椭圆曲线等理论的一门学科,是计算机科学和数学的有机结合和发展。密码技术采用密码技术对信息加密,是最常用和有效的安全保护手段。目前广泛应用的加密技术主要分为两类:对称算法加密、非对称算法加密与公钥体系
2.1 密码体制
完成加密和解密的算法。通常,数据的加密和解密过程是通过密码体制(cipher system) +密钥(keyword)来控制的。 密码体制必须易于使用,特别是应当可以在微型计算机是使用。密码体制的安全性依赖于密钥的安全性,现代密码学不追求加密算法的保密性,而是追求加密算法的完备,即:使攻击者在不知道密钥的情况下,没有办法从算法找到突破口。
密码体制可分为两大类:单钥体制和双钥体制。单钥体制的加密密钥和解秘密钥相同见图1。其系统的保密性基于密钥的安全性,但如何产生满足保密要求的密钥是这类体制设计和实现的主要课题。另一个重要问题是如何将密钥安全可靠地分配给通信对方,包括密钥产生、分配、存储、销毁等多方面问题。若密钥管理得不好,则系统安全难以保证。典型的单钥算法有DES,IDEA等。
而在双钥体制下,加密密钥与解密密钥是不同的,此时根本就不需要安全信道来传送密钥,而只需利用本地密钥发生器产生解密密钥即可。双钥体制将加密和解密分开见图2,而系统的安全性在于从公钥kbl和密文C要推出明文M或解秘密钥kb2在计算上是不可能的。由于双钥密码体制的加密和解密不同,且能公开加密密钥,而仅需保密解密密钥,所以双钥密码不存在密钥管理问题。双钥密码还有一个优点是可以拥有数字签名等新功能。典型的双钥密码有RSA,ELGAMAL,RABIN,基于椭圆曲线的密码等。
2.2 杂凑技术
杂凑技术是通过杂凑函数单向不可逆性实现的。杂凑函数又称hash函数,Hash函数(也称杂凑函数或杂凑算法)就是把任意长的输入消息串变化成固定长的输出串的一种函数。这个输出串称为该消息的杂凑值。就是一种可将一个 key 对应到一个索引的函数,一个可能的杂凑函数为 h(x)=key % 100 , (% 传回 key 除以 100 的余数 ) ,这个函数仅传回 key 的末两位数。 若一个特定的 key ,被杂凑到 i ,就降这个 key 及其对应到的纪录挤旁 S[i] 。 若一个特定的 key ,被杂凑到 i ,就降这个 key 及其对应到的纪录挤旁 S[i] 。
2.3 数字签名技术
在网络环境下,发送方不承认自己发送过某一报文;接收方自己伪造一份报文,并声称它来自发送方;网络上的某个用户冒充另一个用户接收或发送报文;接收方对收到的信息进行篡改。数字签名技术可以解决上述情况引发的争端。数字签名与公钥密码学紧密相连,公开密钥和私有密钥共同组成了密钥的主要组成部分。数字签名的过程主要包括内容:签名过程使用私有密钥进行:验证过程采用接受方或验证方用公开密钥进行。
一般来说,无法从公开密钥得出私有密钥,因此公开密钥对私有密钥的安全不产生影响;即认为无需对公开密钥进行保密,传播自由,但需对私有密钥进行保密。因此,在对消息进行私有密钥加密时,如果可以利用公开密钥进行解密,即可认为该签名的所有者就是加密者本人签名。造成这种现象的原因主要是由于其他人的通过公开密钥不可能对该消息进行解密,也无法获悉消息签名者的私有密钥来进行解密。
从技术上来讲,数字签名其实就是通过一个单向函数对要传送的报文(或消息)进行处理产生别人无法识别的一段数字串,这个数字串用来证明报文的来源并核实报文是否发生了变化。在数字签名中,私有密钥是某个人知道的秘密值,与之配对的唯一公开密钥存放在数字证书或公共数据库中,用签名人掌握的秘密值签署文件,用对应的数字证书进行验证
2.4 身份认证技术
利用Diffie-Hellman密钥交换协议是一种较好的解决方案。Diffie-Hellman密钥交换协议如下:首先,Alice和Bob双方约定2个大整数n和g,其中1
另一种认证体制即基于公钥的认证的过程(图3)。
分三个步骤:
1)A选一随机数RA,用B的公钥加密传送给B;
2)B将RA解密后再选另一随机数RB和会话密钥KS用A的公钥加密后送给A;
3)A用会话密钥KS加密RB传送给B。A收到第二条消息后可确认对方确是B,因为其他人无法获取RA。同理,B也可认证A。基于公钥的认证有一平前提,即认证双方必须知道对方的公钥,而这又涉及到了公钥证书的管理和CA(Certificate Authorization)的架构问题,
3 结束语
对计算机信息构成不安全的因素很多,其中包括人为的因素、自然的因素和偶发的因素。计算机密码技术是计算机网络安全保密技术中一项非常重要的技术。而其中人为因素是对计算机信息网络安全威胁最大的因素。
参考文献:
[1] 喻镝.计算机网络的安全与保密技术[J].现代计算机,2000(2).
[2] 宗叶红,施扬.TETRA网络安全保密技术研究[J].现代电子技术,2005(11).
中图分类号:G642
文献标识码:A
1引言
密码学能有效保障信息的机密性、认证性、完整性和不可否认性,是信息安全的核心技术之一,为信息安全提供了深刻的理论依据和丰富的应用实践基础。目前各大高校已为信息安全专业、计算机科学与技术、通信工程和信息与计算科学专业的本科生或研究生开设了密码学课程,如北京大学、上海交通大学、哈尔滨工业大学、武汉大学、西安电子科技大学、电子科技大学等,也有一些教研[1-4]。然而,对于更多的高校,密码学课程的教学却处于探索阶段。
公立函馆未来大学(Future University-Hakodate)位于日本北海道函馆市龟田中野町,始建于2000年,是一所以信息科学为特色的公立大学。该校有两大学院(系统信息科学研究科和系统信息科学专业)和三学部(信息建筑学科、复杂系统学科和系统信息科学部)。学校研究与教育涵盖了以硬件为中心的计算机科学、认知科学、信息系统设计与复杂系统。虽建校不久,但该校的密码学学科却取得了骄人的成绩,在高木刚(Tsuyoshi Takagi)教授的带领下,在双线性配对运算方向已到达国际先进水平。笔者在公立函馆未来大学从事博士后研究期间,旁听了高木刚教授面向计算机专业硕士生开始的密码学课程,并和他交流了教学经验及学术思想,感触颇深。本文就该校密码学课程设置与教学方法进行了描述和讨论。
2密码学课程的特点
作为信息安全和其他信息科学类专业的一门专业基础课,密码学课程具有以下特点[4]:
(1) 作用和地位十分重要。密码学是实现保密通信和信息系统安全的主要技术手段和工具,信息安全的保密性、认证性、完整性和不可否认性等属性都需要用密码学的工具来完成。随着计算机和计算机网络在军事、政务、金融、商业等部门的广泛应用,社会对计算机的依赖越来越大,如果计算机系统的安全受到破坏,将导致社会的混乱并造成巨大损失。因此,确保计算机系统的安全已成为世人关注的社会问题并成为信息科学的热点研究领域。密码技术是信息安全的关键技术之一,几乎所有的信息安全技术都应用到密码技术。
(2) 覆盖的内容多,涉及的数学知识多。由于发展历史较长和研究问题的特殊性质,密码学从基础理论到实用算法,形成的内容和分支较多。例如,数字签名体制就分为签名体制、盲签名体制、环签名体制、群签名体制等10余种签名体制。同时,密码学还涉及较多的数学知识,如数论、抽象代数、概率论、组合数学、计算复杂性和信息论等方面的知识。
(3) 与其他学科联系广泛。密码学与其他学科具有广泛联系,这些学科包括应用数学、通信、计算机科学、信息处理等。从应用数学的角度看,密码学是数论、抽象代数等理论的一种应用;从通信的角度看,密码学是实现保密通信的一种技术手段;从计算机科学的角度看,密码学是数据安全、计算机安全和网络安全的研究内容;从信息处理的角度看,密码是信息处理的一种形式。密码学的研究内容决定了它的交叉性和广泛性,这使得人们能从不同方面去研究密码学,从而推动密码学学科的不断发展。各种数学和其他学科研究的新成果也会很快地应用于密码学当中,例如基于椭圆曲线的加密和签名方法、量子密码和数字水印等。
(4) 实践性很强。密码学的研究目的就是解决实际生活当中的信息安全问题,例如提供保密性、认证性、完整性和不可否认性,这些属性是信息社会中不可或缺的重要属性,它们随着计算机的普及,借助于密码学的各种算法得以实现。因此,密码学是一门实践性很强的课程。只有理论联系实际,才能把这门课程学好。
3密码学课程教学内容的设置
公立函馆未来大学的密码学课程分为以下几部分:
(1) 数学基础:该部分讲述整除、同余、模运算、欧几里得算法、扩展的欧几里得算法、欧拉函数、群、环、域和概率论等的基本概念。该部分的教学目的是使学生对密码学所需的数学知识有个大概的了解,为以后的学习打下基础。
(2) 密码学基本概念:该部分讲述密码学的历史、加密和隐私概念、密码学的目标、攻击模型、密码协议和可证明安全性等。该部分的教学目的是使学生对密码学有个总体的认识,为以后的学习打下基础。
(3) 对称密码体制:该部分讲述了流密码和分组密码体制。流密码只是介绍了一些基本概念。分组密码是本章的重点,主要讲述了DES、AES和分组密码的工作模式。该部分的教学目的是使学生对对称密码体制,尤其是分组密码体制有深刻的认识,了解分组密码设计原理和特点。
(4) 公钥密码体制:该部分讲述公钥密码体制的概念、RSA公钥密码体制、ElGamal公钥密码体制、Rabin公钥密码体制、基于椭圆曲线的密码体制和基于身份的密码体制。该部分的教学目的是使学生对公钥密码体制有个深刻的理解,了解公钥密码体制与对称密码体制的区别。
(5) 数字签名:该部分讲述数字签名的基本概念、RSA数字签名、ElGamal数字签名、数字签名标准DSS、群签名、签名、盲签名和环签名等。该部分的教学目的是使学生掌握常用的数字签名体制,掌握数字签名体制的设计原理和特点,对特殊的数字签名,如群签名、签名、盲签名和环签名有个初步的认识。
(6)Hash函数:该部分讲述Hash函数的基本概念、MD5、SHA、基于分组密码的Hash函数和Hash函数的应用。该部分的教学目的是使学生掌握Hash函数的设计原理和要求,对MD5和SHA两种重要Hash函数有个深刻理解。
(7) 密码协议:该部分讲述密钥分配和密钥交换、认证体制、零知识证明、电子选举和电子现金等。该部分的教学目的是使学生对密码应用有深刻的理解,对如何根据应用环境设计密码协议有个基本的认识。
(8) 可证明安全性:该部分讲述公钥密码和数字签名的可证明安全性。包括公钥加密体制的安全性概念、数字签名体制的安全性概念、随机预言模型、RSA-OAEP等。该部分的教学目的是使学生对可证明安全性知识有个初步认识,能够对公钥加密体制和数字签名体制进行形式化证明。
4密码学课程的教学方法
通过笔者在公立函馆未来大学密码学课程的学习,总结出如下教学方法:
(1) 注重数学知识的讲解。学习密码学需要用到很多数学知识,教师在教学中很重视数学知识的传授,在第一章中专门讲授了密码学需要的数学知识。此外,教师在讲授其他章节内容时也常常介绍一些数学知识,如在讲授RSA算法时讲授了模运算和复杂性理论。
(2) 注重讲清各部分的区别与联系,以便于学生掌握和记忆。密码学课程涉及到很多概念,这些概念很难记忆。教师在教学中注重讲解各种概念的区别与联系,如对称密码体制和公钥密码体制的区别和联系、公钥加密体制和数字签名体制的区别和联系、分组密码体制和流密码体制的区别和联系。通过这些讲解,学生掌握和理解这些知识就容易多了。
(3) 注意讲述历史知识,激发学生兴趣。密码学涉及到很多有趣的历史知识。在讲授密码的起源时,教师介绍了公元前五世纪斯巴达人使用的一种叫“天书”(Skytale)的器械。它用一根木棍,将羊皮条紧紧缠在木棒上,密信自上而下写在羊皮条上,然后将羊皮条解开送出,只有把羊皮条重新缠在一根同样直径的木棍上,才能把密信的内容读出来――这是最早的一种移位密码。在讲解公钥密码概念时,他们讲解了Diffie和Hellman这两位公钥密码开创者的生平,并将这两位学者的照片给学生看。通过这些历史知识的讲解,学生对密码学产生了浓厚的兴趣。
(4) 注重与科研工作相结合。教师在教学中很注重与科研工作相结合。他们常常讲到自己的科研项目与经历,也常常将最新的研究成果带到课堂,将最新的论文发给学生研读,使学生对最新的研究方向有个初步认识。
(5) 注重总体理解。某些密码学算法涉及的步骤很多,理解比较困难。如DES就涉及到了16轮变换,每轮都有置换和代换运算。教师在介绍该算法时注重总体算法的把握,先让学生对该算法有个总体的认识,然后再讲述每一步骤的详细算法。
5结束语
本文介绍了日本公立函馆未来大学面向计算机专业硕士生开设的密码学课程的具体情况,包括课程内容设置与教学特点。希望能对我国密码学课程有一定的启发。
参考文献:
[1] 沈瑛,郑河荣. 密码学课程的设计与实践[J]. 温州职业技术学院学报,2003,3(3):76-77.
[2] 段桂华,杨路明. 基于组件技术的密码学理论与技术实验教学方法[J]. 北京电子科技学院学报,2006,14(1):44-46.
[3] 丁勇. 信息与计算科学专业密码学教学研究[J]. 桂林电子科技大学学报,2008,28(2):131-133.
[4] 李梦东. 密码学课程设置与教学方法探究[J]. 北京电子科技学院学报,2007,15(3):61-66.
The Course Design of Cryptology and Its Teaching Method at Future University-Hakodate
LIFa-gen
(School of Computer Science and Engineering, University of Electronic Science and