【技术实现步骤摘要】
【国外来华专利技术】高效的并发标量积计算相关申请的交叉引用本申请是2018年5月24日提交的美国专利申请号62/676,219的非临时申请并且要求其优先权,该非临时申请的全部内容以引用方式并入本文。
技术介绍
在许多情况下,计算机可以简单地将它们的数据在彼此之间传输来进行比较,特别是当数据是非私有数据时。例如,用户可能想检查本地软件是否是最新的(即,软件是该可用软件的最新发布的稳定版本)。用户将关于软件的数据传输至外部服务器进行比较可能没有问题。然而,在一些情况下,特别是那些涉及私人数据或个人身份标识信息(例如,病历、支付账号、生物特征识别)的情况下,用户可能不希望将该数据传输至另一外部计算机,因为担心该外部计算机可能在由欺诈或恶意用户或组织操作。遗憾的是,有一些可用的技术,诸如安全的多方计算技术,可以使两台或更多台计算机比较数据或执行计算而不彼此揭示相应的数据。遗憾的是,这些技术通常速度慢、复杂并且需要大量的计算操作。如果参与的计算机连接不良,则安全的多方计算失败的可能性会大大增加。另外,大量的通信和计算操作使此类协议不适用于对时间敏感的应用程序或低性能计算环境。实施方案单独地和共同地解决了这些和其他问题。
技术实现思路
本专利技术的实施方案涉及用于安全且同时计算两个向量的标量积(或“点”积)的方法和系统。第一计算机和第二计算机可分别具有第一向量和第二向量,并且可以同时计算第一向量和第二向量的标量积,而第一计算机无需向第二计算机揭示第一向量并且第二计算机无需向第一计算机揭示第二向量。每台计算机可将标量积或从标量积导出的值 ...
【技术保护点】
1.一种方法,包括:/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所述的方法,其中:
所述第二计算机通过使用与所述第三公共密钥相对应的第三私有密钥来对所述第一排列的加密差向量进行解密来生成第一排列的差向量;
所述第二计算机通过使用与所述第四公共密钥相对应的第四私有密钥来对第二排列的加密差向量进行解密来生成第二排列的差向量;
所述第二计算机基于所述第二掩蔽向量、所述第二随机向量、所述第一排列的差向量和所述第二排列的差向量来计算所述第一向量和所述第二向量的所述标量积;
所述第二计算机将所述标量积或从所述标量积导出的...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。