序列数据相似度计算方法、系统、存储介质和电子设备与流程

文档序号:30091975发布日期:2022-05-18 09:22阅读:265来源:国知局
序列数据相似度计算方法、系统、存储介质和电子设备与流程

1.本发明涉及信息安全技术领域,具体涉及一种序列数据相似度计算方法、一种序列数据相似度计算系统、一种计算机可读存储介质和一种电子设备。


背景技术:

2.序列数据(如蛋白质序列、dna/rna序列等)相似度比对是一种常用的序列相似度计算方法,相似度是一个数值,反映两条序列的相似程度。该方法在生物学分析中有极为广泛的应用,是多种生物学分析的基础步骤。
3.随着人们对数据隐私保护的重视,尤其是基因数据相关法律法规的发展,在进行序列相似度计算时,序列数据在一定情况下不便于直接共享,因此会采用隐私保护技术。目前,常用的隐私保护技术有差分隐私、同态加密,但是同态加密效率太低,差分隐私不能保护推理阶段的隐私,而如果要扩展到多个参与方联合计算的场景,同态加密将需要产生联合公钥,加解密需要各方同时在线,计算开销会很大。


技术实现要素:

4.本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的第一个目的在于提出一种序列数据相似度计算方法,该方法通过安全多方计算算法实现了各参与方序列数据相似度的准确计算,保证了各个参与方序列数据的隐私性和机密性。
5.本发明的第二个目的在于提出序列数据相似度计算系统。
6.本发明的第三个目的在于提出一种计算机可读存储介质。
7.本发明的第四个目的在于提出一种电子设备。
8.为达到上述目的,本发明第一方面实施例提出了一种序列数据相似度计算方法,包括以下步骤:多个计算节点获取各自对应参与方提交的序列数据;各计算节点对各序列数据进行数据片段划分,得到各序列数据的数据片段;任意两个计算节点之间利用安全多方计算算法,根据各自的数据片段得到对应两数据片段的重合度;根据所述重合度得到对应两序列数据的相似度。
9.根据本发明实施例的序列数据相似度计算方法,通过安全多方计算算法使得多个参与方可以在不直接共享数据的情况下联合计算序列相似度,并实现了各参与方序列数据相似度的准确计算,保证了各个参与方序列数据的隐私性和机密性。
10.在本发明的一个示例中,计算节点在对序列数据进行数据片段划分之前,所述计算方法还包括:所述计算节点检测所述序列数据是否被加密;如果所述序列数据被加密,则所述计算节点获取对应的私钥;利用所述私钥对所述序列数据的密文密钥进行解密,得到明文密钥,其中,所述密文密钥由所述计算节点的公钥加密得到;利用所述明文密钥对所述序列数据进行解密,得到明文序列数据。
11.在本发明的一个示例中,所述计算方法还包括:获取参与方提交的相似度阈值;根据所述相似度阈值向所述参与方展示序列数据信息。
12.在本发明的一个示例中,所述根据所述相似度阈值向所述参与方展示序列数据信息,包括:获取对应所述参与方的所有相似度,记为第一信息;从所述第一信息中确定大于或等于所述相似度阈值的相似度,记为第二信息;获取所述第二信息中各相似度对应的序列数据的序列数据信息,并向所述参与方展示。
13.在本发明的一个示例中,根据如下公式计算相似度:其中,d
ij
为所述相似度,t
ij
为序列数据i与序列数据j中相同数据片段的数量,t
ii
为序列数据i中数据片段的数量,t
jj
为序列数据j中数据片段的数量。
14.在本发明的一个示例中,所述参与方通过web界面提交序列数据和相似度阈值,以及选择计算节点。
15.为达到上述目的,本发明第二方面实施例提出了一种序列数据相似度计算系统,包括多个客户终端和多个计算节点,所述多个客户终端和所述多个计算节点一一对应设置,其中,所述客户终端,用于参与方提交序列数据和选择计算节点,并将提交的序列数据发送至所选择的计算节点;所述计算节点,用于对接收到的序列数据进行数据片段划分,得到对应的数据片段,并与其它计算节点之间利用安全多方计算算法,根据各自的数据片段得到对应两数据片段的重合度,以及将所述重合度发送至对应的客户终端;所述客户终端,还用于根据所述重合度得到所述序列数据与其他序列数据的相似度。
16.根据本发明实施例的序列数据相似度计算系统,通过安全多方计算算法使得多个参与方可以在不直接共享数据的情况下联合计算序列相似度,并实现了各参与方序列数据相似度的准确计算,保证了各个参与方序列数据的隐私性和机密性。
17.在本发明的一个示例中,所述客户终端与对应的计算节点之间通过远程过程调用rpc或应用程序编程接口api与所述客户终端通信连接。
18.为达到上述目的,本发明第三方面实施例提出了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现上述所述的基于隐私保护的序列数据相似度计算方法。
19.根据本发明实施例的计算机可读存储介质,其上存储的计算机程序被处理器执行时可实现各参与方序列数据相似度的准确计算,保证各个参与方序列数据的隐私性和机密性。
20.为达到上述目的,本发明第四方面实施例提出了一种电子设备,包括存储器、处理器及存储在所述存储器上的计算机程序,所述计算机程序被处理器执行时,实现上述所述的基于隐私保护的序列数据相似度计算方法。
21.根据本发明实施例的电子设备,其上存储器存储的计算机程序被处理器执行时可实现各参与方序列数据相似度的准确计算,保证各个参与方序列数据的隐私性和机密性。
22.本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
23.图1为根据本发明一个实施例的序列数据相似度计算方法的流程图;
24.图2为根据本发明一个实施例的序列数据相似度计算系统的结构框图。
具体实施方式
25.下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
26.下面参考附图1-2描述本发明实施例的序列数据相似度计算方法、系统、存储介质和电子设备。
27.图1为根据本发明一个实施例的序列数据相似度计算方法的流程图。如图1所示,该序列数据相似度计算方法包括以下步骤:
28.s101,多个计算节点获取各自对应参与方提交的序列数据。
29.具体地,参与方可为多个,例如参与方包括参与方a、参与方b和参与方c,当然还可以包括更多个参与方。多个参与方可通过web(world wide web,全球广域网)客户端的web界面选择信任的mpc(secure multi-party computation,安全多方计算)计算节点,并与之进行一一对应设置。
30.其中,mpc计算节点与参与方可通过远程过程调用rpc或应用程序编程接口api与web客户端建立通信连接。mpc计算节点可通过建立的连接方式从与之对应设置的web客户端获取参与方提交的待比对的序列数据,如基因序列。
31.s102,各计算节点对各序列数据进行数据片段划分,得到各序列数据的数据片段。
32.具体地,以两个参与方为例,如参与方a和参与方b,参与方a对应的计算节点为mpca,参与方b对应的计算节点为mpcb,mpca从参与方a获取的序列数据为s1,mpcb从参与方b获取的序列数据为s2。mpca和mpcb可按照相同的数据片段长度t分别对s1和s2进行数据片段划分,其中t为变量,可取不同的整数值,并且当数据片段长度为不同值时,可通过序号标识对不同的数据段长度进行标识。
33.作为一个示例,当数据片段长度t=2时,可给予该数据片段长度一个标识如index1,当数据片段长度t=3时,可给予该数据片段长度另一个标识如inde2。以序列数据s1为abcdcd,序列数据s2为abdccd为例,当数据片段长度t=2时,mpca和mpcb可按照该数据片段长度t分别对s1和s2进行数据片段划分,得到s1对应的数据片段ab、bc、cd、dc、cd,s2对应的数据片段ab、bd、dc、cc、cd;当数据片段长度t=3时,mpca和mpcb可按照该数据片段长度t分别对s1和s2进行数据片段划分,得到s1对应的数据片段abc、bcd、cdc、dcd,s2对应的数据片段abd、bdc、dcc、ccd。
34.在本发明的一个实施例中,计算节点在对序列数据进行数据片段划分之前,计算方法还包括计算节点检测序列数据是否被加密;如果序列数据被加密,则计算节点获取对应的私钥;利用私钥对序列数据的密文密钥进行解密,得到明文密钥,其中,密文密钥由计算节点的公钥加密得到;利用明文密钥对序列数据进行解密,得到明文序列数据。
35.具体地,参与方在提交数据时,可选择明文提交方式或者密文提交的方式。其中,明文提交方式为参与方直接将明文数据进行提交的方式。密文提交方式为web客户端在通过前端程序获取参与方提交的明文数据后,对其进行明文密钥加密形成加密的序列数据,然后将其传输到参与方选择的mpc计算节点,其中明文密钥为参与方在进行序列数据提交时通过web界面输入的密文密钥。同时,web客户端还获取mpc计算节点的公钥,并通过该公钥对参与方输入的明文密钥进行加密,然后将其传输至mpc计算节点。
36.进一步地,mpc计算节点在接收到加密的序列数据后,通过与上述公钥对应的私钥对序列数据的密文密钥进行解密,得到明文密钥,然后通过该明文密钥对加密的序列数据进行解密,得到明文序列数据。
37.s103,任意两个计算节点之间利用安全多方计算算法,根据各自的数据片段得到对应两数据片段的重合度。
38.具体地,各个mpc计算节点可调用安全多方计算程序对由相同数据片段长度划分的数据片段进行比较。以两个参与方为例,如参与方a、参与方b,参与方a、参与方b分别与计算节点mpca、mpcb一一对应设置。mpca、mpcb可按照相同的数据片段长度t(如t=2)分别将各自接收的序列数据划分为多个数据片段,例如mpca将其接收的序列数据划分为m1个数据片段,具体为a1、a2、a3
……
,mpcb将其接收的序列数据划分为n1个数据片段,具体为b1、b2、b3
……

39.进一步地,mpca计算节点可将其划分的数据片段依次与其它计算节点划分的数据片段进行一一比对,以得到两数据片段的重合度。具体地,mpca计算节点依次将a1与mpcb计算节点划分的数据片段b1、b2、b3
……
进行比较,如a1与其中一个数据片段如b1相同时,重合度计为1,然后将a2再依次与b1、b2、b3
……
进行比较,如a2与其中一个数据片段相同时,将重合度加1,如果a2与其中任意一个数据片段都不同时,mpca计算节点则跳入下一个数据片段的比对,此时重合度值不变,直至下一个数据片段与mpcb计算节点划分的任一数据片段相同时,继续累加重合度的值。当mpca计算节点划分的任一片段与mpcb计算节点划分的任一数据片段比对结束,则表明两条序列数据比对完成。需要说明的是,如果同一个序列数据的数据片段存在重合,则可先统计该序列数据中重合的数据片段数量,再统计其他序列数据中与该数据片段重合的数据片段数量,两者取小,作为该数据片段的重合度。
40.为便于理解,以上述s1对应的数据片段ab、bc、cd、dc、cd,s2对应的数据片段ab、bd、dc、cc、cd为例,s1中的数据片段ab在s2中有一个数据片段与其重复,记重合度为1;s1中的数据片段bc在s2中无数据片段与其重复,记重合度为1+0;s1中的数据片段cd有两个,在s2中有一个数据片段与其重复,取小并记重合度为1+0+1;s1中的数据片段dc在s2中有一个数据片段与其重复,记重合度为1+0+1+1。由此,得到序列数据s1、s2的数据片段的重合度为3。
41.在该实施例中,mpc计算节点如mpca和mpcb在进行序列数据比对时,可采用加密比对方式,以保证数据比对的安全。具体地,mpca和mpcb可同时调用安全多方计算程序对各自序列数据的数据进行加密比对。mpca和mpcb可使用aby加密框架的布尔电路进行加密计算。例如先对aby电路进行初始化,然后将明文数据转换为密文数据,再执行加密电路,最后输出密文比对结果。
42.s104,根据重合度得到对应两序列数据的相似度。
43.具体地,各个计算节点可基于密文比对结果恢复出明文比对结果,以得到序列之间数据片段重合度,例如mpca节点可获取与参与方b和参与方c的序列数据重合度,并将重合度提交给web客户端。web客户端根据重合度得到对应两序列数据的相似度。
44.由此,本发明实现了对序列数据的相似度计算、比对和保密传输,且可靠性高、实用性、保密性和准确性好。
45.在本发明的一个实施例中,上述计算方法还包括获取参与方提交的相似度阈值;
根据相似度阈值向参与方展示序列数据信息。
46.具体地,参与方通过web客户端界面提交序列数据和选择计算节点外,还可提交其它任务参数,例如相似度阈值。
47.其中,根据相似度阈值向参与方展示序列数据信息包括获取对应参与方的所有相似度,记为第一信息;从第一信息中确定大于或等于相似度阈值的相似度,记为第二信息;获取第二信息中各相似度对应的序列数据的序列数据信息,并向参与方展示。
48.作为一个示例,假设参与方有3个分别为参与方a、参与方b和参与方c,其分别对应的待比对序列数据为s1、s2和s3,参与方a、参与方b和参与方c对应的计算节点分别为mpca、mpcb和mpcc。web客户端获取到mpca计算节点发送的s1和s2的重合度w1以及s1和s3的重合度w2。然后web客户端根据w1和w2分别计算出s1和s2的相似度x1,以及s1和s3的相似度x2,并记为第一信息。再根据参与方a相对于mpca计算节点设置的相似度阈值进行比较以获取第二信息。例如x2大于相似度阈值,则将x2记为第二信息,并将x2所对应的s3序列数据作为满足相似度阈值的序列数据,并将其通过web客户端界面向参与方a展示。需要说明的是,不同参与方可根据各自需求设置不同的相似度阈值。
49.在本发明的一个实施例中,可根据如下公式计算相似度:
[0050][0051]
其中,d
ij
为所述相似度,t
ij
为序列数据i与序列数据j中相同数据片段的数量,t
ii
为序列数据i中数据片段的数量,t
jj
为序列数据j中数据片段的数量。
[0052]
具体地,web客户端可根据获取的重合度和计算节点向web客户端返回的各个序列数据按照相同数据片段长度划分的数据片段数量的最小值计算得到相似度。
[0053]
作为一个示例,参与方a对应的序列数据s1和参与方b对应的序列数s2重合度为w1,s1和s2按照相同数据片段长度如t=2分别划分为m和n个数据片段,其中m<n,则web客户端计算出s2与s1的相似度为w1/m。
[0054]
在本发明的一个实施例中,实际使用过程中,当出现相似度接近0值较多时,可采用经验公式进行校正。
[0055]
根据本发明实施例的序列数据相似度计算方法,通过安全多方计算算法使得多个参与方可以在不直接共享数据的情况下联合计算序列相似度,并实现了各参与方序列数据相似度的准确计算,保证了各个参与方序列数据的隐私性和机密性。同时,通过对序列数据进行分片划分统计,以计算相似度,无需对序列数据中的每个数据进行一一对比,可提高相似度的计算效率。
[0056]
图2为根据本发明一个实施例的序列数据相似度计算系统的结构框图。参考图2所示,序列数据相似度计算系统100包括多个客户终端如客户终端101和客户终端102和多个计算节点如计算节点103和计算节点104,多个客户终端和多个计算节点一一对应设置。例如,客户终端101与计算节点103对应设置,客户终端102与计算节点104对应设置。
[0057]
其中,客户终端用于参与方提交序列数据和选择计算节点,并将提交的序列数据发送至所选择的计算节点。计算节点用于对接收到的序列数据进行数据片段划分,得到对应的数据片段,并与其它计算节点之间利用安全多方计算算法,根据各自的数据片段得到对应两数据片段的重合度,以及将重合度发送至对应的客户终端。客户终端还用于根据重
合度得到序列数据与其他序列数据的相似度。
[0058]
在本发明的一个实施例中,客户终端与对应的计算节点之间通过远程过程调用rpc或应用程序编程接口api与所述客户终端通信连接。
[0059]
需要说明的是本发明实施例中的序列数据相似度计算系统的实施方式可参见上述序列数据相似度计算方法的实施方式,此处不再具体赘述。
[0060]
根据本发明实施例的序列数据相似度计算系统,通过安全多方计算算法使得多个参与方可以在不直接共享数据的情况下联合计算序列相似度,并实现了各参与方序列数据相似度的准确计算,保证了各个参与方序列数据的隐私性和机密性。
[0061]
进一步地,本发明还提出了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现上述所述的基于隐私保护的序列数据相似度计算方法。
[0062]
根据本发明实施例的计算机可读存储介质,其上存储的计算机程序被处理器执行时可实现各参与方序列数据相似度的准确计算,保证各个参与方序列数据的隐私性和机密性。
[0063]
进一步地,本发明还提出了一种电子设备,包括存储器、处理器及存储在所述存储器上的计算机程序,所述计算机程序被处理器执行时,实现上述所述的基于隐私保护的序列数据相似度计算方法。
[0064]
根据本发明实施例的电子设备,其上存储器存储的计算机程序被处理器执行时可实现各参与方序列数据相似度的准确计算,保证各个参与方序列数据的隐私性和机密性。
[0065]
需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0066]
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
[0067]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示
例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0068]
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
[0069]
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0070]
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
[0071]
在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
[0072]
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1