CN111967048B - 面向基因组数据相似度的高效匹配及隐私保护方法、系统 - Google Patents

面向基因组数据相似度的高效匹配及隐私保护方法、系统 Download PDF

Info

Publication number
CN111967048B
CN111967048B CN202010834443.6A CN202010834443A CN111967048B CN 111967048 B CN111967048 B CN 111967048B CN 202010834443 A CN202010834443 A CN 202010834443A CN 111967048 B CN111967048 B CN 111967048B
Authority
CN
China
Prior art keywords
genome
vcf
user
data
tree
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
Application number
CN202010834443.6A
Other languages
English (en)
Other versions
CN111967048A (zh
Inventor
朱辉
朱丹
李晖
寇笑语
陈游
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xidian University
Original Assignee
Xidian University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xidian University filed Critical Xidian University
Priority to CN202010834443.6A priority Critical patent/CN111967048B/zh
Publication of CN111967048A publication Critical patent/CN111967048A/zh
Application granted granted Critical
Publication of CN111967048B publication Critical patent/CN111967048B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B40/00ICT specially adapted for biostatistics; ICT specially adapted for bioinformatics-related machine learning or data mining, e.g. knowledge discovery or pattern finding
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H50/00ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics
    • G16H50/30ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics for calculating health indices; for individual health risk assessment

Landscapes

  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Medical Informatics (AREA)
  • Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Public Health (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Epidemiology (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Pathology (AREA)
  • Primary Health Care (AREA)
  • Artificial Intelligence (AREA)
  • Biophysics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Biotechnology (AREA)
  • Evolutionary Biology (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明属于信息安全技术领域,公开了一种面向基因组数据相似度的高效匹配及隐私保护方法、系统,客户端利用获取的系统参数对个人基因组数据进行转换加密,生成查询请求发送给云服务器请求搜索相似基因组,对接收到相似基因组标签进行混淆处理后发送给医疗机构终端请求相似患者信息并对自身健康状况做出评估;医疗机构终端生成系统参数并面向客户端提供注册服务,同时将存储在本地的基因组数据库外包给云服务面向用户提供相似基因组查询服务;云服务器存储医疗机构终端外包的加密遗传BK树,并在密文树上进行计算搜索,返回给用户相似基因组的标签集。本发明实现了医疗机构终端及用户的原始基因组数据隐私保护,提高了相似基因组的匹配效率。

Description

面向基因组数据相似度的高效匹配及隐私保护方法、系统
技术领域
本发明属于信息安全技术领域,尤其涉及一种面向基因组数据相似度的高效匹配及隐私保护方法、系统。
背景技术
目前:随着高通量测序技术的快速发展及基因组测序成本的大幅降低,医学领域已经产生了大量具有挖掘价值的基因组数据,人们可以通过与已有的基因组进行相似度匹配对自身健康状况做出评估,防病于未然。在传统的基因组相似度匹配方法中,编辑距离作为相似度的最佳衡量标准之一,被使用的最为广泛。然而,考虑到编辑距离计算的复杂性及人类基因组的高维性(每条人类基因组含有约31.6亿个DNA碱基对),直接计算基因组间的编辑距离将带来巨大的计算及通信开销。为了提供高效的基因组相似度匹配服务,近似编辑距离的概念被提出,它在几乎不影响匹配准确度的前提条件下通过基因分段、基因转换等技术提高匹配效率。同时,为了防止服务提供方终端的超负荷运行,已有基因组数据库通常会外包给云服务器,由云服务器提供基因组相似度匹配服务。然而,无论是医疗机构本地存储的基因组数据库还是用户的私人基因组数据,都具有高度的机密性和敏感性,而服务外包要求服务提供方和用户提供相关数据进行匹配,造成敏感的原始基因组数据泄露。因此,考虑到匹配效率和隐私保护的需求,实现一个面向基因组数据相似度的隐私保护高效匹配系统是具有挑战性的。为了找出一种解决上述问题的方法,人们提出了一些解决方案,其中:现有技术一“一种基因数据的查询方法、系统、设备及存储介质”公开了一种基因数据的查询方法,将待测序列均分为x+t条seed,基准序列均分为x+t条子序列,通过对确定的每个seed的每个匹配位置进行无向扩展确定出待测序列在基准序列中的定位。但是该方法存在一定的缺陷,例如不适用于全基因组数据的匹配查询,基准序列仅考虑一条不能用于预测服务;且该方法基于明文匹配,没有能够实现待测及基准序列的隐私保护。现有技术二“一种面向用户隐私保护的高效基因比对方法”包含了基因序列编码、混淆电路建立以及基因序列比对三个步骤,通过混淆电路比对按照给定编码规则进行编码后DNA序列达到基因比对场景下的隐私保护。该方法确保了匹配过程中用户及基因组数据库的隐私,但未考虑匹配结果的隐私,且用户基因需和N条数据逐一对比,整体性能较为低下。
通过上述分析,现有技术存在的问题及缺陷为:现有的基因组相似度匹配服务存在匹配总耗时长,匹配过程无加密或加密开销大;在应用中会造成服务提供不及时,原始基因组泄露,无法保护患者及用户隐私。
解决以上问题及缺陷的难度为:传统的同态加密、混淆电路等技术应用于编辑距离无法很好的平衡隐私保护和基因组相似度匹配效率的问题,而应用于近似编辑距离又会一定程度上影响匹配结果的准确性。使用上述技术无法满足基因组相似度匹配服务中数据海量高维,需实时匹配、及时反馈的特点。
解决以上问题及缺陷的意义为:需要为基因组相似度匹配服务设计一种新型高效隐私保护的加密方法,能够在尽可能不影响匹配效率和准确率的前提下实现原始基因组数据和匹配结果的隐私保护。
发明内容
针对现有技术存在的问题,本发明提供了一种面向基因组数据相似度的高效匹配及隐私保护方法、系统。
本发明是这样实现的,一种面向基因组数据相似度的高效匹配及隐私保护方法,所述面向基因组数据相似度的高效匹配及隐私保护方法包括:
系统参数初始化,每家医疗机构随机选择数据处理过程中所需的公共参考基因组、HMAC算法及其它安全参数,生成加密过程中所需的索引矩阵;
加密基因组数据库外包,每家医疗机构首先基于转换后的基因组构建一棵遗传BK树,然后利用索引矩阵和密钥对树进行加密,并发送给云服务器;
用户基因组数据安全匹配,用户首先在目标医疗机构进行注册获取相关参数,然后利用不同医疗机构的参数分别转换加密个人基因组数据,并发送给云服务器请求匹配服务;云服务器接收到用户加密的查询请求后,对指定的加密遗传BK树进行搜索,返回给用户符合要求的基因组标签;
相似基因组信息查询,用户通过添加随机标签掩蔽真实的标签集向医疗机构请求相关患者的患病信息,对自身健康状态做出评估。
进一步,所述面向基因组数据相似度的高效匹配及隐私保护方法具体包括:
步骤一,系统参数初始化步骤:
(1)每家医疗机构Mj∈{M1,M2,M3,…}从本地存储的基因组数据库
Figure BDA0002639165320000021
中随机选取一个基因组作为公共参考基因,公共参考基因Refj=(g1,g2,...,gm)∈{A,G,C,T}m,{A,G,C,T}代表形成基因组的四种不同碱基;
(2)Mj随机地将Refj切割成ξ段(sg1,...,sgω,...,sgξ),|sgω|=πω,ω∈[1,ξ]。
其中,
Figure BDA0002639165320000031
(3)根据Refj被切割后每段的起始位置,构造索引矩阵M(ξ+1)×9,表示如下:
Figure BDA0002639165320000032
,其中
Figure BDA0002639165320000033
cω{1,2,3}∈{0,1,2},cω{4,5,6,7,8}∈{0,1,2,3,4},cω{1,2,3,4,5,6,7,8}被随机赋值且满足cω1≠cω2≠cω3,cω4≠cω5≠cω6≠cω7≠cω8
(4)Mj随机选取一种HMAC算法;
(5)Mj随机选取三个密钥k1,k2,k3,密钥长度由选取的HMAC算法决定,以及一个随机数r≥3;
(6)Mj发布系统参数<idj0,k1,k2,k3,r,Refj,M(ξ+1)×9,HMAC()>,其中idj0是医疗机构Mj的标签;
步骤二,加密基因组数据库外包步骤:
(1)每家医疗机构Mj的基因组数据库GDj在剔除Refj后表示为
Figure BDA0002639165320000034
所有基因组都会拥有对应的标签及患者非敏感信息
Figure BDA0002639165320000035
(2)Mj首先将Refj转换为空集
Figure BDA0002639165320000036
然后根据基因转换方法将
Figure BDA0002639165320000037
中的每条基因组Gjk*,k∈[1,nj-1]都转换为一个三维向量集合
Figure BDA0002639165320000038
Figure BDA0002639165320000039
其中
Figure BDA00026391653200000310
Figure BDA00026391653200000311
(3)基于
Figure BDA0002639165320000041
Mj构建一棵以vcfj0为根节点的遗传BK树
Figure BDA0002639165320000042
(4)Mj
Figure BDA0002639165320000043
上除根节点外的每一个节点存储的vcfjk,k∈[1,nj-1]集合里的每一个三维向量
Figure BDA0002639165320000044
进行以下预处理:
①根据矩阵M(ξ+1)×9第一列的值确定
Figure BDA0002639165320000045
的取值区间,找到ω使得
Figure BDA0002639165320000046
②根据矩阵M(ξ+1)×9第一行的值,利用cω1,cω2,...,cω8对应地替换
Figure BDA0002639165320000047
Figure BDA0002639165320000048
中包含的符号{del,sub,ins,A,C,G,T,⊥};
③利用Mj选取的随机数r替换
Figure BDA0002639165320000049
中包含的r;
完成替换后,可得
Figure BDA00026391653200000410
(5)对于每一个集合
Figure BDA00026391653200000411
中的每一个三维向量,依次利用随机密钥k1,k2,k3进行HMAC加密:
①对于每一个
Figure BDA00026391653200000412
利用k1进行HMAC加密可得
Figure BDA00026391653200000413
②对于每一个
Figure BDA00026391653200000414
利用k2进行HMAC加密可得
Figure BDA00026391653200000415
③对于每一个
Figure BDA00026391653200000416
利用k3进行HMAC加密可得
Figure BDA00026391653200000417
完成加密后,可得
Figure BDA00026391653200000418
(6)Mj完成
Figure BDA00026391653200000419
加密后(即完成(4)(5)),在每一个节点上添加该节点存储的基因组的标签,即树的根节点上存储的信息更新为
Figure BDA00026391653200000420
其它节点存储的信息更新为(E(vcfjk),idjk),k=1,2,...,nj-1,将加密后的
Figure BDA00026391653200000421
记为
Figure BDA00026391653200000422
(7)最后,Mj将加密后的遗传BK树
Figure BDA0002639165320000051
外包给云服务器;
步骤三,用户基因组数据安全匹配步骤:
(1)每个用户Ui∈{U1,U2,U3...}首先向所有目标医疗机构Mi请求注册;
(2)注册成功后,属于集合Mi的每家医疗机构Mj′都会通过安全的信道向用户发送系统参数<idj′0,k1,k2,k3,r,Refj′,M(ξ+1)×9,HMAC()>,不同医疗机构发送的安全参数都是自身随机生成的,彼此不具有关联性,且Ui的身份信息会被存储在这|Mi|家医疗机构中;
(3)Ui每接收到一条系统参数<idj′0,k1,k2,k3,r,Refj′,M(ξ+1)×9,HMAC()>,都会对应地加密个人基因组数据Gui得到一条查询请求:
①首先,基于Mj′的公共参考基因Refj′,根据基因转换方法将Gui转换成
Figure BDA0002639165320000052
②其次,按照步骤二中(4)的①②③预处理vcfui得到
Figure BDA0002639165320000053
③最后,按照步骤二中(5)的①②③进一步处理
Figure BDA0002639165320000054
得到查E(vcfui),查询请求将由E(vcfui)和Mj′的标签构成,即(E(vcfui),idj′0);
完成加密处理后,Ui将得到|Mi|条不同的查询请求{(E(vcfui),idj′0)|Mj′∈Mi};
(4)Ui自定义一个查询阈值
Figure BDA0002639165320000055
和|Mi|条查询请求{(E(vcfui),idj′0)|Mj′∈Mi}一起发送给云服务器;
(5)对于Ui的每一条查询请求,云服务器都会进行以下处理:
①将请求中存储的标签与所有加密遗传BK树的根节点中存储的标签相匹配,找到该标签对应的唯一加密遗传BK树
Figure BDA0002639165320000056
②根据加密遗传BK树的搜索方法,搜索
Figure BDA0002639165320000057
找到与Gui近似编辑距离小于等于
Figure BDA0002639165320000058
的基因组;
③所有符合要求的基因组的标签将构成一个标签集
Figure BDA0002639165320000059
Figure BDA00026391653200000510
中存储的所有标签
Figure BDA00026391653200000511
组成查询结果
Figure BDA00026391653200000512
完成|Mi|条查询请求的基因组相似度匹配后,形成最终查询结果
Figure BDA00026391653200000513
(6)云服务器将最终查询结果
Figure BDA00026391653200000514
返回给用户Ui
步骤四,相似基因组信息查询步骤:
(1)接收到
Figure BDA00026391653200000515
后,对于每一条查询结果
Figure BDA00026391653200000516
①Ui随机从集合
Figure BDA0002639165320000061
中选取任意多个足以混淆
Figure BDA0002639165320000062
的标签,这些混淆标签集被记作
Figure BDA0002639165320000063
②Ui
Figure BDA0002639165320000064
和自己的身份信息一起发送给标签为idj′0的医疗机构Mj′
③Mj′在确认Ui是合法用户后,将
Figure BDA0002639165320000065
中标签对应基因组的患者的非敏感信息
Figure BDA0002639165320000066
返回给用户;
(2)用户将结合返回的所有患者非敏感信息
Figure BDA0002639165320000067
(例如,患病情况),对自身健康状况进行评估。
进一步,所述基因转换方法具体包括:
(1)给定公共参考基因组
Figure BDA0002639165320000068
以及待转换基因组
Figure BDA0002639165320000069
Figure BDA00026391653200000610
表示基因组长度;
(2)根据以下公式,依次计算
Figure BDA00026391653200000611
的值构建矩阵
Figure BDA00026391653200000612
Figure BDA00026391653200000613
其中,当Ref[i-1]=G[j-1]时,f取值为0;否则f取值为1;
(3)初始化转换后的集合
Figure BDA00026391653200000614
(4)在矩阵
Figure BDA00026391653200000615
中,从
Figure BDA00026391653200000616
开始,执行以下操作,直至i=0,j=0:
①判断Ref[i-1]与G[j-1]是否相等,若相等,直接跳转至
Figure BDA00026391653200000617
②若Ref[i-1]与G[j-1]不相等,判断
Figure BDA00026391653200000618
是否等于
Figure BDA00026391653200000619
若是,向集合vcf中添加向量(i,sub,G[j-1]),跳转至
Figure BDA00026391653200000620
若不是,再判断
Figure BDA00026391653200000621
是否等于
Figure BDA00026391653200000622
若相等,则向集合vcf中添加向量(i,del,⊥),并跳转至
Figure BDA00026391653200000623
否则添加向量(i,ins,G[j-1]),并跳转至
Figure BDA00026391653200000624
(5)完成集合vcf的向量添加之后,按照添加顺序由晚到早更新集合顺序,即最晚添加进集合的向量是集合vcf的第一个向量;
(6)集合vcf可能存在对于同一个位置i有多个含ins的三维向量的情况,在这种情况下,按照其在vcf的位置,原来的ins依次由{ins,ins+r,ins+r+1,...}替换,其中r是由Mj决定的大于等于3的随机数;至此,基因组
Figure BDA0002639165320000071
的转换工作完成。
进一步,所述基于
Figure BDA0002639165320000072
所述以vcfj0为根节点的遗传BK树
Figure BDA0002639165320000073
的构建方法具体包括:
(1)按照以下方法,依次将vcfjk,1≤k≤nj-1添加至
Figure BDA0002639165320000074
①通过vcfjk与根节点vcfj0计算其对应的基因组间的近似编辑距离Aed(vcfj0,vcfjk),若此时vcfj0已有的孩子节点与它的基因组间的近似编辑距离都不等于Aed(vcfj0,vcfjk),则添加vcfjk作为vcfj0的孩子节点,且vcfjk的边权值被赋值为Aed(vcfj0,vcfjk);
②若此时vcfj0已有的孩子节点中存在某个节点vcfpn与它的基因组间的近似编辑距离等于Aed(vcfj0,vcfjk),则找出以vcfpn为根节点的子树,继续操作①②,直到vcfjk找到合适的父亲节点;
(2)完成所有节点的添加后,
Figure BDA0002639165320000075
构建完成。
进一步,所述加密遗传BK树的搜索方法具体包括,查询阈值
Figure BDA0002639165320000076
及加密遗传BK树
Figure BDA0002639165320000077
):
(1)计算E(vcfui)与
Figure BDA0002639165320000078
根节点E(vcfj′0)的对应的基因组间的近似编辑距离Aed(E(vcfj′0),E(vcfui)),若
Figure BDA0002639165320000079
返回根节点;
(2)确定加密遗传BK树
Figure BDA00026391653200000710
下一层的节点搜索范围,即边权值属于范围
Figure BDA00026391653200000711
的所有节点;
(3)对于范围内的所有节点,看作E(vcfj′0),重复(1)(2)操作,直至搜索完整棵加密遗传BK树
Figure BDA00026391653200000712
返回的所有节点的集合即搜索结果。
进一步,所述Aed(tv1,tv2)的计算方法具体包括,tv1,tv2代表两个三维向量的集合:
(1)记len1=|tv1|,len2=|tv2|;
(2)按照以下方法更新集合tv1,tv2
①对于集合tv1每一个三维向量,若在tv2中找不到一个向量与其第一维数据相同,则将该向量从tv1中删除;同理,对集合tv2进行处理;
②对于处理后的tv1中的每一个三位向量,若第一维数据是集合中重复出现的数据,且对应的向量在tv2中找不到与其前两位数据一样的向量,则将该向量从tv1中删除;同理,对集合tv2进行处理;
(3)记更新后的集合tv1,tv2为tv1′,tv2′,且|tv1′|=|tv2′|=len;
(4)初始化Aed(tv1,tv2)=len1+len2-2·len;
(5)将集合tv1′,tv2′形式化表示为两个len×3的数组T1,T2
(6)对于所有的0≤i≤len-1,执行以下操作:
①若T1[i][1]≠T2[i][1]且T1[i][2]≠T2[i][2],则在现有Aed(tv1,tv2)的值上加2,即Aed(tv1,tv2)=Aed(tv1,tv2)+2;
②若T1[i][1]≠T2[i][1]且T1[i][2]=T2[i][2],则在现有Aed(tv1,tv2)的值上加1,即Aed(tv1,tv2)=Aed(tv1,tv2)+1;
③若T1[i][1]=T2[i][1]且T1[i][2]≠T2[i][2],则在现有Aed(tv1,tv2)的值上加1,即Aed(tv1,tv2)=Aed(tv1,tv2)+1;
④若T1[i][1]=T2[i][1]且T1[i][2]=T2[i][2],则Aed(tv1,tv2)的值保持不变;完成所有的比较后,得到最终Aed(tv1,tv2)的值;
(7)tv1,tv2对应的基因组间的近似编辑距离等于最终的Aed(tv1,tv2)值。
本发明的另一目的在于提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
系统参数初始化,每家医疗机构随机选择数据处理过程中所需的公共参考基因组、HMAC算法及其它安全参数,生成加密过程中所需的索引矩阵;
加密基因组数据库外包,每家医疗机构首先基于转换后的基因组构建一棵遗传BK树,然后利用索引矩阵和密钥对树进行加密,并发送给云服务器;
用户基因组数据安全匹配,用户首先在目标医疗机构进行注册获取相关参数,然后利用不同医疗机构的参数分别转换加密个人基因组数据,并发送给云服务器请求匹配服务;云服务器接收到用户加密的查询请求后,对指定的加密遗传BK树进行搜索,返回给用户符合要求的基因组标签;
相似基因组信息查询,用户通过添加随机标签掩蔽真实的标签集向医疗机构请求相关患者的患病信息,对自身健康状态做出评估。
本发明的另一目的在于提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
系统参数初始化,每家医疗机构随机选择数据处理过程中所需的公共参考基因组、HMAC算法及其它安全参数,生成加密过程中所需的索引矩阵;
加密基因组数据库外包,每家医疗机构首先基于转换后的基因组构建一棵遗传BK树,然后利用索引矩阵和密钥对树进行加密,并发送给云服务器;
用户基因组数据安全匹配,用户首先在目标医疗机构进行注册获取相关参数,然后利用不同医疗机构的参数分别转换加密个人基因组数据,并发送给云服务器请求匹配服务;云服务器接收到用户加密的查询请求后,对指定的加密遗传BK树进行搜索,返回给用户符合要求的基因组标签;
相似基因组信息查询,用户通过添加随机标签掩蔽真实的标签集向医疗机构请求相关患者的患病信息,对自身健康状态做出评估。
本发明的另一目的在于提供一种实施所述面向基因组数据相似度的高效匹配及隐私保护方法的面向基因组数据相似度的高效匹配及隐私保护系统,所述面向基因组数据相似度的高效匹配及隐私保护系统包括:
客户端,用于用户基因组数据信息和身份信息的采集,在目标医疗机构注册,接收到各个医疗机构的系统参数后对基因组数据信息进行加密并生成查询请求,然后发送给云服务器;对云服务器返回的结果进行混淆处理后再发送给对应的医疗机构请求相关患者信息;根据相关患者信息评估用户的健康状况;
医疗机构终端,用于生成系统参数,构建并加密遗传BK树,并且将加密后的遗传BK树发送给云服务器;为用户提供注册服务;为合法的用户检索相似患者的非隐私信息并发送给用户;
云服务器,用于存储各家医疗机构发送过来的加密遗传BK树;接受用户发送的查询请求,在完成加密遗传BK树的搜索后,将基因组匹配查询结果返回给用户。
所述客户端进一步包括:
信息采集模块,包括基因组数据采集子模块、身份信息采集子模块;用于采集用户的个人基因组数据和身份信息,并生成基因组向量和注册信息;
用户安全支持模块,包括请求注册子模块、参数存储子模块、数据转换子模块、加密发送子模块;用于向目标医疗机构终端发送注册请求,在获取系统参数后对个人基因组数据进行转换加密处理并发送给云服务器;
健康状况评估模块,包括扰动处理子模块、聚类分析子模块;用于对真实的标签集进行加扰发送给医疗机构终端,并对返回的患者信息进行分析从而评估用户健康状况;
所述医疗机构终端进一步包括:
参数生成模块,包括安全参数选取子模块、索引矩阵生成子模块;用于生成基因组转换加密所需的系统参数;
注册认证模块,包括用户信息认证子模块、用户信息存储子模块、系统参数发送子模块;用于接收合法用户的注册请求,存储用户身份信息,并将系统参数发送到成功注册的客户端;
医疗机构安全支持模块,包括数据转换子模块、遗传BK树构建子模块、加密发送子模块;用于将医疗机构终端存储的基因组数据库全部转换加密处理后以加密遗传BK树的形式发送给云服务器;
患者信息查询模块,包括患者信息索引子模块;用于将用户请求的相似基因组的患者的非隐私信息发送给用户;
所述云服务器进一步包括:
数据存储模块,包括加密遗传BK树存储子模块、用户查询请求接收子模块;用于存储医疗机构终端发送来的加密遗传BK树,并接收客户端发送来的查询请求;
相似基因组匹配模块,包括BK树定位子模块、BK树查询子模块、查询结果发送子模块;用于定位并搜索标签包含在用户查询请求中的加密遗传BK树,并将符合要求的基因组标签返回给相应的客户端。
结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明实现了数据资源的隐私保护;在数据传输前对其加密,并且在数据处理过程中保持了加密状态,大大提高了数据的隐私性和安全性,防止医疗机构及用户的原始基因组数据泄露;实现了诊断结果的隐私保护,在随机扰动技术支持下,即使医疗机构终端拿到了用户请求查询的基因组标签,也无法预先评估用户的健康状况;实现了遗传BK树的构建、加密及搜索机制,即使面对海量高维的基因组数据,也能够为用户提供高效精准的基因组匹配服务。通过在真实基因组数据集DisGeNet上进行测试,可以证明本发明的匹配精确度能达到90%以上;同时实验表明,在所提方案中,提供一次完整的基因组匹配服务所有的总时间不超过0.6s,与已知性能最优方案(EFSS)相比,效率提高了50倍以上,就查询效率而言,在所提方案中,完成一次查询仅需1ms左右,与已知性能最优方案相比,效率提高了5倍以上。医疗机构终端、云服务器及客户端进行一次完成的基因组匹配查询服务所需的通信开销不超过2.5MB,与EFSS相比,开销节省了近6倍。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的面向基因组数据相似度的高效匹配及隐私保护方法流程图。
图2是本发明实施例提供的面向基因组数据相似度的高效匹配及隐私保护系统的结构示意图;
图3是本发明实施例提供的系统参数初始化流程图。
图4是本发明实施例提供的加密基因组数据库外包流程图。
图5是本发明实施例提供的用户基因组数据安全匹配流程图。
图6是本发明实施例提供的相似基因组信息查询流程图。
图7是本发明实施例提供的与已知性能最优方案(EFSS)计算开销对比图。
图8是本发明实施例提供的与已知性能最优方案(EFSS)通信开销对比图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种面向基因组数据相似度的高效匹配及隐私保护方法、系统,下面结合附图对本发明作详细的描述。
如图1所示,本发明提供的面向基因组数据相似度的高效匹配及隐私保护方法包括以下步骤:
S101:系统参数初始化,医疗机构终端随机选择数据处理过程中所需的公共参考基因、HM。AC算法及其它安全参数,并生成加密过程中所需的索引矩阵;
S102:加密基因组数据库外包,医疗机构终端首先基于公共参考基因完成对数据库中的所有原始基因组的转换,然后基于转换后的基因组构建一棵遗传BK树,再利用索引矩阵和安全参数对构建好的树进行加密,最后发送给云服务器。
S103:用户基因组数据安全匹配,用户首先在目标医疗机构终端进行注册获取其系统参数,然后根据不同医疗机构的系统参数对个人基因组数据进行不同的转换加密,生成查询请求发送给云服务器,最后云服务器根据查询请求对指定的加密遗传BK树进行搜索,返回给用户符合要求的基因组标签。
S104:相似基因组信息查询,用户首先通过添加随机标签混淆云服务器返回的正确结果,生成新的查询请求,然后发送给对应的医疗机构终端,在接收到医疗机构返回的相关患者非隐私信息后再对自身健康状态做出评估。
本发明提供的面向基因组数据相似度的高效匹配及隐私保护方法业内的普通技术人员还可以采用其他的步骤实施,图1的本发明提供的面向基因组数据相似度的高效匹配及隐私保护方法仅仅是一个具体实施例而已。
如图2所示,本发明提供的面向基因组数据相似度的高效匹配及隐私保护系统包括:客户端、医疗机构终端,云服务器三个组成部分。其中:
客户端采集用户基因组数据信息和身份信息,在目标医疗机构注册,接收各个医疗机构的系统参数后对基因组数据信息进行加密并生成查询请求,发送给云服务器;混淆处理云服务器返回的结果后发送给对应的医疗机构请求相关患者信息,并根据相关患者信息评估用户的健康状况。
医疗机构终端生成系统参数,构建并加密遗传BK树,并且将加密后的遗传BK树发送给云服务器;为用户提供注册服务,并为合法的用户检索相似患者的非隐私信息后返回。
云服务器存储各家医疗机构发送过来的加密遗传BK树,同时接受用户发送的查询请求,在完成指定加密遗传BK树的搜索后,将基因组匹配查询结果返回给用户。
下面结合附图对本发明的技术方案作进一步的描述。
客户端,包括:信息采集模块、用户安全支持模块、健康状况评估模块。
该信息采集模块,用于采集用户的个人基因组数据和身份信息,并生成基因组向量Gui和包含身份认证的注册信息;
该用户安全支持模块,用于向多家目标医疗机构终端Mj′发送注册请求获取其生成的系统参数<idj′0,k1,k2,k3,r,Refj′,M(ξ+1)×9,HMAC()>,然后分别根据每家Mj′选取的公共参考基因Refj′对Gui进行转换,并通过其他安全参数和索引矩阵M(ξ+1)×9加密用户的个人基因组数据,发送给云服务器;
该健康状况评估模块,用于生成包含随机标签的标签集
Figure BDA0002639165320000121
并和身份信息一起发送给医疗机构终端;并对医疗机构终端返回的相关患者信息进行分析处理以评估自身健康状况。
所述医疗机构终端,包括:参数生成模块、注册认证模块、医疗机构安全支持模块、患者信息查询模块。
该参数生成模块,用于生成系统参数,包括转换原始基因组所需的公共参考基因组Refj,加密转换后基因组所需的安全参数<k1,k2,k3,r,HMAC()>及索引矩阵M(ξ+1)×9,并附以可以识别该医疗机构终端的标签idj0
该认证注册模块,用于对用户发送的请求注册信息进行认证,认证通过,则存储用户的身份信息方便进一步提供服务,并通过安全信道将系统参数<idj0,k1,k2,k3,r,Refj,M(ξ+1)×9,HMAC()>发送给成功注册的用户;
该医疗机构安全支持模块,用于构建并加密遗传BK树后发送给云服务器,基于给出的近似编辑距离计算方法和原始BK树的构建方法,为该医疗机构存储的基因组数据库转换后的基因组数据构建一棵遗传BK树,并利用安全参数<k1,k2,k3,r,HMAC()>及索引矩阵M(ξ+1)×9对其进行加密后发送给云服务器;
该患者信息查询模块,用于接收用户发送的标签集
Figure BDA0002639165320000131
并在确认用户为合法用户后,对标签集中存储的所有标签进行索引,返回给用户相关患者的非隐私信息
Figure BDA0002639165320000132
所述云服务器,包括:数据存储模块、相似基因组匹配模块。
该数据存储模块,用于存储各家医疗机构发送来的加密遗传BK树
Figure BDA0002639165320000133
同时负责接收每个用户发送来的加密查询请求{(E(vcfui),idj′0)|Mj′∈Mi};
该相似基因组匹配模块,用于处理用户的加密查询请求,首先根据用户的请求,定位需要被搜索的加密遗传BK树,然后对每一棵加密遗传BK树进行搜索后返回近似编辑距离小于查询阈值
Figure BDA0002639165320000134
的所有的基因组的标签集
Figure BDA0002639165320000135
及该树上存储的所有标签
Figure BDA0002639165320000136
如图3-图6本发明实施例提供的面向基因组数据相似度的高效匹配及隐私保护方法包括如下步骤:
步骤1,系统参数初始化。
1.1)每家医疗机构终端Mj∈{M1,M2,M3,…}从本地存储的基因组数据库
Figure BDA0002639165320000137
中随机选取一个基因组作为公共参考基因,公共参考基因Refj=(g1,g2,...,gm)∈{A,G,C,T}m,{A,G,C,T}代表形成基因组的四种不同碱基;
1.2)Mj随机地将Refj切割成ξ段(sg1,...,sgω,...,sgξ),|sgω|=πω,ω∈[1,ξ]。
其中,
Figure BDA0002639165320000138
(注:每家医疗机构终端的ξ可能是不同的);
1.3)Mj根据Refj被切割后每段的起始位置,构造索引矩阵M(ξ+1)×9,表示如下:
Figure BDA0002639165320000141
,其中
Figure BDA0002639165320000142
cω{1,2,3}∈{0,1,2},cω{4,5,6,7,8}∈{0,1,2,3,4},cω{1,2,3,4,5,6,7,8}被随机赋值且满足cω1≠cω2≠cω3,cω4≠cω5≠cω6≠cω7≠cω8
1.4)Mj随机选取一种HMAC算法(例如,HMAC-SHA256)用作之后的转换基因加密过程;
1.5)Mj随机选取三个密钥k1,k2,k3(密钥长度由选取的HMAC算法里的哈希函数决定),和一个随机数r≥3;
1.6)医疗机构Mj的标签idj0将随着选取的公共参考基因Refj、安全参数<k1,k2,k3,r,HMAC()>以及生成的索引矩阵M(ξ+1)×9一起作为系统参数发布<idj0,k1,k2,k3,r,Refj,M(ξ+1)×9,HMAC()>(注:每家医疗机构终端的每一个系统参数都不尽相同,不公开发布,只提供给成功注册的用户)。
步骤2,加密基因组数据库外包。
2.1)每家医疗机构Mj在剔除Refj后将基因组数据库GDj表示为
Figure BDA0002639165320000143
2.2)GDj中每一条基因组都会拥有对应的标签及患者非敏感信息
Figure BDA0002639165320000144
2.3)Mj将公共参考基因Refj转换为空集,转换后的公共参考基因表示为
Figure BDA0002639165320000145
2.4)Mj根据下列基因组转换方法将
Figure BDA0002639165320000146
中的每条基因组Gjk*,k∈[1,nj-1]都转换为一个三维向量集合vcfjk
2.4.1)给定公共参考基因组
Figure BDA0002639165320000147
以及待转换基因组
Figure BDA0002639165320000148
Figure BDA0002639165320000149
表示基因组长度(这里为了方便表述,直接将基因组看成数组形式);
2.4.2)根据以下公式,依次计算
Figure BDA00026391653200001410
的值构建矩阵
Figure BDA00026391653200001411
Figure BDA0002639165320000151
其中,当Refj[i-1]=Gjk*[j-1]时,f取值为0;否则f取值为1;
2.4.3)初始化转换后的三维向量集合
Figure BDA0002639165320000152
2.4.4)在矩阵
Figure BDA0002639165320000153
中,从
Figure BDA0002639165320000154
开始,执行以下操作,直至i=0,j=0:
2.4.4.1)判断Refj[i-1]与Gjk*[j-1]是否相等,若相等,直接跳转至
Figure BDA0002639165320000155
2.4.4.2)若Refj[i-1]与Gjk*[j-1]不相等,判断
Figure BDA0002639165320000156
是否等于
Figure BDA0002639165320000157
若是,向集合vcfjk中添加向量(i,sub,Gjk*[j-1]),跳转至
Figure BDA0002639165320000158
若不是,再判断
Figure BDA0002639165320000159
是否等于
Figure BDA00026391653200001510
若相等,则向集合vcfjk中添加向量(i,del,⊥),并跳转至
Figure BDA00026391653200001511
否则添加向量(i,ins,Gjk*[j-1]),并跳转至
Figure BDA00026391653200001512
2.4.4.3)完成集合vcfjk的向量添加之后,按照添加顺序由晚到早更新集合顺序,即最晚添加进集合的向量是集合vcfjk的第一个向量;
2.4.4.4)集合vcfjk可能存在对于同一个位置i有多个含ins的三维向量的情况,在这种情况下,按照其在vcfjk的位置,原来的ins依次由{ins,ins+r,ins+r+1,...}替换,其中r是由Mj决定的大于等于3的随机数。至此,基因组
Figure BDA00026391653200001513
的转换工作完成,得到以下三维向量集合:
Figure BDA00026391653200001514
Figure BDA00026391653200001515
其中
Figure BDA00026391653200001516
Figure BDA00026391653200001517
2.5)基于转换后的基因组
Figure BDA00026391653200001518
Mj按照以下方法依次将vcfjk,1≤k≤nj-1添加至
Figure BDA00026391653200001519
完成一棵以vcfj0为根节点的遗传BK树
Figure BDA00026391653200001520
的构建:
2.5.1)首先给出Aed(tv1,tv2)的计算方法(tv1,tv2代表两个三维向量的集合):
2.5.1.1)记len1=|tv1|,len2=|tv2|;
2.5.1.2)按照以下方法更新集合tv1,tv2
2.5.1.2.1)对于集合tv1每一个三维向量,若在tv2中找不到一个向量与其第一维数据相同,则将该向量从tv1中删除;同理,对集合tv2进行处理;
2.5.1.2.2)对于处理后的tv1中的每一个三位向量,若第一维数据是集合中重复出现的数据,且对应的向量在tv2中找不到与其前两位数据一样的向量,则将该向量从tv1中删除;同理,对集合tv2进行处理。
2.5.1.3)记更新后的集合tv1,tv2为tv1′,tv2′,且|tv1′|=|tv2′|=len;
2.5.1.4)初始化Aed(tv1,tv2)=len1+len2-2·len;
2.5.1.5)将集合tv1′,tv2′形式化表示为两个len×3的数组T1,T2
2.5.1.6)对于所有的0≤i≤len-1,执行以下操作:
2.5.1.6.1)若T1[i][1]≠T2[i][1]且T1[i][2]≠T2[i][2],则在现有Aed(tv1,tv2)的值上加2,即Aed(tv1,tv2)=Aed(tv1,tv2)+2;
2.5.1.6.2)若T1[i][1]≠T2[i][1]且T1[i][2]=T2[i][2],则在现有Aed(tv1,tv2)的值上加1,即Aed(tv1,tv2)=Aed(tv1,tv2)+1;
2.5.1.6.3)若T1[i][1]=T2[i][1]且Tx[i][2]≠T2[i][2],则在现有Aed(tv1,tv2)的值上加1,即Aed(tv1,tv2)=Aed(tv1,tv2)+1;
2.5.1.6.4)若T1[i][1]=T2[i][1]且T1[i][2]=T2[i][2],则Aed(tv1,tv2)的值保持不变;
完成所有的比较后,得到最终Aed(tv1,tv2)的值;
2.5.1.7)tv1,tv2对应的基因组间的近似编辑距离等于最终的Aed(tv1,tv2)值。
2.5.2)通过vcfjk与根节点vcfj0计算其对应的基因组间的近似编辑距离Aed(vcfj0,vcfjk),若此时vcfj0已有的孩子节点与它的基因组间的近似编辑距离都不等于Aed(vcfj0,vcfjk),则添加vcfjk作为vcfj0的孩子节点,且vcfjk的边权值被赋值为Aed(vcfj0,vcfjk);
2.5.3)若此时vcfj0已有的孩子节点中存在某个节点vcfpn与它的基因组间的近似编辑距离等于Aed(vcfj0,vcfjk),则找出以vcfpn为根节点的子树,继续操作2.5.2)和2.5.3),直到vcfjk找到合适的父亲节点;
完成所有节点的添加后,
Figure BDA0002639165320000161
构建完成。
2.6)Mj
Figure BDA0002639165320000171
上除根节点外的每一个节点存储的vcfjk,k∈[1,nj-1]集合里的每一个三维向量
Figure BDA0002639165320000172
进行以下预处理:
2.6.1)根据矩阵M(ξ+1)×9第一列的值确定
Figure BDA0002639165320000173
的取值区间,找到ω使得
Figure BDA0002639165320000174
2.6.2)根据矩阵M(ξ+1)×9第一行的值,利用cω1,cω2,...,cω8对应地替换
Figure BDA0002639165320000175
Figure BDA0002639165320000176
中包含的符号{del,sub,ins,A,C,G,T,⊥};
2.6.3)利用Mj选取的随机数r替换
Figure BDA0002639165320000177
中包含的r。
完成替换后,可得
Figure BDA0002639165320000178
2.7)对于每一个集合
Figure BDA0002639165320000179
中的每一个三维向量,依次利用随机密钥k1,k2,k3进行HMAC加密:
2.7.1)对于每一个
Figure BDA00026391653200001710
利用k1进行HMAC加密可得
Figure BDA00026391653200001711
2.7.2)对于每一个
Figure BDA00026391653200001712
利用k2进行HMAC加密可得
Figure BDA00026391653200001713
2.7.3)对于每一个
Figure BDA00026391653200001714
利用k3进行HMAC加密可得
Figure BDA00026391653200001715
完成加密后,可得
Figure BDA00026391653200001716
2.8)Mj完成
Figure BDA00026391653200001717
加密后(即完成2.6)2.7)),在每一个节点上添加该节点存储的基因组的标签,即树的根节点上存储的信息更新为
Figure BDA00026391653200001718
其它节点存储的信息更新为(E(vcfjk),idjk),k=1,2,...,nj-1,将加密后的
Figure BDA00026391653200001719
记为
Figure BDA00026391653200001720
2.9)最后,Mj将加密后的遗传BK树
Figure BDA00026391653200001721
外包给云服务器。
步骤3,用户基因组数据安全匹配。
3.1)每个用户Ui∈{U1,U2,U3...}首先向所有目标医疗机构Mi请求注册;
3.2)注册成功后,属于集合Mi的每家医疗机构Mj′都会通过安全的信道向用户发送系统参数<idj,0,k1,k2,k3,r,Refj,M(ξ+1)×9,HMAC()>,不同医疗机构发送的安全参数都是自身随机生成的,彼此不具有关联性;
3.3)这|Mi|家医疗机构都会存储Ui的身份信息;
3.4)Ui每接收到一条系统参数<idj′0,k1,k2,k3,r,Refj′,M(ξ+1)×9,HMAC()>,都会对应地加密个人基因组数据Gui得到一条查询请求:
3.4.1)首先,基于Mj′的公共参考基因Refj′,根据基因转换方法将Gui转换成
Figure BDA0002639165320000181
3.4.2)其次,按照步骤2中2.6.1)2.6.2)及2.6.3)预处理vcfui得到
Figure BDA0002639165320000182
3.4.3)最后,按照步骤2中2.7.1)2.7.2)及2.7.3)进一步处理
Figure BDA0002639165320000183
得到查E(vcfui),查询请求将由E(vcfui)和Mj′的标签构成,即(E(vcfui),idj′0)。
完成加密处理后,Ui将得到|Mi|条不同的查询请求{(E(vcfui),idj′0)|,Mj′∈Mi};
3.5)Ui自定义一个查询阈值
Figure BDA0002639165320000184
和|Mi|条查询请求{(E(vcfui),idj′0)|Mj′∈Mi}一起发送给云服务器;
3.6)对于Ui的每一条查询请求,云服务器都会进行以下处理:
3.6.1)将请求中存储的标签与所有加密遗传BK树的根节点中存储的标签相匹配,找到该标签对应的唯一加密遗传BK树
Figure BDA0002639165320000185
3.6.2)根据以下加密遗传BK树的搜索方法,搜索
Figure BDA0002639165320000186
找到与Gui近似编辑距离小于等于
Figure BDA0002639165320000187
的基因组:
3.6.2.1)计算E(vcfui)与
Figure BDA0002639165320000188
根节点E(vcfj′0)的对应的基因组间的近似编辑距离Aed(E(vcfj′0),E(vcfui)),若
Figure BDA0002639165320000189
返回根节点;
3.6.2.2)确定加密遗传BK树
Figure BDA00026391653200001810
下一层的节点搜索范围,即边权值属于范围
Figure BDA00026391653200001811
的所有节点;
3.6.2.3)对于范围内的所有节点,看作E(vcfj′0),重复(1)(2)操作,直至搜索完整棵加密遗传BK树
Figure BDA00026391653200001812
返回的所有节点的集合即搜索结果。
3.6.3)所有符合要求的基因组的标签将构成一个标签集
Figure BDA0002639165320000192
Figure BDA0002639165320000193
中存储的所有标签
Figure BDA0002639165320000194
组成查询结果
Figure BDA0002639165320000195
完成|Mi|条查询请求的基因组相似度匹配后,形成最终查询结果
Figure BDA0002639165320000196
3.7)云服务器将最终查询结果
Figure BDA0002639165320000197
返回给请求查询的用户Ui
步骤4,相似基因组信息查询。
4.1)Ui接收到
Figure BDA0002639165320000198
后,对于每一条查询结果
Figure BDA0002639165320000199
都会执行以下操作:
4.1.1)首先,随机从集合
Figure BDA00026391653200001910
中选取任意多个足以混淆
Figure BDA00026391653200001911
的标签,这些混淆标签集被记作
Figure BDA00026391653200001912
4.1.2)然后,将
Figure BDA00026391653200001913
和自己的身份信息一起发送给标签为idj′0的医疗机构Mj′
4.1.3)Mj′在确认Ui是合法用户后,将
Figure BDA00026391653200001914
中标签对应基因组的患者的非敏感信息
Figure BDA00026391653200001915
返回给用户。
4.1.4)最后,用户结合返回的所有患者非敏感信息
Figure BDA00026391653200001916
(例如,患病情况),剔除掉混淆标签对应的患者信息后,利用聚类分析等技术对自身健康状况进行评估。
基于真实基因组数据集DisGeNET(https://www.disgenet.org/home/),实施例采用Java编程语言实现后被部署在一台普通测试机(四核2.5GHz,24GB,Windows10操作系统)上,测试结果表明在任意染色体上即使查询阈值
Figure BDA00026391653200001917
的值增加,其基因组的相似度匹配精确率也可达90%以上(如下表所示)。
Figure BDA0002639165320000191
同时,如图7所示,与已知性能最优方案(EFSS)中相比,本实施例的效率更高,其中,与EFSS方案中效率最好的子方案EFSS_Ⅰ相比,本实施例的效率提高了50倍以上。如图8所示,医疗机构终端、云服务器及客户端进行一次完成的基因组匹配查询服务所需的通信开销不超过2.5MB,与EFSS中开销最小的子方案EFSS_Ⅰ相比,节省了近6倍。
应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。

Claims (9)

1.一种面向基因组数据相似度的高效匹配及隐私保护方法,其特征在于,所述面向基因组数据相似度的高效匹配及隐私保护方法包括:
系统参数初始化,每家医疗机构随机选择数据处理过程中所需的公共参考基因组、HMAC算法及其它安全参数,生成加密过程中所需的索引矩阵;
加密基因组数据库外包,每家医疗机构首先基于转换后的基因组构建一棵遗传BK树,然后利用索引矩阵和密钥对树进行加密,并发送给云服务器;
用户基因组数据安全匹配,用户首先在目标医疗机构进行注册获取相关参数,然后利用不同医疗机构的参数分别转换加密个人基因组数据,并发送给云服务器请求匹配服务;云服务器接收到用户加密的查询请求后,对指定的加密遗传BK树进行搜索,返回给用户符合要求的基因组标签;
相似基因组信息查询,用户通过添加随机标签掩蔽真实的标签集向医疗机构请求相关患者的患病信息,对自身健康状态做出评估;
所述面向基因组数据相似度的高效匹配及隐私保护方法具体包括:
步骤一,系统参数初始化步骤:
(1)每家医疗机构Mj∈{M1,M2,M3,…}从本地存储的基因组数据库
Figure FDA0003897225860000011
中随机选取一个基因组作为公共参考基因,公共参考基因Refj=(g1,g2,...,gm)∈{A,G,C,T}m,{A,G,C,T}代表形成基因组的四种不同碱基;
(2)Mj随机地将Refj切割成ξ段(sg1,...,sgω,...,sgξ),|sgω|=πω,ω∈[1,ξ],其中,
Figure FDA0003897225860000012
Figure FDA0003897225860000013
(3)根据Refj被切割后每段的起始位置,构造索引矩阵M(ξ+1)×9,表示如下:
Figure FDA0003897225860000021
其中
Figure FDA0003897225860000022
cω{1,2,3}∈{0,1,2},cω{4,5,6,7,8}∈{0,1,2,3,4},cω{1,2,3,4,5,6,7,8}被随机赋值且满足cω1≠cω2≠cω3,cω4≠cω5≠cω6≠cω7≠cω8
(4)Mj随机选取一种HMAC算法;
(5)Mj随机选取三个密钥k1,k2,k3,密钥长度由选取的HMAC算法决定,以及一个随机数r≥3;
(6)Mj发布系统参数<idj0,k1,k2,k3,r,Refj,M(ξ+1)×9,HMAC()>,其中idj0是医疗机构Mj的标签;
步骤二,加密基因组数据库外包步骤:
(1)每家医疗机构Mj的基因组数据库GDj在剔除Refj后表示为
Figure FDA0003897225860000023
所有基因组都会拥有对应的标签及患者非敏感信息
Figure FDA0003897225860000024
(2)Mj首先将Refj转换为空集
Figure FDA00038972258600000213
然后根据基因转换方法将
Figure FDA0003897225860000025
中的每条基因组
Figure FDA0003897225860000026
都转换为一个三维向量集合:
Figure FDA0003897225860000027
,其中
Figure FDA0003897225860000028
Figure FDA0003897225860000029
(3)基于
Figure FDA00038972258600000210
Mj构建一棵以vcfj0为根节点的遗传BK树
Figure FDA00038972258600000211
(4)Mj
Figure FDA00038972258600000212
上除根节点外的每一个节点存储的vcfjk,k∈[1,nj-1]集合里的每一个三维向量
Figure FDA0003897225860000031
进行以下预处理:
①根据矩阵M(ξ+1)×9第一列的值确定
Figure FDA0003897225860000032
的取值区间,找到ω使得
Figure FDA0003897225860000033
②根据矩阵M(ξ+1)×9第一行的值,利用cω1,cω2,...,cω8对应地替换
Figure FDA0003897225860000034
Figure FDA0003897225860000035
中包含的符号{del,sub,ins,A,C,G,T,⊥};
③利用Mj选取的随机数r替换
Figure FDA0003897225860000036
中包含的r;
完成替换后,可得
Figure FDA0003897225860000037
(5)对于每一个集合
Figure FDA0003897225860000038
中的每一个三维向量,依次利用随机密钥k1,k2,k3进行HMAC加密:
①对于每一个
Figure FDA0003897225860000039
利用k1进行HMAC加密可得
Figure FDA00038972258600000310
②对于每一个
Figure FDA00038972258600000311
利用k2进行HMAC加密可得
Figure FDA00038972258600000312
③对于每一个
Figure FDA00038972258600000313
利用k3进行HMAC加密可得
Figure FDA00038972258600000314
完成加密后,可得
Figure FDA00038972258600000315
(6)Mj完成
Figure FDA00038972258600000316
加密后(即完成(4)(5)),在每一个节点上添加该节点存储的基因组的标签,即树的根节点上存储的信息更新为
Figure FDA00038972258600000317
其它节点存储的信息更新为(E(vcfjk),idjk),k=1,2,...,nj-1,将加密后的
Figure FDA00038972258600000318
记为
Figure FDA00038972258600000319
(7)最后,Mj将加密后的遗传BK树
Figure FDA00038972258600000320
外包给云服务器;
步骤三,用户基因组数据安全匹配步骤:
(1)每个用户Ui∈{U1,U2,U3...}首先向所有目标医疗机构Mi请求注册;
(2)注册成功后,属于集合Mi的每家医疗机构Mj′都会通过安全的信道向用户发送系统参数<idj′0,k1,k2,k3,r,Refj′,M(ξ+1)×9,HMAC()>,不同医疗机构发送的安全参数都是自身随机生成的,彼此不具有关联性,且Ui的身份信息会被存储在这|Mi|家医疗机构中;
(3)Ui每接收到一条系统参数<idj′0,k1,k2,k3,r,Refj′,M(ξ+1)×9,HMAC()>,都会对应地加密个人基因组数据Gui得到一条查询请求:
①首先,基于Mj′的公共参考基因Refj′,根据基因转换方法将Gui转换成
Figure FDA0003897225860000041
②其次,按照步骤二中(4)的①②③预处理vcfui得到
Figure FDA0003897225860000042
③最后,按照步骤二中(5)的①②③进一步处理
Figure FDA0003897225860000043
得到查E(vcfui),查询请求将由E(vcfui)和Mj′的标签构成,即(E(vcfui),idj′0);
完成加密处理后,Ui将得到|Mi|条不同的查询请求{(E(vcfui),idj′0)|Mj′∈Mi};
(4)Ui自定义一个查询阈值
Figure FDA00038972258600000412
和|Mi|条查询请求{(E(vcfui),idj′0)|Mj′∈Mi}一起发送给云服务器;
(5)对于Ui的每一条查询请求,云服务器都会进行以下处理:
①将请求中存储的标签与所有加密遗传BK树的根节点中存储的标签相匹配,找到该标签对应的唯一加密遗传BK树
Figure FDA0003897225860000044
②根据加密遗传BK树的搜索方法,搜索
Figure FDA0003897225860000045
找到与Gui近似编辑距离小于等于
Figure FDA0003897225860000046
的基因组;
③所有符合要求的基因组的标签将构成一个标签集
Figure FDA0003897225860000047
Figure FDA0003897225860000048
中存储的所有标签
Figure FDA0003897225860000049
组成查询结果
Figure FDA00038972258600000410
完成|Mi|条查询请求的基因组相似度匹配后,形成最终查询结果
Figure FDA00038972258600000411
(6)云服务器将最终查询结果
Figure FDA0003897225860000051
返回给用户Ui
步骤四,相似基因组信息查询步骤:
(1)接收到
Figure FDA0003897225860000052
后,对于每一条查询结果
Figure FDA0003897225860000053
①Ui随机从集合
Figure FDA0003897225860000054
中选取任意多个足以混淆
Figure FDA0003897225860000055
的标签,这些混淆标签集被记作
Figure FDA0003897225860000056
②Ui
Figure FDA0003897225860000057
和自己的身份信息一起发送给标签为idj′0的医疗机构Mj′
③Mj′在确认Ui是合法用户后,将
Figure FDA0003897225860000058
中标签对应基因组的患者的非敏感信息
Figure FDA0003897225860000059
返回给用户;
(2)用户将结合返回的所有患者非敏感信息
Figure FDA00038972258600000510
Mj′∈Mi,对自身健康状况进行评估。
2.如权利要求1所述的面向基因组数据相似度的高效匹配及隐私保护方法,其特征在于,所述基因转换方法具体包括:
(1)给定公共参考基因组
Figure FDA00038972258600000511
以及待转换基因组
Figure FDA00038972258600000512
Figure FDA00038972258600000513
表示基因组长度;
(2)根据以下公式,依次计算
Figure FDA00038972258600000514
的值构建矩阵
Figure FDA00038972258600000515
Figure FDA00038972258600000516
其中,当Ref[i-1]=G[j-1]时,f取值为0;否则f取值为1;
(3)初始化转换后的集合
Figure FDA00038972258600000517
(4)在矩阵
Figure FDA00038972258600000518
中,从
Figure FDA00038972258600000519
开始,执行以下操作,直至i=0,j=0:
①判断Ref[i-1]与G[j-1]是否相等,若相等,直接跳转至
Figure FDA00038972258600000520
②若Ref[i-1]与G[j-1]不相等,判断
Figure FDA00038972258600000521
是否等于
Figure FDA00038972258600000522
若是,向集合vcf中添加向量(i,sub,G[j-1]),跳转至
Figure FDA0003897225860000061
若不是,再判断
Figure FDA0003897225860000062
是否等于
Figure FDA0003897225860000063
若相等,则向集合vcf中添加向量(i,del,⊥),并跳转至
Figure FDA0003897225860000064
否则添加向量(i,ins,G[j-1]),并跳转至
Figure FDA0003897225860000065
(5)完成集合vcf的向量添加之后,按照添加顺序由晚到早更新集合顺序,即最晚添加进集合的向量是集合vcf的第一个向量;
(6)集合vcf可能存在对于同一个位置i有多个含ins的三维向量的情况,在这种情况下,按照其在vcf的位置,原来的ins依次由{ins,ins+r,ins+r+1,...}替换,其中r是由Mj决定的大于等于3的随机数;至此,基因组
Figure FDA0003897225860000066
的转换工作完成。
3.如权利要求1所述的面向基因组数据相似度的高效匹配及隐私保护方法,其特征在于,所述基于
Figure FDA0003897225860000067
所述以vcfj0为根节点的遗传BK树
Figure FDA0003897225860000068
的构建方法具体包括:
(1)按照以下方法,依次将vcfjk,1≤k≤nj-1添加至
Figure FDA0003897225860000069
①通过vcfjk与根节点vcfj0计算其对应的基因组间的近似编辑距离Aed(vcfj0,vcfjk),若此时vcfj0已有的孩子节点与它的基因组间的近似编辑距离都不等于Aed(vcfj0,vcfjk),则添加vcfjk作为vcfj0的孩子节点,且vcfjk的边权值被赋值为Aed(vcfj0,vcfjk);
②若此时vcfj0已有的孩子节点中存在某个节点vcfpn与它的基因组间的近似编辑距离等于Aed(vcfj0,vcfjk),则找出以vcfpn为根节点的子树,继续操作①②,直到vcfjk找到合适的父亲节点;
(2)完成所有节点的添加后,
Figure FDA00038972258600000610
构建完成。
4.如权利要求1所述的面向基因组数据相似度的高效匹配及隐私保护方法,其特征在于,所述加密遗传BK树的搜索方法具体包括,查询阈值
Figure FDA00038972258600000611
及加密遗传BK树
Figure FDA00038972258600000612
(1)计算E(vcfui)与
Figure FDA00038972258600000613
根节点E(vcfj′0)的对应的基因组间的近似编辑距离Aed(E(vcfj′0),E(vcfui)),若
Figure FDA0003897225860000071
返回根节点;
(2)确定加密遗传BK树
Figure FDA0003897225860000072
下一层的节点搜索范围,即边权值属于范围
Figure FDA0003897225860000073
的所有节点;
(3)对于范围内的所有节点,看作E(vcfj′0),重复(1)(2)操作,直至搜索完整棵加密遗传BK树
Figure FDA0003897225860000074
返回的所有节点的集合即搜索结果。
5.如权利要求4所述的面向基因组数据相似度的高效匹配及隐私保护方法,其特征在于,所述Aed(tv1,tv2)的计算方法具体包括,tv1,tv2代表两个三维向量的集合:
(1)记len1=|tv1|,len2=|tv2|;
(2)按照以下方法更新集合tv1,tv2
①对于集合tv1每一个三维向量,若在tv2中找不到一个向量与其第一维数据相同,则将该向量从tv1中删除;同理,对集合tv2进行处理;
②对于处理后的tv1中的每一个三位向量,若第一维数据是集合中重复出现的数据,且对应的向量在tv2中找不到与其前两位数据一样的向量,则将该向量从tv1中删除;同理,对集合tv2进行处理;
(3)记更新后的集合tv1,tv2为tv1′,tv2′,且|tv1′|=|tv2′|=len;
(4)初始化Aed(tv1,tv2)=len1+len2-2·len;
(5)将集合tv1′,tv2′形式化表示为两个len×3的数组T1,T2
(6)对于所有的0≤i≤len-1,执行以下操作:
①若T1[i][1]≠T2[i][1]且T1[i][2]≠T2[i][2],则在现有Aed(tv1,tv2)的值上加2,即Aed(tv1,tv2)=Aed(tv1,tv2)+2;
②若T1[i][1]≠T2[i][1]且T1[i][2]=T2[i][2],则在现有Aed(tv1,tv2)的值上加1,即Aed(tv1,tv2)=Aed(tv1,tv2)+1;
③若T1[i][1]=T2[i][1]且T1[i][2]≠T2[i][2],则在现有Aed(tv1,tv2)的值上加1,即Aed(tv1,tv2)=Aed(tv1,tv2)+1;
④若T1[i][1]=T2[i][1]且T1[i][2]=T2[i][2],则Aed(tv1,tv2)的值保持不变;
完成所有的比较后,得到最终Aed(tv1,tv2)的值;
(7)tv1,tv2对应的基因组间的近似编辑距离等于最终的Aed(tv1,tv2)值。
6.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行权利要求1~5任意一项所述面向基因组数据相似度的高效匹配及隐私保护方法。
7.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行权利要求1~5任意一项所述面向基因组数据相似度的高效匹配及隐私保护方法。
8.一种实施权利要求1~5任意一项所述面向基因组数据相似度的高效匹配及隐私保护方法的面向基因组数据相似度的高效匹配及隐私保护系统,其特征在于,所述面向基因组数据相似度的高效匹配及隐私保护系统包括:
客户端,用于用户基因组数据信息和身份信息的采集,在目标医疗机构注册,接收到各个医疗机构的系统参数后对基因组数据信息进行加密并生成查询请求,然后发送给云服务器;对云服务器返回的结果进行混淆处理后再发送给对应的医疗机构请求相关患者信息;根据相关患者信息评估用户的健康状况;
医疗机构终端,用于生成系统参数,构建并加密遗传BK树,并且将加密后的遗传BK树发送给云服务器;为用户提供注册服务;为合法的用户检索相似患者的非隐私信息并发送给用户;
云服务器,用于存储各家医疗机构发送过来的加密遗传BK树;接受用户发送的查询请求,在完成加密遗传BK树的搜索后,将基因组匹配查询结果返回给用户。
9.如权利要求8所述的面向基因组数据相似度的高效匹配及隐私保护系统,其特征在于,所述客户端进一步包括:
信息采集模块,包括基因组数据采集子模块、身份信息采集子模块;用于采集用户的个人基因组数据和身份信息,并生成基因组向量和注册信息;
用户安全支持模块,包括请求注册子模块、参数存储子模块、数据转换子模块、加密发送子模块;用于向目标医疗机构终端发送注册请求,在获取系统参数后对个人基因组数据进行转换加密处理并发送给云服务器;
健康状况评估模块,包括扰动处理子模块、聚类分析子模块;用于对真实的标签集进行加扰发送给医疗机构终端,并对返回的患者信息进行分析从而评估用户健康状况;
所述医疗机构终端进一步包括:
参数生成模块,包括安全参数选取子模块、索引矩阵生成子模块;用于生成基因组转换加密所需的系统参数;
注册认证模块,包括用户信息认证子模块、用户信息存储子模块、系统参数发送子模块;用于接收合法用户的注册请求,存储用户身份信息,并将系统参数发送到成功注册的客户端;
医疗机构安全支持模块,包括数据转换子模块、遗传BK树构建子模块、加密发送子模块;用于将医疗机构终端存储的基因组数据库全部转换加密处理后以加密遗传BK树的形式发送给云服务器;
患者信息查询模块,包括患者信息索引子模块;用于将用户请求的相似基因组的患者的非隐私信息发送给用户;
所述云服务器进一步包括
数据存储模块,包括加密遗传BK树存储子模块、用户查询请求接收子模块;用于存储医疗机构终端发送来的加密遗传BK树,并接收客户端发送来的查询请求;
相似基因组匹配模块,包括BK树定位子模块、BK树查询子模块、查询结果发送子模块;用于定位并搜索标签包含在用户查询请求中的加密遗传BK树,并将符合要求的基因组标签返回给相应的客户端。
CN202010834443.6A 2020-08-19 2020-08-19 面向基因组数据相似度的高效匹配及隐私保护方法、系统 Active CN111967048B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010834443.6A CN111967048B (zh) 2020-08-19 2020-08-19 面向基因组数据相似度的高效匹配及隐私保护方法、系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010834443.6A CN111967048B (zh) 2020-08-19 2020-08-19 面向基因组数据相似度的高效匹配及隐私保护方法、系统

Publications (2)

Publication Number Publication Date
CN111967048A CN111967048A (zh) 2020-11-20
CN111967048B true CN111967048B (zh) 2022-11-29

Family

ID=73388429

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010834443.6A Active CN111967048B (zh) 2020-08-19 2020-08-19 面向基因组数据相似度的高效匹配及隐私保护方法、系统

Country Status (1)

Country Link
CN (1) CN111967048B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112614545B (zh) * 2020-12-29 2022-11-01 暨南大学 一种支持多属性匿名认证的基因序列安全比对方法及系统
CN115982503B (zh) * 2023-02-07 2023-10-13 深圳慧梧科技有限公司 一种基于云平台的网站信息采集方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2769322A1 (en) * 2011-10-17 2014-08-27 Intertrust Technologies Corporation Systems and methods for protecting and governing genomic and other information
CN110611567A (zh) * 2019-09-20 2019-12-24 福州大学 基于非确定性有限自动机的隐私保护医学诊疗系统
CN110660450A (zh) * 2019-09-23 2020-01-07 长沙学院 一种基于加密基因组数据的安全计数查询与完整性验证装置和方法
CN110957003A (zh) * 2019-11-20 2020-04-03 河南师范大学 一种面向用户隐私保护的高效基因比对方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2769322A1 (en) * 2011-10-17 2014-08-27 Intertrust Technologies Corporation Systems and methods for protecting and governing genomic and other information
CN110611567A (zh) * 2019-09-20 2019-12-24 福州大学 基于非确定性有限自动机的隐私保护医学诊疗系统
CN110660450A (zh) * 2019-09-23 2020-01-07 长沙学院 一种基于加密基因组数据的安全计数查询与完整性验证装置和方法
CN110957003A (zh) * 2019-11-20 2020-04-03 河南师范大学 一种面向用户隐私保护的高效基因比对方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
一种改进PSI协议的基因数据隐私保护方案;田美金 等;《西安电子科技大学学报》;20200430;第47卷(第4期);第94-101页 *
可信云服务;丁滟等;《计算机学报》;20150131(第01期);第135-151页 *

Also Published As

Publication number Publication date
CN111967048A (zh) 2020-11-20

Similar Documents

Publication Publication Date Title
Huang et al. Genoguard: Protecting genomic data against brute-force attacks
Akgün et al. Privacy preserving processing of genomic data: A survey
US9935765B2 (en) Device, system and method for securing and comparing genomic data
US20160110500A1 (en) Secure and scalable mapping of human sequencing reads on hybrid clouds
WO2014202615A2 (en) Method to manage raw genomic data in a privacy preserving manner in a biobank
CN111967048B (zh) 面向基因组数据相似度的高效匹配及隐私保护方法、系统
Xie et al. Achieving privacy-preserving online diagnosis with outsourced SVM in internet of medical things environment
Giacomelli et al. Privacy-preserving collaborative prediction using random forests
LU100449B1 (en) Improved Computing Device
CN109783667A (zh) 一种图像存储和检索的方法、客户端及系统
Mahdi et al. Privacy-preserving string search on encrypted genomic data using a generalized suffix tree
Deuber et al. My genome belongs to me: controlling third party computation on genomic data
Pedrosa et al. A pseudonymisation protocol with implicit and explicit consent routes for health records in federated ledgers
CN113836447B (zh) 一种云平台下的安全轨迹相似性查询方法及系统
CN113779597A (zh) 加密文档的存储和相似检索方法、装置、设备及介质
CN114254344A (zh) 一种基于区块链的共享数据库的隐私数据范围查询方法
CN110660450A (zh) 一种基于加密基因组数据的安全计数查询与完整性验证装置和方法
Singh et al. Practical personalized genomics in the encrypted domain
Zhu et al. Efficient and privacy-preserving similar patients query scheme over outsourced genomic data
Xu et al. SWMQ: Secure wildcard pattern matching with query
JP2021163381A5 (zh)
Oprisanu et al. How Much Does GenoGuard Really" Guard"? An Empirical Analysis of Long-Term Security for Genomic Data
CN112784309B (zh) 数据安全管理方法、电子设备和存储介质
Zhao et al. A secure alignment algorithm for mapping short reads to human genome
Fernandes Reconciling data privacy with sharing in next-generation genomic workflows

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