信息隐藏的算法实现_课程设计

中国科学技术大学继续教育学院课程设计
论文报告
论文题目:信息隐藏的算法实现学员姓名:任建林
学号:TB04039140
专业:计算机科学与技术
指导教师:
日期:2007年1月8日
信息隐藏的算法实现
[摘要]在信息技术飞速发展的今天,人们对信息安全给予了更多关注。互联网络在给人们带来便利的同时,由于其是一个开放的环境,也给人们的生产生活及生命财产带来安全隐患,信息要在互联网络上安全传输,必须要有一个有效的安全技术措施来保障,信息隐藏技术和信息加密技术是信息安全的两个重要的分支,信息加密是利用对称密钥或非对称密钥密码加密算法把明文变换成密文,通过公开信道送到
接收者手中。由于密文是一堆乱码,攻击者监视着信道的通信,一旦截获到乱码,就可以利用已有的对各种密码体制的攻击方法进行破译,所以信息加密保护的是信息的内容。而信息隐藏则不同,秘密信息被嵌入宿主信息中,并且不损坏宿主载体的信息,攻击者无法直观地判断他所监视的信息中是否含有秘密信息,它隐藏了信息的存在形式。因此信息隐藏领域已经成为信息安全的焦点,本文主要研究如何把文本文件、WORD 文件、JPG文件、写字板文件嵌入位图文件(.BMP)的方法及算法实现。
[关键词]信息安全隐藏嵌入信息
1. 绪论
现代信息隐藏技术是由古老的隐写术(Steganography)发展而来的,隐写术一词来源于希腊语,其对应的英文意思是“Covered writing”。隐写术的应用实例可以追溯到非常久远的年代。被人们誉为历史学之父的古希腊历史学家希罗多德(Herodotus, 486—425),在其著作中讲述了这样一则故事:一个名叫Histaieus的人筹划着与他的朋友合伙发起叛乱,里应外合,以便推翻波斯人的统治。他来一位忠诚的奴隶,剃光其头发并把消息文刺在头皮上,等到头发又长起来了,把这人派出去送“信”,最后叛乱成功了。
1.1 信息隐藏的概念
信息隐藏 (Information Hiding):主要研究如何将某一机密信息秘密隐藏于另一公开的信息
精密电阻箱中,然后通过公开信息的传输来传递机密信息。攻击者则难以从公开信息中判断机密信息是否存在,难以截获机密信息,从而能保证机密信息的安全。
1.2 信息隐藏技术的组成
电热手套
信息隐藏技术主要由下述两部分组成:
1) 信息嵌入算法:它利用密钥来实现秘密信息的隐藏。
2) 隐蔽信息的提取算法:它利用密钥从隐蔽载体中检测 /恢复出秘密信息。在密钥未知的前提下,第三者很难从隐秘载体中发现秘密信息。
2. 编程思想
首先,将隐蔽载体文件(位图文件)装载进一个缓冲区pbmfh中,将所要隐藏的信息文件以二进制读方式也装载进一个缓冲区buffer中。
其次,在嵌入信息时,将buffer中一个字节(8bit)的信息存入pbmfh中的8个字节中,并且保证这8个
字节中的每个字节对2取模后与buffer中当前字节对应的位(8个字节对应8bit即对应一个字节)相同。具体实现是:将所要隐藏的文件的大小写入pbmfh缓冲区的0X0006地址处(以便提取信息时使用),再将所要隐藏的文件的格式写入pbmfh缓冲区0X0008地址处,从0X019A地址处开始读取位图文件的数据信息,如果pbmfh中的0X019A地址处的内容对2取模后与当前buffer中的内容的最高位不相同并且当前buffer中的内容也为0,则将pbmfh中的0X019A地址处的内容减1,否则pbmfh中的0X019A地址处的内容不变,接着从pbmfh 中读取下一个字节,将该字节内容与当前buffer中的内容的次高位做上述判断,连续读取8个字节后,将指向buffer缓冲区的指针加1,将所要隐藏的文件的大小length减1,重复上述过程,直到length为0时嵌入信息过程完成。然后保存嵌入了信息后的位图文件。
最后,在提取信息时,把嵌有机密信息的位图文件装载进缓冲区pbmfh中,从pbmfh 缓冲区的0X0006地址处读取隐藏了信息的文件的大小并存入length中,从0X0008地址处读取隐藏了信息的文件的格式,从该缓冲区中一次读取8个字节,将这8个字节对2取模后,乘以各自的权(即128,64,32,16,8,4,2,1)后相加,得到原始文件中的一个字节并存入DEbuffer缓冲区中,将指向DEbuffer缓冲区的指针加1,将length的大小减1,重复上述过程,直到length为0时提取信息过程完成。最后将DEbuffer 缓冲区的内容以二进制方式写入文件中,保存该文件。
2.1 程序流程图
BOOL HideInformation(int length) //隐藏信息
{ unsigned int OpAND[8]={128,64,32,16,8,4,2,1}; //按位与&操作char tempbuffer=0;
int i;
if(length==0) //空文件
return FALSE;
彩印业务while(length!=0) //嵌入信息过程
{
for(i=0;i<8;i++)
{
if((tempbuffer=(*buffer)&OpAND[i])==0) //为0
{
if(abs(*data)%2!=0 && *data!=0)
*data=*data-1; //保证原位图信息取模后为0
else if(*data==0)
*data=*data; //不变
}
else //为1
汽车半轴套管
{
if(*data%2!=1 && *data!=0)
*data=*data-1; //保证原位图信息取模后为1
else if(*data==0)
*data=*data+1; //对原数据为0 的处理,保证原位图信息取模后为1 }
data=data+1;
}
buffer=buffer+1;
wsrd
length=length-1;
}
return TRUE;
}
2) 提取隐藏信息的函数实现DistillInformation(int length)
*************************************************************
函数名: DistillInformation一体化机芯
入口参数: length
出口参数: TRUE/FALSE

本文发布于:2024-09-24 22:32:06,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/212754.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:信息   隐藏   文件   密钥   嵌入   秘密   人们   头发
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议