基于Hilbert曲线与Gray码,我们提出两种针对任意矩形彩色图像的加密算法,其一是对图像像素点的空域置乱,其二是对像素点的24位R、G、B分量的空域置乱,解密过程即加密过程的逆。
一、Hilbert曲线
1、二维Hilbert曲线
经典的二维Hilbert曲线的描述如下:首先将正方形四等分,求出各个小正方形的中心,并将它们连接,其次,将各个小正方形再细分为4个相同的小正方形;并连接各个小正方形的中心;……;按照这种分法不断细分下去,并按一定规则一一连接,就可以得到如图1的Hilbert曲线。
2、 三维Hilbert曲线
一阶三维Hilbert曲线构造方法:将一立方体等分成8个小立方体,把8个小立方体的中心按一定的次序连接成一条曲线,即连成图2的三维单元。以三维单元为基础来构造高阶三维Hilbert曲线,因为它是整个曲线形状的基础,所以又称它为基元。
n阶三维Hilbert曲线构造方法:将一立方体等分成8个小立方体,每个小立方体用n-1阶三维Hilbert曲线代替,然后按基元一样的次序连接这8条n-1阶三维Hilbert曲线。为使曲线更精美,对8条n-1阶三维Hilbert曲线作适当的旋转使连接的首尾平行于一轴线,如图3。
3、Hilbert曲线图像置乱
传统意义上利用Hilbert曲线实现图像置乱的思想:对图像像素点按Hilbert曲线的规则遍历,将其存入一维序列中,再重新排列生成置乱图像。实践证明,这种置乱算法应用性不强,如10×10大小的图像则不能按此规则置乱。
两种比较典型的算法,一种(算法1)是对非正方形图像分成四块满足Hilbert遍历规则的正方形块,分别是左上角,左下角,右上角,右下角,使得图像的每一部分至少
被置乱一次n1,这种算法比较繁琐,增加了算法的时间复杂度。另一种(算法2)是对前者的改进,将像素点的R、G、B三色分量排列成一维序列,对于M×N的数字图像,直接把3×M×N个图像数据排列到一维数组pl[]中,假如2n-1<3×M×N<2n,则可对pl[]补上(2n-3×MxN)个值为-1的数据,选择一条n阶Hilbert曲线进行置乱处理,再把值为-1的数据去掉,余下的就是置乱后的图像数据。该加密算法类似于对图像像素进行填充,增加了原图变换的工作量,如图4。
二、Gray变换
1、Gray码
定义1对于任意一个非负整数u,其二进制码记为纠=(uup-1up-217...u0u1)2,令:
i=1,2,…,p-1,则得到一个二进制表示的整数gu=(gpgp-1--g1go)2,变换式(l)称为Gray变换,gu称为的u的Gray码,其中运算“0”为模2加法。
2、Gray码图像置乱
(1)基于位置:对于MxN阶数字图像,按一定顺序对像素点进行编号,利用(N进制)Gray码变换置乱图像。
(2)基于色彩:保持像素点的位置不动,改变像素点的灰度(RGB)值。此时应先把像素点的R、G、B分量值用8位二进制码表示,再利用二进制Gray码变换。
如图5,置乱图1(64x64)是基于位置的变换,置乱图2是基于色彩的变换。
值得注意的是:对于基于位置的Gray变换,选取N进制和N进制的位数比较重要,如图像大小为3 x4-12,则像素点不能实现位置置乱的一一映射。而基于色彩的Gray变换,加密效果十分差,且周期很短,在实际中不具有应用性。
三、矩形分割算法
将任意一个矩形图像的长、宽(如果是长方体则是长、宽、高)通过矩形分割算法,对这两(三)个数分裂相同的次数,使长、宽(长、宽、高)分别分成2n(n=1,2…)段,即可将一个矩形(或者长方体)分成2nx2n(或者2nx2nx2n)块,将这些分裂出来的矩形块(或长方体块)作为一个单元,这些单元满足n阶二维(或三)Hilbert曲线遍历规则。
分割算法的详细步骤如下:
对任意整数m1,m2,做式(2)运算:
假定被分裂的数为l,通过一次分裂出来的两个数为l(0)l(1),则分裂规则为:
对m1,m2同时分裂M= Min(Mm1,Mm2)次,即可将两个数分别分裂成2M等分。如图6通过两次分裂分成4x4=16小块。
四、图像加密新算法
1、二维Hilbert曲线混合Gray码空域重组矩形图像像素点
(1)图像分块
将图像的宽、高按矩形分割算法将图像分成2nx2n小块,将小块利用n阶Hilbert曲线遍历,达到对小块的置乱。由于矩形分割算法的特点,任意矩形图像分出来的块,最多只有一行块和一列块(或者只有一行块,或者只有一列块,或者没有)内的像素点的个数不是2n(n∈N),如图6为第一列块和第三行块内的像素点的个数不为2n(n∈N)。
(2)对小块内像素点的处理
①若小块内的像素点的个数为2n(n∈N),则可以选择n位二进制位对小块的像素点进行Gray码位置置乱,假定图像块大小为2x4,对小块内像素点进行编号(0,1,…,7),从而用3位二进制Gray码变换重新排序像素点。
②若小块内的像素点的个数不是2n(n∈N),比如3x3,则利用Gray色彩置乱顺序遍历小块内的像素点。
实验证明,小块内像素点的Gray码变换主要是降低像素点之间的相关性,单从视觉上来说,即使不对小块Gray变换,图像的置乱效果也是很不错的,如图7。
2、三维Hilbert曲线混合Gray码空域重组矩肜图像24位
(1)将像素点对应的R、G、B分量值转换为8位二进制数,把图像分成24个位平面,将像素点的24个位存入三维序列P3[k,i,j]中,其中i,j对应像素点的坐标,0≤k<24,如图8。
(2)将width,height,24这三个数按分割算法进行分裂,将长方体划分为2nx2nx2n个小长方体块,对应胛阶三维Hilbert曲线遍历规则。
(3)对小长方体块内二进制位数据的处理,与上节中的对小块处理类似,只不过从平面延伸到了空间,规则为:
①若小长方体块内的元素个数为2n(n∈N),则选择Gray码位置置乱。
②若长方体块内的元素个数不是2n(n∈N),则不做变换,因为小块内存储的元素是二进制位,如图9。
五、加密算法分析
(1)创新性
利用三维Hilbert曲线对彩色图像的24位空域置乱,通过图9可以发现,对彩色图像24位的空域置乱可以达到非常好的置乱效果,大大降低了像素之间的相关性。
(2)加密算法执行效率
算法在.net 2005环境下编译运行,机器配置为AMD 64Processor 2800+,内存1GB。对238×170图像(图4的原图)分别用4种算法变换一次所需要的时间如表1。
通过表1发现,基于二维Hilbert变换的新算法较这2种算法执行效率都要高,而基于三维的Hilbert变换则要慢很多,这与三维空间中的数据量有关,但是其置乱效果是非常好的。
(3)安全性
由图4、图5、图7、图9可以看出,基于像素点的空间位置置乱可能会给解密者留有一个信息:如果原图像是灰度图,则加密后的图像一定是灰度图。然而基于24位的空域置乱加密后则不再是灰度图,置乱图接近混沌状态,大大提高了加密的可靠性。
小知识之遍历
所谓遍历(Traversal),是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。访问结点所做的操作依赖于具体的应用问题。 遍历是二叉树上最重要的运算之一,是二叉树上进行其它运算之基础。当然遍历的概念也适合于多元素集合的情况,如数组。
当青岛*测控技术有限公司遇上安企神,测控技术数据安全将迎来哪些新变化?
海*测控技术有限公司是海*微电子有限公司100%控股子公司,是由青岛市政府、山东省政府及行业领军企业共同出资成立的第三方检测平台。旨在集成电路可靠性验证及测试分析领域打造国内一流集成电路检测、分析、设计开发及技术解决方案等集成电路产业共性技术服务平台。海*以海洋装备和高端设备集成电路可靠性验证和测试分析为特色,主要为海...
"聚势谋远:重庆*医药集团与安企神达成战略合作,探索医药+科技融合发展新路径!
重庆*医药集团有限公司成立于2017年8月,是在重庆市*区医药(集团)有限责任公司基础上组建成立的大型医药产业企业。是重庆*经济技术开发(集团)有限公司控股的混合所有制企业和市级重点项目三峡国际健康产业园投资单位,位列全国百强医药流通企业。公司下辖重庆*制药有限公司、*医药科技重庆有限公司、重庆*肿瘤医院等十余家子公司...
聚焦核心数据安全:山东卫禾*股份有限公司携手安企神软件构建防泄密屏障!
项目背景山东卫禾*股份有限公司于2015年注册成立,公司拥有总资产1.5亿元,公司具有齿轮检测中心、三坐标测量仪、全谱直读光谱仪等关键研发设备。运用UGNX7.5、MASTA5.4等研发软件进行研发,具有强大的技术研发能力,拥有31项专利,坚持产学研结合,设有山东卫禾*技术研究院,并不断加强研发平台建设,打造创新型企业...
安全+智造双升级!江阴*电子有限公司携手安企神开启企业防护新时代!
江阴*电子有限公司成立于1989年,是一家电子元器件集成设计和生产服务的领先供应商。产品应用包括数据采集、计算机外围设备和其他电子产品。还进入了汽车电子行业、航空航天行业、工业控制行业、医疗器械行业和消费电子行业,为客户提供更广泛的高附加值产品和服务。随着科技产业的快速发展和市场需求的增加,现已成功转型为一家提供完整解...
福建*医药公司联手安企神软件,成功落地应用程序、网站黑名单设置与USB管控方案!
项目背景福建*医药有限公司前身是福建*工贸责任有限公司,2015年重组后成为中国五百强企业——*医药集团的子公司。 系中国最大的民营医药集团,是在中国医药商业行业处于领先地位的上市公司。公司成立于2015年08月04日,经营范围包括中药饮片、中成药、化学原料药、化学药制剂等。应用需求管控公司电脑安装程序和使用程序,禁...