为了实现对数字图像的有效保护,我们提出一种基于Hash函数和多混沌系统的图像加密算法。该图像加密算法通过像素置乱、灰度置乱及灰度扩散实现图像文件加密。

一、混沌系统

1、Lorenz混沌系统

本文在像素置乱阶段使用Lorenz混沌系统,它的动力学方程为:

当a=10,b=8/3,c=28时出现混沌吸引子,系统进入混沌状态,如图1(a)所示。Lorenz系统对初始条件是极其敏感的,两个误差仅为10.15的初始条件,随着运行时间的增加,运行轨迹

会出现极大的偏差,并且呈现无规则性。

2、 Logistic混沌系统

灰度置乱阶段采用Logistic系统产生随机序列,其原型为:

式中:xn映射变量,0≤xn≤1,μ——系统参数,0≤μ≤4。当3.5699456…≤μ≤4时,系统进入混沌状态。文中所采用的Logistic混沌系统中μ取为3.9999。图1(b)出示了当x0=0.123456781时的混沌实数序列图,从图中可以看出,序列呈现出一种近化随机的状态。

二、 图像文件加密方案

1、图像像素置乱

图像像素置乱的主要目的是为了有效地打乱像素位置。常用的像素置乱方法主要有两种,一是直接对图像的像素点坐标位置进行线性变换,如Arnold变换,幻方变换,3D猫映射,二是先对图像进行分块,然后再置乱,但此种方法的安全性不高。本文利用Hash表来实现像素位置的变换,置乱表由Hash函数产生,函数的基本描述为h(c,λ,d,s,L),其中C代表Lorenz混沌系统,λ是变换参数,d是采样步长,s是采样起始点,L是Hash表长度。

假设选择的图像大小为MxN,图像的置乱步骤为:

(1)由Lorenz混沌系统以及初始密钥产生混沌序列;

(2)根据Hash函数,h(c,λ,d,s,L)构造规则及混沌序列构造散列表h1,其中d1是h1的采样步长;

(3)根据Hash函数h(c,λ,d,s,L)构造规则及混沌序列构造散列表h2,其中d2是h2的采样步长;

(4)根据h1和h2先后对图像的行列进行变换。

2、图像灰度置乱

在现代加密体制中,置换和替代仍是加密体制的两个基本构造模块,单独的置换和替代也能达到一定的加密效果,但如果能两者兼顾则效果更好。在上节中我们利用Hash函数对像素的位置进行了置乱,但这并不能改变灰度值,加密图像和原图像仍具有相同的灰度统计直方图,因此必须对图像灰度进行替代,以抵抗攻击者的统计分析。由于图像灰度的组成元素是0~255的整数值,本文用一种类似初等密码中的多表代替密码对灰度数值进行置乱,使其不再保持原来的灰度值。

对大小为M×N的灰度图像,图像灰度置乱步骤为:

(1)根据初始条件x0由Logistic混沌系统生成一条长度为l的随机序列S,并将其变换为[0,255]之间的整数值。

(2)将图像的灰度矩阵按行优先拉伸成一维数组,然后与序列S中的值对应进行比特异或,得到序列S;

(3)把S按列优先还原成灰度矩阵。

若序列S的长度l

加密算法中像素灰度值的替代处理实际上也是灰度空间的置换,替代过程使灰度值相近的两个相邻像素,在经过处理后,灰度值相差很大,彻底打乱了相邻像素的灰度相关性。

3、像素灰度值的扩散

仅仅对图像进行像素和灰度的置乱容易受到选择明文的攻击,攻击者可以选择单个像素点的变化,而得到像素位置变化的对应关系,而扩散机制的引入则可以很好地避免这一弱点,良好的扩散机制不仅可以使明文的一位灰度值发生变化时能够迅速的引起其后的所有灰度值发生变化,有效地抵御差分攻击,而且还能起到很好的灰度置乱作用。为此,引入如下扩散公式:

式中:P(k)——待处理的像素值,c(k一1)——上一个处理过的像素的灰度值,D——扩散因子,x0——初始密钥面控制生成;N——灰度级。

4、图像文件加密和解密过程

根据以上分析,可得到图像文件加密的基本流程,如图2所示。

加密步骤描述如下:

设图像像素所表示的二维数组为G=(gi)M×N,其中M×N是图像的大小,gi为坐标(i,j)处的像素值。

(1)由Lorenz系统产生初始值,将明文图像按2—1节所示的方法进行像素置乱,置乱后输出图像为G’;

(2)由Logistic系统产生混沌序列并按2—2节的多表代替规则对G’进行灰度置乱,置乱后输出的图像为G”;

(3)对G”进行灰度扩散,输出即为密文图像;出于安全性的考虑可对(2),(3)两步重复多次。

解密过程与加密过程相似,其中扩散的逆变换公式为:

三、模拟实验及性能分析

1、实验结果

本文的实验平台为Matlab 7.0,选取256×256的Lena灰度图像进行实验。其中Lorenz系统的密钥(x0,λ,d,s)=(0.42,10的10次方,3,300),面为初始值。Logistic系统的初始值为0.12345678901234,随机序列S的长度l=2000。

加解密效果如图3所示,其中图3(a)为明文图像,图3(b)为加密后图像,图3(c)是Logistic系统密钥取为0.12345678901235时的解密图像,图3(d)为密钥正确时的解密图像。

2、统计分析

(1)灰度直方图

直方图是图像的重要统计特征,它直观地反映了数字图像的每一灰度级与该灰度级出现频率的对应关系。图4(a)是原始图像(图3(a))的像素灰度直方图,图4(b)则对应密文图像(图3(b))。根据仿真显示,密文与明文的直方图区别很大,密文的直方图分布非常均匀,表明该方案能够有效抵御基于像素值统计的攻击。

(2)相邻像素的相关性

由图像的特性可知,一幅图像中相邻像素间存在较大的相关性,这也使得攻击者经常利用统计分析的方法对图像进行密码分析,好的加密算法应当有效地打乱这种相关性。为此,可以借助概率论的相关系数来衡量相邻像素的相关性,相关系数定义如下:

式中:cov(x,y))——协方差,D(x) ——方差,E(x)——均值,xy——相邻像素的灰度值。

图5是通过仿真实验对明文和密文中水平、垂直和对角线方向相邻像素的相关性检测。从图中可以看出,明文的相邻像素的相关性很强,而密文则不同,不管是水平、垂直还是对角线方向分布都比较均匀,这说明密文有效地掩盖了图像的统计特征。

3、差分攻击

通常攻击者会通过图像的一点微小变化,比如只改变一个像素,来观察加密后图像的变化情况,进而发掘明密文之间的关系。为了测试一个像素的改变对整个密文图像的影响,引入如下两个量:像素变化率(NPCR)和归一化平均变化强度(UACI)。对于只有一个像毒声别的两幅密文图像C1和C2,C1(i,j)和C2(i,j)代表两幅图像(i,j)点的像素强度,D是一个和c1,c2同样大小的二值矩阵,若C1(i,j)≠C2(i,j),则D(i,j)=1,否则D(i,j)=0。

其中,W和H是C1,C2的大小。将明文图像中的第5个像素值为155改为156,仿真实验结果如图6所示,在参数不变的情况下,当迭代两次以后,NPCR≈1。两幅只有一位像素不同的

图像,随着加密次数的增加,密图变的几乎完全不同,原图的差别扩散到了密图的整个区域,因此可以增加迭代次数来提高加密的安全性,但同时加密的时间复杂度也会随之升高。

4、密钥空间及敏感性分析

(1)密钥空间

在像素置乱阶段,对Lorenz混沌初始条件,散列函数,以及参数见进行穷尽攻击是不可能的,假设对于一个M×N的256级的灰度图像,行变换序列和列变换序列分别有M!和N!种,因此,要加密一个大小为M×N且灰度级为256的图像,可用的初始序列和变换序列有M!×N!种情况。在灰度置乱阶段,由于Logistic混沌随机序列了的引入,当S的长度为L时,理论上有256L个不同的值,同时厶的取值可以是从1到图像向量拉伸的长度M×N,总的组合种类数为:

可见,若把像素置乱与灰度置乱结合起来的密钥空间按照目前的计算条件对其进行穷举攻击是根本不可能的。

(2)密钥敏感性

好的图像加密算法在加密过程中应对密钥非常敏感,密钥的一点细微变化都能引起密文的极大变化,这包括两方面含义:一是加密密钥的细微改变,应使两幅密文图像几乎完全不同;二是解密密钥的细微改变,其解密过程将失败。

仿真实验结果表明,当Logistic系统的初始密钥分别为0.12345678901234和0.12345678901235时,加密后的两幅图像中有99.26%的像素灰度值不相同,密钥的微小变化导致密文几乎完全不同。同样,在解密过程中,密钥的微小变化也会导致解密的失败,如图3,图3(a)为明文图像,图3(b)是初始密钥为0.12345678901234加密图像,图3(c)是解密密钥取为0.12345678901235时的解密图像,从两幅图像看,解密几乎完全失败。因此本文算法在加解密过程中都有良好的密钥敏感性。

小知识之扩散因子

扩散因子:这是一个用于评估期刊影响力的学术指标,显示总被引频次扩散的范围。具体意义为期刊当年每被引100次所涉及的期刊数。

扩散因子= 总被引频次涉及的期刊数×100/总被引频次

哈希加密matlab,图像加密算法之基于Hash函数和多混沌系统的加密相关推荐

  1. Matlab小波去噪——基于wden函数的去噪分析

    文章目录 一.问题描述 二.代码 问题1:原始信号加6分贝高斯白噪声 问题2:确定合适的小波基函数 问题3:确定最合适的阈值计算估计方法 问题4:确定合适的分解层数 问题5:实际信号去噪 问题6:对比 ...

  2. matlab仿真限幅发散,基于模糊控制的直流电机调速系统MATLAB仿真_贾东耀

    基于模糊控制的直流电机调速系统MATLAB 仿真 贾东耀,曾智刚 (广东工业大学,广州市 510090) 摘 要:采用Fuzzy-PI 控制策略进行直流电机的调速系统设计,它克服了简单模糊控制和传统P ...

  3. matlab 图像模板匹配,基于MATLAB模板匹配的车牌识别系统

    一.课题名称[Q1321814823] 基于MATLAB模板匹配的车牌识别系统 二.课题背景 随着汽车数量的增加,城市交通状况日益受到人们的重视,如何进行有效的交通管理更是成为了人们关注的焦点.针对此 ...

  4. matlab图像类论文,基于matlab图形图像处理技术毕设论文.doc

    基于matlab图形图像处理技术毕设论文 基于MATLAB图形图像处理技术 摘 要 本文提出了一种基于MATLAB的数字图像处理技术的设计,系统中包括了图像处理技术的各个方面,涵盖了图像处理领域的个别 ...

  5. matlab 混沌信号,基于五维混沌系统的图像加密方法

    大家都知道混沌信号作为加密信号源,可以应用于图像加密,文本文件加密,语音加密,系统加密等诸多领域,那么接下来,我给大家介绍一种基于五维混沌系统的图像加密方法,该方法不仅可以实现对图像加密,而且与其它加 ...

  6. 使用Hash函数和MAC产生伪随机数

    基于Hash函数的PRNG 流程非常类似于对称密码的CTR工作模式 算法的伪码如下 m = ⌈n/outlen⌉ data = V W = the null String for i = 1 to m ...

  7. 合宙Air105|CRYPTO|加密与解密|算法|RSA|HASH函数| BASE64|MD5|SHA1|SHA256|CRC|官方demo|学习(4):CRYPTO(加密与解密)

    基础资料 基于Air105开发板:Air105 - LuatOS 文档 上手:开发上手 - LuatOS 文档 探讨重点 对官方CRYPTO(加密与解密) 功能的复现,进行相关内容的学习及探讨. 实现 ...

  8. 混沌图像加密matlab,基于复合混沌系统的彩色图像加密算法及Matlab实现

    第27卷 第3期 湖 南 城 市 学 院 学 报 (自然科学版) Vol. 27 No.3 2018年5月 Journal of Hunan City University (Natural Scie ...

  9. 【图像加密】基于混沌系统进行灰度图像加密附Matlab代码

    1 简介 ​ 1 基于混沌系统的图像加密解密 Logistic混沌置乱,先不说有多复杂,其实很简单. Logistic函数是源于一个人口统计的动力学系统,其系统方程形式如下: **X(k+1) = u ...

  10. matlab 图像操作函数的详解

    转自博客:http://blog.163.com/fei_lai_feng/blog/static/9289962200991713415422/ 一. 读写图像文件 1. imread imread ...

最新文章

  1. motan源码分析二:使用spi机制进行类加载
  2. javascript遍历DOM结构和对象结构
  3. 砝码问题之一(回头发现貌似多重背包)
  4. 走出去广东谋定国际丰收节贸易会-林裕豪:从玉农业抓手
  5. 牛客国庆集训派对Day6
  6. MySQL中EXPLAIN详解
  7. lc滤波电路电感电容值选择_模拟电路中,电感的这些知识点你都清楚吗?
  8. tensorflow 获取checkpoint中的变量列表
  9. 韩国本土IP原生IP站群天堂W奥丁游戏香港站群CN2路线大带宽
  10. 边框给背景图css怎么写,使用css设置边框背景图片
  11. C# OpenCvSharp 连通区域最小衔接矩形+最小标注信息(minx,miny,Width,Height)
  12. php中理解print EOT分界符和echo EOT的用法区别
  13. 对Java中常见的四种I/O模型理解
  14. lua -- class
  15. 中国巡游帆船行业市场供需与战略研究报告
  16. Tyvj1474 打鼹鼠
  17. 关于新安装好的Ubuntu16.04如何安装有线网卡驱动
  18. wps怎么导入xml文件_《WPS表格怎么导入XML数据?》 如何将excel导入wps表格数据
  19. 企业直播风起:目睹聚焦产品,微赞拥抱生态
  20. 电子信息工程的就业方向是怎样的?

热门文章

  1. 华为OSN1500B故障应急处理
  2. 宝尚网上开户踏准板块轮动节奏的机会
  3. Photoshop CC 2019暂存盘不足无法打开
  4. 基于vue开发一个组件库
  5. arcgis海岸带_需科学划定海岸带基准地理边界
  6. Ferret 经度范围划定时的方向问题
  7. 【Windows】安装win10虚拟机
  8. (PMIC)全、半桥驱动器CSD95481RWJ PDF 规格
  9. 区块链开发入门学习线路图
  10. 论文答辩相关PPT:论文答辩模板及其它