APP下载

基于多线程并行的图像多维混沌加密改进算法

2016-03-08舒彝军

西南科技大学学报 2016年4期
关键词:数字图像加密算法分块

舒彝军 陈 波 何 刚 杨 程

(西南科技大学计算机科学与技术学院 四川绵阳 621000)

基于多线程并行的图像多维混沌加密改进算法

舒彝军 陈 波 何 刚 杨 程

(西南科技大学计算机科学与技术学院 四川绵阳 621000)

为保证数字图像在传输过程中的安全性以及实时性,基于目前得到广为使用及研究的基于二维广义 Arnold 映射和三维 Liu 混沌系统的多维图像加密算法,提出了一种多线程并行的图像加密算法。通过对任意尺寸的图像进行边沿填充,弥补了原算法只能针对方阵图像的问题;通过对图像进行分块,并通过多线程技术对每一个分块进行加密,大大提高了实时性;提出了对原算法代码的进一步优化,提高了图像加解密速度;给出了不同的分块方式以及算法改进对处理速度的影响。

多维混沌系统 多线程并行 图像加密算法

随着多媒体技术和网络的发展,信息安全问题得到了越来越多的关注与研究,图像信息作为一种重要的信息载体,约占信息总量的70%[1],是人们进行信息交换的重要手段。为了保护图像信息安全而对图像信息进行加密也得到了越来越多的重视和关注。图像信息的加密广泛应用于电子商务、远程医疗、场景监控与远程教育等实时传输系统中[2],如何保证图像在传输系统中的信息安全性的同时保证传输系统对图像传输的实时性要求,已经成为现在迫切需要解决的问题。

加密技术作为保护图像信息安全最有效的手段,已经成为一项非常实用又急需快速发展的关键技术。图像加密技术主要是对数字图像进行位置置乱或灰度变换, 隐藏图像中包含的有用信息, 为数字图像提供基于内容的保护技术, 实现对图像信息的隐藏保护。图像加密方法主要有以下3种:(1)基于图像像素点坐标的空间域和频域变换加密;(2)基于图像灰度域变换的加密;(3)基于图像空间域和色度域变换的加密[3]。目前已有的图像置乱方法有Arnold变换、幻方变换、Hilbert曲线、Gray码法等,这些置乱变换主要适用于方阵图像,但从密码学角度来说,因为置换算子内在的周期性且其加密算法和密钥没有有效分离,置换并没有多大的密码作用。

随着混沌动力学的发展,混沌系统因能满足密码学对加密的扩散和混淆的要求,在图像加密算法中得到越来越多的应用。混沌是非线性动力系统中出现的一种确定性的貌似无规则的运动。其具有存在内在随机性、确定性,对初始条件和控制参数非常敏感等特点,特别适用于数字图像加密。因此,初始状态和少量参数的变化就可以产生满足密码学基本特征的混沌密码序列。通过将混沌理论与加密技术相结合,可以形成良好的图像加密系统。

本文利用文献[7]提出的位置置乱和灰度值加密为基本算法(本文称为“原算法”)。选用灰度级别256位的lena图(bmp格式)作为实验图像,操作系统采用Windows 7旗舰版,CPU采用Intel Core i3 M 350@2.27GHz双核处理器,内存大小2 G内存,显卡采用Intel HD Graphics集成显卡,在MicrosoftVisual Studio 10.0 IDE环境下实现原算法的改进与测试,通过运用图像分块并行及结合多线程技术对图像加密、解密进行加速,算法能满足对不同尺寸和图像传输系统的实时性要求。

1 多维混沌加密算法与多线程运用

1.1 多维混沌加密算法

1.1.1 二维广义 Arnold映射和三维Liu混沌系统

文献[7]提出的加密算法主要分为两步,第一步是利用二维广义Arnold映射对图像像素位置进行置乱,第二步是利用三维Liu混沌系统对图像像素值加密。

(1)二维广义Arnold映射

利用广义Arnold映射对图像像素进行位置置乱,假设图像的大小为N×N,所对应的坐标位置为W={(x,y)|x,y=0,1,…,N-1},而二维广义Arnold映射的定义为:

(1)

其中p,q和迭代数n(加密算法循环次数)作为密钥进行控制,当进行足够多轮的迭代后,图像将具有很好的置乱效果。

(2)三维Liu混沌系统

利用三维Liu混沌系统进行图像像素值的替代。典型的三维Liu混沌系统可描述为

(2)

1.1.2 多维混沌加密算法加密流程

(1) 将待置乱图像按照光栅扫描顺序转化为一维序列S={s(i),i=1,2…N×N},N×N为图像大小。

(2)根据二维广义Arnold映射的加密密钥对图像进行位置置乱[7]。

2015年三大湾区的GDP分别达到1.4万亿美元、0.8万亿美元和1.8万亿美元。其产业呈现高端化特征,服务业占比均达80%以上,世界500强企业数量分别为22家、28和60家。

(3)根据三维Liu混沌系统的加密密钥对图像进行灰度值变化[7]。

(4)将加密后的像素序列转化为二维矩阵,得到最后的加密图像。

如上所示,对待加密的图像先进行位置置乱,然后进行像素值的灰度值变换。

1.2 对原算法的分析和改进

1.2.1 适应非方阵图像的分析和改进

通过二维广义Arnold映射的定义发现,在进行位置置乱前,需要进行取模运算,所以只能作用于方阵(长宽相同)图像。然而,实际应用中的数字图像很多是非方阵图像。可以在对图像处理之前,对任意尺寸的图像进行边沿填充,使之成为符合Arnold映射要求的方阵图像。

图1、图2示意水平填充和垂直填充。通过填充后原图像变成方阵图像,就可以运用二维广义Arnold映射对图像进行位置置乱。

图1 原图尺寸100×67,水平填充为100×100Fig.1 Origial figure Size 100×67, Horizontal filling 100×100

图2 原图尺寸67×100,垂直填充为100×100Fig.2 Origial figure Size 67×100, Horizontal filling 100×100

1.2.2 对原算法预处理的分析

(1)使用二维广义Arnold映射进行图像像素位置置乱时,在未对整个图像完成位置置乱前,需要反复运用公式(1)进行一次位置置乱,但是对同一个图片来说,密钥和图像尺寸是不变的,所以在密钥和图像尺寸不变的前提下,每个像素位置的置乱序列也是一定的。在实际运用中通过对代码的优化可以提前得到像素置乱位置,且在多次加密时像素位置置乱位置可以重复利用,能减少运算量,提高图像加密的效率。经测试,图像置乱效果和原算法置乱效果是一致的。

(2)在对图像像素位置置乱完后,需要使用三维Liu混沌系统产生的伪随机序列来对图像进行灰度值变换。在混沌系统初始值和图像尺寸不变的情况下,图像灰度值变换对应关系也是确定的。同时,在实际的图像传输系统中,对于某一图像其初始值和图像尺寸都是不变的,因而可以提前获得图像像素的对应变化值,这一关系可以多次利用。

(3)为了提高算法处理速度,达到图像在实时传输系统中的实时性要求,对图像进行分块,并运用多线程并行处理的方式,对每一个分块图像进行加密,以提高图像处理的速度。

1.2.3 多线程的运用分析

通过对原算法的分析,在每次进行位置置乱和像素灰度值变换前,需要计算得到相应的位置置乱值和灰度值变换值相对值。对于一幅数字图像来说这样的重复计算量大,需要花费较多的处理时间,并且这些计算都和图像数据规模(分辨率、灰度级等)成正比。Windows系统是一个多任务、多线程操作系统,利用多线程技术可以编写多个任务并行的程序,并且CPU的运行速度远远大于I/O读写速度。BMP格式的图像是由文件头和位图数据组成,可以把位图数据进行分块,分成多个部分,并对每一个部分数据采用一个独立的线程进行加密、解密,这样对图像进行处理的时间就会减少,从而满足图像的实时性要求。在充分利用Windows系统CPU运算速度的同时也减少了每个处理单元对应的图像数据规模,更进一步减少了图像加密、解密时间,也充分运用Windows系统的多任务、多线程的特点,大大提高图像加密、解密的速度。图3所示为把一个图像分割成4个小的小方阵图像的示意图。

图3 图像分块Fig.3 Image blocks

1.2.4 本文算法的加密、解密流程

本文算法的加密、解密流程如图4、图5所示,预处理流程如图6所示。通过流程图可以知道,无论加密或者解密都需要对图像进行预处理。预处理主要是:(1)通过计算二维广义Arnold映射,得到像素位置置乱的最终值,并且在图像大小和Arnold映射参数固定的情况下,原坐标像素到新坐标的映射矩阵是固定不变的,这个矩阵也可以重复利用。(2)在三维 Liu混沌系统初始值不变的情况可以提前确定原像素值到新像素值的变换关系,通过预处理生成这一变换关系矩阵,并在加解密过程中直接使用变换关系矩阵,可以大大提高处理速度。

在图4的加密流程中,我们先进行预处理,获得位置置乱的最终相对位置和像素灰度值变化量,然后对图像进行填充和分块,最后通过预处理得到的位置置乱相对位置和灰度值变化量对图像进行加密。

在图5的解密流程中,我们先进行预处理,获得位置置乱的最终相对位置和像素灰度值变化量,然后对分块图像进行解密,最后将分块图像进行组合成原图像。

图4 现算法加密流程Fig.4 Current algorithm’s encryption process

图5 现算法解密流程Fig.5 Current algorithm’s decryption process

图6 预处理流程图Fig.6 Pretreatment Process

综上所述,论文利用图像的预处理结果可以多次重复利用这一特性,通过图像填充的方法来满足任意尺寸图像的加解密需求,利用图像分块及多线程技术使加解密阶段的处理速度大大提高。

2 改进算法结果对比分析

2.1 现算法加密、解密实例示意图

如图4所示,在加密过程中,除了进行预处理之外,需要对非方阵图像进行边沿填充,并把处理后的图像进行分块,图7所示分为了4块。最后对分块的图像进行多线程加密。如图8所示,对分块的加密图像进行多线程分块解密。再对解密后的分块图像进行重组为一副图像,并根据是否为填充,进行裁剪。

图7 图像加密实例示意图Fig.7 Sketch map of image encryption

图8 图像解密实例示意图Fig.8 Sketch map of image decryption

2.2 现算法与原算法加密、解密时间对比

在表1和表2中,未分块是原算法的时间,并且没有对代码进行优化,分块表示对代码进行了优化并且还进行了相应数量的分块。通过表中的加密、解密时间对比发现,对代码进行优化且图像进行分块,并运用多线程并行的方式可以提高运行速度。当把图像分成4块时,加密、解密速度可以提高10倍左右,处理帧率能满足实时的传输系统的要求。进一步计算表明,对图像进行了16分块、64分块的时候,可以更进一步提高速度。在分块64时可以提高速度200倍左右,能运用到现在的实时传输系统中。如果继续增加分块数量,会存在由于多线程调度负担增加、数据同步等原因造成延时等问题。研究表明,在分块为64时,加密、解密时间随着分辨率的变化不是很大,加密、解密时间均在0.01 s左右,在图像尺寸为1280×1280时加密、解密帧率能达到32帧/秒,能满足实时传输系统的要求。

表1 加密时间对比(单位:s)Table 1 Comparison of encryption time(Unit:s)

表2 解密时间对比(单位:s)Table 2 Comparison of decryption time(Unit:s)

表3 加密帧率对比(单位:f·s-1)Table 3 Comparison of encryption FPS(Unit:f·s-1)

表4 解密帧率对比(单位:f·s-1)Table 4 Comparison of decryption FPS(Unit:f·s-1)

3 结束语

本文改进了原有的广义Arnold映射对图像进行置乱并利用三维Liu混沌系统对图像像素值进行加解密过程中只能处理长宽一致图像的问题,提出了把图像分割成大小相同的多个小图像并运用多线程技术对小图像进行加密、解密,使得算法处理速度达到实时传输系统的要求。实验表明通过分块图像并运用多线程并发可以极大提高加密、解密速度。通过分块4、分块16、分块64的对比发现,分块64图像尺寸为1280×1280时加密、解密能达到32帧/秒,满足实时传输要求。

[1] 乌旭, 陈尔东, 胡家升. 一种基于混沌的图像加密改进方法[J]. 大连理工大学学报, 2004,44(5):754-757.

[2] 文昌辞, 王沁, 苗晓宁,等. 数字图像加密综述[J].计算机科学,2012, 39(12):6-9.

[3] 邵利平, 蒙清照, 李春枚,等. 图像置乱方法综述[J]. 信息网络安全, 2009(4):22-26.

[4] 盛苏英, 吴新华. 一种混沌图像加密算法的研究与改进[J]. 微电子学与计算机, 2010, 27(10):61-64.

[5] 郑凡, 田小建, 范文华,等. 基于Henon映射的数字图像加密[J].北京邮电大学学报, 2008, 31(1):66-70.

[6] 王静, 蒋国平. 一种超混沌图像加密算法的安全性分析及其改进[J].物理学报, 2011, 60(6):83-93.

[7] 朱从旭, 李力, 陈志刚. 基于多维混沌系统组合的图像加密新算法[J].计算机工程, 2007, 33(2):142-144.

[8] 许冰, 孙永维, 李洋,等. 基于高维混沌系统的图像加密改进算法[J]. 吉林大学学报(信息科学版),2012, 30(1):12-17.

[9] 朱之芹, 杨林安, 郭宇. 多线程在数字图像实时接收处理中的应用[J]. 电视技术, 2001(7):20-21.

[10] 杨凌云. 基于多核技术的并行图像检索系统的研究[D]. 北京:北京化工大学, 2009.

[11] 赵亮, 廖晓峰, 向涛,等. 对高维混沌系统的图像加密算法安全性和效率的改进[J]. 计算机应用, 2009, 29(7):1775-1778.

[12] 黄峰, 冯勇. 二维混沌映射图像加密安全性分析及改进算法[J]. 哈尔滨工业大学学报, 2007, 39(9):1411-1414.

[13] 孙劲光, 汪洁, 姜文涛,等. 改进的分块算法在矩形图像加密中的应用[J].计算机应用研究,2013, 30(1):282-284.

[14] 张爱华, 江中勤. 基于Logistic映射的混沌图像加密算法的改进[J].南京邮电大学学报(自然科学版), 2009, 29(4):69-73.

[15] 黄晗文, 韩凤英, 杨幸. 基于改进的Liu混沌系统序列的图像加密算法[J]. 计算机工程与应用,2009, 45(35):188-191.

[16] 马在光, 丘水生. 基于广义猫映射的一种图像加密系统[J]. 通信学报,2003, 24(2):51-57.

[17] 张雪锋, 范九伦. 一种改进的基于混沌系统的数字图像加密算法[J]. 计算机应用研究, 2007, 24(4):184-186.

[18] 张燕, 黄贤武, 刘家胜. 一种基于改进的混沌猫映射的图像加密算法[J]. 计算机工程, 2007, 33(10):166-168.

[19] 张瀚, 王秀峰, 李朝晖,等. 一种基于混沌系统及Henon映射的快速图像加密算法[J]. 计算机研究与发展, 2005, 42(12):2137-2142.

[20] 乐鸿辉, 李涛, 石磊. 应用Henon超混沌系统改进的图像加密[J]. 计算机应用, 2011, 31(7):1909-1911.

[21] 张云鹏, 左飞, 翟正军. 基于混沌的数字图像加密综述[J]. 计算机工程与设计, 2011, 32(2):463-466.

[22] 卢辉斌, 孙艳. 基于新的超混沌系统的图像加密方案[J].计算机科学, 2011, 38(6):149-152.

Improved Image Multidimensional Chaos Encryption Algorithm Based on Multithreaded Parallel Technology

SHU Yijun1, CHEN Bo1, HE Gang1, YANG Cheng1

(SchoolofComputerScienceandTechnology,SouthwestUniversityofScienceandTechnology,Mianyang621000,Sichuan,China)

During the process of digital image transmission, the security and real-time issues have been attracting attention from researchers all over the world. Based on the analysis result of multidimensional image chaos encryption algorithm using two-dimensional generalized Arnold mapping and three-dimensional Liu chaotic system, an improved algorithm of image encryption using multithreaded parallel is proposed. By filling the edges of image of random size and transforming it into a square size image, the algorithm proposed in this paper could overcome the shortcomings of the original algorithm. The real-time performance was greatly improved via the technology of image block and the multi-threading encryption technology for each block. Moreover, code optimizations based on the original algorithm were proposed and higher image encryption speed was achieved. The influence of the block method and the algorithm improvement on the processing speed was discussed as well.

Multidimensional Chaos System; Multithreaded parallel technology; Image encryption algorithm

2016-09-28

西南科技大学2016第一批博士研究基金(16zx7108)。

舒彝军(1986—),男,硕士研究生, 研究方向为医学图像处理,E-mail: sujony@163.com

TP391

A

1671-8755(2016)04-0078-06

猜你喜欢

数字图像加密算法分块
钢结构工程分块滑移安装施工方法探讨
数字图像水印技术综述
关于4×4分块矩阵的逆矩阵*
基于整数矩阵乘法的图像加密算法
基于混沌系统和DNA编码的量子图像加密算法
ARGUS-100 艺术品鉴证数字图像比对系统
懒交互模式下散乱不规则分块引导的目标跟踪*
混沌参数调制下RSA数据加密算法研究
基于小波变换和混沌映射的图像加密算法
浅谈数字图像技术在电视节目后期制作中的应用