针对电子健康档案携带大量信息并且需要安全快速传输交换的特点,我们提出了一种电子健康档案的加密方法,那就是使用AES加密算法和DNA算法对其进行加密保护,该方法能使电子健康档案在各个卫生机构进行安全、高效地传输。那么电子健康档案给如何加密,接下来我们就先来看一下他的加密原理。
一、电子健康档案加密原理
1、AES加密算法
(1)AES加密算法介绍
又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。它是一种分组对称加密,加密支持128位分组加密并可以选择使用128、192和256位密钥。
AES算法包括以下模块:子密钥生成模块、明文加密模块以及密文解密模块。其中子密钥生成模块主要用于产生加密和解密的密钥;明文加密模块实现对明文的加密;密文解密模块实现密文的解密。
其中加密模块是算法的核心部分,下面以128位密钥为例,加密模块的流程如下:
(1)从被加密的数据中取出—个128位的明文分组数据X。
(2)将X与原始密钥进行AddRoundKey运算,获得y。
(3)将y连续作SubByte、ShiftRow、MixColumn和AddRoundKey这4个子变换,称之为一个轮变换。
(4)循环调用步骤(3),调用次数为9。
(5)将结果再作SubByte、SniftRow和AddRoundKey子变换。
(6)获得加密分组数据。
(7)重复步骤(1)一(6),获取整个加密数据。
解密模块中的子变换相应地由InvShiftRow,InvSub-Byte,AddRoundKey,InvMixC:olumn这4个变换构成,并完成密文的解密工作。
(2)AES加密算法的软件优化
对于原始的AES算法一次轮变换,它的4个子变换,即SubByte,ShiftRow, MixColumn,和AddRoundKey都是独立分开来执行的。研究了AES加密算法之后发现,其4个子变换在多次的循环体中都是按固定顺序一起执行的,可以将上述4个子变换操作合并起来采用查表的方法的实现。虽然要为查询表提供一定的内存空间,但算法的执行效率大大的提高。下面对查表的实现过程作简单的说明。
假设A代表的是一次论变换的输入状态,E代表的是论变换的输出状态.K代表的是相应密钥的数组形式卸同时A、E、K的第j列分别用aHej、kj表示,对应的第i行第j列的元素分别用ai,j、ei,j、ki,j表示。那么,A经过4个子变换后,所得的结果如式(1)所示。
式中;S[a0,j]、S [a1,j-1]、S[a2,j-2]和S[a3,j-3]相对应ao,j、a1,j-1、a2,j-2和a3,j-3的SubByte子变换后的值。
由上式可以定义出4个表,分别表示为To、T1、T2、T3,它们的输入均为8位,输出均为32位,如式(2)所示:
将式(2)和式1进行合并简化,得到式(3),其中式(3)中的j=0…N=1,N是要加密的轮数:
这样,每一列只需4次查表操作和4次异或操作即可完成,即一个明文分组块在一次轮变换中只需要16次查表和异或运算,大大提高了程序运行效率。在解密模块中,运用类似方法进行优化。
2、DNA加密算法
该加密算法是核心基于生物DNA中心法则而设计的对称加密算法。该算法的明文分组加密位数为128位,密钥长度为128位或256位,加密的轮数为正整数N(一般大于10轮)。同样,DNA加密算法由子密钥生产模块、明文加密模块以及密文解密模块3大部分组成。加密和解密密钥的生成由子密钥生产模块完成;明文加密模块则通过循环调用Transposition,DNAmodule和Permutation这3个子变换来实现;密文的解密则是由密文解密模块完成的。
加密流程如下:
(1)将明文划分成多段的128位的分组块。
(2)将一个分组转换成4*4的字节矩阵M。
(3)对M进行一次Permutation操作。
(4)使用AES算法产生初始轮子密钥,并与M进行XOR操作。
(5)根据加密轮数N,循环调用Transposition,DNAmodule和Permutation这3个子变换。
(6)跳出循环,对矩阵M和最后一轮轮子密钥进行XOR操作。
(7)对所有的分组重复步骤(2)-(6)。
相应的流程图如图1所示。
其中,加密模块中Transposition的原理和AES中ShiftRaw的一样。不同的主要是Permutation和DNAmodule两个子变换,下面简要说明一下。
假设将128位分组明文变换成4*4的字节矩阵(正好是128位),该矩阵用M表示,则子变换Permutation(imod 3,m)(第i轮循环加密)表示矩阵M各行将按照Per-mutation(imod 3)的转置方式进行替换(参看表1),替换前要有一个XOR的操作,之后同理,矩阵M各列再按照Pennutation (i+l mod 3)方式进行替换,替换前也要有一个XOR的操作。这样保证了较好的扩散性。以Permutation0为例,M的行转置见表2。
而子变换DNAmodule则是模仿生物学的中心法则,将M矩阵每行(4bytes= 32bit)看成一段DNA片段(即用一种核苷酸替代2个连续的比特位,如A代表00,C代表01,G代表10,T代表11,则一段DNA含有16个核苷酸),再对每一段DNA片段进行转录,并同时将相应的轮子密钥进行相同的转录操作,并将其与DNA片段进行BIO一XOR操作,最后执行翻译操作。
转录:就是将DNA转换成RNA的过程,进行一对一的字母替换(A到T,C到G,G到C,T到A)。
BIO一XOR操作:实现DNA片段与轮子密钥进行BIO—XOR操作,该操作方式如表3所示。
翻译:与中心法则的翻译类似,矩阵M含有16个字节,每个字节由4个核苷酸组成,在给定16*16的氨基酸表的情况下(表4显示的是氨基酸表格的一部分)一每个字节将前两位的核苷酸作为氨基酸表的列索引,将后两位的核苷酸作为氨基酸表的行索引,最后实现字节的替换。
二、电子健康档案加密的实现与分析
1、加密对象
带有医学影像的电子健康档案不仅能为医生准确诊断病人情况提供有力的依据,而且更能够避免病人日后就诊时重复进行相关的检查。在国际上,DICOM(digital imaging and communications lnmedicine)是医学影像格式的统一标准,是数字医学影像在网络的传输、储存与显示的标准化的规范。在DICOM文件中,数据元素是基本单元并通过相应的标签唯一确定,同时数据元素构成了所有的数据集。
电子健康档案是基于XML格式的,我们可以将DI-COM格式的医学影像转换成XML格式并添加到文档中,即依据DICOM中的IOD(infon11ation object definition)标准对影像的头部分进行组合,同时,以base64编码图像部分,最后将头信息和图像信息一起添加到XML格式文档中,如下是一个带有医学影像的电子健康档案的XML片段:
< ImageDocument>
< Patient>
< Name>
< lastname>zhang</lastname>
< Firstname>cheng</Firstname>
< /Name>
< Sex~nale</Sex>
< Age>32< /Age>
</Patient>
<Device>CT</Device>
< Image>4AAQSkZJR..,t.< /Image> < /ImageDoc-ument>
其中从元素到元素是头信息部分,而元素中包含的即为base64编码后的图像数据,这是要加密的对象。
2、电子档案加密方式及平台
为体现加密效率,本文将对2M的元素进行加密,同时对该元素部分进行反复多次加密实验。AES和DNA加密使用的均是10轮、128位加密方式,以C++为编程语言,在CPU为2.OGHz, RAM为1G,window操作系统的台式电脑上实现。
3、安全性分析
DES 加密算法是第一个世界公认的实用分组加密算法标准。随着对称密码的发展,DES数据加密标准算法由于密钥长度较小(56位),已经不适应当今分布式开放网络对数据加密安全性的要求。随后出现了密钥更长的3DES替代DES以提高安全性能。密钥长度到达168位的3DES,可克服穷举攻击问题,同时其底层加密算法对密码分析攻击有很强的免疫力。但由于用软件实现的3DES算法执行速度慢,使得3DES不能成为未来使用的加密算法标准。
AES加密算法的密钥建立时间极短,同时密钥灵活性较好。其密钥长度可设定为32位的任意倍数,最小值为128位,最大值为256位,用穷举法是不可能破解的。不管是从安全性、效率,还是密钥的灵活性等方面都优于DES加密算法,在今后将逐步代替DES而被广泛应用。
DNA加密不仅是运用生物学的中心法则作为加密的主要机制,而且按照美国国家安全局专家建议,其算法结构设计成SPN(substit:ution and permutationnetwork)结构,它是基予香农的混乱和扩散原则,并且各自通过使用替代和线性变换实现。密钥长度最小值为128位,最大值为256位。用穷举法是不可能破解的。但对其能否抵抗差分密码分析以及线性密码分析并未作分析。
4、加密速率分析
由表4得出原始的AES加解密较慢,速率在1MB/S以下,且解密比加密慢。DNA加解密最高速率接近6MB/S,且随着文件大小的增加,加解密速率也有所提高,但解密速度相对加密速度较慢。改进的AE:S加解密速率超过8MB/S,并且在加密速度和解密速度方面,两者的差距不大。
为了更直观地了解上述三者的加解密效率,将实验数据导人到MATLAB中,产生的效率曲线图如下,其中,图2和图3中的AESO曲线为原始AES算法,AES曲线为改进的AES算法,DNA曲线为DNA算法。
图2中,改进的AES算法和DNA算法加密效率明显比原始的AES算法要高;改进的AES算法又比DNA算法有更快的加密速率。
图3中,解密的情况与加密类似。
综合图2和图3可知,改进的AES在加解密的效率上是最快的。此外,DNA和改进的AES的加解密速率保持稳定不变。
用这种方法给电子监控档案加密,非常适合医院来使用。
"