APP下载

浅谈图像加密系统的设计

2021-01-13孟令国

消费电子 2021年12期
关键词:泄露数字图像安全

孟令国

【关键词】数字图像;安全;泄露;篡改;Rijndael 算法

(一)研究背景及意义

21世纪的今天“Digitizing”、“Informatization”不断发展,并逐渐深入到人们的生活中。数字图像的普及应运而生,它以快速、便捷等优势深受人们的喜爱,也是人们沟通交流不可或缺的一部分。运用频率的提升人们,也关心其安全性[1]。

图像数据的可靠安全处理是当前研究的重要方向之一,它具有保证图像信息的安全、拓展加密技术的研究领域等意义。

(二)技术算法

1、Rijndael算法的详细描述

(1)算法简介

Rijndael算法是美国政府取代早期的数据加密标准而使用的标准加密算法。它是基于置换和代替的,主要优势便是允许数据区块以及密钥的长度独立变化。

2、伪随机数

(1)动力系统生成伪随机数序列

伪随机数是密码学中最重要的一项技术,它是密码系统安全性的重要保障。混沌序列便是伪随机数的产物[2]。混沌序列产生公式:

(2) 二进制混沌伪随机序列

表达式: = f( )

非周期、不收敛、非线性是改随机数列的特点,选取初始值,通过反复迭代产生混沌序列 ,在通过f( )产生二进制混沌伪随机序列做密钥。

(一)数字图像置乱

随着电脑、智能手机的普及,越来越多的人选择在线互动,随之而生的便是图像的安全性和有效性得不到全面保障,因为图像信息的泄露导致巨大损失的事情比比皆是。

通过结合图像加密和图像隐藏生成了两种解决方案:图像置乱处理;信息隐藏和伪装。图像置乱变换是通过改变像素的位置或颜色而形成的一种保护技术。

图像置乱方法主要有三种[3]:

1、基于Arnold变换的置乱方法;

2、用分形图形的方法填充空间曲线;

3、运用数学知识和奇异现象。

(二)基于Rijndael的图像置乱算法分析

数字矩阵是人们常用的方法之一,矩阵的数值即为灰度值。本结采用的是基于Rijndael的图像置乱算法。

该算法主要由三部分组成:

(1)通过伪随机数发生器实现灰度值的变换

(2)S-盒变换

(3)行位移和列混合

1、基于Rijndael算法的图像置乱算法描述

step1:取出前4行的种子密钥,按字节与待加密图像子块中的像素异或得到新的像素。

Step2:利用查表进行S-盒变换;

step3:行置换,将矩阵中的行按照不同的偏移量进行左循环移位。

step4:列混乱,将矩阵中每个列上的像素看作为GF(28)上的3次多项式的系数,进行运算,计算出新的像素值

step5:按顺序取出像素灰度值

step6:回到step1,进行多次闭环加密。

2、置乱算法算例

本小结通过Aradar图像為例,说明Rijnael算法的有效性[4]。

step1:通过伪随机数得到新的像素;

step2:利用查表进行S-盒变换,得到新的像素灰度值;

step3:行置换,行进行移位;

step4:在列置换中,计算出新的像素灰度值;

step5:像素灰度值与轮密钥异或;

step6:回到step3,实现闭环加密。

最后得到置乱后的图像置乱算法算例如图1所示:

(三)实验结果分析

通过以上比较我们不难得出这样的结论:轮变换部分是整个算法中耗时最多的。这也是算法优化的重点,而S-盒运算和列混合运算有非平凡的代数运算,因此值得考虑它们的快速实现。

(1)S-盒运算/逆S-盒运算可以用两个表来实现,而且查表法非常有效,还能抗定时分析攻击。

(2)在列混合运算中通过查表的方式,不仅很快,而且还能够减少定时分析攻击的危险。

解密矩阵等于加密矩阵和一个矩阵的相乘。

三、彩色图像加密

(一)图像加密算法

1、关于位图文件的数据结构

通过Windows系统运行该加密系统,我们必须明白一点,即图像显示时必须转换为DIB或者DDB位图。文件头、位图信息和位图像素数据,组成了位图文件,以下便依次介绍这三部分。

(1)位图文件头:文件头的主要功能是识别位图文件,该部分包含了文件件类型和大小等信息

(2)位图信息:内存的分配、调色板信息的设置、像素值的读取都是由位图信息所决定的。

(3)位图数据:位图数据是位图的主体部分,位图上的每一个点都表示了一个像素值,位图的大小和颜色决定了位图阵列的大小。

2、基于Rijndael算法和混沌序列的图像置乱算法描述

step1:按顺序取待加密图像中的像素;

step2:利用查表进行S-盒变换;

step3:用伪随机数发生器生成一个序列;

step4:将图像的每列像素依次向下循环移动位置;

step5:回到step1,实现多次闭环加密。

四、图像加密系统的实现

(一)系统的功能目标

本系统的主要功能便是对图像进行加密保护,它也是本系统最重要的功能。除此外,考虑到系统的友好性,力求系统用户界面操作简单。同时,考虑的后期需求完善和拓展,要求本系统具有一定的可扩展性。作为一个图像安全加密系统,系统本身的安全性也要可靠。图像形式多样,系统应支持多种图像形式。

(二)原型系统总体功能本系统包括以下几个部分:

(1)输入/输出接口单元

(2)伪随机数发生器

(3)加密/解密单元④图像文件显示

對于整理框架结构的设计是系统研究中不可获取的一步,也是非常重要的一步。在这一步要确定系统的模块组成、模块间的联系。又要考虑到每个模块的独立性,力求做到“高内聚,低耦合”的一款系统。

根据前期的研究,分别设置了4个子模块:接口模块;伪随机数发生器模块;加解密运算模块;图像文件显示模块。

整个系统的总体框图如图2所示:

(三)原型系统功能分析

借助于面向对象编程方法中的继承机制设计了Rijndael类的派生类Rijnd ,用于实现基于Rijndael和混沌序列的图像加密算法。

Rijnd类的方法有以下几种分类:

(1)像素值变换:继承父类Rijndael中定义的有关对像素值异或的方法AddRoundKey()和重新定义了密钥扩展的方法KeyExpansion()。

(2)像素值替代:继承父类Rij n d a e l中的方法BuildSbox()和BuildInvSbox ()来初始化替换表Sbox[][]和iSbox[][];SubBytes()和InvSubBytes()通过替换表实现像素值变换。

(3)行列置换:定义的自身类方法:RowsShift (),InvRowsShift (),ColumsShift()和Inv ColumsShift(),实现行列的循环移位操作。

(四)原型系统的实现

以对BMP格式图像加密为例来部分介绍该原型系统的运行过程:用户点击图像加密界面中的“浏览”,选择待加密的文件;输入随机数发生器的初始条件,将用于随机数发生器初始条件输入的对话框定义为一个Initializtion类,只要系统中需要输入随机数发生器的初始条件,就创建一个该类的对象来获取输入的初始条件值。

在图像文件进行加密的这段时间,系统会有提示信息同时在改页面上其他功能暂时失效,只有完成加密后才会恢复正常。

Displaydlg用于显示图像文件,随后系统根据用户需求完成了图像文件的加解密操作。

在图像解密时,通过Initializtion类获取随机数发生器初始条件值,再通过RandomNumber,加密后的图像进行解密操作。

猜你喜欢

泄露数字图像安全
ARGUS-100 艺术品鉴证数字图像比对系统
个人金融信息保护与电信网络诈骗防范
浅谈稀油密封干式煤气柜底板泄露的原因及处理
基于块效应测度的JPEG数字图像盲取证
数字图像修复在图像压缩上的应用
基于DirectShow的便携式X射线数字图像采集的实现