在图像加密中,往往会对加密后的图片进行各种分析测试,雪崩效应是为了测试加密算法的扩散性是否足够强,扩散性越强,那么加密算法越好。
其中雪崩效应即扩散性测试,雪崩效应是首先改变原图的一个像素值,然后再对其进行加密,如果得到的加密图和没有改变原图像素值的加密图完全不同,那么此现象就叫做雪崩效应,一般雪崩效应MSE大于等于30dB则可以判定算法扩散性较强。
雪崩效应计算公式如下图所示:
上式中,M、N分别为加密图的宽度和高度,C1(i,j)和C2(i,j)分别为不同加密图的第i行和第j列的灰度值。
运用matlab求雪崩效应的详细程序如下所示:
%%%%----计算雪崩效应----%%%%
clc;
clear;
cd F:Dissertation代码图片
%读取改变了原图的加密图
image1=imread('encryption_change.tif');
%读取未改变原图的加密图
image2=imread('encrypted.tif');
%显示图片
subplot(1,2,1),imshow(image2),title('原图像')
subplot(1,2,2),imshow(image1),title('改变后图像')
%将uint8转化为双精度类型
image1=double(image1);
image2=double(image2);
%两加密图灰度值相减并求绝对值
A=image1-image2;
A=A.^2;
%求和
m=sum(sum(A));
%求出UACI
MS=m/(256*256);