CN112166577A - 高效的并发标量积计算 - Google Patents

高效的并发标量积计算 Download PDF

Info

Publication number
CN112166577A
CN112166577A CN201980035074.XA CN201980035074A CN112166577A CN 112166577 A CN112166577 A CN 112166577A CN 201980035074 A CN201980035074 A CN 201980035074A CN 112166577 A CN112166577 A CN 112166577A
Authority
CN
China
Prior art keywords
vector
computer
encrypted
public key
generating
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.)
Granted
Application number
CN201980035074.XA
Other languages
English (en)
Other versions
CN112166577B (zh
Inventor
K·瓦格纳
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.)
Visa International Service Association
Original Assignee
Visa International Service Association
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 Visa International Service Association filed Critical Visa International Service Association
Publication of CN112166577A publication Critical patent/CN112166577A/zh
Application granted granted Critical
Publication of CN112166577B publication Critical patent/CN112166577B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3231Biological data, e.g. fingerprint, voice or retina
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Collating Specific Patterns (AREA)
  • Storage Device Security (AREA)

Abstract

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

Description

高效的并发标量积计算
相关申请的交叉引用
本申请是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),一种安全智能卡。安全元件的另一个实例是嵌入式安全元件,一种较大的机械或电系统中的嵌入式硬件组件。
“向量”可以指组件的有序列表。向量的分量可以是数字的,例如,示例性向量可具有三个分量:
Figure BDA0002796184870000041
向量的分量可与标记相关联,例如,第二示例性向量
Figure BDA0002796184870000042
可具有三个分量:
Figure BDA0002796184870000043
数学运算可应用于向量,例如两个向量可相加在一起或彼此相减。“随机向量”可以指例如使用随机或伪随机数生成器随机或伪随机地生成的分量的有序列表。“差向量”可以指等于两个向量之间的差的向量,例如,
Figure BDA0002796184870000044
“掩蔽向量”可以指向量与随机向量的向量和。术语“向量化”可以指将一组数据转换为向量的任何过程,例如,将一个人的身高、体重和年龄转换为包括与此人的身高、体重和年龄相对应的分量的向量的过程。
“排列”可以指可以排序或安排某些东西的方式。术语“排列的”可指示某事物已经由排列进行排序或布置。例如,排列向量可以指已经根据排列被重新布置的向量。
“用户”可以指出于某种目的而使用其他事物的人或事物。用户可包括可以与一个或多个个人账户和/或用户设备相关联的个人。在一些实施方案中,用户也可被称作持卡人、账户持有人或消费者。
“资源”可以指可以由实体使用或在实体之间转移的东西。资源的实例包括商品、服务、信息和/或对受限位置的访问。
“资源提供商”可以指可提供资源的实体。资源提供商的实例包括商家、政府机构等。资源提供商可以操作资源提供商计算机。
“通信设备”可包括可以提供远程或直接通信能力的任何合适的设备。远程通信能力的实例包含使用移动电话(无线)网络、无线数据网络(例如,3G、4G或类似网络)、Wi-Fi、Wi-Max,或可提供对例如互联网或私用网络的网络的访问的任何其他通信介质。通信设备的实例包括台式计算机、视频游戏机、移动电话(例如,蜂窝电话)、PDA、平板电脑、上网本、便携式计算机、个人音乐播放器、手持式专用读取器、智能卡等。通信设备的另外的实例包括可穿戴设备,诸如智能手表、健身手环、脚链、戒指、耳环等,以及具有远程或直接通信能力的车辆。
“交互”可以指相互的作用、效果或影响。例如,交互可以是两个或多个参与方之间的交换或交易。
“接入终端”可以是提供对远程系统的访问的任何合适的设备。接入终端还可以用于与商家计算机、交易处理计算机、认证计算机或任何其他合适的系统通信。接入终端通常可以位于任何合适的位置,诸如位于商家所在的位置。接入终端可以呈任何合适的形式。接入终端的一些实例包括销售点(POS)终端、蜂窝电话、PDA、个人计算机(PC)、平板PC、手持式专用读取器、机顶盒、电子现金出纳机(ECR)、自动柜员机(ATM)、虚拟现金出纳机(VCR)、营业亭、安全系统、访问系统,等等。接入终端可使用任何合适的接触式或非接触式操作模式,以向用户移动设备发送或从其接收数据或者与用户移动设备相关联。在接入终端可包括POS终端的一些实施方案中,可以使用任何合适的POS终端,并且任何合适的POS终端可包括读取器、处理器和计算机可读介质。读取器可包含任何合适的接触式或非接触式操作模式。举例来说,示范性读卡器可包含射频(RF)天线、光学扫描仪、条形码读取器或磁条读取器,以与支付设备和/或移动设备交互。在一些实施方案中,用作POS终端的蜂窝电话、平板电脑或其他专用无线设备可被称为移动销售点或“mPOS”终端。
“接入网络”可以指与接入终端相关联的网络。接入网络可包括通过提供一些所需功能性来支持接入终端的设备阵列。例如,接入网络可以是被设计成代表接入终端与一组移动设备进行通信的天线或信标阵列(诸如Wi-Fi或蓝牙信标)。接入网络可包括局域网、广域网或网络诸如蜂窝网络或互联网。
术语“生物特征识别实例”可包括与生物学观察相关的信息。生物特征识别实例可包括与生物特征识别样本相对应的生物特征识别数据,或者包括从生物特征识别样本或生物特征识别数据导出的生物特征识别模板。生物特征识别实例可用于验证用户的身份。可经由生物特征识别接口、用于捕获生物特征识别实例的硬件来捕获生物特征识别实例。例如,可经由包括红外光源和相机的生物特征识别接口诸如虹膜扫描仪来捕获生物特征识别实例。生物特征识别实例的实例包括虹膜扫描的数字表示(例如,表示虹膜的二进制代码)、指纹、语音记录、面部扫描等。生物特征识别实例可以加密格式存储以及/或者存储在移动设备的安全存储器上。
术语“加密密钥”可以指在加密或解密中使用的东西。例如,加密密钥可以指两个大质数的乘积。加密密钥可以用作加密过程或密码系统诸如RSA或AES的输入,并且可用于加密明文并且产生密文输出,或者解密密文并且产生明文输出。
术语“纯文本”可以是指纯文本格式的文本。例如,纯文本可以指人类或计算机无需任何处理即可阅读的文本,诸如短语“嗨,你好吗?”。它也可以指未加密形式的文本。数字或其他符号也可以被视为纯文本。
术语“密文”可以指加密形式的文本。例如,这可以指必须被解密才能被人类或计算机理解的文本。密文可以通过任何数量的密码算法(诸如,RSA或AES)生成。
“收单方”通常可以是与特定商家或其他实体具有业务关系的业务实体(例如,商业银行)。一些实体可执行发行方和收单方两者的功能。一些实施方案可涵盖此类单实体发行方-收单方。收单方可以操作收单方计算机,该收单方计算机一般也可以被称为“传输计算机”。
“授权实体”可以是授权请求的实体。授权实体的实例可包括发行方、政府机构、文档存储库、访问管理员等。“发行方”通常可以指维护用户账户的商业实体(例如,银行)。发行方还可以向消费者发行存储在移动设备诸如蜂窝电话、智能手推车卡、平板电脑或笔记本电脑上的支付凭证。授权实体可操作授权计算机。
“认证数据”可包括适合于证明某事真实有效的任何数据。认证数据可以从用户或由用户操作的设备获得。从用户获得的认证数据的实例可包括PIN(个人标识号)、密码等。可以从移动设备获得的认证数据的实例可包括设备序列号、硬件安全元素标识符、设备指纹、电话号码、IMEI编号、存储在移动设备上的生物特征识别实例,等等。
“支付设备”可包括可用于进行金融交易(诸如向商家提供支付凭证)的任何合适的设备。支付设备可以是软件对象、硬件对象或物理对象。作为物理对象的实例,支付设备可以包括基板(诸如纸卡或塑料卡),以及在对象的表面处或附近印刷、压花、编码或以其他方式包含的信息。硬件对象可以涉及电路(例如,永久电压值),而软件对象可以涉及存储在设备上的非永久性数据。支付设备可以与诸如货币价值、折扣或商店信用的值相关联,并且支付设备可以与诸如银行、商家、支付处理网络或个人的实体相关联。支付设备可用于进行支付交易。合适的支付设备可以是手持式的并且是紧凑的,使得能够将它们放到用户的钱包和/或口袋中(例如,可为口袋大小的)。示例性支付设备可包括智能卡、磁条卡、密钥链设备(诸如可从Exxon-Mobil公司商购获得的Speed-passTM)等。移动设备的其他实例包括寻呼机、支付卡、安全卡、存取卡、智能媒介、应答器,等等。如果支付设备呈借记卡、信用卡或智能卡的形式,那么支付设备还可任选地具有例如磁条的特征。此类设备可以接触式或非接触式模式操作。在一些实施方案中,移动设备可以用作支付设备(例如,移动设备可以存储并且能够传输用于交易的支付凭证)。
“凭证”可以是充当价值、拥有权、身份或授权的可靠证据的任何合适的信息。“访问凭证”可以是可用于获得对特定资源(例如,商品、服务、位置等)的访问的凭证。凭证可以是一串数字、字母或任何其他合适的字符,或者可以充当确认的任何对象或文档。凭证的实例包括身份证、认证文档、访问卡、密码和其他登录信息、支付账号、访问徽章编号、支付令牌、访问令牌等。
“支付凭证”可包括与账户相关联的任何合适的信息(例如,支付账户和/或与该账户相关联的支付设备)。此类信息可以与账户直接相关,或者可源自与账户相关的信息。账户信息的实例可包括PAN(主账号或“账号”)、用户姓名、有效日期、CVV(卡验证值)、dCVV(动态卡验证值)、CVV2(卡验证值2)等。支付凭证可以是标识支付账户或与支付账户相关联的任何信息。可以提供支付凭证以便从支付账户进行支付。支付凭证还可以包括用户名、有效日期、礼品卡号或代码以及任何合适的信息。
“令牌”可以是真实凭证的替代值。令牌可以是一种凭证,并且可以是一串数字、字母或任何其他合适的字符。令牌的实例包括支付令牌、访问令牌、个人识别令牌,等等。
“支付令牌”可包括支付账户的身份符,它是账户标识符的替代,诸如主账号(PAN)。例如,令牌可以包括可以用作原始账户标识符的替代的一连串字母数字字符。举例来讲,令牌4900 0000 0000 0001可用于代替PAN 4147 0900 0000 1234。在一些实施方案中,令牌可以是“保留格式的”,并且可具有与现有交易处理网络中使用的账户标识符相符的数字格式(例如,ISO 8583金融交易消息格式)。在一些实施方案中,令牌可以代替PAN用来启动、授权、处理或解决支付交易,或者在通常将提供原始凭证的其他系统中表示原始凭证。在一些实施方案中,可生成令牌值,使得可以不通过计算方式从令牌值导出原始PAN或其他账户标识符的恢复。另外,在一些实施方案中,令牌格式可配置成允许接收令牌的实体将其识别为令牌,并辨识发行令牌的实体。
“授权请求消息”可以是发送来请求授权交易的电子消息。在一些实施方案中,“授权请求消息”可以是被发送给支付处理网络和/或支付卡的发行方来请求授权交易的电子消息。根据一些实施方案的授权请求消息可以符合ISO 8583,一种用于交换与由消费者使用支付设备或支付账户进行的支付相关联的电子交易信息的系统的标准。授权请求消息可包含可与支付设备或支付账户相关联的发行方账户标识符。授权请求消息还可以包括对应于“标识信息”的附加数据元素,包括(仅作为实例):服务代码、CVV(卡验证值)、dCVV(动态卡验证值)、有效日期等。授权请求消息还可包括“交易信息”,诸如与当前交易相关联的任何信息,诸如交易金额、商家标识符、商家位置等,以及可用于确定是否标识和/或授权交易的任何其他信息。
“授权响应消息”可以是对授权请求消息的电子消息回复。它可以由发行金融机构或支付处理网络生成。仅作为实例,授权响应消息可包括以下状态指示符中的一个或多个状态指示符:批准—交易被批准;拒绝—交易未被批准;或呼叫中心—挂起更多信息的响应,商家必须呼叫免费授权电话号码。授权响应消息还可以包括授权代码,该授权代码可以是信用卡发行银行响应于电子消息中的授权请求消息(直接地或通过支付处理网络),返回给商家访问设备(例如,POS设备)的指示交易被批准的代码。所述代码可充当授权的证据。如上所述,在一些实施方案中,支付处理网络可以向商家生成或转发授权响应消息。
“设备代码”或“设备标识符”可以是专门与设备(例如,仅一个设备)相关联的代码。可从任何设备特定信息中导出设备代码,这些信息包括但不限于以下项中的一个或多个:安全元件标识符(SE ID)、IMEI编号、电话号码、地理位置、设备序列号、设备指纹等。可使用包括散列和/或加密的任何适当的数学运算来从此类信息中导出此类代码。设备代码可包括任何合适数量和/或类型的字符。
附图说明
图1示出了根据本发明的一些实施方案的示例性系统的框图。
图2示出了根据一些实施方案的示例性第一计算机的框图。
图3示出了根据一些实施方案的示例性第二计算机的框图。
图4示出了根据一些实施方案的计算两个向量的标量积并且执行交互的方法的流程图概述。
图5示出了根据一些实施方案的设置阶段的流程图,该设置阶段是计算两个向量的标量积的方法的一部分。
图6示出了根据一些实施方案的中间计算阶段的流程图,该中间计算阶段是计算两个向量的标量积的方法的一部分。
图7示出了根据一些实施方案的标量积计算阶段的流程图,该标量积计算阶段是计算两个向量的标量积的方法的一部分。
图8示出了第一示例性交互,包括第一计算机的用户与资源提供商之间的支付交易。
图9示出了第二示例性交互,包括第一计算机的用户与资源提供商之间的建筑物入口认证过程。
具体实施方式
因为实施方案涉及用于计算两个向量的标量积的隐私保护方法和系统,所以对向量的简短介绍可能有助于更好地理解实施方案。
虽然术语“向量”在整个科学领域中具有不同的含义,但一般来讲,“向量”是指分量的有序列表。在一些情况下,向量也可以表示为成对的大小和角度或方向。例如,向量[向北:1英里,向西:1英里]表示空间中的第一点与空间中的第二点之间的直线路径,正好在第一点以北一英里并且在第一点以西一英里处。该向量可另选地表示为[大小:1.414英里,方向:45度],指示该向量指向1.414英里距离的与正北方向沿顺时针成45度的位置。两种表示形式是等效的,因为它们描述了相同的路径。作为数学等式中的变量,向量通常由顶部带有箭头的符号表示,例如:
Figure BDA0002796184870000091
向量受其他变量所依附的许多数学关系的影响,例如类似的向量可相加在一起或彼此相减。
可以对许多形式的数据进行向量化处理,即转换为向量或由向量表示。例如,一个人的健康统计信息(例如,身高、体重、年龄)可以用向量诸如[身高:68英寸,体重:140磅,年龄:25岁]来表示。向量化之所以有用,是因为它允许使用可以由计算机快速执行的向量运算来客观地比较数据。
例如,比较两组数据的一种方法是将每组数据向量化并且确定两个向量之间的角度。相似的向量之间的夹角较小,而不同的向量之间的夹角较大。两个相同向量(例如,[北:1英里,西:0英里]和[北:1英里,西:0英里])之间的夹角为零,而两个正交向量(例如,[北:1英里,西;0英里])和[北:0英里,西:1英里])之间的夹角为90度,以及两个相反向量(例如,[北:1英里,西:0英里]和[南:1英里,西:0英里])之间的夹角为180度。两个向量化数据集之间的角度(例如,对应于第一人的健康统计信息和对应于第二人的健康统计信息),或两个向量化数据集之间的角度的三角函数(例如,余弦)可以用作相似度或差异度量,以评估这两组数据之间的相似度或差异。
类似地,向量运算(诸如标量积)可用于评估两个向量之间的相似度或差异。两个向量的标量积可通过将第一向量的每个分量与第二向量的对应分量相乘并且将结果相加而计算得出,即:
Figure BDA0002796184870000101
例如,
Figure BDA0002796184870000102
Figure BDA0002796184870000103
的标量积等于:
(1*4)+(3*-2)+(-5*-1)=3
标量积之所以有用,是因为除其他原因外,它与两个向量之间的角度成正比,如以下等式所示:
Figure BDA0002796184870000104
其中
Figure BDA0002796184870000105
是向量
Figure BDA0002796184870000106
的大小(即“尺寸”),
Figure BDA0002796184870000107
是向量
Figure BDA0002796184870000108
的大小,并且θ是这两个向量之间的夹角。因此,两个向量化数据集的标量积可用于确定这些数据集之间的相似度或差异。
向量化可用于简化或加速数据诸如生物特征的比较。在一个实例中,可以将捕获的生物特征识别与存储在数据库中的生物特征或生物特征识别模板进行比较,以便标识或认证与该生物特征相对应的人。一个实例是指纹识别,据此捕获人的指纹图像(生物特征)并且将其与存储在指纹数据库中的指纹进行比较,以便标识此人。如果对所捕获的指纹和存储在指纹数据库中的指纹进行向量化处理,则可能使用向量运算来确定所捕获的指纹是否与存储在指纹数据库中的一组指纹相匹配,诸如计算所捕获的向量化指纹与存储在数据库中的向量化指纹的标量积。
向量化生物特征或生物特征识别模板的确切方法超出了本公开的范围。然而,提供了以下实例,以便说明如何对示例性生物特征进行向量化。
虹膜代码(通常包括256个字节的可用于执行虹膜识别的生物特征)可通过被转换为具有256个分量的向量来向量化,每个分量对应于与虹膜代码相对应的一个字节。作为另选方案,虹膜代码可被转换为包括2048个分量的二进制向量,每个分量包括一位对应的虹膜代码,或者另选地,带有128个分量的向量,每个分量对应于两个字节的对应的虹膜代码。可存在将生物特征诸如虹膜代码转换为向量的多种方法,并且可以使用类似的方法将其他生物特征(例如,指纹、面部扫描等)转换为向量。
虽然存在许多方法和技术可用于比较向量化的或以其他方式处理的生物特征,但很少有技术旨在保护受试者的隐私。例如,当一个人进行指纹扫描时,他们通常必须将其指纹(生物特征)提供给实体(例如,执法机构),以便该实体将这些指纹与存储在数据库中的指纹进行比较。然而,这使人面临身份盗用的风险。欺诈者可冒充合法实体,并且在明显合法的身份验证请求中(例如,经由电子邮件网络钓鱼攻击)要求此人的生物特征。然后,欺诈者可使用这些生物特征来模拟此人,作为身份盗窃方案的一部分。
然而,本公开的实施方案提供了用于两个实体(例如,两个计算机,诸如属于用户的智能电话和远程服务器)计算两个向量的标量积(例如,两个向量化的生物特征)的方法,而无需任一实体向另一实体揭示其相应的生物特征。因此,远程服务器可以确定一个人的生物特征是否与存储在生物特征数据库中的生物特征相匹配,而无需实际接收此人的生物特征本身。这导致信息安全性的切实提高,并且防止了身份盗用方案,诸如上述方案。
实施方案通过使用加法同态加密,使用密码系统诸如Paillier密码系统来实现这一点。加法同态加密允许参与的实体无需先解密数据即可计算加密数据的总和。特别地,在Paillier密码系统中,两个密文(即,加密数据)的乘积等于对应明文的加密总和:
E(c)*E(d)=E(c+d)
本公开的实施方案利用该特性使两台计算机能够计算两个向量的标量积,同时对向量的分量进行加密。由于用于解密向量的私有密钥仅由其相应的实体知悉(即,第一计算机知悉第二计算机未知的私有密钥,反之亦然),因此每个实体都可以阻止另一实体了解其向量,同时仍计算两个向量的标量积。
图1示出了示例性系统100的框图,该系统包括第一计算机102、第二计算机104、资源提供商计算机106和用户108。系统100的计算机可经由一个或多个通信网络彼此可操作地通信。
通信网络可采用任何合适的形式,可以是以下项中的任何一种和/或组合:直接互连;互联网;局域网(LAN);城域网(MAN);作为互联网节点的运行任务(OMNI);安全定制连接;广域网(WAN);无线网络(例如,采用协议诸如但不限于无线应用协议(WAP)、I-模式等);等等。实体、提供商、用户、设备、计算机和网络之间的消息可使用安全通信协议进行传输,诸如但不限于文件传输协议(FTP);超文本传输协议(HTTP);安全超文本传输协议(HTTPS);安全套接字层(SSL)、ISO(例如,ISO 8583),等等。
根据实施方案的方法使第一计算机102和第二计算机104能够计算第一向量102A和第二向量104A的标量积,而无需每个计算机向另一计算机揭示它们相应的向量或所计算的标量积。通过以下参照图4至图7所述的一系列阶段,第一计算机102和第二计算机104可准备并且交换信息,该信息允许第一计算机102和第二计算机104同时计算第一向量102A和第二向量104A的标量积。第一计算机102和第二计算机104可各自同时将所计算的标量积或从标量积导出的值(例如,两个向量之间的角度)与预先确定的阈值进行比较。如果从标量积导出的值的标量积超出预先确定的阈值,则第一计算机102和第二计算机104可以彼此执行交互。该交互可另外包括资源提供商,该资源提供商可拥有或操作资源提供商计算机106。
下面参照图8和图9更详细地描述示例性的相互作用。一般来讲,标量积或从标量积导出的值与预先确定的阈值的比较可以作为认证过程的一部分执行,并且如果认证成功,则可以进行交互(即,标量积或从标量积导出的值超出预先确定的阈值)。例如,如果第一向量102A是存储在与用户108相对应的第一计算机102(例如,用户108拥有的智能电话)上的生物特征识别向量,并且第二向量104A是存储在第二计算机104上的与用户108相对应的生物特征识别向量(例如,对应于用户108的文件上的生物特征识别向量),则第一向量102A和第二向量104A的标量积可用于认证用户108。一旦用户108被认证,就可以进行交互,诸如用户108与商家之间的支付交易(即,资源提供商操作资源提供商计算机106)。
图2示出了根据一些实施方案的示例性第一计算机200。特别地,图2将第一计算机200示出为移动设备(例如,智能电话)。然而,应当理解,第一计算机200可以采用多种形式,诸如以上术语部分中定义的任何适当的通信设备。
第一计算机200可包括用于实现某些设备功能的电路,诸如无线通信或电话。负责实现那些功能的功能元件可包括处理器202,该处理器可执行实现设备的功能和操作的指令。处理器202可以访问数据存储装置210(或另一个合适的存储器区域或元件)以检索指令或在执行指令时使用的数据。数据输入/输出元件206诸如键盘或触摸屏可用于使用户能够操作第一计算机200(例如,允许用户导航至移动钱包应用程序214)。数据输入端/输出端206还可以被配置成(例如,经由扬声器)输出数据。显示器204也可以用于将数据输出给用户。通信元件208可用于实现第一计算机200与有线或无线网络之间的(例如,经由天线224的)数据传输,实现数据传输功能,并且可用于辅助与互联网或另一网络的连接。第一计算机200还可包括非接触式元件接口220,以使得能够在非接触式元件222和设备的其他元件之间进行数据传输。非接触式元件222可包括安全存储器和近场通信数据传输元件(或短距离通信技术的另一种形式)。如所指出的,蜂窝电话、智能电话、可穿戴设备、膝上型计算机或其他类似设备是移动设备的实例,并且因此是根据实施方案的第一计算机的实例。
数据存储装置210可包括计算机可读介质,该计算机可读介质还可以包括许多软件模块,诸如通信模块212、移动钱包应用程序214、生物特征识别应用程序216,以及标量积计算模块218。
通信模块212可包括使处理器202能够实现或启用第一计算机200与其他设备(诸如其他移动设备、接入终端或第二计算机)之间的通信的代码。通信模块212可允许根据任何适当的协议进行通信,诸如TCP、UDP、IS-IS、OSPF、IGRP、EIGRP、RIP、BGP,等等。通过使处理器202能够在第一计算机200和其他设备之间建立安全或加密的通信信道,可以实现安全通信。例如,通信模块212可包括处理器202可执行的代码,用于在移动设备200和另一设备之间执行密钥交换(诸如Diffie-Hellman密钥交换)。除了允许传输加密的或未加密的向量和密码密钥之外,通信模块212还可以允许将包括支付令牌的访问令牌传输至其他设备诸如接入终端。
移动钱包应用程序214可包括使第一计算机200能够管理令牌的代码。例如,移动钱包应用程序214可包括使处理器202能够经由非接触式元件接口220检索存储在安全存储器222中的访问令牌的代码。移动钱包应用程序214还可以包括使第一计算机200能够显示任何合适的令牌信息的代码,例如,提供访问令牌的时间和日期,访问令牌的别名或标识符,涉及访问令牌的最新交互或交易的时间和日期,等等。此外,移动钱包应用程序214可包括使处理器202能够显示使用户能够激活令牌相关功能性的图形用户界面(GUI)的代码。此外,移动钱包应用程序214可包括使第一计算机200能够例如在与商家的交易期间向接入终端发送令牌的代码。
生物特征识别应用程序216可包括使第一计算机200能够经由数据输入端/输出端206捕获生物特征识别实例的代码。例如,在登记过程中(诸如图4中的登记阶段402,在下面进一步详细描述),第一计算机200可用于使用数据输入/输出元件206诸如相机来捕获生物特征识别实例诸如面部扫描。生物特征识别应用程序216可用于捕获该生物特征识别实例并且将该生物特征识别实例以加密或未加密的形式存储在安全存储器220上。生物特征识别应用程序216可另外包括可由处理器202执行以对生物特征识别实例进行向量化,即,生成与这些生物特征识别实例相对应的生物特征识别向量的代码或指令。生物特征识别应用程序216还可包括可由处理器202执行以参与基于生物特征识别的交互系统(诸如基于生物特征识别的交易系统)的代码或指令。这些代码或指令可包括用于与接入终端通信并且执行功能诸如将生物特征识别向量传输至接入终端的代码。
标量积计算模块218可包括根据一些实施方案的可由处理器202执行以执行两个向量的标量积的隐私保护计算的代码或指令。参照下面的图4至图7可以更好地理解这些方法。该代码或指令可包括随机数或随机向量的生成,掩蔽向量、私有密码密钥(包括加法同态密码密钥,诸如Paillier密钥)、加密和解密向量的生成,生成取反向量、差向量、排列、计算平方大小,以及计算两个向量的标量积,等等,如以下参照图4至图7所述。
图3示出了根据本公开的一些实施方案的示例性第二计算机300。第二计算机300可包括处理器302、通信接口304和计算机可读介质306。计算机可读介质306可包括多个软件模块,包括通信模块308、登记模块310、标量积计算模块312、交互模块314,以及向量数据库316,等等。
处理器302可以是如以上术语部分中所描述的任何合适的处理装置或设备。通信接口304可包括使第二计算机300能够通过网络诸如互联网与其他计算机或系统(例如,第一计算机)通信的网络接口。
通信模块308可包括可由处理器302执行以在第二计算机300与包括第一计算机的其他实体之间建立通信的代码或软件。例如,通信模块308可包括使得能够生成UDP(用户数据报协议)或TCP(传输控制协议)分组或任何其他适当形式的网络通信的代码。第二计算机300可使用通信模块308来从实体诸如第一计算机传输数据并且从其接收数据。这些数据可包括向量,加密的、排列的或以其他方式处理的向量以及加密密钥,如下面参照图4的第一传输阶段406和第二传输阶段408所述。
登记模块310可包括使用户(例如,图1中的用户108)能够登记基于向量的认证系统(诸如生物特征识别向量认证系统)的代码。在根据实施方案的一些方法中,登记可以是可选的。因此,登记模块310也可以是可选的。登记模块310可包括使第二计算机300能够将与用户或第一计算机相对应的生物特征识别向量与用户的身份或与该用户相对应的标识符相关联的代码。例如,登记模块310可包括使第二计算机300能够将与虹膜扫描相对应的生物特征识别向量与用户“John Doe”相关联的代码。登记模块310可另外包括使第二计算机300能够将示例性生物特征识别向量与对应于“John Doe”的标识符相关联地存储在生物特征数据库316中的代码。稍后,对应于“John Doe”的第一计算机(例如,John的智能电话)和第二计算机300可以对存储在生物特征数据库318中的生物特征识别向量和存储在第一计算机上的生物特征识别向量执行保护隐私的标量积计算,以便对John Doe进行身份验证并且执行交互。
标量积计算模块312可包括可由处理器302执行的代码,用于根据一些实施方案执行隐私保护标量积计算。参照图4至图7的流程图可以更好地理解隐私保护标量积的计算。标量积计算模块312除了用于计算向量之和、向量之间的差以及向量的大小或平方大小的数学运算之外,还可以包括如下所述的代码,该代码使得能够生成随机向量、掩蔽向量、加密密钥、排列向量等,如下所述。
交互模块314可包括可由处理器302执行以用于执行与第一计算机的交互的代码。该交互可包括例如向资源提供商认证第一计算机,使得第一计算机或与第一计算机相关联的用户可获得对资源的访问。例如,资源提供商可以是商家,资源可以是顾客希望购买的商品或服务,第一计算机可以是顾客拥有的智能电话,并且第二计算机300可以是与支付处理网络相关联的服务器计算机。交互可包括在用户与商家之间进行支付交易,并且交互模块314可包括可由处理器302执行以在用户与商家之间进行支付交易的代码。
作为第二示例性交互,资源提供商可以是控制经由锁定的计算机化的门对建筑物的访问的计算机系统。第一计算机和第二计算机300之间的交互可包括第二计算机允许第一计算机的所有者访问建筑物,例如通过向资源提供商计算机发送指示打开门的控制信号,或者通过向第一计算机提供第一计算机可提供给资源提供商计算机的访问令牌或另一证书,使得资源提供商计算机打开门。
向量数据库316可包括包含向量的任何适当的数据库、文件或存储器结构。这些向量可包括例如对应于多个登记用户的生物特征识别向量。第二计算机300可从向量数据库316中检索向量,以便计算该向量与对应于第一计算机的另一向量的标量积。
图4示出了根据一些实施方案的计算第一向量
Figure BDA0002796184870000161
和第二向量
Figure BDA0002796184870000162
的标量积的方法400的流程图概述。该方法分为七个阶段:登记阶段402、设置阶段404、第一传输阶段406、中间计算阶段408、第二传输阶段410、标量积计算阶段412,以及交互阶段414。
登记阶段402可以是可选的,即,在一些实施方案中,可执行登记阶段402,并且在其他实施方案中,可以不执行登记阶段402。登记阶段402的特性可取决于第一向量
Figure BDA0002796184870000163
和第二向量
Figure BDA0002796184870000164
的特性,以及在交互阶段414中执行的交互的性质。
例如,向量可对应于生物特征识别实例,并且两个向量的标量积可对应于两个生物特征识别实例之间的相似度。因此,可以计算标量积以便确定两个生物特征识别实例是否以足够的确定性程度来匹配(例如,75%匹配、95%匹配、99%匹配等)。在这种情况下,登记阶段402可包括生物特征识别登记过程。该生物特征识别登记过程可包括例如(例如,通过捕获用户虹膜的图像、执行拇指或指纹扫描等)从登记用户处捕获生物特征,转换所捕获的生物特征(例如,转换为虹膜代码或生物特征的其他适当数字表示),并且安全地存储生物特征识别实例(例如,存储在第一计算机上的安全元件中以及/或者第二计算机上的安全数据库上)。
如上所述,登记阶段402的特性可取决于交互阶段414和交互的特性。作为一个实例,图4的方法400可应用于进行支付的生物特征授权系统。可将表示为第一向量
Figure BDA0002796184870000171
的顾客的生物特征识别实例与表示为第二向量
Figure BDA0002796184870000172
的顾客的生物特征识别实例进行比较,并且存储在支付处理服务器上。如果生物特征识别向量匹配(基于第一向量和第二向量的标量确定),则支付处理服务器可以认证顾客并且批准顾客与商家之间的交易(即,交互阶段414的交互)。在这种情况下,由于交互是交易,因此登记阶段402可另外包括将支付凭证(诸如PAN)与存储在支付处理服务器(第二计算机)处的生物特征识别向量(第二向量
Figure BDA0002796184870000173
)相关联。在该实例中,登记阶段402可另外包括用户或消费者用信息诸如用户的PAN填写网络表格,然后可以对该信息进行加密并且将其传输至第二计算机,使得可以将其与第二向量
Figure BDA0002796184870000174
相关联地存储。
然而,如上所述,在一些实施方案中,登记阶段402可以是可选的。这可在第一计算机和第二计算机不需要分别从外部源(例如,经由生物特征捕获)接收第一向量
Figure BDA0002796184870000175
和第二向量
Figure BDA0002796184870000176
的实施方案中发生。例如,第一向量
Figure BDA0002796184870000177
可表示从用户智能电话的GPS确定的用户位置,并且第二向量
Figure BDA0002796184870000178
可表示企业(例如,用户试图导航到的咖啡馆)的位置。因此,第一计算机可包括用户的智能电话,并且第二计算机可包括与导航或地图服务相关联的服务器计算机。用户的智能电话可使用这两个向量的标量积,以便帮助用户导航到咖啡馆。由于可以从GPS数据推断用户位置的向量,并且由于导航服务可能已经知道咖啡馆的位置,因此可能无需执行登记阶段402。
参照图5可以更好地理解设置阶段404。一般来讲,设置阶段可包括可以在第一计算机和第二计算机之间传输任何数据之前发生的步骤。
图5示出了根据实施方案的方法的设置阶段期间执行的步骤的流程图。需注意,下标A一般是指由第一计算机生成或使用的向量或值,而下标B一般是指由第二计算机生成或使用的向量、值或加密密钥。
在步骤502A处,第一计算机可以安全地检索第一向量
Figure BDA0002796184870000179
在一些实施方案中,第一计算机可以是与用户相关联的智能电话。在这些实施方案中,第一计算机可以(例如,使用图2中的非接触式元件接口220)从第一计算机的安全元件中安全地检索第一向量
Figure BDA00027961848700001710
同样,在步骤502B处,第二计算机可以安全地检索第二向量
Figure BDA00027961848700001711
在一些实施方案中,第二计算机可以是与某种形式的认证实体(例如,与支付处理网络相关联的政府机构或支付处理服务器)相关联的远程服务器计算机。第二计算机可从安全或加密的数据库中安全地检索第二向量
Figure BDA0002796184870000181
在一些实施方案中,第一向量
Figure BDA0002796184870000182
和第二向量
Figure BDA0002796184870000183
可以是生物特征识别向量,即,第一向量
Figure BDA0002796184870000184
和第二向量
Figure BDA0002796184870000185
可对应于第一生物特征识别模板和第二生物特征识别模板(例如,虹膜代码、指纹的数字表示、语音样本、DNA片段等)。第一向量
Figure BDA0002796184870000186
和第二向量
Figure BDA0002796184870000187
可具有相等的长度,即,具有相同数量的分量。
在步骤504A处,第一计算机可生成第一随机向量
Figure BDA0002796184870000188
可根据任何适当的方式来生成第一随机向量
Figure BDA0002796184870000189
包括使用密码学安全伪随机数生成器(CSPRNG)。第一随机向量
Figure BDA00027961848700001810
可与第一向量
Figure BDA00027961848700001811
具有相等的长度,即,第一向量
Figure BDA00027961848700001812
和第一随机向量
Figure BDA00027961848700001813
可具有相同数量的分量。例如,如果第一向量
Figure BDA00027961848700001814
包括包含256个1字节分量的向量化虹膜代码,则第一随机向量
Figure BDA00027961848700001815
可包括256个随机生成的字节。
同样,在步骤504B处,第二计算机可生成第二随机向量
Figure BDA00027961848700001816
第二随机向量
Figure BDA00027961848700001817
可类似地使用任何适当的方式生成,包括使用CSPRNG生成。第二随机向量
Figure BDA00027961848700001818
可与第二向量
Figure BDA00027961848700001819
具有相等的长度,即,第二向量
Figure BDA00027961848700001820
和第二随机向量
Figure BDA00027961848700001821
可具有相同数量的分量。
在步骤506A处,第一计算机可通过组合第一向量
Figure BDA00027961848700001822
和第一随机向量
Figure BDA00027961848700001823
来生成第一掩蔽向量
Figure BDA00027961848700001824
在一些实施方案中,第一掩蔽向量
Figure BDA00027961848700001825
可等于第一向量
Figure BDA00027961848700001826
和第一随机向量
Figure BDA00027961848700001827
之和:
Figure BDA00027961848700001828
同样,在步骤506B处,第二计算机可通过组合第二向量
Figure BDA00027961848700001829
和第二随机向量
Figure BDA00027961848700001830
来生成第二掩蔽向量
Figure BDA00027961848700001831
在一些实施方案中,第二掩蔽向量
Figure BDA00027961848700001832
可等于第二向量
Figure BDA00027961848700001833
和第二随机向量
Figure BDA00027961848700001834
之和:
Figure BDA00027961848700001835
在步骤508A处,第一计算机可生成包括第一公共密钥PbA和第一私有密钥PrA的第一密钥对。第一公共密钥PbA可使得能够使用加密函数EA,并且第一私有密钥PrA可使得能够使用解密函数DA。即,可以用第一私有密钥PrA解密用第一公共密钥PbA加密的数据(例如,向量)。
在步骤510A处,第一计算机可生成包括第二公共密钥Pb′A和第二私有密钥Pr′A的第二密钥对。第二公共密钥Pb′A可使得能够使用加密函数E′A,并且第二私有密钥Pr′A可使得能够使用解密函数D′A。即,可以用第二私有密钥Pr′A解密用第二公共密钥Pr′A加密的数据(例如,向量)。
同样,在步骤508B处,第二计算机可生成包括第三公共密钥PbB和第三私有密钥PrB的第三密钥对。第三公共密钥PbB可使得能够使用加密函数EB,并且第三私有密钥PrB可使得能够使用解密函数DB。即,可以用第三私有密钥PrB解密用第三公共密钥PbB加密的数据(例如,向量)。
类似地,在步骤510B处,第二计算机可生成包括第四公共密钥Pb′B和第四私有密钥Pr′B的第四密钥对。第四公共密钥Pb′B可使得能够使用加密函数E′B,并且第四私有密钥Pr′B可使得能够使用解密函数D′B。即,可以用第四私有密钥Pr′B解密用第四公共密钥Pb′B加密的数据(例如,向量)。
在一些实施方案中,第一公共密钥PbA、第一私有密钥PrA、第二公共密钥Pb′A、第二私有密钥Pr′A、第三公共密钥PbB、第三私有密钥PrB,第四公共密钥Pr′B和第四私有密钥Pr′B可以是加法同态加密密钥,诸如Paillier加密密钥。
这些密码密钥对的生成取决于所使用密码系统的性质。以下生成加密密钥对的示例性方法对应于Paillier密码系统的使用。首先,第一计算机或第二计算机可以随机且独立地选择两个大质数p和q,使得pq和(p-1(q-1)的最大公分母为1。其次,第一计算机或第二计算机可以计算n=p*q和λ=lcm(p-1,q-1),并且其中lcm是用于确定最小公倍数的函数。接着,第一计算机或第二计算机可生成随机整数g,使得
Figure BDA0002796184870000191
第四,第一计算机或第二计算机可计算
Figure BDA0002796184870000192
(用于加密的)公共密钥是(n,g)对,而(用于解密的)私有密钥是(λ,μ)对。可基于待生成的密钥数来重复该过程,例如,第一计算机可重复该过程两次以生成第一公共密钥PbA、第一私有密钥PrA、第二公共密钥Pb′A和第二私有密钥Pr′A,并且第二计算机可重复该过程两次以生成第三公共密钥PbB、第三私有密钥PrB、第四公共密钥Pb′B,以及第四私有密钥Pr′B
在步骤512A处,第一计算机可通过使用第一公共密钥PbA对第一掩蔽向量
Figure BDA0002796184870000193
进行加密来生成第一加密掩蔽向量
Figure BDA0002796184870000194
同样,在步骤514A处,第一计算机可通过使用第二公共密钥Pb′A对第一随机向量
Figure BDA0002796184870000195
进行加密来生成第一加密随机向量
Figure BDA0002796184870000196
在步骤512B处,第二计算机可通过使用第三公共密钥PbB对第二掩蔽向量
Figure BDA0002796184870000201
进行加密来生成第二加密掩蔽向量
Figure BDA0002796184870000202
同样,在步骤514B处,第二计算机可通过使用第四公共密钥Pb′B对第二随机向量
Figure BDA0002796184870000203
进行加密来生成第二加密随机向量
Figure BDA0002796184870000204
一般来讲,在本公开的实施方案中,加密向量是指对向量的每个分量进行加密的向量。例如,对于第一加密掩蔽向量
Figure BDA0002796184870000205
Figure BDA0002796184870000206
返回图4,在设置阶段404之后是第一传输阶段406。在第一传输阶段406中,第一计算机和第二计算机可以在彼此之间传输数据。该数据可以在随后的中间计算阶段408和标量积计算阶段412中使用。
更具体地,在第一传输阶段406中,第一计算机可以向第二计算机传输第一公共密钥PbA、第二公共密钥Pb′A、第一加密掩蔽向量
Figure BDA0002796184870000207
和第一加密随机向量
Figure BDA0002796184870000208
其中第一加密掩蔽向量
Figure BDA0002796184870000209
为使用第一公共密钥PbA加密的第一掩蔽向量
Figure BDA00027961848700002010
并且第一加密随机向量
Figure BDA00027961848700002011
为使用第二公共密钥Pb′A加密的第一随机向量
Figure BDA00027961848700002012
另外,第一传输阶段406可包括第一计算机从第二计算机接收第三公共密钥PbB、第四公共密钥Pb′B、第二加密掩蔽向量
Figure BDA00027961848700002013
和第二加密随机向量
Figure BDA00027961848700002014
其中第二加密掩蔽向量
Figure BDA00027961848700002015
是使用第三公共密钥PbB加密的第二掩蔽向量
Figure BDA00027961848700002016
并且第二加密随机向量是使用第四公共密钥Pb′B加密的第二随机向量
Figure BDA00027961848700002017
这些数据(即,第一公共密钥PbA、第二公共密钥Pb′A、第三公共密钥PbB、第四公共密钥Pb′B、第一加密掩蔽向量
Figure BDA00027961848700002018
第二加密掩蔽向量
Figure BDA00027961848700002019
第一加密随机向量
Figure BDA00027961848700002020
和第二加密随机向量
Figure BDA00027961848700002021
)可通过任何适当的网络以任何适当的形式进行传输。例如,这些数据可在数据分组诸如UDP或TCP分组中通过网络诸如互联网进行传输。
在第一传输阶段406之后,第一计算机和第二计算机408可前进至中间计算阶段408,参照图6可以更好地理解。
图6示出了根据实施方案的方法的中间计算阶段期间执行的步骤的流程图。
在步骤602A处,第一计算机可生成第一取反向量
Figure BDA00027961848700002022
第一取反向量
Figure BDA00027961848700002023
可包括第一向量
Figure BDA00027961848700002024
的取反,即,第一取反向量
Figure BDA00027961848700002025
的每个分量可等于第一向量
Figure BDA0002796184870000211
的对应分量的负值。例如,对于第一向量
Figure BDA0002796184870000212
第一取反向量为
Figure BDA0002796184870000213
同样,在步骤602B处,第二计算机可生成第二取反向量
Figure BDA0002796184870000214
第二取反向量
Figure BDA0002796184870000215
可包括第二向量
Figure BDA0002796184870000216
的取反,即,第二取反向量
Figure BDA0002796184870000217
的每个分量可等于第二向量
Figure BDA0002796184870000218
的对应分量的负值。例如,对于第二向量
Figure BDA0002796184870000219
第二取反向量为
Figure BDA00027961848700002110
在步骤604A处,第一计算机可通过使用第三公共密钥PbB对第一取反向量
Figure BDA00027961848700002111
进行加密来生成第一加密取反向量
Figure BDA00027961848700002112
第三公共密钥PbB可能已经在设置阶段(图4中的设置阶段404)期间由第二计算机预先生成,并且在第一传输阶段(图4中的第一传输阶段406)中传输至第一计算机。
在步骤606A处,第一计算机可基于第二加密掩蔽向量
Figure BDA00027961848700002113
和第一加密取反向量
Figure BDA00027961848700002114
来生成第一加密差向量
Figure BDA00027961848700002115
在第一传输阶段期间,第一计算机可能已经从第二计算机接收到第二加密掩蔽向量
Figure BDA00027961848700002116
在一些实施方案中,第一计算机可利用加法同态密码术的特性来生成第一加密差向量
Figure BDA00027961848700002117
这可以使第一计算机能够生成第一加密差向量
Figure BDA00027961848700002118
而无需首先解密第二加密掩蔽向量
Figure BDA00027961848700002119
例如,在Paillier密码系统中,一般来讲,两个密文c和d的乘积等于对应明文的加密总和,即:
E(c)E(d)=E(c+d)
因此,第一计算机可通过将第二加密掩蔽向量
Figure BDA00027961848700002120
的每个分量与第一加密取反向量
Figure BDA00027961848700002121
的对应分量相乘来生成第一加密差向量
Figure BDA00027961848700002122
Figure BDA00027961848700002123
Figure BDA00027961848700002124
Figure BDA00027961848700002125
Figure BDA00027961848700002126
在步骤608A处,第一计算机可通过使用第四公共密钥Pb′B对第一取反向量
Figure BDA00027961848700002127
进行加密来生成第二加密取反向量
Figure BDA00027961848700002128
第四公共密钥Pb′B可能已经在设置阶段由第二计算机生成,并且在第一传输阶段被传输至第一计算机。
在步骤610A处,第一计算机可基于第二加密随机向量
Figure BDA00027961848700002129
和第二加密取反向量
Figure BDA00027961848700002130
来生成第二加密差向量
Figure BDA00027961848700002131
在第一传输阶段期间可能已经从第二计算机接收到第二加密随机向量
Figure BDA00027961848700002132
在一些实施方案中,第一计算机可利用加法同态密码术的特性来生成第二加密差向量
Figure BDA0002796184870000221
这可以使用与在步骤606A处生成第一加密差向量所使用的一系列类似的步骤或操作来实现,即,将第二加密随机向量
Figure BDA0002796184870000222
的每个加密分量与第二加密取反向量
Figure BDA0002796184870000223
的对应分量相乘:
Figure BDA0002796184870000224
Figure BDA0002796184870000225
Figure BDA0002796184870000226
Figure BDA0002796184870000227
在步骤604B处,第二计算机可通过使用第一公共密钥PbA对第二取反向量
Figure BDA0002796184870000228
进行加密来生成第三加密取反向量
Figure BDA0002796184870000229
第一公共密钥PbA可能已经在设置阶段由第一计算机生成,并且在第一传输阶段被传输至第二计算机。
在步骤606B处,第二计算机可基于第一加密掩蔽向量
Figure BDA00027961848700002210
和第三加密取反向量
Figure BDA00027961848700002211
来生成第三加密差向量
Figure BDA00027961848700002212
在第一传输阶段期间,第二计算机可能已经从第一计算机接收到第一加密掩蔽向量
Figure BDA00027961848700002213
在一些实施方案中,第二计算机可利用加法同态密码术的特性来生成第三加密差向量
Figure BDA00027961848700002214
这可以通过使用与在步骤606A处生成第一加密差向量所使用的一系列类似的步骤或操作来实现,即,将第一加密掩蔽向量
Figure BDA00027961848700002215
的每个加密分量与第三加密取反向量
Figure BDA00027961848700002216
的对应加密分量相乘:
Figure BDA00027961848700002217
Figure BDA00027961848700002218
Figure BDA00027961848700002219
Figure BDA00027961848700002220
在步骤608B处,第二计算机可通过使用第二公共密钥Pb′A对第二取反向量
Figure BDA00027961848700002221
进行加密来生成第四加密取反向量
Figure BDA00027961848700002222
第二公共密钥Pb′A可能先前已经在设置阶段由第一计算机生成,并且在第一传输阶段被传输至第二计算机。
在步骤610B处,第二计算机可基于第一加密随机向量
Figure BDA00027961848700002223
和第四加密取反向量
Figure BDA00027961848700002224
来生成第四加密差向量
Figure BDA00027961848700002225
在第一传输阶段,第二计算机可能已经从第一计算机接收了第一加密随机向量。在一些实施方案中,第二计算机可利用加法同态密码术的特性来生成第四加密差向量
Figure BDA00027961848700002226
这可以使用在步骤606B处用于生成第三加密差向量的一系列类似步骤或操作来实现,即,将第二加密随机向量
Figure BDA0002796184870000231
的每个加密分量与第二加密取反向量
Figure BDA0002796184870000232
的对应加密分量相乘:
Figure BDA0002796184870000233
Figure BDA0002796184870000234
Figure BDA0002796184870000235
Figure BDA0002796184870000236
在步骤612A处,第一计算机可生成第一排列πA1和第二排列πA2。如上所述,排列是可以对一组或多个事物进行排序或安排的方式。排列可用于根据排列对事物进行“排列”,并且排列可表示为向量。例如,排列π=[3,1,2]可指示对于包括三个分量的向量,第三分量应该放置在第一位置,第一分量应该放置在第二位置,并且第二分量应该放置在第三位置。例如,应用于向量
Figure BDA0002796184870000237
的排列π=[3,1,2]可导致排列向量
Figure BDA0002796184870000238
Figure BDA0002796184870000239
第一计算机可以多种方式生成第一排列πA1和第二排列πA2。例如,第一计算机可使用算法(诸如,Fisher-Yates shuffle)对有序序列(即,[1、2,…,n])进行混排。混排的有序序列可以用作第一排列πA1。第一计算机可使用类似的过程来生成第二排列,第二次对有序序列进行混排,并且将结果用作第二排列πA2。第一排列πA1和第二排列πA2可具有与第一向量
Figure BDA00027961848700002320
相同数量的分量。
在步骤612B处,第二计算机可生成第三排列πB1和第四排列πB2。如以上参照第一排列πA1和第二排列πA2所描述的,第三排列πB1和第四排列πB2可以许多方式生成,例如,使用混排算法(例如,Fisher-Yates)对有序序列进行混排。
在步骤614A处,第一计算机可使用第一排列πA1和第一加密差向量
Figure BDA00027961848700002310
来生成第一排列的加密差向量
Figure BDA00027961848700002311
第一计算机可通过使用第一排列πA1对第一加密差向量
Figure BDA00027961848700002312
进行排列来生成第一排列的加密差向量
Figure BDA00027961848700002313
即,将第一排列πA1应用于第一加密差向量
Figure BDA00027961848700002314
这可通过使用第一排列πA1的值或分量作为索引来对第一加密差向量
Figure BDA00027961848700002315
进行重新排序来实现。为了重复上面使用的实例,应用于向量
Figure BDA00027961848700002316
的排列π=[3,1,2]可导致排列向量
Figure BDA00027961848700002317
以类似的方式,应用于第一加密差向量
Figure BDA00027961848700002318
的第一排列πA1可导致第一排列的加密差向量
Figure BDA00027961848700002319
在步骤616A处,第一计算机可使用第二排列πA2和第二加密差向量
Figure BDA0002796184870000241
来生成第二排列的加密差向量
Figure BDA0002796184870000242
这可以与以上参照步骤614A所述的基本相同的方式来实现,即,第一计算机可使用第二排列πA2来对第二加密差向量
Figure BDA0002796184870000243
的分量进行重新排序,从而产生第二排列的加密差向量
Figure BDA0002796184870000244
在步骤614B处,第二计算机可使用第三排列πB1和第三加密差向量
Figure BDA0002796184870000245
来生成第三排列的加密差向量
Figure BDA0002796184870000246
这可以与以上参照步骤614A和步骤616A所述的基本相同的方式来实现,即,第二计算机可使用第三排列πB1来对第三加密差向量
Figure BDA0002796184870000247
的分量进行重新排序以产生第三排列的加密差向量
Figure BDA0002796184870000248
在步骤616B处,第二计算机可使用第四排列πB2和第四加密差向量
Figure BDA0002796184870000249
来生成第四排列的加密差向量
Figure BDA00027961848700002410
这可以与以上参照步骤614A、步骤614B和步骤616A所述的基本相同的方式来实现,即,第二计算机可使用第四排列πB2来对第四加密差向量
Figure BDA00027961848700002411
的分量进行重新排序以产生第四排列的加密差向量
Figure BDA00027961848700002412
应当理解,在一些实施方案中,在中间计算阶段期间执行的一些步骤可以替代地在较早或较晚的阶段执行。例如,可在设置阶段(图4中的设置阶段404)期间生成第一排列πA1、第二排列πA2、第三排列πB1和第四排列πB2。同样,还可以在设置阶段而不是如上所述的中间计算阶段生成第一取反向量
Figure BDA00027961848700002413
和第二取反向量
Figure BDA00027961848700002414
返回图4,在中间计算阶段408之后,第一计算机和第二计算机可执行第二传输阶段410。在第二传输阶段410中,第一计算机和第二计算机可将在中间计算阶段408期间生成的数据在彼此之间传输。如下所述,这些数据可用于在标量积计算阶段412中计算标量积
Figure BDA00027961848700002415
更具体地,在第二传输阶段410中,第一计算机可以向第二计算机传输第一排列的加密差向量
Figure BDA00027961848700002416
和第二排列的加密差向量
Figure BDA00027961848700002417
同样,在第二传输阶段410中,第一计算机可从第二计算机接收第三排列的加密差向量
Figure BDA00027961848700002418
和第四排列的加密差向量
Figure BDA00027961848700002419
其中第三排列的加密差向量
Figure BDA00027961848700002420
使用第一公共密钥PbA加密并且使用第三排列πB1进行排列,并且其中第四排列的加密差向量
Figure BDA00027961848700002421
使用第二公共密钥Pb′A进行加密,并且使用第四排列πB2进行排列。
与在第一传输阶段406中一样,可以任何适当的形式在任何适当的网络上传输这些数据(即,第一排列的加密差向量
Figure BDA0002796184870000251
第二排列的加密差向量
Figure BDA0002796184870000252
第三排列的加密差向量
Figure BDA0002796184870000253
和第四排列的加密差向量
Figure BDA0002796184870000254
)。例如,这些数据可在数据分组诸如UDP或TCP分组中通过网络诸如互联网进行传输。
在第二传输阶段410之后,第一计算机和第二计算机可进入标量积计算阶段412,其中第一计算机和第二计算机计算第一向量
Figure BDA0002796184870000255
和第二向量
Figure BDA0002796184870000256
的标量积。参照图7可以更好地理解标量积计算阶段412。
在步骤702A处,第一计算机可通过使用第一私有密钥PrA解密第三排列的加密差向量
Figure BDA0002796184870000257
来产生第三排列的差向量
Figure BDA0002796184870000258
Figure BDA0002796184870000259
尽管第一计算机知悉第一掩蔽向量a′的分量的值,但是由于第三排列πB1对于第一计算机是未知的,因此第一计算机不能确定第二向量
Figure BDA00027961848700002510
的分量的值。因此,保护第二向量
Figure BDA00027961848700002511
免受第一计算机的影响。这样可以保持对应于第二向量
Figure BDA00027961848700002512
的人的隐私(例如,如果第二向量
Figure BDA00027961848700002513
是对应于此人的生物特征识别向量)。
在步骤702B处,第二计算机可通过使用第三私有密钥PrB解密第一排列的加密差向量
Figure BDA00027961848700002514
来产生第一排列的差向量
Figure BDA00027961848700002515
Figure BDA00027961848700002516
尽管第二计算机知悉第二掩蔽向量b′的分量的值,但是由于第一排列πA1对于第二计算机是未知的,因此第二计算机不能确定第一向量
Figure BDA00027961848700002517
的分量的值。因此,保护第一向量
Figure BDA00027961848700002518
免受第二计算机的影响。这样可以保持对应于第一向量
Figure BDA00027961848700002519
的人的隐私(例如,如果第一向量
Figure BDA00027961848700002520
是对应于此人的生物特征识别向量)。
在步骤704A处,第一计算机可通过使用第二私有密钥Pr′A解密第四排列的加密差向量
Figure BDA00027961848700002521
来产生第四排列的差向量
Figure BDA00027961848700002522
同样,保护第二向量
Figure BDA00027961848700002523
免受第一计算机的影响,因为尽管第一计算机知悉第一随机向量
Figure BDA00027961848700002524
的分量的值,但是第一计算机不知道第四排列πB2
在步骤704B处,第二计算机可通过使用第四私有密钥Pr′B解密第二排列的加密差向量
Figure BDA00027961848700002525
来产生第二排列的差向量
Figure BDA00027961848700002526
Figure BDA00027961848700002527
同样,保护第一向量a免受第二计算机的影响,因为尽管第二计算机知悉第二随机向量
Figure BDA00027961848700002528
的分量的值,但是第二计算机不知道第二排列πA2
在步骤706A处,第一计算机可计算第一掩蔽向量α′的平方大小。第一掩蔽向量α′的平方大小的值等于第一掩蔽向量
Figure BDA00027961848700002529
与其自身的标量积,即:
Figure BDA0002796184870000261
第一计算机可以对第一掩蔽向量
Figure BDA0002796184870000262
的每个分量的值求平方,然后对所得平方求和,即,第一计算机可根据以下公式来计算第一掩蔽向量α′的平方大小:
Figure BDA0002796184870000263
同样,在步骤706B处,第二计算机可计算第二掩蔽向量β′的平方大小。第二掩蔽向量β′的平方大小的值等于第二掩蔽向量
Figure BDA0002796184870000264
与其自身的标量积,即:
Figure BDA0002796184870000265
第二计算机可以对第二掩蔽向量
Figure BDA0002796184870000266
的每个分量的值求平方,然后对所得平方求和,即,第二计算机可根据以下公式来计算第二掩蔽向量β′的平方大小:
Figure BDA0002796184870000267
在步骤708A处,第一计算机可计算第一随机向量ρA的平方大小。第一随机向量ρA的平方大小的值等于第一随机向量
Figure BDA0002796184870000268
与其自身的标量积,即:
Figure BDA0002796184870000269
第一计算机可以对第一随机向量
Figure BDA00027961848700002610
的每个分量的值求平方,然后对所得平方求和,即,第一计算机可根据以下公式来计算第一随机向量ρA的平方大小:
Figure BDA00027961848700002611
同样,在步骤708B处,第二计算机可计算第二随机向量ρB的平方大小。第二随机向量ρ的平方大小的值等于第二随机向量
Figure BDA00027961848700002612
与其自身的标量积,即:
Figure BDA00027961848700002613
第二计算机可以对第二随机向量
Figure BDA00027961848700002614
的每个分量的值求平方,然后对所得平方求和,即,第二计算机可根据以下公式来计算第二随机向量ρB的平方大小:
Figure BDA00027961848700002615
在步骤710A处,第一计算机可计算第三排列的差向量δA的平方大小。第三排列的差向量δA的平方大小的值等于第三排列的差向量
Figure BDA00027961848700002616
Figure BDA00027961848700002617
与其自身的标量积,即:
Figure BDA0002796184870000271
第一计算机可以对第三排列的差向量
Figure BDA0002796184870000272
的每个分量的值求平方,然后对所得平方求和,即,第一计算机可根据以下公式来计算第三排列的差向量δA的平方大小:
Figure BDA0002796184870000273
同样,在步骤710B处,第二计算机可计算第一排列的差向量δB的平方大小。第一排列的差向量δB的平方大小的值等于第一排列的差向量
Figure BDA0002796184870000274
与其自身的标量积,即:
Figure BDA0002796184870000275
第二计算机可以对第一排列的差向量
Figure BDA0002796184870000276
的每个分量的值求平方,然后对所得平方求和,即,第二计算机可根据以下公式来计算第一排列的差向量δB的平方大小:
Figure BDA0002796184870000277
在步骤712A处,第一计算机可计算第四排列的差向量σA的平方大小。第四排列的差向量σA的平方大小的值等于第四排列的差向量
Figure BDA0002796184870000278
Figure BDA0002796184870000279
与其自身的标量积,即:
Figure BDA00027961848700002710
第一计算机可以对第四排列的差向量
Figure BDA00027961848700002711
的每个分量的值求平方,然后对所得平方求和,即,第一计算机可根据以下公式来计算第四排列的差向量σA的平方大小:
Figure BDA00027961848700002712
同样,在步骤712B处,第二计算机可计算第二排列的差向量σB的平方大小。第二排列的差向量σB的平方大小的值等于第二排列的差向量
Figure BDA00027961848700002713
与其自身的标量积,即:
Figure BDA00027961848700002714
第二计算机可以对第二排列的差向量
Figure BDA00027961848700002715
的每个分量的值求平方,然后对所得平方求和,即,第二计算机可根据以下公式来计算第四排列的差向量σB的平方大小:
Figure BDA00027961848700002716
在步骤714A处,第一计算机可基于第一掩蔽向量α′的平方大小、第一随机向量ρA的平方大小、第三排列的差向量δA的平方大小和第四排列的差向量σA的平方大小来计算第一向量
Figure BDA0002796184870000281
和第二向量
Figure BDA0002796184870000282
的标量积。在一些实施方案中,第一计算机可基于以下公式来计算第一向量
Figure BDA0002796184870000283
和第二向量
Figure BDA0002796184870000284
的标量积:
Figure BDA0002796184870000285
同样,在步骤714B处,第二计算机可基于第二掩蔽向量β′的平方大小、第二随机向量ρB的平方大小、第一排列向量δB的平方大小和第二排列向量σB的平方大小来计算第一向量
Figure BDA0002796184870000286
和第二向量
Figure BDA0002796184870000287
的标量积。在一些实施方案中,第二计算机可基于以下公式来计算第一向量
Figure BDA0002796184870000288
和第二向量
Figure BDA0002796184870000289
的标量积:
Figure BDA00027961848700002810
简而言之,表明第一计算机和第二计算机用来计算第一向量
Figure BDA00027961848700002811
和第二向量
Figure BDA00027961848700002812
的标量积的方法如上所述准确计算标量积可能有所帮助。
回想一下,根据定义,两个向量的标量积等于每个向量的分量的乘积之和:
Figure BDA00027961848700002813
如上所述,第一计算机使用第一掩蔽向量α′的平方大小、第一随机向量ρA的平方大小、第三排列向量δA的平方大小和第四排列向量σA的平方大小,根据以下公式来计算第一向量
Figure BDA00027961848700002814
和第二向量
Figure BDA00027961848700002815
的标量积:
Figure BDA00027961848700002816
需注意,给定向量
Figure BDA00027961848700002817
的平方大小被定义为求平方的向量
Figure BDA00027961848700002818
的分量之和:
Figure BDA00027961848700002819
如上所述,第三排列的差向量
Figure BDA00027961848700002820
第三排列的差向量δA的平方大小可表示为:
Figure BDA00027961848700002821
由于加法交换律,总和与排列无关,因此:
Figure BDA00027961848700002822
Figure BDA00027961848700002823
Figure BDA0002796184870000291
通过定义第一掩蔽向量α′的标量积和平方大小,可将第三排列的差向量δA的平方大小进一步表示为:
Figure BDA0002796184870000292
使用类似的推理方法,可以将第四排列的差向量σA表示为:
Figure BDA0002796184870000293
Figure BDA0002796184870000294
Figure BDA0002796184870000295
Figure BDA0002796184870000296
Figure BDA0002796184870000297
Figure BDA0002796184870000298
Figure BDA0002796184870000299
返回标量积的表达式,然后替代第三排列的差向量δA的平方大小和第四排列的差向量σA的平方大小的表达式:
Figure BDA00027961848700002910
Figure BDA00027961848700002911
对相同的项进行分组:
Figure BDA00027961848700002912
Figure BDA00027961848700002913
回想一下,第一掩蔽向量
Figure BDA00027961848700002914
等于第一向量
Figure BDA00027961848700002915
和第一随机向量
Figure BDA00027961848700002916
之和:
Figure BDA00027961848700002917
标量积的表达式可以简化如下:
Figure BDA0002796184870000301
Figure BDA0002796184870000302
Figure BDA0002796184870000303
这表明第一计算机用于计算第一向量
Figure BDA0002796184870000304
和第二向量
Figure BDA0002796184870000305
的标量积的公式的准确性。
类似地,第二计算机使用第二掩蔽向量β′的平方大小、第二随机向量ρB的平方大小、第一排列的差向量δB的平方大小和第二排列的差向量σB的平方大小,根据以下公式来计算第一向量
Figure BDA0002796184870000306
和第二向量
Figure BDA0002796184870000307
的标量积:
Figure BDA0002796184870000308
使用类似的推理方法,可以确定第一排列的差向量δB的平方大小的表达式:
Figure BDA0002796184870000309
Figure BDA00027961848700003010
Figure BDA00027961848700003011
Figure BDA00027961848700003012
Figure BDA00027961848700003013
Figure BDA00027961848700003014
Figure BDA00027961848700003015
同样,可以确定第二排列的差向量σB的平方大小的表达式:
Figure BDA00027961848700003016
Figure BDA00027961848700003017
Figure BDA0002796184870000311
Figure BDA0002796184870000312
Figure BDA0002796184870000313
Figure BDA0002796184870000314
Figure BDA0002796184870000315
返回标量积的表达式,然后替代第一排列的差向量δB的平方大小和第二排列的差向量σB的平方大小的表达式:
Figure BDA0002796184870000316
Figure BDA0002796184870000317
对相同的项进行分组:
Figure BDA0002796184870000318
Figure BDA0002796184870000319
第二掩蔽向量
Figure BDA00027961848700003110
等于第二向量
Figure BDA00027961848700003111
和第二随机向量
Figure BDA00027961848700003112
之和:
Figure BDA00027961848700003113
标量积的表达式可以简化如下:
Figure BDA00027961848700003114
Figure BDA00027961848700003115
Figure BDA00027961848700003116
这表明由第二计算机使用的计算第一向量
Figure BDA00027961848700003117
和第二向量
Figure BDA00027961848700003118
的标量积的等式是准确的。
返回图7,在步骤716A处,第一计算机可将标量积或从标量积导出的值与第一预先确定的阈值TA进行比较,并且如果标量积或从标量积导出的值超出第一预先确定的阈值(即,
Figure BDA00027961848700003119
),第一计算机可执行与第二计算机的交互(即,在图4的交互阶段414期间),诸如支付交易或获得第一计算机的用户或所有者进入安全建筑物的权限。可从标量积导出的值的实例包括第一向量
Figure BDA0002796184870000321
和第二向量
Figure BDA0002796184870000322
之间的角度,或者第一向量
Figure BDA0002796184870000323
和第二向量
Figure BDA0002796184870000324
之间的角度的余弦,或者第一向量
Figure BDA0002796184870000325
和第二向量
Figure BDA0002796184870000326
之间的角度的另一个三角函数,或者某个其他值,诸如比赛得分、距离度量,等等。
例如,如果匹配标准是第一向量
Figure BDA0002796184870000327
和第二向量
Figure BDA0002796184870000328
之间的角度为5度或更小,并且从标量积导出的值是第一向量
Figure BDA0002796184870000329
和第二向量
Figure BDA00027961848700003210
之间的角度的余弦,则第一预先确定的阈值TA可等于cos(5°)=0.996。如果从标量积导出的值大于第一预先确定的阈值TA,则指示第一向量
Figure BDA00027961848700003211
和第二向量
Figure BDA00027961848700003212
之间的角度差为5度或更小,可能指示匹配。
在一些实施方案中,第一向量
Figure BDA00027961848700003213
和第二向量
Figure BDA00027961848700003214
可分别对应于第一生物特征识别模板和第二生物特征识别模板,并且第一预先确定的阈值TA可以是生物特征识别匹配阈值。
在步骤716B处,第二计算机可将标量积或从标量积导出的值(例如,第一向量
Figure BDA00027961848700003215
和第二向量
Figure BDA00027961848700003216
之间的角度,或者第一向量
Figure BDA00027961848700003217
和第二向量
Figure BDA00027961848700003218
之间的角度的三角函数)与第二预先确定的阈值TB进行比较,并且如果标量积或从标量积导出的值超出第二预先确定的阈值(即,
Figure BDA00027961848700003219
Figure BDA00027961848700003220
),则第二计算机可执行与第一计算机的交互(即,在图4中的交互阶段414期间),诸如执行支付交易或允许第一计算机的用户访问安全建筑物。
在一些实施方案中,第一预先确定的阈值TA和第二预先确定的阈值TB可以不相等,指示第一计算机或第二计算机可具有用于执行交互的较高阈值。然而,在其他实施方案中,使第一预先确定的阈值TA和第二预先确定的阈值TB相等可能是有利的。
在一些实施方案中,在将标量积或从标量积导出的值与第一预先确定的阈值TA进行比较之后,第一计算机可以向第二计算机传输指示消息,从而指示第一计算机对比较满意并且将继续进行交互。同样,在将标量积或从标量积导出的值与第二预先确定的阈值TB进行比较之后,第二计算机可将指示消息传输至第一计算机,从而指示第二计算机对比较满意并且将继续进行交互。另选地或附加地,当适当的匹配被确定(例如,绿灯)或未确定(例如,红灯)时,第一计算机和/或第二计算机中的每一者可包括(例如,在显示器上的)指示符。
两台计算机将标量积与其相应的阈值进行比较的优点是,两台计算机都可以确认标量超出其相应的阈值。例如,如果仅第一计算机将标量积与其相应的阈值进行比较,则第二计算机必须相信第一计算机正确地计算了标量积,并且第一计算机切实地指示标量积超出第一预先确定的阈值。然而,由于两台计算机都计算标量积并且将标量积或从标量积导出的值与相应的阈值进行比较,因此,每台计算机都可以确认计算,而任何一台计算机都不能欺骗对方。
返回图4,在标量积计算阶段412之后,第一计算机和第二计算机可在交互阶段414中执行交互。如果标量积或从标量积导出的值(例如,角度、角度的启发式估计、角度的余弦、角度的余弦的启发式估计、另一个距离度量)超出预先确定的阈值,则可执行交互,如参照图7所述。
交互阶段414的交互可采取多种形式。图8示出了第一示例性交互、支付交易的框图。图9示出了第二示例性交互、建筑物访问序列的框图。
图8示出了示例性交易处理系统。该交易处理系统可以用作第一计算机804和第二计算机806之间的第一示例性交互的一部分。
用户802可以是操作第一计算机804(例如,智能电话)的顾客。用户802可能希望从资源提供商(例如,操作资源提供商计算机810的商家)购买商品或服务。资源提供商可以另外操作接入终端808(例如,销售点终端)。资源提供商计算机810可经由收单方计算机812和支付处理网络814与发行方计算机816进行通信。
支付处理网络814可包括数据处理子系统、网络,以及用于支持及传送授权服务、异常文件服务和清算与结算服务的操作。示例性支付处理网络814可包括VisaNetTM。支付处理网络诸如VisaNetTM能够处理信用卡交易、借记卡交易以及其他类型的商业交易。VisaNetTM尤其包括处理授权请求的VIP系统(Visa集成支付系统)和执行清算与结算服务的Base II系统。支付处理网络可使用合适的有线或无线网络,包括互联网。
使用基于生物特征识别向量的隐私保护标量积计算的示例性支付交易可以描述如下。用户802可使第一计算机804与接入终端808接触,使得第一计算机804和接入终端808可经由例如近场通信进行通信。第一计算机804可以向接入终端808传达用户802希望为商品或服务进行支付的信息。接入终端808可请求凭证诸如访问令牌,该访问令牌可用于在与由发行方管理的与用户802相关联的支付账户和与由收单方管理的与资源提供商相关联的支付账户之间进行支付。
为了获取访问令牌,第一计算机804和第二计算机806可执行隐私保护标量积计算,以便计算存储在第一计算机804上的第一生物特征识别向量和存储在第二计算机806上的生物特征识别向量数据库中的第二生物特征识别向量的标量积。第一计算机804和第二计算机806可执行如上面参照图4至图7所述的标量积计算。在计算标量积时,第二计算机806可将标量积或从标量积导出的值与预先确定的阈值进行比较。如果标量积或从标量积导出的值超出预先确定的阈值,则第二计算机806可将访问令牌传输至第一计算机804(该传输可包括第一计算机804和第二计算机806之间的交互)。
在已经从第二计算机806接收到访问令牌时,第一计算机804可将访问令牌和任何附加的访问凭证传输至接入终端808。与接入终端808通信的资源提供商计算机810然后可以生成授权请求消息,该授权请求消息包括由接入终端808接收的信息以及任何其他交易信息(例如,交易金额、商家特定信息等)并且将该信息电子传输至收单方计算机812。然后,收单方计算机812可经由支付处理网络814接收、处理授权请求消息并且将其转发到发行方计算机816,以进行授权。发行方计算机816可以用授权响应消息回复。可经由资源提供商计算机810、收单方计算机812和支付处理网络814将授权响应消息从发行方计算机816传输至接入终端808。
在一天结束时或在某个其他合适的时间间隔处,可以对该交易执行收单方计算机812、支付处理网络814与发行方计算机816之间的清算与结算流程。
图9示出了根据一些实施方案的第二示例性交互。用户902希望获得对建筑物910、安全设施(即,安全公寓大楼或政府行政建筑物)的访问。建筑物910的门由资源提供商计算机908锁定和控制。为了获得对建筑物910的访问,用户902需要经由第一计算机904(例如,用户902的智能电话)向资源提供商计算机908提供访问令牌或另一凭证。
用户902可能先前已经登记了涉及第二计算机906的生物特征认证系统。第二计算机906可以将与用户902相对应的生物特征识别向量(第二向量)存储在生物特征数据库中。类似地,第一计算机904可以将与用户902相对应的所保存的生物特征识别向量(第一向量)存储在安全元件上。另选地,用户902可使用第一计算机904来捕获生物特征识别实例并且例如通过将智能电话相机对准他们的眼睛并且拍照来对所捕获的生物特征识别实例进行向量化。
作为生物特征认证系统的一部分,第一计算机904和第二计算机906可计算第一向量和第二向量的标量积,以便认证用户902。在计算标量积之后(如上面参考图4至图7所述),第二计算机906可以将标量积或从标量积导出的值(例如,第一向量和第二向量之间的角度)与预先确定的阈值进行比较。如果标量积或从标量积导出的值超出预先确定的阈值,则可以认证用户902。随后,第二计算机906可将指令传输至资源提供商计算机908,从而指示资源提供商计算机908打开门并且允许用户902访问建筑物910。另选地,第二计算机906可以向第一计算机904发行访问令牌。第一计算机904随后可以(例如,经由近场通信或经由网络诸如互联网或LAN)将该访问令牌提供给资源提供商908。资源提供商计算机908可以验证访问令牌并且向用户902授予对建筑物910的访问权限。
本文所提及的任何计算机系统都可以使用任何合适数量的子系统。在一些实施方案中,计算机系统包括单个计算机装置,其中子系统可以是计算机装置的组件。在其他实施方案中,计算机系统可以包括多个计算机装置,每个计算机装置都是具有内部组件的子系统。
计算机系统可包括例如由外部接口或由内部接口连接在一起的多个组件或子系统。在一些实施方案中,计算机系统、子系统或装置可以通过网络进行通信。在此类情况下,一个计算机可视为客户端,且另一计算机可视为服务器,其中每台计算机可以是同一计算机系统的一部分。客户端和服务器可以各自包含多个系统、子系统或组件。
应当理解,本发明的任何实施方案可以使用硬件(例如,专用集成电路或现场可编程门阵列)和/或使用计算机软件以控制逻辑的形式借助通用可编程处理器以模块化或集成方式实现。如本文所用,处理器包括单核处理器、在同一集成芯片上的多核处理器,或在单个电路板上或网络化的多个处理单元。基于本公开和本文中所提供的教示,本领域的普通技术人员将知道并且了解使用硬件和硬件与软件的组合来实施本发明的实施方案的其他方式和/或方法。
本申请中描述的任何软件组件或功能可被实现为要使用例如Java、C、C++、C#、Objective-C、Swift的任何合适的计算机语言或例如Perl或Python的脚本语言,使用例如常规的或面向对象的技术由处理器执行的软件代码。软件代码可作为一系列指令或命令存储在计算机可读介质上以供存储和/或传递,合适的介质包含随机存取存储器(RAM)、只读存储器(ROM)、例如硬盘驱动器或软盘的磁性介质,或例如光盘(CD)或数字通用盘(DVD)的光学介质、闪存存储器等等。计算机可读介质可以是此类存储或传输设备的任何组合。
此类程序还可以使用适应于经由包括互联网的符合多种协议的有线、光学和/或无线网络进行传输的载波信号来编码和传输。因此,根据本发明的实施方案的计算机可读介质可以使用以此类程序编码的数据信号来创建。以程序代码编码的计算机可读介质可与兼容设备一起封装或与其他设备分开提供(例如,经由互联网下载)。任何此类计算机可读介质可以驻留于单个计算机产品(例如,硬盘驱动器、CD或整个计算机系统)上或内,且可存在于系统或网络内的不同计算机产品上或内。计算机系统可包括用于将本文中所提及的任何结果提供给用户的监视器、打印机或其他合适的显示器。
本文所述的任何方法可以完全地或部分地用包括可被配置成执行这些步骤的一个或多个处理器的计算机系统执行。因此,实施方案可涉及被配置成执行本文所述的任何方法的步骤、可能具有执行相应步骤或相应步骤群组的不同组件的计算机系统。尽管呈现为编号步骤,但本文中的方法的步骤可以同时或以不同顺序被执行。另外,这些步骤的部分可以与来自其他方法的掐他步骤的部分一起使用。同样,一个步骤的全部或部分可以是可选的。另外,任何方法的任何步骤可以用模块、电路或用于执行这些步骤的其他手段来执行。
在不偏离本发明的实施方案的精神和范围的情况下,具体实施方案的特定细节可以任何合适方式组合。然而,本发明的其他实施方案可涉及与每个单独的方面相关的特定实施方案,或者这些单独的方面的特定组合。上文对本发明的示例性实施方案的描述已经出于说明和描述的目的呈现。不旨在是详尽的,或将本发明局限到描述的精确形式,根据上文的教导许多修改和变形是可能的。选择和描述这些实施方案是为了最好地解释本发明的原理及其实际应用,从而使本领域的技术人员能够在各种实施方案中最好地利用本发明,并且进行适合于预期的特定用途的各种修改。
除非明确指示有相反的意思,否则“一个/种”或“该/所述”的叙述旨在表示“一个/种或多个/种”。除非明确指示有相反的意思,“或”的使用旨在表示是“包括性的或”,而不是“排他性的或”。
本文中提及的所有专利、专利申请、公开和描述出于所有目的以引用方式全部并入本文。不承认它们是现有技术。

Claims (20)

1.一种方法,包括:
由第一计算机向第二计算机传输第一公共密钥、第二公共密钥、第一加密掩蔽向量和第一加密随机向量,其中所述第一加密掩蔽向量是使用所述第一公共密钥加密的第一掩蔽向量,并且所述第一加密随机向量是使用所述第二公共密钥加密的第一随机向量;
由所述第一计算机从所述第二计算机接收第三公共密钥、第四公共密钥、第二加密掩蔽向量和第二加密随机向量,其中所述第二加密掩蔽向量是使用所述第三公共密钥加密的第二掩蔽向量,并且所述第二加密随机向量是使用所述第四公共密钥加密的第二随机向量;
由所述第一计算机从所述第二计算机接收第三排列的加密差向量和第四排列的加密差向量,其中所述第三排列的加密差向量使用所述第一公共密钥加密并且使用第三排列进行排列,并且其中所述第四排列的加密差向量使用所述第二公共密钥进行加密,并且使用第四排列进行排列;
由所述第一计算机通过使用与所述第一公共密钥相对应的第一私有密钥解密所述第三排列的加密差向量来产生第三排列的差向量;
由所述第一计算机通过使用与所述第二公共密钥相对应的第二私有密钥解密所述第四排列的加密差向量来产生第四排列的差向量;以及
由所述第一计算机基于所述第一掩蔽向量、所述第一随机向量、所述第三排列的差向量和所述第四排列的差向量来计算第一向量和第二向量的标量积。
2.如权利要求1所述的方法,其中计算所述第一向量和所述第二向量的标量积包括:
由所述第一计算机计算所述第一掩蔽向量的平方大小;
由所述第一计算机计算所述第一随机向量的平方大小;
由所述第一计算机计算所述第三排列的差向量的平方大小;
由所述第一计算机计算所述第四排列的差向量的平方大小;以及
由所述第一计算机基于所述第一掩蔽向量的所述平方大小、所述第一随机向量的所述平方大小、所述第三排列的差向量的所述平方大小以及所述第四排列的差向量的所述平方大小来计算所述第一向量和所述第二向量的所述标量积。
3.如权利要求1所述的方法,其中在由所述第一计算机向所述第二计算机传输所述第一公共密钥、所述第二公共密钥、所述第一加密掩蔽向量和所述第一加密随机向量之前,所述方法还包括:
由所述第一计算机生成所述第一随机向量;
由所述第一计算机通过组合所述第一向量和所述第一随机向量来生成所述第一掩蔽向量;
由所述第一计算机生成第一排列和第二排列;
由所述第一计算机生成包括所述第一公共密钥和所述第一私有密钥的第一密钥对;
由所述第一计算机生成包括所述第二公共密钥和所述第二私有密钥的第二密钥对;
由所述第一计算机使用所述第一公共密钥来对所述第一掩蔽向量进行加密;以及
由所述第一计算机使用所述第二公共密钥来对所述第一随机向量进行加密。
4.如权利要求1所述的方法,其中所述第一公共密钥、所述第一私有密钥、所述第二公共密钥、所述第二私有密钥、所述第三公共密钥、与所述第三公共密钥相对应的第三私有密钥、所述第四公共密钥以及与所述第四公共密钥相对应的第四私有密钥是加法同态密码密钥。
5.如权利要求1所述的方法,其中在由所述第一计算机从所述第二计算机接收所述第三公共密钥、所述第四公共密钥、所述第二加密掩蔽向量和所述第二加密随机向量之前:
所述第二计算机生成所述第二随机向量;
所述第二计算机通过将所述第二向量和所述第二随机向量相结合来生成所述第二掩蔽向量;
所述第二计算机生成所述第三排列和所述第四排列;
所述第二计算机生成包括所述第三公共密钥和第三私有密钥的第三密钥对;
所述第二计算机生成包括所述第四公共密钥和第四私有密钥的第四密钥对;
所述第二计算机使用所述第三公共密钥来对所述第二掩蔽向量进行加密;以及
所述第二计算机使用所述第四公共密钥来对所述第二随机向量进行加密。
6.如权利要求1所述的方法,其中:
所述第二计算机通过使用所述第一公共密钥来对第二取反向量进行加密来生成第三加密取反向量;
所述第二计算机基于所述第一加密掩蔽向量和所述第三加密取反向量来生成第三加密差向量;
所述第二计算机通过使用所述第二公共密钥来对所述第二取反向量进行加密来生成第四加密取反向量;
所述第二计算机基于所述第一加密随机向量和所述第四加密取反向量来生成第四加密差向量;
所述第二计算机使用第三排列和所述第三加密差向量来生成所述第三排列的加密差向量;以及
所述第二计算机使用第四排列和所述第四加密差向量来生成所述第四排列的加密差向量。
7.如权利要求1所述的方法,其还包括:
由所述第一计算机将所述标量积或从所述标量积导出的值与第一预先确定的阈值进行比较;以及
如果所述标量积或从所述标量积导出的值超出所述第一预先确定的阈值,则由所述第一计算机执行与所述第二计算机的交互。
8.如权利要求7所述的方法,其中所述第一向量和所述第二向量分别对应于第一生物特征识别模板和第二生物特征识别模板,并且其中所述第一预先确定的阈值是生物特征识别匹配阈值。
9.如权利要求1所述的方法,其中在由所述第一计算机从所述第二计算机接收所述第三公共密钥、所述第四公共密钥、所述第二加密掩蔽向量和所述第二加密随机向量之后,并且在由所述第一计算机从所述第二计算机接收所述第三排列的差向量和所述第四排列的差向量之前,所述方法还包括:
由所述第一计算机通过使用所述第三公共密钥来对第一取反向量进行加密来生成第一加密取反向量;
由所述第一计算机基于所述第二加密掩蔽向量和所述第一加密取反向量来生成第一加密差向量;
由所述第一计算机通过使用所述第四公共密钥来对所述第一取反向量进行加密来生成第二加密取反向量;
由所述第一计算机基于所述第二加密随机向量和所述第二加密取反向量来生成第二加密差向量;
由所述第一计算机使用第一排列和所述第一加密差向量来生成第一排列的加密差向量;
由所述第一计算机使用第二排列和所述第二加密差向量来生成第二排列的加密差向量;以及
由所述第一计算机将所述第一排列的加密差向量和所述第二排列的加密差向量传输至所述第二计算机。
10.如权利要求9所述的方法,其中:
所述第二计算机通过使用与所述第三公共密钥相对应的第三私有密钥来对所述第一排列的加密差向量进行解密来生成第一排列的差向量;
所述第二计算机通过使用与所述第四公共密钥相对应的第四私有密钥来对第二排列的加密差向量进行解密来生成第二排列的差向量;
所述第二计算机基于所述第二掩蔽向量、所述第二随机向量、所述第一排列的差向量和所述第二排列的差向量来计算所述第一向量和所述第二向量的所述标量积;
所述第二计算机将所述标量积或从所述标量积导出的值与第二预先确定的阈值进行比较;以及
如果所述标量积或从所述标量积导出的所述值超出所述第二预先确定的阈值,则所述第二计算机执行与所述第一计算机的交互。
11.一种第一计算机,包括:
处理器;以及
耦合到所述处理器的非瞬态计算机可读介质;所述非瞬态计算机可读介质包括能够由所述处理器执行来实现方法的代码,所述方法包括:
向第二计算机传输第一公共密钥、第二公共密钥、第一加密掩蔽向量和第一加密随机向量,其中所述第一加密掩蔽向量是使用所述第一公共密钥加密的第一掩蔽向量,并且所述第一加密随机向量是使用所述第二公共密钥加密的第一随机向量;
从所述第二计算机接收第三公共密钥、第四公共密钥、第二加密掩蔽向量和第二加密随机向量,其中所述第二加密掩蔽向量是使用所述第三公共密钥加密的第二掩蔽向量,并且所述第二加密随机向量是使用所述第四公共密钥加密的第二随机向量;
从所述第二计算机接收第三排列的加密差向量和第四排列的加密差向量,其中所述第三排列的加密差向量使用所述第一公共密钥加密并且使用第三排列进行排列,并且其中所述第四排列的加密差向量使用所述第二公共密钥进行加密并且使用第四排列进行排列;
通过使用与所述第一公共密钥相对应的第一私有密钥解密所述第三排列的加密差向量来产生第三排列的差向量;
通过使用与所述第二公共密钥相对应的第二私有密钥解密所述第四排列的加密差向量来产生第四排列的差向量;以及
基于所述第一掩蔽向量、所述第一随机向量、所述第三排列的差向量和所述第四排列的差向量来计算第一向量和第二向量的标量积。
12.如权利要求11所述的第一计算机,其中计算所述第一向量和所述第二向量的标量积包括:
计算所述第一掩蔽向量的平方大小;
计算所述第一随机向量的平方大小;
计算所述第三排列的差向量的平方大小;
计算所述第四排列的差向量的平方大小;以及
基于所述第一掩蔽向量的所述平方大小、所述第一随机向量的所述平方大小、所述第三排列的差向量的所述平方大小以及所述第四排列的差向量的所述平方大小来计算所述第一向量和所述第二向量的所述标量积。
13.如权利要求11所述的第一计算机,其中在向所述第二计算机传输所述第一公共密钥、所述第二公共密钥、所述第一加密掩蔽向量和所述第一加密随机向量之前,所述方法还包括:
生成所述第一随机向量;
通过组合所述第一向量和所述第一随机向量来生成所述第一掩蔽向量;
生成第一排列和第二排列;
生成包括所述第一公共密钥和所述第一私有密钥的第一密钥对;
生成包括所述第二公共密钥和所述第二私有密钥的第二密钥对;
使用所述第一公共密钥来对所述第一掩蔽向量进行加密;以及
使用所述第二公共密钥来对所述第一随机向量进行加密。
14.如权利要求11所述的第一计算机,其中所述第一公共密钥、所述第一私有密钥、所述第二公共密钥、所述第二私有密钥、所述第三公共密钥、与所述第三公共密钥相对应的第三私有密钥、所述第四公共密钥以及与所述第四公共密钥相对应的第四私有密钥是加法同态密码密钥。
15.如权利要求11所述的第一计算机,其中在从所述第二计算机接收所述第三公共密钥、所述第四公共密钥、所述第二加密掩蔽向量和所述第二加密随机向量之前:
所述第二计算机生成所述第二随机向量;
所述第二计算机通过将所述第二向量和所述第二随机向量相结合来生成所述第二掩蔽向量;
所述第二计算机生成所述第三排列和所述第四排列;
所述第二计算机生成包括所述第三公共密钥和第三私有密钥的第三密钥对;
所述第二计算机生成包括所述第四公共密钥和第四私有密钥的第四密钥对;
所述第二计算机使用所述第三公共密钥来对所述第二掩蔽向量进行加密;以及
所述第二计算机使用所述第四公共密钥来对所述第二随机向量进行加密。
16.如权利要求11所述的第一计算机,其中:
所述第二计算机通过使用所述第一公共密钥来对第二取反向量进行加密来生成第三加密取反向量;
所述第二计算机基于所述第一加密掩蔽向量和所述第三加密取反向量来生成第三加密差向量;
所述第二计算机通过使用所述第二公共密钥来对所述第二取反向量进行加密来生成第四加密取反向量;
所述第二计算机基于所述第一加密随机向量和所述第四加密取反向量来生成第四加密差向量;
所述第二计算机使用第三排列和所述第三加密差向量来生成所述第三排列的加密差向量;以及
所述第二计算机使用第四排列和所述第四加密差向量来生成所述第四排列的加密差向量。
17.如权利要求11所述的第一计算机,其中所述方法还包括:
将所述标量积或从所述标量积导出的值与第一预先确定的阈值进行比较;以及
如果所述标量积或从所述标量积导出的值超出所述第一预先确定的阈值,则执行与所述第二计算机的交互。
18.如权利要求17所述的第一计算机,其中所述第一向量和所述第二向量分别对应于第一生物特征识别模板和第二生物特征识别模板,并且其中所述第一预先确定的阈值是生物特征识别匹配阈值。
19.如权利要求11所述的第一计算机,其中在从所述第二计算机接收所述第三公共密钥、所述第四公共密钥、所述第二加密掩蔽向量和所述第二加密随机向量之后,并且在从所述第二计算机接收所述第三排列的差向量和所述第四排列的差向量之前,所述方法还包括:
通过使用所述第三公共密钥加密第一取反向量来生成第一加密取反向量;
基于所述第二加密掩蔽向量和所述第一加密取反向量来生成第一加密差向量;
通过使用所述第四公共密钥来对所述第一取反向量进行加密来生成第二加密取反向量;
基于所述第二加密随机向量和所述第二加密取反向量来生成第二加密差向量;
使用第一排列和所述第一加密差向量来生成第一排列的加密差向量;
使用第二排列和所述第二加密差向量来生成第二排列的加密差向量;以及
将所述第一排列的加密差向量和所述第二排列的加密差向量传输至所述第二计算机。
20.如权利要求19所述的第一计算机,其中:
所述第二计算机通过使用与所述第三公共密钥相对应的第三私有密钥来对所述第一排列的加密差向量进行解密来生成第一排列的差向量;
所述第二计算机通过使用与所述第四公共密钥相对应的第四私有密钥来对第二排列的加密差向量进行解密来生成第二排列的差向量;
所述第二计算机基于所述第二掩蔽向量、所述第二随机向量、所述第一排列的差向量和所述第二排列的差向量来计算所述第一向量和所述第二向量的所述标量积;
所述第二计算机将所述标量积或从所述标量积导出的值与第二预先确定的阈值进行比较;以及
如果所述标量积或从所述标量积导出的所述值超出所述第二预先确定的阈值,则所述第二计算机执行与所述第一计算机的交互。
CN201980035074.XA 2018-05-24 2019-05-24 高效的并发标量积计算方法和系统 Active CN112166577B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862676219P 2018-05-24 2018-05-24
US62/676,219 2018-05-24
PCT/US2019/033933 WO2019226999A1 (en) 2018-05-24 2019-05-24 Efficient concurrent scalar product calculation

Publications (2)

Publication Number Publication Date
CN112166577A true CN112166577A (zh) 2021-01-01
CN112166577B CN112166577B (zh) 2024-06-07

Family

ID=

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102314580A (zh) * 2011-09-20 2012-01-11 西安交通大学 一种基于向量和矩阵运算的支持计算的加密方法
US20140164488A1 (en) * 2007-07-27 2014-06-12 Blackberry Limited Apparatus and Methods for Operation of a Wireless Server
US20160254912A1 (en) * 2015-02-26 2016-09-01 New York University Systems and methods for privacy-preserving functional ip verification utilizing fully homomorphic encryption
CN107438230A (zh) * 2016-05-27 2017-12-05 苹果公司 安全无线测距

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140164488A1 (en) * 2007-07-27 2014-06-12 Blackberry Limited Apparatus and Methods for Operation of a Wireless Server
CN102314580A (zh) * 2011-09-20 2012-01-11 西安交通大学 一种基于向量和矩阵运算的支持计算的加密方法
US20160254912A1 (en) * 2015-02-26 2016-09-01 New York University Systems and methods for privacy-preserving functional ip verification utilizing fully homomorphic encryption
CN107438230A (zh) * 2016-05-27 2017-12-05 苹果公司 安全无线测距

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
FEN XU: ""Research on Secure Scalar Product Protocol and its’Application"", 《IEEE》, pages 3 *

Also Published As

Publication number Publication date
JP2021525386A (ja) 2021-09-24
BR112020023826A2 (pt) 2021-04-13
SG11202011250XA (en) 2020-12-30
EP3804214A4 (en) 2021-04-14
AU2019274602A1 (en) 2020-11-26
JP7280285B2 (ja) 2023-05-23
EP3804214A1 (en) 2021-04-14
AU2019274602B2 (en) 2024-05-02
KR20210000722A (ko) 2021-01-05
WO2019226999A1 (en) 2019-11-28

Similar Documents

Publication Publication Date Title
US11736296B2 (en) Biometric verification process using certification token
US10826702B2 (en) Secure authentication of user and mobile device
US10873447B2 (en) Efficient concurrent scalar product calculation
CN110999212B (zh) 使用生物特征识别和隐私保护方法在线认证账户持有者
US11250116B2 (en) Optimized private biometric matching
US20220407709A1 (en) Biometric sensor on portable device
US20240048390A1 (en) Verification of biometric templates for privacy preserving authentication
US11792012B2 (en) Distributed biometric comparison framework
US20230062507A1 (en) User authentication at access control server using mobile device
CN112166577B (zh) 高效的并发标量积计算方法和系统
AU2019274602B2 (en) Efficient concurrent scalar product calculation
WO2023055562A1 (en) Remote identity interaction

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