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

基于混沌二值密钥的格雷码分块置乱图像加密算法

更新时间:2022-10-28 15:43:49


本文简介:目前已有研究表明,一些单纯建立在混沌系统上的置乱方法已有了破解方法,因而必须结合其他置乱方法来提高混沌动力系统的图像置乱性能。鉴于此,我们提出了一种基于混沌二值密钥的、依据格雷码表分块置乱的数字图像加密算法。该方法首先将图像分成几幅子图相互均匀散布(称为“洗牌”),然后再将各子图按照格雷码表顺序进行分段置乱,置乱次数由参数设置。一、混沌系统 目前,绝大多数文献中使用的混沌动力系统是一维离散时间非线

基于混沌二值密钥的格雷码分块置乱图像加密算法

目前已有研究表明,一些单纯建立在混沌系统上的置乱方法已有了破解方法,因而必须结合其他置乱方法来提高混沌动力系统的图像置乱性能。鉴于此,我们提出了一种基于混沌二值密钥的、依据格雷码表分块置乱的数字图像加密算法。该方法首先将图像分成几幅子图相互均匀散布(称为“洗牌”),然后再将各子图按照格雷码表顺序进行分段置乱,置乱次数由参数设置。

一、混沌系统 

目前,绝大多数文献中使用的混沌动力系统是一维离散时间非线性动力系统Lohistic映射和k阶Chebyshev映射。

(1)Lohistic映射

Lohistic动力系统可谓目前最简单、最被广泛研究和应用的混沌动力系统,其方程定义如下:

基于混沌二值密钥的格雷码分块置乱图像加密算法

其中,r为分支参数,当O≤r≤3. 569 945 972...时,该动力系统因从稳定状态到分叉而产生倍周期;当3. 569 945 972...<r≤4时,该动力系统进入混沌状态。

通过简单变量替换,式(1)可以定义到(-1,1)区间:

基于混沌二值密钥的格雷码分块置乱图像加密算法

(2)k阶Chebyshev映射

k阶Chebyshev映射是另一类简单的以阶数为参数的映射,其定义如下:

基于混沌二值密钥的格雷码分块置乱图像加密算法

在r=2的满射条件下,式(1)和式(4)是拓扑共轭的,即它们不仅可以被视为动力状态相同的系统,而且其生成序列的概率密度也相同,即:

基于混沌二值密钥的格雷码分块置乱图像加密算法

从式(4)可以看出,由于Logistic和Chebyshev映射生成的混沌序列具有遍历性,同时它们还具有δ—like型自相关函数和零的互相关函数,并且具有初值敏感性,因而可以提供数量众多、非相关、类随机而又可确定、可再生的混沌序列。其非常大的周期性和优良的随机性,不仅非常适合产生符合安全要求的序列密码,而且可以提供数量众多的密钥,因而可以很好地被应用于各种混沌保密通信系统中。

本文在具体生成混沌二值密钥时采用共用初始密钥,由Logistic和Chebyshev映射交替或迭代生成二进制密钥流的方法。由于Logistic映射和hebyshev映射在表达式结构上相异程度很大,所以其动力特征退化或平凡密钥具有相似性的概率极小,因而可产生质量较高的混沌二值密钥流。

二、数字图像加密算法

1、 格雷码表设计

格雷码与普通二进制代码相比的最大特点是其相邻两个代码之间只有一位数据发生变化,即只有一位码元不同(此特点通常称作“逻辑相邻性”)。有资料曾提出了利用FASS曲线和Hilbert曲线遍历图像中的所有点以生成一幅新的“杂乱’’图像的图像置乱加密思想。该加密算法利用了这些曲线的充满空间( Space- Fill-ing)、非自交(Sclf-Aroiding)、自相似(Sclf-Sirnilar)等特性,多次置乱的加密效果良好,但要求设计人员有坚实的数学功底,计算复杂度也相对较高。而依靠数字逻辑的基本工具——卡诺图(Karnaugh Map)的帮助,设计3位、4位及多位格雷码表无论对设计人员还是计算机软硬件实现都是非常容易的。

基于混沌二值密钥的格雷码分块置乱图像加密算法

上图所示即为依据4位卡诺图,从不同点(即算法中的‘种子’)切人生成一张格雷码表(表1)的实例。

基于混沌二值密钥的格雷码分块置乱图像加密算法实际上,依据卡诺图的性质,4位卡诺图中任一点(即‘种子’)有四个相邻码,因而可有四种格雷码排列顺序;5位卡诺图中任一点(即‘种子’)有五个相邻码,因而可有五种格雷码排列顺序。依此类推可知:

n位二进制数的格雷码排列方式共有基于混沌二值密钥的格雷码分块置乱图像加密算法种,每一种对应一张格雷码置乱码表;而且,随着n的增加,数据流分段划分越小,置乱码表越复杂,加密效果越好,安全性越高。由于本加密算法是对称加密算法,双方只要约定了相同的码表即可进行正确的加解密信息传输。该码表亦可依据密钥随机生成和定期更换,以更好地提高安全性。

2、总体算法描述

如前所述,数字图像的置乱一般可以在其位置空间、色彩空间或频率空间上进行,置乱的目的是将图像像素的位置或像素的颜色“打乱”,将原始图像变换成一个杂乱无章的新图像。

本算法是在图像空间位置上进行的完全加密算法,适用于各种索引图像、灰度图像和真彩图像文件加密。若考虑将图像数据矩阵先与混沌二值密钥进行按位异或加密,则可更好地提高抵抗已知明文攻击的能力。

(1)加密算法实现

设被置乱图像大小为2m X 2n,m、z∈N。

Step l输入参数:输入原始待加密图像文件名)inFileName)、加密后图像文件输出名) outFileName)、Logistic混沌映射分支参数)r)、Chebyshev混沌映射阶数(k)、加密密钥) x0)、图像分块数(k),加密轮数(mc)和所取格雷码位数(nc)。

Step 2生成长度为N的混沌二值密钥序列L:根据输入参数,由Logistic映射和Chebyshev映射相互迭代生成混沌实值序列{lk,k=1,2,3,…,N},生成过程中Chebyshev映射的输出取绝对值,根据阈值法(如设r=0.5,若lk≥0.5,lk=1,否则lk=0)将实值序列转换成二值密钥序列{lk,k=1,2,3,…,N}。若图像分块数、加密轮数和格雷码位数较小,序列长度N=)4+kc×nc),每轮密钥长度mcLen=4+kc×nc,如当kc=4,nc=4,mc=10时,混沌二值密钥序列长度N=)4+4×4)× 10=200,每轮密钥长度mclen=20,当这些参数数值较大时,如加密轮数mc= 30,此时可取固定长度N为128、256或512等等。

Step 3将原图像分块进行均匀散布(即“洗牌”):

a、首先得到文件名为inFileName的图像的句柄(h)(CData图像数据矩阵y)。

b、下面以k=4为例讲述图像分块散布过程:

①将y等分为四幅子冈,将这些子图按左上,左下、右上、右下四个方向分别标记为Pl、P2、P3、P4。

②从本轮密钥的前四位提取出散布种子zi,如zi='0101'等。

③从P1、P2、P3、P4中两两选取子图相互进行均匀散布,则共有P4= 24种,从中约定16种方式;如=‘0000’,P1散布到P2中,P3散布到P4中;i=‘oooi’,P1散布到P2中,P4散布到P3

中,等等。“散布”操作可用下式描述:将一个子图P=(plk)m×n均匀散布到另一个子图像Q=(plk)m×n中去,即Fi,j=基于混沌二值密钥的格雷码分块置乱图像加密算法,F=(f,ij)m×2n为置乱后图像,kc>4的散布过程可参照kc=4的过程,唯一的区别是约定从砖:p=(kc)!中选取16种散布方式。

Step 4对均匀散布后的各子图进行格雷码表分段置乱:

a、将均匀散布后的图像再分成kc一幅子图。

b、将每幅子图分成2w段,按照上节中所述nc位格雷码表进行分段置乱(为不占用计算机内存空间,nc位格雷码表依据约定参数随机生成)。每帽子图的置乱切人点(即“种子”)从本轮密钥的第5~kc ×nc位每nc位依次选取。

Step5重复Step3和Step4,直至完成mc轮加密过程。

Step6显示加密后图像,将加密图像保存为文件,加密过程结束。

(2)解密算法实现

由于是对称算法,用户输入正确的解密密钥)jx0)后,将加密算法逆向运算,即可获得解密图像。加解密流程如图所示。

基于混沌二值密钥的格雷码分块置乱图像加密算法

小知识之格雷码

格雷码是一种绝对编码方式,典型格雷码是一种具有反射特性和循环特性的单步自补码,它的循环、单步特性消除了随机取数时出现重大误差的可能,它的反射、自补特性使得求反非常方便。格雷码属于可靠性编码,是一种错误最小化的编码方式,因为,虽然自然二进制码可以直接由数/模转换器转换成模拟信号,但在某些情况,例如从十进制的3转换为4时二进制码的每一位都要变,能使数字电路产生很大的尖峰电流脉冲。

立即下载试用

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