用于核实同态加密数据并对其执行操作的系统和方法
技术领域
本公开涉及同态加密数据系统和方法,并且更具体地,涉及在不解密机密数据的情况下核实同态加密的机密数据并对其执行操作。
背景技术
敏感个人信息的隐私是一个越来越重要的主题,因为更多的个人数据被传输和共享,特别是通过使用无线传输和云数据服务。由于害怕在云服务器上发生安全漏洞或由于担心服务提供商自己滥用这些敏感信息,因此会出现隐私问题。标准的加密方案试图通过设计难以破解的加密方案来解决这些问题,但它们并未解决服务提供商可能滥用这些敏感数据的问题。
机密和个人数据(诸如金融和医疗数据)的隐私是一个至关重要的问题。然而,出于合法目的访问这些数据(诸如执行金融交易,或提供访问医疗数据以进行研究或解决卫生突发情况)也很重要。
因此,需要对技术进行改进。
发明内容
根据本发明的一个实施方案,提供一种用于在不完全解密加密数据的情况下安全地传输所述数据并从所述数据提取信息的方法,其包括:接收数据请求,其中所述数据请求的至少一部分根据同态加密方案进行加密,并且所述数据请求的所述加密部分包括至少一组机密数据;从数据库中检索一组或多组加密比较数据,每组加密比较数据根据同态加密方案进行加密;使用一个或多个同态运算将来自所述数据请求的所述一组加密机密数据与每组加密比较数据进行比较,以确定哪一组加密比较数据匹配所述一组加密机密数据,并在匹配时核实所述一组机密数据;生成指示核实所述一组机密数据的成功或失败的加密指示符;以及将所述加密指示符转发给与所述数据请求相关联的一方,其中在所述方法期间从不解密所述一组机密数据。
根据本发明的另一实施方案,提供一种数据系统,其包括:网络接口,所述网络接口用于连接到网络以从多个远程数据装置接收同态加密数据,其中所述同态加密数据与相关联于所述远程数据装置的用户相关联;以及计算引擎,所述计算引擎连接到所述网络接口,所述计算引擎被配置来对所述数据执行同态计算以获得能够被选择性地解密的计算结果。
根据本发明的另一实施方案,提供一种用于执行同态计算的装置,所述装置被配置来将同态计算建模为多项式级数,并且被配置来使用加密数据计算所述多项式级数的值以获得加密结果,所述加密数据根据加密方案进行加密,所述装置进一步被配置来执行同态关系运算以将所述加密结果与加密条件进行比较,所述加密条件根据所述加密方案进行加密,所述装置进一步被配置来输出所述比较的结果。
根据本发明的另一实施方案,提供一种包含计算机可读指令的非暂时性计算机可读介质,所述计算机可读指令在由计算机处理器执行时执行以下方法:接收用于核实数据的数据请求,其中所述数据请求的至少一部分根据同态加密方案进行加密,并且所述数据请求包括至少一组机密数据;从数据库中检索一组或多组加密比较数据,每组加密比较数据根据同态加密方案进行加密;使用一个或多个同态运算将所述一组机密数据与每组所述加密比较数据进行比较,以确定哪一组加密比较数据匹配所述一组机密数据,并在匹配时核实所述一组机密数据;生成指示核实所述一组机密数据的成功或失败的加密指示符;以及将所述加密指示符转发给与所述数据请求相关联的一方,其中从不解密所述一组机密数据。
根据本发明的另一实施方案,提供一种处理安全金融交易的方法,其包括:接收用于完成金融交易的至少部分同态加密的请求,所述请求根据基于格的全同态加密(FullyHomomorphic Encryption,FHE)方案进行同态加密,并且所述交易请求包括含有账号的机密持卡人数据、非机密持卡人数据和交易数据;检索根据基于格的FHE方案进行加密的一组或多组同态加密的比较持卡人数据;使用一个或多个同态运算将所述机密持卡人数据与每组所述比较持卡人数据进行比较,以确定哪一组比较持卡人数据匹配所述机密持卡人数据并核实所述机密持卡人数据;至少基于对所述机密持卡人数据的所述核实,生成并加密指示对用于完成所述金融交易的所述请求的授权或拒绝的指示符;以及将指示对用于完成所述金融交易的所述请求的授权或拒绝的所述加密指示符转发给寻求授权以完成所述金融交易的一方,其中在所述方法期间从不解密机密持卡人数据。
根据本发明的另一实施方案,提供一种包含计算机可读指令的非暂时性计算机可读介质,所述计算机可读指令在由计算机处理器执行时执行以下方法:接收用于完成金融交易的至少部分同态加密的请求,所述请求根据基于格的全同态加密(FHE)方案进行同态加密,并且所述交易请求包括含有账号的机密持卡人数据、非机密持卡人数据和交易数据;检索根据基于格的FHE方案进行加密的一组或多组同态加密的比较持卡人数据;使用一个或多个同态运算将所述机密持卡人数据与每组所述比较持卡人数据进行比较,以确定哪一组比较持卡人数据匹配所述机密持卡人数据并核实所述机密持卡人数据;至少基于对所述机密持卡人数据的所述核实,生成并加密指示对用于完成所述金融交易的所述请求的授权或拒绝的指示符;以及将指示对用于完成所述金融交易的所述请求的授权或拒绝的所述加密指示符转发给寻求授权以完成所述金融交易的一方,其中在所述方法期间从不解密机密持卡人数据。
根据本发明的另一实施方案,提供一种执行与加密数据的比较的方法,所述方法包括:将计算建模为多项式级数;使用加密数据来计算所述多项式级数的值以获得加密结果,所述加密数据根据加密方案进行加密;执行同态关系运算以将所述加密结果与加密/非加密条件进行比较,所述加密条件根据所述加密方案进行加密;以及输出所述比较的结果。
根据本发明的另一实施方案,提供一种医疗数据系统,其包括:网络接口,所述网络接口用于连接到网络以从多个远程医疗装置接收同态加密数据,其中所述同态加密数据表示与所述远程医疗装置相关联的患者的所测量生理数据;以及计算引擎,所述计算引擎连接到所述网络接口,所述计算引擎被配置来对所述数据执行同态计算以获得能够被选择性地解密的计算结果。
根据本发明的另一实施方案,提供一种用于执行同态计算的装置,所述装置被配置来将同态计算建模为多项式级数,并且被配置来使用加密数据计算所述多项式级数的值以获得加密结果,所述加密数据根据加密方案进行加密,所述装置进一步被配置来执行同态关系运算以将所述加密结果与加密条件进行比较,所述加密条件根据所述加密方案进行加密,所述装置进一步被配置来输出所述比较的结果。
通过结合附图阅读本发明实施方案的以下描述,根据本申请的其他方面和特征对本领域普通技术人员将显而易见。
附图说明
仅以举例的方式,附图示出本公开的实施方案。
图1是根据本发明的实施方案的安全计算环境的图示;
图2是根据本发明的实施方案的远程装置的图示;
图3是根据本发明的实施方案的数据系统的图示;
图4是根据本发明的实施方案的密钥管理系统的图示;
图5是根据本发明的实施方案的另一数据系统的图示;
图6A至图6W示出根据本发明的实施方案的用于执行计算的方程;
图7至图10是本发明的实施方案的各种实例中所使用的数据表;
图11是根据本发明的实施方案的用于实现关系运算的伪代码的列表;
图12至图14示出进行的测试的测试参数和测试结果;
图15是四方信用卡交易系统的图示;
图16是根据本发明的实施方案的支付处理链的图示;
图17是根据本发明的实施方案的安全支付处理系统的图示;
图18是根据本发明的实施方案的展示秘密密钥大小减小的图表;
图19是展示密文大小减小和消除扁平化函数的图表;
图20示出用于密文乘法运算的伪代码;
图21是根据本发明的实施方案的示例性参数选择表;并且
图22a至图22g示出根据本发明的实施方案的表达式/方程。
相同的附图标记在附图中指示相同或相应元素。
具体实施方式
虽然医疗应用和金融应用形成本文所论述的本发明的实例的基础,但所论述的本发明的技术可应用于其他形式的机密数据。在此上下文中,可针对正在处理的机密数据的类型视情况重新考虑数据获取、存储和分析中所涉及的不同装置和各方。
同态加密/解密
可如图1至图5和图6A至图6E所示地执行对机密数据执行的同态加密/解密运算。密钥生成可在诸如密钥管理系统36的安全系统处执行。在部署远程装置20之前,可将公开密钥68预加载到包含机密信息的远程装置20(诸如医疗装置、信用卡、远程传感器等)上。可替代地或另外地,可通过网络资源(诸如公共云)使公开密钥68对远程装置20可用,所述网络资源可被配置来需要凭证验证或授权(例如,用户名和密码)以访问公开密钥68。远程装置20上和数据系统120中的加密引擎62可被配置来实现下文所论述的同态加密技术。密钥管理系统36处的解密引擎104可被配置来实现下文所论述的同态解密技术。数据系统22、120处的计算引擎88可被配置来实现下文所论述的计算技术,包括对方程、计算参数、上界/下界和中间结果/累积结果的存储和处理。
关于下文所论述的符号,对于奇素数q,标识具有区间(-q/2,q/2)∩Z的环Z/qZ(或Zq)。符号[x]q表示以q为模约简x。本文所论述的实例使用由商多项式R=Z[X]/Φm(X)定义的多项式环,其中Φm(X)=xn+1是不可约简的第m个分圆多项式,其中n是2的幂且m=2n。使Rq=R/qR。包括矩阵和多项式乘法的任何类型的乘法在本文中由乘法运算符’·’表示。向上舍入到最接近的整数由|a|表示。环的矩阵定义为AM×N,其中Aij∈Rq和M,N是矩阵维数。Il×l表示环的单位矩阵。行向量表示为[a b],其中a和b是向量元素。另一方面,列向量表示为[a;b]。
密码方案的参数是:n,即数域的度数;q,即模数;σk和σc,分别为密钥空间和密文空间中离散高斯误差分布的标准差;其控制密文中的环元素数。这些参数的设置取决于安全级别λ(例如,λ=80或128位)以及预期对密文进行求解的函数的复杂性。
位分解函数BD(整数)采用l位输入整数,然后输出包含此整数的位分解的具有大小l的行向量。(应注意,本文包括附图提到的字母“l”是“L”的小写字母。)类似地,BD(多项式)采用大小为n的输入多项式,其中每个系数是l位整数,然后输出多项式(每个大小为n)的包含所述输入多项式的每一个系数的位分解的大小为l的行向量,从而得出大小为l×n的矩阵。最后,BD(多项式矩阵)采用大小为x×y的多项式的输入矩阵(每个多项式的大小为n,具有整数系数),然后输出在列维数上由因子l扩展的多项式矩阵,从而得出大小为x×yl的矩阵,其中沿着所述行的每个连续的l元素包含每个输入多项式的每个系数的位表示。例如,输入多项式矩阵Bx×y×n的位分解是BD(Bx×y×n)=βx×yl×n。应注意,尽管矩阵βx×yl×n的多项式系数是单个位值,但CPU或GPU存储器中矩阵β的存储要求不等于x×yl×n位。这是因为存储器的最小可寻址单元是一个字节(即,字节可寻址)。因此,β需要x×yl×n字节的存储。这导致进一步观察到βx×yl×n的存储要求是Bx×y×n的存储要求的至少8倍。
位分解反函数BDI()是位分解函数BD()的反函数。BDI()函数沿一行分组连续的l系数(所述系数不需要是二进制的),并输出对应于那些l位的整数。在数学上,BDI()函数可定义为将扩展的多项式矩阵βx×yl从右边乘以图6A的方程中的定义的矩阵αyl×y。(为清楚起见,从这一点开始省略了多项式维数n)。因此,Bx×y=BDI(βx×yl)=βx×yl·αyl×y。
基于环上带误差学习(RLWE)的加密方案。
所述方法和系统可采用RLWE(环上带误差学习)密码方案,而现在将描述这种方案的一般原理。然而,此方案没有特别限制,且可使用其他合适的基于多项式的全同态密码方案。此外,鉴于已知技术,密码学领域的技术人员将很好地理解下文中任何分歧。
所述系统和方法被配置来生成密钥,加密信息和解密信息。
密钥生成器被配置来实现密钥生成(1λ)函数如下。选择多项式秘密密钥变成公开密钥是pk=A1×2=[ba],基于统一样本a←Rq,设定b=a·t+e。应注意,图22a中的表达式成立。
如图18所示,这优于已知秘密密钥sk=v=PO2(s),所述已知秘密密钥基于诸如如定义为[x,2x,…,2l-1x]的PO2(x)的二次幂扩展。因此,密钥生成器生成在理论上小了l倍的秘密密钥。
加密引擎62被配置来实现Enc(pk,μ)函数如下。消息空间是Rq。采样统一向量rN×1,其中r中的多项式的每个系数从{0,1},采样。通过计算图22B中的表达式来对明文多项式μ∈Rq进行加密。如图19所示,这优于使用CN×N的现有技术,因为加密引擎62产生理论上小了l倍的密文。
解密引擎104被配置来实现Dec(sk,C)函数如下。给定密文C,通过根据图22c中的表达式将C乘以秘密密钥s来恢复明文μ∈Rq。
这优于实现Dec(sk,C)=CN×N·vN×1的现有技术,因为解密引擎104要求执行理论上少了l倍的运算。
应注意,在图22c中的表达式的第一项中的第一l系数呈μ,2μ,…,2l-1μ的形式。这意指位置i∈[0,l-1]处的元素呈μ·2i+误差的形式。即,每个条目的最高有效位从数字μ开始携带单个位,假设误差<q/2并且理论上没有可在现有技术中找到的环绕mod q。
现在可在不首先对密文进行解密的情况下对密文执行运算。对于分别加密μ1和μ2的输入密文CN×2和同态运算实现如下。
加法运算符实现ADD(C,D)函数以通过执行逐条目加法CN×2+DNx2来添加两个密文CNx2和DN×2。
乘法运算符和逐位分解函数实现MULT(C,D)函数以通过对一个密文执行逐位分解函数(或BD)然后执行如=BD(CN×2)·DN×2的乘法来将两个密文CN×2和DN×2相乘。
如图19所示,这优于定义MULT(C,D)=扁平化(CN×N·DN×N)的现有技术,其中扁平化(A)被定义为BD(BDI(A))。本技术需要理论上至少少了l倍的运算。
对于本领域技术人员来说,上述同态加法的正确性应当显而易见。乘法在输入密文C和D中是不对称的。即,D的分量被视为一个整体,而C的分量被分解成它们的逐位分解。如下所论述,乘法是正确的,并且给出缓慢的噪声增长率。
鉴于图22d中的表达式,对于本领域技术人员来说,乘法运算的正确性应当显而易见。在图中,为清楚起见,去除矩阵维数。在图22d中的表达式操作的最后一行中,μ=μ2·μ1的加密显而易见。
正确的解密取决于密文噪声有界。因此,理解同态运算如何增加密文噪声是非常重要的。以C作为新鲜密文,很明显的是,在最坏情况下,v个密文的同态加法将噪声增加v倍。在各种预期的实现方式中,由于预期误差多项式的系数遵循高斯分布,因此倍数更接近
进一步显而易见的是,分别具有误差量值B1和B2的两个密文C=Enc(μ1)和D=Enc(μ2)的同态乘法在最坏情况下将误差增大到O(B1·||μ2||1+B2·nlogq),而在各种预期的实现方式中增大到此处,||μ||1表示消息多项式μ的l1范数。从以上可见,有利的是,对两个密文的误差依赖性是不对称的。
为将v个密文相乘,预期乘法的顺序在误差中起作用。在本文所述的技术中,输入μ通常将为0或1,这意味着增长只是相对于B1的相加。因此,有利的是,通过如图20所示的累加器样函数将v个密文以(相同的)误差水平B相乘,而不是使用往往会使误差以超多项率增长的乘法二叉树。所得误差增长在最坏情况下为O(B·vnlog(q)),而在各种预期实现方式中为因此,控制逻辑可被配置来实现累加乘法,如图20所示且如各种预期实现方式所要求。
例如,现在参考图22e中的表达式,其中x1,…,xv是v元组的输入加密位,y1,…,yv是某个集合S中的v元组的位,而运算表示位xi与yi之间的二进制XNOR。由于图25e中表达式的形式要求,恰好项中之一可成立(当x1,…,xv∈S时F=1,否则F=0),因此即使基于图22e中的表达式的分量计算可能无法精确确定哪一项会成立,也可产生小的总误差增长。
显而易见,噪声在最坏情况下增长到O(B·vnlog q·|S|),或在各种预期实现方式中增长到这与使用已知的IBM HElib中实现的Brakerski-Gentry-Vaikuntanathan加密方案的情况下的形成对比。实际上,如图22e中的表达式的此类表达式远非非典型的,并且它们在求解决策树和PIR样函数时非常自然地发生,如将在下文进一步论述。
目前公开的技术所提供的另一改进源从误差项B1·||μ2||1+B2·nlog q显而易见。当使用累加器执行乘法时,如图20所示,B2表示新鲜密文Ci中的较小误差,而B1表示累积密文Caccum中的较大误差。如果Ci加密为μ2=0,则较大误差项B1从误差表达式中消失。
此误差减小从图22e中的表达式也显而易见。当求解图22e中的表达式中的每个乘积时,可看出误差不是与乘法的总数v而是与从最后开始的1的最长连续链k成比例地增长。通过上面的观察,预期这是因为在乘法链中最后一次遇到零时,误差得以减小。假设S是预期集合,则后续1的连续链的预期长度是换言之,v的乘法因子也从误差表达式中消失,并且误差增长变得接近这基本上与添加|S|密文的效果相同。
此外,当f作为待求解函数时,例如,图22e中的表达式,误差f(B,n,q)表示在对具有初始误差量值B的Rq中的密文求函数f时误差增长多少。对于正确解密,预期图22f中的表达式成立。由于使用本技术误差趋于增长较慢,因此可将q设置成对应地较小以满足与现有技术相当的安全级别。沿循Lindner和Peikert的分析,对于λ位的安全级别,预计以下表达式成立:
n>log q(λ+110)/7.2 (7)
因为本技术中的logq较小,所以对于相同安全级别λ,n可设置成更小。反过来,更小的n可导致更小的误差f(B,n,q),从而导致更小的q等。通过一起求解上述图22f和图22g中的两个不等式来获得合适的参数。图21概述了这种参数选择的实例。
基于NTRU的FHE方案
作为基于RLWE的FHE方案的替代例,在本发明的一些实例中,使用加密方案的NTRU变型来降低计算复杂性并加速操作,如下文将详述。加密系统的工作原理如下。
密钥生成函数Keygen(1λ)需要选择两个多项式使得(a)f在环中是可逆的Rq;且(b)f≡1(mod 2)。这可通过从分布中对多项式f进行采样来完成直至满足条件(a)和(b)。
可根据图6B所示的方程来计算公开密钥pk和私有(秘密)密钥sk。
对于加密函数Enc(pk,m),消息空间是Rq。明文多项式μ∈Rq通过求解图6C的方程来加密,其中Sl×1、从具有标准差σc的离散高斯分布进行采样。此加密函数可在加密引擎62处实现。
关于解密函数Dec(sk,C),对于给定密文C,通过使用图6D的方程将C乘以秘密密钥f来恢复明文μ∈Rq。此解密函数可在解密引擎104处实现。
参考图6D,最后一行第一项中的l多项式的形式为μf,2μf,...,2l-1μf。这意味着位置i∈[0,l-1]处的元素的形式为μf·2i+误差。即,每个条目的最高有效位从μf中的每个系数携带单个位,假设误差<q/2且不存在现有技术中发现的环绕模数q。因此,“μf”可从C中完全恢复,然后其可乘以f-1以恢复μ。
除了用于恢复消息多项式μ的能力之外,密文中的l环元素促进并管理同态运算(特别是同态乘法)中的噪声增长,如下所述。
关于同态运算,对于分别加密μ1和μ2的输入密文Cl×1和来说,同态运算定义如下。对于使两个密文Cl×1和Dl×1相加的加法运算ADD(C,D)来说,输出是Cl×1+Dl×1,这是逐条目加法。对于使两个密文Cl×1和Dl×1相乘的乘法运算MULT(C,D),输出是BD(Cl×1)·Dl×1。加法运算和乘法运算可在计算引擎88处实现。
鉴于本公开,上述同态加法和同态乘法的正确性对于本领域技术人员而言应当显而易见。很明显,乘法运算在输入密文C和D中是不对称的。即,D的分量被视为一个整体,而C的分量被分解成它们的“逐位分解”。如下所示,此乘法方法是正确的且给出缓慢噪声增长率。
从图6E所示的解密运算可明显看出乘法运算的正确性,其中为清楚起见,去除矩阵维数。应注意,图6E所示的最后一行是μ=μ2·μ1·f的加密。亦应注意BD(Cl×1)·BDI(Il×l)=Il×l·Cl×1=Cl×1。
关于噪声分析,将C作为新鲜密文,鉴于图6E所示的运算,可以作出以下观察报告。在最坏情况下,v个密文的同态加法会使噪声增加v倍。在一些实现方式中,由于误差多项式的系数遵循高斯分布,因此所述倍数更接近另外,分别具有误差量值B1和B2的两个密文C=Enc(μ1)和D=Enc(μ2)的同态乘法在最坏情况下将误差增加到O(B1·||μ2||1+B2nlog(q)),而在各种预期的应用中增加到此处,||μ2||1表示消息多项式μ的l1范数。可看出,对两个密文的误差依赖性是不对称的。
关于参数设置,将f作为正在求解并计算v个密文的乘法的函数,误差f(B,n,q)表示在对具有初始误差量值B的Rq中的密文求函数f时误差增长多少。为了正确解密,应满足图6F的方程。
由于根据本发明的误差可能比一些已知方案中增长得更慢,并且由于可能不需要模数链来控制噪声增长,因此对于由此类已知方案所提供的相同安全级别,可将q对应地设置为更小。对于λ位的安全级别,应满足图6G的方程。
因为相对于已知方案,根据本发明的logq可能更小,所以对于相同安全级别λ,n可设定得更小。反过来,在更小的n的情况下,新误差f(B,n,q)更小,从而导致q更小等。通过一起求解图6F和图6G的不等式可获得最佳参数。图7的表概述示例性参数选择。
另外,根据本实施方案的加密方案并不使用由GSW方案引入的扁平化运算。扁平化密文(Ctxt)占用大量存储器空间。它还需要相当多的计算时间来组合条目并将它们分解成位(或者甚至将它们分解成“m”位组以用于更高的基数位分解运算符)。此外,由于根据本发明的加密方案不使用扁平化运算,因此它不具有表示密文的单个位。相反,密文表示为打包数modq。为将密文相乘,与使用常规多项式循环卷积相比,有利的是使用快速NTT算法来加速密文乘法运算。与仅从密文中的单个多项式解密单个位相比,根据本实施方案的加密方案从密文中的所有1个多项式中解密最高有效位。以此方式,可解密来自每个多项式的I个位。使用图6W所示的公式将这些位组合回加密多项式。
现在论述可收集的加密机密数据的类型以及可对其执行的同态计算。下文所论述的特定数据/计算包括诸如加密基因组数据的医疗数据的分析、疾病的预测分析以及关系运算的求解。本文所包括的其他数据是金融交易数据,特别是信用卡数据。虽然所论述的一些实例涉及特定数据,但应注意,一些计算可用于其他类型的数据(例如,关系运算)。此外,应注意,下文所论述的实例不是限制性的,并且可预期本发明范围内的其他实例。
金融交易
同态加密系统的实施方案的另一应用领域是金融交易,特别是信用卡交易。近年来,对信用卡的攻击大幅增加,重大漏洞导致数百万客户端记录暴露。一旦暴露,客户端信息可能被转售(例如在暗网上),用于欺诈性交易,特别是无卡(CNP)交易,或者用于直接攻击销售点(POS)系统。
发生这些攻击的原因是,在信用卡授权过程中的某些时刻,数据库或客户端中的信用卡信息以明文格式存在。根据本发明的实施方案,系统可从获取信用卡信息时对其进行加密,并且即使在认证步骤时也从不对密文进行解密。
支付处理
大信用卡公司(诸如VISATM和MasterCardTM)在所谓的四方模型中构建银行卡交易。此模型中的各方是持卡人1500、商家1510(服务提供商)、支付处理器1520(收单方)以及发卡机构1540。此外,可能存在第五方,即信用卡公司(支付品牌)1530,所有这些如图15所示。
当希望购买东西的持卡人1500在线上商家上使用他的信用卡信息或在商店将他的信用卡1505呈现给商家1510时,交易开始。商家1510在线或使用销售点系统获取并加密信用卡信息并通过网络将其发送1515到支付处理器1520。商家处的加密可在POS终端处完成,或者可使用公开加密密钥使用安装在商家系统上的应用程序来完成。然后,支付处理器1520解密信用卡信息并将其转发1525到发卡机构1530以进行授权。一旦接收到信用卡授权,商家1510就对信用卡收费并将服务或产品提供给持卡人1500。支付处理器1520偿付商家的服务,之后,发卡机构1530在24或48小时内偿还支付处理器1520。可在支付处理器与商家之间使用令牌化系统,以消除商家存储持卡人信息的需求。商家仅存储对应于持卡人帐户或各个交易的令牌。
诸如持卡人和交易数据的信息以及诸如网络费用和交换费的内部费用可视需要在交易期间或在交易之后在支付处理器1520与信用卡公司1540之间进行传递1545或在发卡机构1530与信用卡公司1540之间进行传递1555,或者两者。
此信用卡系统中存在可允许攻击者窃取信用卡信息的多个弱点。
销售点系统(POS):当持卡人在商店出示他的卡时,他/她的卡在将此信息传送到计算机的刷卡机或读卡器中刷卡。在系统中可能存在某些时刻,其中在将此卡信息发送到支付处理器之前的一段时间内所示卡信息未加密。此时,系统中所安装的恶意软件可收集此信息并将其发送回给攻击者。为解决此弱点,必须在使用读卡器读取信用卡信息时对其进行加密。以此方式,恶意软件将无法使用此方法收集卡信息。目前,使用点对点加密(P2PE)将信用卡信息从POS系统安全地传输到支付处理器,然后支付处理器对其进行解密以发送给发卡机构进行验证。P2PE使用3DES或AES进行加密,暂时可能被认为是安全的,但未来可能无法安全地抵抗量子计算机。
支付处理器:当支付处理器从商家接收加密信用卡信息时,支付处理器对所述加密信用卡信息进行解密并以明文形式发送给发卡机构以进行认证。这是一个明显的弱点。安装在支付处理器系统中的任何恶意软件,或者破坏支付处理器与发卡机构之间的安全信道的任何攻击者,可在呈明文形式时收集信用卡信息。为解决此弱点,不得在任何时候解密信用卡信息。另外,就令牌化系统而言,存在安全库,所述安全库将交易转换成令牌,反之亦然。此库存储所有持卡人信息及其对应令牌。如果此库被黑客入侵,有价值的信息将面临风险。
发卡机构具有两个弱点:1)它以明文接收客户端信用卡信息。这使它有可能受到攻击;2)所有客户端的信用卡信息的发卡机构数据库以明文存放在安全服务器中,以将其与传入卡信息进行比较。这是信用卡信息的最大安全威胁。这是因为对此安全数据库的攻击将导致所有信用卡信息丢失。
如果数据库中的所有信用卡信息以及明文中的传入卡信息都进行加密并且以密文进行比较,则可解决这些弱点。
根据如图16所示的实施方案,呈现本发明的实施方案,其是信用卡授权系统的可提供比当前系统高得多的安全级别的变化。所体现系统可基于使用量子安全全同态加密(FHE)在POS系统处加密信用卡信息,所述量子安全FHE基于基于格的密码学。对FHE的需求基于对加密数据的同态加法运算和乘法运算两者的需求。如果仅需要一种类型的运算,则可使用一定程度的同态加密。一旦卡信息在在线网站处或POS处进行加密,就可能不需要在之后的任何时候进行解密。可将加密信用卡信息与发卡机构处的信用卡数据库数据(例如,数据库中保存的各种持卡人的持卡人数据集)进行比较,后者也可使用相同的FHE加密进行加密。
因此,系统可消除对网络中或数据库服务器中的信用卡信息的任何可能的攻击,因为它们都可使用量子安全FHE加密方案进行加密。
来自消费者1610的持卡人数据(主账号(PAN))由在线交易数据条目(或在POS处)捕获,所述数据使用公开密钥全同态加密(FHE)方案进行加密。可使用由信用卡公司发布的FHE公开加密密钥来加密信用卡号(第一位数字和最后4位数字除外)、月份、年份和CVV号码。可使用常规加密方案来加密持卡人的姓名以及信用卡号的第一位数字和最后4位数字。然后商家1620将加密PAN发送到收单方/支付处理器1630。
支付处理器1630使用信用卡第一位数字将加密PAN转发给适当的支付品牌1640(例如,VisaTM、MasterCardTM、American ExpressTM等)。然后支付品牌1640使用接下来五位数字(BIN:银行标识号码)将加密PAN转发给发卡机构1650(发行银行)。
发卡机构1650可使用持卡人姓名和最后4位信用卡数字来缩小数据库中匹配此信息的信用卡条目。可枚举缩小的列表中的每个条目,使用FHE算法将之与加密PAN进行比较,并且将加密匹配指示符乘以对应于列表中的每个条目的数字。来自每个条目的加密结果可全部加在一起以获得最终结果。最终结果可能会加密匹配帐户的数字,对应于所有其他帐户的数字将乘以‘0’(由于不匹配),这将使结果无效。将加密结果发送回支付品牌1640,所述支付品牌1640对加密结果进行解密并将最终结果(对应于匹配帐户的单个数字)发送回发卡机构1650,以验证卡未被报告丢失或被盗,并且所述帐户具有可用于支付交易的适当信用金额/资金。可通过最频繁使用来对卡条目进行排序,并且一旦发现命中就可忽略其余条目以减少验证时间。
如果经批准,则发行者1650生成授权号码并将此号码以及特定卡的FHE加密PAN一起路由到支付品牌1640。支付品牌1640将授权代码和加密PAN转发回收单方/处理器1630。
收单方/处理器1630访问安全库1660以检索/生成对应于加密PAN的令牌。应注意,除令牌之外,安全库1660也可进行FHE加密。
收单方/处理器1630将令牌返回给商家1620。商家可将令牌长期保留在商家数据库1670中,以用于处理退货、检索请求或退款,以及用于诸如分析消费者购买行为和创建营销计划的商务智能原因。
此实施方案是集中式系统的实例,其中只有一个实体,即,信用卡公司1640拥有秘密解密密钥并分发公开加密密钥。另一实施方案是分散式系统,其中每个发卡机构1650持有其自己的秘密解密密钥,并且POS系统识别信用卡属于哪个发卡机构,并使用对应于此发卡机构的适当公开加密密钥对卡的信息进行加密。此分散式系统可能需要另一实体,所述实体单独负责对加密比较结果进行解密。这可能需要将持有加密信用卡信息的发卡机构服务器与保持有价值秘密解密密钥的服务器解耦。
另一实施方案是FHE多方计算的使用。将为每个用户生成不同的秘密密钥,并且公开密钥将存储在信用卡本身中。持卡人数据将由用户的公开密钥进行加密,并可发送到系统以与其他帐户进行匹配。将需要多个秘密解密密钥来解密最终结果。另外,在多个密钥的情况,每一方可能仅限于解密与它们的密钥相关联的信息,并且不能解密任何其他信息,从而改进数据的总体安全性。
所述系统可在多个不同的级别上进行应用:第一版本是全系统,其中信息从源进行加密,并且从不在系统中的任何时刻进行解密。
第二版本是部分系统,其中为了适应当前的支付系统,并降低数据攻击的风险,在支付处理器处,在卡信息解密之后,可使用FHE重新加密卡信息,然后再发送给发卡机构。这可降低攻击的可能性,但存在短暂时刻,其中信息解密与重新加密之间数据未加密,在此情况下数据可驻留在易受攻击的装置存储器中。然而,发卡机构处的信用卡数据库可始终使用FHE保持处于加密状态。
所述系统还支持使用信用卡或PayPa1或其他在线交易服务的在线支付系统进行在线交易,其中支付信息可在通过互联网进行发送之前在客户端PC上进行加密。
根据一个实施方案,信用卡由以下关键信息组成:银行名称(正面);13位至19位数字的信用卡号(正面);信用卡到期日(正面);持卡人姓名(正面);以及卡验证值(CVV)(背面)。信用卡号由前6位数字银行标识号码(BIN)(也称为发行者标识号码(IIN))和6位至12位数字帐号以及单个数字校验和号码组成。帐号和校验和号码的最后3位数字用同一FHE方案进行加密,但使用可给予特定方进行解密的不同密钥。基于BIN或IIN的其他卡,诸如借记卡、回馈卡和商家专用卡也可进行使用,并且具有等同编号系统。
在一个实施方案中,以下字段可使用基于量子安全格的全同态加密(FHE)来进行加密:信用卡号的中间3位至9位数字(例如,账号的安全部分)、到期日和CVV号码。这些字段在验证过程中的任何时候都不会进行解密。它们可能始终呈密文(Ctxt)形式。
信用卡中的剩余项目可使用同一加密方案但用一个或多个不同的公开密钥/秘密密钥对进行加密。适当的密钥管理系统对于系统的总体安全性至关重要。中间方可使用其他密钥来对所需字段进行解密。虽然可使用FHE方案对剩余字段进行加密,但可不对它们应用同态运算。剩余字段的每个字符可被编码在同一多项式中的邻近系数中。剩余字段是:银行名称、持卡人姓名以及信用卡号的前6位数字(BIN号码)和最后4位数字。
这些剩余字段可在验证过程中的某些时刻呈明文(Ptxt)形式。它们帮助标识信用卡公司(第一位数字)以及缩小发卡机构信用卡数据库中的信用卡条目(最后四位数字+持卡人姓名)。此选择将可能的匹配卡缩小到几个。另外,通过划分字段,系统可适应信用卡号系统的未来变化,诸如由国际标准化组织(International Organization forStandardization,ISO)开发的8位数字和字母数字BIN提议。
另外,其他字段可包括在交易请求中并进行无中断处理,因为由于数据未被解密,所以数据的实际源和内容不重要,仅具有对其进行核实和认证的能力。因此,诸如生物信息(例如,指纹)标识、旋转或可变CVV号码以及一次性卡号的开发都可通过本方法和系统进行核实和认证,并且在一些情况下,没有任何实质性变化。
如稍前所提及,信用卡信息中的一些字段在验证过程中的任何时候可能从不进行解密。使用这些加密项执行信用卡认证使用FHE加密方案的特性。
全同态加密允许对加密数据进行加法和乘法运算以生成加密结果,所述加密结果在进行解密时给出对未加密数据应用同一套运算的情况下的正确结果。
在两个单个位x与y之间执行盲匹配,可能对这两个位应用XNOR二进制运算为同态地实现XNOR运算符,需要将其分解成加法运算和乘法运算,具体地,
为匹配多位输入x=x1x2…xn和y=y1y2…yn,这可简单地通过以下来完成:匹配对应的同阶的各个位,并将匹配的各个位的结果相乘z=z1×z2×...×zn。其中最终结果z是指示x是否等于y的单个位。
使用实现XNOR运算用于支持将多个累加器Ctxt(加密先前Ctxt乘法的结果的Ctxt)相乘的其他同态加密方案。此多个累加器乘法不适用于所体现加密方案,因为参数值设定得尽可能小,同时保持安全级别恒定,使得其支持仅将累加器与新鲜Ctxt或源自Ctxt加法/减法运算的Ctxt相乘。这可能会减少Ctxt的存储器和网络使用,还可能加速Ctxt运算。
为解决此问题,可重写XNOR运算以使其适用于所体现加密方案。XNOR再形成为并且对x和y应用此公式将仅在x=y时得到z=1。这解决了系统需求,因为对于多位输入x和y来说,匹配位z等于z=(1-x1-y1)(1-x1-y1)(1-x2-y2)(1-x2-y2)…(1-xn-yn)(1-xn-yn)。现在每个单个括号仅由可使用所体现加密方案实现的Ctxt加法/减法运算组成。
使用利用如上文图6U和图6V中所论述的安全关系运算的FHE加密方案,其中在x>y的情况下z=1否则z=0的安全关系运算也是可能的。这对于能够检查信用卡交易所需金额“y”是否超过此帐户的信用限额“x”(或超过借记卡的帐户限额)非常有用。
根据一个实施方案,在执行安全信用卡认证时,首先将信用卡号的中间数字(对于此实例,假设16位数字卡号的6位数字)转换成位,其中每个位然后使用FHE加密进行加密。对到期日和CVV号码执行相同过程。然后,将这些加密位在网络上与信用卡的持卡人姓名、银行名称、BIN号码和最后4位数字一起发送到支付处理器,然后支付处理器将它们转发给适当发卡机构。然后发卡机构将收到此信息,并且使用持卡人姓名和卡号的最后4位数字,将搜索范围缩小到几个可能的匹配帐户(这归因于姓名和最后4位数字的匹配)并且将提取对应加密信息。然后在传入的加密信息与可能的匹配帐户之间应用安全认证。对非匹配帐户执行的认证操作将产生加密指示符,其为z=0。如果信用卡号、到期日和CVV号码的所有位匹配(以及可能的BIN号码,如果使用),则是匹配帐户,并且如果所请求交易金额小于帐户余额或限额,则将生成加密指示符z=1。然后可将加密指示符‘0’或‘1’乘以对应于缩减列表中此条目的次序的数字。为解密此最终结果并获得对此交易的确认,需要使用信用卡公司(或在分散式方案的情况下发卡机构所拥有的独立安全服务器上)可用的秘密解密密钥对加密指示符进行解密,所述加密指示符对缩减列表中的匹配帐户的次序进行加密。在解密之后,仅返回单个数字,其对应于缩减列表中的匹配帐户的次序。
在另一实施方案中,输入卡和每个匹配帐户的敏感位被划分成“k”个部分,其中“k”对应于每个机器中可用处理器(例如GPU)的数量,并且每个部分被发送到不同的GPU。每个GPU可由范围为0至k-1的数字来枚举。来自每个GPU的结果可通过乘以其中1被移位到对应位置的多项式来旋转达对应于其GPU数的多个多项式时隙。当可从每个GPU获得结果时,将所有结果相加。这将产生这样的结果,其中加密多项式的k个时隙各自具有对应于相应位的匹配或不匹配的位。在解密之后,如果所有位都不为零,则此意指此帐户匹配。当找到匹配帐户时,可将其放在数据库列表的顶部,以便在下次使匹配时间更快,也可忽略剩余帐户。
用于此系统的量子安全、基于格的FHE方案可能是计算密集型的。为加速同态运算,图形处理单元(GPU)与系统中的CPU一起使用。每个GPU能够支持每秒多次交易。为实现如VISATM和MasterCardTM的大型交易公司所需的每秒高交易量(每个可能需要多达每秒4000次交易),需要许多GPU卡。为实现这种性能吞吐量,可实现可被缩放以满足任何级别的需求的多服务器环境。
此外,虽然上述实施方案呈现交易请求中的信用卡与账户名称和号码列表的简单匹配以确定有效账户的存在,但其他核实列表和类型也可进行。例如,可能存在单独的被盗/丢失卡和持卡人数据列表,交易请求也可与之进行比较。在所述情况下,卡号可能有效,但如果卡也出现在被盗/丢失列表中,则认证被拒绝。类似过程也可用于其他核实和认证列表(诸如用于交易的列入黑名单的国家),同时保持遵守关于此类信息的公开的法律。
这也可针对用户和/或商家的利益,诸如通过将请求中的数据与商家回馈计划相匹配,或者通过从请求中提取数据或通过在列表中与之进行匹配。这减少了对多交易和单独处理的需求,从而可能导致更高的交易效率。其他扩展和变型可能仅受数据带宽和处理时间要求的限制。
实际上,可在无需解密的情况下针对任何加密数据集核实和验证任何加密数据。由于不需要共享解密信息,因此可更容易地适应数据格式、数据结构甚至数据本身的变化。
同态加密本身不提供数据完整性。黑客可通过对静止或运动的数据应用数学运算来篡改加密数据。这可能会影响所操纵数据的结果,并可能将结果改变为可能有助于黑客攻击的内容。例如,对具有加密“1”的最终加密标志应用同态OR运算,这将使结果始终为“1”或“交易被授予”。可通过应用额外的数学机制以提供防篡改信用卡认证系统来提供阻止未授权方的修改的数据完整性保护。作为实例而非限制,可将哈希消息认证码(Hash-basedMessage Authentication Code,HMAC)附加到加密消息以提供消息完整性的所需认证。
此外,作为信用卡交易的额外安全保护层,系统可支持对随时间周期性变化的信用卡CVV号码进行加密。系统可对CVV号码生成器密钥进行同态加密并将其存储在银行数据库中。当新消费者信用卡要进行验证并授权购买时,对CVV生成器密钥同态地应用数学运算,以生成要与要验证的消费者信用卡匹配的新的有效CVV号码。
例如,在此系统和方法中可使用其他形式的静态或准静态私有标识数据,所述数据需要机密/加密处理以及对请求的核实和认证。不仅仅是银行借记卡(与信用卡类似的数据结构),而且可使用通常发现呈卡或类似格式的其他私有标识。诸如医疗ID或保险卡,其可包含姓名、组号或计划号和个人标识符,以及从中检索数据以进行核实的保险提供商的名称。或者护照,其可包含号码、护照号、签发日和到期日、国籍和签发国家,以便进行核实。如同信用卡,被视为机密的数据和可作为明文共享的数据取决于负责标识数据的管理机构(例如,护照的情况下,政府)的决定。
作为另一实例,此系统和方法还可用于认证领域,诸如认证即服务(AaaS)软件,其作为基于云的身份管理服务进行操作以用于保护对不同位置中的可由可能的许多用户使用多种装置从世界上的任何地方进行访问的数据和应用的访问。除标识和认证之外,本系统和方法还可用于搜索政府维护的禁飞列表或包含机密和/或敏感个人信息的其他形式的监视列表或注册表,以例如在没有向运营商透露其他信息的情况下确认个人在列表上存在还是不存在。
在图17中示出根据一个实施方案的全系统。当支付处理器1710将信用卡信息发送到发卡机构时,可进行认证过程。发卡机构可具有接受传入请求的前端服务器1720。此前端服务器1720可连接到GPU机器群1730的网络,所述GPU机器群1730向前端服务器1720发送关于其占用情况(其是否闲置)的频繁更新。当前端服务器1720接收到请求时,它可检查其服务器表中的闲置机器1740,并获取其对应IP地址。然后将此IP地址发送回支付处理器1710。然后,支付处理器1710连接到此闲置计算节点1740并向其发送持卡人卡信息。当计算节点1740获得所述信息时,它可从数据库中获取信用卡的匹配持卡人姓名和最后四位数字的数据。然后可在此特定机器1740上的所述GPU上进行认证过程。然后可将认证操作的结果发送到信用卡公司1750以进行解密。然后可将解密的认证数字发送回发卡机构1710以指示最终结果。此系统可被实现为简化前端服务器1720的网络连接要求并将其分布在所有计算节点1730上。
医疗数据收集
图1示出体现本发明实施方案的各个方面的用于与机密医疗数据一起使用的联网的计算机系统。多个远程医疗装置20通过广域网24连接到医疗数据系统22。远程医疗装置20可包括诸如可穿戴装置26、患者终端28、实验室终端30等的装置。可穿戴装置26可包括诸如专用医疗装置、智能手表、可穿戴计算机、可穿戴活动跟踪器、智能服装等的装置。可穿戴装置26可包括但不限于诸如加速计、心率监测器、温度监测器、呼吸监测器、葡萄糖监测器、全球定位系统(GPS)接收器、气压传感器、它们的组合等的传感器。患者终端28和实验室终端30可包括诸如智能手机、平板计算机、台式/膝上型计算机等的装置。相互区分诸如可穿戴装置26、患者终端28和实验室终端30的远程医疗装置20的特征并不预期限制本发明。这些装置26至30的功能可重叠。可穿戴装置26和患者终端28直接从患者收集数据,并且可在无需患者手动输入的情况下如此做。可穿戴装置26和患者终端28可允许患者32手动输入(例如,键入或选择)数据。实验室终端30可能需要医疗人员34(例如,临床医师、实验技师、护士、内科医师等)的一些形式的手动输入来输入与医疗测试相关的数据(例如,血液检查结果)和对患者32进行的其他医疗规程。
远程医疗装置20可被配置来收集关于患者医疗状况或健康的数据。此类数据可被视为属于两大类:医疗数据和非医疗数据。这些类别不是限制性的,并且可能存在重叠或各种类型的数据可能属于这两类。医疗数据可包括但不限于生理数据和/或直接指示人的医疗状况或健康的数据。医疗数据的实例包括心率、体温、呼吸率等。医疗数据可由远程医疗装置20(例如,心率监测器)直接测量,或者可由患者或医疗专业人员输入到装置20中(例如,将血压测量值输入到终端中)。
非医疗数据是可能与医疗结果/诊断间接相关的数据,并且可包括但不限于与环境因素、遗传因素、健康行为、社会和社区因素、社会经济因素、社会人口因素以及政府或国家因素有关的数据。环境因素可以是可能影响人类健康的物理环境因素,例如,水质、空气质量、噪音污染、工作条件。遗传因素可与通常受个体行为或受社会、经济或物理环境影响的那些之外的遗传因素有关;遗传因素决定某些条件的易感性。健康行为因素可以是与个人行为有关的因素和流行病学研究已表明影响健康状况的风险因素,例如,个人健康实践、健康儿童发展。社会和社区因素可以是衡量社会和社区因素普遍程度的诸如流行病学研究已表明与健康有关的社会支持、生活压力或社会资本的因素,例如,入学准备度、文化背景、社会支持、社会环境、社会地位、住房负担能力和文化素养。社会经济因素可以是与流行病学研究已表明与健康有关的人口社会经济特征有关的因素,例如,就业状况、收入、社会地位、教育水平。社会人口因素可以是与群体的社会人口特征有关的因素。这些指标关于或涉及社会因素和人口因素的组合,包括:性别、年龄、教育程度、文化背景、就业状况、职业、婚姻状况、房屋居住总人数和生活安排。政府或国家因素可以是与政府政策、资金、基础设施和计划等有关的因素。技术人员将理解,以上因素不是确定的,并且一些因素可在多于一个类别中找到。非医疗数据可由患者或医疗专业人员输入到装置20中(例如,将患者的入息组别输入到终端中)。
广域网24可包括一个数据网络或多个数据网络的组合,诸如局域网、无线网、蜂窝网、内联网、虚拟专用网(VPN)和互联网。
医疗数据系统22可包括可称为服务器、配置有程序代码的一个或多个计算机,所述程序代码存储在存储器中且由一个或多个处理器执行以对从远程医疗装置20收集的数据执行同态计算,如下文所详细论述。
所述系统还可包括密钥管理系统36和分析师终端38。
密钥管理系统36存储一个或多个密码密钥,诸如用于全同态非对称密码方案(诸如环上带误差学习(RWLE)或NTRU同态加密方案)的一个或多个私有(秘密)密钥。密钥管理系统36包括被配置来存储此类私有密钥并限制私有密钥供授权用户使用的一个或多个服务器。
受密钥管理系统36控制的每个私有密钥可对应于分发给远程医疗装置20的公开密钥。由远程医疗装置20加密的数据可由访问相应私有密钥的用户进行解密,但这不是本实施方案的核心。根据本实施方案,对加密数据执行的同态计算的结果可由访问相应私有密钥的用户进行解密。预期大量远程医疗装置20可共享同一公开密钥,从而形成用于不需要解密数据的同态计算的大且连续的数据源。相反,可能仅需要私有密钥来解密计算结果。
可使用任何数量的公开密钥-私有密钥对。可能是有利的是,通过向医疗装置20提供不同的公开密钥,根据装置类型或其他因素将此类装置划分成不同的集合。例如,可给予可穿戴的心率监测器一个公开密钥,而可给予用于记录血液检查结果的实验室终端30不同的公开密钥。当对心率和血液检查数据执行计算时,这可能需要在医疗数据系统22处进行附加处理,但如果对应私有密钥之一受到损害,则可提供减少患者数据暴露的益处。可基于诸如医疗保健集团/组织、保险公司、装置制造商等其他因素给予不同集合或类型的医疗装置20不同的公开密钥。此外,对于收集多种类型的数据(例如,医疗和/或非医疗数据)的医疗装置20,可将每种类型的数据指派给不同的公开密钥,以便通过所述公开密钥进行加密。同样地,这可减少患者数据的暴露。为清楚起见,本文所论述的实例引用单个公开密钥-私有密钥对,但应注意,本发明预期各种公开密钥-私有密钥对。此外,重要的是应注意,使用一组数据进行的协作和计算限于能够由同一私有密钥进行解密的一组加密数据。因此,为促进广泛协作和计算,将系统限制到单个私有密钥可能是有利的。
分析师终端38可包括诸如智能电话、平板计算机、台式/膝上型计算机等的可由诸如研究员、临床医师、内科医师、管理员、承保人等分析师40进行操作的装置。分析师终端38可启动在医疗数据系统22处执行的同态计算,并且可具有此类计算的由密钥管理系统36持有的私有密钥进行解密的加密结果。然后可在分析师终端38处输出计算的明文结果以进行进一步计算和研究。
可提供私有密钥以取决于根据本发明的各种实现方式的特定要求以各种方式解密计算结果。可将加密计算结果传输到密钥管理系统36以便在密钥管理系统36处进行解密,其中将计算的解密明文结果(DR)42传输到一个或多个分析师终端38以通过安全信道44(诸如安全子网、通过广域网24运行的VPN、或提供增强安全性的类似网络)进行输出。另外地或可替代地,这种安全信道44可用于将私有密钥从密钥管理系统36传输到分析师终端38,以在一个或多个分析师终端38处解密计算结果。安全信道44不必限于网络通信。例如,分析师终端38可位于安全位置,诸如在医疗保健或研究设施的物理安全区域内,从而在要通过网络传输私有密钥或加密数据的情况下向安全信道44提供物理形态。可替代地,安全信道44可主要或完全是物理的,并且可将私有密钥或加密数据拷贝到可用于将私有密钥或加密数据手动传达给分析师终端38的物理钥匙卡、记忆棒或类似装置上。
在操作中,数据可由远程医疗装置20进行连续收集,在远程医疗装置20处进行加密,并作为加密数据(ED)50传输到医疗数据系统22。大体来说,将数据传输到医疗数据系统22的任何装置都可被配置来在传输之前加密其数据。医疗数据系统22可视需要存储加密数据50。在任何时候,分析师终端38都可用于选择一组数据以进行分析并配置要对所选一组数据执行的计算。此信息可由分析师终端38作为计算命令(CC)52发送到医疗数据系统22,所述计算命令52触发医疗数据系统22在不解密数据的情况下根据同态技术对所选加密数据执行计算,以获得加密结果54。然后可将计算的加密结果54传输到分析师终端38。然后分析师终端38可使用安全信道44获得解密结果42以与密钥管理系统36进行通信。
有利地,在执行计算期间可不解密数据。患者隐私可得到改善,并且预期更多患者在知晓他们的数据被更好地保护的情况下可自愿将他们的医疗数据用于医疗研究。此外,由于数据和计算结果以加密形式进行传输并且由于对私有密钥的严格控制,因此可减轻中间人和其他类型攻击的机会。
在其他应用中,诸如可穿戴装置26、患者终端28、实验室终端30、数据系统22、终端38、远程装置130和其他部件的远程装置20可不是特定医疗导向的装置,而可以是通用装置或特定于所选应用的装置。
图2示出示例性远程医疗装置20。远程医疗装置20可包括传感器60和/或输入装置、加密引擎62以及网络接口64。远程医疗装置20还可包括用于存储捕获的数据66、公开密钥68和加密医疗数据50的存储器(例如,RAM、硬盘驱动器、固态驱动器等)。远程医疗装置20还可包括被配置来执行加密引擎62并控制远程医疗装置20的操作的处理器。
传感器和/或输入装置60可被配置来捕获诸如患者的个体的医疗/生理数据和/或非医疗数据66。示例性传感器包括心率传感器、呼吸传感器、血糖传感器、血压传感器等,在本文其他地方论述众多其他实例。能够测量或捕获医疗数据的任何传感器和/或输入装置60是预期的。示例性输入装置包括键盘或触摸屏,以用于手动输入医疗或非医疗数据。输入装置可与传感器一起使用,使得所收集数据包括手动输入的数据以及直接测量的数据。所捕获数据的类型和性质不受特别限制。
加密引擎62可被配置来应用公开密钥68来加密所捕获数据66以生成加密数据50。加密引擎62可被配置来执行如上所论述的全同态加密。
网络接口64可被配置来将加密数据50传达到网络24并且具体地传达到医疗数据系统22(图1)。在已将加密数据50传输到医疗数据系统22之后,可将其删除以节约存储器。
图3示出数据系统22的实例,如上所提及,数据系统22可以是医疗数据系统22。医疗数据系统22可包括网络接口80、数据累加器82、查询构造器84、患者/用户接口86和计算引擎88。医疗数据系统22还可包括用于存储加密数据50、加密计算结果(ER)54、患者数据90(或非医疗应用中的其他数据)、和授权92的存储器(例如,RAM、硬盘驱动器、固态驱动器等)。医疗数据系统22还可包括被配置来执行数据累加器82、查询构造器84、患者/用户接口86和计算引擎88并且控制医疗数据系统22的操作的处理器。应注意,由于医疗数据系统22对加密数据执行其计算,因此不需要在医疗数据系统22处存储加密密钥。
网络接口80可被配置来接收来自网络24的数据和命令。网络接口80可被配置来从远程医疗装置20接收加密数据50和患者命令。网络接口80可被配置来从分析师终端38接收计算命令。
数据累加器82可被配置来控制从多个远程医疗装置20对加密数据50的捕获。数据累加器82可被配置来周期性地询问每个远程医疗装置20以获得新加密数据,作为响应接收此类加密数据,并将此类加密数据50存储在医疗数据系统22处的存储器中。数据累加器82可被配置来将授权92用作收集数据的条件。
查询构造器84可被配置来从分析师终端38接收计算命令。计算命令触发计算引擎88开始计算。计算命令可包括指定要对其进行计算的一组加密数据50的参数以及指定计算性质的参数。查询构造器84可被配置来向分析师终端38提供可用于计算的加密数据50的概要。查询构造器84可被配置来将授权92用作在计算中使用加密数据50的元素的条件。
患者/用户接口86可被配置来从远程医疗装置20、分析师终端38或其他装置接收患者命令和数据,并输出关于加密数据50的信息。具体地,患者/用户接口86可被配置来接收不一定加密的患者数据90。患者数据90可包括诸如唯一标识符、姓名、地址、出生日期、整体健康状况和指示、所收集加密数据50的类型的描述等的数据。患者数据90可包括在设计医疗研究时有用的数据。患者数据90还可包括与加密数据50的关联,使得加密数据50的元素可链接到被视为对设计医疗研究有用的患者数据90。例如,患者数据90与加密数据50的关联可包括加密数据50和患者数据90两者中的患者的唯一标识符,诸如散列或序列号。可能有益的是,将唯一标识符以明文形式包括在加密数据50中,诸如通过附加到加密数据50的未加密元数据字段、文件名或与存储在数据库中的加密数据50相关联的未加密数据库字段。
患者/用户接口86可被配置来接收命令以控制由患者或其他个人授予例如终端38处的分析师的授权92。授权92可包括指示对收集和存储加密数据50的同意的数据,并且同意使加密数据50可用于计算引擎88。在医疗应用中,授权92可包括一个或多个多对多映射,所述一个或多个多对多映射将患者映射到数据并且进一步映射到个人或组织,使得每个患者(或他/她的法定代理人)可同意向任何个人或组织(例如,患者的主要照顾者、主管医生或医疗研究、医院等)提供任何类型的数据(例如,血压、心率等)。授权92还可包括用于同意的时间窗,使得在所选时间到期之后自动撤销同意。
患者/用户接口86可包括用于验证修改患者数据90和授权92的用户被授权进行此类改变的认证系统,诸如用户名和密码登录认证系统。
计算引擎88可被配置来根据定义所述一组加密数据50和要执行的计算的所接收参数对加密数据50执行同态计算。计算引擎88输出通过网络接口传输到密钥管理系统36或分析师终端38的加密结果54。计算引擎88可被配置来在加密域中执行任何合适的计算。
预期此类计算包括加法、乘法、离散计算、连续计算、使用关系运算进行的比较、它们的组合等。特定医疗计算可包括但不限于房颤中风风险评分计算、心血管风险评分计算以及基因型计算。此外,此类计算可被建模为多项式级数。为达成此情况,可如下所述配置计算引擎88。
图4示出示例性密钥管理系统36。密钥管理系统36可包括网络接口100、授权处理器102以及解密引擎104。密钥管理系统36还可包括用于存储加密计算结果54、私有密钥106和解密结果42的存储器(例如,RAM、硬盘驱动器、固态驱动器等)。私有密钥106对应于存储在远程医疗装置20中的公开密钥68(图2)。密钥管理系统36还可包括处理器,所述处理器被配置来执行授权处理器102和解密引擎104,以及控制密钥管理系统36的操作。
网络接口100可被配置来通过安全信道44(图1)从分析器终端38接收加密结果54。网络接口100可进一步被配置来将解密结果42传输到分析师终端38。可替代地或另外地,网络接口100可被配置来通过安全信道44将私有密钥106传输到分析师终端38。
授权处理器102可被配置来将对密钥管理系统36的访问限制为授权用户。授权处理器102可包括用于验证尝试访问解密结果42或私有密钥106或两者的用户的认证系统,诸如用户名和密码登录认证系统或电子凭证验证系统。
解密引擎104可被配置来应用私有密钥106来解密加密计算结果54以生成解密结果42。解密引擎104可被配置来执行如本文所论述的同态解密。
图5示出数据系统120,如所提及,其可以是医疗数据系统120。医疗数据系统120可包括本文所论述的部件,诸如医疗数据系统22。可用指示相同部件的相同附图标记来引用对此类部件的描述。为清楚起见,将仅详细论述差异。医疗数据系统120可代替图1的系统中的医疗数据系统22。
医疗数据系统120可被配置来基于对从患者远程医疗装置20所接收的加密数据50执行的计算来生成警报。医疗数据系统120可通过网络24将这些警报传输到可对此类警报作出反应的医疗专业人员操作的远程装置130(图1)。预期所生成警报保留在加密域中。这样一来,在以明文形式传输到相关远程装置130之前,可通过密钥管理系统36路由警报以进行解密。在这种情况下,可通过将警报的明文形式作为警报性质的一般指示(例如,诸如“血压警报”的文本警报)而非特定数值来增强隐私,如所预期,警报的接收者可能具有特定医疗状况的背景知识,以及可能的特定警报触发值的知识。可替代地,可向远程装置130提供私有密钥以解密所接收警报。
医疗数据系统120可包括可由处理器执行且可由授权用户进行配置的警报触发器122。警报触发器122和计算引擎88可执行加密结果54与存储在存储器中且可由授权用户进行配置的加密警报条件124之间的比较。加密警报条件124最初可通过网络接口80以未加密形式接收,之后由加密引擎62使用在远程医疗设备20处加密数据的同一公开密钥68进行加密。加密警报条件124可应用于由加密结果54表示的数据,并且警报触发器122发出针对满足条件的数据的警报。此类警报可被配置来通过网络接口80和网络24传输到诸如医疗专业人员的所选授权用户的远程装置130。警报可通过密钥管理系统36传达以进行集中解密,之后以明文形式转发给所选授权用户。可替代地,远程装置130可存储私有密钥106,并且可被配置有解密引擎104以解密警报。例如,医生可使用由计算引擎88使用由可穿戴医疗装置26连续收集的加密原始血压数据在加密域中进行同态评估的血压方程,为患者设定由患者数据90识别的警报条件124。加密警报条件124可以是血压方程的在满足或超过的情况下致使警报触发器122向由医生和专家操作的远程装置130发送原本他们可能不知道特定警报条件的电子警报消息的特定最大值、最小值或区间。有利地,特定评估和评估值可保留在加密域中,以便改善患者隐私。即,除设定警报的患者和用户之外的任何实体都未必知道所考虑血压方程、条件和血压数据,而是可基于该实体向任何实体发出警报。
可周期性地或在检测到新加密数据50时评估警报触发器122。警报触发器122可存储关于警报传递的信息,诸如将接收警报的目的地远程装置130的网络地址(例如,电子邮件地址、电话号码等)。
医疗数据系统22、120的特别是计算引擎88的各种部件可实现为一个或多个硬件装置。此类硬件装置可被配置来仅使用硬件或通过使用执行程序代码的硬件来实现本文所论述的计算技术。合适的硬件装置可被配置来使用例如孙子剩余定理(Chinese RemainderTheorem,CRT)、数论变换(Number Theoretic Transform,NTT)、一个或多个存储器块、一个或多个存储器接口、矩阵乘法、矩阵加法或它们的组合来实现本文所论述的计算技术。实现此目的的一种所述合适的硬件装置是图形处理单元(GPU)。合适的硬件装置的其他实例包括现场可编程门阵列(FPGA)和专用集成电路(ASIC)。
本发明的实施方案可用于实现基因组关联研究中所使用的统计技术。此类技术的实例包括皮尔逊拟合优度检验和卡方趋势检验(Cochran-Armitage Test for Trend,CATT)。
基因型和表型可编码和加密如下。在此实例中,实验室终端30(图1)被配置来执行对医务人员34从患者32所获得的遗传数据的编码和加密。
关于基因型编码,构建包含基因型信息的表,其中每行对应于关于单个人的基因型信息。对于双等位基因,使用三个密文cAA、cAa、caa对每个人的基因进行编码。这些密文仅在满足图6H中的等式语句的情况下才加密“1”。否则加密“0”。在指定基因座处的人的基因型未知的情况下,所有密文将加密“0”。
关于基因型/表型相关编码,可减少预计算时间和最终加密结果中的噪声,这将允许视需要对所得密文进行进一步计算。生成基因型{AA,Aa,aa}与表型{患病,未患病}之间的相关矩阵,以生成3×2相关矩阵,其中密文在对应于此人的基因型/表型条件的单个位置处加密“1”,否则加密“0”,如图8所示。如果此人的基因型或表型未知,则所有密文将加密“0”。
关于皮尔逊拟合优度检验,该检验用于检查基因是否符合哈代-温伯格平衡定律(Hardy-Weinberg Equilibrium,HWE)。如果基因等位基因频率是独立的,则可使用HWE进行测试。假设A和a是给定基因中的两个等位基因,且NAA、NAa和Naa分别是基因型AA、Aa和aa的对应数量。取N=NAA+NAa+Naa作为基因型的总数,可同态地计算图6I中的参数,其中Nij可如图6J进行计算。然后可使用这些参数通过图6K的方程来计算最终偏差检验统计量。
卡方趋势检验(CATT)用于确定等位基因是否与疾病相关联。可如图6L的方程所示地使用图6M的计算参数计算检验,其中wi是预定加权∈{0,1,2},Nij表示患有/未患特定疾病且具有基因型ij的个体数目。参数Nij、Ri、Ci在图9中进行描述。
可使用预测方程来检查不同的疾病。为了计算预测方程,可使用患者医疗数据。为保护此类医疗数据,可使用同态加密来加密这些数据,并且可在安全环境中执行回归方程的计算,诸如通过在医疗数据系统22、120处使用计算引擎88。在一个实例中,通过图6N所示的逻辑回归函数给出在未指定时段中心脏病发作的可能性的预测模型,其中x由图6O的方程计算,其中a是年龄,sys是收缩血压,dia是舒张血压,chol是胆固醇水平,ht是身高,wt是体重。
为实现图6L的方程中的指数表达式,可使用泰勒级数达到可接受的阶,以产生足够精度(例如,7度),如图6P所示。由于同态加密使用整数运算,因此可以以适当的精度将图6O和图6P的方程标准化为图6Q和图6R的方程。
图6Q和图6R的方程的输入表示为整数,并且在邻近多项式时隙中以二进制格式进行编码。当这些二进制多项式相乘时,它们产生正确的输出。常数乘法可通过顺序加法来实现。为计算出正确的输出,将图6Q方程的结果传输回具有加密引擎62的装置(例如,远程装置20)以进行重新加密并应用于图6R的方程,以计算出最终结果。
关于诸如上文关于计算引擎88所论述的那些的关系运算,可实现诸如大于且小于(>且<)的同态关系运算。关系运算a>b仅产生一个位,如果a>b则等于“1”,否则为“0”。每个输入a和b的各个位被加密并分别表示为ai和bi。对于k位数且从最低有效位开始,输出由zk给出,如图6S所示。如果两个输入中的任何一个未进行加密,则图6S所表示的计算的复杂性可大大降低。例如,如果b未进行加密,则所得方程将如图6T所示。
关于血压测试,计算引擎88可被配置来接受加密收缩压和舒张压并返回血压分类,诸如图10中所列那些血压分类。为实现这种计算,将输入血压与多个范围进行比较以确定血压分类。这可通过将计算引擎88配置有函数来完成,所述函数是根据图11的伪代码的函数。伪代码函数的“Res_Sys”和“Res_Dia”输入参数各自包含范围为0至5的加密数字,其指示分别与收缩“Sys_Ref”和舒张“Dia_Ref”中血压范围进行比较的输入加密血压测量值的分类。
以上血压计算仅是一个实例,并且预期应用此类关系运算的许多类似实例。例如,计算房颤中风风险的CHADS2评分可以以类似方式进行。许多其他类似计算都在本发明的范围内。
在另一实例中,弗雷明翰冠心病风险评分(Framingham Coronary Heart DiseaseRisk Score,FCRS)是用于估计人的10年心血管风险的计算。所述计算基于若干因素,包括性别、年龄、吸烟与否、总胆固醇、高密度脂蛋白(HDL)胆固醇和收缩血压。将每个变量与一系列数字进行比较,并针对每个范围指派评分,并将所述评分添加到整体弗雷明翰评分中。例如,如果一名男性的年龄是50岁,则总分中会加6分。
为实现此计算,可扩展上文所述的关系运算概念以将输入“b”与下界“a”和上界“c”进行比较。函数a<b<c被实现来在“b”在此范围内的情况下仅给出“1”,否则为“0”。
实现a<b<c一种方法是分两步实现它,即a<b然后b<c并将结果相乘。然而,在此方法中,如在许多GSW衍生的同态加密方案中,同态乘法是不对称的,这阻止两个非新鲜密文的乘法,非新鲜密文是包含密文乘法结果的密文。可有利地再形成a<b<c的方程以在计算引擎88处实现,使得新鲜密文可乘以累加器。
为实现此类再形成,对于具有加密位[b0,b1,...,bk-1]的与“a”和“c”(加密或未加密)进行比较的k位输入“b”,函数a<b<c可如图6U和图6V的方程中所示地实现。图6U的方程定义位“0”而图6V的方程定义每个位“i”,其中xi、yi、zi是累加器,bi是输入b的加密位i,而ai、ci分别是下界和上界的位。关系运算的结果包含在zk中。在ai和ci是明文的情况下,图6V的方程可如关于图6T所述的进行进一步简化。
对根据本发明构造的系统进行测试。图12详述所用的测试系统。图13概述与以下者进行比较的本发明的同态运算的性能结果:图13中“Khedr 2014”处所示的Khedr,A.、Gulak,G.和Vaikuntanathan,V.SHIELD:Scalable Homomorphic Implementation ofEncrypted Data-Classifiers,Cryptology ePrint Archive,Report 2014/838,2014(http://eprint.iacr.org/2014/838.pdf);图13中“Lauter 2014”处所示的2014年6月Lauter,K.、Lopez-Alt,A和Naehrig,M.的Private Computation on Encrypted GenomicData.Tech.Rep,MSR-TR-2014-93;以及图13中“LBos 2014”处所示的2014年Elsevier公司的LBos、JW、Lauter,K.和Naehrig,M.在Journal of biomedical informatics中第234-243页发表的Private predictive analysis on encrypted medical data。“Lauter 2014”报告的结果是针对具有较大电路深度的较大参数,因为用于测试本发明的电路深度高于具有所选参数的“Lauter 2014”。可看出,与“LBos 2014”相比,本发明的CPU实现方式可实现乘法运算的58倍加速。通过另外探索本发明的可并行化特性,可通过在GPU核心上分配计算来实现104倍加速。与“LBos2014”相比,这导致乘法运算的总体6085倍加速,而与“Lauter2014”相比,为286倍加速。
本发明可有利地跨多个GPU卡进行扩展。使用连接到同一计算机的四个GPU卡进行实验,以测量由于跨GPU通信所致的性能损失。通过将大问题划分为小问题,可在所有四个GPU之间调度计算以获得3.946倍的加速,这表明通信开销得以减少。
在图14中概述上文所述皮尔逊拟合优度检验和CAAT检验、预测分析以及关系运算和血压应用的性能结果。结果与图14中所示的“Lauter 2014”、“LBos 2014”以及“Cheon2014”处的Cheon,J.H.、Kim,M.和Kim,M.的Search-and-compute on Encrypted Data,Cryptology ePrint Archive,Report 2014/812,2014(http://eprint.iacr.org/)进行比较。应注意,“Cheon 2014”的报告结果对应于环Z14,这是因为,在本发明的血压实例中,添加两个以上的数字以获得最终的正确结果。
包括生理数据的医疗数据是复杂、庞大的并且可能非常嘈杂。数据收集中的噪声可能起因于例如用于收集数据的技术、人为失误、系统本身的内在随机性、重复观察的个体内变异性以及组内/种群变异性,或者可指示异常、恶疾或疾病。由于噪声的原因,数据挖掘包括可用于数据探索以及从所存储患者数据中发现图案化疾病的数据聚类和表征应用。机器学习应用也可用于根据来自过去治疗过的患者的最终诊断针对其进行验证的所收集数据来预测个体患者结果。数据挖掘和机器学习两者在筛查、诊断、治疗、预后、监测、流行病学研究、生物医疗/生物分析、医院管理、医疗指导和培训等过程中都有所帮助。
另外,根据一个实施方案,本文所述加密方案可用于隐私保护机器学习应用、包括隐私保护数据聚类应用的隐私保护数据挖掘、以及通常对医疗、金融或其他机密数据进行的安全计算中。例如,计算引擎88可被配置来在包括对加密数据的隐私保护数据聚类应用的隐私保护数据挖掘中执行与隐私保护机器学习应用相关的同态计算。
根据对本发明的以上描述中,许多优点显而易见。关于可穿戴和便携式装置以及“物联网”(IoT),本发明可用于加密由可穿戴和便携式装置所测量的所有数据,之后将此类数据上传到云。这有助于研究员和临床医师以保护隐私的方式对机密数据进行研究。如所论述,这些装置可存储由集中式实体产生的公开加密密钥,所述集中式实体还负责对例如计算结果/警报将被解密的医院和其他医疗设施的私有/秘密密钥的控制和分配。可穿戴/便携式装置仅需要加密所捕获数据,并且在这些种类的装置中已知的适度处理能力对实现方式将来说并非重大障碍。由于加密函数的执行不一定是时间关键的,因此嵌入式处理器可在几秒而非几毫秒内加密所测量数据而仍然具有可接受性能。
本发明可在不背离其精神或基本特点的情况下以其他特定形式来体现。对于本领域技术人员来说,本发明的某些调试和修改显而易见。因此,当前所论述实施方案被视为说明性的而非限制性的,本发明的范围由所附权利要求而不是前述描述指示,且因此属于权利要求的等同物的含义和范围内的所有变化意图包括在本文中。