XML加密技术在电子病历数据共享中的应用

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

XML加密技术在电子病历数据共享中的应用XML作为电子病历的一种通用格式,为保证数据共享的安全性需对其进行

加密。本文介绍了XML加密技术特点,通过实例说明在Java SE6开发环境中如何使用DOM4J和对称算法实现电子病历的加密处理。

标签:XML;电子病历;加密

1引言

电子病历是医院信息系统服务的核心,电子病历数据收集贯穿于患者在医院就诊的整个过程,它包含了患者基本信息、既往史、现病史、检验结果、诊断信息等,这些医疗数据即有结构化的信息也有大量的非结构化的信息,还包括大量不确定信息,对扩展性要求很高。XML由于其异构性、可扩展性、灵活性、自描述性及结构上的完整性等特点,使得XML成为描述电子病历的一种极好的结构化形式。医院和医院之间、社区医疗站和医院、医院和医保中心都需要通过网络来获取相关的医疗信息,由于XML标准中立性,也使得XML成为数据交换和共享的一种标准通用格式。针对目前网络上的各种安全问题,就必须采用XML 安全技术来实现数据安全有效的传输。

2 Xml加密规范

XML加密技术的基础是XML加密规范,该规范的目标是用XML描述一个经过数字加密的web资源,也可以是XML文件本身。XML加密与传统加密最大的区别是引入了加密粒度的概念,传统加密技术是对整个文件进行整体加密,而XML加密可以根据需要,可以对整个XML文件加密,也可以对XML文件中的元素以及元素中的内容进行加密,而其他不重要的部分则不加密,这样既保护了数据的安全,又加快了加密的速度,从而提高了数据交换系统的效率。

在W3C的推荐规范中,XML数据加密后仍是XML文档格式,使用EncryptedData元素作为XML加密文档的主要语法元素,其余元素均是其子元素。EncryptedData元素的语法结构为:

?

?

?

?

?

?

?

?

其中元素是最外层元素,用于标示所加密的数据,它有两个属性:Id和Type。Id用来识别具体的加密内容,Type用来确定XML加密的内容类型。元素是元素的第一个可选的子元素,其主要功能是识别加密算法。元素是元素的可选子元素,它描述加密和解密数据的对称会话密钥。元素是一个必要子元素,包含子元素和,其中子元素密封了加密后的数据,子元素密封了对外部加密数据的引用。元素提供了加密数据和密钥的附加信息。

3 XML 加密技术实现

XML加密算法主要有对称加密和非对称加密算法两大类。对称加密算法简单快捷,密钥较短,破译困难,加密速度快,加密效率高,适合元素大批量加密,如DES、3DES、AES等,由于对称加密算法加密和解密使用相同的密钥,密钥交换的安全至关重要。非对称加密算法计算量比对称加密算法要大,运行时间长,常用来加密小的数据量,如DSA、RSA等。

JA V A SE6开发环境中,利用DOM4J提供的丰富XML API,非常容易实现对XML文件进行各种操作。JCE(Java加密扩展)是集成在JDK1.6中的一个安全组件,提供了加密服务类和相关的接口,支持基本加密算法。若对XML文件中某一元素加密处理,可通过如下步骤完成:①DOM4J根据元素名称获取需要加密的元素;②JCE加密算法对其进行加密处理;③将加密内容和加密相关信息构造出元素;④将元素替换掉需要加密的元素。清单1为某患者的电子病历部分数据,用3DES加密算法对元素进行加密,清单2为加密后的XML文件。

清单1加密前的电子病历XML

001

王小明

1953/05/06

反复咳嗽、咳痰、活动后气促10年,间断性双下肢水肿1年,再发2d。

慢性支气管炎急性发作

陈林医师

2013/04/20 09:30

清单2 加密后的电子病历XML

001

王小明

1953/05/06

反复咳嗽、咳痰、活动后气促10年,间断性双下肢水肿1年,再发2d。

theKey

7XzuD7zwUfdos8ws+mNr…/pNYSEw05pYK9utIkjIyT

用Java实现加密的核心代码如下:

KeyGenerator KG = KeyGene rator.getInstance(“DESede”);

KeytheKey = KG.generateKey(); // 生加密密钥theKey;

String clearData = new String(data); // data为需加密的内容,即元素

int pad = clearData.getBytes().length %8;

for(int i=0;i元素,其中元素内容为加密得到的cipherDataBase64,然后用自定义封装方法replaceElement(encEleme nt, “ diagnosis “),将元素替换掉,得到加密后的电子病历XML。在实际应用中,可以对电子病历XML文件不同元素用不同密钥加密,这样只有拥有相应密钥的数据接收者才能解密相应的数据。

4结论

本文介绍了使用对称算法实现对电子病历XML加密,保证加密数据安全的核心是密钥交换的安全性。一种可行的方法是使用非对称加密算法加密对称加密算法的密钥,以保证密钥交换的安全,再使用对称加密算法进行文件数据的加密和解密,这样的结合加密方式会在实际开发中得到广泛应用。

参考文献:

[1]陈可.基于XML的电子病历系统[J].计算机系统应用.2012,21(6).

[2]车葵,牛晓太,邢书涛. XML加密方法的研究与实现[J].计算机工程和设计.2008,29(20).

[3]陈晚华.XML安全技术在共享数据交换中的应用[D].中南大学,2008.编辑/孙杰

相关文档
最新文档