精华内容
下载资源
问答
  • 使用matlab进行图像信息隐藏和提取
    千次阅读
    2021-04-22 13:23:08

    基于格式的信息隐藏方法通常在文件头与图像数据之间,或图像数据末尾添加秘密信息,具有实现简单,透明性高,隐藏容量大等多个优点;LSB图像信息隐藏算法是将秘密信息隐藏在图像像素数据的低位上来隐藏信息的方法,具有实现简单,隐藏容量大等优点。本次实验基于以上两种方法,需完成如下内容:从网络中随机下载或拍摄一张图片,图片分辨率大于80*80,储存格式任意;分别采用上述两种方法将一段约100至200字左右的文本隐藏在这张图片中;设计并编写信息嵌入程序和信息提取程序;给出实验结果并提交符合规范的实验报告。

    基于格式的图像信息隐藏

    1、信息嵌入步骤

    1)在DOS命令行中输入copy logo.jpg /b + hidden.txt /a logoout.jpg命令;

    2、信息提取步骤

    1)读取并打开嵌入前的logo.jpg,hidden.txt;

    2)读取并打开嵌入后的logoout.jpg

    3)提取文件

    信息提取代码

    clc;clear;close all

    fid=fopen('logo.jpg','r');%以读的方式打开logo.jpg

    [ori,length1]=fread(fid,inf,'uint8');

    fclose(fid);

    fid=fopen('logoout.jpg','r');%以读的方式打开logoout.jpg

    [hid,length2]=fread(fid,inf,'uint8');

    fclose(fid);

    fid=fopen('hidden.txt','r');%以读的方式打开hidden.txt

    [hidtxt,length3]=fread(fid,inf,'uint8');

    fclose(fid);

    fid=fopen('extract.txt','w');%以读的方式打开extract.txt

    fwrite(fid,hid(length1+1:length2-1),'uint8');

    fclose(fid);

    errnum=biterr(hidtxt,hid(length1+1:length2-1));

    基于LSB图像信息隐藏方法

    1、信息嵌入步骤

    1)将文本文件转化为二进制流;

    2)读取图像logo;

    3)以二进制形式读取要嵌入到图片里的消息。并读取消息的长度(嵌入消息的长度不能超过图像位数);

    4)产生与消息长度一致的一串随机数(不能相同)。自定义一个random函数来实现伪随机数的生成产生的伪随机数是代表消息要隐藏的像素位置(行和列的信息)

    5)按照产生的随机数的序列依次将图片层的最后一位改为消息的信息。即用消息替换图片的最后一位信息

    2、信息提取步骤

    1)读取已经隐藏信息的图像;

    2)用与 LSB 算法中相同的随机数种子产生相同的一串随机数。随机数串的长度由 LSB 中获得(长度不得大于图像大小)。;

    3)按照产生的随机数序列依次读取图像的相应点最后一位的信息。并将其以二进制形式写到文件中;

    4)看文件,即获取的信息,与嵌入的信息进行比较。

    源代码(仅供参考)

    嵌入

    clc;clear;close all

    %文本文件与二进制流的转化

    fid=fopen('hidden.txt','r');

    [hidtxt,length]=fread(fid,'ubit8');

    %保存hidtxt,length值

    save save.mat hidtxt length

    fclose(fid);

    txtb=de2bi(hidtxt,8);%十进制转二进制

    txtbm=reshape(txtb,1,length*8);%txtbm为二进制码流

    bmtxt=reshape(txtbm,length,8);

    btxt=bi2de(bmtxt);%二进制转十进制

    fid=fopen('extracttxt.txt','w');

    fwrite(fid,btxt,'uint8');

    fclose(fid);

    %读取图像

    img=imread('logo.jpg');

    img=double(img);

    [a,b]=size(img);

    t=1;

    %产生随机数

    [c,d]=random(img,length,1712031005);

    %按照产生的随机数的序列依次将图片层的最后一位改为消息的信息。即用消息替换图片的最后一位信息

    for i=1:length

    img(c(i),d(i))=img(c(i),d(i))-mod(img(c(i),d(i)),2)+hidtxt(t,1);

    if t==length

    break;

    end

    t=t+1;

    end

    %还原图像

    img=uint8(img);

    imwrite(img,'logoout.jpg');

    %自定义一个random函数来实现伪随机数的生成

    %产生的伪随机数是代表消息要隐藏的像素位置(行和列的信息)

    %mat为载体矩阵

    %count为嵌入信息的大小

    %key为随机数种子

    function [R,C]=random(mat,count,key)

    %计算间隔的位数

    [m,n]=size(mat);

    interval1=floor(m*n/count)+1;

    interval2=interval1-2;

    if interval2==0

    error('error');

    end

    %生成随机序列

    rand('seed',key);

    a=rand(1,count);

    %初始化

    R=zeros([1 count]);

    C=zeros([1 count]);

    %计算row,col

    r=1;

    c=1;

    R(1,1)=r;

    C(1,1)=c;

    for i=2:count

    if a(i)>=0.5

    c=c+interval1;

    else

    c=c+interval2;

    end

    if c>n

    r=r+1;

    if r>m

    error('error');

    end

    c=mod(c,n);

    if c==0

    c=1;

    end

    end

    R(1,i)=r;

    C(1,i)=c;

    end

    end

    提取

    clc;clear;close all

    %读取携密图片

    img=imread('logoout.jpg');

    img=double(img);

    %计算大小

    [a,b]=size(img);

    load save.mat;

    fid=fopen('hidout.txt','w');

    p=1;

    [row,col]=random(img,length,1712031005); %产生随机数

    for i=1:length

    if bitand(img(row(i),col(i)),1)==1 %按位与运算

    fwrite(fid,1,'ubit1');

    result(p,1)=1;

    else

    fwrite(fid,0,'ubit1');

    result(p,1)=0;

    end

    if p==length

    break;

    end

    p=p+1;

    end

    fclose(fid);

    fid=fopen('hidden.txt','r');

    [hidtxt,length]=fread(fid,inf,'uint8');

    fclose(fid);

    fid=fopen('hidout.txt','r');

    [hidout,length1]=fread(fid,inf,'uint8');

    fclose(fid);

    %errnum=biterr(hidtxt,hidout);

    function [R,C]=random(mat,count,key)

    %计算间隔的位数

    [m,n]=size(mat);

    i1=floor(m*n/count)+1;

    i2=i1-2;

    if i2==0

    error('error');

    end

    %生成随机序列

    rand('seed',key);

    a=rand(1,count);

    %初始化

    R=zeros([1 count]);

    C=zeros([1 count]);

    %计算row,col

    r=1;

    c=1;

    R(1,1)=r;

    C(1,1)=c;

    for i=2:count

    if a(i)>=0.5

    c=c+i1;

    else

    c=c+i2;

    end

    if c>n

    r=r+1;

    if r>m

    error('error');

    end

    c=mod(c,n);

    if c==0

    c=1;

    end

    end

    R(1,i)=r;

    C(1,i)=c;

    end

    end

    总结

    1、基于格式的信息隐藏:只需在DOS命令行中输入一条命令,无需编码,简单;隐藏信息可以通过现有工具提取,透明性低;隐藏容量大。

    2、基于LSB的图像信息隐藏,优点是算法简单,便于实现,计算速度快;在基础算法上能很快的进行改进,并在脆弱水印中广泛应用;由于能在最低有效位进行嵌入,所以对于图像影响很小,几乎无法用肉眼识别。LSB缺点是:嵌入消息较大似乎,耗时长;只能处理简单的流格式的文件;为满足水印的不可见性,允许嵌入的水印强度较低,对于空域的各种操作较敏感;鲁棒性差。

    更多相关内容
  • 信息隐藏技术

    千次阅读 2021-06-02 21:45:34
    信息隐藏(Information Hiding)作为一门新兴的交叉学科,伴随着信息和网络技术的飞速发展,在隐蔽通信、数字版权保护等方面起着越来越重要的作用。信息隐藏是将秘密信息隐藏在另一非机密的载体信息中,通过公共信道进行...
    • 信息隐藏(Information Hiding)作为一门新兴的交叉学科,伴随着信息和网络技术的飞速发展,在隐蔽通信、数字版权保护等方面起着越来越重要的作用。信息隐藏是将秘密信息隐藏在另一非机密的载体信息中,通过公共信道进行传递。秘密信息被隐藏后,攻击者无法判断载体信息中是否隐藏了秘密信息,也无法从载体信息中提取或去除所隐藏的秘密信息。信息隐藏技术研究的内容包括信息隐藏算法、数字水印、隐通道技术和匿名通信技术等。

    1. 传统的信息隐藏技术 :

    1. 技术性的隐写术——隐形墨水、录音回声等
    2. 语言学中的隐写术——藏头诗等
    3. 用于版权保护的隐写术——水印等

    2. 信息隐藏技术主要由下述两部分组成:

    • (1) 信息嵌入算法(编码器),它利用密钥来实现秘密信息的隐藏。
    • (2) 信息提取算法(检测器),它利用密钥从隐秘载体中检测并恢复出秘密信息。在密钥未知的前提下,第三者很难从隐秘载体中得到或删除甚至发现秘密信息。

     

     3. 信息隐藏的分类:

     法比安对信息隐藏的分类:

     根据秘钥的不同,信息隐藏可以分为三类:

     

    4. 信息隐藏的特性:

     

    与传统的加密方式不同的是,信息隐藏的目的在于保证隐藏数据不被未授权的第三方探知和侵犯,保证隐藏的信息在经历各种环境变故和操作之后不受破坏。因此,信息隐藏技术必须考虑正常的信息操作造成的威胁,使秘密信息对正常的数据操作,如通常的信号变换或数据压缩等操作具有免疫能力。根据信息隐藏的目的和技术要求,它存在以下5个特性。

    • (1) 安全性(security)。衡量一个信息隐藏系统的安全性,要从系统自身算法的安全性和可能受到的攻击两方面来进行分析。攻破一个信息隐藏系统可分为3个层次:证明隐藏信息的存在、提取隐藏信息和破坏隐藏信息。如果一个攻击者能够证明一个隐藏信息的存在,那么这个系统就已经不安全了。安全性是指信息隐藏算法有较强的抗攻击能力,它能够承受一定的人为的攻击而使隐藏信息不会被破坏。
    • (2) 鲁棒性(robustness)。除了主动攻击者对伪装对象的破坏以外,伪装对象在传递过程中也可能受到非恶意的修改,如图像传输时,为了适应信息的带宽,需要对图像进行压缩编码,还可能会对图像进行平滑、滤波和变换处理,声音的滤波、多媒体信号的格式转换等,这些正常的处理都有可能导致隐藏信息的丢失。信息隐藏系统的鲁棒性是指抗拒因伪装对象的某种改动而导致隐藏信息丢失的能力。所谓改动,包括传输过程中的信道噪声、滤波操作、重采样、有损编码压缩、D/A或A/D转换等。
    • (3) 不可检测性(undetectability)。不可检测性是指隐蔽载体与原始载体具有一致的特性,如具有一致的统计噪声分布,以便使非法拦截者无法判断是否藏有隐秘信息。
    • (4) 透明性(invisibility)。透明性是指利用人类视觉系统或听觉系统属性,经过一系列隐藏处理,目标数据必须没有明显的降质现象,而隐藏的数据无法被看见或听见。
    • (5) 自恢复性(self-recovery)。经过一些操作或变换后,可能使原图产生较大的破坏,如果只从留下的片段数据仍能恢复隐藏信号,而且恢复过程不需要宿主信号,这就是所谓的自恢复性。

     5. 信息隐藏的算法:

    根据载体的不同,信息隐藏可以分为图像、视频、音频、文本和其他各类数据的信息隐藏。在不同的载体中,信息隐藏的方法有所不同,需要根据载体的特征选择合适的隐藏算法。例如,图像、视频和音频中的信息隐藏利用了人的感官对于这些载体的冗余度来隐藏信息;而文本或其他各类数据需要从另外一些角度来设计隐藏方案。因此,一种很自然的想法是用秘密信息替代伪装载体中的冗余部分,替换技术是最直观的一种隐藏算法,也称为空间域算法。除此之外,对图像进行变换也是信息隐藏常用的一种手段,称为变换域算法。

    1. 图像是由很多像素点组成的,对二值图像来说,每个像素点用八位来表示,将像素最低位替换成秘密信息,人眼难以察觉。
    2. 空间域算法
    3.  变换(频)域算法:空间域算法的最大缺点是鲁棒性差,很难抵抗包括有损压缩、低通滤波等在内的各种攻击。另外,空间域中信息隐藏算法只能嵌人很小的数据量。图像的频域算法是指对图像数据进行某种变换,这种方法可以嵌人大量的比特而不引起可察觉的降质,当选择改变中频或低频分量(DCT变换除去直流分量)来嵌人信息时,健壮性可以大大提高。常用的频域信息隐藏算法有DFT(离散傅里叶变换) .DCT(离散余弦变换)和DWT(离散小波变换)。
       

     6. 数字水印:

     数字水印类似于信息隐藏,它也是在数字化的信息载体(指多媒体作品)中嵌人不明显的记号(也称为标识或水印)隐藏起来,被嵌人的信息包括作品的版权所有者、发行者、购买者、作者的序列号、日期和有特殊意义的文本等,但目的不是为了隐藏或传递这些信息,而是在发现盗版或发生知识产权纠纷时,用来证明数字作品的来源、版本、原作者、拥有者、发行人及合法使用人等。通常被嵌入的标识是不可见或不可观察的,它与源数据紧密结合并隐藏其中,成为源数据不可分离的一部分,并可以经历一些不破坏源数据的使用价值的操作而存活下来。这样的标识可以通过计算机操作被检测或者被提取出来。显而易见,数字水印是数字化的多媒体作品版权保护的关键技术之一,也是信息隐藏的重要分支。

     基本原理:

     7. 隐通道技术:

     概念:

     

     

     

     分类:

    根据隐通道的形成,隐通道可分为:

    • 存储隐通道(storage covert channels)
    • 时间隐通道( timing covert channels);

    根据隐通道是否存在噪声,隐通道可分为:

    • 噪声隐通道(noisycovert channels)
    • 无噪声隐通道(noiselesscovert channels);

    根据隐通道所涉及的同步变量或信息的个数,隐通道可分为:

    • 聚集隐通道(aggregated covert channels)
    • 和非聚集隐通道( noaggregated covert channels)
       

    隐通道分析方法:

    1. 信息流分析方法
    2. 非干扰分析方法
    3. 共享资源矩阵法

    8. 匿名通信技术:

    通俗地讲,匿名通信就是指不能确定通信方身份(包括双方的通信关系)的通信技术,它保护通信实体的身份。严格地讲,匿名通信是指通过一定的方法将业务流中的通信关系加以隐藏,使窃听者无法直接获知或推知双方的通信关系或通信双方身份的一种通信技术。匿名通信的重要目的就是隐藏通信双方的身份或通信关系,从而实现对网络用户个人通信隐私及对涉密通信的更好的保护。
     

    分类:

     

    信息安全与技术(第二版)

    展开全文
  • HTML 信息隐藏与提取

    千次阅读 2021-11-04 12:40:16
    了解格式化文件信息隐藏的特点,掌握如何利用HTML语言的特征来隐藏秘密信息,实现基于HTML语言的信息隐藏。 【实验环境】 (1) WindowsXP或 Vista 操作系统; (2) Ultra Edit编辑工具; (3) IE浏览器。 【原理简介】 ...

    0x00 信息内容安全实验报告

    【实验目的】

    了解格式化文件信息隐藏的特点,掌握如何利用HTML语言的特征来隐藏秘密信息,实现基于HTML语言的信息隐藏。

    【实验环境】

    (1) WindowsXP或 Vista 操作系统;

    (2) Ultra Edit编辑工具;

    (3) IE浏览器。

    【原理简介】

    HTML即超文本标记语言,是设计网页的基本语言。HTML语言由普通文本文件加上各种标记组成,没有图像、音频文件等所拥有的感觉冗余和多媒体数据冗余,在HTML语言中隐藏信息,要保持不可见性和抗攻击能力都很困难。目前商品化的HTML隐藏技术都是通过在HTML文件的回车换行符之前加入一些不可显示标记符号来实现。本实验中提出的HTML隐藏的方法主要是通过HTML语法特点来隐藏信息,常见方法有以下五种。

    (1) 利用浏览器在解析HTML程序时会忽略掉行尾或HTML结束标记后的空白符号,不会影响浏览器的显示结果的特点来隐藏信息。在网页结束标记</HTML>后每行的行尾插入空格或Tab键隐藏信息,例如插入一个空格代表隐藏0,插入一个Tab代表隐藏1。

    (2) 修改标记名称字符的大小写来隐藏信息。如用大写标记名称代表隐藏1,用小写标记名称代表隐藏0。这样,一个标记名称可隐藏1bit信息。

    (3) 修改属性值字符串的大小写来隐藏信息。属性值字符串对大小写不敏感,如用属性字母的大写代表隐藏1,小写代表隐藏0。

    (4) 用属性值用单引号、双引号或者不使用引号都可以表达相同含义的特点隐藏信息,如用双引号代表隐藏1,单引号代表隐藏0。

    (5) 用单标记具有两种等价格式的特点来隐藏信息。如标记<BR>等价于<BR/>,可用<BR>代表隐藏1,<BR/>代表隐藏0。类似的标记还有<HR>=<HR/>,<IMG>=<IMG/>等。这样的一个标记可隐藏1bit信息。


    本次实验笔者采用的是第一种方法,即在每行的行尾插入空格或Tab键隐藏信息。代码逻辑和结构与前面的实验 LSB 图像隐写基本一致。

    0x01 Hide

    如果用 ASCII 表示一个字母,隐写一个字母需要 7 或 8 个比特位。而用 1-26 表示一个字母,隐写一个字母仅需要 5 个比特位。鉴于 HTML 文件的行数一般不会太多,而该方法一行仅能隐写一个比特,所以笔者在这里摒弃了传统的 ASCII 表示方式,采用 1-26 的表示方式完成了对于大写字母的隐写。

    def write_hide(i):
    	obj = open("hide.txt","a+",encoding="UTF-8")
    	obj.write(i + "\n")
    	obj.close()
    
    def str2int(message):
    	string = ""
    	for i in message:
    		string = string + bin(ord(i) - 64).replace('0b','').zfill(5)
    	return string
    
    def hide():
    	count = flag = 0
    	message = input('Please in put the message:')
    	string = str2int(message)
    	#print(string)
    	with open("html.txt","r",encoding="UTF-8") as f:
    		for i in f.readlines():
    			i = i.strip()
    			if count == len(string):
    				write_hide(i)
    			else:
    				if int(string[flag]) == 0:
    					i = i + " "
    					count = count + 1
    					flag = flag + 1
    				elif int(string[flag]) == 1:
    					i = i + "\t"
    					count = count + 1
    					flag = flag + 1
    				write_hide(i)
    

    首先从网上随便copy一份html代码,自行填充或缩减代码至所需行数后保存为html.txt:
    在这里插入图片描述
    将脚本与html.txt置于同一目录下运行:
    在这里插入图片描述
    成功生成hide.txt:
    在这里插入图片描述

    0x02 Extract

    def write_extract(i):
    	obj = open("extract.txt","a+",encoding="UTF-8")
    	obj.write(i)
    	obj.close()
    
    def extract():
    	string = ""
    	count = 0
    	with open("hide.txt","r",encoding="UTF-8") as f:
    		for i in f.readlines():
    			if count == 5:
    				count  = 0
    				string = chr(int(string,2) + 64)
    				write_extract(string)
    				string = ""
    			i = i.strip("\n")
    			if i[-1] == " ":
    				string = string + "0"
    				count = count + 1
    			if i[-1] == "\t":
    				string = string + "1"
    				count = count + 1
    

    将脚本与hide.txt置于同一目录下运行:
    在这里插入图片描述
    成功生成extract.txt:
    在这里插入图片描述

    0X03 The_fu11_scr1pt

    def write_hide(i):
    	obj = open("hide.txt","a+",encoding="UTF-8")
    	obj.write(i + "\n")
    	obj.close()
    
    def write_extract(i):
    	obj = open("extract.txt","a+",encoding="UTF-8")
    	obj.write(i)
    	obj.close()
    
    def str2int(message):
    	string = ""
    	for i in message:
    		string = string + bin(ord(i) - 64).replace('0b','').zfill(5)
    	return string
    
    def hide():
    	count = flag = 0
    	message = input('Please in put the message:')
    	string = str2int(message)
    	#print(string)
    	with open("html.txt","r",encoding="UTF-8") as f:
    		for i in f.readlines():
    			i = i.strip()
    			if count == len(string):
    				write_hide(i)
    			else:
    				if int(string[flag]) == 0:
    					i = i + " "
    					count = count + 1
    					flag = flag + 1
    				elif int(string[flag]) == 1:
    					i = i + "\t"
    					count = count + 1
    					flag = flag + 1
    				write_hide(i)
    
    def extract():
    	string = ""
    	count = 0
    	with open("hide.txt","r",encoding="UTF-8") as f:
    		for i in f.readlines():
    			if count == 5:
    				count  = 0
    				string = chr(int(string,2) + 64)
    				write_extract(string)
    				string = ""
    			i = i.strip("\n")
    			if i[-1] == " ":
    				string = string + "0"
    				count = count + 1
    			if i[-1] == "\t":
    				string = string + "1"
    				count = count + 1
    
    def main():
    	mode = input("Please input the mode:")
    	if mode == 'hide':
    		hide()
    	if mode == 'extract':
    		extract()
    
    if __name__ == '__main__':
    	main()
    

    0x04 Summary

    将html.txt改为html.html,将hide.txt改为html.html,open两者进行比较:
    在这里插入图片描述
    证实该隐写方法不会影响浏览器的显示结果。

    如果不对文件进行utf-8编码,则会导致html乱码:
    在这里插入图片描述

    展开全文
  • WAV音频的LSB信息隐藏

    2013-06-13 17:46:46
    对于如何以wav格式的音频文件为载体进行信息隐藏进行概述,隐藏方法主要是lsb算法
  • 走进信息隐藏的世界,全面讲解信息隐藏——第1节:信息隐藏技术简介 专栏题记:奥斯卡优秀电影《美丽心灵》里面有讲述一位优秀数学家为政府破译敌国通讯的情节,如电影所讲,现实中也有着类似的情节,在我们的生活...

    走进信息隐藏的世界,全面讲解信息隐藏——第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


    展开全文
  • 医疗供应链通信网络产生关键...另一方面,信息隐藏技术(Information Hiding Techniques, IHT)利用各种先进的方法来隐藏敏感信息,使其不被恶意节点披露。此外,在区块链的支持下,IHT可以带来更高的安全性和所需的隐
  • 利用MATLAB实现WAV音频的LSB信息隐藏

    千次阅读 2020-12-10 23:35:36
    近年来,虽然数字音频信息隐藏技术的研究工作发展很快,出现了一些代表算法,但是与图像信息隐藏算法相比,数字音频信息隐藏技术面临着更大的挑战,因为人类听觉系统对随机噪声十分敏感,使得可以嵌入的数据量非常...
  • 文章目录一、MIDI简介二、MIDI隐藏代码三、取出MIDI隐藏信息 一、MIDI简介 MIDI(Musical Instrument Digital Interface,乐器数字接口),电子乐器制造商们建立的通信标准,辅助音乐创作、确定电脑音乐程序,用音符的...
  • 信息隐藏综述

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

    热门讨论 2012-07-02 09:06:13
    信息隐藏与数字水印是信息安全领域的研究热点。本书代码主要内容包括图像、音频、文本、网络协议和软件等各种载体的信息隐藏与数字水印实验,常见的隐写算法分析和攻击,比较典型的隐写工具的原理和使用方法。
  • 信息隐藏F5算法源代码

    热门讨论 2012-07-09 10:19:40
    信息隐藏F5算法源代码
  • 信息隐藏技术综述-学习笔记

    千次阅读 2022-04-01 12:35:17
    文章目录信息隐藏技术综述@[toc]一、什么是信息隐藏二、信息隐藏基本原理2.1信息隐藏的分类2.2信息隐藏的特性2.3信息隐藏的基本模型2.4信息隐藏的关键技术2.4.1空域法2.4.2变换域法2.4.3信道隐藏三、信息隐藏的应用...
  • 加密域可逆信息隐藏经典算法(附加代码) 本文介绍加密域可逆信息隐藏经典算法,张新鹏教授的《Reversible Data Hiding in Encrypted Image》。主要分为图像加密、信息嵌入、信息提取与图像恢复三个过程。(图片必须...
  • 信息隐藏的原理与应用

    千次阅读 2021-12-04 12:13:27
    信息隐藏技术能为数字信息所有者的权益提供有力的保护。 值作数字媒体,需要资金,创意,时间等等。 传播数字媒体,成本基本为0 信息隐藏技术利用人类感觉器官对数字信号的感觉,将一个消息隐藏在另一个消息之中...
  • 信息隐藏技术的学习研究【学习总结】 你好! 本人关于信息隐藏方面的研究很久了,主要是利用深度学习方面的技术来实现。由于电脑等原因,经常一些总结东西找不到了,所以想通过写博客的方式进行记录,一方面是对学过...
  • LSB信息隐藏算法

    千次阅读 2021-12-31 19:43:48
    3.使用LSB信息隐藏算法,分别嵌入1bit/pixel、2bit/pixel、3bit/pixel,并显示伪装图像 4.提取嵌入的秘密信息 clc clear close all I=imread("./9.bmp"); %载体图片 I0=imread("./1.bmp"); %被嵌入图片 ...
  • 直方图平移的可逆信息隐藏 摘要:可逆数据隐藏(RDH)也被称为无损或可逆数据隐藏,已逐渐成为数据隐藏领域非常活跃的研究领域。本文介绍了多种基于直方图平移的可逆信息隐藏算法,并对各种算法的技术发展历史,现状...
  • LSB图像信息隐藏(实现及分析)

    千次阅读 2021-09-12 17:52:46
    LSB图像信息隐藏+python实现 一.实验目的 将信息图片存入载体图片,并从载体图片中提取出信息图片。具体操作为将信息图片的信息写入载体图片的最低位层(载体图片至少应为信息图片8倍)。 二.实验原理 图像 灰度...
  • BMP 图像信息隐藏及检测

    千次阅读 2021-01-13 11:38:02
    针对文件结构的信息隐藏方法需详细掌握文件的格式,利用文件结构块之间 的关系或根据块数据和块大小之间的关系来隐藏信息。 BMP(Bitmap-File)图形文件是Windows采用的常见图形文件格式,要利用BMP位图进行信息隐藏...
  • 信息隐藏在pic11.bmp文件的尾部。 从BMP图像的结构中可知,图像的3、4、5、6四个字节表示整个BMP图像的长度(大小)。使用该方式隐藏信息时,未修改图像文件的文件长度字节,通过比较文件的实际长度和文件中保存的...
  • C++ 封装 & 信息隐藏

    千次阅读 多人点赞 2021-05-02 14:02:39
    C++ 封装 & 信息隐藏简介
  • 在整个介绍信息隐秘技术部分, 为了统一起见, 我们约定以下名词: 称需要隐秘的信息为秘密信息( secret) , 秘密信息隐藏的媒介叫做载体( cover) , 隐藏后的结果叫做隐蔽载体( stego-cover) 一、图...
  • 封装和信息隐藏

    千次阅读 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 更多高级...
  • 变换域信息隐藏--DCT

    千次阅读 2021-05-02 10:10:53
    ##思想提出背景–空间域隐藏 空间域隐藏是基于位图分解的思想产生的,其主要方法...针对上述问题,研究者尝试将信息放在相对重要的的部位中,在不影响载体完整性的前提下尽可能将信息隐藏到低频系数中去。 ##变换域学习
  • 信息隐藏——二值图像的信息隐藏

    千次阅读 2020-06-24 21:28:42
    二值图像的信息隐藏 【实验目的】: 使用一个特定图像区域中黑像素的个数来编码秘密信息。 若某块P1 (Bi)>50%,则嵌入一个1,若P0 (Bi)>50%,则嵌入一个0。 在嵌入过程中,为达到希望的像素关系,需要对一些...
  • 信息隐藏实验

    千次阅读 2019-10-16 14:26:13
    【实验目的】 (1)了解数字水印和信息隐藏技术; (2)利用相关软件给图片添加数字水印...  信息隐藏技术与传统密码学不同的是,它利用多媒体信息普遍存在的冗余性,将秘密信息隐藏在多媒体信息中而不引起多...
  • 信息隐藏基本原理

    千次阅读 2021-04-08 10:23:04
    一些名词 A打算秘密传递一些信息给B...实现信息隐藏的基本要求 C正常且不会引起怀疑。 C’与C无法区分,无论是从感官上还是从计算机分析上。 不可视通信的安全性取决于第三方有没有能力将载体对象和伪装对象区别开来。
  • 图像信息隐藏(索引图象)

    千次阅读 2021-11-19 11:50:44
    索引图象隐写术 文章目录 1.索引图像 2.基于索引图像的隐写术 3.现有索引图象隐写术 4.matlab实现...任德斌 [2] csdn:《Matlab实现简单的GifShuffle算法隐藏信息》、《Matlab实现简单的hide&seek算法隐藏信息》;Spwpun
  • 信息隐藏技术综述——粗浅入门

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

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 808,526
精华内容 323,410
关键字:

信息隐藏

友情链接: 实验二1.1.zip