CN115102693A - 基于多方安全计算的隐私保护序列nj树构建方法及系统 - Google Patents

基于多方安全计算的隐私保护序列nj树构建方法及系统 Download PDF

Info

Publication number
CN115102693A
CN115102693A CN202210565096.0A CN202210565096A CN115102693A CN 115102693 A CN115102693 A CN 115102693A CN 202210565096 A CN202210565096 A CN 202210565096A CN 115102693 A CN115102693 A CN 115102693A
Authority
CN
China
Prior art keywords
party
distance matrix
share
matrix
secret sharing
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
Application number
CN202210565096.0A
Other languages
English (en)
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.)
Tsinghua University
Original Assignee
Tsinghua 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 Tsinghua University filed Critical Tsinghua University
Priority to CN202210565096.0A priority Critical patent/CN115102693A/zh
Publication of CN115102693A publication Critical patent/CN115102693A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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
    • G16B20/00ICT specially adapted for functional genomics or proteomics, e.g. genotype-phenotype associations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

Landscapes

  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • General Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Medical Informatics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioethics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Analytical Chemistry (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Chemical & Material Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Genetics & Genomics (AREA)
  • Molecular Biology (AREA)
  • Proteomics, Peptides & Aminoacids (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Biotechnology (AREA)
  • Evolutionary Biology (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供基于多方安全计算的隐私保护序列NJ树构建方法及系统,包括:基于对齐的基因序列,第一参与方和第二参与方在明文条件下计算距离矩阵中各自持有序列对应部分;在第一参与方和第二参与方计算完成后,将计算结果通过秘密共享协议将份额分享给对方;根据双方秘密共享的结果,第一参与方和第二参与方在原对齐序列秘密共享条件下联合计算距离矩阵中剩余部分,并通过秘密共享协议输出距离矩阵计算份额给各方;通过得到的距离矩阵计算结果,在双方只持有距离矩阵的份额矩阵条件下进行NJ树构建。本发明解决了现有NJ树构建过程中容易出现基因序列泄露的问题,以实现在NJ树构建过程中对基因序列的隐私保护。

Description

基于多方安全计算的隐私保护序列NJ树构建方法及系统
技术领域
本发明涉及基因工程技术领域,尤其涉及基于多方安全计算的隐私保护序列NJ树构建方法及系统。
背景技术
在基因工程当中,面对众多的基因序列,需要观察相互碱基序列之间的关联度、相似度等信息,比对之后才能进行更深入的研究,目前为了比对碱基序列的关联度,一般通过建立NJ树的形式完成相似度的分析。
NJ树的构建过程是:先假定一棵无根星状树,再两两比较,将亲源近的聚成聚合分类群,然后再将聚合分类群看作一个整体与另外的在进行聚合分类,这样重复下去,直至构出完整的NJ树。但是,在传统构建NJ树过程中,均是在明文条件下进行,难以保证基因序列的安全性和私密性,容易造成基因信息泄露,导致严重后果。
发明内容
本发明提供基于多方安全计算的隐私保护序列NJ树构建方法及系统,用以解决现有NJ树构建过程中容易出现基因序列泄露的问题,以实现在NJ树构建过程中对基因序列的隐私保护。
本发明提供基于多方安全计算的隐私保护序列NJ树构建方法,包括:
基于对齐的基因序列,第一参与方和第二参与方在明文条件下计算距离矩阵中各自持有序列对应部分;
在第一参与方和第二参与方计算完成后,将计算结果通过秘密共享协议将份额分享给对方;
根据双方秘密共享的结果,第一参与方和第二参与方在原对齐序列秘密共享条件下联合计算距离矩阵中剩余部分,并通过秘密共享协议输出距离矩阵计算份额给各方;
通过得到的距离矩阵计算结果,在双方只持有距离矩阵的份额矩阵条件下进行NJ树构建。
根据本发明提供的基于多方安全计算的隐私保护序列NJ树构建方法,所述基于对齐的基因序列,第一参与方和第二参与方在明文条件下计算距离矩阵中各自持有序列对应部分,具体包括:
所述第一参与方在明文条件下计算拥有的m条序列对应的距离矩阵的得分;
所述第二参与方在明文条件下计算拥有的n条序列对应的距离矩阵的得分;
第一参与方和第二参与方单独计算完成后,将计算结果通过秘密共享协议将份额发送给对方。
根据本发明提供的基于多方安全计算的隐私保护序列NJ树构建方法,所述在第一参与方和第二参与方计算完成后,将计算结果通过秘密共享协议将份额分享给对方,具体包括:
在整数秘密共享过程中,第一参与方生成第一随机数,并将第一随机数发送给第二参与方,自己保留序列中扣除第一随机数的剩余部分;
第二参与方生成第二随机数,并将第二随机数发送给第一参与方,自己保留序列中扣除第二随机数的剩余部分。
根据本发明提供的基于多方安全计算的隐私保护序列NJ树构建方法,所述根据双方秘密共享的结果,第一参与方和第二参与方在原对齐序列秘密共享条件下联合计算距离矩阵中剩余部分,并通过秘密共享协议输出距离矩阵计算份额给各方,具体包括:
第一参与方和第二参与方联合计算距离矩阵中剩余部分后,输出整体距离矩阵的秘密份额给各方,针对整体距离矩阵的结果中的每个元素与215做乘积,进行小数表示。
根据本发明提供的基于多方安全计算的隐私保护序列NJ树构建方法,所述通过得到的距离矩阵计算结果,在双方只持有距离矩阵的份额矩阵条件下进行NJ树构建,具体包括:
双方在份额矩阵条件下计算横向差异矩阵,将整体距离矩阵进行标准化处理即可得到横向差异矩阵,且横向差异矩阵计算结果也通过秘密份额形式输出给各方;
双方在只持有横向差异矩阵份额条件下计算选取距离最小的两个节点;
将两个节点连接产生新的节点,并更新新节点到其它未连接节点的距离;
重复以上步骤,双方在秘密共享条件下不断用新的节点连接合并原节点并更新距离,只到所有节点均连接在一起,即完成NJ树构建。
根据本发明提供的基于多方安全计算的隐私保护序列NJ树构建方法,所述将两个节点连接到新的节点上并更新距离。具体包括:
选取的节点为f,g,f,g连接到新的节点u上,则f,g到新节点u距离计算公式为:
Figure BDA0003657623440000031
δ(g,u)=d(f,g)-δ(f,u)。
本发明还提供基于多方安全计算的隐私保护序列NJ树构建系统,所述系统包括:
距离矩阵计算模块,用于基于对齐的基因序列,第一参与方和第二参与方在明文条件下计算距离矩阵中各自持有序列对应部分;
分享模块,用于在第一参与方和第二参与方计算完成后,将计算结果通过秘密共享协议将份额分享给对方;
联合计算模块,根据双方秘密共享的结果,第一参与方和第二参与方在原对齐序列秘密共享条件下联合计算距离矩阵中剩余部分,并通过秘密共享协议输出距离矩阵计算份额给各方;
NJ树构建模块,通过得到的距离矩阵计算结果,在双方只持有距离矩阵的份额矩阵条件下进行NJ树构建。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述基于多方安全计算的隐私保护序列NJ树构建方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述基于多方安全计算的隐私保护序列NJ树构建方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述基于多方安全计算的隐私保护序列NJ树构建方法。
本发明提供的基于多方安全计算的隐私保护序列NJ树构建方法及系统,在第一参与方和第二参与方基因序列对齐后,计算各方的距离矩阵中自持的部分,并通过秘密共享的方式将计算结果分享给对方,避免基因序列发生泄密的情况,再通过联合计算距离矩阵中剩余部分,循环计算,选取最短距离构建NJ树。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的基于多方安全计算的隐私保护序列NJ树构建方法的流程示意图;
图2是本发明提供的基于多方安全计算的隐私保护序列NJ树构建系统的模块连接图;
图3是本发明提供的电子设备的结构示意图。
附图标记:
110:距离矩阵计算模块;120:分享模块;130:联合计算模块;140:NJ树构建模块;310:处理器;320:通信接口;330:存储器;340:通信总线。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合图1描述本发明的一种基于多方安全计算的隐私保护序列NJ树构建方法,包括:
S100、基于对齐的基因序列,第一参与方和第二参与方在明文条件下计算距离矩阵中各自持有序列对应部分;
S200、在第一参与方和第二参与方计算完成后,将计算结果通过秘密共享协议将份额分享给对方;
S300、根据双方秘密共享的结果,第一参与方和第二参与方在原对齐序列秘密共享条件下联合计算距离矩阵中剩余部分,并通过秘密共享协议输出距离矩阵计算份额给各方;
S400、通过得到的距离矩阵计算结果,在双方只持有距离矩阵的份额矩阵条件下进行NJ树构建。
由于第一参与方和第二参与方在计算距离矩阵后,将计算结果秘密共享给对方,再进行联合计算,保证了不会泄露基因序列,提升NJ树构建过程的安全性。
基于对齐的基因序列,第一参与方和第二参与方在明文条件下计算距离矩阵中各自持有序列对应部分,具体包括:
假设第一参方拥有m条序列,第二参与方拥有n条序列,则需联合计算的距离矩阵D为(m+n)×(m+n)维的矩阵矩阵,且距离矩阵D为对称矩阵,矩阵对角线元素均为0,因此只需计算距离矩阵
Figure BDA0003657623440000061
个元素值;
第一参与方在明文条件下计算拥有的m条序列对应的距离矩阵D的得分,需计算距离矩阵D中对应的
Figure BDA0003657623440000062
个元素的值;
第二参与方在明文条件下计算拥有的n条序列对应的距离矩阵D的得分,则需计算距离矩阵D中对应的
Figure BDA0003657623440000063
个元素的值;
第一参与方和第二参与方单独计算完成后,将计算结果通过秘密共享协议将份额发送给对方。
第一参与方计算自己拥有的m条序列的距离矩阵;
对于i=0,…,seq_num_m-1:
对于j=i+1,…,seq_num_m-1:
对于k=0,…,seq_length-1:
Figure BDA0003657623440000064
计算结果秘密共享给第二参与方;
第二参与方计算自己拥有的n条序列的距离矩阵;
对于i=seq_num_m,…,seq_num-1:
对于j=i+1,…,seq_num-1:
对于k=0,…,seq_length-1:
Figure BDA0003657623440000071
计算结果秘密共享给第一参与方;
在第一参与方和第二参与方计算完成后,将计算结果通过秘密共享协议将份额分享给对方,具体包括:
在整数秘密共享过程中,第一参与方生成第一随机数,并将第一随机数发送给第二参与方,自己保留序列中扣除第一随机数的剩余部分;
第二参与方生成第二随机数,并将第二随机数发送给第一参与方,自己保留序列中扣除第二随机数的剩余部分。
第一参与方和第二参与方联合计算距离矩阵的剩余部分。
对于i=0,…,seq_num_m-1:
对于j=seq_num_m,…,seq_num-1:
对于k=0,…,seq_length-1:
Figure BDA0003657623440000072
此部分结果已经是秘密共享的形式。
秘密共享相关基础算法,具体包括:
第一参与方对
Figure BDA0003657623440000073
进行秘密共享的算法:
输入:
Figure BDA0003657623440000074
输出:
Figure BDA0003657623440000075
第一参与方计算随机数
Figure BDA0003657623440000076
并将r发送给第二参与方;
第一参与方将a0设为a-r,第二参与方将a1设为r。
秘密恢复的算法:
输入:
Figure BDA0003657623440000081
输出:
Figure BDA0003657623440000082
第一参与方将a0发送给第二参与方,第二参与方将a1发送给第一参与方;
第一参与方和第二参与方分别计算a=a0+a1
加法:
输入:
Figure BDA0003657623440000083
Figure BDA0003657623440000084
输出:<c>满足c=a+b
第一参与方计算c0=a0+b0
第二参与方计算c1=a1+b1
将该算法记为<a>+<b>
含有一个公共值的加法:
输入:
Figure BDA0003657623440000085
输出:<c>满足c=a+b
第一参与方计算c0=a0+b;
第二参与方计算c1=a1
将该算法记为<a>+b
含有一个公共值的乘法:
输入:
Figure BDA0003657623440000086
输出:<c>满足c=a*b
第一参与方计算c0=a0*b;
第二参与方计算c1=a1*b。
将该算法记为<a>*b,b可以为小数,当b为小数时,输出的<c>满足c=a*b的真实值减去小数部分。
根据双方秘密共享的结果,第一参与方和第二参与方在原对齐序列秘密共享条件下联合计算距离矩阵D中剩余部分,并通过秘密共享协议输出距离矩阵计算份额给各方,具体包括:
第一参与方和第二参与方联合计算距离矩阵D中剩余m×n个元素后,输出整体距离矩阵的秘密份额给各方,输出整体距离矩阵,针对整体距离矩阵的结果中的每个元素与215做乘积,可使用含有一个公共值的乘法,这代表我们使用128bit中的后面15bit来表示小数部分,进行小数表示,提升计算精度。
在距离矩阵算过程中,使用c++中的__int128_t数据类型来表示
Figure BDA0003657623440000091
中的元素,该数据类型长度为128bit。并将
Figure BDA0003657623440000092
的范围表示为-2127~2127-1。
基本变量如下所示:
Figure BDA0003657623440000093
数据(seq_data)存储在一个长度为seq_length*seq_num,类型为__int128_t的数组中。其中,第i条核酸序列的第k个核苷酸表示为数组seq_data中的第i*seq_length+k个元素,i=0,1,…,seq_num;k=0,1,…,seq_length-1,记为seq_data[i*seq_length+k]。
在数据加载阶段会对原始序列进行编码,将符号编码为
Figure BDA0003657623440000094
中的元素,原始序列符号与码字对应关系如下:
符号 编码
A 0
G 1
C 2
T 3
N 4
- 5
将核酸序列按如下方式编号:第一参与方的序列依次编号为0,…,seq_num_m-1,第二参与方的序列依次编号为seq_num_m,…,seq_num-1
判断相等:
Figure BDA0003657623440000101
该算法可以判断两个核苷酸是否相等,若相等则输出e=0,否则e=1,对于
Figure BDA0003657623440000102
使用a[i]表示其二进制下的第i位,a[0]为最低位。可以使用c++中的>>操作符和&操作符来实现二进制位数的提取,例如使用((x)>>(y)&1)来提取x的第y位。
输入:
Figure BDA0003657623440000103
输出:
Figure BDA0003657623440000104
a)计算并输出not(a[2]or b[2]or a=b)。
判断相等:
Figure BDA0003657623440000105
该算法可以判断两个核苷酸是否相等,此时两个核苷酸分属不同的用户,若相等则输出<e>,e=0,否则输出<e>,e=1。
输入:
Figure BDA0003657623440000106
其中第一参与方输入
Figure BDA0003657623440000107
第二参与方输入
Figure BDA0003657623440000108
输出:<e>
a)对于i=0,…,7
第一参与方计算
Figure BDA0003657623440000109
b)第一参与方选取随机数
Figure BDA0003657623440000111
调用1-out-of-8 OT,输入为(s[0]+r,…,s[7]+r),将e0设为-r;
c)第二参与方调用1-out-of-8 OT输入为b,将结果设为e1
通过得到的距离矩阵计算结果,在双方只持有距离矩阵的份额矩阵条件下进行NJ树构建,具体包括:
双方在份额矩阵条件下计算横向差异矩阵,将整体距离矩阵进行标准化处理即可得到横向差异矩阵,且横向差异矩阵计算结果也通过秘密份额形式输出给各方;
双方在只持有横向差异矩阵份额条件下计算选取距离最小的两个节点;
将两个节点连接产生新的节点,并更新新节点到其它未连接节点的距离;
重复以上步骤,双方在秘密共享条件下不断用新的节点连接合并原节点并更新距离,只到所有节点均连接在一起,即完成NJ树构建。
在计算横向差异矩阵时,横向差异矩阵又称为Q矩阵,Q矩阵的计算公式为:
对于i=0,…,seq_num-1,j=i+1,…,seq_num-1
Figure BDA0003657623440000112
其中,n为序列条数seq_num。该部分运算仅仅涉及到加法,以及含有一个公共值的乘法,故在秘密共享形式下,提供输入<d(i,j)>,可以计算得到<Q(i,j)>。
选取两个节点,确定两个节点之间距离的最小值,具体过程为:
计算i0,j0,使得
Q(i0,j0)=min{Q(i,j),i=0,…,seq_num-1,j=i+1,…,seq_num-1}
则选取序号为i0和j0的节点。
令参与比较的元素个数为n,则从n个秘密共享的元素中选取最小元素的序号的算法如下:
输入:<a[0]>,<a[1]>,…,<a[n-1]>
输出:i满足a[i]=min{a[j],j=0,…,n-1}
a)令z=0
b)对于i=1,…,n-1:
i.计算<DReLU(a[i]-a[z])>B并公开,得到DReLU(a[i]-a[z])
判断若DReLU(a[i]-a[z])=0,则更新z=i
将两个节点连接到新的节点上并更新距离,具体过程为:
若选取的节点为f,g,f,g连接到新的节点u上面,则f,g到新节点u距离可使用以下公式计算:
Figure BDA0003657623440000121
δ(g,u)=d(f,g)-δ(f,u)
该部分运算仅仅涉及到加法,以及含有一个公共值的乘法,故提供输入<d(i,j)>,可以计算得到>δ(f,u)>和<δ(g,u)>。
其他节点k到新节点u距离使用以下公式计算:
Figure BDA0003657623440000122
此部分运算仅仅涉及到加法,以及含有一个公共值的乘法,故提供输入<d(i,j)>,可以计算得到<δ(u,k)>。
重复以上步骤,用新的节点u替换合并的节点对f,g,根据计算的最短距离构建NJ树。
本发明提供的基于多方安全计算的隐私保护序列NJ树构建方法,在第一参与方和第二参与方基因序列对齐后,计算各方的距离矩阵中自持的部分,并通过秘密共享的方式将计算结果分享给对方,避免基因序列发生泄密的情况,再通过联合计算距离矩阵中剩余部分,循环计算,选取最短距离构建NJ树。
参考图2,本发明还公开了一种基于多方安全计算的隐私保护序列NJ树构建系统,所述系统包括:
距离矩阵计算模块110,用于基于对齐的基因序列,第一参与方和第二参与方在明文条件下计算距离矩阵中各自持有序列对应部分;
分享模块120,用于在第一参与方和第二参与方计算完成后,将计算结果通过秘密共享协议将份额分享给对方;
联合计算模块130,根据双方秘密共享的结果,第一参与方和第二参与方在原对齐序列秘密共享条件下联合计算距离矩阵中剩余部分,并通过秘密共享协议输出距离矩阵计算份额给各方;
NJ树构建模块140,通过得到的距离矩阵计算结果,在双方只持有距离矩阵的份额矩阵条件下进行NJ树构建。
距离矩阵计算模块110,针对所述第一参与方在明文条件下计算拥有的m条序列对应的距离矩阵的得分;
所述第二参与方在明文条件下计算拥有的n条序列对应的距离矩阵的得分;
第一参与方和第二参与方单独计算完成后,将计算结果通过秘密共享协议将份额发送给对方。
分享模块120在秘密共享过程中,第一参与方计算自己拥有的m条序列的距离矩阵;
对于i=0,…,seq_num_m-1:
对于j=i+1,…,seq_num_m-1:
对于k=0,…,seq_length-1:
Figure BDA0003657623440000131
计算结果秘密共享给第二参与方;
第二参与方计算自己拥有的n条序列的距离矩阵;
对于i=seq_num_m,…,seq_num-1:
对于j=i+1,…,seq_num-1:
对于k=0,…,seq_length-1:
Figure BDA0003657623440000141
计算结果秘密共享给第一参与方;
在第一参与方和第二参与方计算完成后,将计算结果通过秘密共享协议将份额分享给对方,具体包括:
在整数秘密共享过程中,第一参与方生成第一随机数,并将第一随机数发送给第二参与方,自己保留序列中扣除第一随机数的剩余部分;
第二参与方生成第二随机数,并将第二随机数发送给第一参与方,自己保留序列中扣除第二随机数的剩余部分。
第一参与方和第二参与方联合计算距离矩阵的剩余部分。
对于i=0,…,seq_num_m-1:
对于j=seq_num_m,…,seq_num-1:
对于k=0,…,seq_length-1:
Figure BDA0003657623440000142
此部分结果已经是秘密共享的形式。
通过秘密共享的形式实现第一参与方和第二参与方的基因序列的在构建NJ树过程中的隐私安全性。
联合计算模块,第一参与方生成第一随机数,并将第一随机数发送给第二参与方,自己保留序列中扣除第一随机数的剩余部分;
第二参与方生成第二随机数,并将第二随机数发送给第一参与方,自己保留序列中扣除第二随机数的剩余部分。
通过得到的距离矩阵计算结果,在双方只持有距离矩阵的份额矩阵条件下进行NJ树构建,具体包括:
双方在份额矩阵条件下计算横向差异矩阵,将整体距离矩阵进行标准化处理即可得到横向差异矩阵,且横向差异矩阵计算结果也通过秘密份额形式输出给各方;
双方在只持有横向差异矩阵份额条件下计算选取距离最小的两个节点;
将两个节点连接产生新的节点,并更新新节点到其它未连接节点的距离;
重复以上步骤,双方在秘密共享条件下不断用新的节点连接合并原节点并更新距离,只到所有节点均连接在一起,即完成NJ树构建。
在计算横向差异矩阵时,横向差异矩阵又称为Q矩阵,Q矩阵的计算公式为:
对于i=0,…,seq_num-1,j=i+1,…,seq_num-1
Figure BDA0003657623440000151
其中,n为序列条数seq_num。该部分运算仅仅涉及到加法,以及含有一个公共值的乘法,故在秘密共享形式下,提供输入<d(i,j)>,可以计算得到<Q(i,j)>。
选取两个节点,确定两个节点之间距离的最小值,具体过程为:
计算i0,j0,使得
Q(i0,j0)=min{Q(i,j),i=0,…,seq_num-1,j=i+1,…,seq_num-1}
则选取序号为i0和j0的节点。
令参与比较的元素个数为n,则从n个秘密共享的元素中选取最小元素的序号的算法如下:
输入:<a[0]>,<a[1]>,…,<a[n-1]>
输出:i满足a[i]=min{a[j],j=0,…,n-1}
c)令z=0
d)对于i=1,…,n-1:
ii.计算<DReLU(a[i]-a[z])>B并公开,得到DReLU(a[i]-a[z])
判断若DReLU(a[i]-a[z])=0,则更新z=i
将两个节点连接到新的节点上并更新距离,具体过程为:
若选取的节点为f,g,f,g连接到新的节点u上面,则f,g到新节点u距离可使用以下公式计算:
Figure BDA0003657623440000161
δ(g,u)=d(f,g)-δ(f,u)
该部分运算仅仅涉及到加法,以及含有一个公共值的乘法,故提供输入<d(i,j)>,可以计算得到<δ(f,u)>和<δ(g,u)>。
其他节点k到新节点u距离使用以下公式计算:
Figure BDA0003657623440000162
此部分运算仅仅涉及到加法,以及含有一个公共值的乘法,故提供输入<d(i,j)>,可以计算得到<δ(u,k)>。
重复以上步骤,用新的节点u替换合并的节点对f,g,根据计算的最短距离构建NJ树。
构建完成NJ树之后,实现两条基因序列之间的关联度分析比对,判断是否接近,辅助完成后续处理工作。
图3示例了一种电子设备的实体结构示意图,如图3所示,该电子设备可以包括:处理器(processor)310、通信接口(Communications Interface)320、存储器(memory)330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。处理器310可以调用存储器330中的逻辑指令,以执行基于多方安全计算的隐私保护序列NJ树构建方法,该方法包括:基于对齐的基因序列,第一参与方和第二参与方在明文条件下计算距离矩阵中各自持有序列对应部分;
在第一参与方和第二参与方计算完成后,将计算结果通过秘密共享协议将份额分享给对方;
根据双方秘密共享的结果,第一参与方和第二参与方在原对齐序列秘密共享条件下联合计算距离矩阵中剩余部分,并通过秘密共享协议输出距离矩阵计算份额给各方;
通过得到的距离矩阵计算结果,在双方只持有距离矩阵的份额矩阵条件下进行NJ树构建。
此外,上述的存储器330中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的基于多方安全计算的隐私保护序列NJ树构建方法,该方法包括:基于对齐的基因序列,第一参与方和第二参与方在明文条件下计算距离矩阵中各自持有序列对应部分;
在第一参与方和第二参与方计算完成后,将计算结果通过秘密共享协议将份额分享给对方;
根据双方秘密共享的结果,第一参与方和第二参与方在原对齐序列秘密共享条件下联合计算距离矩阵中剩余部分,并通过秘密共享协议输出距离矩阵计算份额给各方;
通过得到的距离矩阵计算结果,在双方只持有距离矩阵的份额矩阵条件下进行NJ树构建。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的基于多方安全计算的隐私保护序列NJ树构建方法,该方法包括:基于对齐的基因序列,第一参与方和第二参与方在明文条件下计算距离矩阵中各自持有序列对应部分;
在第一参与方和第二参与方计算完成后,将计算结果通过秘密共享协议将份额分享给对方;
根据双方秘密共享的结果,第一参与方和第二参与方在原对齐序列秘密共享条件下联合计算距离矩阵中剩余部分,并通过秘密共享协议输出距离矩阵计算份额给各方;
通过得到的距离矩阵计算结果,在双方只持有距离矩阵的份额矩阵条件下进行NJ树构建。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.基于多方安全计算的隐私保护序列NJ树构建方法,其特征在于,包括:
基于对齐的基因序列,第一参与方和第二参与方在明文条件下计算距离矩阵中各自持有序列对应部分;
在第一参与方和第二参与方计算完成后,将计算结果通过秘密共享协议将份额分享给对方;
根据双方秘密共享的结果,第一参与方和第二参与方在原对齐序列秘密共享条件下联合计算距离矩阵中剩余部分,并通过秘密共享协议输出距离矩阵计算份额给各方;
通过得到的距离矩阵计算结果,在双方只持有距离矩阵的份额矩阵条件下进行NJ树构建。
2.根据权利要求1所述的基于多方安全计算的隐私保护序列NJ树构建方法,其特征在于,所述基于对齐的基因序列,第一参与方和第二参与方在明文条件下计算距离矩阵中各自持有序列对应部分,具体包括:
所述第一参与方在明文条件下计算拥有的m条序列对应的距离矩阵的得分;
所述第二参与方在明文条件下计算拥有的n条序列对应的距离矩阵的得分;
第一参与方和第二参与方单独计算完成后,将计算结果通过秘密共享协议将份额发送给对方。
3.根据权利要求1所述的基于多方安全计算的隐私保护序列NJ树构建方法,其特征在于,所述在第一参与方和第二参与方计算完成后,将计算结果通过秘密共享协议将份额分享给对方,具体包括:
在整数秘密共享过程中,第一参与方生成第一随机数,并将第一随机数发送给第二参与方,自己保留序列中扣除第一随机数的剩余部分;
第二参与方生成第二随机数,并将第二随机数发送给第一参与方,自己保留序列中扣除第二随机数的剩余部分。
4.根据权利要求1所述的基于多方安全计算的隐私保护序列NJ树构建方法,其特征在于,所述根据双方秘密共享的结果,第一参与方和第二参与方在原对齐序列秘密共享条件下联合计算距离矩阵中剩余部分,并通过秘密共享协议输出距离矩阵计算份额给各方,具体包括:
第一参与方和第二参与方联合计算距离矩阵中剩余部分后,输出整体距离矩阵的秘密份额给各方,针对整体距离矩阵的结果中的每个元素与215做乘积,进行小数表示。
5.根据权利要求1所述的基于多方安全计算的隐私保护序列NJ树构建方法,其特征在于,所述通过得到的距离矩阵计算结果,在双方只持有距离矩阵的份额矩阵条件下进行NJ树构建,具体包括:
双方在份额矩阵条件下计算横向差异矩阵,将整体距离矩阵进行标准化处理即可得到横向差异矩阵,且横向差异矩阵计算结果也通过秘密份额形式输出给各方;
双方在只持有横向差异矩阵份额条件下计算选取距离最小的两个节点;
将两个节点连接产生新的节点,并更新新节点到其它未连接节点的距离;
重复以上步骤,双方在秘密共享条件下不断用新的节点连接合并原节点并更新距离,只到所有节点均连接在一起,即完成NJ树构建。
6.根据权利要求5所述的基于多方安全计算的隐私保护序列NJ树构建方法,其特征在于,所述将两个节点连接到新的节点上并更新距离。具体包括:
选取的节点为f,g,f,g连接到新的节点u上,则f,g到新节点u距离计算公式为:
Figure FDA0003657623430000031
δ(g,u)=d(f,g)-δ(f,u)。
7.一种基于多方安全计算的隐私保护序列NJ树构建系统,其特征在于,所述系统包括:
距离矩阵计算模块,用于基于对齐的基因序列,第一参与方和第二参与方在明文条件下计算距离矩阵中各自持有序列对应部分;
分享模块,用于在第一参与方和第二参与方计算完成后,将计算结果通过秘密共享协议将份额分享给对方;
联合计算模块,根据双方秘密共享的结果,第一参与方和第二参与方在原对齐序列秘密共享条件下联合计算距离矩阵中剩余部分,并通过秘密共享协议输出距离矩阵计算份额给各方;
NJ树构建模块,通过得到的距离矩阵计算结果,在双方只持有距离矩阵的份额矩阵条件下进行NJ树构建。
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述基于多方安全计算的隐私保护序列NJ树构建方法。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述基于多方安全计算的隐私保护序列NJ树构建方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述基于多方安全计算的隐私保护序列NJ树构建方法。
CN202210565096.0A 2022-05-23 2022-05-23 基于多方安全计算的隐私保护序列nj树构建方法及系统 Pending CN115102693A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210565096.0A CN115102693A (zh) 2022-05-23 2022-05-23 基于多方安全计算的隐私保护序列nj树构建方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210565096.0A CN115102693A (zh) 2022-05-23 2022-05-23 基于多方安全计算的隐私保护序列nj树构建方法及系统

Publications (1)

Publication Number Publication Date
CN115102693A true CN115102693A (zh) 2022-09-23

Family

ID=83288613

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210565096.0A Pending CN115102693A (zh) 2022-05-23 2022-05-23 基于多方安全计算的隐私保护序列nj树构建方法及系统

Country Status (1)

Country Link
CN (1) CN115102693A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115941181A (zh) * 2023-02-02 2023-04-07 华控清交信息科技(北京)有限公司 一种乱序秘密分享方法、系统和可读存储介质
CN116383848A (zh) * 2023-04-04 2023-07-04 北京航空航天大学 一种三方安全计算防作恶方法、设备及介质
CN116417072A (zh) * 2023-03-10 2023-07-11 广州芳禾数据有限公司 基于安全多方计算的敏感数据安全关联分析方法及装置
CN116743376A (zh) * 2023-07-28 2023-09-12 浙江大学 基于高效密文混淆技术的多方秘密分享数据隐私比较方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115941181A (zh) * 2023-02-02 2023-04-07 华控清交信息科技(北京)有限公司 一种乱序秘密分享方法、系统和可读存储介质
CN116417072A (zh) * 2023-03-10 2023-07-11 广州芳禾数据有限公司 基于安全多方计算的敏感数据安全关联分析方法及装置
CN116417072B (zh) * 2023-03-10 2024-01-30 广州芳禾数据有限公司 基于安全多方计算的敏感数据安全关联分析方法及装置
CN116383848A (zh) * 2023-04-04 2023-07-04 北京航空航天大学 一种三方安全计算防作恶方法、设备及介质
CN116383848B (zh) * 2023-04-04 2023-11-28 北京航空航天大学 一种三方安全计算防作恶方法、设备及介质
CN116743376A (zh) * 2023-07-28 2023-09-12 浙江大学 基于高效密文混淆技术的多方秘密分享数据隐私比较方法

Similar Documents

Publication Publication Date Title
CN115102693A (zh) 基于多方安全计算的隐私保护序列nj树构建方法及系统
Lou et al. High-throughput DNA sequencing errors are reduced by orders of magnitude using circle sequencing
JP6988807B2 (ja) 秘密計算システム、秘密計算方法、秘密計算装置および秘密計算プログラム
CN111475854A (zh) 保护两方数据隐私的协同计算方法及系统
CN111125736A (zh) 基于隐私保护交集计算协议的致病基因检测方法
CN111026359B (zh) 多方联合判定隐私数据的数值范围的方法和装置
US20220014355A1 (en) Oblivious Comparisons and Quicksort of Secret Shared Arithmetic Values in a Multi-Party Computing Setting
CN113098687B (zh) 生成安全计算协议的数据元组的方法及装置
CN112765616A (zh) 多方安全计算方法、装置、电子设备和存储介质
CN111857649B (zh) 一种用于隐私保护机器学习的定点数编码及运算系统
CN112052954B (zh) 梯度提升树建模方法、装置以及终端
CN116248266B (zh) 基于秘密分享的安全多方计算方法及系统
GB2589237A (en) Machine learning (ML) modeling by DNA computing
CN112560107B (zh) 针对隐私数据进行处理的方法和装置
CN111737757A (zh) 针对隐私数据进行安全运算的方法和装置
CN115865311B (zh) 一种恒定轮次安全多方计算协议的优化方法和系统
Raj et al. An survey on DNA based cryptography
US20240106654A1 (en) Secure computation system, secure computation server apparatus, secure computation method, and secure computation program
CN107294705B (zh) 一种密钥生成和验证的方法、设备及系统
CN112887509A (zh) 一种基于多混沌系统的融合加密方法
CN110957003B (zh) 一种面向用户隐私保护的高效基因比对方法
CN116388954B (zh) 通用密态数据安全计算方法
CN114742233B (zh) 联合训练逻辑回归模型的方法及装置
CN110222092B (zh) 一种基于差分隐私保护技术的多方统计查询方法
CN114996449B (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