摘 要:笔者通过matlab仿真des算法,对JPEG格式的数字图像加密解密,并对其可行性进行研究,探讨一种改进方案,以供参考。
关键词:des算法 数字图像 matlab
随着互联网大数据时代的来临,自媒体、互联网与人们的生活密不可分。互联网应用中,图像是其基本的一种形式。然而,多媒体数据,由于其大数据量、实时性要求高等特点又对其安全提出了新的需求。加密技术是能为这些数据提供安全保障的唯一方法。
1 jpg格式文件介绍
jpg编码:jpg文件大体上分为两个部分:标记码(Tag)和压缩数据。本文,我们用matlab中的imread函数直接读取图像的数据A,读进来的数据为一个三层的矩阵,矩阵的行坐标和列坐标表示每个像素点的位置,矩阵从第一层到第三层分别代表红、绿、蓝三中像素。例如A[x,y,1]=255,表示在(x,y)位置,红色像素的值为0。
2 DES算法简介
DES算法是美国国家标准局1977年1月正式确立的美国的统一数据加密标准,是一种用56位密钥来加密64位数据的对称加密方法。DES输入为64位明文,64位密钥(含8奇偶校验位),输出为64位密文。因此,执行一次DES加密,可以完成8个字节的数据加密,输出也为8个字节。
DES算法概述,如图1:
解密处理:因为DES为典型的festal算法,所以加密和解密有相同过程,但是要注意解密过程的第一张置换表和最后一张置换表与加密过程要反过来。
3 DES直接加密图像数据的实验结果及分析
本文用Matlab模拟数字图像加密,程序界面(见图2):
3.1 加密效果与解密效果
图3 原始图像图4加密图像图5解密图像
对比加密结果和原始图像,发现在像素比较密集的地方加密结果的颜色也比较重,所以我们发现单纯的用DES算法对原始图像数据进行加密,不能有效的遮掩图像数据整体呈现的特性。对比原始图像与解密图像,经过加解密以后,图像没有发生变化,说明用DES加解密数字图像数据是可靠的。问题:DES算法直接加密不能全部掩盖图像的信息
3.2 加密实时性
用的图片大小为5Kb,matlab模拟加密、解密过程,加密消耗的时间为110.216446 seconds,解密消耗的时间为110.524032 seconds,所以加入直接用DES加解密,很难满足用户对实时性的要求。
4 结论与设想中的解决方案
4.1 DES加密不能完全隐藏图片的全部信息
基于混沌的理论,将初始的图片信息用高维的广义猫映射多轮置换,从而打乱图片数据本身的整体规律特性。
4.2 在满足相对高安全性的前提下,高实时性的要求如何满足
大数据量导致加密的实时性变得很差,可以从两个角度来减少大数据加密的时间复杂度:一是减少需要加密的数据的数量,就是选择性加密算法;二是减少加密过程的时间复杂度,简化加密过程。
综上所述,提出了一张新的加密算法的思路,加密步骤如下:
第一,将读取到的彩色图像分层R、G、B三层。
第二,分别对R层、G层、B层图像进行二维猫映射置换。
第三,只对R层数据进行基于DES的加密。
第四,R层得到的加密数据分别与G层、B层异或。
方案中,利用彩色图像R、G、B三层的数据全部进行映射置换[4],保证图片像素被完全打散,然后只对R层进行DES加密,减少了加密的数据量,时间在理论值上会减少1/3。然后根据异或算法的特性,对G、B两层进行加密从而达到了加密的效果。此方案的安全性可以归约到DES算法安全性的论证上,所以应该有比较可靠的安全性能。接下来要做的工作是论证该算法的实时性是否能真的满足要求。