CN115102689A - 两方协同的s盒生成方法、加密方法和存储介质 - Google Patents

两方协同的s盒生成方法、加密方法和存储介质 Download PDF

Info

Publication number
CN115102689A
CN115102689A CN202211016582.3A CN202211016582A CN115102689A CN 115102689 A CN115102689 A CN 115102689A CN 202211016582 A CN202211016582 A CN 202211016582A CN 115102689 A CN115102689 A CN 115102689A
Authority
CN
China
Prior art keywords
client
box
determining
target value
operation result
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
CN202211016582.3A
Other languages
English (en)
Other versions
CN115102689B (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 CN202211016582.3A priority Critical patent/CN115102689B/zh
Publication of CN115102689A publication Critical patent/CN115102689A/zh
Application granted granted Critical
Publication of CN115102689B publication Critical patent/CN115102689B/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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Telephonic Communication Services (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明实施例提供一种两方协同的S盒生成方法、加密方法和存储介质,S盒生成方法包括:对待处理信息进行加密,获得对应的第一加密密文,将第一加密密文发送至服务端,以使服务端基于第一加密密文获得第一同态运算结果。随机生成一个第一多项式,对第一多项式进行加密,获得对应的第二加密密文,将第二加密密文发送至服务端,以使服务端基于第二加密密文获得第二同态运算结果。接收服务端发送的第一同态运算结果、第二同态运算结果、第一目标值,根据第一同态运算结果、第二同态运算结果、第一目标值,生成客户端对应的S盒。上述方案,不再依赖第三方机构,只需客户端和服务端就可以完成S盒的安全计算,提高了两方协同安全计算的效率。

Description

两方协同的S盒生成方法、加密方法和存储介质
技术领域
本发明涉及信息安全数据处理技术领域,尤其涉及一种两方协同的S盒生成方法、加密方法和存储介质。
背景技术
随着网络技术的发展,出现了越来越多的智能终端,同时也涌现出了大量的新业务,例如移动支付、移动办公等。这些新业务通常在智能终端上进行操作,为了保护业务隐私的安全,通过使用移动终端软件来进行保护。然而,移动终端软件将加密密钥直接存放在终端内存中,容易受到攻击,非常不安全。
在传统方案中,通常采用白盒加密方法,然而现有的白盒加密方法的安全性缺乏证明并且白盒加密需要第三方机构协助完成S盒以及加密计算过程,将会造成加密效率较低。
发明内容
本发明实施例提供一种两方协同的S盒生成方法、加密方法和存储介质,用以提高软件环境下客户端的安全性,减少对第三方机构的依赖,提高两方协同安全计算的效率。
第一方面,本发明实施例提供一种两方协同的S盒生成方法,应用于客户端,该方法包括:
获取待处理信息;
对所述待处理信息进行加密,获得所述待处理信息所对应的第一加密密文;
将所述第一加密密文发送至服务端,以使得服务端基于第一加密密文获得第一同态运算结果;
随机生成一个第一多项式;
对所述第一多项式进行加密,获得所述第一多项式所对应的第二加密密文;
将所述第二加密密文发送至服务端,以使得服务端基于所述第二加密密文获得第二同态运算结果;
接收服务端发送的第一同态运算结果、第二同态运算结果、第一目标值;
根据所述第一同态运算结果、所述第二同态运算结果、所述第一目标值,生成客户端对应的S盒。
第二方面,本发明实施例提供一种两方协同的S盒生成装置,位于客户端,该装置包括:
获取模块,用于获取待处理信息;
第一加密模块,用于对所述待处理信息进行加密,获得所述待处理信息所对应的第一加密密文;
第一发送模块,用于将所述第一加密密文发送至服务端,以使得服务端基于第一加密密文获得第一同态运算结果;
第一生成模块,用于随机生成一个第一多项式;
第二加密模块,用于对所述第一多项式进行加密,获得所述第一多项式所对应的第二加密密文;
第二发送模块,用于将所述第二加密密文发送至服务端,以使得服务端基于所述第二加密密文获得第二同态运算结果;
接收模块,用于接收服务端发送的第一同态运算结果、第二同态运算结果、第一目标值;
第二生成模块,用于根据所述第一同态运算结果、所述第二同态运算结果、所述第一目标值,生成客户端对应的S盒。
第三方面,本发明实施例提供一种终端设备,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器至少可以实现如第一方面所述的两方协同的S盒生成方法。
第四方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被管控设备的处理器执行时,使所述处理器至少可以实现如第一方面所述的两方协同的S盒生成方法。
第五方面,本发明实施例提供一种两方协同的S盒生成方法,应用于服务端,所述方法包括:
获取待处理信息、用于对所述待处理信息进行同态运算的第二多项式和第三多项式;
接收客户端发送的第一加密密文;
基于所述第二多项式确定第三中间值;
接收所述客户端发送的第二加密密文;
基于所述第三多项式确定第四中间值;
接收所述客户端发送的第二目标值;
根据所述第三中间值、所述第四中间值、所述第二目标值,生成服务端对应的S盒。
第六方面,本发明实施例提供一种两方协同的S盒生成装置,位于服务端,所述装置包括:
获取模块,用于获取待处理信息、用于对所述待处理信息进行同态运算的第二多项式和第三多项式;
第一接收模块,用于接收客户端发送的第一加密密文;
第一确定模块,用于基于所述第二多项式确定第三中间值;
第二接收模块,用于接收所述客户端发送的第二加密密文;
第二确定模块,用于基于所述第三多项式确定第四中间值;
第三接收模块,用于接收所述客户端发送的第二目标值;
生成模块,用于根据所述第三中间值、所述第四中间值、所述第二目标值,生成服务端对应的S盒。
第七方面,本发明实施例提供一种电子设备,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器至少可以实现如第五方面所述的两方协同的S盒生成方法。
第八方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被计算设备的处理器执行时,使所述处理器至少可以实现如第五方面所述的两方协同的S盒生成方法。
第九方面,本发明实施例提供一种两方协同的加密方法,应用于客户端,该方法包括:
获取待加密的第一明文和客户端对应的S盒;
确定用于加密所述第一明文的轮密钥;
根据所述客户端对应的S盒、所述第一明文、以及所述轮密钥,确定S盒的输出;
根据所述S盒的输出,确定客户端对应的第一目标密文。
第十方面,本发明实施例提供一种两方协同的加密装置,位于客户端,该装置包括:
获取模块,用于获取待加密的第一明文和客户端对应的S盒;
第一确定模块,用于确定用于加密所述第一明文的轮密钥;
第二确定模块,用于根据所述客户端对应的S盒、所述第一明文、以及所述轮密钥,确定S盒的输出;
第三确定模块,用于根据所述S盒的输出,确定客户端对应的第一目标密文。
第十一方面,本发明实施例提供一种终端设备,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器至少可以实现如第九方面所述的两方协同的加密方法。
第十二方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被管控设备的处理器执行时,使所述处理器至少可以实现如第九方面所述的两方协同的加密方法。
第十三方面,本发明实施例提供一种两方协同的加密方法,应用于服务端,所述方法包括:
获取待加密的第二明文和服务端对应的S盒;
确定用于加密所述第二明文的轮密钥;
根据服务端对应的S盒、所述第二明文、以及所述轮密钥,确定S盒的输出;
根据所述S盒的输出,确定服务端对应的第二目标密文。
第十四方面,本发明实施例提供一种两方协同的加密装置,位于服务端,所述装置包括:
获取模块,用于获取待加密的第二明文和服务端对应的S盒;
第一确定模块,用于确定用于加密所述第二明文的轮密钥;
第二确定模块,用于根据服务端对应的S盒、所述第二明文、以及所述轮密钥,确定S盒的输出;
第三确定模块,用于根据所述S盒的输出,确定服务端对应的第二目标密文。
第十五方面,本发明实施例提供一种电子设备,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器至少可以实现如第十三方面所述的两方协同的加密方法。
第十六方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被计算设备的处理器执行时,使所述处理器至少可以实现如第十三方面所述的两方协同的加密方法。
第十七方面,本发明实施例提供一种两方协同的解密方法,应用于客户端,该方法包括:
获取待解密的第一密文和客户端对应的S盒;
确定用于解密所述第一密文的轮密钥;
根据所述客户端对应的S盒、所述第一密文、以及所述轮密钥,确定S盒的输出;
根据所述S盒的输出,确定客户端对应的第一目标明文。
第十八方面,本发明实施例提供一种两方协同的解密装置,位于客户端,该装置包括:
获取模块,用于获取待解密的第一密文和客户端对应的S盒;
第一确定模块,用于确定用于解密所述第一密文的轮密钥;
第二确定模块,用于根据所述客户端对应的S盒、所述第一密文、以及所述轮密钥,确定S盒的输出;
第三确定模块,用于根据所述S盒的输出,确定客户端对应的第一目标明文。
第十九方面,本发明实施例提供一种终端设备,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器至少可以实现如第十七方面所述的两方协同的解密方法。
第二十方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被管控设备的处理器执行时,使所述处理器至少可以实现如第十七方面所述的两方协同的解密方法。
第二十一方面,本发明实施例提供一种两方协同的解密方法,应用于服务端,所述方法包括:
获取待解密的第二密文和服务端对应的S盒;
确定用于解密所述第二明文的轮密钥;
根据服务端对应的S盒、所述第二明文、以及所述轮密钥,确定S盒的输出;
根据所述S盒的输出,确定服务端对应的第二目标明文。
第二十二方面,本发明实施例提供一种两方协同的解密装置,位于服务端,所述装置包括:
获取模块,用于获取待解密的第二密文和服务端对应的S盒;
第一确定模块,用于确定用于解密所述第二明文的轮密钥;
第二确定模块,用于根据服务端对应的S盒、所述第二明文、以及所述轮密钥,确定S盒的输出;
第三确定模块,用于根据所述S盒的输出,确定服务端对应的第二目标明文。
第二十三方面,本发明实施例提供一种电子设备,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器至少可以实现如第二十一方面所述的两方协同的解密方法。
第二十四方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被计算设备的处理器执行时,使所述处理器至少可以实现如第二十一方面所述的两方协同的解密方法。
本发明实施例提供的两方协同的S盒生成方案可以适用于客户端和服务端,针对任一客户端来说,首先获取待处理信息,并对待处理信息进行加密,以获得待处理信息所对应的第一加密密文。而后将第一加密密文发送至服务端,以使得服务端基于第一加密密文获得第一同态运算结果。随机生成一个第一多项式,并对第一多项式进行加密,获得第一多项式所对应的第二加密密文。而后将第二加密密文发送至服务端,以使得服务端基于第二加密密文获得第二同态运算结果。接着接收服务端发送的第一同态运算结果、第二同态运算结果、第一目标值,并根据第一同态运算结果、第二同态运算结果、第一目标值,生成客户端对应的S盒。
在上述方案中,通过将待处理信息、随机生成的第一多项式进行加密后发送至服务端,不仅可以避免了待处理信息、第一多项式的泄露问题,同时也可以完成与服务端的交互,从而得到服务端发送的第一同态运算结果、第二同态运算结果、第一目标值。并基于第一同态运算结果、第二同态运算结果、第一目标值,生成客户端的对应的S盒,不再依赖第三方机构,只需客户端和服务端两方就可以实现了S盒的安全计算,提高了两方协同安全计算的效率,而且该S盒的生成是由客户端和服务端共同作用确定的,从而提高了软件环境下客户端安全性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种两方协同的S盒生成方法的流程图;
图2为本发明实施例提供的一种两方协同的S盒生成方法的应用示意图;
图3为本发明实施例提供的根据第一同态运算结果、第二同态运算结果、第一目标值,生成客户端对应的S盒的流程示意图;
图4为本发明实施例提供的基于第一目标值和第二目标值,确定客户端对应的S盒的流程示意图;
图5为本发明一示例性实施例的一种两方协同的S盒生成方法的流程示意图;
图6为本发明实施例提供的一种两方协同的加密方法的流程图;
图7为本发明实施例提供的另一种两方协同的加密方法的流程图;
图8为本发明实施例提供的一种两方协同的解密方法的流程图;
图9为本发明实施例提供的另一种两方协同的解密方法的流程图;
图10为本发明实施例提供的一种两方安全乘法协议方法的流程图;
图11为本发明实施例提供的一种两方协同的S盒生成装置的结构示意图;
图12为与图11所示实施例提供的两方协同的S盒生成装置对应的电子设备的结构示意图;
图13为本发明实施例提供的一种两方协同的S盒生成装置的结构示意图;
图14为与图13所示实施例提供的两方协同的S盒生成装置对应的电子设备的结构示意图;
图15为本发明实施例提供的一种两方协同的加密装置的结构示意图;
图16为与图15所示实施例提供的两方协同的加密装置对应的电子设备的结构示意图;
图17为本发明实施例提供的一种两方协同的加密装置的结构示意图;
图18为与图17所示实施例提供的两方协同的加密装置对应的电子设备的结构示意图;
图19为本发明实施例提供的一种两方协同的解密装置的结构示意图;
图20为与图19所示实施例提供的两方协同的加密装置对应的电子设备的结构示意图;
图21为本发明实施例提供的一种两方协同的加密装置的结构示意图;
图22为与图21所示实施例提供的两方协同的加密装置对应的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”。
还需要说明的是,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
随着无线通信、互联网等技术的发展,越来越多的终端设备都能联网,然而这些终端设备的联网给人类生活和生产带来便利的同时,也给不法分子可乘之机,不法分子通过一些方式可以完全控制和访问设备的硬件和软件,对设备使用者的人身安全、财产安全等造成一定的影响。为了保护用户隐私安全,密码技术不可或缺的。而终端设备的软件实现的加密算法密钥存放在终端内存中,容易受到攻击,非常不安全,如果采用硬件的方式如usbkey,给用户的体验感不好,使用不方便,同时也会提高成本。
为了提高密钥的安全性,又不影响用户体验感和节约成本,提出由多方协同完成加密,其传统的多方协同的加密方法,使用beaver三元组,该方案需要一个第三方可信中心来协助S盒以及加密计算,无疑增加了通信成本以及对第三方可信中心的需求。在密码学中,S盒(Substitution-box)是对称密钥算法执行置换计算的基本结构,S盒为固定的8比特输入8比特输出的置换,并且S盒用在分组密码算法中,是唯一的非线性结构,其S盒的指标的好坏直接决定了密码算法的好坏。基于此,本发明实施例提供了一种解决方案,通过将待处理信息、随机生成的第一多项式进行加密后发送至服务端,不仅可以避免了待处理信息、第一多项式的泄露问题,同时也可以完成与服务端的交互,从而得到服务端发送的第一同态运算结果、第二同态运算结果、第一目标值。并基于第一同态运算结果、第二同态运算结果、第一目标值,生成客户端的对应的S盒,即由客户端和服务端共同完成S盒的生成以及加密计算,不再需要依赖第三方可信中心,不仅提高了两方协同安全计算的效率,而且也可以实现提高软件环境下客户端的安全性。
本发明实施例提供的两方协同的S盒生成方法可以由一电子设备来执行,该电子设备可以是诸如PC机、笔记本电脑、智能手机等终端设备。下面对客户端执行的两方协同的S盒生成过程进行示例性说明。
图1为本发明实施例提供的一种两方协同的S盒生成方法的流程图。图2为本发明一示例性实施例的一种两方协同的S盒生成方法的应用场景示意图;参考附图1、附图2所示,本实施例提供了一种两方协同的S盒生成方法,该方法的执行主体可以为客户端设备,具体的,如图1所示,该两方协同的S盒生成方法可以包括如下步骤:
步骤101、获取待处理信息。
步骤102、对待处理信息进行加密,获得待处理信息所对应的第一加密密文。
步骤103、将第一加密密文发送至服务端,以使得服务端基于第一加密密文获得第一同态运算结果。
步骤104、随机生成一个第一多项式。
步骤105、对第一多项式进行加密,获得第一多项式所对应的第二加密密文。
步骤106、将第二加密密文发送至服务端,以使得服务端基于第二加密密文获得第二同态运算结果。
步骤107、接收服务端发送的第一同态运算结果、第二同态运算结果、第一目标值。
步骤108、根据第一同态运算结果、第二同态运算结果、第一目标值,生成客户端对应
的S盒。
其中,S盒的功能就是一种简单的“代替”操作,S盒用在分组密码算法中,是唯一的非线性结构,其S盒的指标的好坏直接决定了密码算法的好坏,它的密码强度决定了整个密码算法的安全强度,它的工作速度决定了整个算法的制乱速度。本发明实施例中提供的两方协同的S盒生成方法主要由客户端和服务端两方交互联合计算各自S盒的输出,提高了S盒输出的安全性,同时本发明实施例中的S盒生成方法不再依赖第三方可信机构,提高了两方协同计算S盒的效率,从而也可以提高加密过程的效率。
S盒可以对输入的信息进行非线性置换,并将置换后的信息进行输出,以起到混淆的目的。那么在生成客户端对应的S盒时,首先要获取待处理信息。其中,待处理信息是指需要进行非线性置换的信息,也就是说该待处理信息就是客户端的S盒的输入信息。
S盒是由客户端和服务端交互联合计算生成的,那么在各自S盒的生成过程中需要两方信息进行交互,在交互的过程中为了确保各自的待处理信息以及各自S盒输出的信息不被对方知道,需要对待处理信息进行加密后再进行传输交互。那么在获取到待处理信息之后,首先对待处理信息进行加密,获得待处理信息所对应的第一加密密文。接着将第一加密密文发送至服务端,以使得服务端可以基于第一加密密文获得第一同态运算结果。
在一可选实施例中,对待处理信息进行加密,获得待处理信息所对应的第一加密密文,其具体的实现方式可以为:根据同态加密算法,随机生成用于加密的第一公钥,并基于第一公钥对待处理信息进行加密,获得待处理信息所对应的第一加密密文。利用同态加密算法对待处理信息加密后,这样服务端可以直接对第一加密密文进行处理,并且对经过同态加密的数据进行处理后得到的结果进行解密,和使用同一方法处理未加密的原始数据得到的输出结果是一样的。其具体的密钥生成过程以及同态加密过程可以参考同态加密算法,在此不再详细赘述。
为了进一步混淆待处理信息,同时也避免服务端根据乘积运算计算出客户端对应的待处理信息,因此随机生成一个多项式,使得最终的目标值中不仅携带待处理信息还携带有随机多项式,提高了S盒输出的安全性。具体的,随机生成一个第一多项式,并对第一多项式进行加密处理,以获得第一多项式所对应的第二加密密文。接着,将第二加密密文发送至服务端,以使得服务端基于第二加密密文获得第二同态运算结果。将加密后到的第一多项式发送至服务端,不仅可以完成与服务端的交互,同还可以避免泄露第一多项式。
在一可选实施例中,对第一多项式进行加密,获得第一多项式所对应的第二加密密文,其具体的实现方式可以为:根据同态加密算法,随机生成用于加密的第二公钥,并基于生成的第二公钥对第一多项式进行加密,以获得第一多项式所对应的第二加密密文。利用同态解密算法对第一多项式进行加密后,服务端可以对第二密文直接进行同态运算得到第二同态运算结果,并且客户端对接收到的第二同态运算结果进行解密后得到的结果和服务端直接对密文进行运算后得到的结果是一致。其具体的密钥生成过程以及同态加密过程可以参考同态加密算法,在此不再详细赘述。
接着,接收服务端发送的交互结果,其主要包括第一同态结果、第二同态结果以及第一
目标值,并根据接收到的第一同态结果、第二同态结果以及第一目标值,生成客户端对应的S盒。对经过同态加密的数据进行处理得到一个输出,将这一输出进行解密,其结果与用同一方法处理未加密的原始数据得到的输出结果是一样的。因此,在本发明实施例中,利用同态加密算法实现了客户端与服务端安全进行数据交互,客户端通过与服务端进行数据交互,两方协同确定出客户端对应的S盒,实现了两方安全计算S盒。在两方协同计算S盒的过程中,不再需要依赖第三方可信机构,只需要两方进行数据交互即可,这样不仅提高了S盒计算生成效率,还可以节省成本。
其中,服务端基于第一加密密文、服务端待处理信息以及用于对服务端待处理信息进行同态运算的第二多项式,确定出第一同态结果,并将确定出的第一同态结果发送至客户端,以使得客户端可以基于第一同态结果生成对应的S盒。服务端基于第二加密密文、用于对服务端待处理信息进行同态运算的第三多项式以及第四多项式,确定出第二同态结果,并将确定出的第二同态结果发送至客户端,以使得客户端可以基于第二同态结果生成对应的S盒。服务端基于第三中间值、第四中间值、服务端待处理信息以及第四多项式,确定出第一目标值,并将确定出的第一目标值发送至客户端,以使得客户端可以基于第一目标值生成对应的S盒。
本发明实施例中,通过将待处理信息、随机生成的第一多项式进行加密后发送至服务端,不仅可以避免了待处理信息、第一多项式的泄露问题,同时也可以完成与服务端的安全交互,从而得到服务端发送的第一同态运算结果、第二同态运算结果、第一目标值。并基于第一同态运算结果、第二同态运算结果、第一目标值,生成客户端的对应的S盒,不再依赖第三方机构,只需客户端和服务端两方就可以实现了S盒的安全计算,提高了两方协同安全计算的效率,而且该S盒的生成是由客户端和服务端共同作用确定的,从而提高了软件环境下客户端安全性。
图3为本发明实施例提供的根据第一同态运算结果、第二同态运算结果、第一目标值,生成客户端对应的S盒的流程示意图;在上述实施例的基础上,继续参考附图3所示,本实施例提供了一种可以实现客户端对应的S盒生成的方式,具体的,根据第一同态运算结果、第二同态运算结果、第一目标值,生成客户端对应的S盒可以包括:
步骤301、获取与第一同态运算结果相对应的第一私钥、与第二同态运算结果相对应的第二私钥。
步骤302、基于第一私钥,对第一同态运算结果进行解密,获得第一中间值。
步骤303、基于第二私钥,对第二同态运算结果进行解密,获得第二中间值。
步骤304、根据第一中间值、第二中间值、第一目标值,确定客户端对应的S盒。
其中,客户端接收到的第一同态运算结果、第二同态结果都是直接基于加密密文直接进行同态运算得到的,那么客户端接收到第一同态运算结果、第二同态结果之后,需要对其进行解密。具体的,首先获取与第一同态运算结果相对应的第一私钥、与第二同态运算结果相对应的第二私钥。在对待处理信息进行加密时,利用同态加密算法随机生成了一对密钥即第一公钥和第一私钥,并基于第一公钥对待处理信息进行加密得到第一加密密文。第一同态运算结果就是基于第一加密密文进行同态运算得到的,那么在对第一同态结果进行解密时,需要获取与第一同态运算结果相对应的第一私钥,并基于第一私钥,对第一同态运算结果进行解密,获得第一中间值。
在对第一多项式进行加密时,利用同态加密算法随机生成了一对密钥即第二公钥和第二私钥,并基于第二公钥对第一多项式进行加密得到第二加密密文。第二同态运算结果就是基于第二加密密文进行同态运算得到的,那么在对第二同态结果进行解密时,需要获取与第二同态运算结果相对应的第二私钥,并基于第二私钥,对第二同态运算结果进行解密,获得第二中间值。
在获取到第一中间值、第二中间值之后,根据第一中间值、第二中间值、以及第一目标值,确定客户端对应的S盒。在一可选实施例中,根据第一中间值、第二中间值、以及第一目标值,确定客户端对应的S盒具体的实现方式可以包括:
步骤3041、根据第一中间值和第二中间值,确定第二目标值。
步骤3042、基于第一目标值和第二目标值,确定客户端对应的S盒。
第一中间值和第二中间值是与服务端进行交互后进行解密得到的数据,在得到第一中间
值和第二中间值之后,还需要对第一中间值和第二中间值进行处理,以确定出第二目标值。
在确定第二目标值之后,基于第一目标值和第二目标值,确定客户端对应的S盒。
在一可选地实施例中,根据第一中间值和第二中间值,确定第二目标值具体的可以包括:
根据第一中间值和第二中间值,确定客户端对应的中间值,再根据客户端对应的中间值、待处理信息、第一多项式,确定第二目标值。
具体的,假设待处理信息为
Figure 488659DEST_PATH_IMAGE001
,第一多项式为
Figure 936958DEST_PATH_IMAGE002
,第一中间值为
Figure 247854DEST_PATH_IMAGE003
,第二中间值为
Figure 970959DEST_PATH_IMAGE004
,在获取到第一中间值和第二中间值之后,则可以将第一中间值和第二中间值之和确定为 客户端对应的中间值
Figure 316490DEST_PATH_IMAGE005
,即
Figure 670111DEST_PATH_IMAGE005
=
Figure 468302DEST_PATH_IMAGE006
。接着确定待处理信息与第一多项式的乘积为
Figure 198361DEST_PATH_IMAGE007
,确 定乘积值与客户端对应的中间值之和为
Figure 398398DEST_PATH_IMAGE008
,并对乘积值与客户端对应的中间值之和 进行模运算,其模运算结果为
Figure 922920DEST_PATH_IMAGE009
,最后将模运算结果确定为第二目标值
Figure 942829DEST_PATH_IMAGE010
, 即
Figure 210999DEST_PATH_IMAGE010
=
Figure 531122DEST_PATH_IMAGE009
在本发明实施例中,通过获取与第一同态运算结果相对应的第一私钥、与第二同态运算结果相对应的第二私钥,并基于第一私钥,对第一同态运算结果进行解密,获得第一中间值,基于第二私钥,对第二同态运算结果进行解密,获得第二中间值。即利用同态加密算法完成了了域上的多项式两方安全计算。而后根据第一中间值、第二中间值、第一目标值,确定客户端对应的S盒,实现了客户端和服务端协同生成S盒,同时S盒的生成过程不再需要依赖第三方可信机构,简化了S盒的生成步骤,降低了操作的复杂程度。
图4为本发明实施例提供的基于第一目标值和第二目标值,确定客户端对应的S盒的流程示意图;在上述实施例的基础上,继续参考附图4所示,本实施例提供了一种可以实现客户端对应的S盒生成的方式,具体的,基于第一目标值和第二目标值,确定客户端对应的S盒可以包括:
步骤401、基于第一目标值和第二目标值,确定最终目标值。
步骤402、获取最终目标值的模运算结果、以及模运算结果与矩阵系数的乘积值。
步骤403、将乘积值与系统向量之和确定为客户端对应的S盒。
基于第一目标值和第二目标值,确定最终目标值,由于第一目标值和第二目标值 都是
Figure 695387DEST_PATH_IMAGE011
域上的多项式,那么在确定最终目标值时需要对以上的多项式进行模运算,最终目 标值是一个模运算结果。可选地,根据第一目标值和第二目标值,确定最终目标值的具体实 现方式可以为:获取第一目标值与第二目标值之和,接着对第一目标值与第二目标值之和 进行模运算,得到模运算结果,将该模运算结果确定为最终目标值。
在整个S盒的生成过程中主要是为了得到两方交互后的最终目标值,然后对最终目标值进行处理,首先获取矩阵系数以及系统向量参数,而后获取最终目标值的模运算结果、以及模运算结果与矩阵系数的乘积值,并将乘积值与系统向量之和确定为客户端对应的S盒。其中,矩阵系数和系统向量参数为固定参数,可以基于系统直接获取。
具体的,假设第一目标值为
Figure 468171DEST_PATH_IMAGE010
,第二目标值为
Figure 274453DEST_PATH_IMAGE012
,矩阵系数为
Figure 449083DEST_PATH_IMAGE013
,系统向量参数为
Figure 315407DEST_PATH_IMAGE014
。 在获取到第一目标值和第二目标值之后,确定第一目标值与第二目标值之和为
Figure 575487DEST_PATH_IMAGE015
,并对 其进行模运算确定模运算结果为
Figure 185460DEST_PATH_IMAGE016
,将该模运算结果确定为最终目标值
Figure 11334DEST_PATH_IMAGE017
, 即
Figure 314139DEST_PATH_IMAGE018
。接着,对最终目标值进行处理,获取最终目标值的模运算结果为
Figure 795936DEST_PATH_IMAGE019
。而后获取模运算结果与矩阵系数的乘积值为
Figure 209600DEST_PATH_IMAGE020
,在此基础上 获取该乘积值与系统向量之和为
Figure 93242DEST_PATH_IMAGE021
,将乘积值与系统向量之和确定为 客户端对应的S盒,即
Figure 301370DEST_PATH_IMAGE022
综上,在本发明实施例中,基于第一目标值和第二目标值,确定最终目标值,获取最终目标值的模运算结果、以及模运算结果与矩阵系数的乘积值,将乘积值与系统向量之和确定为客户端对应的S盒,基于客户端和服务端的目标值,确定了客户端对应的S盒输出。
图5为本发明一示例性实施例的一种两方协同的S盒生成方法的流程示意图;参考附图5所示,本实施例提供了一种两方协同的S盒生成方法,该方法的执行主体可以为服务端设备,可以理解的是,该服务端设备可以实现为软件、或者软件和硬件的组合。具体的,该两方协同的S盒生成方法可以包括:
步骤501、获取待处理信息、用于对待处理信息进行同态运算的第二多项式和第三多项式。
步骤502、接收客户端发送的第一加密密文。
步骤503、基于第二多项式确定第三中间值。
步骤504、接收客户端发送的第二加密密文。
步骤505、基于第三多项式确定第四中间值。
步骤506、接收客户端发送的第二目标值。
步骤507、根据第三中间值、第四中间值、第二目标值,生成服务端对应的S盒。
为了提高软件环境下的用户隐私安全,通常将加密密钥分为两部分,一部分加密密钥保存在客户端,另一部分加密密钥保存在服务端,同时为了预防白盒的攻击,需要将各自的加
密密钥等信息输入到S盒中,以起到混淆加密密钥的目的。因此,在两方协同加密时,需要
分别生成客户端和服务端各自对应的S盒。
在本发明实施例提供了一种服务端对应的S盒生成方法,首先需要获取服务端对 应的待处理、用于对待处理信息进行同态运算的第二多项式和第三多项式。其中,第二多项 式为
Figure 270463DEST_PATH_IMAGE023
域上的一个随机多项式,可以直接获取随机生成的一个多项式作为第二多项式。第 三多项式为
Figure 222238DEST_PATH_IMAGE023
域上的一个随机多项式,可以直接获取随机生成的一个多项式作为第三多 项式。
接收到客户端发送的第一加密密文之后,基于第二多项式确定第三中间值。可选 地,基于第二多项式确定第三中间值可以包括:获取固定多项式,基于固定多项式和第二多 项式,确定第三中间值。具体的,假设固定多项式为
Figure 491546DEST_PATH_IMAGE024
,第二多项式为
Figure 870574DEST_PATH_IMAGE025
,获取固定多项式 与第二多项式的差值为
Figure 344542DEST_PATH_IMAGE026
,并将差值确定为第三中间值
Figure 100008DEST_PATH_IMAGE027
,即
Figure 692663DEST_PATH_IMAGE028
同时,在接收客户端发送的第一加密密文之后还可以包括:根据待处理信息、第一加密密文、第二多项式,确定第一同态运算结果,并将第一同态运算结果发送至客户端。在一可选实施例中,根据待处理信息、第一加密密文、第二多项式,确定第一同态运算结果的具体实施方式可以为:对待处理信息与第一加密密文进行同态乘法处理,获得同态乘法运算结果,并对同态乘法运算结果与第二多项式进行同态加法处理,获得第一同态运算结果。
具体的,假设第一加密密文为
Figure 508173DEST_PATH_IMAGE029
,服务端对应的待处理信息为
Figure 451858DEST_PATH_IMAGE030
,第二多项式 为
Figure 807753DEST_PATH_IMAGE025
获取到上述各个数值之后,确定第一加密密文与服务端对应的待处理信息的同态 乘法运算结果为
Figure 723756DEST_PATH_IMAGE031
,接着确定同态乘法运算结果与第二多项式的同态加法运算 结果为
Figure 444588DEST_PATH_IMAGE032
,并将同态加法运算结果确定为第一同态运算结果,即第一同态运 算结果为
Figure 875569DEST_PATH_IMAGE032
,其中
Figure 238417DEST_PATH_IMAGE033
表示同态数量乘法,
Figure 71244DEST_PATH_IMAGE034
表示同态加法。
接收到客户端发送的第二加密密文之后,基于第三多项式确定第四中间值。可选 地,基于第三多项式确定第四中间值具体可以包括:获取固定多项式,基于固定多项式和第 三多项式,确定第四中间值。具体的,假设固定多项式为
Figure 697397DEST_PATH_IMAGE024
,第三多项式为
Figure 881254DEST_PATH_IMAGE035
,获取固定多 项式与第三多项式的差值为
Figure 782214DEST_PATH_IMAGE036
,并将差值确定为第四中间值
Figure 203968DEST_PATH_IMAGE037
,即
Figure 266602DEST_PATH_IMAGE038
同时,在接收客户端发送的第二加密密文之后还包括:随机生成一个第四多项式,根据第二加密密文、第三多项式、第四多项式,确定第二同态运算结果,并将第二同态运算结果发送至客户端。在一可选实施例中,根据第二加密密文、第三多项式、第四多项式,确定第二同态运算结果具体实施方式可以为:对第四多项式与第二加密密文进行同态乘法处理,获得同态乘法运算结果,并对同态乘法运算结果与第三多项式进行同态加法处理,获得第二同态运算结果。
具体的,假设第二加密密文为
Figure 406596DEST_PATH_IMAGE039
,第三多项式为
Figure 907985DEST_PATH_IMAGE035
,第四多项式为
Figure 653087DEST_PATH_IMAGE040
,获取 到上述各个数值之后,确定第二加密密文与第四多项式的同态乘法运算结果为
Figure 152201DEST_PATH_IMAGE041
,接着确定同态乘法运算结果与第三多项式的同态加法运算结果为
Figure 779492DEST_PATH_IMAGE042
,并将同态加
法运算结果确定为第二同态运算结果,即第二同态运算结果为
Figure 818992DEST_PATH_IMAGE042
, 其中
Figure 418600DEST_PATH_IMAGE033
示同态数量乘法,
Figure 354195DEST_PATH_IMAGE034
表示同态加法。
最后,接收客户端发送的第二目标值,并基于第二目标值、第三中间值、第四中间值,
生成服务端对应的S盒。具体的根据第二目标值、第三中间值、第四中间值,生成服务端对
应的S盒可以包括:
步骤5071、根据第三中间值和第四中间值,确定第一目标值。
步骤5072、根据第一目标值和第二目标值,确定客户端对应的S盒。
在确定第三中间值和第四中间值之后,根据第三中间值和第四中间值,确定第一目标值。具体的,根据第三中间值和第四中间值,确定第一目标值可以包括:根据第三中间值和第四中间值,确定服务端对应的中间值,再根据服务端对应的中间值、服务端对应的待处理信息、第四多项式,确定第一目标值。
具体的,假设服务端对应的待处理信息为
Figure 672044DEST_PATH_IMAGE030
,第四多项式为
Figure 452919DEST_PATH_IMAGE040
,第三中间值为
Figure 234930DEST_PATH_IMAGE027
,第 四中间值为
Figure 279109DEST_PATH_IMAGE037
,在获取到第三中间值和第四中间值之后,则可以将第三中间值和第四中间 值之和确定为客户端对应的中间值
Figure 146571DEST_PATH_IMAGE043
,即
Figure 465557DEST_PATH_IMAGE044
。接着确定服务端对应的待处理信息 与第四多项式的乘积为
Figure 836495DEST_PATH_IMAGE045
,确定乘积值与服务端对应的中间值之和为
Figure 848314DEST_PATH_IMAGE046
,并对乘 积值与服务端对应的中间值之和进行模运算,其模运算结果为
Figure 671913DEST_PATH_IMAGE047
,最后将 模运算结果确定为第一目标值
Figure 60169DEST_PATH_IMAGE012
,即
Figure 291474DEST_PATH_IMAGE010
=
Figure 739772DEST_PATH_IMAGE048
确定第一目标值之后,可以将第一目标值发送至客户端,以使得客户端可以基于第一目标值确定出客户端对应的S盒。同时,客户端会将第二目标值发送至服务端,服务端基于第一目标值和第二目标值,确定服务端对应的S盒。由于服务端对应的S盒和客户端对应的S盒都是基于第一目标值和第二目标值确定的,那么相当于服务端和客户端最后得到了相同的
S盒输出。
在一可选实施例中,具体的根据第一目标值和第二目标值,确定服务端对应的S盒可以包括:
步骤50721、基于第一目标值和第二目标值,确定最终目标值。
步骤50722、获取最终目标值的模运算结果、以及模运算结果与矩阵系数的乘积值。
步骤50723、将乘积值确定为服务端对应的S盒。
基于第一目标值和第二目标值,确定最终目标值。接着,对最终目标值进行处理,具体的获取最终目标值的模运算结果、以及模运算结果与矩阵系数的乘积值,并将乘积值确定为服务端对应的S盒。
具体的,假设第一目标值为
Figure 316247DEST_PATH_IMAGE010
,第二目标值为
Figure 445877DEST_PATH_IMAGE012
,矩阵系数为
Figure 791408DEST_PATH_IMAGE013
。在获取到第一目标 值和第二目标值之后,确定第一目标值与第二目标值之和为
Figure 410608DEST_PATH_IMAGE015
,并对其进行模运算确定 模运算结果为
Figure 412062DEST_PATH_IMAGE016
,将该模运算结果确定为最终目标值
Figure 407700DEST_PATH_IMAGE017
,即
Figure 342158DEST_PATH_IMAGE018
。接着,对最终目标值进行处理,获取最终目标值的模运算结果为
Figure 335522DEST_PATH_IMAGE019
。而后获取模运算结果与矩阵系数的乘积值为
Figure 886589DEST_PATH_IMAGE020
,将乘积值确 定为客户端对应的S盒,即
Figure 358021DEST_PATH_IMAGE049
本发明实施例中,通过获取待处理信息、用于对待处理信息进行同态运算的第二多项式和第三多项式,并基于第二多项式确定第三中间值,基于第三多项式确定第四中间值。而后接收客户端发送的第二目标值,并根据第三中间值、第四中间值、第二目标值,生成服务端
对应的S盒,只需客户端和服务端两方就可以实现了S盒的安全计算,不再依赖第三方机构,
不仅提高了两方协同安全计算的效率,而且还节省了计算成本。
本发明实施例提供的方案的一些步骤的具体执行过程可以参考前述其他实施例中的相关说明,在此不赘述。
为了提高密钥的安全性,由不影响用户的使用体验,本发明提出一种两方协同的加密方法,将用户的加密密钥一部分保存在客户端本地,另一部分加密密钥保存在服务端,再由两方协同完成整个加密过程,首先两方利用各自的加密密钥完成各自的加密过程,再通过两方合作获得完整的加密密文。
图6为本发明实施例提供的一种两方协同的加密方法的流程图。参考附图6所示,本实施例提供了一种两方协同加密方法,该方法的执行主体可以为客户端设备,具体的,如图6所示,该两方协同的加密方法可以包括如下步骤:
步骤601、获取待加密的第一明文和客户端对应的S盒。
步骤602、确定用于加密第一明文的轮密钥。
步骤603、根据客户端对应的S盒、第一明文、以及轮密钥,确定S盒的输出。
步骤604、根据S盒的输出,确定客户端对应的第一目标密文。
通过两方协同完成整个加密过程,将明文分为两部分第一明文和第二明文,其中第一明文由客户端完成加密,第二明文由服务端完成加密。首先客户端需要获取待加密的第一明文和客户端对应的S盒,而后确定用于加密第一明文的轮密钥。
其中,轮密钥又称子密钥,在迭代分组密码中每一轮使用的密钥,根据输入密钥用 密钥编排算法推导得出。具体的,假设客户端拥有的部分密钥为
Figure 412565DEST_PATH_IMAGE050
, 密钥管理中心分别给客户端和服务端发送系统参数
Figure 373568DEST_PATH_IMAGE051
Figure 677510DEST_PATH_IMAGE052
。 其中
Figure 749372DEST_PATH_IMAGE053
接着,计算
Figure 924001DEST_PATH_IMAGE054
Figure 790326DEST_PATH_IMAGE055
Figure 50406DEST_PATH_IMAGE056
Figure 660379DEST_PATH_IMAGE057
。 从
Figure 689515DEST_PATH_IMAGE058
=0到
Figure 726741DEST_PATH_IMAGE058
=31循环执行以下操作:计算
Figure 677379DEST_PATH_IMAGE059
。将
Figure 91043DEST_PATH_IMAGE060
作 为客户端S盒的待处理信息输入到客户端S盒中,确定S盒的输出为
Figure 974685DEST_PATH_IMAGE061
。最后确定客户端对 应的轮密钥为:
Figure 245130DEST_PATH_IMAGE062
,其中
Figure 214223DEST_PATH_IMAGE063
为SM4密钥扩展算法的线性变换。
确定出用于加密第一明文的轮密钥之后,根据客户端对应的S盒、第一明文、以及轮密钥,确定S盒的输出。通过将第一明文和轮密钥输入到S盒中进行转换,以起到混淆密钥和明文的目的,进一步提高密钥的安全性,避免白盒攻击。
在一可选实施例中,根据客户端对应的S盒、第一明文、以及轮密钥,确定S盒的输出的具体实现方式可以为:
步骤6031、根据第一明文和轮密钥,确定S盒的待处理信息。
步骤6032、利用客户端对应的S盒,确定待处理信息所对应的S盒的输出。
首先对第一明文和轮密钥进行计算处理,确定S盒的待处理信息,接着将确定出的S盒的待处理信息输入到客户端对应的S盒中,利用客户端对应的S盒,确定待处理信息所对应的S盒的输出,实现了对第一明文和轮密钥的非线性转换。
最后,利用SM4加密算法,根据S盒的输出和第一明文,对第一明文进行加密,以确定
客户端对应的第一目标密文。由于完整的明文分为两部分,分别由客户端和服务端分别进行加密,那么在得到第一目标密文之后,还可以获取服务端对应的第二目标密文,并基于服务端对应的第二目标密文以及客户端对应的第一目标密文,确定目标密文。在确定完整的目标密文的过程中,只需要客户端和服务端分别生成第一目标密文和第二目标密文,再进行合作生成完整的目标密文,不需要对第三方可信机构的依赖就可以实现SM4算法的两方协同加密,从而可以有效的解决在软件环境下用户密钥安全问题。
综上,在本发明实施例中,通过获取待加密的第一明文和客户端对应的S盒,确定用于加密第一明文的轮密钥,根据客户端对应的S盒、第一明文、以及轮密钥,确定S盒的输出,根据S盒的输出,确定客户端对应的第一目标密文,不需要对第三方可信机构的依赖就可以实现SM4算法的客户端加密过程。
本发明实施例提供的方案的一些步骤的具体执行过程可以参考前述其他实施例中的相关说明,在此不赘述。
图7为本发明实施例提供的另一种两方协同的加密方法的流程图;参考附图7所示,本实施例提供了一种两方协同加密方法,该方法的执行主体可以为服务端设备,具体的,如图7所示,该两方协同的加密方法可以包括如下步骤:
步骤701、获取待加密的第二明文和服务端对应的S盒。
步骤702、确定用于加密第二明文的轮密钥。
步骤703、根据服务端对应的S盒、第二明文、以及轮密钥,确定S盒的输出。
步骤704、根据S盒的输出,确定服务端对应的第二目标密文。
其中,服务端的加密过程和客户端的加密过程一样,都是使用各自的加密密钥进行加密,最后再基于各自的加密密文进行合作生成完整的目标密文。其一些步骤的具体执行过程可以参考前述其他实施例中的相关说明,在此不赘述。
本发明实施例中,通过获取待加密的第二明文和服务端对应的S盒,确定用于加密第二明文的轮密钥,根据服务端对应的S盒、第二明文、以及轮密钥,确定S盒的输出。根据S盒的输出,确定服务端对应的第二目标密文,不需要对第三方可信机构的依赖就可以实现SM4算法的服务端加密过程。
图8为本发明实施例提供的一种两方协同的解密方法的流程图;参考附图8所示,本实
施例提供了一种两方协同解密方法,该方法的执行主体可以为客户端设备,具体的,如图8
所示,该两方协同的解密方法可以包括如下步骤:
步骤801、获取待解密的第一密文和客户端对应的S盒。
步骤802、确定用于解密第一密文的轮密钥。
步骤803、根据客户端对应的S盒、第一密文、以及轮密钥,确定S盒的输出。
步骤804、根据S盒的输出,确定客户端对应的第一目标明文。
采用SM4解密算法对待解密的第一密文进行解密,仅仅需要将轮密钥的顺序进行颠倒,其它解密的具体过程和加密的具体过程一致,步骤的具体执行过程可以参考前述其他实施例中的相关说明,在此不赘述。
在确定客户端对应的第一目标明文之后,可以接收服务端发送的第二目标明文,并将第一明文和第二目标明文进行组合,获得完整的明文。在获得完整的明文的整个实现过程中,只需要客户端和服务端利用各自的密钥进行解密,解密后再进行两方合作确定完整的明文,不再依赖第三方机构也可以完成两方的协同解密过程,可以节省成本,提高解密效率。
图9为本发明实施例提供的另一种两方协同的解密方法的流程图;参考附图9所示,本
实施例提供了一种两方协同解密方法,该方法的执行主体可以为服务端设备,具体的,如图
9所示,该两方协同的解密方法可以包括如下步骤:
步骤901、获取待解密的第二密文和服务端对应的S盒。
步骤902、确定用于解密第二明文的轮密钥。
步骤903、根据服务端对应的S盒、第二明文、以及轮密钥,确定S盒的输出。
步骤904、根据S盒的输出,确定服务端对应的第二目标明文。
采用SM4解密算法对待解密的第二密文进行解密,仅仅需要将轮密钥的顺序进行颠倒,其它解密的具体过程和加密的具体过程一致,步骤的具体执行过程可以参考前述其他实施例中的相关说明,在此不赘述。
具体应用时,本应用实施例提供了一种两方协同的S盒生成方法,该方法的执行主体可以包括客户端设备和服务端设备,具体的,两方协同的S盒生成方法可以包括以下步骤:
步骤1、假设客户端持有s盒的输入为
Figure 165998DEST_PATH_IMAGE064
,服务端持有s盒的输入为
Figure 169726DEST_PATH_IMAGE030
,且
Figure 752017DEST_PATH_IMAGE065
步骤2、两方分别随机生成一个多项式,即客户端随机生成一个多项式
Figure 208407DEST_PATH_IMAGE002
,服务端 随机生成一个多项式
Figure 963873DEST_PATH_IMAGE040
,且
Figure 87687DEST_PATH_IMAGE066
步骤3、两方分别对各自的S盒输入执行如下安全乘法协议,确定各自对应的S盒输出,参考附图10。
具体的,两方分别对各自的S盒输入执行如下安全乘法协议,确定各自对应的S盒输出的实现方式可以包括:
步骤31、客户端生成同态加密算法的公私钥对
Figure 903196DEST_PATH_IMAGE067
Figure 846881DEST_PATH_IMAGE068
,并将
Figure 874880DEST_PATH_IMAGE064
转换成整数。
其具体转换方法可以:将a表示为
Figure 847341DEST_PATH_IMAGE069
的多项式系数向量,令
Figure 833752DEST_PATH_IMAGE070
,将向 量表示成整数。
步骤32、客户端对转换后的
Figure 264733DEST_PATH_IMAGE064
进行加密获得加密密文
Figure 565264DEST_PATH_IMAGE029
,将加密密文
Figure 132512DEST_PATH_IMAGE029
发送给服务端。
步骤33、服务端接收加密密文,并随机生成一个多项式
Figure 555403DEST_PATH_IMAGE071
,且
Figure 473680DEST_PATH_IMAGE072
步骤34、服务端对加密密文、服务端持有s盒的输入为
Figure 109061DEST_PATH_IMAGE030
以及随机生成的多项式
Figure 999657DEST_PATH_IMAGE071
进 行同态运算,获得第一同态运算结果
Figure 327870DEST_PATH_IMAGE032
,并对多项式
Figure 733443DEST_PATH_IMAGE071
和固定多项式
Figure 641356DEST_PATH_IMAGE024
进行 运算,获得第三中间值
Figure 448775DEST_PATH_IMAGE028
步骤35、服务端将第一同态运算结果返回给客户端。
步骤36、客户端接收第一同态运算结果,并利用私钥
Figure 947890DEST_PATH_IMAGE068
对其进行解密,获得解密后 的
Figure 778443DEST_PATH_IMAGE073
,并将解密结果确定为第三中间值,即第三中间值为:
Figure 755626DEST_PATH_IMAGE074
因此,有如下等式成立
Figure 417551DEST_PATH_IMAGE075
步骤4、两方分别对随机生成的多项式执行如下安全乘法协议,确定各自对应的S盒输出。
具体的,两方分别对随机生成的多项式执行如下安全乘法协议,确定各自对应的S盒输出的实现方式可以包括:
步骤41、客户端生成同态加密算法的公私钥对
Figure 87567DEST_PATH_IMAGE076
Figure 202154DEST_PATH_IMAGE068
1。
步骤42、客户端对
Figure 983028DEST_PATH_IMAGE002
进行加密获得加密密文
Figure 765039DEST_PATH_IMAGE077
,将加密密文
Figure 605956DEST_PATH_IMAGE077
发送 给服务端。
步骤43、服务端接收加密密文,并随机生成一个多项式
Figure 411101DEST_PATH_IMAGE035
,且
Figure 995666DEST_PATH_IMAGE078
步骤44、服务端对加密密文、多项式
Figure 366605DEST_PATH_IMAGE040
以及随机生成的多项式
Figure 644002DEST_PATH_IMAGE035
进行同态运算,获 得第二同态运算结果
Figure 670864DEST_PATH_IMAGE079
,并对多项式
Figure 59120DEST_PATH_IMAGE071
和固定多项式
Figure 550144DEST_PATH_IMAGE024
进行运算,获得第 四中间值
Figure 732864DEST_PATH_IMAGE038
步骤45、服务端将第二同态运算结果返回给客户端。
步骤46、客户端接收第二同态运算结果,并利用私钥
Figure 512601DEST_PATH_IMAGE080
对其进行解密,获得解密 后的
Figure 438969DEST_PATH_IMAGE081
,并将解密结果确定为第四中间值,即第四中间值为:
Figure 518920DEST_PATH_IMAGE082
步骤5、令
Figure 934858DEST_PATH_IMAGE083
步骤6、服务端计算
Figure 733050DEST_PATH_IMAGE084
,并计算第一目标值
Figure 197529DEST_PATH_IMAGE085
步骤7、服务端将第一目标值发送给客户端。
步骤8、客户端根据第一中间值和第二中间值,计算
Figure 600829DEST_PATH_IMAGE086
,并计算第二 目标值
Figure 187668DEST_PATH_IMAGE087
步骤9、客户端将第二目标值发送给服务端。
步骤10、客户端接收第一目标值,并根据第一目标值和第二目标值,确定目标值
Figure 213436DEST_PATH_IMAGE088
,并计算客户端对应的S盒输出
Figure 747185DEST_PATH_IMAGE089
步骤11、服务端接收第二目标值,并根据第一目标值和第二目标值,确定目标值
Figure 801729DEST_PATH_IMAGE088
,并计算服务端对应的S盒输出
Figure 700415DEST_PATH_IMAGE090
具体应用时,本应用实施例提供了一种两方协同的加密方法,该方法的执行主体可以包括客户端设备和服务端设备,具体的,两方协同的加密方法可以包括以下步骤:
步骤1、客户端通过秘密分享的方式将部分明文发送给服务端,并且满足
Figure 473199DEST_PATH_IMAGE091
,假设客户端拥有部分明文为
Figure 545060DEST_PATH_IMAGE092
步骤2、确定客户端对应的轮密钥。
具体的,确定客户端对应的轮密钥的实现方式可以为:
步骤21、假设客户端拥有部分密钥
Figure 250848DEST_PATH_IMAGE093
。 密钥管理中心KMC 分别给客户端和服务端生成系统参数
Figure 382752DEST_PATH_IMAGE051
Figure 580515DEST_PATH_IMAGE052
,并将系统参数设置为:
Figure 721647DEST_PATH_IMAGE094
步骤22、客户端计算
Figure 485203DEST_PATH_IMAGE054
Figure 788009DEST_PATH_IMAGE055
Figure 738647DEST_PATH_IMAGE056
Figure 417890DEST_PATH_IMAGE057
步骤23、确定客户端对应的S盒输入(待处理信息),利用S盒确定S盒的输出。
具体的,计算
Figure 301532DEST_PATH_IMAGE059
。将
Figure 712922DEST_PATH_IMAGE060
作为客户端S盒的 输入。将
Figure 947594DEST_PATH_IMAGE060
信息输入到客户端S盒中,确定S盒输出为
Figure 368212DEST_PATH_IMAGE061
步骤24、确定客户端对应的轮密钥为:
Figure 106360DEST_PATH_IMAGE062
,其中
Figure 16548DEST_PATH_IMAGE063
为SM4密钥扩展 算法的线性变换。
步骤3、客户端基于客户端明文和轮密钥,确定对应的S盒输入。
具体的,基于客户端明文和轮密钥,计算
Figure 676199DEST_PATH_IMAGE095
。将
Figure 431665DEST_PATH_IMAGE096
作为S盒的输入。
步骤4、利用客户端对应的S盒,确定对应的S盒输出
Figure 86638DEST_PATH_IMAGE097
步骤5、客户端计算每一轮的密文,
Figure 902147DEST_PATH_IMAGE098
步骤6、客户端获得最终的部分密文
Figure 580253DEST_PATH_IMAGE099
步骤7、确定服务端对应的轮密钥
Figure 139410DEST_PATH_IMAGE100
其中,确定服务端对应的轮密钥实现方式与确定客户端对应的轮密钥的实现方式一致,具体可以参考上述确定客户端对应的轮密钥的实现过程,在此不再赘述。
步骤8、服务端基于服务端明文和轮密钥,确定对应的S盒输入。
步骤9、利用客户端对应的S盒,确定对应的S盒输出
Figure 852151DEST_PATH_IMAGE101
步骤10、服务端计算每一轮的密文,
Figure 838562DEST_PATH_IMAGE102
步骤11、服务端获得最终的部分密文
Figure 269543DEST_PATH_IMAGE103
步骤12、基于客户端的最终部分密文和服务端的最终部分密文,确定完整密文
Figure 366812DEST_PATH_IMAGE104
本实施例中未展开描述的相关内容,可以参考前述实施例中的相关说明,在此不赘述。
两方协同的解密过程,仅仅需要将轮密钥顺序进行颠倒,其他的过程和加密过程相同,具体的实施步骤参考上述实施例中的相关说明。
以下将详细描述本发明的一个或多个实施例的数据存储装置。本领域技术人员可以理解,这些装置均可使用市售的硬件组件通过本方案所教导的步骤进行配置来构成。
图11为本发明实施例提供的一种两方协同的S盒生成装置的结构示意图,该装置位于一客户端设备,如图11所示,该装置包括:获取模块11、第一加密模块12、第一发送模块13、第一生成模块14、第二加密模块15、第二发送模块16、接收模块17、第二生成模块18。
获取模块11,用于获取待处理信息;
第一加密模块12,用于对所述待处理信息进行加密,获得所述待处理信息所对应的第一加密密文;
第一发送模块13,用于将所述第一加密密文发送至服务端,以使得服务端基于第一加密
密文获得第一同态运算结果;
第一生成模块14,用于随机生成一个第一多项式;
第二加密模块15,用于对所述第一多项式进行加密,获得所述第一多项式所对应的第二加密密文;
第二发送模块16,用于将所述第二加密密文发送至服务端,以使得服务端基于所述第二加密密文获得第二同态运算结果;
接收模块17,用于接收服务端发送的第一同态运算结果、第二同态运算结果、第一目标值;
第二生成模块18,用于根据所述第一同态运算结果、所述第二同态运算结果、所述第一目标值,生成客户端对应的S盒。
可选地,第一加密模块12具体可以用于:根据同态加密算法,随机生成用于加密的第一公钥;基于所述第一公钥对所述待处理信息进行加密,获得所述待处理信息所对应的第一加密密文。
可选地,第二加密模块15具体可以用于:根据同态加密算法,随机生成用于加密的第二公钥;基于所述第二公钥对所述第一多项式进行加密,获得所述第一多项式所对应的第二加密密文。
可选地,第二生成模块18具体可以用于:获取与所述第一同态运算结果相对应的第一私钥、与所述第二同态运算结果相对应的第二私钥;基于所述第一私钥,对所述第一同态运算结果进行解密,获得第一中间值;基于所述第二私钥,对所述第二同态运算结果进行解密,获得第二中间值;根据所述第一中间值、所述第二中间值、所述第一目标值,确定客户端对应的S盒。
可选地,第二生成模块18具体可以用于:根据所述第一中间值和第二中间值,确定第二目标值;基于所述第一目标值和所述第二目标值,确定客户端对应的S盒。
可选地,第二生成模块18具体还可以用于:基于所述第一目标值和所述第二目标值,确定最终目标值;获取所述最终目标值的模运算结果、以及所述模运算结果与矩阵系数的乘积值;将所述乘积值与系统向量之和确定为客户端对应的S盒。
图11所示装置可以执行前述实施例中客户端设备执行的步骤,详细的执行过程和技术效果参见前述实施例中的描述,在此不再赘述。
在一个可能的设计中,上述图11所示两方协同的S盒生成装置的结构可实现为一电子设备,如图12所示,该电子设备可以包括:第一处理器21、第一存储器22、第一通信接口23。其中,第一存储器22上存储有可执行代码,当所述可执行代码被第一处理器21执行时,使第一处理器21至少可以实现如前述实施例中客户端设备执行的步骤。
另外,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器至少可以实现如前述实施例中提供的两方协同的S盒生成方法。
图13为本发明实施例提供的一种两方协同的S盒生成装置的结构示意图,该装置位于服务端,如图13所示,该装置包括:获取模块31、第一接收模块32、第一确定模块33、第二接收模块34、第二确定模块35、第三接收模块36、生成模块37。
获取模块31,用于获取待处理信息、用于对所述待处理信息进行同态运算的第二多项式和第三多项式;
第一接收模块32,用于接收客户端发送的第一加密密文;
第一确定模块33,用于基于所述第二多项式确定第三中间值;
第二接收模块34,用于接收所述客户端发送的第二加密密文;
第二确定模块35,用于基于所述第三多项式确定第四中间值;
第三接收模块36,用于接收所述客户端发送的第二目标值;
生成模块37,用于根据所述第三中间值、所述第四中间值、所述第二目标值,生成服务端对应的S盒。
可选地,所述装置还可以包括第三确定模块,具体可以用于:根据所述待处理信息、所述第一加密密文、所述第二多项式,确定第一同态运算结果;将所述第一同态运算结果发送至所述客户端。
可选地,所述装置还可以包括第四确定模块,具体可以用于:随机生成一个第四多项式;
根据所述所述第二加密密文、所述第三多项式、所述第四多项式,确定第二同态运算结果;
将所述第二同态运算结果发送至所述客户端。
可选地,生成模块37具体可以用于:根据所述第三中间值和第四中间值,确定第一目标值;根据所述第一目标值和所述第二目标值,确定服务端对应的S盒。
可选地,生成模块37具体还可以用于:基于所述第一目标值和所述第二目标值,确定最终目标值;获取所述最终目标值的模运算结果、以及所述模运算结果与矩阵系数的乘积值;将所述乘积值确定为服务端对应的S盒。
图13所示装置可以执行前述实施例中服务端设备执行的步骤,详细的执行过程和技术效果参见前述实施例中的描述,在此不再赘述。
在一个可能的设计中,在一个可能的设计中,上述图13所示两方协同的S盒生成装置的结构可实现为一电子设备,如图14所示,该电子设备可以包括:第二处理器41、第二存储器42、第二通信接口43。其中,第二存储器42上存储有可执行代码,当所述可执行代码被第二处理器41执行时,使第二处理器41至少可以实现如前述实施例中服务端设备执行的步骤。
另外,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被设备的处理器执行时,使所述处理器至少可以实现如前述实施例中提供的两方协同的S盒生成方法。
图15为本发明实施例提供的一种两方协同的加密装置的结构示意图,该装置位于一客户端设备,如图15所示,该装置包括:获取模块51、第一确定模块52、第二确定模块53、第三确定模块54。
获取模块51,用于获取待加密的第一明文和客户端对应的S盒;
第一确定模块52,用于确定用于加密所述第一明文的轮密钥;
第二确定模块53,用于根据所述客户端对应的S盒、所述第一明文、以及所述轮密钥,确定S盒的输出;
第三确定模块54,用于根据所述S盒的输出,确定客户端对应的第一目标密文。
图15所示装置可以执行前述实施例中客户端设备执行的步骤,详细的执行过程和技术效果参见前述实施例中的描述,在此不再赘述。
在一个可能的设计中,上述图15所示两方协同的加密装置的结构可实现为一电子设备,如图16所示,该电子设备可以包括:第三处理器61、第一存储器62、第一通信接口63。其中,第三存储器62上存储有可执行代码,当所述可执行代码被第三处理器61执行时,使第三处理器61至少可以实现如前述实施例中客户端设备执行的步骤。
另外,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器至少可以实现如前述实施例中提供的两方协同的加密方法。
图17为本发明实施例提供的一种两方协同的加密装置的结构示意图,该装置位于服务端,如图16所示,该装置包括:获取模块71、第一确定模块72、第二确定模块73、第三确定模块74。
获取模块71,用于获取待加密的第二明文和服务端对应的S盒;
第一确定模块72,用于确定用于加密所述第二明文的轮密钥;
第二确定模块73,用于根据服务端对应的S盒、所述第二明文、以及所述轮密钥,确定S盒的输出;
第三确定模块74,用于根据所述S盒的输出,确定服务端对应的第二目标密文。
图17所示装置可以执行前述实施例中服务端设备执行的步骤,详细的执行过程和技术效果参见前述实施例中的描述,在此不再赘述。
在一个可能的设计中,在一个可能的设计中,上述图17所示两方协同的加密装置的结构可实现为一电子设备,如图18所示,该电子设备可以包括:第四处理器81、第四存储器82、第四通信接口83。其中,第四存储器82上存储有可执行代码,当所述可执行代码被第四处理器81执行时,使第四处理器81至少可以实现如前述实施例中服务端设备执行的步骤。
另外,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被设备的处理器执行时,使所述处理器至少可以实现如前述实施例中提供的两方协同的加密方法。
图19为本发明实施例提供的一种两方协同的解密装置的结构示意图,该装置位于一客户端设备,如图19所示,该装置包括:获取模块91、第一确定模块92、第二确定模块93、第三确定模块94。
获取模块91,用于获取待解密的第一密文和客户端对应的S盒;
第一确定模块92,用于确定用于解密所述第一密文的轮密钥;
第二确定模块93,用于根据所述客户端对应的S盒、所述第一密文、以及所述轮密钥,确定S盒的输出;
第三确定模块94,用于根据所述S盒的输出,确定客户端对应的第一目标明文。
图19所示装置可以执行前述实施例中客户端设备执行的步骤,详细的执行过程和技术效果参见前述实施例中的描述,在此不再赘述。
在一个可能的设计中,上述图19所示两方协同的解密装置的结构可实现为一电子设备,如图20所示,该电子设备可以包括:第五处理器101、第五存储器102、第五通信接口103。其中,第五存储器102上存储有可执行代码,当所述可执行代码被第五处理器101执行时,使第五处理器101至少可以实现如前述实施例中客户端设备执行的步骤。
另外,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器至少可以实现如前述实施例中提供的两方协同的解密方法。
图21为本发明实施例提供的一种两方协同的解密装置的结构示意图,该装置位于服务端,如图21所示,该装置包括:获取模块111、第一确定模块112、第二确定模块113、第三确定模块114。
获取模块111,用于获取待解密的第二明文和服务端对应的S盒;
第一确定模块112,用于确定用于解密所述第二明文的轮密钥;
第二确定模块113,用于根据服务端对应的S盒、所述第二明文、以及所述轮密钥,确定S盒的输出;
第三确定模块114,用于根据所述S盒的输出,确定服务端对应的第二目标密文。
图21所示装置可以执行前述实施例中服务端设备执行的步骤,详细的执行过程和技术效果参见前述实施例中的描述,在此不再赘述。
在一个可能的设计中,在一个可能的设计中,上述图21所示两方协同的解密装置的结构可实现为一电子设备,如图22所示,该电子设备可以包括:第六处理器121、第六存储器122、第六通信接口123。其中,第六存储器122上存储有可执行代码,当所述可执行代码被第六处理器121执行时,使第六处理器121至少可以实现如前述实施例中服务端设备执行的步骤。
另外,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被设备的处理器执行时,使所述处理器至少可以实现如前述实施例中提供的两方协同的解密方法。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (16)

1.一种两方协同的S盒生成方法,其特征在于,应用于客户端,包括:
获取待处理信息;
对所述待处理信息进行加密,获得所述待处理信息所对应的第一加密密文;
将所述第一加密密文发送至服务端,以使得服务端基于第一加密密文获得第一同态运算结果;
随机生成一个第一多项式;
对所述第一多项式进行加密,获得所述第一多项式所对应的第二加密密文;
将所述第二加密密文发送至服务端,以使得服务端基于所述第二加密密文获得第二同态运算结果;
接收服务端发送的第一同态运算结果、第二同态运算结果、第一目标值;
根据所述第一同态运算结果、所述第二同态运算结果、所述第一目标值,生成客户端对应的S盒。
2.根据权利要求1所述的方法,其特征在于,所述对所述待处理信息进行加密,获得所述待处理信息所对应的第一加密密文,包括:
根据同态加密算法,随机生成用于加密的第一公钥;
基于所述第一公钥对所述待处理信息进行加密,获得所述待处理信息所对应的第一加密密文。
3.根据权利要求1所述的方法,其特征在于,所述对所述第一多项式进行加密,获得所述第一多项式所对应的第二加密密文,包括:
根据同态加密算法,随机生成用于加密的第二公钥;
基于所述第二公钥对所述第一多项式进行加密,获得所述第一多项式所对应的第二加密密文。
4.根据权利要求1-3中任意一项所述的方法,其特征在于,所述根据所述第一同态运算结果、所述第二同态运算结果、所述第一目标值,生成客户端对应的S盒,包括:
获取与所述第一同态运算结果相对应的第一私钥、与所述第二同态运算结果相对应的第二私钥;
基于所述第一私钥,对所述第一同态运算结果进行解密,获得第一中间值;
基于所述第二私钥,对所述第二同态运算结果进行解密,获得第二中间值;
根据所述第一中间值、所述第二中间值、所述第一目标值,确定客户端对应的S盒。
5.根据权利要求4所述的方法,其特征在于,所述根据所述第一中间值、所述第二中间值、所述第一目标值,确定客户端对应的S盒,包括:
根据所述第一中间值和第二中间值,确定第二目标值;
基于所述第一目标值和所述第二目标值,确定客户端对应的S盒。
6.根据权利要求5所述的方法,其特征在于,所述基于所述第一目标值和所述第二目标
值,确定客户端对应的S盒,包括:
基于所述第一目标值和所述第二目标值,确定最终目标值;
获取所述最终目标值的模运算结果、以及所述模运算结果与矩阵系数的乘积值;
将所述乘积值与系统向量之和确定为客户端对应的S盒。
7.一种两方协同的S盒生成方法,其特征在于,应用于服务端,包括:
获取待处理信息、用于对所述待处理信息进行同态运算的第二多项式和第三多项式;
接收客户端发送的第一加密密文;
基于所述第二多项式确定第三中间值;
接收所述客户端发送的第二加密密文;
基于所述第三多项式确定第四中间值;
接收所述客户端发送的第二目标值;
根据所述第三中间值、所述第四中间值、所述第二目标值,生成服务端对应的S盒。
8.根据权利要求7所述的方法,其特征在于,所述接收客户端发送的第一加密密文之后,所述方法还包括:
根据所述待处理信息、所述第一加密密文、所述第二多项式,确定第一同态运算结果;
将所述第一同态运算结果发送至所述客户端。
9.根据权利要求7所述的方法,其特征在于,所述接收所述客户端发送的第二加密密文之后,所述方法还包括:
随机生成一个第四多项式;
根据所述第二加密密文、所述第三多项式、所述第四多项式,确定第二同态运算结果;
将所述第二同态运算结果发送至所述客户端。
10.根据权利要求7所述的方法,其特征在于,所述根据所述第三中间值、所述第四中间值、所述第二目标值,生成服务端对应的S盒,包括:
根据所述第三中间值和第四中间值,确定第一目标值;
根据所述第一目标值和所述第二目标值,确定服务端对应的S盒。
11.根据权利要求10所述的方法,其特征在于,所述根据所述第一目标值和所述第二目标值,确定服务端对应的S盒,包括:
基于所述第一目标值和所述第二目标值,确定最终目标值;
获取所述最终目标值的模运算结果、以及所述模运算结果与矩阵系数的乘积值;
将所述乘积值确定为服务端对应的S盒。
12.一种两方协同的加密方法,其特征在于,应用于客户端,包括:
获取待加密的第一明文和客户端对应的S盒;
确定用于加密所述第一明文的轮密钥;
根据所述客户端对应的S盒、所述第一明文、以及所述轮密钥,确定S盒的输出;
根据所述S盒的输出,确定客户端对应的第一目标密文。
13.根据权利要求12所述的方法,其特征在于,所述根据所述客户端对应的S盒、所述第一明文、以及所述轮密钥,确定S盒的输出,包括:
根据所述第一明文和所述轮密钥,确定S盒的待处理信息;
利用客户端对应的S盒,确定所述待处理信息所对应的S盒的输出。
14.根据权利要求12所述的方法,其特征在于,所述方法还包括:
获取服务端对应的第二目标密文;
基于所述服务端对应的第二目标密文以及所述客户端对应的第一目标密文,确定目标密文。
15.一种两方协同的加密方法,其特征在于,应用于服务端,包括:
获取待加密的第二明文和服务端对应的S盒;
确定用于加密所述第二明文的轮密钥;
根据服务端对应的S盒、所述第二明文、以及所述轮密钥,确定S盒的输出;
根据所述S盒的输出,确定服务端对应的第二目标密文。
16.一种非暂时性机器可读存储介质,其特征在于,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被处理器执行时,使所述处理器执行如权利要求1至9中任一项所述两方协同的S盒生成方法。
CN202211016582.3A 2022-08-24 2022-08-24 两方协同的s盒生成方法、加密方法和存储介质 Active CN115102689B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211016582.3A CN115102689B (zh) 2022-08-24 2022-08-24 两方协同的s盒生成方法、加密方法和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211016582.3A CN115102689B (zh) 2022-08-24 2022-08-24 两方协同的s盒生成方法、加密方法和存储介质

Publications (2)

Publication Number Publication Date
CN115102689A true CN115102689A (zh) 2022-09-23
CN115102689B CN115102689B (zh) 2022-11-15

Family

ID=83299848

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211016582.3A Active CN115102689B (zh) 2022-08-24 2022-08-24 两方协同的s盒生成方法、加密方法和存储介质

Country Status (1)

Country Link
CN (1) CN115102689B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116915406A (zh) * 2023-09-14 2023-10-20 北京电子科技学院 电子投标文件的协同解密开标方法、存储介质及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104158796A (zh) * 2014-07-11 2014-11-19 中国科学院信息工程研究所 分组密码抗线性攻击安全性的评估方法
CN110336658A (zh) * 2019-07-01 2019-10-15 武汉能钠智能装备技术股份有限公司 基于aes算法的加密方法、用户设备、存储介质及装置
US20190363871A1 (en) * 2017-12-15 2019-11-28 Seoul National University R&Db Foundation Terminal device performing homomorphic encryption, server device processing ciphertext and methods thereof
CN111314050A (zh) * 2018-12-11 2020-06-19 北京思源理想控股集团有限公司 一种加解密方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104158796A (zh) * 2014-07-11 2014-11-19 中国科学院信息工程研究所 分组密码抗线性攻击安全性的评估方法
US20190363871A1 (en) * 2017-12-15 2019-11-28 Seoul National University R&Db Foundation Terminal device performing homomorphic encryption, server device processing ciphertext and methods thereof
CN111314050A (zh) * 2018-12-11 2020-06-19 北京思源理想控股集团有限公司 一种加解密方法及装置
CN110336658A (zh) * 2019-07-01 2019-10-15 武汉能钠智能装备技术股份有限公司 基于aes算法的加密方法、用户设备、存储介质及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
YEHUDA LINDELL: "Fast Secure Two-Party ECDSA Signing", 《37TH ANNUAL INTERNATIONAL CRYPTOLOGY CONFERENCE》 *
杨伊等: "密钥管理服务系统下的多方协同SM4加/ 解密方案", 《技术研究》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116915406A (zh) * 2023-09-14 2023-10-20 北京电子科技学院 电子投标文件的协同解密开标方法、存储介质及电子设备
CN116915406B (zh) * 2023-09-14 2023-12-01 北京电子科技学院 电子投标文件的协同解密开标方法、存储介质及电子设备

Also Published As

Publication number Publication date
CN115102689B (zh) 2022-11-15

Similar Documents

Publication Publication Date Title
CN111314089B (zh) 一种基于sm2的两方协同签名方法及解密方法
US9172529B2 (en) Hybrid encryption schemes
Almajed et al. SE-ENC: A secure and efficient encoding scheme using elliptic curve cryptography
CN111342976A (zh) 一种可验证的理想格上门限代理重加密方法及系统
Peng Danger of using fully homomorphic encryption: A look at Microsoft SEAL
CN111639345B (zh) 基于同态加密的安全的多方云计算的方法和系统
Nunez Umbral: a threshold proxy re-encryption scheme
CN111786786A (zh) 云计算环境下支持等式判定的代理重加密方法及系统
CN114268439A (zh) 一种基于格的身份基认证密钥协商方法
CN115102689B (zh) 两方协同的s盒生成方法、加密方法和存储介质
US20230041237A1 (en) Key generation and pace with protection against side channel attacks
CN116346336B (zh) 一种基于多层密钥生成中心的密钥分发方法及相关系统
CN114362912A (zh) 基于分布式密钥中心的标识密码生成方法、电子设备及介质
EP2571192A1 (en) Hybrid encryption schemes
CN114826611B (zh) 一种基于国密SM9的IND-sID-CCA2安全标识广播加密方法
CN108768923A (zh) 一种基于量子可逆逻辑线路的加密算法的聊天实时加密方法
CN114070549A (zh) 一种密钥生成方法、装置、设备和存储介质
JP3694242B2 (ja) 署名付き暗号通信方法及びその装置
Kumar et al. A comparative analysis of encryption algorithms for better utilization
Dugardin et al. A New Fair Identity Based Encryption Scheme
CN116781243B (zh) 一种基于同态加密的不经意传输方法、介质及电子设备
CN116170131B (zh) 密文处理方法、装置、存储介质及可信执行设备
Soman Lightweight Elliptical Curve Cryptography (ECC) for Data Integrity and User Authentication in Smart Transportation IoT System
Beck Randomized decryption (RD) mode of operation for homomorphic cryptography-increasing encryption, communication and storage efficiency
JP3464153B2 (ja) 暗号通信方法及び暗号通信システム

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