CN115378588B - 不经意传输方法、设备和存储介质 - Google Patents

不经意传输方法、设备和存储介质 Download PDF

Info

Publication number
CN115378588B
CN115378588B CN202211306888.2A CN202211306888A CN115378588B CN 115378588 B CN115378588 B CN 115378588B CN 202211306888 A CN202211306888 A CN 202211306888A CN 115378588 B CN115378588 B CN 115378588B
Authority
CN
China
Prior art keywords
information
public key
transmitted
sent
receiving end
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
CN202211306888.2A
Other languages
English (en)
Other versions
CN115378588A (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.)
Beijing Infosec Technologies Co Ltd
Original Assignee
Beijing Infosec Technologies 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 Beijing Infosec Technologies Co Ltd filed Critical Beijing Infosec Technologies Co Ltd
Priority to CN202211306888.2A priority Critical patent/CN115378588B/zh
Publication of CN115378588A publication Critical patent/CN115378588A/zh
Application granted granted Critical
Publication of CN115378588B publication Critical patent/CN115378588B/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • 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
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • 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/50Oblivious transfer

Abstract

本发明实施例提供一种不经意传输方法、设备和存储介质,所述方法包括:获取多个待发送信息;接收接收端发送的第一公钥;基于第一公钥,生成与多个待发送信息各自对应的倍点;根据与待发送信息相对应的倍点分别对待发送信息进行加密,获得多个待发送信息相对应的多个加密密文;将多个加密密文发送至接收端,以使得接收端基于目标信息标识对应的私钥对目标信息对应的加密密文进行解密,以获得目标信息。在上述方案中,通过第一公钥直接生成多个倍点,不再需要依次选取倍点,可以节省大量时间。并且通过多个倍点分别对多个待发送信息进行加密,省去了多个公钥生成过程,简化了发送端对多个待发送信息进行加密的过程,使得不经意传输过程更简单。

Description

不经意传输方法、设备和存储介质
技术领域
本发明涉及网络信息技术领域,尤其涉及一种不经意传输方法、设备和存储介质。
背景技术
不经意传输协议((Oblivious Transfer, 简称OT)是一种用于传递秘密消息的协议 ,以一种模糊化的方式传递信息,可以保护消息传递双方的隐私,是密码学中的基础协议,常用于构建其他密码协议和应用。
在实际应用中,最常用的不经意传输为K取1不经意传输。在K取1的不经意传输的过程中,信息持有者持有K个信息,信息接收者想要申请从K个信息中获取1个信息,通过双方的交互,能够使得信息接收者只获得其中的1个提前申请的想要获得的信息,并且信息持有者不知道信息接收者具体获得的信息。
然而在传统方案中,在双方进行不经意传输前,需要信息持有者在基点的多个倍点集合中选取K个倍点,而倍点的选取将耗费大量的时间,从而影响了不经意传输效率。并且双方在完成不经意传输时,信息持有者还需要基于多个倍点和信息接收者发送的公钥,生成K个公钥,并基于K个公钥分别对持有的信息进行加密处理,这样整个不经意传输过程将十分繁琐。
发明内容
本发明实施例提供一种不经意传输方法、装置、设备和存储介质,用以提高不经意传输效率。
第一方面,本发明实施例提供一种不经意传输方法,应用于发送端,该方法包括:
获取多个待发送信息,所述多个待发送信息中包括目标信息,所述目标信息为接收端待接收信息;
接收所述接收端发送的第一公钥;
基于所述第一公钥,生成与所述多个待发送信息各自对应的倍点;
根据与所述待发送信息相对应的倍点分别对待发送信息进行加密,获得多个待发送信息相对应的多个加密密文;
将所述多个加密密文发送至所述接收端,以使得所述接收端基于目标信息标识对应的私钥对目标信息对应的加密密文进行解密,以获得所述目标信息。
第二方面,本发明实施例提供一种不经意传输装置,位于发送端,该装置包括:
获取模块,用于获取多个待发送信息,所述多个待发送信息中包括目标信息,所述目标信息为接收端待接收信息;
接收模块,用于接收所述接收端发送的第一公钥;
生成模块,用于基于所述第一公钥,生成与所述多个待发送信息各自对应的倍点;
加密模块,用于根据与所述待发送信息相对应的倍点分别对待发送信息进行加密,获得多个待发送信息相对应的多个加密密文;
发送模块,用于将所述多个加密密文发送至所述接收端,以使得所述接收端基于目标信息标识对应的私钥对目标信息对应的加密密文进行解密,以获得所述目标信息。
第三方面,本发明实施例提供一种电子设备,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器至少可以实现如第一方面所述的不经意传输方法。
第四方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被管控设备的处理器执行时,使所述处理器至少可以实现如第一方面所述的不经意传输方法。
第五方面,本发明实施例提供一种不经意传输方法,应用于接收端,所述方法包括:
接收发送端发送的第二公钥;
获取与待接收的目标信息对应的目标信息标识;
随机生成一个私钥,所述私钥用于对所述目标信息进行解密;
基于所述第二公钥、所述私钥、所述目标信息标识,生成第一公钥;
将所述第一公钥发送至所述发送端,以使得所述发送端基于所述第一公钥,生成与所述多个待发送信息各自对应的多个倍点,并根据所述多个倍点分别对所述多个待发送信息进行加密,获得多个待发送信息相对应的多个加密密文;
接收所述发送端发送的所述多个待发送信息相对应的多个加密密文;
基于所述私钥,对所述加密密文进行解密,获得所述目标信息。
第六方面,本发明实施例提供一种不经意传输装置,位于接收端,所述装置包括:
第一接收模块,用于接收发送端发送的第二公钥;
获取模块,用于获取与待接收的目标信息对应的目标信息标识;
生成模块,用于随机生成一个私钥,所述私钥用于对所述目标信息进行解密;
确定模块,用于基于所述第二公钥、所述私钥、所述目标信息标识,生成第一公钥;
发送模块,用于将所述第一公钥发送至所述发送端,以使得所述发送端基于所述第一公钥,生成与所述多个待发送信息各自对应的多个倍点,并根据所述多个倍点分别对所述多个待发送信息进行加密,获得多个待发送信息相对应的多个加密密文;
第二接收模块,用于接收所述发送端发送的所述多个待发送信息相对应的多个加密密文;
解密模块,用于基于所述私钥,对所述加密密文进行解密,获得所述目标信息。
第七方面,本发明实施例提供一种电子设备,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器至少可以实现如第五方面所述的不经意传输方法。
第八方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被计算设备的处理器执行时,使所述处理器至少可以实现如第五方面所述的不经意传输方法。
本发明实施例提供的不经意传输方案可以适用于发送端和接收端,针对任一发送端,首先获取多个待发送信息,多个待发送信息中包括与接收端相对应的目标信息,接着接收接收端发送的第一公钥,并基于第一公钥,生成与多个待发送信息各自对应的倍点。然后根据与待发送信息相对应的倍点分别对待发送信息进行加密,获得多个待发送信息相对应的多个加密密文,并将多个加密密文发送至接收端,以使得接收端基于目标信息标识对应的私钥对目标信息对应的加密密文进行解密,以获得目标信息。
在上述方案中,发送端基于接收端发送的第一公钥,直接生成多个待发送信息各自对应的倍点,不再需要在基点的倍点集合中依次选取多个待发送信息各自对应的倍点,这样将节省大量的选取时间,从而提高了双方不经意传输效率。并且通过与待发送信息相对应的倍点分别对待发送信息进行加密,以获得多个待发送信息相对应的多个加密密文,不再利用公钥对多个待发送信息进行加密,省去了基于多个倍点生成多个公钥的过程,其简化了发送端对多个待发送信息进行加密的过程,使得不经意传输过程更简单,从而提高了双方不经意传输速度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图进行简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种不经意传输方法的流程图;
图2为本发明一示例性实施例的一种不经意传输方法的应用场景示意图;
图3为本发明实施例提供的生成与多个待发送信息各自对应的倍点的流程示意图;
图4为本发明实施例提供的获得多个待发送信息相对应的多个加密密文的流程示意图;
图5为本发明一示例性实施例的一种不经意传输方法的流程示意图;
图6为本发明实施例提供的一种不经意传输装置的结构示意图;
图7为与图6所示实施例提供的不经意传输装置对应的电子设备的结构示意图;
图8为本发明实施例提供的一种不经意传输装置的结构示意图;
图9为与图8所示实施例提供的不经意传输装置对应的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”。
还需要说明的是,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
不经意传输以一种模糊化的方式进行信息的传递,可以有效的保护信息持有者和信息接收者的隐私,由于不经意传输的特点,使得越来越多的领域中开始应用不经意传输,例如隐私信息恢复、公平交易合同签署以及安全多方计算等领域。
然而在K取1的不经意传输的过程中,由于为了实现信息接收者只获得申请获得的信息,不泄露信息持有者持有的其余信息,需要对消息持有者持有的K个信息进行加密处理后再进行传输。然而在对持有的K个信息进行加密时,不仅需要在基点的倍点集合中依次选取K个倍点,还需要基于选取的倍点生成K个公钥,这样整个过程将十分繁琐且会耗费大量的时间,从而影响了消息的不经意传输效率。基于此,本发明实施例提供了解决方案,不再需要依次选取多个倍点,直接基于第一公钥生成多个倍点,可以节省大量时间,从而提高了不经意传输效率。并且通过多个倍点分别对多个待发送信息进行加密,不再需要生成多个公钥,简化了发送端对多个待发送信息进行加密的过程,使得不经意传输过程更加简单。
下面通过各个实施例对本方案的不经意传输方法进行详细介绍。本发明实施例提供的不经意传输方法可以由一电子设备来执行,该电子设备可以是诸如PC机、笔记本电脑、智能手机等终端设备。下面分别对发送端执行的不经意传输过程进行示例性说明。
图1为本发明实施例提供的一种不经意传输方法的流程图。图2为本发明一示例性实施例的一种不经意传输方法的应用场景示意图;参考附图1、附图2所示,本实施例提供了一种不经意传输方法,该方法的执行主体可以为发送端设备,可以理解的是,该发送端设备可以实现为软件、或者软件和硬件的组合,具体的,如图1所示,该不经意传输方法可以包括如下步骤:
步骤101、获取多个待发送信息,多个待发送信息中包括目标信息,目标信息为接收端待接收信息。
步骤102、接收接收端发送的第一公钥。
步骤103、基于第一公钥,生成与多个待发送信息各自对应的倍点。
步骤104、根据与待发送信息相对应的倍点分别对待发送信息进行加密,获得多个待发送信息相对应的多个加密密文。
步骤105、将多个加密密文发送至接收端,以使得接收端基于目标信息标识对应的私钥对目标信息对应的加密密文进行解密,以获得目标信息。
下面对上述各个步骤进行详细说明:
步骤101、获取多个待发送信息,多个待发送信息中包括与接收端相对应的目标信息。
在本发明实施例中,发送端作为信息持有者,在进行不经意传输之前,首先发送端需要获取多个待发送信息,并且获取到的多个待发送信息中包括与接收端相对应的目标信息。其中,多个待发送信息可以是指两个或者两个以上的待发送信息,对待发送信息的个数不做限定,可以根据实际应用情况和设计需求进行设定,并且待发送信息可以包括数据、图像、文本、音频等。
在实际应用中,一般在获取到多个待发送信息之前,会进行初始化设定,例如确定椭圆曲线方程、确定椭圆曲线方程上的基点等信息。具体的,获取椭圆曲线参数,基于椭圆曲线参数确定椭圆曲线方程,再基于椭圆曲线方程,确定椭圆曲线方程上的基点。其中,本发明实施例中涉及到的椭圆曲线为SM2算法中定义的椭圆曲线,椭圆曲线参数可以由发送端选择生成并公开,也可以直接由可信第三方生成并公开。当椭圆曲线参数由发送端生成时,发送端根据椭圆曲线参数,确定椭圆曲线方程,并指定椭圆曲线方程上的基点坐标,并将椭圆曲线方程以及椭圆曲线方程上的基点等信息发送至接收端,或者直接将确定的椭圆曲线方程以及椭圆曲线上的基点信息存储在预设存储区域中,当接收端需要接收信息时,可以直接通过访问预设存储区域获取到具体的参数信息。
当椭圆曲线参数由可信第三方生成时,第三方机构选择椭圆曲线参数,基于椭圆曲线参数确定椭圆曲线方程,而后基于椭圆曲线方程,确定椭圆曲线上的基点。并将确定的椭圆曲线方程以及椭圆曲线上的基点发送至发送端设备和接收端设备,或者直接将确定的参数信息存储至预设存储区域,发送端设备和接收端设备可以通过访问预设存储区域,直接获得具体的参数信息。
具体的,在一可选实施例中,假设发送端或者第三方机构选择参数q,定义包含q个 元素的有限域Fq,选择参数a,b∈Fq,由参数a,b定义椭圆曲线方程E(Fq),选择椭圆曲线方 程上的基点G=
Figure 997296DEST_PATH_IMAGE001
,其中
Figure 445594DEST_PATH_IMAGE002
即为基点G的坐标,基点G的阶为n,定义
Figure 146703DEST_PATH_IMAGE003
为哈希算 法。发送端或者第三方机构可以将椭圆曲线方程、以及选择的椭圆曲线上的基点信息进行 公开。
步骤102、接收接收端发送的第一公钥。
发送端接收接收端发送的第一公钥,其中,第一公钥并不是真正的目标信息所对应的公钥信息,其隐藏了目标信息标识和目标信息所对应的公钥信息,因为在不经意传输的过程中需要保护接收端的隐私,接收端不能直接将真正的公钥信息发送至发送端,以避免发送端知道接收端所需要接收的具体目标信息,因此接收端是将隐藏信息的第一公钥发送至发送端。在接收到接收端发送的第一公钥后,还需要验证该第一公钥是否属于椭圆曲线方程上的基点的倍点,若不属于椭圆曲线方程上的基点的倍点,则停止接下来的操作,若是则继续执行接下来的操作。
另外,在一可选实施例中,在接收接收端发送的第一公钥之前,所述方法还包括:随机选择一个秘密值,基于秘密值,生成第二公钥,并将第二公钥发送至接收端,以使接收端基于第二公钥生成第一公钥。发送端随机从一个整数集合中选择一个整数作为秘密值,秘密值用于生成多个倍点,由于多个待发送信息所对应的加密密文是利用多个倍点得到的,也就是说基于秘密值对多个待发送信息进行加密,那么若该秘密值直接被接收端获知,接收端就可以直接基于秘密值获取到待发送信息中的任意待发送信息,因此,需要将秘密值隐藏在第二公钥中,将第二公钥发送至接收端不能直接将秘密值发送给接收端,以使得接收端基于第二公钥生成第一公钥。
步骤103、基于第一公钥,生成与多个待发送信息各自对应的倍点。
步骤104、根据与待发送信息相对应的倍点分别对待发送信息进行加密,获得多个待发送信息相对应的多个加密密文。
步骤105、将多个加密密文发送至接收端,以使得接收端基于目标信息标识对应的私钥对目标信息对应的加密密文进行解密,以获得目标信息。
在数据传输过程中,为了保护信息的安全性,同时保证接收端只能获得目标信息,需要对发送端的多个信息分别进行加密处理后再进行传输,传统的加密过程不仅要在倍点集合中随机选取多个倍点,还要基于多个倍点分别生成与多个待发送信息各自对应的加密公钥,基于加密公钥对待发送信息分别进行加密。这样将重复进行多次选取倍点和多次生成公钥的操作,从而使得整个不经意传输过程十分复杂。
为了简化不经意传输过程,不再选取多个倍点信息,并基于多个倍点生成多个加密公钥的过程,直接基于倍点对多个待发送信息进行加密。具体的,基于接收到的第一公钥计算对各个待发送信息进行加密时所使用的倍点信息。由于不经意传输的特点,不仅需要保证接收端可以获得目标信息,还需要保证发送端持有的其他信息不被泄露,即接收端只能对选择的待接收信息进行解密。因此,需要使得发送端根据接收端发送的第一公钥计算得出的被选择的那条待发送信息所对应的倍点为目标信息所对应的公钥以及秘密值的乘积,这样就可以使得接收端基于目标信息所对应的私钥只获取到选择的那条待发送信息。
其中,第一公钥是接收端基于第二公钥、目标信息标识、目标信息所对应的公钥生成的,也就是说第一公钥不仅隐藏了目标信息标识,还隐藏了目标信息所对应的公钥,使得发送端无法得知接收端选择的是哪条待发送信息,并且无论接收端选择了哪一条待发送信息,发送端根据接收端发送的第一公钥计算得出的被选择的那条待发送信息所对应的倍点均为目标公钥以及秘密值的乘积,这样基于倍点对多个待发送信息进行加密时,可以使得接收端基于目标信息所对应的私钥只获取到选择的那条待发送信息。
在一可选实施例中,具体的可以采用SM2加密算法,基于多个倍点分别对多个待发送信息进行加密,以得到多个加密密文。具体的,发送端基于接收到的第一公钥确定各个待发送信息进行加密时所使用的倍点信息后,根据与待发送信息相对应的倍点分别对待发送信息进行加密,获得多个待发送信息相对应的多个加密密文,并将多个加密密文发送至接收端,以使得接收端基于目标信息标识对应的私钥对目标信息对应的加密密文进行解密,以获得目标信息,实现了接收端只能获得目标信息的同时保护了其他待发送信息不被泄露。通过这种方法不仅可以实现了不经意传输,还可以简化多个待发送信息加密过程,从而简化不经意传输过程,使得多个信息不经意传输速度得到提高。
本发明实施例提供的不经意传输方法,通过获取多个待发送信息,多个待发送信息中包括与接收端相对应的目标信息,接收接收端发送的第一公钥,并基于第一公钥,生成与多个待发送信息各自对应的倍点。然后根据与待发送信息相对应的倍点分别对待发送信息进行加密,获得多个待发送信息相对应的多个加密密文,并将多个加密密文发送至接收端,以使得接收端基于目标信息标识对应的私钥对目标信息对应的加密密文进行解密,以获得目标信息。上述方案通过接收端发送的第一公钥,直接生成多个待发送信息各自对应的倍点,不仅保证了接收端基于目标信息所对应的私钥只能获取到选择的那条待发送信息,同时发送端也不能感知到接收端获取的是那条待发送信息,即实现了不经意传输。并且直接生成多个待发送信息各自对应的倍点,就不再需要在基点的倍点集合中依次选取多个待发送信息各自对应的倍点,这样可以节省大量的选取时间,从而提高了双方不经意传输效率。另外在本发明实施例中,直接根据与待发送信息相对应的倍点分别对待发送信息进行加密,省去了基于多个倍点生成多个公钥的过程,实现了简化发送端对多个待发送信息进行加密的过程,使得不经意传输过程更简单,从而提高了双方不经意传输效率。
图3为本发明实施例提供的生成与多个待发送信息各自对应的倍点的流程示意图;在上述实施例的基础上,参考附图3所示,本实施例提供了一种基于第一公钥,生成与多个待发送信息各自对应的倍点的实现方式。具体的,可以包括:
步骤301:获取多个待发送信息各自对应的信息标识。
步骤302:基于信息标识、第一公钥、秘密值以及第二公钥,生成与多个待发送信息各自对应的倍点。
在接收到发送端发送的第一公钥后,基于第一公钥生成与多个待发送信息各自对应的倍点。具体的,在生成多个待发送信息各自对应的倍点之前,首先先获取多个待发送信息各自对应的多个信息标识。发送端设备可以提前对各个待发送信息进行标识处理,生成各自对应的信息标识,也可以在获取多个待发送信息时,多个待发送信息携带有信息标识,其具体的实现方式本发明实施例中不做限定。
获取到多个待发送信息各自对应的多个信息标识之后,基于信息标识、第一公钥、秘密值以及第二公钥,生成与多个待发送信息各自对应的倍点。由于第一公钥是基于第二公钥、目标信息标识、目标信息所对应的公钥生成的,那么基于信息标识、第一公钥、秘密值以及第二公钥,生成与多个待发送信息各自对应的倍点时,就可以使得待发送的目标信息所对应的倍点包含接收端要获取的目标信息所对应的公钥,这样基于倍点对待发送信息进行加密后,可以使得接收端基于目标信息所对应的私钥进行加密,以获得目标信息。
具体的,在一可选实施例中,基于信息标识、第一公钥、秘密值以及第二公钥,生成与多个待发送信息各自对应的倍点的实现方式可以为:
步骤3021、获取秘密值与第一公钥的第一乘积值、以及秘密值与第二公钥的第二乘积值。
步骤3022、根据第一乘积值、第二乘积值和多个信息标识,生成与多个待发送信息各自对应的倍点。
获取秘密值与第一公钥的第一乘积值、以及秘密值与第二公钥的第二乘积值。其中,秘密值相当于发送端的一个私钥,可以是随机从整数集合中选取的任意一个整数,那么基于秘密值生成的第二公钥相当于和秘密值是一对公私钥对。接着,根据第一乘积值、第二乘积值和多个信息标识,生成与多个待发送信息各自对应的倍点。
在一可选实施例中,根据第一乘积值、第二乘积值和多个信息标识,生成与多个待发送信息各自对应的倍点可以包括:分别获取第二乘积值与多个信息标识的多个乘积值,根据多个乘积值和第一乘积值,生成与多个待发送信息各自对应的多个倍点。
具体的,假设第一公钥为R,第二公钥为S,秘密值为y,发送端持有5个待发送信息,获取5个待发送信息的信息标识i分别为1、2、3、4、5,获取秘密值与第一公钥的第一乘积值为yR,获取秘密值与第二公钥的第二乘积值为yS,分别确定各个信息标识与第二乘积值的第三乘积值为:yS、2yS、3yS、4yS、5yS。最后分别确定第一乘积值与各个第三乘积的差值为:yR-yS、yR-2yS、yR-3yS、yR-4yS、yR-5yS,并将各个差值确定为多个待发送信息各自对应的倍点。即5个待发送信息对应的倍点Gi分别为G1=yR-yS、G2=yR-2yS、G3=yR-3yS、G4=yR-4yS、G5=yR-5yS。
由于第一公钥R是基于第二公钥、接收端目标信息所对应的私钥、目标信息标识生成的。具体的,假设接收端对应的私钥为x,第二公钥为S,目标信息标识为4,椭圆曲线方程上的基点为G。获取第二公钥与目标信息标识的乘积值为4S,确定私钥与基点的第二乘积值为xG,其第二乘积值是基于目标信息所对应的私钥生成的,即第二乘积值为目标信息所对应的公钥Pk=xG,与接收端目标信息所对应的私钥为一对公私钥对。获取第一乘积值与所述第二乘积值的和值为4S+xG,将第一乘积值与第二乘积值的和值确定为第一公钥,即第一公钥R=4S+xG。将第一公钥代入5个待发送信息对应的倍点Gi中可以得到各个倍点为G1=4yS+xyG-yS、G2=4yS+xyG-2yS、G3=4yS+xyG-3yS、G4=4yS+xyG-4yS=xyG、G5=4yS+xyG-5yS。由此可知,只有目标信息所对应的倍点为G4=xyG=yPk,即发送端基于接收端发送的第一公钥获取到的倍点只有目标信息所对应的倍点包含接收端目标信息所对应的公钥,这样就可以使得接收端基于目标信息所对应的私钥只获取到目标信息。
本发明实施例中,通过信息标识、第一公钥、秘密值以及第二公钥,生成与多个待发送信息各自对应的倍点,这样生成的倍点可以使得接收端基于目标信息对应的私钥只能对目标信息所对应的加密密文进行解密,实现了接收端只能获得目标信息的同时保护了其他待发送信息不被泄露。
图4为本发明实施例提供的获得多个待发送信息相对应的多个加密密文的流程示意图;在上述实施例的基础上,参考附图4所示,本实施例提供了一种根据与待发送信息相对应的倍点分别对多个待发送信息进行加密,获得多个待发送信息相对应的多个加密密文的实现方式。具体的,可以包括:
步骤401、基于第二公钥生成密文第一部分。
步骤402、基于多个倍点、多个待发送信息分别生成多个待发送信息各自对应的密文第二部分。
步骤403、利用哈希算法对多个倍点、多个待发送信息进行处理,分别得到多个待发送信息各自对应的密文第三部分。
步骤404、基于密文第一部分、多个待发送信息各自对应的密文第二部分、多个待发送信息各自对应的密文第三部分,获得多个待发送信息各自对应的加密密文。
在获得各个待发送信息所对应的倍点后,可以利用SM2加密算法和多个倍点对多个待发送信息进行加密。通常一个加密密文由三部分构成,因此每个加密密文都需要分别生成密文的三个部分。首先基于第二公钥生成密文第一部分,即多个待发送信息都采用相同的密文第一部分,不再需要分别生成每个待发送信息对应的密文第一部分,只需要计算一次,因此,在对多个待发送信息进行加密,生成加密密文的过程中只需要执行一次密文第一部分的生成过程即可,这样不仅大大减少了多个加密密文生成的计算量、降低计算开销,还可以简化多个待发送信息加密过程,从而实现了提高信息不经意传输速度。
在生成密文的第一部分后,基于多个倍点、多个待发送信息分别生成多个待发送信息各自对应的密文第二部分。在计算各个待发送信息所对应的密文第二部分时,不再需要生成多个加密公钥,直接根据与待发送信息相对应的倍点分别作为密钥派生函数的输入,简化了加密过程。具体的,密文第二部分为实际密文值,将与待发送信息相对应的倍点作为椭圆曲线上的点,并将倍点作为密钥派生函数的输入,得的密钥数据,基于密钥数据对待处理信息进行处理,以得到密文第二部分。
在一可选实施例中,基于多个倍点、多个待发送信息分别生成多个待发送信息各自对应的密文第二部分的具体实现方式可以包括:将多个倍点作为密钥派生函数的输入,得到多个密钥数据,基于多个密钥数据分别对多个待发送信息进行处理,得到多个待发送信息各自对应的密文第二部分。
具体的,假设发送端持有k个待发送信息,k个待发送信息分别对应的信息标识
Figure 73071DEST_PATH_IMAGE004
为 1、2...k,每个待发送信息所对应的倍点为
Figure 621864DEST_PATH_IMAGE005
S,发送端对每一个待发送信息Mi分别进 行加密,首先令
Figure 850851DEST_PATH_IMAGE006
,接着将倍点作为密钥派生函数的输入,根据
Figure 914622DEST_PATH_IMAGE007
, 计算得到密钥数据
Figure 270779DEST_PATH_IMAGE008
,其中
Figure 674079DEST_PATH_IMAGE009
为对称密钥生成函数,
Figure 198601DEST_PATH_IMAGE010
为待发送数据Mi的长度。最后,根 据
Figure 625034DEST_PATH_IMAGE011
计算,得到待发送信息Mi所对应的密文第二部分
Figure 96467DEST_PATH_IMAGE012
然后,计算各个待发送信息所对应的密文第三部分,利用哈希算法对多个倍点、多个待发送信息进行处理,分别得到多个待发送信息各自对应的密文第三部分。密文第三部分是一个哈希值,用于在解密是校验解密结果是否正确。
具体的,假设发送端持有k个待发送信息,k个待发送信息分别对应的信息标识
Figure 151010DEST_PATH_IMAGE004
为 1、2...k,每个待发送信息所对应的倍点为
Figure 502226DEST_PATH_IMAGE005
S,发送端对每一个待发送信息Mi分 别进行加密,令
Figure 478272DEST_PATH_IMAGE006
,根据
Figure 284554DEST_PATH_IMAGE013
计算得到待发送信息Mi所对应的 密文第三部分,其中
Figure 334550DEST_PATH_IMAGE014
表示哈希算法。
最后,根据各个待发送信息生成的密文第一部分、密文第二部分、密文第三部分获得多个待发送信息各自对应的加密密文。
由上述生成加密密文的过程可知,加密密文的第一部分由第二公钥计算得到的,所有的待发送信息所对应的密文第一部分都是相同的,并且只计算一次即可,因此,可以大大减少计算量,简化计算过程。并且加密密文的第二部分直接由多个待发送信息所对应的倍点作为密钥派生函数的输入,不再生成多个加密公钥,基于多个加密公钥间接计算出密钥派生函数的输入,简化了加密密文第二部分的计算过程,使得加密过程得到简化,从而可以提高双方不经意传输效率。
在实际应用中,发送端获得多个待发送信息相对应的多个加密密文之后,需要将加密后的多个密文发送至接收端,以使得接收端基于目标信息标识对应的私钥对目标信息所对应的加密密文进行解密,以获得目标信息。
图5为本发明一示例性实施例的一种不经意传输方法的流程示意图;参考附图5所示,本实施例提供了一种不经意传输方法,该方法的执行主体可以为接收端设备,可以理解的是,该终端设备可以实现为软件、或者软件和硬件的组合。具体的,该不经意传输方法可以包括:
步骤501、接收发送端发送的第二公钥。
步骤502、获取与待接收的目标信息对应的目标信息标识。
步骤503、随机生成一个私钥,私钥用于对目标信息进行解密。
步骤504、基于第二公钥、私钥、目标信息标识,生成第一公钥。
步骤505、将第一公钥发送至发送端,以使得发送端基于第一公钥,生成与多个待发送信息各自对应的多个倍点,并根据多个倍点分别对多个待发送信息进行加密,获得多个待发送信息相对应的多个加密密文。
步骤506、接收发送端发送的多个待发送信息相对应的多个加密密文。
步骤507、基于私钥,对加密密文进行解密,获得目标信息。
在进行不经意传输时,接收端首先需要获取目标信息标识以及发送端发送的第二公钥。其中,目标信息标识为待接收的目标信息对应的标识,具体的可以从多个待发送信息标识中选择出待接收的目标信息标识,另外各个待发送信息所对应的标识已经确定好,接收端也可以直接获取目标信息标识,在本发明实施例中对获取目标信息标识的具体的实现方式不做限定,只要能够准确地获取到目标信息标识即可。第二公钥是发送端的一个公钥,由于接收端不能直接将目标信息标识和目标信息所对应的公钥直接发送给发送端,这样发送端就可以通过目标信息标识或者目标信息所对应的公钥直接确定接收端所要选择的目标信息。因此,需要接收发送端发送的第二公钥,基于第二公钥对目标信息和目标信息所对应的公钥进行隐藏,使得发送端无法获知目标信息标识和目标信息所对应的公钥。
在获取到目标信息标识之后,可以随机生成一个随机数作为私钥,其私钥用于对目标信息进行解密。接着,基于第二公钥、私钥、目标信息标识,生成第一公钥。这里的第一公钥并不是根据私钥直接计算得到公钥,而这里的第一公钥包含了私钥所对应的公钥和目标信息标识,使得发送端可以根据第一公钥计算得出用于目标信息所对应的公钥,而不能感知到接收端的目标信息标识的取值,从而保护了接收端的隐私,以实现不经意传输。
在一可选实施例中,基于第二公钥、私钥、目标信息标识,生成第一公钥的具体实现方式可以为:获取第二公钥与目标信息标识的第一乘积值,获取用于数据传输的椭圆曲线方程上的基点,确定私钥与基点的第二乘积值,将第一乘积值与第二乘积值的和值确定为第一公钥。私钥与基点的第二乘积值相当于目标信息所对应的公钥,这里为了便于计算称其为第二乘积值。然而,为了保护接收端的隐私,不可以直接将该公钥直接发送给发送端,这样发送端就能直接得知接收端所选择接收的是哪条待发送信息,因此,在本发明实施例中,基于目标信息对应的公钥生成一个第一公钥,将第一公钥发送至发送端,使得发送端可以根据第一公钥计算出该目标信息标识对应的公钥,而不感知具体的目标信息标识的取值。
具体的,假设第二公钥为S,目标信息标识为
Figure 466454DEST_PATH_IMAGE015
,椭圆曲线方程上的基点为G,目标 信息所对应的私钥为x。获取目标信息标识与第二公钥的第一乘积值为
Figure 929797DEST_PATH_IMAGE015
S,接着获取私钥 与基点的第二乘积值xG,并确定私钥与基点的第二乘积值为目标信息所对应的公钥即pk0= xG。最后,获取第一乘积值与第二乘积值的和值为
Figure 162938DEST_PATH_IMAGE016
S+xG,并将第一乘积值与第二乘积值的 和值确定为第一公钥R,即R=
Figure 457653DEST_PATH_IMAGE015
S+xG=
Figure 963721DEST_PATH_IMAGE015
S+pk0。
在生成第一公钥后,将第一公钥发送至发送端,以使得发送端基于第一公钥,生成与多个待发送信息各自对应的多个倍点,并根据多个倍点分别对多个待发送信息进行加密,获得多个待发送信息相对应的多个加密密文。接收发送端发送的多个待发送信息相对应的多个加密密文,并基于私钥,对加密密文进行解密,获得目标信息。接收端接收到多个加密密文后,只能对目标信息所对应的加密密文进行解密,以实现双方的不经意传输。
具体的,基于私钥对加密密文进行解密,以获得目标信息的实现方式可以包括:根 据目标信息标识
Figure 586464DEST_PATH_IMAGE016
,从接收到的多个待发送信息中选择出目标信息标识所对应的加密密文
Figure 127DEST_PATH_IMAGE017
Figure 8403DEST_PATH_IMAGE018
。按照SM2算法使用私钥s对加密密文进行解密,以获得目标信息。
在一可选实施例中,具体的发送端按照SM2算法使用私钥x对加密密文
Figure 685372DEST_PATH_IMAGE019
进行解 密,以获得目标信息可以包括:步骤1、从加密密文
Figure 920045DEST_PATH_IMAGE019
中取出
Figure 747186DEST_PATH_IMAGE020
,将
Figure 954177DEST_PATH_IMAGE020
的数据类型转换为椭圆 曲线上的点。
步骤2、验证
Figure 598785DEST_PATH_IMAGE020
是否满足椭圆曲线方程。
步骤3、如果
Figure 946852DEST_PATH_IMAGE020
满足椭圆曲线方程,则计算椭圆曲线点S=[h]
Figure 905581DEST_PATH_IMAGE020
,若S是无穷远点,则 报错并退出。
步骤4、计算[x]
Figure 498236DEST_PATH_IMAGE020
=(x2,y2),将坐标x2,y2的数据类型转换为比特串,其中x为目标 信息所对应的私钥。
步骤5、计算
Figure 454691DEST_PATH_IMAGE021
,若t为全0比特串,则报错并退出。
步骤6、取出
Figure 601638DEST_PATH_IMAGE022
,计算M′σ=
Figure 160795DEST_PATH_IMAGE023
步骤7、计算u=Hash(x2||M′σ||y2)。
步骤8、判断u是否等于
Figure 263750DEST_PATH_IMAGE024
,如果是,则输出M′σ,否则,报错并退出,其中M′σ即为解 密后的接收端选择的目标信息Mσ。
综上,在本发明实施例中,通过接收发送端发送的第二公钥,获取与待接收的目标信息对应的目标信息标识,随机生成一个私钥,私钥用于对目标信息进行解密。基于第二公钥、私钥、目标信息标识,生成第一公钥,将第一公钥发送至发送端,以使得发送端基于第一公钥,生成与多个待发送信息各自对应的多个倍点,并根据多个倍点分别对多个待发送信息进行加密,获得多个待发送信息相对应的多个加密密文。接收发送端发送的多个待发送信息相对应的多个加密密文,基于私钥,对加密密文进行解密,获得目标信息,不仅保证了接收端基于目标信息所对应的私钥只能获取到选择的那条待发送信息,同时发送端也不能感知到接收端获取的是哪条待发送信息,即实现了不经意传输。并且直接根据与待发送信息相对应的倍点分别对待发送信息进行加密,减少了计算量,实现了简化发送端对多个待发送信息进行加密的过程使得不经意传输过程更简单,从而提高了双方不经意传输效率。
本发明实施例提供的方案的一些步骤的具体执行过程可以参考前述其他实施例中的相关说明,在此不赘述。
具体应用时,在不经意传输过程中包括发送端设备和接收端设备,其具体的不经意传输方法可以包括以下步骤:
步骤1、发送端获取椭圆曲线参数,基于椭圆曲线参数确定椭圆曲线方程,并基于椭圆曲线方程,确定所述椭圆曲线方程上的基点。
具体的,发送端选择一个参数q,定义包含q个元素的有限域Fq,选择参数a,b∈Fq, 由参数a,b定义椭圆曲线方程E(Fq),选择椭圆曲线方程上的基点G=
Figure 984581DEST_PATH_IMAGE025
,其中,
Figure 618825DEST_PATH_IMAGE026
即为基点G的坐标,基点G的阶为n,定义
Figure 591460DEST_PATH_IMAGE027
为哈希算法。
步骤2、发送端将椭圆曲线相关参数、椭圆曲线方程、以及选择的椭圆曲线方程上的基点进行公开。
步骤3、接收端获取用于进行数据传输的椭圆曲线方程、椭圆曲线上的基点。
具体的,通过接收发送端发送的椭圆曲线相关参数、椭圆曲线方程、以及选择的椭圆曲线方程上的基点,获取到椭圆曲线方程、椭圆曲线上的基点。
步骤4、发送端获取多个待发送信息以及多个待发送信息各自对应的信息标识,多个待发送信息中包括与接收端相对应的目标信息。
步骤5、发送端随机生成一个秘密值,并基于秘密值和椭圆曲线上的基点,生成第二公钥。
具体的,随机选择从整数集合中选取一个数作为秘密值
Figure 689866DEST_PATH_IMAGE028
,计算第二公钥S= yG。
步骤6、接收端接收发送端发送的第二公钥。
步骤7、接收端获取与待接收的目标信息对应的目标信息标识。
具体的,接收端从多个信息标识0,1,2...k-1中选出目标信息所对应的目标信息 标识
Figure 204767DEST_PATH_IMAGE029
,即目标信息标识为0,1,2...k-1中一个。
步骤8、接收端随机生成一个私钥,私钥用于对目标信息进行解密。
步骤9、接收端基于第二公钥、私钥、目标信息标识,生成第一公钥,并将第一公钥发送至发送端。
具体的,接收发送端发送的第二公钥S,验证第二公钥是否为基点的倍点。若不成 立,则退出运算。若满足
Figure 326307DEST_PATH_IMAGE030
,则随机选择一个整数作为私钥x,且
Figure 899371DEST_PATH_IMAGE031
。接着根据
Figure 524387DEST_PATH_IMAGE032
,计算第一公钥R。
步骤10、发送端接收接收端发送的第一公钥。
步骤11、发送端基于信息标识、第一公钥、秘密值以及第二公钥,生成与多个待发送信息各自对应的倍点。
具体的,接收到接收端发送的第一公钥R,并验证第一公钥R是否为基点的倍点。若 不成立,则退出运算。若
Figure 852600DEST_PATH_IMAGE033
成立,则根据
Figure 382808DEST_PATH_IMAGE034
,计算各个待发 送信息各自对应的倍点
Figure 87459DEST_PATH_IMAGE035
。由于
Figure 832561DEST_PATH_IMAGE032
,对于目标信息所对应的倍点
Figure 207041DEST_PATH_IMAGE036
=
Figure 99911DEST_PATH_IMAGE037
。即无论接收端选择哪个待发送信息为目标信息,发送端基于第一公钥计算得到的目标 信息所对应的倍点都为
Figure 545936DEST_PATH_IMAGE037
,这样可以使得接收端只获取到目标信息且发送端无法感知接 收端获取了哪条待发送信息。
步骤12、发送端根据与待发送信息相对应的倍点分别对待发送信息进行加密,获得多个待发送信息相对应的多个加密密文。
具体的,所有的待发送信息的密文第一部分采取相同的第二公钥S,即
Figure 568381DEST_PATH_IMAGE038
。令
Figure 503976DEST_PATH_IMAGE039
,计算
Figure 493928DEST_PATH_IMAGE040
。再根据
Figure 478065DEST_PATH_IMAGE041
,计算得到各个待发送信息所 对应的密文第二部分
Figure 994497DEST_PATH_IMAGE012
。最后根据
Figure 225627DEST_PATH_IMAGE042
,计算各个待发送信息所对应 的密文第三部分
Figure 30772DEST_PATH_IMAGE043
。根据每个待发送信息所对应的密文第一部分、密文第二部分、密文第 三部分,得到k个加密密文
Figure 615337DEST_PATH_IMAGE044
=
Figure 127221DEST_PATH_IMAGE045
步骤13、发送端将多个加密密文发送至接收端。
具体的,将多个加密密文
Figure 342302DEST_PATH_IMAGE046
发送给接收端。
步骤14、接收端接收多个加密密文,并基于目标信息标识从多个加密密文中选取目标信息所对应的加密密文,利用私钥对该加密密文进行解密,获得目标信息。
具体的,利用SM2解密算法和私钥对目标信息标识所对应的加密密文进行解密,以获得目标信息,其详细的解密过程参考SM2解密算法。
本实施例中未展开描述的相关内容,可以参考前述实施例中的相关说明,在此不赘述。
以下将详细描述本发明的一个或多个实施例的不经意传输装置。本领域技术人员可以理解,这些装置均可使用市售的硬件组件通过本方案所教导的步骤进行配置来构成。
图6为本发明实施例提供的一种不经意传输装置的结构示意图,该装置位于发送端,如图6所示,该装置包括:获取模块11、接收模块12、生成模块13、加密模块14、发送模块15。
获取模块11,用于获取多个待发送信息,所述多个待发送信息中包括目标信息,所述目标信息为接收端待接收信息;
接收模块12,用于接收所述接收端发送的第一公钥;
生成模块13,用于基于所述第一公钥,生成与所述多个待发送信息各自对应的倍点;
加密模块14,用于根据与所述待发送信息相对应的倍点分别对待发送信息进行加密,获得多个待发送信息相对应的多个加密密文;
发送模块15,用于将所述多个加密密文发送至所述接收端,以使得所述接收端基于目标信息标识对应的私钥对目标信息对应的加密密文进行解密,以获得所述目标信息。
可选地,所述装置还可以包括确定模块,用于获取椭圆曲线参数;基于所述椭圆曲线参数确定椭圆曲线方程;基于所述椭圆曲线方程,确定所述椭圆曲线方程上的基点;将所述基点发送至接收端,以使所述接收端基于所述基点生成第一公钥。
可选地,所述装置还可以包括选择模块,用于随机选择一个秘密值;基于所述秘密值,生成第二公钥;将所述第二公钥发送至所述接收端,以使所述接收端基于第二公钥生成第一公钥。
可选地,所述生成模块13具体可以用于:获取所述多个待发送信息各自对应的信息标识;基于所述信息标识、所述第一公钥、所述秘密值以及所述第二公钥,生成与所述多个待发送信息各自对应的倍点。
可选地,所述生成模块13具体可以用于:获取所述秘密值与所述第一公钥的第一乘积值、以及所述秘密值与所述第二公钥的第二乘积值;根据所述第一乘积值、所述第二乘积值和所述多个信息标识,生成与所述多个待发送信息各自对应的倍点。
可选地,所述生成模块13具体还可以用于:分别获取所述第二乘积值与所述多个信息标识的多个乘积值;根据所述多个乘积值和所述第一乘积值,生成与所述多个待发送信息各自对应的多个倍点。
可选地,所述加密模块14具体可以用于:基于第二公钥生成密文第一部分;基于所述多个倍点、所述多个待发送信息分别生成所述多个待发送信息各自对应的密文第二部分;利用哈希算法对所述多个倍点、所述多个待发送信息进行处理,分别得到所述多个待发送信息各自对应的密文第三部分;基于所述密文第一部分、所述多个待发送信息各自对应的密文第二部分、所述多个待发送信息各自对应的密文第三部分,获得所述多个待发送信息各自对应的加密密文。
可选地,所述加密模块14还具体可以用于:将所述多个倍点作为密钥派生函数的输入,得到多个密钥数据;基于所述多个密钥数据分别对所述多个待发送信息进行处理,得到所述多个待发送信息各自对应的密文第二部分。
图6所示装置可以执行前述实施例中发送端设备执行的步骤,详细的执行过程和技术效果参见前述实施例中的描述,在此不再赘述。
在一个可能的设计中,上述图6所示不经意传输装置的结构可实现为一电子设备,如图7所示,该电子设备可以包括:第一处理器21、第一存储器22、第一通信接口23。其中,第一存储器22上存储有可执行代码,当所述可执行代码被第一处理器21执行时,使第一处理器21至少可以实现如前述实施例中发送端设备执行的步骤。
另外,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器至少可以实现如前述实施例中提供的不经意传输方法。
图8为本发明实施例提供的一种不经意传输装置的结构示意图,该装置位于接收端设备,如图8所示,该装置包括:第一接收模块31、获取模块32、生成模块33、确定模块34、发送模块35、第二接收模块36、解密模块37。
第一接收模块31,用于接收发送端发送的第二公钥;
获取模块32,用于获取与待接收的目标信息对应的目标信息标识;
生成模块33,用于随机生成一个私钥,所述私钥用于对所述目标信息进行解密;
确定模块34,用于基于所述第二公钥、所述私钥、所述目标信息标识,生成第一公钥;
发送模块35,用于将所述第一公钥发送至所述发送端,以使得所述发送端基于所述第一公钥,生成与所述多个待发送信息各自对应的多个倍点,并根据所述多个倍点分别对所述多个待发送信息进行加密,获得多个待发送信息相对应的多个加密密文;
第二接收模块36,用于接收所述发送端发送的所述多个待发送信息相对应的多个加密密文;
解密模块37,用于基于所述私钥,对所述加密密文进行解密,获得所述目标信息。
可选地,所述确定模块34具体可以用于:获取所述第二公钥与所述目标信息标识的第一乘积值;获取用于数据传输的椭圆曲线方程上的基点;确定所述私钥与所述基点的第二乘积值;将所述第一乘积值与所述第二乘积值的和值确定为第一公钥。
图8所示装置可以执行前述实施例中接收端设备执行的步骤,详细的执行过程和技术效果参见前述实施例中的描述,在此不再赘述。
在一个可能的设计中,上述图8所示不经意传输装置的结构可实现为一电子设备,如图9所示,该设备可以包括:第二处理器41、第二存储器42、第二通信接口43。其中,第二存储器42上存储有可执行代码,当所述可执行代码被第二处理器41执行时,使第二处理器41至少可以实现如前述实施例中接收端设备执行的步骤。
另外,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被设备的处理器执行时,使所述处理器至少可以实现如前述实施例中提供的不经意传输方法。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种不经意传输方法,其特征在于,应用于发送端,包括:
获取多个待发送信息,所述多个待发送信息中包括目标信息,所述目标信息为接收端待接收信息;
随机选择一个秘密值;
基于所述秘密值,生成第二公钥;
将所述第二公钥发送至所述接收端,以使所述接收端基于第二公钥生成第一公钥;
接收所述接收端发送的第一公钥;
获取所述多个待发送信息各自对应的信息标识;
基于所述信息标识、所述第一公钥、所述秘密值以及所述第二公钥,生成与所述多个待发送信息各自对应的倍点;
根据与所述待发送信息相对应的倍点分别对待发送信息进行加密,获得多个待发送信息相对应的多个加密密文;
将所述多个加密密文发送至所述接收端,以使得所述接收端基于目标信息标识对应的私钥对目标信息对应的加密密文进行解密,以获得所述目标信息。
2.根据权利要求1所述的方法,其特征在于,所述获取多个待发送信息之前,还包括:
获取椭圆曲线参数;
基于所述椭圆曲线参数确定椭圆曲线方程;
基于所述椭圆曲线方程,确定所述椭圆曲线方程上的基点;
将所述基点发送至接收端,以使所述接收端基于所述基点生成第一公钥。
3.根据权利要求1所述的方法,其特征在于,所述基于所述多个信息标识、所述第一公钥、所述秘密值以及所述第二公钥,生成与所述多个待发送信息各自对应的倍点,包括:
获取所述秘密值与所述第一公钥的第一乘积值、以及所述秘密值与所述第二公钥的第二乘积值;
根据所述第一乘积值、所述第二乘积值和所述多个信息标识,生成与所述多个待发送信息各自对应的倍点。
4.根据权利要求3所述的方法,其特征在于,所述根据所述第一乘积值、所述第二乘积值和所述多个信息标识,生成与所述多个待发送信息各自对应的倍点,包括:
分别获取所述第二乘积值与所述多个信息标识的多个乘积值;
根据所述多个乘积值和所述第一乘积值,生成与所述多个待发送信息各自对应的多个倍点。
5.根据权利要求3-4中任意一项所述的方法,其特征在于,所述根据与所述待发送信息相对应的倍点分别对所述多个待发送信息进行加密,获得多个待发送信息相对应的多个加密密文,包括:
基于第二公钥生成密文第一部分;
基于所述多个倍点、所述多个待发送信息分别生成所述多个待发送信息各自对应的密文
第二部分;
利用哈希算法对所述多个倍点、所述多个待发送信息进行处理,分别得到所述多个待发送信息各自对应的密文第三部分;
基于所述密文第一部分、所述多个待发送信息各自对应的密文第二部分、所述多个待发送信息各自对应的密文第三部分,获得所述多个待发送信息各自对应的加密密文。
6.根据权利要求5所述的方法,其特征在于,所述基于所述多个倍点、所述多个待发送信息分别生成所述多个待发送信息各自对应的密文第二部分,包括:
将所述多个倍点作为密钥派生函数的输入,得到多个密钥数据;
基于所述多个密钥数据分别对所述多个待发送信息进行处理,得到所述多个待发送信息各自对应的密文第二部分。
7.一种不经意传输方法,其特征在于,应用于接收端,包括:
接收发送端发送的第二公钥;
获取与待接收的目标信息对应的目标信息标识;
随机生成一个私钥,所述私钥用于对所述目标信息进行解密;
基于所述第二公钥、所述私钥、所述目标信息标识,生成第一公钥;
将所述第一公钥发送至所述发送端,以使得所述发送端获取多个待发送信息各自对应的信息标识;基于所述信息标识、所述第一公钥、秘密值以及所述第二公钥,生成与所述多个待发送信息各自对应的倍点,并根据所述多个倍点分别对所述多个待发送信息进行加密,获得多个待发送信息相对应的多个加密密文;
接收所述发送端发送的所述多个待发送信息相对应的多个加密密文;
基于所述私钥,对所述加密密文进行解密,获得所述目标信息。
8.根据权利要求7所述的方法,其特征在于,所述基于所述第二公钥、所述私钥、所述目标信息标识,生成第一公钥,包括:
获取所述第二公钥与所述目标信息标识的第一乘积值;
获取用于数据传输的椭圆曲线方程上的基点;
确定所述私钥与所述基点的第二乘积值;
将所述第一乘积值与所述第二乘积值的和值确定为第一公钥。
9.一种电子设备,其特征在于,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1至8中任一项所述的不经意传输方法。
10.一种非暂时性机器可读存储介质,其特征在于,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被处理器执行时,使所述处理器执行如权利要求1至8中任一项所述的不经意传输方法。
CN202211306888.2A 2022-10-25 2022-10-25 不经意传输方法、设备和存储介质 Active CN115378588B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211306888.2A CN115378588B (zh) 2022-10-25 2022-10-25 不经意传输方法、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211306888.2A CN115378588B (zh) 2022-10-25 2022-10-25 不经意传输方法、设备和存储介质

Publications (2)

Publication Number Publication Date
CN115378588A CN115378588A (zh) 2022-11-22
CN115378588B true CN115378588B (zh) 2023-05-26

Family

ID=84073471

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211306888.2A Active CN115378588B (zh) 2022-10-25 2022-10-25 不经意传输方法、设备和存储介质

Country Status (1)

Country Link
CN (1) CN115378588B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005148141A (ja) * 2003-11-11 2005-06-09 Kanazawa Inst Of Technology 楕円曲線整数倍演算装置、ならびにその装置を利用可能な鍵生成装置、暗号化装置および復号装置
CN101931529A (zh) * 2010-08-09 2010-12-29 中兴通讯股份有限公司 一种数据加密方法、数据解密方法及节点
CN113141247A (zh) * 2021-04-25 2021-07-20 重庆都会信息科技有限公司 一种同态加密方法、装置、系统及可读存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8331558B2 (en) * 2010-02-18 2012-12-11 King Fahd University Of Petroleum And Minerals Method of cipher block chaining using elliptic curve cryptography
CN113259329B (zh) * 2021-04-26 2022-07-15 北京信安世纪科技股份有限公司 一种数据不经意传输方法、装置、电子设备及存储介质
CN114301609B (zh) * 2022-03-01 2022-05-17 华控清交信息科技(北京)有限公司 一种不经意传输方法、多方安全计算平台和用于不经意传输的装置
CN115001685B (zh) * 2022-07-22 2022-10-21 北京信安世纪科技股份有限公司 不经意传输方法、装置、设备和存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005148141A (ja) * 2003-11-11 2005-06-09 Kanazawa Inst Of Technology 楕円曲線整数倍演算装置、ならびにその装置を利用可能な鍵生成装置、暗号化装置および復号装置
CN101931529A (zh) * 2010-08-09 2010-12-29 中兴通讯股份有限公司 一种数据加密方法、数据解密方法及节点
CN113141247A (zh) * 2021-04-25 2021-07-20 重庆都会信息科技有限公司 一种同态加密方法、装置、系统及可读存储介质

Also Published As

Publication number Publication date
CN115378588A (zh) 2022-11-22

Similar Documents

Publication Publication Date Title
Diffie et al. New directions in cryptography
EP3779751B1 (en) Multi-party security computing method and apparatus, and electronic device
CN107196763B (zh) Sm2算法协同签名及解密方法、装置与系统
CN111314089B (zh) 一种基于sm2的两方协同签名方法及解密方法
CN107086915B (zh) 一种数据传输方法、数据发送端及数据接收端
US7899184B2 (en) Ends-messaging protocol that recovers and has backward security
CN115001685B (zh) 不经意传输方法、装置、设备和存储介质
CN110011995B (zh) 多播通信中的加密和解密方法及装置
US20120323981A1 (en) Proxy calculation system, proxy calculation method, proxy calculation requesting apparatus, and proxy calculation program and recording medium therefor
GB2401012A (en) Identifier-based encryption
US7894608B2 (en) Secure approach to send data from one system to another
CN111404952B (zh) 变电站数据加密传输方法、装置、计算机设备和存储介质
EP3476078A1 (en) Systems and methods for authenticating communications using a single message exchange and symmetric key
CN113886887A (zh) 基于多方安全计算的数据查询方法及装置
CN111079178B (zh) 一种可信电子病历脱敏和回溯方法
CN114726546A (zh) 数字身份认证方法、装置、设备和存储介质
JP2014515125A (ja) データの暗号化のための方法、コンピュータ・プログラム、および装置
JPH04347949A (ja) 電子メール通信方法および送信側端末
Heninger RSA, DH, and DSA in the Wild
CN112350820B (zh) 多接收者签密方法、发送端、接收端、系统及存储介质
CN111565108B (zh) 签名处理方法、装置及系统
GB2401013A (en) Cryptographic Method and Apparatus
CN114362912A (zh) 基于分布式密钥中心的标识密码生成方法、电子设备及介质
CN115412246B (zh) 不经意传输方法、装置、设备和存储介质
EP2395698B1 (en) Implicit certificate generation in the case of weak pseudo-random number generators

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