一种基于加密基因组数据的安全计数查询与完整性验证装置和方法与流程

文档序号:19637730发布日期:2020-01-07 12:15阅读:249来源:国知局
本发明涉及生物信息
技术领域
:,具体涉及一种基于加密基因组数据的安全计数查询与完整性验证装置。
背景技术
::临床医学实践在医疗保健领域发挥至关重要的作用,基因组学的研究也越来越受欢迎。对于基因组学的研究也有助于识别疾病与某种基因之间的潜在相关性,为此,生物医学研究者对病患的临床状态和dna序列数据进行了大规模调查,大部分基因数据的分析都基于美国国立卫生研究院全基因组关联研究(gwas)。为了提高研究的准确性,需要将不同来源的数据汇总起来,为此人们建立了各种共享和存储数据的服务系统,例如美国的基因型和表型数据库(dbgap)和welcommetrust在英国的生物银行计划。基因组数据涉及患者的隐私,若数据被泄露可能会导致诸多社会与法律问题,例如,健康保险公司得知特定癌症可能性的基因携带突变的个人信息可能会拒绝对其进行保险。基于基因数据的敏感性,多个机构共享基因数据需要通过隐私保护方法来存储和访问基因组数据。生物医学研究越来越依赖于大量的基因组和临床数据,随之而来备受广大学者关注的是在共享和管理这些数据时,如何保证相应个人的隐私和系统的整体安全。过去,为了保护主体的敏感信息,多个组织共享数据时删除可能识别个人身份的重要标识符。然而,研究表明使用自动化方法可以很简单的推算出主体身份。当前研究为了保护数据的隐私性,使用加密协议来共享,管理和分析生物医学数据,并将加密的数据外包给拥有庞大的存储和计算资源的第三方云服务提供商。与此同时,第三方也成为了可能造成研究主体隐私被侵犯的潜在对象。现有技术中存在以特定形式在集中式数据库中管理临床基因组数据的安全框架,这些框架提出了在一个不太诚实的云服务上进行基因组数据安全共享和存储的方法。首先,数据拥有者将临床信息发送给第三方机构进行加密和认证,第三方机构将聚合的大量数据以一定结构发送到云服务进行存储。之后,云服务代表研究者执行查询(例如患有高血压患者和特定的基因组变异特征的患者记录数量),并将查询结果返回给研究者。然而,直接将查询结果返回给研究者,无法排除攻击者攻击研究人员并俘获加密协议,仍然存在数据风险。技术实现要素:为了实现在对共享医学数据查询的同时又不泄露数据主体身份下进行科学研究,本发明提出一种基于加密基因组数据的安全计数查询与完整性验证装置,包括数据拥有者终端,认证机构服务器,云服务器,代理机构终端,研究人员终端;认证机构终端从数据拥有者终端接收患者记录并加密;数据拥有者终端将患者的基因组数据按照规定的格式处理,并以明文的形式发送给认证机构服务器;认证机构服务器获得不同数据拥有者共享的数据后,构建聚合共享加密数据的可搜索的哈希图,并将哈希图发送到云服务;云服务从认证机构获取加密数据并处理代理机构终端发送的加密查询请求,执行所述查询请求将查询结果加密发送至代理机构终端;研究人员终端响应用户操作,将科研人员查询请求发送至代理机构终端;代理机构终端接收科研人员查询请求后将查询请求数据加密并将加密后的查询请求发送至云服务器,从云服务器获取查询结果后使用私钥解密所述查询结果并发送至研究人员终端。进一步的,云服务器生成特定基因的一组snp数据集和特定基因在数据库中出现的频率值,然后将该值标准化为记录总数;云服务器将计数查询的总数表示为:其中,d为数据库q为查询,d={s1,s2,…,sn}表示n位患者的snp序列,计数查询定义为查找d中满足q的多个查询条件q的患者人数,患者的m个snp位点的基因序列表示为s={d1,d2,…,dm},其中di(1≤i≤m)表示该患者的第i个位点的snp值。进一步的,认证机构服务器收到数据拥有者提供的数据后,对于每位患者的snp序列创建地图的一个entity,所有的数据处理后生成一个映射表m,m中包含每位患者的基因型和表型信息,创建m之后,对于每一条来自数据拥有者的新的记录,认证机构服务器创建并更新m的entity信息;每个entity包含以下内容:key:entity中key值指向具体的数据,索引值,geno:表示每位患者的snp序列,一个患者的snp序列表示为,s={d1,d2,…,dm},sid是snp位点唯一的标识,代表基因序列中特定的位置,其中碱基对di的位点标识sid=i,(1≤i≤n),表示为i:基因组序列对应的表型数据集,count:在数据库中,当前snp序列出现的频率,表示与基因型和表型相匹配的记录的总数,next:下一个entity的key值。进一步的,认证机构服务器创建哈希表的复杂度为o(mn),其中m是数据库中的记录数量,n是在每一条序列记录中不同的snp位点的数目,定义每个entity为θ,其组成部分表示为θ(key,geno,i,count,next)。进一步的,认证机构服务器使用bloomfilter技术对表型数据进行处理,对基因组序列中的每条snps记录,在bloomfilter中插入相应的表型,如果多个表型与相同的基因组序列相关联,则将它们全部插入该基因组序列entity的bloom滤波器中,m中的每个entity都包含bloomfilter值i,表示与该基因组序列对应的表型信息;认证机构服务器设置bloom滤波器中使用的哈希函数h和公用字母表σ的域,σ的域是所有可能表型的集合,对于基因组序列中的每个entity,在bloom滤波器中插入相应的表型,σ中的每个表型都被映射到一个唯一的数字,并且将该数字插入到bloom滤波器中,认证机构服务器使用伪随机函数f选择出随机密钥k,将每个bloomfilter加密为认证机构服务器将私钥sk发送给代理机构终端,并提供prf的密钥k和用于bloomfilter的散列函数fk;认证机构服务器将查询请求的表型值iq散列的位置与每个entity的ii散列位置进行匹配;认证机构服务器向代理机构终端发送prf密钥k,对加密的bloomfilteri′i采用公式进行解密。进一步的,认证机构服务器生成一个密钥对(pk,sk),其中pk是公钥,sk是私钥,使用公钥pk对哈希表中的每个entity加密,将entity的加密表示为epk(θ);认证机构服务器将哈希图m中所有的entity均被加密后的哈希图表示为并将发送给云服务器;认证机构服务器将密钥对(pk,sk)发送给代理机构终端。进一步的,云服务器将查询结果rq发送到代理机构,代理机构终端用密钥sk解密snp值并采用汉明码检测位来校验数据的完整性,对于返回的满足查询条件的查询结果:rq={epk(count)|epk(b1)|epk(b2)|…|epk(bnum)|ii′}代理机构终端用私钥sk解密每一个snp值,解密后的将重新计算汉明码检测位为t′;代理机构终端通过对比t′与tq的相关性来判定数据是否完整,若t′=tq,则代理机构终端判定数据是安全可信的;若t′≠tq,且t′∈{ha,hc,hg,ht},则代理机构终端通过检测位tq对返回的进行纠正并更新哈希图;若t′≠tq,且则代理机构终端判定原数据被篡改,并且被篡改成其它内容,此时对于患者的snp序列已经不可信,返回的查询结果计数值不可信。本发明还提供一种基于加密基因组数据的安全计数查询与完整性验证方法,包括以下步骤:认证机构终端从数据拥有者终端接收患者记录并加密;数据拥有者终端将患者的基因组数据按照规定的格式处理,并以明文的形式发送给认证机构服务器;认证机构服务器获得不同数据拥有者共享的数据后,构建聚合共享加密数据的可搜索的哈希图,并将哈希图发送到云服务;云服务从认证机构获取加密数据并处理代理机构终端发送的加密查询请求,执行所述查询请求将查询结果加密发送至代理机构终端;研究人员终端响应用户操作,将科研人员查询请求发送至代理机构终端;代理机构终端接收科研人员查询请求后将查询请求数据加密并将加密后的查询请求发送至云服务器,从云服务器获取查询结果后使用私钥解密所述查询结果并发送至研究人员终端。本发明的有益效果是:(1)本发明提供了一个安全的系统查询框架。本发明使用paillier密码系统对基因序列加密,将加密的数据存储在第三方云服务,并在云服务不知道密钥的情况下进行计数查询,保证了数据的隐私性。引用代理机构对返回的加密节点的查询结果解密验证,保证了数据的完整性。(2)本发明提供了一种对原始数据处理的技术。本发明使用hammingcode技术对基因数据添加检测位,通过对返回的查询基因序列进行校验,验证计数查询结果的可信性。(3)本发明提出的模型为数据隐私、查询隐私和输出隐私提供安全保证。查询发起者通过代理机构和云服务器完成安全的交互查询。(4)本发明提供实验研究,以证明本发明提出的方法的可行性。对于5000条记录的40个snp位点的查询,kantar认证机构服务器ogluetal.和canimetal.,分别用了30min和80s。本发明提出的方法执行相同的查询用了3.9s。时间显著缩短。(5)本发明的方法允许外包协议对存储的加密数据和密文状态下的查询命令进行匹配完成计数查询。为了保护数据隐私,本发明使用同态加密方法加密基因数据。为了验证查询结果的完整性,本发明使用汉明码技术对基因组数据添加检测位,基于汉明码检测位的可纠错性可以对查询结果进行验证,在保证基因组数据的安全性和完整性方面拥有良好的性能。附图说明图1为本发明一实施例装置结构图。图2为本发明一实施例试验结果示意图。图3为本发明一实施例试验结果示意图。图4为本发明一实施例试验结果示意图。具体实施方式本发明提出了一种在一个不太诚实的云服务器上进行基因组数据安全共享和计算的方法。首先,本发明提出的方法对生物医学数据进行处理,确保共享数据的隐私与完整性。其次,本发明的提出的方法使用hashmap的方式存储数据,提高了加密效率,高效的实现安全计数查询。本发明使用现有的单核苷酸多态性(snp)序列数据库评估本发明的方法,实验表明完成计数查询对于实际应用是更加灵活、易于实现且安全性高。1下面对本发明的设计原理和有益效果进行说明在本发明中,本发明的目标是设计一种基于外包基因组数据安全查询的计数框架,通过计数查询确定数据库中与查询条件相匹配的记录数量。本发明提出的框架使用安全的加密机制处理和存储数据,并通过第三方的代理机构终端对查询的每条存储记录进行安全评估,如图1所示是本发明的系统框架。本发明的具体贡献如下:(1)本发明提供了一个安全的系统查询框架。本发明使用paillier密码系统对基因序列加密,将加密的数据存储在第三方云服务,并在云服务不知道密钥的情况下进行计数查询,保证了数据的隐私性。引用代理机构终端对返回的加密节点的查询结果解密验证,保证了数据的完整性。(2)本发明提供了一种对原始数据处理的技术。本发明使用hammingcode技术对基因数据添加检测位,通过对返回的查询基因序列进行校验,验证计数查询结果的可信性(3)本发明提出的模型为数据隐私、查询隐私和输出隐私提供安全保证。查询发起者通过代理机构终端和云服务器完成安全的交互查询。(4)本发明提供实验研究,以证明本发明提出的方法的可行性。对于5000条记录的40个snp位点的查询,kantar认证机构服务器ogluetal.andcanimetal.,分别用了30min和80s。本发明提出的方法执行相同的查询用了3.9s。2下面对本发明涉及的相关概念进行介绍人类基因组包含关于人类生物学的基本数据和私人诊断信息,查询个人基因组数据是非常敏感的。为了保护数据的隐私,ayday等人提出了一种基于同态加密的隐私保护方法和系统,使用存储和处理单元以加密形式存储敏感数据。bruekers等人提出了半诚实攻击者模型的解决方案,基于有限dna同态加密,其复杂性在一定程度上取决于要容忍的错误数量。eppstein等人使用了隐私增强型可逆布隆过滤器(pibf),提出了一种在压缩基因组数据上运行的隐私保护比较方法。基因组数据的隐私保护协议也可能会泄露敏感数据,针对查询协议的隐私性保护,atallah等人提出了第一个隐私保护序列比较算法。然而,由于其密集的计算要求不合理,jha等人介绍了序列比较和使用安全的双方通信协议的距离计算的乱码电路。该解决方案的主要缺点是无法处理大规模计算。troncoso-pastoriza等在半诚实的环境中提供dna匹配安全性隐私保护,通过对自动机不经意的评估方式,提出用于安全匹配的协议,但是协议处理时间稍长。blanton和aliasgari等人为了改进troncoso-pastoriza等人协议沟通时间问题,提出了一种安全的计算外包协议。针对计数查询的基因组数据安全外包问题,kantar认证机构服务器oglu等人最早提出了涉及两个第三方的加密模型,但是该模型并不提供查询隐私。perl等人提出了一种用bloom滤波器和同态加密相结合来搜索生物医学数据的方法。他们将搜索的任务完全外包给第三方云服务器。canim等人使用防篡改的加密硬件提供数据存储服务器(ds),实现对单个第三方基因组数据的安全存储,共享和查询,该方法查询的大小仅限于防篡改硬件的内存大小。谢等人提出了一种安全的遗传关联研究的荟萃分析的方案,将数据保存在相应的数据所有者的场所中。ignatenko和petkovic提出了一种在私人dna数据库中搜索和匹配dna序列的解决方案,将dna序列表示为上下文树用于保护隐私的匹配和相似性搜索的索引信息。上下文树是使用称为上下文树加权(ctw)的通用压缩技术构建的。本发明提出了一种基因组数据安全计数查询的隐私与完整性保护的方法。本发明的方法允许外包协议对存储的加密数据和密文状态下的查询命令进行匹配完成计数查询。为了保护数据隐私,本发明使用同态加密方法加密基因数据。为了验证查询结果的完整性,本发明使用汉明码技术对基因组数据添加检测位,基于汉明码检测位的可纠错性可以对查询结果进行验证,在保证基因组数据的安全性和完整性方面拥有良好的性能。3.下面对本发明装置模型进行说明3.1系统设计在本部分中,介绍本发明提出的安全框架。如图1所示,框架中包含五个主要的参与者:数据拥有者,认证机构服务器,云服务器,代理机构终端,研究人员终端。每个实体负责执行不同的特定的任务,保证整个系统安全和功能良好。该框架中的信息流包括两个阶段:数据集成阶段和查询处理阶段。在数据集成阶段,认证机构服务器从数据拥有者接收患者记录并加密。在查询处理阶段,代理机构终端对科研人员查询条件加密并发送到云服务执行查询。数据拥有者是由拥有基因组数据的多个机构组成,这些机构可能是医院,学术研究机构或政府研究机构等。这些机构将患者的基因组数据按照规定的格式处理,并以明文的形式发送给认证机构服务器。认证机构服务器作为第三方机构,对框架的安全性至关重要。认证机构服务器主要的任务:1)处理数据。认证机构服务器获得不同数据拥有者共享的数据后,构建聚合共享加密数据的可搜索的hashmap,并将其发送到云服务。而用户查询操作基本上是在加密索引树上执行的。索引树包含来自共享数据的所有记录,对于记录的添加和删除,认证机构服务器可以相应地更新树。2)生成密钥。存储在哈希表中的敏感数据都是需要密钥加密的,执行机构需要管理用于数据加密的公钥和解密的私钥。云服务从认证机构服务器获取加密数据,负责处理代理机构终端发送的加密查询请求。云服务器执行该查询并将加密结果发送给代理机构终端。代理机构终端处理与科研人员的所有通信。代理机构终端接收科研人员的查询请求后,将查询数据加密,并将加密后的查询请求发送给云服务器,得到查询结果后解密后发送给研究人员终端。科研人员代表任何有兴趣对存储在云服务器中的共享数据执行查询的个人或组织。科研人员将查询请求发送给代理机构终端加密,代理机构终端收到加密查询结果之后,使用私钥解密这个结果并发送给研究人员终端,研究人员终端得到最终的输出结果。3.2攻击模型与安全目标本发明的目标是云服务器不知道共享基因组数据的任何信息,认证机构服务器和云服务器都不了解研究人员终端进行的查询。本发明假设认证机构服务器是可信的实体。认证机构服务器执行验证作用与nih的数据访问委员会(dac)相同,它负责哈希表的生成和加密,并验证申请访问数据的个体和组织的身份。在本发明的结构框架中,本发明假设云服务器是半诚实的,它本身正确的遵守协议,并不打算恶意产生错误的结果。云服务器与认证机构服务器不同,它存储了大量敏感数据,也是执行查询处理的场所,当云服务器被俘获时,攻击者可以获取大量数据,伪造查询结果或向用户提供不完整的查询结果等。一旦云服务器被攻击,其危害性将大大超过俘获认证机构服务器被俘获所造成的风险。因此,本发明重点关注云服务器被攻击的情况。本发明的安全目标主要有以下两点:(1)数据隐私和查询隐私:数据隐私意味着云服务器无法知道dataowner存储的明文数据,这确保了攻击者无法理解存储在云服务器的数据;查询隐私意味着云服务器无法知道研究人员终端查询请求的实际值,这确保了攻击者无法理解或推断云服务器收到的查询请求。(2)数据完整性:该目标旨在验证返回给研究人员终端的查询结果的正确性。如果云服务器返回给agency的查询结果被攻击者删除或伪造,那么agency可以将其检测出来,并基于本发明提出的协议对查询结果分析纠正。4下面对本发明采用的数据处理方法进行说明人类基因组是生物体的完整遗传信息集,遗传信息位于染色体内部,每条染色体都含有基因,这些基因负责控制人体的各种功能。基因组序列数据由核苷酸的四种碱基{a,c,g,t}构成,碱基在每条dna链上排列的差异导致个体之间的独特性。大多数dna序列在整个人群中是保守的,由于遗传变异,每个人的dna中有大约0.5%与参考基因组不同。基因组中存在几种类型的变异方式,例如单核苷酸多态性(snp),拷贝数变异(cnv)和重排等。单核苷酸多态性是指在等位基因上由单个核苷酸的变异所引起的dna序列多态性,也是最常见的dna变异形式。大多数snp对人体健康没有任何影响。但是一些snp直接导致了人体内某种疾病的发生。针对snp序列的分析在基因组数据研究中是很常见的。在dbgap数据库中包含患者的基因组序列和对应的临床信息,基因组序列是与snp相关的位点信息和诊断。本发明假设一个序列s由多个snp组成,表示为s={α1,α2,…,αγ},其中αi表示第i位的snp,它是由一对核苷酸组成。table1datasequenceofsnps4.1安全计数查询对于基因组数据的研究,最常见的执行任务就是确定数据库中有多少样本满足某些特征。计数查询是遗传关联研究的一个重要步骤,它有助于研究人员终端确定影响人体特定疾病的基因。例如,研究人员终端查询个体中dsp1基因的各种snp与diagnosis阿尔茨海默病之间是否存在关联。类似的snp-疾病关联研究在人类基因组学研究中越来越普遍。对于生物学研究人员终端来说,他需要得到特定基因的一组snp数据集(例如,snp1=ag∩snp2=ct∩diagnosis=alzheimer'sdisease)在数据库中出现的频率值,然后将该值标准化为记录总数。例如,给定一个数据库d和一个查询q,其中d={s1,s2,…,sn}表示n位患者的snp序列。计数查询可以定义为查找d中满足q的多个查询条件q的患者人数。假设某位患者的m个snp位点的基因序列表示为s={d1,d2,…,dm},其中di(1≤i≤m)表示该患者的第i个位点的snp值,则计数查询的总数可以表示为:如果数据以明文的形式存储,则计数查询是一项简单的操作,传统的数据库管理系统支持计数查询的操作。但是数据库管理系统并不能用于对加密的数据的查询。那么,数据库如何在不解密数据的情况下响应对加密值的计数查询,本发明在第5节提出了一种安全的数据处理方法hashmap,用于执行查询用户指定条件下的记录数,而无需解密存储在云服务器中的数据。4.2数据加密为了保护患者隐私,认证机构服务器需要对数据库中的数据进行加密以防止敏感数据的泄露。在本部分中,本发明将提供针对本发明框架有关的加密方案。4.2.1汉明码汉明码(hammingcode)是一种线性调试码,它在传输的消息流中插入验证码,对数据存储和传输过程中可能产生的数据位错误进行侦测并更正。汉明码利用了奇偶校验位的概念,在数据位后面增加特定位的比特以验证数据的有效性。本发明使用汉明码技术对基因数据进行处理,不仅可以验证数据是否有效,还能在数据出错的情况下指明错误信息并纠正。汉明码的实现原理是在原来的数据中插入k位二进制数据作为校验位,把原来的n位数据变为z位编码。编码时需要满足不等式2k-1≥z,其中z=n+k。在汉明码规定所得到的z位编码的2k-1(k≥0,2k-1<z)位上插入特殊校验码,其余位用原码按照顺序放置。汉明码的详细编码规则如下:1)在新的编码位(即校验位)的2k-1位上填入0,然后把新的编码的其余位用源码按顺序填入。2)校验位的编码方式为:第k位校验码从则从新的编码的第2k-1位开始,每计算2k-1位的异或,跳2k-1位,再计算下一组2k-1位的异或,填入2k-1位。比如,对于核苷酸中的腺嘌呤c,(c)2=1000011,n=7,由公式2k-1≥z,z=n+k可得k取得最小值为4。则添加4位检测码:首先在2k-1位填入0,表示为00100000011。第1位校验码位于新的编码的第1位(21-1)(汉明码从1位开始),计算1,3,5,7,9,11位的异或为将0填入新的编码的第1位,表示为00100000011。第2位校验码位于新的编码的第2位(22-1),计算2,3,6,7,10,11位的异或为填入新的编码的第2位,表示为011000000011。第3位校验码位于新的编码的第4位(23-1),计算4,5,6,7位的异或为填入新的编码的第4位表示为011000000011。第4位校验码位于新的编码的第8位(24-1),计算8-11位的异或为填入新的编码的第8位表示为011000000011。最终c的二进制汉明码表示为表示为011000000011。本发明使用汉明码处理原数据并利用其纠错功能来检测计数查询结果。对于四种核苷酸a,c,g,t,分别计算出其对应的as认证机构服务器i码二进制校验位{ha,hc,hg,ht},其中ha=0001,hc=0100,hg=1101,ht=0011。假设一对核苷酸di添加检测位t后表示为bi,其中t是集合{ha,hc,hg,ht}中任意两个的元素组合,共24种组合方式。例如,di=cc的二进制表示为10000111000011,在每个碱基的第1、2、4和8位分别添加检测位0100,0100后,表示为0110000001101100000011。4.2.2pailliercryptosystem为了实现架构的简单和灵活性,本发明使用pailliercryptosystem加密算法。该加密算法满足语义安全性,保证具有有限计算能力和拥有密文的对手无法获取明文信息。pailliercryptosystem是一种用于公钥加密的概率性非对称算法,当相同的消息被多次加密时,该密码系统产生不同的密文。在paillier加密算法中会生成一对密钥,一个是私钥sk,另一个是公钥pk。公钥和私钥分别用于数据的加密和解密。paillier密码系统可以定义如下。(参考维基翻译)密钥生成阶段:随机选择两个大素数p和q,使得它们彼此独立gcd(pq,(p-1)(q-1))=1。计算η=pq和λ=lcm(p-1,q-1),选择随机整数g使得通过对g进行模块乘法逆运算来确定n的划分顺序:μ=(l(gλmodη2))-1modη,其中l被定义由此可得公钥(η,g),私钥(λ,μ)。加密阶段:对于需要加密的消息ω(0≤m<η),选择随机数γ(0<γ<η)计算密文c:c=gω·γηmodη2。解密阶段:对于需要解密的密文c满足解密后的明文表示为:ω=l(cλmodη2)·μmodη。同态属性:假设有两个数据ω1和ω2,则其密文的乘积解密后为它们相应的明文之和:esk(epk(ω1)·epk(ω2)modη2)=ω1+ω2modη。增加一个明文为另一个明文的指数值,解密后则为两个明文的乘积:假设数据库中有n位患者,data=(s1,s2,…,sn)表示数据库中的基因序列数据集,第j位患者的snp序列的基因组数据可以表示为其中1≤j≤n。加密过程中每个基因组数据通过汉明码添加检测位表示为对加密可表示为其中“|”表示将检测位添加到碱基对中。每个数据加密的密文表示为:5下面对本发明系统设计进行说明在本部分中,本发明将介绍本发明使用的数据处理模型。首先,认证机构服务器对数据库中患者基因序列和临床信息进行处理。患者的临床信息主要包括一些表型的疾病诊断。假设疾病类型有i={i1,i2,…,ig}种,其中(1≤g≤n),集合中的某一个i值代表一种疾病。每一位患者可以患有一种或多种疾病。之后,针对患者案例的基因型和表型数据讨论如何将其整合到hashmap。如table1所示是5位患者的基因型序列和表型类型。5.1生成hashmap认证机构服务器收到数据拥有者提供的数据后,对于每位患者的snp序列创建hashmap的一个entity,所有的数据处理后生成一个映射表m,m中包含每位患者的基因型和表型信息。创建m之后,对于每一条来自数据拥有者的新的记录,认证机构服务器需要创建并更新m的entity信息。每个entity包含以下内容:key:entity中key值指向具体的数据,索引值。geno:entity中的value值的一部分。它是每位患者的snp序列。例如一个患者的snp序列表示为s={d1,d2,…,dm},sid是snp位点唯一的标识,代表基因序列中特定的位置。其中碱基对di的位点标识sid=i,(1≤i≤n)。可以表示为i:基因组序列对应的表型数据集。count:在数据库中,当前snp序列出现的频率,表示与基因型和表型相匹配的记录的总数。next:下一个entity的key值table2hashmapfortable1创建哈希表的复杂度为o(mn),其中m是数据库中的记录数量,n是在每一条序列记录中不同的snp位点的数目。本发明定义每个entity为θ,其组成部分表示为θ(key,geno,i,count,next)。根据哈希表的特征和table1的数据本发明可以得到table2。5.2加密hashmap5.2.1布隆过滤器的加密m中的每个entity都包含bloomfilter值i,表示与该基因组序列对应的表型信息。认证机构服务器使用bloomfilter技术对表型数据进行处理。基因组序列中的每条snps记录,将在bloomfilter中插入相应的表型。如果多个表型与相同的基因组序列相关联,本发明将它们全部插入该基因组序列entity的bloom滤波器中。认证机构服务器设置bloom滤波器中使用的哈希函数h和公用字母表σ的域。σ的域是所有可能表型的集合。对于基因组序列中的每个entity,将在bloom滤波器中插入相应的表型。σ中的每个表型都被映射到一个唯一的数字,并且该数字将被插入到bloom滤波器中。m中每个entity上的bloomfilter的长度都是相同的,为了加密bloomfilter,本发明在密钥大小为128位的ctr模式下使用了aes。认证机构服务器使用伪随机函数(prf)f选择出随机密钥k,将每个bloomfilter加密为该加密过程是在entity的其他数据在被加密的同时完成的。认证机构服务器除了需要将私钥sk发送给代理机构终端,还需要提供prf的密钥k和用于bloomfilter的散列函数fk。为了在搜索期间匹配来自查询的表型,本发明需要将查询请求的表型值iq散列的位置与每个entity的ii散列位置进行匹配。如果iq中所有被置为1的位置在ii中也被置为1,则意味着来自查询的表型与存储在树节点中的表型相匹配。由于在树的每个节点处表示的布卢姆过滤器都被加密,为了检查这些布卢姆过滤器中的任何一个的位置,本发明首先需要解密它。认证机构服务器向代理机构终端提供prf密钥k。对加密的bloomfilteri′i使用电路内的sfe进行解密5.2.2pailliercryptosystem加密认证机构服务器使用pailliercryptosystem加密m中的所有entity。认证机构服务器使用密钥生成算法为同态加密方案生成一个密钥对(pk,sk),其中pk是公钥,sk是私钥;使用公钥pk对哈希表中的每个entity加密。为了在保持系统安全性的同时使整个搜索过程足够快,本发明只加密每个entity的敏感属性。由于云服务器在本发明的系统中是半诚实的,它必须能够保证查询者知道entity的next键值,因此本发明不需要加密next信息。对entity的加密可以表示为epk(θ),加密之后,每个entitylikeθ(key,epk(geno),epk(count),i′i,next)。本发明定义m中所有的entity均被加密后的hashmap表示为最后,认证机构服务器将发送给云服务器。同时,认证机构服务器将密钥对(pk,sk)发送给代理机构终端。5.3查询加密hashmap云服务器接收到认证机构服务器发送的执行代理机构终端发送的加密查询请求。查询的主要思想是查询满足查询表型为iq,并且满足匹配存储在geno中的特定位点的基因序列。云服务器需要知道研究人员终端查询请求中的sid,将存储在entity中的geno的特定位点的snp与研究人员终端查询条件中位点的snp相匹配。由于snp的值都被加密,并且本发明使用的加密方案是概率性的,云服务器无法确定这些值是否匹配。云服务器可以将加密的valn值发送给代理机构终端,由代理机构终端解密加密的snp并检查相等性。假设研究人员终端发送查询请求qq=(q1∩q2∩…∩qnum∩iq),其中有num个查询条件。ql(1≤l≤num)表示某位点snp的具体基因值。例如,查询qq中的条件为snp2=cc,snp3=tt,snp5=ag,iq=i1,q1表示条件snp2=cc。代理机构终端对每个查询条件q的碱基对添加检测码bq=(tq|q)。用公有密钥pk对查询条件加密,对于每个位点的查询条件可以表示θq(sid,epk(bq))。查询请求加密后连接为:epk(θq)=epk(θ1)∩epk(θ2)∩…∩epk(θnum)∩iq′。例如,对table2中m进行上述查询qq操作,遍历每个entity中geno的位点sid=2,sid=3,sid=5的snp值,将这些值发送个代理机构终端进行解密验证,可以得出数据库中满足查询条件的案例。如图table2所示,只有case#1满足查询条件,返回个研究人员终端的查询计数结果count=1。5.4数据完整性分析云服务器将查询结果rq发送到代理机构终端,代理机构终端用密钥sk解密snp值。为了确保代理机构终端和云服务器之间交互信息的隐私性,本发明采用汉明码检测位来校验数据的完整性。对于返回的满足查询条件的查询结果:rq={epk(count)|epk(b1)|epk(b2)|…|epk(bnum)|ii′}代理机构终端用私钥sk解密每一个snp值,解密后的本发明将重新计算汉明码检测位为t′。本发明通过对比t′与tq的相关性来判定数据是否完整。1)t′=tq,该种情况下,说明数据完整,数据是安全可信的;2)t′≠tq,且t′∈{ha,hc,hg,ht},表示查询条件中的geno值已经被篡改,但仍然是a,c,g,t四种核苷酸的组合。可以通过检测位tq对返回的进行纠正并可更新hashmap。返回的计数值count已经不可信。3)t′≠tq,且表示原数据被篡改,并且被篡改成其它内容,此时对于患者的snp序列已经不可信,返回的查询结果计数值不可信。关于安全性分析,本发明只假设数据库中的geno序列向参与者透露,那么将导致很严重的安全问题。本发明考虑参与者在系统的不同阶段推断信息的能力,进行评估本发明提出的隐私协议和系统的安全性。下面给出了本发明提出的模型中不同参与者的泄漏概况。hashmap的构建和加密阶段数据泄露:认证机构服务器作为可信实体,负责m的生成和加密,在这个阶段认证机构服务器不存在数据的泄露。每个查询中对云服务器的泄露:在查询执行的过程中,云服务器完全不涉及明文信息,因此,在查询阶段数据信息不会透露给云服务器。每个查询向代理机构终端和研究人员终端的泄露:代理机构终端主要贡献是对研究人员终端的查询请求用密钥加密发送到云服务器,接收云服务器返回的查询结果,并对其解密返回给研究人员终端。对于返回给代理机构终端的snp查询结果,本发明使用汉明码技术进行验证,研究人员终端是不能直接从汉明码检测位推断出任何信息的。在这里,本发明不考虑输出中的任何隐私泄露。因此,本系统是安全可靠的。6下面对本发明的实验分析数据进行说明自人类基因组计划开始以来,研究人员终端报告了大量的snp。优质的snp位点成为候选基因的可用性使得候选基因与全基因组关联性研究成为可能。连锁不平衡(ld)技术已经被广泛应用于开发高质量的snp标记图。当应用于疾病-基因作图时,通过关联分析评估ld,其需要比较受影响的疾病(例如,阿尔茨海默氏症的诊断)和对照个体(例如,没有阿尔茨海默氏症的诊断)之间的等位基因或单倍型频率。toivonen等人提出了一种称为单倍型模式挖掘(hpm)的ld映射数据挖掘方法用于生成模拟的snp数据集。本发明提供的数据隐私保护框架,通过使用模拟的snp数据集进行测试实验以评估其实用性。本发明系统的源代码是用java程序编码语言实现的。本发明的实验环境是inteli7-4710mq(4核1.6ghz)cpu、8gb内存;软件环境为windows10操作系统和intellijidea运行平台。在实验中,本发明提供两台不同的机器运行云服务器和认证机构服务器。本发明在实验中使用了汉明码技术对基因数据添加检测位,并使用1024位的paillier加密技术。在本发明的安全计数查询实验中,本发明使用了四个具有500,1000和5000个snps数据集以及涉及10个,20个,30个和40个随机选择的snp序列的四个不同查询大小。本发明测试了不同的记录数量对hashmap构建时间的影响。本发明测试的结果与mohammadzahidulhasan等人使用的indextree的方法和m.canim等人使用cryptographichardwarescps来处理敏感的生物医学数据的方法进行对比。实验结果表明本发明提出的方法在加密时间和查询执行时间性能均优于。本实验从以下三个方面进行分析:(1)hashmap生成时间。它指处理基因组数据库并使用基因型和表型构建hashmap所需的时间。本发明分析了包含500和1000数量的snp的数据集的创建时间,如图2所示。实验表明,随着snp数量的增加需要消耗的时间不断增加。与mohammadzahidulhasan等人使用的indextree创建时间对比,本发明的方法在创建时间要比indextree时间多,但是以秒计算,对于实验运行时间来说只占有很小的比例。(2)加密时间。本发明的方法中对于数据的加密时间主要消耗在对每个entity的碱基对和计数值加密,本发明使用的ctr方案加密bloomfilter并不需要很长时间,可忽略不计。其次,加密的时间也取决于snp数据集中的序列的总数。如图3,本发明对具有500和1000个snp的数据集的加密时间进行分析。随着snp数量的增加需要消耗的加密时间不断增加,本发明的方法对比indextree在加密时间上有很明显的优势。例如对于1000records,本发明仅需要2.11min,(3)查询时间。查询时间指研究人员终端提供查询请求到得到返回结果所用的时间。为了计算查询时间,本发明随机选择10,20,30和40个大小的snp序列,对5000条记录执行执行查询。如图4,列出了这些查询大小在加密的hashmap上的执行时间。由于需要对hashmap中entity中表型信息进行搜索匹配,本发明需要对hashmap中所有的entity进行遍历查询以获得满足查询条件的基因序列。在图2,本发明给出了本发明的方法执行的查询时间与的方法执行时间的比较,随着查询数目的增加,本发明的执行时间呈线性增长的趋势,时间以秒为单位。table3comparisonofqueryexecutiontimeon5000records通过改变计数查询的记录大小和查询数据集总数,本发明分析了使用hashmap存储数据时间和执行查询的时间,并与已经提出的方法进行了对比。本发明的方法通过使用hashmap存储数据,并使用同态加密方案,有效的保护了数据的隐私性。本发明的方法支持存储大量的数据集。对entity的敏感数据的处理和加密并不会对记录数量产生直接影响。本发明提出使用汉明码的纠错性对原始数据添加检测位,在代理机构终端对返回的结果进行完整性验证,有效地保证返回给研究人员终端的结果的准确性。这些特性使得本发明提出的方法可以更加安全,高效的对加密的数据执行计数查询。本发明针对加密基因组数据的安全计数查询问题,在分析现有方案的基础上提出了一种安全有效的基因组数据外包方法。为了实现数据的隐私性,该方法将数据库中的数据以hashmap方式存储,并将存储的数据外包给第三方云服务器。通过使用第三方代理机构终端,实现了研究人员终端在云服务的安全计数查询。为了验证数据的完整性,本发明提出使用hammingcode技术对基因组数据添加检测位,保证在数据处理和查询执行阶段不会显示任何敏感的基因数据。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1