CN114356919A - 一种结构化数据库的水印嵌入方法、溯源方法及装置 - Google Patents
一种结构化数据库的水印嵌入方法、溯源方法及装置 Download PDFInfo
- Publication number
- CN114356919A CN114356919A CN202111589221.3A CN202111589221A CN114356919A CN 114356919 A CN114356919 A CN 114356919A CN 202111589221 A CN202111589221 A CN 202111589221A CN 114356919 A CN114356919 A CN 114356919A
- Authority
- CN
- China
- Prior art keywords
- watermark
- structured database
- field
- data
- ith row
- 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
本申请公开了一种结构化数据库的水印嵌入方法、溯源方法及装置,用以解决目前方案水印无法抵抗主键删除攻击、小批量下载数据导致绕过攻击的问题。本申请结合主密钥、各个接收设备分别对应的标识以及属性组合的数据,生成各个接收设备分别对应第一水印比特值,并将第一水印比特值嵌入到各个接收设备的结构化数据库的可嵌入水印字段中。属性组合采用至少一个不可更改的字段。在对泄露的数据库溯源时,针对每个接收设备确定由不同行的第一水印比特值构成的第一水印比特序列;从泄露的数据库的可嵌入水印字段中获取第二比特序列;通过每个接收设备的第一水印比特序列分别与第二水印比特序列的比较结果确定和溯源到存在数据泄露行为的接收设备。
Description
技术领域
本申请涉及数据安全技术领域,尤其涉及一种结构化数据库的水印嵌入方法、溯源方法及装置。
背景技术
企业重要资产数据通常是以结构化数据的形式存储在数据库或者大数据平台内。企业重要资产数据作为一种新型的生产要素,在企业内部以及企业之间的数据流通和交换需求越来越频繁,增加了数据暴露和数据泄露的风险。数据泄露事件发生后如何溯源是企业数据安全建设的一个关键环节。结构化数据水印(也称数据库水印,以下简称数据水印)作为溯源追责机制的一种有效技术手段,近年来在工业界受到了广泛的关注与研究。目前数据水印技术有基于数据失真的数据水印方法,通过对原始数值型数据进行失真编码来实现水印信息的嵌入。然而,该方法会将水印的嵌入顺序与数据表主键建立关联,攻击者通过下载数据表获得主键,并且可以对主键进行删除或替换,导致在水印溯源的提取过程中,无法按照原有顺序提取到正确的水印信息。因此该方法的水印鲁棒性较差,无法抵抗主键删除攻击,导致溯源的效果较差。此外,数据水印技术还可以通过伪行伪列的方法将伪造生成的新行或新列添加到原始数据表中。但是该方法容易遭受水印绕过攻击,攻击者通过水印嵌入机制实现水印嵌入的绕过,从而获得无水印嵌入的数据,导致溯源功能失效,因此该方法鲁棒性较差。
发明内容
本申请实施例提供了一种结构化数据库的水印嵌入方法、溯源方法及装置,用以解决结构化数据库在传输过程中水印无法抵抗主键删除攻击、小批量下载的绕过攻击的问题。
第一方面,本申请实施例提供了一种结构化数据库的水印嵌入方法,包括:
获取结构化数据库,从所述结构化数据库包括的多个字段中确定属性组合以及可嵌入水印字段;所述结构化数据库包括N行数据,所述结构化数据库待发送给多个接收设备;所述属性组合包括至少一个不可更改的字段,所述可嵌入水印字段包括至少一个具有容忍误差能力的字段;
基于用于生成嵌入水印的主密钥、第一标识以及所述结构化数据库中第i行属性组合包括的字段中的数据,生成所述结构化数据库中第i行的水印比特值;i小于或者等于N且大于0;所述第一标识用于标识第一接收设备,所述第一接收设备为所述多个接收设备中的任一接收设备;
根据所述第i行的水印比特值调整所述结构化数据库中第i行的可嵌入水印字段中的至少一个字段包括的数据;
向所述第一接收设备发送经过数据调整的所述结构化数据库。
基于上述方案,在结构化数据库嵌入水印时,不再依靠主键,而是采用结构化数据库中的属性组合代替主键功能,利用主密钥、属性组合,将接收设备的标识信息嵌入到数据库中,完成结构化数据库的水印嵌入。该方法属性组合包括的字段的数据是有实际意义的数据,攻击者一般不会删除,因此可以避免主键删除攻击。此外,该方法嵌入机制是基于属性组合中的数据,将水印比特值嵌入到数据库的每一行中,因此可以抵抗水印绕过攻击。
一种可能的实现方式中,所述基于用于生成嵌入水印的主密钥、第一标识以及所述结构化数据库中第i行属性组合包括的字段中的数据,生成所述结构化数据库中第i行的水印比特值,包括:
对所述主密钥、所述第一标识以及所述结构化数据库中第i行属性组合包括的字段中的数据进行哈希运算,获得所述结构化数据库中第i行的水印比特值。
在一种可能的实现方式中,所述结构化数据库中第i行的水印比特值满足如下公式所示的条件:
wi=(hash(K||ID||valuei))mod2;
其中,wi为所述结构化数据库中第i行的水印比特值,ID为所述第一接收设备的标识信息,valuei为所述结构化数据库中第i行属性组合包括的字段中的数据对应的字符串,K为所述主密钥。
基于上述方案,本申请实施例通过对主密钥、第一标识以及第i行属性组合包括的字段中的数据进行哈希运算,获得第i行的水印比特值,不再依靠主键,可以避免主键删除攻击。
一种可能的实现方式中,所述根据所述第i行的水印比特值,调整所述结构化数据库中第i行的可嵌入水印字段中至少一个字段包括的数据,包括:
从所述第i行的可嵌入水印字段选择第一字段,根据所述第i行的水印比特值调整所述第i行的第一字段包括的数据。
一些实施例中,所述第一字段满足如下公式所示的条件:
Mi=(hash(K||ID||valuei))modli+1;
其中,li为第i行可嵌入水印字段的总数,Mi表示所述第一字段在li个可嵌入水印字段按照设定顺序排列的位置,Mi小于或者等于li且Mi大于0,ID为所述第一接收设备的标识信息,valuei为所述结构化数据库中第i行属性组合包括的字段中的数据对应的字符串,K为所述结构化数据库的主密钥。
基于上述方案,可以针对每一行的水印比特值调整该行对应的第一字段包括的数据,由于嵌入的时水印比特值,因此可以在任意下载记录进行嵌入,无需记录下载记录的大小必须大于接收设备标识信息的长度,从而可以避免通过分批次下载进而绕过水印攻击的问题。
一种可能的实现方式中,所述根据所述第i行的水印比特值调整所述第i行的第一字段包括的数据,包括:
当所述第一字段的属性为数值属性时,将所述第一字段的第一设定位置的比特值修改为所述第i行的水印比特值;
当所述第一字段的属性为文本属性且所述第i行的水印比特值为第一数值时,在所述第一字段的第二设定位置添加不可见字符;当所述第一字段的属性为文本属性且所述第i行的水印比特值为第二数值时,在所述第一字段中不添加所述不可见字符。
基于上述方案,在根据水印比特值调整第一字段包括的数据时,可以根据第一字段包括的数据的属性进行不同方式的嵌入方法。在第一字段包括的数据的属性为文本属性嵌入不可见字符时,提取水印时可以还原到原始格式。
第二方面,本申请实施例提供了一种结构化数据库的水印溯源方法,包括:
获取第二结构化数据库,所述第二结构化数据库为第一结构化数据库中嵌入水印后发生数据泄露的结构化数据库,所述第一结构化数据库的接收设备包括r个,所述第一结构化数据库包括N行数据;
获取在对第一结构化数据库嵌入水印时所采用的属性组合以及可嵌入水印字段;所述属性组合包括至少一个不可更改的字段,所述可嵌入水印字段包括至少一个具有容忍误差能力的字段;
分别使用r个接收设备的标识以及用于生成嵌入水印的主密钥、所述第一结构化数据库中第i行属性组合包括的字段中的数据,生成所述r个接收设备分别对应的第一水印比特值,以获得所述r个接收设备分别对应的第一水印比特序列;其中,i小于或者等于N且i大于0;
从所述第二结构化数据库包括的可嵌入水印字段包括的N行数据中分别提取第二水印比特值,以获得第二比特序列;
将所述r个接收设备分别对应的第一水印比特序列中与所述第二水印比特序列相似度最高的第一水印比特序列对应的接收设备确定为存在数据泄露行为的接收设备。
一种可能的实现方式中,所述分别使用r个接收设备的标识以及用于生成嵌入水印的主密钥、所述第一结构化数据库中第i行属性组合包括的字段中的数据,生成所述r个接收设备分别对应的第一水印比特值,以获得所述r个接收设备分别对应的第一水印比特序列,包括:
对所述主密钥、所述第一标识以及所述第一结构化数据库中第i行属性组合包括的字段中的数据进行哈希运算,获得所述第一结构化数据库中第i行的第一水印比特值,以获得所述第一水印比特序列;所述第一标识为所述r个接收设备中第一接收设备的标识。
一些实施例中,所述第一结构化数据库中第i行的第一水印比特值满足如下公式所示的条件:
wi=(hash(K||ID||valuei))mod2;
其中,wi为所述第一结构化数据库中第i行的水印比特值,ID为所述第一接收设备的标识信息,valuei为所述第一结构化数据库中第i行属性组合包括的字段中的数据对应的字符串,K为所述主密钥。
一种可能的实现方式中,所述从所述第二结构化数据库包括的可嵌入水印字段包括的N行数据中分别提取第二水印比特值,包括:
确定所述r个接收设备分别对应的所述第一结构化数据库中第i行的可嵌入水印字段中的第一字段,并从所述第二结构化数据库中第i行的所述第一字段中提取出第二水印比特值,以获得所述r个接收设备分别对应的第二比特序列。
一些实施例中,所述第一字段满足如下公式所述的条件:
Mi=(hash(K||ID||valuei))modli+1;
其中,li为所述第一结构化数据库中第i行可嵌入水印字段的总数,Mi表示所述第一字段在li个可嵌入水印字段按照设定顺序排列的位置,Mi小于或者等于li且Mi大于0,ID为所述第一接收设备的标识信息,valuei为所述结构化数据库中第i行属性组合包括的字段中的数据对应的字符串,K为所述主密钥。
一种可能的实现方式中,所述从所述第二结构化数据库中第i行的所述第一字段中提取第二水印比特值,包括:
当所述第一字段的属性为数值属性时,提取所述第i行的所述第一字段包括的数据的第一设定位置的比特值作为所述第二水印比特值;
当所述第一字段的属性为文本属性且所述第一字段的第二设定位置包括不可见字符时,所述第二水印比特值为第一数值;当所述第一字段的属性为文本属性且所述第一字段的第二设定位置不包括不可见字符时,所述第二水印比特值为第二数值。
第三方面,本申请实施例提供了一种结构化数据库的水印嵌入装置,包括获取单元、处理单元和发送单元;
所述获取单元,用于获取结构化数据库,从所述结构化数据库包括的多个字段中确定属性组合以及可嵌入水印字段;所述结构化数据库包括N行数据,所述结构化数据库待发送给多个接收设备;所述属性组合包括至少一个不可更改的字段,所述可嵌入水印字段包括至少一个具有容忍误差能力的字段;
所述处理单元,用于基于用于生成嵌入水印的主密钥、第一标识以及所述结构化数据库中第i行属性组合包括的字段中的数据,生成所述结构化数据库中第i行的水印比特值;i小于或者等于N且大于0;所述第一标识用于标识第一接收设备,所述第一接收设备为所述多个接收设备中的任一接收设备;根据所述第i行的水印比特值调整所述结构化数据库中第i行的可嵌入水印字段中的至少一个字段包括的数据;
所述发送单元,用于向所述第一接收设备发送经过数据调整的所述结构化数据库。
一种可能的实现方式中,所述处理单元,在基于用于生成嵌入水印的主密钥、第一标识以及所述结构化数据库中第i行属性组合包括的字段中的数据,生成所述结构化数据库中第i行的水印比特值时,具体用于:对所述主密钥、所述第一标识以及所述结构化数据库中第i行属性组合包括的字段中的数据进行哈希运算,获得所述结构化数据库中第i行的水印比特值。
一些实施例中,所述结构化数据库中第i行的水印比特值满足如下公式所示的条件:
wi=(hash(K||ID||valuei))mod2;
其中,wi为所述结构化数据库中第i行的水印比特值,ID为所述第一接收设备的标识信息,valuei为所述结构化数据库中第i行属性组合包括的字段中的数据对应的字符串,K为所述主密钥。
一种可能的实现方式中,所述处理单元,在根据所述第i行的水印比特值,调整所述结构化数据库中第i行的可嵌入水印字段中至少一个字段包括的数据时,具体用于:
从所述第i行的可嵌入水印字段选择第一字段,根据所述第i行的水印比特值调整所述第i行的第一字段包括的数据。
一些实施例中,所述第一字段满足如下公式所示的条件:
Mi=(hash(K||ID||valuei))modli+1;
其中,li为第i行可嵌入水印字段的总数,Mi表示所述第一字段在li个可嵌入水印字段按照设定顺序排列的位置,Mi小于或者等于li且Mi大于0,ID为所述第一接收设备的标识信息,valuei为所述结构化数据库中第i行属性组合包括的字段中的数据对应的字符串,K为所述结构化数据库的主密钥。
一种可能的实现方式中,所述处理单元,在根据所述第i行的水印比特值调整所述第i行的第一字段包括的数据时,具体用于:
当所述第一字段的属性为数值属性时,将所述第一字段的第一设定位置的比特值修改为所述第i行的水印比特值;
当所述第一字段的属性为文本属性且所述第i行的水印比特值为第一数值时,在所述第一字段的第二设定位置添加不可见字符;当所述第一字段的属性为文本属性且所述第i行的水印比特值为第二数值时,在所述第一字段中不添加所述不可见字符。
第四方面,本申请实施例提供了一种结构化数据库的水印溯源装置,包括获取单元和处理单元;
所述获取单元,用于获取第二结构化数据库,所述第二结构化数据库为第一结构化数据库中嵌入水印后发生数据泄露的结构化数据库,所述第一结构化数据库的接收设备包括r个,所述第一结构化数据库包括N行数据;
所述处理单元,用于获取在对第一结构化数据库嵌入水印时所采用的属性组合以及可嵌入水印字段;所述属性组合包括至少一个不可更改的字段,所述可嵌入水印字段包括至少一个具有容忍误差能力的字段;
所述处理单元,还用于分别使用r个接收设备的标识以及用于生成嵌入水印的主密钥、所述第一结构化数据库中第i行属性组合包括的字段中的数据,生成所述r个接收设备分别对应的第一水印比特值,以获得所述r个接收设备分别对应的第一水印比特序列;其中,i小于或者等于N且i大于0;
所述处理单元,还用于从所述第二结构化数据库包括的可嵌入水印字段包括的N行数据中分别提取第二水印比特值,以获得第二比特序列;将所述r个接收设备分别对应的第一水印比特序列中与所述第二水印比特序列相似度最高的第一水印比特序列对应的接收设备确定为存在数据泄露行为的接收设备。
一种可能的实现方式中,所述处理单元,在分别使用r个接收设备的标识以及用于生成嵌入水印的主密钥、所述第一结构化数据库中第i行属性组合包括的字段中的数据,生成所述r个接收设备分别对应的第一水印比特值,以获得所述r个接收设备分别对应的第一水印比特序列时,具体用于:
对所述主密钥、所述第一标识以及所述第一结构化数据库中第i行属性组合包括的字段中的数据进行哈希运算,获得所述第一结构化数据库中第i行的第一水印比特值,以获得所述第一水印比特序列;所述第一标识为所述r个接收设备中第一接收设备的标识。
一些实施例中,所述第一结构化数据库中第i行的第一水印比特值满足如下公式所示的条件:
wi=(hash(K||ID||valuei))mod2;
其中,wi为所述第一结构化数据库中第i行的水印比特值,ID为所述第一接收设备的标识信息,valuei为所述第一结构化数据库中第i行属性组合包括的字段中的数据对应的字符串,K为所述主密钥。
一种可能的实现方式中,所述处理单元,在从所述第二结构化数据库包括的可嵌入水印字段包括的N行数据中分别提取第二水印比特值时,具体用于:
确定所述r个接收设备分别对应的所述第一结构化数据库中第i行的可嵌入水印字段中的第一字段,并从所述第二结构化数据库中第i行的所述第一字段中提取出第二水印比特值,以获得所述r个接收设备分别对应的第二比特序列。
一些实施例中,所述第一字段满足如下公式所述的条件:
Mi=(hash(K||ID||valuei))modli+1;
其中,li为所述第一结构化数据库中第i行可嵌入水印字段的总数,Mi表示所述第一字段在li个可嵌入水印字段按照设定顺序排列的位置,Mi小于或者等于li且Mi大于0,ID为所述第一接收设备的标识信息,valuei为所述结构化数据库中第i行属性组合包括的字段中的数据对应的字符串,K为所述主密钥。
一种可能的实现方式中,所述处理单元,在从所述第二结构化数据库中第i行的所述第一字段中提取第二水印比特值时,具体用于:
当所述第一字段的属性为数值属性时,提取所述第i行的所述第一字段包括的数据的第一设定位置的比特值作为所述第二水印比特值;
当所述第一字段的属性为文本属性且所述第一字段的第二设定位置包括不可见字符时,所述第二水印比特值为第一数值;当所述第一字段的属性为文本属性且所述第一字段的第二设定位置不包括不可见字符时,所述第二水印比特值为第二数值。
第五方面,本申请实施例提供了一种结构化数据库的水印嵌入装置,包括存储器和处理器;
所述存储器,用于存储器,用于存储程序指令;
所述处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行第一方面以及第一方面不同的实现方式所述的方法。
第六方面,本申请实施例提供了一种结构化数据库的水印溯源装置,包括存储器和处理器;
所述存储器,用于存储器,用于存储程序指令;
所述处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行第二方面以及第二方面不同的实现方式所述的方法。
第七方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行权利要求第一方面以及第一方面不同的实现方式所述的方法。
另外,第二方面至第七方面中任一种实现方式所带来的技术效果可参见第一方面以及第一方面不同实现方式所带来的技术效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种结构化数据库的水印嵌入方法、溯源方法的应用场景示意图;
图2为本申请实施例提供的一种结构化数据库的水印方案的框架示意图;
图3为本申请实施例提供的一种结构化数据库的水印嵌入方法的流程图;
图4为本申请实施例提供的一种结构化数据库的水印溯源方法的流程图;
图5为本申请实施例提供的一种结构化数据库的水印嵌入装置的示意图;
图6为本申请实施例提供的一种结构化数据库的水印溯源装置的示意图;
图7为本申请实施例提供的另一种结构化数据库的水印嵌入装置的示意图;
图8为本申请实施例提供的另一种结构化数据库的水印溯源装置的示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
目前数据水印技术可以分为两种,一种是基于数据失真的数据水印方法,该方法主要针对数据表的数值型属性。水印的嵌入规则与数据表主键之间建立关联,按照水印的嵌入规则,对原始数值型数据进行失真编码来实现水印信息的嵌入。然而在实际应用中,主键是唯一的ID,并且该主键通常是顺序索引或者一串随机码,不包含有价值的信息。在攻击者获取数据库时,可以获取该主键值,可以对该数据库的主键值进行删除或替换。在攻击者进行攻击后,在水印溯源的提取过程中,由于主键值被删除或替换,导致无法按照原有的顺序提取到正确的水印信息,从而导致无法准确溯源,因此该方法无法抵抗主键删除攻击。另一种方法是基于伪行伪列的数据水印方法,该方法将水印信息按照伪行或者伪列的生成规则,将伪造生成的新行或新列添加到原始的数据库中。该方法需要数据库中数据表的行或者列数量有足够的嵌入空间,否则不能进行水印嵌入。此外,攻击者通过该水印的嵌入机制实现水印嵌入的绕过,例如分批次下载,从而获得无水印嵌入的数据,使得水印系统的嵌入和溯源功能失效。
针对上述问题,本申请实施例提供了一种结构化数据水印的嵌入方法、溯源方法及装置,通过使用数据库中的属性组合代替主键的功能,通过接收者的标识信息、主密钥以及属性组合确定嵌入的水印比特。并通过水印嵌入算法,将水印比特隐藏到原始数据库中,可以避免主键删除攻击。此外,在进行嵌入时,是根据每行的属性组合包括的数据计算水印比特值,并对每行可嵌入水印的字段进行修改,因此可以避免攻击者通过分批次下载实现水印绕过攻击。当数据库发生数据泄露后,可以根据水印提取算法和主密钥,对泄露后的数据库完成相关检测和溯源。
如图1所示,一种结构化数据库的水印嵌入方法、溯源方法的应用场景,该应用场景中包括多个终端设备110和服务器120,图1中是以三个终端设备110为例,实际上不限制终端设备110的数量。终端设备110可为手机、平板电脑和个人计算机等。服务器120可以通过单个服务器实现,也可以通过多个服务器组成的服务器集群实现。服务器120可以通过实体服务器实现,也可以通过虚拟服务器实现。
在一种可能的应用场景中,结构化数据库拥有者通过终端设备110将待嵌入水印的结构化数据库以及主密钥上传至服务器,并请求服务器120将使用者的终端设备的标识信息保存到结构化数据库。服务器120接收到结构化数据库以及主密钥后,根据使用者的终端设备的标识信息,生成待嵌入结构化数据库的水印比特值,并将水印比特值嵌入到结构化数据库中。将添加水印信息后的数据库发送至终端设备110中进行显示,以便于用户通过终端设备110查看添加水印信息后的数据库。具体地,可以根据使用者对数据特性的需求确定结构化数据库中不可更改的数据以及可以具有容忍误差能力的字段。将结构化数据库中不可更改的数据对应的字段称为属性组合,将具有容忍误差能力的字段作为可嵌入水印字段。之后,针对结构化数据库中待嵌入水印的每一行,根据该行的属性组合包括的各个字段的数据、主密钥以及接收设备的标识,通过哈希运算获得该行的水印比特值,并将水印比特值嵌入该行的设定位置。此外,当结构化数据库发生泄漏后,服务器120计算各个接收设备的水印比特序列,然后可以根据水印嵌入规则从泄露后的结构化数据库中提取出水印比特序列,并与各个接收设备的水印比特序列进行比较,将相似度最高的水印比特序列对应的接收设备确定为最终泄露数据的主体,完成溯源追责。
需要说明的是,上述应用场景仅是为了便于相关人员理解本申请的原理,并不构成对本申请实施方式应用场景的限制。
本申请实施例提出的结构化数据库的水印方案框架如图2所示,包括水印嵌入端和水印提取端,分别对应水印系统的两个处理过程,即水印嵌入过程、以及水印提取和溯源过程。对于水印嵌入端来说,通过水印嵌入算法,将接收者的水印标识信息w(如下载该结构化数据库的员工ID、或接收结构化数据库的机构ID)隐藏到原始的结构化数据库D中,输出嵌入水印的结构化数据库Dw。为了保证安全性,本申请提出的嵌入过程中使用主密钥K。对于水印提取端来说,嵌入水印的结构化数据库Dw发生泄露后可能会遭受水印攻击,与攻击之前结构化数据库会有细微差别。将受到攻击后的结构化数据库用Dw'表示。为了确定泄露的主体(某个员工或者某个接收机构),通过水印提取算法和主密钥K,可以在受到攻击后的结构化数据库Dw'上完成水印的相关检测,确定泄露的主体,完成溯源追责。
本申请实施例提供了一种结构化数据库的水印嵌入方法,图3示例性地示出了结构化数据库的水印嵌入方法的流程,该流程可由服务器120执行,为了便于描述,后续对服务器120的描述不再示例数字标识。
301,获取结构化数据库,从所述结构化数据库包括的多个字段中确定属性组合以及可嵌入水印字段。
其中,结构化数据库包括N行数据,结构化数据库待发送给多个接收设备;属性组合包括至少一个不可更改的字段,可嵌入水印字段包括至少一个具有容忍误差能力的字段。一些实施例中,接收设备可以是结构化数据库的员工使用的终端设备,或者是接收结构化数据库的机构的服务终端等。作为一种举例,结构化数据库如表1所示,该结构化数据库待发送给多个接收设备。该结构化数据库共包括6行数据,可以根据接收设备对数据特性的不同需求确定结构化数据库包括的多个字段中的属性组合以及可嵌入水印字段。
一些场景中,当第一接收设备需要对表1中性别、职业、地区所在列的数据进行精确分析,性别、职业、地区3个字段对应的数据不可更改。第一接收设备对姓名用于人工查询,对年龄、一周工作时长和信用卡消费所在列的数据进行近似的数据分析,可以容忍一定程度的误差。因此,可以将性别、职业、地区3个字段包括的数据作为属性组合包括的数据。由于在姓名的设定位置嵌入不可见字符后,在提取时可以还原到姓名的原始格式,为了提高属性组合的唯一标识性,可以将“姓名”字段加入属性组合,因此属性组合可以包括姓名、性别、职业、地区4个字段的数据。当确定属性组合字段后,还剩下年龄、一周工作时长和信用卡消费3个字段,该3个字段包括的数据可以容忍一定程度的误差,因此可以将年龄、一周工作时长和信用卡消费3个字段作为可嵌入水印字段。此外,由于在姓名的设定位置嵌入不可见字符后,在提取时可以还原到姓名的原始格式,因此可以将姓名、年龄、一周工作时长和信用卡消费4个字段作为可嵌入水印的字段。
表1
302,基于用于生成嵌入水印的主密钥、第一标识以及结构化数据库中第i行属性组合包括的字段中的数据,生成结构化数据库中第i行的水印比特值。
其中,i小于或者等于N且大于0,第一标识用于标识第一接收设备,第一接收设备为多个接收设备中的任一接收设备。作为一种举例,数据库拥有者可以随机生成一个字符串作为数据库的主密钥K,为了提高数据库的安全性,可以将数据库主密钥设置为128位及以上的字符串。作为一种举例,结构化数据库的接收设备包括r个,则r个接收设备的标识信息可以分别表示为{ID1,ID2,……,IDr}。上述所提及的第一接收设备为该r个接收设备的中一个。比如第一接收设备为第1个接收设备,则标识信息为ID1;再比如,第一接收设备为第j个接收设备,则标识信息为IDj。j取值为小于或者等于r且大于或者等于1的整数。
应理解的是,结构化数据库的接收设备包括r个时,则基于每个接收设备分别执行形如针对第一接收设备所执行的操作,比如针对每个接收设备均执行步骤302-304。也就是分别使用各个接收设备的标识信息来确定结构化数据的各行的水印比特值。以第i行为例,针对r个接收设备来说,使用主密钥、第1个接收设备的标识信息以及结构化数据库中第i行属性组合包括的字段中的数据,生成第1接收设备的第i行的水印比特值;使用主密钥、第2个接收设备的标识信息以及结构化数据库中第i行属性组合包括的字段中的数据,生成第2接收设备的第i行的水印比特值,以此类推。
一些实施例中,数据库中共包括N行数据,则对数据库中N行数据分别计算该行对应的水印比特值。以第j个接收设备的第i行的水印比特值为例,在计算第i行对应的水印比特值时,先将属性组合包括的字段中的数据转化成二进制字符。当属性组合包括的字段中的数据属性为文本属性时,可以将文本属性的数据转化成ASCII码,并将属性组合包括的字段的数据对应的二进制字符按照设定顺序连接,获得属性组合对应的二进制字符。然后将主密钥、第j个接收设备对应的标识信息以及第i行属性组合对应的二进制字符连接起来,并对连接后的字符串进行哈希运算,进而获得第i行的水印比特值。第j个接收设备对应的标识信息用IDj表示,j≤r且j为正整数,主密钥用K表示,第i行属性组合包括的字段对应的二进制字符串用valuei表示,则第j个接收设备在结构化数据库中第i行的可嵌入水印比特值为:
其中,||为连接符号,用于连接主密钥、第j个接收设备对应的标识信息以及属性组合包括的数据的二进制字符串。
在一些实施例中,当第i行属性组合包括y个字段时,属性组合包括的y个字段对应的二进制字符分别用valuei,1,valuei,2,......,valuei,y表示,则第i行属性组合包括的字段对应的二进制字符串valuei=valuei,1||valuei,2||…||valuei,y。作为一种举例,如表1所示,当前数据表中共有6行数据,其中属性组合包括姓名、性别、职业、地区4个字段,当计算第i行的水印比特值时,首先确定第i行属性组合包括的字段对应的二进制字符串。例如,当属性组合中姓名、性别、职业3个字段包括的数据的属性为文本属性时,将文本属性的数据转化为ASCII码,并将属性组合包括的4个字段按照设定顺序连接起来,获得第i行属性组合包括的字段对应的二进制字符串valuei。作为一种举例,属性组合包括的4个字段对应的值可以表示为{valuei,1,valuei,2,valuei,3,valuei,4},i≤6。将属性组合包括的4个字段对应的二进制字符进行连接,并与主密钥以及第一接收设备的第一标识进行连接,根据哈希算法确定第i行的水印比特值。示例性地,第j个接收设备对应的标识信息用IDj表示,主密钥用K表示,属性组合包括的字段对应的值分别用valuei,1,valuei,2,valuei,3,valuei,4表示,则第j个接收设备在结构化数据库第i行的可嵌入水印比特值为:
另一些实施例中,可以对主密钥、第一标识以及多行属性组合包括的字段中的数据进行哈希运算,进而获得结构化数据库中属性组合所在行包括的数据的水印比特值。例如,可以对主密钥、第一标识以及结构化数据库中m行属性组合包括的字段的数据进行哈希运算,进而获得结构化数据库中m行数据对应的水印比特值。
303,根据所述第i行的水印比特值调整结构化数据库中第i行的可嵌入水印字段中的至少一个字段包括的数据。
一些实施例中,可以根据结构化数据库中的每一行的水印比特值调整对应的每一行可嵌入水印字段中某一个字段的数据,或者根据每一行的水印比特值调整每一行可嵌入水印字段包括的所有字段的数据,或者根据每一行的水印比特值调整每一行可嵌入水印字段包括的任意组合的字段的数据,本申请对此不做限定。以根据结构化数据库中的第i行的水印比特值调整第i行可嵌入水印字段中的第一字段包括的数据为例,当结构化数据库中共有li个可嵌入水印字段时,通过对主密钥、第一标识以及属性组合的值进行哈希运算确定第一字段在li个可嵌入水印字段按照设定顺序排列的位置。第j个接收设备对应的标识信息用IDi表示,主密钥用K表示,属性组合包括的字段对应的二进制字符串用valuei表示,第一字段在li个可嵌入水印字段按照设定顺序排列的位置用Mi表示,则第一字段满足如下公式:Mi=(hash(K||IDj||valuei))modli+1。
一些实施例中,当第i行的属性组合包括y个字段时,则y个字段的数据对应的二进制字符可以分别表示为valuei,1,valuei,2,......,valuei,y,则valuei=valuei,1||valuei,2||…||valuei,y。
另一些实施例中,当结构化数据库中的多行数据对应一个水印比特值时,可以根据该水印比特值调整该水印比特值对应的多行数据中可嵌入水印字段中的任一个字段、设定字段或者所有字段,本申请对此不作限定。
一些实施例中,当确定结构化数据库中的可嵌入水印的字段后,根据水印比特值调整对应行的可嵌入水印字段包括的数据。具体地,当调整的可嵌入字段包括的数据的属性为数值属性时,将该字段包括的数据转化成二进制数,并将该二进制数的设定位置的比特替换为水印比特值。以根据第i行水印比特值调整第i行可嵌入水印字段中的第一字段为例,假设数据表共有6行,如表1所示,第1行的水印比特值为0。当确定可嵌入水印字段的第一字段为年龄字段时,第一行中年龄字段包括的数据为23,属于数值属性,则将23转化成二进制字符,即10111。假设调整该字段的设定位置为倒数第2位,那么将23对应的二进制字符10111的倒数第二位调整为0,调整后的二进制字符为10101,嵌入水印后的该字段的数值为21。
一些场景中,当所述调整的可嵌入字段包括的数据的属性为文本属性时,可以在该字段的设定位置添加不可见字符,如空格、回车符等。例如,当水印比特值为1时嵌入回车符,在水印比特值0时,不嵌入回车符。同理,也可以当水印比特值为1时不嵌入回车符,当水印比特值为0时,嵌入回车符,具体的嵌入规则本申请对此不做限定。在向文本属性字段的设定位置添加不可见字符时,该设定位置可以为文本值前、文本值中间或者文本值后,本申请对此不做限定。例如,当第一字段包括的数据为“张三”时,该数据的属性为文本属性,当水印比特值为1时,可以在该字段的文本值中间嵌入空格,获得嵌入水印的字段“张三”。当水印比特值为0时,不再该字段嵌入空格,即“张三”。
304,向所述第一接收设备发送经过数据调整的所述结构化数据库。
基于上述方案,在嵌入水印时,不再依靠主键,而是采用结构化数据库中的属性组合代替主键功能,利用主密钥、属性组合,将接收设备的标识信息嵌入到数据库中,完成结构化数据库的水印嵌入。该方法属性组合包括的字段的数据与主键的数据相比是有意义的,攻击者一般不会删除,因此可以避免主键删除攻击,而且可以保证水印提取端可以正确提取水印比特。
当发送的结构化数据库发生数据泄漏时,需要进行溯源,以确定泄露的主体。在图3的步骤301-304描述的水印嵌入方法的基础上,本申请实施例还提供一种结构化数据库的水印溯源方法,如图4所示。该水印溯源流程可由服务器执行,水印溯源流程可以包括如下步骤401-405。
401,获取第二结构化数据库,第二结构化数据库为第一结构化数据库中嵌入水印后发生数据泄露的结构化数据库。
其中,第一结构化数据库的接收设备包括r个,第一结构化数据库包括N行数据。第二结构化数据库为第一结构化数据库嵌入水印后发生数据泄露时生成的。
402,获取在对第一结构化数据库嵌入水印时所采用的属性组合以及可嵌入水印字段。
在一些实施例中,属性组合包括第一结构化数据库中至少一个不可更改的字段,可嵌入水印字段包括第一结构化数据库中至少一个具有容忍误差能力的字段。不同接收设备的属性组合以及可嵌入水印字段不同,因此获取r个接收设备分别对应的属性组合以及可嵌入水印字段。
403,分别使用r个接收设备的标识以及用于生成嵌入水印的主密钥、第一结构化数据库中第i行属性组合包括的字段中的数据,生成r个接收设备分别对应的第i行第一水印比特值,以获得r个接收设备分别对应的第一水印比特序列,其中,i小于或者等于N且i大于0。
以确定第一接收设备的第一水印比特序列为例,可以对所述主密钥、所述第一标识以及所述第一结构化数据库中第i行属性组合包括的字段中的数据进行哈希运算,获得所述第一结构化数据库中第i行的第一水印比特值,以获得所述第一水印比特序列;所述第一标识为所述r个接收设备中第一接收设备的标识。以第j个接收设备为例,第一结构化数据库中第i行的第一水印比特值满足如下公式所示的条件:
其中,为第j个接收设备的第一结构化数据库中第i行的水印比特值,IDj为第j个接收设备的标识信息,j≤r且j为正整数,valuei为第一结构化数据库中第i行属性组合包括的字段中的数据对应的字符串,K为主密钥。
一些实施例中,在确定r个接收设备分别对应的第i行的第一水印比特值后,根据r个接收设备的标识、主密钥、第一结构化数据库中第i行属性组合包括的字段中的数据分别针对r个接收设备确定第i行中可嵌入水印的第一字段,并确定可嵌入水印的第一字段的设定位置。以第j个接收设备为例,第一字段满足如下公式所述的条件:
其中,li为第一结构化数据库中第i行可嵌入水印字段的总数,表示第一字段在li个可嵌入水印字段按照设定顺序排列的位置,Mi小于或者等于li且Mi大于0,IDj为第j个接收设备的标识信息,j≤r且j为正整数,valuei为结构化数据库中第i行属性组合包括的字段中的数据对应的字符串,K为主密钥。
404,从第二结构化数据库包括的可嵌入水印字段包括的N行数据中分别提取第二水印比特值,以获得第二比特序列。
一些实施例中,在确定r个接收设备分别对应的第一结构化数据库中第i行的可嵌入水印字段中的第一字段后,从第二结构化数据库中第i行的第一字段中提取出第二水印比特值,以获得r个接收设备分别对应的第二比特序列。例如,当第j个接收设备对应的第一结构化数据库中第i行可嵌入水印字段为第一字段时,从第二结构化数据库中可嵌入水印的第一字段的设定位置提取出第二水印比特值,以此类推,从第二结构化数据库中每一行可嵌入水印的第一字段的设定位置提取出每一行的第二水印比特值,以获得第二比特序列。
在一些实施例中,当从第二结构化数据库中每一行可嵌入水印的第一字段中提取第二水印比特值时,可以从第一字段中的固定设定位置提取第二水印比特值,以获得第二比特序列。例如,可以从每行的第一字段中的倒数第b位提取第二水印比特值,以获得第二比特序列。比如,b=2。再比如,b=1。
一些实施例中,当从第二结构化数据库中提取第二水印比特值时,当第一字段的属性为数值属性时,提取第一字段的第一设定位置的第二水印比特值。当第一字段的属性为文本属性时,当第一字段的第二设定位置包括不可见字符时,第二水印比特值为第一数值;当第一字段的第二设定位置不包括不可见字符时,第二水印比特值为第二数值。作为一种举例,当文本属性的第一字段的设定位置包括不可见字符时,第二水印比特值为1,第一字段的第二设定位置不包括不可见字符时,第二水印比特值为0。
405,将r个接收设备分别对应的第一水印比特序列中与第二水印比特序列相似度最高的第一水印比特序列对应的接收设备确定为存在数据泄露行为的接收设备。
一些实施例中,将r个接收设备分别对应的第一水印比特序列分别与r个接收设备分别对应的第二水印比特序列进行对比,将第一水印比特序列与第二水印比特序列相似度最高的所述第一水印比特序列对应的接收设备确定为存在数据泄露行为的接收设备。
在另一些实施例中,当第二比特序列是从第二结构化数据库中每行的第一字段中的固定设定位置提取获得时,提取出的第二比特序列只有一种。将r个接收设备分别对应的第一水印比特序列分别与第二比特序列进行对比,将与第二水印比特序列相似度最高的第一水印比特序列对应的接收设备确定为存在数据泄露行为的接收设备。
一些实施例中,可为了提高溯源检测的效率,可以从结构化数据库中随机抽取一定数量的数据进行水印溯源。例如,当结构化数据库中包括1000行数据时,可以随机抽取200数据进行水印溯源。水印溯源方法与上述方法一致,此处不再赘述。
基于相同的技术构思,本申请实施例提供了一种结构化数据库的水印嵌入装置500,如图5所示。该装置500可以执行上述水印嵌入方法中的各个步骤,为了避免重复,此处不再详述。该装置500包括获取单元501、处理单元502和发送单元503。
所述获取单元501,用于获取结构化数据库,从所述结构化数据库包括的多个字段中确定属性组合以及可嵌入水印字段;所述结构化数据库包括N行数据,所述结构化数据库待发送给多个接收设备;所述属性组合包括至少一个不可更改的字段,所述可嵌入水印字段包括至少一个具有容忍误差能力的字段;
所述处理单元502,用于基于用于生成嵌入水印的主密钥、第一标识以及所述结构化数据库中第i行属性组合包括的字段中的数据,生成所述结构化数据库中第i行的水印比特值;i小于或者等于N且大于0;所述第一标识用于标识第一接收设备,所述第一接收设备为所述多个接收设备中的任一接收设备;根据所述第i行的水印比特值调整所述结构化数据库中第i行的可嵌入水印字段中的至少一个字段包括的数据;
所述发送单元503,用于向所述第一接收设备发送经过数据调整的所述结构化数据库。
一种可能的实现方式中,所述处理单元502,在基于用于生成嵌入水印的主密钥、第一标识以及所述结构化数据库中第i行属性组合包括的字段中的数据,生成所述结构化数据库中第i行的水印比特值时,具体用于:对所述主密钥、所述第一标识以及所述结构化数据库中第i行属性组合包括的字段中的数据进行哈希运算,获得所述结构化数据库中第i行的水印比特值。
一些实施例中,所述结构化数据库中第i行的水印比特值满足如下公式所示的条件:
wi=(hash(K ||ID||valuei))mod2;
其中,wi为所述结构化数据库中第i行的水印比特值,ID为所述第一接收设备的标识信息,valuei为所述结构化数据库中第i行属性组合包括的字段中的数据对应的字符串,K为所述主密钥。
一种可能的实现方式中,所述处理单元502,在根据所述第i行的水印比特值,调整所述结构化数据库中第i行的可嵌入水印字段中至少一个字段包括的数据时,具体用于:从所述第i行的可嵌入水印字段选择第一字段,根据所述第i行的水印比特值调整所述第i行的第一字段包括的数据。
一些实施例中,所述第一字段满足如下公式所示的条件:
Mi=(hash(K ||ID||valuei))modli+1;
其中,li为第i行可嵌入水印字段的总数,Mi表示所述第一字段在li个可嵌入水印字段按照设定顺序排列的位置,Mi小于或者等于li且Mi大于0,ID为所述第一接收设备的标识信息,valuei为所述结构化数据库中第i行属性组合包括的字段中的数据对应的字符串,K为所述结构化数据库的主密钥。
一种可能的实现方式中,所述处理单元502,在根据所述第i行的水印比特值调整所述第i行的第一字段包括的数据时,具体用于:
当所述第一字段的属性为数值属性时,将所述第一字段的第一设定位置的比特值修改为所述第i行的水印比特值;当所述第一字段的属性为文本属性且所述第i行的水印比特值为第一数值时,在所述第一字段的第二设定位置添加不可见字符;当所述第一字段的属性为文本属性且所述第i行的水印比特值为第二数值时,在所述第一字段中不添加所述不可见字符。
基于相同的技术构思,本申请实施例提供了一种结构化数据库的水印溯源装置600,如图6所示。该装置600可以执行上述水印溯源方法中的各个步骤,为了避免重复,此处不再详述。该装置600包括获取单元601和处理单元602。
所述获取单元601,用于获取第二结构化数据库,所述第二结构化数据库为第一结构化数据库中嵌入水印后发生数据泄露的结构化数据库,所述第一结构化数据库的接收设备包括r个,所述第一结构化数据库包括N行数据;
所述处理单元602,用于获取在对第一结构化数据库嵌入水印时所采用的属性组合以及可嵌入水印字段;所述属性组合包括至少一个不可更改的字段,所述可嵌入水印字段包括至少一个具有容忍误差能力的字段;
所述处理单元602,还用于分别使用r个接收设备的标识以及用于生成嵌入水印的主密钥、所述第一结构化数据库中第i行属性组合包括的字段中的数据,生成所述r个接收设备分别对应的第一水印比特值,以获得所述r个接收设备分别对应的第一水印比特序列;其中,i小于或者等于N且i大于0;
所述处理单元602,还用于从所述第二结构化数据库包括的可嵌入水印字段包括的N行数据中分别提取第二水印比特值,以获得第二比特序列;将所述r个接收设备分别对应的第一水印比特序列中与所述第二水印比特序列相似度最高的第一水印比特序列对应的接收设备确定为存在数据泄露行为的接收设备。
一些实施例中,所述处理单元602,在分别使用r个接收设备的标识以及用于生成嵌入水印的主密钥、所述第一结构化数据库中第i行属性组合包括的字段中的数据,生成所述r个接收设备分别对应的第一水印比特值,以获得所述r个接收设备分别对应的第一水印比特序列时,具体用于:
对所述主密钥、所述第一标识以及所述第一结构化数据库中第i行属性组合包括的字段中的数据进行哈希运算,获得所述第一结构化数据库中第i行的第一水印比特值,以获得所述第一水印比特序列;所述第一标识为所述r个接收设备中第一接收设备的标识。
一些实施例中,所述第一结构化数据库中第i行的第一水印比特值满足如下公式所示的条件:
wi=(hash(K||ID||valuei))mod2;
其中,wi为所述第一结构化数据库中第i行的水印比特值,ID为所述第一接收设备的标识信息,valuei为所述第一结构化数据库中第i行属性组合包括的字段中的数据对应的字符串,K为所述主密钥。
一些实施例中,所述处理单元602,在从所述第二结构化数据库包括的可嵌入水印字段包括的N行数据中分别提取第二水印比特值时,具体用于:
确定所述r个接收设备分别对应的所述第一结构化数据库中第i行的可嵌入水印字段中的第一字段,并从所述第二结构化数据库中第i行的所述第一字段中提取出第二水印比特值,以获得所述r个接收设备分别对应的第二比特序列。
一些实施例中,所述第一字段满足如下公式所述的条件:
Mi=(hash(K||ID||valuei))modli+1;
其中,li为所述第一结构化数据库中第i行可嵌入水印字段的总数,Mi表示所述第一字段在li个可嵌入水印字段按照设定顺序排列的位置,Mi小于或者等于li且Mi大于0,ID为所述第一接收设备的标识信息,valuei为所述结构化数据库中第i行属性组合包括的字段中的数据对应的字符串,K为所述主密钥。
一些实施例中,所述处理单元602,在从所述第二结构化数据库中第i行的所述第一字段中提取第二水印比特值时,具体用于:
当所述第一字段的属性为数值属性时,提取所述第i行的所述第一字段包括的数据的第一设定位置的比特值作为所述第二水印比特值;
当所述第一字段的属性为文本属性且所述第一字段的第二设定位置包括不可见字符时,所述第二水印比特值为第一数值;当所述第一字段的属性为文本属性且所述第一字段的第二设定位置不包括不可见字符时,所述第二水印比特值为第二数值。
基于相同的技术构思,本申请实施例提供了一种结构化数据库的水印嵌入装置700,如图7所示。该装置700可以执行上述水印嵌入方法中的各个步骤。该装置700包括存储器701以及处理器702。
所述存储器701,用于存储程序指令;
所述处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述结构化数据库的水印嵌入方法。
基于相同的技术构思,本申请实施例提供了一种结构化数据库的水印溯源装置800,如图8所示。该装置800可以执行上述水印嵌入方法中的各个步骤。该装置800包括存储器801和处理器802。
所述存储器801,用于存储程序指令;
所述处理器802,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述结构化数据库的水印溯源方法。
在本申请实施例中,处理器可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random Access Memory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种结构化数据库的水印嵌入方法,其特征在于,包括:
获取结构化数据库,从所述结构化数据库包括的多个字段中确定属性组合以及可嵌入水印字段;所述结构化数据库包括N行数据,所述结构化数据库待发送给多个接收设备;所述属性组合包括至少一个不可更改的字段,所述可嵌入水印字段包括至少一个具有容忍误差能力的字段;
基于用于生成嵌入水印的主密钥、第一标识以及所述结构化数据库中第i行属性组合包括的字段中的数据,生成所述结构化数据库中第i行的水印比特值;i小于或者等于N且大于0;所述第一标识用于标识第一接收设备,所述第一接收设备为所述多个接收设备中的任一接收设备;
根据所述第i行的水印比特值调整所述结构化数据库中第i行的可嵌入水印字段中的至少一个字段包括的数据;
向所述第一接收设备发送经过数据调整的所述结构化数据库。
2.如权利要求1所述的方法,其特征在于,所述基于用于生成嵌入水印的主密钥、第一标识以及所述结构化数据库中第i行属性组合包括的字段中的数据,生成所述结构化数据库中第i行的水印比特值,包括:
对所述主密钥、所述第一标识以及所述结构化数据库中第i行属性组合包括的字段中的数据进行哈希运算,获得所述结构化数据库中第i行的水印比特值。
3.如权利要求1或2所述的方法,其特征在于,所述结构化数据库中第i行的水印比特值满足如下公式所示的条件:
wi=(hash(K||ID||valuei))mod2;
其中,wi为所述结构化数据库中第i行的水印比特值,ID为所述第一接收设备的标识信息,valuei为所述结构化数据库中第i行属性组合包括的字段中的数据对应的字符串,K为所述主密钥。
4.如权利要求1或2所述的方法,其特征在于,所述根据所述第i行的水印比特值,调整所述结构化数据库中第i行的可嵌入水印字段中至少一个字段包括的数据,包括:
从所述第i行的可嵌入水印字段选择第一字段,根据所述第i行的水印比特值调整所述第i行的第一字段包括的数据。
5.如权利要求4所述的方法,其特征在于,所述第一字段满足如下公式所示的条件:
Mi=(hash(K||ID||valuei))modli+1;
其中,li为第i行可嵌入水印字段的总数,Mi表示所述第一字段在li个可嵌入水印字段按照设定顺序排列的位置,Mi小于或者等于li且Mi大于0,ID为所述第一接收设备的标识信息,valuei为所述结构化数据库中第i行属性组合包括的字段中的数据对应的字符串,K为所述结构化数据库的主密钥。
6.如权利要求4所述的方法,其特征在于,所述根据所述第i行的水印比特值调整所述第i行的第一字段包括的数据,包括:
当所述第一字段的属性为数值属性时,将所述第一字段的第一设定位置的比特值修改为所述第i行的水印比特值;
当所述第一字段的属性为文本属性且所述第i行的水印比特值为第一数值时,在所述第一字段的第二设定位置添加不可见字符;当所述第一字段的属性为文本属性且所述第i行的水印比特值为第二数值时,在所述第一字段中不添加所述不可见字符。
7.一种结构化数据库的水印溯源方法,其特征在于,包括:
获取第二结构化数据库,所述第二结构化数据库为第一结构化数据库中嵌入水印后发生数据泄露的结构化数据库,所述第一结构化数据库的接收设备包括r个,所述第一结构化数据库包括N行数据;
获取在对第一结构化数据库嵌入水印时所采用的属性组合以及可嵌入水印字段;所述属性组合包括至少一个不可更改的字段,所述可嵌入水印字段包括至少一个具有容忍误差能力的字段;
分别使用r个接收设备的标识以及用于生成嵌入水印的主密钥、所述第一结构化数据库中第i行属性组合包括的字段中的数据,生成所述r个接收设备分别对应的第一水印比特值,以获得所述r个接收设备分别对应的第一水印比特序列;其中,i小于或者等于N且i大于0;
从所述第二结构化数据库包括的可嵌入水印字段包括的N行数据中分别提取第二水印比特值,以获得第二比特序列;
将所述r个接收设备分别对应的第一水印比特序列中与所述第二水印比特序列相似度最高的第一水印比特序列对应的接收设备确定为存在数据泄露行为的接收设备。
8.一种结构化数据库的水印嵌入装置,其特征在于,包括:
获取单元,用于获取结构化数据库,从所述结构化数据库包括的多个字段中确定属性组合以及可嵌入水印字段;所述结构化数据库包括N行数据,所述结构化数据库待发送给多个接收设备;所述属性组合包括至少一个不可更改的字段,所述可嵌入水印字段包括至少一个具有容忍误差能力的字段;
处理单元,用于基于用于生成嵌入水印的主密钥、第一标识以及所述结构化数据库中第i行属性组合包括的字段中的数据,生成所述结构化数据库中第i行的水印比特值;i小于或者等于N且大于0;所述第一标识用于标识第一接收设备,所述第一接收设备为所述多个接收设备中的任一接收设备;根据所述第i行的水印比特值调整所述结构化数据库中第i行的可嵌入水印字段中的至少一个字段包括的数据;
发送单元,用于向所述第一接收设备发送经过数据调整的所述结构化数据库。
9.一种结构化数据库的水印溯源装置,其特征在于,包括:获取单元和处理单元;
所述获取单元,用于获取第二结构化数据库,所述第二结构化数据库为第一结构化数据库中嵌入水印后发生数据泄露的结构化数据库,所述第一结构化数据库的接收设备包括r个,所述第一结构化数据库包括N行数据;
所述处理单元,用于获取在对第一结构化数据库嵌入水印时所采用的属性组合以及可嵌入水印字段;所述属性组合包括至少一个不可更改的字段,所述可嵌入水印字段包括至少一个具有容忍误差能力的字段;
所述处理单元,还用于分别使用r个接收设备的标识以及用于生成嵌入水印的主密钥、所述第一结构化数据库中第i行属性组合包括的字段中的数据,生成所述r个接收设备分别对应的第一水印比特值,以获得所述r个接收设备分别对应的第一水印比特序列;其中,i小于或者等于N且i大于0;
所述处理单元,还用于从所述第二结构化数据库包括的可嵌入水印字段包括的N行数据中分别提取第二水印比特值,以获得第二比特序列;将所述r个接收设备分别对应的第一水印比特序列中与所述第二水印比特序列相似度最高的第一水印比特序列对应的接收设备确定为存在数据泄露行为的接收设备。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行权利要求1~7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111589221.3A CN114356919A (zh) | 2021-12-23 | 2021-12-23 | 一种结构化数据库的水印嵌入方法、溯源方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111589221.3A CN114356919A (zh) | 2021-12-23 | 2021-12-23 | 一种结构化数据库的水印嵌入方法、溯源方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114356919A true CN114356919A (zh) | 2022-04-15 |
Family
ID=81102161
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111589221.3A Pending CN114356919A (zh) | 2021-12-23 | 2021-12-23 | 一种结构化数据库的水印嵌入方法、溯源方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114356919A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115987682A (zh) * | 2023-02-02 | 2023-04-18 | 浙江网商银行股份有限公司 | 数据处理方法 |
CN116150716A (zh) * | 2023-04-24 | 2023-05-23 | 中国科学技术大学 | 数据库水印嵌入方法、提取方法、存储介质及电子设备 |
CN117272333A (zh) * | 2022-10-28 | 2023-12-22 | 北京鸿鹄元数科技有限公司 | 关系型数据库水印嵌入、溯源方法 |
CN117272333B (zh) * | 2022-10-28 | 2024-05-24 | 北京鸿鹄元数科技有限公司 | 关系型数据库水印嵌入、溯源方法 |
-
2021
- 2021-12-23 CN CN202111589221.3A patent/CN114356919A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117272333A (zh) * | 2022-10-28 | 2023-12-22 | 北京鸿鹄元数科技有限公司 | 关系型数据库水印嵌入、溯源方法 |
CN117272333B (zh) * | 2022-10-28 | 2024-05-24 | 北京鸿鹄元数科技有限公司 | 关系型数据库水印嵌入、溯源方法 |
CN115987682A (zh) * | 2023-02-02 | 2023-04-18 | 浙江网商银行股份有限公司 | 数据处理方法 |
CN116150716A (zh) * | 2023-04-24 | 2023-05-23 | 中国科学技术大学 | 数据库水印嵌入方法、提取方法、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2020511059A (ja) | 情報認証方法及びシステム | |
Hanyurwimfura et al. | Text format based relational database watermarking for non-numeric data | |
CN110688675B (zh) | 基于隐私保护的数据泄露溯源装置、方法及可读存储介质 | |
CN114356919A (zh) | 一种结构化数据库的水印嵌入方法、溯源方法及装置 | |
CN112559985B (zh) | 一种水印嵌入及提取方法 | |
WO2020140636A1 (zh) | 一种水印嵌入和提取方法、装置、终端设备及介质 | |
CN111125750B (zh) | 一种基于双层椭圆模型的数据库水印嵌入、检测方法及系统 | |
US11409845B2 (en) | Method for determining if a machine learning model has been copied | |
Melkundi et al. | A robust technique for relational database watermarking and verification | |
CN111539502A (zh) | 防伪二维码的生成方法、装置、服务器及存储介质 | |
CN110533572A (zh) | 一种水印嵌入方法、系统及相关装置 | |
CN110770725B (zh) | 数据处理方法及装置 | |
CN109840401A (zh) | 针对数据文本的水印嵌入方法 | |
CN111475700A (zh) | 一种数据提取方法及相关设备 | |
CN105512523A (zh) | 一种匿名化的数字水印嵌入和提取方法 | |
CN112948776A (zh) | 一种数字水印添加方法、装置、电子设备及存储介质 | |
CN112948895A (zh) | 数据的水印嵌入方法、水印溯源方法及装置 | |
CN116305294B (zh) | 数据泄露溯源方法、装置、电子设备及存储介质 | |
Tiwari et al. | A novel watermarking scheme for secure relational databases | |
CN116702103A (zh) | 数据库水印处理方法、数据库水印溯源方法及装置 | |
CN109064379B (zh) | 一种数字水印的标注方法及检验方法和装置 | |
WO2010100398A1 (en) | Watermark encoding and decoding | |
CN114298882A (zh) | Cad数据的水印的嵌入方法、追溯方法以及电子设备 | |
JP3651777B2 (ja) | 電子透かしシステム、電子透かし解析装置、電子透かし解析方法及び記録媒体 | |
CN114398375A (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 |