一种基于Opentype矢量轮廓字体的文档水印版权信息保护装置
技术领域
本发明涉及一种文档水印版权信息保护装置,属于信息安全中的数字水印技术和文档信息保护领域。
背景技术
文档水印作为数字水印技术的一个方面,自1995年以来受到人们的关注,并且成为水印技术的一个热点。根据嵌入原理和不同的载体形式,目前的文档水印算法有基于字移、行移的水印算法,字符特征水印算法等几类。基于字移、行移的水印算法就是通过轻微的改变文档中字与字、行与行之间的距离来嵌入水印,此类算法适用于PostScript描述的电子文档如PDF、PS文件等。此类算法可以抵抗二值化攻击,一定程度上抵抗打印、扫描的攻击。但是通过剪切文档的部分幅面,或者在文档上划线、涂改等方式很容易破坏水印信息。
字符特征水印算法的特点是通过修改文档中某些字符的字符特征来实现水印嵌入。这类方法可以适应中文这样的方块字,通过适当选择嵌入笔划和所修改的字符特征,提高水印算法的容量。但是如何保证特征修改的强度和修改的方式在不影响读者的观感的同时使水印能够抵抗打印、扫描的攻击,并能够在扫描之后监测出图像的改动以及如何被改动,这是一个关键难题。
由此看出现在的各种主流的文档水印算法的思想都还只是传统图像水印算法的延续,都需要在嵌入水印之前将文档转化为图像来处理。这样的处理方式没有考虑到文档作为水印载体的特殊性,不符合现有的文档操作习惯,所以导致现有文档水印算法具有鲁棒性不高、操作复杂的缺点。虽然也有像PDF文档水印算法等少数算法利用了文档的格式特征,但这些算法只能应用于电子文档,而且对格式调整攻击十分脆弱。
发明内容
本发明的目的是针对在嵌入水印之前需将文档先转化为图像来处理,导致现有文档水印算法具有鲁棒性不高、操作复杂的缺点的问题,提出一种基于Opentype矢量轮廓字体的文档水印版权信息保护装置。
一种基于Opentype矢量轮廓字体的文档水印版权信息保护装置,它包括如下模块:字库管理中心模块、文档水印版权信息嵌入模块、文档水印版权信息提取模块、打印文档预处理模块、文档水印版权信息抗扫描打印检测模块和标准Opentype字体库模块;
所述的字库管理中心模块,是管理未嵌入任何水印信息的原始标准字体库信息,为文档水印版权信息提取模块和文档水印版权信息抗扫描打印检测模块提供需要的比对信息;
所述的文档水印版权信息嵌入模块,是通过选择的Opentype字体和要嵌入的版权信息按照一定算法生成具体的水印文字;
所述的文档水印版权信息提取模块,是通过待提取文档中的水印文字进行参数抽取,并通过相应的算法依据字库管理中心模块中的比对参数来提取版权信息;
所述的打印文档预处理模块,是对打印文档进行扫描、图像二值化、去除噪声、定位、细化,最终形成打印文档的文字用连续单像素曲线表示,并将结果交由文档水印版权信息抗扫描打印检测模块进行信息提取;
所述的文档水印版权信息抗扫描打印检测模块,是通过对打印文档预处理模块中的处理结果提取笔画参数,依据字库管理中心模块中的比对参数来提取版权信息。
所述的文档水印版权信息嵌入模块实现水印版权信息嵌入的步骤为:
步骤一:用户设定生成条件,选择Opentype字体类型、文档中具体的文字、嵌入的版权信息和字体修改尺度;
步骤二:根据用户选择的文字类型与文档中具体的文字,解析字体文件并提取文字的矢量轮廓,生成描叙该文字的N条二次Bezier曲线,其中N为正整数,当嵌入的版权信息字符数量大于N时,提示用户跳到步骤一缩减版权信息或者重新选择文字,当嵌入的版权信息字符数量不大于N时,执行步骤三;
步骤三:将确定的版权信息中的所有字符映射成一组唯一的二进制数,按设定的字体修改尺度进行压缩,从确定的文字中提取出N条二次Bezier曲线按从左到右、从上到下的顺序存放起来,用生成的二进制数按顺序依次对各条二次Bezier曲线的参数进行修改,将字体修改尺度存入到文字二进制格式中的固定位置;
步骤四:用户预览生成的嵌入了版权信息的水印文字,不满意生成的水印文字,跳到步骤一通过调整字体修改尺度、缩减版权信息、重新选择文字的方法重复进行如上步骤,满意则执行步骤五;
步骤五:生成嵌入合理版权信息水印文字。
所述文档水印版权信息提取模块的实现水印版权信息提取方法的步骤为:
步骤A:用户提取带有版权信息的水印字体,如果无法确定,对待提取的水印文字进行格式解析,提取字体修改尺度;
步骤B:对待提取水印文字进行格式解析,提取出N条二次Bezier曲线按从左到右、从上到下的顺序存放起来,其中N为正整数;
步骤C:通过用户设定的字体类型从字库管理中心模块中提取对应原始文字的矢量轮廓,提取出N条二次Bezier曲线按从左到右、从上到下的顺序存放起来;
步骤D:比对水印文字与原始文字的N条二次Bezier曲线,依次从中提取出一组二进制数组;
步骤E:通过提取的字体修改尺度对提取的二进制数组进行解压缩,并将解压缩的二进制数组通过嵌入时候的映射规则还原成字符,提取了嵌入到该文字的版权信息。
所述的文档水印版权信息抗扫描打印检测模块的实现版权信息抗扫描打印检测的步骤为:
步骤a:经过打印、复印、扫描后得到的文档图像,进行图像预处理,处理过程如下:
一、图像二值化:将得到的灰度图的文档图像进行3×3的中值滤波来消除噪声,画出灰度直方图,以概率最低点为阈值把得到的灰度图的文档图像变为只有0、1灰度值的二值图像;
二、去除噪声:这一步中要去除二值化后图像中的椒盐噪声,采用3×3中值滤波或膨胀与腐蚀的处理的方法来消除;
三、定位:处理后的图像需要旋转定位;使用投影定位法,将一行汉字向纵轴投影,当投影区域最小时,为最后的旋转位置;
四、细化:在经过处理后的文档图像上,把不同的线宽调整为1象素宽,使用Hilditch算法,从粗边缘线的外侧开始逐层地削去各个象素,直到成为连续单象素曲线为止;
步骤b:笔画提取阶段:采用长度比率的方法,即曲线两端点间直线距离和曲线长度之比,并采用线性最小二乘法逼近曲线,得到曲线的直线拟合方程;
步骤c:经过以上的处理,得到曲线拟合方程;依据所述的字库管理中心模块中的对应原始的矢量轮廓,通过检测曲线夹角变化来判断所嵌入的水印信息。
本发明的优点:
本发明通过对系统Opentype字体文件的管理和操作将水印嵌入和验证工具进行了集成,使之不必将文档转化为图像就能够嵌入水印。而且因为通过改变字符的字形来嵌入水印,能够使保证版权信息在电子文档或打印的文档中都存在,能够同时有效的抵抗格式调整攻击与打印扫描攻击,具有鲁棒性高、操作简单的优点。
附图说明
图1是本发明的结构示意图;
图2是本发明的文档水印版权信息嵌入的流程图;
图3是本发明的文档水印版权信息提取的流程图;
图4是本发明的文档水印版权信息抵抗打印扫描攻击的流程图。
具体实施方式
具体实施方式一:下面结合图1-4说明本实施方式。
一种基于Opentype矢量轮廓字体的文档水印版权信息保护装置包括如下模块:字库管理中心模块1、文档水印版权信息嵌入模块2、文档水印版权信息提取模块3、打印文档预处理模块4、文档水印版权信息抗扫描打印检测模块5、标准Opentype字体库模块6和含版权信息的打印文档模块7;
所述的字库管理中心模块1,是管理未嵌入任何水印信息的原始标准字体库信息,为文档水印版权信息提取模块3和文档水印版权信息抗扫描打印检测模块5提供需要的比对信息;
所述的文档水印版权信息嵌入模块2,是通过选择的Opentype字体和要嵌入的版权信息按照一定算法生成具体的水印文字;
所述的文档水印版权信息提取模块3,是通过待提取文档中的水印文字进行参数抽取,并通过相应的算法依据字库管理中心模块1中的比对参数来提取版权信息;
所述的打印文档预处理模块4,是对打印文档进行扫描、图像二值化、去除噪声、定位、细化,最终形成打印文档的文字用连续单像素曲线表示,并将结果交由文档水印版权信息抗扫描打印检测模块5进行信息提取;
所述的文档水印版权信息抗扫描打印检测模块5,是通过对打印文档预处理模块4中的处理结果提取笔画参数,依据字库管理中心模块1中的比对参数来提取版权信息。
具体实施方式二:下面结合图2说明本实施方式,本实施方式与实施方式一不同之处是:所述的文档水印版权信息嵌入模块2实现水印版权信息嵌入的步骤为:
步骤一:用户设定生成条件,选择Opentype字体类型、具体的文字、嵌入的版权信息、字体修改尺度;
步骤二:根据用户选择的文字类型与文档中具体的文字,解析字体文件并提取文字的矢量轮廓,生成描叙该文字的N条二次Bezier曲线,其中N为正整数,当嵌入的版权信息字符数量大于N时,提示用户跳到步骤一缩减版权信息或者重新选择文字,当嵌入的版权信息字符数量不大于N时,执行步骤三;
步骤三:将确定的版权信息中的所有字符映射成一组唯一的二进制数,按设定的字体修改尺度进行压缩,从确定的文字中提取出N条二次Bezier曲线按从左到右、从上到下的顺序存放起来,用生成的二进制数按顺序依次对各条二次Bezier曲线的参数进行修改,将字体修改尺度存入到文字二进制格式中的固定位置;
步骤四:用户预览生成的嵌入了版权信息的水印文字,不满意生成的水印文字,跳到步骤一通过调整字体修改尺度、缩减版权信息、重新选择文字的方法重复进行如上步骤,满意则执行步骤五;
步骤五:生成嵌入合理版权信息水印文字。
具体实施方式三:下面结合图3说明本实施方式,本实施方式与实施方式一不同之处是:所述文档水印版权信息提取模块3的实现水印版权信息提取方法的步骤为:
步骤A:用户提取带有版权信息的水印字体,如果无法确定,对待提取的水印文字进行格式解析,提取字体修改尺度;
步骤B:对待提取水印文字进行格式解析,提取出N条二次Bezier曲线按从左到右、从上到下的顺序存放起来,其中N为正整数;
步骤C:通过用户设定的字体类型从字库管理中心1中提取对应原始文字的矢量轮廓,提取出N条二次Bezier曲线按从左到右、从上到下的顺序存放起来;
步骤D:比对水印文字与原始文字的N条二次Bezier曲线,依次从中提取出一组二进制数组;
步骤E:通过提取的字体修改尺度对提取的二进制数组进行解压缩,并将解压缩的二进制数组通过嵌入时候的映射规则还原成字符,既提取了嵌入到该文字的版权信息。
具体实施方式四:下面结合图4说明本实施方式,本实施方式与实施方式一不同之处是:所述的文档水印版权信息抗扫描打印检测模块5的实现版权信息抗扫描打印检测的步骤为:
步骤a:经过打印、复印、扫描后得到的文档图像,需要进行图像预处理,处理过程如下:
一、图像二值化:将得到的灰度图的文档图像进行3×3的中值滤波来消除噪声,画出灰度直方图,以概率最低点为阈值把得到的灰度图的文档图像变为只有0、1灰度值的二值图像;
二、去除噪声:这一步中要去除二值化后图像中的椒盐噪声,采用3×3中值滤波或膨胀与腐蚀的处理的方法来消除;
三、定位:处理后的图像需要旋转定位;使用投影定位法,将一行汉字向纵轴投影,当投影区域最小时,为最后的旋转位置;
四、细化:在经过处理后的文档图像上,把不同的线宽调整为1象素宽,使用Hilditch算法,从粗边缘线的外侧开始逐层地削去各个象素,直到成为连续单象素曲线为止;
步骤b:笔画提取阶段:采用长度比率的方法,即曲线两端点间直线距离和曲线长度之比,并采用线性最小二乘法逼近曲线,得到曲线的直线拟合方程;
步骤c:经过以上的处理,得到曲线拟合方程,依据所述的字库管理中心1中的对应原始的矢量轮廓,通过检测曲线夹角变化来判断所嵌入的水印信息。
本发明不局限于上述实施方式,还可以是上述各实施方式中所述技术特征的合理组合。