1.本发明涉及一种数字水印技术领域,特别是一种用于三维几何模型云存储的完整性认证半脆弱水印方法。
背景技术:2.随着计算机图像学和3d打印技术的发展,三维几何模型广泛应用于任何使用三维图形的地方,例如工业生产、医学、电影行业、电子游戏产业、计算机辅助设计等领域。三维数据的采集、处理、应用需求大大增加,因此三维模型的安全问题得到关注。在实际对模型精度、完整性要求高的场景中,即使三维几何模型发生较小的篡改,也有可能会给模型的使用带来很大的问题,因此三维几何模型的完整性认证尤为重要。
3.三维几何模型具有数据间相关性低、拓扑结构复杂,但容易复制及修改的特点。随着云技术的发展,大量数据以云存储的方式流转,三维几何模型存储周期内的完整性认证是必要但欠缺的。目前加密域上的三维模型可逆水印的相关研究相对较少,还存在嵌入失真大、只能在单域进行认证、在云存储场景下安全性较低、篡改精度低等特点。
4.针对三维几何模型的完整性认证,本发明提出了一种用于三维几何模型云存储的完整性认证半脆弱可逆水印方法。在本算法中,数据拥有方通过水印生成方法生成双域水印,在模型的空间域和加密域同时嵌入水印,并根据两次嵌入的水印是否相等采用动态可变的双向调制策略来降低水印嵌入引入的失真。同时设计了云存储管理方和数据最终用户的双重完整性认证,实现了三维几何模型在云存储全周期的完整性认证,提供了更安全可靠的认证方法。与同类算法相比,本算法具有较好的不可见性以及安全性。
技术实现要素:5.针对三维几何模型在传输过程中可能会遭受恶意攻击的问题,提出了一种用于三维几何模型云存储的完整性认证半脆弱水印方法,可以实现篡改定位。
6.为解决上述技术问题,本发明提供了用于三维几何模型云存储的完整性认证半脆弱水印方法,包括以下步骤:
7.水印的生成部分包括以下步骤:
8.将顶点vi一环邻域的顶点数mi转为二进制比特流,使用hmac函数,密钥ks进行哈希,并取生成哈希的前s位作为第一部分水印w
i1
;
9.根据顶点vi的一环邻域顶点集合v
in
计算邻域顶点的均值点v
ia
;
10.找到邻域点中距离邻域均值点最远的一点v
ik
,计算均值点到最远点的距离len1、均值点到顶点vi的距离len2,计算两者比值lenr;
11.计算邻域均值点v
ia
到顶点vi的直线与邻域均值点v
ia
到最远点v
ik
的直线的夹角β,将lenr、β以字符串形式拼接成w
i2
,使用hmac函数对w
i2
进行哈希,取生成的前s位,得到顶点的第二部分水印w
i2
;
12.将两部分水印拼接得到顶点vi的水印wi;
13.动态可变的双向调制水印嵌入策略步骤如下:
14.获取待嵌入的水印w1和w2以及原始值f;
15.根据w1和w2是否相等,动态调整调制方向:如果w1不等于w2,按照公式:r=f-m
×2b
×
δ,(其中b表示水印嵌入强度,w表示待嵌入的水印值,δ表示量化步长,r表示在区间内的相对距离,f表示原始值,f'表示嵌入一次水印后的值),执行两次量化索引调制得到f”。如果w1等于w2,第一次按照同上公式得到f'后调整量化方向,即:r'=2b×
δ-r',执行变向的量化索引调制得到f”。
16.双域水印嵌入部分包括以下步骤:
17.模型数据拥有方在模型加密前获取顶点,根据水印生成方法得到模型的空间域水印w1;
18.模型数据拥有方根据动态可变的双向调制策略完成水印的嵌入。当两次嵌入的水印不相等时按照原始量化方向完成调制。当两次嵌入的水印相等时,在第二次量化时将量化方向反转,使得顶点原始位置与水印后的位置距离缩小。从而得到含空间域水印模型g
w1
;
19.对含空间域水印模型g
w1
进行加密,得到模型
20.根据水印生成方法计算加密域水印w2,使用动态可变的双向调制策略嵌入水印,得到含双域水印的加密模型再由数据拥有方将该模型传至云端进行存储;
21.水印提取部分包括以下步骤:
22.云存储管理方获取经过信道传输得到的模型提取一次水印,并恢复原始值。对于未使用变向调制的顶点,按照原始量化调制的方法提取水印并恢复原始值。对于使用了变向调制的顶点,先按调制反方向提取水印后再按原始方向提取并恢复原始值。从而得到提取的加密域水印we和恢复的模型并将恢复的模型传至数据最终用户。
23.数据最终用户获取模型对模型进行解密得到解密模型g
w1
',提取水印,并恢复原始值。对于未使用变向调制的顶点,按照原始量化调制的方法提取水印并恢复原始值。对于使用了变向调制的顶点,先按调制反方向提取水印后再按原始方向提取并恢复原始值。从而得到提取的空间域水印w
p
和恢复的模型g'。
24.双域完整性认证部分包括以下步骤:
25.云存储管理方在模型解密前获取模型提取一次水印后得到模型根据水印生成方法,重新生成加密域水印w2';
26.将水印we和w2'比对。如果we=w2',加密域模型认证通过,否则模型加密域被认为遭受到恶意攻击,根据两个水印不相等的部分进行篡改定位;
27.数据最终用户获取模型对模型解密并提取水印得到模型g'。根据水印生成方法,重新生成空间域水印w1';
28.将水印w
p
和w1'比对。如果w
p
=w1',空间域模型认证通过,否则模型空间域被认为遭受到恶意攻击,根据两个水印不相等的部分进行篡改定位;
29.由上述发明提供的技术方案可以看出,本方法通过同时生成空间域和加密域水
印,并使用双重量化调制方法嵌入水印,降低了水印嵌入引入的失真,提供了一种更为安全的三维几何模型云存储全周期完整性认证方案,能够对三维模型在传输过程种可能遭受的恶意篡改进行组级定位。
附图说明
30.图1是本用于三维几何模型云存储的完整性认证半脆弱水印方法流程图
31.图2是水印生成方法
32.图3是动态可变的双向调制水印嵌入策略
33.图4是原始载体
34.图5是含空间域水印的加密模型
35.图6是含双域水印的加密模型
36.图7是恢复的解密模型
具体实施方式
37.下面结合附图对本发明做更进一步的说明。
38.一种用于三维几何模型云存储的完整性认证半脆弱水印方法,包括水印生成,动态可变的双向调制水印嵌入策略,双域水印嵌入,水印信息提取和双域完整性认证步骤,具体如下:
39.水印的生成步骤如下:
40.将一环邻域的顶点数mi转为二进制比特流,生成哈希,取前s位作为第一部分水印w
i1
;
41.计算顶点vi邻域顶点的均值点v
ia
:
42.找到邻域点中距离均值点最远点v
ik
,计算均值点到最远点距离len1,均值点到顶点vi的距离len2,计算两者比值
43.计算直线v
ia
vi与v
iavik
的夹角为β,将lenr与β拼接为w
i2
,用hmac函数生成哈希,取其中前s位作为第二部分水印w
i2
;
44.将两部分水印拼接得到顶点最终水印值wi;
45.遍历所有顶点,完成整个模型的水印生成;
46.动态可变的双向调制水印嵌入策略步骤如下:
47.获取待嵌入的水印w1和w2以及原始值f;
48.根据w1和w2是否相等,动态调整调制方向:如果w1不等于w2,按照公式:r=f-m
×2b
×
δ,(其中b表示水印嵌入强度,w表示待嵌入的水印值,δ表示量化步长,r表示在区间内的相对距离,f表示原始值,f'表示嵌入一次水印后的值),执行两次量化索引调制得到f”。如果w1等于w2,第一次按照同上公式得到f'后调整量化方向,即:r'=2b×
δ-r',执行变向的量化索引调制得到f”。
49.双域水印的嵌入步骤如下:
50.数据拥有方首先获取三维模型所有顶点,记作集合v={vi|vi=(v
ix
,v
iy
,v
iz
),i∈(0,1,...,m-2)};
51.数据拥有方根据提出的水印生成方法得到空间域水印w1,使用动态可变的双向调制水印嵌入策略完成水印的嵌入,得到含空间域水印三维模型g
w1
;
52.数据拥有方获取含空间域水印的三维模型,对顶点加密,得到模型
53.数据拥有方根据水印生成方法计算加密域水印w2,使用动态可变的双向调制水印嵌入策略完成水印的嵌入,得到含双域水印三维模型之后该模型由数据拥有方传至云端进行存储。
54.水印信息提取步骤如下:
55.获取三维模型顶点集合,将所有顶点映射到球坐标系中;
56.根据反推变向的双重量化调制策略恢复所有顶点并提取水印;
57.双域完整性认证步骤如下:
58.模型在传输过程中一直保持加密状态,当云存储管理方接收到模型后,先对模型进行加密域的认证;
59.根据变向的双重量化调制策略恢复所有顶点并提取加密域水印we;
60.获取恢复模型按水印生成规则计算水印w2';
61.若we≠w2',则认为加密模型遭受篡改,标记水印不同部分对应的顶点为被篡改区域;
62.在对模型进行加密域的完整性认证后,将模型传给数据最终用户对模型进行解密,得到解密模型g
w1
',由数据最终用户对解密模型进行空间域的二次认证。
63.根据变向的双重量化调制策略恢复顶点,得到恢复模型g',并得到提取的水印w
p
;
64.获取恢复模型g',按水印生成方法得到水印w1';
65.若w
p
≠w1',则模型遭受篡改,标记水印不同部分对应的顶点为被篡改区域;
66.若两次水印比对均正确则得到的恢复模型为未被篡改的模型g',否则得到的是被篡改的模型。
67.本发明主要应用于三维几何模型,实验证明本方法具有较好的不可见性及较强的认证能力,能够检测三维模型在传输过程中遭受的如:顶点的增删、噪声添加、网格平滑、网格简化等恶意攻击,且在双域水印嵌入后的不可感知性表现优异。
68.以上所述仅为本发明的实施案例,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
技术特征:1.一种用于三维几何模型云存储的完整性认证半脆弱水印方法,其特征在于,包括水印生成,动态可变的双向调制水印嵌入策略,双域水印嵌入,水印提取以及双域完整性认证部分:所述水印生成包括以下步骤:1)根据顶点的一环邻域顶点集合计算邻域顶点的拓扑特征值;2)根据顶点与一环邻域顶点集合计算顶点在集合中的几何特征值;3)将这两部分的特征值整合生成顶点的特征值;所述动态可变的双向调制水印嵌入策略包括以下步骤:1)根据两次水印值的大小关系使用动态可变的双向调制策略,以低失真完成两次水印嵌入;所述双域水印嵌入包括以下步骤:1)使用动态可变的双向调制水印策略进行双域水印的嵌入;2)对明文域和加密域的水印按一定顺序进行嵌入;所述水印提取包括以下步骤:1)使用动态可变的双向调制水印策略完成水印的提取;2)对明文域和加密域的水印按一定顺序进行提取;所述双域完整性认证包括以下步骤:1)在认证场景中包含三个角色:数据拥有者,云存储管理方,数据最终用户。三者共同参与完成三维几何模型云存储全周期的完整性认证;2)通过比较提取水印和重新生成的水印进行完整性认证;3)在明文域和加密域按照一定的顺序进行完整性的认证,并对篡改进行定位。2.根据权利要求1所述的水印生成方法,其特征在于,所述步骤1,包括:生成拓扑特征值具体方法为:将顶点v
i
一环邻域的顶点数m
i
转为二进制比特流,使用hmac函数,密钥k
s
进行哈希,并取生成哈希的前s位作为第一部分水印w
i1
。3.根据权利要求1所述的水印生成方法,其特征在于,所述步骤2,包括:生成几何特征值具体方法为:根据顶点v
i
的一环邻域顶点集合v
in
计算邻域顶点的均值点v
ia
,找到邻域点中距离邻域均值点最远的一点v
ik
,计算均值点到最远点的距离len1、均值点到顶点v
i
的距离len2,计算两者比值lenr。计算邻域均值点v
ia
到顶点v
i
的直线与邻域均值点v
ia
到最远点v
ik
的直线的夹角β,将lenr、β以字符串形式拼接成w
i2
,使用hmac函数对w
i2
进行哈希,取生成的前s位,得到顶点的第二部分水印w
i2
。4.根据权利要求1所述的水印生成方法,其特征在于,所述步骤3,包括:将两部分水印拼接得到顶点v
i
的水印,即w
i
=concat(w
i1
,w
i2
)。5.根据权利要求1所述的动态可变的双向调制水印嵌入策略。其特征在于,所述步骤1,包括:首先需要获取两次水印值w1和w2的大小关系,以决定调制的方向。根据w1和w2是否相等,动态调整调制方向:如果w1不等于w2,按照公式:r=f-m
×2b
×
δ,(其中b表示水印嵌入强度,w表示待嵌入的水印值,δ表示量化步长,r表示在区间内的相对距离,f表示原始值,f'表示嵌入一次水印后的值),执行两次量化
索引调制得到f”。如果w1等于w2,第一次按照同上公式得到f'后调整量化方向,即:r'=2
b
×
δ-r',执行变向的量化索引调制得到f”。6.根据权利要求1所述的双域水印嵌入方法。其特征在于,所述步骤2,包括:双域水印的嵌入顺序。在模型加密前获取顶点,根据水印生成方法得到模型的空间域水印w1,使用动态可变的双向调制水印嵌入策略完成空间域的水印嵌入,得到含空间域水印模型g
w1
,再在加密之后对加密模型生成水印并嵌入,完成加密域水印的嵌入。7.根据权利要求1所述的水印提取。其特征在于,所述步骤1,包括:使用动态可变的双向调制水印策略完成水印的提取。首先根据两次水印是否相等决定第一次水印提取的方向,如果两次水印相等则第一次提取在反方向上进行,第二次在正方向上进行。如果两次水印不相等则两次的水印都在正方向上进行。8.根据权利要求1所述的水印提取。其特征在于,所述步骤2,包括:双域水印的提取顺序。首先对加密模型进行加密域的水印提取。在加密域水印提取结束后,对模型进行解密,对解密后的模型再进行空间域水印的提取。按照这一顺序,双域的水印才能正确提取。9.根据权利要求1所述的双域完整性认证方法。其特征在于,所述步骤1,包括:数据拥有者提供原始模型信息及模型加密密钥。云存储管理方对模型在云端进行加密域的认证,保证了模型由数据拥有方到云端传输这一过程中加密模型的完整性。数据最终用户对从云端获取的模型解密后进行明文域的认证,保证了模型在明文域的完整性。三者共同实现了三维几何模型云存储全周期的完整性认证。10.根据权利要求1所述的双域完整性认证方法。其特征在于,所述步骤2,包括:在模型解密前获取模型提取水印w
e
,根据水印生成方法,重新生成加密域水印w2',将水印w
e
和w2'比对,实现加密域的认证。获取解密模型g',提取水印w
p
,根据水印生成方法,重新生成空间域水印w1',将水印w
p
和w1'比对,实现空间域的认证。若比较的水印相等,则认证通过,反之认证失败。11.根据权利要求1所述的双域完整性认证方法。其特征在于,所述步骤3,包括:云存储管理方首先对模型的加密域完整性进行认证。云存储管理方将水印w
e
和w2'比对,如果w
e
=w2',加密域模型认证通过,否则模型加密域遭受到恶意攻击,将两个水印不相等的部分进行恶意篡改定位。再由数据最终用户对模型空间域完整性进行认证。数据最终用户将水印w
p
和w1'比对,如果w
p
=w1',加密域模型认证通过,否则模型空间域遭受到恶意攻击,将两个水印不相等的部分进行恶意篡改定位。
技术总结本发明公开了一种用于三维几何模型云存储的完整性认证半脆弱水印方法,包括水印的生成,动态可变的双向调制水印嵌入,双域水印嵌入,水印提取及双域完整性认证方法。其中角色包括:数据拥有方、云存储管理方、数据最终用户。数据拥有方完成加密和水印嵌入。云存储管理方做加密域完整性认证。数据最终用户做空间域完整性认证。水印生成方法为顶点的拓扑特征值和几何特征值生成方法。动态可变的双向调制水印嵌入策略通过调整量化方向进一步降低了失真。双域水印嵌入为数据拥有方在加密前后分别嵌入空间域和加密域的水印。水印提取方法包括使用动态可变的双向调制策略对水印进行提取。完整性认证方法包括云存储管理方对密文域的完整性认证及数据最终用户对空间域的完整性认证。本发明实现了失真较低的水印嵌入以及双重认证,能够为三维模型在云存储全周期的完整性认证提供有效的技术手段。整性认证提供有效的技术手段。整性认证提供有效的技术手段。
技术研发人员:彭飞 廖彤昕
受保护的技术使用者:湖南大学
技术研发日:2022.08.05
技术公布日:2022/12/1