随着计算机、通信技术和区域医疗协同服务的不断发展,信息的安全与保密显得越来越重要。医学图像作为诊断依据的重要部分需要在公网上传播,为了防止病人敏感信息的非法泄漏,研究医学图像文件加密有着重要的意义。
一、混沌的特点
混沌是指一种由非线性确定系统产生的类随机行为,它具有以下特征:
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),是指将一组光强数据转换成频率数据,以便得知强度变化的情形。若对高频的数据做些修饰,再转回原来形式的数据时,显然与原始数据有些差异,但是人类的眼睛却是不容易辨认出来。
实操指南:如何监控聊天中的敏感信息?这款秘籍软件,轻松掌握微信聊天动态
电影《摩登时代》里,流水线工人就连在吃饭时都要用“自动喂食机”提高效率,这样才能挤出更多时间投入工作。虽然现在打工人不至于此,但有些老板仍然放心不下……像企业聊天记录往往蕴含着大量的敏感信息。为了确保信息安全,监控聊天中的敏感信息成为了一项必要且重要的工作。以下是一款秘籍软件,帮助你轻松掌握微信聊天动态,确保信息安全。...
怎么监控员工上班情况?2024企业管理的四种方法,老板们不容错过
怎么监控员工上班情况?2024企业管理的四种方法,老板们不容错过员工上班在干什么?摸鱼?打游戏?老板该怎么管理?如何才能监视怎么监控员工上班情况?监控员工上班情况可以通过多种方式实现,但重要的是要确保这些措施既合法又合规,同时尊重员工的隐私权。以下是一些建议的方法:一、制定明确的行为规范与奖惩制度1、制定行为规范: 企...
怎么监控员工上班情况?快速监控员工状态
怎么监控员工上班情况?快速监控员工状态在企业管理中,如何有效监控员工上班情况,确保工作效率与团队协作,是每位老板都需面对的课题。本文为您揭秘五招快速监控员工状态的实用技巧,不仅能帮助您实时掌握员工动态,还能提升整体管理效率。作为老板,掌握这些技巧,将让您在企业管理中游刃有余,轻松应对各种挑战。一、使用安企神软件实时监控...
安企神桌管软件:提升企业管理效率的全能助力
安企神桌管软件:提升企业管理效率的全能助力在当今竞争激烈的商业环境中,企业必须不断优化管理和运营流程,以提高效率和盈利能力。安企神桌管软件正是这样一款面向中小企业的管理工具,能够帮助企业在多方面提升综合管理水平。本文将详细探讨安企神桌管软件给企业带来的多重价值。一、全方位的管理功能安企神桌管软件是一款集成了多种管理功能...
安企神:揭开终端安全管理软件的神秘面纱
安企神:揭开终端安全管理软件的神秘面纱在数字化日益普及的今天,企业的网络安全问题愈发显得重要。数据泄露、网络攻击等事件层出不穷,如何保障企业内部信息的安全性成为众多企业关心的焦点。安企神终端安全管理软件应运而生,作为一款专业的安全管理工具,它的功能与优势备受关注。本文将全面揭秘安企神软件的核心功能、应用场景及其在终端安...