数字水印技术中基于SVG标签特性的哈希归类算法设计

作者:李静 刊名:软件工程师 上传者:温顺华

【摘要】本文在分析了SVG特性的基础上,从SVG是XML的一种扩展的角度出发,利用这个特性将标签或属性值通过哈希函数散列到不同的值中,然后将散列值对应位的水印信息嵌入的SVG文档中,提出了一种新的基于标签归类的SVG数字水印算法。

全文阅读

1引言(Introduction)SVG是一种基于文本的矢量图形格式文件,由于它不但具备了矢量图形的各个优点,而且是XML的一种扩展,非常适合现代人们对于网络、移动设备等提出的更高的要求[1]。因此近年来SVG的应用领域十分的广泛。作为网络化图形格式的主干力量外,SVG更是在WebGIS中发挥了巨大的潜力,为WebGIS的发展带来了新的篇章。那么随着这种格式文件的广泛应用,SVG的版权问题需要得到人们足够的重视,才能使SVG健康有序的发展下去。数字水印作为信息隐藏技术研究领域的重要分支,是实现版权保护的有效办法[2],如今已成为多媒体信息安全研究领域的一个热点。目前基于图像图形等载体的数字水印技术的研究是比较成熟的。现有的数字水印算法大都单纯的针对SVG是矢量图的特点,以SVG为载体进行水印的嵌入,并没有很好的针对SVG本身的特性进行水印的嵌入,可以看出目前针对SVG这种特有的矢量图形的格式的水印技术的研究还处于初级阶段。2算法的基本思想(Basicideaofalgorithm)从SVG的本身特性出发。首先,SVG是明文文本,它是XML的一个扩展。基于这个特性可以看出,SVG有自己固定的用来描述图形的标签和属性等。可以利用这个特性将标签或属性值通过哈希函数散列到不同的值中,然后将散列值对应位的水印信息嵌入的SVG文档中。其次,SVG是矢量图形,那么颜色是图形的一个重要的特征,而且人眼的视觉系统使得颜色信息包含了一些冗余,方便了水印的嵌入。将水印嵌入到ID属性中具有很强的透明性。ID属性是用来唯一标识标签身份的指数,在SVG文档中大多数标签都含有ID属性,并且ID名称的改变完全不会影响整个文档的外观表现。因此从SVG是XML的一种扩展的角度出发,可采用一种新的基于标签归类的SVG数字水印算法。在以图像为载体的数字水印算法中,可以将图像分块或者根据图像中的一些特征(如纹理等)将像素点进行分类,然后在每一块或者每一个类别中嵌入相应的水印信息。这样做保证了水印算法很好的鲁棒性。同样可以将此思想应用到SVG水印算法当中来。SVG文档中包含了大量用于描述显示图形的标签。那么可以将这些标签按照一定的规则进行分类,再将该类别所对应的水印信息嵌入到SVG文档中。哈希函数可以达到将标签分类的目的,并且保证水印信息较为均匀而又无规律地分布在文档的各处。3标签的哈希归类(Hashclassificationoftags)在线性表和树中,记录的关键字和存储的位置是没有确定性的关系的。因此,在结构中要查找一个记录必须要进行一系列关键字的比较。如果先在记录存储位置和关键字之间建立并确定一个对应的关系f,使得每个关键字与结构中唯一的储位置相对应。就不需要在查找的过程中进行任何的比较,一次性存取就可以得到所有记录[3]。因而在查找时,只要根据这个对应关系f就可以找到给定值k的像f(k)。若在结构中存在关键字和k相等的记录,则必定在f(k)的存储位置上,由此,不需要进行比较便可以直接取得所查的记录。在此,我们称这个对应关系f为哈希函数。通过设定的哈希函数将一组关键字映像到一个有限的连续的地址集(区间)的过程称为哈希散列。当不同的关键字得到相同的哈希地址时,即key1!=key2,而f(key1)=f(key2),这种现象称为哈希冲突[4]。根据哈希的相关知识的了解,我们可以利用哈希的一些特性,来进行SVG文档水印算法的设计。在哈希算法中,只要关键字和哈希函数确定后,那么经过散列后的哈希地址就是唯一的。因此可以利用哈希算法的这一特性将SVG的标签名称按照特定的哈希函数进行散列。经过

参考文献

引证文献

问答

我要提问