欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    课程设计(论文)基于XML电子病历数字签名算法的研究与实现.doc

    • 资源ID:2396971       资源大小:162.50KB        全文页数:29页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    课程设计(论文)基于XML电子病历数字签名算法的研究与实现.doc

    基于XML电子病历数字签名算法的研究与实现摘要:病历是病人病情、诊断、和处理方法的记录,是医护人员进行医疗活动的信息传递媒介和执行依据,是临床教学和科研的主要信息源。随着医院信息化的发展,病历逐步从纸张病历过渡到电子病历。电子病历具有超越纸张病历的很多优点,但也存在一些巫待解决的问题。电子病历的安全性保护就是这样一个突出并且重要的问题。病历内容的机密性、完整性和不可否认性是病历安全的基本要求。电子病历的安全性有赖于法律、管理和技术三个方面。数字签名技术为电子病历的安全提供了技术支持。本论文于XML的电子病历系统,探讨了数字签名技术及其在此系统中的应用和实现。关键字:电子病历; 数字签名; XML签名目录第一章 绪论41.1病历及电子病历41.2电子病历安全性7第二章 XML签名标准及实现162.1研究目的162.2设计思想162.2.1 XML签名概述162.2.2XML病历文档结构172. 2. 3 XML签名类型202.2.4签名程序的应用212.2.5对签名的验证过程282 3小结29第三章 总结和展望29参考文献30附 录31第一章 绪论1.1病历及电子病历病历是病人病情、诊断、和处理方法的记录,是医护人员进行医疗活动的信息传递媒介和执行依据,是临床教学和科研的主要信息源。病历在医疗工作中的基础地位,决定了它对医疗、教学和科研水平的重要影响。如何提高病历的记录质量和管理利用水平,是医院管理的一个重要目标。病历的内容涵盖了医疗工作的各个过程,是各过程记录的集合,包括病人自然信息、住院病案首页、医嘱记录单、生命体征记录、检验检查报告、入院记录、病程记录、以及各种影像图片等。多少年来,病历一直是以纸张为介质,完全靠手工记录。尽管飞速发展的计算机信息处理技术不断地应用到医院管理的各个领域,但病历的记录、管理、利用的手工方式并没有发生实质性的变化。在医院信息化的发展进程中,如何利用计算机和网络技术来改变这一现状,实现病历的电子化,支持医院提高医疗效率、改善医疗质量、降低医疗成本,成为医务工作者和信息技术工作者的共同期待。电子病历是以电子化方式管理的有关个人终生健康状态和医疗保健行为的信息,它可在医疗中作为主要的信息源取代纸张病历,提供超越纸张病历的服务,满足所有的医疗、法律和管理需求。电子病历依靠电子病历系统提供服务。电子病历系统是包括支持病历信息的采集、存储、处理、传递、保密和表现服务的所有元素构成的系统。随着计算机和网络技术的发展,电子病历给我们带来了传统纸张病历所不具有的一些优点。1.电子病历能加快医疗信息的传递共享提高工作的效率。通过方便的编辑工具,典型病历模板,可以极大提高病历书写效率;比如像病人基本信息这样的病历内容可以直接从数据库中获得,可以建立相关知识库供病历编辑时选择录入。2.电子病历能够辅助医生作出判断,提高医疗工作质量。这方面的服务包括:同类疾病的病历查阅,帮助医生选择最佳医疗方案;智能知识库,辅助医生确立医疗方案;医疗违规警告,象药品相互作用配伍禁忌等,避免医疗错误;联机专业数据库,象药品数据库,供医生查询。另一方面,电子病历有助于规范医疗行为。比如:通过病历模板,可以提示医生进行必要的检查,避免遗漏,医嘱模板可以规范医疗操作。3.能够加强环节管理。实现了电子病历系统后,各种原始数据可以在医疗过程中及时地采集,形成管理指标并及时反馈,达到环节控制的目标。象对三日确诊、术前住院日限制的实时监控,根据病人的用药情况,自动判断是否发生了感染等等。4.电子病历为病人信息的异地共享提供了方便。实现电子病历,为远程病人信息共享和传递提供了有力支持。当病人转诊时,电子病历可以随病人转入新就诊医院的电子病历系统中。电子病历发展的下一步,是实现个人健康记录,可以伴随病人流动。5.电子病历为宏观医疗管理提供了基础信息源。管理部门可以从中提取各种分析数据,用于指导管理政策的制定。象疾病的发生及治疗状况、用药统计、医疗消耗等。当前正在实施的社会医疗保险制度,不仅在运行过程中,需要病历信息实施对供需双方的制约,而且在医保政策及方案的制定上,也需要大样本病历作为依据。电子病历的发展过程是对病人信息或健康信息不断覆盖的过程,是电子病历系统功能不断增强的过程。从病历包含的信息内容来说要经过几个发展阶段:第一阶段是电子病案阶段。特征是医疗业务环节的信息化,病人在院期间的信息处理都已经计算机化。第二阶段是电子病历阶段。特征是病人历次就诊和住院信息是以病人为中心集成化存储、管理的,并且实现计算机长期保存和访问。第三阶段是个人健康记录阶段。此时病人信息已不单纯是某一个医院或医疗机构,区域医疗机构之间可以共享访问病人健康信息。从功能上看电子病历的发展将会经历从单纯利用计算机代替手工完成对医疗文书的记录和处理工作到利用计算机主动化、智能化服务,指导医疗工作。理想的电子病历系统中,医生、患者或其它获得授权的人,在共享区域内需要了解一个个体的任何健康资料或相关信息时,在任何情况下都可完整、准确、及时获得它们,并可得到准确的释义,在需要时可以最大限度地得到详细、准确、全面的相关知识。电子病历可以根据自身掌握的信息和知识,主动进行判断,在个体健康状态需要调整时,做出及时、准确的提示,并给出最优方案和实施计划。由于电子病历能给医疗效益和医疗质量带来巨大的改善,各国都特别重视电子病历的发展。美国医疗保健信息与管理系统协会(HIMSS,Healthcare Information &Mangaement system society)做的在未来两年医院信息化最重要的应用调查中,电子病历排在了第一位。美国总统布什在2004年国情咨文中特别提到加快医院信息化建设步伐。他说:“将健康记录计算机化,我们可以避免严重的医疗事故,降低费用,提高医疗水平”。英国国民卫生服务体系(NHS,National Health Service)制定了1998年至2005年医疗信息的8年发展规划,明确提出将病人信息在基层保健医生到各级医疗机构之间的实时共享的发展目标。日本医药信息协会健康信息系统工业协会正在开展病历安全规范和临床信息交换标准的研究。香港医院管理局所属的医院;已经实现了院际间病人检验、检查报告信息的共享,并将逐步实现其他信息的院际共享。国内医院也在逐步推进电子病历的发展,目前信息系统正在经历从以经济管理为中心的管理模式向以病人为中心的临床信息模式转移。对于一些大医院,己经或即将实现医疗文书的电子化,病人信息的集成化、结构化,知识库的建立,简单的智能处理。但离理想的电子病历系统还有一定的差距,在电子病历应用及研究中存在以下一些亚待解决的问题:1.目前一些发达国家对电子病历的实施有比较完善的法律体系,从电子病历的书写签名到存储调用都有相应的法规及安全措施,病历是作为社会文件的一部分加以管理。而我国目前只作为单位医疗文件加以管理与利用,规范性、严肃性、安全性不够,如果没有相应的法律法规来规范保障它的实施,电子病历很难有序开展。2.电子病历会集成各种不同的数据,数据庞大、内容丰富、成分复杂,不仅有文本文件还有图像、数据表、视频等文件类型。我国医学信息标准缺乏,形成的标准在信息系统中也未得到充分的体现,使得信息无法有效整合与交换,院际间的信息也无法共享,标准化是电子病历健康发展的必由之路。3.数据的多样性和复杂性决定集中式数据集成是一个问题。电子病历要求有海量的存储空间,病历一旦建立,随时可能调用,如何有效地调出病历也是需要解决的问题。4.病历既是病人的个人信息,涉及到病人的隐私,又是医疗过程的记录,具有法律效果,它的安全性必须得到保证,也是一个难点。这一点在下一节会重点讨论。1.2电子病历安全性对于任何一个信息系统,其安全性的内涵都涉及到以下几个方面:机密性:信息不泄露给非授权的用户、实体或过程,或供其利用的特性。完整性:数据未经授权不能进行改变的特性,即信息在存储或传输过程中保持不被修改、不被破坏和丢失的特性。可用性:可被授权实体访问并按需求使用的特性,即当需要时应能存取所要的信息。网络环境下拒绝服务、破坏网络和有关系统的正常运行等都属于对可用性的攻击。可控性:对信息的传播、使用和内容具有控制能力。信息系统安全保护方式由技术保护方式和管理保护方式构成。技术保护方式系根据风险产生的技术特点和安全目标的要求而采用相应的安全机制、技术措施和专用设备。管理保护方式则根据有关法律法规和安全目标的要求,针对信息系统的运行,有关人员的行为和技术过程而制定相应的管理制度。在实际构建安全保障体系时可以分为六个层次分步实施:第一步:安全组织建立首先建立健全安全组织体系,明确负责安全管理的主管领导、主管部门、技术支持部门和宣传、保卫部门。第二步:监督机制运行系统风险分析,根据安全需求和法律法规的要求,确定安全建设或安全改造投资规模,制定安全策略。第三步:物理安全保证确保物理环境和物理保障系统的安全。它包括:机房场地、机房的防电磁辐射和电气特性、机房有完善的防自然灾害的防护措施;信息存储场地和器具具有完善的防水、防火、防雷、防磁、防尘措施等。第四步:安全基础建立保证信息、系统处理平台的安全。它包括硬件方面的,如服务器、网络设备、通信线路等的安全,软件方面的,如操作系统、数据库等的安全。第五步:安全屏障建立在上述物理安全和安全基础的前提下,考虑设置安全屏障包括安全通道、安全隧道和安全门卫。第六步:安全技术服务提供在前述安全建立的基础上,多方面技术综合使用,包括实时监控、身份验证、数字签名、访问控制、审计跟踪、信息加密、数据恢复、系统学习等,不断提高安全保障体系的完善性。第七步:安全管理完善在上述几步的基础上,加强安全管理,完善各种安全管理制度。所以,实施一个安全的电子病历系统所考虑的也不光是医疗技术层面,还受到法律法规是否健全的影响。首先,确立电子病历的法律地位,建立电子病历的所有权、授权范围统一的明确的界定,是保证电子病历安全的基础。有具体的法律法规做指导,就可以建立一个有效的信息安全政策来指导安全措施的建立和维护。例如,1996年,美国政府颁布了人寿保险责任法案(HIPAA)。该法案针对医疗信息化中的交易规则、医疗服务机构的识别、从业人员的识别、医疗信息安全、医疗隐私、健康计划识别、第一伤病报告、病人识别等问题,制定了详细的法律规定,以保护医疗数据的安全和患者的隐私权。HIPAA作为政府强制性法令,要求医疗机构限期必须执行。针对HIPAA的要求,各医疗机构、系统开发厂家都紧锣密鼓地修改现有系统,以满足HIP从的要求。HIP从代表了医疗保险信息标准化、规范化的重要发展方向,十分值得国内医疗信息界研究和借鉴。对于国内,目前法律上还没有电子病历相关的法律法规,电子病历的形成、使用、储存、保管及权属和真实性的确认尚没有统一的法律规定和法规的规范与约束。虽然在技术上能采用身份认证、访问控制、数字签名、传输安全等安全措施,但因为没有相应的法规出台,强制性不够,实际中应用这些安全技术的并不多见。但对于电子病历系统来说,它的安全需求还是很明显的,主要体现在以下几个方面:1.社会需求。a)病历涉及病人个人隐私,病人个人或法律规定不允许病历信息被随意泄露。b)病历数据对于授权公众必须可用。2.医疗提供者需求a)发生紧急情况时能继续医疗服务并于事后复原,必须事先拟定系统损坏程度评估程序、资料备份计划、灾难复原计划、紧急模式操作计划及定期演练与计划修订程序。b)保证病历数据对于研究和教育可用。c)保护医疗服务人员的隐私。3.法律和行政需求a)病历是医疗诊断、治疗操作的依据,为了医疗过程本身的安全,它的信息不能篡改,防止病历记录的改动和删除。b)病历要有签名和时间戳。c)病历要满足行政和医疗的审计。d)阻止对病历的非法访问。e)确保病历记录的真实性即原始性。电子病历系统是一个网络环境下的多用户系统,根据系统特点和安全需求,在存储安全、传输安全和处理安全三方面分析安全威胁,制定技术服务措施。在制定技术规划时要考虑到事前(攻击发生前)、事中(攻击发生时)、事后(攻击发生后)三方面,具体来说就是“技术防御+实时检测+数据恢复”。下面分别予以叙述:技术防御是最主要的防范手段,“防范于未然”是安全措施的最大目标。在电子病历系统中可以采用以下几种技术手段:1.身份认证。电子病历系统象所有的信息系统一样,身份认证是最重要的安全服务之一,因为所有其他的安全服务都依赖于该服务。认证有的依赖于密码技术,而有的与密码技术无关。其认证方法可能是基于下列原理中的任何一种:1)声称者证明他知道某事或某物,例如口令;2)声称者证明他拥有某事或某物,例如物理密钥或CI卡;3)声称者展示某些必备的不变特性,例如指纹、视网膜等;4)声称者在某一特定场所(也可能在某一特定时间)提供证据;5)验证者认可某已经通过认证的可信方。仅仅用)l到4)中的任何一种原理来进行认证往往是不充分的。最好的办法是综合应用这些原理来建立认证系统。最常见的认证机制是口令机制,但口令机制有很多安全脆弱点,最严重的脆弱点是外部泄漏和口令猜测,别的脆弱点还有线路窃听、危及验证者和重放等。可以采取一些变通来改善口令机制,比如声称者和验证者之间传输的实际是一个用户输入口令的单向函数值,这样就防止了传输时口令泄漏以及危及验证者的口令文件或数据库;又比如验证信息作为口令和随机值的函数值,将这个随机值和函数值一同发给验证方进行验证,避免了重放攻击。在密码技术的应用中,系统每一个用户都有一个在网络世界是标志自己的证书,证书中有自己唯一拥有的私钥。用户登录系统时,系统会通过密码技术验证用户证书的合法性从而进行身份认证,著名的SSL协议(安全链路层协议)包含身份认证功能,就是这种密码技术的一种实现。2.访问控制。访问控制的目标是防止对任何资源(如计算资源、通信资源或信息资源,在这是与病历相关的数据)进行未授权的访问。所谓未授权访问包括未经授权的使用、泄漏、修改、销毁以及颁发指令等。访问控制直接支持机密性、完整性、可用性以及合法使用的安全目标。其中对可用性的支持取决于对以下几个方面进行有效的控制:1)谁能够颁发会影响网络可用性的网络管理指令;2)谁能够滥用资源以达到占用资源的目的;3)谁能够获得可以用于拒绝服务攻击的信息。通常有两种方法用来阻止非授权用户访问目标:1)访问请求过滤器:当一个发起者试图访问一个目标时,需要检查发起者是否被准予以请求的方式访问目标;2)分离:防止非授权用户有机会去访问敏感的目标。上面两种方法由相同的策略来驱动。安全策略有以下一些类型:1)基于个人的策略一个基于个人的策略根据哪些用户可对一个目标实施哪一种行为的列表来表示。等价于用一个目标的访问矩阵列来描述。2)基于组的策略一个基于组的策略是基于身份的策略的另一种情形,一些用户被允许对一个目标具有同样的访问许可。3)基于规则的策略通过分配给每个目标一个密级(强制式)来操作。4)基于角色的策略既具有基于身份的策略的特征又具有基于规则策略的特征。一个角色可以看作一个组的变形。3.信息加密病历信息在存储、处理和传递的过程中可以通过不同的渠道泄露出去,机密性服务需要保护所有这些泄露信息的渠道。提供机密性的方法总的说来有以下几种方式:1)访问控制方法:防止入侵者观察敏感信息的表示;2)信息隐藏方法:可允许一个入侵者观测信息的表示,但使他从表示中无法推出所表示的信息内容或提炼出有用的信息。访问控制方法包括以下一些策略:1)访问控制机制,它过滤每个寻找读访问信息资源的请求;2)流控制措施,它防止信息流从一个环境(敏感的)流动到另一个环境(保护级别低);3)物理安全措施,它防止物理上侵入一个有敏感信息的环境;4)辐射安全保护,它防止电磁场振动的发射以免敏感信息被析出;5)信息分离技术,例如,通过多个独立的通道传输不同的数据项的分量;6)保护传输技术,如扩频技术或跳频技术。信息隐藏方式最主要的就是利用密码技术的加密,如SLS就是一种利用密码技术给传输通道加密的方法。4.数据完整性有两种基本的方法来保证病历数据的完整性:1)访问控制方法:用于避免入侵者有机会会损坏病历数据;2)损坏一检测方法:承认病历数据会有损坏(无意或有意),但能确保这些损坏会被检测出来,并且能够被纠正或向接收者提出警告。利用访问控制的方法类似于机密性情况,若病历数据在可信环境中应用的话,数据被有意地破坏的风险能被消除。然而,我们要注意访问控制不能保护无意的数据损坏。基于密码技术的封装和数字签名是一种主要的保证数据完整性方法。它通过加密办法产生一个作为明文的附件传送的值。当需要特定的数据完整性的要求时,这样一个附件通常被称为完整性校验值。数字签名再本节单独讨论。5.不可否认性非否认服务为一个通信用户提供保护以免另一个用户后来否认所发生的一些通信交换。当这些服务不能防止一个用户否认另一个用户所声称发生的某事时,他们确保可获得无可辩驳的证据以支持任何类似纠纷的迅速解决。不可否认可分为起源的非否认和传递的非否认两种形式。对于电子病历系统来说,医师创建、修改病历的过程必须不可否认,也就是病历主要涉及到起源的非否认。对于非否认服务主要是通过数字签名来实现,将在本节单独讨论。6.防火墙防火墙是一组实施访问控制策略的系统。通常防火墙安放在内部网和外部网之间实施安全防范,控制网络传输。对于电子病历系统,可以在病历网络访问的出口处安装防火墙。防火墙的主要作用有:1)限制某些用户或信息进入一个被严格控制的站点;2)防止进攻者接近其他防御工具;3)限制某些用户或信息离开一个被严格控制的站点。防火墙一般通过包过滤和应用网关的方式实现,前者处理进出网络的PI包的信息实现安全控制,后者检查进出网络的各种服务,过滤掉不可信的服务。但是防火墙一些脆弱性。防火墙采取的访问控制机制牺牲了网络访问的方便性;其次,防火墙不能对抗私有网络中的后门,使攻击者能有效跳过防火墙的保护;另外,防火墙不能阻止来自内部网的攻击。实时检测是基于实时事件序列和/或积累的记录进行分析,检测异常活动,自动地向安全管理者警告可能的安全侵犯。检测的基本方法有两类:一类是基于统计分析的;另一类是基于规则的。基于统计监测方法定期收集与合法用户行为有关的数据,而后用于对观察的行为统计检验,以高可信度决定是否与合法用户的行为相符。基于规则的检测方法的基本观点是试图以预先定义的一组规则来检测一个入侵者的行为。例如很多防病毒软件都有实时检测的功能。安全审计是对系统记录和过程的检查。其目的是测试安全策略是否充分,协助攻击的分析,收集证据用于起诉攻击者等。安全审计追踪是记录用于入侵检测和/或安全审计的相关事件的一个日志,审计追踪是检测入侵的一个基本工具。攻击发生后或出现紧急意外后为了系统的可持续性,必须有一套数据恢复机制。比如病历数据库、病历资料、应用服务器、应用系统的备份和恢复。由此可知,电子病历是一个网络系统,要在存在安全威胁的系统各个位置综合考虑。本论文所探讨的电子病历安全性主要是指数字签名技术在电子病历系统中的应用和研究。数字签名是一种基于密码的技术。它使用密码算法对待发的数据(报文、票证等)进行加密处理,生成一段信息,附着在原文上一起发送,这段信息类似现实中的签名或印章,接收方对其进行验证,判断原文真伪。数字签名一般利用非对称密码体制来完成。整个过程如图1.1所示。图1.1.公钥密码算法数字签名过程为了提高数字签名方案的有效性,使用Hash(散列)函数先对要签名的消息进行压缩,然后再对压缩后的消息即消息摘要进行签名获得附件,最后将消息和附件一起发送给接收者。在消息的接收端,接受者重新计算消息摘要,并解密附件获得发送者计算的消息摘要,然后比较二者,若二者一样,则接受者认为数字签名是合法的。电子病历是医疗过程的一记录,具有法律效应,医师或医技人员为了对自己的病历行为(创建、添加记录、以及修改病历)负责,必须添加上自己的签名。目前电子病历系统中还是普遍采用将电子病历先打印后手写签名的方式,但这种签名方式不适应电子病历的特征和发展。具体表现在:1.只有打印后手写签名的电子病历才具有一定的法律效应,而电子版的病历文件完整性和不可否认仍然不能得到保证;2.因为具有法律效应的病历只是纸张病历,所以不能随时随地验证病历合法性,而只能在保存有纸张病历的病历中心进行验证;3.手写签名无法保证签名的具体时间的确定,而病历文件中医师的签名时间是一个很重要需要验证的项目。之前已讨论,数字签名技术能够对病历的完整性和病历行为不可否认提供保证。每个医师都有一个自己的私钥及证书,病历记录(修改)完后医师用自己的私钥对其签名,得到一个签名值。以后病历内容的任何篡改都会使得对这个签名的验证无法通过;对于病历行为的不可否认,当纠纷发生时,验证方从经过认可的认证机构那里取得需要验证的医师证书,利用证书中的公钥信息及时间戳信息验证签名和签名时间。因为只有作为证书拥有者的医师才一拥有与证书对应的私钥,这个私钥别人是无法得到并使用的,验证一旦通过医师的身份及医师签名的具体时间就不可否认了。数字签名的实现也受法律法规和人们习惯以及认可程度的影响。目前国内虽然实施了一些电子病历系统,但对于医师签名还普遍采用打印后手签,没有一家医院使用数字签名技术。值得注意的是中华人民共和国电子签名法已在人大常委会得到通过,于2005年4月1日起正式施行,这标志着数字签名己经得到了法律的认可,可靠的数字签名与手写签名或者盖章一样具有同等的法律效力,这将极大推动和保障依靠数字签名的电子商务和其他应用包括医疗行业的发展。随着相关行业的完善(认证机构),法律和社会的认可数字签名将会被越来越广泛的应用,在医疗行业包括电子病历同样是这样。第二章 XML签名标准及实现2.1研究目的XRP系统中病历文档都是以XML文档的形式保存和处理的,这是系统的优势所在。XML文档是一种结构化的文档,对它的数字签名有其自己的特点。XML签名标准定义了MXL文档的签名语法及签名处理和验证过程,是数字签名在XML文档中的表现形式。本章要讨论的就是这个标准以及标准在XPR系统中的应用和实现。2.2设计思想2.2.1 XML签名概述要了解XML签名,首先我们讨论一下XML概念。XML(可扩展的标记语言)是由W3C(万维网联盟,World Wide Web Consortium)组织于1998年2月发布的一个标准。XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。它也是元标记语言,即定义了用于定义其他与特定领域有关的、语义的、结构化的标记语言的句法语言。关于XML要理解的第一件事是,它不只是像超文本标记语言HTML或是格式化的程序。这些语言定义了一套固定的标记,用来描述一定数目的元素。如果标记语言中没有所需的标记,用户也就没有办法了。这时只好等待标记语言的下一个版本,希望在新版本中能够包括所需的标记,但是这样一来就得依赖于软件开发商的选择了。但是XML是一种元标记语言。用户可以定义自己需要的标记。这些标记必须根据某些通用的原理来创建,但是在标记的意义上,也具有相当的灵活性。例如,假如用户正在处理与家谱有关的事情,需要描述人的出生、死亡、埋葬地、家庭、结婚、离婚等,这就必须创建用于每项的标记。新创建的标记可在文档类型定义DTD(文档类型定义文件)中加以描述。XML定义了一套元句法,与特定领域有关的标记语言(如MusicML、MathML和CML)都必须遵守。如果一个应用程序可以理解这一元句法,那么它也就自动地能够理解所有的由此元语言建立起来的语言。浏览器不必事先了解多种不同的标记语言使用的每个标记。事实上,浏览器在读入文档或是它的DTD时才了解了给定文档使用的标记。关于如何显示这些标记的内容的详细指令是附加在文档上的另外的样式单提供的。XML标记描述的是文档的结构和意义,它的数据存储格式不受显示方式的制约,它把文档的三要素:数据、结构和显示分开处理。XML签名标准由负责Web技术标准制订的W3C组织于2002年2月14号发布的。这个标准提供了XML文档的签名语法及签名处理和验证过程,文档在签名前后都是结构化的。在XPR系统中,病历是以XML文档形式保存的,对病历的数字签名实际上就是对XML文档的数字签名。XML签名正好能适应这种结构化的签名形式。XML签名相对于一般的数字签名有以下一些优点:1.XML签名是一种结构化表达的签名方式。签名的语法,包括签名内容、签名结果都是结构化的,正符合XML文档结构化的特点。2.XML签名能够对XML文档进行局部分段签名,符合同一个电子病历文档中不同医疗文档部分由不同医师签名的特征。2.2.2XML病历文档结构如前所述,XPR系统中病历以病人为中心以XML文档形式保存,系统为每个病人创建一个文档,包含了在院期间的所有病历资料。一个病人病历文档又由一些不同类型的医疗文档所构成,每一个医疗文档对应着一个医疗过程记录,是签名内容的基本单位,这些医疗文档在病人出院时由归档程序把它们集成并保存到病历库中。电子病历XML文档的DTD文件反应了电子病历文档的基本结构,如下所示(部分):<!ELEMENT cdocs (cdoc)+><!ATTLIST cdocspid CDATA #REQUIRED /病人唯一标识元素vid CDATA #REQUIRED /版本号status CDATA #REQUIRED /文件状态cdt CDATA #REQUIRED /文件创建日期udt CDATA #REQUIRED /病历文件最后修改日期及时间adt CDATA #REQUIRED /最近一次访问病历文件的日期及时间。fdt CDATA #IMPLIED /记录完成日期。secley CDATA #REQUIRED /病历内容的安全等级。><!ELEMENT cdoc (pidinf, (demog|inhabst|ords|vtsign|labrpt|exrpt|admr|progres)>医疗文档节点(病人简要信息(病人自然信息|住院病案首页|医嘱记录单|生命体征记录|检验报告|检查报告|入院记录|病程记录)电子病历文档的根节点名为“cdocs”,医疗文档作为cdocs的子节点,其节点名为“cdocs”,cdoc有很多种类型,如病人自然信息、医嘱单等。不同类型的医疗文档又有不同的结构,在文件中以节点树的形式表现出,具体请参考电子病历DTD文档。例如入院记录包括病人自然信息、采集信息、主诉、现病史、过去史、家族史等。作为实例,以下给出一个包含“出院记录”的电子病历XML文档。<?xml version="1.0" encoding="GB2312"?><!DOCTYPE cdocs SYSTEM "mr.dtd"><?xml-stylesheet type="text/xsl" href="MR.XSL"?><cdocs pid="319761" vid="1" status="editing" cdt="2002-02-11"udt="2003-02-12" adt="2003-02-13" secley="1"><cdoc docid="cdoc0004" ver="1" type="病程记录" status="edit" title="出院记录”cdt="2003-04-28" udt="2003-04-28" fdt="2002-04-28"creator="taos"><pidinf> <pid>319761</pid> <nm>张三<</nm> <sex>男性</sex> <dob>1954年10月7日</dob></pidinf><progres type="dchsumm" subject=“出院记录><dchsumm> <extref type="pic" ref="pic319761_ 0001"height="194" width="229"/><paragraph>张三,男性,34岁,汉族,己婚,内蒙古籍。本院脑外科医生。因右手外伤术后1小时。2003年4月24日入院,2003 -4-28日出院,共住院5天。</paragraph><paragraph>入院时情况:一般情况好,心肺检查未见异常,腹部平坦,肝脾肋下未及。右手小鱼际有一长5cm、宽3 cm的逆行撕脱皮肤,有活动性出血,右手各指无麻木感,痛觉存在,无感觉缺失,手指活动好。挠动脉搏动良好,手指末梢充盈好。</paragraph><paragraph>入院诊断:右手皮肤撕脱伤术后</paragraph><paragraph>诊疗过程:入院经抗感染治疗,伤口无感染,皮肤无坏死。住院期间未发生院内感染及并发症。</paragraph><paragraph>出院时情况:一般情况好,生命体征平稳,手术切口换药,无渗出,皮肤切口对合佳,皮肤感觉手指运动正常。</paragraph><paragraph>出院诊断:右手皮肤撕脱伤术后</paragraph><paragraph>出院后注意事项:继续口服抗凝药物,术后两周拆线,功能锻炼,门诊随诊。</paragraph> </dchsumm> </progres></cdoc><cdoc></cdoc></cdocs>2. 2. 3 XML签名类型XML是一种结构化的文档类型,数字签名的处理过程及签名相关数据也以XML格式来表示,并用作为根元素的<Signature>元素来表示。根据XML签名标准(参考RFC3275),数据对象和它们的XML签名(用<Signature>元素来表示)进行关联时存在以下3种不同的方法,也就是W3C所定义的三种签名类型:封装的XML签名(Enveloped Signature),封装用XML签名(Enveloping Signature),分离的XML签名(Detached Signature):1.封装的XML签名。签名元素在待签名的XML文档中,具有以下的XML格式:<original_document><Signature></Signature></original_document>2.封装用XML签名。签名必须是被签名元素的父元素。此种类型具有以下格式:<Signature><reference url=ID></reference><object ID> </original_document><original_document> </object></Signature>3.分离的XML签名。签名既不是被签名数据的父元素,也不是其子元素。签名数据作为一个单独的文件而存在。此种类型具有的格式是:<Signature><reference url=original_document></reference></Signature>本系统采用封装的XML签名,签名元素signature作为医疗文档cdoc的一个子节点保存在文档中。使用封装的XML签名类型好处是在应用数字签名后,电子病历文档原来关于病历内容的结构没有任何改变,不影响病历XML解析程序对原文档的解析。并且能直观、准确地反映医疗文档的签名过程。2.2.4签名程序的应用我们在第一章中已经讨论了系统中数字签名的时机和数字签名的两种应用模式。签名程序在系统中的位置有以下一些方面:1.在HSI某些业务系统涉及到病历的一些业务中,医师或医技人员完成后需要签名。这时签名程序放在客户端业务程序当中,签名证书就是登陆的用户证书。2.某些业务系统的签名发生在病历行为的后面,比如医生开医嘱单,在病人出院时才将病人在院的所有医嘱统一归档并由系统用自己的系统证书签名。这种情况数字签名程序伴随着应用服务器的归档程序,归档所用的是系统证书。3.系统中有一个电子病历编辑器软件,实际上它也可以看成是一个HSI业务系统软件的实例。它能够直接创建、编辑及修改XML类型的电子病历,病历提交到病历库时不用进行XML转换和归档。我们直接在软件中嵌入数字签名程序进行签名。XML签名标准中定义了XML签名元素的结构,它反映了XML签名处理的过程。签名元素以<Signature>元素作为根节点,<Signature>元素的结构能够随同摘要携带其它的信息,除了引用被签名的数字内容之外,<Signature>元素还包括了有关如下方面的信息:1.用于使数字内容规范化的方法。2.为待签名的规范化元素生成签名的算法。3.指定在整理之前如何处理待签名元素的附加信息。首先解释一下规范化的概念:规范化是一个应用一致策略的过程,其目的是为了让给定的XML文档在任何应用程序上下文中都能生成相同的文本表示格式。这些策略被应用于具有不同物理形式的XML文档的各个方面,但不会对其逻辑形式产生影响。为计算数字签名,需要一个通用的方法表示所有的XML文件。即使两个XML文件不完全相同,它们在XML应用中的作用可能是一样的。下面是两个元素等价但不相同的XML:<img src=“dwlogo. gif” width=“225”height=“30”/><img src=“dwlogo. gif” width=“30”height=“225”/>如果对这两个元素进行简单的字符串比较,它们显然是不同的。然而从对XML处理的角度看,它们是等价的。按照XML 1 .0推荐标准,属性的顺序是不重要的。在XML源码文件中,其它非重要差异还包括属性间的空格数量以及源文件中是否实际包含带默认值的属性。为解决这一问题,W3C正在为XML文档定义一个规范形式。因为XML签名代码使用规范形式产生数字签名,所以可以对原始文件进行适当改动而不影响数字签名的有效性。例如,在标记中添加一些空格。XML签名定义了两个规范化算法。以下列出了有关它们的名称和标识符:1.名称:Canonical XML(无注释)必需的ID: http:/www.w3.org/TR/20001/REC-xml-200103152.名称:Canonical XML(有注释)推荐的ID: http:/www.w3.org/TR/20001/REC-xml-20010315#WithComments以下给出了<Signature>元素的基本结构(?表示零个或一个匹配项,*表示零个或者多个匹配项,+表示一个或多个匹配项):<Signature><SignedInfo><CanonicalizationMethod><SignatureMethod><Reference (URI=)?> <Transforms?> <DigestM

    注意事项

    本文(课程设计(论文)基于XML电子病历数字签名算法的研究与实现.doc)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开