混沌密码与数字图像加密应用模板
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验项目与实验报告( 1 )
global Ximage;
global Yimage;
key1=input('请输入密钥key1:');
key=4;
for(i=1:M)
for(j=1:N)
key1=key*key1*(1-key1);
a(i,j)=key1;
end
end
key2=input('请输入密钥key2:');
for(i=1:M)
for(j=1:N)
key2=key*key2*(1-key2);
b(i,j)=key2;
end
end
x=0.4*a+0.6*b;
e=round(x*256);
tt=0.01;
Zimage=(Yimage-(1-tt)*e)/tt;
figure(5)
imshow(Zimage,[]);
加密过程:
①首先将要加密的图片test.gif保存在d盘中,如下图1所示:
图1存在d盘中的test图片
②打开Matlab软件并把上面的加密程序输入软件环境窗口,如下图2所示:
图2在Matlab中输入的编程
③程序输入完成后,按回车键,程序会运行得出5张图片,分别为加密前的原图和加密后的图片、加
密前的直方图和加密后的直方图。如下图3、图4、图5、图6所示:
图3加密前的原图
图4加密后的图片
图5加密前的直方图
图6加密后的直方图
说明:加密后的灰度直方图分析可以用来衡量加密算法的扰乱性。上图3、图4、图5、图6是加密前后的图像以及它们的直方图的对比。可见,加密后的直方图呈均匀分布,未保留任何明文信息。图6加密后的直方图的图像越均匀说明混沌效应越好,上图6总体上来说是均匀的,只是在编程的时候考虑的只是黑白色的点,所以直方图看起来全部的点不是绝对的均匀。
解密过程:
⑦如果想得到原图(解密),必须在MATLAB界面窗口输入两个密钥,“请输入密匙key1:0.1 请输入密匙key2:0.2”;如下图7所示:
图7解密之后得到的原图
从上图可以看出,加密后的图像没有留下原图的痕迹,而解密后的图像看不出差别,此方法加密效果良好。
换一副带有彩色256×256的图像111.gif 为例,利用MATLAB软件进行图像加密,加密程序跟上面的差不多,只是把图片名称改了,步骤以上的也一样如下所示:
①把修改图片名称后的程序输入Matlab软件中,如下图8所示:
图8修改图片的名称
②运行之后得出来的结果如下图9、图10、图11、图12所示:
图9加密的原图
图10加密后的图
图11 加密前的图像直方图
图12加密后的图像直方图
图13解密后的到的图像
说明:由上图9、图10、图11、图12、图13可知,彩色图片加密后的图片跟原先用的黑白图片加密的图像一样都是由黑白的点组成的。而且彩色图片加密后的图像直方图总体上来说也是符合混沌效应现象的。
C语言代码实现混沌效应,加密程序如下:
//简单模拟LOGISTIC模型C++源程序
#include
#include
#define N 300
using namespace std;
void fun(float x0,float u,int k,float result[])
{ int i=0;
float temp_1,temp_2,temp_3;
temp_1=x0;
while(k)
{
result[i++]=temp_1;
temp_2=1-temp_1;
temp_3=u*temp_1;
temp_1=temp_2*temp_3;
k--;
图1修改输出语句后的代码
②然后点击编译并运行按钮,在弹出来的窗口中输入你想要的数据数量100、λ的取值(λ≥3.57)
3.59还有初始值0.23456,并回车后得出数据。如下图2所示:
图2运行得出的数据
③接下来把得出的数据复制到Word文档中并绘制成表格的形式以便导入Excel中统计数据。如下图3
所示:
图3通过拷贝在Word中的数据
④然后再利用复制、粘贴功能把数据导入Excel中,并绘制折线图,观察混沌效应。如下图4所示:
图4Excel中的数据与绘制的折线图
说明:从图4折线图中可以看出图像中点的分布总体上是满足混沌现象的。 二、实验原理(信息隐藏)
1.数字信息隐藏技术已成为信息科学领域研究的一个热点。被隐藏的秘密信息可以是文字、密码、图像、图形或声音,而作为宿主的公开信息可以是一般的文本文件、数字图像、数字视频和数字音频等。
2.信息隐藏系统的模型可以用下图1-1来表示。我们把待隐藏的信息称为秘密信息,它可以是版权信息或秘密数据,也可以是一个序列号;而公开的信息则称为宿主信息,如视频、音频片段等。这种信息隐藏过程一般由密钥来控制,通过嵌入算法将秘密信息隐藏于公开信息中,而隐蔽宿主则通过通信信道传递,然后对方的检测器利用密钥从隐蔽宿主中恢复/检测出秘密信息。
图1-1 信息隐藏系统模型
由此也可以看出,信息隐藏技术主要有下述两部分组成: (1) 信息嵌入算法(编码器),它利用密钥来实现秘密信息的隐藏。
(2) 隐藏信息监测/提取算法(检测器),它利用密钥从隐藏宿主中检测/恢复出秘密信息。在密钥未知
的前提下,第三者很难从隐藏宿主中得到或删除,甚至发现秘密信息。
实验步骤如下:
1、 利用Easycode Boy Plus 加密工具对文件进行加密、解密(可对多个文件进行加密):
① 首先打开Easycode Boy Plus 加密工具实验环境窗口,然后点击加密命令把需要的加密文件添加
到其中,并输入密码,确认密码,然后点击开始加密,最后会弹出加密成功的窗口,如下图1所示:
图1对文件加密成功
编码器 检测器
秘密信息 宿主信息
密钥
隐蔽宿主 密
钥
秘密信息
宿主信息