你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 计算机安全与维护
XML电子病历的加密(五)
 

4 XML加密

XML加密为加密结构化数据与以标准XML格式表示加密结果提供了一种标准的方法。XML加密允许加密任何数据,这些数据既可以是一个完整的XML文档或者XML文档中的特定元素,也可以是从外部引用的任意非XML格式数据。加密结果最后被表示为一个XML加密元素<EncryptedDada>

电子病历的加密意义在于将一些敏感的数据保护起来,而将不敏感的数据开放,而不是将整个文件加密,发送方使用接受访的公钥加密数据,只有接受方才能使用自己的私钥解密出数据,提高了数据的安全性。

W3C关于XML加密有详细的描述,可见正式出版的《XML Encryption Syntax and Processing》规范2,规范中规定了多达11种的加密算法,本文采用其中的3DES对称加密算法与RSA非对称算法。针对具体的应用,就是采用3DES算法来加密XML的数据,采用RSA算法来加密3DES算法的密钥,以达到速度与安全性两方面的优化组合。

针对清单1XML病历文档,病人的个人信息是不希望其他人看见的,所以对这些信息进行加密,加密后用<EncryptedData>元素替换<PersonalInfo>元素得到加密后的XML文档如下,清单2给出加密后的XML片段。

<PersonalInfo>

<EncrytpedData Type=http://www.w3.org/2001/04/xmlenc#Content xmlns="http://www.w3.org/2001/04/xmlenc#">

<EncryptionMethod Algorithm=http://www.w3.org/2001/04/xmlenc#tripledes-cbc xmlns="" />

<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmlsig#">

<EncryptedKey xmlns="">

<ds:KeyInfo>

<ds:KeyName>RSAKey</ds:KeyName>

</ds:KeyInfo>

<CipherData>

<CipherValue>

<EncryptedSymmetricKey>Nb4A43dH6…</EncryptedSymmetricKey>

<EncryptedSymmetricIV>RQsK1jlEBtV…</EncryptedSymmetricIV>

</CipherValue>

</CipherData>

</EncryptedKey>

</ds:KeyInfo>

<CipherData xmlns="">

<CipherValue>Hfrd1Pd0yVSGo6k…</CipherValue>

</CipherData>

</EncrytpedData>

</PersonalInfo>

 

在清单中<EncryptionMethod>元素指定了加密的算法,< KeyInfo >元素指定的是密钥信息,其中< KeyName >元素是指RSA非对称密钥的名称,第一个<CipherData>下的<. CipherValue >元素指使用RSA的公钥加密3DES密钥后的密文。第二个<CipherData>下的<. CipherValue >元素指使用3DES算法加密原文档<PersonalInfo>元素后的密文。

  推荐精品文章

·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089