CN110321722B - Dna序列相似率安全计算方法及系统 - Google Patents

Dna序列相似率安全计算方法及系统 Download PDF

Info

Publication number
CN110321722B
CN110321722B CN201910609488.0A CN201910609488A CN110321722B CN 110321722 B CN110321722 B CN 110321722B CN 201910609488 A CN201910609488 A CN 201910609488A CN 110321722 B CN110321722 B CN 110321722B
Authority
CN
China
Prior art keywords
cloud server
dna sequence
similarity
encrypted
calculated
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
CN201910609488.0A
Other languages
English (en)
Other versions
CN110321722A (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.)
Hangzhou Liang'an Technology Co ltd
Original Assignee
University of Jinan
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 University of Jinan filed Critical University of Jinan
Priority to CN201910609488.0A priority Critical patent/CN110321722B/zh
Publication of CN110321722A publication Critical patent/CN110321722A/zh
Application granted granted Critical
Publication of CN110321722B publication Critical patent/CN110321722B/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

Abstract

本公开公开了DNA序列相似率安全计算方法及系统,每个客户端获取待计算相似率的DNA序列;每个客户端利用自身的公钥对获取的待计算相似率的DNA序列进行加密处理,得到加密的待计算相似率的DNA序列;每个客户端将加密的待计算相似率的DNA序列发送给云服务器C;云服务器C将所有客户端的公钥进行累乘,生成公共公钥PK;云服务器C和云服务器S将加密的待计算相似率的DNA序列转换为通过公共公钥PK加密的密文,得到重新加密的待计算相似率的DNA序列;从云服务器C和云服务器S中分别选取重新加密的待计算相似率的DNA序列,对重新加密的待计算相似率的DNA序列进行同态加密运算,得到DNA序列相似率。

Description

DNA序列相似率安全计算方法及系统
技术领域
本公开涉及DNA序列相似率安全计算技术领域,特别是涉及DNA序列相似率安全计算方法及系统。
背景技术
本部分的陈述仅仅是提到了与本公开相关的背景技术,并不必然构成现有技术。
在实现本公开的过程中,发明人发现现有技术中存在以下技术问题:
众所周知,云计算已经成为计算机领域最令人关注的话题之一,也是目前互联网大型企业关注的重要领域。用户仅需将数据上传至云端,数据即可在云端进行存储和计算,节省了用户的个人存储空间,也降低了对个人计算机计算速度的要求。云计算引发了新技术的变革,也触发了新的互联网服务模式。
但是,云计算存在十分严重的安全问题:由于应用程序的设计存在的缺陷或其他安全漏洞导致的数据泄密、由恶意攻击导致的数据丢失、不安全的接口所加剧的安全泄密问题、恶意内部人士利用自身便利访问存储在云端的私密信息等。云计算的安全问题使得人们对网络安全格外关心。
不考虑安全的前提,在多用户之间DNA序列比对的场景中,现有的比对技术大体有用户之间直接比对、借助可信第三方进行比对,以及借助不完全可信第三方进行比对。
借助可信第三方的比对,是一个现在环境下大多数同类型应用普遍采用的方案。但这个方案仍有一些不足之处,大体有以下:
1.用户数据全部明文存储。因为信任可信第三方,所以最快捷的方法,就是把明文DNA数据托管给可信平台,委托这些平台负责处理不同用户选择、比对等底层操作。但这也意味着,用户数据的使用权完全掌握在了可信平台的手里。
2.过于依赖第三方的可信度与自觉程度。第三方可信度不够高时,往往也意味着不够自觉,存在将用户DNA数据私自保存或贩卖的可能。即使第三方可信度够高,也发生过内部人员不够自觉,监守自盗的案例。另外,找更高可信度的第三方,往往也意味着更高的平台费用。
3.无法应对恶意劫持,若第三方遭到如植入后门、DNS劫持等形式的恶意劫持,用户数据的安全将无法保证。
借助可信第三方的方案,综合来看是一个可以采用的方案。但只要用户DNA数据被明文存储,这三条缺点是始终伴随着这个方案的。
现有技术亟需解决的技术问题:第一,用户明文存储带来的安全隐患;第二,过于依赖可信第三方带来的安全隐患;第三,第三方遭到恶意劫持时用户数据泄露问题。
发明内容
为了解决现有技术的不足,本公开提供了DNA序列相似率安全计算方法及系统;
第一方面,本公开提供了DNA序列相似率安全计算方法;
DNA序列相似率安全计算方法,包括:
每个客户端获取待计算相似率的DNA序列;每个客户端不能获取其他客户端的待计算相似率的DNA序列;每个客户端利用自身的公钥对获取的待计算相似率的DNA序列进行加密处理,得到加密的待计算相似率的DNA序列;每个客户端将加密的待计算相似率的DNA序列发送给云服务器C;
云服务器C将所有客户端的公钥进行累乘,生成公共公钥PK;云服务器C和云服务器S将加密的待计算相似率的DNA序列转换为通过公共公钥PK加密的密文,得到重新加密的待计算相似率的DNA序列;
从云服务器C和云服务器S中分别选取重新加密的待计算相似率的DNA序列,对重新加密的待计算相似率的DNA序列进行同态加密运算,得到DNA序列相似率。
第二方面,本公开还提供了DNA序列相似率安全计算系统;
DNA序列相似率安全计算系统,包括:云服务器S,所述云服务器S与云服务器C连接,所述云服务器C与若干个客户端连接;
每个客户端获取待计算相似率的DNA序列;每个客户端不能获取其他客户端的待计算相似率的DNA序列;每个客户端利用自身的公钥对获取的待计算相似率的DNA序列进行加密处理,得到加密的待计算相似率的DNA序列;每个客户端将加密的待计算相似率的DNA序列发送给云服务器C;
云服务器C将所有客户端的公钥进行累乘,生成公共公钥PK;云服务器C和云服务器S将加密的待计算相似率的DNA序列转换为通过公共公钥PK加密的密文,得到重新加密的待计算相似率的DNA序列;
从云服务器C和云服务器S中分别选取重新加密的待计算相似率的DNA序列,对重新加密的待计算相似率的DNA序列进行同态加密运算,得到DNA序列相似率。
与现有技术相比,本公开的有益效果是:
1.客户端的DNA序列不再明文存储,而且每个客户端不能获取其他客户端的DNA序列,待计算DNA相似率的DNA序列对应的两个客户端,互不知晓对方客户端内的DNA序列。全同态算法,云服务器只能存储和加工用户密文。
2.不再依赖可信第三方。本公开是采用不完全可信第三方的方案,并且设置了两个不完全可信第三方——云服务器C和云服务器S。两个第三方分别承担一定的任务,不让一个第三方承担全部的职责,避免了监守自盗行为发生的可能。在本公开的半诚实模型下,只要两个第三方之间没有恶意勾结,所有交互都不会泄露用户的任何数据。
3.不再担心第三方遭到恶意劫持。即使第三方遭到恶意劫持,因为存储在第三方的数据为密文,且第三方并不保有用户私钥(只有用户自己存有私钥),即使密文数据泄露也无法被解密,因此无需担心用户数据泄露。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为一个或多个实施方式的方法流程图;
图2为一个或多个实施方式的服务器与客户端连接示意图。
具体实施方式
应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
术语解释部分:
云计算:云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。
同态加密:同态加密是一种基于数学难题的特殊加密技术。对经过同态加密的数据进行处理得到一个输出,将这一输出进行解密,其结果与用同一方法处理未加密的原始数据得到的输出结果是一样的。同态性一般分为加法同态和乘法同态两种,只具备其中一种性质的加密算法被称为半同态算法,同时具备两种性质的被称为全同态算法。
安全多方计算:安全多方计算是解决一组互不信任的参与方之间保护隐私的协同计算问题。要确保输入的独立性,计算的正确性,同时不泄露各输入值给参与计算的其他成员。
安全多方计算一般分为两种模型,半诚实模型和恶意模型。在半诚实模型中,半诚实成员也叫被动攻击者。在多方计算过程中,一个半诚实成员完全遵守协议的执行过程,中途不退出协议的执行过程,可以保留执行协议过程中的一些中间结果并通过这些中间结果试图分析推导其他成员的输入数据。在恶意模型中,恶意成员也即恶意攻击者,也是主动攻击者。在计算过程中,恶意攻击者可以不按照协议的流程执行,能够随意中断协议的运行,破坏协议的正常执行过程也能随意修改协议的中间结果或者与其他参与方相互勾结。
对称加密算法:对称加密算法指加密和解密使用相同密钥的加密算法。加密密钥能够从解密密钥中推算出来,同时解密密钥也可以从加密密钥中推算出来,而在大多数的对称加密算法中,加密密钥和解密密钥是相同的,所以也称这种加密算法为秘密密钥算法或单密钥算法。它要求发送方和接收方在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都可以对他们发送或接收的消息解密,所以密钥的保密性对通信的安全性至关重要。
非对称加密算法:也称为公钥算法。非对称加密算法需要两个密钥:公开密钥(public key)和私有密钥(private key)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫非对称加密算法。非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。
实施例一,如图1所示,本实施例提供了DNA序列相似率安全计算方法;
DNA序列相似率安全计算方法,包括:
S3:每个客户端获取待计算相似率的DNA序列;每个客户端不能获取其他客户端的待计算相似率的DNA序列;每个客户端利用自身的公钥对获取的待计算相似率的DNA序列进行加密处理,得到加密的待计算相似率的DNA序列;每个客户端将加密的待计算相似率的DNA序列发送给云服务器C;
S4:云服务器C将所有客户端的公钥进行累乘,生成公共公钥PK;云服务器C和云服务器S将加密的待计算相似率的DNA序列转换为通过公共公钥PK加密的密文,得到重新加密的待计算相似率的DNA序列;
S5:从云服务器C和云服务器S中分别选取重新加密的待计算相似率的DNA序列,对重新加密的待计算相似率的DNA序列进行同态加密运算,得到DNA序列相似率。
作为一个或多个实施例,所述方法的步骤S3之前,还包括:
S1:云服务器S生成公共参数PP和主密钥MS;云服务器S将公共参数PP发送给云服务器C;云服务器C将公共参数PP发送给各个客户端;
S2:每个客户端获取公共参数PP;每个客户端利用公共参数PP生成每个客户端自身的公钥和私钥。
作为一个或多个实施例,所述方法的步骤S5之后,还包括:
S6:云服务器C和云服务器S将DNA序列相似率转换为由客户端公钥加密的DNA序列相似率;
S7:云服务器C将加密后的DNA序列相似率分发给各个客户端,每个客户端利用自身的私钥解密,得到最终的DNA序列相似率。
作为一个或多个实施例,所述步骤S1中,云服务器S运用BCP算法生成公共参数PP和MS。
作为一个或多个实施例,所述步骤S3中,每个客户端获取待计算相似率的DNA序列,是指每个客户端接收用户输入的待计算相似率的DNA序列;客户端与待计算相似率的DNA序列存在一一对应关系。
作为一个或多个实施例,所述步骤S4中,云服务器C将所有客户端的公钥进行累乘,生成公共公钥PK具体步骤为:
云服务器C将所有客户端的公钥进行累乘,累乘之积模N,最后得到公共公钥PK。
作为一个或多个实施例,所述步骤S4中,云服务器C和云服务器S将加密的待计算相似率的DNA序列转换为通过公共公钥PK加密的密文,得到重新加密的待计算相似率的DNA序列;具体步骤包括:
云服务器C把加密的待计算相似率的DNA序列,分别与不同随机数同态加法混淆得到混淆密文,然后发送混淆后的用户密文给云服务器S;
云服务器S解密出混淆密文,然后再依次通过PK加密,发回云服务器C;
云服务器C再通过同态加法去除混淆即完成密文转换,得到重新加密的待计算相似率的DNA序列。
作为一个或多个实施例,所述步骤S5中,对重新加密的待计算相似率的DNA序列进行同态加密运算的具体步骤为:
对重新加密的DNA序列的对应位置的氮碱基均依次进行同态加法和同态乘法;
DNA序列不同氮碱基的计算结果的顺序进行随机调整;
对随机调整后的每个氮碱基的计算结果进行加密处理,得到同态加密运算的结果。
作为一个或多个实施例,所述步骤S5中,同态加密运算中的同态加法由云服务器C独立完成,同态加密运算中的同态乘法由云服务器C和云服务器S共同完成。
作为一个或多个实施例,所述BCP算法的算法英文名取自作者Emmanuel Bresson,Dario Catalano,David Pointcheval的姓缩写,类似RSA,BCP即为全称。
涉及BCP算法的论文:Bresson E,Catalano D,Pointcheval D.Asimple public-key cryptosystem with a double trapdoor decryption mechanism and itsapplications[C].ASIACRYPT.LNCS,2003,2894:37-54.
一.BCP公钥算法
在本公开采用的安全多方计算模型中,客户端加密解密数据,服务端间通信使用的密码算法均为BCP算法。
BCP算法自带加法同态性,支持双陷门解密。双陷门解密指除了和一般公钥算法一样公私钥对可以正常加解密以外,拥有MasterSecret的一方可以在没有对应私钥的情况下解密其公钥加密的数据,借助这个特性可以实现乘法同态,也就是全同态。
由于在加密时使用了随机数r,因此即使是对相同明文使用相同密钥加密,不同次加密得到的结果也不会相同,但对这些结果使用相同解密密钥解密时依然可以得到相同的明文。
BCP算法部分:
Setup(κ):κ是算法中N的最小比特长度,类似RSA2048中的2048,确定下κ之后,就可以随机生成N与p,q。生成公式为:N=pq,p=2p′+1,q=2q′+1,其中p,p′,q,q′均为素数。
接下来生成其余两项公共参数g和k:
gp′q′mod N2=1+kN,其中k∈[1,N-1],g是群ZN 2中的素数(g∈Z*N 2)且群ZN 2中元素的阶为pp′qq′。
生成如下:
PP(public parameters)=(N,k,g)
MS(master secret)=(p′,q′)
KeyGen(PP):选取随机数a且a∈ZN 2从而计算出:
h=ga mod N2,pk=h,sk=a
PP是公共参数,pk为公钥,sk为私钥;
加密部分:
Enc(PP,pk)(m):m为明文m∈ZN,r为随机数且r∈ZN 2
从而进行加密输出秘文(A,B):
A=gr mod N2
B=hr(1+mN)mod N2
解密部分:
Dec(PP,sk)(A,B):
m=[B/(Aa)-1mod N2]/N
用PP和私钥sk对(A,B)解密得到明文m;
MasterDec解密部分:
mDec(PP,pk,MS)(A,B):
a mod N=[hp′q′-1mod N2]/N
r mod N=[Ap′q′-1mod N2]/N
m=[(B/(gγ))p′q′-1mod N2]/N(γ定义为ar mod N)
用PP,公钥pk,MS对密文(A,B)解密得到m
二.基于BCP算法实现不可信第三方
本公开设置了两个服务器C和S一起作为不可信第三方,其中:
服务器C:
1、负责与客户端之间通信
2、负责存储客户端数据以及计算过程中的各种数据
3、只能存储BCP公钥算法公有参数
服务器S:
1、只能与C进行通信
2、负责存储BCP公钥算法私有参数
交互流程大体分为以下四步:
1、S初始化BCP算法,保存私有参数MS(Master Secret,以后简称MS)。
2、C从S获取公共参数PP(Public Parameters,以后简称PP)并存储之。
3、客户端从C获取PP,通过PP生成公私钥对,通过公钥加密DNA数据,并将公钥和加密数据上传至服务器C。
4、C和S通过同态加法,同态乘法,结果密文转换一系列交互计算完毕,客户端取回结果解密算出DNA相似率。
同态加法概述:BCP算法具备加法同态特性,同态加法可以直接在C进行计算。
已知:参与同态加法计算的密文为(A,B)和(A′,B′),并且这些密文使用同一个密钥加密,生成该密钥使用的公共参数PP(N,k,g)。加法函数记为add(A,B),其中A、B为使用同一密钥加密的密文。
1、(A,B)=(A·A′mod N2,B·B′mod N2),(A,B)即为(A,B)和(A′,B′)进行一次同态加法的结果,用加法函数表达为(A,B)=add((A,B),(A′,B′))。
密文转换概述:C和S将所有用户公钥累乘得到公共密钥,并通过一系列的交互将所有用户由自己公钥加密的密文转换为通过公共密钥加密的密文,为同态加密提供了条件。
已知:所有参与计算的密文分别为(A1,B1),…,(An,Bn),密文数量为n,这些密文的加密密钥分别为pk1,…,pkn,生成这些密钥使用的公共参数为PP(N,k,g)。
(1)C执行的上半部分
1、C将所有密文的加密密钥相乘之积模N得到公共密钥PK。
2、C依次为每个密文生成随机数τ1,…,τn,这些随机数服从ZN下的均匀分布。
3、C将这些随机数依次使用每个密文的加密密钥加密,得到
Figure BDA0002121888480000121
Figure BDA0002121888480000122
4、C将所有密文和所有被加密的随机数依次进行同态加法,得到
Figure BDA0002121888480000123
其中i∈(1,…,n)。
5、C将(pki,(Ci,Di))(其中i∈(1,…,n))发送给S。
(2)S部分
1、S将所有密文的加密密钥相乘之积模N得到公共密钥PK。模N就是mod N,对N取余,例如:25mod 3=1。
2、
Figure BDA0002121888480000124
(其中i∈(1,…,n)),S依次对(C1,D1),…,(CN,DN)使用它们的加密密钥和MasterSecret解密,得到z1,…,zn
3、(Wi,Zi)=EncPK(zi)(其中i∈(1,…,n)),S依次对z1,…,zn使用公共密钥PK加密,得到(W1,Z1),…,(Wn,Zn)。
4、S将(W1,Z1),…,(Wn,Zn)发送给C。
(3)C执行的下半部分
(Ai ,Bi )=add((Wi,Zi),EncPK(-τi))(其中i∈(1,…,n)),C将(W1,Z1),…,(Wn,Zn)与
Figure BDA0002121888480000125
同态相加得到(A 1,B1 ),…,(An ,Bn ),其中-τ代表对τ作模N下的加法逆元。(A1 ,B1 ),…,(An ,Bn)即为由用户各自公钥加密转化为由公共密钥PK加密的用户数据。
同态乘法概述:同态乘法需要C与S通过一系列交互计算进行。
已知:参与同态乘法计算的密文为(A,B)和(A′,B′),并且这些密文使用同一个密钥加密,该密钥使用的公共参数PP(N,k,g)。乘法函数记为mult(A,B),其中A、B为使用同一密钥加密的密文。
(1)C执行的上半部分
1、C为(A,B)生成随机数μ1,为(A′,B′)生成随机数μ2,这些随机数服从ZN下的均匀分布。
2、C将μ1、μ2模N下的加法逆元依次使用PK加密,得到EncPK(-μ1)和EncPK(-μ2)。
3、C将(A,B)和EncPK(-μ1)进行同态加法得到(C,D),C将(A′,B′)和EncPK(-μ2)进行同态加法得到(C′,D′)。
4、C将(C,D)和(C′,D′)发送给S。
(2)S部分
1、z=mDec(PK,MS)(C,D)、z′=mDec(PK,MS)(C′,D′),S使用PK和MasterSecret对(C,D)和(C′,D′)解密,得到z和z′。
2、(Z1,Z2)=EncPK(z·z′),S将z和z′相乘的结果用PK加密得到(Z1,Z2)。由于z和z′均为在C处混淆过的明文,而明文都是整数,所以在算术意义上的整数的加减乘除都可以进行。
3、S将(Z1,Z2)发送给C。
(3)C执行的下半部分
1、(T1,T2)=EncPK(-μ1·μ2),C将μ1的加法逆元和μ2相乘并用PK加密得到(T1,T2)。
2、
Figure BDA0002121888480000141
C将Z1、A的μ2次方、A′的μ1次方、T1相乘再模N2得到A,C将Z2、B的μ2次方、B′的μ1次方、T2相乘再模N2得到B。(A,B)即为(A,B)和(A′,B′)进行一次同态乘法的结果。
结果密文转换概述:经过一系列对密文的同态加法和乘法的操作后得到了计算结果,最终C和S继续通过协议交互将使用公共公钥加密的计算结果转换为使用各个用户公钥加密的结果,并发回各个用户。
已知:计算结果(A,B),公共密钥PK,参与计算的密文数量为n,所有参与计算的密文的加密密钥pk1,…,pkn
(1)C执行的上半部分
1、C生成一个服从ZN下随机分布的随机数τ。
2、C将τ使用PK加密得到EncPK(τ)。
3、(C,D)=add((A,B),EncPK(τ)),C将(A,B)和EncPK(τ)进行同态加法得到(C,D)。
4、C将(C,D)发送给S
(2)S部分
1、z=mDec(PK,MS)(C,D),S使用PK和MS对(C,D)进行解密得到z。
2、
Figure BDA0002121888480000142
(其中i∈(1,…,n)),S用每个加密密钥分别加密z得到(W1,Z1),…,(Wn,Zn)。
3、S将(W1,Z1),…,(Wn,Zn)发送给C。
(3)C执行的下半部分
Figure BDA0002121888480000143
(其中i∈(1,…,n)),将(W1,Z1),…,(Wn,Zn)分别与
Figure BDA0002121888480000144
进行同态加法得到(A1 ,B1 ),…,(An ,Bn )。(A1 ,B1 ),…,(An ,Bn )即为分别由用户各自公钥加密的本次计算的最终结果,用户通过自己私钥解密即可得到。
服务端所做的工作为将参与计算的用户密文转换为由同一个密钥加密,再将参与者的密文分别进行一次同态加法和同态乘法得到结果,然后再把结果转换为由各个用户公钥加密的版本。
三.服务端打乱计算结果的意义
本公开需要计算的,仅为用户之间DNA序列的相似率,而如果两段DNA序列的每位按同样顺序打乱,对相似率的计算结果是没有影响的。关键是,若服务端不进行打乱,一方用户解密之后通过自己的DNA序列和比对结果一一对应即可逆向出其他用户的DNA序列,安全性将无法得到保证。
借助不完全可信第三方进行比对,是利用密码学技术的新兴方案,正越来越多地被采用。根据使用的密码学知识不同,有不同的实现,本公开正是采用密码学技术的,借助不完全可信第三方比对的实现之一。本公开采用自带加法同态、支持双陷门解密的BCP公钥算法以及基于该算法的一系列交互流程实现了BCP算法的全同态,又通过真值表映射的方式,将DNA序列比对转化为了通过同态加乘可以解决的问题,实现了对密文状态下的DNA数据比对。
本公开适用于基因技术中的DNA序列比对领域。更确切的说,是适用于多个用户之间“安全地”计算同长度DNA序列相似率的场景。DNA序列比对有多种计算场景,如计算DNA相似率,计算DNA编辑距离等等。同长度DNA相似率计算,即计算两段长度相同的DNA序列之间相同的位数占总长度的比例,例如,Alice的DNA序列为AATTA,Bob的DNA序列为TGTCA,长度均为5,他们的第3、5位相同,则他们的DNA相似率为40%。
1.用户数据明文存储问题,用户提交给C的均为通过自己公钥加密的密文,私钥只有用户自己保有,S虽存有MS(MasterSecret)但C将用户数据发送给S之前都进行了随机数盲化,S通过MasterDec解密后无法得到用户的原始明文,而C既没有用户私钥也没有MS,这就保证了用户数据不可能在第三方处泄露。
2.过于依赖可信第三方问题,在本公开中也得到解决。只要求采用能遵循协议交互的第三方就可以保证用户数据安全,用户数据可以任意让第三方查看、存储,在可信度要求上比借助完全可信第三方要低的多。
3..第三方遭到恶意劫持时用户数据泄露问题,即使第三方遭到恶意劫持,用户数据泄露,攻击者因为没有私钥,也无法解密用户数据。
实施例二,如图2所示,本实施例提供了DNA序列相似率安全计算系统;
DNA序列相似率安全计算系统,包括:云服务器S,所述云服务器S与云服务器C连接,所述云服务器C与若干个客户端连接;
每个客户端获取待计算相似率的DNA序列;每个客户端不能获取其他客户端的待计算相似率的DNA序列;每个客户端利用自身的公钥对获取的待计算相似率的DNA序列进行加密处理,得到加密的待计算相似率的DNA序列;每个客户端将加密的待计算相似率的DNA序列发送给云服务器C;
云服务器C将所有客户端的公钥进行累乘,生成公共公钥PK;云服务器C和云服务器S将加密的待计算相似率的DNA序列转换为通过公共公钥PK加密的密文,得到重新加密的待计算相似率的DNA序列;
从云服务器C和云服务器S中分别选取重新加密的待计算相似率的DNA序列,对重新加密的待计算相似率的DNA序列进行同态加密运算,得到DNA序列相似率。
作为一个或多个实施例,所述系统,还包括:
云服务器S生成公共参数PP和MS;云服务器S将公共参数PP发送给云服务器C;云服务器C将公共参数PP发送给各个客户端;
每个客户端获取公共参数PP;每个客户端利用公共参数PP生成每个客户端自身的公钥和私钥。
作为一个或多个实施例,所述系统,还包括:
云服务器C和云服务器S将DNA序列相似率转换为由客户端公钥加密的DNA序列相似率;
云服务器C将加密后的DNA序列相似率分发给各个客户端,每个客户端利用自身的私钥解密,得到最终的DNA序列相似率。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (9)

1.DNA序列相似率安全计算方法,其特征是,包括:
每个客户端获取待计算相似率的DNA序列;每个客户端不能获取其他客户端的待计算相似率的DNA序列;每个客户端利用自身的公钥对获取的待计算相似率的DNA序列进行加密处理,得到加密的待计算相似率的DNA序列;每个客户端将加密的待计算相似率的DNA序列发送给云服务器C;
云服务器C将所有客户端的公钥进行累乘,生成公共公钥PK;云服务器C和云服务器S将加密的待计算相似率的DNA序列转换为通过公共公钥PK加密的密文,得到重新加密的待计算相似率的DNA序列;
从云服务器C和云服务器S中分别选取重新加密的待计算相似率的DNA序列,对重新加密的待计算相似率的DNA序列进行同态加密运算,得到DNA序列相似率;
所述对重新加密的待计算相似率的DNA序列进行同态加密运算的具体步骤为:对重新加密的DNA序列的对应位置的氮碱基均依次进行同态加法和同态乘法;DNA序列不同氮碱基的计算结果的顺序进行随机调整;对随机调整后的每个氮碱基的计算结果进行加密处理,得到同态加密运算的结果;
其中,一次同态加法的结果为(A,B)=(A·A′mod N2,B·B′mod N2),已知:参与同态加法计算的密文为(A,B)和(A′,B′),并且这些密文使用同一个密钥加密,生成该密钥使用的公共参数PP(N,k,g);一次同态乘法的结果为
Figure FDA0003253697000000011
其中:(T1,T2)=EncPK(-μ1·μ2),表示云服务器C将μ1的加法逆元和μ2相乘并用PK加密得到(T1,T2);(Z1,Z2)=EncPK(z·z′),表示云服务器S将z和z′相乘的结果用PK加密得到(Z1,Z2);z=mDec(PK,MS)(C,D),z′=mDec(PK,MS)(C′,D′),表示云服务器S使用PK和MS对(C,D)和(C′,D′)解密,得到z和z′;云服务器C将(A,B)和EncPK(-μ1)进行同态加法得到(C,D),云服务器C将(A′,B′)和EncPK(-μ2)进行同态加法得到(C′,D′),云服务器C将μ1、μ2模N下的加法逆元依次使用PK加密,得到EncPK(-μ1)和EncPK(-μ2);云服务器C为(A,B)生成随机数μ1,为(A′,B′)生成随机数μ2;参与同态乘法计算的密文为(A,B)和(A′,B′)。
2.如权利要求1所述的方法,其特征是,还包括:
云服务器S生成公共参数PP和主密钥MS;云服务器S将公共参数PP发送给云服务器C;云服务器C将公共参数PP发送给各个客户端;
每个客户端获取公共参数PP;每个客户端利用公共参数PP生成每个客户端自身的公钥和私钥。
3.如权利要求1所述的方法,其特征是,还包括:
云服务器C和云服务器S将DNA序列相似率转换为由客户端公钥加密的DNA序列相似率;
云服务器C将加密后的DNA序列相似率分发给各个客户端,每个客户端利用自身的私钥解密,得到最终的DNA序列相似率。
4.如权利要求2所述的方法,其特征是,云服务器S运用BCP算法生成公共参数PP和主密钥MS。
5.如权利要求1所述的方法,其特征是,每个客户端获取待计算相似率的DNA序列,是指每个客户端接收用户输入的待计算相似率的DNA序列;客户端与待计算相似率的DNA序列存在一一对应关系。
6.如权利要求1所述的方法,其特征是,云服务器C将所有客户端的公钥进行累乘,生成公共公钥PK具体步骤为:
云服务器C将所有客户端的公钥进行累乘,累乘之积模N,最后得到公共公钥PK。
7.如权利要求1所述的方法,其特征是,云服务器C和云服务器S将加密的待计算相似率的DNA序列转换为通过公共公钥PK加密的密文,得到重新加密的待计算相似率的DNA序列;具体步骤包括:
云服务器C把加密的待计算相似率的DNA序列,分别与不同随机数同态加法混淆得到混淆密文,然后发送混淆后的用户密文给云服务器S;
云服务器S解密出混淆密文,然后再依次通过PK加密,发回云服务器C;
云服务器C再通过同态加法去除混淆即完成密文转换,得到重新加密的待计算相似率的DNA序列。
8.如权利要求1所述的方法,其特征是,同态加密运算中的同态加法由云服务器C独立完成,同态加密运算中的同态乘法由云服务器C和云服务器S共同完成。
9.DNA序列相似率安全计算系统,其特征是,包括:云服务器S,所述云服务器S与云服务器C连接,所述云服务器C与若干个客户端连接;
每个客户端获取待计算相似率的DNA序列;每个客户端不能获取其他客户端的待计算相似率的DNA序列;每个客户端利用自身的公钥对获取的待计算相似率的DNA序列进行加密处理,得到加密的待计算相似率的DNA序列;每个客户端将加密的待计算相似率的DNA序列发送给云服务器C;
云服务器C将所有客户端的公钥进行累乘,生成公共公钥PK;云服务器C和云服务器S将加密的待计算相似率的DNA序列转换为通过公共公钥PK加密的密文,得到重新加密的待计算相似率的DNA序列;
云服务器C和云服务器S分别选取重新加密的待计算相似率的DNA序列,对重新加密的待计算相似率的DNA序列进行同态加密运算,得到DNA序列相似率;
所述对重新加密的待计算相似率的DNA序列进行同态加密运算的具体步骤为:对重新加密的DNA序列的对应位置的氮碱基均依次进行同态加法和同态乘法;DNA序列不同氮碱基的计算结果的顺序进行随机调整;对随机调整后的每个氮碱基的计算结果进行加密处理,得到同态加密运算的结果;
其中,一次同态加法的结果为(A,B)=(A·A′mod N2,B·B′mod N2),已知:参与同态加法计算的密文为(A,B)和(A′,B′),并且这些密文使用同一个密钥加密,生成该密钥使用的公共参数PP(N,k,g);一次同态乘法的结果为
Figure FDA0003253697000000041
其中:(T1,T2)=EncPK(-μ1·μ2),表示云服务器C将μ1的加法逆元和μ2相乘并用PK加密得到(T1,T2);(Z1,Z2)=EncPK(z·z′),表示云服务器S将z和z′相乘的结果用PK加密得到(Z1,Z2);z=mDec(PK,MS)(C,D),z′=mDec(PK,MS)(C′,D′),表示云服务器S使用PK和MS对(C,D)和(C′,D′)解密,得到z和z′;云服务器C将(A,B)和EncPK(-μ1)进行同态加法得到(C,D),云服务器C将(A′,B′)和EncPK(-μ2)进行同态加法得到(C′,D′),云服务器C将μ1、μ2模N下的加法逆元依次使用PK加密,得到EncPK(-μ1)和EncPK(-μ2);云服务器C为(A,B)生成随机数μ1,为(A′,B′)生成随机数μ2;参与同态乘法计算的密文为(A,B)和(A′,B′)。
CN201910609488.0A 2019-07-08 2019-07-08 Dna序列相似率安全计算方法及系统 Active CN110321722B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910609488.0A CN110321722B (zh) 2019-07-08 2019-07-08 Dna序列相似率安全计算方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910609488.0A CN110321722B (zh) 2019-07-08 2019-07-08 Dna序列相似率安全计算方法及系统

Publications (2)

Publication Number Publication Date
CN110321722A CN110321722A (zh) 2019-10-11
CN110321722B true CN110321722B (zh) 2021-11-09

Family

ID=68123083

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910609488.0A Active CN110321722B (zh) 2019-07-08 2019-07-08 Dna序列相似率安全计算方法及系统

Country Status (1)

Country Link
CN (1) CN110321722B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111526000B (zh) * 2020-04-20 2023-08-18 北京电子科技学院 一种基于混淆模投影的并行部分同态加密方法和系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2709028A1 (en) * 2012-09-14 2014-03-19 Ecole Polytechnique Fédérale de Lausanne (EPFL) Privacy-enhancing technologies for medical tests using genomic data
CN104521178A (zh) * 2012-04-17 2015-04-15 华为技术有限公司 安全的多方云计算的方法和系统
CN105138923A (zh) * 2015-08-11 2015-12-09 苏州大学 一种保护隐私的时间序列相似度计算方法
CN105447361A (zh) * 2014-08-27 2016-03-30 华为技术有限公司 加密和相似性度量的方法、终端及服务器
KR20170096387A (ko) * 2016-02-16 2017-08-24 서울대학교산학협력단 동형 암호화된 염기서열의 편집 거리 산출 방법
CN107347061A (zh) * 2017-06-16 2017-11-14 哈尔滨工业大学深圳研究生院 基于安全多方下的时间序列异常检测方法及系统
CN108809628A (zh) * 2018-06-13 2018-11-13 哈尔滨工业大学深圳研究生院 基于安全多方下的时间序列异常检测方法与系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103544406B (zh) * 2013-11-08 2016-03-23 电子科技大学 一种用一维细胞神经网络检测dna序列相似度的方法
CN105224826A (zh) * 2015-09-07 2016-01-06 云南大学 一种基于s-pcnn与霍夫曼编码的dna序列相似性分析方法
CN105488422B (zh) * 2015-11-19 2019-01-11 上海交通大学 基于同态加密隐私数据保护的编辑距离计算系统
CN107592298B (zh) * 2017-08-11 2020-07-14 中国科学院大学 一种基于单服务器模型的序列比较算法安全外包方法、用户终端和服务器

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104521178A (zh) * 2012-04-17 2015-04-15 华为技术有限公司 安全的多方云计算的方法和系统
EP2709028A1 (en) * 2012-09-14 2014-03-19 Ecole Polytechnique Fédérale de Lausanne (EPFL) Privacy-enhancing technologies for medical tests using genomic data
CN105447361A (zh) * 2014-08-27 2016-03-30 华为技术有限公司 加密和相似性度量的方法、终端及服务器
CN105138923A (zh) * 2015-08-11 2015-12-09 苏州大学 一种保护隐私的时间序列相似度计算方法
KR20170096387A (ko) * 2016-02-16 2017-08-24 서울대학교산학협력단 동형 암호화된 염기서열의 편집 거리 산출 방법
CN107347061A (zh) * 2017-06-16 2017-11-14 哈尔滨工业大学深圳研究生院 基于安全多方下的时间序列异常检测方法及系统
CN108809628A (zh) * 2018-06-13 2018-11-13 哈尔滨工业大学深圳研究生院 基于安全多方下的时间序列异常检测方法与系统

Also Published As

Publication number Publication date
CN110321722A (zh) 2019-10-11

Similar Documents

Publication Publication Date Title
JP5349619B2 (ja) アイデンティティベースの認証鍵共有プロトコル
US9246674B2 (en) Generation of cryptographic keys
US7590236B1 (en) Identity-based-encryption system
US9130744B1 (en) Sending an encrypted key pair and a secret shared by two devices to a trusted intermediary
CN112906030A (zh) 基于多方全同态加密的数据共享方法和系统
Yusfrizal et al. Key management using combination of Diffie–Hellman key exchange with AES encryption
Mandal et al. A cryptosystem based on vigenere cipher by using mulitlevel encryption scheme
Chatterjee et al. Cryptography in cloud computing: a basic approach to ensure security in cloud
CN110999202A (zh) 用于对数据进行高度安全、高速加密和传输的计算机实现的系统和方法
Reshma et al. Pairing-free CP-ABE based cryptography combined with steganography for multimedia applications
WO2020085151A1 (ja) サーバ装置、通信端末、通信システム、及びプログラム
CN111656728B (zh) 一种用于安全数据通信的设备、系统和方法
CN112995215B (zh) 解密系统、方法、装置、电子设备及存储介质
CN110321722B (zh) Dna序列相似率安全计算方法及系统
Daddala et al. Design and implementation of a customized encryption algorithm for authentication and secure communication between devices
CN114362912A (zh) 基于分布式密钥中心的标识密码生成方法、电子设备及介质
EP2395698B1 (en) Implicit certificate generation in the case of weak pseudo-random number generators
CN107294972B (zh) 基于身份的广义多接收者匿名签密方法
WO2022239129A1 (ja) 鍵交換システム、機器、鍵交換方法、及びプログラム
Kumar et al. Hybridization of Cryptography for Security of Cloud Data
Amounas et al. An efficient signcryption scheme based on the elliptic curve discrete logarithm problem
CN108768923A (zh) 一种基于量子可逆逻辑线路的加密算法的聊天实时加密方法
Maffina et al. An improved and efficient message passing interface for secure communication on distributed clusters
JP2009141767A (ja) 暗号鍵の生成システム、暗号鍵の生成方法、暗号化認証システム及び暗号化通信システム
JP2004246350A (ja) 暗号化装置および復号化装置、並びにこれらを備えた暗号システム、暗号化方法および復号化方法

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
TR01 Transfer of patent right

Effective date of registration: 20221123

Address after: 311401 Room 1324, 13/F, Building 13, Fuchun Park, Zhigu, China, Yinhu Street, Fuyang District, Hangzhou City, Zhejiang Province

Patentee after: Hangzhou Liang'an Technology Co.,Ltd.

Address before: 250022 No. 336, South Xin Zhuang West Road, Shizhong District, Ji'nan, Shandong

Patentee before: University of Jinan

TR01 Transfer of patent right
CP02 Change in the address of a patent holder

Address after: 311100 1005-21, Floor 10, Building H, Haichuang Park, CEC Haikang Group Co., Ltd., No. 198, Aicheng Street, Wuchang Street, Yuhang District, Hangzhou City, Zhejiang Province

Patentee after: Hangzhou Liang'an Technology Co.,Ltd.

Address before: 311401 Room 1324, 13/F, Building 13, Fuchun Park, Zhigu, China, Yinhu Street, Fuyang District, Hangzhou City, Zhejiang Province

Patentee before: Hangzhou Liang'an Technology Co.,Ltd.

CP02 Change in the address of a patent holder