基于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),是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。访问结点所做的操作依赖于具体的应用问题。 遍历是二叉树上最重要的运算之一,是二叉树上进行其它运算之基础。当然遍历的概念也适合于多元素集合的情况,如数组。
辛辛苦苦提拔起来的销冠,反手把公司卖了:内部人员泄密如何防范?从行为审计到技术锁死!
2026年硬核干货拆解,企业等保2.0怎么做才能快速通关?企业速通!
离职骨干连夜拷走十几个G,去新公司一双击全成废码:这套图纸加密方法简直绝杀!
研发骨干用几块钱的U盘卷走图纸:员工用U盘拷走图纸怎么办?企业自救方案!
军工软件源代码加密怎么做?五个超顶用的加密方法分享,分分钟教会你!
离职工程师把图纸塞进压缩包带走:图纸防泄密这一记反杀,让他去新公司立功的美梦当场碎掉!
销冠离职带走千万业务大盘?如何防范销售跳槽引发的企业资产与客户流失危机!
源代码加密软件哪个好?安企神软件透明加密+外发管控+权限分级三重守护!
企业数据防泄露措施有哪些?
企业数据防泄露措施有哪些?企业数据防泄露措施有哪些?找谁做?随着信息技术的不断发展,企业数据泄露事件频繁发生,给企业带来了巨大的经济损失和声誉损失。为了保护企业的核心数据,企业需要采取一系列的数据防泄露措施。本文将介绍企业数据防泄露的措施,帮助企业更好地保护数据安全。一、数据加密数据加密是一种常用的数据防泄露措施。通过...
最强干货:企业数据防泄密的26种实战方法
防止内部泄密的方法1、教育员工:不要低估员工教育的力量。CoSoSys的研究显示,60%的员工不知道哪些公司的数据是机密的。因此,他们可能会意外泄漏或使用不当。2、签署法律文件:很多企业在员工入职的时候,都会签署保密协议,尤其是开发人员这样的涉密人员,通过这种方式,可以一定程度上的防止员工主动泄密。3、文件加密:文件加...
如何规范上班时员工行为?
很多公司员工上班期间会打游戏、刷剧、看电影、炒股、干一些与工作无关的事,这极大的影响了公司的业绩和员工的工作效率和氛围。那么应该如何规范员工的行为呢?1、利用安企神软件对员工的办公电脑打游戏、刷剧、看电影、炒股等行为进行禁止。设置方法:打开策略模板管理 > 应用程序管控 > 然后勾选【开启程序黑白名单】然后...
四种屏幕防拍照、截屏、打印等数据泄露水印解决方案
信息媒体的数字化为信息的存取提供了极大的便利性,同时也显著提高了信息表达的效率和准确性。特别是随着计算机网络通讯技术的发展,数据的交换和传输变成了一个相对简单的过程,人们借助于计算机、数字扫描仪、打印机等电子设备可以方便、迅速地将数字信息传输到所期望的任何地方。但随之而来的副作用是这些数字形式的数据文件在流转过程中安全...
商业机密用u盘存储安全吗?
不安全商业机密用u盘存储是不安全的,商场如战场,如今的商业战场竞争越来越激烈,很多公司都会不遗余力的窃取同行的商业机密,而很多的管理者会将企业的重要商业机密存储在u盘中,今天给大家讲一下如何将商业机密更安全的存储起来。1、U盘内数据加密利用安企神可以对公司的机密文件进行加密,然后将加密后的机密文件移到u盘里,这样U盘内...