安企神电脑监控软件 在线试用
扫码咨询客服
安企神电脑监控软件、局域网监控软件
首页
功能介绍
产品简介
下载中心
帮助中心
客户列表
关于安企神

基于四叉树的空域图像选择加密算法

更新时间:2022-10-28 15:44:28


本文简介:图像加密算法中目前使用比较广泛的有基于四叉树编码的图像加密算法。该加密算法主要对图像进行四叉树置乱加密,具有安全性较高、保持数据编码格式和数据压缩率不变等优点。但它没有充分利用图像特性,因此,其加密数据最较大,增加了计算复杂度。为此,我们在该加密算法的基础上,从减少加密数据量和提高安全性两方面入手,提出了一种新的图像选择加密算法——基于四叉树的空城图像选择加密算法。一、四叉树置乱加密算法1、四叉树

基于四叉树的空域图像选择加密算法

图像加密算法中目前使用比较广泛的有基于四叉树编码的图像加密算法。该加密算法主要对图像进行四叉树置乱加密,具有安全性较高、保持数据编码格式和数据压缩率不变等优点。但它没有充分利用图像特性,因此,其加密数据最较大,增加了计算复杂度。为此,我们在该加密算法的基础上,从减少加密数据量和提高安全性两方面入手,提出了一种新的图像选择加密算法——基于四叉树的空城图像选择加密算法。

一、四叉树置乱加密算法

1、四叉树编码

四叉树编码是最有效的图像压缩编码方法之一,广泛应用于GIS中。其基本思想是将2n×2n像素组成的图像构成的二维平面按4个象限进行递归分割,直到子象限的数值单调,从而得到一棵四分叉的倒向树,该树最高为力级。对如图1(a)所示的图像,可用四叉树编码法得到如图1(b)所示的四叉树。四叉树按存储方式的不同,分为线性四叉树和非线性四叉树2种。一个含m=2n×2n个像素的图像,其四叉树编码的时间复杂度为o(4m/3),编码速度很快。由于四叉树编码具有算法简单、运算速度快、压缩率大等优点,因此广泛应用于图像编码中。

基于四叉树的空城图像选择加密算法

2、置乱加密算法

我们提出了2种四叉树置乱加密算法:(1)将同属1个父节点的4个子节点置乱,而保持节点阆父子关系不变;(2)将同一高度的节点(包括叶子节点和内部节点)进行置乱。2种置乱
算法的密钥空问分别为:

基于四叉树的空城图像选择加密算法

其中,H表示四叉树的高度;KHtree表示高度为日的四叉树置乱后获得的置乱空间;Nh表示h高度上内部节点的个数;Mh表示h高度上叶子节点个数;Ho表示本高度以上(不包含本高
度)的任何高度上都没有叶子节点。

通过分析可以看出,第(2)种置乱方法的密钥宅间更大、加密效果更好且图像恢复难度更大。

二、基于四叉树的空城图像选择加密算法描述

本文根据图像选择加密的基本思想,在第(2)种置乱方法的基础上提出一种新的图像加密算法。该算法主要过程如下:

(1)取出图像的1个位平面,将其捌分为若干16×16的块。

(2)将每个16×16的块划分为4个8×8的子块,并对其位置置乱。如图2所示。

基于四叉树的空城图像选择加密算法

(3)对每个8×8的子块进行四叉树编码。如果64个值相等,则称其为均匀的。

1)若不均匀,则将8×8子块内部同一高度的节点进行置乱,如图3所示。

基于四叉树的空城图像选择加密算法

2)若均匀,则加密其值。

三、基于四叉树的空城图像选择加密算法的实验结果

原始图像为大小为160×160的图像Lena,置乱和加密采用混沌Logistic映射,即xn+1=4×xn×(1-xn)。初始密钥为0.34,加密了MSB和第6级位平面,实验结果如图4所示。

基于四叉树的空城图像选择加密算法

四、基于四叉树的空城图像选择加密算法分析

1、 加密数据量

通过加密算法描述可知,本文加密算法的加密过程主要包括以下3个部分:

(1)对4个8×8矩阵块的位置置乱。

(2)对非均匀8×8矩阵块的内部置乱。

(3)对均匀8×8矩阵的加密。

通过仿真实验得到图像MSB中均匀和非均匀8×8矩阵块的比倒,如表1所示。

基于四叉树的空城图像选择加密算法

在位置置乱过程中,因为对每个8×8矩阵都要进行处理,所以加密数据量为原MSB的1/64≈1%。由表1可以看出,一般图像的非均匀8×8像素都在50%以下,因此,内部置乱过程涉及的数据量最多约为50%,加密过程的数据量最多约为50%÷64≈1%。整个文件加密过程的数据量最多约为1%+50%+1%=52%,例如Lena.bmp的加密数据量只有1%+34%+ 66%÷64≈36%。

2、安全性分析

加密算法的安全性主要依赖密钥的安全性,而密钥的安全性与密钥空间大小、密文对密钥的敏感度有很大关系。

(1)密钥空间

内部置乱过程在整个加密过程中占有很大比例。本文内部置乱采用“同一高度的节点一进行置乱”。由式(2)可知,8×8矩阵形成的四叉树高度为3,可得最少的密钥空间为24H=243,最多的密钥空间为64!。在位置置乱过程中,16×16矩阵的密钥空间为4!。

由上述分析可知,当每个高度都只有一个内部节点时,内部置乱过程会出现密钥空间过少的问题。虽然这种情况出现的概率很小,但仍对算法安全性构成威胁。在最极端的情况下,即8×8的像素矩阵中63个点都同值时,密钥空间大小虽然可达243,但实际明文空间只有64种情况。此时只要穷举明文就能达到攻击放果。为了进一步提高安全性,本文提出一种对针对置乱算法的改进算法,其步骤如下:

1)对待加密图像文件通过密钥生成一个8×8伪随机矩阵A。

2)对待内部置乱的8×8矩阵口计算:

基于四叉树的空城图像选择加密算法
其中,N1是值为1的点的个数;No是值为0的点的个数。若Drff大于阙值T(如T=44),则置标志位S=1,转第(3)步,若小于T,则置S=0,转第(4)步。

3)对矩阵A和矩阵B进行异或操作得到矩阵B’,转第(4)步。

4)对矩阵B或B’进行内部置乱操作。

上述改进算法对只有少数像素值不同的8×8矩阵和一个伪随机矩阵进行异或操作,增加该矩阵四叉树结构中内部节点的个数,从而提高密钥空间和明文空问。由式(1)可知,增加一个内部节点,置乱空间大约能提高29倍。因为对每个8×8矩阵都要添加一个标志位S来表明该矩阵是否进行过异或运算,所以会多占1/64×m bit,其中,m指图像像素个数。

(2) 密文对密钥的敏感性

虽然内部置乱过程完成对多数数据文件加密,但由表1可以看出,大部分像素属于均匀8×8块,因此,对均匀8×8矩阵的加密同样具有重要作用。本实验采混沌Logistic映射,因为混沌映射具有初值敏感性,所以即使初值只有很小的改变,迭代多次后产生的伪随机序列仍会出现巨大变化。因此,即使攻击者获得了部分明文及相应密文,也无法恢复密钥流。

小知识之四叉树

四叉树是一种树状数据结构,在每一个节点上会有四个子区块。四元树常应用于二维空间数据的分析与分类。 它将数据区分成为四个象限。数据范围可以是方形或矩形或其他任意形状。这种数据结构是由_拉斐尔·芬科尔(Raphael Finkel) 与_J. L. Bentley_在1974年发展出来 。 类似的数据分区方法也称为_Q-tree。

立即下载试用

基于3DES加密算法的研究

关于加密方法,我们之前有介绍过很多,最近大出风头的秀尔算法和DES、MD5等等一直占据鳌头,今天我们来介绍一个小众的加密算法——就是3DES。

加密算法主要通过软件和硬件两种方式来实现,软件的实现方式具有灵活方便的优点,同时也具有加密速度受限制的缺点。采用硬件实现加密算法是实际应用中必须要考虑到的问题。目前经常采用硬件FPGA等来实现,该种实验方式具有处理速度快的特点,但是对系统的复杂度要求较高。

嵌入式微处理器具有实现简单,系统集成度高,体积小,易于移植等众多优点,因此有必要研发基于嵌入式微处理器的加密算法硬件设备,在此提出一种基于ARM处理器的3DES的硬件实现方法。

3DES算法原理

DES是美国国家标准局颁布的数据加密算法,作为世界范围内的公开加密标准已经使用了20多年。随着计算机处理速度的提高,DES算法面临着一些安全威胁,DES采用56位密钥,曾经有人用穷举搜索法对DES进行过密钥搜索攻击。

近年来也有人提出了差分和线性攻击方案,该方案的实施必须有超高速计算机的支持。为了增强DES算法应对差分或线性攻击的可能性,人们提出了一系列改进方案,采用增加密钥长度是一种可行的途径。

为了增加密钥的长度,可将分组密码进行级联,在不同的密钥作用下,连续多次对一组明文进行加密。其中,最有效的方法是使用三重DES加密,它可使加密密钥长度扩展到128位,在提高加密强度的同时,足以应付目前的各种攻击。

DES是一个分组加密算法,它以64位为分组对数据加密。64位的分组明文序列作为加密算法的输入,经过16轮加密得到64位的密文序列。加密的密钥为64位,实际长度为56位,DES算法的保密性取决于密钥。DES对64位的明文分组进行操作。

首先通过一个初始置换IP,将64位的明文分成各32位长的左半部分和右半部分,该初始置换只在16轮加密过程进行之前进行一次。在经过初始置换操作后,对得到的64位序列进行16轮加密运算,这些运算被称为函数f,在运算过程中,输入数据与密钥结合。经过16轮运算后,左、右两部分合在一起得到一个64位的输出序列,该序列再经过一个末尾置换IP-1,获得最终的加密结果。过程如图1所示。

在每一轮加密过程中,函数厂的运算包括以下四个部分:

首先进行密钥序列移位,从移位后的56位密钥序列中选出48位;

然后通过一个扩展置换将输入序列32位的右半部分扩展成48位,再与48位的轮密钥进行异或运算;

再者通过8个s盒将异或运算后获得的48位序列替代成一个32位序列;

最后对32位序列应用置换P进行置换变换,得到-厂的32位输出序列。将函数厂的输出与输入序列的左半部分进行异或运算后的结果作为新一轮加密过程输入序列的右半部分,当前输入序列的右半部分作为新一轮加密过程输入序列的左半部分。

上述过程重复操作16次,便实现了DES的16轮加密运算。

假设Bi是第i轮计算的结果,则Bi为一个64位的序列,Li和Ri分别是Bi的左半部分和右半部分,Ki是第i轮的48位密钥,且f是实现代换、置换及密钥异或等运算的函数,那么每一轮加密的具体过程为:

以上操作的详细过程如图2所示。

在3DES加密算法中,加密过程用两个不同的密钥K1和K2对一个分组消息进行三次DES加密。首先使用第一个密钥进行DES加密,然后使用第二个密钥对第一次的结果进行DES解密,最后使用第一个密钥对第二次的结果进行DES加密。

解密过程首先使用第一个密钥进行DES解密,然后使用第二个密钥对第一次的结果进行DES加密,最后再使用第一个密钥对第二次的结果进行DES解密。

DES算法的密钥长度是56位,三重DES算法的密钥长度是112位,加密强度显著增强,可以很好地应付各种攻击,目前尚没有可行的攻击方法,应用3DES的加密系统具有很大的实用价值。

本文为收集整理,文章部分观点不代表本站观点,如有侵权或其它问题请反馈客服。https://www.wgj7.com/cjwt/16341.html