CN114301594B - 一种不经意传输方法、多方安全计算平台和用于不经意传输的装置 - Google Patents

一种不经意传输方法、多方安全计算平台和用于不经意传输的装置 Download PDF

Info

Publication number
CN114301594B
CN114301594B CN202210191205.7A CN202210191205A CN114301594B CN 114301594 B CN114301594 B CN 114301594B CN 202210191205 A CN202210191205 A CN 202210191205A CN 114301594 B CN114301594 B CN 114301594B
Authority
CN
China
Prior art keywords
public key
message
key
ith
sender
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.)
Active
Application number
CN202210191205.7A
Other languages
English (en)
Other versions
CN114301594A (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 CN202210191205.7A priority Critical patent/CN114301594B/zh
Publication of CN114301594A publication Critical patent/CN114301594A/zh
Application granted granted Critical
Publication of CN114301594B publication Critical patent/CN114301594B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例提供了一种不经意传输方法、多方安全计算平台和用于不经意传输的装置。所述方法包括:发送方基于持有的n个消息组,接收方基于持有的k个索引,双方执行n次预设操作;第i次预设操作包括:接收方基于本地产生的随机数和SM2算法的基点G计算第一参数,发送给发送方;发送方基于本地产生的随机数和所述第一参数,计算公钥和私钥,基于预设的密钥生成函数和所述私钥对第i个消息组中的消息进行加密,得到第i个消息组的密文,将第i个消息组的密文和公钥作为第二参数发送给接收方;接收方基于第i个目标索引、密钥生成函数、以及第二参数,计算从第i个消息组中选择的目标消息。本发明实施例可以提高不经意传输的效率。

Description

一种不经意传输方法、多方安全计算平台和用于不经意传输 的装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种不经意传输方法、多方安全计算平台和用于不经意传输的装置。
背景技术
不经意传输(Oblivious Transfer,OT)是多方安全计算的基础协议,是一种两方协议,具体是接收方(Receiver)与发送方(Sender)之间的交互协议。由于OT协议可以保证接收方与发送方两方数据的安全性,从而被广泛应用于各个领域中。
一种不经意传输协议需要解决的问题可以描述如下:发送方A拥有秘密m0和m1,接收方B拥有索引a,发送方A和接收方B执行不经意传输协议,使得接收方可以获得其索引a对应的秘密ma(如果a=0,则获得秘密m0;如果a=1,则获得秘密m1),并且上述过程中发送方A不知道接收方B获得的是哪一个秘密。
申请号为202110912825.0的专利申请文件,公开了一种两方隐私集合并集计算方法,其中涉及发送方和接收方执行n次不经意传输协议。
发明内容
本发明实施例提供一种不经意传输方法、多方安全计算平台和用于不经意传输的装置,可以极大减少OT协议的数据传输量,提高数据传输效率。
第一方面,本发明实施例公开了一种不经意传输方法,应用于多方安全计算平台,所述多方安全计算平台包括发送方和接收方,所述方法包括:
发送方基于持有的n个消息组,接收方基于持有的n个目标索引,双方执行n次预设操作;其中,一个消息组中包含两个待选择的消息,所述n个目标索引根据接收方的k个原始索引生成,n≥1,n≥k≥1;
其中,第i次预设操作包括如下步骤:
接收方基于本地产生的随机数和SM2算法的基点G计算第一参数,并将所述第一参数发送给发送方;
发送方基于本地产生的随机数和所述第一参数,计算公钥和私钥,并基于预设的密钥生成函数和所述私钥对第i个消息组中的消息进行加密,得到第i个消息组的密文,发送方将所述第i个消息组的密文和所述公钥作为第二参数发送给接收方;
接收方基于第i个目标索引、所述密钥生成函数、以及所述第二参数,计算从第i个消息组中选择的目标消息。
第二方面,本发明实施例公开了一种不经意传输方法,应用于多方安全计算平台中的发送方,所述多方安全计算平台中还包括接收方,所述方法包括:
基于持有的n个消息组与接收方执行n次预设操作,其中,一个消息组中包含两个待选择的消息,接收方持有n个目标索引,所述n个目标索引根据接收方的k个原始索引生成,n≥1,n≥k≥1;
其中,第i次预设操作包括如下步骤:
接收来自接收方的第一参数,所述第一参数为接收方基于本地产生的随机数和SM2算法的基点G计算得到;
基于本地产生的随机数和所述第一参数,计算公钥和私钥,并基于预设的密钥生成函数和所述私钥对第i个消息组中的消息进行加密,得到第i个消息组的密文,将所述第i个消息组的密文和所述公钥作为第二参数发送给接收方。
第三方面,本发明实施例公开了一种不经意传输方法,应用于多方安全计算平台中的接收方,所述多方安全计算平台中还包括发送方,所述方法包括:
基于持有的n个目标索引与发送方执行n次预设操作,其中,发送方持有n个消息组,一个消息组中包含两个待选择的消息,所述n个目标索引根据接收方的k个原始索引生成,n≥1,n≥k≥1;
其中,第i次预设操作包括如下步骤:
基于本地产生的随机数和SM2算法的基点G计算第一参数,并将所述第一参数发送给发送方;
接收来自发送方的第二参数,其中,发送方基于本地产生的随机数和所述第一参数,计算公钥和私钥,并基于预设的密钥生成函数和所述私钥对第i个消息组中的消息进行加密,得到第i个消息组的密文,所述第二参数包括所述第i个消息组的密文和所述公钥;
基于第i个目标索引、所述密钥生成函数、以及所述第二参数,计算从第i个消息组中选择的目标消息。
第四方面,本发明实施例公开了一种多方安全计算平台,所述多方安全计算平台包括发送方和接收方,所述发送方基于持有的n个消息组,所述接收方基于持有的n个目标索引,双方执行n次预设操作;其中,一个消息组中包含两个待选择的消息,所述n个目标索引根据接收方的k个原始索引生成,n≥1,n≥k≥1;
所述接收方包括第一参数计算模块,用于基于本地产生的随机数和SM2算法的基点G计算第一参数,并将所述第一参数发送给发送方;
所述发送方包括第二参数计算模块,用于基于本地产生的随机数和所述第一参数,计算公钥和私钥,并基于预设的密钥生成函数和所述私钥对第i个消息组中的消息进行加密,得到第i个消息组的密文,将所述第i个消息组的密文和所述公钥作为第二参数发送给接收方;
所述接收方还包括目标消息计算模块,用于基于第i个目标索引、所述密钥生成函数、以及所述第二参数,计算从第i个消息组中选择的目标消息。
第五方面,本发明实施例公开了一种多方安全计算平台中的接收方,所述多方安全计算平台中还包括发送方,所述发送方基于持有的n个消息组,所述接收方基于持有的n个目标索引,双方执行n次预设操作;其中,一个消息组中包含两个待选择的消息,所述n个目标索引根据接收方的k个原始索引生成,n≥1,n≥k≥1;所述接收方包括:
第一参数计算模块,用于基于本地产生的随机数和SM2算法的基点G计算第一参数,并将所述第一参数发送给发送方;
第二参数接收模块,用于接收来自发送方的第二参数,其中,所述发送方基于本地产生的随机数和所述第一参数,计算公钥和私钥,并基于预设的密钥生成函数和所述私钥对第i个消息组中的消息进行加密,得到第i个消息组的密文,发送方将所述第i个消息组的密文和所述公钥作为第二参数;
目标消息计算模块,用于基于第i个目标索引、所述密钥生成函数、以及所述第二参数,计算从第i个消息组中选择的目标消息。
第六方面,本发明实施例公开了一种多方安全计算平台中的发送方,所述多方安全计算平台中还包括接收方,所述发送方基于持有的n个消息组,所述接收方基于持有的n个目标索引,双方执行n次预设操作;其中,一个消息组中包含两个待选择的消息,所述n个目标索引根据接收方的k个原始索引生成,n≥1,n≥k≥1;所述发送方包括:
第一参数接收模块,用于接收来自接收方的第一参数,所述第一参数为接收方基于本地产生的随机数和SM2算法的基点G计算得到;
第二参数计算模块,用于基于本地产生的随机数和所述第一参数,计算公钥和私钥,并基于预设的密钥生成函数和所述私钥对第i个消息组中的消息进行加密,得到第i个消息组的密文,将所述第i个消息组的密文和所述公钥作为第二参数发送给接收方。
第七方面,本发明实施例公开了一种用于不经意传输的装置,包括有存储器,以及一个以上程序,其中一个以上程序存储于存储器中,且经配置以由一个以上处理器执行所述一个以上程序,所述一个以上程序包含用于进行如前述一个或多个所述的不经意传输方法的指令。
第八方面,本发明实施例公开了一种机器可读介质,其上存储有指令,当所述指令由装置的一个或多个处理器执行时,使得装置执行如前述一个或多个所述的不经意传输方法。
本发明实施例包括以下优点:
本发明实施例基于SM2椭圆曲线算法实现2选1的OT协议,并且在2选1的OT协议基础上,通过执行n次2选1的OT协议可以扩展实现n选1的OT协议以及n选k的OT协议。相对于传统的RSA加密算法,SM2可以使用比RSA更短的密钥得到相同的安全性,在实现同等安全性的情况下,本发明实施例可以极大减少OT协议的数据传输量,提高数据传输效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的一种不经意传输方法实施例中第i次预设操作的步骤流程图;
图2是本发明的一次预设操作中发送方和参与方的交互流程示意图;
图3是本发明的一种n选1的不经意传输场景中发送方和参与方的交互流程示意图;
图4是本发明的一种n选k的不经意传输场景中发送方和参与方的交互流程示意图;
图5是本发明的另一种不经意传输方法实施例中第i次预设操作的步骤流程图;
图6是本发明的又一种不经意传输方法实施例中第i次预设操作的步骤流程图;
图7是本发明的一种多方安全计算平台实施例的结构框图;
图8是本发明的一种用于不经意传输的装置800的框图;
图9是本发明的一些实施例中服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中的术语“和/或”用于描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本发明实施例中术语“多个”是指两个或两个以上,其它量词与之类似。
本发明实施例提供了一种不经意传输方法,所述方法可应用于多方安全计算平台,所述多方安全计算平台可以包括发送方和接收方,所述方法可以包括如下步骤:发送方基于持有的n个消息组,接收方基于持有的n个目标索引,双方执行n次预设操作;其中,一个消息组中包含两个待选择的消息,所述n个目标索引根据接收方的k个原始索引生成,n≥1,n≥k≥1。参照图1,示出了本发明一种不经意传输方法实施例中第i次预设操作的步骤流程图,所述第i次预设操作可以包括如下步骤:
步骤101、接收方基于本地产生的随机数和SM2算法的基点G计算第一参数,并将所述第一参数发送给发送方;
步骤102、发送方基于本地产生的随机数和所述第一参数,计算公钥和私钥,并基于预设的密钥生成函数和所述私钥对第i个消息组中的消息进行加密,得到第i个消息组的密文,发送方将所述第i个消息组的密文和所述公钥作为第二参数发送给接收方;
步骤103、接收方基于第i个目标索引、所述密钥生成函数、以及所述第二参数,计算从第i个消息组中选择的目标消息。
本发明实施例的不经意传输方法可以基于多方安全计算平台实现不经意传输(Oblivious Transfer,OT)协议。OT协议是一种密码学协议,被广泛应用于多方安全计算等领域。
本发明实施例的不经意传输方法可适用于1-out-of-2(2选1)的OT协议、1-out-of-n(n选1)的OT协议、以及k-out-of-n(n选k)的OT协议等。
1-out-of-2(2选1)的 OT协议解决的问题可以描述如下:假设参与方包括Alice和Bob,Alice(发送方)持有两个待选择的消息m0和m1,Bob(接收方)持有索引a,a的取值为0或1。Alice和Bob双方执行1-out-of-2的OT协议,使得Bob仅可以得到索引a对应的消息ma(如果a=0,则得到消息m0;如果a=1,则得到消息m1),Bob对其他消息一无所知,并且上述过程中Alice不知道Bob获得的是哪一个消息。
1-out-of-n(n选1)的OT协议解决的问题可以描述如下:假设参与方包括Alice和Bob,Alice(发送方)持有n个待选择的消息m0、m1、m2、…、mn-1,Bob(接收方)持有索引a,a的取值可以为0~n-1中的某一个。Alice和Bob双方执行1-out-of-n的OT协议,使得Bob仅可以得到索引a对应的消息ma,Bob对其他消息一无所知,并且上述过程中Alice不知道Bob获得的是哪一个消息。
k-out-of-n(n选k)的OT协议解决的问题可以描述如下:假设参与方包括Alice和Bob,Alice(发送方)持有n个待选择的消息m0、m1、m2、…、mn-1,Bob(接收方)持有k个索引a0~ak-1,a0~ak-1中每一个的取值可以为0~n-1中的某一个。Alice和Bob双方执行k-out-of-n的OT协议,使得Bob仅可以得到索引a0~ak-1对应的消息ma0~mak-1,Bob对其他消息一无所知,并且上述过程中Alice不知道Bob获得的是哪些消息。
上述1-out-of-2(2选1)的OT协议、1-out-of-n(n选1)的OT协议、以及k-out-of-n(n选k)的OT协议是多方安全计算的基础组件之一,可应用于混淆电路、预处理数据生成、不经意多项式计算等应用场景。
需要说明的是,本发明实施例中使用Alice和Bob来标识两个对等的通信实体。通信实体Alice和Bob 分别对应发送方和接收方,两者的地位与顺序可以互换。
需要说明的是,在2选1的OT协议场景下,n=1,k=1,也即发送方持有1个消息组,该消息组中包含两个待选择的消息,如记为消息m0和m1;接收方持有1个原始索引,如记为a,a的值可以为0或1。在2选1的OT协议场景下,接收方持有的1个原始索引即可作为目标索引。双方执行一次预设操作,所述预设操作的执行结果为接收方获得消息ma,而对未选择的消息一无所知,且发送方无法获知接收方选择了哪个消息。
在本发明实施例中,在n=1,k=1时,接收方将持有的1个原始索引作为目标索引,发送方和接收方执行一次预设操作,可以实现1-out-of-2(2选1)的OT协议。在n>1,k=1时,接收方将持有的1个原始索引扩展为n个目标索引,发送方和接收方执行n次预设操作,可以实现1-out-of-n(n选1)的OT协议。在n>1,k>1时,接收方将持有的k个原始索引扩展为n个目标索引,发送方和接收方执行n次预设操作,可以实现k-out-of-n(n选k)的OT协议。
在本发明实施例中,执行一次预设操作实际是发送方和接收方执行了一次1-out-of-2(2选1)的OT协议。在此基础上,发送方和接收方执行n次预设操作(也即执行n次2选1的OT协议),可以实现1-out-of-n(n选1)的OT协议以及k-out-of-n(n选k)的OT协议。下面分别进行描述。
在2选1的OT协议场景下,发送方和接收方双方执行的一次预设操作的具体过程如下:接收方基于本地产生的随机数和SM2算法的基点G计算第一参数,并将所述第一参数发送给发送方;发送方基于本地产生的随机数和所述第一参数,计算公钥和私钥,并基于预设的密钥生成函数和所述私钥对消息m0和m1分别进行加密,得到每个消息的密文,发送方将每个消息的密文和所述公钥作为第二参数发送给接收方;接收方基于持有的目标索引a、所述密钥生成函数、以及所述第二参数,计算从消息m0和m1中选择的目标消息ma
其中,SM2 是国家密码管理局发布的椭圆曲线公钥密码算法。G是椭圆曲线的一个基点。第一参数用于生成公钥和私钥,发送方利用私钥可以对其持有的消息进行加密生成消息的密文。第二参数中包括消息的密文和公钥,接收方基于持有的索引,利用第二参数可以解密得到目标消息。所述密钥生成函数可以用于生成密钥。例如,密钥生成函数可以为KDF(Key derivation function,密钥派生函数)。
椭圆曲线密码(Elliptic curve cryptography,ECC)是一种基于在有限域上定义的椭圆曲线算法的公开密钥体制。SM2算法是是ECC密码体制的一种具体算法。在国家标准《GB/T 32918信息安全技术SM2椭圆曲线公钥密码算法》标准中规定了一种椭圆曲线公钥密码算法,基于SM2的加密算法和解密算法符合该标准的规定。本发明实施例利用SM2算法实现OT协议,将多方安全计算与国产密码算法进行结合,使得多方安全计算更加符合国家标准。此外,相较于常用的RSA加密算法,SM2算法具有更高的安全性和计算速度。
在本发明的一种可选实施例中,所述接收方基于本地产生的随机数和SM2算法的基点G计算第一参数,可以包括:
步骤S11、接收方令第一临时公钥g0=G,生成第一随机数R_r1,基于第一随机数R_r1与基点G的点乘计算,得到第二临时公钥g1
步骤S12、接收方生成第二随机数R_r2,基于第二随机数R_r2与基点G的点乘计算和点加计算、以及第二临时公钥g1,计算得到第三临时公钥h0和第四临时公钥h1
步骤S13、接收方生成第一随机数组R_r3,基于第一随机数组R_r3与基点G的点乘计算和点加计算、以及第i个目标索引、第一临时公钥g0、第二临时公钥g1、第三临时公钥h0、第四临时公钥h1,计算得到第五临时公钥g’和第六临时公钥h’;
步骤S14、接收方将第二临时公钥g1、第三临时公钥h0、第四临时公钥h1、第五临时公钥g’、以及第六临时公钥h’作为第一参数。
在2选1的OT协议场景下,假设发送方持有消息m0和m1,接收方持有目标索引a。接收方令第一临时公钥g0=G,g0可以是发送方和接收方双方都知道的公知参数。接收方生成第一随机数R_r1,基于第一随机数R_r1与基点G的点乘计算,得到第二临时公钥g1,如g1=[R_r1]*G。其中,[]表示椭圆曲线上的倍点运算。例如,[R_r1]*G表示椭圆曲线上点G的R_r1倍点。接收方生成第二随机数R_r2,基于第二随机数R_r2与基点G的点乘计算和点加计算、以及第二临时公钥g1,计算得到第三临时公钥h0和第四临时公钥h1,如h0=[R_r2]*G,h1=g1+[R_r2]*G。接收方生成第一随机数组R_r3,第一随机数组R_r3可以包含n个随机数。接收方基于第一随机数组R_r3与基点G的点乘计算和点加计算,以及第i个目标索引(如记为ai)、第一临时公钥g0、第二临时公钥g1、第三临时公钥h0、第四临时公钥h1,计算得到第五临时公钥g’和第六临时公钥h’,如g’=gai+[R_r3]*G,h’= hai+[R_r3]*G。接收方将第二临时公钥g1、第三临时公钥h0、第四临时公钥h1、第五临时公钥g’、以及第六临时公钥h’作为第一参数给发送方。其中,当ai=0时,gai=g0,hai=h0;当ai=1时,gai=g1,hai=h1
需要说明的是,本发明实施例对生成随机数的方式不做限制,上述R_r1、R_r2、R_r3仅作为一种符号表示,并不用于限制随机数的具体数值。此外,在本发明实施例中,第i个目标索引可以表示为ai或者ai。例如,在第i个目标索引作为下标时,本发明实施例中以ai表示。如gai、hai等。
在本发明的一种可选实施例中,所述发送方基于本地产生的随机数和所述第一参数,计算公钥和私钥,并基于预设的密钥生成函数和所述私钥对第i个消息组中的消息进行加密,得到第i个消息组的密文,可以包括:
步骤S21、发送方生成第二随机数组,基于第二随机数组中的随机数与第一参数中的参数的点乘计算和点加计算,得到第一公钥u0、第一私钥v0、第二公钥u1、以及第二私钥v1
步骤S22、发送方基于第一私钥v0和预设的密钥生成函数生成第一密钥,利用第一密钥对第i个消息组中的第一消息进行加密,得到第一消息的密文e0,以及基于第二私钥v1和密钥生成函数生成第二密钥,利用第二密钥对第i个消息组中的第二消息进行加密,得到第二消息的密文e1
在2选1的OT协议场景下,假设发送方持有消息m0和m1,接收方持有目标索引a。接收方将第二临时公钥g1、第三临时公钥h0、第四临时公钥h1、第五临时公钥g’、以及第六临时公钥h’作为第一参数给发送方。发送方生成第二随机数组,基于第二随机数组中的随机数与第一参数中的参数的点乘计算和点加计算,得到第一公钥u0、第一私钥v0、第二公钥u1、以及第二私钥v1
示例性地,发送方生成的第二随机数组包括如下随机数:s0、s1、t0、t1。u0=[s0]*g0+[t0]*h0,v0=[s0]*g’+[t0]*h’,u1=[s1]*g1+[t1]*h1,v1=[s1]*g’+[t1]*h’。
发送方基于第一私钥v0和预设的密钥生成函数KDF生成第一密钥,利用第一密钥对第一消息(如消息m0)进行加密,得到第一消息的密文e0,如e0=KDF(v0)⊕m0;其中,⊕表示两者按比特逐一进行异或操作。发送方基于第二私钥v1和KDF生成第二密钥,利用第二密钥对第二消息(如消息m1)进行加密,得到第二消息的密文e1,如e1= KDF(v1)⊕m1
发送方将第一消息的密文、第二消息的密文、第一公钥u0和第二公钥u1作为第二参数发送给接收方。
接收方基于持有的目标索引ai、所述密钥生成函数、以及所述第二参数,计算从消息m0和消息m1中选择的目标消息,得到目标消息为mai
在本发明的一种可选实施例中,所述接收方基于第i个目标索引、所述密钥生成函数、以及所述第二参数,计算从第i个消息组中选择的目标消息,可以包括:通过下式计算得到目标消息mai:mai=KDF(uai-[R_r3]G)⊕eai,其中,ai表示第i个目标索引,KDF为密钥生成函数;当ai=0时,uai=u0,eai=e0;当ai=1时,uai=u1,eai=e1
在2选1的OT协议场景下,假设发送方持有消息m0和m1,接收方仅持有一个目标索引(也即原始索引),如记为a,a取值为0或1,则可以通过下式计算目标消息ma:ma=KDF(ua-[R_r3]G)⊕ea。其中,当a=0时,ua= u0,ea= e0;当a=1时,ua= u1,ea= e1
参照图2,示出了一次预设操作中发送方和参与方的交互流程示意图。也即,图2示出了执行一次2选1的不经意传输协议场景中双方的交互流程示意图。其中,发送方持有消息m0和m1,接收方持有目标索引a。如图2所示,双方交互过程具体如下:
步骤0、接收方令g0=G;生成第一随机数R_r1,基于SM2标准椭圆曲线上的点乘计算,得到g1=[R_r1]*G。
步骤1、接收方生成第二随机数R_r2。
步骤2、接收方基于SM2标准椭圆曲线上的点乘及点加,计算:
h0=[R_r2]G,h1=g1+[R_r2]G。
步骤3、接收方生成包含n个随机数的第一随机数组R_r3。
步骤4、接收方针对目标索引a,基于SM2标准椭圆曲线上的点乘及点加,计算:g’=(ga)+[R_r3]G,h’=(ha)+[R_r3]G。接收方将g1,h0,h1,g’,h’发送给发送方。
步骤5、发送方生成第二随机数组,包括随机数s0、s1、t0、t1
步骤6、发送方基于SM2标准椭圆曲线上的点乘及点加,计算:
u0=[s0]*g0+[t0]*h0,v0=[s0]*g’+[t0]*h’;
u1=[s1]*g1+[t0]*h1,v1=[s1]* g’+[t1]* h’。
步骤7、发送方令KDF为密钥生成函数,计算e0=KDF(v0)⊕m0,e1=KDF(v1)⊕m1。发送方将e0、e1;u0、u1发送给接收方。
步骤8、接收方计算目标消息ma=KDF(ua-[R_r3]*G)⊕ea
在本发明的一种可选实施例中,所述多方安全计算平台可以基于半诚实参与方模型的不经意传输协议。
在多方安全计算中存在两种安全模型:半诚实参与方模型和恶意参与方模型。半诚实参与方模型是指,在协议执行时参与方按照协议规定的流程执行,但是可能会被恶意攻击者监听获取到在协议执行过程中的自己的输入输出以及在协议运行过程中获得的信息。恶意参与方模型是指:在协议执行时,攻击者可以通过在其控制下的参与方进行通过不合法的输入,或者恶意篡改输入等等方法来分析诚实的参与者的隐私信息,还可以通过提前终止和拒绝参与等方式导致协议的终止。
本发明实施例基于SM2算法和随机数对发送方的消息和接收方的索引进行了加密(遮盖),使得参与方无法基于协议运行中的信息获得OT定义中需要保密的信息。因此,通过本发明实施例的不经意传输方法,可以实现半诚实参与方模型的不经意传输协议。
n选1的OT协议以及n选k的OT协议与2选1的OT协议的实现过程相类似。在n选1的OT协议以及n选k的OT协议场景下,发送方和接收方双方执行n(n>1)次预设操作,也即执行n次前述的2选1的OT协议。在本发明实施例中,n、k、i均为整数。下面分别描述n选1的OT协议场景以及n选k的OT协议场景。
在本发明的一种可选实施例中,在n选1的OT协议场景下,n>1,k=1,发送方持有如下n个消息:m0~mn-1,如包含m0、m1、m2、…、mn-1,接收方持有原始索引a,a的取值范围为0~n-1,也即a的取值可以为0~n-1中的任意一个整数。
在n选1的OT协议场景下,所述方法还可以包括:
步骤S31、发送方根据持有的n个消息,设置n个消息组,其中,第j个消息组包括如下消息:0和mj,j的取值范围为0~n-1;
步骤S32、接收方根据持有的原始索引a,设置n个目标索引,该n个目标索引中的第a个目标索引的值为1,其余目标索引的值为0;
步骤S33、接收方在第a次预设操作完成时获得n选1的不经意传输结果ma
在n选1的OT协议场景下,发送方根据持有的如下n个消息:m0,m1, m2,… mn-1,设置如下n个消息组:[0, m0]、[0, m1]、[0, m2]、…、[0, ma0]、…、[0, mn-1]。接收方根据持有的原始索引a,设置如下n个目标索引:0、0、0、…、1、…、0。其中,第a个目标索引的值为1,其余目标索引的值为0。
在n选1的OT协议场景下,发送方基于其持有的n个消息组,接收方基于持有的n个索引,双方执行前述n次预设操作,也即执行n次前述的2选1的OT协议。其中,发送方基于其持有的第i个消息组,接收方基于其持有的第i个目标索引,双方执行第i次预设操作。
参照图3,示出了本发明的一种n选1的不经意传输场景中发送方和参与方的交互流程示意图。
示例性地,发送方基于第0个消息组[0, m0],接收方基于第0个目标索引0,执行第0次前述的2选1的OT协议,此时得到的结果为接收方选择消息0,因此不会泄露消息m0。发送方基于第1个消息组[0, m1],接收方基于第1个目标索引0,执行第1次前述的2选1的OT协议,此时得到的结果为接收方选择消息0,因此不会泄露消息m1。以此类推,发送方基于第a个消息组[0, ma],接收方基于第a个目标索引1,执行第a次前述的2选1的OT协议,此时得到的结果为接收方选择消息ma。直到完成发送方基于第n-1个消息组[0, mn-1],接收方基于第n-1个目标索引0,执行第n-1次前述的2选1的OT协议,此时得到的结果为接收方选择消息0,因此不会泄露消息mn-1。也即,接收方在第a次2选1的OT协议执行完成时获得n选1的OT协议传输的结果ma
在本发明的一种可选实施例中,在n选k的OT协议场景下,n>1,k>1,发送方持有n个消息:m0~mn-1,如包含m0、m1、m2、…、mn-1,接收方持有原始索引a0~ak-1,a0~ak-1中每一个的取值范围为0~n-1。也即,a0~ak-1中每一个的取值可以为0~n-1中的任意一个整数。
在n选k的OT协议场景下,所述方法还可以包括:
步骤S41、发送方根据持有的n个消息,设置n个消息组,其中,第j个消息组包括如下消息:0和mj,j的取值范围为0~n-1;
步骤S42、接收方根据持有的原始索引a0~ak-1,设置n个目标索引,该n个目标索引中的第a0~ak-1个目标索引的值为1,其余目标索引的值为0;
步骤S43、接收方在第a0~ak-1次预设操作完成时获得n选k的不经意传输结果ma0~mak-1
在n选k的OT协议场景下,发送方根据持有的如下n个消息:m0,m1, m2,… mn-1,设置如下n个消息组:[0, m0]、[0, m1]、[0, m2]、…、[0, ma0]、…、[0, mn-1]。接收方根据持有的原始索引a0~ak-1,设置如下n个目标索引:0、1、0、…、1、0、…、1、…、0。其中,第a0~ak-1个目标索引的值为1,其余目标索引的值为0。
在n选k的OT协议场景下,发送方基于其持有的n个消息组,接收方基于其持有的n个目标索引,双方执行前述n次预设操作,也即执行n次前述的2选1的OT协议。其中,发送方基于其持有的第i个消息组,接收方基于其持有的第i个目标索引,双方执行第i次预设操作。
参照图4,示出了本发明的一种n选k的不经意传输场景中发送方和参与方的交互流程示意图。
示例性地,发送方基于第0个消息组[0, m0],接收方基于第0个目标索引0,执行第0次前述的2选1的OT协议,此时得到的结果为接收方选择消息0,因此不会泄露消息m0。发送方基于第1个消息组[0, m1],接收方基于第1个目标索引0,执行第1次前述的2选1的OT协议,此时得到的结果为接收方选择消息0,因此不会泄露消息m1。以此类推,发送方基于第a0个消息组[0, ma0],接收方基于第a0个目标索引1,执行第a0次前述的2选1的OT协议,此时得到的结果为接收方选择消息ma0。以此类推,发送方基于第a1个消息组[0, ma1],接收方基于第a1个目标索引1,执行第a1次前述的2选1的OT协议,此时得到的结果为接收方选择消息ma1。直到完成发送方基于第n-1个消息组[0, mn-1],接收方基于第n-1个目标索引0,执行第n-1次前述的2选1的OT协议,此时得到的结果为接收方选择消息0,因此不会泄露消息mn-1。也即,接收方在第a0~ak-1次2选1的OT协议执行完成时获得n选1的OT协议传输的结果ma0~mak-1
需要说明的是,本发明实施例中从0开始计数,当然,在具体实施中,本发明对此不做限制,可以从任意数值开始计数。此外,a0~ak-1个索引可以是连续的目标索引,也可以是不连续的目标索引,上述示例仅作为本发明的一种应用示例,不应作为本发明实现n选k的OT协议的限制。
综上,本发明实施例基于SM2椭圆曲线算法实现2选1的OT协议,并且在2选1的OT协议基础上,通过执行n次2选1的OT协议可以扩展实现n选1的OT协议以及n选k的OT协议。相对于传统的RSA加密算法,SM2可以使用比RSA更短的密钥得到相同的安全性,在实现同等安全性的情况下,本发明实施例可以极大减少OT协议的数据传输量,提高数据传输效率。
本发明实施例提供了一种不经意传输方法,所述方法可应用于多方安全计算平台中的发送方,所述多方安全计算平台中还包括接收方,所述方法可以包括如下步骤:基于持有的n个消息组与接收方执行n次预设操作,其中,一个消息组中包含两个待选择的消息,接收方持有n个目标索引,所述n个目标索引根据接收方的k个原始索引生成,n≥1,n≥k≥1。参照图5,示出了本发明的另一种不经意传输方法实施例中第i次预设操作的步骤流程图,所述第i次预设操作可以包括如下步骤:
步骤501、接收来自接收方的第一参数,所述第一参数为接收方基于本地产生的随机数和SM2算法的基点G计算得到;
步骤502、基于本地产生的随机数和所述第一参数,计算公钥和私钥,并基于预设的密钥生成函数和所述私钥对第i个消息组中的消息进行加密,得到第i个消息组的密文,将所述第i个消息组的密文和所述公钥作为第二参数发送给接收方。
接收方接收到发送方发送的第二参数后,可以基于第i个目标索引、所述密钥生成函数、以及所述第二参数,计算从第i个消息组中选择的目标消息。
可选地,所述基于本地产生的随机数和所述第一参数,计算公钥和私钥,并基于预设的密钥生成函数和所述私钥对第i个消息组中的消息进行加密,得到第i个消息组的密文,包括:
生成第二随机数组,基于第二随机数组中的随机数与第一参数中的参数的点乘计算和点加计算,得到第一公钥u0、第一私钥v0、第二公钥u1、以及第二私钥v1
基于第一私钥v0和预设的密钥生成函数生成第一密钥,利用第一密钥对第i个消息组中的第一消息进行加密,得到第一消息的密文e0,以及基于第二私钥v1和密钥生成函数生成第二密钥,利用第二密钥对第i个消息组中的第二消息进行加密,得到第二消息的密文e1
可选地,所述第i个消息组中包含第一消息m0和第二消息m1,第i个目标索引为ai,其中,
第二随机数组包括如下随机数:s0、s1、t0、t1
第一公钥u0=[s0]*g0+[t0]*h0
第一私钥v0=[s0]*g’+[t0]*h’;
第二公钥u1=[s1]*g1+[t1]*h1
第二私钥v1=[s1]*g’+[t1]*h’;
第一消息的密文e0=KDF(v0)⊕m0,KDF为密钥生成函数;
第二消息的密文e1= KDF(v1)⊕m1
可选地,在n选1的OT协议场景下,n>1,所述发送方持有n个消息:m0~mn-1,如包括m0、m1、m2、…、mn-1,所述方法还包括:
根据持有的n个消息,设置n个消息组,其中,第j个消息组包括如下消息:0和mj,j的取值范围为0~n-1。
在n选1的OT协议场景下,n>1,k=1,发送方持有如下n个消息:m0~mn-1,如包含m0、m1、m2、…、mn-1,接收方持有原始索引a,a的取值范围为0~n-1,也即a的取值可以为0~n-1中的任意一个整数。接收方根据持有的原始索引a,设置如下n个目标索引:0、0、0、…、1、…、0。其中,第a个目标索引的值为1,其余目标索引的值为0。
在n选1的OT协议场景下,发送方基于其持有的n个消息组,接收方基于持有的n个索引,双方执行前述n次预设操作,也即执行n次前述的2选1的OT协议。其中,发送方基于其持有的第i个消息组,接收方基于其持有的第i个目标索引,双方执行第i次预设操作。接收方在第a次2选1的OT协议执行完成时获得n选1的OT协议传输的结果ma
在n选k的OT协议场景下,n>1,k>1,发送方持有n个消息:m0~mn-1,如包含m0、m1、m2、…、mn-1,接收方持有原始索引a0~ak-1,a0~ak-1中每一个的取值范围为0~n-1。也即,a0~ak-1中每一个的取值可以为0~n-1中的任意一个整数。
在n选k的OT协议场景下,发送方根据持有的如下n个消息:m0,m1, m2,… mn-1,设置如下n个消息组:[0, m0]、[0, m1]、[0, m2]、…、[0, ma0]、…、[0, mn-1]。接收方根据持有的原始索引a0~ak-1,设置如下n个目标索引:0、1、0、…、1、0、…、1、…、0。其中,第a0~ak-1个目标索引的值为1,其余目标索引的值为0。
在n选k的OT协议场景下,发送方基于其持有的n个消息组,接收方基于其持有的n个目标索引,双方执行前述n次预设操作,也即执行n次前述的2选1的OT协议。其中,发送方基于其持有的第i个消息组,接收方基于其持有的第i个目标索引,双方执行第i次预设操作。接收方在第a0~ak-1次2选1的OT协议执行完成时获得n选1的OT协议传输的结果ma0~mak-1
可选地,所述多方安全计算平台基于半诚实参与方模型的不经意传输协议。
本发明实施例的不经意传输方法可适用于1-out-of-2(2选1)的OT协议、1-out-of-n(n选1)的OT协议、以及k-out-of-n(n选k)的OT协议等。
图5所示的不经意传输方法中发送方的执行步骤在图1所示的实施例中已经具体说明,此处不再赘述,参考前述实施例中的具体过程即可。
本发明实施例基于SM2椭圆曲线算法实现2选1的OT协议,并且在2选1的OT协议基础上,通过执行n次2选1的OT协议可以扩展实现n选1的OT协议以及n选k的OT协议。相对于传统的RSA加密算法,SM2可以使用比RSA更短的密钥得到相同的安全性,在实现同等安全性的情况下,本发明实施例可以极大减少OT协议的数据传输量,提高数据传输效率。
本发明实施例提供了一种不经意传输方法,所述方法可应用于多方安全计算平台中的接收方,所述多方安全计算平台中还包括发送方,所述方法可以包括如下步骤:基于持有的n个目标索引与发送方执行n次预设操作,其中,发送方持有n个消息组,一个消息组中包含两个待选择的消息,所述n个目标索引根据接收方的k个原始索引生成,n≥1,n≥k≥1。参照图6,示出了本发明的又一种不经意传输方法实施例中第i次预设操作的步骤流程图,所述第i次预设操作可以包括如下步骤:
步骤601、基于本地产生的随机数和SM2算法的基点G计算第一参数,并将所述第一参数发送给发送方;
步骤602、接收来自发送方的第二参数,其中,发送方基于本地产生的随机数和所述第一参数,计算公钥和私钥,并基于预设的密钥生成函数和所述私钥对第i个消息组中的消息进行加密,得到第i个消息组的密文,所述第二参数包括所述第i个消息组的密文和所述公钥;
步骤603、基于第i个目标索引、所述密钥生成函数、以及所述第二参数,计算从第i个消息组中选择的目标消息。
可选地,所述基于本地产生的随机数和SM2算法的基点G计算第一参数,包括:
令第一临时公钥g0=G,生成第一随机数R_r1,基于第一随机数R_r1与基点G的点乘计算,得到第二临时公钥g1
生成第二随机数R_r2,基于第二随机数R_r2与基点G的点乘计算和点加计算、以及第二临时公钥g1,计算得到第三临时公钥h0和第四临时公钥h1
生成第一随机数组R_r3,基于第一随机数组R_r3与基点G的点乘计算和点加计算、以及第i个目标索引、第一临时公钥g0、第二临时公钥g1、第三临时公钥h0、第四临时公钥h1,计算得到第五临时公钥g’和第六临时公钥h’;
将第二临时公钥g1、第三临时公钥h0、第四临时公钥h1、第五临时公钥g’、以及第六临时公钥h’作为第一参数。
可选地,所述第i个消息组中包含第一消息m0和第二消息m1,所述第i个目标索引为ai,其中,
第二临时公钥g1=[R_r1]*G;
第三临时公钥h0=[R_r2]*G;
第四临时公钥h1=g1+[R_r2]*G;
第五临时公钥g’=(gai)+[R_r3]*G;其中,当ai=0时,gai=g0;当ai=1时,gai=g1
第六临时公钥h’=(hai)+[R_r3]*G;其中,当ai=0时,hai=h0;当ai=1时,hai=h1
可选地,可以通过下式计算从第i个消息组中选择的目标消息mai:mai=KDF(uai-[R_r3]*G)⊕eai,KDF为密钥生成函数;其中,当ai=0时,uai=u0,eai=e0;当ai=1时,uai=u1,eai=e1
可选地,n>1,k=1,所述接收方持有原始索引a,a的取值范围为0~n-1;所述方法还包括:
根据持有的原始索引a,设置n个目标索引,该n个目标索引中的第a个目标索引的值为1,其余目标索引的值为0;
在第a次预设操作完成时获得n选1的不经意传输结果ma
在n选1的OT协议场景下,n>1,k=1,发送方持有如下n个消息:m0~mn-1,如包含m0、m1、m2、…、mn-1,接收方持有原始索引a,a的取值范围为0~n-1,也即a的取值可以为0~n-1中的任意一个整数。接收方根据持有的原始索引a,设置如下n个目标索引:0、0、0、…、1、…、0。其中,第a个目标索引的值为1,其余目标索引的值为0。
在n选1的OT协议场景下,发送方基于其持有的n个消息组,接收方基于持有的n个索引,双方执行前述n次预设操作,也即执行n次前述的2选1的OT协议。其中,发送方基于其持有的第i个消息组,接收方基于其持有的第i个目标索引,双方执行第i次预设操作。接收方在第a次2选1的OT协议执行完成时获得n选1的OT协议传输的结果ma
可选地,n>1,k>1,所述接收方持有原始索引a0~ak-1,a0~ak-1中每一个的取值范围为0~n-1;所述方法还包括:
根据持有的原始索引a0~ak-1,设置n个目标索引,该n个目标索引中的第a0~ak-1个目标索引的值为1,其余目标索引的值为0;
在第a0~ak-1次预设操作完成时获得n选k的不经意传输结果ma0~mak-1
在n选k的OT协议场景下,n>1,k>1,发送方持有n个消息:m0~mn-1,如包含m0、m1、m2、…、mn-1,接收方持有原始索引a0~ak-1,a0~ak-1中每一个的取值范围为0~n-1。也即,a0~ak-1中每一个的取值可以为0~n-1中的任意一个整数。
在n选k的OT协议场景下,发送方根据持有的如下n个消息:m0,m1, m2,… mn-1,设置如下n个消息组:[0, m0]、[0, m1]、[0, m2]、…、[0, ma0]、…、[0, mn-1]。接收方根据持有的原始索引a0~ak-1,设置如下n个目标索引:0、1、0、…、1、0、…、1、…、0。其中,第a0~ak-1个目标索引的值为1,其余目标索引的值为0。
在n选k的OT协议场景下,发送方基于其持有的n个消息组,接收方基于其持有的n个目标索引,双方执行前述n次预设操作,也即执行n次前述的2选1的OT协议。其中,发送方基于其持有的第i个消息组,接收方基于其持有的第i个目标索引,双方执行第i次预设操作。接收方在第a0~ak-1次2选1的OT协议执行完成时获得n选1的OT协议传输的结果ma0~mak-1
可选地,所述多方安全计算平台基于半诚实参与方模型的不经意传输协议。
本发明实施例的不经意传输方法可适用于1-out-of-2(2选1)的OT协议、1-out-of-n(n选1)的OT协议、以及k-out-of-n(n选k)的OT协议等。
图6所示的不经意传输方法中接送方的执行步骤在图1所示的实施例中已经具体说明,此处不再赘述,参考前述实施例中的具体过程即可。
本发明实施例基于SM2椭圆曲线算法实现2选1的OT协议,并且在2选1的OT协议基础上,通过执行n次2选1的OT协议可以扩展实现n选1的OT协议以及n选k的OT协议。相对于传统的RSA加密算法,SM2可以使用比RSA更短的密钥得到相同的安全性,在实现同等安全性的情况下,本发明实施例可以极大减少OT协议的数据传输量,提高数据传输效率。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图7,示出了本发明的一种多方安全计算平台实施例的结构框图,多方安全计算平台可以执行不经意传输协议,所述多方安全计算平台包括发送方701和接收方702,所述发送方701基于持有的n个消息组,所述接收方702基于持有的n个目标索引,双方执行n次预设操作;其中,一个消息组中包含两个待选择的消息,所述n个目标索引根据接收方的k个原始索引生成,n≥1,n≥k≥1;
所述接收方702包括第一参数计算模块7021,用于基于本地产生的随机数和SM2算法的基点G计算第一参数,并将所述第一参数发送给发送方;
所述发送方701包括第二参数计算模块7011,用于基于本地产生的随机数和所述第一参数,计算公钥和私钥,并基于预设的密钥生成函数和所述私钥对第i个消息组中的消息进行加密,得到第i个消息组的密文,将所述第i个消息组的密文和所述公钥作为第二参数发送给接收方;
所述接收方702还包括目标消息计算模块7022,用于基于第i个目标索引、所述密钥生成函数、以及所述第二参数,计算从第i个消息组中选择的目标消息。
在本发明实施例中,所述发送方701还可以包括:
第一参数接收模块,用于接收来自接收方的第一参数,所述第一参数为接收方基于本地产生的随机数和SM2算法的基点G计算得到。
在本发明实施例中,所述接收方702还可以包括:
第二参数接收模块,用于接收来自发送方的第二参数,其中,所述发送方基于本地产生的随机数和所述第一参数,计算公钥和私钥,并基于预设的密钥生成函数和所述私钥对第i个消息组中的消息进行加密,得到第i个消息组的密文,发送方将所述第i个消息组的密文和所述公钥作为第二参数。
可选地,所述第一参数计算模块,包括:
第一计算子模块,用于令第一临时公钥g0=G,生成第一随机数R_r1,基于第一随机数R_r1与基点G的点乘计算,得到第二临时公钥g1
第二计算子模块,用于生成第二随机数R_r2,基于第二随机数R_r2与基点G的点乘计算和点加计算、以及第二临时公钥g1,计算得到第三临时公钥h0和第四临时公钥h1
第三计算子模块,用于生成第一随机数组R_r3,基于第一随机数组R_r3与基点G的点乘计算和点加计算、以及第i个目标索引、第一临时公钥g0、第二临时公钥g1、第三临时公钥h0、第四临时公钥h1,计算得到第五临时公钥g’和第六临时公钥h’;
第一参数确定子模块,用于将第二临时公钥g1、第三临时公钥h0、第四临时公钥h1、第五临时公钥g’、以及第六临时公钥h’作为第一参数;
所述第二参数计算模块,包括:
公钥计算子模块,用于生成第二随机数组,基于第二随机数组中的随机数与第一参数中的参数的点乘计算和点加计算,得到第一公钥u0、第一私钥v0、第二公钥u1、以及第二私钥v1
数据加密子模块,用于基于第一私钥v0和预设的密钥生成函数生成第一密钥,利用第一密钥对第i个消息组中的第一消息进行加密,得到第一消息的密文e0,以及基于第二私钥v1和密钥生成函数生成第二密钥,利用第二密钥对第i个消息组中的第二消息进行加密,得到第二消息的密文e1
可选地,所述第i个消息组中包含第一消息m0和第二消息m1,所述第i个目标索引为ai,其中,
第二临时公钥g1=[R_r1]*G;
第三临时公钥h0=[R_r2]*G;
第四临时公钥h1=g1+[R_r2]*G;
第五临时公钥g’=(gai)+[R_r3]*G;其中,当ai=0时,gai=g0;当ai=1时,gai=g1
第六临时公钥h’=(hai)+[R_r3]*G;其中,当ai=0时,hai=h0;当ai=1时,hai=h1
第二随机数组包括如下随机数:s0、s1、t0、t1
第一公钥u0=[s0]*g0+[t0]*h0
第一私钥v0=[s0]*g’+[t0]*h’;
第二公钥u1=[s1]*g1+[t1]*h1
第二私钥v1=[s1]*g’+[t1]*h’;
第一消息的密文e0=KDF(v0)⊕m0,KDF为密钥生成函数;
第二消息的密文e1= KDF(v1)⊕m1
可选地,通过下式计算从第i个消息组中选择的目标消息mai:mai=KDF(uai-[R_r3]G)⊕eai;其中,当ai=0时,uai=u0,eai=e0;当ai=1时,uai=u1,eai=e1
可选地,n>1,k=1,发送方持有n个消息:m0~mn-1,接收方持有原始索引a,a的取值范围为0~n-1;
所述发送方还包括第一消息设置模块,用于根据持有的n个消息,设置n个消息组,其中,第j个消息组包括如下消息:0和mj,j的取值范围为0~n-1;
所述接收方还包括第一索引设置模块,用于根据持有的原始索引a,设置n个目标索引,该n个目标索引中的第a个目标索引的值为1,其余目标索引的值为0;
所述接收方还包括第一结果获取模块,用于在第a次预设操作完成时获得n选1的不经意传输结果ma
可选地,n>1,k>1,发送方持有n个消息:m0~mn-1,接收方持有原始索引a0~ak-1,a0~ak-1中每一个的取值范围为0~n-1;
所述发送方还包括第二消息设置模块,用于根据持有的n个消息,设置n个消息组,其中,第j个消息组包括如下消息:0和mj,j的取值范围为0~n-1;
所述接收方还包括第二索引设置模块,用于根据持有的原始索引a0~ak-1,设置n个目标索引,该n个目标索引中的第a0~ak-1个目标索引的值为1,其余目标索引的值为0;
所述接收方还包括第二结果获取模块,用于在第a0~ak-1次预设操作完成时获得n选k的不经意传输结果ma0~mak-1
可选地,所述多方安全计算平台基于半诚实参与方模型的不经意传输协议。
本发明实施例基于SM2椭圆曲线算法实现2选1的OT协议,并且在2选1的OT协议基础上,通过执行n次2选1的OT协议可以扩展实现n选1的OT协议以及n选k的OT协议。相对于传统的RSA加密算法,SM2可以使用比RSA更短的密钥得到相同的安全性,在实现同等安全性的情况下,本发明实施例可以极大减少OT协议的数据传输量,提高数据传输效率。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本发明实施例提供了一种用于不经意传输的装置,包括有存储器,以及一个以上的程序,其中一个以上程序存储于存储器中,且经配置以由一个以上处理器执行所述一个以上程序包含用于进行前述一个或多个所述的不经意传输方法的指令。
图8是根据一示例性实施例示出的一种用于不经意传输的装置800的框图。例如,装置800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图8,装置800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(I/ O)的接口812,传感器组件814,以及通信组件816。
处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理元件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
存储器804被配置为存储各种类型的数据以支持在设备800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件806为装置800的各种组件提供电力。电源组件806可以包括电源管理***,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。
多媒体组件808包括在所述装置800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜***或具有焦距和光学变焦能力。
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当装置800处于操作模式,如呼叫模式、记录模式和语音信息处理模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
I/ O接口812为处理组件802和***接口模块之间提供接口,上述***接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到设备800的打开/关闭状态,组件的相对定位,例如所述组件为装置800的显示器和小键盘,传感器组件814还可以搜索装置800或装置800一个组件的位置改变,用户与装置800接触的存在或不存在,装置800方位或加速/减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置800可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理***的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频信息处理(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由装置800的处理器820执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
图9是本发明的一些实施例中服务器的结构示意图。该服务器1900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以***处理器(central processingunits,CPU)1922(例如,一个或一个以上处理器)和存储器1932,一个或一个以上存储应用程序1942或数据1944的存储介质1930(例如一个或一个以上海量存储设备)。其中,存储器1932和存储介质1930可以是短暂存储或持久存储。存储在存储介质1930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1922可以设置为与存储介质1930通信,在服务器1900上执行存储介质1930中的一系列指令操作。
服务器1900还可以包括一个或一个以上电源1926,一个或一个以上有线或无线网络接口1950,一个或一个以上输入输出接口1958,一个或一个以上键盘1956,和/或,一个或一个以上操作***1941,例如Windows ServerTM,Mac OS XTM,UnixTM, LinuxTM,FreeBSDTM等等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置(服务器或者终端)的处理器执行时,使得装置能够执行图1或图5或图6所示的不经意传输方法。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置(服务器或者终端)的处理器执行时,使得装置能够执行前文图1或图5或图6所对应实施例中不经意传输方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机程序产品或者计算机程序实施例中未披露的技术细节,请参照本申请方法实施例的描述。
此外,需要说明的是:本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或者计算机程序可以包括计算机指令,该计算机指令可以存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器可以执行该计算机指令,使得该计算机设备执行前文图1所对应实施例中不经意传输方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机程序产品或者计算机程序实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
以上对本发明所提供的一种不经意传输方法、一种多方安全计算平台和一种用于不经意传输的装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (30)

1.一种不经意传输方法,其特征在于,应用于多方安全计算平台,所述多方安全计算平台包括发送方和接收方,所述方法包括:
发送方基于持有的n个消息组,接收方基于持有的n个目标索引,双方执行n次预设操作;其中,一个消息组中包含两个待选择的消息,所述n个目标索引根据接收方的k个原始索引生成,n≥1,n≥k≥1;
其中,第i次预设操作包括如下步骤:
接收方基于本地产生的随机数和SM2算法的基点G计算第一参数,并将所述第一参数发送给发送方;
发送方基于本地产生的随机数和所述第一参数,计算公钥和私钥,并基于预设的密钥生成函数和所述私钥对第i个消息组中的消息进行加密,得到第i个消息组的密文,发送方将所述第i个消息组的密文和所述公钥作为第二参数发送给接收方;
接收方基于第i个目标索引、所述密钥生成函数、以及所述第二参数,计算从第i个消息组中选择的目标消息。
2.根据权利要求1所述的方法,其特征在于,所述接收方基于本地产生的随机数和SM2算法的基点G计算第一参数,包括:
接收方令第一临时公钥g0=G,生成第一随机数R_r1,基于第一随机数R_r1与基点G的点乘计算,得到第二临时公钥g1
接收方生成第二随机数R_r2,基于第二随机数R_r2与基点G的点乘计算和点加计算、以及第二临时公钥g1,计算得到第三临时公钥h0和第四临时公钥h1
接收方生成第一随机数组R_r3,基于第一随机数组R_r3与基点G的点乘计算和点加计算、以及第i个目标索引、第一临时公钥g0、第二临时公钥g1、第三临时公钥h0、第四临时公钥h1,计算得到第五临时公钥g’和第六临时公钥h’;
接收方将第二临时公钥g1、第三临时公钥h0、第四临时公钥h1、第五临时公钥g’、以及第六临时公钥h’作为第一参数;
所述发送方基于本地产生的随机数和所述第一参数,计算公钥和私钥,并基于预设的密钥生成函数和所述私钥对第i个消息组中的消息进行加密,得到第i个消息组的密文,包括:
发送方生成第二随机数组,基于第二随机数组中的随机数与第一参数中的参数的点乘计算和点加计算,得到第一公钥u0、第一私钥v0、第二公钥u1、以及第二私钥v1
发送方基于第一私钥v0和预设的密钥生成函数生成第一密钥,利用第一密钥对第i个消息组中的第一消息进行加密,得到第一消息的密文e0,以及基于第二私钥v1和密钥生成函数生成第二密钥,利用第二密钥对第i个消息组中的第二消息进行加密,得到第二消息的密文e1
3.根据权利要求2所述的方法,其特征在于,所述第i个消息组中包含第一消息m0和第二消息m1,所述第i个目标索引为ai,其中,
第二临时公钥g1=[R_r1]*G;
第三临时公钥h0=[R_r2]*G;
第四临时公钥h1=g1+[R_r2]*G;
第五临时公钥g’=(gai)+[R_r3]*G;其中,当ai=0时,gai=g0;当ai=1时,gai=g1
第六临时公钥h’=(hai)+[R_r3]*G;其中,当ai=0时,hai=h0;当ai=1时,hai=h1
第二随机数组包括如下随机数:s0、s1、t0、t1
第一公钥u0=[s0]*g0+[t0]*h0
第一私钥v0=[s0]*g’+[t0]*h’;
第二公钥u1=[s1]*g1+[t1]*h1
第二私钥v1=[s1]*g’+[t1]*h’;
第一消息的密文e0=KDF(v0)⊕m0,KDF为密钥生成函数;
第二消息的密文e1=KDF(v1)⊕m1
4.根据权利要求3所述的方法,其特征在于,通过下式计算从第i个消息组中选择的目标消息mai:mai=KDF(uai-[R_r3]G)⊕eai;其中,当ai=0时,uai=u0,eai=e0;当ai=1时,uai=u1,eai=e1
5.根据权利要求1所述的方法,其特征在于,n>1,k=1,发送方持有n个消息:m0~mn-1,接收方持有原始索引a,a的取值范围为0~n-1;所述方法还包括:
发送方根据持有的n个消息,设置n个消息组,其中,第j个消息组包括如下消息:0和mj,j的取值范围为0~n-1;
接收方根据持有的原始索引a,设置n个目标索引,该n个目标索引中的第a个目标索引的值为1,其余目标索引的值为0;
接收方在第a次预设操作完成时获得n选1的不经意传输结果ma
6.根据权利要求1所述的方法,其特征在于,n>1,k>1,发送方持有n个消息:m0~mn-1,接收方持有原始索引a0~ak-1,a0~ak-1中每一个的取值范围为0~n-1;所述方法还包括:
发送方根据持有的n个消息,设置n个消息组,其中,第j个消息组包括如下消息:0和mj,j的取值范围为0~n-1;
接收方根据持有的原始索引a0~ak-1,设置n个目标索引,该n个目标索引中的第a0~ak-1个目标索引的值为1,其余目标索引的值为0;
接收方在第a0~ak-1次预设操作完成时获得n选k的不经意传输结果ma0~mak-1
7.根据权利要求1所述的方法,其特征在于,所述多方安全计算平台基于半诚实参与方模型的不经意传输协议。
8.一种不经意传输方法,其特征在于,应用于多方安全计算平台中的发送方,所述多方安全计算平台中还包括接收方,所述方法包括:
基于持有的n个消息组与接收方执行n次预设操作,其中,一个消息组中包含两个待选择的消息,接收方持有n个目标索引,所述n个目标索引根据接收方的k个原始索引生成,n≥1,n≥k≥1;
其中,第i次预设操作包括如下步骤:
接收来自接收方的第一参数,所述第一参数为接收方基于本地产生的随机数和SM2算法的基点G计算得到;
基于本地产生的随机数和所述第一参数,计算公钥和私钥,并基于预设的密钥生成函数和所述私钥对第i个消息组中的消息进行加密,得到第i个消息组的密文,将所述第i个消息组的密文和所述公钥作为第二参数发送给接收方。
9.根据权利要求8所述的方法,其特征在于,所述基于本地产生的随机数和所述第一参数,计算公钥和私钥,并基于预设的密钥生成函数和所述私钥对第i个消息组中的消息进行加密,得到第i个消息组的密文,包括:
生成第二随机数组,基于第二随机数组中的随机数与第一参数中的参数的点乘计算和点加计算,得到第一公钥u0、第一私钥v0、第二公钥u1、以及第二私钥v1
基于第一私钥v0和预设的密钥生成函数生成第一密钥,利用第一密钥对第i个消息组中的第一消息进行加密,得到第一消息的密文e0,以及基于第二私钥v1和密钥生成函数生成第二密钥,利用第二密钥对第i个消息组中的第二消息进行加密,得到第二消息的密文e1
10.根据权利要求9所述的方法,其特征在于,所述第一参数包括:第二临时公钥g1、第三临时公钥h0、第四临时公钥h1、第五临时公钥g’、以及第六临时公钥h’;其中,
第二临时公钥g1=[R_r1]*G;R_r1为接收方生成的第一随机数;
第三临时公钥h0=[R_r2]*G;R_r2为接收方生成的第二随机数;
第四临时公钥h1=g1+[R_r2]*G;
第五临时公钥g’=(gai)+[R_r3]*G;其中,R_r3为接收方生成的第一随机数组;当ai=0时,gai=g0;当ai=1时,gai=g1;ai为接收方持有的第i个目标索引;
第六临时公钥h’=(hai)+[R_r3]*G;其中,当ai=0时,hai=h0;当ai=1时,hai=h1
所述第i个消息组中包含第一消息m0和第二消息m1,其中,
第二随机数组包括如下随机数:s0、s1、t0、t1
第一公钥u0=[s0]*g0+[t0]*h0;其中,g0=G;
第一私钥v0=[s0]*g’+[t0]*h’;
第二公钥u1=[s1]*g1+[t1]*h1
第二私钥v1=[s1]*g’+[t1]*h’;
第一消息的密文e0=KDF(v0)⊕m0,KDF为密钥生成函数;
第二消息的密文e1=KDF(v1)⊕m1
11.根据权利要求8所述的方法,其特征在于,n>1,所述发送方持有n个消息:m0~mn-1,所述方法还包括:
根据持有的n个消息,设置n个消息组,其中,第j个消息组包括如下消息:0和mj,j的取值范围为0~n-1。
12.根据权利要求8所述的方法,其特征在于,所述多方安全计算平台基于半诚实参与方模型的不经意传输协议。
13.一种不经意传输方法,其特征在于,应用于多方安全计算平台中的接收方,所述多方安全计算平台中还包括发送方,所述方法包括:
基于持有的n个目标索引与发送方执行n次预设操作,其中,发送方持有n个消息组,一个消息组中包含两个待选择的消息,所述n个目标索引根据接收方的k个原始索引生成,n≥1,n≥k≥1;
其中,第i次预设操作包括如下步骤:
基于本地产生的随机数和SM2算法的基点G计算第一参数,并将所述第一参数发送给发送方;
接收来自发送方的第二参数,其中,发送方基于本地产生的随机数和所述第一参数,计算公钥和私钥,并基于预设的密钥生成函数和所述私钥对第i个消息组中的消息进行加密,得到第i个消息组的密文,所述第二参数包括所述第i个消息组的密文和所述公钥;
基于第i个目标索引、所述密钥生成函数、以及所述第二参数,计算从第i个消息组中选择的目标消息。
14.根据权利要求13所述的方法,其特征在于,所述基于本地产生的随机数和SM2算法的基点G计算第一参数,包括:
令第一临时公钥g0=G,生成第一随机数R_r1,基于第一随机数R_r1与基点G的点乘计算,得到第二临时公钥g1
生成第二随机数R_r2,基于第二随机数R_r2与基点G的点乘计算和点加计算、以及第二临时公钥g1,计算得到第三临时公钥h0和第四临时公钥h1
生成第一随机数组R_r3,基于第一随机数组R_r3与基点G的点乘计算和点加计算、以及第i个目标索引、第一临时公钥g0、第二临时公钥g1、第三临时公钥h0、第四临时公钥h1,计算得到第五临时公钥g’和第六临时公钥h’;
将第二临时公钥g1、第三临时公钥h0、第四临时公钥h1、第五临时公钥g’、以及第六临时公钥h’作为第一参数。
15.根据权利要求14所述的方法,其特征在于,所述第i个消息组中包含第一消息m0和第二消息m1,所述第i个目标索引为ai,其中,
第二临时公钥g1=[R_r1]*G;
第三临时公钥h0=[R_r2]*G;
第四临时公钥h1=g1+[R_r2]*G;
第五临时公钥g’=(gai)+[R_r3]*G;其中,当ai=0时,gai=g0;当ai=1时,gai=g1
第六临时公钥h’=(hai)+[R_r3]*G;其中,当ai=0时,hai=h0;当ai=1时,hai=h1
16.根据权利要求15所述的方法,其特征在于,通过下式计算从第i个消息组中选择的目标消息mai:mai=KDF(uai-[R_r3]*G)⊕eai,KDF为密钥生成函数;其中,当ai=0时,uai=u0,eai=e0;当ai=1时,uai=u1,eai=e1
其中,u0为来自发送方的第一公钥,u0=[s0]*g0+[t0]*h0;u1为来自发送方的第二公钥,u1=[s1]*g1+[t1]*h1;e0为第一消息m0的密文,e0=KDF(v0)⊕m0,v0为发送方生成的第一私钥,v0=[s0]*g’+[t0]*h’;e1为第二消息m1的密文,e1=KDF(v1)⊕m1,v1为发送方生成的第二私钥,v1=[s1]*g’+[t1]*h’;s0、s1、t0、t1为发送方生成的第二随机数组包含的随机数。
17.根据权利要求13所述的方法,其特征在于,n>1,k=1,所述接收方持有原始索引a,a的取值范围为0~n-1;所述方法还包括:
根据持有的原始索引a,设置n个目标索引,该n个目标索引中的第a个目标索引的值为1,其余目标索引的值为0;
在第a次预设操作完成时获得n选1的不经意传输结果ma
18.根据权利要求13所述的方法,其特征在于,n>1,k>1,所述接收方持有原始索引a0~ak-1,a0~ak-1中每一个的取值范围为0~n-1;所述方法还包括:
根据持有的原始索引a0~ak-1,设置n个目标索引,该n个目标索引中的第a0~ak-1个目标索引的值为1,其余目标索引的值为0;
在第a0~ak-1次预设操作完成时获得n选k的不经意传输结果ma0~mak-1
19.根据权利要求13所述的方法,其特征在于,所述多方安全计算平台基于半诚实参与方模型的不经意传输协议。
20.一种多方安全计算平台,其特征在于,所述多方安全计算平台包括发送方和接收方,所述发送方基于持有的n个消息组,所述接收方基于持有的n个目标索引,双方执行n次预设操作;其中,一个消息组中包含两个待选择的消息,所述n个目标索引根据接收方的k个原始索引生成,n≥1,n≥k≥1;
所述接收方包括第一参数计算模块,用于基于本地产生的随机数和SM2算法的基点G计算第一参数,并将所述第一参数发送给发送方;
所述发送方包括第二参数计算模块,用于基于本地产生的随机数和所述第一参数,计算公钥和私钥,并基于预设的密钥生成函数和所述私钥对第i个消息组中的消息进行加密,得到第i个消息组的密文,将所述第i个消息组的密文和所述公钥作为第二参数发送给接收方;
所述接收方还包括目标消息计算模块,用于基于第i个目标索引、所述密钥生成函数、以及所述第二参数,计算从第i个消息组中选择的目标消息。
21.根据权利要求20所述的多方安全计算平台,其特征在于,所述第一参数计算模块,包括:
第一计算子模块,用于令第一临时公钥g0=G,生成第一随机数R_r1,基于第一随机数R_r1与基点G的点乘计算,得到第二临时公钥g1
第二计算子模块,用于生成第二随机数R_r2,基于第二随机数R_r2与基点G的点乘计算和点加计算、以及第二临时公钥g1,计算得到第三临时公钥h0和第四临时公钥h1
第三计算子模块,用于生成第一随机数组R_r3,基于第一随机数组R_r3与基点G的点乘计算和点加计算、以及第i个目标索引、第一临时公钥g0、第二临时公钥g1、第三临时公钥h0、第四临时公钥h1,计算得到第五临时公钥g’和第六临时公钥h’;
第一参数确定子模块,用于将第二临时公钥g1、第三临时公钥h0、第四临时公钥h1、第五临时公钥g’、以及第六临时公钥h’作为第一参数;
所述第二参数计算模块,包括:
公钥计算子模块,用于生成第二随机数组,基于第二随机数组中的随机数与第一参数中的参数的点乘计算和点加计算,得到第一公钥u0、第一私钥v0、第二公钥u1、以及第二私钥v1
数据加密子模块,用于基于第一私钥v0和预设的密钥生成函数生成第一密钥,利用第一密钥对第i个消息组中的第一消息进行加密,得到第一消息的密文e0,以及基于第二私钥v1和密钥生成函数生成第二密钥,利用第二密钥对第i个消息组中的第二消息进行加密,得到第二消息的密文e1
22.根据权利要求21所述的多方安全计算平台,其特征在于,所述第i个消息组中包含第一消息m0和第二消息m1,所述第i个目标索引为ai,其中,
第二临时公钥g1=[R_r1]*G;
第三临时公钥h0=[R_r2]*G;
第四临时公钥h1=g1+[R_r2]*G;
第五临时公钥g’=(gai)+[R_r3]*G;其中,当ai=0时,gai=g0;当ai=1时,gai=g1
第六临时公钥h’=(hai)+[R_r3]*G;其中,当ai=0时,hai=h0;当ai=1时,hai=h1
第二随机数组包括如下随机数:s0、s1、t0、t1
第一公钥u0=[s0]*g0+[t0]*h0
第一私钥v0=[s0]*g’+[t0]*h’;
第二公钥u1=[s1]*g1+[t1]*h1
第二私钥v1=[s1]*g’+[t1]*h’;
第一消息的密文e0=KDF(v0)⊕m0,KDF为密钥生成函数;
第二消息的密文e1=KDF(v1)⊕m1
23.根据权利要求22所述的多方安全计算平台,其特征在于,通过下式计算从第i个消息组中选择的目标消息mai:mai=KDF(uai-[R_r3]G)⊕eai;其中,当ai=0时,uai=u0,eai=e0;当ai=1时,uai=u1,eai=e1
24.根据权利要求20所述的多方安全计算平台,其特征在于,n>1,k=1,发送方持有n个消息:m0~mn-1,接收方持有原始索引a,a的取值范围为0~n-1;
所述发送方还包括第一消息设置模块,用于根据持有的n个消息,设置n个消息组,其中,第j个消息组包括如下消息:0和mj,j的取值范围为0~n-1;
所述接收方还包括第一索引设置模块,用于根据持有的原始索引a,设置n个目标索引,该n个目标索引中的第a个目标索引的值为1,其余目标索引的值为0;
所述接收方还包括第一结果获取模块,用于在第a次预设操作完成时获得n选1的不经意传输结果ma
25.根据权利要求20所述的多方安全计算平台,其特征在于,n>1,k>1,发送方持有n个消息:m0~mn-1,接收方持有原始索引a0~ak-1,a0~ak-1中每一个的取值范围为0~n-1;
所述发送方还包括第二消息设置模块,用于根据持有的n个消息,设置n个消息组,其中,第j个消息组包括如下消息:0和mj,j的取值范围为0~n-1;
所述接收方还包括第二索引设置模块,用于根据持有的原始索引a0~ak-1,设置n个目标索引,该n个目标索引中的第a0~ak-1个目标索引的值为1,其余目标索引的值为0;
所述接收方还包括第二结果获取模块,用于在第a0~ak-1次预设操作完成时获得n选k的不经意传输结果ma0~mak-1
26.根据权利要求20所述的多方安全计算平台,其特征在于,所述多方安全计算平台基于半诚实参与方模型的不经意传输协议。
27.一种多方安全计算平台中的接收方,其特征在于,所述多方安全计算平台中还包括发送方,所述发送方基于持有的n个消息组,所述接收方基于持有的n个目标索引,双方执行n次预设操作;其中,一个消息组中包含两个待选择的消息,所述n个目标索引根据接收方的k个原始索引生成,n≥1,n≥k≥1;所述接收方包括:
第一参数计算模块,用于基于本地产生的随机数和SM2算法的基点G计算第一参数,并将所述第一参数发送给发送方;
第二参数接收模块,用于接收来自发送方的第二参数,其中,所述发送方基于本地产生的随机数和所述第一参数,计算公钥和私钥,并基于预设的密钥生成函数和所述私钥对第i个消息组中的消息进行加密,得到第i个消息组的密文,发送方将所述第i个消息组的密文和所述公钥作为第二参数;
目标消息计算模块,用于基于第i个目标索引、所述密钥生成函数、以及所述第二参数,计算从第i个消息组中选择的目标消息。
28.一种多方安全计算平台中的发送方,其特征在于,所述多方安全计算平台中还包括接收方,所述发送方基于持有的n个消息组,所述接收方基于持有的n个目标索引,双方执行n次预设操作;其中,一个消息组中包含两个待选择的消息,所述n个目标索引根据接收方的k个原始索引生成,n≥1,n≥k≥1;所述发送方包括:
第一参数接收模块,用于接收来自接收方的第一参数,所述第一参数为接收方基于本地产生的随机数和SM2算法的基点G计算得到;
第二参数计算模块,用于基于本地产生的随机数和所述第一参数,计算公钥和私钥,并基于预设的密钥生成函数和所述私钥对第i个消息组中的消息进行加密,得到第i个消息组的密文,将所述第i个消息组的密文和所述公钥作为第二参数发送给接收方。
29.一种用于不经意传输的装置,其特征在于,包括有存储器,以及一个以上程序,其中一个以上程序存储于存储器中,且经配置以由一个以上处理器执行所述一个以上程序,所述一个以上程序包含用于进行如权利要求1至7或8至12或13至19中任一所述的不经意传输方法的指令。
30.一种机器可读介质,其上存储有指令,当所述指令由装置的一个或多个处理器执行时,使得装置执行如权利要求1至7或8至12或13至19中任一所述的不经意传输方法。
CN202210191205.7A 2022-03-01 2022-03-01 一种不经意传输方法、多方安全计算平台和用于不经意传输的装置 Active CN114301594B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210191205.7A CN114301594B (zh) 2022-03-01 2022-03-01 一种不经意传输方法、多方安全计算平台和用于不经意传输的装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210191205.7A CN114301594B (zh) 2022-03-01 2022-03-01 一种不经意传输方法、多方安全计算平台和用于不经意传输的装置

Publications (2)

Publication Number Publication Date
CN114301594A CN114301594A (zh) 2022-04-08
CN114301594B true CN114301594B (zh) 2022-05-17

Family

ID=80978235

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210191205.7A Active CN114301594B (zh) 2022-03-01 2022-03-01 一种不经意传输方法、多方安全计算平台和用于不经意传输的装置

Country Status (1)

Country Link
CN (1) CN114301594B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115065470B (zh) * 2022-08-05 2022-11-11 北京信安世纪科技股份有限公司 数据传输方法和设备
CN115801234B (zh) * 2022-10-11 2023-04-07 蓝象智联(杭州)科技有限公司 一种基于国密的数据不经意传输方法
CN116405734B (zh) * 2023-06-08 2023-08-25 深圳奥联信息安全技术有限公司 确保数据安全的数据传输方法和***

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108632035A (zh) * 2018-05-17 2018-10-09 湖北工业大学 一种带有访问控制的不经意传输***及方法
CN112671802A (zh) * 2021-01-12 2021-04-16 北京邮电大学 基于不经意传输协议的数据共享方法和***
CN113239046A (zh) * 2021-05-20 2021-08-10 平安科技(深圳)有限公司 数据查询方法、***、计算机设备及存储介质
CN113259329A (zh) * 2021-04-26 2021-08-13 北京信安世纪科技股份有限公司 一种数据不经意传输方法、装置、电子设备及存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10715319B2 (en) * 2016-12-15 2020-07-14 Universite Paris Diderot Method and system for spacetime-constrained oblivious transfer
EP4398513A2 (en) * 2018-05-14 2024-07-10 nChain Licensing AG Method and system for communicating a secret
CN109241016B (zh) * 2018-08-14 2020-07-07 阿里巴巴集团控股有限公司 多方安全计算方法及装置、电子设备
CN109474422B (zh) * 2018-11-19 2021-07-02 武汉大学 一种多方协同产生sm2数字签名的方法
US11431487B2 (en) * 2020-04-28 2022-08-30 Visa International Service Association Adaptive attack resistant distributed symmetric encryption
CN112134682B (zh) * 2020-09-09 2022-04-12 支付宝(杭州)信息技术有限公司 用于不经意传输ot扩展协议的数据处理方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108632035A (zh) * 2018-05-17 2018-10-09 湖北工业大学 一种带有访问控制的不经意传输***及方法
CN112671802A (zh) * 2021-01-12 2021-04-16 北京邮电大学 基于不经意传输协议的数据共享方法和***
CN113259329A (zh) * 2021-04-26 2021-08-13 北京信安世纪科技股份有限公司 一种数据不经意传输方法、装置、电子设备及存储介质
CN113239046A (zh) * 2021-05-20 2021-08-10 平安科技(深圳)有限公司 数据查询方法、***、计算机设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Capacity of Quantum Symmetric Private Information Retrieval With Collusion of All But One of Servers;Seunghoan Song等;《IEEE JOURNAL ON SELECTED AREAS IN INFORMATION THEORY》;20210331;第2卷(第1期);第380-390页 *
医疗辅助诊断***中新型的双向隐私保护方法;陈磊磊等;《密码学报》;20210228;第8卷(第1期);第167-182页 *

Also Published As

Publication number Publication date
CN114301594A (zh) 2022-04-08

Similar Documents

Publication Publication Date Title
CN114301594B (zh) 一种不经意传输方法、多方安全计算平台和用于不经意传输的装置
CN114756886A (zh) 一种匿踪查询方法、装置和用于匿踪查询的装置
CN114301609B (zh) 一种不经意传输方法、多方安全计算平台和用于不经意传输的装置
CN115396100B (zh) 一种基于秘密分享的不经意随机打乱方法和***
CN112688779B (zh) 一种数据处理方法、装置和用于数据处理的装置
CN115967491B (zh) 一种隐私求交方法、***和可读存储介质
CN114884645B (zh) 一种隐私计算方法、装置和可读存储介质
CN114969830B (zh) 一种隐私求交方法、***和可读存储介质
CN112861175A (zh) 一种数据处理方法、装置和用于数据处理的装置
CN113254956A (zh) 一种数据处理方法、装置和用于数据处理的装置
CN116305206A (zh) 一种安全多方计算方法、装置、电子设备及存储介质
CN114885038B (zh) 一种加密协议转换方法、结果获取节点和隐私计算节点
CN115617897B (zh) 一种数据类型转换方法和多方安全计算***
CN115941181B (zh) 一种乱序秘密分享方法、***和可读存储介质
CN105120452A (zh) 传输信息的方法、装置及***
CN112464257A (zh) 一种数据检测方法、装置和用于数据检测的装置
CN114448631B (zh) 一种多方安全计算方法、***和用于多方安全计算的装置
CN116208411A (zh) 加密方法、装置和电子设备
CN112468290B (zh) 一种数据处理方法、装置和用于数据处理的装置
CN112671530B (zh) 一种数据处理方法、装置和用于数据处理的装置
CN114915455A (zh) 一种密文数据传输方法、装置和用于密文数据传输的装置
CN112711744A (zh) 一种计算任务的处理方法、装置和用于计算任务的处理装置
CN114760367B (zh) 一种加密协议转换方法、第一节点和第二节点
CN114969164B (zh) 一种数据查询方法、装置和可读存储介质
CN115499254B (zh) 一种用户数据处理方法、装置、***和可读存储介质

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