实验项目与实验报告(1 )学科:信息与网络安全学号::羊波时间:11月3 日
DD=sy/sx %置乱度
global M;
global N;
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<iostream>
#include<math.h>
#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)
图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对文件加密成功
编码器 检测器
秘密信息 宿主信息
密钥
隐蔽宿主 密钥
秘密信息
宿主信息
②接下来对刚刚加密的文件进行解密。
只要记住刚刚在加密时候设立的密码就可以进行解密,同
样的在Easycode Boy Plus加密工具实验环境窗口点击解密命令,把要解密的文件拖入其中,并输入加密时设的密码,点击开始解密命令即可,如下图2所示:
图2解密成功
2、利用Easycode Boy Plus加密工具将文件编译为EXE自解密文件:
①在Easycode Boy Plus加密工具实验环境窗口点击编译EXE命令,选择“将文件编译为EXE
自解文件”按钮,并把要编译的EXE文件添加在其中,输入密码,确认密码,然后点击开始编译/加密命令即可,如下图3所示:
图3加密成功
②现在已经很明显的发现文件已成了应用程序,并在打开的时候要要输入之前设的密码,然后勾
选解密后删除自解文件即可自解密并得到原来的文件类型,如下图4、图5、图6所示:
图6解密过程
图7自解密完成
图8得到原来的文件类型
说明:根据多次实验得出对EXE文件加密保护以及去除EXE文件密码保护或自解密壳操作步骤其实是差不多的。
3、利用Easycode Boy Plus加密工具对文件进行嵌入:
①以下是两不同格式的图片,把静态图(左)嵌入动态图(右)中,如下图1所示:
图1嵌入之前的原图
②在Easycode Boy Plus加密工具实验环境窗口点击文件嵌入按钮,并把静态图拖入作为记住文
件,把动态图拖入作为嵌入文件;并设置密码,确认密码,然后点击嵌入文件命令即可嵌入成功,并发现嵌入文件(动态图)通过我们的肉眼看不出有什么变化,如下图2、图3所示:
图2信息隐藏成功
图2嵌入后文件未改变
③接下来对以上嵌入文件进行还原。
首先把寄生文件(静态图)与寄主文件(动态图)拖入,并
输入密码,点击释放文件按钮即可,如下图3所示:
图3释放文件成功
○4以下是释放文件后得到的原来的寄主文件(动态图、最右边),如下图4所示:
图4。