1 引言
随着20世纪90年代internet的迅速发展,多媒体技术的逐渐成熟和电子商务的兴起,网上多媒体信息量急剧膨胀,使得多媒体信息的安全问题变的越来越重要,多媒体信息安全成为学术界和工业界共同关注的新的研究方向。
数字图像是目前最流行的多媒体形式之一,在政治、经济、国防、教育等方面均有广泛应用。Matlab里的imread函数可用于读取图片文件中的数据。读进去的数据为一个三层的矩阵,矩阵的行或列表示图像每一个像素点的位置。矩阵的第一层、第二层、第三层分别代表红、绿、蓝三种像素(RGB色域)。对此,可设计以下几种加密方法:①随机打乱各层的行或列。②随机打乱像素点③像素点RGB值的缩放。
2 设计目的
图像加密是对于在数据传输中,保持图像的安全性有一定的工程实用价值。本课题要求同学对图像加密原理进行学习,在此基础上利用编程语言进行程序的编写,并对不同的加密效果进行比较分析。
3 设计方案简介
目前,图像加密的方案主要有一下几类:1.基于像素点置乱算法的图像加密技术2基于行列乱序算法的图像加密技术3.基于色彩饱和度混乱算法的图像加密技术在这些方案中,基本上都采用了图像置乱技术,只是不同的方案的安全性、复杂性和加密、解密的速度不同,我们将重点讨论基于混沌的图像加密算法。
3.1 基于像素点置乱算法的图像加密技术
图像置乱的功能是将图像中像素的位置或者像素的颜色打乱,将原始图像变换成一个杂乱无章的新图像,如果不知道所使用的置乱变换,就很难恢复出原始图像。基于置乱技术的图像加密技术总体上来说可以等效为对图像矩阵进行有限不的初等变换,从而打乱像素的排列位置。但是初等变换时一维线性变换,其保密性不高。通常,图像置乱是图像信息隐藏、图像信息分存和数字水印等任务的基础性工作,置乱方法的优劣将直接影响其任务的效果,因此我们需要从置乱效果、计算复杂性、抗干扰能力等方面评价一个图像置乱算法的优劣。
3.2 基于行列乱序算法的图像加密技术
打乱矩阵行或列的方法运算步骤少、运算速度快,可对较大图像文件进行加密,缺点是对于一些特殊的图像无法进行加密。下面以随机打乱行为例介绍加密解密方法。
3.3 基于色彩饱和度混乱算法的图像加密技术
像素点RGB值的缩放每个像素都有各自的颜色值,其颜色值按一定倍数缩放,将其原数值进行覆盖,便产生了与原图像不同的图像,起到了加密的作用。这种加密方法加密效果会随倍数的增加其效果会更好,但由于过于简单,易被解密。
4 设计条件及主要参数表
4.1像素点置乱
用imread函数将图像读入矩阵RGB中,假设RGB是一个m行n列3层的矩阵。randsample可产生随机向量,用此函数产生一个值为从1到m*n*3的行向量并返回到r中。这样就可以将原图像矩阵的所有像素点随机打乱,将打乱后的矩阵返回至RGBS中,在用reshape函数将RGBS中的所有元素重置为新的 的矩阵并返回到RGBSS中。用find函数找出向量r内从1 到m的元素的位置并返回到向量f。至此就可以将打乱的图像还原。
4.2行列乱序
用imread函数将图像读入矩阵RGB中,假设RGB是一个m行n列3层的矩阵。randsample可产生随机向量,用此函数产生一个与图像矩阵RGB的行数m相等的整数随机数列并返回到r中。这样就可以将原图像矩阵的行随机打乱,将打乱后的矩阵返回至RGBS中。用find函数找出向量r内从1到m的元素的位置并返回到向量f。至此就可以将打乱的图像还原。
4.3色彩饱和度混乱
用imread函数将图像读入矩阵RGB中,假设RGB是一个m行n列3层的矩阵。Rand函数产生一个m行n列3层的由随机数组成的矩阵,并返回到r中,再返回时可以数乘一个数改变其缩放倍数。用矩阵的点运算,通过点乘、点除,可得到加密解密图像。
设计结果