Word文档多重签名和部分加密研究

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第22卷 第5期 天 中 学 刊 V ol. 22 No. 5 2007年10月 Journal of Tianzhong Oct. 2007

收稿日期:2007-07-20

作者简介:张洪飞(1967~ ),男,河南新蔡人,黄淮学院电子科学与工程系高级实验师.

Word 文档多重签名和部分加密研究

张洪飞,韩 栋

(黄淮学院,河南 驻马店 463000)

摘 要:基于Word2003对XML 文档的支持,提出了将Word 文档转换成自定义XML 模式的XML 文档,再对XML 文档进行签名加密,从而实现对Word 文档多重签名和部分加密的思想.在将XML 转换成Word 时,还提出了适用于在各种平台中实现动态生成有格式Word 文档的通用解决方案.

关键词:Word 多重签名;Word 部分加密;XML 签名;XML 加密;XML 转换成Word Microsoft Office Word 是现在使用最广泛的应用软件,当用它来编辑重要文档(如电子公文等)时,需要保证文档的安全性.文档的创建者有时希望不同的接收者看到文档的不同部分内容,而接收方也希望验证文档的确来自发送方.目前,文档保护是采取整个文档加密或签名的方式,基本上未对Word 文档进行部分加密和多重签名的研究.Word 提供了加密方案,但它只对整个文档进行加密,并不能对部分文档加密.因此,当多人共同完成一个文档时,需要实现对文档的多重签名,即多人对同一文档进行签名.本文主要研究怎么实现对Word 文档实现部分加密(包括多个部分)和多重签名. 1 XML 签名加密

1.1 XML 签名语法及多重签名方案的提出

XML 签名即XML —Signature Syntax and Processing ,是由负责Web 技术标准制订的W3C (World Wide Web Consortium )组织于2002年2月14日发布的.这个标准提供了XML 文档的签名语法,使得文档在签名前后都是结构化的.其结构如下所示:

< Signature ID? > < SignedInfo >

< CanonicalizationMethod / > < SignatureMethod / > ( ( < Transforms > )? < Digestmethod >

< DigestV alue > < /Reference >) + | < /SignatedInfo > < SignatureV alue > ( < KeyInfo > )? ( < Object ID? > )*

< / Signature >

其中,“?”表示出现0或1次,“+ 表示出现1或多次,“*”表示出现0或多次.

XML 签名的父元素是< Signature >元素,该元素标识了一个特定的上下文环境中完整的XML 签名.< SignedInfo >元素包含了实际签名的所有信息,即签过名的信息,它的子元素< CanonicalizationMethod / >、< SignatureMethod / >表示签名前进行的规范化操作用到的算法和签名的算法. < Reference URI? >元素则是指向了需要签名的内容,利用这个元素就可以实现对

XML 文档的部分元素进行签名.< KeyInfo >元素包括用来验证XML 签名的具体信息.

根据XML 签名语法结构,本文提出利用< Signature >元素的ID 属性来标识不同签名者,通过< Reference >元素的URI 属性来指向被签名的元素,并且将各个不同签名者的签名作为被签名文档根元素的子节点,从而实现多人对文档的不同部分进行签名的思想.它解决了传统多重签名互操作性差和签名效率低[2]的不足.多重签名方案可如下所示,它显示了“张三”、“王五”对元素< Element1 >签名的实现. < SourceDocument >

中图分类号:TP311.132

文献标识码:A

文章编号:1006-5261(2007)05-0042-04

张洪飞,韩 栋:Word文档多重签名和部分加密研究·43·

< Element1 Id = “SignHere”>这是需要签名的重要信息

< Signature Id = “张三” >

< SignedInfo>

< Reference URI = “#SignHere” >… < /SignedInfo >

< /Signature >

< /Signature Id = “王五” >

< SignedInfo >

< Rererence URI = “#SignHere” > … < /Signature >

< / Signature >

< /SourceDocument >

1.2XML加密语法与部分加密的可能性

W3C推荐的XML加密标准的语法结构如下所示,与XML签名的语法结构相似.

< EncryptedData Id? Type?>

< EncryptionMethod / >?

< ds:KeyInfo>

< EncryptedKey>?

?

< ds:KeyName >?

< ds:RetrievalMethod >?

< ds:* >?

< /ds:KeyInfo >?

< CipherData>?

< CipherV alue>?

< CipherReference URI? >?

< /Cipherdata>?

< EncryptionProperties/ >?

< /EncrypteData>?

< EncryptionMethod >元素用来识别加密算法和可能的一些辅助参数.< CipherData >元素以某种形式(直接存储或引用)表示加密后的数据.< ds:KeyInfo>元素描述了如何获得密钥从而对< CipherData>元素的内容解密.< Encryption—Properties>包括其他一些额外的属性.利用XML加密的语法可实现对指定XML 元素加密,从而具有实现对文档部分加密的可能性.

2Word文档转换成XML文档方案探讨

根据XML签名和加密语法,如果能将Word文档转换成XML文档,就能实现对Word文档的多重签名和部分加密.下面以某项目为例介绍如何将Word文档转换成XML文档.该项目采用的是J2EE平台,利用Word2003对XML的支持特性在Word里创建XML 文档.其自定义XML模式XML文档的创建过程和步骤如下:

(1) 创建电子公文的XML模式officeDoc.xsd.

(2) 在Word里创建电子公文.

(3) 在菜单中选择“工具-模板和加载项”,再选择“添加架构”将XML模式定义附加到Word文档.

(4) 在添加模式后,就可以利用该模式中的元素批注文档.如图1所示,在Word中的“XML结构”窗格(显示在文档右侧)中,可将附加模式中的自定义元素插入到文档中.选中需要加入到某XML元素中的内容,再在文档右边任务窗格“XML结构”中选择相应的元素,将选择内容变成相应的元素内容.

图1 在Word中按自定义XML模式创建XML文档

(5) 选择“另存为”菜单命令,在保存类型中选择“XML文档(*.XML)”,选中保存按钮左边的“仅保存数据”.如图2所示,这样就将文档保存为按officeDoc.xsd结构创建的XML文档.

图2 保存为XML文档

为了复用上述各步的操作,方便不熟悉XML的用户使用,可以隐藏XML文档,不让标记显示出来.同时,为了防止误删除没有显示的标记,利用Word 的“保护文档—编辑限制”功能对整个文档中不能输入值的地方进行编辑保护,并将上述文档保存为模板,以保证文档格式的绝对统一,并避免重复劳动.对实现文档的部分加密而言,还需要知道哪些元素需要加密.这可以通过在创建XML模式时,将各个元素都加上“加密”属性来实现.利用上面创建的模板,在创建XML文档的时候,对需要签名或加密的元素点击右键选择元素属性,对加密属性值处填写上“是”表示要对此元素加密.通过上面操作的介绍,就可以在Word里创建加密的XML文档了.

相关文档
最新文档