精华内容
下载资源
问答
  • 奥斯卡优秀电影《美丽心灵》里面讲述一位优秀数学家为政府破译敌国通讯的情节,如电影所讲,现实中也有着类似的情节,在我们的生活中,我们所看过的图片、视频和游览过的网页,也许就隐藏着他人需要传输的秘密信息...

    走进信息隐藏的世界,全面讲解信息隐藏——第1节:信息隐藏技术简介


    专栏题记:奥斯卡优秀电影《美丽心灵》里面有讲述一位优秀数学家为政府破译敌国通讯的情节,如电影所讲,现实中也有着类似的情节,在我们的生活中,我们所看过的图片、视频和游览过的网页,也许就隐藏着他人需要传输的秘密信息(是不是有点恐怖,差一点成为帮凶了),这就是信息隐藏!由于应用场景一般比较神秘,导致很多人其实都不太了解信息隐藏技术。由于国家越来越重视网络信息的安全,现在也是有越来越多的研究人员进行着这方面的研究工作。本人也是其中一位非常平凡的研究人员,笔者抱着学习和分享的态度,希望略尽绵薄之力让大家对信息隐藏技术不再陌生,同时慢慢掌握如何进行信息隐藏的技术。接下来本人会不定时更新信息隐藏技术的相关原理和关键技术实现过程,同时会提供程序代码给大家学习,也欢迎有志之士可以和我一同创建学习平台,也可以在评论下建议下一节希望学习的研究内容。谢谢!


    目录

    1、信息隐藏概念

    2、信息隐藏系统模型

    3、信息隐藏技术的分支简介

    4、信息隐藏技术的特性和要求

    5、信息隐藏关键技术

    6、信息隐藏的应用实例

    案例一:信息隐藏技术在电子商务中的应用

    案例二:信息隐藏技术在网络战中的运用



    • 信息隐藏概念

           信息隐藏也称数据隐藏,信息隐藏技术是指在不对载体数据产生可察觉影响的前提下,将密信数据隐藏到载体中实现隐蔽通讯的技术。是集多学科理论与技术于一身的新兴技术领域。信息隐藏技术主要是指将特定的信息嵌入数字化宿主信息(如文本,数字化的声音、图像、视频信号等)中,信息隐藏的目的不在于限制正常的信息存取和访问,而在于保证隐藏的信息不引起监控者的注意和重视,从而减少被攻击的可能性,在此基础上再使用密码术来加强隐藏信息的安全性,因此信息隐藏比信息加密更为安全。应该注意到,密码术和信息隐藏技术不是互相矛盾、互相竞争的技术,而是相互补充的技术,他们的区别在于应用的场合不同,对算法的要求不同,但可能在实际应用中需要互相配合。特定的信息一般就是保密信息,信息隐藏的历史可以追溯到古老的隐写术,但推动了信息隐藏的理论和技术研究始于1996年在剑桥大学召开的国际第一届信息隐藏研究会,之后国际机构在信息隐藏领域中的隐写术、数字水印、版权标识,可视密码学等方面取得大量成果。


    • 信息隐藏系统模型

           广义的信息隐藏系统模型主要有四部分组成:(1)信息嵌入,即利用嵌入秘钥来实现嵌入对象的隐藏过程;(2)信息提取,即利用提取秘钥从隐藏对象或可能经过修改的隐藏对象中提取或恢复出嵌入对象,在提取时,原始的载体对象可能需要参与也可能不需要参与;(3)秘钥生成,根据安全参数生成嵌入秘钥和提取秘钥;(4)隐藏分析,隐藏对象在传输过程中可能会被隐藏分析者截获并进行处理。信息隐藏系统模型如下图所示:

           在信息隐藏系统模型中,在嵌入过程中我们使用嵌入密钥将嵌入对象嵌入掩护对象中,生成隐藏对象,如下图将一个txt的文本嵌入到一张JPEG的图像中。嵌入对象和掩护对象可以是文本、图像或音频等等。在我们没有使用工具进行分析时,我们觉得掩护对象与隐藏对象几乎没有差别,这就是信息隐藏概念中所说的“利用人类感觉器官的不敏感性”。隐藏对象在信道中进行传输,在传输的过程中,有可能会遭到隐藏分析者的攻击,隐藏分析者的目标在于检测出隐藏对象、查明被嵌入对象、向第三方证明消息被嵌入、删除被嵌入对象、阻拦等。其中前三个目标通常可以由被动观察完成,称为被动攻击,后两个目标通常可以由主动攻击实现。提取过程则是在提取密钥的参与下从所接收到的隐藏对象中提取出嵌入对象,如将上述txt文件从JPG的图像中提取出来。有些提取过程并不需要掩护对象的参与,这样的系统称为盲隐藏技术,而需要掩护对象参与的系统则称为非盲隐藏技术。


    • 信息隐藏技术的分支简介

           作为信息安全领域的一个重要组成部分,信息隐藏技术已成为信息安全领域中一个既具有研究价值、同时又极具挑战性的热门课题,信息隐藏技术的分支主要包括:隐写术、数字水印、数字指纹、隐蔽信道、阈下信道、低截获概率通信和匿名通信等等。其分类示意图如下图所示:


    • 信息隐藏技术的特性和要求

           信息隐藏不同于传统的加密,因为其目的不在于限制正常的资料存取,而在于保证隐藏数据不被发现。因此,信息隐藏技术必须考虑正常的信息操作所造成的威胁,即要使机密数据对正常的数据操作技术具有免疫力。根据信息隐藏的不同目的和技术要求,该技术的存在以下特性和要求:

    1. 透明性或不可感知性:利用人类视觉系统或人类听觉系统属性,经过一系列的隐藏处理,使得载体对象没有明显的降质现象,如LSB算法等。当然,有些场合可能需要使用可见水印,例如某些版权维护的场合。
    2. 鲁棒性:指不因隐藏对象通过某些常用操作而导致嵌入对象丢失的能力。这里的常用操作包括滤波操作、有损压缩、几何变换、D/A或A/D等。
    3. 安全性:指算法具有较强的抗恶意攻击能力。
    4. 不可检测性:指载体数据嵌入数据后无明显改变,至少肉眼看不出变化

    • 信息隐藏关键技术

      近年来,信息隐藏技术的研究取得了很大的进步,已经提出了各种各样的隐藏算法。关键的信息隐藏技术有如下几种。

        (1)替换技术

        所谓替换技术,就是试图用秘密信息比特替换掉伪装载体中不重要的部分,以达到对秘密信息进行编码的目的。替换技术包括最低比特位替换、伪随机替换、载体区域的奇偶校验位替换和基于调色板的图像替换等。替换技术是在空间域进行的一种操作,通过选择合适的伪装载体和适当的嵌入区域,能够有效地嵌入秘密信息比特,同时又可保证数据的失真度在人的视觉允许范围内。

        已经提出的各种算法大都给出了其实现思想,如对于基于调色板的图像格式,可操作其调色板来嵌入信息,也可以利用它的量化值来隐藏秘密信息,因此该技术在数据伪装中得到了广泛的应用。

        替换技术算法简单,容易实现,但是鲁棒性很差,不能抵抗图像尺寸变化、压缩等一些基本的攻击,因此在数字水印领域中一般很少使用。

        (2)变换技术

        大部分信息隐藏算法都是在变换域进行的,其变换技术包括离散傅里叶变换(DFT)、离散余弦变换(DFT)、离散小波变换(DWT)和离散哈达玛特变换(DHT)等。这些变换技术都有各自的特点。

        DFT在信号处理中有着广泛应用,在信息隐藏领域也同样得到了应用。它将图像分割成多个感觉频段,然后选择合适部分来嵌入秘密信息。D CT使空间域的能量重新分布,从而降低了图像的相关性。在DCT域中嵌入信息的方法,通常是在一个图像块中调整两个(或多个)DCT系数的相对大小。DWT是对图像的一种多尺度、空间频率分解,即将输入信号分解为低分辨率参考信号和一系列细节信号。在一个尺度下,参考信号和细节信号包含了完全恢复上一尺度下信号的全部信息。

        (3)扩频技术

        当对伪装对象进行过滤操作时可能会消除秘密信息,解决的方法就是重复编码,即扩展隐藏信息。在整个伪装载体中多次嵌入一个比特,使得隐藏信息在过滤后仍能保留下来,这种方法虽然传输效率不高,但却具有较好的健壮性。扩频技术一般是使用比发送的信息数据速率高许多倍的伪随机码,将载有信息数据的基带信号频谱进行扩展,形成宽带低功率谱密度信号。最典型的扩频技术,为直序扩频和跳频扩频。直序扩频是在发端直接用具有高码率的扩频编码去扩展信号的频谱,而在接收端用相同的扩频编码解扩,将扩频信号还原为原始信号。跳频扩频是在发端将信息码序列与扩频码序列组合,然后按照不同的码字去控制频率合成器,使输出频率根据码字的改变而改变,形成频率的跳变;在接收端为了解跳频信号,要用与发端完全相同的本地扩频码发生器去控制本地频率合成器,从中恢复出原始信息


    • 信息隐藏的应用实例

    案例一:信息隐藏技术在电子商务中的应用

      目前信息隐藏技术在电子商务中的应用主要体现在以下几个方面:

      1.数据保密

      在具体电子商务活动中,数据在Internet上进行传输一定要防止非授权用户截获并使用,如敏感信息,谈判双方的秘密协议合同网上银行交易中的敏感数据信息,重要文件的数字签名和个人隐私等等。另外,还可以对一些不愿为别人所知道的内容使用信息隐藏的方式进行隐藏存储。

      2.数据的不可抵赖性

      在网上交易中,交易双方的任何一方不能抵赖自己曾经做出的行为,也不能否认曾经接收到的对方的信息,这是交易系统中的一个重要环节。这可以使用信息隐藏技术中的水印技术,在交易体系的任何一方发送或接收信息时,将各自的特征标记以水印的形式加入到传递的信息中,这咱水印应是不能被去除的,可达到确认其行为的目的。

      3.防伪

      商务活动中的各种票据的防伪也是信息隐藏技术的用武之地。在数字票据中隐藏的水印经过打印后仍然存在,可以通过再扫描回数字形式,提取防伪水印,以证实票据的真实性。

      4.数据的完整性

      对于数据完整性的验证是要确认数据在网上传输或存储过程中并没有被窜改,可通过使用脆弱水印技术保护的媒体一旦被窜改就会破坏水印,从而很容易被识别。

    案例二:信息隐藏技术在网络战中的运用[2]

      信息隐藏之所以比密码加密的方法进行保密通信具有更大优势,是因为以信息隐藏方式实现隐蔽通信,除通信双方以外的任何第三方并不知道秘密通信这个事实的存在,这就较之单纯的密码加密更多了一层保护,使得网络加密机制从“看不懂”变为“看不见”,以不至成为好事者攻击的目标。

      (1)数据保密

      在因特网上防止非授权用户截获并使用传输的一些秘密数据,是网络安全的一个重要内容。信息隐藏技术在军事上的应用,可以将一些不愿为人所知的重要标识信息用信息隐藏的方式进行隐蔽存储,像军事地图中标明的军备部署、打击目标,卫星遥感图像的拍摄日期、经纬度等等,都可用隐藏标记的方法使其以不可见的形式隐藏起来,只有掌握识别软件的人才能读出标记所在。

      (2)数据保护

      数据保护主要是保证传输信息的完整性。由于隐藏的信息是被藏在宿主图像等媒体的内容中,而不是文件头等处,因而不会因格式的变换而遭到破坏。同时隐藏的信息具有很强的对抗非法探测和非法破解的能力,可以对数据起到安全保护的作用。对于数据完整性的验证是要确认数据在网上传输或存储过程中并没有被窜改。通过使用脆弱水印技术保护的媒体一旦被窜改就会破坏水印,从而很容易被识别。

      (3)数据免疫

      所谓免疫是指不因宿主文件经历了某些变化或处理而导致隐藏信息丢失的能力。某些变化和处理包括:传输过程中的信道噪声干扰,过滤操作,再取样,再量化,数/模、模/数转换,无损、有损压缩,剪切,位移等。


    作者:Daniel
    来源:CSDN 
    版权声明:本文为原创文章,转载请附上博文链接:
    https://blog.csdn.net/qq_26464039/article/details/85779870


    展开全文
  • 在整个介绍信息隐秘技术部分, 为了统一起见, 我们约定以下名词: 称需要隐秘的信息为秘密信息( secret) , 秘密信息隐藏的媒介叫做载体( cover) , 隐藏后的结果叫做隐蔽载体( stego-cover) 一、图...

    从本章开始, 我们将具体接触到许多数字信息的隐写术。为了与后面数字水印技术相区别, 我们也将隐写术称为信息隐秘技术。本章主要阐述图像信息作为秘密信息的隐藏, 即图像降级隐写。
    在整个介绍信息隐秘技术部分, 为了统一起见, 我们约定以下名词: 称需要隐秘的信息为秘密信息( secret) , 秘密信息隐藏的媒介叫做载体( cover) , 隐藏后的结果叫做隐蔽载体( stego-cover)
    一、图像降级
    主体对客体的读写一般应满足以下两个规则:
    规则 1: 主体只能向下读, 不能向上读。
    规则 2: 主体只能向上写, 不能向下写。
    我们通常所说的信息降级, 就是通过将秘密信息嵌入较低安全级别的客体中, 破坏了第二个规则, 从而使机密的信息看上去不再机密。在伪装技术中我们经常要这样做, 以使秘密信息被伪装成为低级别的信息, 不易被发现。图像降级就是伪装技术的一个应用。
    二、简单的图像信息伪装技术
    1.直接 4bit 替换法
    这是将秘密图像信息嵌入载体图像的一种最简单的方法,指直接用秘密图像像素值的高 4bit 去替换载体图像像素值的低 4bit。

    % 文件名: imagehide. m
    % 函数功能: 直接将秘密图像的高 4bit 隐藏在 RGB 载体图像的 R, G, B 层中所
    选的那一层的低 4bit, 并将秘密图像提取出来, 最后显示。要求载体图像的大小大于
    等于秘密图像的大小, 且秘密图像是二值或灰度图像
    % 输入格式:
    % data = imagehide( ′c: \ lenna. bmp′, ′c: \ woman. bmp′, ′c: \mix. bmp′, ′bmp′, 3 )
    % 参数说明
    % cover 是载体图像的地址
    % message 是秘密图像的地址
    % goleimage 是隐藏后图像的地址
    % permission 是图像的类型
    % level 是作为载体的具体层, R 为 1 , G 为 2, B 为 3
    % data 是隐藏后图像的矩阵
    
    function data = imagehide( cover, message, goleimage, permission, level)
    % 提取图像信息并分层
    cover = imread( cover, permission) ;
    data = cover;
    msg = imread( message, permission) ;
    [ row, col] = size( cover) ;
    cover1 = cover(∶,∶, level) ;
    % 置载体图像 R 层的低 4bit 为 0
    for i = 1∶row
    		for j = 1∶col /3
    				cover1( i, j) = bitand( cover1( i, j) , 240) ;
    		end
    end
    % 置秘密图像的低 4bit 为 0
    takemsg4 = bitand( msg, 240) ;
    % 将秘密图像的高 4bit 右移 4 位
    shiftmsg4 = bitshift( takemsg4, - 4) ;
    % 图像隐藏
    for i = 1∶row
    		for j = 1∶col /3
    				cover1( i, j) = bitor( cover1( i, j) , shiftmsg4( i, j) ) ;
    		end
    end
    % 写回并保存
    data(∶,∶, level) = cover1;
    imwrite( data, goleimage, permission) ;
    % 提取秘密图像信息, 检测隐藏效果
    data = imread( goleimage, permission) ;
    [ row, col] = size( data) ;
    A = data(∶,∶, level) ;
    for i = 1∶row
           for j = 1∶col /3
    				A( i, j) = bitand( A( i, j) , 15) ;
           end
    end
    A = bitshift( A, 4) ;
    % 显示结果
    subplot( 221) , imshow( cover) ; title( ′载体图像′) ;
    subplot( 222) , imshow( message) ; title( ′秘密图像′) ;
    subplot( 223) , imshow( data) ; title( ′隐藏后的图像′) ;
    subplot( 224) , imshow( A) ; title( ′提取的秘密图像′) ;
    

    但无论选择R G B三层中的哪层嵌入,都会在不同程度上对原始图像造成破坏
    考虑到第一章中我们阐述的 RGB 颜色模型, 将秘密图像隐藏在一层中, 容易导致该点的色彩向相应的坐标上发生绝对偏移, 从而使得该像素点的色彩的相应分量突出。所以, 我们不能笼统地认为图像隐藏在某层比较好而隐藏在某层不好, 这是因为对于具体的某个像素点其哪个颜色分量突出是不确定的。但是, 我们可以通过改进算法来限制这种颜色沿相应坐标的绝对偏移。

    例如, 可将秘密图像像素值的高 4bit 分别藏于载体图像 R, G, B 层像素值的最低位或次低位, 即将秘密图像的高 2bit 藏于 R 层, 另外 2bit 分别藏于 G 层和 B 层, 此时像素色彩的改变就不是沿一个坐标方向而改变, 而是在整个 RGB 空间中发生偏移, 改变后的颜色坐标点与改变前的颜色坐标点的距离( 数学上的范数) 比单纯在一个分量上改变的两点距离要小, 这样对载体图像的影响会更小。在实际应用中, 还应该考虑隐藏的鲁棒性等问题。

    2.对第 4bit 的考察
    可以发现,直接替换 4 bit 后, 图像还是有一些变化的, 也就是说, 替换容量大使图像的保真度降低( 可通过实验看到替换 3bit 的效果比替换 4bit 的效果要好)
    在这种情况下,我们可以用秘密信息图像像素值的高3bit去替换载体图像像素值的低3bit,至于第 4bit 则要具体分析
    其假设前提是: 如果只对图像进行 3bit 替换, 是不会对图像的视觉效果造成影响的。事实上, 这种假设是可以成立的

    首先, 我们引入一个相似度的概念, 所谓相似度, 是指两图像块中同一坐标下的像素中第 4bit 相同的像素数量占一块图像全部像素的比例, 表示为:μ=s/64
    其中 s 为第 4bit 相同的像素数量 64 为 8× 8 块中的总像素数
    根据 μ的取值我们来确定该块各像素第 4bit 的隐藏策略。
    我们先计算相应块的载体图像与秘密图像在第 4bit 的相似度 μ, 如果 μ大于某一阈值 T, 则可直接用秘密图像的第 4 bit 替换载体图像的第 4bit, 如果 μ小于阈值1 - T, 则先将秘密图像的第 4bit 取反后再替换, 若 μ介于 1 - T 和 T 之间, 则不进行替换。当然, 要用一个替换表对第 4bit 进行替换或取反替换了的块进行记录, 并且将此表也嵌入到载体图像中。编写函数 fourthbitcmp. m 完成记录替换表的实验, 函数代码如下:

    % 文件名: fourthbitcmp. m
    % 函数功能: 计算秘密图像和选择的载体图像层, 对于第 4bit 的每一个 8× 8 块,哪些可以用秘密图像去替换载体图像, 并返回一个替换表 count, 要求两个图像都可以整数 8× 8 分块
    % 输入格式: count = fourthbitcmp( ′c: \lenna. bmp′, ′c: \woman. bmp′, ′bmp′, 3, 0. 7)
    % 参数说明:
    % cover 是载体图像的地址
    % message 是秘密图像的地址
    % permission 是图像的类型
    % level 是作为载体的具体层。R 为 1, G 为 2 , B 为 3
    % count 是替换表
    % threshold 是阈值
    function count = fourthbitcmp( cover, message, permission, level, threshold)
    % 提取图像信息并分层
    cover = imread( cover, permission) ;
    data = cover;
    msg = imread( message, permission) ;
    cover1 = cover(∶,∶, level) ;
    % 对 cover 和 msg 的第 4bit 进行处理
    tempc = cover1;
    tempm = msg;
    tempc = bitand( tempc, 8) ;
    tempm = bitand( tempm, 8) ;
    temp = bitxor( tempm, tempc) ;
    [ row, col] = size( temp) ;
    % 记录图像每个分块的 n 值
    k1 = 0;
    k2 = 0;
    a = row* col /64;
    count = zeros( [ 1 a] ) ;
    for i = 1∶a
    	for m = 1∶8
    		for n = 1∶8
    				if temp( 8* k1 + m, 8* k2 + n) == 0
    					count( 1, i) = count( 1, i) + 1;
    				end
    		end
    	end
    	k2 = k2 + 1;
    	if k2* 8 == col
    			k2 = 0;
    					k1 = k1 + 1;
    			end
    	end
    % 计算每块的 μ值并与阈值进行比较
    count = count /64;
    for i = 1∶a
    	if count( i) >= threshold
    		count( i) = 1; % 可以替换
    			elseif count( i) < 1 - threshold
    				count( i) = - 1; % 取反
    			else
    		        count( i) = 0; % 不能处理
    	end
    end
    

    依据本算法, 在同一阈值下经不同层计算出的替换表中 0 的个数, 个数越少的层越适宜当做载体。当然, 为了简单起见, 也可以不加分块直接计算秘密图像与载体图像 R、G、B 层中哪一层的相似度高, 就选择哪一层为载体。
    三、图像置乱
    置乱实际上就是图像的加密, 与加密保证安全性不同的是, 将置乱的图像作为秘密信息再进行隐藏, 可以很大限度地提高隐蔽载体的鲁棒性, 所以图像置乱是信息隐藏中常用的一项技术。
    1、变化模板形状的图像置乱算法
    变化模板形状的图像置乱算法的思想如下:
    ① 对原图像取一个固定模板, 模板中像素位置排列如图 4. 10 所示。
    ② 做一个与原图像模板不同的置乱模板, 如图 4. 11 所示, 在置乱模板中把图像模板中的像素位置按一定次序填入
    ③ 将置乱模板中的像素位置再按一定的次序填回到原图像模板中就得到了置乱后的图像模板( 图 4. 12 的模板是按从左到右、从上到下的次序依次读取置乱模板中像素位置) 。
    在这里插入图片描述
    可以发现, 这种置乱算法是对合的
    与前面 Zigzag 变换一样, 我们也采取查表的方法编写程序。由于我们固定了置乱模板的大小, 所以在对图像置乱前我们要对其进行边界修补。如取置乱模板为 32× 32, 则要求秘密图像的尺寸为 32× 32,64× 64 , 128× 128, …。假设一幅图像的尺寸为 32× 31 , 则应该对其增加 1 列数据。
    变换表分为行表和列表, 同一坐标下的行列表中的数据结合起来所指示的像素将被置乱到这一坐标下。
    此外, 在图像置乱机制中引入一个简单的密钥控制。将由密钥生成的第一个[ 128, 255] 的随机整数与置乱的结果进行模 2 加。编写程序 diamondreplace. m 完成置乱实验。其中需要调用查表程序 replace32 fun. m, 函数代码如下:
    ( 1 ) 主函数: diamondreplace. m

    % 文件名: diamondreplace. m
    % 函数功能: 本函数将完成对输入的图像信号按菱形置换策略进行置乱
    % 输入格式举例: result = diamondreplace( secretimage, 1983 )
    % 参数说明:
    % matrix 为输入图像矩阵
    % key 为控制密钥
    % result 为置乱后的结果
    function result = diamondreplace( matrix, key)
    % 分析原图像尺寸并补遗
    [ m, n] = size( matrix) ;
    rowadd = 32-mod( m, 32) ;
    coladd = 32-mod( n, 32 ) ;
    if rowadd== 32
    rowadd = 0;
    end
    if coladd== 32
    coladd = 0;
    end
    input = uint8( zeros( [ m + rowadd n + coladd] ) ) ;
    input( 1∶m, 1∶n) = matrix;
    % 密钥生成随机数
    rand( ′seed′, key) ;
    control = randint( 1, 1 , [ 128 255] ) ;
    % 查表置乱
    fun = @replace32fun; % 调用子函数
    result = blkproc( input, [ 32 32] , fun) ;
    result = bitxor( result, control( 1 , 1) ) ;
    

    ( 2 ) 查表函数: replace32fun. m

    function result = replace32fun( matrix)
    % 行转换表
    row = [ 16 15 17 14 16 18 …] % 此处略去, 具体内容请见表 4. 3
    col = [ 17 18 17 20 18 16 …] % 此处略去, 具体内容请见表 4 . 4
    for i = 1∶32
    for j = 1∶32
    result( i, j) = matrix( row( i, j) , col( i, j) ) ;
    end
    end
    

    woman图像置乱后的效果
    将图像的原始信息破坏得越大越好, 不过, 这种破坏一定要是可以复原的

    2.图像的幻方变换

    % 文件名: magicsquares. m
    % 函数功能: 本函数将完成 n 阶二维幻方的求取 . 要求 n 为奇数
    % 输入格式举例: result = magicsquares( 5)
    % 参数说明:
    % n 为阶数
    % result 为求得的二维幻方
    function result = magicsquares( n)
    if mod( n, 2) == 0
    error( ′n 要求为奇数′) ;
    end
    result = zeros( n) ;
    j = floor( n /2 ) + 1; % 中间 1 列
    i = n + 1; % 便于以后从第 n 行开始考虑起
    result( 1, j) = 1 ;
    for k = 2∶n* n % 依次考虑后 n^2 - 1 个数
    i = i - 1 ;
    j = j + 1 ; % 行数减 1, 列数加 1
    if i < 1 && j > n % 特殊情况 4
    i = i + 2 ;
    j = j - 1 ;
    else
    if i < 1 % 特殊情况 1
    i = n;
    end
    if j > n % 特殊情况 2
    j = 1;
    end;
    end;
    if result( i, j) == 0
    result( i, j) = k;
    else % 特殊情况 3
    i = i + 2 ;
    j = j - 1 ;
    result( i, j) = k;
    end
    end
    
    

    我们知道, 要图像置乱是为了增加隐藏的鲁棒性。一个置乱的图像无论是合法用户还是非法用户都看不懂, 要使合法用户能完整地读取秘密信息, 就要满足两个条件:
    ①仅有合法用户知道的密钥参与运算。
    ②置乱算法本身可以保证图像复原, 即算法是可逆的。
    幻方置乱的思想其实也是查表思想,其运算具有准对合性,具体算法实现后面再阐述
    编 写 函 数 magicreplace. m 完 成 置 乱 实 验, 其 中 需 要 调 用 查 表 函 数replacemagicfun. m。前主函数存放 11 阶标准幻方, 子函数存放表 4. 6 , 函数代码如下:
    ( 1 ) 幻方置乱主函数: magicreplace.m

    % 文件名: magicreplace. m
    % 函数功能: 本函数将完成对输入的图像信号按幻方置换策略进行置乱
    % 输入格式举例: result = magicreplace( secretimage, 1, 1983)
    % 参数说明:
    % matrix 为输入图像矩阵
    % key 为控制密钥
    % eord 为 1 表示置乱变换, 为 0 表示复原变换
    % result 为置乱后的结果
    function result = magicreplace( matrix, eord, key)
    % 分析原图像尺寸并补遗
    [ m, n] = size( matrix) ;
    rowadd = 11-mod( m, 11) ;
    coladd = 11-mod( n, 11 ) ;
    if rowadd == 11
    rowadd = 0;
    end
    if coladd == 11
    coladd = 0;
    end
    input = uint8( zeros( [ m + rowadd n + coladd] ) ) ;
    input( 1∶m, 1∶n) = matrix;
    % 密钥生成随机数
    rand( ′seed′, key) ;
    control = randint( 1, 1 , [ 1 121] ) ;
    % 11 阶标准幻方
    magic =
    [ 38 52 66 69 83 97 100 114 7 21 24 
      61 75 78 92 106 120 2 16 30 44 47
      84 98 101 115 8 22 25 39 53 56 70 
      107 121 3 17 31 34 48 62 76 79 93 
      9 12 26 40 54 57 71 85 99 102 116
      32 35 49 63 77 80 94 108 111 4 18 
      55 58 72 86 89 103 117 10 13 27 41
      67 81 95 109 112 5 19 33 36 50 64
      90 104 118 11 14 28 42 45 59 73 87
      113 6 20 23 37 51 65 68 82 96 110 
      15 29 43 46 60 74 88 91 105 119 1 ] ; 
    if eord == 0
    control = 121 -control;
    elseif eord == 1
    control = control;
    else
    error( ′输入参数错误′) ;
    end
    % 幻方变换主过程
    for define = 1∶key% control
    	for r = 1∶11
    		for c = 1∶11
    			magic( r, c) = magic( r, c) -1;
    			if magic( r, c) == 0
    					magic( r, c) = 121;
    			end
    		end
    	end
    end
    % 查表置乱
    fun = @replacemagicfun; % 调用子函数
    result = blkproc( input, [ 11 11] , fun, magic) ;
    

    ( 2 ) 行列转换表子函数: replacemagicfun. m

    % 11 阶幻方的行列查找表程序
    function result = replacemagicfun( matrix, P1 )
    % 初始化 11 阶幻方的行列查找表
    row = [ 11 , 2, 4, 6, 8, 10, 1, 3, 5, 7, 9, 5, 7, 9, 11, 2, 4, 6 , 8, 10, 1 , 3, 10, 1 , 3, 5, 7, 9,
    11, 2, 4, 6 , 8, 4, 6, 8, 10, 1, 3, 5, 7, 9 , 11, 2 , 9 , 11, 2, 4, 6, 8 , 10, 1, 3, 5 , 7, 3, 5, 7 , 9, 11 , 2,
    4 , 6 , 8, 10 , 1, 8, 10 , 1, 3, 5, 7, 9, 11, 2, 4, 6 , 2 , 4 , 6, 8, 10, 1 , 3, 5, 7, 9, 11, 7, 9, 11, 2, 4 , 6,
    8 , 10, 1, 3 , 5, 1, 3, 5, 7, 9, 11, 2, 4, 6 , 8, 10 , 6 , 8, 10 , 1, 3, 5, 7, 9, 11, 3, 4] ;
    col = [ 11, 7, 3, 10, 6, 2, 9, 5, 1, 8, 4 , 2, 9, 5, 1, 8, 4, 11, 7, 3 , 10, 6, 4, 11, 7 , 3, 10 , 6,
    2 , 9 , 5, 1, 8, 6, 2, 9, 5 , 1, 8, 4, 11, 7, 3, 10 , 8, 4, 11, 7 , 3, 10, 6, 2, 9, 5 , 1, 10, 6, 2 , 9, 5, 1,
    8 , 4 , 11, 7 , 3, 1, 8, 4, 11, 7, 3, 10, 6, 2, 9, 5 , 3 , 10, 6, 2, 9, 5 , 1, 8, 4, 11 , 7, 5, 1, 8 , 4, 11 , 7,
    3 , 10, 6, 2 , 9, 7, 3, 10, 6, 2, 9, 5, 1, 8 , 4, 11 , 9 , 5, 1, 8, 4, 11, 7, 3, 10, 6, 2] ;
    for i = 1: 11
    	for j = 1: 11
    		result( i, j) = matrix( row( P1 ( i, j) ) , col( P1( i, j) ) ) ;
    	end
    end
    

    3.图像的 Ha sh 置乱
    前面的两种置乱都是对图像分块进行的, 而且其共同的问题是密钥控制并不得力。下面介绍的一种图像置乱方法实际上就是我们在 2. 6. 3 节中介绍的 Hash 置换的特例———对于 m× n 个像素点, 我们要求随机置换 m× n 个, 就完成了图像的 Hash置乱。鉴于该算法具有无冲突( collision) 和强密钥控制的特点, 显然是一个很好的图像置乱算法。需要说明的是, 这种算法不是对合的, 所以在实现上较前两种复杂一些。另外, 其算法执行起来也比较费时间。编写函数 hashdisturb. m 完成实验

    % 文件名: hashdisturb. m
    % 函数功能: 本函数将完成对输入的图像信号按 Hash 置换策略进行置乱
    % 输入格式举例: result = hashdisturb( secretimage, 1, 1983 , 421, 1121)
    % 参数说明:
    % matrix 为输入图像矩阵
    % key1 -key3 为控制密钥
    % eord 为 1 表示置乱变换, 为 0 表示复原变换
    % result 为置乱后的结果
    function result = hashdisturb( matrix, eord, key1, key2, key3 )
    % 分析原图像尺寸并补遗
    [ m, n] = size( matrix) ;
    % 调用随机置换函数
    [ row, col] = hashreplacement( matrix, m* n, key1, key2, key3) ;
    % 置乱函数
    count = 1;
    if eord == 1
    	for i = 1∶m
    		for j = 1∶n
    			result( i, j) = matrix( row( count) , col( count) ) ;
    			count = count + 1;
    		end
    	end
    end
    % 复原函数
    if eord == 0
    	for i = 1∶m
    		for j = 1∶n
    			result( row( count) , col( count) ) = matrix( i, j) ;
    			count = count + 1;
    		end
    	end
    end
    
    

    4.隐藏置乱图像的优点
    置乱图像隐藏的抗恶意攻击性能
    经过多次置乱后, 图像就会彻底地改变, 从置乱后的图像上根本看不到原图像的任何特征。使用置乱方法为什么可以增加图像伪装的鲁棒性呢?
    首先, 将图像置乱后, 将得到一幅杂乱无章的图像, 这个图像无色彩、无纹理、无形状, 从中无法读取任何信息, 那么, 将这样一幅图嵌入到另一幅普通图像时就不易引起那幅图色彩、纹理、形状的太大改变, 甚至不会发生改变, 这样人眼就不易识别,从而逃出了第三方的视线。

    其次, 由于秘密图像是置乱后的图像, 根据上述图像的“三无”特征, 第三方根本不可能对其进行色彩、纹理、形状等的统计分析, 即便他们截取到了秘密图像, 也是无能为力的。如果第三者企图对秘密图像进行反置乱, 这也是不可能的, 由于图像置乱有很多种方法, 每种方法又可以使用不同的置乱模板算法, 设置不同的参数, 使用者有很大的自由度, 他可以根据自己的想法得到不同的结果, 相反, 这给企图截获秘密信息的第三方带来了很大的困难, 使他们需要耗费巨大的计算量来穷举测试各种可能性

    最后, 我们再设想一下, 如果第三方反置乱不成, 在隐蔽载体上恶意修改怎么办?通过实验我们知道, 用置乱的方法是可以抵抗这些攻击的, 因为对秘密图像进行反置换的过程, 就使得第三方在图像上所涂、画的信息分散到画面的各个地方, 形成了点状的随机噪声, 对视觉影响的程度不大。图 4. 20 是我们随意对隐蔽载体进行 3 种恶意攻击后提取的秘密图像内容。可以看到, 即使是在攻击 3 下, 秘密图像的轮廓依然可见, 这是在未置乱图像的隐藏下不可想像的。当然, 为了使提取的信息更为清晰,最好对破坏严重的图像进行边界保持的中值滤波等方面的处理, 以去除随机噪声。

    展开全文
  • 信息隐藏综述

    千次阅读 2020-04-22 15:49:13
    信息隐藏是把一个意义的信息隐藏在另一个称为公开载体(Cover) 的信息中得到隐蔽载体 S(Stego Cover),非法者不知道这个普通信息中是否隐藏了其他的信息,而且即使知道也难以提取或去除隐藏的信息。所用的载体可以...

    1.基本原理

    信息隐藏是把一个有意义的信息隐藏在另一个称为公开载体(Cover) 的信息中得到隐蔽载体 S(Stego Cover),非法者不知道这个普通信息中是否隐藏了其他的信息,而且即使知道也难以提取或去除隐藏的信息。所用的载体可以是文本、图像、声音及视频等。为增加攻击的难度,也可以把加密与信息隐藏技术结合起来,即先对消息 M 加密得到密文消息 M',再把 M'隐藏到载体 C 中。这样攻击者要想获得消息,就首先要检测到消息的存在,并知道如何从隐蔽的载体 S 中提取 M'及如何对 M'解密以恢复消息 M。

    2. 研究现状

    信息隐藏的主要方法包括在时间域、空间域、变换域的隐藏,另外还有基于文件格式和载体生成技术的隐藏 [7~11] 。目前研究得最多和最深入的是在静止图像中的隐藏,一方面是由于图像具有较大的冗余空间来隐藏信息,另一方面图像处理工具较多且隐藏效果很直观。

    在图像中的信息隐藏方法主要有:位平面替换、基于调色板的隐藏、DCT 域隐藏、小波域隐藏、图像变形技术等,另外还有基于视觉掩蔽效应的隐藏。以位平面为代表的空间域信息隐藏技术具有容量大、处理简单的优点,但是隐藏信息抵抗各种处理(如滤波、压缩等)的能力比较弱。而以 DCT 域隐藏为代表的基于变换域隐藏的特点是,隐藏信息的安全性比较强,能够抵抗各种压缩处理,但是隐藏的数据容量有限。

    1)视频信号可以看成是一帧一帧的静止图像组成的视频流。这样的原始视频流的数据量很大,因此一般都是以视频压缩的方式来保存。视频的信息隐藏一般分为三种,一种是在原始视频流中隐藏信息,可以直接使用静止图像的隐藏算法,但是处理的数据量很大,并且抵抗压缩的能力较弱。第二种是在 MPEG2 视频压缩算法中嵌入隐藏算法,在压缩的同时进行信息隐藏。第三种是在压缩后的视频信号中进行隐藏,这类算法对视频质量影响不大,稳健性好,但是可以隐藏的数据量不大。

    2)声音信号中的信息隐藏又不同于图像和视频,声音信号的特点是,采样的低电平对听觉影响较大,并且采样点间具有相关性,并且还可以利用人耳对某些声音频段的不敏感性以及对相位的不敏感性来进行信息的隐藏。在声音中的信息隐藏算法主要包括在时域、频域和压缩域中的信息隐藏,具体来讲有在时域中的回声隐藏、在 DFT 中的相位隐藏、在 DWT 中的频域隐藏、还有利用听觉掩蔽效应的弱音隐藏等算法。在声音中隐藏信息的难点在于,一方面人的听觉比视觉更敏感,因此对隐藏算法的健壮性要求更高。另一方面,对声音信号的评价还没有一个比较有效的标准。

    3)文本信号中的信息隐藏主要分为两大类,一类算法是通过调整文本的行间距、字间距来隐藏信息,另一类算法则是利用载体生成技术,将一段要隐藏的机密信息通过一个文本生成器,产生一段有意义的文本。文本信号中存在的冗余度很小,因此在文本中隐藏信息是一个较困难的问题,并且隐藏信息的稳健性还有待进一步提高。

    1. 数字水印是向多媒体数据(如图像、声音、视频信号等)中添加某些数字信息以达到版权保护等作用。如果没有稳健性的要求,水印与信息隐藏技术的处理本质上是完全一致的。
    2. 数字指纹是在数字产品的每一份拷贝中加入一个唯一的标志,通过这样的标志,可以区分一个数字产品所售出的每一份拷贝。
    3. 叠像术是由可视化密码技术发展而来的一种新的信息伪装技术。可视密码术的思想是把要隐藏的机密信息通过算法隐藏到两个或多个子密钥图片中。而若把所有的图片叠加在一起,则能恢复出原有的机密信息。
    4. 潜信道又名隐信道,顾名思义,就是指普通人感觉不到此种信道的存在,从而“黑客”可以利用这些感觉不到而又真实存在的信道来传送(或存储)机密信息。潜信道的种类很多,有些潜信道是设计者有意打下的埋伏,有些潜信道则是无意之中构建的。滥用文件名,数据链路层中数据帧的未使用部分、IP 包的时间戳部分等都可以被巧妙地用来传递信息。接入控制机制中的漏洞、收发双方存在的共享资源、特洛伊木马等都可以用来构造各种各样的潜信道。

    3.数字水印

    3.1 数字水印的原理特点

    所谓数字水印技术,就是将特定的数字信息(如身份信息、序列号、文字或图像标志等)嵌入到图像、音频、视频或软件等各种数字产品中,以达到信息安全和版权保护等目的。数字水印是嵌在数字作品中的数字信号,水印的存在要以不破坏原始作品的欣赏价值和使用价值为原则。一般来说,数字水印应具有以下的基本特征:隐蔽性、安全性、鲁棒性、确定性。

    3.2 数字水印的算法结构

    数字水印算法一般包括两个方面:水印的嵌入和水印的提取(或检测)。

    Fig.1 数字水印嵌入过程

    Fig.2 数字水印提取过程

    3.3 数字水印所面临的攻击

    水印攻击与鲁棒性可以说是一对矛盾。要设计出鲁棒性的水印算法,必须先研究水印攻击的方法。目前的文献已经陆续描述了很多水印攻击方法。下面以攻击嵌入图像中的水印为例,介绍3类主要的水印攻击方法:

    1. 几何攻击:通过对水印作品进行某种处理,削弱,破坏嵌入的水印或者使水印检测器检测不出实际还存在的水印。这些攻击方法包括叠加噪声、滤波、剪切、平移、旋转、缩放、JPEG或JPEG2000有损压缩等。能否抵御此类攻击是目前绝大多数水印算法性能评价的首要目标。
    2. 伪造攻击:即试图通过伪装原始数字作品和原始水印来迷惑版权保护。如攻击者并没有除去水印,而是在待检测作品中嵌入了他自己的水印,从而导致所有权的争议。此类攻击实际上使水印的版权保护功能受到了挑战。
    3. 共谋攻击:指利用一副作品的多个加了不同水印的版本,生成一个原作品的近似,从而将水印除去。最简单的实现是假设嵌入的水印服从平均分布,利用统计或平均的方法来计算近似作品。

    3.4 数字水印的分类研究现状

    数字水印根据嵌入方法的不同可分为两大类:空域水印和变换域水印,较早的水印算法从本质上来说都是空域上的,水印直接加载在原始载体作品的数据上。空域水印最典型的算法就是最低有效位方法(LSB)。基于变换域的技术是先将作品做某种变换,然后把水印嵌入到作品的变换域中(如DCT域、DWT域等)。从目前的状况看,变换域方法正变得日益普遍并以小波变换的水印算法研究最热。相对于空域方法而言,变换域方法通常都具有更好的鲁棒性。

    3.5 数字水印的应用现状与前景

    版权保护、认证与防伪、隐式注解、隐秘通信

    4. 数字指纹

    数字指纹是在数字产品的每一份拷贝中加入一个唯一的标志,通过这样的标志,可以区 分一个数字产品所售出的每一份拷贝。它与数字水印的区别在于,数字水印是在数字产品中 加入标识,表示数字产品的所有者,当发生版权纠纷时可以据此确定数字产品的原始作者, 而数字指纹则更针对于所售出的每一份拷贝的跟踪,如果发现非法复制的产品,可以根据其 中的数字指纹指认是由哪一个用户进行的非法复制。利用数字指纹技术可以有效防止合法用户对数字产品进行非法传播以及非法牟利。数字指纹的应用范围包括数字图像、影视、音乐、 程序以及文本等。

    目前数字指纹的研究主要集中在数字图像中,利用这个技术,可以查出非法盗版的图像 产品以及制造非法盗版的源头。在实际应用中,非法盗版者可能串通起来试图合谋擦除每个 拷贝中的数字指纹,如两个用户串通起来,对他们所购买的数字图像产品进行对比,找到图 像中数字指纹隐藏的位置,然后擦除它们,这样就可能制造出不包含数字指纹的图像,因此 达到了盗版的目的。针对这样的问题,已经提出了一种新的算法[25, 26],它可以防止用户串通 的非法复制,并且可以跟踪到是哪两个或多个用户合谋进行的非法复制。

    5.叠像术

    叠像术是由可视化密码技术发展而来的一种新的信息伪装技术。可视密码术的思想是把 要隐藏的机密信息通过算法隐藏到两个或多个子密钥图片中。这些图片可以存在磁盘上,或 印刷到透明胶片上。在每一张图片上都有随机分布的黑点和白点。由于黑、白点的随机分布, 持有单张图片的人不论用什么方法,都无法分析出任何有用的信息。而若把所有的图片叠加 在一起,则能恢复出原有的机密信息。由于该方法简单有效,其恢复只要通过人的视觉系统 就可识别,而无须大量的计算和密码学知识,所以其应用更为广泛。通过该技术产生的每一 张图像也可以不是随机噪声图像,而是常人能看懂的图像:图像上有不同的文字或图画,与 一般资料无异,只要将一定数量的图像叠加在一起,则原来每一张图像上的内容都将消失, 而被隐藏的秘密内容出现。至于单个图像无论是失窃还是被泄露,都不会给信息的安全带来 灾难性的破坏。由于每一张图像的“可读性”,使其达到了更好的伪装效果,可以十分容易地 逃过拦截者、攻击者的破解,而且,在一定的条件下,从理论上可以证明该技术是不可破译 的,能够达到最优安全性。

    与以往的密码技术、密钥分享技术相比较,叠像技术有如下几个突出的特点[27]:

     (1) 隐蔽性:这是数据伪装的基本要求,隐藏的秘密不能被常人看见;

    (2) 安全性:无论用任何方法任何手段对单张图像进行分析,都不能得到任何有用的信 息。从数学上也可以证明,叠像技术能达到最优安全性,因而是不可破译的;

    (3) 秘密恢复的简单性:不同于其他任何一种信息伪装技术,叠像技术在恢复秘密时无 须任何计算,只要将图像简单的叠加即能恢复秘密。

    (4) 通用性:使用者无需密码学的知识,任何人都可以使用该技术,这也是与其他技术 不同的一个重要方面。

    关于叠像术,目前最成熟的是黑白图片的叠像术,但是灰度图像的叠像术研究也已经取 得了重要进展[3,5]。

     6.潜信道

    潜信道又名隐信道,顾名思义,就是指普通人感觉不到此种信道的存在,从而“黑客” 可以利用这些感觉不到而又真实存在的信道来传送(或存储)机密信息。潜信道的种类很多, 有些潜信道是设计者有意打下的埋伏,有些潜信道则是无意之中构建的。目前,潜信道研究 的系统理论还未形成[28,29],下面仅介绍一些常见的潜信道例子:

    (1)在计算机时代,几乎任何消息都可以作为秘密通信的载体,如在普通电话交谈中, 机密信息可以隐藏在话音中进行传递;视频会议系统中,将消息隐藏在基于 DCT 压缩的视频 流中;在可执行文件中加入一段特定代码,不影响原来软件的执行,而这段特定代码代表了 某些机密信息。

    (2)在操作系统中也存在隐蔽信道,如恶意程序可以利用隐蔽信道将敏感信息从高安 全级的系统区域传递到低安全级的系统区域。另外,在 OSI网络模型中,存在许多可能用来 传输秘密信息的隐蔽信道,如数据链路层中数据帧的未使用部分、IP 包的时间戳部分等都可 以被巧妙地用来传递信息。

    (3)在以 ElGamal 数字签名方案和 DSS 数字签名方案等为代表的绝大多数数字签名方 案中也都存在着潜信道。数字签名方案中的潜信道是由 Simmons 首先在 1985 年发现的,他 还基于这种潜信道证明了当时美国用于“第二阶段限制战略武器会谈条约”核查系统中的安 全协议的基本缺陷。利用数字签名方案中的潜信道,收、发双方可以避开监视者而进行隐蔽 通信,实际上,他们只需按下述协议就可以达到目的:( 1)发方生成一个无意义的消息 M; (2)发方利用与收方共享的密钥对 M 进行签名,同时将潜信息嵌入签名之中;( 3)监视者 虽然可以获得签名消息,但是他无法发现可疑之处;( 4)收方验证发方的签名;( 5)收方用 与发方共享的密钥从接收的无意义消息中提取出潜信息。

    (4)网络设计与实现中的疏忽也可以用来建立潜信道。例如,滥用文件名就可以建立 潜信道。假如允许高级用户与低级用户都可列出在给定时间系统中所有正在工作用户的名字, 则高级用户就可用用户名进行编码建立一个潜信道来递送潜信息,而低级用户可根据用户名 登录表译出潜信息。

    (5)接入控制机制中的漏洞、收发双方存在的共享资源、特洛伊木马等都可以用来构 造各种各样的潜信道。

    展开全文
  • LSB图像信息隐藏

    万次阅读 2014-02-06 22:15:55
    替换技术就是利用人的感观系统对特定的随机noise不敏感原理,通过使用秘密信息比特替换随机noise,从而实现信息隐藏。图像高位平面对图像感官质量起主要作用,去除图像最低几个位平面并不会造成画面质量的明显下降。...

    介绍

    本节对了解信息隐藏中最常用的LSB算法特点和原理,设计并实现一种基于图像的LSB隐藏算法。

    原理描述

    替换技术就是利用人的感观系统对特定的随机noise不敏感原理,通过使用秘密信息比特替换随机noise,从而实现信息隐藏。图像高位平面对图像感官质量起主要作用,去除图像最低几个位平面并不会造成画面质量的明显下降。利用这个原理可用水印信息替代载体图像位平面以实现信息嵌入。

    本算法选用最低位平面来嵌入水印信息。最低位平面对图像的视觉效果影响最轻微,但很容易受noise影响和攻击,可采用冗余嵌入的方式来增强robustness加以解决,即在一个区域中嵌入相同的信息,提取时根据此区域中的所有像素判断。在此,贴出隐藏算法和提取算法源代码,作为参考。

    参考代码

    隐藏算法hisd_lsb:

    function o = hide_lsb(block,data,I)
    
    si =size(I);
    lend =length(data);
    
    %image sparce of N*M 
    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>lend)
                break;
            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);
        end;
    end;

    提取算法dh_lsb

    function out = dh_lsb(block,I)
    
    si =size(I);
    
    %image sparce of N*M 
    N =floor(si(2)/block(2));
    M =floor(si(1)/block(1));
    out = [];
    
    thr = 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);
            
            tmp = sum(sum(bitget(I(rst:red,cst:ced),1)));
            if(tmp>=thr)
                out(idx) =1;
            else
                out(idx) =0;
            end;
        end;
    end;

    测试输出结果

    原始图像:


    加入信息隐藏后,输出的效果图:


    监听LSB相关信息如下所示:

    LSB:len:10	 error rate:0.000000	 error num: 0     psnr:  63.820477

    关于Computer Vision&Image Engineering更多讨论与交流,敬请关注本博客和新浪微博songzi_tea.

    展开全文
  • 封装和信息隐藏

    千次阅读 2018-11-08 19:45:24
    文章目录3.1 信息隐藏原则3.1.1 封装与信息隐藏3.1.2 接口扮演的角色3.2 创建对象的基本模式3.2.1 门户大开型对象3.2.2 用命名规范区别私用成员3.2.3 作用域、嵌套函数和闭包3.2.4 用闭包实现私用成员3.3 更多高级...
  • 音频信息隐藏算法

    千次阅读 2018-12-28 17:12:20
    1、最不重要位法(LSB) 对音频信号进行采样,将采样值最不重要的位(通常为最低位)用代表水印的二...在相位编码中,隐藏信息是用相位谱中特定的相位或相对相位来表示的,可将音频信号分段,每段做离散傅里叶变换...
  • C++ 封装 & 信息隐藏

    千次阅读 多人点赞 2021-05-02 14:02:39
    C++ 封装 & 信息隐藏简介
  • 信息隐藏于调色板/信息头与像素数据之间,需要修改文件长度和位图数据偏移地址【像素数据前】; 修改位图文件头或者信息头中保留字段信息;【未用到的保留字段】 利用图像像素字节宽度必须为4的倍数的特点,在补足...
  • 利用MATLAB实现WAV音频的LSB信息隐藏

    千次阅读 2020-12-10 23:35:36
    近年来,虽然数字音频信息隐藏技术的研究工作发展很快,出现了一些代表算法,但是与图像信息隐藏算法相比,数字音频信息隐藏技术面临着更大的挑战,因为人类听觉系统对随机噪声十分敏感,使得可以嵌入的数据量非常...
  • 信息隐藏技术综述——粗浅入门

    万次阅读 2018-03-12 14:50:50
    本文为2017年十一月做的关于信息隐藏技术的PPT汇报的配套讲稿,相关参考资料已上传至(http://download.csdn.net/download/sir_chai/10104787)第一页1996 年 5 月30 日,在英国的剑桥牛顿研究所召开了第一届国际...
  • 信息隐藏隐写系统框架

    千次阅读 2020-01-29 21:34:13
    信息隐藏中隐写是其中很重要的一部分。本文通过一段时间的CTF的学习结合个人CTF比赛杂项选手的刷题经历总结。对一部分的隐写进行系统的概括。 隐写 隐写相关概念 定义 隐写分析(steganalysis)技术是对表面...
  • 图片嵌入隐藏-大容量的信息隐藏算法

    万次阅读 热门讨论 2016-05-02 23:14:25
    实验表明在不影响图像视觉效果的前提下,其信息隐藏量比LSB算法大,并具有更高的安全性。该算法的主要思想是对每个像素点进行判断,根据HVS的特性,在最高非0有效位后的指定位(y)开始嵌入隐藏信息,嵌入到另一个...
  • 无损信息隐藏技术综述

    千次阅读 2019-12-06 19:12:11
    信息隐藏技术是信息安全领域的一个重要分支,通常意义下的信息隐藏技术研究重点都集中在隐藏技术和分析技术,较少关注图像是否失真的问题。在原始载体图像嵌入了隐藏信息后,会导致其产生某种程度上的永久性失真,即...
  • 信息隐藏技术课程讲稿章节目录 第1章 概论 什么是信息隐藏 信息隐藏的历史回顾技术性的隐写术语言学中的隐写术 分类和发展现状 伪装式保密通信 数字水印 信息隐藏算法性能指标 第 2章 基础知识人类听觉特点 ...
  • 图像处理之信息隐藏

    千次阅读 2019-07-28 15:32:46
    在这里给大家介绍一种将文本信息隐藏在图像的方法,这点也是利用了图像的一个特点,改变像素点,在一定范围内,图像不会发生改变。其实现步骤和原理也是不难,下面来说说其实现步骤。 1.准备两张照片,一张照片img1...
  • 【实验名称】基于LSB和EMD的信息隐藏实验 【实验目的】 1、学习并掌握图像信息隐藏的基本原理和方法 2、学习并实现基于LSB的信息隐藏和提取算法 3、学习并实现基于EMD的信息隐藏和提取算法 【实验原理】 ...
  • 信息隐藏技术综述

    千次阅读 2007-03-01 19:58:00
    信息隐藏技术综述蔡洪亮 李波 卢星 杨明摘要:介绍了信息隐藏技术的概念、模型...隐藏算法 本文就信息隐藏的技术进行了综述,概述的比较全面,一定的参考价值,下面时他的层次目录结构。1.信息隐藏的概念、模型及分类
  • 深度学习在信息隐藏中的应用(上)

    万次阅读 多人点赞 2017-11-07 17:24:51
    之前都是在实验室做项目,写代码,没有系统集中的看过paper,最近要准备开题,集中看了十几篇,全是深度学习在信息隐藏...大家都学过密码学,但是可能很少人了解信息隐藏信息隐藏是我所在实验室的一个方向,指...
  • 直方图平移的可逆信息隐藏 摘要:可逆数据隐藏(RDH)也被称为无损或可逆数据隐藏,已逐渐成为数据隐藏领域非常活跃的研究领域。本文介绍了多种基于直方图平移的可逆信息隐藏算法,并对各种算法的技术发展历史,现状...
  • 利用LSB算法隐藏文字信息的MATLAB实现

    万次阅读 多人点赞 2016-03-20 15:13:19
    详见WiKi:https://en.wikipedia.org/wiki/Least_significant_bit隐写术隐写术是一种关于信息隐藏的技术,通常利用位图的RGB三种颜色值(0~255)在微小改变的情况下难以被人眼察觉的特点。每种颜色值都可以用8位二...
  • 对《信息隐藏概论》(陆明哲)书的知识点总结梳理 期末复习整理档 第一章 绪论 网络信息安全的技术特征 完整性(Integrity) 保密性(Confidentiality) 可用性(Availability) 不可否认性(Non-...
  • 信息隐藏技术与应用期末复习

    千次阅读 2017-12-09 22:22:46
    信息隐藏是将秘密信息隐藏到一般的非秘密的数字媒体文件中,从而不让对手发觉的一种方法。 信息隐藏的应用领域: 数据保密 数据的不可抵赖性 数字作品的版权保护 防伪 数据的完整性 数字水印的应用领域: 用于...
  • 3.实现LSB信息隐藏 【实验内容】: ■一、图像翻转 ■二、LSB的顺序嵌入和提取 ■三、LSB的随机嵌入和提取 一.图像翻转 1)使用库函数imread()读取图片; 2)提取图片size:h,w,ch(高度,宽度,通道数); 3)初始...
  • MySQL 8.0 新特性隐藏字段

    千次阅读 2021-02-17 21:41:47
    MySQL 8.0.23 版本增加了一个新的功能:隐藏字段...本文给大家介绍一下 MySQL 隐藏字段的相关概念和具体实现,包括如何创建隐藏字段和查询隐藏字段、如何查看隐藏字段相关的字典信息以及二进制日志对隐藏字段的处理。
  • 信息隐藏——LSB隐写分析

    千次阅读 2020-06-24 21:37:59
    LSB隐写分析 【实验目的】: 了解并实现常见的LSB隐写分析法。 【实验内容】: ■实现针对LSB隐写的卡方隐写分析算法...秘密信息在嵌入之前往往经过加密,可以看作是0、1 随机分布的比特流,而且值为0与1的可能性都是1
  • 音频信息隐藏技术研究

    千次阅读 2013-11-16 10:46:09
    与此不同,信息隐藏作为近年迅速发展起来的一种保密通信技术,它首先将待传输信息嵌入到诸如音频、视频、文件等载体中,使得非法第三方不易觉察到秘密信息的存在,然后通过携密载体的传送,实现秘密信息的保密传输。...
  • 信息隐藏与数字水印技术

    千次阅读 2007-10-25 00:08:00
    信息隐藏则主要研究如何将某一机密信息秘密隐藏于另一公开的信息中,然后通过公开信息的传输来传递机密信息。对加密通信而言,可能的监测者或非法拦截者可通过截取密文,并对其进行破译,或将密文进行破坏后再发送...
  • 基于LSB的信息隐藏实现

    千次阅读 2006-11-09 07:50:00
    LSB就是最不重要位信息隐藏算法,读取出图片中每个点的象素值,然后把信息的bit序列填充到这些象素的最低上.然后在分析检测的时候提取出最低位,就可以恢复原始信息.因为是在最低位上进行隐藏,所以图像的失真是比较小的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 239,459
精华内容 95,783
关键字:

信息隐藏的特性有哪些