APP下载

多重加密的数字水印生成方法

2013-09-10聂廷远万胜伟周立俭

计算机工程与设计 2013年9期
关键词:数字水印数字签名二进制

聂廷远,贾 萧,万胜伟,周立俭,孙 洁

(青岛理工大学 通信与电子工程学院,山东 青岛266033)

0 引 言

数字水印利用数据隐藏原理使版权标志不可见或不可听,达到既不损害原作品,又实现版权保护的目的[1]。具体的生成方法,就是将载体信息经过一系列的加密算法,将其生成不可逆的或是难以被破解的特定的标识信息 (即数字水印),然后将该标识信息载入到载体信息中。当该作品被盗版或出现版权纠纷时,所有者可利用水印提取方法从盗版作品或水印版作品中获取水印信号作为依据,为以法律的手段对其进行制裁提供依据,起到保护知识产权的作用。数字水印的检测就是提取数字水印进行解密,判断其结果与原始签名信息是否相同,依此来判定原载体信息的安全。

李等通过对图像特征的处理,提出了一种基于公钥的可逆数字水印方法[2],刘等对图像的角点检验与水印同步进行分析和讨论,在此基础上提出了一种基于角点特征的几何同步数字水印算法[3]。Ling等提出了基于压缩视频局部仿射不变特征的数字水印技术,具有抗几何失真的特性[4]。肖等将多级离散小波变换的 “多级”思想引入到离散余弦变换中,并对多级离散余弦变换的特性进行了分析,在此基础上提出了一种基于多级离散余弦变换的数字水印算法[5]。王等利用多尺度Harris检测算子从载体图像中提取出特征点,并根据特征尺度自适应确定特征区域,对其进行归一化处理,结合预失真补偿理论,采用DFT中频幅值比较策略,将水印信息重复嵌入到多个归一化特征区域,提出了一种抗几何攻击的数字水印新算法[6]。吕等为了使水印具有更强的鲁棒洼和更广泛的适应性,提出一种基于Haar小波基的离散小波变换 (DwT)的隐形水印算法[7]。唐等针对多重数字水印的实际应用,结合密码学中的安全双方计算协议和零知识证明协议提出一种动态多重数字水印设计方案[8]。聂等在IP核设计的过程中通过对FPGA设计加以约束,然后嵌入水印,达到保护芯片知识产权的目的[9]。文献 [10-12]对近期的数字水印技术做了较为详细的陈述。

尽管各种各样的数字水印方法在图像、视频等多媒体和IC设计保护中得到了很好的应用,但过去的研究大多集中在水印的嵌入与检测方面,很少涉及数字水印的生成方法。数字水印的生成在数字水印整体方案中占有至关重要的地位,如果数字水印生成安全度不高,则其生成的标识信息 (数字水印)及其数字水印的检测都失去意义。

本文提出一种多重加密的数字水印生成方法。先将数字签名先经过MD5算法,生成的是128bit位的二进制数,即Hash文本信息,再将128bit的二进制数分成四组,每组为32bit的二进制数,最后将32bit的二进制数经过RSA加密后生成seed,将四组seed并联生成二进制位,同时保留密钥,将并联的二进制的seed经过RC4加密生成二进制串,即生成的数字水印。该方法结合MD5、RSA和RC4等3种算法由数字签名输出随机性较高的数字水印方案,故具有较高的安全性和可行性。

1 相关算法介绍

1.1 MD5算法原理

MD5的目的是先把大容量信息 “压缩”成一种保密的格式,然后再用数字签名软件签署私人密钥,把任意数最后变换成l28位的二进制数[13],达种变换只与字节的值有关,与字符集或编码方式无关。

从整体来讲,MD5处理输入信息是以512位分组形式来完成的,且每一分组又被划分为16个32位子分组,经过处理后,算法输出4个32位分组,最后将这4个32位分组级联,得到我们所需的一个128位散列值[14]。图1给出了一个简单MD5算法的流程。

1.2 RSA算法原理

公钥密码体制的观点是由Diffie和Hellma首次提出的。与传统对称密码体制 (即加、解密密钥相同)相比,公钥体制使用两个密钥:加密密钥可以公开,称为公钥;解密密钥保密,为私钥。RSA算法是第一个能同时用于加密和数字签名的算法,普遍认为是目前最优秀的公钥方案之一[15]。

下面给出RSA算法描述:

(1)取两个大素数p和q(保密)。

(2)计算n=p×q(公开)和φ(n)=(p-1)×(q-1)(保密)。

图1 MD5算法流程

(3)随机选取一个解密密钥d,d要满足0<d<φ(n),而且gcd(d,φ(n))=1(保密)。

(4)计算加密密钥e,满足0<P<φ(n),而且de≡1(modφ(n))(公开)。

利用RSA加密第一步需要将明文数字化,并取长度小于log2n位的数字做明文块。

(5)加密明文:c=E(m)≡me(modn)。(6)解密密文:m=D(c)≡dd(modn)。

其中,m表示明文,c表示密文,e表示加密密钥,d表示解密密钥,E(m)表示加密函数,D(c)表示解密函数[16]。

1.3 RC4算法原理

RC4算法由Rivest进行开发,并得到验证的。它是一个基于非线性数组变换的序列密码。此算法用一个足够大的数组作为基础,对该数组进行非线性变换,产生非线性的密钥序列,并将大数组称为S盒.为实现RC4算法,需要两个处理过程:①密钥调度算法:其作用为设置S盒的初始排列;②伪随机生成算法:其作用为选取随机元素,并且修改S盒的原始排列顺序。

RC4算法如下:

其中:n表示此算法中使用的一个字节的长度;N表示一个长度为n的字节能显示值的总量,即N=2n;it,jt表示两个参数;K表示种子密钥,l为密钥长度,故l=K的比特数/n;Zt表示t时刻的输出值.进行加密时,使Zt与明文异或;进行解密时,使Zt与密文异或[17]。

2 数字水印IP保护方案

基于以上3种算法的分析,结合每种算法的特点,提出一种多重加密的数字水印的生成方法,如图2所示。数字签名和密钥首先经过加密器,生成水印,将生成的数字水印嵌入数字媒体,生成有水印的数字媒体。水印提取器把数字水印从水印化的数字媒体中提取出来,通过解密后加以验证。

图2 数字水印的嵌入和提取

3 实 验

本文中提出数字水印方案的测试在 Windows XP系统平台下的惠普HP Compaq dx2255MT个人电脑,处理器为AMD Athlon64X2 4400+,2300MHz,内存容量为1GB。我们利用C语言编写程序,随机生成不同长度的字符串作为数字签名,并进行了数字水印生成的测试实验。

表1给出了长度为3、6、10位的字符串生成数字水印的具体结果。我们可以看出,对于不同的随机数字签名,得到的RSA输出基本相同,在123~124之间,RC4输出长度在865位左右。数字水印的平均汉明距离在500左右,具有较高的随机性,从而增强了数字水印的抗统计分析攻击能力。

表1 数字水印生成汇总结果

图3-图5分别直观地显示了不同长度字符串输入、加密生成数字水印结果的位数、汉明距离三者之间的关系。

输入不同的字符串时,RSA加密后的位数集中在123附近。因为MD5是将输入的信息字符串进行分组加密,Hash之后的结果都为128bit的二进制数,经由RSA加密时,由于y=x^e mod n,n=p×q,而p,q都是30位的大素数,对n取余后的二进制位数徘徊在固定长度123左右。信息经RC4处理后在870左右。因为经过RSA加密后的二进制位在123左右后,进行RC4加密,RC4里的数组盒子box长度为256,其内容为1到256的数字,然后将其顺序打乱,将盒子box里的随机数字与RSA生成的二进制位进行异或运算,由于256为2^8,因此异或后的数字重组后位数理论上为984位,实际上徘徊在870左右。另外,由于RSA中的30位数的生成是随机的,并且经过检测30次是否为素数后,进行重新判定,因此其加密时间具有不确定性。整体来看,字符串越长,加密时间越长。

我们对上述算法生成的数字水印进行了FPGA Benchmark的嵌入测试,嵌入水印前后的布局布线情况如图6和图7所示,FPGA设计在经过数字水印保护后性能无明显变化。

4 结束语

针对数字水印技术中数字水印生成方法研究的现状,本文结合MD5、RSA和RC4这3种算法提出一种安全性较高的数字水印生成方法。实验结果表明,加密后的字符串形成870位左右的二进制数,汉明距离平均在500左右,具有较强的抗攻击能力,在一定程度上提高了系统的安全性。该方法生成的数字水印通过对Benchmark的嵌入进行了测试,具有一定的鲁棒性。

[1]YUAN Zheng.Provably secure digital watermarking scheme[J].Journal on Communications,2008,22 (9):91-96 (in Chinese).[袁征.可证安全的数字水印方案 [J].通信学报,2008,22 (9):91-96.]

[2]LI Lizong,GU Qiaolun,GAO Tiegang.Public key-based reversible watermarking [J].Journal of Computer Applications,2012,32 (4):971-975 (in Chinese).[李立宗,顾巧论,高铁杠.基于公钥的可逆数字水印 [J].计算机应用,2012,32(4):971-975.]

[3]LIU Quan,ZHANG Le,ZHANG Yonggang,et al.The corner feature-based geometric synchronous digital watermarking algorithm [J].Journal on Communications,2011,32 (4):25-31 (in Chinese).[刘全,张乐,张永刚,等.基于角点特征的几何同步数字水印算法 [J].通信学报,2011,32(4):25-31.]

[4]LING H,WANG L,ZOU F,et al.Robust video watermarking based on affine invariant regions in the compressed domain[J].Signal Processing (Elsevier Academic Press),2011,91(8):1863-1875.

[5]XIAO Jun,WANG Ying.A robust digital watermarking algorithm based on multiple-level discrete cosine transform [J].Chinese Journal of Computers,2009,32 (5):1055-1061(in Chinese).[肖俊,王颖.基于多级离散余弦变换的鲁棒数字 水 印 算 法 [J]. 计 算 机 学 报,2009,32 (5):1055-1061.]

[6]WANG Xiangyang,HOU Limin,WU Jun.Feature-based digital image watermarking scheme robust to geometric attacks[J].ACTA Automatica Sinica,2008,34 (1):1-6 (in Chinese).[王向阳,侯丽敏,邬俊.基于图像特征点的强鲁棒数字水印嵌入方案 [J].自动化学报,2008,34 (1):1-6.]

[7]LV Haicui,FU Li, WANG Dan. Watermarking lowest approximation of wavelet transformation of images [J].Computer Engineering and Applications,2009,45 (11):99-101(in Chinese).[吕海翠,傅鹂,王丹.小波变换的低频数字水印 [J].计算机工程与应用,2009,45 (11):99-101.]

[8]TANG Ming,WANG Lina,ZHANG Huanguo.The dynamic multiple digital watermark design [J].Application Research of Computers,2006,23 (3):28-30 (in Chinese). [唐明,王丽娜,张焕国.动态多重数字水印设计方案 [J].计算机应用研究,2006,23 (3):28-30.]

[9]NIE Tingyuan,LIU Haitao,ZHOU Lijian,et al.FPGA IP core digital watermark protection and detection technology [J].Semiconductor Technology,2012 (8):585-589 (in Chinese).[聂廷远,刘海涛,周立俭,等.FPGA IP核数字水印保护与检测技术 [J].半导体技术,2012 (8):585-589.]

[10]WANG Kun,YANG Feng.Digital watermarking technology overview [J].Network & Computer Security,2010 (3):59-61 (in Chinese).[王坤,杨峰.数字水印技术综述 [J].计算机安全,2010 (3):59-61.]

[11]JIANG Jianguo,XUAN Man,QI Meibin.The status and progress of the digital watermarking technology [J].Journal of Computer Applications,2006,26 (s6):60-63 (in Chinese).[蒋建国,宣曼,齐美彬.数字水印技术的研究现状及进展 [J].计算机应用,2006,26 (s6):60-63.]

[12]ZHAO Xiang,HAO Lin.Digital watermarking overview[J].Computer Engineering & Oesign,2006,27 (11):1946-1950 (in Chinese). [赵翔,郝林.数字水印综述 [J].计算机工程与设计,2006,27 (11):1946-1950.]

[13]MAO Yi,CHEN Na.Research and improvement of the MD5 algorithm [J].Computer Engineering,2012,38 (24):111-114 (in Chinese). [毛熠,陈娜.MD5算法的研究与改进 [J].计算机工程,2012,38 (24):111-114.]

[14]ZHANG Yizhi,ZHAO Yi,TANG Xiaowu.MD5algorithm research [J].Computer Science,2008,35 (7):295-297(in Chinses).[张裔智,赵毅,汤小武.MD5算法研究 [J].计算机科学,2008,35 (7):295-297.]

[15]LI Yunfei,LIU Qing,HAO Lin,et al.An effective RSA algorithm improvement program [J].Journal of Computer Applications,2010,30 (9):2393-2397 (in Chinese). [李云飞,柳青,郝林,等.一种有效的RSA算法改进方案[J].计算机应用,2010,30 (9):2393-2397.]

[16]CHEN Chuanbo,ZHU Zhongtao.RSA algorithm is applied and the implementation details [J].Computer Engineering and Science,2006,28 (9):13-14 (in Chinese). [陈传波,祝中涛.RSA算法应用及实现细节 [J].计算机工程与科学,2006,28 (9):13-14.]

[17]HU Liang,CHI Ling,YUAN Wei,et al.Cryptanalysis and improvements of RC4algorithm [J].Journal of Jilin University,2012,50 (3):511-516 (in Chinese). [胡亮,迟令,袁巍,等.RC4算法的密码分析与改进 [J].吉林大学学报,2012,50 (3):511-516.]

猜你喜欢

数字水印数字签名二进制
基于正交拉丁方理论的数字签名分组批量验证
用二进制解一道高中数学联赛数论题
基于遗传优化的自然语言文本数字水印方法
交通运输行业数字签名系统的设计与实现分析
浅析计算机安全防护中数字签名技术的应用
基于网屏编码的数字水印技术
有趣的进度
二进制在竞赛题中的应用
二进制宽带毫米波合成器设计与分析
基于数字水印的人脸与声纹融合识别算法