一种基于FPGA的彩色图像隐秘通信系统

文档序号:25871798发布日期:2021-07-16 16:35阅读:114来源:国知局
一种基于FPGA的彩色图像隐秘通信系统
一种基于fpga的彩色图像隐秘通信系统
技术领域
1.本发明涉及隐秘通信系统技术领域,更具体地,涉及一种基于fpga的彩色图像隐秘通信系统。


背景技术:

2.随着互联网的高速发展与5g的普及,数字化的信息与数据遍布于人们日常生产生活的每一个角落,如智慧城市中足不出户即可完成相关证件的办理,而与这种便利相伴随的则是数据的安全问题也越来越突出,体现在近些年来个人数据或隐私泄露的新闻时有报道。
3.在传统的信息保护方案中,加密算法是被最广泛使用的解决思路。然而现代计算机算力的不断提升以及学者们在密码分析方面的大量研究使得单纯依靠加密算法实现对数据的保护变得不可靠,同时加密算法的一个特点就是加密后的文件变得不可识别。这个特征本身就极易引起攻击者的注意,因而对加密文件的解密或破坏加密文件等行为的概率也大为提升。
4.信息保护方案的另一个代表是信息隐藏技术,这个技术的特点是将重要的机密信息通过特定的嵌入算法隐藏在可以公开的非秘密载体中,并且隐藏信息后的载体与原载体之间的差异不会被人的视觉或听觉等感知,同时也要做到载密载体尽量不被现有的隐写分析算法所察觉,这样便可做到掩人耳目的秘密信息传输。如今信息隐藏技术在个人信息保护、商业版权保护和国防等方面发挥着重大作用。在信息隐藏技术中,文本、语言、图像和视频等都可以作为载体的数据源,然而不同的载体会有各自相对应的隐写算法和特点。考虑到彩色图像在日常生活中应用最广、可嵌入容量大、获取方式简单、信息量大等特点,且当前隐写分析算法主要是针对灰度图像设置的,因此选择彩色图像作为载体是合适的,具有非常重要的研究意义和应用价值。
5.现阶段的数据传输主要是基于wifi、蜂窝网、以太网等方式实现的,其中wifi传输方案适用于有信号覆盖的小范围区域数据传输,蜂窝网适合普通用户的使用,而以太网能在普通用户与专有局域网内数据通信之间切换的功能,适合有秘密信息传输单位使用。


技术实现要素:

6.本发明为解决现有通信系统中信息隐藏存在失真度高的问题,提供了一种基于fpga的彩色图像隐秘通信系统,其能有效的降低信息隐藏的失真度,提高抵抗检测能力。
7.为解决上述技术问题,本发明的技术方案如下:一种基于fpga的彩色图像隐秘通信系统,所述的系统采用fpga终端架构,具体包括图像读取模块、秘密图像获取模块、缓存模块、通信模块、彩色图像嵌入模块;
8.所述的图像读取模块,用于获取载体图像,并发送给缓存模块;
9.所述的秘密图像获取模块,用于获取彩色秘密图像,并发送给缓存模块;
10.所述的缓存模块,将收到的载体图像、彩色秘密图像发送给彩色图像嵌入模块进
行处理;
11.所述的彩色图像嵌入模块根据隐写算法将彩色秘密图像嵌入载体图像中,得到载密图像,并经过通信模块进行发送。
12.优选地,所述的彩色图像嵌入模块执行的隐写算法如下:
13.s1:利用滤波器对载体图像进行预处理,得到初始失真值d1;
14.s2:根据更新策略对载体图像的初始失真值d1进行更新;
15.s3:根据最优嵌入算法结合步骤s2更新得到的初始失真值d2和彩色秘密图像进行嵌入,得到载密图像。
16.进一步地,步骤s1,利用kerbohme滤波器h对载体图像i进行滤波得到载体图像i1,接着用低通滤波器l对载体图像i1滤波后取绝对值得到载体图像i2,最后使用1023除以载体图像i2中的每一个元素,并采用uint10函数取整得到初始失真值d。
17.再进一步地,步骤s2,所述的更新策略的步骤如下:
18.s201:将载体图像i2分为3*3不重叠的图像块;
19.s202:在指定的嵌入率α下,对每个图像块结合初始失真值d做模拟嵌入,得到模拟嵌入结果;
20.s203:根据模拟嵌入结果计算出每个像素点是+1嵌入还是

1嵌入,或者是未嵌入信息,即修改类型为0;统计+1,0,

1的个数;
21.s204:若+1的个数不等于

1的个数,则按照公式(3)将d_new作为修改个数多的嵌入方式的失真,d作为另一种嵌入方式的失真
[0022][0023]
式中,i、j表示像素点在图像中的坐标。
[0024]
同时失真更新(1+α),若0的个数多于+1与

1个数之和,则将+1与

1的失真都设置为最大失真值1023,也即认为此图像块不适合嵌入信息;对于其他情况则保持+1与

1的失真值都为d。
[0025]
再进一步地,所述的最优嵌入算法表示如下:
[0026]
stego=stc_embed(cover,plus,minus,secret,code)
[0027]
式中,cover表示载体图像i2的某个图像块;plus为表示该图像块的+1失真;minus表示图像块的

1失真;secret表示秘密信息;code表示最优嵌入算法的编码矩阵,其表达式如下:
[0028][0029]
再进一步地,所述的系统还包括存储有彩色图像库的存储模块,所述的图像读取模块从存储模块中获取一张彩色图像作为载体图像。
[0030]
再进一步地,所述的缓存模块,根据fpga终端架构的ddr3控制缓存模块实现对内
存任意地址的读写访问,通过设计一个分时复用子模块将缓存模块的单端口地址接口扩展为多路地址接口,并设计一个数据位宽转换子模块用于将外设的数据位宽转换为缓存模块能接受的位宽。
[0031]
再进一步地,所述的系统还包括载体图像显示模块,所述的载体图像显示模块与缓存模块的一路地址接口连接,用于显示载体图像。
[0032]
再进一步地,所述的系统还包括彩色图像提取模块,所述的彩色图像提取模块与缓存模块的另一路地址接口连接,用于根据提取算法对载密图像进行秘密信息提取,并根据秘密信息重组的秘密彩色图像。
[0033]
再进一步地,所述的系统还包括秘密彩色图像显示模块,所述的秘密彩色图像显示模块分别与缓存模块的另一路地址接口、彩色图像提取模块连接,用于显示秘密彩色图像。
[0034]
与现有技术相比,本发明技术方案的有益效果是:
[0035]
1.本发明所述的彩色图像嵌入模块采用隐写算法将彩色秘密图像嵌入载体图像中,其能有效的降低信息隐藏的失真度,提高抵抗检测能力。
[0036]
2.本发明采用的失真值并不是传统算法中采用初始失真值作为嵌入算法中的嵌入失真,而是在原始失真的基础上增加了失真更新步骤,这个步骤可以保证算法能用更低的失真完全秘密信息的嵌入,因此本发明的失真度低。
[0037]
3.由于失真更新可以保证嵌入后的失真远小于传统嵌入算法带来的失真,因此在视觉上对图像质量影响更小;另外失真更新的思想是保证同一区域块的修改方式相同,因此能对现阶段广泛采用的基于像素差异性的隐写分析算法体现出更高的抗检测行。
附图说明
[0038]
图1是实施例1所述的彩色图像隐秘通信系统的框架示意图。
[0039]
图2是实施例1所述的隐写算法的步骤流程图。
[0040]
图3是实施例2所述的彩色图像隐秘通信系统的框架示意图。
[0041]
图4是实施例3所述的彩色图像隐秘通信系统的框架示意图。
具体实施方式
[0042]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,仅用于示例性说明,不能理解为对本专利的限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0043]
下面结合附图和实施例对本发明的技术方案做进一步的说明。
[0044]
实施例1
[0045]
如图1所示,一种基于fpga的彩色图像隐秘通信系统,所述的系统采用fpga终端架构,具体包括图像读取模块、秘密图像获取模块、缓存模块、通信模块、彩色图像嵌入模块;
[0046]
所述的图像读取模块,用于获取载体图像,并发送给缓存模块;
[0047]
所述的秘密图像获取模块,用于获取彩色秘密图像,并发送给缓存模块;
[0048]
所述的缓存模块,将收到的载体图像、彩色秘密图像发送给彩色图像嵌入模块进
行处理;
[0049]
所述的彩色图像嵌入模块根据隐写算法将彩色秘密图像嵌入载体图像中,得到载密图像,并经过通信模块进行发送。
[0050]
在一个具体的实施例中,如图2所示,所述的彩色图像嵌入模块执行的隐写算法如下:
[0051]
s1:利用滤波器对载体图像进行预处理,得到初始失真值d1;
[0052]
s2:根据更新策略对载体图像的初始失真值d1进行更新;
[0053]
s3:根据最优嵌入算法结合步骤s2更新得到的初始失真值d2和彩色秘密图像进行嵌入,得到载密图像。
[0054]
在一个具体的实施例中,步骤s1,所述的预处理具体如下:利用kerbohme滤波器h对载体图像i进行滤波得到载体图像i1,接着用低通滤波器l对载体图像i1滤波后取绝对值得到载体图像i2,最后使用1023除以载体图像i2中的每一个元素,并采用uint10函数取整得到初始失真值d。
[0055]
所述的kerbohme滤波器h的作用是提取载体图像i的边缘信息;所述的低通滤波器l的作用是使提取到的边缘向四周稍微扩散,而10bit位宽进行量化是为了便于后续处理。需要注意的是此时每个像素点其+1失真值与

1失真值相同,也即加1嵌入或减1嵌入具有相同的优先级。
[0056]
其中,kerbohme滤波器h、载体图像i1的表示如下:
[0057][0058][0059]
在一个具体的实施例中,步骤s2,失真更新是隐写算法的核心部分,原因是隐写算法的嵌入率、失真度、抗检测性能等关键指标都与载体图像的失真值直接相关。本实施例所述的失真更新策略的步骤如下:
[0060]
s201:将载体图像i2分为3*3不重叠的图像块;
[0061]
s202:在指定的嵌入率α下,对每个图像块结合初始失真值d做模拟嵌入,得到模拟嵌入结果;
[0062]
s203:根据模拟嵌入结果计算出每个像素点是+1嵌入还是

1嵌入,或者是未嵌入信息,即修改类型为0;统计+1,0,

1的个数;统计的作用是可以利用图像块内rgb三个颜色通道的相关性,根据通道的相关性更新载体图像的失真值;
[0063]
s204:若+1的个数不等于

1的个数,则按照公式(3)将d_new作为修改个数多的嵌入方式的失真;d作为另一种嵌入方式的失真,目的是可以让同一图像块内都是+1或者

1嵌入,以便有效抵抗隐写分析检测。
[0064][0065]
式中,i、j表示像素点在图像中的坐标。
[0066]
同时失真更新(1+α),可以起到提高嵌入率的作用;若0的个数多于+1与

1个数之和,则将+1与

1的失真都设置为最大失真值1023,也即认为此图像块不适合嵌入信息;对于其他情况则保持+1与

1的失真值都为d。
[0067]
在一个具体的实施例中,所述的最优嵌入算法表示如下:
[0068]
stego=stc_embed(cover,plus,minus,secret,code)
[0069]
式中,cover表示载体图像i2的某个图像块;plus为表示该图像块的+1失真;minus表示图像块的

1失真;secret表示秘密信息;code表示最优嵌入算法的编码矩阵,其表达式如下:
[0070][0071]
需要注意的是图像块大小为3*3,因此有3*3*3个bit可用于秘密信息嵌入,在嵌入率α小于1的前提下,secret的长度必须小于27,code为最优嵌入算法的编码矩阵,在嵌入与后续的提取过程中都需要用到,因此可以将其视为密钥使用,式(4)是code的一个可能取值。
[0072]
根据udp/ip协议,将载密图像分为若干数据包,然后发送给通信模块打包发出。
[0073]
本实施例采用的失真值并不是传统算法中采用初始失真值作为嵌入算法中的嵌入失真,而是在原始失真的基础上增加了失真更新步骤,这个步骤可以保证算法能用更低的失真完全秘密信息的嵌入,因此本实施例具有更低的失真值。
[0074]
本实施例由于失真更新可以保证嵌入后的失真远小于传统嵌入算法带来的失真,因此在视觉上对图像质量影响更小;另外失真更新的思想是保证同一区域块的修改方式相同,因此能对现阶段广泛采用的基于像素差异性的隐写分析算法体现出更高的抗检测行,因此本实施例具有安全性高,更能抵抗检测的特点。
[0075]
实施例2
[0076]
实施例1所述的彩色图像隐秘通信系统只具备接送载密图像的通信系统,即只能将彩色秘密图像处理成载密图像通过发送模块进行发送,不能对载密图像进行提取。本实施例在实施例1的基础上可进一步改进,如图3所示,具体如下:
[0077]
所述的彩色图像隐秘通信系统还包括彩色图像提取模块,所述的彩色图像提取模块与缓存模块的另一路地址接口连接,用于根据提取算法对载密图像进行秘密信息提取,并根据秘密信息重组秘密彩色图像。
[0078]
当所述的通信接收到载密图像,将载密图像传输给彩色图像提取模块进行秘密信息提取,具体如下:
[0079]
a1:丢弃事先与发送方约定好的一列像素,然后在载密图像分为3*3的图像块。
[0080]
a2:对于每个图像块,根据提取算法提取出隐藏在图像块内的秘密信息,提取格式如下:
[0081]
extract=calc_syndrome(code,stego)
[0082]
式中,code表示事先与发送方约定好的编码矩阵,stego表示载密图像块的lsb位
组成的序列;extract表示提取出的秘密信息。
[0083]
a3:重复步骤a2确保所有秘密信息都被提取出来。
[0084]
a4:将提取到的秘密信息重组为480*272的rgb565模式的彩色图像。
[0085]
两个实施例2所述的彩色图像隐秘通信系统(记为通信系统a、通信系统b)可以相互之间进行隐秘通信,可以同时实现隐写、提取的功能。通信系统a可以作为发送方,首先通过秘密图像获取模块获取一张彩色秘密图像,然后从图像读取模块获取载体图像,接着借助隐写算法将秘密图像嵌入到载体图像中,最后通过通信将载密图像发给接收方;接收方(通信系统b)的通信收到载密图像数据后,借助彩色图像提取模块中的提取算法提取出秘密信息,并重组得到秘密彩色图像。同理,也可以实现通信系统b到通信系统a的隐秘通信过程。
[0086]
实施例3
[0087]
基于实施例2,所述的彩色图像隐秘通信系统,如图4所示,所述的系统还包括存储有彩色图像库的存储模块,所述的图像读取模块从存储模块中获取一张彩色图像作为载体图像。本实施例所述的存储模块包括sd卡、内存条、tf卡几种中的一种,任何用于保存信息的存储模块都属于本实施例的保护范围。本实施以sd卡为例,所述的图像读取模块从存储有彩色图像库的sd卡中任意获取一张作为载体图像。
[0088]
在一个具体的实施例中,所述的缓存模块,根据fpga终端架构的ddr3控制缓存模块实现对内存任意地址的读写访问,通过设计一个分时复用子模块将缓存模块的单端口地址接口扩展为4路地址接口,并设计一个数据位宽转换子模块用于将外设的数据位宽转换为缓存模块能接受的位宽。4路地址接口分别是秘密图像获取与显示端口1、载密图像读写端口2、接收到的载密图像读写端口3和载体图像获取与显示端口4。即实现所述的缓存模块设置为4端口ddr3sdram缓存模块。
[0089]
在一个具体的实施例中,所述的系统还包括载体图像显示模块,所述的载体图像显示模块与缓存模块的载体图像获取与显示端口4连接,用于显示载体图像。
[0090]
在一个具体的实施例中,所述的系统还包括彩色图像提取模块,所述的彩色图像提取模块与缓存模块的接收到的载密图像读写端口3连接,用于根据stc提取算法对载密图像进行秘密信息提取,并根据秘密信息重组的秘密彩色图像。
[0091]
在一个具体的实施例中,所述的系统还包括秘密彩色图像显示模块,所述的秘密彩色图像显示模块分别与缓存模块的秘密图像获取与显示端口1、彩色图像提取模块连接,用于显示秘密彩色图像。
[0092]
本实施例所述的秘密图像获取模块可以为摄像头,即通过摄像头拍摄的画面分辨率为480*272,颜色为rgb565模式。sd卡中的彩色图像库的图像分辨率为1024*768,颜色为rgb888模式。所述的通信模块包括以太网模块、wifi模块、zigbee模块几种的一种。本实施例为以太网模块进行说明。
[0093]
本实施例所述的彩色图像隐秘通信系统的嵌入与传输过程如下:
[0094]
1.上电后fpga通过驱动程序实现摄像头、sd卡、秘密彩色图像显示模块、载体图像显示模块、以太网收发模块和4端口ddr3 sdram(缓存模块)等模块的初始化。
[0095]
2.从sd卡彩色图像库中选出一张图像作为载体图像,送入缓存模块中缓存并显示在载体图像显示模块上;将摄像头拍摄获取的秘密彩色图像送到缓存模块中缓存,同时在
秘密彩色图像显示模块上显示。
[0096]
3.为方便后续操作,舍弃载体图像的一列,使得载体图像尺寸为1023*768,然后将载体图像分为若干不相邻的3*3图像块,因此一共可以得到87296个图像块。接着将秘密信息分为87296段,需要注意的是480*272*16不是87296的整数倍,因此每段秘密信息的长度是不同的。
[0097]
4.按照公式(1)和公式(2)计算载体图像的初始失真值。
[0098]
5.根据最优嵌入理论,在最优嵌入时载体失真的概率分布符合吉布斯分布,为了模拟最优嵌入过程需要首先计算出最优嵌入时失真对应的概率。根据失真值计算概率的方法,
[0099][0100]
式中,是图像块中下标为i的r、g、b三个颜色通道对应的初始失真值,从式(5)可以看到概率是和λ有关的值,为了进一步确定λ的取值,采用如下公式计算:
[0101][0102]
其中,h(p)表示计算信息熵,其计算公式如下:
[0103]
h(p)=

p*log2p
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)
[0104]
很显然h(p)的取值也是和λ有关,因此可以看出式(6)成立的关键是λ的取合适值,因此使用从小到大线性递增的方式找出使得公式(6)成立的λ,并再由此λ计算出失真对应的概率。
[0105]
6.根据y=embeddingsimulator(x,pr,pg,pb,payload),并利用根据输入的载体图像x,已求出的载体失真对应的最优概率pr、pg、pb;秘密信息长度与载体信息长度之比payload计算出模拟嵌入结果y。需要注意的是embeddingsimulator是三元嵌入方案,也就是载体的每个元素都与可能被+1修改或是

1修改以嵌入信息。
[0106]
7.根据x与y的差异统计出+1修改,

1修改以及未修改像素的个数。
[0107]
8.若+1的个数多于

1的个数,或

1的个数多于+1的个数,则按照公式(3)将d_new作为修改个数多的嵌入方式的失真,d作为另一种嵌入方式的失真;若0的个数同时多于+1与

1个数之和,则将+1与

1的失真都设置为最大失真值1023;对于其他情况则保持+1与

1的失真值都为d。
[0108]
9.对每个载体图像块重复5~8的步骤以保证所有图像块的失真都更新完成。
[0109]
10.对每个图像块通过stego=stc_embed(cover,plus,minus,secret,code)函数进行秘密信息的嵌入,cover为当前图像块的lsb位组成的载体序列,plus对应载体序列中每个元素的+1失真值,minus对应载体序列中每个元素的

1失真值,secret为当前图像块分配的需要嵌入的秘密信息,code为收发双方所共有的编码矩阵,可作为密钥使用以进一步增强系统安全性。
[0110]
11.重复步骤10以保证所有信息都被嵌入,得到载密图像。
[0111]
12.将尺寸为1023*768的载密图像补上在步骤3中舍弃的载体图像列,构成完整的载密图像。
[0112]
13.根据udp/ip协议,将载密图像分为若干数据包,然后交由以太网模块打包发出给接收端(另一个彩色图像隐秘通信系统)。
[0113]
接收端的数据处理包括以下步骤:
[0114]
1.上电后fpga通过驱动程序实现显示器、以太网和4端口ddr3 sdram等模块的初始化。
[0115]
2.从以太网接口中接收完整的载密图像数据,并用秘密彩色图像显示模块显示。
[0116]
3.丢弃事先与发送方约定好的一列像素,然后在图像分为3*3的图像块。
[0117]
4.对于每个图像块,根据提取算法提取出隐藏在图像块内的秘密信息,提取格式为extract=calc_syndrome(code,stego).code为事先与发送方约定好的编码矩阵,stego为载密图像块的lsb位组成的序列,extract为提取出的秘密信息。
[0118]
5.重复步骤4确保所有秘密信息都被提取出来。
[0119]
6.将提取到的秘密信息重组为480*272的rgb565模式的彩色图像,并在秘密彩色图像显示模块中显示。
[0120]
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1