基于最邻近点和多点分组的3D加密模型可逆信息隐藏方法与流程

文档序号:34458931发布日期:2023-06-14 23:37阅读:44来源:国知局
基于最邻近点和多点分组的3D加密模型可逆信息隐藏方法与流程

本发明属于信息隐藏领域,具体涉及一种基于最邻近点和多点分组的3d加密模型可逆信息隐藏方法。


背景技术:

1、随着信息技术的快速发展,3d模型以成为继图像、音频、视频之后另外一种重要的数据结构,被广泛的应用在建筑工程、游戏开发,动画制作等领域。3d模型中较为常见的文件格式是.off格式,该文件格式按顺序存储3d模型的顶点坐标和面信息(当前面由哪三个顶点连接形成)。由于云计算和云存储的普及,越来越多的3d建模师会利用云存储技术保存自己的3d模型,以便于随时存取。然而,这些3d模型在上传过程中或保存介质中也正在遭受攻击者的窃取及破坏的威胁,使得3d模型的隐私保护成为研究热点。为了更好的保护用户的3d模型隐私,用户在上传3d模型到云端之前,会首先利用加密技术将3d模型加密,之后再将加密后的3d模型上传到云端进行存储,因此可保证在传输过程中的安全性。授权用户在从云端下载加密3d模型后,通过加密密钥即可恢复3d模型内容。此外,对于云端管理者来说,希望会对3d模型嵌入一些额外信息,例如水印、时间戳、数字签名等来对该模型进行管理或版权保证。因此,如何高效嵌入大量额外信息到加密3d模型中也成为目前的研究目标及方向。

2、本专利主要涉及加密3d模型的信息隐藏。信息隐藏是指通过利用数字载体的冗余空间通过信息嵌入密钥在其中嵌入大量秘密信息如水印、时间戳、数字签名等的信息技术手段,只需拥有相同嵌入密钥即可从该数字载体中提取嵌入秘密信息。信息隐藏技术广泛应用于数字图像、视频、音频等载体中。加密域的信息隐藏技术的一种策略是在加密前先对原始载体做预处理,预先空出一部分区域作为信息隐藏的位置,之后再进行加密。然而,针对3d模型特别是3d加密模型的信息隐藏应用目前相对较少。

3、针对在加密前对3d模型做预处理的方法,目前只有几篇相关工作在近两年被提出。2021年,tsai[1]在加密前选定边界顶点,之后计算其余顶点和边界顶点的距离,之后,用这些距离替代顶点坐标进行加密。由于相邻顶点的距离相当较短,可获取一定的冗余空间。之后,xu[2]等人利用顶点坐标msb(most significant bit)预测的方式空出部分顶点三维坐标的首位msb作为信息隐藏空间。之后,yin[3]等人又将首位msb预测方法扩展到多个msb预测,进一步提升冗余空间。lyu[4]等人则将顶点分成可藏顶点和预测顶点两个类型,用预测顶点来对可藏顶点的多个msb进行预测,从而将预测准确的msb作为信息隐藏空间。然而,以上提出的四种技术都处于研究初期,对3d模型的冗余空间萃取的能力有限,因此,额外信息的嵌入容量有限。


技术实现思路

1、在综合分析基于3d加密模型可逆信息隐藏方法的相关技术后,为解决现有技术中嵌入容量过低的问题,本发明提出一种基于最邻近点和多点分组的3d加密模型可逆信息隐藏方法,通过最邻近点预测的方法进一步提升预测准确度,并通过多点分组的方式进一步压缩参考顶点的数量,进而提供多的冗余空间作为额外信息藏入位置。

2、本发明的发明构思是:首先,对3d模型顶点坐标进行浮点数到整数的转换,用32位二进制表示每个顶点的其中一个维度的坐标。之后,按照顶点编号将多个顶点分成一组,并将每组中的第一个顶点作为参考顶点,其余则为可藏顶点。针对每个可藏顶点,根据与其相连的参考顶点中距离最近的一个作为最邻近点进行坐标误差计算,之后,可通过记录最邻近点的编号和三维坐标预测误差来重新编码该可藏顶点。对重新编码的3d模型进行加密后,即可通过信息隐藏密钥在其中嵌入额外信息,由于编码长度远远低于原始坐标长度,因此可提供大量冗余空间作为额外信息嵌入位置。在3d加密模型接收端,可以根据拿到的密钥分别实现以下功能:(1)若有3d模型加密密钥,则可恢复原始3d模型;(2)若有信息隐藏密钥,则可提取出嵌入在3d加密模型中的额外信息。

3、本发明具体采用的技术方案如下:

4、一种基于最邻近点和多点分组的3d加密模型可逆信息隐藏方法,其步骤如下:

5、s1:将待处理的3d模型文件o中的顶点v进行浮点数到整数转换,将每个顶点的三维坐标每个维度统一转换为二进制的整数格式,其中第一位用于标识该三维坐标的正负号,其余位则代表其原始三维坐标的小数点后的具体数值,将整数转换后的顶点记为v(x,y,z);

6、s2:将3d模型文件o中的所有顶点根据顶点编号进行分组,其中分组总数为t,每个分组中顶点个数为n;将每个分组中的第一个顶点作为参考顶点不做修改,其余顶点为可藏顶点用于根据参考顶点进行预测;

7、s3:初始化长度为t(n-1)的二进制序列l,二进制序列l中的t(n-1)个位与t(n-1)个可藏顶点一一对应;根据顶点编号循环遍历每个可藏顶点的面信息,若无参考顶点与该可藏顶点相连,则不对该可藏顶点进行处理,并将l中对应的位标记为1;若有参考顶点与该可藏顶点相连,则将l中对应的位标记为0,并根据与该可藏顶点相连的参考顶点数量选择a)或b)方式寻找与该可藏顶点相连的最邻近点;

8、若只有一个参考顶点与该可藏顶点相连,则直接将该参考顶点作为作为该可藏顶点的最邻近点;

9、若有m>1个参考顶点与该可藏顶点相连,则通过以下公式计算该可藏顶点与每个相连参考顶点的三维坐标距离d,选取d最小的参考顶点作为该可藏顶点的最邻近点;

10、s4:对于每个在l中被标记为0的可藏顶点,分别计算并记录可藏顶点与对应的最邻近点之间三维坐标的差值d:(dx,dy,dz),并标识差值的正负,再通过记录最邻近点的编号和三维坐标预测误差来生成该可藏顶点的新编码;

11、s5:根据步骤s4依次处理每个在l中被标记为0的可藏顶点后,生成新的可藏顶点序列

12、s6:利用流密码技术(stream cipher)及模型加密密钥kd对经过整数转换后的3d模型文件中的参考顶点三维坐标进行加密;

13、s7:利用算数编码技术(arithmetic coding)压缩序列l,形成压缩后的二进制序列

14、s8:串联二进制序列与可藏顶点序列并用序列记录串联后的序列长度及两个序列的分界点;

15、s9:对完成参考顶点加密后的3d模型文件,按照顶点编号从小到大的顺序将序列依次嵌入各可藏顶点中,并保留面信息,从而生成加密3d模型e:

16、s10:将未嵌入序列信息的可藏顶点剩余部分腾空并作为嵌入额外秘密信息的冗余空间;对于额外信息m,先利用流密码技术及信息加密密钥km对其进行加密生成加密信息之后将加密信息嵌入到冗余空间中,从而生成嵌入额外信息的加密3d模型

17、基于上述技术方案,各步骤可以采用如下优选方式实现。

18、作为优选,所述s1中,对每个顶点三维坐标只保留小数点后5位,并将每个维度坐标转换为32位二进制格式,其中第一位标识该维度坐标的正负号,其余31位则记录该维度原始坐标中小数点后5位的整数数值。

19、作为优选,所述s2中,每个分组中顶点个数n选取2、3或4。

20、作为优选,所述s4中,通过记录最邻近点的编号和三维坐标预测误差来生成该可藏顶点的新编码的具体做法如下:

21、s41:首先用个比特来记录该可藏顶点的最邻近点在与之相连的参考顶点中的序号,符号代表向上取整;

22、s42:之后用个比特记录d的三个维度差值dx,dy,dz中最大差值的二进制长度l;

23、s43:接着按照三维坐标x、y、z的先后顺序,用3l个比特分别记录d的三个维度差值dx,dy,dz;

24、s44:最后串联上述s41~s43中得到的三组编码,生成该可藏顶点对应的总长度为的新编码。

25、作为优选,所述s6和s10中,使用的流密码技术需可通过短密钥生成与需要加密数据长度相同的二进制长密钥,之后通过二进制按位异或(exclusive-or)的方法进行加密。

26、作为优选,所述s7中,使用matlab中的函数arithenco对序列l进行压缩。

27、作为优选,所述s8中,的长度为32个比特,其中前16个比特用来标识序列与序列的总长度,而后16个比特则记录二者的分界点。

28、作为优选,所述s9和s10中,向可藏顶点中嵌入信息的方法为二进制比特替换。

29、作为优选,所述3d模型文件采用.off格式。

30、另一方面,本发明提供了一种基于基于最邻近点预测和多点分组的3d加密模型可逆信息恢复方法,其根据前述的隐藏方法生成嵌入额外信息的加密3d模型后,将其传递给接收方,接收方根据所持有的密钥恢复3d模型或提取嵌入的额外信息,其恢复过程为:

31、若接收方持有额外信息加密密钥km,则通过执行以下步骤11~步骤13提取额外信息:

32、步骤11:按照可藏顶点的编号顺序提取第一个可藏顶点的前16个比特,获取序列与序列的总长度;

33、步骤12:依照可藏顶点顺序,依次从三维坐标中提取除去序列与序列后的二进制比特串,获取嵌入的加密额外信息

34、步骤13:使用额外信息加密密钥km解密恢复原始额外信息m;

35、若接收方持有模型加密密钥kd,则通过执行以下步骤21~步骤25恢复原始3d模型

36、步骤21:按照可藏顶点的编号顺序首先提取第一个可藏顶点的前32个比特,其中通过前16个比特获取序列与序列的总长度,通过后16个比特获取两个序列的分界点,从而分别提取序列与序列

37、步骤22:使用算数编码技术解压缩序列生成长度为t(n-1)的二进制序列l,以判断每个可藏顶点是否有参考顶点相连;若该可藏顶点没有参考顶点与其相连,则直接提取序列中的96个比特恢复其三维坐标,若该可藏顶点有参考顶点与其相连,则根据与其相连的参考顶点数量m提取序列中的比特,确定其最邻近点;

38、步骤23:再提取个比特确定预测误差的长度,之后依次提取3l比特并将其转换成十进制恢复该可藏顶点与其最邻近点的三维坐标差值d:(dx,dy,dz);

39、步骤24:对于每个可藏顶点,将三维坐标差值与最邻近点的三维坐标直接相加,来恢复该可藏顶点;

40、步骤25:依次处理所有可藏顶点后,将所有顶点坐标转换成小数形式,从而恢复原始3d模型文件。

41、相对于现有技术而言,本发明的有益效果如下:

42、本发明充分利用了3d模型顶点坐标之间的冗余空间,实现了对顶点的高效编码,从而提供了大量额外信息的嵌入能力。首先,对.off格式的3d模型顶点坐标进行浮点数到整数的转换,用32位二进制表示每个顶点的其中一个维度的坐标。之后,按照顶点编号将多个顶点分成一组,并将每组中的第一个顶点作为参考顶点,其余则为可藏顶点。针对每个可藏顶点,根据与其相连的参考顶点中距离最近的一个作为最邻近点进行坐标误差计算,之后,可通过记录最邻近点的编号和三维坐标预测误差来重新编码该可藏顶点。对重新编码的3d模型进行加密后,即可通过信息隐藏密钥在其中嵌入额外信息,由于重新编码长度远远低于原始坐标长度,因此可提供大量冗余空间作为额外信息嵌入位置。在3d加密模型接收端,可以根据拿到的密钥分别实现以下功能:(1)若有3d模型加密密钥,则可恢复原始3d模型;(2)若有信息隐藏密钥,则可提取出嵌入在3d加密模型中的额外信息。本发明不仅继承了其他3d模型加密域信息隐藏方案针对顶点进行预测的成熟技术,还提供了更精准的预测编码方式和更高效的顶点分组模式,实现了更高的嵌入率,相较其他方法具有更广泛的应用场景,具有更好的实用性。此外,该方案也可直接用于3d模型的无损压缩,实现3d模型的高效传输。

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