安企神电脑监控软件 在线试用
扫码咨询客服
安企神电脑监控软件、局域网监控软件
首页
功能介绍
功能对比
下载中心
购买咨询
客户列表
关于安企神

鲁棒型医学图像加密算法

更新时间:2022-10-28 15:46:38


本文简介:针对现有基于混沌的医学图像加密算法的鲁棒性和效率不足,我们提出了一种基于快速混沌置乱的鲁棒型医学图像加密算法RMIEF-CS。一、基于多混沌系统的序列生成算法基于混沌的图像加密方法原理如图1所示,根据选定的密钥和混沌系统生成具有混沌特性的伪随机序列,然后与明文图像的数据流进行某种操作得到密文数据,并最终转换为密文图像。从图l中可以看出,混沌加密算法的加密密钥取决于生成的混沌序列,混沌序列与选取的混

鲁棒型医学图像加密算法

针对现有基于混沌的医学图像加密算法的鲁棒性和效率不足,我们提出了一种基于快速混沌置乱的鲁棒型医学图像加密算法RMIEF-CS。

一、基于多混沌系统的序列生成算法

基于混沌的图像加密方法原理如图1所示,根据选定的密钥和混沌系统生成具有混沌特性的伪随机序列,然后与明文图像的数据流进行某种操作得到密文数据,并最终转换为密文图像。从图l中可以看出,混沌加密算法的加密密钥取决于生成的混沌序列,混沌序列与选取的混沌系统直接相关。虽然混沌序列在理论上是一个无限的伪随机序列,但在计算机中实现时通常由于计算机有限的精度而造成混沌收敛问题,即混沌序列在迭代的过程中呈现周期性,这让攻击者有机会破解混沌序列。为了有效缓解混沌收敛的问题,有研究者们提出了自己的方法,如Logistic函数迭代过程中进行大整数化的方法以解决有限精度问题;如在Logistic函数中引入反正弦与反余弦变换,对Logistic映射进行优化改进。

1

上述方法虽然在一定程度上缓解了混沌有限精度问题,但计算过程较为复杂,或者只针对同一混沌系统进行,灵活性不足,特别是针对高安全性和高容量的医学图像加密时有着明显不足。本文提出一种基于多混沌系统的混沌序列生成算法,在有效缓解有限精度问题的同时保证产生的混沌序列具有足够高的复杂度,在应用于医学图像加密时具有较高的安全性和运行效率。

1、混沌系统选取

除了考虑混沌序列的“有限精度”问题外,医学图像数据量大,加密的时间效率必须在可接受的范围内,综上,算法选择使用多个低维的混沌系统协同工作产生混沌序列。选取的一维混沌系统如下:

1) Loejstic映射:

Logistic映射函数如式(1)所示:

1

其中:X∈(O,1),当u∈(3. 5699456,4)并且X≠l-U-1时系统处于混沌状态。

2)分段线性混沌映射(Piecewise Linear Chaotic Map,PLCM):

PLCM映射函数如式(2)所示:

1

当xn∈(O,1),p∈(0,0.5)时,系统处于混沌状态。

由于低维混沌系统产生的序列复杂性稍低,并且存在混沌收敛问题,本文算法将采用的两个低维混沌系统得到的序列进行处理,使两个混沌系统在算法产生序列的过程中相互作用,通过在混沌系统间随机切换交替产生混沌序列,以加大遭受相重构攻击破解的难度,同时很好地缓解混沌收敛问题。

2、混沌序列生成

序列产生过程中,为了避免同一个混沌系统产生过长的序列降低整体混沌序列的复杂度,对两个混沌系统产生的序列长度进行限制,设为LENmax。考虑到混沌系统产生的初始序列混沌特性不强,在选取混沌序列时让混沌系统先进行NUM次迭代。具体的混沌序列生成过程如下:

1)将医学图像转换为二进制数据流,得到加密所需的混沌序列的长度CS_LEN。

2)随机选取i的值,其中i∈{l,2}。

3)利用第i个混沌系统进行一次迭代产生混沌数值sa,则第j(j=i mod 2+1)个混沌系统要产生的混沌序列的长度s一Len可用式(3)计算所得:

1

其中N为常数(取10 000),用来放大sa。

4)CS_LEN=CS LEN - S_Len,如果CS LEN≤0,则令S_Len=CS_LEN,利用第_『个混沌系统产生长度为S_Len的混沌序列,序列生成结束,转第6)步执行。

5)如果CS LEN>0,令Z=l mod 2+l,转第3)步继续执行。

6)返回产生的混沌序列。

图2给出了两个混沌系统相互交替生成混沌序列的示意图,从图中可以看出,混沌序列的产生由两个混沌系统共同作用,每个系统的序列长度由上一个系统产生的混沌数值决定,由于存在着混沌系统间相互的随机切换,增加了混沌序列的复杂性,大大增加了遭受相空间重构攻击破解的难度;同时,即使产生序列的过程中某个混沌系统发生了混沌收敛问题进人周期循环,只要两个系统不在同一时间达到周期点,那么整个系统产生的混沌序列则不会进入周期循环。本文算法产生的混沌序列能很好地满足大数据量的医学图像加密。

1

二、RMIEF-CS算法

1、密文反馈机制

为了提高加密算法的安全性,在加密过程中引入密文反馈机制,本文使用的密文反馈机制如图3所示。

1

同时,为了避免单向的反馈机制使得第一个像素点或者最后一个像素点得不到反馈作用,引入双向密文反馈方式。设D为图像明文数据流,E为加密序列,则正向反馈可以描述为式(4)和(5),反向反馈可以描述为式(6)和(7)。

对于第一个图像数据:

1

对于之后的图像数据:

1

对于非最后一个图像数据:

1

对于最后一个图像数据:

1

密文反馈加密可以将加密过程中的变化不断进行传输,影响变化点前后的加密操作,使算法具有良好的雪崩效应;另外针对医学图像具有大片连续相同像素区域的特点,反馈机制能将微小的变化无限扩大并扩散,增加加密效果和算法的安全性。

2、置乱加密算法

RMIEF-CS加密算法大致过程为:先获取明文数据流,然后根据所介绍的混沌序列生成方法得到密钥,根据密钥对明文数据流进行置乱;再次得到新的混沌序列,对中间的置乱结果引入双向密文反馈机制进行再次置乱,最终得到密文数据。具体的置乱加密算法如下所示:

1)读取待加密图像;

2)将I转换为明文数据流D;其长度为N;

3)计算加密序列长度CS_LEN=N*T,set T=3;

4)设定混沌系统的密钥,并初始化相关参数LENmax=300,NUM=100.i=l;

5)利用混沌序列生成算法得到长度为CS_LEN的序列CS1;

6)调整Csl为字节序列BS,,BSi (i)=(CSi (i)*10n)mod256,setn=5;

7)setk=0;

8)while(k<CS_LEN){

9)D(BS1(k))↔D( BSi(k+l));//交换

10)k=k+l;

11)set i=2,重新生成长度为Ⅳ的序列CS7;

12)调整CS2为字节序列BS2,BSz(i)=(CS2 (i)*105)mod 256;

13)利用BS2对数据流D进行双向密文反馈得到密文数据流ED;

14)将ED转换为密文图像输出。

三、 实验结果与讨论

实验中采用的硬件环境为Windows XP SP3,CPU为Intel Pentium CPU E7500 2.93 GHz,内存1.92 GB;采用Microsoft Visual Studi0 2005平台中的VC++语言实现本文算法。为了保证数据的有效性,从某大学医学院数据中心获取了100多幅不同形态的医学图像进行实验,均得到了较好的加密效果,限于篇幅以一幅1024 x1024的24位MRI灰度图像的测试结果进行说明。图4给出了原始医学图像和其加密效果图。

1

从图4可以看出,图像经过加密之后呈现杂乱无章的噪声图像,看不出任何原始图像的轮廓信息,图5给出了本文方法产生的混沌序列的性能分析,相应的参数设置为Logistic混沌系统中的x=0.36,u=3.92;PLCM映射中的y=0.55,p=0. 23,LENmax=300,NUM=100。图5(a)为从混沌序列的第101次迭代连续取的99个值画出的分布图,图5(b)是在修改混沌参数p=0. 23+10-16时(其他参数保持不变)的混沌值分布图。从图5中可以看出,虽然只是对参数进行了极其细微的修改,得到的混沌序列却截然不同,说明混沌系统对初值具有极度敏感性。虽然由于计算机精度有限会带来混沌收敛的问题,但本文方法的多混沌系统交替产生序列的方法能较好地避免周期现象的产生。两个混沌系统一共有4个敏感性参数作为密钥,对于攻击者来说实施暴力破解的难度是非常大的。

1

图6给出了原始图像和加密图像像素灰度值分布直方图,从图6(a)中可以看到医学图像的分布特点是像素分布不均匀,绝大部分像素出现在极值点附近,容易受到统计攻击。好的加密算法应该使图像的直方图越均匀越好,从图6(b)中可以看出,本文的加密算法具有较好的性能。

1

医学图像的特点之一就是相邻像素的相关性强,利用式(8)计算图像像素的相关性:

1

其中:N为实验中进行对比的像素对总数;xi、yi分别为两组像素中的像素值;x和y为两组像素的平均值。实验中随机选取了密文图像中水平、垂直和对角线上的3000个像素对进行统计,其结果如表1所示。从表l中可以看出,RMIEF-CS能较好地消去医学图像相邻像素间的相关性。

1

同时,经过测试,RMIEF-CS算法具有较好的明文敏感性,修改明文中的任一像素点均会造成得到的加密图像相似度非常低,即具有较好的雪崩效应。

为了测试RMIEF-CS算法的鲁棒性,实验中对密文图像进行了不同程度的修改,如图7所示。从图7中可以看出,当对密文图像进行小尺寸的剪切操作时,解密出来的图像基本和原始图像一致;当剪切的区域较大时,解密出来的图像虽然具有较明显的噪声现象,但仍具有原始图像的基本轮廓。RMIEF-CS算法的鲁棒性实际上通过图像置乱实现,由于密文图像经过随机置乱形成,当密文图像因为各种原因受损时,在解密的过程中,受损的部分也会随机分布到原图的各个部分,从而保证了图像的大致轮廓能识别出来。

1

最后,将RMIEF-CS算法的时间效率与现有的方法进行了比较,其中一个比较对象是使用Logistic混沌系统生成混沌序列,然后将序列进行排序后对图像进行置乱;综合运用Arnold和Logistic混沌系统对图像进行置乱。比较结果如表2所示。

1

小知识之MRI

MRI也就是磁共振成像,英文全称是:Magnetic Resonance Imaging。

立即下载试用

基于多混沌系统的医学图像加密算法

随着计算机、通信技术和区域医疗协同服务的不断发展,信息的安全与保密显得越来越重要。医学图像作为诊断依据的重要部分需要在公网上传播,为了防止病人敏感信息的非法泄漏,研究医学图像文件加密有着重要的意义。

一、混沌的特点

混沌是指一种由非线性确定系统产生的类随机行为,它具有以下特征:

1)随机性:混沌系统产生的混沌序列表现出类随机行为,具有长期不可预测性。

2)确定性:只要初始参数确定,产生的混沌序列即确定。

3)遍历性:混沌系统将以一种不重复的方式遍历相空间中的所有取值。

利用混沌系统的这些特点,可以设计出密钥空间大、加密流随机性高的加密算法,混沌加密近年在计算机领域成为了研究热点,大量混沌图像加密算法被提出来。

图像文件加密与普通文件加密的不同之处在于,图像相邻像素之间通常存在着比较大的相关性,对图像加密不仅要使图像变得不可识别,还要尽可能地减小相邻像素之间的相关性。目前国内外提出的各种混沌图像加密算法,有的通过Logistic函数生成混沌序列进行加密,有的通过DCT变换、Arnold变换进行加密,但总结起来,主要加密原理有以下两种形式:

1)利用混沌系统产生的伪随机序列与明文进行异或操作,直接改变明文的值,通过这种方式进行加密可使图像明文转变为一系列无规则“噪声”,能有效防止统计攻击;

2)利用伪随机序列对明文进行重新排序,通过这种方式加密能有效地对图像进行置乱,使加密后的密文图像具有一定的鲁棒性,但由于置乱过程没有改变像素本身的值,因此加密后图像的颜色直方图并没有改变。

结合医学图像数据量大、同色像素连续性高的特点,本文采用异或的方式提出一种新的混沌图像加密算法。

二、加密算法的创新

医学图像的特点是两高一大(高分辨率、高精度、大数据量),这就要求加密算法具备较高的运行效率。对于混沌系统,通常高维混沌系统产生的加密序列有较高的安全性,但运行速度较慢。低维混沌系统产生加密序列速度快,却容易受到非线性预测、相重构等方式的攻击,综合考虑算法运行效率与安全性,本文的算法将采用多个一维混沌系统混合的方式产生加密序列,并通过加密序列与图像进行异或操作进行加密和解密。

医学图像通常有着大片连续的区域存在颜色相同的像素点,加密算法若简单地采用加密序列与明文异或的方式生成密文,密码攻击者容易根据这片连续的区域分析对应密钥序列的情况。所以加密算法应该以某种方式改变这种由于明文而导致密文单一变化的情况,本文算法通过在加密过程中加入双重反馈解决这一问题。

三、加密算法的实现

考虑到加密算法的运行效率,本文选择以下两个混沌系统进行加密。

a、Logistic映射

基于多混沌系统的医学图像加密算法

当X∈(0,1),u∈(3. 5699456,4),X≠1-(1/u)时,系统处于混沌状态。

b、PLCM映射

基于多混沌系统的医学图像加密算法

当X∈(0,1),p∈(0,0.5)时,系统处于混沌状态。

以上两个混沌系统皆为一维混沌系统,从公式上看,不涉及sin与cos等复杂运算,所以能有较高的运行速度。

由于单个一维混沌系统产生的序列容易被非线性分析与相重构攻击,因此算法将选择的混沌系统混合使用,交替产生序列。设所选混沌系统数为N,每个混沌系统产生序列的最大长度为MAX_LEN。从第t个混沌系统开始产生序列。以N,t及各混沌系统的初始参数作为密钥:

a、用相应参数初始化混沌系统,为了跳过混沌系统初期迭代的非线性状态,每个混沌系统先进行P(P>100)次迭代。

b、获取图像中要进行加密的序列长度PL。

c、第f个混沌系统进行一次迭代产生混沌数值a,t=(t+1) mod N,令kLen=(a×E) mod MAX_LEN(文中E=10000,MAX-LEN=300),获得下一个混沌系统将要产生的序列长度kLen。

d、若PL<kLen,令kLen=PL。利用第f个混沌系统产生长度为kLen的混沌序列。PL=PL-kLen。

e、若PL=0,序列产生算法结束;否则转到第c步。

通过运行上述算法,即可得到加密所需的序列CARRAY,所产生的序列如图1所示。

基于多混沌系统的医学图像加密算法

混沌系统产生的混沌序列为一系列的实数,想要利用CARRAY对图像进行加密操作,需要对其进行离散化处理。

对CARRAY中的每个元素a,令a=(a×ENLARGE-MENT)mod256(文中ENLARGEMENT取10000),即取出了混沌序列中的一系列二进制密钥流BARRAY。

医学图像中存在着大量连续的像素值相同的区域,若按传统加密简单地将图像信息与密钥流BARRAY进行异或操作以产生密文图像,密文图像在原图相应的同像素区域处容易反映出密钥流的变化情况,继而被攻击破解。所以本文在加密的过程中加入了反馈机制,将图像与密钥流相结合作用,以产生变化更大的密文图像。

设图像数据流为DATA,反馈算法如下:

a、前向反馈

对于第一个数据点;DATA[O]=((DATA[O]+BAR-RAY[O])+BARRAY[O]) mod 256,对于之后的数据点:DA-TA[i]一(((DATA[i]0BARRAY[i])+BARRAY[i-1])mod 256)0 DATA[i-1]

b、后向反馈

对于非最后一个数据点:DATA[i]=(((nAlA[i]+BARRAY[i]) +BARRAY[i1])mod 256)+DATA[i+1],对于最后一个数据点:DATA[j]一《DATA[i]+BAR-RAYCi])+BARRAY[i]) mod 256

在前向反馈中,当i以递增的形式进行时,加密过程为密文反馈,已经加密的数据将反馈作用到后面的加密过程中,由于反馈的过程有混沌序列中的随机二进制位参与,因此最后得到的密文图像能呈现出良好的随机特性,具有较强的抗统计分析能力。

而当i以递减的形式进行时,加密过程为明文反馈,这时的反馈过程没有传递性,每个密文字符只与加密时它的前面一个明文数值有关,所以当明文图像有较明显的区域连续性时,加密后的图像也容易看出大概的轮廓。但由于加密过程与明文紧密相关,当解密过程中有一位明文遭到破坏时,将导致后续图像无法解密,这就有效加大了攻击者通过统计密文微小改变对明文造成的影响进而攻击的难度。

无论明文反馈加密还是密文反馈加密,在单向反馈过程中图像的第一点都没有受到反馈的作用,所以算法对明文反馈与密文反馈都进行了双向加密,这样不但提高了图像中第一点的安全性,也加大了密文图像的随机性,增大了对图像的破解难度。

解密图像只需在产生密钥流后将算法反向运行即可。

四、实验结果与安全性分析

采用以下实验环境:操作系统为Windows XP SP3,CPU为InteI(R) Core (TM2) Duo CPU E7500色93GHz,内存1. 96GB,在Visual Studi02005平台上用VC++实现本文加密算法。从中南大学湘雅医学院获取了100幅不同形态的医学图像进行实验,均得到了较好的加密效果,以下为对一幅1024×1024的24位CT图像进行加密的结果,如图2所示。

基于多混沌系统的医学图像加密算法

实验相关参数测试如下。

1、图像直方图

图像直方图能很好地反映出图像的颜色分布特征,一个好的图像加密算法应使加密后图像的直方图分布均匀,尽量地减小加密图像存在的像素统计特征,实验结果如图3所示。

基于多混沌系统的医学图像加密算法

由图可知,本文加密算法能很好地混淆图像像素值的分布,具有较好的加密效果。

2、图像相关性计算

应用以下公式可计算图像像素之间的相关性。

基于多混沌系统的医学图像加密算法

式中,N为选取对比的像素对总数,x与y分别是两组对比像素的平均值。

本文随机选取图像中的3000个相邻像素点对分别进行水平、垂直、对角关系的图像相关性计算,结果如表1所列。

基于多混沌系统的医学图像加密算法

可见,原本相关性很强的图像加密后成了像素间关联性很小的“杂乱”图像。

3、敏感性测试

a)密钥敏感性

首先对图像文件进行加密操作,保存密文图像后,对解密密钥中一个混沌初始参数值进行微小的改变,再对图像进行解密操作。由实验结果可知,虽然密钥只进行了10-15数量级的改变,亦将导致图像无法解密。实验结果说明算法中的密钥有着极高的敏感性,算法由多个混沌系统组成,每个混沌系统都有着初始参数敏感性,可见算法有着极大的密钥空间,能很好地抵抗暴力破解攻击。

b)明文敏感性

实验将对两幅只有一个像素不同的图像分别进行加密,再应用式(3),将公式中的对比值设为两幅图中对应位置的像素值,计算两幅加密图像的相似程度L,得L=0.06883。可看到,虽然明文图像只有一个像素的差别,加密结果却能得到两个几乎无相关性的图像,说明算法具有良好的明文敏感性,能在加密过程中将明文的改变扩散到整个图像。这一特性使算法能很好地抵抗通过对明文中存在的大量同色区域相对应密文的变化来分析密钥流情况的攻击。

c)密文敏感性

实验中先对图像文件进行加密,再将密文图像进行一个像素的改变。从结果可看到,一个像素的改变也能导致无法解密,说明在算法中密文也存在着极高的敏感性。

加密算法存在的这些敏感性,加大了差分攻击等通过观察加密过程中的细微变化来破解算法这类方式的攻击难度。

4、图像文件加密速度

医学图像成像精度通常较高,所生成的图像大小相对较大,所以算法的加密速度也是一个关键因素。实验中取了3类不同大小的医学图像进行加密,结果如表2所列。

基于多混沌系统的医学图像加密算法

由表2可知,加密时间与图像大小基本成线性关系,对大小为3M的医学图像可在1s内完成加密运算,符合实际应用需求。

5、加密算法安全性分析

混沌系统在理论上是一个无限周期的伪随机数发生器,但在计算机上实现时,由于计算机只能进行有限精度的计算,系统将不可避免地退化为一个周期函数,在加密过程若因周期问题产生了重复的密钥流,将大大降低算法的安全性。在本文提出的加密算法中,密钥流是由多个混沌系统共同产生的,每个混沌系统在加密时都会由一个流长度生成点来决定下一个混沌系统产生的密钥长度。这一个随机生成的加密流长度取值较小,混沌系统间能紧密地相互作用,攻击者雉以对其进行单一的分析,而且即使算法中的某一混沌系统在加密过程已经到达周期长度,只要该系统在进行系统切换时的流长度决定点没有停留在之前周期的同一个点,整体的密钥流依然可以看成是非周期的。系统的加密周期由所选的混沌系统共同决定,足以应用于大数据量的医学图像加密中。而混沌序列是由多个混沌系统共同产生,能很好地抵抗对单一混沌系统的非线性预测攻击与相重构攻击。系统对一幅大小为3M的图像加密只需244ms,可见算法有着较高的运行效率,能满足在医学中的应用。

小知识之DCT变换

DCT变换的全称是离散余弦变换(Discrete Cosine Transform),是指将一组光强数据转换成频率数据,以便得知强度变化的情形。若对高频的数据做些修饰,再转回原来形式的数据时,显然与原始数据有些差异,但是人类的眼睛却是不容易辨认出来。

本文为收集整理,文章部分观点不代表本站观点,如有侵权或其它问题请反馈客服。https://www.wgj7.com/cjwt/16488.html