不经意传输方法、装置、设备和存储介质与流程

文档序号:31404152发布日期:2022-09-03 05:47阅读:117来源:国知局
不经意传输方法、装置、设备和存储介质与流程

1.本发明涉及网络信息技术领域,尤其涉及一种不经意传输方法、装置、设备和存储介质。


背景技术:

2.不经意传输协议((oblivious transfer, ot)是一种用于传递秘密消息的协议 ,以一种模糊化的方式传递信息,可以保护消息传递双方的隐私,是密码学中的基础协议,常用于构建其他密码协议和应用。
3.在实际应用中,最常用的不经意传输为k取1不经意传输。在k取1的不经意传输的过程中,信息持有者持有k个信息,信息接收者想要申请从k个信息中获取1个信息,通过双方的交互,能够使得信息接收者只获得其中的1个提前申请的想要获得的信息,并且信息持有者不知道信息接收者具体获得的信息。
4.然而在传统方案中,为了实现不经意传输信息持有者需要分别对持有的每个信息单独进行加密处理,这样使得计算较为复杂,增大计算开销,也会影响消息的不经意传输效率。


技术实现要素:

5.本发明实施例提供一种不经意传输方法、装置、设备和存储介质,用以降低计算开销,提高消息的不经意传输效率。
6.第一方面,本发明实施例提供一种不经意传输方法,应用于发送端,该方法包括:获取多个待发送信息,所述多个待发送信息中包括与接收端相对应的目标信息;接收所述接收端发送的第一公钥;基于所述第一公钥,生成与所述多个待发送信息各自对应的多个第二公钥;确定用于对所述多个待发送信息进行加密的第一随机数;根据所述第一随机数、所述多个第二公钥分别对所述多个待发送信息进行加密,获得多个待发送信息相对应的多个加密密文,所述多个加密密文中包括相同部分数据,所述相同部分数据与所述第一随机数相关。
7.第二方面,本发明实施例提供一种不经意传输装置,位于发送端,该装置包括:第一获取模块,用于获取多个待发送信息,所述多个待发送信息中包括与接收端相对应的目标信息;第一接收模块,接收所述接收端发送的第一公钥;第一生成模块,用于基于所述第一公钥,生成与所述多个待发送信息各自对应的多个第二公钥;第一确定模块,用于确定用于对所述多个待发送信息进行加密的第一随机数;第一加密模块,用于根据所述第一随机数、所述多个第二公钥分别对所述多个待发送信息进行加密,获得多个待发送信息相对应的多个加密密文,所述多个加密密文中包
括相同部分数据,所述相同部分数据与所述第一随机数相关。
8.第三方面,本发明实施例提供一种电子设备,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器至少可以实现如第一方面所述的不经意传输方法。
9.第四方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被管控设备的处理器执行时,使所述处理器至少可以实现如第一方面所述的不经意传输方法。
10.第五方面,本发明实施例提供一种不经意传输方法,应用于接收端,所述方法包括:获取用于进行数据传输的椭圆曲线上的基点、所述基点的多个倍点以及目标信息标识,所述目标信息标识为待接收的目标信息对应的标识;随机生成一个私钥,所述私钥用于对所述目标信息进行解密;基于所述目标信息标识、所述私钥以及所述基点的多个倍点,生成第一公钥;将所述第一公钥发送至所述发送端,以使得所述发送端基于所述第一公钥和第一随机数对多个待发送信息进行加密,得到与所述多个待发送信息相对应的多个加密密文,所述多个加密密文包括相同部分数据,所述相同部分数据与第一随机数和所述椭圆曲线上的基点相关,其中,所述多个待发送信息中包括所述目标信息。
11.第六方面,本发明实施例提供一种不经意传输装置,位于接收端,所述装置包括:第二获取模块,用于获取用于进行数据传输的椭圆曲线上的基点、所述基点的多个倍点以及目标信息标识,所述目标信息标识为待接收的目标信息对应的标识;第二生成模块,用于随机生成一个私钥,所述私钥用于对所述目标信息进行解密;第二确定模块,用于基于所述目标信息标识、所述私钥以及所述基点的多个倍点,生成第一公钥;第二发送模块,用于将所述第一公钥发送至所述发送端,以使得所述发送端基于所述第一公钥和第一随机数对多个待发送信息进行加密,得到与所述多个待发送信息相对应的多个加密密文,所述多个加密密文包括相同部分数据,所述相同部分数据与第一随机数和所述椭圆曲线上的基点相关,其中,所述多个待发送信息中包括所述目标信息。
12.第七方面,本发明实施例提供一种电子设备,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器至少可以实现如第五方面所述的不经意传输方法。
13.第八方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被计算设备的处理器执行时,使所述处理器至少可以实现如第五方面所述的不经意传输方法。
14.本发明实施例提供的不经意传输方案可以适用于发送端和接收端,针对任一发送端,首先获取多个待发送信息和用于对多个待发送信息进行加密的第一随机数,接着生成与多个待发送信息各自对应的多个第二公钥,并根据获得的第一随机数以及多个第二公钥分别对多个待发送信息进行加密,从而获得多个待发送信息相对应的多个加密密文,其中,
多个加密密文中包括相同部分数据,并且相同部分数据与第一随机数相关。在上述方案中,通过第一随机数和多个第二公钥分别对多个待发送信息进行加密,获得多个待发送信息相对应的多个加密密文,提高了信息的安全性,同时由于采用同一随机数对多个待发送信息进行加密处理,使得多个加密密文中包括相同部分数据,不再需要对该部分数据再进行多次计算,这样不仅大大减少了多个加密密文生成的计算量、降低计算开销,还可以简化多个待发送信息加密过程,从而实现了提高信息不经意传输速度。
附图说明
15.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
16.图1为本发明实施例提供的一种不经意传输方法的流程图;图2为本技术一示例性实施例的一种不经意传输方法的应用场景示意图;图3为本技术实施例提供的生成与多个待发送信息各自对应的多个第二公钥的流程示意图;图4为本技术实施例提供的获得多个待发送信息相对应的多个加密密文的流程示意图;图5为本发明一示例性实施例的一种不经意传输方法的流程示意图;图6为本发明实施例提供的一种不经意传输装置的结构示意图;图7为与图6所示实施例提供的不经意传输装置对应的电子设备的结构示意图;图8为本发明实施例提供的一种不经意传输装置的结构示意图;图9为与图8所示实施例提供的不经意传输装置对应的电子设备的结构示意图。
具体实施方式
17.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
18.在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在
……
时”或“当
……
时”。
19.还需要说明的是,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情
况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
20.另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
21.不经意传输以一种模糊化的方式进行信息的传递,可以有效的保护信息持有者和信息接收者的隐私,由于不经意传输的特点,使得越来越多的领域中中开始应用不经意传输,例如隐私信息恢复、公平交易合同签署以及不经意安全计算等领域。
22.然而在k取1的不经意传输的过程中,由于为了实现信息接收者只获得申请获得的信息,不泄露信息持有者持有的其余信息,需要对消息持有者持有的k个信息分别进行加密处理后再进行传输,这样就需要对每个消息都进行一次加密密文的生成过程,这样不仅整个生成密文过程计算量较大,还会使得计算较为复杂,增大计算开销,也会影响消息的不经意传输效率。基于此,本发明实施例提供了解决方案,通过采用相同的第一随机数对多个待发送信息进行加密,多个待发送信息相对应的多个加密密文中的部分数据不再需要进行多次计算,可采用相同的数据,这样不仅减少了多个加密密文生成过程中的计算量、减少计算开销,还可以简化加密过程,提高消息不经意传输速度。
23.下面通过各个实施例对本方案的不经意传输方法进行详细介绍。
24.本发明实施例提供的不经意传输方法可以由一电子设备来执行,该电子设备可以是诸如pc机、笔记本电脑、智能手机等终端设备。下面分别对发送端执行的不经意传输过程进行示例性说明。
25.图1为本发明实施例提供的一种不经意传输方法的流程图。图2为本技术一示例性实施例的一种不经意传输方法的应用场景示意图;参考附图1、附图2所示,本实施例提供了一种不经意传输方法,该方法的执行主体可以为发送端设备,可以理解的是,该发送端设备可以实现为软件、或者软件和硬件的组合,具体的,如图1所示,该不经意传输方法可以包括如下步骤:步骤101、获取多个待发送信息,多个待发送信息中包括与接收端相对应的目标信息。
26.步骤102、接收接收端发送的第一公钥。
27.步骤103、基于第一公钥,生成与多个待发送信息各自对应的多个第二公钥。
28.步骤104、确定用于对多个待发送信息进行加密的第一随机数。
29.步骤105、根据第一随机数、多个第二公钥分别对多个待发送信息进行加密,获得多个待发送信息相对应的多个加密密文,多个加密密文中包括相同部分数据,相同部分数据与第一随机数相关。
30.下面对上述各个步骤进行详细说明:步骤101、获取多个待发送信息,多个待发送信息中包括与接收端相对应的目标信息。
31.在本发明实施例中,发送端作为信息持有者,在进行不经意传输之前,首先发送端需要获取多个待发送信息,并且获取到的多个待发送信息中包括与接收端相对应的目标信息。其中,多个待发送信息可以是指两个或者两个以上的待发送信息,待发送信息的具体个数可以根据实际应用情况和设计需求进行设定,并且待发送信息可以包括数据、图像、文本、音频等。
32.在一些实施例中,在获取到多个待发送信息之前,发送端设备可以确定椭圆曲线参数、椭圆曲线上的基点以及基点的多个倍点。具体的,获取椭圆曲线参数,基于椭圆曲线参数确定椭圆曲线,而后基于椭圆曲线,确定椭圆曲线上的基点。基于椭圆曲线上的基点,确定基点的多个倍点。然后将确定的椭圆曲线参数、椭圆曲线方程以及椭圆曲线上的基点、基点的多个倍点进行公开,具体的,可以将确定的椭圆曲线参数、椭圆曲线方程以及椭圆曲线上的基点、基点的多个倍点发送至对应的接收端,或者直接将确定的椭圆曲线参数、椭圆曲线方程以及椭圆曲线上的基点、基点的多个倍点存储在预设存储区域中,当接收端需要接收信息时,可以直接通过访问预设存储区域获取到具体的参数信息。
33.在另一些实施例中,在获取到多个待发送信息之前,椭圆曲线参数以及椭圆曲线上的基点等信息可以由第三方机构生成并进行公开的。具体的,第三方机构选择椭圆曲线参数,基于椭圆曲线参数确定椭圆曲线,而后基于椭圆曲线,确定椭圆曲线上的基点,并基于椭圆曲线上的基点,确定基点的多个倍点。并将确定的椭圆曲线参数、椭圆曲线方程以及椭圆曲线上的基点、基点的多个倍点发送至发送端设备和接收端设备,或者直接将确定的参数信息存储至预设存储区域,发送端设备和接收端设备可以通过访问预设存储区域,直接获得具体的参数信息。
34.具体的,假设发送端或者第三方机构选择参数q,定义包含q个元素的有限域fq,选择参数a,b∈fq,由参数a,b定义椭圆曲线方程e(fq),选择椭圆曲线方程上的基点g=,其中,即为基点g的坐标,基点g的阶为n,定义为哈希算法。另外,发送端在生成或者获取到椭圆曲线相关参数、椭圆曲线方程、以及选择的椭圆曲线上的基点坐标信息之后,可以基于基点坐标,确定基点坐标的倍点集合《g》={[1]g,[2]g,[3]g...[n]g},其中[n]g=n*g。接着从基点坐标的倍点集合《g》中选择多个倍点g1,g2...gk,其中g1,g2...gk表示为从基点坐标的倍点集合中随机选择的不重复的多个倍点。最后,发送端将上述选择的多个倍点发送至接收端,以使得接收端可以根据倍点生成对应的第一公钥。发送端或者第三方机构可以将上述椭圆曲线相关参数、椭圆曲线方程、以及选择的椭圆曲线上的基点、基点的多个倍点信息进行公开。
[0035]
步骤102、接收接收端发送的第一公钥。当接收端需要获取目标信息时,会基于目标信息所对应的目标信息标识和目标信息所对应的公钥生成第一公钥,并且将生成的第一公钥发送至发送端。
[0036]
发送端接收接收端发送的第一公钥,其中,第一公钥并不是真正的目标信息所对应的公钥信息,其隐藏了目标信息标识和目标信息所对应的公钥信息,因为在不经意传输的过程中需要保护接收端的隐私,接收端不能直接将真正的公钥信息发送至发送端,避免发送端知道接收端所需要接收的具体目标信息,因此接收端是将隐藏信息的第一公钥发送至发送端。
[0037]
步骤103、基于第一公钥,生成与多个待发送信息各自对应的多个第二公钥。
[0038]
发送端基于接收到的第一公钥计算对各个待发送信息进行加密时所使用的公钥信息,将该公钥信息定义为第二公钥。由于不经意传输的特点,不仅需要保证接收端可以获得目标信息,还需要保证发送端持有的其他信息不被泄露,那么在传输过程中需要对多个待发送信息进行加密传输。在接收到第一公钥之后,在对多个待发送信息进行加密时,基于
接收端发送的第一公钥生成与多个待发送信息各自对应的多个第二公钥,以使得接收端可以基于目标信息对应的私钥只对目标信息所对应的加密密文进行解密,实现了接收端只能获得目标信息的同时保护了其他待发送信息不被泄露。
[0039]
步骤104、确定用于对多个待发送信息进行加密的第一随机数。
[0040]
步骤105、根据第一随机数、多个第二公钥分别对多个待发送信息进行加密,获得多个待发送信息相对应的多个加密密文,多个加密密文中包括相同部分数据,相同部分数据与第一随机数相关。
[0041]
在数据传输过程中,为了保护信息的安全性,同时保证接收端只能获得目标信息,需要对发送端的多个信息分别进行加密处理后再进行传输,具体的实现过程可以为:首先确定用于对多个待发送信息进行加密的第一随机数,接着根据第一随机数、多个第二公钥分别对多个待发送信息进行加密,获得多个待发送信息相对应的多个加密密文,多个加密密文中包括相同部分数据,相同部分数据与第一随机数相关。由于生成多个待发送信息相对应的加密密文时,采用相同的第一随机数对多个待发送信息进行密文生成,即加密密文中的部分数据都基于第一随机数进行生成的,这样多个加密密文中的这部分数据将不再需要进行多次生成,只需要进行一次计算生成即可,实现了减少多个加密密文生成的计算量、降低计算开销,还可以简化多个待发送信息加密过程,从而提高了多个信息不经意传输速度。
[0042]
本技术实施例提供的不经意传输方法,基于接收到的第一公钥,生成与多个待发送信息各自对应的多个第二公钥,确定用于对多个待发送信息进行加密的第一随机数,并根据第一随机数、多个第二公钥分别对多个待发送信息进行加密,获得多个待发送信息相对应的多个加密密文,多个加密密文中包括相同部分数据,相同部分数据与所述第一随机数相关。在上述方案中通过第一随机数和多个第二公钥分别对多个待发送信息进行加密,获得多个待发送信息相对应的多个加密密文,提高了信息的安全性。同时由于采用同一随机数对多个待发送信息进行加密处理,使得多个加密密文中包括相同部分数据,不再需要对该部分数据再进行多次计算,这样不仅大大减少了多个加密密文生成的计算量、降低计算开销,还可以简化多个待发送信息加密过程,从而实现了提高信息不经意传输速度。
[0043]
图3为本技术实施例提供的生成与多个待发送信息各自对应的多个第二公钥的流程示意图;在上述实施例的基础上,参考附图3所示,本实施例提供了一种基于第一公钥,生成与多个待发送信息各自对应的多个第二公钥的实现方式。具体的,可以包括:步骤301:获取多个待发送信息各自对应的多个信息标识。
[0044]
步骤302:若信息标识为0,则将第一公钥确定为用于对与信息标识相对应的待发送信息进行加密的第二公钥。
[0045]
步骤303:若信息标识不为0,则基于多个信息标识、第一公钥、以及基点的多个倍点,生成用于对多个待发送信息进行加密的多个第二公钥。
[0046]
在生成多个待发送信息各自对应的多个第二公钥之前,首先先获取多个待发送信息各自对应的多个信息标识。发送端设备可以提前对各个待发送信息进行标识处理,生成各自对应的信息标识,也可以在获取多个待发送信息时,多个待发送信息携带有信息标识,其具体的实现方式本发明实施例中不做限定。
[0047]
获取到多个待发送信息各自对应的多个信息标识之后,判断信息标识是否为0,若
信息标识为0,则直接将第一公钥确定为用于对与信息标识相对应的待发送信息进行加密的第二公钥。若信息标识不为0,则基于信息标识、第一公钥、以及基点的多个倍点,生成用于对多个待发送信息进行加密的多个第二公钥。
[0048]
其中,基于信息标识、第一公钥、以及基点的多个倍点,生成用于对多个待发送信息进行加密的多个第二公钥的具体实现方式可以为:确定多个信息标识各自对应的的多个倍点,基于多个倍点和第一公钥,生成用于对多个待发送信息进行加密的多个第二公钥。
[0049]
在一可选实施例中,基于多个倍点和第一公钥,生成用于对多个待发送信息进行加密的多个第二公钥,可以包括:分别获取第一公钥与多个倍点之间的多个差值,基于多个差值分别确定多个第二公钥。
[0050]
具体的,假设第一公钥为pk0,发送端持有5个待发送信息,获取5个待发送信息的信息标识i分别为1、2、3、4、5,获取5个待发送信息各自对应的5个倍点,其分别为g1,g2,g3,g4,g5,并分别计算第一公钥与5个倍点之间的多个差值即pki=gi-pk0,并将多个差值确定为第二公钥。即5个待发送信息对应的第二公钥分别为pk1=g1-pk0、pk2=g2-pk0、pk3=g3-pk0、pk4=g4-pk0、pk5=g5-pk0。
[0051]
在实际应用中,也可能存在获取到的待发送信息的信息标识包含0的情况。具体的,假设第一公钥为pk0,发送端持有5个待发送信息,获取5个待发送信息的信息标识i分别为0、1、2、3、4,将信息标识为0的待发送信息所对应的第二公钥确定为第一公钥即pk0=pk0,然后获取剩余4个待发送信息各自对应的倍点,其分别为g1,g2,g3,g4,并分别计算第一公钥与4个倍点之间的多个差值即pki=gi-pk0,并将多个差值确定为第二公钥,即4个待发送信息对应的第二公钥分别为pk1=g1-pk0、pk2=g2-pk0、pk3=g3-pk0、pk4=g4-pk0。
[0052]
本发明实施例中,通过获取多个待发送信息各自对应的信息标识,判断信息标识是否为0,若信息标识为0,则将第一公钥确定为用于对与信息标识相对应的待发送信息进行加密的第二公钥,若信息标识不为0,则基于信息标识、第一公钥、以及基点的多个倍点,生成用于对多个待发送信息进行加密的多个第二公钥。通过第一公钥生成多个待发送信息对应的第二公钥,可以使得接收端可以基于目标信息对应的私钥只对目标信息所对应的加密密文进行解密,实现了接收端只能获得目标信息的同时保护了其他待发送信息不被泄露。
[0053]
图4为本技术实施例提供的获得多个待发送信息相对应的多个加密密文的流程示意图;在上述实施例的基础上,参考附图4所示,本实施例提供了一种根据第一随机数、多个第二公钥分别对多个待发送信息进行加密,获得多个待发送信息相对应的多个加密密文的实现方式。具体的,根据第一随机数、多个第二公钥分别对多个待发送信息进行加密,获得多个待发送信息相对应的多个加密密文可以包括:步骤401、基于第一随机数、以及椭圆曲线上的基点生成密文第一部分。
[0054]
步骤402、基于第一随机数、多个第二公钥、多个待发送信息分别生成多个待发送信息各自对应的密文第二部分。
[0055]
步骤403、利用哈希算法对第一随机数、多个第二公钥、多个待发送信息进行处理,分别得到多个待发送信息各自对应的密文第三部分。
[0056]
步骤404、基于密文第一部分、多个待发送信息各自对应的密文第二部分、多个待发送信息各自对应的密文第三部分,获得多个待发送信息各自对应的加密密文。
[0057]
在确定用于对多个待发送信息进行加密的第一随机数后,根据第一随机数和多个第二公钥分别对多个待发送信息进行加密。具体的,首先基于第一随机数、以及椭圆曲线上的基点生成密文第一部分。接着基于第一随机数、多个第二公钥、多个待发送信息分别生成多个待发送信息各自对应的密文第二部分。然后利用哈希算法对第一随机数、多个第二公钥、多个待发送信息进行处理,分别得到多个待发送信息各自对应的密文第三部分。最后基于密文第一部分、多个待发送信息各自对应的密文第二部分、多个待发送信息各自对应的密文第三部分,获得多个待发送信息各自对应的加密密文。多个待发送信息都基于第一随机数、以及椭圆曲线上的基点生成密文第一部分。即多个待发送信息都采用相同的密文第一部分,因此,在对多个待发送信息进行加密,生成加密密文的过程中只需要执行一次密文第一部分的生成过程即可,这样不仅大大减少了多个加密密文生成的计算量、降低计算开销,还可以简化多个待发送信息加密过程,从而实现了提高信息不经意传输速度。
[0058]
通常一个加密密文由三部分构成,因此每个加密密文都需要分别生成密文的三个部分。而在本发明实施例中,通过使用同一个第一随机数生成密文的第一部分,不再需要分别对每个待发送信息进行加密时,生成对应的密文第一部分,只需要计算一次,接下来的多个待发送信息进行加密生成加密密文时,直接利用计算好的密文第一部分即可。
[0059]
具体的,假设发送端持有k个待发送信息,k个待发送信息分别对应的信息标识为1、2...k,每个待发送信息所对应的第二公钥为,,发送端对每一个待发送信息mi分别进行加密,生成对应的加密密文的过程可以包括:步骤1、选择一个随机数作为第一随机数r,并且第一随机数。
[0060]
步骤2、计算密文第一部分,其中g为椭圆曲线上的基点坐标。
[0061]
步骤3、令,计算,其中为对称密钥生成函数,为待发送数据mi的长度。
[0062]
步骤4、计算密文第二部分。
[0063]
步骤5、计算密文第三部分。
[0064]
步骤6、根据每个待发送信息所对应的密文第一部分、密文第二部分、密文第三部分,得到k个加密密文=。
[0065]
由上述生成加密密文的过程可知,加密密文的第一部分由第一随机数据和椭圆基点坐标g计算得到的,而在本发明实施例中采用相同的第一随机数和相同的椭圆基点坐标g,那么得到相同的密文第一部分,也就是说所有的待发送信息所对应的密文第一部分都是相同的,并且只计算一次即可,因此,可以大大减少计算量,简化计算过程。
[0066]
另外,在实际应用中,发送端获得多个待发送信息相对应的多个加密密文之后,需要将加密后的多个密文发送至接收端。因此,在上述任意一个实施例的基础上,不经意传输
方法还可以包括:将多个加密密文发送至接收端,以使得接收端基于目标信息标识对应的私钥对目标信息所对应的加密密文进行解密,以获得目标信息。
[0067]
图5为本发明一示例性实施例的一种不经意传输方法的流程示意图;参考附图5所示,本实施例提供了一种不经意传输方法,该方法的执行主体可以为接收端设备,可以理解的是,该终端设备可以实现为软件、或者软件和硬件的组合。具体的,该不经意传输方法可以包括:步骤501、获取用于进行数据传输的椭圆曲线上的基点、基点的多个倍点以及目标信息标识,目标信息标识为待接收的目标信息对应的标识。
[0068]
步骤502、随机生成一个私钥,私钥用于对目标信息进行解密。
[0069]
步骤503、基于目标信息标识、私钥以及基点的多个倍点,生成第一公钥。
[0070]
步骤504、将第一公钥发送至发送端,以使得发送端基于第一公钥和第一随机数对多个待发送信息进行加密,得到与多个待发送信息相对应的多个加密密文,多个加密密文包括相同部分数据,相同部分数据与第一随机数和椭圆曲线上的基点相关,其中,多个待发送信息中包括目标信息。
[0071]
下面对上述各个步骤进行详细说明:步骤501、获取用于进行数据传输的椭圆曲线上的基点、基点的多个倍点以及目标信息标识,目标信息标识为待接收的目标信息对应的标识。
[0072]
在本发明实施例中,椭圆曲线参数、椭圆曲线方程以及椭圆曲线上的基点坐标信息、基点的多个倍点信息都可以由发送端生成并公开的,也可以由第三方机构生成并公开的,以使得接收端可以直接获取到这些参数信息。
[0073]
在进行不经意传输时,接收端首先需要获取用于进行数据传输的椭圆曲线上的基点、基点的多个倍点以及目标信息标识。其中,目标信息标识为待接收的目标信息对应的标识,具体的可以从多个待发送信息标识中选择出待接收的目标信息标识,另外各个待发送信息所对应的标识已经确定好,接收端也可以直接获取目标信息标识,在本发明实施例中对获取目标信息标识的具体的实现方式不做限定,只要能够准确地获取到目标信息标识即可。
[0074]
步骤502、随机生成一个私钥,私钥用于对目标信息进行解密。
[0075]
步骤503、基于目标信息标识、私钥以及基点的多个倍点,生成第一公钥。
[0076]
在获取到目标信息标识之后,可以随机生成一个随机数作为私钥,其私钥用于对目标信息进行解密。接着,基于目标信息标识、私钥以及基点的多个倍点,生成第一公钥。这里的第一公钥并不是根据私钥直接计算得到用于进行加密的公钥,而是涉及得到的第一公钥,使得发送端可以根据第一公钥计算得出用于加密的公钥,而不能感知到接收端的目标信息标识的取值,从而保护了接收端的隐私,以实现不经意传输。
[0077]
具体的,基于目标信息标识、私钥以及基点的多个倍点,生成第一公钥,可以包括:步骤5031、基于私钥和椭圆曲线上的基点,生成目标信息标识对应的公钥。
[0078]
步骤5032、基于目标信息标识、基点的多个倍点以及目标信息标识对应的公钥,生成第一公钥。
[0079]
接收端根据随机生成的私钥和椭圆曲线上的基点,生成目标信息标识对应的公钥,该公钥用于对各个待发送信息进行加密,然而,为了保护接收端的隐私,不可以直接将
该公钥直接发送给发送端,这样发送端就能直接得知接收端要选择接收那条待发送信息,即可以知道目标信息标识。因此,在本发明实施例中,基于目标信息标识对应的公钥生成一个第一公钥,将第一公钥发送至发送端,使得发送端可以根据第一公钥计算出该目标信息标识对应的公钥,而不感知具体的目标信息标识的取值。
[0080]
具体的,基于目标信息标识、基点的多个倍点以及目标信息标识对应的公钥,生成第一公钥的实现方式可以包括:首先要对目标信息标识的取值进行判断,若目标信息标识为0,则将目标信息标识对应的公钥确定为第一公钥;若目标信息标识不为0,则基于目标信息标识、基点的倍点以及公钥,生成第一公钥。
[0081]
在一些实施例中,具体的基于公钥和基点的倍点,生成第一公钥,可以包括:获取公钥与基点的倍点之间的差值,基于差值,确定第一公钥。
[0082]
具体的,假设目标信息标识为,随机生成一个随机数s作为私钥,并基于私钥和椭圆基点坐标生成目标信息标识所对应的公钥。然后对目标信息标识的取值进行判断,若目标信息标识为0,则第一公钥为,若目标信息标识不为0,则第一公钥为。
[0083]
步骤504、将第一公钥发送至发送端,以使得发送端基于第一公钥和第一随机数对多个待发送信息进行加密,得到与多个待发送信息相对应的多个加密密文,多个加密密文包括相同部分数据,相同部分数据与第一随机数和椭圆曲线上的基点相关,其中,多个待发送信息中包括目标信息。
[0084]
将确定的第一公钥发送至发送端,使得发送端可以基于第一公钥和第一随机数对多个待发送信息进行加密,得到与多个待发送信息相对应的多个加密密文,多个加密密文包括相同部分数据,相同部分数据与第一随机数和椭圆曲线上的基点相关。
[0085]
发送端生成多个加密密文之后发送至接收端,以使得接收端基于目标信息标识所对应的私钥获得目标信息。因此,在一些实施例中,不经意传输方法还可以包括:接收发送端发送的多个待发送信息相对应的多个加密密文,基于私钥,对加密密文进行解密,获得目标信息。
[0086]
具体的,基于私钥对加密密文进行解密,以获得目标信息的实现方式可以包括:根据目标信息标识,从接收到的多个待发送信息中选择出目标信息标识所对应的加密密文,从接收到的多个待发送信息中选择出目标信息标识所对应的加密密文。按照sm2算法使用私钥s对加密密文进行解密,以获得目标信息,其具体的详细过程可以参照sm2加解密算法。
[0087]
综上,在本发明实施例中,通过随机生成一个私钥,私钥用于对目标信息进行解密,基于目标信息标识、私钥以及椭圆曲线上的基点,生成第一公钥,并将第一公钥发送至发送端,以使得发送端基于第一公钥和第一随机数对多个待发送信息进行加密,得到与多个待发送信息相对应的多个加密密文,多个加密密文包括相同部分数据,相同部分数据与第一随机数和椭圆曲线上的基点相关,减少了计算量并简化了整个计算过程,提高了整个不经意传输效率。
[0088]
本发明实施例提供的方案的一些步骤的具体执行过程可以参考前述其他实施例
中的相关说明,在此不赘述。
[0089]
具体应用时,在不经意传输过程中包括发送端设备和接收端设备,其具体的不经意传输方法可以包括以下步骤:步骤1、发送端获取椭圆曲线参数,基于椭圆曲线参数确定椭圆曲线,并基于椭圆曲线,确定所述椭圆曲线上的基点。
[0090]
具体的,发送端选择一个参数q,定义包含q个元素的有限域fq,选择参数a,b∈fq,由参数a,b定义椭圆曲线方程e(fq),选择椭圆曲线方程上的基点g=,其中,即为基点g的坐标,基点g的阶为n,定义为哈希算法。
[0091]
步骤2、发送端将椭圆曲线相关参数、椭圆曲线方程、以及选择的椭圆曲线上的基点、基点的多个倍点信息进行公开。
[0092]
步骤3、发送端获取多个待发送信息,多个待发送信息中包括与接收端相对应的目标信息。
[0093]
步骤4、接收端获取用于进行数据传输的椭圆曲线上的基点、基点的多个倍点以及目标信息标识。
[0094]
具体的,通过接收发送端发送的椭圆曲线相关参数、椭圆曲线方程、以及选择的椭圆曲线上的基点、基点的多个倍点信息获取到用于进行数据传输的椭圆曲线上的基点、基点的多个倍点,并从多个待发送信息标识中选择出目标信息标识。
[0095]
步骤5、接收端随机生成一个私钥,并基于私钥和椭圆曲线上的基点,生成目标信息标识对应的公钥。
[0096]
步骤6、接收端基于目标信息标识、椭圆曲线上的基点以及目标信息标识对应的公钥,生成第一公钥。
[0097]
具体的,确定目标信息标识为,随机生成一个随机数s作为私钥,并基于私钥和椭圆基点坐标生成目标信息标识所对应的公钥。然后对目标信息标识的取值进行判断,若目标信息标识为0,则第一公钥为,若目标信息标识不为0,则基于目标信息标识确定对应的基点的倍点,并基于基点的倍点和目标信息标识所对应的公钥生成对应的第一公钥,即第一公钥为。
[0098]
步骤7、接收端将第一公钥发送至发送端。
[0099]
步骤8、发送端接收接收端发送的第一公钥。
[0100]
步骤9、发送端基于第一公钥,生成与多个待发送信息各自对应的多个第二公钥。
[0101]
具体的,计算对应的多个第二公钥,若信息标识中不为0,则基于pki=gi-pk0计算第二公钥,若信息标识为0,则基于pki=pk0,计算第二公钥。
[0102]
步骤10、发送端确定用于对多个待发送信息进行加密的第一随机数。
[0103]
步骤11、发送端基于所述第一随机数、以及椭圆曲线上的基点生成密文第一部分。
[0104]
步骤12、发送端基于第一随机数、多个第二公钥、多个待发送信息分别生成多个待发送信息各自对应的密文第二部分。
[0105]
步骤13、发送端利用哈希算法对第一随机数、多个第二公钥、多个待发送信息进行处理,分别得到多个待发送信息各自对应的密文第三部分。
[0106]
步骤14、发送端基于密文第一部分、多个待发送信息各自对应的密文第二部分、多个待发送信息各自对应的密文第三部分,获得多个待发送信息各自对应的加密密文。
[0107]
具体的,随机选择一个随机数作为第一随机数r,并且第一随机数,计算密文第一部分,令,计算,计算密文第二部分,计算密文第三部分。根据每个待发送信息所对应的密文第一部分、密文第二部分、密文第三部分,得到k个加密密文=。
[0108]
步骤15、发送端将多个加密密文发送至接收端。
[0109]
步骤16、接收端接收多个加密密文,并基于目标信息标识从多个加密密文中选取目标信息所对应的加密密文,利用私钥对该加密密文进行解密,获得目标信息。
[0110]
本实施例中未展开描述的相关内容,可以参考前述实施例中的相关说明,在此不赘述。
[0111]
以下将详细描述本发明的一个或多个实施例的不经意传输装置。本领域技术人员可以理解,这些装置均可使用市售的硬件组件通过本方案所教导的步骤进行配置来构成。
[0112]
图6为本发明实施例提供的一种不经意传输装置的结构示意图,该装置位于一发送端设备,如图6所示,该装置包括:第一获取模块11、第一接收模块12、第一生成模块13、第一确定模块14、第一加密模块15。
[0113]
第一获取模块11,用于获取多个待发送信息,所述多个待发送信息中包括与接收端相对应的目标信息。
[0114]
第一接收模块12,用于接收所述接收端发送的第一公钥。
[0115]
第一生成模块13,用于基于所述第一公钥,生成与所述多个待发送信息各自对应的多个第二公钥。
[0116]
第一确定模块14,用于确定用于对所述多个待发送信息进行加密的第一随机数。
[0117]
第一加密模块15,用于根据所述第一随机数、所述多个第二公钥分别对所述多个待发送信息进行加密,获得多个待发送信息相对应的多个加密密文,所述多个加密密文中包括相同部分数据,所述相同部分数据与所述第一随机数相关。
[0118]
可选地,在第一获取模块11之前,所述装置可以包括设置模块,所述设置模块具体可以用于:获取椭圆曲线参数;基于所述椭圆曲线参数确定椭圆曲线;基于所述椭圆曲线,确定所述椭圆曲线上的基点;基于所述基点,确定所述基点的多个倍点。
[0119]
可选地,第一生成模块13具体还可以用于:获取所述多个待发送信息各自对应的多个信息标识;若信息标识为0,则将所述第一公钥确定为用于对与所述信息标识相对应的待发送信息进行加密的第二公钥;若信息标识不为0,则基于所述多个信息标识、所述第一公钥、以及所述基点的多个倍点,生成用于对多个待发送信息进行加密的多个第二公钥。
[0120]
可选地,第一生成模块13具体还可以用于:确定所述多个信息标识各自对应的的多个倍点;基于所述多个倍点和所述第一公钥,生成用于对多个待发送信息进行加密的多个第二公钥。
[0121]
可选地,第一生成模块13具体还可以用于:分别获取第一公钥与所述多个倍点之间的多个差值;基于所述多个差值分别确定多个第二公钥。
[0122]
可选地,第一加密模块15具体可以用于:基于所述第一随机数、以及所述椭圆曲线上的基点生成密文第一部分;基于所述第一随机数、所述多个第二公钥、多个待发送信息分别生成所述多个待发送信息各自对应的密文第二部分;利用哈希算法对所述第一随机数、所述多个第二公钥、所述多个待发送信息进行处理,分别得到所述多个待发送信息各自对应的密文第三部分;基于所述密文第一部分、所述多个待发送信息各自对应的密文第二部分、所述多个待发送信息各自对应的密文第三部分,获得多个待发送信息各自对应的加密密文。
[0123]
可选地,所述装置还可以包括发送模块,发送模块具体用于:将所述多个加密密文发送至所述接收端,以使得所述接收端基于目标信息标识对应的私钥对目标信息对应的加密密文进行解密,以获得所述目标信息。
[0124]
图6所示装置可以执行前述实施例中发送端设备执行的步骤,详细的执行过程和技术效果参见前述实施例中的描述,在此不再赘述。
[0125]
在一个可能的设计中,上述图6所示不经意传输装置的结构可实现为一电子设备,如图7所示,该电子设备可以包括:第一处理器21、第一存储器22、第一通信接口23。其中,第一存储器22上存储有可执行代码,当所述可执行代码被第一处理器21执行时,使第一处理器21至少可以实现如前述实施例中发送端设备执行的步骤。
[0126]
另外,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器至少可以实现如前述实施例中提供的不经意传输方法。
[0127]
图8为本发明实施例提供的一种不经意传输装置的结构示意图,该装置位于接收端设备,如图8所示,该装置包括:第二获取模块31、第二生成模块32、第二确定模块33、第二发送模块34。
[0128]
第二获取模块31,用于获取用于进行数据传输的椭圆曲线上的基点、所述基点的多个倍点以及目标信息标识,所述目标信息标识为待接收的目标信息对应的标识;第二生成模块32,用于随机生成一个私钥,所述私钥用于对所述目标信息进行解密;第二确定模块33,用于基于所述目标信息标识、所述私钥以及所述基点的多个倍点,生成第一公钥;第二发送模块34,用于将所述第一公钥发送至所述发送端,以使得所述发送端基于所述第一公钥和第一随机数对多个待发送信息进行加密,得到与所述多个待发送信息相对应的多个加密密文,所述多个加密密文包括相同部分数据,所述相同部分数据与第一随机数和所述椭圆曲线上的基点相关,其中,所述多个待发送信息中包括所述目标信息。
[0129]
可选地,所述第二确定模块33具体可以用于:基于所述私钥和所述椭圆曲线上的基点,生成所述目标信息标识对应的公钥;基于所述目标信息标识、所述基点的多个倍点以及所述目标信息标识对应的公钥,生成所述第一公钥。
[0130]
可选地,所述第二确定模块33具体可以用于:若所述目标信息标识为0,则将所述目标信息标识对应的公钥确定为第一公钥;若所述目标信息标识不为0,则基于所述目标信
息标识、所述基点的多个倍点以及所述公钥,生成第一公钥。
[0131]
可选地,所述第二确定模块33具体还可以用于:获取所述公钥与所述基点的倍点之间的差值;基于所述差值,确定第一公钥。
[0132]
可选地,所述装置还可以包括解密模块,解密模块具体可以用于:接收所述发送端发送的所述多个待发送信息相对应的多个加密密文;基于所述私钥,对所述加密密文进行解密,获得所述目标信息。
[0133]
图8所示装置可以执行前述实施例中接收端设备执行的步骤,详细的执行过程和技术效果参见前述实施例中的描述,在此不再赘述。
[0134]
在一个可能的设计中,上述图8所示不经意传输装置的结构可实现为一电子设备,如图9所示,该设备可以包括:第二处理器41、第二存储器42、第二通信接口43。其中,第二存储器42上存储有可执行代码,当所述可执行代码被第二处理器41执行时,使第二处理器41至少可以实现如前述实施例中接收端设备执行的步骤。
[0135]
另外,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被设备的处理器执行时,使所述处理器至少可以实现如前述实施例中提供的不经意传输方法。
[0136]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0137]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0138]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1