基于多线程模型和多级置乱的数字图像置乱方法与流程

文档序号:14836264发布日期:2018-06-30 12:32阅读:579来源:国知局
基于多线程模型和多级置乱的数字图像置乱方法与流程
本发明属于图像加密
技术领域
,涉及多线程模型、信息隐藏、以及多级置乱的数字图像加密方法。
背景技术
:1997年,美国研究人员JiriFridrich首次提出了数字图像加密的置乱扩散框架,即Confusion-Diffusion框架。在这个框架中,数字图像加密算法在执行的过程中被分为两个相对独立的阶段,即置乱阶段和扩散阶段。在置乱阶段中,图像的所有像素点进行重新排列,像素点的相对位置发生变化,而像素点的值不发生变化。在扩散阶段中,加密算法系统改变每一个像素点的值。近年来,几乎所有的数字图像加密算法均基于置乱扩散框架。置乱算法,作为数字图像加密系统的核心算法,近年来引起了众多研究人员的广泛关注,并得到了长足的发展。一系列置乱算法被先后提出,例如基于排序的行列互换置乱算法、基于各种二维混沌映射的置乱算法、基于三维可逆映射的置乱算法等。然而这些置乱算法依然无法解决置乱不充分、无法改变明文统计学信息以及执行效率缓慢等问题。为了解决上述问题,研究人员将置乱操作引入到比特级矩阵,即通过微观上比特位置的变化来改变宏观上像素点的值。然而,比特级置乱由于置乱平面的成倍增加,需要更多的运行时间。像素级置乱可以对像素点的位置矩阵进行加密,而比特级置乱旨在同时改变像素点的位置和值。像素级置乱算法能够快速执行置乱操作,但是其置乱效果较差,且无法改变明文的统计学信息。比特级置乱可以解决像素级置乱的问题,但是执行过程较为复杂且运算速度较慢。在综合考虑不同级别置乱对于密文的影响后,本发明提出了一个综合考虑像素级和比特级特点的置乱算法。多核心CPU的普及为并行运算提供了硬件的基础。本发明在设计时充分考虑了底层硬件平台的特点,并设计了基于多线程模型和多级置乱的数字图像置乱算法。本算法可以运行在不同的多线程平台中,例如WindowsSDK线程库和POSIXThread线程库。技术实现要素:为了充分利用像素级和比特级置乱的优势,将不同比特级置乱操作置入不同的线程中并发运行,降低比特级置乱的运行速度,并结合像素级置乱的特点,设计了基于多线程模型和多级置乱的数字图像置乱架构。本发明的技术方案为:基于多线程模型和多级置乱的数字图像置乱方法,包括如下步骤:步骤一,对一个三通道彩色图像进行颜色通道的分离,得到B、G、R三个单通道图像,再分别对这三个单通道图像进行比特层的划分,将每幅图划分为8个比特平面,共得到24个二值图像;步骤二,为每一个比特平面分配一个线程,令每个比特平面在各自的线程上独立执行比特级置乱操作,多个线程并发执行;该置乱过程完成后,得到24个置乱后的比特级置乱图,第一级置乱结束;步骤三,第二级置乱在像素级别完成;将24个置乱后的比特级平面还原为为B、G、R三个分量的单通道图像,进而对三个单通道图像进行像素级置乱,此时二级置乱结束;步骤四,将置乱后的三个单通道图像合并为一个三通道彩色图像,此时得到最终的置乱图像。进一步地,上述步骤二中,根据目标图像特征,将每个单通道图像的比特平面分为高低两组;对于高比特平面,其置乱中的映射规则由二维混沌系统和一维混沌系统共同迭代得出;对于低比特平面,只进行二维随机映射置乱。上述的二维混沌系统采用catmap二维置乱方法;一维混沌系统采用logisticmap一维置乱方法。上述方法还包括解密过程,为置乱加密过程的逆过程:首先对密文图像进行颜色通道分离,得到B、G、R三个单通道图像,再进行像素级置乱的逆向操作,此时还原了二级置乱;进而对B、G、R进行比特平面的划分,得到24个比特平面;为每一个比特平面分配一个线程,每个比特平面独立地在各自线程上执行置乱还原操作,多个线程并发执行;此时得到的24个比特平面为原始的二值图像,将其进行合并,得到的3通道图像即为解密后的原始图像。本发明的有益效果为,通过综合考虑像素级置乱和比特级置乱的各自特点,本方法设计了一种基于多线程的多级置乱方法。这种置乱方法可以嵌入于任何图像加密算法的置乱阶段。相比传统置乱方法,本方法能够在置乱阶段显著改变明文的统计学信息,并具有安全性高,时效性较好的特点。附图说明图1为蓝色通道图像的8个比特平面,(a)~(h)从高到低。图2为绿色通道图像的8个比特平面,(a)~(h)从高到低。图3为红色通道图像的8个比特平面,(a)~(h)从高到低。图4为基于多线程模型和多级置乱的数字图像加密流程图。图5为基于多线程模型和多级置乱还原的数字图像解密流程图。图6为置乱图像柱状图;(a)B通道,(b)G通道,(c)R通道。具体实施方式1.总体实施原则和详细步骤本方法基于多线程模型,对于由一个三通道彩色图像划分出的24个比特平面,为每个比特平面分配一个线程,每个平面在各自的线程上独立执行置乱操作,使这些个线程并发执行,对图像并行处理,以提高算法的效率。步骤1:读取一个3通道的彩色图像,对该图像进行颜色通道分离操作,得到3个单通道图像B、G、R,再对这3个单通道图像进行比特平面的划分,得到24个比特平面(即24个二值图像)。步骤2:为每个单通道图像的高4比特平面分配一个线程,每个平面在各自的线程上独立执行置乱操作,多个线程并发执行。具体操作如下:(1)生成12个线程,为每个单通道图像的高4比特平面分配一个线程,12个线程并发执行,同时对图像进行置乱操作;(2)在每一个线程函数中,首先对该比特平面进行二维随机映射置乱,这里采用的是catmap二维置乱方法:将二值图像的像素值一一映射到一个二维数组中,利用两个参数p和q(p,q<image_size)确定映射的目的位置,将像素点从原位置映射到目的位置,通过改变像素点的相对位置来达到置乱的效果。此时得到置乱后的二维数组catmapArrm(m表示不同的比特平面),数组中的每一个点对应二值图像中的一个像素值;(3)利用一维随机映射置乱产生与当前比特平面等大的数组,数组中数值大小随机,这里采用的是logisticmap一维置乱:递归产生xi的值,初始值x0为秘钥key的值;进而将得到的一维随机数组转化为对应的二维数组logisticArrm(与catmapArrm等大);(4).将logisticArrm与catmapArrm两个二维数组中对应位置的像素值执行异或操作,结果保存在二维数组afterConfsuionm中,该数组中的数值即为置乱后图像的像素值。afterConfsuionm(i,j)=logisticArrm(i,j)⊕catmapArrm(i,j);(5)将每一个线程函数中的二维数组afterConfsuionm中像素值还原到二值图像相应的位置,此时完成对高比特平面的置乱;(6)当12个并行线程全部执行结束后,关闭线程句柄对象。步骤3:为每个单通道图像的低4比特平面分配一个线程,每个平面在各自的线程上独立执行置乱操作,多个线程并发执行。具体操作如下:(1)生成12个线程,为每个单通道图像的低4比特平面分配一个线程,12个线程并发执行,同时对图像进行置乱操作;(2)在每一个线程函数中,对该比特平面进行二维随机映射置乱,这里采用的是catmap二维随机映射置乱方法,得到置乱后的二维数组low_catmapArrm;(3)将每一个线程函数中的二维数组low_catmapArrm中的像素值还原到二值图像的对应位置,此时完成对低比特平面的置乱;(4)当12个并行线程全部执行结束后,关闭线程句柄对象;此时,一级置乱结束,得到24个置乱后的比特平面。步骤4:将24个置乱后的比特平面合并为3个单通道图像,此时基于三个像素级分量平面,执行二级置乱,采用二维置乱sorting-basedpermutation方法。步骤5:将二级置乱后的3个单通道图像合并为一个3通道图像,并写入到文件中。2.以相关系数为例对算法进行分析将置乱加密后的图像分成3个单通道图像B、G、R,分别对这3个单通道图像进行水平相关性、垂直相关性以及对角相关性分析。表1置乱后图像相邻像素点相关性系数通过上述测试结果可看出,图像的各方面的相关性系数都有所下降,甚至趋近于零,由此可得出结论:本发明的多级置乱方法达到了理想的效果,多级置乱使得图像的逻辑相关性彻底被打乱了。3.以柱状图为例对算法进行分析将置乱加密后的图像划分为3个单通道图像B、G、R,分别对这三个单通道图像画出柱状图并进行分析从图6柱状图分析来看,每一个像素值的个数大致在同一水平线上,置乱效果理想。4.以信息熵为例对算法进行分析将置乱加密后的图像分成3个单通道图像B、G、R,分别对这3个单通道图像进行信息熵的计算表2置乱图想信息熵分析B通道G通道R通道信息熵7.9573535205173217.9876888993938577.965938174720284信息熵是指信息的混乱的程度;观察上述测试数据,经过置乱加密后的图像的信息熵显著增加,熵值接近于理想值8,置乱的效果理想。5.以该置乱算法吞吐量为例对算法进行分析根据程序的吞吐量为:Throughput=142.513K/s。综上所述,原始的置乱算法只是针对图像整体进行了一级置乱。而本发明将其从一级置乱上升到了多级置乱,大大增加了隐藏信息的安全性;且采用了多线程模型来实现,又提高了算法的执行效率。因此,该方法能够更好的用于信息安全领域的信息隐藏、加密传输等应用过程。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1