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

基于Logistic映射的彩色图像加密算法设计实现

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


本文简介:由于彩色图像数据量过大,在数字图像处理中通常都要进行压缩。对于需压缩的图像而言,由于置乱变换破坏了图像像素之间的相关性,会使压缩的效果变差。对于JPEG彩色图像,其数据压缩算法是在频域进行的,我们如果将频域加密算法与压缩算法结合进行,就不会增加太多的计算量。但对JPEG而言,如果在频域进行置乱变换,会破坏DCT系数的概率分布函数,从而使得Huffman编码无法按最优的方式使用,使压缩效率大大降低。

基于Logistic映射的彩色图像加密算法设计实现

由于彩色图像数据量过大,在数字图像处理中通常都要进行压缩。对于需压缩的图像而言,由于置乱变换破坏了图像像素之间的相关性,会使压缩的效果变差。对于JPEG彩色图像,其数据压缩算法是在频域进行的,我们如果将频域加密算法与压缩算法结合进行,就不会增加太多的计算量。但对JPEG而言,如果在频域进行置乱变换,会破坏DCT系数的概率分布函数,从而使得Huffman编码无法按最优的方式使用,使压缩效率大大降低。为此,我们提出了基于JPEG压缩的频域加密算法。

一、基于Logistic映射的彩色图像加密算法原理

本加密频域算法使用Logistic映射来产生混沌序列。先用单向散列函数生成Logistic映射的两个初始值,用两个初始值进行混沌迭代产生两个混沌序列,然后按照一定的算法生成两个变换矩阵实现对彩色图像的频域加密。

二、基于Logistic映射的彩色图像加密算法设计

1、密钥生成

本加密算法利用单向散列函数SHA1来生成Logistic映射迭代初始值。SHA1函数是由美国国家标准和技术局和美国国家安全局设计的与DSS一起使用的安全散列算法,并作为安全散列标准(SHS)的联邦信息处理标准(FIPS)而公布,SHA1是SHA的修订版。该算法可将一定长度的任意输入消息压缩输出为固定的20字节。到目前为止,SHA1被认为是一种安全的算法。

在本加密算法中,需要两个Logistic初值x0和y0,由于SHA1的输出为20字节,我们将这20字节截取为两部分,前10字节生成x0,后10字节生成y0,并且使x0、y0(-1,1)。其中,x0、y0的生成方法可由使用者协商决定,本算法为简便起见,用每字节对10取模运算产生1位十进制小数,10字节共产生10位小数,因此本算法的精确度为10-10。

2、变换矩阵的生成

此加密算法是在彩色图像的JPEG压缩过程中进行的,而在JPEG压缩中,处理的块单位为8×8,因此本算法中变换矩阵的大小设计为8×8。我们需要两种变换矩阵,一种是符号矩阵S[1],一种是数值变换矩阵G。

(1)符号矩阵S的生成

符号矩阵S用于减少在频域加密过程中对DCT系数概率分布函数的破坏,产生方法为:用x0生成混沌实值序列xk,定义一个阈值函数基于Logistic映射的彩色图像加密算法设计实现,xk通过r1(x)生成混沌二值序列xk',将xk'中每1位构成1个矩阵元素,用来构造出符号矩阵S(8×8)。

(2)数值变换矩阵G的生成

用y0生成混沌实值序列yk,定义一个阈值函数基于Logistic映射的彩色图像加密算法设计实现,yk通过r1(y)生成混沌二值序列yk',将yk'中每8位构成1个矩阵元素,用来构造出数值变换矩阵G(8×8)。

三、基于Logistic映射的彩色图像加密算法实现

1、加密算法实现

Step1:输入待加密的彩色图像IM×N。

Step2:择取任意的字符串作为密钥,利用单向散列函数SHA1生成Logistic映射所需要的初始值x0、y0,输入Logistic映射的参数密钥。

Step3:用x0、y0生成混沌序列xk、yk(不使用序列的初始段部分),xk、yk分别经过阈值函数r1(x)、r1(y)的运算构造出符号矩阵Sij和数值变换矩阵Gij,其中,Sij、Gij皆为8×8矩

阵(i=1,2,M/8,j=1,2,N/8)。

Step4:将图像IM×N进行8×8_DCT变换,用JPEG量化表对其进行量化。

Step5:用符号矩阵Sij对相应的DCT块进行点乘法,改变部分DCT系数值的符号。

Step6:用数值变换矩阵Gij对相应的DCT块的每一元素的绝对值进行位异或运算,改变DCT系数量化值。

Step7:完成JPEG编码过程,生成频域加密后的JPEG图像。

2、解密算法实现

在JPEG解压缩过程中,用户输入正确的密钥后,将加密算法逆向运算,即可获得解密图像。

四、实验仿真

利用MATLAB_6.5来实现算法。对原始图像(512×512像素)文件加密实验,见图1。

基于Logistic映射的彩色图像加密算法设计实现任意选取密钥字符串为“abcd128”,μ=2,为了增强生成混沌序列的安全性,我们除去序列的初始段,使Logistic方程预先迭代n=10000次。

加密结果如图2所示。

基于Logistic映射的彩色图像加密算法设计实现

五、安全性分析

1、随机性测试

本算法主要是采用混沌映射产生的二值序列来进行加密运算,二值序列的随机性对整个算法安全性起着关键作用,我们使用NIST-FIPS-140-2标准来对本算法生成的二值序列进行随机性检验。

经过多次测试,结果如表1、2所示。

基于Logistic映射的彩色图像加密算法设计实现

由表1和2可知,本算法的二值混沌序列顺利通过了FIPS-140-2的4个测试,具备良好的随机性。

2、保密性测试

本加密算法使用符号矩阵S来改变DCT系数值符号,使用数值变换矩阵G来改变DCT系数量化值,从密码学角度来讲加强了密钥的扩散和混乱,提高了算法的安全强度。通过叠加混沌特性,加密图像在视觉上发生了色彩变化,图像更难读懂。在试验中,当选择错误的解密字符串“abcd129”进行解密时,生成如图3的错误解密图。

基于Logistic映射的彩色图像加密算法设计实现根本不能还原成原图像,这是因为利用SHA1散列函数生成Logistic方程的迭代初值时,输入字符串的细微改动都会体现到所生成的迭代初值中,而混沌系统本身具有极强的初始条件敏感性,迭代初值的细微差异将会导致生成的混沌序列完全不同。图4是参数的偏差为10-10时的错误解密图像。

基于Logistic映射的彩色图像加密算法设计实现

3、抗攻击测试

图5为加密图像经JPEG压缩为原大小20%后的解密图像,图6为加密图像受到10%强度的高斯噪声干扰后的解密图像,可以看出,经过一定压缩处理、噪声干扰的解密图像效果较好,具有较强的抗攻击能力。

基于Logistic映射的彩色图像加密算法设计实现

小知识之NIST-FIPS-140-2

FIPS标准是美国法律强制实施的一项标准,在加拿大也得到非常严格的实施,目前正在由ISO审批成为一项国际标准。FIPS 140-2作为一项重要的第三方认证基准,适用于各种加密产品,正在世界范围内得到广泛的认可。

立即下载试用

基于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/16310.html