CN108599951B - 加密方法、加密装置、计算设备及计算机存储介质 - Google Patents

加密方法、加密装置、计算设备及计算机存储介质 Download PDF

Info

Publication number
CN108599951B
CN108599951B CN201810911331.9A CN201810911331A CN108599951B CN 108599951 B CN108599951 B CN 108599951B CN 201810911331 A CN201810911331 A CN 201810911331A CN 108599951 B CN108599951 B CN 108599951B
Authority
CN
China
Prior art keywords
public key
encrypted
data
key index
generating
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
CN201810911331.9A
Other languages
English (en)
Other versions
CN108599951A (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 Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology 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 Qihoo Technology Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201810911331.9A priority Critical patent/CN108599951B/zh
Publication of CN108599951A publication Critical patent/CN108599951A/zh
Application granted granted Critical
Publication of CN108599951B publication Critical patent/CN108599951B/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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明公开了一种加密方法及装置。其中,方法包括:预先生成多个公钥指数元素,根据多个公钥指数元素生成公钥指数;根据公钥指数生成对应的公钥模数;获取待加密数据,分别以各个公钥指数元素为预设算法的第一参数,公钥模数为预设算法的第二参数,采用预设算法对待加密数据进行处理,得到各个处理结果;根据各个处理结果生成与待加密数据对应的密文。本方案中密钥与加密算法相耦合,从而避免了现有技术中密钥与算法分离而引起的密钥易被破译者获得且快速破译密文的的弊端,从而提升逆向破译难度,提高数据安全性。

Description

加密方法、加密装置、计算设备及计算机存储介质
技术领域
本发明涉及计算机技术领域,具体涉及一种加密方法及装置。
背景技术
随着科学及社会的不断发展,各类数据呈现井喷式的增长,但同时威胁数据安全性的情况也不断发生。为保障数据的安全性,技术人员通常采用相应的加密算法对数据进行加密。例如,若需对某一应用的数据进行安全性防护时,通常需通过相应的加密算法来对该应用进行加密,从而保障该应用不易被破译者通过逆向算法获得与该应用相关的数据信息。
目前,通常使用的加密方法主要有对称加密算法及非对称加密算法,而大多数的对称加密算法及非对称加密算法中的密钥与算法分离,从而使得破译者易获得密钥并可轻易快速地破译密文,从而大大降低数据的安全性。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的加密方法及装置。
根据本发明的一个方面,提供了一种加密方法,包括:
预先生成多个公钥指数元素,根据所述多个公钥指数元素生成公钥指数;
根据所述公钥指数生成对应的公钥模数;
获取待加密数据,分别以各个公钥指数元素为预设算法的第一参数,公钥模数为预设算法的第二参数,采用预设算法对所述待加密数据进行处理,得到各个处理结果;
根据所述各个处理结果生成与所述待加密数据对应的密文。
根据本发明的另一方面,提供了一种加密装置,包括:
公钥指数元素生成模块,适于预先生成多个公钥指数元素;
公钥指数生成模块,适于根据所述多个公钥指数元素生成公钥指数;
公钥模数生成模块,适于根据所述公钥指数生成对应的公钥模数;
获取模块,适于获取待加密数据;
处理模块,适于分别以各个公钥指数元素为预设算法的第一参数,公钥模数为预设算法的第二参数,采用预设算法对所述待加密数据进行处理,得到各个处理结果;
密文生成模块,适于根据所述各个处理结果生成与所述待加密数据对应的密文。
根据本发明的又一方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述加密方法对应的操作。
根据本发明的再一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述加密方法对应的操作。
根据本发明提供的加密方法及装置。首先预先生成多个公钥指数元素,根据多个公钥指数元素生成公钥指数;根据公钥指数生成对应的公钥模数;获取待加密数据,分别以各个公钥指数元素为预设算法的第一参数,公钥模数为预设算法的第二参数,采用预设算法对待加密数据进行处理,得到各个处理结果;根据各个处理结果生成与待加密数据对应的密文。本方案中将公钥指数拆分为多个公钥指数元素,并通过该多个公钥指数元素与公钥模数对待加密数据的处理,获得与待加密数据对应的密文,从而使得密钥与加密算法相耦合,避免了现有技术中密钥与算法分离而引起的密钥易被破译者获得且快速破译密文的弊端,进而提升逆向破译难度,提高数据安全性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例提供的一种加密方法的流程示意图;
图2示出了根据本发明另一个实施例提供的一种加密方法的流程示意图;
图3示出了根据本发明又一个实施例提供的一种加密方法的流程示意图;
图4示出了根据本发明一个实施例提供的一种加密装置的功能结构示意图;
图5示出了根据本发明一个实施例提供的一种计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例提供的一种加密方法的流程示意图。如图1所示,该方法包括:
步骤S110,预先生成多个公钥指数元素,根据多个公钥指数元素生成公钥指数。
本发明提供的加密方法可以是一种加密密码为公开密码,而解密密码为私密密码的加密算法。通过对待加密数据进行模幂运算之后,获得对应的加密密文,即通过公式1-1实现对数据的加密:
ME mod N=C (公式1-1)
其中,M为待加密数据,E为公钥指数,N为公钥模数,C为与待加密数据M对应的密文。
本实施例不同于现有技术中直接选取一数值作为公钥指数,而是将公钥指数拆分为多个公钥指数元素,根据预先生成的公钥指数元素,生成对应的公钥指数。
其中,本实施例对公钥指数元素的个数不做限定,当公钥指数元素个数较多时,会提高生成的密钥与算法的耦合度,并能增加破译者的逆向难度,有助于数据安全性的提升;但若选取的公钥指数元素过多时,则将增加加密过程中的计算量,从而降低加密效率。所以,本领域技术人员可根据实际的情况选择相应个数的公钥指数元素,例如,在兼顾数据安全性及计算效率的基础上,本实施例中选用的公钥指数元素的个数为3个。
步骤S120,根据公钥指数生成对应的公钥模数。
具体地,根据步骤S110中确定的公钥指数生成对应的公钥模数。例如,可选取两个大素数p及q,并使得(p-1)*(q-1)与步骤S110确定的公钥指数互质,并将两个大素数p与q的乘积作为对应的公钥模数。
步骤S130,获取待加密数据,分别以各个公钥指数元素为预设算法的第一参数,公钥模数为预设算法的第二参数,采用预设算法对所述待加密数据进行处理,得到各个处理结果。
首先,获取待加密数据,其中,本实施例对加密数据的具体类型不做限定。例如,加密数据可以为应用中的用户信息和/或应用中的核心代码等等。
进一步地,采用预设算法对待加密数据进行处理。以基于RSA算法的加密算法为例,本实施例中的预设算法与RSA算法相关。具体地,预设算法中包含第一参数及第二参数,则可将每个公钥指数元素分别作为第一参数,公钥模数作为第二参数,采用预设算法对待加密数据进行处理,从而得到各个处理结果。其中,获得的各个处理结果与各个公钥指数元素一一对应。
举例来说,若公钥指数元素为Ei(i=1、2……n,其中,n为公钥指数元素的个数),公钥模数为N,待加密数据为M,预设算法为f(x,y,z),则f(Ei,N,M)为以第一参数为Ei,第二参数为N的预设算法f(x,y,z)对加密数据M处理后获得的处理结果。
步骤S140,根据各个处理结果生成与待加密数据对应的密文。
具体地,根据步骤S130获得的各个处理结果,通过相应的处理方法生成与待加密数据对应的密文。其中,本实施例对具体的处理方法不做限定,例如,可将各个处理结果的乘积对公钥指数进行模运算之后获得的结果作为与待加密数据对应的密文。
由此可见,本实施例中将公钥指数拆分为多个公钥指数元素,从而通过预先生成多个公钥指数元素生成公钥指数,并根据公钥指数生成对应的公钥模数;获取待加密数据,分别以各个公钥指数元素为预设算法的第一参数,公钥模数为预设算法的第二参数,采用预设算法对待加密数据进行处理,得到各个处理结果;根据各个处理结果生成与待加密数据对应的密文。本方案中将公钥指数拆分为多个公钥指数元素,并通过该多个公钥指数元素与公钥模数对待加密数据的处理,获得与待加密数据对应的密文,从而使得密钥与加密算法相耦合,避免了现有技术中密钥与算法分离而引起的密钥易被破译者获得且易破解密文的弊端,从而提升逆向破译难度,提高数据安全性。
图2示出了根据本发明另一个实施例提供的一种加密方法的流程示意图。如图2所示,该方法包括:
步骤S210,预先生成多个公钥指数元素,根据多个公钥指数元素生成公钥指数。
具体地,为实现加密算法白盒化,提升逆向难度,提高数据安全性,本实施例中的多个公钥指数元素中包含有第一类公钥指数元素以及第二类公钥指数元素。第一类公钥指数元素可动态获取,而第二类公钥指数元素存储于终端本地。其中,多个公钥指数元素的总个数、以及第一类公钥指数元素及第二类公钥指数元素的个数或占比,本领域技术人员可自行设置,本实施例对此不做限定。
在生成多个公钥指数元素过程中,首先需确定第一类公钥指数元素。具体地,根据待加密数据对应的应用信息生成第一类公钥指数元素。例如,第一类公钥指数元素可以为应用的包名、版本号、和/或创建时间等信息通过相应的算法(如哈希算法等)后获得的大整数等。其次,在确定第一类公钥指数元素之后,根据第一类公钥指数元素生成第二类公钥指数元素,并使得各个公钥指数元素组合得到的公钥指数为素数。
进一步地,根据多个公钥指数元素生成公钥指数。具体地,将多个公钥指数元素的和作为公钥指数。
步骤S220,根据公钥指数生成对应的公钥模数以及私钥元素。
具体地,基于标准的RSA算法根据步骤S210中确定的公钥指数生成对应的公钥模数。例如,可选取两个大素数p及q,并使得(p-1)*(q-1)与步骤S210确定的公钥指数互质,并将两个大素数p与q的乘积作为对应的公钥模数;并根据公钥指数和/或公钥模数,生成对应的私钥元素,例如,根据(D*E)mod((p-1)*(q-1))=1,确定私钥元素D,其中,E为公钥指数。
进一步地,在公钥模数以及私钥元素生成后,将公钥模数与步骤S220中的第二类公钥指数元素一并存储于终端本地,从而可供终端对待加密数据进行加密;而将公钥模数与私钥元素一并存储于服务端,从而可供服务端根据该公钥模数与私钥元素对密文进行解密。
步骤S230,获取待加密数据。
其中,本实施例对待加密数据的数据类型、数据内容、以及数据大小等不做限定,例如,待加密数据可以为某一应用中的用户信息(如用户名及密码),也可以为某一应用的核心代码等等。
步骤S240,根据待加密数据对应的应用信息动态获取第一类公钥指数,并获取本地存储的第二类公钥指数元素及公钥模数。
在对待加密数据进行加密过程中,可根据待加密数据对应的应用信息动态获取第一类公钥指数,并获取预先存储与终端本地的第二类公钥指数元素及公钥模数。
步骤S250,分别以各个公钥指数元素为预设算法的第一参数,公钥模数为预设算法的第二参数,采用预设算法对待加密数据进行处理,得到各个处理结果。
其中,预设算法为模幂运算,第一参数为幂参数,第二参数为模参数。则分别以各个公钥指数元素为幂参数,公钥模数为模参数,对待加密数据进行模幂运算,获得与各个公钥指数元素一一对应的模幂运算结果。具体地,通过以下公式2-1获得各个处理结果:
f(Ei,N,M)=MEimodN (公式2-1)
其中,f(Ei,N,M)为以公钥指数元素Ei为幂参数,以公钥模数N为模参数,对待加密数据M进行模幂运算后获得的模幂运算结果,i=1、2…n,n为公钥指数元素的个数。
步骤S260,根据各个处理结果生成与待加密数据对应的密文。
具体地,计算步骤S250中获得的各个处理结果的乘积,并进一步地以公钥模数为模参数,对该乘积进行模运算。即通过公式2-2生成与待加密数据对应的密文:
Figure GDA0002891663510000081
其中,C为与待加密数据M对应的密文,N为公钥模数,f(Ei,N,M)为以公钥指数元素Ei为幂参数,公钥模数N为模参数,对待加密数据M进行模幂运算后获得的模幂运算结果。
进一步地,本步骤可以与步骤S250合并执行,从而可将公式2-1与公式2-2合并得到公式2-3。所以,在获得各个公钥指数元素及公钥模数之后,可直接根据公式2-3生成与待加密数据对应的密文:
Figure GDA0002891663510000082
其中,C为与待加密数据M对应的密文,N为公钥模数,Ei为公钥指数元素,i=1、2…n,n为公钥指数元素的个数。
根据公式2-3,结合模幂运算规则(a*b)mod c=[(a mod c)*(b mod c)]mod c可将公式2-3转换为标准的RSA算法公式(见公式1-1),具体的转换过程如下:
Figure GDA0002891663510000083
在一种可选的实施方式中,为进一步地提高数据安全性,增加逆向难度,本实施例中还设置有干扰项及与干扰项对应的干扰修正项,则本步骤中根据各个处理结果、干扰项及对应的干扰修正项生成与待加密数据对应的密文。本实施例对干扰项、干扰修正项的具体设置方法不做限定,本领域技术人员可根据实际的业务需求自行设置。例如,可通过以下公式2-4生成与待加密数据对应的密文:
Figure GDA0002891663510000091
其中,random_factor为干扰项,random_factor.inverse_mod N为干扰修正项。
可选的,干扰项及干扰修正项可根据预先设定的干扰指数元素确定。例如,干扰项random_factor=Mk mod N,random_factor.inverse_modN为Mk的以N为模参数的模逆元素,即random_factor*random_factor.inverse_mod N=1,其中,k为预先设定的干扰指数元素。
由此可见,本实施例将多个公钥指数元素中的第一类公钥指数元素与应用信息绑定,而将第二类公钥指数元素及公钥模数存储于终端本地,从而在对待加密数据进行加密时,可根据应用信息动态获取第一类公钥指数元素,从而实现加密算法的白盒化,并根据动态获取的第一类公钥指数元素及存储的第二类公钥指数元素以及公钥模数对待加密数据进行加密,从而增加数据安全性,提升逆向难度。
并且,本实施例在对待加密数据加密过程中,根据各个公钥指数元素的和生成公钥指数,进而获得公钥模数及私钥元素;通过以各个公钥指数元素为模幂运算的幂参数,公钥模数为模幂运算的模参数,分别对待加密数据进行模幂运算,从而获得各个模幂运算结果,继而根据各个模幂运算结果的乘积对公钥模数求模运算后获得最终的密文,从而可基于RSA算法,实现加密算法与密钥的耦合,避免现有技术中密钥与算法分离而引起的密钥易被破译者获得且易破解密文的弊端,进而提升逆向破译难度,提高数据安全性。
此外,本实施例中,还可在加密过程中添加相应的干扰项及干扰修正项,从而进一步地干扰破译者的逆向逻辑,提升逆向难度,提高数据的安全性。
图3示出了根据本发明又一个实施例提供的一种加密方法的流程示意图。如图3所示,该方法包括:
步骤S310,预先生成多个公钥指数元素,根据多个公钥指数元素生成公钥指数。
其中,多个公钥指数元素中包含有第一类公钥指数元素以及第二类公钥指数元素。第一类公钥指数元素可动态获取,而第二类公钥指数元素存储于终端本地。具体可参照步骤S210中相应描述。
步骤S320,根据公钥指数生成对应的公钥模数以及私钥元素。
具体地,基于标准的RSA算法根据步骤S310中确定的公钥指数生成对应的公钥模数及私钥元素。具体可参照步骤S220中相应描述。
步骤S330,获取待加密数据,并将该待加密数据拆分为多个待加密数据元素。
为进一步地扰乱破译者的逆向逻辑,提高破译的逆向难度,本实施例在获取待加密数据之后,进一步地将待加密数据拆分为多个待加密数据元素。并使得拆分出的多个待加密数据元素的乘积等于待加密数据。
其中,本实施例对具体的待加密数据的拆分方法不做限定,本领域技术人员可根据实际的需求自行设置。例如,可以根据待加密数据与特定数字的运算关系,将待加密数据拆分为多个待加密数据元素。
举例来说,本实施例综合加密效果以及加密方法的执行效率,确定待加密数据元素的个数为3个,而设定特定数字为2。则若待加密数据M未能被2整除,则将M拆分为1、1及M;若待加密数据M能被2整除1次,则将M拆分为1、2及M/2;若待加密数据M能被2整除多次,则将M拆分为2*h1、2*h2及M/(4*h1*h2)。
步骤S340,根据待加密数据对应的应用信息动态获取第一类公钥指数,并获取本地存储的第二类公钥指数元素及公钥模数。
具体可参照步骤S240。
步骤S350,分别以各个公钥指数元素为预设算法的第一参数,公钥模数为预设算法的第二参数,采用预设算法对多个待加密数据元素进行处理,得到各个处理结果。
具体地,分别以各个公钥指数元素为幂参数,公钥模数为模参数,对待加密数据进行模幂运算,获得与各个公钥指数元素及各个待加密数据元素的组合一一对应的模幂运算结果。具体地,通过以下公式2-1获得各个处理结果:
f(Ei,N,Mj)=Mj Eimod N (公式3-1)
其中,f(Ei,N,Mj)为以公钥指数元素Ei为幂参数,以公钥模数N为模参数,对待加密数据元素Mj进行模幂运算后获得的模幂运算结果,i=1、2…n,n为公钥指数元素的个数;j=1、2…m,m为待加密数据元素的个数。
步骤S360,根据各个处理结果生成与待加密数据对应的密文。
具体地,计算步骤S350中获得的各个处理结果的乘积,并进一步地以公钥模数为模参数,对该乘积进行模运算。即通过公式3-2生成与待加密数据对应的密文:
Figure GDA0002891663510000111
其中,C为与待加密数据M对应的密文,N为公钥模数,f(Ei,N,Mj)为以公钥指数元素Ei为幂参数,以公钥模数N为模参数,对待加密数据元素Mj进行模幂运算后获得的模幂运算结果。
进一步地,本步骤可以与步骤S350并行执行,从而可将公式3-1与公式3-2合并得到公式3-3。所以,在获得各个公钥指数元素、公钥模数以及各个待加密数据元素之后,可直接根据公式3-3生成与待加密数据对应的密文:
Figure GDA0002891663510000121
其中,C为与待加密数据M对应的密文,N为公钥模数,Ei为公钥指数元素,i=1、2…n,n为公钥指数元素的个数,Mj为第j个待加密数据元素,j=1、2…m,m为待加密数据元素的个数。
在一种可选的实施方式中,为进一步地提高数据安全性,增加逆向难度,本实施例中还设置有干扰项及与干扰项对应的干扰修正项,则可通过以下公式3-4生成与待加密数据对应的密文:
Figure GDA0002891663510000122
其中,r_factor为干扰项,r_factor.inverse_modN为干扰修正项,r_factor*r_factor.inverse_modN=1。
可选的,干扰项及干扰修正项可根据预先设定的干扰指数元素确定。例如,干扰项r_factor可由公式3-5获得,r_factor.inverse_mod可由公式3-6获得:
Figure GDA0002891663510000131
Figure GDA0002891663510000132
其中,k为预先设定的干扰指数元素。
由此可见,本实施例进一步地将待加密数据拆分为多个待加密数据的和,并利用动态获取的第一类公钥指数元素、本地存储的第二类公钥指数元素及公钥模数,通过模幂运算获得与各个公钥指数元素及待加密数据元素的组合一一对应的处理结果,并根据各个处理结果的乘积对公钥模数求模后获得最终的密文,从而可在图2所示实施例提供的加密方法的基础上进一步地提高逆向难度,保证数据安全性;并且,还可在加密过程中添加相应的干扰元素及干扰修正项,从而进一步地干扰破译者的逆向逻辑,提升逆向难度,提高数据的安全性。
图4示出了根据本发明一个实施例提供的一种加密装置的功能结构示意图。如图4所示,该装置包括:公钥指数元素生成模块41、公钥指数生成模块42、公钥模数生成模块43、获取模块44、处理模块45以及密文生成模块46。
其中,公钥指数元素生成模块41,适于预先生成多个公钥指数元素;
公钥指数生成模块42,适于根据所述多个公钥指数元素生成公钥指数;
公钥模数生成模块43,适于根据所述公钥指数生成对应的公钥模数;
获取模块44,适于获取待加密数据;
处理模块45,适于分别以各个公钥指数元素为预设算法的第一参数,公钥模数为预设算法的第二参数,采用预设算法对所述待加密数据进行处理,得到各个处理结果;
密文生成模块46,适于根据所述各个处理结果生成与所述待加密数据对应的密文。
可选的,所述多个公钥指数元素包括第一类公钥指数元素以及第二类公钥指数元素;其中,所述第一类公钥指数元素根据所述待加密数据对应的应用信息生成;所述第二类公钥指数元素根据所述第一类公钥指数元素生成。
可选的,所述第二类公钥指数元素及所述公钥模数存储于终端本地;
则处理模块45进一步适于:根据所述待加密数据对应的应用信息动态获取第一类公钥指数;以及,获取本地存储的第二类公钥指数元素及所述公钥模数。
可选的,所述装置还包括:干扰设置模块(图中未示出),适于设置干扰项以及与所述干扰项对应的干扰修正项;
则密文生成模块46进一步适于:根据所述各个处理结果、所述干扰项及所述干扰修正项生成与所述待加密数据对应的密文。
可选的,所述预设算法为模幂运算,所述第一参数为幂参数,所述第二参数为模参数;
密文生成模块46进一步适于:将所述各个处理结果的乘积以所述公钥模数为模参数进行模运算之后的结果确定为与所述待加密数据对应的密文。
可选的,公钥指数生成模块42进一步适于:根据所述多个公钥指数元素之和生成公钥指数。
可选的,该装置还包括:数据拆分模块(图中未示出),适于将所述待加密数据拆分为多个待加密数据元素;
则处理模块45进一步适于:采用预设算法分别对所述多个待加密数据元素进行处理。
可选的,数据拆分模块进一步适于:根据所述待加密数据与特定数字的运算关系,将所述待加密数据拆分为多个待加密数据元素。
可选的,所述多个待加密元素的乘积等于所述待加密数据。
可选的,该装置还包括:私钥生成模块(图中未示出),适于根据所述公钥指数和/或所述公钥模数,生成对应的私钥元素,以供服务器根据所述私钥元素及所述公钥模数对所述密文进行解密。
由此可见,本装置将公钥指数拆分为多个公钥指数元素,从而通过预先生成多个公钥指数元素生成公钥指数,并根据公钥指数生成对应的公钥模数;获取待加密数据,分别以各个公钥指数元素为预设算法的第一参数,公钥模数为预设算法的第二参数,采用预设算法对待加密数据进行处理,得到各个处理结果;根据各个处理结果生成与待加密数据对应的密文。本装置中将公钥指数拆分为多个公钥指数元素,并通过该多个公钥指数元素与公钥模数对待加密数据的处理,获得与待加密数据对应的密文,从而使得密钥与加密算法相耦合,避免了现有技术中密钥与算法分离而引起的密钥易被破译者获得且易破解密文的弊端,从而提升逆向破译难度,提高数据安全性。
根据本申请一个实施例提供的一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的加密方法。
图5示出了根据本发明一个实施例提供的一种计算设备的结构示意图,本发明具体实施例并不对计算设备的具体实现做限定。
如图5所示,该计算设备可以包括:处理器(processor)502、通信接口(Communications Interface)504、存储器(memory)506、以及通信总线508。
其中:
处理器502、通信接口504、以及存储器506通过通信总线508完成相互间的通信。
通信接口504,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器502,用于执行程序510,具体可以执行上述加密方法实施例中的相关步骤。
具体地,程序510可以包括程序代码,该程序代码包括计算机操作指令。
处理器502可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器506,用于存放程序510。存储器506可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序510具体可以用于使得处理器502执行以下操作:
预先生成多个公钥指数元素,根据所述多个公钥指数元素生成公钥指数;根据所述公钥指数生成对应的公钥模数;获取待加密数据,分别以各个公钥指数元素为预设算法的第一参数,公钥模数为预设算法的第二参数,采用预设算法对所述待加密数据进行处理,得到各个处理结果;根据所述各个处理结果生成与所述待加密数据对应的密文。
在一种可选的实施方式中,所述多个公钥指数元素包括第一类公钥指数元素以及第二类公钥指数元素;其中,所述第一类公钥指数元素根据所述待加密数据对应的应用信息生成;所述第二类公钥指数元素根据所述第一类公钥指数元素生成。
在一种可选的实施方式中,所述第二类公钥指数元素及所述公钥模数存储于终端本地;
则程序510具体可以用于使得处理器502执行以下操作:
根据所述待加密数据对应的应用信息动态获取第一类公钥指数;
以及,获取本地存储的第二类公钥指数元素及所述公钥模数。
在一种可选的实施方式中,程序510具体可以用于使得处理器502执行以下操作:设置干扰项以及与所述干扰项对应的干扰修正项;
根据所述各个处理结果、所述干扰项及所述干扰修正项生成与所述待加密数据对应的密文。
在一种可选的实施方式中,所述预设算法为模幂运算,所述第一参数为幂参数,所述第二参数为模参数;
程序510具体可以用于使得处理器502执行以下操作:将所述各个处理结果的乘积以所述公钥模数为模参数进行模运算之后的结果确定为与所述待加密数据对应的密文。
在一种可选的实施方式中,程序510具体可以用于使得处理器502执行以下操作:根据所述多个公钥指数元素之和生成公钥指数。
在一种可选的实施方式中,程序510具体可以用于使得处理器502执行以下操作:将所述待加密数据拆分为多个待加密数据元素;
采用预设算法分别对所述多个待加密数据元素进行处理。
在一种可选的实施方式中,程序510具体可以用于使得处理器502执行以下操作:根据所述待加密数据与特定数字的运算关系,将所述待加密数据拆分为多个待加密数据元素。
在一种可选的实施方式中,所述多个待加密元素的乘积等于所述待加密数据。
在一种可选的实施方式中,程序510具体可以用于使得处理器502执行以下操作:根据所述公钥指数和/或所述公钥模数,生成对应的私钥元素,以供服务器根据所述私钥元素及所述公钥模数对所述密文进行解密。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明加密装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (20)

1.一种加密方法,其特征在于,所述方法包括:
预先生成多个公钥指数元素,根据所述多个公钥指数元素生成公钥指数;
根据所述公钥指数生成对应的公钥模数;
获取待加密数据,分别以各个公钥指数元素为预设算法的第一参数,公钥模数为预设算法的第二参数,采用预设算法对所述待加密数据进行处理,得到各个处理结果,其中,所述预设算法为模幂运算,所述第一参数为幂参数,所述第二参数为模参数;
根据所述各个处理结果生成与所述待加密数据对应的密文,所述根据所述各个处理结果生成与所述待加密数据对应的密文进一步包括:
将所述各个处理结果的乘积以所述公钥模数为模参数进行模运算之后的结果确定为与所述待加密数据对应的密文。
2.根据权利要求1所述的方法,其特征在于,所述多个公钥指数元素包括第一类公钥指数元素以及第二类公钥指数元素;
其中,所述第一类公钥指数元素根据所述待加密数据对应的应用信息生成;
所述第二类公钥指数元素根据所述第一类公钥指数元素生成。
3.根据权利要求2所述的方法,其特征在于,所述第二类公钥指数元素及所述公钥模数存储于终端本地;
则在所述分别以各个公钥指数元素为预设算法的第一参数,公钥模数为预设算法的第二参数,采用预设算法对所述待加密数据进行处理之前,所述方法还包括:
根据所述待加密数据对应的应用信息动态获取第一类公钥指数元素;
以及,获取本地存储的第二类公钥指数元素及所述公钥模数。
4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:设置干扰项以及与所述干扰项对应的干扰修正项;
则所述根据所述各个处理结果生成与所述待加密数据对应的密文进一步包括:根据所述各个处理结果、所述干扰项及所述干扰修正项生成与所述待加密数据对应的密文。
5.根据权利要求1所述的方法,其特征在于,所述根据所述多个公钥指数元素生成公钥指数进一步包括:根据所述多个公钥指数元素之和生成公钥指数。
6.根据权利要求1所述的方法,其特征在于,在所述获取待加密数据之后,所述方法还包括:将所述待加密数据拆分为多个待加密数据元素;
则所述采用预设算法对所述待加密数据进行处理进一步包括:
采用预设算法分别对所述多个待加密数据元素进行处理。
7.根据权利要求6所述的方法,其特征在于,所述将所述待加密数据拆分为多个待加密数据元素进一步包括:
根据所述待加密数据与特定数字的运算关系,将所述待加密数据拆分为多个待加密数据元素。
8.根据权利要求6或7所述的方法,其特征在于,所述多个待加密数据元素的乘积等于所述待加密数据。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述公钥指数和/或所述公钥模数,生成对应的私钥元素,以供服务器根据所述私钥元素及所述公钥模数对所述密文进行解密。
10.一种加密装置,其特征在于,所述装置包括:
公钥指数元素生成模块,适于预先生成多个公钥指数元素;
公钥指数生成模块,适于根据所述多个公钥指数元素生成公钥指数;
公钥模数生成模块,适于根据所述公钥指数生成对应的公钥模数;
获取模块,适于获取待加密数据;
处理模块,适于分别以各个公钥指数元素为预设算法的第一参数,公钥模数为预设算法的第二参数,采用预设算法对所述待加密数据进行处理,得到各个处理结果,其中,所述预设算法为模幂运算,所述第一参数为幂参数,所述第二参数为模参数;
密文生成模块,适于根据所述各个处理结果生成与所述待加密数据对应的密文;
所述密文生成模块进一步适于:将所述各个处理结果的乘积以所述公钥模数为模参数进行模运算之后的结果确定为与所述待加密数据对应的密文。
11.根据权利要求10所述的装置,其特征在于,所述多个公钥指数元素包括第一类公钥指数元素以及第二类公钥指数元素;
其中,所述第一类公钥指数元素根据所述待加密数据对应的应用信息生成;
所述第二类公钥指数元素根据所述第一类公钥指数元素生成。
12.根据权利要求11所述的装置,其特征在于,所述第二类公钥指数元素及所述公钥模数存储于终端本地;
则所述处理模块进一步适于:根据所述待加密数据对应的应用信息动态获取第一类公钥指数元素;
以及,获取本地存储的第二类公钥指数元素及所述公钥模数。
13.根据权利要求11或12所述的装置,其特征在于,所述装置还包括:
干扰设置模块,适于设置干扰项以及与所述干扰项对应的干扰修正项;
则所述密文生成模块进一步适于:根据所述各个处理结果、所述干扰项及所述干扰修正项生成与所述待加密数据对应的密文。
14.根据权利要求10所述的装置,其特征在于,所述公钥指数生成模块进一步适于:根据所述多个公钥指数元素之和生成公钥指数。
15.根据权利要求10所述的装置,其特征在于,所述装置还包括:
数据拆分模块,适于将所述待加密数据拆分为多个待加密数据元素;
则所述处理模块进一步适于:采用预设算法分别对所述多个待加密数据元素进行处理。
16.根据权利要求15所述的装置,其特征在于,所述数据拆分模块进一步适于:根据所述待加密数据与特定数字的运算关系,将所述待加密数据拆分为多个待加密数据元素。
17.根据权利要求15或16所述的装置,其特征在于,所述多个待加密数据元素的乘积等于所述待加密数据。
18.根据权利要求10所述的装置,其特征在于,所述装置还包括:私钥生成模块,适于根据所述公钥指数和/或所述公钥模数,生成对应的私钥元素,以供服务器根据所述私钥元素及所述公钥模数对所述密文进行解密。
19.一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-9中任一项所述的加密方法。
20.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1-9中任一项所述的加密方法。
CN201810911331.9A 2018-08-10 2018-08-10 加密方法、加密装置、计算设备及计算机存储介质 Active CN108599951B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810911331.9A CN108599951B (zh) 2018-08-10 2018-08-10 加密方法、加密装置、计算设备及计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810911331.9A CN108599951B (zh) 2018-08-10 2018-08-10 加密方法、加密装置、计算设备及计算机存储介质

Publications (2)

Publication Number Publication Date
CN108599951A CN108599951A (zh) 2018-09-28
CN108599951B true CN108599951B (zh) 2021-10-01

Family

ID=63619012

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810911331.9A Active CN108599951B (zh) 2018-08-10 2018-08-10 加密方法、加密装置、计算设备及计算机存储介质

Country Status (1)

Country Link
CN (1) CN108599951B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112163656A (zh) * 2020-10-09 2021-01-01 朱捷 一种多维码生成方法及装置
CN112580071B (zh) * 2020-12-09 2024-05-14 深圳前海微众银行股份有限公司 一种数据处理方法及装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101346691A (zh) * 2005-12-26 2009-01-14 格姆普拉斯公司 包括安全模幂以避免隐蔽通道攻击的加密方法、用于执行所述方法的加密处理器以及相关的芯片卡
CN101632255A (zh) * 2007-03-12 2010-01-20 爱特梅尔公司 密码方法及系统
CN104488219A (zh) * 2012-03-16 2015-04-01 德国捷德有限公司 用于在射频识别标签和读取设备之间进行安全通信的方法和系统
CN104660400A (zh) * 2013-11-25 2015-05-27 上海复旦微电子集团股份有限公司 一种rsa模幂运算方法和装置
EP2884691A2 (en) * 2010-10-08 2015-06-17 Thomson Licensing Public key encryption system based on the quadratic residuosity assumption
US9590807B2 (en) * 2013-03-28 2017-03-07 Tata Consultancy Services Limited Identity based public key cryptosystem
EP3242202A1 (en) * 2016-05-04 2017-11-08 Gemalto Sa Countermeasure to safe-error fault injection attacks on cryptographic exponentiation algorithms
CN108306730A (zh) * 2018-03-05 2018-07-20 飞天诚信科技股份有限公司 一种在嵌入式系统中生成密钥对的实现方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013085487A1 (en) * 2011-12-05 2013-06-13 Intel Corporation Efficient multiplication, exponentiation and modular reduction implementations

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101346691A (zh) * 2005-12-26 2009-01-14 格姆普拉斯公司 包括安全模幂以避免隐蔽通道攻击的加密方法、用于执行所述方法的加密处理器以及相关的芯片卡
CN101632255A (zh) * 2007-03-12 2010-01-20 爱特梅尔公司 密码方法及系统
EP2884691A2 (en) * 2010-10-08 2015-06-17 Thomson Licensing Public key encryption system based on the quadratic residuosity assumption
CN104488219A (zh) * 2012-03-16 2015-04-01 德国捷德有限公司 用于在射频识别标签和读取设备之间进行安全通信的方法和系统
US9590807B2 (en) * 2013-03-28 2017-03-07 Tata Consultancy Services Limited Identity based public key cryptosystem
CN104660400A (zh) * 2013-11-25 2015-05-27 上海复旦微电子集团股份有限公司 一种rsa模幂运算方法和装置
EP3242202A1 (en) * 2016-05-04 2017-11-08 Gemalto Sa Countermeasure to safe-error fault injection attacks on cryptographic exponentiation algorithms
CN108306730A (zh) * 2018-03-05 2018-07-20 飞天诚信科技股份有限公司 一种在嵌入式系统中生成密钥对的实现方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
并行窗口算法在防御RSA计时攻击中的研究;钟楼 等;《计算机工程与应用》;20060421(第12期);第145-147、151页 *

Also Published As

Publication number Publication date
CN108599951A (zh) 2018-09-28

Similar Documents

Publication Publication Date Title
CN110348231B (zh) 实现隐私保护的数据同态加解密方法及装置
US9590807B2 (en) Identity based public key cryptosystem
CN110519039B (zh) 一种数据的同态处理方法、设备和介质
CN110519038B (zh) 一种数据的同态处理装置和系统
US7434898B2 (en) Computer system, computer program, and addition method
CN110235409A (zh) 使用同态加密被保护的rsa签名或解密的方法
JP2014002365A5 (zh)
CN110493201B (zh) 一种数据的处理方法、装置和系统
CN111404952B (zh) 变电站数据加密传输方法、装置、计算机设备和存储介质
CN110324321B (zh) 数据处理方法及装置
EP3732822B1 (en) Whitebox computation of keyed message authentication codes
CN108718231A (zh) 一种全同态加密方法、装置和计算机可读存储介质
CN109981282A (zh) 提高影像数据传输安全的方法、装置、系统及存储介质
CN108599951B (zh) 加密方法、加密装置、计算设备及计算机存储介质
WO2014030706A1 (ja) 暗号化データベースシステム、クライアント装置およびサーバ、暗号化データ加算方法およびプログラム
CN114785524B (zh) 电子印章生成方法、装置、设备和介质
CN108259505B (zh) 一种用于终端小型设备的ecc轻量级加密方法
US10511434B2 (en) Method and encryption node for encrypting message
JP6273226B2 (ja) 暗号化システム、認証システム、暗号化装置、復号装置、認証子生成装置、検証装置、暗号化方法、認証方法
CN107070900B (zh) 基于混淆的可搜索重加密方法
US20180097633A1 (en) Signature generation and verification system
CN114362912A (zh) 基于分布式密钥中心的标识密码生成方法、电子设备及介质
CN112737783B (zh) 一种基于sm2椭圆曲线的解密方法及设备
US10615961B2 (en) Method and encryption node for encrypting message
CN110598427B (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