基于图像的LSB隐写算法的实现

合集下载

基于LSB算法的图像信息隐藏与检测

基于LSB算法的图像信息隐藏与检测

基于LSB算法的图像信息隐藏与检测数字图像隐写分析基于LSB算法的图像信息隐藏与检测学院名称计算机科学与技术学院专业班级学⽣姓名学号指导教师2016.05.01基于LSB算法的图像信息隐藏与检测摘要:LSB替换隐写基本思想是⽤嵌⼊的秘密信息取代载体图像的最低⽐特位,原来的的7个⾼位平⾯与替代秘密信息的最低位平⾯组合成含隐藏信息的新图形。

⽂章⾸先简单叙述了BMP位图⽂件的⽂件格式,然后根据24位真彩⾊BMP位图格式与显⽰⽅式的特殊性,直接改变图像中像素的最后⼀位值来嵌⼊秘密⽂件,提出了⼀种对⽂字信息进⾏加密的有效⽅案。

关键词:LSB,信息隐藏,信息安全,BMP位图Image information hiding and detection based on LSBalgorithmAbstract: LSB replacement steganography basic idea is to use the embedded secret information to replace the image of the lowest bits, the original 7 high plane and the least significant bit plane of alternative secret information into new graphics containing hidden information.This paper simple describes the BMP file format of the bitmap file, and then according to the 24 true color BMP bitmap format and the particularity of display mode, directly change the values of pixels in the image of the last to embed secret files, puts forward a effective scheme of text information is encrypted.Key words: LSB, Information hiding,information security,bit map file⽬录第1章绪论 (5)1.1 LSB算法原理 (5)第2章 LSB隐写实现 (7)2.1 LSB隐藏过程 (7)2.2 LSB隐写实例效果 (8)第3章 LSB信息提取 (10)3.1 LSB信息提取过程 (10)3.2 LSB信息提取实例效果 (10)参考⽂献 (13)第1章绪论1.1 LSB算法原理LSB是L.F.Turner和R.G.van Schyndel等⼈提出的⼀种典型的空间域信息隐藏算法。

基于LSB图像隐藏系统的设计与实现

基于LSB图像隐藏系统的设计与实现

近几年来, 国际上 提出 一种新 的关 于信息 安全的 概念 信息普遍存在的冗余特性, 将秘密 信息 隐藏到 一般的 非秘密数字媒体文件( 如图像、 声音、 文档文件, 通常称 之为掩护媒体) 中, 从而 不让对 手发 觉的一 种方 法
[ 1]

隐藏的动作称为嵌入, 掩护 媒体经 嵌入 信息后 称为伪 装媒体。信息隐藏的 本质是: 利用 人眼( 或人耳 ) 是一 个不太灵敏的检测器, 将信息本身的存在性隐藏起 来, 使人察觉不到有信息隐藏在媒体之中。由于人对视觉 的不敏感性及图像文件本身的数据量很大, 因此, 图像 文件是信息隐藏很好的载体。 实现图像隐藏的算法主要有空间域算法和变换域
收稿日期 : 2006- 08- 13 作者简介 : 邹 处理技术。 娟 ( 1978- ) , 女 , 辽宁 大连人 , 硕 士 , 助教 , 研究方向
为网络安全 ; 贾世杰 , 硕 士 , 副 教授 , 研 究方向 是网络 与多媒 体信息
第5期

娟等 : 基于 LSB 图像隐藏系统的设计与实现
隐藏位数 1 2 3 4
信息隐藏比和峰值信噪比计算结果
信息隐藏比 0. 125 0. 25 0. 375 0. 5 峰值信噪比 ( PS NR ) 75. 4dB 69. 4dB 58. 2dB 33. 8dB
图5
参考 文献 :
[ 1] [ 2]
基于5 可以看出, 隐藏 1~ 3 位后的图像与载体图 像相比在视觉 上没 有什 么差 别或 差别 不大, 而隐 藏 4 位后的图像出现比较明显的伪轮廓。
图4
反置乱处理结果
2
基于 m 序列的图像加密与解密算法
文中使用 Matlab 产 生 15 位的 m 序列。在 这里,

实验三 基于LSB的信息隐藏算法

实验三 基于LSB的信息隐藏算法

实验三基于LSB的信息隐藏算法一、实验目的该实验为验证性实验。

目的是通过实验使学生掌握经典信息隐藏算法,在Matlab环境下,编写基于图像的LSB信息隐藏算法程序。

用Matlab函数实现LSB信息隐藏及提取,并进行分析。

二、实验要求1、实验前要做好充分准备,包括:复习实验所涉及的知识点,掌握Matlab 编程语言和调试环境。

2、实验时注意记录实验过程中产生的数据、出现的问题及解决问题的方法。

3、理论联系实际,认真分析实验结果,回答思考题。

4、实验后完成实验报告,并附相关截图。

三、实验环境计算机(安装Visual C++ 6.0和Matlab 6.5以上版本)四、实验原理隐秘算法核心是将我们选取的像素点的最不重要位依次替换成秘密信息,以达到信息隐秘的目的。

嵌入过程包括选择一个图像载体像素点的子集{j1,…,j l(m)},然后在子集上执行替换操作像素c ji←→m i,即把c ji的LSB与秘密信息m i进行交换(m i可以是1或0)。

一个替换系统也可以修改载体图像像素点的多个比特,例如,在一个载体元素的两个最低比特位隐藏两比特、三比特信息,可以使得信息嵌入量大大增加但同时将破坏载体图像的质量。

在提取过程中,找出被选择载体图像的像素序列,将LSB(最不重要位)排列起来重构秘密信息,算法描述如下: 嵌入过程:for(i=1;i<=像素序列个数;i++)s i←c ifor(i=1;i<=秘密消息长度;i++)//将选取的像素点的最不重要位依次替换成秘密信息s ji←c ji←→m i提取过程:for(i=1;i<=秘密消息长度;i++){ i←→j i //序选取m i←LSB(c ji)}五、实验内容与步骤1、随机选取图像载体像素,实现隐秘消息的嵌入与提取(1)隐秘消息的嵌入%文件名:randlsbhide.m%函数功能:本函数将完成随机选择LSB的信息隐秘,载体选用灰度BMP图%输入格式举例:[ste_cover,len_total]=randlsbhide(′glenna.bmp′,′message.txt′,′scover.bmp′,2001)%参数说明:%input是信息隐蔽载体图像%file是秘密消息文件%output是信息隐秘后的生成图像%key是随机间隔函数的密钥function[ste_cover,len_total]=randlsbhide(input,file,output,key)%读入图像矩阵cover=imread('lena.bmp');ste_cover=cover;ste_cover=double(ste_cover);%将文本文件转换为二进制序列f_id=fopen('1.txt','r');[msg,len_total]=fread(f_id,'ubit1');%判断嵌入消息量是否过大[m,n]=size(ste_cover);if len_total>m*nerror('嵌入消息量过大,请更换图像');end%p作为消息嵌入位数计数p=1;%调用随机间隔函数选取像素点[row,col]=randinterval(ste_cover,len_total,2001);%在LSB隐秘消息for i=1:len_totalste_cover(row(i),col(i))=ste_cover(row(i),col(i))-mod(ste_cover(row(i),col(i)),2)+msg (p,1);if p==len_totalbreak;endp=p+1;endste_cover=uint8(ste_cover);imwrite(ste_cover,'lena2.bmp');%显示实验结果subplot(1,2,1);imshow(cover);title('原始图像');subplot(1,2,2);imshow('lena2.bmp');title('隐藏信息的图像');(2)编写函数比较两幅图像区别%文件名:compare.m%函数功能:本函数完成显示隐秘前后两幅图像的区别%输入格式举例:F=compare(′blenna.bmp′,′scover.bmp′) %参数说明:%original是原始载体图像%hided是隐秘后的图像%F是差值矩阵function F=compare(original,hided)%读取原始载体图像矩阵W=imread('lena.bmp');W=double(W)/255;%读取隐秘后图像矩阵E=imread('lena2.bmp');E=double(E)/255;%将两图像矩阵相减,显示效果F=E-W;%注意,MATLAB中矩阵相减只支持double型imshow(mat2gray(F))(3)隐秘消息的提取%文件名:randlsbget.m%函数功能:本函数将完成提取隐秘于LSB上的秘密消息%输入格式举例:result=randlsbget(′scover.jpg′,56,′secret.txt′,2001) %参数说明:%output是信息隐秘后的图像%len_total是秘密消息的长度%goalfile是提取出的秘密消息文件%key是随机间隔函数的密钥%result是提取的消息function result=randlsbget(output,len_total,goalfile,key)ste_cover=imread('lena2.bmp');ste_cover=double(ste_cover);%判断嵌入消息量是否过大[m,n]=size(ste_cover);frr=fopen('2.txt','a');%p作为消息嵌入位数计数器,将消息序列写回文本文件p=1;%调用随机间隔函数选取像素点[row,col]=randinterval(ste_cover,128,2001);for i=1:128if bitand(ste_cover(row(i),col(i)),1)==1fwrite(frr,1,'bit1');result(p,1)=1;elsefwrite(frr,0,'bit1');result(p,1)=0;endif p==128break;endp=p+1;endfclose(frr);2、顺序选取图像载体像素,实现隐秘消息的嵌入与提取(1)隐秘消息的嵌入%文件名:lsbhide.m%函数功能:本函数将完成在LSB上的顺序信息隐秘,载体选用灰度BMP图%输入格式举例:[ste_cover,len_total]=lsbhide(′glenna.bmp′,′message.txt′,′scover.bmp′)%参数说明:%input是信息隐蔽载体图像,为灰度BMP图%file是秘密消息文件%output是信息隐秘后生成图像%ste_cover是信息隐秘后图像矩阵%len_total是秘密消息的长度,即容量function[ste_cover,len_total]=lsbhide(input,file,output,key)%读入图像矩阵cover=imread('lena.bmp');ste_cover=cover;ste_cover=double(ste_cover);%将文本文件转换为二进制序列f_id=fopen('1.txt','r');[msg,len_total]=fread(f_id,'ubit1');%判断嵌入消息量是否过大[m,n]=size(ste_cover);if len_total>m*nerror('嵌入消息量过大,请更换图像');end%p作为消息嵌入位数计数p=1;%调用随机间隔函数选取像素点%[row,col]=interval(ste_cover,len_total,2001);%在LSB隐秘消息for f1=1:mfor f2=1:nste_cover(f1,f2)=ste_cover(f1,f2)-mod(ste_cover(f1,f2),2)+msg(p,1); if p==len_totalbreak;endp=p+1;endif p==len_totalbreak;endp=p+1;endste_cover=uint8(ste_cover);imwrite(ste_cover,'lena2.bmp');%显示实验结果subplot(1,2,1);imshow(cover);title('原始图像');subplot(1,2,2);imshow('lena2.bmp');title('隐藏信息的图像');(2)调用函数compare.m比较两幅图像区别%文件名:compare.m%函数功能:本函数完成显示隐秘前后两幅图像的区别%输入格式举例:F=compare(′blenna.bmp′,′scover.bmp′) %参数说明:%original是原始载体图像%hided是隐秘后的图像%F是差值矩阵function F=compare(original,hided)%读取原始载体图像矩阵W=imread('lena.bmp');W=double(W)/255;%读取隐秘后图像矩阵E=imread('lena2.bmp');E=double(E)/255;%将两图像矩阵相减,显示效果F=E-W;%注意,MATLAB中矩阵相减只支持double型imshow(mat2gray(F))(3)隐秘消息的提取%文件名:lsbget.m%函数功能:本函数将完成提取隐秘于LSB上的秘密消息%输入格式举例:result=lsbget(′scover.bmp′,56,′secret.txt′) %参数说明:%output是信息隐秘后的图像%len_total是秘密消息的长度%goalfile是提取出的秘密消息文件%result是提取的消息function result=lsbget(output,len_total,goalfile,key)ste_cover=imread('lena2.bmp');ste_cover=double(ste_cover);%判断嵌入消息量是否过大[m,n]=size(ste_cover);frr=fopen('2.txt','a');%p作为消息嵌入位数计数器,将消息序列写回文本文件p=1;%调用随机间隔函数选取像素点[row,col]=interval(ste_cover,128,2001);for f1=1:128for f2=1:128if bitand(ste_cover(f1,f2),1)==1fwrite(frr,1,'bit1');result(p,1)=1;elsefwrite(frr,0,'bit1');result(p,1)=0;endif p==128break;endp=p+1;endif p==128break;endp=p+1;endfclose(frr);实验小结:通过实验使我们掌握经典信息隐藏算法,在Matlab环境下,编写基于图像的LSB 信息隐藏算法程序。

一种基于图像偏离度直方图的LSB匹配隐写检测算法

一种基于图像偏离度直方图的LSB匹配隐写检测算法
Absr c : SB t a t L ma c i g tg no r p y mb d i f r to i t t e th n se a g a h e e s n o ma in n o h LS o h c v r y ih r B f t e o e b et e
第 1 3卷 第 2期 21 0 2年 4月
信 息 工 程 大 学 学 报
J u na fI f r to gn e i g Un v ri o r lo n o ma in En i e rn ie st y
Vo . 3 No 2 11 . Ap . 01 r2 2
的概 念被 引出来刻 画临域像 素 的空 间相关 性 , 偏 离度 直方 图上提取 了对 隐写 敏感 的特 征 , 在 并
加 以优 化。 实验 结果表 明 : 在未压 缩 高精度 图像 库上 也具 有 ; 隐写分 析 ;S L B匹配 ; 离度 直方 图 偏 中图分类 号 : P 9 . 1 T 3 1 4 文 献标识 码 : A 文 章编 号 :6 1 6 3 2 1 ) 2— 2 5— 6 17 —0 7 ( 0 2 0 0 0 0

种 基 于 图像 偏 离度 直方 图 的 L B S 匹配 隐写检 测 算 法
李 韬 ,平 西 建 李 侃 ,
( . 息 工程 大学 信 息工 程 学 院 , 南 郑 州 4 0 0 ; . 安通 信 学 院 , 西 西 安 70 0 ) 1信 河 50 2 2 西 陕 1 16
摘要 :S L B匹配 采用 ±1 改模 式 , 修 以使其 L B与待嵌 入 比特 匹配 , 强 了隐写 的安 全 性 , 于 S 增 对 它的检 测是 当前 的热点 、 点 。提 出一种基 于 图像 局 部 统 计 一致 性 的 隐写分 析 算 法。 偏 离度 难

空域信息隐藏算法(完成基于LSB的图像信息隐藏)

空域信息隐藏算法(完成基于LSB的图像信息隐藏)

空域信息隐藏算法(完成基于LSB的图像信息隐藏)最近在上信息隐藏,做⼀个记录⼀,实验要求(1)了解信息隐藏算法的分类⽅式和分类依据(2)理解空域信息隐藏算法的基本思想(3)掌握最低有效位算法原理(4)完成基于LSB的图像信息隐藏⼆、实验内容载体图像为24位真彩⾊bmp图像Lena.bmp,嵌⼊的秘密图像为⿊⽩的bmp图像LSB.bmp,要求采⽤空域信息隐藏算法,将LSB.bmp嵌⼊到Lena.bmp的最低有效位中,同屏显⽰原载体图像、需要嵌⼊的秘密图像、嵌⼊了秘密图像的伪装载体、提取的秘密图像。

以下为实验材料:lena.bmp 和 LSB.bmp隐体:三、实验步骤和设计思想1,使⽤pyhton库,skimage来完成相关的⼟图像处理2,通过skimage库打开隐体,发现只有两个值【255,和 0】所以,其实隐藏时,只要⽤⼀位就可以隐藏隐体,将255使⽤1代替,0不变,将其藏在载体的最后⼀位即可。

3,因为隐体为RGB三通道图像,为了隐藏的更好,使⽤随机数将0和1,随机选定⼀个图层进⾏隐藏,当然为了能够还原原图像,使⽤⼀个seed作为key,这样产⽣的随机数就可以顺序提取。

4,隐藏和提取时,使⽤位运算可轻松的实现数字的⾼低位的存取。

5,将变换后的图⽚进⾏保存,再使⽤相同的key和隐藏信息后的载体,进⾏提取。

6,为了⽅便使⽤,将隐藏的⽅法和过程使⽤,⾯向对象的思想,封装为类。

四,### 代码from skimage import ioimport numpyclass IMG_LSB:def __init__(self, key):self.key = keydef show(self, img):"""显⽰图⽚:param img: 显⽰的图⽚矩阵:return: none"""io.imshow(img)io.show()def create_cover(self, img_cover_name, img_info_name, save_img_name):"""使⽤LSB算法对图像进⾏隐藏,隐藏到使⽤key作为种⼦⽣成的随机数指定的RGB通道中:param img_cover_name: 载体图⽚名:param img_info_name: 隐体图⽚名:param save_img_name: LSB⽣成后的图⽚保存位置以及名字:return: LSB⽣成后的图⽚矩阵"""img_info = io.imread(img_info_name)img_cover = io.imread(img_cover_name)self.show(img_info)self.show(img_cover)self.ls_info = img_info.shape[0] # 得到隐体图⽚的长和宽self.ls_cover = img_cover.shape[0] # 得到载体的长和宽if self.ls_info > self.ls_cover:print("载体太⼩")# 开始隐藏numpy.random.seed(self.key)for i in range(0, self.ls_info):for j in range(0, self.ls_info):if img_info[i][j] == 255 : # 如果隐体为255则藏在R层最低为置为1img_cover[i, j, numpy.random.randint(0, 3)] |= 1 # 随机选定⼀个通道进⾏隐藏else:img_cover[i, j, numpy.random.randint(0, 3)] &= 254 # 如果隐体为0则藏在R层最低为置为0self.show(img_cover)io.imsave(save_img_name, img_cover)return img_coverdef extract_img(self, blmb_name, save_img_name):"""对隐体进⾏提取并显⽰:param blmb_name: LSB⽣成的含有隐体的载体名:param save_img_name: 提取后的隐体存储的位置:return: 提取后的隐体的矩阵"""blmb = io.imread(blmb_name)matrix = [[255 for i in range(self.ls_info)] for i in range(self.ls_info)] # ⽣成与隐体相同⼤⼩的矩阵,并赋值为255re_info_img = numpy.array(matrix, dtype=numpy.uint8) # 将⽣成的矩阵转化为可存储图像的8位格式self.show(re_info_img)# 开始提取numpy.random.seed(self.key)for i in range(0, self.ls_info):for j in range(0, self.ls_info):randint_value = numpy.random.randint(0, 3) # 使⽤seed控制随机数的⽣成保证与之前隐藏时,⽣成的随机数⼀致 blmb[i, j, randint_value] &= 1 # 取出最后⼀位if blmb[i, j, randint_value] == 0:re_info_img[i][j] &= 0 # 如果最后⼀位为0则隐体原处为0,为1则为255else:re_info_img[i][j] |= 255io.imsave("img/re_img.bmp", re_info_img)self.show(re_info_img)return re_info_img# 测试if __name__ == '__main__':img = IMG_LSB(123) # key为123img.create_cover("img/Lena.bmp", "img/LSB.bmp", "img/blmb2.bmp")img.extract_img("img/blmb2.bmp", "img/re_img.bmp")。

LSB图像信息隐藏实验

LSB图像信息隐藏实验

学号:姓名:专业年级班级:实验室:组别:实验日期:课程名称保密技术实验实验课时实验项目名称和序号1.LSB图像信息隐藏实验同组者姓名实验目的1. 掌握对图像的基本操作。

2. 能够用 LSB 算法对图像进行信息隐藏3. 能够用 LSB 提取算法提取隐藏进图像的信息4. 能够反映 jpeg 压缩率与误码率之间的关系实验环境Windows+matlab实验内容和原理1.用 MATLAB 函数实现 LSB 信息隐藏和提取2.分析了 LSB 算法的抗攻击能力3.能随机选择嵌入位(考虑安全性因素)实验步骤方法关键代码实验算法 1:LSB 嵌入1.读取一副 256*256 大小的图片,判断是否为 RGB 图像。

若为 RGB 图像,则读取图像的一层信息(如 R 层)。

通过读取图像的尺寸大小来判断是否为RGB图像。

RGB图像是三维多彩图,size有3个参数,最小参数是3,只要判断读取到的图像大小大于2,就确定读入的是RBG图像2.以二进制形式读取要嵌入到图片里的消息。

并读取消息的长度(嵌入消息的长度不能超过图像位数)。

3.产生与消息长度一致的一串随机数(不能相同)。

自定义一个randinterval函数来实现伪随机数的生成产生的伪随机数是代表消息要隐藏的像素位置(行和列的信息)随机数代码:function [row,col]=randinterval(matrix,count,key)%randinterval.m%参数说明%matrix是载体矩阵,即要隐藏信息的图层%cout为要嵌入信息的像素数量%key为自定义秘钥,随机种子[m,n] = size(matrix);interval1 = floor(m * n/(count+eps)) + 1;interval2 = interval1 - 2;if interval2 == 0error('载体太小不能把秘密信息隐藏进去');endrand('seed',key);a = rand(1, count);row = zeros([1 count]);col = zeros([1 count]);r = 1;c = 1;row(1,1) = r;col(1,1) = c;for i =2:countif a(i) >= 0.5c = c + interval1;elsec = c + interval2;endif c > nr = r + 1;if r > merror('载体太小不能把秘密信息隐藏进去');endc = mod(c, n);if c == 0c = 1;endendrow(1, i) = r;col(1, i) = c;end4.按照产生的随机数的序列依次将图片层的最后一位改为消息的信息。

基于数字图像LSB隐写算法的研究

基于数字图像LSB隐写算法的研究

《新技术讲座》课程课程大作业作业名称:基于数字图像LSB隐写算法的研究姓名:其他组员:学号:班级:完成时间:2013年11月2日基于图像LSB隐写算法的研究(XX大学XX学院XX XX地联系方式)摘要:本文先对信息隐藏技术、隐藏模型、隐写术、隐写算法等进行了简单介绍,然后借助软件matlab7.0,采用空域隐写算法LSB将秘密信息嵌入数字图像,完成隐写;接着将嵌入的秘密信息提取出来,通过计算其峰值信噪比PSNR来评估该隐写算法的不可感知性,证实了LSB嵌入时在图像的最不重重要位加载秘密信息,一定程度上加强了秘密信息的不可感知性;再通过缩小和放大二倍来分析隐写算法的鲁棒性,试验结果表明,该算法计算量低,在低嵌入率时检测结果准确,优势明显,而对嵌入率较高的载秘图像,需要修正后才能达到常规检测的标准;最后,在实验总结基础上提出了一些建议,并对未来进行了展望。

关键词:信息隐藏技术隐写算法LSB信息嵌入信息提取PSNR不可感知性鲁棒性第一部分1.引言随着计算机技术、信息处理技术和计算机网络技术的飞速发展,Intemet在世界范围内得到了大力推广,各种数字信息的制作、传输、存储和处理由此变得越来越简单。

通过互联网,人们可以快捷高效地获得图像、声音和文本等各种多媒体数据,分享海量的信息资源。

各种机密信息,如个人的信用卡账号逐渐在网络通信中出现。

然而,全球互联网是一个开放的系统,虽然普通用户可以通过网络方便、快捷地交流信息,但是随之而出现的问题也十分严重:个人的隐私的安全如帐号、个人信息、密码口令、电子邮件等能否得到保障;多媒体作品的版权能否得到应有的保护;电子商务中的企业机密能否不被商业间谍所窃取;涉及到国家安全、政府绝密的文件在网络中能否被安全地传输等。

因此,蓬勃发展的网络使得信息传输和交流更加简单易行的同时,也对关系国家安全、经济发展乃至个人隐私等方而的信息安全提出了更高的要求。

国内外各界已经高度重视如何在既能有效地保证各种信息的安全这个大前提下,也能充分利用Internet便利的问题,由此一门新兴的交叉学科——信息隐藏诞生了。

基于LSB图像隐藏系统的设计与实现

基于LSB图像隐藏系统的设计与实现

基于LSB图像隐藏系统的设计与实现
邹娟;贾世杰
【期刊名称】《计算机技术与发展》
【年(卷),期】2007(17)5
【摘要】文中运用Matlab实现了基于空域LSB(Least Significant Bit)的灰度图像隐藏与提取系统.图像隐藏系统由置乱模块、加密模块和嵌入模块组成.置乱模块采用基于行列置换的置乱算法,经过多次迭代处理,将原始图像变换为灰度均衡的灰度图像,迭代的次数作为密钥一.加密模块借鉴通信系统中常用的伪随机序列加密的方法,运用软件产生m序列对置乱后的图像进行加密处理.m序列的初始值作为密钥二.经过置乱、加密后的图像进入嵌入模块,采用最低位隐藏方法将数据信息嵌入到载体图像中.图像信息提取系统则由解隐藏、解密和反置乱三部分组成.
【总页数】3页(P114-116)
【作者】邹娟;贾世杰
【作者单位】大连交通大学,电气信息学院,辽宁大连,116028;大连交通大学,电气信息学院,辽宁大连,116028
【正文语种】中文
【中图分类】TP391.41
【相关文献】
1.基于LSB及置乱的图像隐藏算法研究 [J], 牛振喜
2.一种基于LSB序列的数字图像隐藏处理技术 [J], 杨全海
3.基于差分直方图的LSB图像隐藏信息盲检测技术的研究 [J], 谢永华;傅德胜;杨静宇
4.基于LSB和多重秘密共享的二值图像隐藏方案 [J], 曹如冰; 艾斯卡尔
5.基于LSB和多重秘密共享的二值图像隐藏方案 [J], 曹如冰; 艾斯卡尔
因版权原因,仅展示原文概要,查看原文内容请购买。

基于图像相邻像素相关性的 LSB 匹配隐写分析

基于图像相邻像素相关性的 LSB 匹配隐写分析
吴 松 ,张敏情 ,雷 雨
( 武警 工程 大 学 a . 电子技 术 系 网络与信 息安 全武 警部 队重点 实验 室 ;b . 信 息安 全研 究所 ,西安 7 1 0 0 8 6 ) 摘 要。 :L S B 匹配隐写是 图像 隐写分 析 中的重点研 究 问题 。根 据 图像 相邻像 素 的相 关性 , 提 出 了一 种新 的 隐写
维特征 向量 对 支持 向量机 进行 训练 。 实验表 明提 出的算 法对 L S B匹配 隐写有较 好的 分析 效果 , 特别在 嵌入 率低 的情 况下 , 算 法具有较 好 的分析 能力 。
关 键词 :L S B匹配隐写 ;图像复 原 ;高阶 Ma r k o v链模 型 ;组 合特征 ;低嵌 入率 中 图分 类号 :T P 3 9 1 文献标 志码 :A 文章编 号 :1 0 0 1 — 3 6 9 5 ( 2 0 1 4 ) 0 3 — 0 8 4 6 — 0 4
W U S o n g .ZHANG Mi n— q i ng .LEI Yu
ቤተ መጻሕፍቲ ባይዱ
f Ⅱ . K e y " L a b o r a t o r y o f N e t w o r k&I n f o r ma t i o n S e c u r i t y u n d e r t h e C h i n e s e A r m e d P o l l &F o r c e .D e p t . f o E l e c t r o n i c .b . I n s t i t u t e f o I n f o r ma t i o n S e —
A b s t r a c t :D e t e c t i o n o f L S B m a t c h i n g s t e g a n o g r a p h y i s a n i m p o r t a n t r e s e a r c h s u b j e c t i n i m a g e s t e g a n a l y s i s .T h i s p a p e r p r o —

基于LSB图像之加密信息隐藏应用实现

基于LSB图像之加密信息隐藏应用实现

基于LSB图像之加密信息隐藏应用实现摘要随着Internet的发展,人们越来越频繁的传递信息,在给人们带来便利的同时,也给人们的安全和隐私带来了隐患。

从很久以前,人们就开始了解如何保护自己的信息,发展到现在,信息安全主要分为两方面,密码学和信息隐藏。

本文在密码学这块的研究主要是RSA算法、AES算法和3DES算法。

RSA 是在1977年被提出来的,属于非对称加密算法,广泛用于公钥加密和电子商务中。

而对于信息隐藏技术方面,本文主要研究LSB算法。

LSB(LeastSignificant Bits)算法:一种常见的空间域数据隐藏算法,它替换了最低有效位以隐藏秘密信息。

通过LSB算法隐藏的信息一般来说肉眼察觉不出来,能很好地的保护秘密信息。

RSA算法可以将信息加密成密文,而LSB算法可以将加密后的密文隐藏到图片之中,人们的肉眼根本分辨不出来,将两者结合起来,可以更有效的保护信息安全。

关键词:加密,信息隐藏,LSB算法,RSA算法Implementation of encrypted information hiding based on LSB imageAbstractWith the development of the Internet, people are passing information more and more frequently, which brings convenience to people, but also brings hidden dangers to people's security and privacy. From a long time ago, people began to understand how to protect their own information. From now on, information security is mainly divided into two aspects, cryptography and information hiding. The research on cryptography in this article is mainly about RSA algorithm, AES algorithm and 3DES algorithm.RSA was introduced in 1977 and belongs to asymmetric encryption algorithm, which is widely used in public key encryption and e-commerce.As for the information hiding technology, this paper mainly studies the LSB algorithm. LSB (LeastSignificant Bits) algorithm: a common spatial data hiding algorithm, which replaces the least significant bit to hide secret information. The information hidden by the LSB algorithm is generally invisible to the naked eye, and can well protect secret information. The RSA algorithm can encrypt information into ciphertext, and the LSB algorithm can hide the encrypted ciphertext in the picture, people can't distinguish it by the naked eye. Combining the two can effectively protect information security.Keywords: encryption, information hiding, LSB algorithm, RSA algorithm目录一、前言 (2)(一)本设计的目的、意义及应达到的技术要求 (3)(二)本设计在国内外的发展概况及存在的问题 (3)(三)主要研究目标和内容 (4)(四)本设计应解决的主要问题 (4)二、系统需求分析 (5)(一)用户需求分析 (5)(二)功能需求分析 (5)(三)性能需求分析 (5)(四)可靠性需求分析 (5)(五)安全性需求分析 (6)三、可行性分析 (6)(一)技术可行性分析 (6)(二)经济可行性分析 (6)(三)操作可行性分析 (6)(四)性能可行性分析 (7)(五)安全可行性分析 (7)四、相关技术 (7)(一)信息隐藏概述 (7)(二)信息隐藏模型 (8)1.嵌入对象 (8)2.掩体对象 (8)3.隐藏对象 (9)4.密钥 (9)(三)信息隐藏的分类 (9)(四)信息隐藏的特点 (9)1.透明性 (10)2.不可检测性 (10)3.鲁棒性 (10)4.自恢复性 (10)5.安全性 (10)6.对称性 (10)7.可纠错性 (10)(五)信息隐藏技术与密码学技术 (10)(六)LSB算法 (12)(七)RSA算法 (12)1.算法描述 (12)2.RSA的安全性 (14)3.RSA的优缺点 (15)(八)AES算法 (15)1.AES简述 (15)2.AES的总体结构 (15)3.AES的详细结构 (17)(九)3DES算法 (19)1.3DES算法简述 (19)2.3DES算法的安全性 (22)五、系统设计 (22)(一)研究的基本思路和方法 (22)(二)总体设计 (22)(三)加密隐藏功能模块 (23)(四)提取解密功能模块 (24)六、系统测试 (25)(一)RSA加密和解密测试 (27)(二)AES加密测试 (29)(三)AES解密测试: (31)(四)3DES加密测试: (31)(五)3DES解密测试 (33)(六)LSB算法隐藏测试 (34)七、总结 (40)参考文献 (41)致谢 ..................................................................................................... 错误!未定义书签。

基于带权隐秘图像的2LSB隐写分析方法

基于带权隐秘图像的2LSB隐写分析方法

信息隐写通过将秘密信息隐藏在图像 、 视频 、 音频或其它数字载体中进行传送 ,以达到秘密通信 的目的 。信息隐写技术的研究包括正向隐写技术 和反向隐写分析技术 2 个方面 。网络通信的发展 为现代信息隐写技术的应用提供了前所未有的机 会 ,同时也给隐写分析研究提出了严峻的挑战 。 在众多隐写方式中 ,图像信息隐写是秘密通信
信息工程大学学报
Journal of Infor m ation Engineering University
Vol110 No14 Dec12009
基于带权隐秘图像的 2LSB 隐写分析方法
叶 茂 ,刘粉林 ,杨春芳 ,罗向阳
(信息工程大学 信息工程学院 , 河南 郑州 450002)
摘要 : 图像 2LSB ( Two Least Significant B its,最低两位比特 )替换隐写在各个位平面上的信息隐 写可以是相互独立的 ,其隐写比率可以不同 。文章基于带权隐秘图像检测方法的原理 ,给出了 最低两位平面含隐写信息的带权隐秘图像模型 , 依据该模型构建了 2LSB 替换隐写比率估计 方法 。该方法首先运用现有 LSB 检测方法对次低位隐写比率做出了估计 ,然后依据文章建立 的最低两位平面带权隐秘图像的模型 ,给出最低位隐写比率的估计 。实验结果表明 ,本方法能 较精确地估算出图像最低两位平面上各个位平面的隐写比率 。 关键词 : 隐写分析 ; 2LSB; EW S ( Extended W eighted Stego im age ) ; 位平面 中图分类号 : TP309. 2 文献标识码 : A 文章编号 : 1671 - 0673 ( 2009 ) 04 - 0449 - 05

n
© 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved.

LSB图像信息隐藏

LSB图像信息隐藏

LSB图像信息隐藏1.实验⽬的(1)了解信息隐藏中最常⽤的LSB算法特点,掌握LSB算法原理,设计并实现⼀种基于图像的LSB隐藏算法(2)了解如何通过峰值信噪⽐来对图像质量进⾏客观评价,并计算峰值信噪⽐2.实验内容(1)LSB隐藏算法(2)计算峰值信噪⽐3.实验原理 任何多媒体信息,在数字化时,都会产⽣物理随机噪声,⽽⼈的感观系统对这些随机噪声不敏感。

替换技术就是利⽤这个原理,通过使⽤秘密信息⽐特替换随机噪声,从⽽完成信息隐藏⽬标。

BMP灰度图像的位平⾯,每个像素值为8bit⼆进制值,表⽰该点亮度。

图像⾼位平⾯对图像感官质量起主要作⽤,去除图像最低⼏个位平⾯并不会造成画⾯质量的明显下降。

利⽤这个原理可⽤秘密信息(或称⽔印信息)替代载体图像地位平⾯以实现信息嵌⼊。

算法选⽤最低位平⾯来嵌⼊秘密信息。

最低位平⾯对图像的视觉效果影响最轻微,但很容易受噪声影响和攻击,解决办法可采⽤冗余嵌⼊的⽅式来增强稳健性。

即在⼀个区域(多个像素)中嵌⼊相同的信息,提取时根据该区域中的所有像素判断。

4.实验记录(1)隐藏算法算法分为三个部分实现:隐藏算法提取算法测试脚本1)隐藏算法源代码hide_lsb.m⽂件:function o=hide_lsb(block,data,I) %block:隐藏的最⼩分块⼤⼩ data:秘密信息 I:原始载体si=size(I);lend=length(data);% 将图像划分为M*N个⼩块N=floor(si(2)/block(2));M=min(floor(si(1)/block(1)),ceil(lend/N));o=I;for i=0:M-1% 计算每⼩块垂直⽅向起⽌位置rst=i*block(1)+1;red=(i+1)*block(1);for j=0:N-1% 计算每⼩块隐藏的秘密信息的序号idx=i*N+j+1;if idx>lendbreak;end;% 取每⼩块隐藏的秘密信息bit=data(idx);% 计算每⼩块⽔平⽅向起⽌位置cst=j*block(2)+1;ced=(j+1)*block(2);% 将每⼩块最低位平⾯替换为秘密信息o(rst:red,cst:ced)=bitset(o(rst:red,cst:ced),1,bit);endend;2)提取算法源代码dh_lsb.m⽂件:function out=dh_lsb(block,I) % block:隐藏的最⼩分块⼤⼩ I:携密载体si=size(I);% 将图像划分为M*N个⼩块N=floor(si(2)/block(2));M=floor(si(1)/block(1));out=[];% 计算⽐特1判决阈值:即每⼩块半数以上元素隐藏的是⽐特1时,判决该⼩块嵌⼊的信息为1thr=ceil((block(1)*block(2)+1)/2);idx=0;for i=0:M-1% 计算每⼩块垂直⽅向起⽌位置rst = i*block(1)+1;red=(i+1)*block(1);for j=0:N-1% 计算每⼩块图像隐藏的秘密信息序号idx=i*N+j+1;% 计算每⼩块⽔平⽅向起⽌位置cst=j*block(2)+1;ced=(j+1)*block(2);% 提取⼩块最低位平⾯,统计1⽐特个数,判决输出秘密信息tmp=sum(sum(bitget(I(rst:red,cst:ced),1)));if(tmp>=thr)out(idx)=1;elseout(idx)=0;end;end;end;3)测试脚本源代码test.m⽂件:fid=1;len=10;% 随机⽣成要隐藏的秘密信息d=randsrc(1,len,[0,1]);block=[3,3];[fn,pn]=uigetfile({'*.bmp','bmp file(*.bmp)';},'选择载体');s=imread(strcat(pn,fn));ss=size(s);if(length(ss)>=3)I=rgb2gray(s);elseI=s;end;si=size(I);sN=floor(si(1)/block(1))*floor(si(2)/block(2));tN=length(d);% 如果载体图像尺⼨不⾜以隐藏秘密信息,则在垂直⽅向上复制填充图像if sN<tNmultiple=ceil(tN/sN);tmp=[];for i=1:multipletmp=[tmp;I];end;I=tmp;end;% 调⽤隐藏算法,把携密载体写⾄硬盘stegoed=hide_lsb(block,d,I);imwrite(stegoed,'hide.bmp','bmp');[fn,pn]=uigetfile({'*.bmp','bmp file(*.bmp)';},'选择隐蔽载体');y=imread(strcat(pn,fn));sy=size(y);if(length(sy)>=3)I=rgb2gray(y);elseI=y;end;% 调⽤提取算法,获得秘密信息out=dh_lsb(block,I);% 计算误码率len=min(length(d),length(out));rate=sum(abs(out(1:len)-d(1:len)))/len;y=1-rate;fprintf(fid,'LSB:len:%d\t error rate:%f\t error num:%d\n',len,rate,len*rate);通过运⾏测试代码,对灰度图xxx3.bmp⽂件进⾏LSB算法的信息隐藏,并⽣成⽂件bide.bmp。

基于数字图像LSB隐写算法的研究..

基于数字图像LSB隐写算法的研究..

《新技术讲座》课程课程大作业作业名称:基于数字图像LSB隐写算法的研究姓名:其他组员:学号:班级:完成时间: 2013 年 11 月 2 日基于图像LSB隐写算法的研究(XX大学XX学院XX XX地联系方式)摘要:本文先对信息隐藏技术、隐藏模型、隐写术、隐写算法等进行了简单介绍,然后借助软件matlab7.0,采用空域隐写算法LSB将秘密信息嵌入数字图像,完成隐写;接着将嵌入的秘密信息提取出来,通过计算其峰值信噪比PSNR来评估该隐写算法的不可感知性,证实了LSB嵌入时在图像的最不重重要位加载秘密信息,一定程度上加强了秘密信息的不可感知性;再通过缩小和放大二倍来分析隐写算法的鲁棒性,试验结果表明,该算法计算量低,在低嵌入率时检测结果准确,优势明显,而对嵌入率较高的载秘图像,需要修正后才能达到常规检测的标准;最后,在实验总结基础上提出了一些建议,并对未来进行了展望。

关键词:信息隐藏技术隐写算法 LSB 信息嵌入信息提取 PSNR 不可感知性鲁棒性第一部分1.引言随着计算机技术、信息处理技术和计算机网络技术的飞速发展,Intemet在世界范围内得到了大力推广,各种数字信息的制作、传输、存储和处理由此变得越来越简单。

通过互联网,人们可以快捷高效地获得图像、声音和文本等各种多媒体数据,分享海量的信息资源。

各种机密信息,如个人的信用卡账号逐渐在网络通信中出现。

然而,全球互联网是一个开放的系统,虽然普通用户可以通过网络方便、快捷地交流信息,但是随之而出现的问题也十分严重:个人的隐私的安全如帐号、个人信息、密码口令、电子邮件等能否得到保障;多媒体作品的版权能否得到应有的保护;电子商务中的企业机密能否不被商业间谍所窃取;涉及到国家安全、政府绝密的文件在网络中能否被安全地传输等。

因此,蓬勃发展的网络使得信息传输和交流更加简单易行的同时,也对关系国家安全、经济发展乃至个人隐私等方而的信息安全提出了更高的要求。

国内外各界已经高度重视如何在既能有效地保证各种信息的安全这个大前提下,也能充分利用Internet便利的问题,由此一门新兴的交叉学科——信息隐藏诞生了。

本科毕业设计-基于lsb的信息隐藏技术的实现

本科毕业设计-基于lsb的信息隐藏技术的实现

引言信息隐藏将在未来网络中保护信息不受破坏方面起到重要作用,信息隐藏是把机密信息隐藏在大量信息中不让对手发觉的一种方法。

信息隐藏的方法有很多种,基于图象的信息隐藏检测技术是隐写分析技术的基础,对于保障网络信息安全和提高信息隐藏算法的安全性具有重要意义。

最低有效位算法LSB(Least significant bit)是一种简单而通用的信息隐藏方法,大部分的多媒体文件(如图像、音频和视频文件等)都可作为LSB算法中的载体。

本文讨论以图像为载体的LSB隐藏算法。

第一章绪论1.1 信息隐藏技术的来源随着互联网的迅速发展,网上提供服务越来越丰富,人们如今可以通过因特网发布自己的作品、重要信息和进行网络贸易等,但是随之而出现的问题也十分严重:如作品侵权更加容易,篡改也更加方便。

计算机和通信网技术的发展与普及,数字音像制品以及其他电子出版物的传播和交易变得越来越便捷,但随之而来的侵权盗版活动也呈日益猖獗之势。

因此如何既充分利用因特网的便利,又能有效地保护知识产权,已受到人们的高度重视。

信息隐藏技术作为网络安全技术的一个重要新兴课题,内容涉及数据隐藏、保密通信、密码学等相关学科领域,作为隐蔽通信和知识产权保护等的主要手段,正得到广泛的研究与应用。

为了打击犯罪,一方面要通过立法来加强对知识产权的保护,另一方面必须要有先进的技术手段来保障法律的实施。

信息隐藏技术以其特有的优势,引起了人们的好奇和关注。

人们首先想到的就是在数字产品中藏入版权信息和产品序列号,某件数字产品中的版权信息表示版权的所有者,它可以作为侵权诉讼中的证据,而为每件产品编配的唯一产品序列号可以用来识别购买者,从而为追查盗版者提供线索。

此外,保密通信、电子商务以及国家安全等方面的应用需求也推动了信息隐藏研究工作的开展。

中国自古就有这样的谚语,叫做“耳听是虚,眼见为实”,“百闻不如一见”,英语中也有“Seeing is believing”的说法。

这些都表明人们往往过分相信自己的眼睛,而这正是信息隐藏技术得以存在和发展的重要基础,在这一研究领域,大量事实告诉人们:眼见不一定为实!1.2信息隐藏技术的发展1.2.1历史上的隐写术现代信息隐藏技术是由古老的隐写术(Steganography)发展而来的,隐写术一词来源于希腊语,其对应的英文意思是“Covered writing”。

基于图像LSB的隐藏检测算法研究

基于图像LSB的隐藏检测算法研究
T 3 9 7 TP 0 . P 0. ; 316 中 图分 类 号
De e to g rt m s a c s d o ma e LS S e a O r p y t c in Alo ih Re e r h Ba e n I g B t g n g a h
S UN r g MA Bion Chu b no
( c o l fIf r t n a dCo S h o n o mai n mm u iain,Gul ie st fElc rn cTe h oo y,Gul 5 1 0 o o nc to in Unv riyo eto i c n lg i ii n 4 0 4)
总第 2 1 1 期
舰 船 电 子 工 程
S pElcr ncE gn e ig hi eto i n iern
Vo. 2 No 1 13 .
66
21 0 2年第 测 算 法研 究 S
孙碧容 马 春 波
桂林 5 10 ) 4 0 4 ( 桂林 电子科技大学信息与通信学 院 摘 要
e t ni r v dag r h b sd o h n sa mp o e lo i m a e n t e t QRSa dI ( nyR)ag r h ,cl dQRS o l .Smua inr s l f r e u e fma n RS o l lo i ms al t e ( nyR) i lt ut o l g mb r — o e s aa n oi
文章研究了 R ( g lrGru s n ig lr o p ) QR ( a rt tg nls ) I ( R) I rv dRSb l S Reua o p dSn ua u s、 S Qu dai RSSea ayi 和 RS 仅 a Gr c s (mp oe yOny

LSB算法实现BMP图像中的信息隐藏及提取

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)实验思考在信息隐藏的研究中,主要研究信息隐藏算法与隐蔽通信。

基于LSB图像隐藏和解密算法深度讲解

基于LSB图像隐藏和解密算法深度讲解

基于LSB图像隐藏和解密算法深度讲解 本⼈错误之处,欢迎指正。

LSB(LeastSignificant Bits)加密算法:将秘密信息嵌⼊到载体图像像素值的最低有效位,也称最不显著位,改变这⼀位置对载体图像的品质影响最⼩。

普及⼀下常识:RGB图像,蓝⾊,红⾊,绿⾊混合⽽成的彩⾊图像,读取后由三个⼋位m*n的矩阵组成,m*n代表图像的⼤⼩,也就是像素的多少,⼋位指的是⼀个像素占了⼋位⼆进制的⼤⼩,转为⼗进制也就是0-255。

最低有效位是低四位,本系统使⽤低四位进⾏储存数据。

本次仿真实验通过MATALB进⾏仿真,并且只分析灰⾊图像,原因是因为彩⾊图像是三个灰度图像代表了三种颜⾊混合⽽成。

编写两个界⾯,如下图所⽰: 本次讲解给出的代码加密算法代码和解密算法代码,涉及到的界⾯算法不与给出和解释。

算法思想:1,读⼊⼀个m*n的灰度图像,把每⼀位的像素的低四位⽤或运算清0,得到我称之为的“载体图像”。

2,读⼊信息图像,也就是需要隐藏的图像(也可以是其他的信息),将图像的⼋位拆开成⾼四位和低四位。

3,在载体前6个的低四位数据中,放⼊信息图像的⼤⼩信息。

3,按照先⾼后低的顺序,存⼊载体图像,先从左到右,再换下⼀⾏。

4,解密⽆⾮就是上⾯步骤的逆序⽽已。

看完思想后,⼀般情况下就可以⾃⼰尝试写程序了,其实⽤C语⾔对位操作更加⽅便,但是,考虑到需要显⽰图⽚,所以决定使⽤MATLAB进⾏仿真。

此处只提供加密和解密的算法,供需要的⼈学习,界⾯只是单纯的调⽤,所以在这没必要介绍。

%%%%%%%%%加密算法%%%%%%%%%%%clc;close all;clear;Inimage=imread('2222.jpg');Inimage=rgb2gray(Inimage);%真彩转灰度imwrite(Inimage,'car.jpg');figure(1);subplot(221),imshow(Inimage);title('原图');carrierl=bitand(Inimage,240);%清空低四位subplot(222),imshow(carrierl),title('清空低四位');%读取信息%text=158;text=imread('mess3.jpg');text=rgb2gray(text);imwrite(text,'messss.jpg');subplot(223),imshow(text),title('信息图');textu8=uint8(text);%读取输⼊图⽚的⼤⼩[m,n]=size(Inimage);m=double(m);n=double(n);%清空低四位数据after=carrierl;%读取信息⼤⼩[m1,n1]=size(textu8);%计数器count=1;count=double(count);%前六位⽤来放信息⼤⼩的信息m1,n1bit4=m1;%提出⾼⾼四位hhtext=bitand(bit4,3840);%右移⼋位位hhtext=bitshift(hhtext,-8);%提出⾼四位hightext4=bitand(bit4,240);%右移四位hightext4=bitshift(hightext4,-4);%提出低四位lowtext=bitand(bit4,15);%计算第⼏⾏locationy=ceil(count/n);%计算第⼏列locationx=count-(locationy-1)*n;%放⼊⾼四位after(locationy,locationx)=bitor(carrierl(locationy,locationx),hhtext); count=count+1;%计算第⼏⾏locationy=ceil(count/n);%计算第⼏列locationx=count-(locationy-1)*n;%放⼊⾼四位after(locationy,locationx)=bitor(carrierl(locationy,locationx),hightext4); count=count+1;locationy=ceil(count/n);locationx=count-(locationy-1)*n;%放⼊低四位after(locationy,locationx)=bitor(carrierl(locationy,locationx),lowtext); %计数count=count+1;bit4=n1;%提出⾼⾼四位hhtext=bitand(bit4,3840);%右移⼋位位hhtext=bitshift(hhtext,-8);%提出⾼四位hightext4=bitand(bit4,240);%右移四位hightext4=bitshift(hightext4,-4);%提出低四位lowtext=bitand(bit4,15);%计算第⼏⾏locationy=ceil(count/n);%计算第⼏列locationx=count-(locationy-1)*n;%放⼊⾼四位after(locationy,locationx)=bitor(carrierl(locationy,locationx),hhtext); count=count+1;%计算第⼏⾏locationy=ceil(count/n);%计算第⼏列locationx=count-(locationy-1)*n;%放⼊⾼四位after(locationy,locationx)=bitor(carrierl(locationy,locationx),hightext4); count=count+1;locationy=ceil(count/n);locationx=count-(locationy-1)*n;%放⼊低四位after(locationy,locationx)=bitor(carrierl(locationy,locationx),lowtext); %计数count=count+1;%开始载⼊数据for i=1:m1for j=1:n1bit4=textu8(i,j);%提出⾼四位hightext4=bitand(bit4,240);%右移四位hightext4=bitshift(hightext4,-4);%提出低四位lowtext=bitand(bit4,15);%计算第⼏⾏locationy=ceil(count/n);%计算第⼏列locationx=count-(locationy-1)*n;%放⼊⾼四位after(locationy,locationx)=bitor(carrierl(locationy,locationx),hightext4); %计数count=count+1;locationy=ceil(count/n);locationx=count-(locationy-1)*n;%放⼊低四位after(locationy,locationx)=bitor(carrierl(locationy,locationx),lowtext); %计数count=count+1;endendsubplot(224),imshow(after),title('载⼊信息后');%保存图⽚,为tif格式⽆损耗imwrite(after,'after.tif');capity=num2str(m*n+4);messc=num2str(m1*n1);xlabel(['总像素容量为:',capity,';载体信息⼤⼩为',messc],'Color','b'); %%%%%%%%解密算法%%%%%%%%%%%%%clc;clear;close all;Inimage2=imread('after.tif');figure(1);subplot(221),imshow(Inimage2);title('原图'); %%%%%%读取图⽚的⼤⼩信息%%%%%%%提取⾼⾼四位m1hh=bitand(Inimage2(1,1),15);%提取⾼四位m1high=bitand(Inimage2(1,2),15);%提取低四位m1low=bitand(Inimage2(1,3),15);%⾼四位左移m1high=bitshift(m1high,4);%⾼⾼四位左移⼋位m1hh=double(m1hh);m1hh2=bitshift(m1hh,8);%合成数据m1=double(m1high+m1low)+m1hh2;%提取⾼⾼四位n1hh=bitand(Inimage2(1,4),15);%提取⾼四位n1high=bitand(Inimage2(1,5),15);%提取低四位n1low=bitand(Inimage2(1,6),15);%⾼四位左移n1high=bitshift(n1high,4);%⾼⾼四位左移⼋位n1hh=double(n1hh);n1hh=bitshift(n1hh,8);%合成数据n1=double(n1high+n1low)+n1hh;m1=double(m1);n1=double(n1);%%%%%%%开始读出数据,⽣成图⽚%%%%% %⽣成2个空⽩矩阵messagehigh=zeros(m1,n1);messagelow=zeros(m1,n1);result=zeros(m1,n1);%载体⼤⼩[m,n]=size(Inimage2);%初始化数值count=1;oddc=0;evenc=0;for i=1:mfor j=1:n%信息读取结束⾃动跳出if count==m1*n1*2+4break;%前四位已经读取elseif(count>6)dataout=bitand(Inimage2(i,j),15);locount=count-6;if rem(locount,2)==0evenc=evenc+1;%计算第⼏⾏locationy=ceil(evenc/n1);%计算第⼏列locationx=evenc-(locationy-1)*n1; messagelow(locationy,locationx)=dataout;elseoddc=oddc+1;%计算第⼏⾏locationy=ceil(oddc/n1);%计算第⼏列locationx=oddc-(locationy-1)*n1; messagehigh(locationy,locationx)=dataout;endendcount=count+1;endendfor i=1:m1for j=1:n1messagehigh(i,j)=bitshift(messagehigh(i,j),4); result(i,j)=bitor( messagehigh(i,j),messagelow(i,j)); endendcompare=imread('mess2.jpg');compare=rgb2gray(compare);result=uint8(result);subplot(222),imshow(result);title('结果');subplot(223),imshow(compare);title('信息'); compare=imread('mess.jpg');compare=rgb2gray(compare);。

pythonlsb算法隐写实现原理

pythonlsb算法隐写实现原理

pythonlsb算法隐写实现原理
LSB(Least Significant Bit)算法是一种简单的隐写术,它通过修改图像、音频、视频等多媒体数据的最不重要位来隐藏信息。

在实现时,首先将要隐藏的信息转换为二进制格式,然后将其嵌入到多媒体数据的最不重要位中。

由于人的视觉、听觉等感官对于多媒体数据的这些位并不敏感,因此嵌入信息后不会对多媒体数据造成明显的改变,从而实现隐写。

具体实现步骤如下:
1. 将要隐藏的信息转换为二进制格式。

例如,要将字母"A"隐藏在图像中,
首先将其转换为二进制形式:。

2. 读取图像的每个像素的最低位,将其替换为要隐藏的二进制信息的一位。

例如,如果一个像素的值为255(二进制形式为,那么将其最低位替换为中的第一位,得到,这样就将字母"A"的第一位隐藏在了这个像素中。

3. 重复步骤2,直到将所有的信息位都隐藏在图像中。

4. 保存修改后的图像。

需要注意的是,由于LSB算法非常简单,容易被破解。

因此,在实际应用中,需要结合其他加密算法来提高隐写的安全性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
将 重要 信息 隐藏 于公开 信 息的冗 余部 分 ,通 过 公开信 息 的
传 输来 传递 秘密信 息 ,从而达 到 安全传 递秘 密信息 的 目的。
图 1 隐 写 系 统 的 一 般 模 型
2隐写术的基本原理和分类
隐写技术是利用人类感觉器官的不敏 感 ( 感觉冗余 ) ,以
该隐 写 系统 模型 的 安全性 取决 于被 动攻 击者 丙是 否有 能 力 检 测 出 从公 开 信 道 获 取 的数 据 中是 否 存 在秘 密信 息
甲 ~ 竺 堕 一 I ] z


同时 ,也带 来 了大量 的负面 影 响 ,例 如信 息篡 改 、版权侵
犯等等 。如 何保 证信 息传播 的安 全 ,成为 了近年 来 的热 门
研究方 向 。 隐写 术是信 息隐 藏 (0 o ma i n 1 f r t o Hi i g) d n 的一个
( ho o pi / E c / l n o p t nA e g Ui r t fSa hi o c nead Tc o g , Sa hi o o J Ci S o f Ota l tb d Cm u r Eg e  ̄ , n e i o n a f S e n eh l y hn a z o g , ha c l c - e ra a e r vs y h g r ic no g n
Th I l me t of e mp e n LSB St g n r p y e a og a h Al o ih g r t m b s o I g a ed n ma e
L o , Z A G i -h i × a-si WA G u i IY u H N Dn g u, U S i a , N Y -p g n
wi MAT AB. t h e d d v l m n ted f t g ng a h Wa pitd U . t h L n e n , e eo e t rn o sa a o r py t p s one O t
Ke w o d y r s: S e a o r py; LS tg ng a h B; S e GeeaLeabharlann o ed n rt r1引言
随 着多媒 体技 术和 网络 技 术的飞 速 发展 ,互联 网成 为 了当今社 会最 重要 的信 息传送 渠道 ,在 互联 网上每 时每 刻
信 息 C通 过 公开 信道 传 送给 乙 ;将 开关 置于 “ ”状 态 则 l 是将 秘 密消 息 M 利用 随机 数 R、密钥 K 通过 嵌 入算 法嵌 入 到载 体 信 息 C 中,使 之 变 成载 秘 信 息 S后再 经 公 开信 道 传 送 给 乙 。乙 利用 事 先 通过 秘 密 信 道得 到 的 密 钥 K 以 及提 取算 法提 取 出秘 密信 息 M ’ ,希 望尽 量 得到 甲发 送 的 秘 密 信息 M 。这里 假定 K 只有 甲和 乙知 道 ,丙无 法获 得 , 且 K 与 R、M、C均 独 立 ,则 丙若 想从 载秘 信 息 S中提 取 出秘 密信 息 M 来 ,难度 相 当大 。这 里 的载 体 信 息 C 有 时简称 载体 ,载秘 信 息 S也称 为含隐 载体 。
的研 究热 点 。 介 绍 了信 息 隐 藏技 术 的 概 念 和 发 展 ,分析 了最 常 用 的 L B隐 写算 法原 理 ,并 且 用 MA L B软 件 成 功地 实现 了该 隐 S TA
写算 法 。最 后 指 出 了隐 写 术 的 发展 趋 势 。
关 键 词 :隐 写 术 ;LB S ;随 机 数 发 生 器
主要分 支 。隐写 术 (t g n g a h ) 词来 源于 希腊 词 se a o r p y 一 汇 se o s g a h a tg n 和 rp i ,意 即 “ 隐藏” (o e ) “ 写” cvr和 书
( in ) wr ig ,是一种保密通信技术。通过信息隐藏技术,可 t
基于 图像的 L B隐写算法 的实现 S
李 友 ,张 定会 ,许 赛 赛 ,王 玉 萍
( 上海理 工 大学 光电信 息 与计算机 工程 学院 ,上海 20 9 ) 0 03
摘 要 :随着 多媒 体技 术的快速发展 ,信息安 全变得越 来越 重要 ,如何保 证信息不被 窃取和 篡改 ,已成为近年 来信 息安 全领域
fo rm big nec pe ad m d id h s eo e htp t o rsac i h fed o i oma in e ui en i ret d n o ie , a b c m a o so f ee rh n e i f n r t sc r y. H r itou e te o cp a d t f t l f o t ee n rd cd h c ne t n dv lp n o if r to h i tc nlg e eome t f n oma i in eh oo y, a ay e te h oy f h mot o n dg n lz d h te r o te s cmmo se a o rp y lo i m o L B, a d civ t i agoi m n tg n ga h ag r h t f S n a h e hs l r h e t
Ab ta t As h rpd e eome t f sr c : t e a i d v lp n o mut da eh o g li i me tcn l y, i oma i scr y a bc me o n r to e ui h s eo moe n moe mp ra t t pe e t n oma i f n t r a d r i otn , 0 rv n i r to f n
相关文档
最新文档