新闻中心

EEPW首页 > 设计应用 > 基于FPGA的数字水印实现

基于FPGA的数字水印实现

作者:程前 董长旭 廖媛媛时间:2019-03-29来源:电子产品世界收藏

The realization of digital watermarking based on FPGA

本文引用地址:http://www.eepw.com.cn/article/201903/399042.htm

程前 1 ,董长旭 1 ,廖媛媛 2
(1.电子科学与工程学院,四川 成都 610000;
2.电子科技大学,通信抗干扰技术国家级重点实验室,四川 成都 610000)

       摘要:数字水印技术在信息安全、知识产权保护和认证等领域有着重要的功能和地位。本文基于现场可编程门阵列(FPGA),通过流水线设计,乒乓缓冲和,实现8×8矩阵的变换,充分利用FPGA的查找表(LUT)和块RAM(BRAM)资源,实现载体图像的快速DCT域变换。原始通过Arnold变换进行置乱,并与Logistic映射的选择合适的水印信息嵌入点。最后通过不同的水印攻击来验证本系统的
隐蔽性和鲁棒性。
       关键词:
       0 引言
  随着通信技术的飞速发展,数字媒体通信在信息交流中得到了广泛的应用。网络信息交换之间的安全和加密等问题引起了高度重视[1],保证信息不被非法利用和破坏也变得越来越重要。图像数据可承载比文字更多的内容,成为信息传递的重要途径。传统的加密方法主要针对数据传输过程进行保护,而不能完全解决接收解密后的安全性问题,而利用信息隐藏技术通过在公开的载体信息中插入隐藏的机密信息后进行数据传输,实现了信息的安全隐秘传输[2]

1557134203520665.jpg

  数字水印技术可以广泛用于信息安全、知识产权保护和认证等领域,其通过某一种水印算法,实现将包含机密信息的隐藏在传输的载体图像中,而数据接收方则通过专用解密方法提取水印信息,实现图像数据安全提取和传输[3]
  1 图像水印实现系统整体方案

  本系统分为水印嵌入和水印提取两个模块,实现将水印图像嵌入载体图像后提取加密水印,整体框架图如图1所示。
  2 水印嵌入模块

  水印嵌入模块选择在空间域或变换域进行水印图像嵌入载体图像。首先将200×200的二值水印图像进行置乱处理后,利用在800×800载体图像中选择合适的水印嵌入位置,在制定的嵌入规则指导下进行水印的嵌入。本系统的水印嵌入模块主要包括DCT变换模块、模块、混沌序列模块等。
  2.1.1 变换模块

  最初的数字水印算法是基于空间域实现,是在嵌入规则下直接实现水印图像嵌入。虽然空间域嵌入可实现高速变换并降低系统复杂度,但是难以实现较好的鲁棒性和不可感知性。变换域是指通过某一算法,常见的包括离散余弦变换(DCT),离散傅里叶变换(DFT),离散小波变换(DWT)等,将载体图像变换到频域进行水印图像的嵌入,这样可实现高鲁棒性,高安全性的水印不可感知嵌入系统。因为DCT变化是图片JPEG压缩标准,所以本系统选择在DCT域进行水印嵌入,实现高抗JPEG压缩攻击性[4]

  本 系 统 选 择 对 8 0 0 × 8 0 0 的 载 体 图 像 进 行8 × 8 矩 阵 分 块 后 , 形 成 x(i,j) 0 ≤ i < 8, 0 ≤ j < 8的矩阵数据,然后再经过二维DCT得到变换结果X(m,n) 0 ≤ m < 8, 0 ≤ n < 8 ,二维DCT的公式如下:

1.png

  其中0≤m , n≤7,尺度因子。

  二维DCT运算算法十分复杂,若用组合逻辑实现将大大影响系统的时序性能,本系统利用其可分解性质,对8×8矩阵每行首先进行一维DCT变化,然后对变换结果每列进行一维DCT即可得到二维DCT变换结果,具体操作步骤如下:一维DCT变换公式可以表示为矩阵形式:对于二维DCT变换,其公式可以用矩阵表示为:更进一步,可以将二维DCT变换分解:为了得到更快的工作频率,本系统选择通过流水线设计改善其时序性能,提高计算效率。缓存时加入乒乓操作改善输入速度和输出速度差距过大的问题,巧妙设计时序增加资源利用率。由于dct模块和转置ram只例化一次,实现最小资源耗费。一维DCT算法基本操作即为8×8矩阵相乘,需要大量的乘累加运算,占用FPGA的专用乘法器资源,所以为了实现资源优化,本系统通过,将一维DCT的系数矩阵C 8×8 与输入数据可能的运算结果事先存储在FPGA的BRAM资源中,利用真正的输入行/列数据产生地址进行读操作即可正确实现一维DCT运算。最终本系统实现100个周期内完成一次完整的两个8×8矩阵的DCT变换(IDCT同理)。
   2.1.2 模块

   水印图像的置乱操作,简单来说就是将所有像素按照一定规则实现重新排序,使得图像成为杂乱的不可识别图像,从而隐藏水印信息,本质上就是对水印图像的加密 [5] 。置乱后的水印图像可以降低噪声或者攻击的影响,提高水印信息的鲁棒性和抗攻击性。本系统采用Arnold置乱对水印图像进行处理,通过FPGA将32位200×200的原始水印图像进行置乱。模块将水印信息原存储地址经过置乱后,得到Arnold存储器地址后将水印信息重新存入。
  地址变换是将水印图像原地址(x,y)处的像素点移动至变换后的位置(x’,y’),其中位置变换公式为:x’ = (x + y) / 200,y’ = (x + 2y) / 200。

1557134217556302.jpg

1554781148309292.png

  同时Arnold置乱具有周期性,通过仿真发现图像的置乱周期为150,即经过150次置乱后得到原图像,所以在水印嵌入模块进行N Arnold 次置乱后,在水印提取模块进行150-N Arnold 次置乱即可恢复水印图像。
  本系统的Arnold置乱模块利用上述公式,对水印图片的行/列地址进行置乱。首先将输入的水印图像信息按行的顺序串行输入并进行N Arnold 次Arnold置乱,利用递减循环操作进行置乱地址的200减法求余运算,最终得到完成Arnold置乱的水印图像,图3的原始水印图像经过90次Arnold置乱后得到图4所示的置乱水印图像。
   2.1.2 混沌序列模块

   混沌现象非周期,不收敛,有界且对初值敏感,是非线性动态系统中出现的确定的类似随机过程,可以容易地生成很多非相关、类随机的确定再生信号。
  映射是广泛应用于混沌系统中的一个非线性方程 [6] ,公式如下:其 中 x, μ 是 分 支 系 数 , 且3.5699456≤μ≤4时,Logistic映射工作于混沌状态,本系统选择μ=3.875,初始值x 0 =0.621,在基于FPGA设计系统时,应尽可能避免小数操作,所以将μ右移3位得到U=31,初始值x 0 右移8位得到x 0 =159。输入初值进行Logistic映射时,按照x i+1 =U×X i (1-X i )运算,得到的值x i+1 左移11位即可得到0~1之间的混沌序列。

1554781208660687.png

1554781208960570.png

1554781208351499.png

  (1)嵌入规则

   本系统设计为盲水印算法,即在水印检测过程中时,只需要密钥而不需要原始数据的参与。在水印嵌入过程中,引入了混沌序列作为水印嵌入点选择的条件。
  由于混沌序列本身具有初值敏感性特性(即初值不同产生的序列完全不同),因此,引入混沌序列作为密钥将进一步提高算法的隐蔽性。
  DCT 域8×8矩阵中的频域系数进行编号得到顺序排列表,且表从左上角到右下角代表着从图像的低频部分到高频部分,如下表1所示。
  根据 Waston 模型的频率敏感度特性,同时考虑图像进行JPEG压缩后图像质量不出现明显降低,本系统选择在中频系数选择合适的像素点,基于加法水印嵌入规则将200×200的水印图像嵌入800×800的载体图像,即可划分为将4个水印图像信息嵌入8×8载体图像矩阵中,同时基于嵌入规则在可选4个像素点中选择嵌入1个水印信息,嵌入比为1/16,因此为了嵌入所有水印信息,需要在8×8的载体图像矩阵中选择4组16个像素点。综合考虑,本文选择Zigzag 表中编号为19、20和 8、10 ,9、11和12、14 , 13、15和17、21 , 16、18和22、23这4组像素点进行水印图像嵌入。最后根据上述置乱后的水印信息W,混沌序列值为X,每组像素点的系数分别为F1,F2,F3,F4,最终选择一个合适的a值实现加法嵌入规则得到最终的像素点F0:

   如果 X = 1,W = 1:若 F4 < F3,则F0 = F3+a,否则F0 = F4+a;

   如果 X = 1,W = 0:若 F4 > F3,则F0 = F3- a,否则F0 = F4 -a;

   如果 X = 0,W = 1:若 F2 < F1,则F0 = F1+a,否则F0 = F2+a;

   如果 X = 0,W = 0:若 F2 > F1,则F0 = F1- a,否则F0 = F2-a。

1554781272916345.png


1554781272762256.png

1554781272938652.png

  (2)系统运行结果

   将800×800载体图像和200×200的水印图像转化成二值数据传入本系统,仿真结果如图5(a)(b)
  (c)(d)所示,可以发现嵌入水印后的图像与载体图像并没有视觉上的失真,具有良好的水印不可见性,同时在未受攻击时,水印图像具有很好的隐蔽性。
   对嵌入水印后的载体图像分别进行1/4裁剪攻击,方差 0.01的高斯加噪攻击和马赛克攻击后提取水印信息来验证本系统的鲁棒性,攻击方法如图4(e)(g)(i)所示,结果如图4(f)(h)(j)
   所示,可以发现经过三种水印攻击后,本系统仍旧可以提取水印信息,且通过仿真知,抵抗剪裁攻击后的相关系数NC=0.7464,抵抗高斯噪声后的相关系数NC=0.9998,抵抗马赛克攻击后的相关系数。

   3.2 硬件速度与资源使用情况

   通过仿真图5(a)可以发现,本系统在经过时序优化后,完成一次图片处理小于1 ms,可在频率下正常工作,并实现100 ms内完成100个水印图像嵌入操作。FPGA硬件使用资源如图5(b)所示,除IO接口外使用的资源不足FPGA开发板资源的1%。
  4 结论

  本系统在全国大学生集成电路创新创业大赛中,适用于参赛题目“华为云杯-图片水印实现”,最终获得西南分赛区一等奖,全国总决赛三等奖。本系统将继续在架构上对二维DCT变换模块进行优化,在保证功能的同时,降低FPGA的IO接口资源使用率。

  参考文献:
  [1] 李赵红, 侯建军. 基于Logistic混沌映射的DCT域脆弱数字水印算法[J]. 电子学报, 2006,34(12):2134-2137.
  [2] 于平平. 基于VLSI实现的数字图像水印技术研究[D]. 天津大学, 2010.
  [3] 常晔. 基于DCT域的图像数字盲水印算法设计及硬件实现[D]. 天津大学,2010.
  [4] 张钉铭. 基于FPGA的数字水印算法实现[D]. 南京航空航天大学, 2012.
  [5] 倪蓉蓉, 阮秋琦. 利用Arnold对称性变换的图像信息隐藏算法[J]. 北京交通大学学报, 2002, 26(2):25-28.
  [6] 刘昕浩, 郭腾, 谢德辉,等. 基于Logistic混沌映射的图像加密通信系统研究[J].湖南理工学院学报(自科版), 2015, 28(4):27-31.

本文来源于科技期刊《电子产品世界》2019年第4期第76页,欢迎您写论文时引用,并注明出处



评论


相关推荐

技术专区

关闭