高效的并发标量积计算制造技术

技术编号:26927540 阅读:61 留言:0更新日期:2021-01-01 22:58
本发明专利技术提供了用于执行隐私保护标量积的计算的方法和系统。分别具有第一向量和第二向量的第一方和第二方(例如,第一计算机和第二计算机)可以同时确定两个向量的标量积,而无需向另一方揭示任何向量。每个向量都可以进行掩蔽,然后使用非对称密钥对的公共密钥进行加密。使用同态加密操作,可以在所述向量仍处于加密时确定所述向量的所述标量积。各方可以将所述标量积或从所述标量积导出的值与预先确定的阈值进行比较。例如,双方可执行所述标量积来比较表示为向量的两个生物特征识别模板,而无需向彼此揭示所述生物特征识别模板,从而保留与这些生物特征相对应的人的所述隐私。

【技术实现步骤摘要】
【国外来华专利技术】高效的并发标量积计算相关申请的交叉引用本申请是2018年5月24日提交的美国专利申请号62/676,219的非临时申请并且要求其优先权,该非临时申请的全部内容以引用方式并入本文。
技术介绍
在许多情况下,计算机可以简单地将它们的数据在彼此之间传输来进行比较,特别是当数据是非私有数据时。例如,用户可能想检查本地软件是否是最新的(即,软件是该可用软件的最新发布的稳定版本)。用户将关于软件的数据传输至外部服务器进行比较可能没有问题。然而,在一些情况下,特别是那些涉及私人数据或个人身份标识信息(例如,病历、支付账号、生物特征识别)的情况下,用户可能不希望将该数据传输至另一外部计算机,因为担心该外部计算机可能在由欺诈或恶意用户或组织操作。遗憾的是,有一些可用的技术,诸如安全的多方计算技术,可以使两台或更多台计算机比较数据或执行计算而不彼此揭示相应的数据。遗憾的是,这些技术通常速度慢、复杂并且需要大量的计算操作。如果参与的计算机连接不良,则安全的多方计算失败的可能性会大大增加。另外,大量的通信和计算操作使此类协议不适用于对时间敏感的应用程序或低性能计算环境。实施方案单独地和共同地解决了这些和其他问题。
技术实现思路
本专利技术的实施方案涉及用于安全且同时计算两个向量的标量积(或“点”积)的方法和系统。第一计算机和第二计算机可分别具有第一向量和第二向量,并且可以同时计算第一向量和第二向量的标量积,而第一计算机无需向第二计算机揭示第一向量并且第二计算机无需向第一计算机揭示第二向量。每台计算机可将标量积或从标量积导出的值与预先确定的阈值进行比较。假设标量积或从标量积导出的值超出预先确定的阈值,则第一计算机和第二计算机可以彼此进行交互。例如,交互可包括第二计算机向第一计算机发行访问令牌。例如,生物特征授权系统(第二计算机)可以将由(由与生物特征识别向量相对应的用户操作或拥有的)第一计算机提供的生物特征识别向量(即,向量化的生物特征识别实例)与存储在第二计算机处的生物特征识别向量进行比较,并且如果生物特征相匹配,则第二计算机可发行访问令牌(诸如支付令牌或使用户能够访问建筑物的令牌)。然而,第二计算机可能不希望向用户提供其存储的生物特征识别向量的副本,因为用户可能是试图窃取生物特征识别向量来执行身份盗窃的欺诈者。同样,由于第二计算机可由欺诈者操作,因此用户可能不愿意向第二计算机提供其生物特征识别向量的副本。实施方案可用于计算标量积并且使用该标量积来执行两个生物特征识别实例的比较,而无需用户向第二计算机揭示它们相应的生物特征识别向量,并且无需第二计算机向用户揭示其相应的生物特征识别向量。这样,可以授权用户,而不存在暴露任何敏感数据的风险。实施方案提供了对常规系统的改进,因为实施方案使得能够在不执行计算机或实体之间进行尽可能多的通信的情况下计算标量积,从而提高速度和可靠性。在本公开的实施方案中,第一计算机和第二计算机同时计算标量积,并且第一计算机或第二计算机都不需要将第一向量的平方大小α或第二向量的平方大小β传输至另一台电脑。相对于传统系统,这减少了计算机之间发送的消息数量,提高了协议的速度、效率和可靠性。一个实施方案涉及一种方法,该方法包括:由第一计算机向第二计算机传输第一公共密钥、第二公共密钥、第一加密掩蔽向量和第一加密随机向量,其中该第一加密掩蔽向量是使用第一公共密钥加密的第一掩蔽向量,并且第一加密随机向量是使用第二公共密钥加密的第一随机向量;由所述第一计算机从所述第二计算机接收第三公共密钥、第四公共密钥、第二加密掩蔽向量和第二加密随机向量,其中所述第二加密掩蔽向量是使用所述第三公共密钥加密的第二掩蔽向量,并且所述第二加密随机向量是使用所述第四公共密钥加密的第二随机向量;由所述第一计算机从所述第二计算机接收第三排列的加密差向量和第四排列的加密差向量,其中所述第三排列的加密差向量使用所述第一公共密钥加密并且使用第三排列进行排列,并且其中所述第四排列的加密差向量使用所述第二公共密钥进行加密,并且使用第四排列进行排列;由第一计算机通过使用与第一公共密钥相对应的第一私有密钥解密第三排列的加密差向量来产生第三排列的差向量;由第一计算机通过使用与第二公共密钥相对应的第二私有密钥解密第四排列的加密差向量来产生第四排列的差向量;以及由第一计算机基于第一掩蔽向量、第一随机向量、第三排列的差向量和第四排列的差向量来计算向量和第二向量的标量积。另一实施方案涉及第一计算机,该第一计算机包括:处理器;以及耦合到处理器的非瞬态计算机可读介质,该非瞬态计算机可读介质包括可由处理器执行以实现上述方法的代码。对这些和其他实施方案在下面进行详细描述。参照以下详细描述和附图,可以获得对实施方案的本质和优点的更好理解。术语“服务器计算机”可以包括功能强大的计算机或计算机集群。举例来说,服务器计算机可以是大型主机、小型计算机集群或像单元一样工作的一组服务器。在一个实例中,服务器计算机可以是耦合到网络服务器的数据库服务器。服务器计算机可包括一个或多个计算装置,并且可使用各种计算结构、布置和编译中的任一种来服务来自一个或多个客户端计算机的请求。“存储器”可以是可以存储电子数据的任何合适的一个或多个设备。合适的存储器可包括非瞬态计算机可读介质,其存储可由处理器执行以实现所要方法的指令。存储器的示例可以包括一个或多个存储器芯片、磁盘驱动器等。此类存储器可以使用任何合适的电、光和/或磁操作模式来操作。“处理器”可以指任何合适的一个或多个数据计算设备。处理器可包括一起工作以实现所要功能的一个或多个微处理器。处理器可以包括CPU,该CPU包括至少一个高速数据处理器,该高速数据处理器足以执行用于执行用户和/或系统生成的请求的程序组件。该CPU可以是微处理器,诸如AMD的速龙(Athlon)、钻龙(Duron)和/或皓龙(Opteron);IBM和/或摩托罗拉(Motorola)的PowerPC;IBM和索尼(Sony)的Cell处理器;英特尔(Intel)的赛扬(Celeron)、安腾(Itanium)、奔腾(Pentium)、至强(Xeon)和/或XScale;以及/或者一个或多个类似的处理器。“安全元件”可以指可以安全地执行功能的组件。安全元件可以是安全地存储数据的存储器,使得对数据的访问得到保护。“安全元件”的一个实例是可信执行环境(TEE),即处理器的安全区域。安全元件的另一个实例是通用集成电路卡(UICC),一种安全智能卡。安全元件的另一个实例是嵌入式安全元件,一种较大的机械或电系统中的嵌入式硬件组件。“向量”可以指组件的有序列表。向量的分量可以是数字的,例如,示例性向量可具有三个分量:向量的分量可与标记相关联,例如,第二示例性向量可具有三个分量:数学运算可应用于向量,例如两个向量可相加在一起或彼此相减。“随机向量”可以指例如使用随机或伪随机数生成器随机或伪随机地生成的分量的有序列表。“差向量”可以指等于两个向量之间的差的向量,例如,“掩蔽向量”可以指向量与随机向量的向量和。术语“向量化”可以指将一组数据转换为向量的任何本文档来自技高网...

【技术保护点】
1.一种方法,包括:/n由第一计算机向第二计算机传输第一公共密钥、第二公共密钥、第一加密掩蔽向量和第一加密随机向量,其中所述第一加密掩蔽向量是使用所述第一公共密钥加密的第一掩蔽向量,并且所述第一加密随机向量是使用所述第二公共密钥加密的第一随机向量;/n由所述第一计算机从所述第二计算机接收第三公共密钥、第四公共密钥、第二加密掩蔽向量和第二加密随机向量,其中所述第二加密掩蔽向量是使用所述第三公共密钥加密的第二掩蔽向量,并且所述第二加密随机向量是使用所述第四公共密钥加密的第二随机向量;/n由所述第一计算机从所述第二计算机接收第三排列的加密差向量和第四排列的加密差向量,其中所述第三排列的加密差向量使用所述第一公共密钥加密并且使用第三排列进行排列,并且其中所述第四排列的加密差向量使用所述第二公共密钥进行加密,并且使用第四排列进行排列;/n由所述第一计算机通过使用与所述第一公共密钥相对应的第一私有密钥解密所述第三排列的加密差向量来产生第三排列的差向量;/n由所述第一计算机通过使用与所述第二公共密钥相对应的第二私有密钥解密所述第四排列的加密差向量来产生第四排列的差向量;以及/n由所述第一计算机基于所述第一掩蔽向量、所述第一随机向量、所述第三排列的差向量和所述第四排列的差向量来计算第一向量和第二向量的标量积。/n...

【技术特征摘要】
【国外来华专利技术】20180524 US 62/676,2191.一种方法,包括:
由第一计算机向第二计算机传输第一公共密钥、第二公共密钥、第一加密掩蔽向量和第一加密随机向量,其中所述第一加密掩蔽向量是使用所述第一公共密钥加密的第一掩蔽向量,并且所述第一加密随机向量是使用所述第二公共密钥加密的第一随机向量;
由所述第一计算机从所述第二计算机接收第三公共密钥、第四公共密钥、第二加密掩蔽向量和第二加密随机向量,其中所述第二加密掩蔽向量是使用所述第三公共密钥加密的第二掩蔽向量,并且所述第二加密随机向量是使用所述第四公共密钥加密的第二随机向量;
由所述第一计算机从所述第二计算机接收第三排列的加密差向量和第四排列的加密差向量,其中所述第三排列的加密差向量使用所述第一公共密钥加密并且使用第三排列进行排列,并且其中所述第四排列的加密差向量使用所述第二公共密钥进行加密,并且使用第四排列进行排列;
由所述第一计算机通过使用与所述第一公共密钥相对应的第一私有密钥解密所述第三排列的加密差向量来产生第三排列的差向量;
由所述第一计算机通过使用与所述第二公共密钥相对应的第二私有密钥解密所述第四排列的加密差向量来产生第四排列的差向量;以及
由所述第一计算机基于所述第一掩蔽向量、所述第一随机向量、所述第三排列的差向量和所述第四排列的差向量来计算第一向量和第二向量的标量积。


2.如权利要求1所述的方法,其中计算所述第一向量和所述第二向量的标量积包括:
由所述第一计算机计算所述第一掩蔽向量的平方大小;
由所述第一计算机计算所述第一随机向量的平方大小;
由所述第一计算机计算所述第三排列的差向量的平方大小;
由所述第一计算机计算所述第四排列的差向量的平方大小;以及
由所述第一计算机基于所述第一掩蔽向量的所述平方大小、所述第一随机向量的所述平方大小、所述第三排列的差向量的所述平方大小以及所述第四排列的差向量的所述平方大小来计算所述第一向量和所述第二向量的所述标量积。


3.如权利要求1所述的方法,其中在由所述第一计算机向所述第二计算机传输所述第一公共密钥、所述第二公共密钥、所述第一加密掩蔽向量和所述第一加密随机向量之前,所述方法还包括:
由所述第一计算机生成所述第一随机向量;
由所述第一计算机通过组合所述第一向量和所述第一随机向量来生成所述第一掩蔽向量;
由所述第一计算机生成第一排列和第二排列;
由所述第一计算机生成包括所述第一公共密钥和所述第一私有密钥的第一密钥对;
由所述第一计算机生成包括所述第二公共密钥和所述第二私有密钥的第二密钥对;
由所述第一计算机使用所述第一公共密钥来对所述第一掩蔽向量进行加密;以及
由所述第一计算机使用所述第二公共密钥来对所述第一随机向量进行加密。


4.如权利要求1所述的方法,其中所述第一公共密钥、所述第一私有密钥、所述第二公共密钥、所述第二私有密钥、所述第三公共密钥、与所述第三公共密钥相对应的第三私有密钥、所述第四公共密钥以及与所述第四公共密钥相对应的第四私有密钥是加法同态密码密钥。


5.如权利要求1所述的方法,其中在由所述第一计算机从所述第二计算机接收所述第三公共密钥、所述第四公共密钥、所述第二加密掩蔽向量和所述第二加密随机向量之前:
所述第二计算机生成所述第二随机向量;
所述第二计算机通过将所述第二向量和所述第二随机向量相结合来生成所述第二掩蔽向量;
所述第二计算机生成所述第三排列和所述第四排列;
所述第二计算机生成包括所述第三公共密钥和第三私有密钥的第三密钥对;
所述第二计算机生成包括所述第四公共密钥和第四私有密钥的第四密钥对;
所述第二计算机使用所述第三公共密钥来对所述第二掩蔽向量进行加密;以及
所述第二计算机使用所述第四公共密钥来对所述第二随机向量进行加密。


6.如权利要求1所述的方法,其中:
所述第二计算机通过使用所述第一公共密钥来对第二取反向量进行加密来生成第三加密取反向量;
所述第二计算机基于所述第一加密掩蔽向量和所述第三加密取反向量来生成第三加密差向量;
所述第二计算机通过使用所述第二公共密钥来对所述第二取反向量进行加密来生成第四加密取反向量;
所述第二计算机基于所述第一加密随机向量和所述第四加密取反向量来生成第四加密差向量;
所述第二计算机使用第三排列和所述第三加密差向量来生成所述第三排列的加密差向量;以及
所述第二计算机使用第四排列和所述第四加密差向量来生成所述第四排列的加密差向量。


7.如权利要求1所述的方法,其还包括:
由所述第一计算机将所述标量积或从所述标量积导出的值与第一预先确定的阈值进行比较;以及
如果所述标量积或从所述标量积导出的值超出所述第一预先确定的阈值,则由所述第一计算机执行与所述第二计算机的交互。


8.如权利要求7所述的方法,其中所述第一向量和所述第二向量分别对应于第一生物特征识别模板和第二生物特征识别模板,并且其中所述第一预先确定的阈值是生物特征识别匹配阈值。


9.如权利要求1所述的方法,其中在由所述第一计算机从所述第二计算机接收所述第三公共密钥、所述第四公共密钥、所述第二加密掩蔽向量和所述第二加密随机向量之后,并且在由所述第一计算机从所述第二计算机接收所述第三排列的差向量和所述第四排列的差向量之前,所述方法还包括:
由所述第一计算机通过使用所述第三公共密钥来对第一取反向量进行加密来生成第一加密取反向量;
由所述第一计算机基于所述第二加密掩蔽向量和所述第一加密取反向量来生成第一加密差向量;
由所述第一计算机通过使用所述第四公共密钥来对所述第一取反向量进行加密来生成第二加密取反向量;
由所述第一计算机基于所述第二加密随机向量和所述第二加密取反向量来生成第二加密差向量;
由所述第一计算机使用第一排列和所述第一加密差向量来生成第一排列的加密差向量;
由所述第一计算机使用第二排列和所述第二加密差向量来生成第二排列的加密差向量;以及
由所述第一计算机将所述第一排列的加密差向量和所述第二排列的加密差向量传输至所述第二计算机。


10.如权利要求9所述的方法,其中:
所述第二计算机通过使用与所述第三公共密钥相对应的第三私有密钥来对所述第一排列的加密差向量进行解密来生成第一排列的差向量;
所述第二计算机通过使用与所述第四公共密钥相对应的第四私有密钥来对第二排列的加密差向量进行解密来生成第二排列的差向量;
所述第二计算机基于所述第二掩蔽向量、所述第二随机向量、所述第一排列的差向量和所述第二排列的差向量来计算所述第一向量和所述第二向量的所述标量积;
所述第二计算机将所述标量积或从所述标量积导出的...

【专利技术属性】
技术研发人员:K·瓦格纳
申请(专利权)人:维萨国际服务协会
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1