基于水印的电子印章生成方法、装置、系统及存储介质与流程

文档序号:23470001发布日期:2020-12-29 13:11阅读:145来源:国知局
基于水印的电子印章生成方法、装置、系统及存储介质与流程

本发明涉及图像处理领域,尤其涉及基于水印的电子印章生成方法、装置、系统及存储介质。



背景技术:

计算机网络是信息传输与发布、提供应用和服务的主要媒体。随着计算机网络技术和多媒体信息处理技术的迅速发展,在给人们带来便利的同时也暴露出越来越严重的安全问题,对网络信息的保护,尤其是网络上日益增多的商业信息和政务信息进行保护己经引起了人们的高度重视。证件的伪造及篡改现在变得容易了,这是因为大部分的防伪印刷品没有相应的信息技术保护,致使其防伪技术不高,不法分子可以大量仿造假证进行违法活动。为了应对日益严峻的信息安全问题,近年来信息安全领域出现了一个新的研究方向:数字水印和信息隐藏,人们用这两项技术作为防止非法伪造、图像安全认证。

电子印章是用一种大家所熟悉的签名盖章方式来实现技术性很强的数字签名,传统电子印章采用最低有效位算法(leastsignificantbit,lsb)来进行电子印章的生成,该方法简单易行,但因为lsb算法使用了图像不重要的像素位,因此算法的鲁棒性差,水印信息很容易被各种信号处理操作,如锐化、滤波、几何变形等破坏。



技术实现要素:

本发明提供了基于水印的电子印章生成方法、装置、系统及存储介质,用于避免电子印章被破坏,提高了电子印章的安全性,增强了对数据的版权保护和完整性保护。

本发明实施例的第一方面提供一种基于水印的电子印章生成方法,包括:获取原始文件和密钥,所述原始文件为需要覆盖电子印章的文件,所述密钥用于对所述原始文件的所述电子印章进行加密;对所述原始文件进行md5计算,获得128位的十六进制的字符串;将所述128位的十六进制的字符串转换为128位的二进制字符串,将两段相同的二进制字符串进行拼接并转换成16×16的原始水印矩阵;对所述原始水印矩阵采用预置算法和预置的m序列进行置乱,得到置乱的水印矩阵;通过离散小波变换算法将原始电子印章图像的预置红色分量进行一级小波分解,生成四个子带,所述四个子带包括顺时针排序的第一子带、第二子带、第三子带和第四子带;对所述四个子带中位于左上角的所述第一子带进行奇异值分解,得到第一奇异矩阵s、第一正交矩阵u和第二正交矩阵v;基于预置公式将所述置乱的水印矩阵嵌入所述第一奇异矩阵s中,得到含水印的第二奇异矩阵s′;对所述第二奇异矩阵s′进行奇异值分解,得到第三奇异矩阵s″,并将所述第三奇异矩阵s″与所述第一正交矩阵u以及所述第二正交矩阵v结合,得到目标子带;将所述目标子带、所述第二子带、所述第三子带和所述第四子带进行离散小波逆变换,得到合成的红色分量,并将所述合成的红色分量与预置绿色分量、预置蓝色分量进行合并,生成含水印的电子印章图像。

可选的,在本发明实施例第一方面的第一种实现方式中,所述对原始水印矩阵采用预置算法和预置的m序列进行置乱,得到置乱的水印矩阵包括:获取所述原始水印矩阵w的大小为m×n,所述m、n为整数;确定所述预置的m序列的迭代次数m;按照标准的zigzag算法、所述预置的m序列和所述迭代次数m对所述原始水印矩阵w置乱m次,得到置乱的水印矩阵w′。

可选的,在本发明实施例第一方面的第二种实现方式中,所述按照标准的zigzag算法、所述预置的m序列和所述迭代次数m对所述原始水印矩阵w置乱m次,得到置乱的水印矩阵w′包括:按照zigzag的预置扫描顺序r扫描原始水印矩阵w,得到m×n长度的一维数组a;调用预置的m序列对所述一维数组a进行重新排序,得到新的一维数组a′;根据预置扫描顺序r将所述新的一维数组a′恢复成m×n的矩阵,得到大小为m×n的第一过渡矩阵,所述预置扫描顺序r与所述预置扫描顺序r的扫描顺序相反;按照所述预置扫描顺序r扫描所述第一过渡矩阵,得到m×n长度的一维数组a′;调用所述预置的m序列对所述一维数组a′进行重新排序,得到新的一维数组a″;根据所述预置扫描顺序r将所述新的一维数组a″恢复成m×n的矩阵,得到大小为m×n的第二过渡矩阵;基于所述预置扫描顺序r和所述预置扫描顺序r对所述第二过渡矩阵进行m-2次置乱,得到所述置乱的水印矩阵w′。

可选的,在本发明实施例第一方面的第三种实现方式中,所述基于预置公式将所述置乱的水印矩阵嵌入所述第一奇异矩阵s中,得到含水印的第二奇异矩阵s′包括:获取预置的水印嵌入强度参数调用预置公式将所述置乱的水印矩阵w′嵌入到所述第一奇异矩阵s中,得到含水印的第二奇异矩阵s′。

本发明实施例的第二方面提供了一种基于水印的电子印章生成装置,包括:获取单元,用于获取原始文件和密钥,所述原始文件为需要覆盖电子印章的文件,所述密钥用于对所述原始文件的所述电子印章进行加密;计算单元,用于对所述原始文件进行md5计算,获得128位的十六进制的字符串;转换单元,用于将所述128位的十六进制的字符串转换为128位的二进制字符串,将两段相同的二进制字符串进行拼接并转换成16×16的原始水印矩阵;置乱单元,用于对所述原始水印矩阵采用预置算法和预置的m序列进行置乱,得到置乱的水印矩阵;第一分解单元,用于通过离散小波变换算法将原始电子印章图像的预置红色分量进行一级小波分解,生成四个子带,所述四个子带包括顺时针排序的第一子带、第二子带、第三子带和第四子带;第二分解单元,用于对所述四个子带中位于左上角的所述第一子带进行奇异值分解,得到第一奇异矩阵s、第一正交矩阵u和第二正交矩阵v;嵌入单元,用于基于预置公式将所述置乱的水印矩阵嵌入所述第一奇异矩阵s中,得到含水印的第二奇异矩阵s′;分解合成单元,用于对所述第二奇异矩阵s′进行奇异值分解,得到第三奇异矩阵s″,并将所述第三奇异矩阵s″与所述第一正交矩阵u以及所述第二正交矩阵v结合,得到目标子带;合成单元,用于将所述目标子带、所述第二子带、所述第三子带和所述第四子带进行离散小波逆变换,得到合成的红色分量,并将所述合成的红色分量与预置绿色分量、预置蓝色分量进行合并,生成含水印的电子印章图像。

可选的,在本发明实施例第二方面的第一种实现方式中,所述置乱单元包括:获取模块,用于获取所述原始水印矩阵w的大小为m×n,所述m、n为整数;确定模块,用于确定所述预置的m序列的迭代次数m;置乱模块,用于按照标准的zigzag算法、所述预置的m序列和所述迭代次数m对所述原始水印矩阵w置乱m次,得到置乱的水印矩阵w′。

可选的,在本发明实施例第二方面的第二种实现方式中,所述置乱模块具体用于:按照zigzag的预置扫描顺序r扫描原始水印矩阵w,得到m×n长度的一维数组a;调用预置的m序列对所述一维数组a进行重新排序,得到新的一维数组a′;根据预置扫描顺序r将所述新的一维数组a′恢复成m×n的矩阵,得到大小为m×n的第一过渡矩阵,所述预置扫描顺序r与所述预置扫描顺序r的扫描顺序相反;按照所述预置扫描顺序r扫描所述第一过渡矩阵,得到m×n长度的一维数组a′;调用所述预置的m序列对所述一维数组a′进行重新排序,得到新的一维数组a″;根据所述预置扫描顺序r将所述新的一维数组a″恢复成m×n的矩阵,得到大小为m×n的第二过渡矩阵;基于所述预置扫描顺序r和所述预置扫描顺序r对所述第二过渡矩阵进行m-2次置乱,得到所述置乱的水印矩阵w′。

可选的,在本发明实施例第二方面的第三种实现方式中,所述嵌入单元具体用于:获取预置的水印嵌入强度参数调用预置公式将所述置乱的水印矩阵w′嵌入到所述第一奇异矩阵s中,得到含水印的第二奇异矩阵s′。

本发明实施例的第三方面提供了一种基于水印的电子印章生成系统,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一实施方式所述的基于水印的电子印章生成方法。

本发明实施例的第四方面提供了一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使得计算机执行上述任一实施方式所述的基于水印的电子印章生成方法的步骤。

本发明实施例提供的技术方案中,获取原始文件和密钥,所述原始文件为需要覆盖电子印章的文件,所述密钥用于对所述原始文件的所述电子印章进行加密;对所述原始文件进行md5计算,获得128位的十六进制的字符串;将所述128位的十六进制的字符串转换为128位的二进制字符串,将两段相同的二进制字符串进行拼接并转换成16×16的原始水印矩阵;对原始水印矩阵采用预置算法和预置的m序列进行置乱,得到置乱的水印矩阵;通过离散小波变换算法将原始电子印章图像的预置红色分量进行一级小波分解,生成四个子带,所述四个子带包括顺时针排序的第一子带、第二子带、第三子带和第四子带;对所述四个子带中位于左上角的所述第一子带进行奇异值分解,得到第一奇异矩阵s、第一正交矩阵u和第二正交矩阵v;基于预置公式将所述置乱的水印矩阵嵌入所述第一奇异矩阵s中,得到含水印的第二奇异矩阵s′;对所述第二奇异矩阵s′进行奇异值分解,得到第三奇异矩阵s″,并将所述第三奇异矩阵s″与所述第一正交矩阵u以及所述第二正交矩阵v结合,得到目标子带;将所述目标子带、所述第二子带、所述第三子带和所述第四子带进行离散小波逆变换,得到合成的红色分量,并将所述合成的红色分量与预置绿色分量、预置蓝色分量进行合并,生成含水印的电子印章图像。本发明实施例,避免了电子印章被破坏,提高了电子印章的安全性,增强了对数据的版权保护和完整性保护。

附图说明

图1为本发明实施例中基于水印的电子印章生成方法的一个实施例示意图;

图2为本发明实施例中基于水印的电子印章生成方法的另一个实施例示意图;

图3为本发明实施例中基于水印的电子印章生成装置的一个实施例示意图;

图4为本发明实施例中基于水印的电子印章生成装置的另一个实施例示意图;

图5为本发明实施例中基于水印的电子印章生成系统的一个实施例示意图。

具体实施方式

本发明提供了基于水印的电子印章生成方法、装置、系统及存储介质,用于避免电子印章被破坏,提高了电子印章的安全性,增强了对数据的版权保护和完整性保护。

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例进行描述。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

请参阅图1,本发明实施例提供的基于水印的电子印章生成方法的流程图,具体包括:

101、获取原始文件和密钥,原始文件为需要覆盖电子印章的文件,密钥用于对原始文件的电子印章进行加密。

服务器获取原始文件和密钥,该原始文件为需要覆盖电子印章的文件,该密钥用于对原始文件的电子印章进行加密。其中,电子印章是用一种常用的签名盖章方式的数字签名。通过密钥生成的电子印章信息,具有保密性高的优点,提高了信息的安全性。

需要说明的是,在获取原始文件和密钥之前,还需要进行身份验证,当身份验证通过后才可以获取原始文件和密钥。

可以理解的是,本发明的执行主体可以为基于水印的电子印章生成装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。

102、对原始文件进行md5计算,获得128位的十六进制的字符串。

服务器对原始文件进行md5计算,获得128位的十六进制的字符串。对于电子印章来说,由于要保证传文本的完整性,本实施例采用文本的md5值来作为水印信息。本实施例中md5算法原理是:对处理对象按字节长度512位分组(不足512,按首位填1,其余填0的方式补充完整),每一组又分为16个32位子组,经过一系列处理后输出由4个32位长度的结果,把输出的结果级联组成128位散列值。具体计算步骤如下:第一步:首先进行信息填充,使其字节长度对512求余的结果为448,即最后的长度为n×512+448,n为整数。因为md5的处理对象长度必须是512位的倍数,具体填充方法是:首位填1,其余填0。第二步:第一步处理后得到的信息字节长度为n×512+448,不是512的倍数,因此还要在信息后面附加一组代表填充前信息的64位二进制数。得到的信息长度就是512的倍数。第三步:初化寄存器a=0x01234567,b=0x89abcdef,c=0xfedbca98,d=0x76543210,再将初始化后寄存器内容分别存放在a,b,c,d四个变量中。如果信息有m组长度为512位的数据,则计算过程要循环m轮,每轮4次。在计算前,定义四种基本按位运算函数:

f(x,y,z)=(xandy)or(not(x)andz)

g(x,y,z)=(xandz)or(yandnot(z))

h(x,y,z)=xxoryxorz

i(x,y,z)=yxor(xornot(z))

其中“and”代表“与”,“or”代表“或”,“xor”代表“异或”,“not”代表“非”。接下来定义主循环中四轮变换函数:

f(a,b,c,d,mi,s,tj)表示a=b+((a+(f(b,c,d)+mi+tj))<<s)

g(a,b,c,d,mi,s,tj)表示a=b+((a+(g(b,c,d)+mi+tj))<<s)

h(a,b,c,d,mi,s,tj)表示a=b+((a+(h(b,c,d)+mi+tj))<<s)

i(a,b,c,d,mi,s,tj)表示a=b+((a+(i(b,c,d)+mi+tj))<<s)

因为每段512位长度的分组中还要分出16个32位长度的子组,因此用mi表示子组的组号,取值范围[0,15]。tj=int(232×abs(sin(j))),j取值范围[1,64],int表示取整,abs表示取绝对值,j用弧度数,<<s表示左移s位。第四步:每一组做一次循环,每次循环分别按四轮变换函数进行四轮操作,每轮操作算出该轮中a,b,c,d的值。第五步:等所有分组都进行了第四步操作后,按a、b、c、d从低位到高位级联得到128位的数字指纹。

103、将128位的十六进制的字符串转换为128位的二进制字符串,将两段相同的二进制字符串进行拼接并转换成16×16的原始水印矩阵。

服务器将128位的十六进制的字符串转换为128位的二进制字符串,将两段相同的二进制字符串进行拼接并转换成16×16的原始水印矩阵。

由于本实施例提出的生成方法是基于图片的,而现在的md5值是一段128位长度的十六进制字符串,因此有必要对md5值进行变换以适应算法的预置的水印置乱算法,即将128位md5二进制数扩充至256位,扩充方法是将两段一样的128位md5值拼接,然后变换成16×16的矩阵。

104、对原始水印矩阵采用预置算法和预置的m序列进行置乱,得到置乱的水印矩阵。

服务器对原始水印矩阵采用预置算法和预置的m序列进行置乱,得到置乱的水印矩阵。具体的,服务器获取原始水印矩阵w的大小为m×n,m、n为整数;服务器确定预置的m序列的迭代次数m;服务器按照标准的zigzag算法、预置的m序列和迭代次数m对原始水印矩阵w置乱m次,得到置乱的水印矩阵w′。

其中,服务器按照标准的zigzag算法、预置的m序列和迭代次数m对原始水印矩阵w置乱m次,得到置乱的水印矩阵w′包括:服务器按照zigzag的预置扫描顺序r扫描原始水印矩阵w,得到m×n长度的一维数组a;服务器调用预置的m序列对一维数组a进行重新排序,得到新的一维数组a′;服务器根据预置扫描顺序r将新的一维数组a′恢复成m×n的矩阵,得到大小为m×n的第一过渡矩阵,预置扫描顺序r与预置扫描顺序r的扫描顺序相反;服务器按照预置扫描顺序r扫描第一过渡矩阵,得到m×n长度的一维数组a′;服务器调用预置的m序列对一维数组a′进行重新排序,得到新的一维数组a″;服务器根据预置扫描顺序r将新的一维数组a″恢复成m×n的矩阵,得到大小为m×n的第二过渡矩阵;服务器基于预置扫描顺序r和预置扫描顺序r对第二过渡矩阵进行m-2次置乱,得到置乱的水印矩阵w′。

需要说明的是,m序列由线性反馈移位寄存器产生,该寄存器由“异”、“或”、“和”门组成,寄存器的多少决定了m序列的长度。m序列的特征方程是:从而求出反馈寄存器的m序列。例如,当n=3时,特征方程是f(x)=1+x+x3,由此方程可知b0=b1=b3(1表示开启),下一轮的x1等于前一轮的x1和x3的模2相加,假设初始状态s为(1,0,0),则接下来的状态为(1,1,0)、(1,1,1)、(0,1,1)、(1,0,1)、(0,1,0)(0,0,1)共k=2n-1=7个二进制数。其中,不重复的数作为地址置乱由zigzag扫描得到的一维素组。将此数组进一步分成m个子组,每组长度为m序列长度k,然后每个子组按照m序列进行排序。假设按照上表排序,子组中第4个元素排第一位,第6个元素排第二位等等。如果出现最后一个子组长度a小于k,则去除m序列中大于a的数。排序公式为:

ai(j)=wi(mseq(j))j=1,2,3,λ,2n-1i=1,2,3,λ,m

其中a是zigzag算法扫描后得到的一维数组,wi是置乱后的水印,mesq是m序列。

105、通过离散小波变换算法将原始电子印章图像的预置红色分量进行一级小波分解,生成四个子带,四个子带包括顺时针排序的第一子带、第二子带、第三子带和第四子带。

服务器通过离散小波变换算法将原始电子印章图像的预置红色分量进行一级小波分解,生成四个子带,四个子带包括顺时针排序的第一子带、第二子带、第三子带和第四子带。

需要说明的是,离散小波可以表示为:

其中,b0为采样时间间隔;

从而离散小波变换可以表示为

离散小波的逆变换可以表示为

其中c是与信号无关的常数,即中的cψ。

106、对四个子带中位于左上角的第一子带进行奇异值分解,得到第一奇异矩阵、第一正交矩阵和第二正交矩阵。

服务器对四个子带中位于左上角的第一子带进行奇异值分解,得到第一奇异矩阵s、第一正交矩阵u和第二正交矩阵v。

设m是一个m×n阶矩阵,其中元素全部属于实数域或复数域。存在一个分解:

m=usvt

其中u是m×m阶矩阵,s是半正定m×n阶对角矩阵;vt为v的转置矩阵,是n×n阶矩阵。这样的分解叫做m的奇异值分解。s对角线上的元素是m的奇异值,为了由m唯一确定s,将奇异值由大到小排列。

λm是矩阵m的奇异值,且λ1>λ2>l>λm-1>λm,奇异值的个数等于矩阵m的秩。

107、基于预置公式将置乱的水印矩阵嵌入第一奇异矩阵中,得到含水印的第二奇异矩阵。

服务器基于预置公式将置乱的水印矩阵嵌入第一奇异矩阵s中,得到含水印的第二奇异矩阵s′。具体的,服务器获取预置的水印嵌入强度参数服务器调用预置公式将置乱的水印矩阵w′嵌入到第一奇异矩阵s中,得到含水印的第二奇异矩阵s′。

108、对第二奇异矩阵进行奇异值分解,得到第三奇异矩阵,并将第三奇异矩阵与第一正交矩阵以及第二正交矩阵结合,得到目标子带。

服务器对第二奇异矩阵s′进行奇异值分解,得到第三奇异矩阵s″,并将第三奇异矩阵s″与第一正交矩阵u以及第二正交矩阵v结合,得到目标子带。

109、将目标子带、第二子带、第三子带和第四子带进行离散小波逆变换,得到合成的红色分量,并将合成的红色分量与预置绿色分量、预置蓝色分量进行合并,生成含水印的电子印章图像。

服务器将目标子带、第二子带、第三子带和第四子带进行离散小波逆变换,得到合成的红色分量,并将合成的红色分量与预置绿色分量、预置蓝色分量进行合并,生成含水印的电子印章图像。

需要说明的是,电子印章图像经过离散小波变换后的数据总量与原始电子印章图像的数据信息量相同,但是生成的小波图像的特性与原始电子印章图像不同:电子印章图像的能量主要集中在低频部分(第一子带),而水平部分(第二子带)、对角线部分(第三子带)和垂直部分(第四子带)的能量较少。低频部分包含了图像的基本信息,称为亮度部分;垂直部分、水平部分和对角线部分主要包含了高频信息,称为细节部分。目前常用的dwt变换嵌入水印位置选在低频子带部分,这是因为低频子带ll具有较强的鲁棒性。离散小波分解的低频系数在左上角,无论是一级、二级还是n级离散小波分解,图像的主要能量都集中在左上角的系数上。

本发明实施例,避免了电子印章被破坏,提高了电子印章的安全性,增强了对数据的版权保护和完整性保护。

请参阅图2,本发明实施例提供的基于水印的电子印章生成方法的另一个流程图,具体包括:

201、获取原始文件和密钥,原始文件为需要覆盖电子印章的文件,密钥用于对原始文件的电子印章进行加密。

服务器获取原始文件和密钥,该原始文件为需要覆盖电子印章的文件,该密钥用于对原始文件的电子印章进行加密。其中,电子印章是用一种常用的签名盖章方式的数字签名。通过密钥生成的电子印章信息,具有保密性高的优点,提高了信息的安全性。

需要说明的是,在获取原始文件和密钥之前,还需要进行身份验证,当身份验证通过后才可以获取原始文件和密钥。

可以理解的是,本发明的执行主体可以为基于水印的电子印章生成装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。

202、对原始文件进行md5计算,获得128位的十六进制的字符串。

服务器对原始文件进行md5计算,获得128位的十六进制的字符串。对于电子印章来说,由于要保证传文本的完整性,本实施例采用文本的md5值来作为水印信息。本实施例中md5算法原理是:对处理对象按字节长度512位分组(不足512,按首位填1,其余填0的方式补充完整),每一组又分为16个32位子组,经过一系列处理后输出由4个32位长度的结果,把输出的结果级联组成128位散列值。具体计算步骤如下:第一步:首先进行信息填充,使其字节长度对512求余的结果为448,即最后的长度为n×512+448,n为整数。因为md5的处理对象长度必须是512位的倍数,具体填充方法是:首位填1,其余填0。第二步:第一步处理后得到的信息字节长度为n×512+448,不是512的倍数,因此还要在信息后面附加一组代表填充前信息的64位二进制数。得到的信息长度就是512的倍数。第三步:初化寄存器a=0x01234567,b=0x89abcdef,c=0xfedbca98,d=0x76543210,再将初始化后寄存器内容分别存放在a,b,c,d四个变量中。如果信息有m组长度为512位的数据,则计算过程要循环m轮,每轮4次。在计算前,定义四种基本按位运算函数:

f(x,y,z)=(xandy)or(not(x)andz)

g(x,y,z)=(xandz)or(yandnot(z))

h(x,y,z)=xxoryxorz

i(x,y,z)=yxor(xornot(z))

其中“and”代表“与”,“or”代表“或”,“xor”代表“异或”,“not”代表“非”。接下来定义主循环中四轮变换函数:

f(a,b,c,d,mi,s,tj)表示a=b+((a+(f(b,c,d)+mi+tj))<<s)

g(a,b,c,d,mi,s,tj)表示a=b+((a+(g(b,c,d)+mi+tj))<<s)

h(a,b,c,d,mi,s,tj)表示a=b+((a+(h(b,c,d)+mi+tj))<<s)

i(a,b,c,d,mi,s,tj)表示a=b+((a+(i(b,c,d)+mi+tj))<<s)

因为每段512位长度的分组中还要分出16个32位长度的子组,因此用mi表示子组的组号,取值范围[0,15]。tj=int(232×abs(sin(j))),j取值范围[1,64],int表示取整,abs表示取绝对值,j用弧度数,<<s表示左移s位。第四步:每一组做一次循环,每次循环分别按四轮变换函数进行四轮操作,每轮操作算出该轮中a,b,c,d的值。第五步:等所有分组都进行了第四步操作后,按a、b、c、d从低位到高位级联得到128位的数字指纹。

203、将128位的十六进制的字符串转换为128位的二进制字符串,将两段相同的二进制字符串进行拼接并转换成16×16的原始水印矩阵。

服务器将128位的十六进制的字符串转换为128位的二进制字符串,将两段相同的二进制字符串进行拼接并转换成16×16的原始水印矩阵。

由于本实施例提出的生成方法是基于图片的,而现在的md5值是一段128位长度的十六进制字符串,因此有必要对md5值进行变换以适应算法的预置的水印置乱算法,即将128位md5二进制数扩充至256位,扩充方法是将两段一样的128位md5值拼接,然后变换成16×16的矩阵。

204、对原始水印矩阵采用预置算法和预置的m序列进行置乱,得到置乱的水印矩阵。

服务器对原始水印矩阵采用预置算法和预置的m序列进行置乱,得到置乱的水印矩阵。具体的,服务器获取原始水印矩阵w的大小为m×n,m、n为整数;服务器确定预置的m序列的迭代次数m;服务器按照标准的zigzag算法、预置的m序列和迭代次数m对原始水印矩阵w置乱m次,得到置乱的水印矩阵w′。

其中,服务器按照标准的zigzag算法、预置的m序列和迭代次数m对原始水印矩阵w置乱m次,得到置乱的水印矩阵w′包括:服务器按照zigzag的预置扫描顺序r扫描原始水印矩阵w,得到m×n长度的一维数组a;服务器调用预置的m序列对一维数组a进行重新排序,得到新的一维数组a′;服务器根据预置扫描顺序r将新的一维数组a′恢复成m×n的矩阵,得到大小为m×n的第一过渡矩阵,预置扫描顺序r与预置扫描顺序r的扫描顺序相反;服务器按照预置扫描顺序r扫描第一过渡矩阵,得到m×n长度的一维数组a′;服务器调用预置的m序列对一维数组a′进行重新排序,得到新的一维数组a″;服务器根据预置扫描顺序r将新的一维数组a″恢复成m×n的矩阵,得到大小为m×n的第二过渡矩阵;服务器基于预置扫描顺序r和预置扫描顺序r对第二过渡矩阵进行m-2次置乱,得到置乱的水印矩阵w′。

需要说明的是,m序列由线性反馈移位寄存器产生,该寄存器由“异”、“或”、“和”门组成,寄存器的多少决定了m序列的长度。m序列的特征方程是:从而求出反馈寄存器的m序列。例如,当n=3时,特征方程是f(x)=1+x+x3,由此方程可知b0=b1=b3(1表示开启),下一轮的x1等于前一轮的x1和x3的模2相加,假设初始状态s为(1,0,0),则接下来的状态为(1,1,0)、(1,1,1)、(0,1,1)、(1,0,1)、(0,1,0)(0,0,1)共k=2n-1=7个二进制数。其中,不重复的数作为地址置乱由zigzag扫描得到的一维素组。将此数组进一步分成m个子组,每组长度为m序列长度k,然后每个子组按照m序列进行排序。假设按照上表排序,子组中第4个元素排第一位,第6个元素排第二位等等。如果出现最后一个子组长度a小于k,则去除m序列中大于a的数。排序公式为:

ai(j)=wi(mseq(j))j=1,2,3,λ,2n-1i=1,2,3,λ,m

其中a是zigzag算法扫描后得到的一维数组,wi是置乱后的水印,mesq是m序列。

205、通过离散小波变换算法将原始电子印章图像的预置红色分量进行一级小波分解,生成四个子带,四个子带包括顺时针排序的第一子带、第二子带、第三子带和第四子带。

服务器通过离散小波变换算法将原始电子印章图像的预置红色分量进行一级小波分解,生成四个子带,四个子带包括顺时针排序的第一子带、第二子带、第三子带和第四子带。

需要说明的是,离散小波可以表示为:

其中,b0为采样时间间隔;

从而离散小波变换可以表示为

离散小波的逆变换可以表示为

其中c是与信号无关的常数,即中的cψ。

206、对四个子带中位于左上角的第一子带进行奇异值分解,得到第一奇异矩阵、第一正交矩阵和第二正交矩阵。

服务器对四个子带中位于左上角的第一子带进行奇异值分解,得到第一奇异矩阵s、第一正交矩阵u和第二正交矩阵v。

设m是一个m×n阶矩阵,其中元素全部属于实数域或复数域。存在一个分解:

m=usvt

其中u是m×m阶矩阵,s是半正定m×n阶对角矩阵;vt为v的转置矩阵,是n×n阶矩阵。这样的分解叫做m的奇异值分解。s对角线上的元素是m的奇异值,为了由m唯一确定s,将奇异值由大到小排列。

λm是矩阵m的奇异值,且λ1>λ2>l>λm-1>λm,奇异值的个数等于矩阵m的秩。

207、获取预置的水印嵌入强度参数。

服务器获取预置的水印嵌入强度参数其中,越小表示水印不可见性强,但是鲁棒性就差,抵抗攻击的能力就越差;越大,则水印嵌入到载体信息的强度就越大,鲁棒性越好,抗攻击能力强,但是不可见性就变差。为了平衡鲁棒性和不可见性这个矛盾,本实施例中选取为0.01。

208、调用预置公式和水印嵌入强度参数将置乱的水印矩阵w′嵌入到第一奇异矩阵中,得到含水印的第二奇异矩阵。

服务器调用预置公式和水印嵌入强度参数将置乱的水印矩阵w′嵌入到第一奇异矩阵s中,得到含水印的第二奇异矩阵s′。具体的,服务器调用预置公式将置乱的水印矩阵w′嵌入到第一奇异矩阵s中,得到含水印的第二奇异矩阵s′。

209、对第二奇异矩阵进行奇异值分解,得到第三奇异矩阵,并将第三奇异矩阵与第一正交矩阵以及第二正交矩阵结合,得到目标子带。

服务器对第二奇异矩阵s′进行奇异值分解,得到第三奇异矩阵s″,并将第三奇异矩阵s″与第一正交矩阵u以及第二正交矩阵v结合,得到目标子带。

210、将目标子带、第二子带、第三子带和第四子带进行离散小波逆变换,得到合成的红色分量,并将合成的红色分量与预置绿色分量、预置蓝色分量进行合并,生成含水印的电子印章图像。

服务器将目标子带、第二子带、第三子带和第四子带进行离散小波逆变换,得到合成的红色分量,并将合成的红色分量与预置绿色分量、预置蓝色分量进行合并,生成含水印的电子印章图像。

需要说明的是,电子印章图像经过离散小波变换后的数据总量与原始电子印章图像的数据信息量相同,但是生成的小波图像的特性与原始电子印章图像不同:电子印章图像的能量主要集中在低频部分(第一子带),而水平部分(第二子带)、对角线部分(第三子带)和垂直部分(第四子带)的能量较少。低频部分包含了图像的基本信息,称为亮度部分;垂直部分、水平部分和对角线部分主要包含了高频信息,称为细节部分。目前常用的dwt变换嵌入水印位置选在低频子带部分,这是因为低频子带ll具有较强的鲁棒性。离散小波分解的低频系数在左上角,无论是一级、二级还是n级离散小波分解,图像的主要能量都集中在左上角的系数上。

本发明实施例,避免了电子印章被破坏,提高了电子印章的安全性,增强了对数据的版权保护和完整性保护。

上面对本发明实施例中基于水印的电子印章生成方法进行了描述,下面对本发明实施例中基于水印的电子印章生成装置进行描述,请参阅图3,本发明实施例中基于水印的电子印章生成装置的一个实施例包括:

获取单元301,用于获取原始文件和密钥,所述原始文件为需要覆盖电子印章的文件,所述密钥用于对所述原始文件的所述电子印章进行加密;

计算单元302,用于对所述原始文件进行md5计算,获得128位的十六进制的字符串;

转换单元303,用于将所述128位的十六进制的字符串转换为128位的二进制字符串,将两段相同的二进制字符串进行拼接并转换成16×16的原始水印矩阵;

置乱单元304,用于对所述原始水印矩阵采用预置算法和预置的m序列进行置乱,得到置乱的水印矩阵;

第一分解单元305,用于通过离散小波变换算法将原始电子印章图像的预置红色分量进行一级小波分解,生成四个子带,所述四个子带包括顺时针排序的第一子带、第二子带、第三子带和第四子带;

第二分解单元306,用于对所述四个子带中位于左上角的所述第一子带进行奇异值分解,得到第一奇异矩阵s、第一正交矩阵u和第二正交矩阵v;

嵌入单元307,用于基于预置公式将所述置乱的水印矩阵嵌入所述第一奇异矩阵s中,得到含水印的第二奇异矩阵s′;

分解合成单元308,用于对所述第二奇异矩阵s′进行奇异值分解,得到第三奇异矩阵s″,并将所述第三奇异矩阵s″与所述第一正交矩阵u以及所述第二正交矩阵v结合,得到目标子带;

合成单元309,用于将所述目标子带、所述第二子带、所述第三子带和所述第四子带进行离散小波逆变换,得到合成的红色分量,并将所述合成的红色分量与预置绿色分量、预置蓝色分量进行合并,生成含水印的电子印章图像。

本发明实施例,避免了电子印章被破坏,提高了电子印章的安全性,增强了对数据的版权保护和完整性保护。

请参阅图4,本发明实施例中基于水印的电子印章生成装置的另一个实施例包括:

获取单元301,用于获取原始文件和密钥,所述原始文件为需要覆盖电子印章的文件,所述密钥用于对所述原始文件的所述电子印章进行加密;

计算单元302,用于对所述原始文件进行md5计算,获得128位的十六进制的字符串;

转换单元303,用于将所述128位的十六进制的字符串转换为128位的二进制字符串,将两段相同的二进制字符串进行拼接并转换成16×16的原始水印矩阵;

置乱单元304,用于对所述原始水印矩阵采用预置算法和预置的m序列进行置乱,得到置乱的水印矩阵;

第一分解单元305,用于通过离散小波变换算法将原始电子印章图像的预置红色分量进行一级小波分解,生成四个子带,所述四个子带包括顺时针排序的第一子带、第二子带、第三子带和第四子带;

第二分解单元306,用于对所述四个子带中位于左上角的所述第一子带进行奇异值分解,得到第一奇异矩阵s、第一正交矩阵u和第二正交矩阵v;

嵌入单元307,用于基于预置公式将所述置乱的水印矩阵嵌入所述第一奇异矩阵s中,得到含水印的第二奇异矩阵s′;

分解合成单元308,用于对所述第二奇异矩阵s′进行奇异值分解,得到第三奇异矩阵s″,并将所述第三奇异矩阵s″与所述第一正交矩阵u以及所述第二正交矩阵v结合,得到目标子带;

合成单元309,用于将所述目标子带、所述第二子带、所述第三子带和所述第四子带进行离散小波逆变换,得到合成的红色分量,并将所述合成的红色分量与预置绿色分量、预置蓝色分量进行合并,生成含水印的电子印章图像。

可选的,置乱单元304包括:

获取模块3041,用于获取所述原始水印矩阵w的大小为m×n,所述m、n为整数;

确定模块3042,用于确定所述预置的m序列的迭代次数m;

置乱模块3043,用于按照标准的zigzag算法、所述预置的m序列和所述迭代次数m对所述原始水印矩阵w置乱m次,得到置乱的水印矩阵w′。

可选的,置乱模块3043具体用于:按照zigzag的预置扫描顺序r扫描原始水印矩阵w,得到m×n长度的一维数组a;调用预置的m序列对所述一维数组a进行重新排序,得到新的一维数组a′;根据预置扫描顺序r将所述新的一维数组a′恢复成m×n的矩阵,得到大小为m×n的第一过渡矩阵,所述预置扫描顺序r与所述预置扫描顺序r的扫描顺序相反;按照所述预置扫描顺序r扫描所述第一过渡矩阵,得到m×n长度的一维数组a′;调用所述预置的m序列对所述一维数组a′进行重新排序,得到新的一维数组a″;根据所述预置扫描顺序r将所述新的一维数组a″恢复成m×n的矩阵,得到大小为m×n的第二过渡矩阵;基于所述预置扫描顺序r和所述预置扫描顺序r对所述第二过渡矩阵进行m-2次置乱,得到所述置乱的水印矩阵w′。

可选的,嵌入单元307具体用于:

获取预置的水印嵌入强度参数

调用预置公式将所述置乱的水印矩阵w′嵌入到所述第一奇异矩阵s中,得到含水印的第二奇异矩阵s′。

本发明实施例,避免了电子印章被破坏,提高了电子印章的安全性,增强了对数据的版权保护和完整性保护。

上面图3至图4从模块化功能实体的角度对本发明实施例中的基于水印的电子印章生成装置进行详细描述,下面从硬件处理的角度对本发明实施例中基于水印的电子印章生成系统进行详细描述。

图5是本发明实施例提供的一种基于水印的电子印章生成系统的结构示意图,该基于水印的电子印章生成系统500包括存储器501、处理器502及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现任一实施例中的基于水印的电子印章生成方法。基于水印的电子印章生成系统500还可以包括通信接口503。

在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、双绞线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,光盘)、或者半导体介质(例如固态硬盘(solidstatedisk,ssd))等。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1