APP下载

一种新的Word电子文档完整性保护方案

2013-07-20冉沛杨吉云谭金勇

计算机工程与应用 2013年13期
关键词:签章数字签名印章

冉沛,杨吉云,谭金勇

重庆大学 计算机学院,重庆 400044

一种新的Word电子文档完整性保护方案

冉沛,杨吉云,谭金勇

重庆大学 计算机学院,重庆 400044

1 引言

在信息技术的高速发展的今天,国家大力提倡低碳经济,努力打造无纸化办公环境,传统的纸质文档渐渐被新型的电子文档所取代[1]。在电子文档应用的过程中,必须保证其传输过程的完整性,因此电子文档的完整性问题就成为了人们关注的焦点。目前主要采用以印章图片作为数字签名载体的电子签章系统来解决电子文档的完整性问题[2],其核心是使用MD5算法取得文档内容信息摘要,再利用RSA数字签名算法处理信息摘要,将结果以数字水印的方式嵌入文档中的印章图片,以实现对文档完整性的保护和认证。但这种方式存在安全性方面的不足:首先,MD5哈希算法的安全性已经受到质疑[3],应用于实际签章系统存在着安全隐患;采用的RSA[4]数字签名算法要确保安全性,需要使用长度为1 024位以上的密钥,而相应的密钥生成较为复杂(大素数不易产生),其依赖于大整数因式分解的安全性也并没有得到理论上的完全证明(RSA-158就已经成功被分解破译)。其次,水印信息在超过印章图片水印容量时易被感知,嵌入水印信息在正常传输过程中也可能遭到非人为意外破坏或者噪声干扰,造成认证的虚警率和漏警率提高[5]。此外,当以印章图片作为数字签名载体时,查阅者无法在印章图片上直观查看签章者信息,并且无法在印章图片上实现签章弹出式菜单,使得签章系统操作性较差。针对传统电子签章的不足,本文提出一种新的电子签章系统方案,运用SHA-1哈希算法和更为安全快速的椭圆曲线(ECC)数字签名算法实现对文档完整性的保护和认证。在此基础上采用ActiveX印章控件,并结合Word二次开发接口制作签章工具栏,与Word编辑器无缝接入以实现相应签章功能。通过实验对比分析表明,本电子签章系统在理论安全性、高效性和易操作性方面较现有主流的电子签章软件更优。

2 基于ECC数字签名并结合印章控件的电子签章系统

在人们日常使用电子文档的过程中,对于某些重要文档要求不能进行丝毫修改,需要确保其完整性,并且要求一旦该类文档被修改,必须保证对实施者的确认,使其不可抵赖。对电子文档完整性的保护通常是利用数字签名算法并结合数字水印技术实现,但现有电子签章软件在算法及技术上存在安全性不足,对此本文提出一种基于ECC签名算法并结合印章控件技术的电子签章系统。其基本思想是针对目前普遍采用的MD5哈希算法受到安全质疑的情况,选取安全强度更高的SHA-1算法提取文档摘要,将其作为数字签名的内容。针对传统RSA算法的不足,选取安全性和效率更高的ECC算法对文档信息摘要进行数字签名,从而提高电子签章系统的安全性。其次,通过采用Word二次开发接口和ActiveX控件技术,实现Word签章工具栏和印章控件,提高电子签章系统的易操作性。

2.1 ECC数字签名算法原理分析

ECC(椭圆曲线密码学)是一种公钥算法,来源于对椭圆曲线的研究,而椭圆曲线是定义在有限域上由Weierstrass方程:y2+a1xy+a3y=x3+a2x2+a4x+a6,确定的平面曲线。ECC是基于椭圆曲线点群上离散对数问题的难解性[6]设计的,即在有限域Fp上,选择椭圆曲线E及一个有较高阶的基点G∈E(Fp),要计算该点的倍乘dG相对来说比较容易,但已知G和dG要计算d就比较困难。

在实际应用中,ECC数字签名及认证算法的基本原理主要包含三步:

(1)在有限域上给定K=dG,其中K、G是椭圆曲线Ep(a,b)方程y2=x3+ax+b上的离散点(点G为基点),d是小于n(n是点G的阶)的整数,通常将K作为公钥,d作为私钥。

(2)随机取一个的点值kG=(x1,y1)(k为小于n的随机正整数),并计算r=x1modn,保证r≠0,否则重新选取随机数k值;采用SHA-1算法取得电子文档的信息摘要作为数字签名内容h(m),利用签章者私钥d进行数字签名s=k-1(h(m)+dr)modn,将签名结果(r,s)存储起来完成签名过程。

(3)在电子文档数字签名的认证过程中,计算当前接收文档的哈希值h1(m);提取签名文档的签名结果来计算w=s-1modn,u1=h1(m)w modn,u2=rw modn;利用公钥K与基点G的值,计算得到一个有限域点值M=u1G+u2K=(x1,y1),通过比较值v=x1modn与签名结果中的r值是否相等来判断文档的完整性。如果二个值相等,则文档是完整的,反之则已被修改。

2.2 基于电子签章ActiveX控件技术的实现分析

在采用ECC数字签名算法后,技术的实现成为关键。选用合适的技术有利于将ECC数字签名算法应用于MS Word中保护文档的完整性。现有大部分电子签章系统采用的技术均是对文档进行RSA数字签名,将签名后的信息以数字水印的形式嵌入印章图片,当需要认证时提取印章图片中水印进行认证处理。分析发现现有签章技术上存在较多局限性:印章图片受水印容量限制无法存储较多数据信息;签章系统以简单的印章图片作为载体,不能显示签章信息,并且不能对印章图片直接添加弹出式菜单来实现对文档认证等功能操作;在文档传输过程中,印章图片易遭受破坏和噪声干扰,从而造成认证的虚警率和漏警率提高。针对现有技术所存在的不足,在新的方案中采用ATL(ActiveX Template Library)[7]技术,实现了ActiveX印章控件以及Word签章工具栏。ActiveX印章控件较现有电子签章系统采用的印章图片的优势在于:

(1)实现的ActiveX印章控件作为印章图像的载体,能添加控件右键弹出式菜单,在Word文档中透明显示,并能使用户查看相关签章信息和时间。相较现有签章技术使用的简单印章图片来说,其显示效果更加清晰完善,操作更加方便。

(2)利用ActiveX印章控件的持续性,对数字签名结果进行长久地隐藏存储,既能保证大量数据的存储,解决印章图片中数据存储受水印容量限制的问题,又能长久可靠隐藏数据在控件所在容器Word的数据流中,不易受干扰和破坏,不被非法窃取者随意复制取出,安全性较好。为了实现持续性,印章控件提供持续性接口;控件所在容器(即MS Word)提供存储介质(本文采用Word复合文档[8]的流)进行存储签名后结果。其实现的核心原理流程图如图1所示。

图1 实现控件持续性流程图

在文档数字签名后,印章控件所在容器(Word复合文档)创建数据流作为信息存储的载体,将数字签名结果、公钥K和基点G利用控件存储接口函数写入数据流。在验证文档完整性时,利用控件加载接口函数读取Word数据流存储的信息来验证文档完整性。

3 电子签章系统的实现

在提出的签章系统中,发送方随机选取与椭圆曲线基点G相关的点kG,同时将Word电子文档内容进行SHA-1运算得到的文档信息摘要作为数字签名内容,然后利用签章者的ECC私钥对信息摘要进行数字签名,将签名结果、公钥K和基点G存入ActiveX印章控件所在容器Word的数据流中隐藏。对于接收方来说,首先从印章控件所在容器Word的数据流中提取数字签名结果(r,s),并计算当前接收文档的哈希值。然后利用签章者的ECC公钥和基点G的值,将签名结果与哈希值一起计算得到一个有限域点M,并利用点M横坐标x1计算v=x1modn,将v与r的值进行比较,如果相等则文档未被修改是完整真实的,反之则已被修改过。具体实现流程图如图2所示。

图2 签章以及验证流程图

4 安全分析与实验

4.1 测试环境

CPU为Intel CoreTMi3-540,主频3.07 GHz,内存4 GB,操作系统为Windows XP SP3,Office Word 2003。

4.2 安全性对比分析

现有商业电子签章系统一般均采用传统的RSA数字签名算法实现文档的完整性保护,如优泰科技的UTC电子签章系统。为验证采用ECC数字签名的电子签章方案在安全性上更优于商业电子签章系统,将本电子签章系统中采用的ECC数字签名算法与现有商业软件采用的RSA数字签名算法进行对比分析。ECC与RSA均可应用于数字签名,相对于传统的RSA数字签名算法,ECC数字签名的安全性更高。RSA算法是基于大整数因子分解问题,数学原理较为简单;国际上公认的对RSA有效攻击方法为一般数域筛(NFS),它的破译求解难度是亚指数级的;ECC算法是基于椭圆曲线离散对数计算问题,相比RSA算法,理论上更为复杂,而采用国际上公认对ECC有效攻击的Pollard rho方法去破译ECC算法,其难度是指数级的[9]。ECC数字签名算法与RSA数字签名算法的安全强度比较,如表1所示。

表1 ECC与RSA安全强度比较结果

如表1所示,在相同安全强度要求下,ECC数字签名算法比RSA数字签名算法需要的密钥长度更短[10],故ECC单位密钥的安全强度更高,其指数级的破译时间复杂度也决定了其抗攻击性更强。

此外,采用公钥加密的数字签名算法直接处理文件内容速度较慢,因而一般会用哈希算法处理文档内容得到较小固定长度的哈希值作为签名内容。现有软件普遍使用的是生成128位哈希值的MD5算法,相比于MD5算法,生成160位信息摘要的SHA-1算法安全强度更高。例如实施生日攻击,对MD5只要进行264次运算,而对SHA-1就要进行280次运算[11]。SHA-1算法还具有单向性和抗碰撞性[12]的特性,能保证生成的Hash值是安全的。故采用SHA-1算法处理文档内容,能进一步保证文档数字签名的安全性。

由上述对比分析可知,采用ECC数字签名算法的电子签章系统,较现有商业电子签章软件在保护文档完整性上更为安全。

4.3 系统性能分析

(1)本文提出的电子签章系统中采用的ECC数字签名算法相较于传统RSA算法,所需的密钥长度更短,即可在不减少密码分析量的前提下更快完成数字签名,因而效率更高。通过设计实现两种不同方式的数字签名算法实验,对比分析ECC和RSA的密钥对生成及签名认证的时间消耗,其实验结果如表2所示。

表2 ECC与RSA速度性能对比结果

实验结果表明,在ECC数字签名算法和RSA数字签名算法达到相同签名攻破时间以及签名数据的长度均为150个中文字符的条件下,ECC数字签名的签名速度和认证速度明显快于现有商业软件采用的RSA数字签名算法,因而使采用ECC的电子签章系统效率更高。

(2)相比于现有采用印章图片的签章系统[2],采用ActiveX印章控件的电子签章系统在保护文档完整性方面的操作性能也更优。实验将两种签章方式应用于Word 2003文档中:①将数字签名后的数据信息分别嵌入ActiveX控件所在容器中和印章图片中保存(其中嵌入数字签名水印信息后的印章图片效果如图3所示),对签名存储数据量大小进行对比分析;②对所用印章图片添加7%的高斯分布的噪声,实验分析在添加噪声后,能否完成对数字签名的正确认证;③移动鼠标到印章控件或是印章图片上,实验观察能否查看签章者信息和弹出右键功能菜单。两类电子签章系统的实验结果,如表3所示。

图3 嵌入数字签名的印章图片

表3 ActiveX印章控件与印章图片性能对比结果

实验结果分析表明:

(1)采用印章图片的电子签章的签名存储量是受限制的,将较小的信息作为数字水印嵌入到印章图片中时,效果较好。若嵌入的信息量较大时则水印信息易被感知,造成电子签章签名结果的信息泄露;而采用ActiveX印章控件的电子签章系统对数字签名的存储量是无限制的,因为存储的信息是以流的方式存储于印章控件所在容器MS Word文档结构中,故而能满足用户存储更多需要信息,也能使更多的签名信息被保存。

(2)在印章图片传输过程中可能会受到噪声干扰,实验中模拟该种情况,对印章图片添加7%的高斯分布噪声,然后实验测试发现采用印章图片的电子签章系统不能完成对数字签名的正确认证;采用印章控件方式的签章系统能够抵抗噪声干扰,对印章控件上显示的印章图片添加噪声并不影响数字签名信息的获取,因而能完成签章的正确认证。

(3)采用ActiveX印章控件的电子签章系统与以印章图片作为数字签名载体的电子签章系统相比,显示内容更加完善,操作更加方便。其不仅能在鼠标移动到印章控件上时显示签章者的具体签章信息(如图4所示),还能添加印章图片无法实现的弹出式菜单,从而使用户操作更方便,使整个电子签章系统性能更优(如图5所示)。

图4 电子签章信息显示效果图

图5 电子签证控件弹出式菜单显示图

5 结语

随着电子文档的广泛应用,文档的完整性保护越来越受到人们的重视。MS Word自带的保护和认证的措施显然不能满足人们的要求,对此,本文在安全性更高的椭圆曲线数字签名算法的理论基础上,成功将ECC数字签名算法与ActiveX控件技术相结合,实现了电子签章系统作为MS Word的中间件。通过实验测试表明,本文提出的电子签章系统方案在安全性、高效性和易操作性方面均优于现有的主流电子签章系统。

[1]石朝英.纸质文档与电子文档保护技术之比较[J].中国科技信息,2006(7):177-179.

[2]李静.认证水印技术及在电子签章系统的应用研究[D].郑州:解放军信息工程大学,2006.

[3]王小云,张金清.MD5报文摘要算法的各圈函数碰撞分析[J].计算机工程与科学,1996,18(2):15-22.

[4]Spillman R J.Classical and contemporary cryptology[M].北京:清华大学出版社,2005.

[5]尹浩,林闯,邱锋,等.数字水印技术综述[J].计算机研究与发展,2005,42(7):1093-1099.

[6]张龙军,赵霖,沈钧毅.适于建立密码体制的椭圆曲线研究[J].计算机工程,2000(8):27-29.

[7]Rector B,Sells C.深入解析ATL[M].潘爱民,译.北京:中国电力出版社,2001.

[8]Rentz D.Documentation of the microsoft compound document file format[EB/OL].(2007-08-07)[2011-10-01].http://sc.openoffice.org/compdocfileformat.pdf.

[9]Raju G V S,Akbani R.Elliptic curve cryptosystem and its applications[C]//Proceedings of the IEEE International Conference on Systems,Man and Cybernetics,5-8 Oct,2003,2:1540-1543.

[10]Robshaw M,Yin Y.Elliptic curve cryptosystems[M].New York:RSA Laboratories,1997.

[11]林雅榕,侯整风.对哈希算法SHA-1的分析和改进[J].计算机技术与发展,2006(16):124-125.

[12]张松敏,陶荣,于国华.安全散列算法SHA-1的研究[J].计算机安全,2010(10):3-5.

RAN Pei,YANG Jiyun,TAN Jinyong

College of Computer Science,Chongqing University,Chongqing 400044,China

Because Word electronic document lacks protection of integrity,and current electronic seal system by taking digital watermark technology has security flaws,a new protection scheme for electronic seal system based on ECC(Elliptic Curve Cryptography)digital signature is presented.Meanwhile,the scheme creates a middleware based on MS Word re-development interfaces and control technology.The experimental results show that the proposed scheme is secure and has good performance.

electronic seal;integrity;Elliptic Curve Cryptography(ECC);ActiveX control

针对现有Word(.doc)电子文档缺乏完整性保护,以及现有电子文档签章软件采用数字水印嵌入印章图片的方法存在安全缺陷的情况,提出了一种基于椭圆曲线数字签名算法的电子签章系统方案;在Word二次开发接口上,利用控件技术创建Word编辑器中间件,实现对电子文档进行数字签名及认证的完整性保护。对比分析与实验表明,该方案具有较高的安全性,且在高效性和易操作性方面优于现有签章系统。

电子签章;完整性;椭圆曲线密码学(ECC);ActiveX控件

A

TP309.2

10.3778/j.issn.1002-8331.1111-0065

RAN Pei,YANG Jiyun,TAN Jinyong.New protection scheme for integrity of Word electronic document.Computer Engineering and Applications,2013,49(13):76-79.

重庆市科技攻关项目(No.CSTC2011AC2198)。

冉沛(1987—),男,硕士研究生,主要研究领域:信息安全,数字图像取证;杨吉云(1975—),男,博士,副教授,主要研究方向:信息安全,计算机监测与控制;谭金勇(1986—),男,硕士研究生,主要研究方向:信息安全。E-mail:cqrp87@163.com

2011-11-09

2012-01-09

1002-8331(2013)13-0076-04

CNKI出版日期:2012-04-25http://www.cnki.net/kcms/detail/11.2127.TP.20120425.1722.086.html

猜你喜欢

签章数字签名印章
我们有印章咯
浅析计算机安全防护中数字签名技术的应用
自制橡皮印章
印章
基于数字签名的QR码水印认证系统
电子签章制作系统设计与开发研究
数字签名简述
大象的印章
浅谈带有电子签章文件的归档
基于数字签名和HSM的数据库篡改检测机制