一种基于连续矢量图形的数字水印系统及实现方法转让专利

申请号 : CN201210100787.X

文献号 : CN102663668B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王涛

申请人 : 王涛

摘要 :

本发明公开了一种基于连续矢量图形的数字水印系统及实现方法,数字水印系统包括数字水印生成端和数字水印验证端,数字水印生成端包括数字水印生成端通信模块、待处理矢量图形集队列模块、水印值码流生成模块、水印值码流序列模块、数字水印添加模块、待发送矢量图形集队列模块、生成端的水印数据存储器以及时序数据生成模块;数字水印验证端包括数字水印验证端通信模块、接收矢量图形集队列模块、数字水印信息提取模块、提取码流存储模块、数字水印验证模块以及验证端的水印数据存储器。本发明具有可在极简的矢量图形中嵌入并验证数字水印的特点,嵌入数据量大,实现简单,可实现多种数字水印。

权利要求 :

1.一种基于连续矢量图形的数字水印系统,其特征在于,包括用于向连续矢量图中添加数字水印数据信息的数字水印生成端WGT及用于检测连续矢量图中添加的数字水印数据信息并验证其正确性的数字水印验证端WVT;其中,数字水印生成端WGT包括数字水印生成端通信模块CM-G、待处理矢量图形集队列模块PVL、水印值码流生成模块CG、水印值码流序列模块WGCL、数字水印添加模块WG、待发送矢量图形集队列模块SVL、生成端的水印数据存储器DG以及时序数据生成模块T;数字水印验证端WVT包括数字水印验证端通信模块CM-V、接收矢量图形集队列模块RVL、数字水印信息提取模块WR、提取码流存储模块WRCL、数字水印验证模块WV以及验证端的水印数据存储器DV;

所述数字水印添加模块WG分别与待处理矢量图形集队列模块PVL、水印值码流序列模块WGCL、待发送矢量图形集队列模块SVL、生成端的水印数据存储器DG以及时序数据生成模块T连接,数字水印生成端通信模块CM-G与待发送矢量图形集队列模块SVL连接,水印值码流生成模块CG分别与生成端的水印数据存储器DG、水印值码流序列模块WGCL连接;

所述数字水印验证端通信模块CM-V、接收矢量图形集队列模块RVL、数字水印信息提取模块WR、提取码流存储模块WRCL以及数字水印验证模块WV依次连接,所述验证端的水印数据存储器DV分别与数字水印信息提取模块WR、数字水印验证模块WV连接;

所述数字水印生成端通信模块CM-G,用于对添加了数字水印的连续矢量图形集进行发送;

所述待处理矢量图形集队列模块PVL,用于记录要添加数字水印的原连续矢量图形集;

所述水印值码流生成模块CG,用于按照生成端的水印数据存储器DG中记录的水印数据信息和水印值码流生成规则来生成水印值码流,并存储到水印值码流序列模块WGCL中;

所述水印值码流序列模块WGCL,用于存储、记录生成的水印值码流,以便将特定的水印值添加到特定的连续矢量图形集中;

所述数字水印添加模块WG,用于按添加数字水印的编码规则,依次修改连续矢量图形集中一个或多个图形元素的一个或多个属性值;

所述待发送矢量图形集队列模块SVL,用于临时保存已添加了数字水印的连续矢量图形集数据序列,准备发送;

所述生成端的水印数据存储器DG,用于存放:(1)从水印数据生成水印码流的算法及相关计算参数;(2)码流嵌入数据包规则及计算参数;(3)嵌入范围;(4)水印数据;(5)嵌入算法及计算参数;(6)对比矢量图形数据包的选择方式或计算方式;

所述时序数据生成模块T,用于生成时戳或时序序号,以便将时序信息添加到连续矢量图形集数据序列的数字水印中去,标明矢量图形集的先后顺序关系,防止重放攻击或篡改;

所述数字水印验证端通信模块CM-V,用于接收连续的矢量图形数据包;

所述接收矢量图形集队列模块RVL,用于存储所接收的连续的矢量图形数据包序列;

所述数字水印信息提取模块WR,用于从接收的连续矢量图形数据包序列的图形元素和属性中提取数字水印信息;

所述提取码流存储模块WRCL,用于存储提取出的数字水印码流数据序列;

所述数字水印验证模块WV,用于对提取的码流进行分析,验证所接收的连续的矢量图形数据包中所提取、分析出来的数字水印中数据信息是否与验证端的水印数据存储器DV中的水印所嵌入并最终要验证的数据信息中的数据信息一致,并输出验证结果;

所述验证端的水印数据存储器DV,存放内容与生成端的水印数据存储器DG存放内容一致。

2.根据权利要求1所述的基于连续矢量图形的数字水印系统,其特征在于,所述数字水印生成端WGT还包括与待发送矢量图形集队列模块SVL连接的带水印的连续矢量图形文件输出模块O,用于将已添加了数字水印的连续矢量图形集数据存储到一个存储文件中。

3.一种基于权利要求1所述基于连续矢量图形的数字水印系统的基于连续矢量图形的数字水印实现方法,其特征在于,包括以下步骤:S1、数字水印生成端与数字水印验证端知识交换:在一次通信前,确定嵌入范围、码流嵌入数据包规则及嵌入算法,并在数字水印生成端和数字水印验证端之间进行协商、交换和共享;

S2、在数字水印生成端,准备连续矢量图形集数据包序列;

S3、在数字水印生成端,确定传输的水印数据,并根据它来按由生成端和验证端商定的参数和商定的算法生成水印码流;

S4、在数字水印生成端,在矢量图形数据包中按码流嵌入数据包规则嵌入数字水印码流数据:对连续矢量图形数据包序列中当前要嵌入水印的矢量图形数据包,按照码流嵌入数据包规则,在数字水印码流选择码流中的片段或片段的组合,再按照嵌入范围与嵌入算法,修改该数据包中一个或多个图形元素的一个或多个属性,将数字水印码流数据或数据片段嵌入;哪些码流数据嵌入哪些矢量图形数据包、嵌入哪些属性、修改属性的方式,均由生成端和验证端商定的参数和商定的算法计算来确定,所述属性包括图形属性和矢量包发送时间属性;

S5、在数字水印生成端,在每个矢量图形数据包的发送时序数据所标示时刻,发送带有数字水印部分或全部信息的矢量图形数据包;

S6、在数字水印验证端,接收带有数字水印部分或全部信息的连续矢量图形数据包;

S7、在数字水印验证端,提取连续矢量图形数据包中属性上的变化值,计算嵌入的码流数据:根据当前接收到的矢量图形数据包,跟之前收到的矢量图形数据包或之前收到的多个矢量图形数据包的统计值对比,提取连续矢量图形数据包中属性上的变化值,计算数字水印码流数据;

S8、在数字水印验证端,通过汇总收到的数字水印嵌入码流,提取水印数据;

S9、在数字水印验证端,验证计算出来的水印数据,从而验证所接收的连续矢量图形数据包序列是否携带了数字水印生成端嵌入数字水印。

4.根据权利要求3所述的实现方法,其特征在于:所述S2中的连续矢量图形集数据包序列包括一系列单个的矢量图形数据包;每个矢量图形数据包包括以下数据:(1)、矢量图形数据包的描述数据;

(2)、矢量图形数据包的发送时序数据;

(3)、矢量图形数据包的矢量图形内容。

5.根据权利要求3所述的实现方法,其特征在于:所述S3、S4中,将时间信息、校验信息加入码流生成算法中、嵌入位置确定中和嵌入内容中。

6.根据权利要求3所述的实现方法,其特征在于:所述S3、S4中,在生成并添加数字水印时,使用参数来控制生成的水印码流数据和在连续矢量图形数据包中的嵌入,通过参数的变化来使数字水印及其嵌入发生可控变化;所述S7、S8中,在验证数字水印时,通过参数来正确提取和验证数字水印数据。

7.根据权利要求3所述的实现方法,其特征在于:所述S3中,所生成的数字水印码流分散嵌入矢量图形数据包序列中的不同矢量图形数据包中,或者组合几个水印码流或将全部码流嵌入一个矢量图形数据包中。

8.根据权利要求3所述的实现方法,其特征在于:所述S4中,在连续矢量图形数据包序列中嵌入数字水印码流的方式有两种:(1)、在将矢量图形数据包序列中的所有单个矢量图形数据包中均加入数字水印码流数据后,再依次一个个发送矢量图形数据包,或将所有数据包放入一个文件;

(2)、在一个矢量图形数据包中嵌入数字水印码流数据后发送,随后再进行后续一个矢量图形数据包的数字水印嵌入并发送。

9.根据权利要求3所述的实现方法,其特征在于:所述S4中,在连续矢量图形数据包序列中的一个或多个矢量图形元素的一个或多个图形属性中嵌入一组或多组数字水印数据,或者在连续矢量图形数据包序列中各单个矢量图形数据包的发送时间上嵌入数字水印数据。

说明书 :

一种基于连续矢量图形的数字水印系统及实现方法

技术领域

[0001] 本发明属于一种应用于在计算机信息安全、网络通信鉴别与认证、数字版权保护和管理的实现数字水印的系统和方法,特别是涉及一种在连续矢量图形中实现数字水印的系统和方法。

背景技术

[0002] 数字水印(Digital Watermarking)技术是将一些标识信息(即数字水印)直接嵌入数字载体当中(包括多媒体、文档、软件等)或是数据的间接表示(修改特定区域的结构),且不影响原载体的使用价值,也不容易被探知和再次修改,但可以被水印生产方(或与生产方合作的其它方)识别和辨认。通过这些隐藏在载体中的信息,可以达到确认内容创建者、购买者、传送隐秘信息或者判断载体是否被篡改等目的。数字水印是信息隐藏技术的一个重要研究方向。数字水印是实现来源鉴别和版权保护的有效办法,是信息隐藏技术研究领域的重要分支。
[0003] 在一个完整的数字水印系统中:有一个或以上的数字水印生成端,负责在原数据或称载体数据中秘密地或公开地添加数据水印数据;有一个或以上的数字水印验证端,在接收了含有数字水印数据的载体数据后,将数字水印数据从载体数据中提取/分离出来,并对数字水印数据正确性、合法性和来源进行鉴别,实现数字水印的作用。
[0004] 数字水印技术基本上具有下面几个方面的特点:
[0005] 1、安全性:数字水印的信息应是安全的,难以篡改和伪造,同时,应当有较低的误检测率,当原内容发生变化时,数字水印应当发生变化,从而可以检测原始数据的变更。
[0006] 2、水印可见性/隐蔽性:根据应用需要,数字水印可以是可见的、明显的,也可以是不可知觉的。对不可见水印,应不影响被保护数据的正常使用;不会严重影响载体的质量和使用。
[0007] 3、鲁棒性(也称健壮性):是指在经历无意或有意的信号处理过程后,数字水印仍能保持信息完整性并能被准确鉴别。但鲁棒性不是数字水印的必须要求。
[0008] 4、水印容量:是指载体在不发生形变的前提下可嵌入的水印信息量。
[0009] 目前的数字水印主要是添加在点阵图像中(如添加到图片、视频中的数字水印和数字印章)。近年来对矢量图中添加数字水印也逐渐进行了研究。
[0010] 矢量图(vector graphics)是指以特定图形类型(如点、线、圆、圆锥体等)及绘图参数(如坐标、线宽、色彩值等)描述一个图形或图形图像区域的可视特性的图形数据形式,或多个单一矢量图形组成的复合矢量图形—如矢量字形。例如,一个二维环形,只需要描述其圆心、外环半径、内环半径、颜色、边缘线型、线宽及边缘颜色,就可以将其绘制出来;一个三维球体,只需要描述其球心坐标、球半径、球颜色、球面反光度/透明度。
[0011] 一个矢量图中会包含多个图形元素(primitive),图形元素即是点、线、圆、圆锥体等二维或三维的、具有单一绘图规则或算法的绘图单元。多个图形元素共同组成复合图形。例如,一个中国国旗的矢量图,就由一个红底矩形和5个不同位置和大小的黄色正五角星形组成。
[0012] 矢量图形(包括矢量字形)目前广泛应用在工程制图、三维立体模型和相关的数字媒体艺术作品、网络矢量图(如SVG格式的网络矢量图)、地理信息系统/空间信息系统、数字地图,未来还将在计算机远程屏幕输出和展现方面有进一步应用。
[0013] 随着矢量图形在计算机和通信领域的广泛应用,在矢量图形中加入数字水印就有了需求和技术实现方案。但由于描述矢量图形所需的数据量极小,这个优点反而带来的两个缺点:难以在极少量的矢量图形数据中添加数字水印而不被发现(数字水印的隐蔽性是其常用特点);无法提供足够的数据冗余量来保护数字水印数据不会被篡改和伪造。
[0014] 因此,近年来出现的给矢量图形添加数字水印的技术方案,都是基于较大的矢量图形数据量才能实现数字水印的嵌入(如现有矢量图水印方案都是针对矢量地图、矢量工程图等有大量矢量图形元素的矢量图)。
[0015] 目前的文献和专利中,都没有很好的解决在极少量的矢量图形数据中添加数字水印而不被发现的这个技术问题:
[0016] 美国专利(US Patent 7644281)公开了一种对文本或矢量图文档加水印的方法和装置。它的原理是对字符或矢量图形的灰度或颜色进行调整,所公开的方法可适用于对安全文档、合同、技术或商业文档进行保护,可以用在任何物理支持件、纸张或塑料上;它可以用在拷贝保护、鉴别和时戳证明;最后它可以用在其它非安全相关的应用中,例如文档追踪,或文档中嵌入警告或其它基于数字水印的自动处理。但该方案是针对静态矢量图形,且无法对极简的矢量图(例如只有一个矢量图形元素,如一个圆或一个矩形)添加数字水印。
[0017] 中 国 专 利 ( 申 请 号 200810026405.7、200710054817.7、200810035218.5、200810203997.5、200810236953.2、200810209637.6、200810236952.8、200910032921.5、
200910071879.8、200910234944.4、201010158251.4、201010158243.X、201010170465.3、
201010548741.5)公开了几种面向空间/地理信息数据的矢量图数字水印方法,主要的方法是基于顶点、统计灰度等属性的修改,但这些专利均为面向静态矢量图形的方法,且嵌入的数据量较小,无法对极简的矢量图(例如只有一个矢量图形元素,如一个圆或一个矩形)添加数字水印。
[0018] 中国专利(申请号CN200910238178.9)公开了一种基于运动矢量的视频水印嵌入和提取方法,水印嵌入步骤为:步骤a,在编码时,获取编码端视频帧的第i个运动矢量(Xi,Yi);步骤b,根据所述编码端运动矢量(Xi,Yi)横坐标Xi与纵坐标Yi的小数部分的组合关系,获取所述编码端运动矢量(Xi,Yi)的特征向量(V1i,V2i);步骤c,按照修改规则调整所述编码端运动矢量(Xi,Yi)的横坐标Xi或纵坐标Yi,使得所述编码端运动矢量的特征向量(V1i,V2i)的横坐标V1i、纵坐标V2i与将要嵌入的两位水印Wk,Wk+1相同;水印提取步骤为:步骤d,在解码时,获取解码端视频帧的第i个运动矢量(Xi,Yi);步骤e,根据所述解码端运动矢量(Xi,Yi)横坐标Xi与纵坐标Yi的小数部分的组合关系,获取所述解码端运动矢量(Xi,Yi)的特征向量(V1i,V2i);步骤f,提取运动矢量(Xi,Yi)中的水印信息,两位水印Wk,Wk+1分别为解码端运动矢量(Xi,Yi)的特征向量(V1i,V2i)的横坐标V1i,纵坐标V2i。所公开的方法,是以特定的运行矢量(原文中的“第i个运动矢量”)作为嵌入水印数据的对象,且水印数据的嵌入并没有与连续矢量图的时序相关,嵌入时没有将嵌入的水印数据编制成码流并嵌入到连续多个矢量图形数据中。
[0019] 中国专利(申请号CN201110056650.4)公开一种信息安全技术领域的基于H.264标准运动矢量的脆弱性水印嵌入和提取方法,在I帧前一个P帧的运动矢量中选择性地嵌入水印信息,水印容量大并且保真度高;水印信息包含帧号和时间戳,并使用对称密码算法加密,使其具有抗攻击性并可在一定精度上定位视频的篡改,且对视频编码比特率影响很小。但其不足之处包括:应用范围限定于对基于H.264的视频数据中实现脆弱性水印嵌入和提取方法,且仅能实现脆弱性水印;该发明是在视频编码中的附加信息嵌入水印,保护的视频帧而不是矢量图形数据;其水印机制不是针对连续矢量图形中嵌入连续码流、由完整的码流来传输数字水印的。
[0020] 类似的还有中国专利(申请号为CN201010170465.3的一种基于H.264运动矢量的视频水印嵌入提取方法、申请号为CN201010207724.5的基于MPEG-2标准的实时数字视频水印方法以及申请号为CN201010207727.9的基于H.264标准的实时数字视频水印方法),都是基于特定视频压缩标准的数字水印实现方法,也均为在视频标准中视频编码中的附加信息中嵌入数字水印数据。
[0021] 现有的对单张矢量图形的数字水印实现方案还有一个缺点:目前的矢量图形的数字水印实现方案主要是基于坐标修改的,这种方法很容易造成原图的变形和失真。这一方面导致原图的显示效果受到影响,另一方面也很容易暴露嵌入到矢量图中的数字水印。究其原因,仍是由于矢量图的数据量太少,除了在坐标中进行修改外,难以再在其它方面找到足够的空间去嵌入水印数据。
[0022] 这种情况导致了矢量图形的数字水印难以实现并应用在计算机领域、网络通信领域、信息安全和数字媒体艺术产品版权保护等领域。

发明内容

[0023] 本发明的首要目的在于克服现有技术在矢量图形添加数字水印方面的缺点和不足,提出了一种基于连续矢量图形的数字水印系统,该方法通过在连续矢量图形中进行矢量图形参数的连续变化来嵌入编码码流,通过嵌入连续矢量图中的连续码流数据来携带数字水印信息(数字水印数据分布在码流中各单个编码值之中),实现了在极少量的矢量图形数据中添加数字水印,是对传统矢量图形数字水印方案与相关系统的革新,是对计算机图形图像技术、信息安全技术、矢量图形数字版权保护在理论和应用方面的创新。
[0024] 本发明的另一目的是提供一种基于连续矢量图形的数字水印实现方法,实现了在极少量的矢量图形数据中添加数字水印。
[0025] 本发明通过下述技术方案实现上述首要目的:一种基于连续矢量图形的数字水印系统,其特征在于,包括用于向连续矢量图中添加数字水印数据信息的数字水印生成端WGT及用于检测连续矢量图中添加的数字水印数据信息并验证其正确性的数字水印验证端WVT;其中,数字水印生成端WGT包括数字水印生成端通信模块CM-G、待处理矢量图形集队列模块PVL、水印值码流生成模块CG、水印值码流序列模块WGCL、数字水印添加模块WG、待发送矢量图形集队列模块SVL、生成端的水印数据存储器DG以及时序数据生成模块T;数字水印验证端WVT包括数字水印验证端通信模块CM-V、接收矢量图形集队列模块RVL、数字水印信息提取模块WR、提取码流存储模块WRCL、数字水印验证模块WV以及验证端的水印数据存储器DV;
[0026] 所述数字水印添加模块WG分别与待处理矢量图形集队列模块PVL、水印值码流序列模块WGCL、待发送矢量图形集队列模块SVL、生成端的水印数据存储器DG以及时序数据生成模块T连接,数字水印生成端通信模块CM-G与待发送矢量图形集队列模块SVL连接,水印值码流生成模块CG分别与生成端的水印数据存储器DG、水印值码流序列模块WGCL连接;
[0027] 所述数字水印验证端通信模块CM-V、接收矢量图形集队列模块RVL、数字水印信息提取模块WR、提取码流存储模块WRCL以及数字水印验证模块WV依次连接,所述验证端的水印数据存储器DV分别与数字水印信息提取模块WR、数字水印验证模块WV连接;
[0028] 所述数字水印生成端通信模块CM-G,用于对添加了数字水印的连续矢量图形集进行发送;
[0029] 所述待处理矢量图形集队列模块PVL,用于记录要添加数字水印的原连续矢量图形集;
[0030] 所述水印值码流生成模块CG,用于按照生成端的水印数据存储器DG中记录的水印数据信息和水印值码流生成规则来生成水印值码流,并存储到水印值码流序列模块WGCL中;
[0031] 所述水印值码流序列模块WGCL,用于存储、记录生成的水印值码流,以便将特定的水印值添加到特定的连续矢量图形集中;
[0032] 所述数字水印添加模块WG,用于按添加数字水印的编码规则,依次修改连续矢量图形集中一个或多个图形元素的一个或多个属性值;
[0033] 所述待发送矢量图形集队列模块SVL,用于临时保存已添加了数字水印的连续矢量图形集数据序列,准备发送;
[0034] 所述生成端的水印数据存储器DG,用于存放:(1)从水印数据生成水印码流的算法及相关计算参数;(2)码流嵌入数据包规则及计算参数;(3)嵌入范围;(4)水印数据;(5)嵌入算法及计算参数;(6)对比矢量图形数据包的选择方式或计算方式;
[0035] 所述时序数据生成模块T,用于生成时戳或时序序号,以便将时序信息添加到连续矢量图形集数据序列的数字水印中去,标明矢量图形集的先后顺序关系,防止重放攻击或篡改;
[0036] 所述数字水印验证端通信模块CM-V,用于接收连续的矢量图形数据包;
[0037] 所述接收矢量图形集队列模块RVL,用于存储所接收的连续的矢量图形数据包序列;
[0038] 所述数字水印信息提取模块WR,用于从接收的连续矢量图形数据包序列的图形元素和属性中提取数字水印信息;
[0039] 所述提取码流存储模块WRCL,用于存储提取出的数字水印码流数据序列;
[0040] 所述数字水印验证模块WV,用于对提取的码流进行分析,验证所接收的连续的矢量图形数据包中所提取、分析出来的数字水印中数据信息是否与验证端的水印数据存储器DV中的水印所嵌入并最终要验证的数据信息中的数据信息一致,并输出验证结果;
[0041] 所述验证端的水印数据存储器DV,存放内容与生成端的水印数据存储器DG存放内容一致。
[0042] 优选地,所述数字水印生成端WGT还包括与待发送矢量图形集队列模块SVL连接的带水印的连续矢量图形文件输出模块O,用于将已添加了数字水印的连续矢量图形集数据存储到一个存储文件中。
[0043] 本发明通过下述技术方案实现上述另一目的:一种基于连续矢量图形的数字水印实现方法,包括以下步骤:
[0044] S1、数字水印生成端与数字水印验证端知识交换:在一次通信前,确定嵌入范围、码流嵌入数据包规则及嵌入算法,并在数字水印生成端和数字水印验证端之间进行协商、交换和共享;
[0045] S2、在数字水印生成端,准备连续矢量图形集数据包序列;
[0046] S3、在数字水印生成端,确定传输的水印数据,并根据它来按由生成端和验证端商定的参数和商定的算法生成水印码流;
[0047] S4、在数字水印生成端,在矢量图形数据包中按码流嵌入数据包规则嵌入数字水印码流数据:对连续矢量图形数据包序列中当前要嵌入水印的矢量图形数据包,按照码流嵌入数据包规则,在数字水印码流选择码流中的片段或片段的组合,再按照嵌入范围与嵌入算法,修改该数据包中一个或多个图形元素的一个或多个属性,将数字水印码流数据或数据片段嵌入;哪些码流数据嵌入哪些矢量图形数据包、嵌入哪些属性(包括图形属性和矢量包发送时间属性)、修改属性的方式,均由生成端和验证端商定的参数和商定的算法计算来确定。
[0048] S5、在数字水印生成端,在每个矢量图形数据包的发送时序数据所标示时刻,发送带有数字水印部分或全部信息的矢量图形数据包;
[0049] S6、在数字水印验证端,接收带有数字水印部分或全部信息的连续矢量图形数据包;
[0050] S7、在数字水印验证端,提取连续矢量图形数据包中属性上的变化值,计算嵌入的码流数据:根据当前接收到的矢量图形数据包,跟之前收到的矢量图形数据包或之前收到的多个矢量图形数据包的统计值对比,提取连续矢量图形数据包中属性上的变化值,计算数字水印码流数据;
[0051] S8、在数字水印验证端,通过汇总收到的数字水印嵌入码流,提取水印数据;
[0052] S9、在数字水印验证端,验证计算出来的水印数据,从而验证所接收的连续矢量图形数据包序列是否携带了数字水印生成端嵌入数字水印。
[0053] 优选地,所述S2中的连续矢量图形集数据包序列包括一系列单个的矢量图形数据包;每个矢量图形数据包包括以下数据:
[0054] (1)、矢量图形数据包的描述数据;
[0055] (2)、矢量图形数据包的发送时序数据;
[0056] (3)、矢量图形数据包的矢量图形内容。
[0057] 优选地,所述S3、S4中,可将时间信息、校验信息加入码流生成算法中、嵌入位置确定中和嵌入内容中,以实现数字水印防攻击和保护。
[0058] 优选地,所述S3、S4中,在生成并添加数字水印时,使用参数来控制生成的水印码流数据和在连续矢量图形数据包中的嵌入,通过参数的变化来使数字水印及其嵌入发生可控变化;所述S7、S8中,在验证数字水印时,通过参数来正确提取和验证数字水印数据。
[0059] 优选地,所述S3中,所生成的数字水印码流分散嵌入矢量图形数据包序列中的不同矢量图形数据包中,或者组合几个水印码流或将全部码流嵌入一个矢量图形数据包中。
[0060] 优选地,所述S4中,在连续矢量图形数据包序列中嵌入数字水印码流的方式有两种:
[0061] (1)、在将矢量图形数据包序列中的所有单个矢量图形数据包中均加入数字水印码流数据后,再依次一个个发送矢量图形数据包,或将所有数据包放入一个文件;
[0062] (2)、在一个矢量图形数据包中嵌入数字水印码流数据后发送,随后再进行后续一个矢量图形数据包的数字水印嵌入并发送。
[0063] 优选地,所述S4中,在连续矢量图形数据包序列中的一个或多个矢量图形元素的一个或多个图形属性中嵌入一组或多组数字水印数据,或者在连续矢量图形数据包序列中各单个矢量图形数据包的发送时间上嵌入数字水印数据。
[0064] 本发明的作用原理是:本发明认为,在单张的矢量图形下嵌入数字水印,如果所包含的矢量图形数目少、总数据量小,难以嵌入数字水印;通过坐标修改来嵌入的数字水印容易导致原矢量图形失真。而在连续矢量图的情况下,可以利用连续矢量图中特定或全部矢量图形在某个或多个图形属性(颜色、坐标、改变时间等)上的同步或异步变化,来嵌入数字水印数据。通过连续矢量图形中属性的变化值来嵌入水印、通过变化值来验证水印,是本发明的原理核心。
[0065] 本发明认为,基于传统的、单张的矢量图形的数字水印实现方法,难以嵌入大量的水印数据,使用受到较大限制,而基于连续矢量图形的数字水印实现方法,是一种更有优势的方式,可以适应极少的矢量图形数据的应用情形,从而使数字水印技术可以在矢量图形领域得到进一步应用。
[0066] 本发明与现有技术相比,具有如下优点和有益效果:
[0067] 第一、可在极简的矢量图中嵌入并验证数字水印:这是目前的矢量图形数字水印方法所无法实现的。本发明所公开的系统和方法,对即使只有一个矢量图形元素(例如一个圆或一个像素点)的矢量图,也可以通过对其颜色进行的连续细微改变(如红色、蓝色或绿色色彩值上按编码分别进行相应的加1、减1)来在数字水印生成端嵌入数字水印、在数字水印验证端验证数字水印。
[0068] 第二、嵌入数据量大。对一个图形元素,可以分别在颜色、坐标等属性以及这些属性的改变时间上嵌入数据。而图形元素越多,则嵌入的数据量就成倍的增加。嵌入的数据量丰富,使得实现多种数字水印成为可能。
[0069] 第三、可以实现多种类型的数字水印:由于可以利用连续矢量图中特定或全部矢量图形在某个或多个图形属性(颜色、坐标、改变时间等)上的同步或异步变化来嵌入数字水印数据,因此可以实现可见水印、不可见水印、脆弱性水印、健壮性水印等各种类型的数字水印。其中:可见水印可以通过对可见属性(如颜色、坐标)随着时间序列进行大比例修改来实现;不可见水印可以通过随着时间序列对不可见属性的修改或对可见属性的细微修改来实现;脆弱性水印可以通过在矢量图形中所有图形元素的嵌入同一保密数据或互相印证的保密数据来实现(这样,攻击者无论修改哪个属性的哪次取值都会被发现,从而达到脆弱性水印的效果);健壮性水印可以通过在矢量图形中多个图形元素的嵌入冗余的或互相印证的保密数据来实现(这样,攻击者改了一处,仍然可以从其它图形元素的变化中提取出原来的水印信息,从而达到健壮性水印的效果)。其它类型或需求的数字水印,也可以得到实现。
[0070] 第四、实现简易性:本发明公开的基于连续矢量图形的数字水印实现方法及系统,其原理十分简单,是利用时间序列下对属性值变化序列的修改和提取来完成数字水印的嵌入和验证,无论用软件还是硬件来实现都是十分简单的。
[0071] 第五、在计算机和通信领域的广泛适用性:由于本发明所提出的方案,可以在计算机软件、硬件中实现,因此可以在计算机、网络通信和无线通信、数字电视、移动计算、云计算、分布式计算等领域进行实现和使用。
[0072] 第六、安全性:本方法可以通过嵌入保密信息来实现防篡改功能、通过嵌入时刻信息和时序信息来实现防重防攻击,因此具有较高的安全性。又由于本发明嵌入数据量大,可以在多个矢量图形元素的属性嵌入冗余的数据(一个数据的多个副本或多个不同形式的校验值),形成互相验证、互相保护的体系,增强保护性。
[0073] 第七、兼容性:如果修改的是矢量图中多个矢量图形元素的多个坐标值,且不进行连续矢量属性的改变,则本发明所公开的数字水印方法就是现有的静态矢量地图、矢量工程图的数字水印算法。

附图说明

[0074] 图1是本发明一种基于连续矢量图形的数字水印系统的结构方框图;
[0075] 图2是本发明一种基于连续矢量图形的数字水印实现方法的流程图;
[0076] 图3是本发明一种基于连续矢量图形的数字水印实现方法中数字水印生成端处理过程的框架结构图;
[0077] 图4是本发明一种基于连续矢量图形的数字水印实现方法中数字水印验证端处理过程的框架结构图。

具体实施方式

[0078] 下面结合实施例及附图,对本发明作进一步地详细说明,但本发明的实施方式不限于此。
[0079] 本发明实现了基于连续矢量图形的数字水印系统,如图1所示,包括用于向连续矢量图中添加数字水印数据信息的数字水印生成端WGT及用于检测连续矢量图中添加的数字水印数据信息并验证其正确性的数字水印验证端WVT;其中,数字水印生成端WGT包括数字水印生成端通信模块CM-G、待处理矢量图形集队列模块PVL、水印值码流生成模块CG、水印值码流序列模块WGCL、数字水印添加模块WG、待发送矢量图形集队列模块SVL、生成端的水印数据存储器DG以及时序数据生成模块T;数字水印验证端WVT包括数字水印验证端通信模块CM-V、接收矢量图形集队列模块RVL、数字水印信息提取模块WR、提取码流存储模块WRCL、数字水印验证模块WV以及验证端的水印数据存储器DV。
[0080] 所述数字水印生成端通信模块CM-G,用于对添加了数字水印的连续矢量图形集进行发送;所述待处理矢量图形集队列模块PVL,用于记录要添加数字水印的原连续矢量图形集;所述水印值码流生成模块CG,用于按照生成端的水印数据存储器DG中记录的水印数据信息和水印值码流生成规则来生成水印值码流,并存储到水印值码流序列模块WGCL中;所述水印值码流序列模块WGCL,用于存储、记录生成的水印值码流(code stream),以便将特定的水印值添加到对应的连续矢量图形集中。
[0081] 所述数字水印添加模块WG,用于按添加数字水印的编码(encode)规则,依次修改连续矢量图形集中一个或多个图形元素的一个或多个属性值。所述待发送矢量图形集队列模块SVL,用于临时保存已添加了数字水印的连续矢量图形集数据序列,准备发送。
[0082] 所述生成端的水印数据存储器DG,用于存放:(1)从水印数据生成水印码流的算法及相关计算参数;(2)码流嵌入数据包规则及计算参数;(3)嵌入范围;(4)水印数据;(5)嵌入算法及计算参数;(6)对比矢量图形数据包的选择方式或计算方式。
[0083] 所述时序数据生成模块T,用于生成时戳(time stamp,是用于标明时刻和时序关系的一种数据)或时序序号,以便按照本发明数字水印实现方法中数字水印算法添加到连续矢量图形集数据序列的数字水印中去,标明矢量图形集的先后顺序关系,防止重放攻击或篡改。
[0084] 所述数字水印验证端通信模块CM-V,用于接收数字水印生成端通信模块CM-G发送的连续的矢量图形数据包;所述接收矢量图形集队列模块RVL,用于存储所接收的连续的矢量图形数据包序列;所述数字水印信息提取模块WR,用于以商定的形式从接收的连续矢量图形数据包序列中商定的图形元素和属性中提取数字水印信息;所述提取码流存储模块WRCL,用于存储提取出的数字水印码流数据序列;所述数字水印验证模块WV,用于对提取的码流进行分析,验证所接收的连续的矢量图形数据包中所提取、分析出来的数字水印中数据信息是否与验证端的水印数据存储器DV中的“水印所嵌入并最终要验证的数据信息中的数据信息”一致,并输出验证结果。所述验证端的水印数据存储器DV,存放内容与生成端的水印数据存储器DG模块所存放内容一致。
[0085] 在本实施例中,数字水印生成端还包括带水印的连续矢量图形文件输出模块O,用于将已添加了数字水印的连续矢量图形集数据存储到一个存储文件中,以便以后再进行播放和验证。带水印的连续矢量图形文件输出模块O为可选部件,适合于生成带水印的矢量图形作品的应用场景(例如带水印的二维/三维动画源文件等)。
[0086] 上述数字水印生成端和数字水印验证端均可以作为一个独立系统,也可以作为其它系统的组成部分而存在;无论哪种,均不应破坏对本发明的保护。
[0087] 上述各模块的处理功能,可以用软件、硬件、固件、可编程芯片等方式实现,如果用固件中的微程序来实现,则另外需要一个模块或部件来执行这些微程序(如下面实施例中所说的“DSP芯片”)。
[0088] 由于是利用连续矢量图形来传输数字水印,因此本方案无法用在静态的矢量图形内容(包括无法用到以打印、喷涂等形式对矢量图形进行物理处理后获得的产物)上进行数字水印嵌入和验证。
[0089] 下面以下述实施例,详细说明应用上述系统实现的具体过程,流程如图2所示:
[0090] (在下面的实施例描述中,未加水印的矢量图形数据包内容用v表示,而已加水印的用v′表示)
[0091] 实施例1
[0092] 本实施例描述本发明最简单的实施方式,即矢量图中只有一个圆的情况下的实施方式,包括以下步骤:
[0093] S1、数字水印生成端与数字水印验证端知识交换:在一次通信前,确定嵌入范围与嵌入规则、嵌入算法等数字水印,并在数字水印的生成端和数字水印的验证端之间进行协商、交换和共享信息。
[0094] S2、在数字水印生成端,准备连续矢量图形集数据序列(即未加水印的序列);
[0095] 连续矢量图形集数据包序列包括一系列单个的矢量图形数据包。每个矢量图形数据包应包括以下数据:
[0096] (1)、矢量图形数据包的描述数据:如序列号、来源等;
[0097] (2)、本矢量图形数据包的发送时序数据:这个数据表明本矢量图形数据包的发送时间或时序(在第几位发送);
[0098] (3)、本矢量图形数据包的矢量图形内容:这是一个列表数据,包括本矢量图形数据包中的一个或多个图形元素的相关参数,包括:矢量图形类型、矢量图形参数。
[0099] 数字水印嵌入主要是在(2)“发送时序数据”及(3)中“矢量图形参数”中进行修改来实现嵌入。在实施中,并不要求在发送第一个矢量图形数据包之前,就将所有要发送的矢量图形数据包都准备好或生成好;矢量图形数据包可以是不断出现、不断添加水印、不断发送的。
[0100] 在本实施例中,从数字水印的生成端要传输的、原始的连续矢量图数据包序列为V={v1,v2,...,vi},其中i∈N,N为自然数集合。
[0101] 本实施例中,对所有
[0102]
[0103] 从上述内容可知,连续矢量图形数据包序列的播放内容是一个不断向右移动的、颜色为RGB(182,38,231)的圆形。
[0104] S3、如图3所示,在数字水印生成端,确定传输的水印数据,并根据水印数据生成水印码流;
[0105] 在步骤S3中,从水印数据生成水印码流的算法为:按“水印数据各分量值-临时参数值=水印码流分量”,并在每个码流分量后加一个校验值进入码流(校验值为每个码流分量值的平方);相应的,从水印码流计算水印数据的算法为:在计算中的码流中取第1、3、5、7个码流,对这4个码流按以下算法计算:水印码流分量+临时参数值=原水印数据分量。
本实施例中,在数字水印的生成端要嵌入连续矢量图形中传输的数据为m=(3,4,1,3),计算水印码流的过程中有使用临时参数,临时参数值keysession=2,所获得的最终码流为(c1,c2,c3,c4,c5,c6,c7,c8)=(-1,1,-2,4,1,1,-1,1)。
[0106] 水印数据是指要从生成端通过数字水印传输到验证端的完整的信息或数据。水印码流是指:将原来要进行嵌入的、完整的水印数据,按一定算法转换生成的码流(code stream),这个码流是分散在连续矢量图形中各个帧中,是对连续矢量图形数据包中属性的修改值或变化值,是水印数据的载体。如果嵌入的水印数据比较简单,则可以不编制水印码流而直接嵌入该水印数据。
[0107] 例如:要传输的是水印数据是29,在嵌入和传输水印的过程中,不是直接传输29,而是传输29的二进制数(29十进制=11101二进制)在连续矢量图形序列对某个图形元素原来没有改变的颜色值进行微小修改,使其连续两个帧中的颜色变化值为(11101),如可以将原来颜色为RGB(232,122,49)的图形颜色中绿色(G)连续改变成(122,123,124,125,125,126),这个连续序列中变化值就嵌入了11101的码流。
[0108] 在生成码流的算法中,可以加入时间信息、校验信息,从而提高数字水印的安全性、可靠性。
[0109] 从水印数据生成水印码流的过程中,可以使用计算参数来使计算结果出现可控变化(类似加密过程中的密钥)。相关计算参数应只在数字水印生成端和验证端之间共知,不应有第三方得知。若采用这种方式,则相应的计算参数也需要在通信前在生成端和验证端之间进行交换和共享。
[0110] 生成码流的作用是:(1)将水印数据切割为许多分量,分散到多个矢量图形数据包的多个图形元素的属性修改中,减少对原矢量图形的属性的改变,以便嵌入不可见水印;(2)将码流的不同部分分别嵌入矢量图形数据包中的不同地方,可以互相验证、互相保护,提高本发明的水印数据安全性。
[0111] 所生成的数字水印码流,可以分散嵌入矢量图形数据包序列中的不同矢量图形数据包中,也可以组合几个或将全部码流嵌入一个矢量图形数据包中。这由S1中的码流嵌入数据包方案来决定。
[0112] 由于码流中的各个片段,可以分别或组合放到一个或多个矢量图形数据包中,那么只要通过连续矢量图形数据包(例如5个数据包)收集到了所有码流片段,就可以完成从这5个数据包中获得完整码流并提取水印数据。最极端情况,只需要两个连续矢量图形数据包,就可以完整实现数字水印的嵌入和验证(但两个数据包,也是可能的最少数量)。
[0113] S4、在数字水印生成端,在矢量图形数据包中按码流嵌入数据包规则嵌入数字水印码流数据;
[0114] 在步骤S4中,码流嵌入数据包规则为:每9个矢量图形数据包为一组(第一组为v1,v2,v3,v4,v5,v6,v7,v8,v9),上述8个码流(包括检验值)分别依次嵌入8个矢量图形数据包中;嵌入算法为对相应的属性做加法;嵌入范围是:嵌入所有矢量图形数据包中所有矢量图形元素的颜色属性中的红色分量。
[0115] 对本实施例中的矢量图形数据包,按照所述码流嵌入数据包规则在连续9个矢量图形数据包中修改属性,使连续两个矢量图形数据包的特定属性(圆的颜色的红色分量)之间的变化值符合最终码流(c1,c2,c3,c4,c5,c6,c7,c8)=(-1,1,-2,4,1,1,-1,1)的变化序列。最终经过修改的特定属性(圆的颜色的红色分量)取值变化序列为:(v1′,v2′,v3′,v4′,v5′,v6′,v7′,v8′,v9′);圆1.颜色.红色=(182,181,182,180,184,186,186,185,186),后一取值对比前一取值的变化值为(0,-1,1,-2,4,1,1,-1,1)。
[0116] 在嵌入水印的实现中,可以在嵌入位置、嵌入内容上加入时间信息、校验信息,从而提高数字水印的安全性、可靠性。
[0117] 这里,在连续矢量图形数据包序列中嵌入数字水印码流的方式有两种:
[0118] (1)、等全部数据包嵌入后水印码流后,成队依次发送:可将矢量图形数据包序列中的所有单个矢量图形数据包中均加入数字水印码流数据后,再依次一个个发送矢量图形数据包(或将所有数据包放入一个文件)。
[0119] (2)、一个数据包嵌入后水印码流后,立刻单个发送:可在一个矢量图形数据包中嵌入数字水印码流数据后发送,随后再进行后续一个矢量图形数据包的数字水印嵌入。
[0120] S5、在数字水印生成端,发送带有数字水印的矢量图形数据包:在数字水印的生成端,在时刻vq′.tq发送vq′到数字水印的验证端。则(v1′,v2′,v3′,v4′,v5′,v6′,v7′,v8′,v9′,…,v200′)依次在起始时间后的25,50,...,5000毫秒时刻被发送出去。发送矢量图形数据包时按顺序和发送时间发送。
[0121] S6、如图4所示,在数字水印验证端,接收带有数字水印的矢量图形数据包:在数字水印的验证端,收到P′={v1′,v2′,v3′,v4′,v5′,v6′,v7′,v8′,v9′,…,v200′}。
[0122] S7、在数字水印验证端,提取连续矢量图形数据包中属性上的变化值,计算嵌入的码流数据。
[0123] 在本实施例中,根据嵌入范围与嵌入规则“所有矢量图形数据包中所有矢量图形元素的颜色属性中的红色分量”,并根据对比矢量图形数据包选择或生成方式为“每个矢量图形数据包与之前一个矢量图形数据包进行对比(即计算vq′与vq-1′在嵌入范围与嵌入规则属性上的差异)”,从连续的vq+1′-vq′=Δvq′算出Δvq′及圆1颜色属性的变化值Δvq′.eq1.颜色的变化值依次为(0,-1,1,-2,4,1,1,-1,1)。因此嵌入的水印码流为(-1,1,-2,4,1,1,-1,1)。
[0124] 这里,变化值的提取,可以在当前收到的矢量图形数据包与它之前紧邻的(即vq和vq-1之间)进行对比来提取,也可以在当前收到的矢量图形数据包与之前收到的某个矢量图形数据包或多个矢量图形数据包的统计值进行对比来提取。
[0125] 矢量图形属性的变化值在数字水印数据嵌入与验证中的核心作用,体现了:本发明是根据每个矢量图形数据包上的属性值与之前的矢量图形数据包上参数的变化值来嵌入数字水印数据。这是本发明的核心特征。
[0126] S8、在数字水印验证端,通过汇总收到的数字水印嵌入码流,提取水印数据。
[0127] 在本实施例中,根据从水印码流计算水印数据的算法”通过获得的(c1,c2,c3,c4,c5,c6,c7,c8)=(-1,1,-2,4,1,1,-1,1),算出有意义的水印码流为c=(-1,-2,1,-1)。再根据从水印码流计算水印数据的算法,并根据临时参数值为2,提取出原水印数据为m=(3,4,1,3)。
[0128] S9、在数字水印验证端,进行数字水印验证:在实施例中,从接收的连续矢量图形数据包中计算出来的m=(3,4,1,3),根据发送端和验证端之间约定的“嵌入并验证的水印数据”m=(3,4,1,3),可以确认在连续矢量图形中传输过来的数据m(以及所有矢量图形)是来自数字水印的生成端(进行数据来源和通信对象的鉴别和认证)。
[0129] 说明:这里,m=(3,4,1,3)可以替换成公司的名称、商标注册号等证明信息,从而实施数字水印和数字版权保护;由于临时参数是保密的,攻击者即使知道水印嵌入算法,也无法篡改上述矢量图形内容中的水印嵌入属性(一旦篡改上述矢量图形的颜色并影响了水印,则篡改就会被发觉);本实施例实现的是脆弱性水印,并且没有加入时序数据(所以本实施例无法防止重放攻击);在单独一个图形元素上进行数字水印嵌入和验证,是现有方法无法完成的功能。
[0130] 步骤S3、S4中,在嵌入码流的生成中、在将水印码流嵌入连续矢量图形数据包的属性中,将时间信息、校验信息加入码流生成算法中、嵌入位置确定中和嵌入内容中,从而提高数字水印的安全性、可靠性。
[0131] 在本实施例中,需要数字水印生成端与数字水印验证端双方共享的信息包括:
[0132] 1、要嵌入并验证的水印数据m=(3,4,1,3);
[0133] 2、在S3中,从水印数据生成水印码流的算法和从水印码流计算水印数据的算法;
[0134] 3、在S4中使用的码流嵌入数据包规则、嵌入范围与嵌入规则;
[0135] 4、嵌入算法为对相应的属性做加法;
[0136] 5、对比矢量图形数据包选择或生成方式。
[0137] 上述通信双方共享的信息中,第1、2项要嵌入并验证的水印数据、从水印数据生成水印码流的算法和从水印码流计算水印数据的算法水印数据)这些数据需严格保密,不应泄露给第三方;第3、4、5项必要时可公开(当然为了保密和安全,不公开更好)。
[0138] 本实施例中,每收到连续9个矢量图形数据包,就可以完成一轮数字水印的验证。
[0139] 实施例2
[0140] 本实施例描述以时间间隔作为嵌入水印数据的方式,且相关的处理功能用固件芯片形式实现。固件芯片EPROM采用INTEL 82802AA芯片;相关的指令执行机构为DSP芯片(采用得州仪器(TI)公司的C5402 DSP芯片)。
[0141] S1、数字水印生成端与数字水印验证端知识交换;
[0142] S2、在数字水印生成端,准备连续矢量图形集数据序列(即未加水印的序列):
[0143] 在本实施例中,从数字水印的生成端要传输的、原始的连续矢量图数据包序列为V={v1,v2,...,vi}(i∈N,N为自然数集合)。
[0144] 本实施例中,对所有
[0145]
[0146]
[0147] 从上述内容可知,连续矢量图形数据包序列的播放内容是一个不断扩大的环形和一个不动的矩形。
[0148] S3、在数字水印生成端,确定传输的水印数据,并根据它来编制成水印码流:
[0149] 本实施例中,在数字水印生成端要嵌入连续矢量图形中传输的数据为(90,72,79,78,71,71,85,79),所使用的、计算水印码流的临时参数值为66,按生成码流算法,所获得的最终码流为(c1,c2,c3,c4,c5,c6,c7,c8)=(24,6,13,12,5,5,19,13)。
[0150] S4、在数字水印生成端,在矢量图形数据包中按规则嵌入数字水印码流数据:
[0151] 对本实施例中的矢量图形数据包,按照码流嵌入数据包规则在分别相隔(24,6,13,12,5,5,19,13)的矢量图形数据包(即在第25、31、44、56、61、66、85、98个矢量图形数据包上修改属性),并按嵌入范围和嵌入规则修改属性值。最终经过修改的特定属性取值变化序列为:
[0152] (v25′,v31′,v44′,v56′,v61′,v66′,v85′,v98′).ti.=(2012-12-12 19:21:54000+25*i+25*cn),与其它的矢量图形数据包不同。
[0153] 且(v25′,v31′,v44′,v56′,v61′,v66′,v85′,v98′).ei-j.颜色.红色=原红色分量±1。
[0154] 对其它i不属于25、31、44、56、61、66、85、98的取值,则vq′=vq(即不做修改)。
[0155] S5、在数字水印生成端,发送带有数字水印的矢量图形数据包:在数字水印生成端,在时刻vq′.tq发送vq′到数字水印验证端,则(v1′,v2′,v3′,v4′,v5′,v6′,v7′,v8′,v9′,…,v200′)依次在设定的时刻被发送出去。
[0156] S6、在数字水印验证端,接收带有数字水印的矢量图形数据包:在数字水印验证端,收到V′={v1′,v2′,v3′,v4′,v5′,v6′,v7′,v8′,v9′,…,v200′}。
[0157] S7、在数字水印验证端,提取连续矢量图形数据包中属性上的变化值,计算嵌入的码流数据:
[0158] 在本实施例中,对比矢量图形数据包选择或生成方式为“每个矢量图形数据包与之前一个矢量图形数据包进行对比”,根据嵌入范围与嵌入规则“所选定的矢量图形数据包中所有矢量图形元素的颜色属性中的红色分量发生修改”和“发送时间与预期时间有差距”,从连续的vq+1′-vq′=Δvq′判断颜色属性的变化值,检索出第25、31、44、56、61、66、85、98个矢量图形数据包应被嵌入数字水印,并根据码流嵌入数据包规则为“每相隔{c1,c2,...,cn}的数据包中,修改矢量图中所有图形元素指定属性的属性值”,计算出原来的码流为(24,6,13,12,5,5,19,13)。
[0159] S8、在数字水印验证端,通过汇总收到的数字水印嵌入码流,提取水印数据:
[0160] 在本实施例中,根据从水印数据生成水印码流的算法,通过获得的(c1,c2,c3,c4,c5,c6,c7,c8)=(24,6,13,12,5,5,19,13),。再根据从水印码流计算水印数据的算法”,并根据临时参数值为66,算出原水印数据为m=(90,72,79,78,71,71,85,79)。
[0161] S9、在数字水印验证端,进行数字水印验证:在实施例中,从接收的连续矢量图形数据包中计算出来的(90,72,79,78,71,71,85,79),根据数字水印发送端和数字水印验证端之间约定的嵌入并验证的水印数据m=(90,72,79,78,71,71,85,79),可以确认在连续矢量图形中传输过来的水印数据m(以及所有矢量图形)是来自数字水印生成端(进行数据来源和通信对象的鉴别和认证)。
[0162] 补充说明:本实施例中传输的“ZHONGGUO”字符串,完全可以代之以任何一个公司的名称,从而在矢量播放内容中嵌入原始来源信息,从而实现数字版权保护。
[0163] 在本实施例中,需要数字水印生成端和数字水印验证端双方共享的信息包括:
[0164] 1、要嵌入并验证的水印数据:本实施例中为(90,72,79,78,71,71,85,79),转换成ASCII码为“ZHONGGUO”。
[0165] 2、在S3中,从水印数据生成水印码流的算法为:按“水印数据各分量值-临时参数值=水印码流分量”;相应的,从水印码流计算水印数据的算法为:按“水印码流分量+临时参数值=原水印数据分量”。本实施例中,计算水印码流的过程中有使用临时参数,临时参数值为66。
[0166] 3、在S4使用的码流嵌入数据包规则:设水印码流结果为{c1,c2,...,cn},则在每相隔{c1,c2,...,cn}的数据包中,修改矢量图中所有图形元素指定属性的属性值(只要出现修改即可)。
[0167] 4、在S4要使用的嵌入范围与嵌入规则:嵌入所选定的矢量图形数据包中所有矢量图形元素的颜色属性中的红色分量,该数据包的该红色分量发生修改;同时,修改该矢量图形数据包的发送时间数据。
[0168] 5、嵌入算法为:对颜色,对相应的颜色分量做加法或减法;对发送时间,相应的矢量图形数据包的“发送时序数据”增加cn*25毫秒(即控制出现相应的延迟),这里cn为码流分量。
[0169] 6、对比矢量图形数据包选择或生成方式为:每个矢量图形数据包与之前一个矢量图形数据包进行对比(即计算vq′与vq-1′在嵌入范围与嵌入规则属性上的差异)。
[0170] 本实施例中,要收集到第98个矢量图形数据包后,才能完成数字水印的验证。
[0171] 实施例3
[0172] 本实施例中,在连续两个矢量图形数据包之间实现数字水印嵌入。由于本发明所提出的数字水印嵌入方法是要基于矢量图形数据包之间属性上的修改和比较来实现,因此,两个矢量图形数据包是本发明实现数字水印的最低数量要求。
[0173] S1、数字水印生成端与数字水印验证端知识交换;
[0174] S2、在数字水印生成端,准备连续矢量图形集数据序列(即未加水印的序列):
[0175] 在本实施例中,从数字水印生成端要传输的、原始的连续矢量图数据包序列为V={v1,v2,...,vi},i∈N,N为自然数集合。
[0176] 本实施例中,仅对第1、第2个矢量图形数据包进行水印嵌入和验证演示。
[0177]
[0178] 从上述内容可知,本实施例中连续矢量图形数据包序列的播放内容是一系列移动的、不同大小的圆形(但其颜色值一样)。
[0179] S3、在数字水印生成端,确定传输的水印数据,并根据它来生成水印码流:
[0180] 本实施例中,按水印数据生成水印码流的算法,在数字水印生成端要嵌入的水印数据及最终码流均为(3,9,2,1,5)。
[0181] S4、在数字水印生成端,在矢量图形数据包中按规则嵌入数字水印码流数据:
[0182] 对本实施例中的矢量图形数据包,按照码流嵌入数据包规则在第2个矢量图形数据包嵌入水印(一次性将码流各分量全部嵌入一个矢量图形数据包中),并按嵌入范围和嵌入算法修改属性值。最终经过修改的v2数据包为:
[0183]
[0184]
[0185] 而其它的vq′=vq(即不做改变)
[0186] S5、在数字水印生成端,发送带有数字水印的矢量图形数据包:在数字水印生成端,在时刻vq′.tq发送vq′到数字水印验证端。则(v1′,v2′,v3′,v4′,v5′,v6′,v7′,v8′,v9′,…,v200′)依次在设定的时刻被发送出去。
[0187] S6、在数字水印验证端,接收带有数字水印的矢量图形数据包:在数字水印验证端,收到V′={v1′,v2′,v3′,v4′,v5′,v6′,v7′,v8′,v9′,…,v200′}。
[0188] S7、在数字水印验证端,提取连续矢量图形数据包中属性上的变化值,计算嵌入的码流数据:在本实施例中,对比矢量图形数据包选择或生成方式为“每个矢量图形数据包与之前一个矢量图形数据包进行对比”,根据嵌入范围与嵌入规则“所选定的矢量图形数据包中所有矢量图形元素的颜色属性中的红色分量发生修改”和“发送时间与预期时间有差距”,从连续的v2′-v1′=Δv2′判断颜色属性的变化值,检索出:
[0189]
[0190] 并根据嵌入范围、嵌入规则和嵌入算法,可计算、提取出原来的码流为m=(3,9,2,1,5)。
[0191] S8、在数字水印验证端,通过汇总收到的数字水印嵌入码流,提取水印数据:在本实施例中,根据从水印码流计算水印数据的算法,可知原水印数据为m=(3,9,2,1,5)。
[0192] S9、在数字水印验证端,进行数字水印验证:在实施例中,从接收的连续矢量图形数据包中计算出来的m=(3,9,2,1,5),根据数字水印发送端和数字水印验证端之间约定的嵌入并验证的水印数据m=(3,9,2,1,5),可以确认在连续矢量图形中传输过来的水印数据m(以及所有矢量图形)是来自数字水印生成端(进行数据来源和通信对象的鉴别和认证)。
[0193] 这里,通过在数字水印中添加冗余数据、时序数据,可以判断接收到的矢量图形包有无被篡改、重复发送。
[0194] 在本实施例中,需要双方共享的信息包括:
[0195] 1、要嵌入并验证的水印数据m=(3,9,2,1,5)。
[0196] 2、在S3中,从水印数据生成水印码流的算法为:按“水印数据各分量值=水印码流分量”;相应的,从水印码流计算水印数据的算法为:按“水印码流分量原水印数据分量”。也即,水印码流即原水印数据,不做任何转换和处理。
[0197] 3、在S4使用的码流嵌入数据包规则:按嵌入的水印码流各分量值,对第二个矢量图形数据包,依次修改按顺序排列的各图形元素指定属性的属性值。
[0198] 4、在S4要使用的嵌入范围与嵌入规则:修改指定数据包中指定矢量图形元素的颜色值的分量,在第i个图形元素上,修改第(i mod 3)+1个颜色分量(红绿蓝分别第1、2、3个分量)。
[0199] 5、嵌入算法为:对相应的属性做加法。
[0200] 6、对比矢量图形数据包选择或生成方式为:每个矢量图形数据包与之前一个矢量图形数据包进行对比(即计算vq′与vq-1′在嵌入范围属性上的差异)。
[0201] 实施例4
[0202] 本实施例中,实现脆弱性水印:所有序列中某些图形的某些属性变化值/变化次数的总和是一定值,而这个值就是要传的水印数据。
[0203] S1、数字水印生成端与数字水印验证端知识交换;
[0204] S2、在数字水印生成端,准备连续矢量图形集数据序列(即未加水印的序列):
[0205] 在本实施例中,从数字水印生成端要传输的、原始的连续矢量图数据包序列为V={v1,v2,...,vi},i∈N,N为自然数集合。
[0206] 本实施例中,对所有
[0207]
[0208] 从上述内容可知,连续矢量图形数据包序列的播放内容是一个不断扩大的环形。要注意的是,每一帧中,原来就要求的属性改变有2次。
[0209] S3、在数字水印生成端,确定传输的水印数据,并根据它来生成水印码流:
[0210] 本实施例中,在数字水印生成端要嵌入连续矢量图形中传输的数据为6,所使用的、计算水印码流的临时参数值为3,且按生成码流算法,统计在第1到第3个矢量图形数据包中原来就应发生属性改变为9。最终生成的码流(即0\1串)中,出现1的次数应为3+4=7,设随意生成的码流为(0,3,4)。
[0211] S4、在数字水印生成端,在矢量图形数据包中按规则嵌入数字水印码流数据:
[0212] 对本实施例中的矢量图形数据包,按照码流嵌入数据包规则、嵌入范围和嵌入算法修改属性值,在v2、v3中按(3,4)的数量来修改属性(包括原来就要变化的属性)(这里修改颜色值):
[0213]
[0214] 添加的属性变化值,在上面用下划线标示。
[0215] 对第3个矢量图形数据包之后的,也可以按固定长度或不固定长度来设计属性值,使之满足属性变化数量的条件。
[0216] S5、在数字水印生成端,发送带有数字水印的矢量图形数据包:在数字水印生成端,在时刻vq′.tq发送vq′到数字水印验证端。则(v1′,v2′,v3′,v4′,v5′,v6′,v7′,v8′,v9′,…,v200′)依次在设定的时刻被发送出去。
[0217] S6、在数字水印验证端,接收带有数字水印的矢量图形数据包:在数字水印验证端,收到V′={v1′,v2′,v3′,v4′,v5′,v6′,v7′,v8′,v9′,…,v200′}。
[0218] S7、在数字水印验证端,提取连续矢量图形数据包中属性上的变化值,计算嵌入的码流数据:在本实施例中,对比矢量图形数据包选择或生成方式为“每个矢量图形数据包与之前一个矢量图形数据包进行对比”,根据嵌入范围与嵌入规则、根据共享的临时参数值=3,从收到的v1′,v2′,v3′中统计属性变化值为(0,3,4),共检测出7次属性变化。
[0219] S8、在数字水印验证端,通过汇总收到的数字水印嵌入码流,提取水印数据:在本实施例中,根据从水印码流计算水印数据的算法,码流中数字总和为7,而临时参数值为3,因此要传输的水印数据为7-3=4。
[0220] S9、在数字水印验证端,进行数字水印验证:在实施例中,从接收的连续矢量图形数据包中计算出来的4,与根据数字水印发送端和数字水印验证端之间约定的嵌入并验证的水印数据m=4一致,可以确认在连续矢量图形中传输过来的水印数据m(以及所有矢量图形)是来自数字水印生成端(进行数据来源和通信对象的鉴别和认证)。
[0221] 补充说明:
[0222] (1)无论原连续矢量图形数据包序列中原图形属性有没有变化,都不影响本实施例中水印添加算法的实现。
[0223] (2)添加了这种水印的连续矢量图形数据包序列不能被篡改(无论是帧还是属性值),一旦丢帧或被修改任何属性,算出的水印数据就无法对上。
[0224] 在本实施例中,需要双方共享的信息包括:
[0225] 1、要嵌入并验证的水印数据:本实施例中为4。
[0226] 2、在S3中,从水印数据生成水印码流的算法为:先统计连续第1到n个(本实施例中n取临时参数值,但也可以另行设定)矢量图形数据包中矢量图形的属性变化次数总和(设为C),生成一任意数字串(数字串长度为n-1)且数字串中数字总和=水印数据值+临时参数值,则水印码流分量=此任意数字串;相应的,从水印码流计算水印数据的算法为:码流=原水印数据+临时参数值”。本实施例中,计算水印码流的过程中有使用临时参数,临时参数值为3。
[0227] 3、在S4使用的码流嵌入数据包规则:第1-N中任意矢量图形数据包中,如果生成的数字串为(c1,c2,...,cn),则每个cn表示这个矢量图形数据包相比起前一矢量图形数据包在属性上要出现的变化次数(包括原来就要出现的属性修改)。
[0228] 4、在S4要使用的嵌入范围与嵌入规则:任意矢量图形数据包中任意图形元素的任意矢量图形属性(除了发送时间数据、原来也要发生变化的属性)。
[0229] 5、嵌入算法为:对相应的属性作任意修改,修改次数即为该矢量图形数据包上的码流值。
[0230] 6、对比矢量图形数据包选择或生成方式为:每个矢量图形数据包与之前一个矢量图形数据包进行对比(即计算vq′与vq-1′在嵌入属性上的差异)。
[0231] 上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。