CN114298882A - Cad数据的水印的嵌入方法、追溯方法以及电子设备 - Google Patents
Cad数据的水印的嵌入方法、追溯方法以及电子设备 Download PDFInfo
- Publication number
- CN114298882A CN114298882A CN202111518761.2A CN202111518761A CN114298882A CN 114298882 A CN114298882 A CN 114298882A CN 202111518761 A CN202111518761 A CN 202111518761A CN 114298882 A CN114298882 A CN 114298882A
- Authority
- CN
- China
- Prior art keywords
- data
- watermark
- dark
- cad
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Editing Of Facsimile Originals (AREA)
- Image Processing (AREA)
Abstract
本申请提供了一种CAD数据的水印的嵌入方法、追溯方法以及电子设备,CAD数据的水印的嵌入方法包括:首先,获取初始CAD数据库中目标表的数据类型,数据类型包括数值型以及非数值型;然后,根据数据类型,生成暗水印;最后,将暗水印随机***目标表中。相比现有技术中CAD数据的水印保护抗干扰能力不强的问题,本申请的CAD数据的水印的嵌入方法,根据CAD数据库中的目标表的数据类型生成暗水印,并随机***目标表中,保证了暗水印的抗干扰性强,方便后续追溯。
Description
技术领域
本申请涉及水印技术领域,具体而言,涉及一种CAD数据的水印的嵌入方法、追溯方法、计算机可读存储介质、处理器以及电子设备。
背景技术
现有技术中,企业设计的CAD(Computer Aided Design,计算机辅助设计)工程图源文件需要外发给多个供应商寻价,寻找合格供应商的过程中,相应地出现了有意或无意地传播、复制、修改等侵权行为,为了保证数据的安全,亟需一种技术手段能从隐含的CAD数据信息中追溯出该数据的身份,并且具有一定的抗水印破坏能力,数字水印技术作为一种有效的保护数据版权手段被广泛应用。数字水印技术就是在受保护的原始数据中找出冗余的特征信息从而编码嵌入秘密信息(数字水印),用以证实数据的所有权的一种技术。
对CAD数据进行版权保护以及溯源,现有水印技术包括线框模型、实体模型等表示法,以及表面表示法及表面表示法的改进算法。这些算法在嵌入水印的时候对水印信息容量有一定的要求,信息量太少不足以唯一地确定水印信息,常见的水印信息有设计者的姓名、身份证号、产品的序列号、公司的标识和网址或其他有意义的内容。信息量嵌入太多又会导致失真,影响了原始数据的透明性;这些算法在提取的时候,如源文件被攻击后从被修改的数据中提取嵌入信息时,鲁棒性不高,抗干扰能力不强,导致追溯受到阻碍。
发明内容
本申请的主要目的在于提供一种CAD数据的水印的嵌入方法、追溯方法、计算机可读存储介质、处理器以及电子设备,以解决现有技术中CAD数据的水印保护抗干扰能力不强的问题。
根据本发明实施例的一个方面,提供了一种CAD数据的水印的嵌入方法,包括:获取初始CAD数据库中目标表的数据类型,所述数据类型包括数值型以及非数值型;根据所述数据类型,生成暗水印;将所述暗水印随机***所述目标表中。
可选地,获取初始CAD数据库中目标表的数据类型,包括:解析所述初始CAD数据库,得到多个表;采用随机算法从各所述表中确定至少一个所述目标表;获取所述目标表中预定行或预定列的各单元格的所述数据类型。
可选地,所述暗水印包括至少一行或者至少一列的仿真数据,根据所述数据类型,生成暗水印,包括:在所述单元格的所述数据类型为所述数值型的情况下,采用伪随机数算法生成所述单元格的仿真子数据;在所述单元格的所述数据类型为所述非数值型的情况下,从所述初始CAD数据库的数据字典中随机抽取所述非数值型的数据组成所述仿真子数据;各所述仿真子数据构成一行或者一列的所述仿真数据。
可选地,在所述单元格的所述数据类型为所述数值型的情况下,采用伪随机数算法生成所述单元格的仿真数据,包括:在所述单元格的所述数据类型为所述数值型的情况下,获取所述单元格中数据的数据长度、数字格式以及数值范围;采用伪随机数算法生成与所述数据长度、所述数字格式以及所述数值范围相同的所述仿真数据。
可选地,将所述暗水印随机***所述目标表中,包括:生成所述暗水印对应的明水印,所述明水印包括目标表的主键与预定数据中的至少一个、所述暗水印对应的哈希值、用户签名以及嵌入时间,其中,所述预定数据为预定单元格中的数据,所述预定单元格为所述暗水印中各所述行或者各所述列的至少一个单元格,所述用户签名为对所述初始CAD数据库中的数据进行预定操作的用户的签名信息,所述预定操作包括访问、下载以及编辑;确定所述暗水印的***位置,所述***位置为所述目标表的预定行或者预定列;将所述暗水印***至所述***位置,得到所述CAD数据库;将所述明水印存储至可信第三方。
可选地,确定所述暗水印的***位置,包括:根据函数hash=Hash(k,r,p)mod(c+c1)生成所述哈希值,其中,k为哈希密码,r为所述暗水印,p为所述主键,c为所述目标表的总行数或者总列数,c1为所述暗水印的总行数或者总列数。
可选地,将所述暗水印随机***所述目标表中,包括:获取预定嵌入占比,其中,所述预定嵌入占比为所述暗水印的数据量与所述目标表的数据量的比值;将所述暗水印按照所述预定嵌入占比随机***所述目标表中。
根据本发明实施例的另一方面,还提供了一种CAD数据的水印的追溯方法,包括:在CAD数据发生泄漏的情况下,获取泄漏的所述CAD数据的CAD数据库,所述CAD数据库包括预定暗水印,所述预定暗水印为采用所述任一种所述的方法嵌入所述CAD数据库中的;获取明水印清单,所述明水印清单包括多个明水印,所述明水印包括目标表的主键与预定数据中的至少一个、暗水印对应的哈希值、用户签名以及嵌入时间,其中,所述预定数据为预定单元格中的数据,所述预定单元格为所述暗水印中各行或者各列的至少一个单元格,所述用户签名为对所述CAD数据库中的数据进行预定操作的用户的签名信息,所述预定操作包括访问、下载以及编辑,所述目标表为***了所述暗水印的所述CAD数据库的表;根据所述CAD数据库以及明水印清单,确定泄漏人员。
可选地,根据所述CAD数据库以及明水印清单,确定泄漏人员,包括:根据所述CAD数据库以及所述明水印清单,确定预定明水印,所述预定明水印为所述明水印清单中与所述预定暗水印对应的所述明水印;确定所述预定明水印中的所述用户签名对应的所述用户为所述泄漏人员。
可选地,根据所述CAD数据库以及所述明水印清单,确定预定明水印,包括:确定所述CAD数据库中是否存在与目标哈希值对应的数据,在所述CAD数据库中存在与所述目标哈希值对应的数据的情况下,确定所述目标哈希值对应的所述明水印为所述预定明水印,所述目标哈希值为各所述哈希值中的一个;在所述CAD数据库中不存在与所述目标哈希值对应的数据的情况下,从所述CAD数据库中查找与目标主键和/或目标数据相同的数据,确定所述目标主键和/或所述目标数据对应的所述明水印为所述预定明水印,各所述主键包括所述目标主键,各所述预定数据包括所述目标数据。
根据本发明实施例的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,所述程序用于执行任一种所述的方法。
根据本发明实施例的再一方面,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行任一种所述的方法。
根据本发明实施例的又一方面,还提供了一种电子设备,包括一个或多个处理器,存储器以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行任一种所述的方法。
在本发明实施例中,所述的CAD数据的水印的嵌入方法中,首先,获取初始CAD数据库中目标表的数据类型,所述数据类型包括数值型以及非数值型;然后,根据所述数据类型,生成暗水印;最后,将所述暗水印随机***所述目标表中。相比现有技术中CAD数据的水印保护抗干扰能力不强的问题,本申请的所述CAD数据的水印的嵌入方法,根据所述CAD数据库中的目标表的数据类型生成所述暗水印,并随机***所述目标表中,保证了暗水印的抗干扰性强,方便后续追溯。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1示出了根据本申请的实施例的CAD数据的水印的嵌入方法流程的示意图;
图2示出了根据本申请的实施例的CAD数据的水印的嵌入方法的流程图;
图3示出了根据本申请的实施例的CAD数据的水印的追溯方法的流程示意图;
图4示出了根据本申请的实施例的AutoCAD数据文件的示意图;
图5示出了根据本申请的实施例的AutoCAD的数据库的结构表的示意图;
图6以及图7示出了不同位置嵌入暗水印后得到的图层表ACAD_LAYOUT的示意图;
图8示出了暗水印对应的明水印的内容示意图;
图9示出了根据本申请的实施例的CAD数据的水印的嵌入装置的示意图;
图10示出了根据本申请的实施例的CAD数据的水印的追溯装置的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应该理解的是,当元件(诸如层、膜、区域、或衬底)描述为在另一元件“上”时,该元件可直接在该另一元件上,或者也可存在中间元件。而且,在说明书以及权利要求书中,当描述有元件“连接”至另一元件时,该元件可“直接连接”至该另一元件,或者通过第三元件“连接”至该另一元件。
正如背景技术中所说的,现有技术中的CAD数据的水印保护抗干扰能力不强,为了解决上述问题,本申请的一种典型的实施方式中,提供了一种CAD数据的水印的嵌入方法、追溯方法、计算机可读存储介质、处理器以及电子设备。
根据本申请的实施例,提供了一种CAD数据的水印的嵌入方法。
图1是根据本申请实施例的CAD数据的水印的嵌入方法的流程图。如图1所示,该方法包括以下步骤:
步骤S101,获取初始CAD数据库中目标表的数据类型,上述数据类型包括数值型以及非数值型;
步骤S102,根据上述数据类型,生成暗水印;
步骤S103,将上述暗水印随机***上述目标表中。
上述的CAD数据的水印的嵌入方法中,首先,获取初始CAD数据库中目标表的数据类型,上述数据类型包括数值型以及非数值型;然后,根据上述数据类型,生成暗水印;最后,将上述暗水印随机***上述目标表中。相比现有技术中CAD数据的水印保护抗干扰能力不强的问题,本申请的上述CAD数据的水印的嵌入方法,根据上述CAD数据库中的目标表的数据类型生成上述暗水印,并随机***上述目标表中,保证了暗水印的抗干扰性强,方便后续追溯。
根据本申请的一种具体实施例,获取初始CAD数据库中目标表的数据类型,包括:解析上述初始CAD数据库,得到多个表;采用随机算法从各上述表中确定至少一个上述目标表;获取上述目标表中预定行或预定列的各单元格的上述数据类型。通过获取上述CAD数据库中的至少一个目标表中行或列的数据类型,方便了后续根据得到的数据类型生成上述目标表的暗水印,进一步地保证了生成的上述暗水印与上述目标表的数据类型一致,从而进一步地保证了上述暗水印的真实性较高,进一步地保证了上述暗水印的抗干扰性较好。
在实际的应用过程中,当上述目标表的各标题按行分布时,获取上述目标表中预定行或预定列的各单元格的上述数据类型,表明获取上述目标表中预定行的各单元格的上述数据类型;当上述目标表的各标题按列分布时,获取上述目标表中预定行或预定列的各单元格的上述数据类型,则表明获取上述目标表中预定列的各单元格的上述数据类型。
根据本申请的另一种具体实施例,上述暗水印包括至少一行或者至少一列的仿真数据,根据上述数据类型,生成暗水印,包括:在上述单元格的上述数据类型为上述数值型的情况下,采用伪随机数算法生成上述单元格的仿真子数据;在上述单元格的上述数据类型为上述非数值型的情况下,从上述初始CAD数据库的数据字典中随机抽取上述非数值型的数据组成上述仿真子数据;各上述仿真子数据构成一行或者一列的上述仿真数据。按照上述单元格的数据类型为数值型和非数值型两类,采用不同方法生成上述仿真子数据,可保证最后生成的上述仿真数据与上述原数据较为相似,进一步地保证了上述暗水印的真实性较高,从而进一步地保证了上述暗水印的抗干扰性较好。
具体的,上述非数值型数据包含非数值数据以及数值数据与非数值数据结合的数据,如文本型、图像型数据,采用数据字典抽取的方式,通过在初始CAD数据库的数据字典中随机抽取的方法,抽取数据字典的已有同类数据,生成仿真数据中的文本型属性。若该属性为文本型和数字的组合属性,则需要将该属性分为不同的字段分别生成。其中数据字典指的是记录数据库元数据的目录,是数据的信息集合,主要包括数据项,数据结构,数据流与其存储及处理过程。
为了进一步地保证后续生成的仿真数据与上述原数据较为相似,进一步地保证上述暗水印的真实性较高,根据本申请的又一种具体实施例,在上述单元格的上述数据类型为上述数值型的情况下,采用伪随机数算法生成上述单元格的仿真数据,包括:在上述单元格的上述数据类型为上述数值型的情况下,获取上述单元格中数据的数据长度、数字格式以及数值范围;采用伪随机数算法生成与上述数据长度、上述数字格式以及上述数值范围相同的上述仿真数据。通过生成与上述数据长度、上述数字格式以及上述数值范围相同的上述仿真数据,保证了产生的上述仿真数据与上述单元格有相同类型的数据格式、数据长度以及数值范围,进一步地保证了后续生成的仿真数据与上述原数据较为相似,进一步地保证了上述暗水印的真实性较高,从而进一步地保证了上述暗水印的抗干扰性较好。
根据本申请的一种具体实施例,将上述暗水印随机***上述目标表中,包括:生成上述暗水印对应的明水印,上述明水印包括目标表的主键与预定数据中的至少一个、上述暗水印对应的哈希值、用户签名以及嵌入时间,其中,上述预定数据为预定单元格中的数据,上述预定单元格为上述暗水印中各上述行或者各上述列的至少一个单元格,上述用户签名为对上述初始CAD数据库中的数据进行预定操作的用户的签名信息,上述预定操作包括访问、下载以及编辑;确定上述暗水印的***位置,上述***位置为上述目标表的预定行或者预定列;将上述暗水印***至上述***位置,得到上述CAD数据库;将上述明水印存储至可信第三方。通过生成上述暗水印对应的明水印,并通过上述函数确定暗水印***上述目标表的位置,将上述暗水印***该位置处,保证了上述暗水印与上述明水印的有一一对应关系,方便后续追溯,将上述明水印存储至可信第三方,进一步地保证了溯源可靠性较高。
具体地,上述预定操作包括修改记录,删除记录,***记录,或者是2种或3种组合的混合攻击。上述暗水印对应的哈希值是采用哈希算法处理上述暗水印得到的,上述哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。
在实际的应用过程中,上述可信第三方包括区块链。
根据本申请的另一种具体实施例,确定上述暗水印的***位置,包括:根据函数hash=Hash(k,r,p)mod(c+c1)确定上述***位置,其中,k为哈希密码,r为上述暗水印,p为上述主键,c为上述目标表的总行数或者总列数,c1为上述暗水印的总行数或者总列数。上述方法可提供快速的***操作和查找操作,编程实现也相对容易,进一步地方便后续溯源。
具体地,上述暗水印可以多级嵌入,即向已经嵌入暗水印的目标表中再次嵌入新的暗水印,且下一级嵌入的暗水印不会影响上一级已经嵌入的暗水印,保证了后续可追踪多级泄密通道,保证了后续溯源更彻底。由于在水印生成和嵌入过程中,采用基于伪随机数算法和数据字典抽取法生成的高仿真暗水印信息嵌入到对象表中,嵌入位置按哈希取模算法确定,因此多级嵌入且互不干扰。
根据本申请的又一种具体实施例,将上述暗水印随机***上述目标表中,包括:获取预定嵌入占比,其中,上述预定嵌入占比为上述暗水印的数据量与上述目标表的数据量的比值;将上述暗水印按照上述预定嵌入占比随机***上述目标表中。
一种具体的实施例中,上述预定嵌入占比的范围为10%~30%。上述暗水印的嵌入占比的范围为10%~30%,一方面保证了嵌入数据不会太少,保证了鲁棒性较好,另一方面也保证了嵌入数据不会太多,解决冗余数据的存储问题。
在实际的应用过程中,如果上述目标表中有十行数据,嵌入占比30%,则嵌入三行仿真数据的暗水印。
图2为根据本实施例的CAD数据的水印的嵌入流程图,下面将结合图2进行说明。
获取初始CAD数据库中目标表的数据类型,上述数据类型包括数值型以及非数值型;
根据上述数据类型,生成暗水印,在上述单元格的上述数据类型为上述数值型的情况下,采用伪随机数算法生成上述单元格的仿真子数据;在上述单元格的上述数据类型为上述非数值型的情况下,从上述初始CAD数据库的数据字典中随机抽取上述非数值型的数据组成上述仿真子数据;各上述仿真子数据构成一行或者一列的上述仿真数据。
生成暗水印对应的明水印;
计算上述暗水印待嵌入的位置索引号;
上述暗水印根据上述位置索引号随机***上述目标表中;
将上述明水印存储至可信第三方;
确定是否多级嵌入,如果是多级嵌入,返回根据数据类型重新分类;如果不是多级嵌入,结束。
根据申请的实施例,还提供了一种CAD数据的水印的追溯方法。
图3是根据本申请实施例的CAD数据的水印的追溯方法的流程图。如图3所示,该方法包括以下步骤:
步骤S201,在CAD数据发生泄漏的情况下,获取泄漏的上述CAD数据的CAD数据库,上述CAD数据库包括预定暗水印,上述预定暗水印为采用任一项上述的方法嵌入上述CAD数据库中的;
步骤S202,获取明水印清单,上述明水印清单包括多个明水印,上述明水印包括目标表的主键与预定数据中的至少一个、暗水印对应的哈希值、用户签名以及嵌入时间,其中,上述预定数据为预定单元格中的数据,上述预定单元格为上述暗水印中各行或者各列的至少一个单元格,上述用户签名为对上述CAD数据库中的数据进行预定操作的用户的签名信息,上述预定操作包括访问、下载以及编辑,上述目标表为***了上述暗水印的上述CAD数据库的表;
步骤S203,根据上述CAD数据库以及明水印清单,确定泄漏人员。
上述的CAD数据的水印的追溯方法中,首先,获取泄漏的上述CAD数据的CAD数据库,上述CAD数据库包括预定暗水印,上述预定暗水印为采用任一种上述的方法嵌入上述CAD数据库中的;然后,获取明水印清单,上述明水印清单包括多个明水印,上述明水印包括目标表的主键与预定数据中的至少一个、暗水印对应的哈希值、用户签名以及嵌入时间,其中,上述预定数据为上述暗水印中各行或者各列的至少一个单元格中的数据,上述用户签名为对上述CAD数据库中的数据进行预定操作的用户的签名信息,上述目标表为***了上述暗水印的上述CAD数据库的表;最后,根据上述CAD数据库以及明水印清单,确定泄漏人员。相比现有技术中CAD数据的水印保护抗干扰能力不强的问题,本申请的上述CAD数据的水印的追溯方法中,上述泄漏对应的CAD数据库中的暗水印是根据目标表的数据类型生成并随机***至上述目标表中的,这使得暗水印的抗干扰性强,这样根据上述CAD数据库以及明水印清单,确定泄露人员,保证了可以较为简单且可靠地确定CAD数据的泄漏人员,追溯力较强。
根据本申请的一种具体实施例,根据上述CAD数据库以及明水印清单,确定泄漏人员,包括:根据上述CAD数据库以及上述明水印清单,确定预定明水印,上述预定明水印为上述明水印清单中与上述预定暗水印对应的上述明水印;确定上述预定明水印中的上述用户签名对应的上述用户为上述泄漏人员。由于上述明水印以及上述暗水印的一一对应,且上述明水印中包括上述用户签名,通过上述CAD数据库以及上述明水印清单,确定预定明水印,这样进一步地保证了可较为准确可靠地确定泄露人员。
在实际的应用过程中,在CAD数据发生泄漏的情况下,源文件可分为被攻击过以及未被攻击过两种情况,此时为了进一步地保证溯源较为彻底,根据本申请的另一种具体实施例,根据上述CAD数据库以及上述明水印清单,确定预定明水印,包括:确定上述CAD数据库中是否存在与目标哈希值对应的数据,在上述CAD数据库中存在与上述目标哈希值对应的数据的情况下,确定上述目标哈希值对应的上述明水印为上述预定明水印,上述目标哈希值为各上述哈希值中的一个;在上述CAD数据库中不存在与上述目标哈希值对应的数据的情况下,从上述CAD数据库中查找与目标主键和/或目标数据相同的数据,确定上述目标主键和/或上述目标数据对应的上述明水印为上述预定明水印,各上述主键包括上述目标主键,各上述预定数据包括上述目标数据。在上述CAD数据库中存在与上述目标哈希值对应的数据的情况下,说明源文件未被攻击过或者被攻击过但是未完全破坏所有的暗水印,此时目标表中预定行或者预定列记录的哈希值可以立刻被找到,进而从哈希值中确定目标哈希值对应的上述明水印即为上述预定明水印;而在上述CAD数据库中不存在与上述目标哈希值对应的数据的情况下,说明源文件被攻击过,即被修改记录,删除记录以及***记录中的至少一种,此时,从上述CAD数据库中查找与目标主键和/或目标数据相同的数据,确定上述目标主键和/或上述目标数据对应的上述明水印为上述预定明水印,这样进一步地保证了可靠溯源。
一种具体的实施例中,上述暗水印的嵌入占比的范围为10%~30%,其中,上述嵌入占比为上述暗水印的数据量与上述目标表的数据量的比值。在泄漏人员攻击源文件时,对于随机嵌入的10%~30%的上述暗水印很难准确定位并全部修改。如果找到一条哈希值相同,即可溯源,这样进一步地保证了溯源较为容易。
根据本申请的再一种具体的实施例,上述暗水印可以多级嵌入,即向已经嵌入暗水印的目标表中再次嵌入新的暗水印,且下一级嵌入的暗水印不会影响上一级已经嵌入的暗水印,通过从泄露数据的样本中提取暗水印信息表T,在三方存储的明水印清单U中进行查找,可查找到泄漏人员多级分发时所嵌入的水印,即不同用户具有不同水印,且同一用户不同分级分发时也不尽相同。溯源更彻底。
为了进一步加深对上述CAD数据的水印的嵌入方法以及追溯方法的理解,下面以一个AutoCAD数据文件model.dwg为例,将结合图4至图8进行说明。
AutoCAD数据文件其实是一个数据库,这个数据库记录图形和非图形对象。一共有3种不同类型的对象:实体、容器(管理和存储对象)以及其余对象(包括特殊的没有布局之类的对象);其中容器主要包括***符号表、字典;主要的***符号表包括块表、图层表、线条种类表、文字类型表、视图表、视点表、维度样式表、用户坐标***表、注册应用表。
解析图4后生成的数据库结构如下图5所示:
步骤一水印生成:以图层表ACAD_LAYOUT为例,获取表的数据结构,首先需要暗水印的产生。根据不同数据类型,使用不同的产生规则生成一行中各单元格的仿真子数据。
对于非数值型数据,如文本型数据,采用数据字典抽取的方式,其中数据是分类进行存储的,以便于不同用途的文字进行抽取,比如:Color类包含White,Yellow,Green,Red等字符。若该属性为文本型和数字的组合属性,则需要将该属性分为不同的字段分别生成。如Name属性,前半部分用文本型生成,后半部分用数值型生成。中间用下划线连接。
对于数值型数据,采用伪随机数生成的算法,伪随机数生成算法可采用线性同余法(Congruential method)或马特赛特旋转演(Mersenne Twister)算法。生成器需要配置一些参数,如设定伪随机数的生成范围、长度与数据类型,生成嵌入数据中的数值型属性。图6最后一行就是生成的仿真数据。
步骤二水印嵌入:如图7所示,通过随机算法随机抽取一定比例表,以表ACAD_LAYOUT为例,按表结构生成暗水印后,嵌入到原有数据的算法采用的是sha256哈希算法进行随机***。利用公式hash=Hash(k,r,p)mod(c+c1),其中p是主键AM_3,k是计算哈希密码,r是虚拟出来的暗水印(1,AM_3,1,0,0,white,ContinuousDefault,Color_3,1,),c是此表的原始记录数12,c1是要嵌入的数据量1。通过哈希函数生成哈希值,并对c+c1取模,确定***位置为2,即该暗水印被***第二行的位置,原有位置的数据依次后移,以此达到数据随机置乱的效果,使得数据的真实性更高。
如图8所示,嵌入***存储嵌入的表名,主键,暗水印对应的哈希值、水印字符串和嵌入时间、嵌入的用户名,要将记录的这些数据对应存储到可信任第三方,如区块链等,以此保证溯源的真实性和有效性。
在数据进行多级分发时,可多次嵌入新的暗水印。即在水印表中追加多行,且下一级嵌入的暗水印不会影响上一级已经嵌入的暗水印。
步骤三水印溯源:在数据泄露之后,从泄露文件中提前待检测的数据库表的结构和内容。通过比对疑似泄露数据的CAD数据库和明水印清单U,提取CAD数据库存入表T中;获取三方存储的明水印清单U。对未被攻击的源文件,T表中每一行记录的hash在U表中立刻被找到,完成溯源;对被攻击过的源文件,攻击方法包括修改记录,删除记录,***记录,或者是2种或3种组合的混合攻击,对于随机嵌入的10%~30%暗水印很难准确定位并全部修改。如果找到一条hash相同,即可完成溯源。如果一条hash也没找到,将T中每一条数据R(i)与明水印清单U中数据内容(表名,主键)比对。找到也可完成溯源。同样的方法可查找到用户多级分发时所嵌入的水印,即不同用户具有不同水印,且同一用户不同分级分发时也有水印,溯源更彻底。
本申请实施例还提供了一种CAD数据的水印的嵌入装置,上述装置可以应用于服务器,需要说明的是,本申请实施例的CAD数据的水印的嵌入装置可以用于执行本申请实施例所提供的应用于服务器端的CAD数据的水印的嵌入方法。以下对本申请实施例提供的CAD数据的水印的嵌入装置进行介绍。
图9是根据本申请实施例的CAD数据的水印的嵌入装置的示意图。如图9所示,该装置包括第一获取单元10、生成单元20以及***单元30,其中,上述第一获取单元10用于获取初始CAD数据库中目标表的数据类型,上述数据类型包括数值型以及非数值型;上述生成单元20用于根据上述数据类型,生成暗水印;上述***单元30用于将上述暗水印随机***上述目标表中。
上述的CAD数据的水印的嵌入装置中,通过上述第一获取单元获取初始CAD数据库中目标表的数据类型,上述数据类型包括数值型以及非数值型;通过上述生成单元根据上述数据类型,生成暗水印;通过上述***单元将上述暗水印随机***上述目标表中。相比现有技术中CAD数据的水印保护抗干扰能力不强的问题,本申请的上述CAD数据的水印的嵌入装置,根据上述CAD数据库中的目标表的数据类型生成上述暗水印,并随机***上述目标表中,保证了暗水印的抗干扰性强,方便后续追溯。
根据本申请的一种具体实施例,上述第一获取单元包括解析模块、第一确定模块以及第一获取模块,其中,上述解析模块用于解析上述初始CAD数据库,得到多个表;上述第一确定模块用于采用随机算法从各上述表中确定至少一个上述目标表;上述第一获取模块用于获取上述目标表中预定行或预定列的各单元格的上述数据类型。通过获取上述CAD数据库中的至少一个目标表中行或列的数据类型,方便了后续根据得到的数据类型生成上述目标表的暗水印,进一步地保证了生成的上述暗水印与上述目标表的数据类型一致,从而进一步地保证了上述暗水印的真实性较高,进一步地保证了上述暗水印的抗干扰性较好。
在实际的应用过程中,当上述目标表的各标题按行分布时,获取上述目标表中预定行或预定列的各单元格的上述数据类型,表明获取上述目标表中预定行的各单元格的上述数据类型;当上述目标表的各标题按列分布时,获取上述目标表中预定行或预定列的各单元格的上述数据类型,则表明获取上述目标表中预定列的各单元格的上述数据类型。
根据本申请的另一种具体实施例,上述暗水印包括至少一行或者至少一列的仿真数据,上述生成单元包括第一生成模块、组成模块以及构成模块,其中,上述第一生成模块用于在上述单元格的上述数据类型为上述数值型的情况下,采用伪随机数算法生成上述单元格的仿真子数据;上述组成模块用于在上述单元格的上述数据类型为上述非数值型的情况下,从上述初始CAD数据库的数据字典中随机抽取上述非数值型的数据组成上述仿真子数据;上述构成模块用于各上述仿真子数据构成一行或者一列的上述仿真数据。按照上述单元格的数据类型为数值型和非数值型两类,采用不同模块生成上述仿真子数据,可保证最后生成的上述仿真数据与上述原数据较为相似,进一步地保证了上述暗水印的真实性较高,从而进一步地保证了上述暗水印的抗干扰性较好。
具体的,上述非数值型数据包含非数值数据以及数值数据与非数值数据结合的数据,如文本型、图像型数据,采用数据字典抽取的方式,通过在初始CAD数据库的数据字典中随机抽取的方法,抽取数据字典的已有同类数据,生成仿真数据中的文本型属性。若该属性为文本型和数字的组合属性,则需要将该属性分为不同的字段分别生成。其中数据字典指的是记录数据库元数据的目录,是数据的信息集合,主要包括数据项,数据结构,数据流与其存储及处理过程。
为了进一步地保证后续生成的仿真数据与上述原数据较为相似,进一步地保证上述暗水印的真实性较高,根据本申请的又一种具体实施例,上述第一生成模块包括获取子模块以及生成子模块,其中,上述获取子模块用于在上述单元格的上述数据类型为上述数值型的情况下,获取上述单元格中数据的数据长度、数字格式以及数值范围;上述生成子模块用于采用伪随机数算法生成与上述数据长度、上述数字格式以及上述数值范围相同的上述仿真数据。通过生成与上述数据长度、上述数字格式以及上述数值范围相同的上述仿真数据,保证了产生的上述仿真数据与上述单元格有相同类型的数据格式、数据长度以及数值范围,进一步地保证了后续生成的仿真数据与上述原数据较为相似,进一步地保证了上述暗水印的真实性较高,从而进一步地保证了上述暗水印的抗干扰性较好。
根据本申请的一种具体实施例,上述***单元包括第二生成模块、第六确定模块、第一***模块以及存储模块,其中,上述第二生成模块用于生成上述暗水印对应的明水印,上述明水印包括目标表的主键与预定数据中的至少一个、上述暗水印对应的哈希值、用户签名以及嵌入时间,其中,上述预定数据为预定单元格中的数据,上述预定单元格为上述暗水印中各上述行或者各上述列的至少一个单元格,上述用户签名为对上述初始CAD数据库中的数据进行预定操作的用户的签名信息,上述预定操作包括访问、下载以及编辑;上述第六确定模块用于确定上述暗水印的***位置,上述***位置为上述目标表的预定行或者预定列;上述第一***模块用于将上述暗水印***至上述***位置,得到上述CAD数据库;;上述存储模块用于将上述明水印存储至可信第三方。通过生成上述暗水印对应的明水印,并通过上述函数确定暗水印***上述目标表的位置,将上述暗水印***该位置处,保证了上述暗水印与上述明水印的有一一对应关系,方便后续追溯,将上述明水印存储至可信第三方,进一步地保证了溯源可靠性较高。
具体地,上述预定操作包括修改记录,删除记录,***记录,或者是2种或3种组合的混合攻击。上述暗水印对应的哈希值是采用哈希算法处理上述暗水印得到的,上述哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。
在实际的应用过程中,上述可信第三方包括区块链。
根据本申请的另一种具体实施例,上述第六确定模块包括确定子模块,上述确定子模块用于根据函数hash=Hash(k,r,p)mod(c+c1)确定上述***位置,其中,k为哈希密码,r为上述暗水印,p为上述主键,c为上述目标表的总行数或者总列数,c1为上述暗水印的总行数或者总列数。上述装置可提供快速的***操作和查找操作,编程实现也相对容易,进一步地方便后续溯源。
具体地,上述暗水印可以多级嵌入,即向已经嵌入暗水印的目标表中再次嵌入新的暗水印,且下一级嵌入的暗水印不会影响上一级已经嵌入的暗水印,保证了后续可追踪多级泄密通道,保证了后续溯源更彻底。由于在水印生成和嵌入过程中,采用基于伪随机数算法和数据字典抽取法生成的高仿真暗水印信息嵌入到对象表中,嵌入位置按哈希取模算法确定,因此多级嵌入且互不干扰。
根据本申请的又一种具体实施例,上述***单元包括第二获取模块以及第二***模块,其中,上述第二获取模块用于获取预定嵌入占比,其中,上述预定嵌入占比为上述暗水印的数据量与上述目标表的数据量的比值;上述第二***模块用于将上述暗水印按照上述预定嵌入占比随机***上述目标表中。
一种具体的实施例中,上述预定嵌入占比的范围为10%~30%。上述暗水印的嵌入占比的范围为10%~30%,一方面保证了嵌入数据不会太少,保证了鲁棒性较好,另一方面也保证了嵌入数据不会太多,解决冗余数据的存储问题。
在实际的应用过程中,如果上述目标表中有十行数据,嵌入占比30%,则嵌入三行仿真数据的暗水印。
本申请实施例还提供了一种CAD数据的水印的追溯装置,需要说明的是,本申请实施例的CAD数据的水印的追溯装置可以用于执行本申请实施例所提供的应用于终端的CAD数据的水印的追溯方法。以下对本申请实施例提供的CAD数据的水印的追溯装置进行介绍。
图10是根据本申请实施例的CAD数据的水印的追溯装置的示意图。如图10所示,该装置包括第二获取单元40、第三获取单元50以及确定单元60,其中,上述第二获取单元40用于在CAD数据发生泄漏的情况下,获取泄漏的上述CAD数据的CAD数据库,上述CAD数据库包括预定暗水印,上述预定暗水印为采用任一种上述的方法嵌入上述CAD数据库中的;上述第三获取单元50用于获取明水印清单,上述明水印清单包括多个明水印,上述明水印包括目标表的主键与预定数据中的至少一个、暗水印对应的哈希值、用户签名以及嵌入时间,其中,上述预定数据为预定单元格中的数据,上述预定单元格为上述暗水印中各行或者各列的至少一个单元格,上述用户签名为对上述CAD数据库中的数据进行预定操作的用户的签名信息,上述预定操作包括访问、下载以及编辑,上述目标表为***了上述暗水印的上述CAD数据库的表;上述确定单元60用于根据上述CAD数据库以及明水印清单,确定泄漏人员。
上述的CAD数据的水印的追溯装置中,通过上述第二获取单元获取泄漏的上述CAD数据的CAD数据库,上述CAD数据库包括预定暗水印,上述预定暗水印为采用任一种上述的方法嵌入上述CAD数据库中的;通过上述第三获取单元获取明水印清单,上述明水印清单包括多个明水印,上述明水印包括目标表的主键与预定数据中的至少一个、暗水印对应的哈希值、用户签名以及嵌入时间,其中,上述预定数据为上述暗水印中各行或者各列的至少一个单元格中的数据,上述用户签名为对上述CAD数据库中的数据进行预定操作的用户的签名信息,上述目标表为***了上述暗水印的上述CAD数据库的表;通过上述确定单元根据上述CAD数据库以及明水印清单,确定泄漏人员。相比现有技术中CAD数据的水印保护抗干扰能力不强的问题,本申请的上述CAD数据的水印的追溯装置中,上述泄漏对应的CAD数据库中的暗水印是根据目标表的数据类型生成并随机***至上述目标表中的,这使得暗水印的抗干扰性强,这样根据上述CAD数据库以及明水印清单,确定泄露人员,保证了可以较为简单且可靠地确定CAD数据的泄漏人员,追溯力较强。
根据本申请的一种具体实施例,上述确定单元包括第二确定模块以及第三确定模块,其中,上述第二确定模块用于根据上述CAD数据库以及上述明水印清单,确定预定明水印,上述预定明水印为上述明水印清单中与上述预定暗水印对应的上述明水印;上述第三确定模块用于确定上述预定明水印中的上述用户签名对应的上述用户为上述泄漏人员。由于上述明水印以及上述暗水印的一一对应,且上述明水印中包括上述用户签名,通过上述CAD数据库以及上述明水印清单,确定预定明水印,这样进一步地保证了可较为准确可靠地确定泄露人员。
在实际的应用过程中,在CAD数据发生泄漏的情况下,源文件可分为被攻击过以及未被攻击过两种情况,此时为了进一步地保证溯源较为彻底,根据本申请的另一种具体实施例,上述确定单元包括第四确定模块以及第五确定模块,其中,上述第四确定模块用于确定上述CAD数据库中是否存在与目标哈希值对应的数据,在上述CAD数据库中存在与上述目标哈希值对应的数据的情况下,确定上述目标哈希值对应的上述明水印为上述预定明水印,上述目标哈希值为各上述哈希值中的一个;上述第五确定模块用于在上述CAD数据库中不存在与上述目标哈希值对应的数据的情况下,从上述CAD数据库中查找与目标主键和/或目标数据相同的数据,确定上述目标主键和/或上述目标数据对应的上述明水印为上述预定明水印,各上述主键包括上述目标主键,各上述预定数据包括上述目标数据。在上述CAD数据库中存在与上述目标哈希值对应的数据的情况下,说明源文件未被攻击过或者被攻击过但是未完全破坏所有的暗水印,此时目标表中预定行或者预定列记录的哈希值可以立刻被找到,进而从哈希值中确定目标哈希值对应的上述明水印即为上述预定明水印;而在上述CAD数据库中不存在与上述目标哈希值对应的数据的情况下,说明源文件被攻击过,即被修改记录,删除记录以及***记录中的至少一种,此时,从上述CAD数据库中查找与目标主键和/或目标数据相同的数据,确定上述目标主键和/或上述目标数据对应的上述明水印为上述预定明水印,这样进一步地保证了可靠溯源。
一种具体的实施例中,上述暗水印的嵌入占比的范围为10%~30%,其中,上述嵌入占比为上述暗水印的数据量与上述目标表的数据量的比值。在泄漏人员攻击源文件时,对于随机嵌入的10%~30%的上述暗水印很难准确定位并全部修改。如果找到一条哈希值相同,即可溯源,这样进一步地保证了溯源较为容易。
根据本申请的再一种具体的实施例,上述暗水印可以多级嵌入,即向已经嵌入暗水印的目标表中再次嵌入新的暗水印,且下一级嵌入的暗水印不会影响上一级已经嵌入的暗水印,通过从泄露数据的样本中提取暗水印信息表T,在三方存储的明水印清单U中进行查找,可查找到泄漏人员多级分发时所嵌入的水印,即不同用户具有不同水印,且同一用户不同分级分发时也不尽相同。溯源更彻底。
为了进一步加深对上述CAD数据的水印的嵌入装置以及追溯装置的理解,下面以一个AutoCAD数据文件model.dwg为例,将结合图4至图8进行说明。
AutoCAD数据文件其实是一个数据库,这个数据库记录图形和非图形对象。一共有3种不同类型的对象:实体、容器(管理和存储对象)以及其余对象(包括特殊的没有布局之类的对象);其中容器主要包括***符号表、字典;主要的***符号表包括块表、图层表、线条种类表、文字类型表、视图表、视点表、维度样式表、用户坐标***表、注册应用表。
解析图4后生成的数据库结构如下图5所示:
步骤一水印生成:以图层表ACAD_LAYOUT为例,获取表的数据结构,首先需要暗水印的产生。根据不同数据类型,使用不同的产生规则生成一行中各单元格的仿真子数据。
对于非数值型数据,如文本型数据,采用数据字典抽取的方式,其中数据是分类进行存储的,以便于不同用途的文字进行抽取,比如:Color类包含White,Yellow,Green,Red等字符。若该属性为文本型和数字的组合属性,则需要将该属性分为不同的字段分别生成。如Name属性,前半部分用文本型生成,后半部分用数值型生成。中间用下划线连接。
对于数值型数据,采用伪随机数生成的算法,伪随机数生成算法可采用线性同余法(Congruential method)或马特赛特旋转演(Mersenne Twister)算法。生成器需要配置一些参数,如设定伪随机数的生成范围、长度与数据类型,生成嵌入数据中的数值型属性。图6最后一行就是生成的仿真数据。
步骤二水印嵌入:如图7所示,通过随机算法随机抽取一定比例表,以表ACAD_LAYOUT为例,按表结构生成暗水印后,嵌入到原有数据的算法采用的是sha256哈希算法进行随机***。利用公式hash=Hash(k,r,p)mod(c+c1),其中p是主键AM_3,k是计算哈希密码,r是虚拟出来的暗水印(1,AM_3,1,0,0,white,ContinuousDefault,Color_3,1,),c是此表的原始记录数12,c1是要嵌入的数据量1。通过哈希函数生成哈希值,并对c+c1取模,确定***位置为2,即该暗水印被***第二行的位置,原有位置的数据依次后移,以此达到数据随机置乱的效果,使得数据的真实性更高。
如图8所示,嵌入***存储嵌入的表名,主键,暗水印对应的哈希值、水印字符串和嵌入时间、嵌入的用户名,要将记录的这些数据对应存储到可信任第三方,如区块链等,以此保证溯源的真实性和有效性。
在数据进行多级分发时,可多次嵌入新的暗水印。即在水印表中追加多行,且下一级嵌入的暗水印不会影响上一级已经嵌入的暗水印。
步骤三水印溯源:在数据泄露之后,从泄露文件中提前待检测的数据库表的结构和内容。通过比对疑似泄露数据的CAD数据库和明水印清单U,提取CAD数据库存入表T中;获取三方存储的明水印清单U。对未被攻击的源文件,T表中每一行记录的hash在U表中立刻被找到,完成溯源;对被攻击过的源文件,攻击方法包括修改记录,删除记录,***记录,或者是2种或3种组合的混合攻击,对于随机嵌入的10%~30%暗水印很难准确定位并全部修改。如果找到一条hash相同,即可完成溯源。如果一条hash也没找到,将T中每一条数据R(i)与明水印清单U中数据内容(表名,主键)比对。找到也可完成溯源。同样的方法可查找到用户多级分发时所嵌入的水印,即不同用户具有不同水印,且同一用户不同分级分发时也有水印,溯源更彻底。
根据本发明实施例的又一方面,还提供了一种计算机可读存储介质,上述计算机可读存储介质包括存储的程序,其中,上述程序用于执行任一种上述的方法。
根据本发明实施例的再一方面,还提供了一种处理器,上述处理器用于运行程序,其中,上述程序运行时执行任一种上述的方法。
根据本发明实施例的又一方面,还提供了一种电子设备,包括一个或多个处理器,存储器以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置为由上述一个或多个处理器执行,上述一个或多个程序包括用于执行任一种上述的方法。
本发明实施例提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现上述CAD数据的水印的嵌入方法或者执行上述CAD数据的水印的追溯方法。
本发明实施例提供了一种处理器,上述处理器用于运行程序,其中,上述程序运行时执行上述CAD数据的水印的嵌入方法或者执行上述CAD数据的水印的追溯方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现至少以下步骤:
步骤S101,获取初始CAD数据库中目标表的数据类型,上述数据类型包括数值型以及非数值型;
步骤S102,根据上述数据类型,生成暗水印;
步骤S103,将上述暗水印随机***上述目标表中,
或者执行程序时实现至少以下步骤:
步骤S201,在CAD数据发生泄漏的情况下,获取泄漏的上述CAD数据的CAD数据库,上述CAD数据库包括预定暗水印,上述预定暗水印为采用任一项上述的方法嵌入上述CAD数据库中的;
步骤S202,获取明水印清单,上述明水印清单包括多个明水印,上述明水印包括目标表的主键与预定数据中的至少一个、暗水印对应的哈希值、用户签名以及嵌入时间,其中,上述预定数据为预定单元格中的数据,上述预定单元格为上述暗水印中各行或者各列的至少一个单元格,上述用户签名为对上述CAD数据库中的数据进行预定操作的用户的签名信息,上述预定操作包括访问、下载以及编辑,上述目标表为***了上述暗水印的上述CAD数据库的表;
步骤S203,根据上述CAD数据库以及明水印清单,确定泄漏人员。
本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有至少如下方法步骤的程序:
步骤S101,获取初始CAD数据库中目标表的数据类型,上述数据类型包括数值型以及非数值型;
步骤S102,根据上述数据类型,生成暗水印;
步骤S103,将上述暗水印随机***上述目标表中,
或者适于执行初始化有至少如下方法步骤的程序:
步骤S201,在CAD数据发生泄漏的情况下,获取泄漏的上述CAD数据的CAD数据库,上述CAD数据库包括预定暗水印,上述预定暗水印为采用任一项上述的方法嵌入上述CAD数据库中的;
步骤S202,获取明水印清单,上述明水印清单包括多个明水印,上述明水印包括目标表的主键与预定数据中的至少一个、暗水印对应的哈希值、用户签名以及嵌入时间,其中,上述预定数据为预定单元格中的数据,上述预定单元格为上述暗水印中各行或者各列的至少一个单元格,上述用户签名为对上述CAD数据库中的数据进行预定操作的用户的签名信息,上述预定操作包括访问、下载以及编辑,上述目标表为***了上述暗水印的上述CAD数据库的表;
步骤S203,根据上述CAD数据库以及明水印清单,确定泄漏人员。根据本申请的另一种典型的实施例,还提供了一种电子设备,包括一个或多个处理器,存储器以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置为由上述一个或多个处理器执行,上述一个或多个程序包括用于执行任一种上述的方法。
上述电子设备,包括一个或多个处理器,存储器以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置为由上述一个或多个处理器执行,上述一个或多个程序包括用于执行任一种上述的方法。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例上述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
从以上的描述中,可以看出,本申请上述的实施例实现了如下技术效果:
1)、本申请上述的CAD数据的水印的嵌入方法中,首先,获取初始CAD数据库中目标表的数据类型,上述数据类型包括数值型以及非数值型;然后,根据上述数据类型,生成暗水印;最后,将上述暗水印随机***上述目标表中。相比现有技术中CAD数据的水印保护抗干扰能力不强的问题,本申请的上述CAD数据的水印的嵌入方法,根据上述CAD数据库中的目标表的数据类型生成上述暗水印,并随机***上述目标表中,保证了暗水印的抗干扰性强,方便后续追溯。
2)、本申请上述CAD数据的水印的追溯方法中,首先,获取泄漏的上述CAD数据的CAD数据库,上述CAD数据库包括预定暗水印,上述预定暗水印为采用任一种上述的方法嵌入上述CAD数据库中的;然后,获取明水印清单,上述明水印清单包括多个明水印,上述明水印包括目标表的主键与预定数据中的至少一个、暗水印对应的哈希值、用户签名以及嵌入时间,其中,上述预定数据为上述暗水印中各行或者各列的至少一个单元格中的数据,上述用户签名为对上述CAD数据库中的数据进行预定操作的用户的签名信息,上述目标表为***了上述暗水印的上述CAD数据库的表;最后,根据上述CAD数据库以及明水印清单,确定泄漏人员。相比现有技术中CAD数据的水印保护抗干扰能力不强的问题,本申请的上述CAD数据的水印的追溯方法中,上述泄漏对应的CAD数据库中的暗水印是根据目标表的数据类型生成并随机***至上述目标表中的,这使得暗水印的抗干扰性强,这样根据上述CAD数据库以及明水印清单,确定泄露人员,保证了可以较为简单且可靠地确定CAD数据的泄漏人员,追溯力较强。
3)、本申请上述CAD数据的水印的嵌入装置中,通过上述第一获取单元获取初始CAD数据库中目标表的数据类型,上述数据类型包括数值型以及非数值型;通过上述生成单元根据上述数据类型,生成暗水印;通过上述***单元将上述暗水印随机***上述目标表中。相比现有技术中CAD数据的水印保护抗干扰能力不强的问题,本申请的上述CAD数据的水印的嵌入装置,根据上述CAD数据库中的目标表的数据类型生成上述暗水印,并随机***上述目标表中,保证了暗水印的抗干扰性强,方便后续追溯。
4)、本申请上述CAD数据的水印的追溯装置中,通过上述第二获取单元获取泄漏的上述CAD数据的CAD数据库,上述CAD数据库包括预定暗水印,上述预定暗水印为采用任一种上述的方法嵌入上述CAD数据库中的;通过上述第三获取单元获取明水印清单,上述明水印清单包括多个明水印,上述明水印包括目标表的主键与预定数据中的至少一个、暗水印对应的哈希值、用户签名以及嵌入时间,其中,上述预定数据为上述暗水印中各行或者各列的至少一个单元格中的数据,上述用户签名为对上述CAD数据库中的数据进行预定操作的用户的签名信息,上述目标表为***了上述暗水印的上述CAD数据库的表;通过上述确定单元根据上述CAD数据库以及明水印清单,确定泄漏人员。相比现有技术中CAD数据的水印保护抗干扰能力不强的问题,本申请的上述CAD数据的水印的追溯装置中,上述泄漏对应的CAD数据库中的暗水印是根据目标表的数据类型生成并随机***至上述目标表中的,这使得暗水印的抗干扰性强,这样根据上述CAD数据库以及明水印清单,确定泄露人员,保证了可以较为简单且可靠地确定CAD数据的泄漏人员,追溯力较强。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (13)
1.一种CAD数据的水印的嵌入方法,其特征在于,包括:
获取初始CAD数据库中目标表的数据类型,所述数据类型包括数值型以及非数值型;
根据所述数据类型,生成暗水印;
将所述暗水印随机***所述目标表中。
2.根据权利要求1所述的方法,其特征在于,获取初始CAD数据库中目标表的数据类型,包括:
解析所述初始CAD数据库,得到多个表;
采用随机算法从各所述表中确定至少一个所述目标表;
获取所述目标表中预定行或预定列的各单元格的所述数据类型。
3.根据权利要求2所述的方法,其特征在于,所述暗水印包括至少一行或者至少一列的仿真数据,根据所述数据类型,生成暗水印,包括:
在所述单元格的所述数据类型为所述数值型的情况下,采用伪随机数算法生成所述单元格的仿真子数据;
在所述单元格的所述数据类型为所述非数值型的情况下,从所述初始CAD数据库的数据字典中随机抽取所述非数值型的数据组成所述仿真子数据;
各所述仿真子数据构成一行或者一列的所述仿真数据。
4.根据权利要求3所述的方法,其特征在于,在所述单元格的所述数据类型为所述数值型的情况下,采用伪随机数算法生成所述单元格的仿真数据,包括:
在所述单元格的所述数据类型为所述数值型的情况下,获取所述单元格中数据的数据长度、数字格式以及数值范围;
采用伪随机数算法生成与所述数据长度、所述数字格式以及所述数值范围相同的所述仿真数据。
5.根据权利要求1所述的方法,其特征在于,将所述暗水印随机***所述目标表中,包括:
生成所述暗水印对应的明水印,所述明水印包括目标表的主键与预定数据中的至少一个、所述暗水印对应的哈希值、用户签名以及嵌入时间,其中,所述预定数据为预定单元格中的数据,所述预定单元格为所述暗水印中各所述行或者各所述列的至少一个单元格,所述用户签名为对所述初始CAD数据库中的数据进行预定操作的用户的签名信息,所述预定操作包括访问、下载以及编辑;
确定所述暗水印的***位置,所述***位置为所述目标表的预定行或者预定列;
将所述暗水印***至所述***位置,得到所述CAD数据库;
将所述明水印存储至可信第三方。
6.根据权利要求5所述的方法,其特征在于,确定所述暗水印的***位置,包括:
根据函数hash=Hash(k,r,p)mod(c+c1)确定所述***位置,其中,k为哈希密码,r为所述暗水印,p为所述主键,c为所述目标表的总行数或者总列数,c1为所述暗水印的总行数或者总列数。
7.根据权利要求1至6中任一项所述的方法,其特征在于,将所述暗水印随机***所述目标表中,包括:
获取预定嵌入占比,其中,所述预定嵌入占比为所述暗水印的数据量与所述目标表的数据量的比值;
将所述暗水印按照所述预定嵌入占比随机***所述目标表中。
8.一种CAD数据的水印的追溯方法,其特征在于,包括:
在CAD数据发生泄漏的情况下,获取泄漏的所述CAD数据的CAD数据库,所述CAD数据库包括预定暗水印,所述预定暗水印为采用权利要求1至7中任一项所述的方法嵌入所述CAD数据库中的;
获取明水印清单,所述明水印清单包括多个明水印,所述明水印包括目标表的主键与预定数据中的至少一个、暗水印对应的哈希值、用户签名以及嵌入时间,其中,所述预定数据为预定单元格中的数据,所述预定单元格为所述暗水印中各行或者各列的至少一个单元格,所述用户签名为对所述CAD数据库中的数据进行预定操作的用户的签名信息,所述预定操作包括访问、下载以及编辑,所述目标表为***了所述暗水印的所述CAD数据库的表;
根据所述CAD数据库以及明水印清单,确定泄漏人员。
9.根据权利要求8所述的方法,其特征在于,根据所述CAD数据库以及明水印清单,确定泄漏人员,包括:
根据所述CAD数据库以及所述明水印清单,确定预定明水印,所述预定明水印为所述明水印清单中与所述预定暗水印对应的所述明水印;
确定所述预定明水印中的所述用户签名对应的所述用户为所述泄漏人员。
10.根据权利要求8所述的方法,其特征在于,根据所述CAD数据库以及所述明水印清单,确定预定明水印,包括:
确定所述CAD数据库中是否存在与目标哈希值对应的数据,在所述CAD数据库中存在与所述目标哈希值对应的数据的情况下,确定所述目标哈希值对应的所述明水印为所述预定明水印,所述目标哈希值为各所述哈希值中的一个;
在所述CAD数据库中不存在与所述目标哈希值对应的数据的情况下,从所述CAD数据库中查找与目标主键和/或目标数据相同的数据,确定所述目标主键和/或所述目标数据对应的所述明水印为所述预定明水印,各所述主键包括所述目标主键,各所述预定数据包括所述目标数据。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,所述程序执行权利要求1至7中任意一项所述的方法或者执行权利要求8至10中任意一项所述的方法。
12.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至7中任意一项所述的方法或者执行权利要求8至10中任意一项所述的方法。
13.一种电子设备,其特征在于,包括:一个或多个处理器,存储器以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行权利要求1至7中任意一项所述的方法或者执行权利要求8至10中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111518761.2A CN114298882A (zh) | 2021-12-13 | 2021-12-13 | Cad数据的水印的嵌入方法、追溯方法以及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111518761.2A CN114298882A (zh) | 2021-12-13 | 2021-12-13 | Cad数据的水印的嵌入方法、追溯方法以及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114298882A true CN114298882A (zh) | 2022-04-08 |
Family
ID=80967661
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111518761.2A Pending CN114298882A (zh) | 2021-12-13 | 2021-12-13 | Cad数据的水印的嵌入方法、追溯方法以及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114298882A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117473470A (zh) * | 2023-12-28 | 2024-01-30 | 深圳昂楷科技有限公司 | 动态水印生成方法及***、水印溯源方法 |
-
2021
- 2021-12-13 CN CN202111518761.2A patent/CN114298882A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117473470A (zh) * | 2023-12-28 | 2024-01-30 | 深圳昂楷科技有限公司 | 动态水印生成方法及***、水印溯源方法 |
CN117473470B (zh) * | 2023-12-28 | 2024-05-07 | 深圳昂楷科技有限公司 | 动态水印生成方法及***、水印溯源方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109740317A (zh) | 一种基于区块链的数字指纹存证方法及装置 | |
CN110245469B (zh) | 网页的水印生成方法、水印解析方法、装置及存储介质 | |
CN110321675B (zh) | 基于网页水印的生成、溯源方法及装置 | |
US20050021966A1 (en) | Method and system for sustainable digital watermarking | |
CN110688675A (zh) | 基于隐私保护的数据泄露溯源装置、方法及可读存储介质 | |
CN114356919A (zh) | 一种结构化数据库的水印嵌入方法、溯源方法及装置 | |
CN109840401A (zh) | 针对数据文本的水印嵌入方法 | |
CN114298882A (zh) | Cad数据的水印的嵌入方法、追溯方法以及电子设备 | |
CN108090364B (zh) | 一种数据泄漏源的定位方法及*** | |
CN110874456A (zh) | 水印嵌入和水印提取方法、装置及数据处理方法 | |
Sonnleitner | A robust watermarking approach for large databases | |
CN111222181B (zh) | Ai模型的监管方法、***、服务器及存储介质 | |
CN108564520A (zh) | 基于莫兰指数的gis矢量数据版权认证方法 | |
CN116702103A (zh) | 数据库水印处理方法、数据库水印溯源方法及装置 | |
CN111898157A (zh) | 机器学习多源训练集的不经意存储访问方法 | |
CN107533614B (zh) | 用于存储数据的装置和存储介质 | |
CN114357524B (zh) | 电子文档的处理方法及装置 | |
US20220092157A1 (en) | Digital watermarking for textual data | |
Alghamdi et al. | A novel database watermarking technique using blockchain as trusted third party | |
CN110879835A (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN107784478B (zh) | 行政机构信息的处理方法和装置 | |
CN113496451B (zh) | 一种水印添加方法、装置及屏幕图像泄漏追踪方法、装置 | |
CN117909943B (zh) | 一种基于多节点的水印溯源处理方法和*** | |
CN114564704B (zh) | 一种基于位隐藏的最小化失真关系型数据库水印方法 | |
CN117034220B (zh) | 一种数字水印处理方法和*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |