CN112948864B - 基于垂直分区数据库的可验证ppfim方法 - Google Patents
基于垂直分区数据库的可验证ppfim方法 Download PDFInfo
- Publication number
- CN112948864B CN112948864B CN202110305354.7A CN202110305354A CN112948864B CN 112948864 B CN112948864 B CN 112948864B CN 202110305354 A CN202110305354 A CN 202110305354A CN 112948864 B CN112948864 B CN 112948864B
- Authority
- CN
- China
- Prior art keywords
- data
- database
- afi
- item
- items
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2465—Query processing support for facilitating data mining operations in structured databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
- G06N5/025—Extracting rules from data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Medical Informatics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Fuzzy Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于垂直分区数据库的可验证PPFIM方法,主要解决现有方案的挖掘结果不可验证和泄露项集支持度的问题。步骤包括:1)数据拥有者生成人工事务并添加进原始数据库;2)数据拥有者向数据库中添加虚假事务来隐藏数据项的频率;3)数据拥有者对数据库进行加密后发给云服务器CSP;4)CSP生成联合数据库,并用Eclat算法进行频繁项集挖掘;5)CSP和辅助云服务器交互,计算出挖掘结果中疑似频繁项集的加密频繁真实值,将其和疑似频繁项集一起返回给相关的数据拥有者;6)数据拥有者解密挖掘结果,并验证挖掘结果的正确性和完整性。本发明在相同的安全级别下,减少了隐私泄露,实现了离线挖掘以及挖掘结果可验证。
Description
技术领域
本发明属于数据处理技术领域,更进一步涉信息安全技术,具体为一种基于垂直分区数据库的可验证隐私保护外包频繁项集挖掘PPFIM方法。可用于在垂直分区上的隐私保护频繁项集挖掘场景中,实现挖掘结果可验证、隐私信息不外泄。
背景技术
随着互联网时代的兴起,数据作为一种重要资源,在社交、金融、医疗和教育等多个领域发挥出了巨大的作用。数据挖掘技术能够从海量的数据中分析出具有潜在价值的信息,得到了越来越多的重视。频繁项集挖掘是最为常用的数据挖掘技术之一,也是关联规则挖掘技术的核心。频繁项集挖掘通常用于发现大型事务数据库中频繁共现的数据项,在市场篮子分析、医疗保健、入侵检测、网络流量管理、生物信息学等领域得到了广泛应用。
云服务支持实时、海量数据存储和处理,同时具有着灵活、易扩展以及性价比高等优点。在现实场景中,来自多用户的大规模数据收集和存储也是由云来完成,因此由云端来进行数据挖掘可以极大节约海量数据集的挖掘成本,并提高挖掘结果的有效性和准确性。但是由于云服务收集的数据集常常会包含居住地址、财务信息等敏感数据,对这样的数据集进行挖掘时不可避免地带来隐私问题。经典的频繁项集挖掘算法Apriori、FP-growth和Eclat适用于集中化的数据库,即全部原始数据存放在中心站点进行挖掘,并未考虑到外包数据挖掘带来的隐私保护问题。因此数据拥有者DO(Data Owner)们出于对数据安全性的担忧,可能会不愿意将原始数据发送到云端来进行数据挖掘。
为了解决这个问题,学者们展开了对隐私保护下的数据挖掘PPDM(PrivacyPreserving Data Mining)技术的研究。其中的一种思路是基于随机化的方法来保护外包数据挖掘中的数据隐私。数据拥有者通过数据扰动对原始数据信息进行处理,在一定范围内更改数据的真实值,但是尽可能保持原始数据的统计特征。这样就可以实现对单个数据的隐私保护,同时不改变整个数据集的有价值的特征。另外一种思路就是对原始的据进行加密,云端在不解密的前提下对密态的数据集进行挖掘,从而有效保护原始数据的隐私信息。
J.Vaidya和C.Clifton在文献“Privacy preserving association rule miningin vertically partitioned data”(ACM,2002)提出了一个标量积协议,并基于该协议构建出了一个隐私保护的频繁项集挖掘方案。在这项工作的启发下,大量支持隐私保护的频繁项集挖掘方案被提出。Sheng Zhong在文献“Privacy-preserving algorithms fordistributed mining of frequent itemsets”(Information Science,2007)中借助非对称密码算法来计算项集的支持度,并解决了数据所有者都能够获得频繁项集的准确支持度的问题,这个问题会导致数据所有者们原始数据库中的信息泄露。值得强调的是,数据所有者并不希望其他数据所有者或者第三方服务器获取到自己数据库中除了挖掘结果之外的任何信息。
在现有的隐私保护外包频繁项集挖掘方案中,数据所有者将数据的存储和计算工作都外包给云来完成,并通过置换加密来保护原始数据库中数据项的安全,然而置换加密有着容易受到频率分析攻击的缺点。Fosca Giannotti,和Laks V.S.Lakshmanan等人在文献“Privacy-preserving mining of association rules from outsourced transactiondatabases”(IEEE Systems Journal,2016)提出了一种基于k-匿名的频率分析攻击解决方案,通过向原始数据库中添加虚假事务,使得数据库中的任意数据项都与至少k-1个其他数据项共享相同的频率,从而隐藏原始数据库中的数据项的频率。为了消除虚假数据项对频繁项集挖掘结果的影响,数据所有者们需要统计添加的虚假事务中各个数据项的频率,并在云端返回的挖掘结果中数据项的支持度上减去出现虚假事务中的频率。
上述的所有外包频繁项集挖掘方案,都默认云服务器是诚实且好奇的,即它虽然会尝试获取原始数据以及挖掘结果的相关信息,但是一定会诚实地完成挖掘任务并返回全部正确结果。实际上,如果云端出于节约成本或者运行错误等原因,并未进行完整的数据挖掘过程或者返回不完备的挖掘结果,数据拥有者只能通过比对多个云服务器返回的结果才可能发现云的撒谎行为。Wai Kit Wong,和David Wai-Lok Cheung等人在文献“An AuditEnvironment for Outsourcing of Frequent Itemset Mining”中设计了一种审计环境,数据所有者向外包的数据库中添加原本不存在的人工数据项,这些人工数据项包括虚假的频繁项集和非频繁项集。当数据所有者获得了云返回的挖掘结果之后,可以通过检查人工数据项来验证挖掘结果的正确性和完整性。但是该方案并没有改变原始数据库中的数据项频率,这就使得拥有一定外包数据库背景知识的云服务器可以通过频率分析来区分真实数据项与人工数据项。
发明内容
本发明的目的是针对上述现有技术的缺陷与不足,提出一种基于垂直分区数据库的可验证隐私保护外包频繁项集挖掘方法。该方法中垂直分区数据库的多个数据所有者将数据发送给云服务器CSP,CSP通过与辅助云服务器Evaluator交互,安全地实现隐私保护频繁项集挖掘,并将结果中的频繁项集发送给相关的数据拥有者,有效解决了现有技术中存在的挖掘结果不可验证和泄露隐私信息的技术问题。
为实现上述目的,本发明的思路是:每个数据拥有者向自身数据库中添加人工项集来验证挖掘结果的准确度,通过对事务的唯一标识信息TID进行哈希来保护原始TID信息,用置换加密来对数据项进行加密,通过添加虚假事务来抵抗频率分析,设置事务真实值RV来区分虚假事务;RV值通过Paillier加密算法进行加密来防止云服务器识别虚假事务;两个云服务器通过Paillier算法的同态性质以及安全比较协议来计算项集的支持度,最后,将挖掘结果中的频繁项集返回给相关的数据拥有者。
本发明实现上述目的具体步骤如下:
(1)给定支持度阈值为s%,数据拥有者生成人工频繁项集的集合AFI和人工非频繁项集的集合AII;用冲突图G表示AFI中项集之间的冲突关系,冲突图G中的每个节点表示AFI中的一个项集;
(2)根据AFI和AII生成人工事务数据库TA,并将其和原始数据库T合并得到数据库D,具体步骤为:
(2.1)首先生成一个与人工频繁项集的集合AFI大小相等的随机数组fAFI={fAFI[1],fAFI[2],…,fAFI[i],…,fAFI[n]},其中,n表示AFI中项集的数量,fAFI[i]表示AFI中第i个项集被添加进入人工事务的次数;
(2.2)设定两个初始值均为空集的集合,分别为第一集合S+和第二集合S-,随机选择一个项集u∈AFI,并将其添加进第一集合S+;然后将项集u在冲突图G中对应节点的所有相邻节点添加到第二集合S-中,即将所有与项集u存在冲突的项集添加进第二集合S-;
(2.3)重复步骤(2.2)直到AFI=S+∪S-,然后将得到的第一集合S+中所有项集作为一个事务,并用其更新数组fAFI;
(2.4)将所有存在于第一集合S+中的项集从AFI中移除,并在冲突图G中移除所有与第一集合S+中项集对应的节点,得到与第二集合S-对应的第二冲突图G';
(2.5)将第二冲突图G'作为新的冲突图G,返回步骤(2.2),直到获得的第二冲突图G'的冲突索引为0,即AFI中所有的节点两两之间不存在冲突;将此时第二冲突图G'中节点所对应的项集作为一个事务,并用其再次更新数组fAFI;
(2.6)判断更新后的数组fAFI中所有值是否均大于预先设定的支持度阈值,若是,得到人工事务数据库TA,执行步骤(2.7);反之,返回步骤(2.2);
(2.7)将原始数据库T与人工事务数据库TA合并得到新的数据库D;
(3)数据拥有者向数据库D中添加虚假事务,得到包含人工事务和虚假事务的数据库Z,该数据库中任意数据项与至少k-1个其他数据项拥有相同的频率,其中k为多个数据拥有者预先协商确定的参数;
(4)数据拥有者对数据库Z进行加密得到密态数据库Zp,并将其发送给云服务器CSP;
(5)云服务器CSP对所有数据拥有者发送来的密态数据库Zp进行整合得到联合数据库,对该联合数据库进行频繁项集挖掘,并将结果返回给每个数据拥有者,数据拥有者对结果进行解密并验证,具体步骤如下:
(5.1)某个数据拥有者U1将加密的支持度阈值Ts=[Suppmin]pk发给云服务器CSP,CSP再将支持度阈值Ts发给所有除U1之外的其它数据拥有者进行验证;
(5.2)云服务器CSP根据事务的唯一标识信息TID将所有数据拥有者提交的数据库聚合生成联合数据库;
(5.3)云服务器CSP通过频繁项集挖掘算法Eclat对联合数据库进行频繁项集挖掘,得到Eclat挖掘结果;
(5.4)针对Eclat挖掘结果中的任一疑似频繁项集S,将与S相关事务的唯一标识信息TID集合记为T(S),将S所包含项对应的数据拥有者集合记为D(S),将T(S)中第i个事务记为Ti,且Ti是由来自一个或多个数据拥有者的事务组成,将这些数据拥有者组成的集合记为D(S,i);ERVi,j表示D(S,i)中的第j个数据拥有者Dj在事务Ti中的加密真实值;根据下式计算疑似频繁项集S加密后的实际支持度为[Supp(S)]pk:
其中,N为Paillier秘钥生成算法生成的参数;
(5.5)云服务器CSP根据下式计算任一疑似频繁项集S的加密频繁真实值EFRV(S):
EFRV(S)=SC([Supp(S)]pk,Ts),
并将计算得到的所有疑似频繁项集以及该项集的EFRV值,发送给疑似频繁项集所包含项对应的数据拥有者;
(5.6)数据拥有者借助私钥sk解密加密频繁真实值EFRV,判断其是否为真实的频繁项集;若是,则进一步对该频繁项集进行解密并返回结果,继续执行步骤(5.7);反之,丢弃该频繁项集,直接进入步骤(6);
(5.7)数据拥有者判断返回结果中是否包含了AFI的所有项集以及每个项集的所有子项集,且不包含AII中的任何项集;若是,则表明云服务器返回了完整的正确挖掘结果;反之,数据拥有者可判定云服务器存在不诚实行为;
(6)频繁项集挖掘结束。
本发明与现有技术相比,具有以下优点:
第一、本发明中每个数据拥有者均向自己的事务数据库中添加了已知频繁或已知不频繁的人工项集,并确保云端不会将这些人工添加的项集与原始真实数据区分开,从而使得数据拥有者可以发现云端的不诚实行为,确保挖掘结果完备性可验证;
第二、本文通过Paillier算法来对数据库进行加密,该算法的安全性得到可靠的证明,相比于现有技术采用对称全同态加密算法,明显提高了安全性;
第三、本发明中云端在返回挖掘结果时,通过0或1的密文来区分真假频繁项集,不会直接返回项集的支持度,同时也不会向云服务器泄露结果相关的信息,这种不向数据拥有者泄露疑似频繁项集支持度的行为,有效保护了原始事务数据库的隐私性;
第四、由于本发明方法采用双云模型,数据拥有者将数据外包给云端之后不需要额外交互,由Evaluator来辅助CSP完成挖掘过程,实现离线挖掘,且不会降低安全性。
附图说明
图1为本发明方法的实现流程图;
图2为本发明方法的应用场景示意图。
具体实施方式
下面结合附图1,对本发明实现的步骤作进一步的详细描述。
参照图2,本发明方法的应用场景示包括两个以上的数据拥有者和两个云服务器(CSP和Evaluator)。每个实体的功能介绍如下:
数据拥有者:每个数据拥有者对自己的数据库进行预处理并加密之后,将加密的数据库发送给CSP进行隐私保护频繁项集挖掘。
云服务器CSP:CSP对来自不同数据拥有者的垂直分区数据库进行存储和整合获得联合数据库,在Evaluator的辅助下对该数据库进行频繁项集挖掘,之后将挖掘结果返回给相关的数据拥有者。
云服务器Evaluator:负责生成Paillier加密的公私钥对(pk,sk),将公钥pk发送给CSP和数据拥有者,私钥sk只发送给数据拥有者,并辅助CSP完成频繁项集挖掘。
实施例一:
参照图1,本发明提出的一种基于垂直分区数据库的可验证PPFIM方法,包括如下步骤:
步骤1:给定支持度阈值为s%,数据拥有者生成人工频繁项集的集合AFI和人工非频繁项集的集合AII;用冲突图G表示AFI中项集之间的冲突关系,冲突图G中的每个节点表示AFI中的一个项集。
生成人工频繁项集的集合AFI和人工非频繁项集的集合AII的具体流程如下:
(1.1)数据拥有者创建一个人工数据项集合IA,且该集合与原始数据库T中数据项集合I的交集为空;本实施例采用AII的大小作为IA的初始大小,实际上IA的初始大小并不重要,它的大小会在算法执行过程中不断改变;
(1.3)数据拥有者更新AFI的冲突图G,判断此时的(AFI-AII)是否满s-有效模式的条件,若不满足,撤销步骤(1.2)中已执行的添加操作,然后直接执行步骤(1.4);若满足,则计算更新后的AFI的负边界B-(L),并进行判断:如果B-(L)中存在未被添加到AII的项集,则将该项集添加到AII中;每次添加一个项集进入AII之后,检查(AFI-AII)是否满足s-有效模式的条件,如果添加某个项集之后(AFI-AII)不满足s-有效模式条件,则将该项集移除。
(1.4)如果项集H被成功添加进AII中,则返回步骤(1.2),直到AFI和AII的大小达到要求;如果H未被成功添加进AII,则创建一个新的人工项in,并将in添加到IA中,用in替换H中的一个原始数据项,重新尝试将H添加到AII中,若项集H包含m个数据项,则至多m次添加失败后,H将完全由新的数据项构成,必定可以被成功添加进AII。
步骤2:根据AFI和AII生成人工事务数据库TA,并将其和原始数据库T合并得到数据库D,具体步骤为:
(2.1)首先生成一个与人工频繁项集的集合AFI大小相等的随机数组fAFI={fAFI[1],fAFI[2],…,fAFI[i],…,fAFI[n]},其中,n表示AFI中项集的数量,fAFI[i]表示AFI中第i个项集被添加进入人工事务的次数;
(2.2)设定两个初始值均为空集的集合,分别为第一集合S+和第二集合S-,随机选择一个项集u∈AFI,并将其添加进第一集合S+;然后将项集u在冲突图G中对应节点的所有相邻节点添加到第二集合S-中,即将所有与项集u存在冲突的项集添加进第二集合S-;
(2.3)重复步骤(2.2)直到AFI=S+∪S-,然后将得到的第一集合S+中所有项集作为一个事务,并用其更新数组fAFI;此时第一集合S+中的所有项集两两之间不冲突,而第二集合S-中的所有项集至少与第一集合S+中的一个项集存在冲突。
(2.4)将所有存在于第一集合S+中的项集从AFI中移除,并在冲突图G中移除所有与第一集合S+中项集对应的节点,得到与第二集合S-对应的第二冲突图G';
(2.5)将第二冲突图G'作为新的冲突图G,返回步骤(2.2),直到获得的第二冲突图G'的冲突索引为0,即AFI中所有的节点两两之间不存在冲突;将此时第二冲突图G'中节点所对应的项集作为一个事务,并用其再次更新数组fAFI;
第二集合S-中的所有项集至少与第一次集合S+中的一个项集冲突,将冲突图G的冲突指数记为CI(G)、第二冲突图G′的冲突指数记为CI(G′),则CI(G′)≤CI(G)-1,即每次执行步骤(2.2)-(2.4)所述过程都会使冲突图的冲突索引在原来基础上降低,从而达到步骤(2.5)所述的冲突索引为0。
(2.6)判断更新后的数组fAFI中所有值是否均大于预先设定的支持度阈值,若是,得到人工事务数据库TA,执行步骤(2.7);反之,返回步骤(2.2);
(2.7)将原始数据库T与人工事务数据库TA合并得到新的数据库D;
步骤3:数据拥有者向数据库D中添加虚假事务,得到包含人工事务和虚假事务的数据库Z,从而实现隐藏数据项的频率;该数据库中任意数据项与至少k-1个其他数据项拥有相同的频率,其中k为多个数据拥有者预先协商确定的参数。
数据拥有者向数据库D中添加虚假事务,按如下步骤实现:
(3.1)数据所有者对整个数据库进行扫描,计算出每个数据项的支持度;
(3.2)数据所有者根据数据项的支持度,对数据项进行降序排列;从排序后的第一个数据项,即支持度最高的数据项开始,数据所有者将每k个相邻项编为新的一组,如果剩余的未分配数据项少于k个,则将这些数据项放入最后创建的组;数据所有者交换来自不同组的数据项,用于确保同组中的数据项不会出现在相同的事务中;
(3.3)数据所有者计算每个数据项的支持度与其所在的组中最高支持度之间的差值,即该数据项的噪音;
(3.4)数据所有者根据步骤(3.3)的计算结果生成虚假事务;虚假事务中某个数据项出现的次数等于该数据项的噪声;执行完毕后,同一组中的所有数据项在新的数据库中出现的频率相同。
步骤4:数据拥有者对数据库Z进行加密得到密态数据库Zp,并将其发送给云服务器CSP;对虚假事务数据库Z进行加密,包括以下步骤:
(4.1)计算虚假事务数据库Z中事务的唯一标识信息TID的哈希值,并将其作为新标识信息;
(4.2)对虚假事务数据库Z中所有的数据项进行置换加密;
(4.3)通过添加事务真实值RV来区分数据库D中的原始事务与虚假事务,对事务真实值RV采用Paillier算法进行加密得到加密真实值ERV。
步骤5:云服务器CSP对所有数据拥有者发送来的密态数据库Zp进行整合得到联合数据库,对该联合数据库进行频繁项集挖掘,并将结果返回给每个数据拥有者,数据拥有者对结果进行解密并验证,具体步骤如下:
(5.1)某个数据拥有者U1将加密的支持度阈值Ts=[Suppmin]pk发给云服务器CSP,CSP再将支持度阈值Ts发给所有除U1之外的其它数据拥有者进行验证;
(5.2)云服务器CSP根据事务的唯一标识信息TID将所有数据拥有者提交的数据库聚合生成联合数据库;这里联合数据库中包括的某个标识符对应的事务是所有数据拥有数据库中该标识符所对应事务的并集。
(5.3)云服务器CSP通过频繁项集挖掘算法Eclat对联合数据库进行频繁项集挖掘,得到Eclat挖掘结果;
(5.4)针对Eclat挖掘结果中的任一疑似频繁项集S,将与S相关事务的唯一标识信息TID集合记为T(S),将S所包含项对应的数据拥有者集合记为D(S),将T(S)中第i个事务记为Ti,且Ti是由来自一个或多个数据拥有者的事务组成,将这些数据拥有者组成的集合记为D(S,i);ERVi,j表示D(S,i)中的第j个数据拥有者Dj在事务Ti中的加密真实值;根据下式计算疑似频繁项集S加密后的实际支持度为[Supp(S)]pk:
其中,N为Paillier秘钥生成算法生成的参数;
Paillier算法的秘钥生成算法,具体如下:
(5.4.1)输入安全参数ε,随机选取比特长度相等的大素数p和q,并计算大整数N=pq以及λ=lcm(p-1,q-1),其中lcm(·)表示计算输入两个参数的最小公倍数;
(5.4.2)选取随机数且g满足gcd(L(gλmodN2),N)=1,其中gcd(·)表示计算输入的两个参数的最大公因数,而L(x)=(x-1)/N;除此之外,L(x)=(x-1)/N的输入参数x满足且x≡1mod N;
(5.4.3)秘钥生成算法的输出为公钥{N,g}和私钥λ。
(5.5)云服务器CSP根据下式计算任一疑似频繁项集S的加密频繁真实值EFRV(S):
EFRV(S)=SC([Supp(S)]pk,Ts),
并将计算得到的所有疑似频繁项集以及该项集的EFRV值,发送给疑似频繁项集所包含项对应的数据拥有者;
(5.6)数据拥有者借助私钥sk解密加密频繁真实值EFRV,判断其是否为真实的频繁项集;若是,则进一步对该频繁项集进行解密并返回结果,继续执行步骤(5.7);反之,丢弃该频繁项集,直接进入步骤(6);
(5.7)数据拥有者判断返回结果中是否包含了AFI的所有项集以及每个项集的所有子项集,且不包含AII中的任何项集;若是,则表明云服务器返回了完整的正确挖掘结果;反之,数据拥有者可判定云服务器存在不诚实行为;
步骤6:频繁项集挖掘结束。
实施例二:
基于实施例1步骤(1.3),本发明实施例提供了其中所述概念和相关定理的具体定义,如下:
正边界:给定数据项的集合I,用L表示一组满足单调性的频繁项集的集合。L的正边界,记为B+(L),是L中所有长度达到最大值的频繁项集的集合,即
负边界:给定数据项的集合I,用L表示一组频繁项集的集合,满足L中任意频繁项集的任意子项集同样包含在L中;将L的负边界记为B-(L),即所有与L相关的具有最小长度的非频繁项集的集合:
有效模式:给定支持度阈值s%,对于人工频繁项集的集合AFI和人工非频繁数据项的集合,当且仅当存在数据库TA满足AFI中的任意项集在TA中为频繁项集且AII中的任意项集在TA为非频繁项集时,称项集模式(AFI,AII)为s-有效模式;给定有效模式(AFI,AII),其中AFI和AII满足单调性,如果那么(AFI,AII)是s-有效模式。
有效返回:对于云服务器返回的挖掘结果R,当且仅当
时,称R为有效返回。
定理1:我们将来自云服务器的有效返回记为L′,将事务数据库中真正的频繁项集的集合记为L。当且仅当B+(L′)中的所有项集都为频繁项集时,可以确定与L相比,没有任何非频繁项集被添加进L′;当且仅当B-(L′)中的所有项集都为非频繁项集时,可以确定与L相比,没有任何频繁项集从L′中被移除。
AFI中的冲突:假设xi,xj是AFI中的两个项集且i≠j.当且仅当
时,我们称xi和xj冲突。如果人工事务数据库TA中的某个事务tk中同时包含相互冲突的项集xi和xj,那么tk可能也包含了对应的非频繁项集z。这样的情形是应当尽量避免的。
冲突指数:用图G=(V,E)表示$AFI$中的项集之间的冲突关系。图G中的每个节点表示AFI中的一个项集,而边(n1,n2)表示n1和n2所代表的节点相互冲突。节点n的冲突指数,记为cn,代表的是图G中n的邻节点的数量,也就是AFI中与n代表的项集存在冲突的项集的数量。图G的冲突指数,记为CI(G),等于图G中所有节点冲突指数的最大值,即CI(G)=maxc∈ Vcn。
实施例三:
本实施例提供的基于垂直分区数据库的可验证PPFIM方法实现步骤同实施例一,仅对其中步骤4和步骤5按照如下进行:
数据所有者对数据库D进行加密,分为四步:
4.1)辅助云Evaluator生成Paillier公私钥对(pk-sk)。公钥pk公开所有人可见,私钥sk仅发送给数据拥有者;
4.2)为了消除步骤3中添加的虚假项对频繁项集挖掘的结果造成干扰,需要添加标签RV来对数据库D中的事务以及为防止频率分析而添加的虚假事务进行区分。将D中的事务的RV值设为1,虚假事务的RV值设为0。RV值通过Paillier算法进行加密得到ERV,即为0或1的密文:[1]pk,[0]pk。因为Paillier算法是概率加密的,相同的明文加密后的密文也不同,所以云端无法通过ERV值区分真实事务和虚假事务;
4.3)数据拥有者计算事务的唯一标识信息TID的哈希值,作为新TID,并根据所有拥有者共享的替换加密表对数据库中所有的数据项进行替换加密;
4.4)每个数据拥有者将自己添加虚假事务之后的私有数据库Zp发送给云服务器CSP。
云端对来自多个数据拥有者的垂直分区数据库进行频繁项集挖掘,并将结果返回给数据拥有者,数据拥有者对结果进行解密并验证,分为七步:
5.1)数据拥有者U1将加密的支持度阈值Ts=[Suppmin]pk发给CSP,CSP将Ts发给所有其他的数据拥有者来进行验证。
5.2)云端根据TID来将所有数据拥有者提交的数据库聚合生成联合数据库。联合数据库中某个TID对应的事务,是所有拥有者数据库中该TID所对应的事务的并集。
5.3)云端通过经典的频繁项集挖掘算法Eclat来对联合数据库进行频繁项集挖掘。对于挖掘结果中的每个项集,Eclat在执行挖掘过程中都会生成与该项集相关的TID的集合。因为我们向数据库里添加了虚假事务,因此可能会导致某些项集的支持度要高于它实际的支持度,使得某些支持度低于支持度阈值的项集被误认为是频繁项集。也就是说,执行Eclat算法后得到的挖掘结果中的项集都是“疑似频繁”(seeminglyfrequent)的,而真实的频繁项集的集合是疑似频繁项集集合的子集。
5.4)对于疑似频繁项集S,它的加密后的实际支持度为[Supp(S)]pk。如上文所述,Eclat算法挖掘频繁项集会返回S相关的事务的TID集合,我们将这些事务组成的集合记为T(S)。S所包含的项可能来自多个数据拥有者,我们将这些数据拥有者组成的集合记为D(S)。换句话说,S中所包含的数据项全部来自D(S)中的数据拥有者,同时D(S)中的每个数据拥有者至少拥有一个数据项在项集S中。T(S)中的事务Ti由来自一个或多个数据拥有者的事务组成,这些数据拥有者组成的集合记为D(S,i)。ERVi,j代表数据拥有者Dj在事务Ti中的部分的ERV值。S的实际支持度的密文为
其中只有当D(S,i)中的每个数据拥有者在事务Ti中的部分都不为虚假事务时,
才会输出[1]pk,否则输出[0]pk。所述安全比较协议(SecureComparison)执行过程如下:
SC输入:CSP持有作为输入值得两个密文[a]pk and[b]pk,其中a,b<2l,l<|N|/2-1;Evaluator持有私钥sk。
SC输出:如果a≥b,CSP获得[1]pk,否则CSP获得[0]pk。
5.4.1)CSP:计算X=([a]pk)2·[1]pk,Y=([b]pk)2;
5.4.2)CSP:选择随机数t←{0,1},如果t=0,计算Z←X·Y(N-1);如果t=1,计算Z←Y·X(N-1);
5.4.3)CSP:选择随机数r1,r2←{1,…,2l},r2<<r1,计算W=Zr1·[r2]pk,将W发送给Evaluator;
5.4.4)Evaluator:解密w=Dec(W),如果w<N/2,d←1,否则d←0。将[d]pk发给CSP;
5.4.5)CSP:如果t=0,[e]pk←[d]pk,否则[e]pk←([d]pk)N-1·[1]pk。
5.5)对于疑似频繁项集S,它的加密频繁真实值(Encrypted FrequentRealValue)为
EFRV=SC([Supp(S)]pk,Ts)
如果S是真实的频繁项集,那么EFRV(S)是1的密文,否则为0的密文。CSP将所有的疑似频繁项集以及该项集的EFRV值发送给D(S)中的数据拥有者。
5.6)数据拥有者们借助私钥sk解密疑似频繁项集的EFRV值,从而判断它们是否是真实的频繁项集。如果某个疑似频繁项集是真实的,那么数据拥有者将对它进行解密。
5.7)数据拥有者判断返回结果中是否包含了AFI的所有项集以及它们的子集,且不包含AII中的任何项集。如果判断结果为否,那么数据拥有者可以确定云服务器有不诚实行为。
本发明可用于垂直分区上的隐私保护频繁项集挖掘场景中,多个数据拥有者对各自的原始数据库进行加密,实现信息的隐私性,将挖掘任务交由云服务器完成,且不向云服务器泄露原始数据以及挖掘结果的信息。
本发明未详细说明部分属于本领域技术人员公知常识。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,显然对于本领域的专业人员来说,在了解了本发明内容和原理后,都可能在不背离本发明原理、结构的情况下,进行形式和细节上的各种修正和改变,但是这些基于本发明思想的修正和改变仍在本发明的权利要求保护范围之内。
Claims (9)
1.一种基于垂直分区数据库的可验证隐私保护频繁项集挖掘PPFIM方法,其特征在于,包括以下具体步骤:
(1)给定支持度阈值为s%,数据拥有者生成人工频繁项集的集合AFI和人工非频繁项集的集合AII;用冲突图G表示AFI中项集之间的冲突关系,冲突图G中的每个节点表示AFI中的一个项集;
(2)根据AFI和AII生成人工事务数据库TA,并将其和原始数据库T合并得到数据库D,具体步骤为:
(2.1)首先生成一个与人工频繁项集的集合AFI大小相等的随机数组fAFI={fAFI[1],fAFI[2], … ,fAFI[i], … ,fAFI[n]},其中,n表示AFI中项集的数量,fAFI[i]表示AFI中第i个项集被添加进入人工事务的次数;
(2.2)设定两个初始值均为空集的集合,分别为第一集合S+和第二集合S-,随机选择一个项集u∈AFI,并将其添加进第一集合S+;然后将项集u在冲突图G中对应节点的所有相邻节点添加到第二集合S-中,即将所有与项集u存在冲突的项集添加进第二集合S-;
(2.3)重复步骤(2.2)直到AFI=S+∪S-,然后将得到的第一集合S+中所有项集作为一个事务,并用其更新数组fAFI;
(2.4)将所有存在于第一集合S+中的项集从AFI中移除,并在冲突图G中移除所有与第一集合S+中项集对应的节点,得到与第二集合S-对应的第二冲突图G';
(2.5)将第二冲突图G'作为新的冲突图G,返回步骤(2.2),直到获得的第二冲突图G'的冲突索引为0,即AFI中所有的节点两两之间不存在冲突;将此时第二冲突图G'中节点所对应的项集作为一个事务,并用其再次更新数组fAFI;
(2.6)判断更新后的数组fAFI中所有值是否均大于预先设定的支持度阈值,若是,得到人工事务数据库TA,执行步骤(2.7);反之,返回步骤(2.2);
(2.7)将原始数据库T与人工事务数据库TA合并得到新的数据库D;
(3)数据拥有者向数据库D中添加虚假事务,得到包含人工事务和虚假事务的数据库Z,该数据库中任意数据项与至少k-1个其他数据项拥有相同的频率,其中k为多个数据拥有者预先协商确定的参数;
(4)数据拥有者对数据库Z进行加密得到密态数据库Zp,并将其发送给云服务器CSP;
(5)云服务器CSP对所有数据拥有者发送来的密态数据库Zp进行整合得到联合数据库,对该联合数据库进行频繁项集挖掘,并将结果返回给每个数据拥有者,数据拥有者对结果进行解密并验证,具体步骤如下:
(5.1)某个数据拥有者U1将加密的支持度阈值Ts=[Suppmin]pk发给云服务器CSP,CSP再将支持度阈值Ts发给所有除U1之外的其它数据拥有者进行验证;
(5.2)云服务器CSP根据事务的唯一标识信息TID将所有数据拥有者提交的数据库聚合生成联合数据库;
(5.3)云服务器CSP通过频繁项集挖掘算法Eclat对联合数据库进行频繁项集挖掘,得到Eclat挖掘结果;
(5.4)针对Eclat挖掘结果中的任一疑似频繁项集S,将与S相关事务的唯一标识信息TID集合记为T(S),将S所包含项对应的数据拥有者集合记为D(S),将T(S)中第i个事务记为Ti,且Ti是由来自一个或多个数据拥有者的事务组成,将这些数据拥有者组成的集合记为D(S,i);ERVi,j表示D(S,i)中的第j个数据拥有者Dj在事务Ti中的加密真实值;根据下式计算疑似频繁项集S加密后的实际支持度为[Supp(S)]pk:
其中,N为Paillier秘钥生成算法生成的参数;
(5.5)云服务器CSP根据下式计算任一疑似频繁项集S的加密频繁真实值EFRV(S):
EFRV(S)=SC([Supp(S)]pk,Ts),
并将计算得到的所有疑似频繁项集以及该项集的EFRV值,发送给疑似频繁项集所包含项对应的数据拥有者;
(5.6)数据拥有者借助私钥sk解密加密频繁真实值EFRV,判断其是否为真实的频繁项集;若是,则进一步对该频繁项集进行解密并返回结果,继续执行步骤(5.7);反之,丢弃该频繁项集,直接进入步骤(6);
(5.7)数据拥有者判断返回结果中是否包含了AFI的所有项集以及每个项集的所有子项集,且不包含AII中的任何项集;若是,则表明云服务器返回了完整的正确挖掘结果;反之,数据拥有者可判定云服务器存在不诚实行为;
(6)频繁项集挖掘结束。
2.根据权利要求1所述的方法,其特征在于:步骤(1)中生成人工频繁项集的集合AFI和人工非频繁项集的集合AII的具体流程为:
(1.1)数据拥有者创建一个人工数据项集合IA,且该集合与原始数据库T中数据项集合I的交集为空;
(1.3)数据拥有者更新AFI的冲突图G,判断此时的(AFI-AII)是否满s-有效模式的条件,若不满足,撤销步骤(1.2)中已执行的添加操作,然后直接执行步骤(1.4);若满足,则计算更新后的AFI的负边界B-(L),并进行判断:如果B-(L)中存在未被添加到AII的项集,则将该项集添加到AII中;每次添加一个项集进入AII之后,检查(AFI-AII)是否满足s-有效模式的条件,如果添加某个项集之后(AFI-AII)不满足s-有效模式条件,则将该项集移除;
(1.4)如果项集H被成功添加进AII中,则返回步骤(1.2),直到AFI和AII的大小达到要求;如果H未被成功添加进AII,则创建一个新的人工项in,并将in添加到IA中,用in替换H中的一个原始数据项,重新尝试将H添加到AII中,若项集H包含m个数据项,则至多m次添加失败后,H将完全由新的数据项构成,必定可以被成功添加进AII。
4.根据权利要求1所述的方法,其特征在于:步骤(2)中第二集合S-中的所有项集至少与第一次集合S+中的一个项集冲突,将冲突图G的冲突指数记为CI(G)、第二冲突图G′的冲突指数记为CI(G′),则CI(G′)≤CI(G)-1,即每次执行步骤(2.2)-(2.4)过程都会使冲突图的冲突索引在原来基础上降低。
5.根据权利要求1所述的方法,其特征在于:步骤(2.3)中重复步骤(2.2)直到AFI=S+∪S-,此时第一集合S+中的所有项集两两之间不冲突,而第二集合S-中的所有项集至少与第一集合S+中的一个项集存在冲突。
6.根据权利要求1所述的方法,其特征在于:步骤(3)中数据拥有者向数据库D中添加虚假事务,按如下步骤实现:
(3.1)数据所有者对整个数据库进行扫描,计算出每个数据项的支持度;
(3.2)数据所有者根据数据项的支持度,对数据项进行降序排列;从排序后的第一个数据项,即支持度最高的数据项开始,数据所有者将每k个相邻项编为新的一组,如果剩余的未分配数据项少于k个,则将这些数据项放入最后创建的组;数据所有者交换来自不同组的数据项,用于确保同组中的数据项不会出现在相同的事务中;
(3.3)数据所有者计算每个数据项的支持度与其所在的组中最高支持度之间的差值,即该数据项的噪音;
(3.4)数据所有者根据步骤(3.3)的计算结果生成虚假事务;虚假事务中某个数据项出现的次数等于该数据项的噪声;执行完毕后,同一组中的所有数据项在新的数据库中出现的频率相同。
7.根据权利要求1所述的方法,其特征在于:步骤(4)中对虚假事务数据库Z进行加密,包括以下步骤:
(4.1)计算虚假事务数据库Z中事务的唯一标识信息TID的哈希值,并将其作为新标识信息;
(4.2)对虚假事务数据库Z中所有的数据项进行置换加密;
(4.3)通过添加事务真实值RV来区分数据库D中的原始事务与虚假事务,对事务真实值RV采用Paillier算法进行加密得到加密真实值ERV。
8.根据权利要求1所述的方法,其特征在于:步骤(5.2)中联合数据库,其中包括的某个标识符对应的事务是所有数据拥有数据库中该标识符所对应事务的并集。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110305354.7A CN112948864B (zh) | 2021-03-19 | 2021-03-19 | 基于垂直分区数据库的可验证ppfim方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110305354.7A CN112948864B (zh) | 2021-03-19 | 2021-03-19 | 基于垂直分区数据库的可验证ppfim方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112948864A CN112948864A (zh) | 2021-06-11 |
CN112948864B true CN112948864B (zh) | 2022-12-06 |
Family
ID=76227899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110305354.7A Active CN112948864B (zh) | 2021-03-19 | 2021-03-19 | 基于垂直分区数据库的可验证ppfim方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112948864B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521282A (zh) * | 2011-11-25 | 2012-06-27 | 北京人大金仓信息技术股份有限公司 | 基于行指针的数据库垂直分区存储方法 |
CN103927398A (zh) * | 2014-05-07 | 2014-07-16 | 中国人民解放军信息工程大学 | 基于最大频繁项集挖掘的微博炒作群体发现方法 |
CN106156168A (zh) * | 2015-04-16 | 2016-11-23 | 华为技术有限公司 | 在跨分区数据库中查询数据的方法及跨分区查询装置 |
CN107203725A (zh) * | 2017-05-23 | 2017-09-26 | 广东工业大学 | 一种垂直分布式关联规则挖掘隐私信息保护方法 |
CN108900493A (zh) * | 2018-06-22 | 2018-11-27 | 西安电子科技大学 | 一种面向大型商场交易记录的隐私保护频繁项集挖掘方法 |
CN110120873A (zh) * | 2019-05-08 | 2019-08-13 | 西安电子科技大学 | 基于云外包交易数据的频繁项集挖掘方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030217055A1 (en) * | 2002-05-20 | 2003-11-20 | Chang-Huang Lee | Efficient incremental method for data mining of a database |
US7302420B2 (en) * | 2003-08-14 | 2007-11-27 | International Business Machines Corporation | Methods and apparatus for privacy preserving data mining using statistical condensing approach |
-
2021
- 2021-03-19 CN CN202110305354.7A patent/CN112948864B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521282A (zh) * | 2011-11-25 | 2012-06-27 | 北京人大金仓信息技术股份有限公司 | 基于行指针的数据库垂直分区存储方法 |
CN103927398A (zh) * | 2014-05-07 | 2014-07-16 | 中国人民解放军信息工程大学 | 基于最大频繁项集挖掘的微博炒作群体发现方法 |
CN106156168A (zh) * | 2015-04-16 | 2016-11-23 | 华为技术有限公司 | 在跨分区数据库中查询数据的方法及跨分区查询装置 |
CN107203725A (zh) * | 2017-05-23 | 2017-09-26 | 广东工业大学 | 一种垂直分布式关联规则挖掘隐私信息保护方法 |
CN108900493A (zh) * | 2018-06-22 | 2018-11-27 | 西安电子科技大学 | 一种面向大型商场交易记录的隐私保护频繁项集挖掘方法 |
CN110120873A (zh) * | 2019-05-08 | 2019-08-13 | 西安电子科技大学 | 基于云外包交易数据的频繁项集挖掘方法 |
Non-Patent Citations (3)
Title |
---|
(全)同态加密在基于密文计算模型中的应用;蒋林智 等;《密码学报》;20171231;第4卷(第6期);第596-610页 * |
Privacy preserving frequent itemset mining: Maximizing data utility based on database reconstruction;Shaoxin Li 等;《Computers and Security》;20190314;第17-34页 * |
基于数据垂直分布的关联规则挖掘算法研究;杨柳;《中国优秀硕士学位论文全文数据库 信息科技辑》;20100715(第7期);第I138-613页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112948864A (zh) | 2021-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Miao et al. | Privacy-preserving Byzantine-robust federated learning via blockchain systems | |
EP3451578A1 (en) | Turn-control rewritable blockchain | |
Petit et al. | PEAS: Private, efficient and accurate web search | |
Liu et al. | Authenticated medical documents releasing with privacy protection and release control | |
Arora et al. | Hybrid algorithm designed for handling remote integrity check mechanism over dynamic cloud environment | |
CN112751670A (zh) | 一种多中心密文策略的属性基可搜索加密及相应的搜索获取数据的方法 | |
CN110866277A (zh) | 一种DaaS应用的数据集成的隐私保护方法 | |
CN109617900A (zh) | 基于物联网与区块链技术结合的信息数据加密的方法 | |
Hasan et al. | Secure count query on encrypted genomic data: a survey | |
Zhao et al. | Blockchain-assisted conditional anonymity privacy-preserving public auditing scheme with reward mechanism | |
Kantarcioglu et al. | A privacy-preserving framework for integrating person-specific databases | |
Kumar et al. | Freedom of privacy: anonymous data collection with respondent-defined privacy protection | |
CN112948864B (zh) | 基于垂直分区数据库的可验证ppfim方法 | |
Hicks et al. | Vams: Verifiable auditing of access to confidential data | |
CN116527322A (zh) | 基于区块链和隐私计算的联合征信方法及装置 | |
CN110660450A (zh) | 一种基于加密基因组数据的安全计数查询与完整性验证装置和方法 | |
Li et al. | Bands of privacy preserving objectives: Classification of ppdm strategies | |
Du et al. | Enhancing cryptocurrency blocklisting: A secure, trustless, and effective realization | |
Zhang et al. | Attribute Based Conjunctive Keywords Search with Verifiability and Fair Payment Using Blockchain | |
CN116094797B (zh) | 一种基于安全多方计算的分布式身份信任管理方法 | |
Varma et al. | Secure Outsourced Association Rule Mining using Homomorphic Encryption | |
Ghosh et al. | Verifiable order queries and order statistics on a list in zero-knowledge | |
CN113656840B (zh) | 一种具有问责性的动态完整性验证方法 | |
Lindqvist | Privacy preserving audit proofs | |
Dilmaghani | A privacy-preserving solution for storage and processing of personal health records against brute-force attacks |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |