CN113364577A - 一种oprf协议的实现方法、装置及电子设备 - Google Patents

一种oprf协议的实现方法、装置及电子设备 Download PDF

Info

Publication number
CN113364577A
CN113364577A CN202110901592.4A CN202110901592A CN113364577A CN 113364577 A CN113364577 A CN 113364577A CN 202110901592 A CN202110901592 A CN 202110901592A CN 113364577 A CN113364577 A CN 113364577A
Authority
CN
China
Prior art keywords
information
queried
auxiliary parameter
auxiliary
preset number
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
CN202110901592.4A
Other languages
English (en)
Other versions
CN113364577B (zh
Inventor
黄熹之
李艺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huakong Tsingjiao Information Technology Beijing Co Ltd
Original Assignee
Huakong Tsingjiao Information Technology Beijing Co Ltd
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 Huakong Tsingjiao Information Technology Beijing Co Ltd filed Critical Huakong Tsingjiao Information Technology Beijing Co Ltd
Priority to CN202110901592.4A priority Critical patent/CN113364577B/zh
Publication of CN113364577A publication Critical patent/CN113364577A/zh
Application granted granted Critical
Publication of CN113364577B publication Critical patent/CN113364577B/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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本申请公开了一种OPRF协议的实现方法、装置及电子设备,包括:基于具有的第一数据集合包含的多个第一数据,生成能够包含多个第一数据的信息的随机数,作为待查询信息;使用第一OT辅助参数,对待查询信息进行加密,得到密文待查询信息;向发送方设备发送密文待查询信息,使得发送方设备使用第二OT辅助参数,从密文待查询信息中,解密出部分待查询信息,与OT查询指标共同作为OPRF协议的种子。采用本申请实施例提供的方案,提高了OPRF协议实现的效率,尤其在小数据量情形下,OPRF协议的实现能够更明显的提高效率。

Description

一种OPRF协议的实现方法、装置及电子设备
技术领域
本申请涉及隐私计算技术领域,尤其涉及一种OPRF协议的实现方法、装置及电子设备。
背景技术
现有的PSI技术(Private Set Intersection,隐私集合求交),可以利用OPRF(Oblivious Pseudo-Random Function,不经意伪随机函数)协议实现,客户端和服务端均计算得到自己集合所包含信息对应的伪随机数结果,由客户端对比这些伪随机数结果,进而得到两方集合的交集。
目前,OPRF协议可以基于OT(Oblivious Transfer,不经意传输)实现,一般来说,利用OT作为黑盒实现的OPRF协议,需要用到一定数量的多个1-out-of-2的OT,那么即便仅执行1个OPRF协议,也需要调用多个OT,执行O(n)次的公钥运算(n为调用的OT的数量),在小数据量情形下,计算效率显然较为低下。
在PSI场景中,一旦双方的集合信息量较少,则执行OPRF协议的次数也将较少,并且计算伪随机数结果的数量较少,消耗的时间较少,那么在整个PSI计算的执行过程中,批量OPRF协议中多个OT协议的O(n)次的公钥运算在总耗时的占比就会较大。这将影响PSI在小数据量快速响应实时查询的场景中的效率,而强OPRF协议的计算效率也较低。
发明内容
本申请实施例提供一种OPRF协议的实现方法、装置及电子设备,用以解决现有技术中存在的实现OPRF协议的效率较低的问题。
本申请实施例提供一种OPRF协议的实现方法,应用于接收方设备,所述接收方设备存储有预先计算的第一OT辅助参数,发送方设备存储有预先计算的第二OT辅助参数,以及预先生成的OT查询指标,所述第一OT辅助参数和所述第二OT辅助参数用于实现OT协议,且所述第一OT辅助参数为基于所述OT查询指标计算得到的,所述方法,包括:
基于具有的第一数据集合包含的多个第一数据,生成能够包含所述多个第一数据的信息的随机数,作为待查询信息;
使用所述第一OT辅助参数,对所述待查询信息进行加密,得到密文待查询信息;
向所述发送方设备发送所述密文待查询信息,使得所述发送方设备使用所述第二OT辅助参数,从所述密文待查询信息中,解密出部分所述待查询信息,与所述OT查询指标共同作为OPRF协议的种子。
进一步的,所述接收方设备存储有预设数量个所述第一OT辅助参数,所述发送方设备存储有所述预设数量对第二OT辅助参数和所述预设数量个所述OT查询指标;
采用如下步骤生成所述第一OT辅助参数、所述第二OT辅助参数和所述OT查询指标:
所述接收方设备针对素数模数q生成所述预设数量个随机数a;
针对每个随机数a,基于底数g,计算g的a次方对q取模,得到所述预设数量个参数A;
向所述发送方设备发送所述预设数量个参数A,使得所述发送方设备针对素数模数q生成所述预设数量个随机数b,并针对每个随机数b,对A的b次方对q取模的结果进行哈希计算,得到所述预设数量个所述第二OT辅助参数k;
接收所述发送方设备发送的所述预设数量个参数B,所述预设数量个参数B为所述发送方设备针对每个随机数b和该随机数b对应的OT查询指标x,计算A的x次方与g的b次方的乘积对q取模得到的,每个OT查询指标x为随机生成的一个随机比特;
针对每个参数B,对B的a次方对q取模的结果进行哈希计算,得到与该参数B对应的一对第一OT辅助参数中的第一OT辅助参数k0,对B除以A的商的a次方对q取模的结果进行哈希计算,得到与该参数B对应的一对第一OT辅助参数中的第一OT辅助参数k1,所述预设数量个所述第二OT辅助参数与所述预设数量对的所述第一OT辅助参数之间一一对应。
进一步的,所述基于具有的第一数据集合包含的多个第一数据,生成能够包含所述多个第一数据的信息的随机数,作为待查询信息,包括:
基于具有的第一数据集合包含的多个第一数据,生成能够包含所述多个第一数据的信息的所述预设数量对的随机数,作为所述预设数量对的待查询信息,每对待查询信息包括待查询信息m0和待查询信息m1
所述使用所述第一OT辅助参数,对所述待查询信息进行加密,得到密文待查询信息,包括:
针对每对所述第一OT辅助参数,以及与该对所述第一OT辅助参数对应的一对所述待查询信息,采用预设加密算法,使用所述第一OT辅助参数k0对所述待查询信息m0进行加密,得到密文待查询信息e0,使用所述第一OT辅助参数k1对所述待查询信息m1进行加密,得到密文待查询信息e1
所述向所述发送方设备发送所述密文待查询信息,使得所述发送方设备使用所述第二OT辅助参数,从所述密文待查询信息中,解密出部分所述待查询信息,与所述OT查询指标共同作为OPRF协议的种子,包括:
向所述发送方设备发送所述预设数量对的所述密文待查询信息,使得所述发送方设备分别使用每个所述第二OT辅助参数k,对与该第二OT辅助参数k对应的一对所述密文待查询信息e0和e1进行解密,得到对应的所述待查询信息m0和m1之一,共计所述预设数量个所述待查询信息,与所述预设数量各所述OT查询指标共同作为OPRF协议的种子。
进一步的,该方法,还包括:
基于所述待查询信息,生成所述第一数据集合包含的每个所述第一数据的伪随机数结果,作为第一伪随机数结果;
接收发送方设备发送的第二数据集合包含的每个第二数据的第二伪随机数结果,所述第二伪随机数结果为所述发送方设备使用所述种子,对每个所述第二数据进行计算得到的;
从多个所述第一伪随机数结果与所述多个第二伪随机数结果中,确定出相同的伪随机数结果,作为相同伪随机数结果;
将所述相同伪随机数结果对应的所述第一数据,确定为所述第一数据集合与所述第二数据集合的交集。
本申请实施例还提供一种OPRF协议的实现方法,应用于发送方设备,接收方设备存储有预先计算的第一OT辅助参数,所述发送方设备存储有预先计算的第二OT辅助参数,以及预先生成的OT查询指标,所述第一OT辅助参数和所述第二OT辅助参数用于实现OT协议,且所述第一OT辅助参数为基于所述OT查询指标计算得到的,所述方法,包括:
接收所述接收方设备发送的密文待查询信息,所述密文待查询信息为所述接收方设备使用所述第一OT辅助参数,对待查询信息进行加密得到的,所述待查询信息为所述接收方设备基于具有的第一数据集合包含的多个第一数据,生成的能够包含所述多个第一数据的信息的随机数;
使用所述第二OT辅助参数,从所述密文待查询信息中,解密出部分所述待查询信息;
将所述OT查询指标与解密出的部分所述待查询信息,确定为OPRF协议的种子。
进一步的,所述接收方设备存储有预设数量个所述第一OT辅助参数,所述发送方设备存储有所述预设数量对第二OT辅助参数和所述预设数量个所述OT查询指标;
采用如下步骤生成所述第一OT辅助参数、所述第二OT辅助参数和所述OT查询指标:
接收所述接收方设备发送的所述预设数量个参数A,所述预设数量个参数A,为所述接收方设备针对所述预设数量个随机数a的每个随机数a,基于底数g,计算g的a次方对q取模的,所述预设数量个随机数a为所述接收方设备针对素数模数q生成的;
针对素数模数q生成所述预设数量个随机数b;
针对每个随机数b,对A的b次方对q取模的结果进行哈希计算,得到所述预设数量个所述第二OT辅助参数k;
针对每个随机数b和该随机数b对应的OT查询指标x,计算A的x次方与g的b次方的乘积对q取模,得到所述预设数量个参数B;
向所述接收方设备发送所述预设数量个参数B,使得所述接收方设备针对每个参数B,对B的a次方对q取模的结果进行哈希计算,得到与该参数B对应的一对第一OT辅助参数中的第一OT辅助参数k0,对B除以A的商的a次方对q取模的结果进行哈希计算,得到与该参数B对应的一对第一OT辅助参数中的第一OT辅助参数k1,所述预设数量个所述第二OT辅助参数与所述预设数量对的所述第一OT辅助参数之间一一对应。
进一步的,所述接收所述接收方设备发送的密文待查询信息,所述密文待查询信息为所述接收方设备使用所述第一OT辅助参数,对待查询信息进行加密得到的,所述待查询信息为所述接收方设备基于具有的第一数据集合包含的多个第一数据,生成的能够包含所述多个第一数据的信息的随机数,包括:
接收所述接收方设备发送的所述预设数量对的密文待查询信息,所述预设数量对的密文待查询信息,为所述接收方设备针对每对所述第一OT辅助参数,以及与该对所述第一OT辅助参数对应的一对所述待查询信息,采用预设加密算法,使用所述第一OT辅助参数k0对所述待查询信息m0进行加密,得到的密文待查询信息e0,使用所述第一OT辅助参数k1对所述待查询信息m1进行加密,得到的密文待查询信息e1;所述预设数量对的待查询信息,为所述接收方设备基于具有的第一数据集合包含的多个第一数据,生成的能够包含所述多个第一数据的信息的所述预设数量对的随机数,每对待查询信息包括待查询信息m0和待查询信息m1
所述使用所述第二OT辅助参数,从所述密文待查询信息中,解密出部分所述待查询信息,包括:
分别使用每个所述第二OT辅助参数k,对与该第二OT辅助参数k对应的一对所述密文待查询信息e0和e1进行解密,得到对应的所述待查询信息m0和m1之一,共计所述预设数量个所述待查询信息;
所述将所述OT查询指标与解密出的部分所述待查询信息,确定为OPRF协议的种子,包括:
将所述OT查询指标与解密得到的共计所述预设数量个所述待查询信息,确定为OPRF协议的种子。
进一步的,该方法,还包括:
使用所述种子对具有的第二数据集合包含的每个第二数据进行计算,得到每个所述第二数据的第二伪随机数结果;
向所述接收方设备发送所述第二伪随机数结果,使得所述接收方设备基于对所述第二伪随机数结果与第一伪随机数结果的比对结果,确定出所述第一数据集合与所述第二数据集合的交集,所述第一伪随机数结果为所述接收方设备基于所述待查询信息,生成的所述第一数据集合包含的每个所述第一数据的伪随机数结果。
本申请实施例还提供一种OPRF协议的实现装置,应用于接收方设备,所述接收方设备存储有预先计算的第一OT辅助参数,发送方设备存储有预先计算的第二OT辅助参数,以及预先生成的OT查询指标,所述第一OT辅助参数和所述第二OT辅助参数用于实现OT协议,且所述第一OT辅助参数为基于所述OT查询指标计算得到的,所述装置,包括:
查询信息生成模块,用于基于具有的第一数据集合包含的多个第一数据,生成能够包含所述多个第一数据的信息的随机数,作为待查询信息;
信息加密模块,用于使用所述第一OT辅助参数,对所述待查询信息进行加密,得到密文待查询信息;
发送模块,用于向所述发送方设备发送所述密文待查询信息,使得所述发送方设备使用所述第二OT辅助参数,从所述密文待查询信息中,解密出部分所述待查询信息,与所述OT查询指标共同作为OPRF协议的种子。
本申请实施例还提供一种OPRF协议的实现装置,应用于发送方设备,接收方设备存储有预先计算的第一OT辅助参数,所述发送方设备存储有预先计算的第二OT辅助参数,以及预先生成的OT查询指标,所述第一OT辅助参数和所述第二OT辅助参数用于实现OT协议,且所述第一OT辅助参数为基于所述OT查询指标计算得到的,所述装置,包括:
接收模块,用于接收所述接收方设备发送的密文待查询信息,所述密文待查询信息为所述接收方设备使用所述第一OT辅助参数,对待查询信息进行加密得到的,所述待查询信息为所述接收方设备基于具有的第一数据集合包含的多个第一数据,生成的能够包含所述多个第一数据的信息的随机数;
信息解密模块,用于使用所述第二OT辅助参数,从所述密文待查询信息中,解密出部分所述待查询信息;
种子生成模块,用于将所述OT查询指标与解密出的部分所述待查询信息,确定为OPRF协议的种子。
本申请实施例还提供一种电子设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现上述任一应用于接收方设备的OPRF协议的实现方法,或者,实现上述任一应用于发送方设备的OPRF协议的实现方法。
本申请实施例还提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一应用于接收方设备的OPRF协议的实现方法,或者,实现上述任一应用于发送方设备的OPRF协议的实现方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一应用于接收方设备的OPRF协议的实现方法,或者,执行上述任一应用于发送方设备的OPRF协议的实现方法。
本申请有益效果包括:
本申请实施例提供的方法中,接收方设备存储有预先计算的第一不经意传输OT辅助参数,发送方设备存储有预先计算的第二OT辅助参数,以及预先生成的OT查询指标,第一OT辅助参数和第二OT辅助参数用于实现OT协议,且第一OT辅助参数为基于OT查询指标计算得到的,在实现OPRF协议的过程中,接收方设备基于具有的第一数据集合包含的多个第一数据,生成能够包含多个第一数据的信息的随机数,作为待查询信息,并使用第一OT辅助参数,对待查询信息进行加密,得到密文待查询信息,并向发送方设备发送密文待查询信息,发送方设备使用第二OT辅助参数,从接收的密文待查询信息中,解密出部分待查询信息,与OT查询指标共同作为OPRF协议的种子,从而实现了OPRF协议。该OPRF协议的实现是基于OT协议的,并且,接收方设备和发送方设备实现OT协议各自分别所需要的第一OT辅助参数和第二OT辅助参数,是预先计算并存储的,因此,在每次需要实现OPRF协议时,可以直接获取并使用,节省了调用多个OT协议的多次的公钥运算的时间,从而提高了OPRF协议实现的效率,尤其在小数据量情形下,由于多个OT协议的多次的公钥运算在总耗时的占比比较大,因此,在小数据量情形下,OPRF协议的实现能够更明显的提高效率。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本申请的进一步理解,并且构成说明书的一部分,与本申请实施例一起用于解释本申请,并不构成对本申请的限制。在附图中:
图1为本申请实施例提供的应用于接收方设备的OPRF协议的实现方法的流程图;
图2为本申请实施例提供的应用于发送方设备的OPRF协议的实现方法的流程图;
图3为本申请实施例中生成OT辅助参数的流程图;
图4为本申请另一实施例提供的OPRF协议的实现方法的流程图;
图5为本申请实施例中基于OPRF协议进行隐私集合求交的流程图;
图6-1为本申请实施例提供的应用于接收方设备的OPRF协议的实现装置的结构示意图;
图6-2为本申请另一实施例提供的应用于接收方设备的OPRF协议的实现装置的结构示意图;
图6-3为本申请另一实施例提供的应用于接收方设备的OPRF协议的实现装置的结构示意图;
图7-1为本申请实施例提供的应用于发送方设备的OPRF协议的实现装置的结构示意图;
图7-2为本申请另一实施例提供的应用于发送方设备的OPRF协议的实现装置的结构示意图;
图7-3为本申请另一实施例提供的应用于发送方设备的OPRF协议的实现装置的结构示意图;
图8为本申请实施例提供的电子设备的结构示意图。
具体实施方式
为了给出提高实现OPRF协议的效率的实现方案,本申请实施例提供了一种OPRF协议的实现方法、装置及电子设备,以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
目前,一般来说,OPRF协议根据安全性级别分为强OPRF协议和弱OPRF协议。强OPRF协议保证了客户端只能得到自己的集合信息对应的伪随机数结果,但不知道伪随机函数的种子的任何信息,因此,无法计算其他任何信息对应的伪随机数结果;另外,服务端得到伪随机函数的种子,可计算任何信息对应的伪随机数结果,但不知道客户端的集合中的任何信息。
强OPRF协议最大限度地保证了客户端集合信息的隐私,以及服务端的伪随机函数种子的隐私,一般来说直接由公钥密码体系来构造,安全性直接基于离散对数等数论上的困难性假设。
但是一个强OPRF协议的构造,需要用到多次的公钥级别运算(例如大数模幂运算),在计算效率上并不理想,特别是批量OPRF协议的执行时,计算效率低下往往使得协议无法在实际场景中应用。
较为实用的OPRF协议,通常是基于实现的弱OPRF协议。弱OPRF协议与强OPRF协议的唯一差别,是客户端能够得到伪随机函数的种子的部分信息,但仍然无法计算其他任何信息对应的伪随机数结果。也就是说,弱OPRF协议仍然可以在隐私求交、隐匿查询等高级协议中应用且保证安全性,因为这些高级协议不会利用伪随机函数的种子,做存在安全风险的事项,只会直接计算伪随机数结果,且只关注于计算得到的伪随机数结果,而不会透露额外的信息,其他任何人无法仿造出自己计算的伪随机数结果。
弱OPRF协议的一大优点就是能够批量进行,使得执行n次OPRF协议的O(n)的公钥运算复杂度降低到常数级O(c),代价仅仅是O(n)的私钥运算复杂度,从而协议的执行比较高效。
事实上,高效优化的批量弱OPRF协议的思想来源于OT扩展(OT extension),也是巧妙地利用常数级次数的OT作为黑盒来使用,并利用O(n)次数的私钥运算(主要是伪随机数生成函数、哈希函数)来换取O(n)次数的公钥运算(每个1-out-of-2的OT都视为O(1)的公钥运算),从而实现n次的1-out-of-2的OT,即批量OT协议。但是弱OPRF协议仍然具有至少常数级O(c)的公钥运算复杂度,即便只进行1次OPRF协议。
基于OT的批量弱OPRF协议执行过程类似于OT扩展,也是将OT作为黑盒来使用,固定拥有常数级O(c)的公钥运算复杂度和线性级O(n)的私钥运算复杂度,从而特别适用于数据量较大的情形,但是对于数据量较小的情形时,O(c)的公钥运算复杂度就得不偿失了。
一般来说,利用OT作为黑盒实现的OPRF协议,需要用到一定数量的多个1-out-of-2的OT,那么即便仅执行1个OPRF协议,也需要调用多个OT,执行O(n)次的公钥运算(n为调用的OT的数量),在小数据量情形下,计算效率显然较为低下。
在PSI场景中,一旦双方的集合信息量较少,则执行OPRF协议的次数也将较少,并且计算伪随机数结果的数量较少,消耗的时间较少,那么在整个PSI计算的执行过程中,批量OPRF协议中多个OT协议的O(n)次的公钥运算在总耗时的占比就会较大。这将大大影响PSI在小数据量快速响应实时查询的场景中的效率,而强OPRF协议的计算效率也较低。
为了解决目前存在的实现OPRF协议的效率较低的问题,本申请实施例提供一种OPRF协议的实现方法,应用于接收方设备,接收方设备存储有预先计算的第一OT辅助参数,发送方设备存储有预先计算的第二OT辅助参数,以及预先生成的OT查询指标,第一OT辅助参数和第二OT辅助参数用于实现OT协议,且第一OT辅助参数为基于OT查询指标计算得到的,如图1所示,该方法,包括:
步骤11、基于具有的第一数据集合包含的多个第一数据,生成能够包含多个第一数据的信息的随机数,作为待查询信息。
步骤12、使用第一OT辅助参数,对待查询信息进行加密,得到密文待查询信息。
步骤13、向发送方设备发送密文待查询信息,使得发送方设备使用第二OT辅助参数,从密文待查询信息中,解密出部分待查询信息,与OT查询指标共同作为OPRF协议的种子。
相应的,本申请实施例还提供了一种OPRF协议的实现方法,应用于发送方设备,接收方设备存储有预先计算的第一OT辅助参数,发送方设备存储有预先计算的第二OT辅助参数,以及预先生成的OT查询指标,第一OT辅助参数和第二OT辅助参数用于实现OT协议,且第一OT辅助参数为基于OT查询指标计算得到的,如图2所示,该方法,包括:
步骤21、接收该接收方设备发送的密文待查询信息,密文待查询信息为接收方设备使用第一OT辅助参数,对待查询信息进行加密得到的,待查询信息为接收方设备基于具有的第一数据集合包含的多个第一数据,生成的能够包含多个第一数据的信息的随机数。
步骤22、使用第二OT辅助参数,从密文待查询信息中,解密出部分待查询信息。
步骤23、将OT查询指标与解密出的部分待查询信息,确定为OPRF协议的种子。
采用本申请实施例提供的上述方法,接收方设备存储有预先计算的第一不经意传输OT辅助参数,发送方设备存储有预先计算的第二OT辅助参数,以及预先生成的OT查询指标,第一OT辅助参数和第二OT辅助参数用于实现OT协议,且第一OT辅助参数为基于OT查询指标计算得到的,在实现OPRF协议的过程中,接收方设备基于具有的第一数据集合包含的多个第一数据,生成能够包含多个第一数据的信息的随机数,作为待查询信息,并使用第一OT辅助参数,对待查询信息进行加密,得到密文待查询信息,并向发送方设备发送密文待查询信息,发送方设备使用第二OT辅助参数,从接收的密文待查询信息中,解密出部分待查询信息,与OT查询指标共同作为OPRF协议的种子,从而实现了OPRF协议。该OPRF协议的实现是基于OT协议的,并且,接收方设备和发送方设备实现OT协议各自分别所需要的第一OT辅助参数和第二OT辅助参数,是预先计算并存储的,因此,在每次需要实现OPRF协议时,可以直接获取并使用,节省了调用多个OT协议的多次的公钥运算的时间,从而提高了OPRF协议实现的效率,尤其在小数据量情形下,由于多个OT协议的多次的公钥运算在总耗时的占比比较大,因此,在小数据量情形下,OPRF协议的实现能够更明显的提高效率。
下面结合附图,用具体实施例对本申请提供的方法及装置进行详细描述。
本申请实施例中,OPRF协议的实现基于OT协议的实现,实现OT协议所需要的OT辅助参数和OT查询指标,是预先生成并存储在接收方设备和发送方设备中的,其中,进一步的,接收方设备可以存储有预先计算的预设数量个第一OT辅助参数,发送方设备存储有预先计算的预设数量个第二OT辅助参数,以及预先生成的预设数量个OT查询指标。
在实际应用中,该预设数量可以基于实际的安全性需要进行灵活设置,一般情况下,超过424即可以确保一定的安全性,本申请实施例中,该预设数量可以为512。
本申请实施例中,所采用的OT协议为1-out-of-2的OT协议,接收方设备与发送方设备之间可以商定一个满足DH(Diffie-Hellman)密钥交换安全性的底数g和素数模数q,如图3所示,为本申请实施例提供的方法中生成OT辅助参数的流程,可以包括如下步骤:
步骤31、接收方设备针对素数模数q生成预设数量个随机数a。
其中,随机数a可以为一个大于0小于q的随机整数。
本申请实施例中,基于OPRF协议安全性的要求,预设数量可以为512。
步骤32、接收方设备针对每个随机数a,基于底数g,计算g的a次方对q取模,得到预设数量个参数A。
可以采用如下公式计算参数A:
A=ga(mod q);
本申请实施例中,预设数量个随机数a与预设数量个参数A之间是一一对应的。
步骤33、接收方设备向发送方设备发送预设数量个参数A。
步骤34、发送方设备在接收到预设数量个参数A之后,针对素数模数q生成预设数量个随机数b。
其中,随机数b可以为一个大于0小于q的随机整数。
步骤35、发送方设备针对每个随机数b,对A的b次方对q取模的结果进行哈希计算,得到预设数量个第二OT辅助参数k。
可以采用如下公式计算第二OT辅助参数k:
k=H(Ab(mod q));
其中,H是哈希函数。
本申请实施例中,预设数量个随机数b,预设数量个参数A,以及计算得到的预设数量个参数k,均是是一一对应的。
步骤36、发送方设备随机生成预设数量个随机比特,作为预设数量个OT查询指标x。
本申请实施例中,每个查询指标x为0或1,且预设数量个OT查询指标,预设数量个随机数b,以及预设数量个参数A,均是一一对应的。
步骤37、发送方设备针对每个随机数b和该随机数b对应的OT查询指标x,计算A的x次方与g的b次方的乘积对q取模,得到预设数量个参数B。
可以采用如下公式计算参数B:
B=Axgb(mod q);
其中,预设数量的OT查询指标x与计算得到的预设数量的参数B之间是一一对应的。
步骤38、发送方设备向接收方设备发送预设数量个参数B。
步骤39、接收方设备在接收到预设数量个参数B之后,针对每个参数B,计算与该参数B对应的一对第一OT辅助参数,即一个参数B对应计算出成对的两个第一OT辅助参数,具体可以如下:
对B的a次方对q取模的结果进行哈希计算,得到与该参数B对应的一对第一OT辅助参数中的一个第一OT辅助参数k0
可以采用如下公式计算第一OT辅助参数k0
k0=H(Ba(mod q));
对B除以A的商的a次方对q取模的结果进行哈希计算,得到与该参数B对应的一对第一OT辅助参数中的另一个第一OT辅助参数k1
可以采用如下公式计算第一OT辅助参数k1
k1=H((B/A)a(mod q));
其中,预设数量个第二OT辅助参数与预设数量对的第一OT辅助参数之间一一对应,即一对第一OT辅助参数对应一个第二OT辅助参数。
本申请实施例中,发送方设备与接收方设备在分别计算出上述第二OT辅助参数和第一OT辅助参数,以及生成上述OT查询指标之后,进行存储,以便后续在需要实现OPRF协议时,直接获取并使用,并且可以多次使用。
发送方设备和接收方设备,可以在离线时间内提前生成预设数量次OT协议需要的第一OT辅助参数、第二OT辅助参数和OT查询指标,并于在线计算的时候使用,并且,可以基于实际需要,定期在离线时间内重新生成并更新。
基于本申请实施例提供的上述图3所示流程生成的OT辅助参数,对本申请实施例提供的OPRF协议的实现方法进行详细描述,如图4所示,可以包括如下步骤:
步骤41、接收方设备基于具有的第一数据集合包含的多个第一数据,生成能够包含多个第一数据的信息的预设数量对的随机数,作为预设数量对的待查询信息,每对待查询信息包括待查询信息m0和待查询信息m1
也就是说,生成了预设数量个待查询信息m0和预设数量个待查询信息m1。在实际应用中,所生成的待查询信息能够体现第一数据集合包含的多个第一数据,即隐藏了该多个第一数据。
并且,进一步的,每个待查询信息的长度可以与第一数据集合包含的第一数据的数量相同。
本申请实施例中,所生成的每对待查询信息均与一对第一OT辅助参数相对应。
步骤42、接收方设备使用第一OT辅助参数,对待查询信息进行加密,得到密文待查询信息,具体可以如下:
针对每对第一OT辅助参数,以及与该对第一OT辅助参数对应的一对待查询信息,采用预设加密算法,使用第一OT辅助参数k0对待查询信息m0进行加密,得到密文待查询信息e0,使用第一OT辅助参数k1对待查询信息m1进行加密,得到密文待查询信息e1
可以采用如下公式对待查询信息进行加密计算:
e0=Ek0(m0);
e1=Ek1(m1);
其中,E可以是对称加密算法的加密函数,例如,AES(Advanced EncryptionStandard,高级加密标准)的加密函数。
步骤43、接收方设备向发送方设备发送预设数量对的密文待查询信息。
步骤44、发送方设备在接收到预设数量对的密文待查询信息之后,使用第二OT辅助参数,从密文待查询信息中,解密出部分待查询信息,具体如下:
分别使用每个第二OT辅助参数k,对与该第二OT辅助参数k对应的一对密文待查询信息e0和e1进行解密,得到对应的待查询信息m0和m1之一,共计预设数量个待查询信息。
可以采用如下公式对密文待查询信息进行解密计算:
mx=Dk(ex);
其中,相应的,D是对称加密算法的解密函数,例如,AES(Advanced EncryptionStandard,高级加密标准)的解密函数,表示用k作为密钥解密密文待查询信息ex,得到明文mx
密文待查询信息ex包括密文待查询信息e0和e1,得到的明文mx为待查询信息m0和m1之一。
上述OT协议的正确定容易得知,若x=0,则k0= H(gab(mod q)) = k;若x=1,则k1= H(gab(mod q)) = k,所以,发送方设备仅能够得到k0和k1的其中1个,从而解密得到m0和m1的其中1个,而无法获知另一个待查询信息,并且,接收方设备也并不清楚发送方设备所解密出的是哪一个待查询信息。上述协议的安全性基于离散对数困难性假设和对称加密算法的安全性,具体证明此处不作赘述。
步骤45、发送方设备将预设数量个OT查询指标与解密得到的共计预设数量个待查询信息,确定为OPRF协议的种子。
采用上述图4所示的OPRF协议的实现方法,利用所存储的预先计算的OT辅助参数,以及预先生成的OT查询指标,可以更快速的实现OPRF协议。
本申请实施例中,基于上述OPRF协议的实现方法,进一步的,还提供了一种隐私集合求交(PSI,Private Set Intersection)方法,如图5所示,包括:
步骤51、接收方设备基于待查询信息,生成第一数据集合包含的每个第一数据的伪随机数结果,作为第一伪随机数结果。
具体的,当待查询信息为预设数量对时,且每个待查询信息的长度为第一数据集合包含的第一数据的数量时,可以将所生成的预设数量个待查询信息m0排列成矩阵,或者,可以将所生成的预设数量个待查询信息m1排列成矩,并对该矩阵进行转置后得到。
步骤52、发送方设备使用OPRF协议的种子,对具有的第二数据集合包含的每个第二数据进行计算,得到每个第二数据的第二伪随机数结果。
上述步骤51和步骤52之间没有严格的先后顺序。
步骤53、发送方设备向接收方设备发送第二伪随机数结果。
步骤54、接收方设备在接收到第二伪随机数结果之后,从多个第一伪随机数结果与多个第二伪随机数结果中,确定出相同的伪随机数结果,作为相同伪随机数结果。
步骤55、接收方设备将相同伪随机数结果对应的第一数据,确定为第一数据集合与第二数据集合的交集。
采用上述图5所示的流程,接收方设备与发送方设备之间,实现了基于OPRF协议的PSI计算。并且,在这一过程中,发送方设备获得批量种子,接收方设备获得批量OPRF结果。发送方设备随机生成的预设数量比特的私有种子,由私有种子的每个比特位作为OT协议的查询指标,向接收方设备生成的伪随机数(即待查询信息)进行查询。事实上,由OT协议的安全性可知,发送方设备利用私有种子对接收方设备进行OT查询,接收方设备得不到私有种子的任何信息。也就是说,在上述OT协议中,保持相同的随机数a、随机数b,计算的参数A、参数B,以及OT辅助参数k、k0和k1,发送方设备的私有种子不会存在任何的信息泄露,从而可以确保隐私计算的安全性。
在实际应用中,发送方设备可以是服务端设备,接收方设备可以是客户端设备。
基于同一发明构思,根据本申请上述实施例提供的应用于接收方设备的OPRF协议的实现方法,相应地,本申请另一实施例还提供了一种OPRF协议的实现装置,应用于接收方设备,接收方设备存储有预先计算的第一OT辅助参数,发送方设备存储有预先计算的第二OT辅助参数,以及预先生成的OT查询指标,第一OT辅助参数和第二OT辅助参数用于实现OT协议,且第一OT辅助参数为基于OT查询指标计算得到的,其结构示意图如图6-1所示,具体包括:
查询信息生成模块61,用于基于具有的第一数据集合包含的多个第一数据,生成能够包含多个第一数据的信息的随机数,作为待查询信息;
信息加密模块62,用于使用第一OT辅助参数,对待查询信息进行加密,得到密文待查询信息;
发送模块63,用于向发送方设备发送密文待查询信息,使得发送方设备使用第二OT辅助参数,从密文待查询信息中,解密出部分待查询信息,与OT查询指标共同作为OPRF协议的种子。
进一步的,接收方设备存储有预设数量个第一OT辅助参数,发送方设备存储有预设数量对第二OT辅助参数和预设数量个OT查询指标;
该装置,如图6-2所示,还可以包括:参数计算模块64,用于采用如下步骤生成第一OT辅助参数、第二OT辅助参数和OT查询指标:
接收方设备针对素数模数q生成预设数量个随机数a;
针对每个随机数a,基于底数g,计算g的a次方对q取模,得到预设数量个参数A;
向发送方设备发送预设数量个参数A,使得发送方设备针对素数模数q生成预设数量个随机数b,并针对每个随机数b,对A的b次方对q取模的结果进行哈希计算,得到预设数量个第二OT辅助参数k;
接收发送方设备发送的预设数量个参数B,预设数量个参数B为发送方设备针对每个随机数b和该随机数b对应的OT查询指标x,计算A的x次方与g的b次方的乘积对q取模得到的,每个OT查询指标x为随机生成的一个随机比特;
针对每个参数B,对B的a次方对q取模的结果进行哈希计算,得到与该参数B对应的一对第一OT辅助参数中的第一OT辅助参数k0,对B除以A的商的a次方对q取模的结果进行哈希计算,得到与该参数B对应的一对第一OT辅助参数中的第一OT辅助参数k1,预设数量个第二OT辅助参数与预设数量对的第一OT辅助参数之间一一对应。
进一步的,查询信息生成模块61,具体用于基于具有的第一数据集合包含的多个第一数据,生成能够包含多个第一数据的信息的预设数量对的随机数,作为预设数量对的待查询信息,每对待查询信息包括待查询信息m0和待查询信息m1
信息加密模块62,具体用于针对每对第一OT辅助参数,以及与该对第一OT辅助参数对应的一对待查询信息,采用预设加密算法,使用第一OT辅助参数k0对待查询信息m0进行加密,得到密文待查询信息e0,使用第一OT辅助参数k1对待查询信息m1进行加密,得到密文待查询信息e1
发送模块63,具体用于向发送方设备发送预设数量对的密文待查询信息,使得发送方设备分别使用每个第二OT辅助参数k,对与该第二OT辅助参数k对应的一对密文待查询信息e0和e1进行解密,得到对应的待查询信息m0和m1之一,共计预设数量个待查询信息,与预设数量各OT查询指标共同作为OPRF协议的种子。
进一步的,如图6-3,该装置还可以包括:
随机结果生成模块65,用于基于待查询信息,生成第一数据集合包含的每个第一数据的伪随机数结果,作为第一伪随机数结果;
接收模块66,用于接收发送方设备发送的第二数据集合包含的每个第二数据的第二伪随机数结果,第二伪随机数结果为发送方设备使用种子,对每个第二数据进行计算得到的;
结果比较模块67,用于从多个第一伪随机数结果与多个第二伪随机数结果中,确定出相同的伪随机数结果,作为相同伪随机数结果;
交集确定模块68,将相同伪随机数结果对应的第一数据,确定为第一数据集合与第二数据集合的交集。
相应的,本申请实施例还提供一种OPRF协议的实现装置,应用于发送方设备,接收方设备存储有预先计算的第一OT辅助参数,发送方设备存储有预先计算的第二OT辅助参数,以及预先生成的OT查询指标,第一OT辅助参数和第二OT辅助参数用于实现OT协议,且第一OT辅助参数为基于OT查询指标计算得到的,其结构示意图如图7-1所示,包括:
接收模块71,用于接收接收方设备发送的密文待查询信息,密文待查询信息为接收方设备使用第一OT辅助参数,对待查询信息进行加密得到的,待查询信息为接收方设备基于具有的第一数据集合包含的多个第一数据,生成的能够包含多个第一数据的信息的随机数;
信息解密模块72,用于使用第二OT辅助参数,从密文待查询信息中,解密出部分待查询信息;
种子生成模块73,用于将OT查询指标与解密出的部分待查询信息,确定为OPRF协议的种子。
进一步的,接收方设备存储有预设数量个第一OT辅助参数,发送方设备存储有预设数量对第二OT辅助参数和预设数量个OT查询指标;
如图7-2所示,该装置还可以包括:参数计算模块74,用于采用如下步骤生成第一OT辅助参数、第二OT辅助参数和OT查询指标:
接收接收方设备发送的预设数量个参数A,预设数量个参数A,为接收方设备针对预设数量个随机数a的每个随机数a,基于底数g,计算g的a次方对q取模的,预设数量个随机数a为接收方设备针对素数模数q生成的;
针对素数模数q生成预设数量个随机数b;
针对每个随机数b,对A的b次方对q取模的结果进行哈希计算,得到预设数量个第二OT辅助参数k;
随机生成预设数量个随机比特,作为预设数量个OT查询指标x;
针对每个随机数b和该随机数b对应的OT查询指标x,计算A的x次方与g的b次方的乘积对q取模,得到预设数量个参数B;
向接收方设备发送预设数量个参数B,使得接收方设备针对每个参数B,对B的a次方对q取模的结果进行哈希计算,得到与该参数B对应的一对第一OT辅助参数中的第一OT辅助参数k0,对B除以A的商的a次方对q取模的结果进行哈希计算,得到与该参数B对应的一对第一OT辅助参数中的第一OT辅助参数k1,预设数量个第二OT辅助参数与预设数量对的第一OT辅助参数之间一一对应。
进一步的,接收模块71,具体用于接收接收方设备发送的预设数量对的密文待查询信息,预设数量对的密文待查询信息,为接收方设备针对每对第一OT辅助参数,以及与该对第一OT辅助参数对应的一对待查询信息,采用预设加密算法,使用第一OT辅助参数k0对待查询信息m0进行加密,得到的密文待查询信息e0,使用第一OT辅助参数k1对待查询信息m1进行加密,得到的密文待查询信息e1;预设数量对的待查询信息,为接收方设备基于具有的第一数据集合包含的多个第一数据,生成的能够包含多个第一数据的信息的预设数量对的随机数,每对待查询信息包括待查询信息m0和待查询信息m1
信息解密模块72,具体用于分别使用每个第二OT辅助参数k,对与该第二OT辅助参数k对应的一对密文待查询信息e0和e1进行解密,得到对应的待查询信息m0和m1之一,共计预设数量个待查询信息;
种子生成模块73,具体用于将OT查询指标与解密得到的共计预设数量个待查询信息,确定为OPRF协议的种子。
进一步的,如图7-3所示,该装置,还可以包括:
随机结果计算模块75,用于使用种子对具有的第二数据集合包含的每个第二数据进行计算,得到每个第二数据的第二伪随机数结果;
发送模块76,用于向接收方设备发送第二伪随机数结果,使得接收方设备基于对第二伪随机数结果与第一伪随机数结果的比对结果,确定出第一数据集合与第二数据集合的交集,第一伪随机数结果为接收方设备基于待查询信息,生成的第一数据集合包含的每个第一数据的伪随机数结果。
上述各模块的功能可对应于图1-图5所示流程中的相应处理步骤,在此不再赘述。
本申请的实施例所提供的应用于接收方设备的OPRF协议的实现装置,以及应用于发送方设备的OPRF协议的实现装置,可通过计算机程序实现。本领域技术人员应该能够理解,上述的模块划分方式仅是众多模块划分方式中的一种,如果划分为其他模块或不划分模块,只要墙体彩绘打印装置具有上述功能,都应该在本申请的保护范围之内。
基于同一发明构思,根据本申请上述实施例提供的OPRF协议的实现方法,相应地,本申请另一实施例还提供了一种电子设备,其结构示意图如图8所示,包括处理器81和机器可读存储介质82,机器可读存储介质82存储有能够被处理器81执行的机器可执行指令,处理器81被机器可执行指令促使:实现上述任一应用于接收方设备的OPRF协议的实现方法,或者,实现上述任一应用于发送方设备的OPRF协议的实现方法。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述任一应用于接收方设备的OPRF协议的实现方法,或者,实现上述任一应用于发送方设备的OPRF协议的实现方法。
本申请实施例还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一应用于接收方设备的OPRF协议的实现方法,或者,执行上述任一应用于发送方设备的OPRF协议的实现方法。
上述电子设备中的机器可读存储介质可以包括随机存取存储器(Random AccessMemory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质,计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (12)

1.一种OPRF协议的实现方法,其特征在于,应用于接收方设备,所述接收方设备存储有预先计算的第一OT辅助参数,发送方设备存储有预先计算的第二OT辅助参数,以及预先生成的OT查询指标,所述第一OT辅助参数和所述第二OT辅助参数用于实现OT协议,且所述第一OT辅助参数为基于所述OT查询指标计算得到的,所述方法,包括:
基于具有的第一数据集合包含的多个第一数据,生成能够包含所述多个第一数据的信息的随机数,作为待查询信息;
使用所述第一OT辅助参数,对所述待查询信息进行加密,得到密文待查询信息;
向所述发送方设备发送所述密文待查询信息,使得所述发送方设备使用所述第二OT辅助参数,从所述密文待查询信息中,解密出部分所述待查询信息,与所述OT查询指标共同作为OPRF协议的种子。
2.如权利要求1所述的方法,其特征在于,所述接收方设备存储有预设数量个所述第一OT辅助参数,所述发送方设备存储有所述预设数量对第二OT辅助参数和所述预设数量个所述OT查询指标;
采用如下步骤生成所述第一OT辅助参数、所述第二OT辅助参数和所述OT查询指标:
所述接收方设备针对素数模数q生成所述预设数量个随机数a;
针对每个随机数a,基于底数g,计算g的a次方对q取模,得到所述预设数量个参数A;
向所述发送方设备发送所述预设数量个参数A,使得所述发送方设备针对素数模数q生成所述预设数量个随机数b,并针对每个随机数b,对A的b次方对q取模的结果进行哈希计算,得到所述预设数量个所述第二OT辅助参数k;
接收所述发送方设备发送的所述预设数量个参数B,所述预设数量个参数B为所述发送方设备针对每个随机数b和该随机数b对应的OT查询指标x,计算A的x次方与g的b次方的乘积对q取模得到的,每个OT查询指标x为随机生成的一个随机比特;
针对每个参数B,对B的a次方对q取模的结果进行哈希计算,得到与该参数B对应的一对第一OT辅助参数中的第一OT辅助参数k0,对B除以A的商的a次方对q取模的结果进行哈希计算,得到与该参数B对应的一对第一OT辅助参数中的第一OT辅助参数k1,所述预设数量个所述第二OT辅助参数与所述预设数量对的所述第一OT辅助参数之间一一对应。
3.如权利要求2所述的方法,其特征在于,所述基于具有的第一数据集合包含的多个第一数据,生成能够包含所述多个第一数据的信息的随机数,作为待查询信息,包括:
基于具有的第一数据集合包含的多个第一数据,生成能够包含所述多个第一数据的信息的所述预设数量对的随机数,作为所述预设数量对的待查询信息,每对待查询信息包括待查询信息m0和待查询信息m1
所述使用所述第一OT辅助参数,对所述待查询信息进行加密,得到密文待查询信息,包括:
针对每对所述第一OT辅助参数,以及与该对所述第一OT辅助参数对应的一对所述待查询信息,采用预设加密算法,使用所述第一OT辅助参数k0对所述待查询信息m0进行加密,得到密文待查询信息e0,使用所述第一OT辅助参数k1对所述待查询信息m1进行加密,得到密文待查询信息e1
所述向所述发送方设备发送所述密文待查询信息,使得所述发送方设备使用所述第二OT辅助参数,从所述密文待查询信息中,解密出部分所述待查询信息,与所述OT查询指标共同作为OPRF协议的种子,包括:
向所述发送方设备发送所述预设数量对的所述密文待查询信息,使得所述发送方设备分别使用每个所述第二OT辅助参数k,对与该第二OT辅助参数k对应的一对所述密文待查询信息e0和e1进行解密,得到对应的所述待查询信息m0和m1之一,共计所述预设数量个所述待查询信息,与所述预设数量各所述OT查询指标共同作为OPRF协议的种子。
4.如权利要求1-3任一所述的方法,其特征在于,还包括:
基于所述待查询信息,生成所述第一数据集合包含的每个所述第一数据的伪随机数结果,作为第一伪随机数结果;
接收发送方设备发送的第二数据集合包含的每个第二数据的第二伪随机数结果,所述第二伪随机数结果为所述发送方设备使用所述种子,对每个所述第二数据进行计算得到的;
从多个所述第一伪随机数结果与所述多个第二伪随机数结果中,确定出相同的伪随机数结果,作为相同伪随机数结果;
将所述相同伪随机数结果对应的所述第一数据,确定为所述第一数据集合与所述第二数据集合的交集。
5.一种OPRF协议的实现方法,其特征在于,应用于发送方设备,接收方设备存储有预先计算的第一OT辅助参数,所述发送方设备存储有预先计算的第二OT辅助参数,以及预先生成的OT查询指标,所述第一OT辅助参数和所述第二OT辅助参数用于实现OT协议,且所述第一OT辅助参数为基于所述OT查询指标计算得到的,所述方法,包括:
接收所述接收方设备发送的密文待查询信息,所述密文待查询信息为所述接收方设备使用所述第一OT辅助参数,对待查询信息进行加密得到的,所述待查询信息为所述接收方设备基于具有的第一数据集合包含的多个第一数据,生成的能够包含所述多个第一数据的信息的随机数;
使用所述第二OT辅助参数,从所述密文待查询信息中,解密出部分所述待查询信息;
将所述OT查询指标与解密出的部分所述待查询信息,确定为OPRF协议的种子。
6.如权利要求5所述的方法,其特征在于,所述接收方设备存储有预设数量个所述第一OT辅助参数,所述发送方设备存储有所述预设数量对第二OT辅助参数和所述预设数量个所述OT查询指标;
采用如下步骤生成所述第一OT辅助参数、所述第二OT辅助参数和所述OT查询指标:
接收所述接收方设备发送的所述预设数量个参数A,所述预设数量个参数A,为所述接收方设备针对所述预设数量个随机数a的每个随机数a,基于底数g,计算g的a次方对q取模的,所述预设数量个随机数a为所述接收方设备针对素数模数q生成的;
针对素数模数q生成所述预设数量个随机数b;
针对每个随机数b,对A的b次方对q取模的结果进行哈希计算,得到所述预设数量个所述第二OT辅助参数k;
随机生成所述预设数量个随机比特,作为所述预设数量个OT查询指标x;
针对每个随机数b和该随机数b对应的OT查询指标x,计算A的x次方与g的b次方的乘积对q取模,得到所述预设数量个参数B;
向所述接收方设备发送所述预设数量个参数B,使得所述接收方设备针对每个参数B,对B的a次方对q取模的结果进行哈希计算,得到与该参数B对应的一对第一OT辅助参数中的第一OT辅助参数k0,对B除以A的商的a次方对q取模的结果进行哈希计算,得到与该参数B对应的一对第一OT辅助参数中的第一OT辅助参数k1,所述预设数量个所述第二OT辅助参数与所述预设数量对的所述第一OT辅助参数之间一一对应。
7.如权利要求6所述的方法,其特征在于,所述接收所述接收方设备发送的密文待查询信息,所述密文待查询信息为所述接收方设备使用所述第一OT辅助参数,对待查询信息进行加密得到的,所述待查询信息为所述接收方设备基于具有的第一数据集合包含的多个第一数据,生成的能够包含所述多个第一数据的信息的随机数,包括:
接收所述接收方设备发送的所述预设数量对的密文待查询信息,所述预设数量对的密文待查询信息,为所述接收方设备针对每对所述第一OT辅助参数,以及与该对所述第一OT辅助参数对应的一对所述待查询信息,采用预设加密算法,使用所述第一OT辅助参数k0对所述待查询信息m0进行加密,得到的密文待查询信息e0,使用所述第一OT辅助参数k1对所述待查询信息m1进行加密,得到的密文待查询信息e1;所述预设数量对的待查询信息,为所述接收方设备基于具有的第一数据集合包含的多个第一数据,生成的能够包含所述多个第一数据的信息的所述预设数量对的随机数,每对待查询信息包括待查询信息m0和待查询信息m1
所述使用所述第二OT辅助参数,从所述密文待查询信息中,解密出部分所述待查询信息,包括:
分别使用每个所述第二OT辅助参数k,对与该第二OT辅助参数k对应的一对所述密文待查询信息e0和e1进行解密,得到对应的所述待查询信息m0和m1之一,共计所述预设数量个所述待查询信息;
所述将所述OT查询指标与解密出的部分所述待查询信息,确定为OPRF协议的种子,包括:
将所述OT查询指标与解密得到的共计所述预设数量个所述待查询信息,确定为OPRF协议的种子。
8.如权利要求5-7任一项所述的方法,其特征在于,还包括:
使用所述种子对具有的第二数据集合包含的每个第二数据进行计算,得到每个所述第二数据的第二伪随机数结果;
向所述接收方设备发送所述第二伪随机数结果,使得所述接收方设备基于对所述第二伪随机数结果与第一伪随机数结果的比对结果,确定出所述第一数据集合与所述第二数据集合的交集,所述第一伪随机数结果为所述接收方设备基于所述待查询信息,生成的所述第一数据集合包含的每个所述第一数据的伪随机数结果。
9.一种OPRF协议的实现装置,其特征在于,应用于接收方设备,所述接收方设备存储有预先计算的第一OT辅助参数,发送方设备存储有预先计算的第二OT辅助参数,以及预先生成的OT查询指标,所述第一OT辅助参数和所述第二OT辅助参数用于实现OT协议,且所述第一OT辅助参数为基于所述OT查询指标计算得到的,所述装置,包括:
查询信息生成模块,用于基于具有的第一数据集合包含的多个第一数据,生成能够包含所述多个第一数据的信息的随机数,作为待查询信息;
信息加密模块,用于使用所述第一OT辅助参数,对所述待查询信息进行加密,得到密文待查询信息;
发送模块,用于向所述发送方设备发送所述密文待查询信息,使得所述发送方设备使用所述第二OT辅助参数,从所述密文待查询信息中,解密出部分所述待查询信息,与所述OT查询指标共同作为OPRF协议的种子。
10.一种OPRF协议的实现装置,其特征在于,应用于发送方设备,接收方设备存储有预先计算的第一OT辅助参数,所述发送方设备存储有预先计算的第二OT辅助参数,以及预先生成的OT查询指标,所述第一OT辅助参数和所述第二OT辅助参数用于实现OT协议,且所述第一OT辅助参数为基于所述OT查询指标计算得到的,所述装置,包括:
接收模块,用于接收所述接收方设备发送的密文待查询信息,所述密文待查询信息为所述接收方设备使用所述第一OT辅助参数,对待查询信息进行加密得到的,所述待查询信息为所述接收方设备基于具有的第一数据集合包含的多个第一数据,生成的能够包含所述多个第一数据的信息的随机数;
信息解密模块,用于使用所述第二OT辅助参数,从所述密文待查询信息中,解密出部分所述待查询信息;
种子生成模块,用于将所述OT查询指标与解密出的部分所述待查询信息,确定为OPRF协议的种子。
11.一种电子设备,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现权利要求1-4任一所述的方法,或者,实现权利要求5-8任一所述的方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-4任一所述的方法,或者,实现权利要求5-8任一所述的方法。
CN202110901592.4A 2021-08-06 2021-08-06 一种oprf协议的实现方法、装置及电子设备 Active CN113364577B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110901592.4A CN113364577B (zh) 2021-08-06 2021-08-06 一种oprf协议的实现方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110901592.4A CN113364577B (zh) 2021-08-06 2021-08-06 一种oprf协议的实现方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN113364577A true CN113364577A (zh) 2021-09-07
CN113364577B CN113364577B (zh) 2021-11-05

Family

ID=77540550

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110901592.4A Active CN113364577B (zh) 2021-08-06 2021-08-06 一种oprf协议的实现方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN113364577B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190349191A1 (en) * 2018-05-08 2019-11-14 NEC Laboratories Europe GmbH Dynamic anonymous password-authenticated key exchange (apake)
CN111984984A (zh) * 2020-08-28 2020-11-24 山东大学 基于集合运算的保密统计数据共享方法及系统
CN112598138A (zh) * 2020-12-22 2021-04-02 百度在线网络技术(北京)有限公司 数据处理方法、装置、联邦学习系统和电子设备
CN112699386A (zh) * 2020-12-22 2021-04-23 杭州趣链科技有限公司 隐私数据交集的获取方法、设备、电子装置和存储介质
CN112966283A (zh) * 2021-03-19 2021-06-15 西安电子科技大学 基于多方集合求交集的垂直分区数据pparm方法
CN113169859A (zh) * 2019-04-05 2021-07-23 谷歌有限责任公司 用于保护隐私的方法
CN113179150A (zh) * 2021-04-26 2021-07-27 杭州宇链科技有限公司 一种基于保序函数的同态隐私集合求交方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190349191A1 (en) * 2018-05-08 2019-11-14 NEC Laboratories Europe GmbH Dynamic anonymous password-authenticated key exchange (apake)
CN113169859A (zh) * 2019-04-05 2021-07-23 谷歌有限责任公司 用于保护隐私的方法
CN111984984A (zh) * 2020-08-28 2020-11-24 山东大学 基于集合运算的保密统计数据共享方法及系统
CN112598138A (zh) * 2020-12-22 2021-04-02 百度在线网络技术(北京)有限公司 数据处理方法、装置、联邦学习系统和电子设备
CN112699386A (zh) * 2020-12-22 2021-04-23 杭州趣链科技有限公司 隐私数据交集的获取方法、设备、电子装置和存储介质
CN112966283A (zh) * 2021-03-19 2021-06-15 西安电子科技大学 基于多方集合求交集的垂直分区数据pparm方法
CN113179150A (zh) * 2021-04-26 2021-07-27 杭州宇链科技有限公司 一种基于保序函数的同态隐私集合求交方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
申立艳等: "隐私保护集合交集计算技术研究综述", 《计算机研究与发展》 *

Also Published As

Publication number Publication date
CN113364577B (zh) 2021-11-05

Similar Documents

Publication Publication Date Title
CN106953722B (zh) 一种全同态加密的密文查询方法和系统
Barker et al. Recommendation for cryptographic key generation
CN113259329B (zh) 一种数据不经意传输方法、装置、电子设备及存储介质
Acharya et al. Novel methods of generating self-invertible matrix for hill cipher algorithm
US10374797B2 (en) Public-key encryption system
NL2013944B1 (en) Public-key encryption system.
WO2018104412A1 (en) Method of rsa signature or decryption protected using a homomorphic encryption
JP2014017556A (ja) 共有秘密鍵生成装置、暗号化装置、復号化装置、及びプログラム
GB2401012A (en) Identifier-based encryption
KR101516114B1 (ko) 인증서 기반 프록시 재암호화 방법 및 이를 위한 시스템
CN115982424B (zh) 一种隐私关键词查询方法、装置及电子设备
Suguna et al. A study on symmetric and asymmetric key encryption algorithms
JP2001202010A (ja) メッセージの公開型且つ非可換性の符号化方法及び暗号化方法
EP3455997A1 (en) Encryption for low-end devices through computation offloading
Sood et al. A literature review on rsa, des and aes encryption algorithms
Kute et al. A software comparison of RSA and ECC
WO2010070579A1 (en) System and method for countering side-channel attacks against encryption based on cyclic groups
CN113364577B (zh) 一种oprf协议的实现方法、装置及电子设备
CN107483206B (zh) 一种快速的量子安全的非对称加密方法
KR20030047148A (ko) Rsa를 이용한 클라이언트/서버 기반의 메신저 보안 방법
CN111488618B (zh) 基于区块链的一次一密密码方法、装置及存储介质
Viswanath et al. A secure cryptosystem using the decimal expansion of an Irrational number
KR102022333B1 (ko) 공개키 암호 알고리즘을 이용한 암호화/복호화 방법 및 장치
Kumar et al. New Symmetric Key Cipher Based on Quasigroup
Diwan et al. AN APPROACH TO REVAMP THE DATA SECURITY USING CRYPTOGRAPHIC TECHNIQUES.

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant