DICOM文件的安全性不容忽视,然而目前在其加密方面的研究还比较少,现在医学图像中常用的文件加密方法只是将经典的加密算法直接运用在医学图像中,如DES,AES加密算法等。传统的加密算法将输入明文看作二进制流,没有考虑图像本身的特性,使得其对图像并不十分适用。基于AES加密算法的设计原理,并结合斜帐篷映射提出了一种改进的算法,使之能够适应医学图像的数据特点。此外,针对DICOM格式的特点增加了对病人基本信息的保护,并与图像文件加密相结合。

一、AES加密算法分析与改进方案

1、AES加密算法简介

AES加密算法是分组迭代加密算法,能有效抵抗强力攻击、差分攻击和线性密码分析,具有分组长度和密钥长度设计灵活、高安全性和高运行效率等优点。AES加密的每一轮运算由4个变换组成,它们是:轮密钥异或、S盒变换、行置换和列混合。为了后文描述方便,将这4个步骤称为AddRoundKey、SubBytes、ShiftRows、MixColumns,加密流程如图1所示。

1c

2、改进方案

AES加密算法采用分组迭代,分块大小为4×4矩阵,每个元素为8比特。本文加密算法以像素(8比特)为单位,对整幅图像进行处理,为了使算法适用于图像文件加密,达到较好的安全性,并提高加密效率,我们基于AES加密算法框架进行了如下改进:

(1)改进密钥序列生成方法

混沌动力学系统具有伪随机性和对初始条件与系统参数的极端敏感性,因此,它为图像信息加密提供了很好的途径。在改进加密算法中采用如下所示的斜帐篷映射(Skew tent map)生成密钥序列。

改进的AES加密算法在DICOM医学图像中的应用

当a∈[O,1]时系统呈混沌状态。该映射迭代轨道序列的相关性以指数递减,混沌变量的分布均匀,具有很好的伪随机特性。

基于斜帐篷映射生成伪随机序列的方法如下:一幅大小为MxN的图像,需要加密R轮。首先迭代斜帐篷映射得到R个长为M×N的序列Xr={ Xr,o,Xr,1,…,Xr,mn-1},1≤r≤R。对序列X按照式(2)扩展为0一255的整数序列Kr={kr,0,kr,1,…,kr,mn-1}。

改进的AES加密算法在DICOM医学图像中的应用

其中[]运算表示向下取整。

(2)改进加密/解密操作

AES加密算法的加密方式为像素矩阵D与密钥序列K直接进行异或操作,为了增加对明文的敏感性,本加密算法做出了改进,第r轮的加密过程如下所示:

改进的AES加密算法在DICOM医学图像中的应用

其中i∈[O,m- 1],j∈[0,N-1],D[il[jJ为明文像素,C[Z][j]为得到的密文像素。

明文图像矩阵按照从左到右,从上到下加密;密文图像矩阵按照从右到左,从下到上逐像素进行解密。经过以上的异或操作之后,使得密钥与明文相关,两幅不同图像即使采用相同的初始条件,生成的密钥序列也不同。

(3)改进列混合操作

AES加密算法中,列混合操作(MixColumns)采用矩阵运算,每个像素平均需要经过移位和异或运算。为了降低运算量并达到较好的混合效果,在改进的加密算法中,我们改变了MixColumns的矩阵运算,采用简单的加减运算增强像素间的联系,具体做法如下:对于每一行,第一个像素保持不变,从第二个像素开始用相邻像素的更新当前像素(如式(4)所示);对于每一列,第一个像素保持不变,从第二个像素开始用相邻像素的值更新当前像素(如式(5)所示)。

改进的AES加密算法在DICOM医学图像中的应用

以5×4的像素矩阵为例.运算过程如图2所示。

改进的AES加密算法在DICOM医学图像中的应用

从图2中可以看出,当D(O](O]发生变化时,将影响所有像素;当D[M-I][N-l]发生改变时,在同一轮中将不影响其他像素,因此在行列变换操作中,应将每一行循环向左移动,每一列循环向上移动,经多轮加密后将有明显的扩散效果。

改进的行列混合操作中采用简单的加减运算,每个像素平均仅需要2个加法运算,该操作不仅减少了运算量还增强了像素之间的联系,经多轮加密后能达到较好的混合效果。

二、改进的AES加密算法算法在DICOM医学图像中的应用

DICOM文件一般由一个DICOM文件头和DICOM数据集合组成.DICOM数据集合足由DICOM数据元素按照一定的顺序排列组成的,它不仅包括图像数据,还包括许多和病人相关的信息,如病人姓名、年龄、病历等。数据元素的组成结构如图3所示,其中标志符由组号与元素号组成,表示为(组号,元素号),是数据元素的唯一标识。

改进的AES加密算法在DICOM医学图像中的应用

因此,DICOM文件需要保密的内容包括两个部分:病人的基本信息和图像信息。

1、病人信息和图像数据的交换方案

我们将病人基本信息的保护与图像数据的加密结合起来:设计一个一维到二维的映射方法,将病人信息以8比特为单位与图像像素明文交换。假设存储病人信息的变量为一维数组P[L],其中L为病人信息的字节散,其处理过程为:

Step1迭代斜帐篷映射得到序列X'={x’0,x’1,…,x’2xL-1}将其分成长为L的两个子序列X'1={x'o,x’1,...,x’L-1},x'2={x’L+1,x’L+2,....x'2L-I}。

Step2获取随机整数序列作为横坐标.将x1’用类似式(2)的方法扩展到0一M范围内,得到横坐标序列U={uo,u1.…,ul- 1}。

Step3获取随机整数序列作为横坐标.将X2’用扩展到0—N范围内,得到纵坐标序列v={v0,v1,…,vL-1}。

Step4组合两个序列得到坐标序列为(U,V)={(uo,v0),(u1,v1).....(UL-I,VL-1)}。

令L= 1000,M; 1000,N=1000,xo=0.80,a'= 0.6.得到的坐标序列分布情况如图4,分布比较均匀,映射前,病人信息显示的是ASCII码;映射后显示的是乱码,以病人姓名为例:假设映射前病人姓名为:" Anoyrniaed",映射后将数组内容重新填充回DICOM原标签中,显示的内容为:“q笔OK w■篁一”。

这种做法使得病人信息失去可读性,其安全性依赖于图像的安全性,只要采用安全的图像加密算法便能保证病人信息的安全。

改进的AES加密算法在DICOM医学图像中的应用

2、DICOM文件加密方案

本节列出了将保护病人信息的方案和改进的AES加密算法应用于DICOM文件加密的具体步骤,其基本的加密结构如图5。

改进的AES加密算法在DICOM医学图像中的应用
加密算法步骤如下:

Step1初始化r=0。隐藏病人基本信息,将DICOM文件中的病人信息数据取出放在一维效组P[L]中;将图像像素数据取出放在二维矩阵D[M][N]中;按照上节中的映射算法依次将P的数据和D对应的数据交换,得到交换后的病人信息P',交换后的图像像素矩阵D1。

Step2密钥异或操作(HxeIXOR),将图像像素矩阵D与密钥序列群按照式(3)异或,得到C1。

Step3 S盒置换(SubBytes)。采用S盒,将C1的每个元素的高4位作为S盒的行坐标,低4位作为S盒的列坐标,查表进行S盒替换,得到C2。

Step4行列置换(ShiRRowsandColumns)。 C2中第i行元素向左循环移动j个单位,第j列元素向上循环移动j个单位,得到C3。

Step5扩散增强(MixRowsandColumns).对c3每行所有像素按照式(”进行处理操作,对C每列所有像素按式(5)操作,得到C4。

Step6 r= r+1,D= C4.回到Step2进行下一轮加密,总共进行尺轮.最后得到加密后的像素矩阵C。

其解密过程为加密算法的逆过程:

首先还原图像像素,即对密文像素矩阵依次进行逆MixColumns、Shif/Rows、SubByteo、AddRoundKey操作;然后还原病人信息,重建DICOM文件。

三、实验结果与分析

本加密算法采用Visual C++ 2008平台进行数据仿真实验,同时采用DCMTK开发包实现DICOM文件读写。机器配置:Iruel CoreDu0 1.83GHz CPU, 2GB RAM.Win-dows7 Ultimate中文版操作系统.其中明文图像为440×440的标准DJCOM图像,密钥设置为:xo =0.8,a=0.6,x0’= 0.8,a’=0.6,R=10。

1、加密实验结果

加解密图像如图6所示。图6(a)与图6(c)分别为原始明文图像和明文直方图;图6(b)和图6(d)是密文图像和对应的直方图。从图中可以看出密文直方图分帮均匀,能够有效地抵抗统计分析。

改进的AES加密算法在DICOM医学图像中的应用

2、实验分析

(1)密钥空间

本加密算法的密钥由两组斜帐篷映射初始值与参数组成:一组参数控制密钥流的生成(x0,ao)。另一组控钥病人信息保护的映射(x0',a0')。在计算机实现时,分别由64位数表示,也就是说算法的密钥为256位,明文空间为256,能够抵抗暴力破解。

(2)相关性分析

分别从图像的水平、竖直和对角相邻方向随机地选取1024对像素,加密10轮,对比它们加密前后的相关系数:

改进的AES加密算法在DICOM医学图像中的应用

实验结果如下表2所示,表中数据显示明文图像中相邻像素之间的相关性比较高,但是在密文图像中相邻像素的相关性均很低。

改进的AES加密算法在DICOM医学图像中的应用

(3)敏感性分析

密钥敏感性分析

将原始密钥进行微小改动,将薯o由0.8改为0.80000001。其余密钥保持不变,对应的解密结果如图7所示。解密图像呈现随机分布,其直方图很均匀.即使加密密钥和解密密钥有微小的相差也能正确解密,说明该算法能够抵抗各种基于密钥敏感性的攻击。

改进的AES加密算法在DICOM医学图像中的应用

明文敏感性性分析

为了测试加密算法对明文的敏感性,应用2幅几乎完全相同的明文图像(440×440的DICOM图像Cheat. dcm,其中只有(0,0)位置的像素值不同),对它们进行加密,完成4轮加密后,得到对应的密文图像并比较他们的像素值,从图8中可以看出,当仅有一位像索发生变化时,加密后的图像几乎完全不同(白色的像素点表示相同部分,黑色为不同)。通过计算可知,当两幅图(o,0)位置像素值不同时,对应的密文图像有99.6196的像素不同。通过以上分析,可看出改进算法具有良好的扩散效应,达到了安全性的要求。

小知识之DICOM

DICOM(Digital Imaging and Communications in Medicine)即医学数字成像和通信,是医学图像和相关信息的国际标准(ISO 12052)。它定义了质量能满足临床需要的可用于数据交换的医学图像格式。