信息隐藏 实验二 BMP 图像信息隐藏
基于BMP数字图像的信息隐藏算法
该类 算法 中 , 大部 分算 法采 用 了扩 展 频 谱 通信 (pedset m cm nctn 技 术 。算 法 实 现 过 程 sra pcr o mui i ) u ao 为: 先计算图像的离散余弦变换( C )然后将水印叠加到 D T域 中幅值最大的前 K系数上 ( DT , C 不包括直流 分量)通常为图像的低频分量。若 D T系数的前 K个最大分量变示为 D={ ;i , k 水印是服从 , C d} -1 …, , 高斯分布 的随机实数序列 W ={ ;,=1…, , W }i , k 那么水印的嵌入算法为 d = 1 a , 中常数 a i d( + w) 其 为尺 度因子 , 控制水印添加的强度 。然后用新的系数做反变换得到水印图像 I 。解码函数则分别计算原始图 像I 和水印图像 I 的离散余弦变换 , 并提取嵌入 的水 印 w , 再做相关检验以确定水印的存在与否 。该方 法即使当水印图像经过一些通用的几何变形和信号处理操作而产生比较 明显的变形后仍然能够提取出一
O 引言
信息隐藏是一个崭新的研究领域 , 它横跨数字信号处理 、 图像处理 、 语音处理 、 模式识别、 数字通信、 多 媒体技术 、 密码学等多个学科 。信息隐藏是将秘密信息隐藏到一般 的非秘密 的数字媒体文件 ( 如图像 、 声 音、 视频 、 文本等) 让非法者无法判断该数字媒体 中是否隐藏了其他 的信息 , 中, 即使知道 , 也难 以提取或 去除隐藏的信息。 近年来 , 基于数字图像 的隐藏成为 国内外研究热点 , 其隐藏 的目的是将一 幅图像或者某些可数字化的 媒体信息隐藏在一幅图像 中。
基于 B MP数 字 图像 的信 息 隐藏 算 法
徐 凯
(贵州 师范大 学 职业技术学院, 贵州 贵 阳 50 1 ) 5 04
实验2:信息隐藏技术实验
实验2:信息隐藏技术实验一、实验目的掌握信息嵌入与检测的工具与使用方法;掌握数字水印的提取方法二、实验用的仪器、仪表easycode、AssureMark三、实验原理图像水印部分显示阿须数码在数字图像上的数字水印技术。
在不改变原有图像品质的情况下将数字水印信息隐藏于图像本身,并可在需要时能提取,用以作为版权声明和信息保护等。
Assure Image Mark V2。
0 是在一个MS-WINDOWS环境下运行的数字水印嵌入与检测程序,同时能够有效地提取篡改后图像的数字水印信息。
运行步骤依次为:1。
选择欲添加水印的原始图像文件、并给新生成水印信息的文件定义名称;2。
嵌入水印信息,可选择两种方式嵌入A:手动输入信息、B:从15877文件中提取信息;3.检测水印信息;选择含水印信息的图像文件,直接点击“检测水印”按钮;若该文件被篡改,检测时对所篡改的部分显示反差;4。
屏幕中显示所嵌入的数字水印信息.四、实验步骤1、基于图像的信息隐藏—-easycode前提:先建立一个TXT文件,且素材中有一个图片文件CHURCH。
JPG。
目标:将TXT文件秘密潜入到CHURCH.JPG中.隐藏方法:在easycode中单击“文件嵌入”选项卡;单击第一个“浏览”,选择图片文件church.jpg;单击第二个“浏览”,选择文本文件;输入密码后,单击“嵌入文件”按钮,即可。
测试:此时将原始TXT文件删除掉,并打开图片文件查看是否有异常.提取信息:在文件嵌入选项卡中,单击第三个“浏览",选择需要提取信息的图片文件;输入释放密码后,单击“释放文件"按钮,即可发现,txt文件重新恢复出来了。
2、数字水印的嵌入/提取—-AssureMark(注:只能用bmp文件)水印的嵌入方法:选择“嵌入水印”模式;单击“输入原始图像”右侧的“打开”按钮,选择原始图像church。
bmp,并定义输出图片的名称(如123。
bmp),手动输入水印信息(可以是一个字符串,如:123456);单击“嵌入水印”按钮,即可。
工作报告之信息隐藏实验报告
信息隐藏实验报告【篇一:合肥工业大学信息隐藏实验报告完整代码版】计算机与信息学院专业班级学生姓名及学号课程教学班号任课教师实验指导教师实验地点20~20学年第学期实验1 bmp位图信息隐藏一、实验目的学习bmp格式文件,并编程实现对位图文件信息隐藏二、实验要求将txt文件嵌入bmp 文件中三、问题描述1、bmp位图文件的格式?2、有哪几种方法隐藏信息,分别采用什么样的数据结构3、随机选取如何避免“碰撞”的出现四、算法思想1、bmp位图文件格式0000h~0001h 2字节 -------------------------bm的asc码0002h~0005h 4字节 -------------------------文件大小102718字节0006h~0009h 4字节 -------------------------全为0000ah~000dh 4字节 -------------------------偏移量 118字节000eh~0011h 4字节 -------------------------位图信息块大小40字节 0012h~0015h 4字节 -------------------------宽 4500016h~0019h 4字节 -------------------------高 450001ah~001bh 2字节 -------------------------恒为01h 00h001ch~001dh 2字节 -------------------------颜色所占二进制位数值04h 00h=4 16色位图001eh~0021h 4字节 -------------------------压缩方式=0无压缩0022h~0025h 4字节 -------------------------图像数据区大小 102600字节0026h~0029h 4字节 -------------------------水平每米多少像素 39个 002ah~002dh 4字节 -------------------------垂直每米多少像素 39个 002eh~0031h 4字节 -------------------------图像所用颜色数=00032h~0035h 4字节 -------------------------重要颜色数=00036h~0076h 64字节 -------------------------颜色表0077h~1913dh 102600字节 -------------------------图像数据区2、(1)、在图片图像数据区的一个连续的数据区采用整字节替换的方法(2)、在图像数据的最后增加文本信息的字节(3)、顺序选取每个文本信息字节的每一位替换图像数据区的一个连续的数据区每个字节的最后一位。
基于BMP图像数据的信息隐藏方法
S ( P 2 " ‘ $ -4 0+R 2 4 0+ ,%. " 02W " 1 " 2 3G %# 102G /*R ,%3, * + BC D : 3 LC FS
!C D FS J D F) FC O M N P C 9 E #C D FS J D F 110#%5 # ; IC FD " $*K = > # . + %( . M 9 I: RJ : N C FJ : N K D 9 C : F IC RC FS UD P M R: F= a ?C K D S M C P LN M P M F9 M R7> IM RC P LG D E M RC K D S M RD 9 D C P S : 9 9 M FD H H : N RC FS 9 : 9 IM UC 9 K D LJ C G M 3 IM D R RD 9 D FR 9 IM N MC P F: N M G D 9 C : FP IC L9 : 9 IM RD 9 D J : G G : X C FS 9 IM C K D S M RD 9 D C F9 IM J C G M 7cIM F9 IM P M H N M 9 C FJ : N K D 9 C : FC P #D #: M K UM RRM RC F9 IMUE 9 M P J : G G : X C FS9 IMC K D S MRD 9 D FG E9 IM P C \ M : J = a ?J C G M C P C FH N M D P M R# U89 R: F7 9 C FJ G 8M FH M 9 IM C K D S M 9 : UM RC P 3 LG D E M R7 * P D N M P 8G 9 #9 IM C FJ : N K D 9 C : FC P IC RRM F7 > IM P M H N M 9 C FJ : N K D 9 C : FH D F UM N M H : FP 9 N 8H 9 M R UE N M D RC FS 9 IM RD 9 D J N : K9 IM UE 9 M P M K 3 UM RRM RC F9 IMP M H N M 9 C FJ : N K D 9 C : FC F9 8N F7> IM N M C P F: 9 D FE O C P 8D G RC J J M N M FH M UM 9 X M M F9 IM H : O M N C K D S M M K UM RRM RC FP M H N M 9 C FJ : N K D 3 9 C : FD FR 9 IM : N C S C FD G H : O M N C K D S M 7(: 9 IM IC RC FS J M D 9 8N M C P P 9 N : FS 7> IM P C K 8G D 9 C : FM T LM N C K M F9 P LN : O M 9 IM J M D P C UC G C 9 E D FR 9 IM O D G C RC 9 E : J 9 IC P D G S : N C 9 IK 7 ? @A 0+ 1 # FJ : N K D 9 C : F IC RC FS a ?C K D S M K UM RRC FSD G S : N C 9 IK $C %= %M
基于BMP图像数据的信息隐藏方法
关键词 : 信息隐藏 ;MP图像 ; 算法 B 嵌入
中图分 类号 : P9 T 31 文献标识码 : A
Te h i u o n o m ain Hi i g B s d o c n q ef rI f r t dn a e n BM P I a e o m g
e e d nteb tsfl w n h ged t ,o l esz f mb d e i ye ol igtei d h o ma aa nyt ieo h BMP f ei ce sd,b t o t n u n etei g eds l si rae i n u n’ f e c d il h ma et b i- o
YANG a - i g Xio p n
(( r )aI U i ri ,Xad 15 , hn ) i咖 n esy in a 4 0 3 C ia v t n
Ab ta t A to r nomainhdn ae nB g rs ne .T eds ly maed t otn ac rigt e sr c : meh df fr t iigb s do MP i ei pe e td h pa e i g aai g t codn t o i o ma s i d s e oh
基 于 B P图像数据 的信息隐藏方法 M
杨晓平
( 襄樊学院机械 工程 系, 湖北 襄樊 4 15 ) 4 0 3
摘 要 : 出了一种通过增加 B 提 MP图像数据 实现信 息 隐藏的方法。B MP图像 的显 示是根据 文件 头数据 来确定 图像数 据 的。 与文件 中图像 数据以后 的数 据没有 关系, 将秘 密信 息嵌入到 图像 数据 以后 的字 节 中, 只是增 加 了 B P文件 的 大小, M 并不影 响图像 的显示 , 而 实现信息 隐藏 。按照秘密信 息的数 据大小 , 栽 密图像 中读 出秘 密信 息 的字节数据 , 可恢 从 从 即 复秘 密信 息。该 算法简单 易行 , 密图像和原 图像在视 觉上没有任何差别 , 栽 具有较 强的 隐蔽性。仿真 结果证明 了算 法的
如何把信息隐藏在24位BMP图像中
图
2B MP图像隐藏文 件原理
笔者 在利用 D l i编制 图像处理程序 时,使用了改 e h5 p 变画布上一个 点 R B值 的方法,发现如果 只改变 R G 、G、 B的 低位 部分 ,例 如只改变低二 位甚 至低三位时 ,肉眼很
一
个点的 R GB值 ,然后和上面一个字节分开的三个部分
个需要 隐藏 的字节 ,对应 图形上 的一 个点 我 们使用
进行位运算 ,得到新 的 R GB值 作为该点的 R GB值 ,算
法见 Wre MP 程 iB 过 t
D l i 提供的 画布 ( a vs , e h5 p C n a) 可以撇开 B MP图像的具体
大大提高 了 具体如下 : 在这里分 别改变红色的低 三位、蓝色的低三位、绿色
图 2
其 次.编码时 ,从 需要隐藏 的文件中取出一个字节 ,
把这个字节的八位分成三 部分 , 然后把这三部分分别放置 到 R B, G 重复这 个过程 .直到完成 . 最后 图像存盘 。把一
的低二位,这样 一个点我 们就 可以存放一 个字节的信息 . 其对图像的影响我 们可以这洋估算 :对红色 蓝色的影响
方法 如利用压缩软件把 文件压缩后 加上密码 或者把 自 己的 文档直接 利用 WO D、WP R S等 加密码功能加密 。这
几种方 法,在利用相应 的软件打开时 ,一般都要求辅 入密 码 , 就等于告诉别 人这 个文件有密码 .因而它们十分容 这 易受到攻击 事实 上,现在 网上 已经有很 多的破解程序 ,
计 算机时代
作为一个字符串来处理 , 字符串的长度标志要 占用一个字 - 文件 的长度用长整型表示 这样 , 上标 志 “ 加 n”的长度 , 文件 头的长度就固定为 10 0 个字节 。当然 ,进行存取 。
信息隐藏(图像处理)实验报告
信息隐藏(图像处理)实验报告
实验一、图像输入与输出
实验目的:
学习在MATLAB环境下对图像文件的I/O操作。
实验要求:
1.在Matlab环境下读入一幅.jpg格式的灰度图像并显示该图像;
2.显示多幅图像。
读入四幅灰度图像,并用两排显示。
实验结果:
实验二、直方图处理 实验目的:
获取图像的直方图,并利用直方图均衡化进行图像增强。
实验要求:
1.在Matlab 环境下读入.jpg 格式的灰度图像,分别显示该图像的直方图以及归一化直方图;
2.进行直方图均衡化。
显示均衡化后的图像,以及该图像的直方图。
实验结果:
原图 直方图
归一化直方图直方图均衡化后的结果图像
直方图均衡化后的结果图像的直方图
实验三、使用DCT进行变换编码
实验目的:
了解图像压缩中常用的DCT变换。
实验要求:
1.在Matlab环境下显示4x4的DCT基函数图像;
2.读入.jpg格式的灰度图像,对该图像进行8x8的DCT变换,将得到的系数的50%截去,再对截去的系数阵列进行逆变换得到重构图像,以图像形式显示重构图像和原始图像的误差。
实验结果
原图 4x4的DCT基函数图像
重构图像重构误差图像
实验四、图像加密
实验目的:
了解基于置乱的图像加密方法。
实验要求:
1.读入.bmp格式的灰度图像,编程实现基于Arnold变换的图像置乱加密算法。
实验结果:
原图置乱1次
置乱2次置乱3次
置乱4次置乱5次
置乱6次置乱96次。
信息隐藏技术_实验报告(3篇)
第1篇一、实验目的1. 了解信息隐藏技术的基本原理和实现方法。
2. 掌握信息隐藏技术在图像、音频和视频等数字媒体中的应用。
3. 通过实验验证信息隐藏技术的有效性和安全性。
二、实验环境1. 操作系统:Windows 102. 编程语言:Python3. 库:OpenCV、scikit-image、numpy、matplotlib三、实验内容1. 图像信息隐藏2. 音频信息隐藏3. 视频信息隐藏四、实验步骤1. 图像信息隐藏(1)选择一幅图像作为宿主图像,并选择一幅图像作为水印图像。
(2)将水印图像转换为二值图像。
(3)对宿主图像进行分块处理,将每个块转换为二值图像。
(4)根据密钥对水印图像进行置乱,提高安全性。
(5)将置乱后的水印图像嵌入到宿主图像的对应块中。
(6)提取水印图像,并与原始水印图像进行对比。
2. 音频信息隐藏(1)选择一段音频作为宿主音频,并选择一段音频作为水印音频。
(2)对宿主音频和水印音频进行分帧处理。
(3)根据密钥对水印音频进行置乱,提高安全性。
(4)将置乱后的水印音频嵌入到宿主音频的对应帧中。
(5)提取水印音频,并与原始水印音频进行对比。
3. 视频信息隐藏(1)选择一段视频作为宿主视频,并选择一段视频作为水印视频。
(2)对宿主视频和水印视频进行帧提取。
(3)根据密钥对水印视频进行置乱,提高安全性。
(4)将置乱后的水印视频嵌入到宿主视频的对应帧中。
(5)提取水印视频,并与原始水印视频进行对比。
五、实验结果与分析1. 图像信息隐藏实验结果表明,嵌入水印后的图像与原始图像在视觉效果上几乎没有差异,水印的嵌入效果良好。
同时,提取的水印图像与原始水印图像完全一致,证明了信息隐藏技术的有效性。
2. 音频信息隐藏实验结果表明,嵌入水印后的音频与原始音频在音质上几乎没有差异,水印的嵌入效果良好。
同时,提取的水印音频与原始水印音频完全一致,证明了信息隐藏技术的有效性。
3. 视频信息隐藏实验结果表明,嵌入水印后的视频与原始视频在视觉效果上几乎没有差异,水印的嵌入效果良好。
信息隐藏-实验二-BMP-图像信息隐藏
信息隐藏-实验二-BMP-图像信息隐藏实验二 BMP 图像信息隐藏一,实验目的1,了解BMP图像文件格式2,了解利用BMP图像文件隐藏信息的原理3,设计并实现一种基于24位真彩色BMP图像的文件信息隐藏方法。
二,实验环境1, Windows XP 操作系统2, Ultra Edit 文本编辑工具3, Matlab 7.1版本软件4, BMP格式图片文件三,实验原理1,在图像文件尾部添加任意长度的数据,秘密信息存放在文件尾部可以减少修改文件头的数据量,仅需修改文件头中的文件长度的值即可。
2,在调色板或者位图信息头和实际的图像数据之间隐藏数据,如果将秘密数据放在文件头与图像数据之间,则至少需要修改文件头中文件长度、数据起始偏移地址这两个域的值。
3,修改文件头和信息头中保留字段隐藏信息。
4,在图像像素区利用图像宽度字节必须是4的倍数额特点,在补足位处隐藏数据。
四,实验过程1,在实际的图像数据后隐藏信息(1)将载体baboon.bmp和秘密信息hidden.txt放置在同一目录下,在Windows 的MS-DOS方式下执行命令copy baboon.bmp /b + hidden.txt /a baboon1.bmp,如下图所示:图一 DOS界面(2)生成的新图像baboon1.bmp,表面上看上去与原图像几乎完全一样图二隐藏前后对比图(3)在Ultra Edit看两幅图像的结构,发现有所差别。
图三 baboon.bmp图四 baboon1.bmp(4)在Matlab中通过比较文件的实际长度和文件中保存的文件长度,就可以发现该图像是否隐藏秘密信息。
代码如下所示:clc;clear;fid=fopen('baboon1.bmp','r');%读入伪装载体图像文件[a,length]=fread(fid,inf,'uint8');%length是文件的实际长度fclose(fid);fid=fopen('baboon1.bmp','r');%读入伪装载体图像文件status=fseek(fid,2,'bof');fileb=fread(fid,4,'uint8');filelength=fileb(1)*1+fileb(2)*256+fileb(3)*256*256+fileb(4)*256^3;%文件图像中保存的文件长度diff=length-filelength;%diff表示隐藏的信息长度如果相同,表示图像没有隐藏任何信息fclose(fid);从Workspace中可以读出diff数据为8图五 Workspace(5)在Ultra Edit中手动修改文件长度,再运行上述程序,发现diff=0,表示图像隐藏并修改文件长度后,通过该方法无法发现图像有隐藏信息。
L004003010-BMP图像信息隐藏
wa(8)=85;
wa(9)=80;
wa(10)=84;
figure;
wa=uint8(wa);
fid=fopen('watermarked.bmp', 'wb');
fwrite(fid,wa);
fclose(fid);
imshow('watermarked.bmp');
执行代码过程如图1-2所示:
status=fseek(fid,2,'bof');
fileb=fread(fid,4,'uint8');
filelength=fileb(1)*1+fileb(2)*256+fileb(3)*256^2+fileb(4)*256^3 %文件图像中保存的文件长度
diff=length-filelength;
fileb=fread(fid,4,'uint8');
filelength=fileb(1)*1+fileb(2)*256+fileb(3)*256^2+fileb(4)*256^3
%文件图像的理论长度
status=fseek(fid,18,'bof');
b=fread(fid,4,'uint8');
源代码bmpreservedhiding.m如下:
clc;
clear;
fid=fopen('baboon.bmp','r'); %读入载体图像文件
[a,length]=fread(fid,inf,'uint8');
fclose(fid);
基于BMP图像的信息隐藏算法研究
( o ue e t ,i a g ct n l T c n lg ol e J y n 2 0 0 C ia C mp t C ne J y n a o a & e h oo y l g ,i a g5 2 0 , hn) r r e Vo i C e e
维普资讯
第 6卷 第 3 期 20 7年 8月 0
广 东 交 通 职 业 技 术 学 院 学 报
Jo U RNA L O F G UAN G DO N G CO M M UN I CATI ON S PO L YTECH NI C
微 小 的。
且 要求 :① 不 可见 性 ,即嵌 入信 息 后 的 图像 与 原
始 图像 在视 觉 上无法 区分差 异 ;② 鲁 棒性( b s r ut o .
n s 。即数 据 隐藏 时直 接 对 媒体 数 据 的某 些 部 分 es )
进行 修 改 。而 不增 加载 体 的数据 。 由于 图像 天然 地含 有 噪声 形式 的冗 余 。且 人 眼对 数 字 图像 中 极 细微 的改变 无法 做 出分 辨 。所 以 以数字 图像 作 为 信息 隐藏 的载 体是 行之 有效 的 。 本文 以2 位B 4 MP 图像作研 究对象 。
meh d a dp t u r v d me h d . e s me t , h r p r f to , n us p t i wo mp o e t o s At h a me t ep o e t o t i y BMP flsa d h w i i eGR e n o t d s l t B i o t lh h f a d c re p n i g c d sa ea ay e . e t n o r s o d n o e r n lz d
实验1 基于置乱的信息隐藏算法
江 西 理 工 大 学江 西 理 工 大 学 实 验 报 告 纸第 1 页/共 2页一、实验目的(1)了解信息隐藏基本原理;(2)理解图像加密技术的基本思想;(3)掌握Arnold 置乱算法和位平面算法; (4)完成8位BMP 灰度图像的置乱预处理;(5)将置乱后的秘密图像信息隐藏到载体图像的最低有效位中;二、实验内容以8位BMP 灰度图像SecretiveBmp.bmp 为秘密图像,以8位BMP 灰度图像lena.bmp 为载体图像,先用Arnold 变换算法对SecretiveBmp.bmp 进行置乱预处理,然后将置乱后的SecretiveBmp.bmp 结果图像嵌入到lena.bmp 的最低有效位中,实现信息隐藏。
(编程语言不限)三、实验步骤和设计思想Arnold 变换(Catmapping),俗称 猫脸变换!,是V.J.Arnold 在遍历理论的研究中提出的一类裁剪变换[3],它可以抽象为在平面单位正方形内绘制一个猫脸图像,这个猫脸图像由清晰变模糊。
将图像看作平面区域上的二 元函数Z=F(x,y),(x,y)∀R,通常区域R 是一个矩形(讨论R 为正方形的情况)。
对R 中的任意点(x,y),相对应的函 数值F(x,y)代表图像的信息(如灰度值等)。
随着图像的数字化,Z=F(x,y)可看作一个二维离散点阵,其元素所在的行与列对应于自变量进行取值,元素本身代表图像信息。
简言之,离散化的数字图像相当于元素之间有相关性的一类特殊矩阵。
对这一矩阵进行如下变换可以得到新的矩阵,从而实现图像的置乱处理。
一:置乱前的秘密图像读入并显示 w=imread('D:\matlab\work\lenal.bmp')。
Arnold 图像置乱:1、定义一个零矩阵用于设置每一轮arnold 变换后生成的新图像2、定义arnlod 变换过程中临时存放数据的矩阵Temp 。
encryImg 为置乱后的图像。
信息隐藏实验报告
信息隐藏实验报告实验题目【一】实现空域图像水印方法中的LSB算法:原始图像选取大小为512*512的elain图像或者goldhill图像,选择一个LSB水印算法以及适当的水印序列;利用选定的水印嵌入算法将水印信息嵌入到原始图像中。
在嵌入水印之后的图像中提取水印,是否可以判定图像中含有水印,同时计算含水印图像的峰值信噪比。
将含有水印的图像缩小为256*256之后,再放大为512*512,这时再提取水印,是否可以判定图像中含有水印。
实验结果缩略图:lsb.fig实验程序% LSB 算法:clear;A=imread('elain.bmp');B=A;message='www`s homework';m=length(message);n=size(A);k=1;for i=1:n(1)for j=1:n(2)if k<=m %如果消息输入完成则为0h=bitget(double(message(k)),8:-1:1);elseh=[0,0,0,0,0,0,0,0];endc=bitget(A(i,j),8:-1:1);if mod(j,8) == 0p=8;elsep=mod(j,8);endv=0;for q=1:7v=xor(v,c(q));endv=xor(v, h(p) );B(i,j)=bitset(A(i,j),1,v);if mod(j,8) == 0k=k+1;endendend% 提取信息out=char;tmp=0 ;t=1;for i=1:n(1)for j=1:n(2)c=bitget(B(i,j),8:-1:1);v=0;for q=1:8v=xor(v,c(q));endif mod(j,8)==0p=1;elsep=9-mod(j,8);endtmp=bitset(tmp,p,v);if mod(j,8)==0out(t)=char(tmp);t=t+1;tmp=0;endendend%显示图像figure;subplot(1,2,1);image(A);axis('square');title('原始图像');subplot(1,2,2);imshow(B);axis('square');title('加入水印后图像');out实验题目【二】实现基于扩频的图像水印算法:原始图像选取大小为512*512的elain图像或者goldhill图像,水印图像选取为以XXX印或者XX之印(XXX为自己的名字)为图案的、适当大小的二值黑白图像,再选取一个基于扩频的图像水印算法;利用选定的水印嵌入算法将水印信息嵌入到原始图像中。
改进LSB算法以增加BMP图像信息隐藏量的方法
2010 年第 2 期
512 × 512 的 24 位 BMP 图像,见图 3。如果采用传 统的 LSB 信息隐藏法,图 3 中只能隐藏 98 304 字 节的信息,这时可嵌入大小为 160 × 200 的真彩图, 见图 4 所示。图 5 是采用传统 LSB 算法在图 3 中 嵌入图 4 的效果图。
5. 掩护媒体的第 3 个像素,绿色分量引入第 2 个字节的第 5 位 B14; 红 色 分 量 引 入 第 2 个 字 节的第 6、7 位 B15、B16; 蓝色分量引入第 2 个字 节的 第 8 位 B17,及 第 3 个 字 节 的 第 1、2 位 B20 ,B21 。
6. 掩护媒体的第 4 个像素,绿色分量引入第 3 个字节的第 3 位 B22; 红色分量引入第 3 个字节的 第 4、5 位 B23、B24; 蓝色分量引入第 3 个字节的第 6、7、8 位 B25,B26,B27。
五、结果论证
首先,笔者在 VS2008 下进行实验,实验窗口 截图如下:
60
郑皓岚: 改进 LSB 算法以增加 BMP 图像信息隐藏量的方法
由 上 图 可 以 看 到,掩 护 载 体 的 路 径 是: D: / ll7777 / SourceCode / WindowsFormsApplication1 / image / image_512_512. bmp; 隐藏信息后的目标图片
3. 掩护媒体的第 1 个像素,绿色分量引入签字 信号的第 1 位 B00; 红色分量引入第 2、3 位 B01, B02; 蓝色分量引入第 4、5、6 位 B03,B04,B05。
4. 掩护媒体的第 2 个像素,绿色分量引入第 7 位 B06; 红色分量引入第 8 位 B07 及第 2 个字节的 第 1 位 B10; 蓝色分量引入第 2 个字节的第 2、3、4 位 B11,B12,B13。
BMP图像信息隐藏新型检测方法研究
疑 点统 计算 法和 层 次 比 的算 法 ,并 使 用 C语 言 进行 实现 。
处 理 、模 式识 别 、数 字 通 信 、 多媒 体技 术 、
于其 相应 的检 测技术却还 是相对薄 弱,很
主 要 针 对 的 是 空域 的 盲检 测算 法 。对 . B MP 的 加 入 隐 藏信 息后 的 特 点 。研 究 出 了最 可
f r h v r d iu tos i ef r d h sa it a ays e ei ns n h r sl f loih t v r d mo n o hd e d t a d o te ai sta in , prome t e t tsi n l i xpr e c s me t o t e eut ag r ms o a i a u t f i n a a n o t e d v ros odtos f r i ma e is O et hi ef r a c . aiu cn i n o oi n i g i g fe t t s t er ro m n e l p Ke or : bt p se o n l i; se a o r py;tg dt cin y w ds i ma ;t g a ays s tg ng a h se o e eto
一种基于BMP图像的文本隐藏算法
一种基于BMP图像的文本信息隐藏算法一、引言经常上网的人可能都有这样的经历:经常能在某些网站论坛上看到一些帖子,贴了一张图片,说其中隐藏了惊人的秘密,回帖方能看到,其实最后看到的只是在图片中隐藏的一些文本信息,但这是怎么实现的呢?其实这是信息隐藏技术的一种方法。
所谓信息隐藏技术,就是将某些重要信息嵌入到数字载体(如图像、声音、视频等)中去,而不损坏数字载体的原始特征。
近年来随着因特网的迅猛发展,网络成为最主要的信息传递渠道,然而网络传输的不安全性使信息极容易泄漏和被截获,网络传输的安全性日益成为人们关注的焦点,信息隐藏技术的诞生为解决这些问题提供了一个新的方向。
由于它具有良好的隐蔽性,含有重要信息的载体跟它实际的特征看起来没有任何区别,使得非法用户在截获到媒介时根本不怀疑媒介中含有隐藏信息。
信息隐藏技术已被广泛应用于版权保护、隐藏标识和安全不可见通信等领域。
信息隐藏技术主要是利用两个特点:一是利用数字载体本身存在很大的冗余性将信息嵌入到其中进行秘密传递;二是利用人的视觉和听觉对某些信息实现屏蔽。
本文介绍了一种基于BMP图像隐藏文本文件的算法,将文本文件隐藏在一幅24位的BMP图片之中,嵌入了文本信息的BMP图片和原始图片在外观上没有任何区别,并可以正确的从中提取出所隐藏的文本信息。
二、算法原理算法的核心思想是将文本信息以比特流的形式嵌入到原始BMP图像各像素点最不重要的位(Least Significant Bits,LSB,即最低有效位)上,这可充分保证嵌入的信息字节不可见。
对于由连续像素组成的图像(本文主要针对24位的BMP图片),每个像素由R(红色)、G(绿色)、B(蓝色)三个颜色分量组成,根据亮度公式I=0.3R+0.59G+0.11B可以得知:人眼对于图像中的绿色分量最为敏感,对蓝色分量最不敏感。
绿色分量每改变一个单位对人眼的刺激效果,与蓝色分量改变5个、红色分量改变2个单位对人眼的刺激效果是等价的。
信息隐藏位图法
位图法说明
• 在具体实验中还需要在所传输的实验数据之前添加两个标识符: • 第一个用来标识所传输文字的类型,称为“文字标识符”,占用1个 字节,如果是英文,则置为00;如果是中文,则置为01。 • 第二个用来标识传输的明文数据长度,称为“数据标识符”,在做实 验时这个标识符选择1个字节来进行存储,也就是说我们要传输的明 文最多可以有99个(采用10进制)汉字或英文字母、符号。在提取信 息时,如果传输的是汉字,数据标识符×4×4为后面传输的二进制代 码位数,如果传输的是英文和符号,则数据标识符的值×2×4为后面 传输的二进制代码位数。
信息嵌入总结
• 将信息嵌入BMP文件的步骤为: • (1)将待隐藏信息转化为二进制数据码流; • (2)将BMP文件图像数据部分的每个字节的奇偶性与上 述二进制数码流进行比较; • (3)通过调整字节最低位的“0”或“1”,改变字节的奇 偶性,使之与上述二进制数据流一致,即将信息嵌入到24 位BMP图像中。
位图法说明
• 举个例子,如果我们要传输中文“你好”,查得对应的 Unicode码是:4F60 597D。因为是中文,所以文字标识符 取为:01;因为只有两个汉字,所以数据标识符取为:02 (即后面传输的二进制数据代码有2×4×4=32位)。所 以我们要传输的数据应该是:01024F60597D,变为二进 制就是 000000010000001001001111011000000101100101111101, 按照位图法的方法嵌入图像中即可。
结论
• (1)由于原始24位BMP图像文件隐藏信息后,其字节数 值最多变化1(因为是在字节的最低位加“1”或减“1”), 该字节代表的颜色浓度最多只变化了1/256,所以,已隐 藏信息的BMP图像与未隐藏信息的BMP图像,用肉眼是看 不出差别的; • (2)将信息直接嵌入像素RGB值的优点是嵌入信息的容 量与所选取的掩护图像的大小成正比,而不再仅仅局限于 调色板的大小;
一种基于BMP图像的信息隐藏技术
3 同时从 式 ( ) 可看 出 ,u ye只与载体 图像 每行 数据 的 字节数 除 以 4的余数 有关 , 样 , 以将 图 ; 1也 n mb t 这 可
像 宽度 取很 小 , 最小 可 以到 1个像 素 , 而减 小载 体 图像 的大 小 。 当 n mb t 定后 , 体 图像 能够 存储 从 u ye确 载
际的 B MP图像各行 数据 的字节数可 以不是 4的倍 数 , 以这样 的图像 作为载体 图像 , 将秘密嵌 入到并不 表示 图像数据 的字节 中, 从而实现信 息隐藏。该 算法不改变 图像 本身的数据和 文件大小 , 载密图像和原 图像 在视 觉上没有任何 差别 , 有很强的 隐蔽性 。按 照秘密信息 的数 据大小 , 载密 图像 中依 次读 出秘密信 息的字节 具 从 数据 , 即可恢复 秘密信息 。仿 真结果证 明了算法 的可行性和有效性 。 关键词 : 息隐藏; MP图像 ; 信 B 嵌入算法 中图分类号 : N9 1 7 T 1.3 文献标识码 : A 文章编号 :0 16 0 (0 7 0 —0 30 1 0— 6 0 2 0 ) 20 1—4
秘密信息的总字节数(u b ttt ) n m ye a 取决于图像高度(i e h )其值为: o1 b i t, H g
n m b t t t l bHeg t n mb t 。 u y e o a — i i h × u y e () 2
收 稿 日期 :0 61 —5 2 0— 21 基 金 项 目: 南 省 自然 科 学 基 金 资 助 项 目(0 0 ) 海 6 3 2 作 者 简 介 : 开 利 (9 5 )男 , 北 利 川 人 , 南 大 学 副教 授 , 导 。 周 16 一 , 湖 海 硕
1 B MP 图像 文 件结 构 ]
AES加密进行BMP图像信息隐藏的算法实现
目录目录 (1)摘要 (2)Abstract (3)第一章引言 (4)1.1信息隐藏技术的提出 (4)1.2研究方向和应用领域 (5)1.3发展现状 (7)1.4信息隐藏技术的特点 (8)1.5基本算法 (9)1.6本文主要研究内容 (10)第二章信息隐藏技术基础介绍 (11)2.1信息隐藏的基本框架 (11)2.2BMP图像格式 (13)2.3AES加密算法 (14)第三章采用AES加密进行BMP图像信息隐藏的算法实现 (18)3.1算法实现 (18)3.2 LSB算法原理 (21)3.3试验结果验证 (25)3.4本算法的优缺点 (29)第四章总结与展望 (30)参考文献 (31)摘要在基于互联网的通信过程中,人们往往最担心的就是通信数据的安全性,在特殊的通信环境,如军事通信、金融通信等等,更是如此。
但是,由于互联网自身的特点,在通信过程中,信息可能会受到各种各样的无法预料的攻击。
这种情况相当危险。
但是,加入采用信息隐藏技术,即将重要信息做为秘密信息嵌入到看起来平常的介质中间如图片等,攻击者无从得知图片中含有秘密信息,因此则大大增强了网络通信的安全性。
本文在传统信息隐藏技术基础上,提出了一种结合了AES加密技术的BMP图像信息隐藏算法。
关键字:信息隐藏,加密,最低有效位,媒介AbstractIn the Internet-based communication, people are most concerned about the communication of data security,especially in special communications environment, such as military communications and finance communication. However, due to its own characteristics of the Internet, information will encounter various unexpected attack in communication. This situation is quite ing information hiding,that important information is hidden into the medium which looks usual,such as a picture,it is greatly increased the security of network comunication.On the basis of traditional information hidding technology,this article introduces a informaton hiding algorithm on BMP picture which combines aes encrypthion.Key words: information hidding, encrypthion,LSB,medium第一章引言1.1信息隐藏技术的提出随着多媒体应用技术的不断发展,以及互联网技术的普及和成熟,数字媒体受到了人们的极大欢迎,其数量也出现了几何级数式的增长。
LSB算法实现BMP图像中的信息隐藏及提取
实验4 LSB算法实现位图图像中的信息隐藏及提取马亮,njnu一、实验目的通过对LSB算法的编程实现,深入理解该算法的设计思想及其应用。
二、实验类型程序设计。
三、实验原理LSB是L.F.Turner和R.G.van Schyndel等人提出的一种典型的空间域信息隐藏算法。
考虑人视觉上的厄不可见性缺陷,信息一般嵌入到图像最不重要的像素位上,如最低几位。
利用LSB算法可以在8色、16色、256色以及24位真彩色图像中隐藏信息。
对于256色图像,在不考虑压缩的情况下,每个字节存放一个像素点,那么一个像素点至少可以隐藏1位信息,一张640*480像素的256色图像至少可隐藏640*480=307200位(38400字节)的信息。
对于真彩色图像,同样可以按照如上的方法计算可以隐藏的信息量。
四、实验环境(1)系统环境:CPU:Inter® Core™2(2)开发环境:IDE:Microsoft Visual Studio 2005Language:Microsoft C#五、实验内容在上述系统环境和开发环境中编程实现LSB算法,包括信息的隐藏和提取。
六、程序说明(1)程序运行界面如下图所示:图1 信息隐藏界面图2 信息提取界面(2)程序功能说明➢自动计算最大隐藏信息量并给出提示➢可以在24位位图中隐藏大小不超过最大隐藏信息量的任意类型文件➢自动备份原始图片➢自动检测伪装图片中是否包含隐藏信息➢正确提取出LSB中的隐藏信息并还原出文件七、实现过程(1)LSBEncrypt类该类用于实现LSB的信息嵌入算法,类中各字段及方法说明如下:字段private string _originalPicPath 原始图片路径private string _hidingInfoPath 隐藏信息路径private FileStream _picStream 原始图片的文件流private FileStream _infoStream 隐藏信息的文件流方法➢private void HideInfoLength();输入:无输出:无功能:将图像的第55至第66字节的LSB替换为隐藏信息文件的长度➢private void HideInfoContent();输入:无输出:无功能:将隐藏信息以每3个字节写入原始图像从第67字节开始的每12字节块的LSB中➢private byte[] ConvertToBinaryArray(long x);输入:long x 要转换的长整型数,这个数的大小不会超过2的24次方输出:byte[] 二进制表示的字节数组功能:将长整型数转换为24位二进制表示的字节数组➢private byte[] ConvertToBinaryArray(byte[] array);输入:byte[] array 长度为3的字节数组输出:byte[] 二进制表示的字节数组功能:将隐藏信息以每3个字节写入原始图像从第67字节开始的每12字节块的LSB中➢public void ExecuteEncrypt();输入:无输出:无功能:执行信息隐藏操作(2)LSBDecrypt类该类用于实现LSB的信息提取算法,类中各字段及方法说明如下:字段private string _camouflagePicPath 伪装图片的路径private string _infoSavePath 还原出的隐藏信息的保存路径private FileStream _camouflageStream 伪装图片的文件流private FileStream _infoSaveStream 还原出的隐藏信息的文件流方法➢private int GetInfoLength();输入:无输出:int 隐藏信息长度功能:从伪装图片的第55至第66字节中提取出隐藏信息的长度➢private byte[] ExtractHidingBits(byte[] arr);输入:byte[] arr 长度为12的字节数组,含有隐藏信息输出:byte[] 从12字节块中提取出的3字节隐藏信息功能:利用位操作提取伪装文件流中每12字节的LSB位➢public bool ExecuteDecrypt();输入:无输出:bool 执行成功返回true,失败返回false功能:执行信息提取操作八、实验小结及思考(1)程序测试✧信息隐藏载体位图图像:图3 载体图像要隐藏的信息:图4 待隐藏的信息执行信息隐藏算法:图 5 隐藏信息成功信息隐藏选择伪装图片和还原出的隐藏信息的保存路径:图 6 信息提取还原出的文本文件test.txt:图7 还原出的文件(2)实验思考在信息隐藏的研究中,主要研究信息隐藏算法与隐蔽通信。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二 BMP 图像信息隐藏
一,实验目的
1,了解BMP图像文件格式
2,了解利用BMP图像文件隐藏信息的原理
3,设计并实现一种基于24位真彩色BMP图像的文件信息隐藏方法。
二,实验环境
1, Windows XP 操作系统
2, Ultra Edit 文本编辑工具
3, Matlab 7.1版本软件
4, BMP格式图片文件
三,实验原理
1,在图像文件尾部添加任意长度的数据,秘密信息存放在文件尾部可以减少修改文件头的数据量,仅需修改文件头中的文件长度的值即可。
2,在调色板或者位图信息头和实际的图像数据之间隐藏数据,如果将秘密数据放在文件头与图像数据之间,则至少需要修改文件头中文件长度、数据起始偏移地址这两个域的值。
3,修改文件头和信息头中保留字段隐藏信息。
4,在图像像素区利用图像宽度字节必须是4的倍数额特点,在补足位处隐藏数据。
四,实验过程
1,在实际的图像数据后隐藏信息
(1)将载体baboon.bmp和秘密信息hidden.txt放置在同一目录下,在Windows 的MS-DOS方式下执行命令copy baboon.bmp /b + hidden.txt /a baboon1.bmp,如下图所示:
图一 DOS界面
(2)生成的新图像baboon1.bmp,表面上看上去与原图像几乎完全一样
图二隐藏前后对比图
(3)在Ultra Edit看两幅图像的结构,发现有所差别。
图三 baboon.bmp
图四 baboon1.bmp
(4)在Matlab中通过比较文件的实际长度和文件中保存的文件长度,就可以发现该图像是否隐藏秘密信息。
代码如下所示:
clc;
clear;
fid=fopen('baboon1.bmp','r');%读入伪装载体图像文件
[a,length]=fread(fid,inf,'uint8');%length是文件的实际长度
fclose(fid);
fid=fopen('baboon1.bmp','r');%读入伪装载体图像文件
status=fseek(fid,2,'bof');
fileb=fread(fid,4,'uint8');
filelength=fileb(1)*1+fileb(2)*256+fileb(3)*256*256+fileb(4)*25
6^3;
%文件图像中保存的文件长度
diff=length-filelength;
%diff表示隐藏的信息长度如果相同,表示图像没有隐藏任何信息
fclose(fid);
从Workspace中可以读出diff数据为8
图五 Workspace
(5)在Ultra Edit中手动修改文件长度,再运行上述程序,发现diff=0,表示图像隐藏并修改文件长度后,通过该方法无法发现图像有隐藏信息。
2,文件头与图像数据之间隐藏信息
(1)在数据区开始之前隐藏信息,也就是在54个和55个字节之间隐藏信息。
代码如下所示:
clc;
clear;
wm=randsrc(1,300,[0 1]);%产生随机水印
fid=fopen('baboon.bmp','r');%读入载体图像文件
[a,length]=fread(fid,inf,'uint8');
fclose(fid);
msgfid=fopen('hidden.txt','r');%打开秘密文件
[msg,count]=fread(msgfid);
fclose(msgfid);
wa=a; %a为图像变为uint8类型后的一维矩阵
j=1;
wa(11)=54+count;%修改偏移量,其中count为7
wa(3)=wa(3)+count;%修改图像数据的文件长度
for i=55:61 %隐藏7位信息
wa(i)=uint8(msg(j,1));%隐藏密码信息
j=j+1;
end
for i=55:length
wa(i+7)=a(i);
end
figure;
wa=uint8(wa);
fid=fopen('watermarked.bmp','wb');
fwrite(fid,wa);
fclose(fid);
subplot(1,2,1);imshow('baboon.bmp');%显示原始图像
subplot(1,2,2);imshow('watermarked.bmp')%显示新图像
(2)从图像看,两幅没有什么区别
图六隐藏前后对比图
3,在图像文件头和信息头的保留字段中隐藏信息
BMP图像中第7,8,9,10字节是保留的,必须为0,所以可以在这四个字节中
隐藏秘密信息。
下面代码即隐藏了0,1,2,3这四个信息。
clc;
clear;
wm=randsrc(1,300,[0 1]);%产生随机水印
fid=fopen('baboon.bmp','r');%读入载体图像文件
[a,length]=fread(fid,inf,'uint8');
fclose(fid);
wa=a;
%在BMP的7,8,9,10保留字中隐藏秘密信息0 1 2 3,ASCII值为)Ox30 Ox31 Ox32 Ox33
wa(7)=48;
wa(7)=49;
wa(7)=50;
wa(7)=51;
figure;
wa=uint8(wa);
fid=fopen('watermarked.bmp','wb');
fwrite(fid,wa);
fclose(fid);
subplot(1,2,1);imshow('baboon.bmp');%显示原始图像
subplot(1,2,2);imshow('watermarked.bmp')%显示新图像
图七隐藏前后对比图
五,实验总结
通过该实验,我了解BMP图像文件格式,了解利用BMP图像文件隐藏信息的原理,并通过在实际的图像数据后隐藏信息,文件头与图像数据之间隐藏信息,以及在图像文件头和信息头的保留字段中隐藏信息这三种方式实现了信息隐藏。