张飞
(黄淮学院 计 算机科学系, 河南 驻 马店 4 63000)
云模型[1-3]是李德毅院士在传统模糊数学和概率统计的基础上提出的定性定量互换模型。在云模型中,表征定性概念的云滴数目可以是不定的,而需要版权保护的文本字符数目往往也是不定的。根据这个特点,本文通过在文本中嵌入水印云滴的方式进行文本的版权保护,嵌入的云滴代表云的某种定性概念。文本包含的字符数越多,则文本中可以嵌入的云滴数就越多。当部分云滴被恶意攻击后,只要是在一个阈值之内,并不能破坏代表整个云表征的定性概念。
根据云模型理论,正态云模型云滴是满足正态分布的随机数,参数Ex、En和He的变化分别影响云模型的水平位置、陡峭程度和正态云的实心化程度,云从整体上分布在x=Ex的两旁。但通常云模型的云滴并不是以x=Ex轴对称的,这里的不对称是指满足以下任意条件:1)以x=Ex轴为分界线,左右两部分的云滴数不相等;2)存在云滴x,找不到以x=Ex轴对称的云滴x′。表1是以Ex=0、En=1、He=0.3、N=1 000为例,一维正向云发生器10次生成云的左右两部分云滴数目对比。
从表1可以看出,通常生成的云左右两部分的云滴数目是不相等的,即这些实验生成的云通常不是对称的。
定义一维对称云是指满足下列条件的云模型:1)以x=Ex轴为分界线,左右两部分的云滴数相等;2)存在云滴x,找到以x=Ex轴对称的云滴x′。
一维对称云生成算法:输入为云A;输出为对称云C。算法步骤如下:1)将云A以x=Ex为轴旋转180°,得到云B,即将云A的云滴变换x′=2Ex-x,y′=y;2)将A、B两个云以x=Ex轴叠加,生成云C;3)对称云C是具有与云A相同Ex、En和He的云。
表1 一维正向云左右部分云滴数对比实验
该算法可以方便地生成特定数目云滴的对称云。由于对称云的左右对称性,在后面的云水印算法中,只需将云的左半部分或右半部分嵌入文本,从而节省水印空间。
算法1:加密算法
云水印的生成,首先是采用加密算法(如AES算法)对版权图像的像素数据作加密处理,形成加密后的版权图像,接着对版权图像进行灰度归一化处理,用归一化处理后的数据生成云数字特征;根据云数字特征,通过正向云发生器生成水印云滴,这些水印云滴就是一个个水印标记,所有标记的组合就是云水印信息。由于引入加密算法,在不知密钥的前提下,非授权人不能生成特定的可认证的云水印信息;对于水印攻击者,即使得到了嵌入的可认证的云水印信息及其云数字特征,由于加密函数逆向计算的复杂性,也不能得到密钥和版权图像。云滴的数量由需要版权保护的文本大小和嵌入文本比例决定。以代表著作权人版权的版权图像为例,云水印生成框图见图1。
图1 云水印生成
算法2:云水印生成算法
输入:版权图像B,密钥KEY,云滴数N;输出:含N个云滴的云水印信息W。具体步骤如下:1)读取版权图像信息,得到图像的像素数据块DIBBits[3×m×n],m和n代表版权图像的长和宽;2)对像素数据块加密EnDIBBits[3×m×n]=AES(DIBBits[3×m×n],KEY);3)对加密的数据EnDIBBits[3×m×n]进行归一化处理,得到归一化后的数据,记为NormalValue[3×m×n];4)计算NormalValue[3×m×n]的期望值,记为Ex;5)计算NormalValue[3×m×n]的方差值,记为En;6)计算|Normal-Value[3×m×n]-Ex|的方差值,记为He;7)以En为期望,以He为标准差,生成一个正态随机数En′;8)以Ex为期望,以En′为标准差,生成一个正态随机数x,若满足x∈[Ex-3En,Ex+3En],即x为一个水印云滴,否则回到步骤7);9)重复步骤7)、步骤8),直到产生N/2个云滴,构成云Cloud;10)Cloud′=CreateSymmetricalCloud(Cloud);生成对称云Cloud′,云滴数为N,对称云Cloud′构成水印信息W。
通过云水印生成算法,水印云滴是由正向云发生器产生的,产生的单个水印云滴并没有实际意义,但所有水印云滴的组合就可以表征特定的水印信息。根据基于字体颜色的水印嵌入方法的特点[4],在生成满足一定条件的云滴后,需对每个云滴值扩展255倍后作取整处理,才能嵌入水印位。每个扩展后的云滴值可以嵌入到一个水印位,这里的水印位可以是汉字、英文字母、数字或其他特殊符号在文本中的定位。根据用户输入的密钥、嵌入系数和文本字符,可以确定水印云滴的水印位。由于引入密码学中的单向哈希函数,并且嵌入前需要用户输入密码,水印位具有一定的隐蔽性,水印云滴将会散落在文本的不同字符中[5]。水印位还与文本的字符相关,更提高了水印的安全性。为了尽量少地修改文本,使嵌入的水印云滴更隐蔽,可以允许用户输入嵌入系数,方便地控制嵌入比例,嵌入系数与嵌入比例成反比关系,即嵌入系数越大,嵌入比例越小。嵌入系数的取值与文本长度和水印信息大小有关,对于长文本,水印嵌入的比例较小就能嵌入一定数目的云滴,相应的嵌入系数就较大。云水印嵌入的框图见图2。
图2 云水印嵌入
算法3:文本云水印嵌入算法
输入:文本T,版权图像B,嵌入系数u,密钥KEY;输出:水印文本T′。具体算法如下:
然后,对非水印位进行噪声处理。
云水印的提取过程是先根据密钥和嵌入系数搜索文本全部的水印位。提取水印位的数据,然后分离出云水印数据部分Cloud′和k重水印序列号编码kS′部分。首先对kS′采用多数选举产生S′,多数选举过程会对编码进行第1次纠错;然后,对S′进行纠错码纠错,即二次纠错,并得到S。经二次纠错后的编码S即为水印序列号。使用水印序列号S提供的参数对提取的水印数据部分Cloud′进行筛选得到Cloud。云水印提取的框图见图3。
图3 云水印提取
算法4:文本云水印提取算法
输入:文本T,嵌入系数u,密钥KEY;输出:水印W。具体如下:
根据云本身的特殊性,云之间的相似性,以及基于字体颜色的文本水印方法的特点,可以通过其产生一定数量(一个很大的数)的云滴,根据相近云滴的阈值来认证云水印。
算法5:云水印认证算法
1)d=Drop(Ex,En,He);2)进行云滴筛选,若d∈[Ex-3En,Ex+3En],将d放入云滴集合A,并生成确定度;否则,回到步骤1);3)重复步骤1)和步骤2),直到产生包含N/2个云滴的集合A,A构 成 一 个 云Cloud′;4)Cloud″=CreateSymmetrical-Cloud(Cloud′);5)令:云Cloud″的云滴集合为Drop1,需认证的对 称 云Cloud的 云 滴 值 集 合 为Drop2;6)Drop1=Sort(Drop1);7)Drop2=Sort(Drop2);8)IF α<δ THEN通过认证,ELSE未通过认证。云水印认证框图如图4所示。
图4 云水印认证
实验测试的平台为WindowsXP操作系统和Word2003。实验工具为VC6所编写的水印程序,以及在Matlab 6.5下编写的实验程序。
阈值δ的取值与云滴的数目相关。一般来说,云滴数越多阈值δ的取值越小。由于云滴是随机的,每次对阈值δ的测定是有微小差别的,所以应通过大量的实验来测定。通过大量实验得到图5所示的阈值δ分布图,每一个阈值的测定至少是1 000次实验的平均值。
图5 阈值δ分布图
下面运用实验分析验证上述提出的云水印认证算法。当N=1 000时,δ=0.009 665 3。云的数字参数为Ex=0,En=1.5,He=0.2,生成含云滴数为1 000的云Cloud′,图6中用圆点表示云Cloud′的云滴。待认证的云Cloud是从水印文本中提取出来的,云滴用图6中的加号表示。从图6中可以看出2个云之间的偏差很小,大部分是重合的,计算得到的系数(α=0.007 459 1),小于阈值(δ=0.009 665 3),说明通过认证,与实际显示的结果一致[6]。
图6 通过认证的云对比
当N=1 000时,δ=0.009 665 3。云的数字参数为Ex=0,En=1.5,He=0.2,生成含云滴数为1 000的云Cloud′,图7中用圆点表示云Cloud′的云滴。待认证的云Cloud是从水印文本中提取出来的,云滴用图7中的加号表示。从图7中可以看出2个云之间的偏差很大,很大部分是不能重合的,计算得到的系数(α=0.015 863 27)大于阈值(δ=0.009 665 3),说明不能通过认证,也与实际显示的结果一致。实验表明使用该算法对云水印进行认证是正确可行的。
图7 未通过认证的云对比
取一个未加载水印信息的Word文档作为加载水印的载体,然后将代表版权信息的图片信息作为水印信息;成功地将水印信息嵌入到载体文档中,比较嵌入前后的载体文档,人眼很难区分两者之间的差别,在未受攻击时可准确地提取所加载的水印信息,证明该算法具有较好的隐蔽性。
嵌入系数u不等于1时,对非嵌入位嵌入噪音。攻击者在使用错误密钥时,不能准确对水印位定位,提取的数据不是嵌入的云滴,而是噪音和部分云滴的混合。嵌入系数u越大,嵌入率越低,可以嵌入的噪音越多,对于攻击者来说,正确提取水印越困难。
表2是攻击者在不知密钥前提下提取的实验结果。取N=10 000的Word文本,依次使用不同嵌入系数嵌入水印。攻击者由于不知道密钥,只能使用错误密码提取。从实验结果看,未知密钥时,不能通过认证。
表2 未知密钥时的认证实验
在该实验中,基于云模型的文本水印技术的实验结果表明,使用最常见的攻击格式化文本水印的方法对加载水印后的文档进行攻击,将加载水印后的文档全文设为相同的行间距和字间距,文档的水印仍可以完好的读取,认证通过。
剪切、删除、复制、添加文本内容的攻击,造成文本语义的破坏,通过剪切粘贴一大段带有水印信息的文本、删除一大段任意文本、复制粘贴一大段带水印的文本和添加一大段任意文本,造成部分嵌入的云滴次序的破坏或增加减少了云滴,但水印提取算法仍能正确提取出水印云滴,认证通过。如果剪切后粘贴的攻击,云滴只是挪动位置,但不会破坏云滴,因而不会影响认证。删除攻击等同于修改攻击。
剪切、粘贴、删除、复制、添加、修改攻击对于水印的破坏程度与嵌入率有关。一般来说,嵌入率越低,嵌入的水印越分散,对于使用相同部分修改攻击的抗破坏能力越强。表3为使用嵌入系数为1,即嵌入率为100%时,修改攻击后的水印认证。
表3 修改攻击云认证实验
依据云理论,提出了基于云模型的文本水印技术。代表版权信息的媒体可以是图像,也可以是文字信息等。加密后的版权信息,经过云发生器生成的云被嵌入到Word文档中,生成的云滴数目可以很多也可以很少,所以该方法对于不同大小的Word文档都适用;由于版权信息的加密过程需要密码,在不知密码的前提下不能生成特定的云。为了增加系统的鲁棒性,在云水印的嵌入和提取时,都需要提供密钥和嵌入系数;在不知密钥的前提下,攻击者不能正确定位水印位,提取的云不是嵌入的云,因而是不能正确通过认证的。对于非水印位,为了进一步隐蔽水印位,采取在非水印位嵌入噪音的策略。实验表明该方法可以实现对文本版权的认证。
[1]李德毅,史雪梅,孟海.隶属云和隶属云发生器[J].计算机研究与发展,1995,32(6):15-20.
[2]李德毅,刘常昱.论正态云模型的普适性[J].中国工程科学,2004,6(8):28-34.
[3]李德毅,刘常昱,杜鹢,等.不确定性人工智能[J].软件学报,2004,15(9):1-13.
[4]陈萍,郭水旺,陈华丽.基于字体颜色的文本信息隐藏算法[J].科学技术与工程,2007,7(14):210-212.
[5]戈英民,郑岗.一种利用字符特征变化的文本数字水印方法[J].微型电脑应用,2005,21(3):36-39.
[6]刘常昱,李德毅,杜鹢,等.正态云模型的统计分析[J].信息与控制,2005,34(2):236-240.