关键词: 数字水印
数据库水印(精选九篇)
数据库水印 篇1
关键词:关系数据库,信息隐藏,云理论,零水印
随着信息时代来临,版权保护和信息安全问题日益突出,数字水印技术作为传统加密方法的有效补充手段,受到了国际学术界和企业界的高度关注,获得了迅速的发展。图像、音频、视频等数字媒体的水印技术已经逐步成熟。然而,关系数据库不像多媒体数据有较大的冗余空间,还有其元组的无序性和数据库的更新需要,使得数据库水印技术难度较大。
1 几种关系数据库水印技术
1.1 R.Agrawal关系数据库数字水印技术
IBM Almaden研究中心的研究员Rakesh Agrawal提出了对关系数据库中数值型属性值进行标记的策略。该标记策略首先假定可以标记的关系数据库的某些数值型属性的值允许一定的误差,在其误差范围内不影响关系数据库数据的正常使用。
标记策略的基本思想是:首先运用加密算法中的单项哈希函数,根据用户给定的密钥和元组的主键值以及需要标记的元组比例来确定哪些元组需要标记,然后根据可以标记的属性数和比特位数确定标记的属性及其比特位置。这样就将关系数据库中符合条件的某些元组的某些数值型属性值的比特位数值置1或0,作为一个标记。这样,在整个关系数据库中多个比特位标记组合的比特位模式就是嵌入的水印信息。
1.2 R.Sion关系数据库数字水印技术
美国Purdue大学的Radu Sion对关系数据库水印的研究,也是基于对数值型属性进行标记的策略[2]。其基本思想是:给定数值型项目集合和一个秘密的排序密钥K,首先根据标准化项目的最大意义比特位的加密键值哈希排序对其进行秘密标记,如。然后构造子集Si用来嵌入比特位水印标记。假定水印信息是m个比特位长,则整个水印带宽将是m个比特位,每个比特位嵌入/隐藏到每个标记的Si中。这种秘密排序,通过对数据的分散效果,提高了防止象“选取”或“增加”等不同类型攻击的能力。
1.3 基于云理论的关系数据库数字水印技术
云模型[3]是将模糊性和随机性有机地综合在一起,它主要反映宇宙中事物或人类知识中概念的两种不确定性:模糊性 (边界的亦此亦彼性) 和随机性 (发生的概率) ,用云模型可以把模糊性和随机性有机地统一起来。基于云理论的关系数据库数字水印技术的技术思想是:把水印信息映射到相应的集合,然后求其期望、方差、标准差分别对应云理论中的期望值Ex、熵En和超熵He,由此三个参数生成云滴作为要嵌入的水印信息,嵌入算法及提取算法与以上两种标记策略相似。
1.4 关系数据库零水印技术
“零水印”即不修改原始载体任何数据的水印技术, 基本思想是不修改原始载体的数据, 而是提取原始载体的特征作为水印信息。图像数字水印中的零水印技术通常有:提取变换域特征作为水印;构造高阶统计量作为水印。
由于零水印技术[4]是通过提取、构造原始载体的特征信息作为水印,即水印信息很大程度上是由原始载体本身所决定的,即该水印只能说明是该原始载体具有这个水印,而不能指示原始载体数据的拥有者。所以,零水印技术必须引入一个权威机构来仲裁。这样就要求原始数据的拥有者对数据统计构造出来零水印之后要在该权威机构进行注册,在发生数据的版权纠纷时,可以对数据进行检测,同时从零水印权威机构获取注册的零水印,从而来确定版权的归属。数据库零水印模型如图1所示。
2 关系数据库水印算法分析
在上述四种算法中,R.Agrawal的算法虽然对于实验中的水印嵌入/提取操作很有效,但是它要求数据库中的数据类型全部为数值型,这不符合日常应用中数据库的需要,因为普通的应用型数据库不会只包含数值型数据,而是有多种类型的字段。而R.Sion方法所利用的“均方差”,对具有相同分布、数值相差不大的数据较适合,而关系数据库中不同字段的取值范围各不相同,将导致计算获得的值只能对部分数据项适用,限制了水印嵌入的容量。同时,前两种方法中嵌入的水印信息都是无意义的,作为版权标识的说服力不强。基于云理论的水印技术缺点是难以嵌入有意义的信息,如果用有意义的水印信息的数字特征作为云模型的参数,在水印信息很少的情况下云发生器的维数也很高,但是关系数据库中不一定有那么多的数值型属性。关系数据库零水印技术为非数值型数据库和对数据精度有严格要求的关系数据库的版权保护提供了一种相当好方法。
3 结论
目前关系数据库水印技术可以总结为标记水印策略和零水印策略。标记水印策略要求数据库中必须有对精度要求不高、可以被稍微改动的数值型的属性,零水印技术没有这些方面的要求,但必须引入一个权威机构对水印进行注册、认证。随着版权保护和信息安全问题的日益突出,对关系数据库水印技术还有很多方面需要研究,关系数据库水印技术对数据库的安全有着广泛的实际应用价值。
参考文献
[1]蒙应杰, 吴超, 张文, 张秀娟.数据库零水印注册方案的研究[J].计算机工程, 2007, 33 (2) :133-135.
[2]Sion R, Atallah M, Prabhakar S.Rights protection for relational data[C]//Proceedings of the2003ACM SIGMOD International Conference on Management of Data San Diego, California:ACM SIGMOD, 2003:98-109.
[3]Rakesh Agrawal, Jerry Kiernan.Watermarking Relational Databases[C].Proceeding of the28th VLDB Conference, Hongkong, China, 2002:155-156.
数据库水印 篇2
着力于研究一种在地理空间数据中隐藏和提取标识数据生产单位产权和数据用户使用权属的数字水印技术方法,作为一种辅助国家和测绘执法人员取证的技术手段,有效惩治数据非法流通,保障法律、测绘法规的执行,达到数据共享的安全性与最大化之间的平衡,实现地理空间数据共享的`有序性、安全性.从技术上使地理空间数据共享的安全性得到保护.
作 者:贾培宏 马劲松 JIA Pei-hong MA Jin-song 作者单位:贾培宏,JIA Pei-hong(南京大学,海岸与海岛开发教育部重点实验室,江苏,南京,210093;江苏省基础地理信息中心,江苏,南京,210013)
马劲松,MA Jin-song(南京大学,城市与资源学系,江苏,南京,210093)
基于零水印的关系数据库版权保护 篇3
数据库数字水印技术是实现数据库版权保护的重要方式之一。传统方案[1,2,3]需在一定程度上修改数据库宿主信息, 只适合于对精度要求不高、允许一定误差存在的数据库, 使得其应用面较窄。零水印[4]概念则为解决这一问题提供了一种思路。
到目前为止, 数据库零水印方面的研究成果有文献[5,6,7]。文献[5]通过提取数据库中部分属性值的最高二进制位构造零水印, 作为版权证明注册, 提供了一种数据库零水印方案。文献[6]在文献[5]的基础上引入混沌序列, 改进了其属性值选择算法, 并对生成的零水印进行了混沌置乱, 提升了部分性能。文献[5,6]因零水印构造方法相同, 可以归为一类, 都存在以下不足:构造的零水印由部分属性值的最高二进制位组成, 无法与所有者的名称、商标等标示版权的信息相联系。文献[7]研究了零水印注册算法。
结合数据库的特点提出一种新的数据库零水印方案:拟取出部分能代表数据库重要特征及价值的属性值, 以之为载体, 载入有意义的版权信息, 构造零水印;发生版权纠纷时, 在待检数据库上重构载体, 以之为依据, 从零水印中分离出版权信息, 判决归属。分析并实验说明该方案具有较好的可行性及抗攻击性。
2 相关定义
定义1:R (k, A1, A2, …, An) 是待保护数据库, k为主键, A1, A2, …, An为n个属性列。对于属性值r:r.K表示其所在元组的主键, r.A表示其所在属性列的列名。R′是待检测数据库。
定义2:C (c1, c2, …, cu) 代表有意义的版权信息, 由包含数据库所有者的名称、商标等标示版权信息的文本或图片组成, ci为其u个二进制位中的第i位;检测出的版权信息用C′表示。
定义3:H是一个单向哈希函数[1], 须满足如下要求:设h= H (M) , 则 (1) 给定M, h易于计算; (2) 给定h, 几乎不可能计算出M, 使得h=H (M) ; (3) 给定H (M) , 难以寻找一个M′, 使得H (M′) =H (M) 。
定义4:给定属性值r, 其标记值计算公式为
id=H (key·r.K·r.A) (1)
其中r.K 、r.A可在数据库中唯一定位该属性值;密码key 、函数H可防攻击者根据id值猜测到对应的属性值。
定义5:实数β∈[0, 1], 为调节因子。
3 零水印构造及检测方法
3.1 版权信息的载入及分离方法
当以一个数据为载体时, 版权信息的载入及分离方法, 如图1所示。对于多个数据, 重复使用该过程, 即可载入更多的版权信息位。
根据图1, 若载体相应位受到攻击, 检测版权信息会受到很大影响。因此应尽量选择重要的、对之攻击会降低原有价值的数据作为载体;并选择这些数据的较重要二进制位进行操作;同时多次载入版权信息以提高其抗攻击性。
对于载体数据的选取, 与特定的应用有关。
对于数据的较重要二进制位的选取, 通过调节因子β来控制:以载体数据的前β *100%重要二进制位作为备选空间, 即将相对不重要的二进制位排除在外。降低β值有利于重要二进制位的选取。对于一般应用, 重要二进制位通常是高二进制位。
版权信息的多次载入与载体的容量有关, 增大β值可增加选择范围, 从而增加载体容量。
需要说明的是, 对于数值型数据, 修改其最高二进制位一般会引起数据有效二进制位位数的变化, 使得载入与分离时的选位结果相异, 影响版权信息的正确检测, 所以选位时数值型数据的最高二进制位应排除在备选范围之外。
3.2 零水印模型设计
零水印系统一般包括构造和检测两个相对独立的部分。基于3.1节的原理, 可分别设计如下。
3.2.1 零水印构造模型
零水印构造的任务是根据受保护对象的重要特征构造零水印[4]。
对于数据库, 其中的较重要数据既是数据库的重要特征也是其主要价值所在, 也最值得去保护。因此应以这部分数据为基础选择载体数据, 然后载入有意义的版权信息构造零水印。为了增强两个阶段的联系, 增加方案的抗攻击性, 版权信息载入时以用户密匙、相应标记值的连接作为载入密匙。然而不同的数据库有不同的较重要部分, 所以其较重要数据部分的选取就由数据库所有者来完成。
据此, 零水印构造模型可设计如图2所示, 主要包括两个步骤: (1) 选择载体; (2) 载入版权信息。
当载体的容量较大时, 可实现版权信息的多次载入, 从而更加有效的抵抗攻击。
3.2.2 零水印检测模型
与零水印构造相对应, 零水印检测主要包括两个步骤: (1) 重构载体; (2) 分离版权信息。其设计如图3所示。
因为版权信息分离的结果中包含了多个版本的检测版权信息, 经过多数投票[2]可获得修正的检测版权信息, 提高检测的准确度。
该方案使用的是有意义的版权信息, 因此, 从检测版权信息可直接判定待检数据库的版权归属。
4 零水印构造及检测算法
为了便于描述, 设数据库中的所有数据同等重要;数据二进制位的重要性从最低位到最高位依次增加。
由数据库所有者管理的数据密匙1~3和标记值集合分别记为:key1、key2、key3、ID;注册机构管理的零水印记为:W。length (x) 返回数据x的二进制位数;sizeof (SET) 返回集合SET中的元素数;next (C) 依次循环取得版权信息C的下一二进制位。
4.1 零水印构造算法
筛选m个属性值构造零水印的算法如下所示。
算法1 零水印构造算法
输入:R、C、β、key1、key2、key3、m
输出:ID、W
算法1第17) 行, 集合E可能是由不同类型的数据组成, 因此属于半结构化数据, 不能将之直接作为零水印, 应使用XML语言或者OEM模型等半结构化数据存储技术。
4.2 零水印检测
零水印检测算法如下所示。
算法2 零水印检测算法
输入:R′、W、ID、β、key1、key3
输出:C′
5 仿真实验与分析
为了检验本文算法的可用性及有效性, 使用随机生成的数据库, 在Matlab7.0中进行了仿真实验。
数据库R (key, A1, A2, A3) 由10000条数值型数据组成 ( 0-100之间正态分布 ) ;选取其中3500个属性值作为载体;版权信息C使用图4所示55×33的图片;载入系数β取0.5;
依据数据库R、版权信息C构造出零水印后, 在数据库R未受攻击的情况下, 得到的检测版权信息C′ 如图5所示。可以看出数据库R未受攻击时检测出了完整的版权信息。
5.1 子集删除攻击
攻击者随机删除数据库R中的一部分数据构成待检数据库R′。表1给出了随机删除不同比例数据构成R′ 时分别检测到的版权信息C′。
从表1可以看出:当删除60%数据时依然能够从C′ 上辨别出版权所有者的信息。当删除比例达到70%时版权信息已经难以辨认。这时数据库的价值也受到了极大破坏。
5.2 子集更改攻击
攻击者在一定误差范围内随机更改部分数据的数据值, 表2给出了在不同误差率下的检测结果。
从表2中可以看出:当在较小的误差下攻击时, 即使攻击比例达到100%也能很清晰的辨别出版权信息。当增大误差时, 在较小的攻击比例下也能辨认出版权信息。只有当误差较大, 同时攻击比例很大时攻击才能成功。即只有高强度、大范围的更改攻击才能成功破坏版权信息。这种情况下对数据库价值的破坏也是最大的。
5.3 子集添加攻击
攻击者在原数据库R的基础上, 另外添加了一些数据构成待检数据库R′。表3给出了不同添加比例下的实验结果。
从表3可以看出:检测版权信息基本没有受到影响, 本文方案对该攻击有很强的抗攻击性。因为该攻击没有对数据库R中原来的数据产生影响, 这些数据依然存在于R′ 中, 通过保存的标记值集合, 还可以将载体重构出来。
5.4 元组、属性列重排攻击
本文方案没有建立在数据库R有固定序的基础上, 元组重排, 或者打乱属性列的顺序对检测版权信息不会产生破坏。
6 结束语
在分析已有数据库水印技术的基础上, 提出一种新的数据库零水印方案, 将包含数据库所有者的名称、商标等标示版权信息的数据引入了零水印构造过程。分析并实验说明该方案具有较好的可行性及抗攻击性。
摘要:通过分析已有数据库水印方案, 提出一种新的数据库零水印方案:取出部分能代表数据库重要特征及价值的属性值, 以之为载体, 载入有意义的版权信息, 构造零水印;发生版权纠纷时, 在待检数据库上重构载体, 以之为依据, 从零水印中分离出版权信息, 判决归属。分析并实验说明方案具有较好的可行性及抗攻击性。
关键词:零水印,关系数据库,版权保护
参考文献
[1]Rakesh Agraw, Jerry Kieman.Watermarking RelationalDatabase[C].Proceeding of the 28th VLDB confer-ence.Hong Kong, China, 2002:155-166.
[2]Radu S, Mikhail A, Sunil P.Rights Protection for Rela-tional Data[J].IEEE Transactions on Knowledge andData Engineering, 2004, 16 (2) :1509-1525.
[3]Mohamed S, Elisa B, Arif G.Watermarking Relational Da-tabases Using Optimization-Based Techniques[J].IEEE Transactions on Knowledge and Data Engineering, 2008, 20 (1) :116-129.
[4]温泉, 孙锋, 王树勋.零水印的概念与应用[J].电子学报, 2003 (2) :215-216.
[5]蒙应杰, 吴超, 苏仕平, 等.一种关系数据库零水印方案的探讨[C].中国第二十二届数据库学术会议, 内蒙, 中国, 2005:361-365.
[6]蒙应杰, 是垚, 司蕾, 等.一种基于混沌变换的数据库零水印算法[J].计算机工程与应用, 2008, 44 (29) :168-170.
水印感想 篇4
作为版画专业的学生,每一个新版种的认知和探求,对于我自己来说都是一次好奇与期待心情的洗礼。
水印版画,也不例外。从几个月前的期盼到如今的感慨,课程也即将结束,可我的心里还是没有一种归属感,或许是我对自己太苛刻、太过于追求完美所致,到最后也没有做出点让自己激动的东西,而心情却低落到极点。虽然从我作出的版画作品上看,我认为技术是掌握了,画面也比较完整,看起来整体效果还行,可就是激动不起来。在课程即将结束之际,我把这六个星期以来所做、所感受的点点滴滴记录下来,也是对自己思绪的一个整理。记得一年前,就为一年后去哪采风计划着、忙碌着,最后去了广西桂林„„这一趟“旅游”为的只是去找找做水印的感觉,结果真是玩疯了,并且“满载而归”。到真正做水印,要追溯到两个星期前,当我将要把想好的素材付诸“木版”时,在与老师的交流中,我才深知做水印的困难是我所不能想象的,一句话就是技术。后来我带着一颗低落的心,但是并没有想要放弃的毅力继续寻找,因为在没有亲身经历过,对它还是有一如既往的好奇与热爱,再加上师长与同学的不断鼓励。在我做好准备要做第二副的时候,老师细心周到的叮咛与讲解,我这才把心定下来,一天、两天„„在和水墨打交道的同时,我懂得了轻重缓急;在刻板、泡板、捂纸和印制的中,我懂的了水印版画的语言是水味、刀味的韵味;在与同学们废寝忘食的印画中,我懂的了友情的可贵„„最后,我用了三天的时间完成了一副水印版画。想想其中的辛酸苦辣,觉得这副画沉甸甸的,尽管我说过,它让我激动不起来,但是话应该是一分为二来说的,从低落到重拾信心、从半途而费到振奋精神,是老师和同学在旁边一直的支持和鼓励,才让我坚持至今,所以我收获到的是满满的幸福。我坚信,以后的生活无论何时何地,其中都会带一颗感恩之心做事。
数据库水印 篇5
文中提出一种新的关系数据库水印算法,将水印图像进行混沌加密,根据数值属性权重的不同嵌入水印。将水印算法与混沌理论相结合,隐蔽性更强,提高了水印的不可见性,同时水印检测是一个盲检测过程,实验结果表明,该算法能够抵抗多种攻击,具有较强的鲁棒性。
1 基于混沌的关系数据库水印算法
假设对数据库中一些属性值进行微小改动并不影响数据库的使用价值。算法利用水印生成算法将版权图像生成的水印信息,并根据水印嵌入算法嵌入到数据库中,如图1所示,通过水印检测算法提取出水印,如图2所示。
定义1 关系数据库中关系R(P,A0,A2,…,Av-1),其中P为主键,Ai(0≤i≤v-1)为v个数值型属性,且允许修改其最低有效位(LSB)。
定义2 根据属性Ai(0≤i≤v-1)的重要性和冗余度定义属性权重,记作
1.1 水印生成算法
水印生成算法主要包括3个步骤:对版权图像进行编码预处理;利用版权图像生成水印信息;通过混沌序列对水印信息进行加密。
(1)压缩版权图像。
版权图像数据量很大,如果直接嵌入数据库中势必会严重影响数据库的使用,因此必须对版权图像进行压缩处理,算法采用小波变换方法。
(2)数据类型转换。
根据从左到右,从上到下的顺序,可以得到版权图像像素点的一个数据集S={S1,S2,…,Sn×n},其中每个元素为像素点的灰度值,将这些灰度值转换成二进制数可以得到一个新的数据集B={B1,B2,…,Bn×n}。
(3)水印加密。
混沌序列与单向散列函数的特性类似,因此利用混沌序列加密水印大大提高了算法的安全性。算法选用Logistic映射,其定义为Xn+1=μXn(1-Xn),其中Xn∈(0,1),当3.569 945 6<μ<4时Logistic映射呈现混沌状态。令μ=4,输入密钥k1,生成一个实值混沌序列,采用阈值门限法,构造一个阈值函数,设阈值为Q,得到一个二值混沌序列P(i),将P(i)和W(i)异或加密得到E(i)。如此重复,直到数据集S={S1,S2,…,Sn×n}中所有元素加密完成,得E={E1,E2,…,En×n}。
1.2 水印嵌入算法
算法将权重值大的确定为候选属性,利用单向散列函数计算具体标记数据位,因此单向散列函数H至关重要。根据公式id=H(k2,P,k2)标记候选属性的元组,通过id值和L(水印位的个数)对元组进行分组,即group(R)=id mod L,并按升序排列。将第i位水印嵌入第i组元组中,对嵌入水印后的数据进行误差判断,若数据误差大于允许误差,则水印嵌入回滚,否则水印嵌入成功。具体实现过程见算法1。
算法1
for each tuple r R do
t=H1(k concatenate r.P)//H1为哈希函数
if (t mod γ=0)then//标记这个元组
i=select_attribute()//标记第i个属性
j=t mod ξ//标记第j个属性
k=t mod L//分组
m=Ek XOR(k mod 2)//value of marked bit
set the j-th LSB of r.Ai to m
return R
procedure select_attribute()
u=H2(k concatenate r.P)
d=∑(1/Wi)i[0,i-1]
if(u mod d)(∑(1/Wi-1),∑(1/Wi)
then return i
1.3 水印检测算法
水印的提取过程与嵌入相对应,先用同样的方法找到嵌入水印的位置,对每个标记位,利用多数表决算法确定水印码值,得到一个二进制序列,再将其恢复成图像,与原始版权图像进行对比,实现版权保护。具体实现见算法2。
算法2
for s=0 to L-1 do
DM[s]=''//初始化检测序列
count[s][0]=0,count[s][1]=0//初始化计数器
for each tuple r R do
t=H1(k concatenate r.P)
if(t mod γ equals 0)then//选择这一元组
i=select_attribute()//标记第i个属性
j=t mod ξ//选择第j bit
k=t mod L
m=(j-th LSB of r.Ai) XOR (k mod 2)
count [k][m]=count[k][m]+1
for s=0 to L-1
if (count[s][0]>=count[s][1])//多数表决
then DM[s]=0 else DM[s]=1//得到水印信息
return DM[]
2 实验分析
算法实验环境为2.4 GHz CPU,256 MB RAM,Windows XP 操作系统。版权图像采用的二值图像,如图3所示。实验数据采用某城市街道规划数据库,共有100 000个元组,每个元组有31个属性,选取其中的4个数值型属性嵌入水印,实验程序使用Matlab7.0完成,利用JDBC连接SQLServer2000,根据上述算法嵌入水印。
从数字水印嵌入前后属性的统计特征来看,文中算法与混沌理论相结合,使水印信息更加均匀、分散,增强了隐蔽性。水印信息嵌入前后统计信息如表2所示。从均值和方差改变比例的数据可以看出,水印嵌入引入的误差很小。
实验模拟攻击者对算法进行子集选择、添加、修改攻击,得到仿真结果如图4所示,对于子集选择攻击,选择的数据比例越大,相应提取水印信息就越多,因此准确恢复水印的概率就越高;对于子集添加和修改得越多,水印的提取率就越低。
3 结束语
关系数据库水印技术已成为当前信息科学中一个新颖且具有广阔应用前景的研究热点。文中提出一种新的关系数据库水印算法,将水印图像进行混沌加密,根据数值属性权重的不同嵌入水印,实验结果表明算法具有较高的鲁棒性与隐蔽性,有效地保证了数据库的安全问题。
参考文献
[1]RAKESH A,KIERNAN J.Watermarking relational databases[C].Hong Kong,China:Proceeding of the 28th VLDB Con-ference,2002:155-166.
[2]SION R,ATALLAH M,PRABHAKAR S.Rights protectionfor relational data[J].IEEE Transaction on Knowledge andData Engineering,2004(16):1509-1525.
[3]牛夏牧,赵亮,黄文军.利用数字水印技术实现数据库的版权保护[J].电子学报,2003,31(12A):2050-2053.
[4]ZHANG Zhihao,JIN Xiaoming,WANG Jianmin.Wtermarkingrelational database usin g image[C].Shanghai:Proceedingsof the Third International Conference on Machine Learningand Cybernetics,2004:1739-1744.
[5]CUI Xinchun,QIN Xiaolin,SHENG Gang.A weighted algo-rithm for watermarking relational databases[J].Wuhan Uni-versity Journal of Natural Sciences,2007(l):12-13.
[6]陈明刚,孙星明,肖湘蓉.基于小波变换的关系数据库水印算法[J].东南大学学报:自然科学版,2007,37(6):130-136.
数据库水印 篇6
近些年来,作为一种潜在有效的版权保护方法,数据库数字水印技术引起了人们的广泛关注。目前数据库水印技术的研究已取得重要进展[1,2,3,4,5,6],但是对其应用尚未进入真正的实用阶段。从技术角度看,主要原因有两点:一是现有的大多数数据库水印方案只能针对数值型数据实施[1,2,4,5],这限制了水印的应用范围;二是水印安全性得不到有效保障。水印安全性不仅是指水印信息在宿主数据中的隐蔽性[7],还应包括能够抵抗有意篡改和恶意攻击的能力。这需要将水印的隐藏信道由数值型数据扩展到非数值型数据[3,6],通过多信道的隐藏机制有利于增强数据库水印的安全性。不仅如此,还应探究影响水印安全的诸多因素,并以此为基础设计数据库水印的解决方案。
字符型数据是数据库中常见的一类非数值型数据。由于字符型数据在计算机内部采用编码形式表示,因此它对来自外界的任何改动都非常敏感。在字符型数据上嵌入和提取水印,仍需要在不改变数据原始外观和语义的前提下进行。此外,在字符型数据上施加水印应遵循同一种机制,这在客观上有助于水印技术的推广应用。
基于上述思想,在本文提出的数据库水印方法中,将二进制水印码元映射为不可见的水印信号并将其嵌入到字符属性值的随机位置上,在分析水印安全性的基础上进行了模拟攻击测试,并结合实验结果讨论了数据库水印方案的设计原则。
1水印方法
本方法是在数据库的字符型属性值中嵌入和提取水印,其主要模块包括水印嵌入及提取过程。为避免字符数据失真,用ASCII字符集表的两个功能字符作为水印信号。在数据库中,与宿主数据一起编码的水印信号具有人眼很难察觉的隐蔽性。
我们采用不同于以分组为单位的数据库水印嵌入技术[5,8],即以每个字符属性值为单位实施水印,同一个元组的所有字符属性嵌入相同的水印信号,并使每个属性值中的嵌入位置不同。水印提取采用与嵌入过程同样的机制进行,只需注意保持水印提取位置与其原始嵌入位置的同步性。表1列出了本文将要用到的符号和参数。
1.1水印嵌入过程
水印嵌入的任务是将水印码元1和0分别映射为ASCII字符集的文件分割符和记录分隔符,然后将它们插入到字符属性值的随机位置上,其步骤是:
(1)将水印转换为二进制序列WmBits,并计算其长度μ。
(2)依次访问数据库中的η个元组,对于每个元组,以用户密钥Key和元组主键PK作为哈希函数的输入计算元组哈希值Hsh,用Hsh对μ取余数Rdr。对于当前元组的每个字符属性值Cvalue,采用如下操作:
利用Hsh对Cvalue的长度Length取余数EP作为Cvalue的水印嵌入位置。如果水印码元WmBits(Rdr)为1,则将其映射为文件分割符;如果水印码元WmBits(Rdr)为0,则将其映射为记录分隔符。将文件分割符或记录分隔符作为水印信号嵌入到Cvalue的第EL位置。重复这个过程,直到对当前元组的ν个字符属性值的水印信号嵌入完毕。
(3)重复步骤(2),直到η个元组被访问完毕。
(4)保存携带水印的数据库。
1.2水印提取过程
水印提取的任务是从数据库的所有字符属性值的特定位置提取相应的水印信号并将其恢复成原始状态,其步骤是:
(1)根据用户提供的水印基本信息计算水印的二进制序列长度μ。
(2)依次访问数据库中的η’(η’可能不等于η)个元组,对于每个元组,以用户密钥Key和元组主键PK作为哈希函数的输入计算元组哈希值Hsh,用Hsh对μ取余数Rdr。对于当前元组的每个字符属性值Cvalue,采用如下操作:
利用Hsh对Cvalue的长度Length减1取余数VP作为Cvalue的水印提取位置。如果在Cvalue的第VL位置得到的水印信号是文件分割符或记录分隔符,则将其映射为水印码元1或0。并分别记录水印码元1和0的数目。重复这个过程,直到对当前元组的ν’(ν’可能不等于ν)个字符属性值的水印信号提取完毕。
(3)重复步骤(2),直到η’个元组被访问完毕。
(4)采用多数选举法[1]确定每个水印码元的最终值,根据水印码元的最终值恢复水印到原始状态。
2安全性分析
2.1参数的安全性分析
用户密钥Key是保障水印安全的一个重要屏障,仅能为合法用户持有。根据水印方法可知,在元组主键一般不发生变化的情况下,用户密钥Key、水印长度μ和字符属性值长度Length共同决定着水印信号的位置以及每个水印信号与宿主字符数据之间的对应关系。同时,结合哈希函数的应用使得水印嵌入位置具有秘密性和随机性,这会加大攻击者企图擦除水印的难度。此外,采用的水印信号具有不可见性,并且水印信号嵌入数据以后未改变字符数据原貌,因此不容易引起攻击者的注意和破坏。
2.2数据攻击中的安全性分析
数据库在使用和传输过程中可能会遭受一些外来的恶意攻击或后续正常的数据更新,那样的操作对水印的抗干扰能力提出了挑战。这与水印的敏感性密切相关。健壮水印的敏感性用提取失败率p表示。p的含义是指从非法数据篡改中未能提取原始水印的可能性,理论上它的值应足够低,以使水印提取结果可作为法庭上的电子举证[9]。
在我们的算法中,一个元组的所有属性值被用于嵌入同一个水印信号,它们有同等可能性影响水印的提取结果。此外,水印提取是以每个属性值为单位独立进行的。为了便于讨论,令ν=1作为水印安全性讨论的前提条件。假定元组数目η和水印长度μ,则每个水印信号平均被嵌人η/μ次。我们对元组添加、元组删除和属性值修改三种典型攻击中的水印提取失败可能性进行分析。
2.2.1 元组添加攻击的水印提取失败率
在元组添加攻击中,被插入的每个元组都有相等的机会参与水印的提取。但是由于在被插入元组的预期提取位置VL上通常不存在我们嵌入的水印信号,所以对水印的完整提取毫无影响,即p=0。
2.2.2 元组删除攻击的水印提取失败可能性
在极端情况下,删除一个元组可能会影响某一个水印信号的认证结果,即相应的有效水印长度减少1位。在水印提取中,由于哈希函数的应用,使得每一个水印信号的认证结果具有随机性。因此,删除单个元组的水印提取失败可能性如公式(1)。
图1显示了单个元组删除时的水印提取失败率。不难发现,随着η和μ的增大,p值几乎呈线性下降。在多数情况下,η比μ大的多。在我们的算法中,η越大,μ越小,则P值越小,水印越安全。例如,当η=26 000,μ=1 000时,p≈10-8。这表明由元组删除引起的水印提取失败可能性很小。这已在图3所示的实验结果中得到证实。
2.2.3 属性值修改攻击的水印提取失败可能性
应用我们的算法,在极端情况下,如果一个属性值被真正修改了,相应水印位的有效长度将会减少1位。原因可能是由于数据更新造成水印提取位置的变化或者水印信号被消除。此时水印提取失败可能性与单个元组删除相似(如图1)。字符属性值被修改的其他形式可能是英文大小写字母互换。在这样的情况下,只要水印信号在待提取位置存在,则这样的攻击无效。
在最坏同时也是极少见情况下,攻击者可能对原始水印信号取反而保持提取位置不变。这种修改将会影响水印的认证结果,意味着被修改的属性值与其他未修改的属性值共同参与水印提取,即哈希函数使已提取水印的η/μ位有同等可能性与相应的原始水印位匹配或不匹配。因此,这种改动攻击下的水印提取失败可能性用公式(2)度量。
图2显示了单个属性改动时的水印提取失败率。可以看出,水印提取失败率P随η增大而降低。对同等规模的数据库嵌入小容量水印,p的下降趋势将更为明显。
3实验结果
不失一般性,构造了一个含有25 000个元组的数据库,每一个元组有一个主键和一个用于嵌入水印的字符型属性。嵌入的水印长度μ分别为256位、1 024位和4 096位。在实验中主要测试了元组添加、元组删除及属性值修改三种典型攻击对数据库水印提取结果的影响。水印提取结果采用水印匹配率度量,即提取水印的二进制码元与原始水印的二进制码元相同数目对μ的百分比。
元组添加是一种不改动原始数据的攻击。实验结果表明,256位、1 024位和4 096位三种不同长度的水印都能从元组添加攻击中得到完整的提取。这是由于新添加的元组通常不含有我们算法中添加的水印信号,从而对水印的提取结果没有影响。
元组删除及属性值修改是对原始数据数目和属性值做改动的一种破坏性攻击。图3的实验结果表明,水印匹配率随元组删除或属性值修改比例的增大而减小,且小容量水印的匹配率优势明显。这与上述水印的安全性分析是一致的。
4结论
在指出数据库水印安全性的基础上,提出了一种基于字符型属性数据库水印方法。重点从理论的角度对数据库水印的安全性进行了分析讨论,并通过仿真实验进行了验证。从水印信号自身来看,其不可见性是保障自身安全的首要因素;在水印实施过程中,水印参数只能为合法用户持有,且要根据实际应用的需求及水印方法的特征在水印参数的取值上做出平衡,为水印的安全提供技术上的保障。
摘要:对数据库水印安全问题进行了研究。提出了基于字符型属性的数据库数字水印方法。将水印信息表示为不可见的水印信号,并根据元组哈希值和字符属性值长度随机确定水印信号的嵌入位置,使水印安全性得到保障。重点分析了在元组添加、元组删除和属性值修改三种典型攻击中水印提取失败情况,以及由此引起的对水印匹配率的影响。最后在对实验数据分析讨论的基础上提出了数据库水印方案设计的原则。
关键词:字符型属性,数据库水印,水印提取,水印安全性
参考文献
[1] Agrawal R,Kiernan J. Watermarking relational databases.Proceeding of the 28th VLDB Conference,2002:155—166
[2] Sion R,Atallah M,Prabhakar S.Rights protection for relational da-ta.IEEE Transaction on Knowledge and Data Engineering,2004:1509—1525
[3] Solanas A,Domingo-Ferrer J.Watermarking non-numerical databases.Third International Conference on Modeling Decisions for Artificial In-telligence,2006:239—250
[4] Shehab M,Bertino E,Ghafoor A.watermarking of relational databases using optimization-based techniques. IEEE Transactions of Knowledge and Data Engineering,2008;20(1):116—129
[5] Song Y G, Liu W D, Song J X,et al.DCT transform based relational database robust watermarking algorithm.2nd International Symposium on Data,Privacy,and E-Commerce,2010:61—65
[6] Rajneesh K B,Purva G,Poonam G.A unique approach for watermark-ing non-numeric relational database.International Journal of Comput-er Applications,2011;36(7):9—14
[7] Julien L.An analysis of database watermarking security.Third Inter-national Symposium on Information Assurance and Security,2007:462—467
[8] Guo H P,Li Y J,Liu A Y,et al.A fragile watermarking scheme for detecting malicious modifications of database relations.Information Sciences,2006;176(10):1350—1378
数据库水印 篇7
一、数字水印技术的定义与用途
所谓数字水印, 是嵌在数字作品中的数字信息, 可以是图像、文字、符号、数字等一切可以作为标记、标识的信息[1]。数字水印的嵌入以不破坏原数字文献的欣赏及使用为原则, 制作数字水印的主要目的是通过数字水印识别数字文献的原创作者、拥有者, 授权使用人、发行人、作品版本等信息, 为数字文献的上传、下载提供合法的交流平台。为了防止茂名地方文献数据库中所涉及的网页内容不被篡改或非法盗用, 在网页中加入合适的数字水印是一种有效手段。
二、茂名地方文献数据库的特点及目前存在的问题
“茂名地方文献数据库”是通过计算机设备与数据库软件将目前散落的茂名地方文献进行收集、整理, 进一步发掘茂名地方文献, 对地方文献进行深加工, 使得茂名地方文献有序化、科学化、标准化, 易于查找、利用。茂名地方文献数据库包括茂名地方文献联合书目数据库、茂名地方文献 (电子) 全文数据库、茂名风土人情数据库、茂名名人数据库等。茂名地方文献数据库的文献信息载体有:纯文本、多媒体图像、视频等。茂名地方文献数据库的地域优势从三个方面来体现:第一, 文献反映了茂名地区的社会现象与自然现象;第二, 地方文献特色数据库建设者具有鲜明的茂名地方优势;第三, 茂名地方文献具有鲜明的为茂名的文化建设、经济建设服务的特点。利用所使用的特色数据库软件为读者提供上传、下载茂名地方文献的合法窗口。由于茂名地方文献数据库是依托茂名学院的IP地址挂接在互联网上的, 因而茂名地方文献数据库可以方便地利用网络通过计算机进行上传文献及下载所需的文献。如何保护原始文献的合法权益, 避免恶意下载或任意修改文献?数字水印技术正好能解决茂名地方文献数据库的这一难题。
三、茂名地方文献数据库中数字水印的算法及用途
1. 数字水印的类型。
数字水印类型很多, 根据不同的分类方法可以得出不同的数字水印分类。数字水印的应用领域是巨大的, 但因茂名地方文献数据库中存在图像、视频、纯文本等文献, 故茂名地方文献数据库中要用到的数字水印主要有:版权标识水印、篡改提示水印与隐蔽标识水印这三种。
2. 数字水印在茂名地方文献的用途。
数字水印的用途主要在于版权保护、篡改提示、使用控制等三个方面。版权保护是通过数字水印给文献创作者提供一个合法的钥匙, 并将数字水印嵌入到创作者的原始作品中, 然后在茂名地方文献数据库中公开发布其版权作品来实现。篡改提示, 由于互联网的迅速发展, 使得人们很容易在网络上获取或传递自己所需的资料, 但是如何确保这些从网络上下载资料的准确性?通常将原始文献分成多个独立块, 每个块加入不同的水印。检测时可通过每个独立块的水印信号, 以确定原始作品的完整性。使用控制是指通过数字水印控制某些茂名地方文献的复制保护机制, 即不允许对未授权的茂名地方文献进行非法复制或控制其复印次数。这样, 读者可在自用的范围内复制茂名地方文献, 但以赢利为目的的大批量非法复制则无法进行。
3. 数字水印的基本结构。
一个完整的数字水印系统应该包括以下三个方面:水印的生成、嵌入和提取。水印生成工作一般与混沌密码学相联系, 基于伪随机数发生器或混沌系统是比较常见的产生方法。产生出来的水印信号W往往需要进一步地变换来适应水印嵌入的算法。原始水印信号可以通过预先设定, 在嵌入水印前对此信号做一定的变换, 密钥则可以在水印的嵌入过程中产生。水印的提取应该可以作用于任何的产品, 可要求原始产品创作者的参与, 也可不要求原始产品的创作者参与。如果提取出的水印信息发生了部分的变化, 最好还能够根据需要确定原始数据被篡改的位置。
四、数字水印技术在茂名地方文献数据库中的应用
1. 利用数字水印为茂名地方文献数据库的原始文献创作者提供一个合法的交流平台。
由于茂名地方文献数据库中需要加入数字水印信息的原始作品数量大, 而且考虑到原始作者上传作品的方便性及数据库的安全性, 利用数字水印为原始文献作者提供合法交流平台可采用用户进行服务器端的统一认证的方法, 对作品数字水印的嵌入及读取进行客户端分散处理的策略。原始作品的作者可以通过注册, 成为合法用户。这样作者就可以将自己的原始作品上传到茂名地方文献数据库中心服务器上, 同时取得该文献的密钥。密钥要具有唯一性。不同密钥应产生不等价的水印。客户端用户向水印认证中心发出注册申请, 填写相关信息, 获取用户密码, 成为合法用户。当客户要向数据库服务器上传自己的原始作品时, 先登录水印认证中心, 水印认证中心收到信息进行核查, 如果是合法用户, 则水印认证中心根据作者输入的个人信息为其原始作品加入水印信息并保存。原始文献的创作者在通过水印认证中心获取密钥, 就可以放心地上传自己的作品, 而不用担心自己的作品被篡改或非法盗用。而茂名地方文献数据库则可通过水印技术为原始文献的创作者提供一个合法权益的交流平台。
2. 为茂名地方文献数据库提供一个合法使用平台。
通过对原始作者上传来的文献加入水印, 使得其合理使用成为可能。如通过“数字指纹”给每个上传到茂名地方文献数据库中的有用的原始文献嵌入不同的水印, 它类似于软件产品的序列号。因而可以通过监视或者追踪茂名地方文献的非法复制的数字水印功能, 来保护茂名地方文献数据库的合理使用, 避免随意篡改茂名地方文献数据库中的文献, 或利用茂名地方文献数据库中的文献谋利。如可通过数字水印防止非法复制功能, 使原始作品的创作者上传的原始作品只可以复制一次, 而不能多次复制。利用“易损水印”来实现数字水印的身份认证。“易损水印”又称为脆弱水印, 这种水印的特点是嵌入信息量及提取阈值都很小, 也就是说, 较小的变化就足以破坏加载的水印。读者很容易在网络上获取自己所需的资料, 也很容易通过网络传输各种资料, 如何保证这些资料的完整性、准确性, 即如何确定这些资料在传递过程中没有被篡改过?脆弱水印是目前解决这一问题的有效手段之一。
3. 为地方文献数据库提供版权保护。
(1) 利用行位移编码与字移位编码实现纯文本文献的版权保护。随着信息时代的到来, 网络上纯文本文献不断增多, 再加上复制和复印技术非常容易操作, 因而对这一类文献的版权保护成为必然, 为了验证纯文本文献的所有权以保护发行者的利益不被侵害, 我们在纯文本文献中嵌入可以识别的水印以解决版权保护问题, 通过水印的方法来进行版权认证。纯文本水印大体的设计思想是:除了纯文本的作者以及版权拥有者之外, 其他的人都不能够从中检测出水印信息。纯文本水印相对于其他水印的特点是文本中不含有或者很少有用于秘密信息传递的冗余信息, 这使得在纯文本中加入水印会更加困难。高级形式文档常见的格式是PDF、RTF、Word、WPS等, 对于这些格式化的文档, 可以将一个水印嵌入版面的布局信息或格式化编排中。例如, 可以将某种变化定义为“1”, 而将不变化定义为“0”, 这样嵌入的信号就是具有一定分布形式的水印序列。纯文本水印的基本方法有结构微调法和自然语言理解法, 对于数字文档, 比较实际的方法是使用结构微调的方法。结构微调法有两种:行移位编码、字移位编码。行移位编码就是在文本的每一页中, 每间隔一行轮流地嵌入水印信息。但是要求嵌入信息的行的相邻上下两行的位置不动作为参照, 根据水印数据的比特流对需嵌入信息进行轻微的上移和下移。字移位编码就对在文档中的某一行的某些单词进行水平的移位, 从而嵌入水印信息。字移位编码比行移位编码能够隐藏更多的水印信息, 但是抗攻击能力较行移位编码要弱。
(2) 利用数字签名技术实现多媒体文献的版权保护。通过嵌入水印鉴定文档是否被盗版或篡改, 利用数字签名对多媒体信息进行论证, 数字签名是由信息发送者对要传送的信息进行某种处理, 用以论证信息的来源并核实信息是否发生了变化。把数字签名作为水印隐藏在多媒体信息中, 数字签名方法用DSA, 数字水印方法用DCT。如要对一个消息x进行签名, 可选取一个随机值k, 且p, q和β公开, α保密。接收方收到含水印的图像后, 从中提取水印得到签名信息, 用发信方给的私钥α和秘密数k验证签名的真实性, 从而可辨别作品的真伪。
参考文献
[1]刘云等.数字水印技术在数字图书馆版权保护应用.情报杂志, 2002 (9) .
基于可擦除水印的数据认证机制研究 篇8
如何保证任务执行的机密性、数据产生的可靠性、数据融合的高效性以及数据传输的安全性, 是无线传感器网络安全问题需要全面考虑的内容。机密性、点到点的消息认证、完整性鉴别、新鲜性、认证广播和安全管理是无线传感器网络需要实现的基本安全机制。除此之外, 在传感器网络中, 水印技术 (Watermarking) 被用来标识应用数据产生者的身份, 并在数据融合的过程中保留这种信息, 应用系统可以通过这些信息判断数据的可靠性。
数字水印技术具有难于提取、难于修改、难于伪造的特性。基于频域的数字水印同传统的密钥体制与MAC相比具有计算量相对较低, 抗有损压缩等鲁棒性较强的优点, 因此可以用于无线传感器网络中的数据安全研究中。传统的数字水印并不适合于无线传感器网络, 目前的水印算法也不能直接将信息嵌入分布式节点的数据包中。
我们根据现有的数据认证机制, 研究适合于无线传感器网络的新颖的认证机制, 根据DCT、DWT特性, 建立新的可擦除认证水印模型以适应无线传感器网络环境下的应用需求, 该建立认证水印模型 (根据水印达到的效果来看, 该需要具有鲁棒性, 但从分类特性来看需要是脆弱水印) 旨在提升算法的安全性、提高数据完整性认证概率, 从而实现提高传感器节点采集到的数据完整性和威胁数据预警率。
1 解决方案
根据传感器网络节点分布密集, 感知数据具有时空相关性的特点, 拟采用多节点协作的思想, 提出一种基于可擦除水印模型, 在此基础之上研究适用于无线传感器网络数据认证的可擦除水印算法, 从而在已有工作基础上更好的实现无线传感器网络网内的数据完整性、正确性、新鲜性的验证, 提高在实际生产生活中对虚假数据威胁警报的预警率。
可擦除水印首先拟采用空域算法, 将水印信息嵌入到一般节点中, 水印的生成在源节点处, 然后结合网内有损数据压缩特点, 研究基于频域DCT算法或DWT算法的可擦除水印模型, 如图1所示。因此可擦除水印要包含了两个方面的特性:
其一, 水印要具备“鲁棒”特性, 即对无线传感器网络网内进行有损数据处理是鲁棒的。其二, 水印的生成、嵌入、提取、擦除不是单一节点完成的, 在源节点生成水印, 并嵌入到数据的合适位置, 在数据转发过程的中间节点检测, 判断虚假数据包并进行过滤, 在目的节点提取和擦除水印, 使得发送到基站的信息恢复到原来信息。结合传感器网络节点分簇聚合传输数据的特点, 从而使可擦除水印算法具有节约能量开销和抵御单个节点被俘获干扰网络数据正确性。第三, 由于无线传感器网络环境需求, 该水印还必需是盲水印, 检测过程中不依赖原始数据。因此可能还需要考虑使用扩频技术来加强水印的健壮性与安全性。在分布式机制下对数据进行水印信息嵌入后, 研究的中间节点和目标节点按照一定的策略通过与簇节点共享密钥, 检测传输中的数据是否含有水印。
2 算法实现
本文的实验基于Omnet仿真平台先进行算法的仿真试验, 在实验室所研制的传感器网络仿真分析软件基础上对分布式水印的算法进行模拟实验。仿真完成后还将在TinyOS系统平台下对MICAz节点进行编程, 验证算法的效果。
3 结语
针对无线传感器网络的分簇聚合数据与易受攻击等特征, 提出一种网内节点协同可擦除水印模型, 一方面可以利用嵌入在数据中水印信息保护数据的安全, 另一方面尽可能地降低水印对原始数据的破坏;提出一种基于网内节点协同可擦除水印的数据认证机制, 利用数字水印在认证方面的优势, 对传感器网络中的数据进行完整性、正确性和新鲜性认证;在Omnet++环境中对提出的算法与模型进行仿真实验, 以验证我们所提出算法与模型的有效性。结合传感器网内数据有损压缩处理特点, 找到合适的可擦除水印模型, 并将该可擦除水印模型嵌入数据中, 并在在数据认证时擦除该水印, 发挥模型算法的健壮性。
摘要:无线传感器网络中的认证机制是众多应用的支撑技术, 但目前还存在许多尚未妥善解决的问题, 还需要探索新的机制与算法。本文研究传感器网络中基于可擦除水印的认证机制, 旨在提升算法的安全性与降低WSN通信能耗。因此我们的选题具有良好的学术意义和实际意义。
关键词:无线传感器网络,可擦除水印,认证机制
参考文献
[1]李睿, 林亚平.两层传感器网络中安全Top-k查询协议.计算机研究与发展, 2012.
[2]师超, 仇洪冰.一种简单的分布式无线传感器网络时间同步方案.西安电子科技大学学报, 2013.
[3]王方, 胡彧.基于移动机器人的无线传感器网络数据收集方法.工矿自动化, 2013.
静态水印与动态水印的性能比较 篇9
随着网络的高速发展以及各种软件的广泛应用,在现实环境中电脑系统的使用是必要的。此外,软件在计算环境中的作用变得更加重要,在这些环境中,它需要更多的时间和精力开发新的软件。为了保护这些软件作为其开发者的知识产权,软件许可协议软件的用户需要遵守软件许可协议。软件许可证是为了保护软件的版权。然而,侵犯软件许可证的案件每年都在增加。同时,因此而造成的经济损失也逐年增加。
在本文中,我们介绍几种软件水印方法去识别软件版权信息并根据绩效标准来比较这些软件水印的性能。本论文的主要工作如下:在第2节中,分别介绍了软件水印中静态水印和动态水印的概念。在3节中,我们解释了软件水印的性能评估指标。在4节中,我们比较了静态和动态软件水印方法的性能,并在第5节中得出结论。
2 软件水印
2.1 软件水印的概念
最近,出现了几种保护软件版权的技术,一般情况下,水印技术所用来嵌入的版权信息是以数字媒体形式表示的二进制数据。这种方法经常用于多媒体产品,例如图像,音频和视频。该方法将版权信息嵌入到多媒体产品中,并在需要信息时识别插入的信息。如果这些产品的版权信息是不确定的,插入的版权可以是一个证据,通过识别先前插入的信息来验证产品的所有权。
软件水印是一种将这种技术应用于软件领域的一种方法。插入的版权信息可以是软件所有权的证据。软件水印由以下两个功能实现:
水印信息W通过embed()函数及密钥K嵌入到程序P中得到嵌入水印后的程序P'。而recognize()函数的功能是通过密钥K去识别嵌入到P'中的水印W。通过应用这两个函数,可疑软件的著作权可以通过识别先前插入的水印来鉴定。
图1显示了应用软件水印来识别软件版权信息的过程。在原始程序P发布之前,水印W通过embed()函数及密钥K嵌入到程序中。这样水印嵌入完成并发布到用户手中。然后,如果是可疑的软件用于未经许可的其他软件,可疑软件可以通过使用recognize()函数及密钥K来识别先前嵌入的水印。
2.2 静态软件水印
静态软件水印是一种通过软件分析来识别嵌入到程序中的水印的无定向的方法。这种方法不需要通过执行程序来识别水印。因此,它比动态的方法更方便,因为软件的执行需要额外的资源去应对各种各样的对执行环境所造成的影响。
2.2.1 数据水印
数据水印是将水印嵌入到软件中的最简单的方法。这种方法将包含数据水印的信息插入软件中指定的位置。例如,可以在软件代码中插入版权信息如下:
字符串水印=“版权©2014.水印信息.”;插入的版权信息可以被用来识别软件的所有权。这种简单的嵌入与识别水印的方法可以非常容易的应用到软件中。然而,由于嵌入的水印信息很容易暴露,所以它很容易被开发者或用户发现并删除。
2.2.2 代码水印
代码水印是通过在程序中添加额外的代码信息的方式来嵌入水印信息。依据程序结构分析的方法,这种方式可以以各种形式被应用。作为这些方法的一个应用程序,可以通过采用分支指令来表示程序的版权信息,使用分支指令的基本块的顺序来表示。
Davidson等人提出了一种通过重新定位基本块的顺序嵌入水印的方法。插入的水印信息是按照字典顺序重新排序的基本块。水印信息可以通过对重新排序的基本块的解释来加以识别。基本块的顺序仍保持在它的原始顺序,之前嵌入的水印可以被识别。这种类型的水印不是暴露在外部的程序。因此,这种方法比前面描述的数据水印的隐蔽性要好。然而,这种插入水印信息的方法需要额外的添加程序代码。它还需要分析在一个程序中的基本块的顺序以识别嵌入式水印。
2.3 动态软件水印
与静态软件水印不同,动态软件水印是一种通过对软件运行的中间状态进行分析来实现水印嵌入与提取的方法。这种方法需要对程序的建模行为以及嵌入水印的位置进行额外的分析。所以该方法将水印嵌入到程序的执行状态中。然后,它可以通过解释程序执行时的状态或行为识别水印。
2.3.1 复活节彩蛋水印
复活节彩蛋水印是通过在软件中输入特定输入的方式来隐藏水印信息。例如,特别是在游戏软件中,当有密钥需要输入时,彩蛋水印被作为隐藏的信息包含其中。复活节彩蛋水印的方法是插入代码来表达软件水印的版权信息,输入时调用预定义的特定的输入。水印信息可能包含版权信息或特定的形象表示软件的所有权。因此,识别软件中嵌入的复活节蛋水印可以证明该软件的所有权。
在这种方法中,如果不输入之前定义的特定输入,嵌入的水印不会出现。因此,在程序执行过程中可能是很难找到嵌入式水印的。然而,水印本身是公开暴露在它的程序代码中的。因此,通过分析程序代码可以很容易地找到水印。
2.3.2 数据结构水印
数据结构水印是一种将程序执行过程中构造的数据结构水印信息嵌入到运行状态中的一种方法。这种方法当程序遇到一个指定的运行时状态或输入时,通过先前设计的数据结构表示版权信息。例如,这种方法可以在程序执行过程中连续地单击屏幕的特定区域,将包含版权信息的变量或链接列表链接起来。这样的数据结构可以编码水印信息来表示软件版权信息。因此,如果成功地解释了所生成的数据结构,则可以证明该软件的所有权。
数据结构水印是非常隐蔽的且有弹性的,因为在所定义的输入序列或数据结构的定义不暴露的情况下该水印是不能被用户发现。然而,这种方法需要额外的结构来生成数据结构水印的嵌入程序代码。它还需要额外的分析,以解释所产生的数据结构来确定该软件的所有权。
3 软件水印的性能标准
为了将软件水印技术应用到应用软件中,在水印的嵌入与识别上应该有好的实用性能表现。有几种用来衡量软件水印性能的评价标准。在本文中,我们应用迈尔斯等人提出的评价标准对前一章节中提到的几种软件水印的性能进行比较。在本节中,我们描述了6项评估软件水印性能的标准。
3.1 可靠性
在软件版权信息必须得到确认的情况下,软件水印信息的识别应该很容易做到。此外,识别水印应该足够可靠的确认版权信息没有假阳性,一避免降低水印的可靠性。因此水印识别应成为确认软件版权信息的有力证据。
3.2 数据率
为了在将来识别软件的版权信息,软件水印的嵌入应该在软件发布之前完成。水印的嵌入需要在软件中开辟额外的空间。如果所需的额外空间相比于最初的软件的大小过大,会导致嵌入的水印很容易被发现并攻击。因此,嵌入水印所需的额外空间的比例相比于原来的程序应该要足够的低,以保证软件水印的隐蔽性
3.3 隐蔽性
嵌入的水印应该能够被软件的所有者识别以验证软件的版权信息。但是,如果在程序执行或修改过程中容易被其他用户或开发人员披露或删除水印,则该方法不能被应用到软件中。因此,水印不应该是明显的相对于其他用户具有高隐身。
3.4 水印分散性
为了保证软件水印在软件真实环境下的应用,嵌入的水印需要在用户随意修改后仍能保存其版权信息。为了满足这一特性,把水印分散的嵌入在整个程序中,相比于将其嵌入到程序中特定的局部区域效果要更好。
3.5 开销
若嵌入和识别软件水印所花费时间和精力太高,则水印方法不能用于实际应用。此外,如果插入软件水印后降低了软件的执行性能,这种水印在实际应用中也是不能使用的。因此,在水印的嵌入与识别的同时,还要保证其效率。此外,在软件中嵌入水印后不能影响软件的执行能力。
3.6 弹性
当软件已被用户使用或是新开发的软件,通过优化或混淆等多种方式可以对其进行改变或破坏。在这样的环境下,嵌入的水印应仍然保存有完整的版权信息。因此,水印的弹性是软件水印所必不可少的,在实际使用中当软件被攻击者或用户通过各种方式加以破坏或修改时,它可以用于保护软件的版权信息。
4 软件水印的性能比较
在这一节中,我们根据每个方法的性能特点按照在前一节中提出的评价标准对软件水印的性能进行比较。单个水印的性能可能会因为水印的执行环境或实施方法发生改变。因此,我们尝试将软件水印的性能与软件水印的一般特性进行比较。表1是按照软件水印的6种评估标准对软件水印的性能进行比较后的结果。
4.1 静态水印比较
4.1.1 可靠性
在数据水印中,水印被直接嵌入到软件本身的代码中,而不需要隐藏水印的存在。因此,它是软件版权的一个明显的证据。然而,因为嵌入的水印是被公开的,所以通过代码分析软件很容易识别。在代码水印中,水印被嵌入到程序代码中。当一个嵌入了水印的程序被用户使用并改变后,可能会使得嵌入的水印信息也被修改。在这种情况下,代码水印可能无法成功识别。
4.1.2 数据率
在数据水印中嵌入的水印是非常小的,因为在那里几乎对除其本身的水印数据外没有额外空间。然而,在代码水印中,它需要修改程序的代码,并插入额外的代码来嵌入水印。
4.1.3 隐蔽性
在数据水印,嵌入的水印可以很容易地通过分析程序代码被发现,因为嵌入的信息以其源码形式公开。然而,在代码水印中,嵌入的水印被隐藏为软件代码内的一部分,因此它需要分析该程序代码来发现存在的水印。因此,代码水印比数据水印更加隐蔽。
4.1.4 水印的分散性
在数据水印中,由于水印是被嵌入到特定的局部区域中的,所以很难做到将水印信息分布到软件的整个区域中来保护软件版权。然而,在代码水印中,水印信息会通过修改源代码的方式将其嵌入到软件中,并且将其分布于软件的多个区域中。
4.1.5 开销
在数据水印中,在程序中嵌入和识别水印很难影响软件的执行能力,因为数据水印的嵌入不需要执行附加的软件操作。在代码水印中,它需要执行附加操作以嵌入或识别水印。而且,水印的嵌入可能会影响软件的执行性能。所以,代码水印的嵌入与识别只需要很少的开销。
4.1.6 弹性
在数据水印中,用户的修改或混淆可能会直接对水印产生影响,因为水印是直接暴露在外的,并未加以隐藏。在代码水印中,水印被编码成隐藏的软件区域,并未直接暴露给用户或开发者。因此,代码水印的弹性比数据水印要好。
4.2 动态水印比较
4.2.1 可靠性
复活节彩蛋水印和数据结构水印都是将水印嵌入到水印的执行状态中,而且在嵌入时还需要输入一个特殊的预定义密钥。因此,识别嵌入的水印是软件著作权的有力证据,不会产生误报。
4.2.2 数据率
动态软件水印的应用需在当控制流达到预定义的程序状态时,嵌入额外的代码来描述软件运行时的执行行为和执行水印。特别是数据结构水印需要额外的复杂代码来生成特定的数据结构,用于表示水印信息。因此,数据结构水印的嵌入与识别需要额外的附加空间。
4.2.3 隐蔽性
动态水印比静态水印要更加隐蔽,因为动态水印是将水印嵌入到程序的执行状态中。在复活节彩蛋水印中,嵌入的水印通过代码分析可以很容易地被发现,因为水印公开暴露在程序代码中。然而,数据结构水印很难被发现的,因为只有当程序在执行期间达到一个特定的运行状态时水印才会生成。
4.2.4 水印的分散性
在复活节彩蛋水印中,水印通常嵌入到程序代码的特定区域,并没有将水印分散到程序的这个区域中。因此,水印被作为一个隐藏的代码嵌入,这时只有一个预定义的特定输入被输入。另一方面,在数据结构水印中,水印被嵌入在动态生成的数据结构中。因此,用于产生水印的代码可以被分配到软件多个部分来提高水印的分散性。
4.2.5 开销
在数据结构水印中,设计数据结构和实现代码生成代表水印的数据结构需要花费大量时间和精力。它还需要额外的运行时的开销,用于执行软件生成附加的嵌入式数据结构。然而,在复活节彩蛋水印中,水印可以很容易的被嵌入,只需要输入之前自定义的密钥。所以,它不会影响用于生成水印的执行时间。
4.2.6 弹性
在数据结构水印中,当且仅当程序的控制流达到程序的特定运行状态时,水印被作为一种数据结构的形式嵌入。因为水印没有公开给用户或开发人员,如果程序的控制流没有达到特定的状态,水印很难被发现。所以,水印在面对程序的修改或混淆时需要具有弹性,在复活节彩蛋水印中,水印对用户是公开的,它可以很容易的通过代码分析被发现。所以,水印可以直接被用户的修改所影响。
5 结论
软件版权保护的研究也越来越多。在这篇文章中,我们介绍了软件水印方法的概念,它可以通过在软件发布之前嵌入水印的方式来确保软件的版权。我们还提出了一些静态软件水印和动态软件水印方法,不同的软件水印在软件代码或软件执行时拥有不同的特性。
在本文中,我们介绍了软件水印的性能评价指标。然后,我们对每种软件水印的特性做了比较。一般来说,静态软件水印要比动态软件水印更容易使用,这是因为静态软件水印不需要程序执行,它是直接将水印信息嵌入到软件代码中。所以,水印很容易通过代码分析被发现并删除。然而,动态软件水印是很难被用户或开发人员发现的,因为水印是包含在运行程序的执行状态中。因此,它需要嵌入额外的代码来生成运行时水印。此外,动态水印的方法还需要额外的开销用于保存嵌入的水印。为了让软件水印能够真正应用到软件中,根据个人执行环境以及软件的特性对软件水印的优化就显得尤为重要。在未来,预计软件水印的方法将被应用在各种环境下的软件保护和检测软件版权的侵权案件中。
摘要:随着计算机技术的不断进步,软件在现实世界中的应用日益重要。开发软件的时间和精力也在增加。软件许可协议是需要从用户的角度来保护软件的开发人员的知识产权。然而,软件盗窃和许可侵权案件每年都在增加。在本文中我们介绍了几种用于确定软件版权信息的软件水印方法。我们在几个评价指标下比较了它们的特点和性能。在一些软件盗版的案例中软件水印被认为是保护和检测的有效方法。
关键词:软件版权保护,软件许可证,软件水印
参考文献
[1]张立和,杨义先,钮心忻,等.软件水印综述[J].软件学报,2003,14(2):268-277.
[2]AKITO M,HAJIMUI,KEN-ICHI M,et al.Apractical method forwaterm arking Java programs.Proceedings of the24th Comput-er Software and Applications Conference,2000.
[3]SHIRALI-SHAHREZA M,SHIRALI-SHAHREZA S.Softwarewa-termarking by equation reordering.ICTTA08:Proceedings of the3rd IEEE International Conference on Information&Com-munication Technologies:from Theory to Applications,2008.
[4]蒋华,沙宗鲁,轩爱成.基于表达式逆序数的软件水印算法,2009,9(6):3189-3190.
[5]周亮.软件水印算法评估研究[D].吉林:吉林大学,2010.
[6]崔孝晨.软件加密与解密[M].人民邮电出版社,2012,378-488.
[7]Christian S C,Ginger M,Andrew H Sandmark-A Tool for soft-ware Protection Research[J].IEEE Security&Privacy.2003,1(4):40-49.