图像加密算法之武警信息系统加密

混沌图像文件加密系统主要功能足完成对数字图像文件加密、解密处理,因此整个系统主要划分为图像文件密文接收模块、图像文件加密功能模垛、图像文件解密功能模块和图像密文发送模块。

各个功能模块相互之问的关系如图1所示。

图像密文接收模块:向本系统输入待加解密的数字图像,可以直接从网络中直接获取,也可以用打开图像文件的方式获取,获取后进行一定的预处理。如果获得的数字图像足待加密的明文图像,则系统调用加密模块进行加密;如果获得的是密文图像,则调用解密模块进行解密。

图像文件加密模块:对接收的数字图像文件加密处理,并判断图像是否要求进行压缩处理,从而选择不同的加密方式。这是本系统的核心功能部分。

图像文件解密模块:对接收的数字图像进行解密,同样可根据不同的罔像格式选择是否要求进行解压缩处理。

图像密文文件发送模块:对加密处理后的图像进行直接存储或者通过网络进行发送。

二、混沌序列

混沌(chaos)定义:设X为一个度量空间,f:X→X称为在X上足混沌的,如果:

(1)f对初始条件的敏感依赖性:即存在ξ>0对任何X∈X和善的任何邻域N。存在Y∈N和自然数n>0.使得d(fn(x),fn(y))>ξ。

(2)f是拓扑传递的,即对任何一对开集U,V_X。存在k>0,使得fk(U)∩v≠φ。

(3)周期点在V中稠密。

目前被广泛研究的一维混沌系统是Logistic映射。

Logistic迭代公式如下:

其中λ∈[O,2]。

LogisLic系统的统计特性:

概率密度函数:

(1)均值:

式中:

从以上特性可以知道.Logistic序列的统计特性与白噪声一致。

三、JPEG图像的混沌加密算法

1、图像加密算法比较

(1)通用加密算法

(2)基于矩阵变换、象素置换的图像加密算法

以Amold变换和按幻方做图像象寨置乱变换为代表,这类算法把静止图像看作是平面区域上的二元连续函数:z=f(x,y),0≤x≤Lx;0≤y≤_Ly。

对区域中任意的点(x,y).则f(x,y)代表图像在这一点的灰度值,与图像存这一点的亮度相对应。并且图像的亮度值是有限的,因而函数z=f(x,y)也是有界的。在图像数字化之后.z=f(x,y)则相应于一个矩阵,矩阵的元素所在的行与列就是图像显示在计算机屏幕上诸象素点的坐标,元素的数值就是该象素的灰度(通常有256等级,用整数0至255表示)。矩阵的初等变换可以将一幅图像变换成另一幅图像,其缺点足象裹置乱作用较差,保密性不高。

(3)基于混沌序列的图像置乱算法

基于混沌序列的图像置乱算法是利用混沌系统生成一个混沌序列,按行或列将序列生成一个置乱矩阵P。根据置乱算法,利用矩阵P对图像的明文矩阵A进行置乱,置乱后得到随机排列的密文矩阵A'。

以上几种图像加密方法没有充分考虑压缩图像本身的性质,压缩、加密效果不理想,因此,本文以JPEG压缩图像为例,把混沌系统与图像压缩方法相结合,提出了一种新的加密算法。

2、基于JPEG图像压缩方法的混沌加密算法

(1)JPEG图像压缩方法

首先将图像分为8×8的像素块,根据从左到右,从上到下的光栅扫描方式进行排序;然后利用DCT对8×8的像素块进行计算,得到64个DCT系数,用均匀量化表逐一进行标量量化;接着根据“Z”形扫描方式对块中的系数排序,得到的比特流通过行顺序对编码生成中问的符号序列;最后将这些符号序列经过Huffman编码用于传输或存储。

(2)加密算法原理

将原图像分成8×8的块,利用混沌置乱矩阵进行置乱,DCT变换后使低频分最都集中在左上角,高频分量分布在右下角(DCT变换实际上是空间域的低通滤波器)。均匀量化后进行“Z”形扫描,扫描的比特流用行顺序编码生成中间符号序列,并对其进行Huffmari编码得到由“0”和“1”组成的经过压缩的数据,此时利用混沌灰度序列与得到的序列进行位异或操作,生成的新序列看起来是随机的,保存为JPFG文件。JPEG图像压缩加密过程如图2所示:

压缩前在空域内进行混沌置乱,不会破坏DCT系数的概率分布函数,也就不会影响图像压缩的效率。在压缩加密过程中,DCT变换使低频分量集中在左上角,而高频分量集中在右下角,忽略图像中不包含重要信息的高频分量,可以达到压缩的目的。

经过“Z"扫描后,序列行程中连续“0”的个数增加,提高了压缩效率。在Huffnun编码后,将编码后的序列与混沌系统生成的灰度序列进行位异或操作,实现对数据文件加密。这样将混沌加密过程与JPEG图像的压缩过程相结合,既不影响压缩效愚,又实现了对图像文件加密。

(3)密钥生成

针对Logistic映射迭代初值Xo、YO∈(0,1)的要求,把用户选取的不同形式的密钥敞列映射为128位值,每4位组成十进制数与十作模运算,得到32个十进制数字,截取前后两部分,对于每个部分,分别将每位数字作为在(0,1)区间的双精度实数的一位,正好生成Logislic映射的两个迭代初值。

(4)置乱矩阵及灰度变换序列

利用密钥值Xo、Y0,我们采用Logishc系统分别生成实数值混沌序列Xk和Yk(不使用序列的初始段部分),然后由Xk分别生成全局置乱变换矩阵P。

(5)置乱步骤

a、确定置换块的大小为8×8。

b、生成置换矩阵Po设图像I大小为M×N,通过K得到置换矩阵Pm/8,n/8,其中矩阵中的元素为l到(M/8)×(N/8)中互不袖同元素的杂乱排列。

c、排列图像矩阵。对图像进行分块,块的大小为8x8.逐块进行编号,将各块按行排列成有序矩阵IB。即IBij=j+(Z-1)×(N/8)。

d、开始置换。根据置换规则将幽像矩阵置乱,设IP为霞乱变换后的图像,则图像IP的第i行第j列象素块对应为原图像I的第m行第n列的像素块,其中m、n由等式慨=Pwn决定。

(6)加密算法实现

a、选择任意长度的字符串作为密钥,利用单向Hash函数(MD5)生成Logistic函数所需要的参数X0、Yo。

b、用X0、Yo生成Logistic混沌序列Xk、Yk。由Xk生成置乱矩阵P。

c、将图像I进行8x8分块,利用矩阵P对I进行置乱,得矩阵IP;

d、对矩阵IP进行8x8的DCT变换,用JPEG量化表对其量化。

e、扫描行程编码后,进行Huffman编码得序列Ik。

f、用混沌序列Yk与扫描后得到的序列Ik进行位异或操作,得到加密后的序列I'k。

g、保存JPEG图像。

(7)解密算法实现

a、获得JPEG图像。

b、输入密钥,用单向Hash函数生成Logistic函数所需要的参数X0、Yo。

c、用x0、Yo生成Logistic混沌序列x0、Yo,Xk生成置乱矩阵P。

d、用混沌序列yk与扫描后得到的序列I'k。进行位异或操作,得到加密后的序列I'k。

e、对k进行解压缩得到按8x8分块的图像IP。

f、利用矩阵P对图像IP进行反置乱,即可得元图像I。

四、实验结果与分析

利用VisualC++编程,实现了图像压缩、加密和解密、解压缩的算法a对Lena图(如图3-a)进行实验,选择密钥字符半为“abcdefghi”,经过MD5算法得Logistic函数的初值,对图像文件进行压缩加密,得到图像文件(3-b)。利用相同的密钥字符串进行解密,解密图像文件如图(3-c)。选择解密字符串“abcdefgi”进行解密,错误密钥解密如图(3-d)。不能还原为原图像,这是因为利用MD5散列函数生成Ingistic系统的迭代初位时,输入字符串的细微改动都会体现到所生成的128位数值的每一位,而混沌系统本身具有很强的初始条件敏感性,迭代初值的细微差异将会导致生成的混沌序列完全不同,因此错误密钥解密后的图像杂乱无序,有效地抵抗了密码分析方法的攻击。

小知识之幻方

幻方(MagicSquare)是一种将数字安排在正方形格子中,使每行、列和对角线上的数字和都相等的方法。

欢迎访问夏冰加密软件技术博客,您的数据安全知识库和加密技术资讯平台。我们致力于提供最新的加密技术动态、深入的行业资讯以及实用的软件使用技巧,帮助您在数字时代中保护好每一比特的数据。

THE END
1.系统功能模块图Word模板下载编号qvxyronw本作品内容为系统功能模块图, 格式为 docx, 大小1 MB, 页数为2, 请使用软件Word(2010)打开, 作品中主体文字及图片可替换修改,文字修改可直接点击文本框进行编辑,图片更改可选中图片后单击鼠标右键选择更换图片,也可根据自身需求增加和删除作品中的内容, 源文件无水印, 欢迎使用熊猫办公。 https://www.tukuppt.com/muban/qvxyronw.html
2.系统功能模块图.docx系统功能模块图.docx,PAGE PAGE 1 系统功能模块图 需求描述: 一.基本信息管理模块 用户管理:包含管理员、教师、学生及教务员四个角色。 实验室信息:包含全校各个实验室的一些基本信息:实验室功能介绍、实验室名称、设备配置清单、实验室座位数、实验室课表、实验室科研https://max.book118.com/html/2022/0526/8036024121004103.shtm
3.实验室信息管理系统(LIMS)核心功能模块设计思维导图每个检测机构必有它的核心工作和核心职能,这也是LIMS系统实施的重点,真正好的LIMS系统是关心核心工作和核心职能的系统。 检测业务管理 客户管理 检测申请 业务登记/合同登记 报价收费管理 任务审核/合同评审 任务分配 样品管理 感官评定(需要时) 制备和保存 http://www.360doc.com/content/20/1012/13/71790445_940060687.shtml
4.如何绘制功能模块的数据流图在梳理业务的时候,我们往往需要对模块进行梳理。比如整理需求分析-结构化分析方法,需要涉及到数据流图。比如一个系统里有一个大的查询订单模块,里面细分了各种订单的查询模块。如何绘制数据流程(一个功能模块的数据流图) 1.基本概念 结构化分析方法:强调开发方法的结构合理性及开发软件的结构合理性的软件开发方法 ...https://www.jianshu.com/p/5df0ccd71654
5.高清液晶电视LCD屏检测仪的设计AET图2是LCD屏检测仪的系统结构图,系统功能主要由核心器件FPGA实现。 2.2 系统模块 从图2可以看到,本系统主要包括时钟信号发生模块、VGA同步信号产生模块、VGA显示控制模块、外部输入处理模块和工作模式显示模块。时钟发生模块用于产生不同分辨率下扫描所需的像素时钟;VGA同步信号产生模块用于产生输出的行同步、帧同步信号;VG...http://www.chinaaet.com/article/151026
1.系统功能结构图文章浏览阅读5.4w次,点赞21次,收藏105次。1、系统前台功能结构图2、系统后台功能结构图_系统功能结构图https://blog.csdn.net/you23hai45/article/details/9259787
2.系统功能模块图流程图模板系统功能模块图是一种用于描述系统内部各个功能模块之间关系的图表。它通常包括一个矩形框,里面写明模块名称和功能描述,以及与其他模块之间的连接线,表示它们之间的关系。这种图表可以帮助我们更好地理解系统的结构和运行方式,从而更好地设计和实现系统。 希望这能回答您的问题。如果您还有其他问题,请随时问我。 发布...https://processon.com/view/625290711efad407891cb8da
3.系统功能模块图怎么画:详细指南和技巧分享本文将全面解析如何绘制系统功能模块图,这是软件设计和系统架构过程中的关键步骤。功能模块图帮助开发者和设计师清晰地展示系统的各个部分以及它们之间的关系。本文将探讨功能模块图的基本概念、绘制步骤、使用的工具以及如何确保图表清晰、准确。本文适合软件开发者、系统架构师以及任何对软件设计流程感兴趣的读者。 https://www.yingxiongyun.com/news/post/13985.html
4.python实现外卖信息管理系统python3、系统功能模块图 二、概念结构设计 系统整体的E-R模型: 三、逻辑结构设计 本系统所用到的表结构以及其联系: 1、店铺基本信息foodshop表 主键:shop_name 2、客服基本信息server表 主键:server_id 外键:shopname_shop_name 参考表:shopname 参考属性:shop_name ...https://www.jb51.net/article/132627.htm
5.详情项目公示执行层接受处理层的指令并进行解析,生成电机控制信号,并实现实时反馈;同时借助各传感器模块对环境信息加以收集,便于执行单元完成移动和采摘的工作。 图2 系统架构图 (3)主要功能模块 果实识别和定位系统:主要由双目摄像机、USB接口和主控制器构成。选用深度相机获取深度信息,采取“眼在手”的相机安装方式实现机械臂精确...http://nausrt.njau.edu.cn/CXCY/NJAU/Item/Detail/e6031615-130c-48b9-98ae-1da41b1de62d
6.Python开发系统实战项目:人脸识别门禁监控系统3.1 人脸识别监控系统 3.2 眨眼活体检测 1 人脸识别应用所涉及到的功能模块 摄像头调用 脸部图像识别和处理 活体检测 多线程的应用 定时器的调用 2 人脸识别的基本过程 人脸的 68 个基本特征点位置以及顺序。判断 68 个特征点在图像上面是否存在、是否完整; ...https://cloud.tencent.com/developer/article/1929254