1.基于分块和多MSB预测的3D网格可逆信息隐藏算法,其特征在于,具体按照以下步骤实施:步骤1,读取原始3D网格文件中的顶点数据和面数据,将读取到的顶点数据转化成整数,再转化成32位二进制比特流;
步骤2,将步骤1读取的面数据划块,将块内的第一个顶点作为参考中心点;
步骤2的具体过程为:
步骤2.1,读取的面数据为 ,显示了不同顶点之间的连接关系,其中,表示一个面由三个顶点组成,将当前顶点和与其连接的顶点划分到一个块中;
步骤2.2,将块内第一个顶点作为参考中心点,将块内其他顶点的x坐标的二进制比特信息从最高有效位到最低有效位依次与参考中心点的x坐标二进制比特信息作对比预测,一直对比到块内其他顶点的x坐标二进制信息的比特与参考中心点的x坐标二进制信息的比特不一样,则停止对比,记录下当前对比长度,即当前块内每个顶点的x坐标可嵌入信息的长度,块内每个顶点的y坐标和z坐标的处理同x坐标;
步骤2.3,将块内第二个顶点作为辅助信息点,将辅助信息点的x,y,z坐标二进制信息的前5位作为辅助信息位,辅助信息位用于记录该块可嵌入信息的长度;
其中,可嵌入信息的长度需转换成二进制比特信息,以便于放入辅助信息点的前5个比特位置,表达式为:(3)
式(3)中,b表示可嵌入信息长度的二进制形式;M表示可嵌入信息的长度为十进制形式;t=0,1…4;
步骤3,对步骤2处理的3D网格文件进行加密;
步骤3的具体过程为:
步骤3.1,设置秘钥密钥K,使用流密码函数产生伪随机比特流,每个块内辅助信息点的前5位即所嵌入的辅助信息不做加密处理,则对每个块的辅助信息点的前5位之外的所有顶点的二进制比特信息与伪随机比特流做异或操作,从而进行加密;
(4)
式(4)中, 是密钥比特流; 是顶点的二进制比特流信息, 是生成的密文,表示异或操作;
步骤3.2,将步骤3.1加密后的顶点的二进制信息转成十进制数,表达式为:(5)
式(5)中, 表示转换后的十进制数;p表示二进制信息比特位置;
步骤4,将步骤3加密后的3D网格文件上传至云端,云端将接收到的3D网格文件重复步骤1和步骤2,得到块信息,进行数据嵌入,将嵌入数据后的二进制顶点转换成十进制数,得到处理后的3D网格文件;
步骤5,提取处理后的3D网格文件中的嵌入数据;
步骤5的具体过程为:
将步骤4得到的处理后的的3D网格文件重复步骤1和步骤2.1操作,得到与步骤2.1相同的块信息,读取当前块内的辅助信息点坐标二进制比特信息,得到可嵌入信息长度及嵌入位置,根据可嵌入信息长度,循环遍历读取当前块内除第一个顶点和第二顶点外的其他顶点从最高有效位到可嵌入信息长度的比特,即所嵌入的信息,再将嵌入的信息提取出来;
步骤6,解密3D网格文件;
步骤6的具体过程为:
步骤6.1,在接收端进行解密,接收端收到步骤5处理后的3D网格文件,重复步骤1和步骤2.1操作,得到与步骤2.1相同的块信息;
步骤6.2,将伪随机比特流与块内参考中心点的二进制比特信息作异或操作,则恢复出参考中心点,即块内第一个顶点;
步骤6.3,读取当前块内的辅助信息点坐标二进制比特信息,得到可嵌入信息长度,再根据块内第一个顶点的二进制比特信息,即可恢复出块内其他点的初始比特信息,完成3D网格的解密恢复。
2.根据权利要求1所述的基于分块和多MSB预测的3D网格可逆信息隐藏算法,其特征在于,步骤1的具体过程为:步骤1 .1,读取原始3D网格文件中的顶点数据和面数据,顶点数据为,其中 ,x,y,z表示当前顶的点x,y,z坐标,N表示顶点个数;
步骤1.2,将顶点的浮点数坐标通过整数映射为对应的十进制数坐标,则每个顶点的坐标都可以映射为 ;
,j=x,y,z(1)
式(1)中, 表示原始坐标点, 表示映射后的整数,k表示精度;
步骤1.3,将步骤1.2得到的十进制数坐标转换成二进制比特信息,表达式为:(2)
式(2)中, 表示顶点的二进制比特信息; 表示映射后的整数;q=0,1…31。
3.根据权利要求1所述的基于分块和多MSB预测的3D网格可逆信息隐藏算法,其特征在于,步骤4的具体过程为:步骤4.1,将步骤3加密后3D网格文件上传到云端,云端接收到加密后的3D网格文件,重复步骤1和步骤2.1,得到与步骤2.1相同的块信息,读取当前块内的辅助信息点坐标二进制比特信息,得到当前块可嵌入信息长度及嵌入位置,进行嵌入;
当前块可嵌入信息是长度为5的二进制比特信息,需要将该二进制信息转成十进制,表达式为:(6)
式(6)中,b表示可嵌入信息长度的二进制,M为可嵌入信息长度十进制,p表示二进制信息比特位置;
步骤4.2,将步骤4.1嵌入后的顶点二进制比特信息转换成十进制数,得到处理后的3D网格文件并进行存储。