XML数字签名的实现
定义一个基于XML签名规范结构的元素结构模型来容纳子消息,病历文档所有的子消息包含在<object>容器中,由相应的<Reference>元素指引,每一个<Reference>元素都包含一个<Fragment>元素,<Fragment>元素包含URI和ceas属性,其中URI属性用于子消息内容,ceas属性包含签名者对子消息的抽取控制方案。<Fragment>元素只能包括<Random>元素或者<Digest>元素之一,其中<Random>元素保存对子消息转换时产生的随机数,这个随机数在计算子消息时要附加到子消息中,从而增加签名的安全性[10]。下面结合实例给出XML数字签名的实现。
(1)信息的录入
病人在看病的时候首先需要注册个人信息,同时系统会自动为其分配所需的密钥,进入病历录入的主界面后,病人可以选择所要填写的病历文档,根据病人的选择,病历的填写项会自动与之对应,病人填写完所有内容后,所填数据会自动换成XML格式的电子病历文档,并向病人显示。
(2)签名的生成。
构建一个标准的XML病历文档图3,用户可以随意选择需要签名的子消息,以及设置该子消息的ceas属性。用户可以对XML病历文档进行签名。假设签名者选择病历文档的五个元素作为签名的子消息:“name”、’symptom”、”history”、”advice”、
”doctor”,各个子消息对应的CEAS分别为“1“、”1“、”0“、”0“及”0“。
(3)XML签名通过引入内容访问控制结构,使得子签名的抽取必须按照原始签名者制定的规则进行,从而确保信息不被篡改,保证信息的安全性[11]。图3原文档抽取后的签名文档为图4。由于“name”子消息的ceas为“1”,在没被抽取的情况下仍会显示在抽取后的文档粒。没被抽取且ceas为“0”的子消息则被“隐藏”了。
(4)签名的验证
XML病历文档和签名文档都存储在相应的文件目录下,点击菜单栏中的“验证命令”系统将会验证正在操作的病历文档。也可以导入newEmr.xml文档和抽取后的文档,通过签名值和引用验证进行验证,从而确保病历文档的安全性。
上一页 [1] [2] [3] [4] [5] [6]
数字签名在电子病历系统中的实现(XML数字签名的实现) 第6页下载如图片无法显示或论文不完整,请联系qq752018766