李 巍,赵永彬,王 鸥,于 海
(国网辽宁省电力有限公司信息通信分公司,辽宁 沈阳 110006)
随着互联网的发展,为了提高工作效率,实现异地远程办公,增加协同办公能力,电子商务、电子政务、合同及公文的流转越来越多的以电子文件的形式进行传递。为了保证电子文件在网络传输过程中的安全性,需要电子文档在互联网传递的过程中,必须在确保发送方身份的同时,保护文件的完整性,并且保证签名行为具有不可抵赖性[1,2]。
目前,我国大多数电子签章技术均是基于PKI/CA体系与数字签名算法相结合的方式来实现的,其中PKI技术用于实现签章主体的身份认证,并保证发送方的不可抵赖性,数字签名技术保证文件的完整性,如谭杰[3]提出的可视化PKI电子签章系统,张娴等[4]对电子签章系统的分析,以及金锋等[5]利用数字证书,在信息系统中实现的电子签章应用,均是基于PKI/CA体系。但是RSA算法的安全性主要依赖于大数的因子分解问题,随着计算机处理能力的不断增强,这就要求RSA算法使用更长的密钥,随之而来的是算法的速度将会越来越慢。冉沛等[6]采用了效率更高、完整性更好的ECDSA算法,并结合印章控件在Word中实现了电子签章系统。
基于上述分析,本文提出了一种基于ECDSA签名算法的电子签章系统方案,通过PKI/CA体系对文件发送人进行身份认证[7,8],具有安全高效的特点,并研发出一套制章节工具。最终,经过实验与测试,采用ActiveX控件的形式,实现Microsoft Office的电子签章系统,具有较强的应用价值。
PKI(public key infrasturcture)是指公开密钥基础设施,CA指的是公开的第三方信任中心。PKI中,CA为所有的用户颁发证书,证书中存放有用户的个人信息及为该用户分配的公钥。同时,某一用户拿到其它用户的证书时,可向CA中心验证该证书是否有效及证书中的信息是否正确。有效的PKI体系对于用户来说是透明的,用户没有必要知道PKI管理及实现过程,便可以使用签名和加密服务。一般来讲,PKI系统架构如图1所示。
图1 典型PKI系统架构
定义方程两个变元x、y的三次方程如下
y2+axy+by=x3+cx2+dx+e
其中,a、b、c、d、e为常数。通常椭圆曲线在有限域Fp内定义为Ep(a,b),即如下方程
y2=x3+ax+b(modp)
其中,p为质数,x,y∈[1,p-1],a,b∈Fp且4a3+27b2≠0(modn)。在Ep(a,b)上考虑K=kG,其中K,G都是椭圆曲线上的点,设n为点G的阶(即nG=O∞),且k (1)给定Ep(a,b)上的两个点K、G以及一个小于G点阶的整数k,满足K=kG,在已知G和k的情况下,求点K的坐标是非常容易的,而在已知K和G的情况下,求k是非常困难的。 (2)Diffie-Hellman密钥中,给定点Ep(a,b)上的一个点G,G的阶为大素数n,任意选两个整数0 为保证签章图片本身的安全性与可靠性,本文所提出的电子签章系统在制章的过程中,使用空间域水印中最低有效位算法(LSB)[9-11]为生成的BMP格式签章图片嵌入水印。 在本文中,签章系统将需数字签名算法中生成的摘要信息按照一定的规则排列成二维的水印信号,并将水印信号逐位添加到BMP签章图片的相应的每个像素的最低位。LSB算法虽然鲁棒性比较差,容易遭到坏,比如在签章图片遭受到压缩或者剪切等情况时,水印也会遭到破坏。但是,LSB算法的容量比较大,并且不可见性非常好,所以LSB算法仍是非常重要和常用的一种水印嵌入算法。而且,在电子签章系统中,如果文件签章信息遭到破坏即可认为文件遭破坏,不影响电子签章系统的正常使用。 电子签章系统平台以PKI/CA技术体系、时间戳服务、CA认证中心为基础,为电子合同管理平台、电子商务平台等提供电子签章及签名服务,系统为签章主体颁发包含对应身份信息数字证书的USB-Key,并利用USB-Key检查签章主体身份;签章主体利用USB-Key完成电子文档的签章及签名。电子签章系统总体模型设计如图2所示。 图2 电子签章产品总体模型 管理平台主要以CA认证中心、时间戳服务中心、PKI/CA体系、以及RA注册中心为技术支撑向应用层提供签章密钥管理、签章制作管理、签章数据管理、时间戳服务、日志统计、数字证书认证等服务,以控件的形式嵌入到办公软件的客户端程序中,或者业务应用系统平台中。 数字证书的管理主要包括数字证书的申请和管理以及签章的制作功能。本模块设计的核心就是证书机构CA中心,主要功能是为用户创建和颁发证书。需要使用电子签章系统的用户,首先向CA中心提交自己的用户详细信息,以确认用户的身份,审核通过后,CA中心将为用户创建数字证书。本文所提出的电子签章系统采用的椭圆曲线算法进行数字签名,所以创建证书时,主要是生成椭圆曲线算法中的公钥、私钥以及其它参数信息,之后CA中心对申请用户发放数字证书,数字证书中包含CA中心公钥、用户的个人信息、用户公钥以及证书签名信息。最后将创建的数字证书、用户的私钥以及使用制章工具生成的印章一起封装到USB-Key中,并将生成的USB-Key以安全的方式送给用户,用户利用电子签章系统为电子文档加盖签章及签名时,电子签章系统通过USB-Key核验用户身份。因此,USB-Key在用户首次使用前,需要用户设定私人密码,以确保只有用户自己可以使用该USB-Key。用户申请数字证书的基本过程如图3所示。 图3 用户申请数字证书的基本过程 需要注意的是,通常将Fp上定义一条二进制域上的椭圆曲线描述为T=(p,a,b,G,n,h)。p,a,b,G,n,h均为公共参数,其中p、a、b确定一条椭圆曲线,G为基点,n为G的阶,h是曲线上所有整数点的个数与n相除的商的整数部分。在为用户制作数字证书时,除用户的公钥及详细信息以外,这些算法中的相关公共参数,也需要写进数字证书之中。 签章的过程就是对所发送的文件进行数字签名的过程,签章用户首先使用单向散列函数计算出原文件的数字摘要,数字摘要为固定长度的字符串。之后签章用户从USB-Key中取出自己的私钥和签名算法中的各公开参数以及证书信息,并使用自己的私钥对摘要数据进行计算,计算结果即为签名信息。再将签名信息、签章用户的证书信息以及椭圆曲线算法中所需要的公开参数以水印的形式嵌入的印章图片中。最后,将嵌入水印的印章图片,附加在文件的指定位置,形成签章后的电子文档,完成签章过程。电子签章系统中的签章过程基本如图4所示。 图4 签章过程 本文所研究的电子签章系统基于椭圆曲线签名算法(ECDSA),所以签章过程的具体步骤如下所示。 (1)设发送原文件为M,求出发送原文件的摘要信息sig=H(M),其中H为单向散列函数,如SHA256等。 (2)用户插入USB-Key,输入最初设定的密码,如果输入正确则继续下一步,反之,禁止使用签章系统。 (3)从USB-Key中取出用户的私钥d、数字证书以及签章图片,并从证书中取出用户的详细信息、公钥Q和全局参数(p,a,b,G,n,h),各参数的具体含义见上一节。 (4)选择一个随机数k,k∈[1,n-1]。 (5)计算kG=(x1,y1)。 (6)计算r=x1modn,如果r≠0,执行下一操作;否则回到步骤(4)。 (7)计算k-1modn (8)计算s=k-1(e+dr)modn,如果s≠0,执行下一操作,否则回到步骤(4)。 (9)将签名信息(r,s),公钥Q,证书中用户的个人详细信息及算法中涉及到的参数,以水印的形式嵌入到签章图片中,之后将签章附加在文件指定位置。 (10)完成签章,发送给接收方。 签章验证过程就是从签章后的电子文档中提取数字签名并核验签名信息的过程。电子文档接收者在接收到签章后的电子文档后,将接收到的电子文档与签章图片相分离。分离之后对签章图片进行水印提出,提取出水印信息,水印信息中包含电子文档发送者用自己私钥加密计算后的摘要数据;查找公开的电子文档发送者的公钥,用于对加密的摘要信息进行解密计算,得到发送方附加的摘要信息。对于提取出来的原发送文件,接收用户用与发送用户相同的单向散列函数计算,得出摘要信息。将两个摘要信息进行对比,如果相同,则验证通过。反之,验证不通过。签章验证如图5所示。 图5 验章过程 验章过程的详细步骤如下所示。 (1)接收用户从签章后的文件中提取出原文件M和签章图片。 (2)从签章图片中提取水印信息,水印信息为发送用户加密计算后的签名信息(r,s)。 (3)从公开渠道查找电子文档发送用户的公钥Q及签名算法相关公共参数。 (4)核验r、s,如果r、s∈[1,n-1],进入下一步;否则,输出验证不通过。 (5)计算w=s-1modn。 (6)求出原文件的摘要信息sig=H(M),H为发送用户所使用的单向散列函数。 (7)计算 u1=sig*wmodn (8)计算X=u1G+u2Q。 (9)X=(x1,y2),计算v=x1modn。 (10)如果v=r,则表示签名有效,输出验证通过;否则,输出验证不通过。 为了使用户在使用电子签章的时候更加方便、直观,本文所提出的电子签章方案在实现的时候,签章图片以ActiveX控件的形式无缝地嵌入Word应用程序中,并在Word工具栏中开发了电子签章工具栏。如图6所示,用户在使用电子签章系统时,只需要在Word工具栏中选择对应的菜单进行操作即可。 图6 电子签章系统Word菜单 本文PKI/CA技术体系为支撑,椭圆密码算法机制为基础,设计并实现了一套电子签章系统平台,系统采用C/S架构,其中电子签章制作与证书管理等功能由服务端完成,客户端采用ActiveX技术集成到office软件中,与Word、Excel等软件无缝结合,完成签章与验章,以及撤消签名和锁定文档等功能。 测试环境,见表1。 表1 测试环境 本文提出一种基于椭圆曲线算法的电子签章技术,并实现了关于Word文档的签章系统的签章及验章功能,可以确保Word文档的真实性和完整性。 正常情况下,用户按照流程顺序进行签章。打开需要签章的Word文档后,在操作之前先插入用户自己从CA中心申请的USB-Key,输入USB-Key的密码通过后,选择Word工具栏上电子签章的菜单进行签章操作。电子签章系统为用户提供普通签章、骑缝章和公检法章3种选择,用户根据自己的需要选择对应的签章操作。用户完成签章操作后,效果如图7所示。 图7 签章文档示例 由于系统每次重新打开电子文档时,都会对其进行签章验证,重新计算签名信息,以验证文档是否为原始接收文档,所以当签章后的电子文档被重新编辑或恶意篡改后,系统可以立即检验到文档已被篡改过,并在窗口给出明显提示。当系统打开被篡改后的文档时,打开后效果如图8所示。 图8 签章文档篡改后的示例 如果接收者接收到的文档通过了验证,接收者可以通过右键点击文档中的签章图片,弹出发送者的数字证书信息,可以实现对发送者身份的认证,并且实现了电子签章系统中的不可抵赖性。 因为电子文档发送者的签名计算私钥保存在发送者的USB-Key中,USB-Key一般被用户保密存放。首先,攻击者很难获取到文档发送者的USB-Key;其次,USB-Key有文档发送者设置的口令,即使获取到USB-Key,没有口令也无法使用USB-Key。因此,攻击者无法获取发送者的私钥,所以无法对本方案提出的电子签章方案进行攻击。即时用户的USB-Key丢失,USB-Key也有自己的验证信息,攻击者也很难获取到用户的私钥。并且,本方案基于椭圆曲线算法,在现有的条件下,在没有私钥的情况下,想要破解椭圆曲线算法,几乎是不可能的。 综上,本方案提出并设计的电子签章系统可以灵敏检测到电子文档任何有意(恶意篡改)或无意的微小改动,很好检测出攻击行为,满足了实际办公需求中对电子文档的防篡改要求。 目前,在我国市场上较为成熟的电子签章产品均RSA数字签名算法来实现对电子文档完整性的认证及保护的,如北京安证通信息技术有限公司、江西金格科技股份有限公司的电子签章产品,所以为验证本文所采用的基于ECC算法的电子签章方案比商用电子签章更加安全,性能更好,我们将对ECC与RSA算法进行比较与分析。 加密算法都是建立在比较复杂、难以解决的数学难题的基于之上,算法的破解难易程序,主要取决于应该数学难题的难易程序。从理论上而言,椭圆曲线算法更加难破解。 如表2所示,ECC算法的单位密钥安全性强度更高,抗攻击能力更强。 表2 ECC与RSA安全强度比较 如表3所示,在安全强度相同的情况下,ECC私钥长度选择160位,RSA私钥1024位。根据对比,ECC算法在电子签章系统中的常用操作性能均比RSA算法更好,因而采用ECC算法的电子签章系统效率更高。 表3 ECC与RSA计算速度对比结果 互联网环境下,办公时的公文发布及合同传递由纸质化逐渐转变为电子化,电子文档极易篡改的特性,使得传统的纸质化文档签章存证方案已不能满足电子文档的溯源防伪需求。为了保证电子文件在网络传输过程中的安全性,需要电子文档在互联网传递的过程中,必须在确保发送方身份的同时,保护文件的完整性,并且保证签名行为具有不可抵赖性。本文提出一套完整的电子签章系统方案,方案借用PKI/CA技术体系实现对签章人身份的认证,采用目前安全性最高的椭圆曲线电子签名算法(ECDSA),综合利用单向散列函数和数字水印技术,实现了印章管理、签章及验章等基本功能,并通过ActiveX控件与Word文档集成实现整个电子签章系统的研发。测试结果表明,相较于RSA算法电子签章系统,安全性更强、效率更高。 [1]XU Shengwei,ZHANG Zhenzhen,CUI Minlong.Research and design of key technology for mutual trust and mutual verify in electronic seal system[J].Computer Engineering and Design,2016,37(7):1777-1780(in Chinese).[许盛伟,张珍珍,崔敏龙.电子印章系统的互信互验关键技术研究与设计[J].计算机工程与设计,2016,37(7):1777-1780.] [2]WANGXiong,LOUJiapeng,PANGYanmei.Designandimplementationofmulti-userdigitalsealsystem[J].ComputerEnginee-ringandDesign,2012,33(5):1767-1771(inChinese).[王雄,娄嘉鹏,庞岩梅.多用户电子签章系统设计与实现[J].计算机工程与设计,2012,33(5):1767-1771.] [3]TANJie.ResearchandimplementationofelectronicsealsystembasedonPKI/CA[D].Nanchang:NanchangUniversity,2013(inChinese).[谭杰.基于PKI/CA体系的电子签章系统研究与实现[D].南昌:南昌大学,2013.] [4]ZHANGXian,ZHULin,JIANGJianfeng.ResearchandanalysisonelectronicsignaturebasedonPKItechnology[J].Science&TechnologyInformation,2012(32):285-285(inChinese).[张娴,朱麟,蒋建峰.基于PKI技术的电子签章分析研究[J].科技信息,2012(32):285-285.] [5]XUNan.Theresearchonkeytechniquesofelectronicsignaturebasedonmulti-system[D].Guiyang:GuizhouUniversity,2015(inChinese).[徐楠.面向多系统的电子印章关键技术研究[D].贵阳:贵州大学,2015.] [6]RANPei,YANGJiyun,TANJinyong.Newprotectionschemeforintegrityofwordelectronicdocument[J].ComputerEnginee-ringandApplications,2013,49(13):76-79(inChinese).[冉沛,杨吉云,谭金勇.一种新的Word电子文档完整性保护方案[J].计算机工程与应用,2013,49(13):76-79.] [7]HyeranMun,KyusukHan,YanSunLee,etal.Enhancedsecureanonymousauthenticationschemeforroamingserviceinglobalmobilitynetworks[J].MathematicalandComputerModelling,2011,55(1):214-222. [8]SunYing,XuChunxiang,YuYong,etal.Stronglyunforgeableproxysignatureschemesecureinthestandardmodel[J].TheJournalofSystems&Software,2011,84(9):1471-1479. [9]ZHONGShangping,XUQiaofen,CHENYuzhong,etal.AuniversalsteganalysismethodbasedonlocalfeaturesextractedfromLSBsequences[J].ActaElectronicaSinica,2013,41(2):239-247(inChinese).[钟尚平,徐巧芬,陈羽中,等.一种基于LSB序列局部特征的通用隐写检测方法[J].电子学报,2013,41(2):239-247.] [10]YANGQuanhai.DigitalimagehidingprocessingtechnologybasedonLSBsequence[J].ElectronicDesignEngineering,2016,24(22):142-144(inChinese).[杨全海.一种基于LSB序列的数字图像隐藏处理技术[J].电子设计工程,2016,24(22):142-144.] [11]BAIDonghui,LIUYanlong.Leastsignificantbitswatermarkalgorithmwithresistinggeometricattacks[J].VideoEngineering,2013,37(5):29-32(inChinese).[白冬慧,刘彦隆.抗几何攻击的最低有效位数字水印算法[J].电视技术,2013,37(5):29-32.]1.3 数字水印技术
2 电子签章系统模型
3 电子签章系统核心功能设计
3.1 数字证书的管理
3.2 签章过程
3.3 验章过程
u2=r*wmodn3.4 嵌入Word工具栏
4 电子签章系统实现与测评
4.1 系统实现
4.2 测试环境
4.3 电子签章系统实验效果
4.4 安全性与性能对比分析
5 结束语