基于隐私保护的数据泄露溯源装置、方法及可读存储介质与流程

文档序号:19681332发布日期:2020-01-14 17:24阅读:259来源:国知局
基于隐私保护的数据泄露溯源装置、方法及可读存储介质与流程
本发明涉及数据库
技术领域
,尤其涉及一种基于隐私保护的数据泄露溯源装置、方法及计算机可读存储介质。
背景技术
:现有企业一般具有各种用途的数据库,企业数据库作为一家企业的核心机密,一般都不可泄露。比如企业的仓储数据库存储有货物数量、入库出库日流水记录等信息。当仓储数据库需交给多个科技公司进行数据建模和分析时,可能会发生数据泄露。例如给a公司根据物流路线拓扑图分析优化仓储地点布局,给b公司用于分析仓库入库流水线设计,给c公司用于预测不同季节的仓储量灵活安排仓库库存和工作人员配比。在这个过程中,如果被委托公司将仓储数据库的信息泄露,导致信息被竞争对手分析利用,将对企业发展产生不利影响。当发生数据泄露时,企业如何找到数据泄露的源头,确定泄露责任是急需解决的问题。技术实现要素:有鉴于此,有必要提供一种基于隐私保护的数据泄露溯源装置、方法及计算机可读存储介质,通过嵌入水印使得当发生数据库泄露时,确定数据库泄露的源头。本发明一实施方式提供一种基于隐私保护的数据泄露溯源方法,包括:创建预设数据库的加密密钥,并基于所述加密密钥及被委托方的标识信息生成与所述被委托方对应的水印指纹,其中所述水印指纹包括多个指纹位;基于所述加密密钥、所述预设数据库的元组总数及所述预设数据库的主键确定在所述预设数据库中进行水印标记的待标记元组;基于所述加密密钥、所述预设数据库的属性总数及所述预设数据库的主键确定所述待标记元组的标记属性;基于所述加密密钥、所述预设数据库可用于标记属性的最低有效位及所述预设数据库的主键确定所述待标记元组中具有所述标记属性的待标记位的位置;基于所述加密密钥、所述被委托方的水印指纹的指纹长度及所述预设数据库的主键从多个所述指纹位中选定一目标指纹位;根据所述目标指纹位生成水印信息;及对所述待标记元组中具有所述标记属性的待标记位嵌入所述水印信息,以将所述预设数据库变更为第一数据库并分享给所述被委托方。优选地,所述被委托方的水印指纹由以下算式计算得到:f=h(k|m),其中f为所述被委托方的水印指纹,k为所述加密密钥,h()为哈希函数,“|”为预设拼接函数,m为所述被委托方的标识信息,若所述水印指纹的指纹长度为l,则f=(f1,f2,…,fl),fl为水印指纹f的第l位指纹位。优选地,所述待标记元组通过以下方式确定:对于所述预设数据库的每个元组r,若s1(k,r,p)modγ=0,则确定该元组r为所述待标记元组,其中sn为预设伪随机序列生成器生成的随机序列的第n项,p为所述预设数据库的主键,γ为所述预设数据库的元组总数。优选地,所述待标记元组的标记属性通过以下方式确定:对于确定为所述待标记元组的元组r,通过算式i=s2(k,r,p)modv计算得到i,所述标记属性为ai,其中v为所述预设数据库的属性总数;所述标记属性的待标记位的位置通过以下方式确定:通过算式j=s3(k,r,p)modξ计算得到j,则对所述标记属性的待标记位进行标记为标记所述标记属性的第j位,其中ξ为所述预设数据库可用于标记属性的最低有效位。优选地,所述基于所述目标指纹位生成水印信息的步骤包括:基于预设掩码规则生成所述待标记元组的掩码位;及基于所述目标指纹位及所述掩码位生成所述水印信息;其中,所述目标指纹位通过以下算式确定:g=s5(k,r,p)modl,所述目标指纹位fg为所述水印指纹f的第g位指纹位;所述预设掩码规则为:计算s4(k,r,p)的值,若该值为偶数,则确定所述掩码位x=0,否则,确定所述掩码位x=1。优选地,所述基于所述目标指纹指数及所述掩码位生成所述水印信息的步骤包括:计算所述目标指纹位与所述掩码位的异或值,并将计算得到的异或值作为所述水印信息。优选地,所述方法还包括:判断利用所述被委托方的水印指纹从盗版数据库中每一检测位置提取到的水印信息是否均与从所述第一数据库对应检测位置提取到的水印信息相同;及若相同,则判定所述盗版数据库经由所述被委托方泄露出去。优选地,所述方法还包括:基于所述预设数据库的数据有效位及所述预设数据库的属性中的字段的最大数据位确定所述预设数据库可用于标记属性的最低有效位。本发明一实施方式提供一种基于隐私保护的数据泄露溯源装置,所述装置包括处理器及存储器,所述存储器上存储有若干计算机程序,所述处理器用于执行存储器中存储的计算机程序时实现上述基于隐私保护的数据泄露溯源方法的步骤。本发明一实施方式还提供一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,多条所述指令可被一个或者多个处理器执行,以实现上述的基于隐私保护的数据泄露溯源方法的步骤。与现有技术相比,上述基于隐私保护的数据泄露溯源装置、方法及计算机可读存储介质,可以实现当数据库持有方将数据库共享给其他用户时,实现对数据库的某一元组的某一属性值的特定位进行水印的嵌入,使得当发生数据库泄密时,可以通过比对水印找到泄露的源头,以确定泄露责任。附图说明图1是本发明一实施方式的数据泄露溯源装置的功能模块图。图2是本发明一实施方式的数据泄露溯源程序的功能模块图。图3是本发明一实施方式的数据泄露溯源方法的流程图。主要元件符号说明存储器10处理器20数据泄露溯源程序30创建模块101第一确定模块102第二确定模块103第三确定模块104第四确定模块105生成模块106嵌入模块107数据泄露溯源装置100如下具体实施方式将结合上述附图进一步说明本发明。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。进一步需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。请参阅图1,为本发明数据泄露溯源装置较佳实施例的示意图。数据泄露溯源装置100可以包括存储器10、处理器20以及存储在所述存储器10中并可在所述处理器20上运行的数据泄露溯源程序30。所述处理器20执行所述数据泄露溯源程序30时实现数据泄露溯源方法实施例中的步骤,例如图3所示的步骤s300~s312。或者,所述处理器20执行所述数据泄露溯源程序30时实现图3中各模块的功能,例如模块101~107。所述数据泄露溯源程序30可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器10中,并由所述处理器20执行,以完成本发明。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,所述指令段用于描述所述数据泄露溯源程序30在所述数据泄露溯源装置100中的执行过程。例如,所述数据泄露溯源程序30可以被分割成图2中的创建模块101、第一确定模块102、第二确定模块103、第三确定模块104、第四确定模块105、生成模块106及嵌入模块107。各模块具体功能参见下图2中各模块的功能。本领域技术人员可以理解,所述示意图仅是数据泄露溯源装置100的示例,并不构成对数据泄露溯源装置100的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述数据泄露溯源装置100还可以包括通信模块、总线等。所称处理器20可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者所述处理器20也可以是任何常规的处理器等,所述处理器20可以利用各种接口和总线连接数据泄露溯源装置100的各个部分。所述存储器10可用于存储所述数据泄露溯源程序30和/或模块,所述处理器20通过运行或执行存储在所述存储器10内的计算机程序和/或模块,以及调用存储在存储器10内的数据,实现所述数据泄露溯源装置100的各种功能。所述存储器10可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。图2为本发明数据泄露溯源程序较佳实施例的功能模块图。参阅图2所示,数据泄露溯源程序30可以包括创建模块101、第一确定模块102、第二确定模块103、第三确定模块104、第四确定模块105、生成模块106及嵌入模块107。在一实施方式中,上述模块可以为存储于所述存储器10中且可被所述处理器20调用执行的可程序化软件指令。可以理解的是,在其他实施方式中,上述模块也可为固化于所述处理器20中的程序指令或固件(firmware)。创建模块101用于创建预设数据库的加密密钥,并基于所述加密密钥及被委托方的标识信息生成与所述被委托方对应的水印指纹。在一实施方式中,所述预设数据库优选包含有隐私数据或机密数据,不宜泄露。比如,所述预设数据库为企业的仓储数据库,所述仓储数据库存储有货物名称、货物编号、货物数量、货物的制造商信息、仓库信息、仓库工作人员信息、入库流水记录信息、出库流水记录信息等。在本发明的其他实施方式中,所述预设数据库还可以是存储有其他需要保密的数据的数据库。在一实施方式中,所述加密密钥可以基于现有加密算法生成,在此不再限定,所述加密密钥由所述预设数据库的持有方持有。所述被委托方的标识信息可以是一组字符串,可以由所述预设数据库的持有方预先为所述被委托方分配一序列号来作为所述标识信息。比如,所述预设数据库的持有方为科技公司a1,所述预设数据库为仓储数据库,科技公司a1将所述仓储数据库交给科技公司b1进行数据分析,以通过科技公司b1分析得到仓库入库流水线设计,科技公司b1的标识信息为:“73ki392hfyw7d62”。在本发明的其他实施方式中,所述被委托方的标识信息还可以是被为委托自身对外公开的具有身份标识的信息,比如营业执照号、纳税识别号等。所述创建模块101可以基于所述加密密钥及所述被委托方的标识信息生成所述水印指纹。具体地,所述创建模块101可以将所述加密密钥和被委托方的标识信息进行连接与哈希运算得到所述水印指纹。所述水印指纹可以通过以上算式得到:f=h(k|m),其中f为所述被委托方的水印指纹,k为所述加密密钥,h()为哈希函数,“|”为预设拼接函数,m为所述被委托方的标识信息。所述预设拼接函数可以根据实际使用需求进行选定。所述水印指纹可以包括多个指纹位,若所述水印指纹的指纹长度为l,则所述水印指纹还可以被表示为:f=(f1,f2,…,fl),其中fl为水印指纹f的第l位指纹位。在一实施方式中,所述水印指纹优选为二进制序列。所述水印指纹的指纹长度优选满足以下关系式:l>=logn,其中n为被委托方的员工人数。第一确定模块102用于基于所述加密密钥、所述预设数据库的元组总数及所述预设数据库的主键确定在所述预设数据库中进行水印标记的待标记元组。在一实施方式中,元组表示所述预设数据库的一行,属性表示所述预设数据库的一列,所述数据泄露溯源装置100可实现对元组的某一属性值的特定位进行水印的嵌入。可以理解的,所述预设数据库可以包含有多个元组,在进行水印嵌入时一般不会对所有元组进行水印嵌入,所述第一确定模块102可以基于所述加密密钥、所述预设数据库的元组总数及所述预设数据库的主键确定在所述预设数据库中需进行水印标记的待标记元组。在一实施方式中,对于每个元组r,若s1(k,r,p)modγ=0,则确定该元组r为所述待标记元组。其中s为伪随机序列生成器,s1为该伪随机序列生成器生成的随机序列的第1项,p为所述预设数据库的主键,γ为所述预设数据库的元组总数。对于伪随机序列生成器s,s(k,r,p)表示以k、r、p为种子的随机序列。根据伪随机数生成算法可知,对于固定的种子k、r、p,其每次产生的随机序列是确定的。在本发明的其他实施方式中,第一确定模块102也不可以不根据以k、r、p为种子的随机序列的第1项来确定待标记元组,可以约定以k、r、p为种子的随机序列的其他项来确定待标记元组,比如以随机序列的第6项来确定待标记元组,此时,若s6(k,r,p)modγ=0,则确定该元组r为所述待标记元组。第二确定模块103用于基于所述加密密钥、所述预设数据库的属性总数及所述预设数据库的主键确定所述待标记元组的标记属性。在一实施方式中,当确定待标记元组后,对于每一待标记元组,其可对应多个属性。假设v为所述预设数据库的属性总数,则每一待标记元组对可对应v个属性。由于所述数据泄露溯源装置100优选是对元组的某一特定属性值的特定位进行水印的嵌入,该特定属性值可以基于所述加密密钥、所述预设数据库的属性总数及所述预设数据库的主键来确定。在一实施方式中,所述待标记元组的标记属性可以通过以下方式确定:对于确定为所述待标记元组的元组r,通过算式i=s2(k,r,p)modv计算得到i,则所述标记属性为ai,其中v为所述预设数据库的属性总数,ai为所述待标记元组的第i列。举例而言,对于待标记元组r1,通过算式i=s2(k,r1,p)modv计算得到i等于5,则所述标记属性为待标记元组r1的第5列。在本发明的其他实施方式中,第二确定模块103也可以不根据随机序列的第2项来确定待标记元组的标记属性,同样可以约定以k、r、p为种子的随机序列的其他项来确定待标记元组,比如以随机序列的第7项来确定待标记元组,此时,i=s7(k,r,p)modv。第三确定模块104用于基于所述加密密钥、所述预设数据库可用于标记属性的最低有效位及所述预设数据库的主键确定所述待标记元组中具有所述标记属性的待标记位的位置。在一实施方式中,当所述待标记元组的标记属性被确定后,还进一步确定所述标记属性的待标记位的位置,进而可以增强水印嵌入的隐秘性。具体地,第三确定模块104可以基于所述加密密钥、所述预设数据库可用于标记属性的最低有效位及所述预设数据库的主键确定所述标记属性的待标记位的位置。在一实施方式中,所述标记属性的待标记位的位置可以通过以下方式确定:对于确定为所述待标记元组的元组r,通过算式j=s3(k,r,p)modξ计算得到j,则所述标记属性的第j位为所述标记属性的待标记位,其中ξ为所述预设数据库可用于标记属性的最低有效位。举例而言,对于待标记元组r2,通过算式j=s3(k,r2,p)modξ计算得到j等于10,则所述标记属性的待标记位为所述标记属性的第10位。在本发明的其他实施方式中,第三确定模块104也可以不根据随机序列的第3项来确定所述待标记位的位置,同样可以约定以k、r、p为种子的随机序列的其他项来确定待标记元组,比如以随机序列的第8项来确定待标记元组,此时,j=s8(k,r,p)modξ。在一实施方式中,第三确定模块104还可以基于所述预设数据库的数据有效位及所述预设数据库的属性中的字段的最大数据位确定所述预设数据库可用于标记属性的最低有效位ξ。举例而言,属性“货物数量”最大值为10,所述预设数据库的数据有效位为7位,即所述预设数据库的最大数据数量为27=128,由于23<10<24,则预设数据库的4位数据有效位可以用来记录“货物数量”,剩余3位可以用来标记属性,即最低有效位ξ=3。在一实施方式中,通过上述第一至第三确定模块102~104实现确定水印标记的具体标记位置,再通过下述的第四确定模块105及生成模块106得到水印标记的水印信息。第四确定模块105用于基于所述加密密钥、所述被委托方的水印指纹的指纹长度及所述预设数据库的主键从多个所述指纹位中选定一目标指纹位。在一实施方式中,所述水印指纹包括l个指纹位f1,f2,…,fl,第四确定模块105可以基于所述加密密钥、所述被委托方的水印指纹的指纹长度及所述预设数据库的主键从多个所述指纹位中选定一目标指纹位。所述目标指纹位可以通过以下算式确定:g=s5(k,r,p)modl,所述目标指纹位fg为所述水印指纹f的第g位指纹位。举例而言,对于待标记元组r2,通过算式g=s5(k,r,p)modl计算得到g等于5,则所述目标指纹位水印指纹的第5位指纹位f5。在本发明的其他实施方式中,第四确定模块105也可以不根据随机序列的第5项来确定所述目标指纹位,同样可以约定以k、r、p为种子的随机序列的其他项来确定所述目标指纹位,比如以随机序列的第10项来确定所述目标指纹位,此时,g=s10(k,r,p)modl。生成模块106用于根据所述目标指纹位生成水印信息。在一实施方式中,当确定了所述目标指纹位后,所述生成模块106可以根据所述目标指纹位生成水印信息。比如所述生成模块106可以将所述目标指纹位代入预设公式进行运算,或者代入预设随机算法进行运算,并将运算得到的值作为所述水印信息。在一实施方式中,所述生成模块106还用于基于预设掩码规则生成所述待标记元组的掩码位,再基于所述目标指纹位及所述掩码位生成所述水印信息。所述预设掩码规则可以是:对于当前待标记元组r,计算s4(k,r,p)的值,若该值为偶数,则确定该待标记元组r对应的掩码位x=0,否则,确定对应的掩码位x=1。在本发明的其他实施方式中,所述预设掩码规则还可以不根据随机序列的第4项来确定所述掩码位,同样可以约定以k、r、p为种子的随机序列的其他项来确定所述目标指纹位,比如以随机序列的第9或12项等来确定所述掩码位,此时当前待标记元组r,计算s9(k,r,p)的值,若该值为偶数,则确定该待标记元组r对应的掩码位x=0,否则,确定对应的掩码位x=1,或者计算s12(k,r,p)的值,若该值为偶数,则确定该待标记元组r对应的掩码位x=0,否则,确定对应的掩码位x=1。在一实施方式中,所述生成模块106优选计算所述目标指纹位与所述掩码位的异或值,并将计算得到的异或值作为所述水印信息。可以理解的,所述生成模块106也可以对所述目标指纹位与所述掩码位进行其他类型的运算,并将运算值作为所述水印信息。嵌入模块107用于对所述待标记元组中具有所述标记属性的待标记位嵌入所述水印信息,以将所述预设数据库变更为第一数据库并分享给所述被委托方。在一实施方式中,通过第一至第三确定模块102~104可以实现确定每一待标记元组的水印标记的具体标记位置,通过第四确定模块105及生成模块106可以得到每一水印标记的水印信息,当确定好待标记元组的水印信息及水印的具体标记位置后,嵌入模块107可进行水印嵌入操作。具体地,对于每一待标记元组,嵌入模块107对该待标记元组中具有所述标记属性的待标记位嵌入对应的水印信息。当每一待标记元组完成水印嵌入后,所述预设数据库变更为包含有多个水印信息的第一数据库,该第一数据库可以由数据持有方分享给所述被委托方,以进行数据分析。可以理解的,由于水印指纹是基于基于所述加密密钥及每一被委托方的唯一标识信息生成,数据持有方分享给每一被委托方的数据库包含有不同的水印,进而可以实现候选泄露溯源。当添加有水印的预设数据库发生泄密,比如被暴露在互联网上、或者卖给竞争对手。所述数据库持有方可以通过以下方式实现泄露溯源检测:a).利用所述加密密钥k及每一被委托方(假设包括a、b、c、d四个公司)的标识信息,得到4个水印指纹f1(对应a公司)、f2(对应b公司)、f3(对应c公司)、f4(对应d公司);b).依次检测每个水印指纹,对于添加有水印的数据库的每个元组,利用前述水印嵌入过程确定每一水印标记位置得到一个ai[j],并可得到该ai[j]的水印信息,判断和当前盗版数据库的a’i[j]中的水印信息是否相等,如果相等则验证通过。如果所有待标记元组均验证通过,则确定该指纹为泄密方的水印指纹,如果是从d公司泄露的,则d公司的水印指纹f4会被验证通过,即可以确定泄露的数据库是d公司经手泄露的,泄露溯源完成,d公司将会被数据库持有方委托人追究责任。图3为本发明一实施方式中数据泄露溯源方法的流程图。根据不同的需求,所述流程图中步骤的顺序可以改变,某些步骤可以省略。步骤s300,创建预设数据库的加密密钥,并基于所述加密密钥及被委托方的标识信息生成与所述被委托方对应的水印指纹,其中所述水印指纹包括多个指纹位。步骤s302,基于所述加密密钥、所述预设数据库的元组总数及所述预设数据库的主键确定在所述预设数据库中进行水印标记的待标记元组。步骤s304,基于所述加密密钥、所述预设数据库的属性总数及所述预设数据库的主键确定所述待标记元组的标记属性。步骤s306,基于所述加密密钥、所述预设数据库可用于标记属性的最低有效位及所述预设数据库的主键确定所述待标记元组中具有所述标记属性的待标记位的位置。步骤s308,基于所述加密密钥、所述被委托方的水印指纹的指纹长度及所述预设数据库的主键从多个所述指纹位中选定一目标指纹位。步骤s310,根据所述目标指纹位生成水印信息。步骤s312,对所述待标记元组中具有所述标记属性的待标记位嵌入所述水印信息,以将所述预设数据库变更为第一数据库并分享给所述被委托方。上述基于隐私保护的数据泄露溯源装置、方法及计算机可读存储介质,可以实现当数据库持有方将数据库共享给其他用户时,实现对数据库的某一元组的某一属性值的特定位进行水印的嵌入,使得当发生数据库泄密时,可以通过比对水印找到泄露的源头,以确定泄露责任。对本领域的技术人员来说,可以根据本发明的发明方案和发明构思结合生产的实际需要做出其他相应的改变或调整,而这些改变和调整都应属于本发明所公开的范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1