CN114254366A - 加密方法、解密方法、装置及电子设备 - Google Patents
加密方法、解密方法、装置及电子设备 Download PDFInfo
- Publication number
- CN114254366A CN114254366A CN202111616945.2A CN202111616945A CN114254366A CN 114254366 A CN114254366 A CN 114254366A CN 202111616945 A CN202111616945 A CN 202111616945A CN 114254366 A CN114254366 A CN 114254366A
- Authority
- CN
- China
- Prior art keywords
- data
- encrypted
- key
- characters
- target
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种加密方法、解密方法、装置及电子设备。其中,加密方法包括:获取待加密数据及用于对待加密数据进行加密的第一密钥和第二密钥,依据第一位置对应关系确定待加密数据的数据位对应于第一密钥和第二密钥中的第一目标位,将待加密数据的数据位的字符与对应的第一目标位的字符执行第一运算操作,得到与待加密数据的数据位对应的加密位的加密字符,对待加密数据所包括的多个加密位的加密字符进行位置交换操作,得到待加密数据对应的加密数据。本发明在对数据进行加密时,既能确保数据安全性高,又能确保加密过程的执行效率高。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种加密方法、解密方法、装置及电子设备。
背景技术
随着网络和通信技术的迅速发展,数字信息在网络中得到广泛应用和传播,对于手机号、身份证号等涉及保密信息的数据,在公共网络上传输和存储时需要确保其安全性。
相关技术中,采用密钥对涉及保密信息的数据进行加解密,比如,采用复杂的密钥和加解密方法对数据进行加密或解密以确保数据的安全性,但这种方法存在加密或解密过程执行效率低的问题;也可采用使用一份密钥进行加解密的方法对数据进行加密或解密以确保加密或解密的执行效率,但这种方法存在安全性低的问题。
因此,在相关技术中,在对数据进行加密或解密时,存在不能同时确保数据安全性和执行效率的问题。
发明内容
本发明实施例提供了一种加密方法、解密方法、装置及电子设备,以至少解决在对数据进行加密或解密时,存在不能同时确保数据安全性和执行效率的问题的技术问题。
根据本发明实施例的第一个方面,提供了一种加密方法,包括:获取待加密数据;获取用于对所述待加密数据进行加密的第一密钥和第二密钥;依据第一位置对应关系,确定所述待加密数据的数据位对应于所述第一密钥和所述第二密钥中的第一目标位;将所述待加密数据的数据位的字符与对应的第一目标位的字符执行第一运算操作,得到与所述待加密数据的数据位对应的加密位的加密字符;对所述待加密数据所包括的多个加密位的加密字符进行位置交换操作,得到所述待加密数据对应的加密数据。
可选地,所述方法还包括:依据所述第一密钥的长度和所述第二密钥的长度对所述待加密数据进行分组,得到多个分组待加密数据;所述第一位置对应关系包括:所述第一密钥中的第2m-1个数据位与所述多个分组待加密数据中各分组待加密数据中的第2m-1个数据位相对应,所述第二密钥中的第2m个数据位与所述多个分组待加密数据中各分组待加密数据中的第2m个数据位相对应,其中,m为大于等于1的整数。
可选的,所述获取用于对所述待加密数据进行加密的第一密钥和第二密钥的方法包括:根据一元n次方程,以及所述一元n次方程的方程解,使用韦达定理求解所述一元n次方程的未知系数,其中,所述一元n次方程的一项系数已知;基于求得的所述未知系数,生成所述用于对所述待加密数据进行加密的第一密钥和第二密钥。
可选的,所述方法还包括:获取用于对所述待加密数据进行加密的第三密钥;依据第二位置对应关系,确定执行第一运算操作后的待加密数据的数据位对应于第三密钥中的第二目标位;将所述执行第一运算操作后的待加密数据的数据位的字符与第二目标位的字符执行第二运算操作,得到与所述待加密数据的数据位对应的加密位的目标加密字符;所述对所述待加密数据所包括的多个加密位的加密字符进行位置交换操作,得到所述待加密数据对应的加密数据包括:对所述待加密数据所包括的多个加密位的目标加密字符进行位置交换操作,得到所述待加密数据对应的加密数据。
根据本发明实施例的第二个方面,提供了一种解密方法,包括:获取加密数据;获取用于对所述加密数据进行解密的第一密钥和第二密钥;对所述加密数据包括的多个加密位的加密字符进行位置恢复操作,获取目标加密数据,其中,所述位置恢复操作为对得到所述加密数据时的多个加密位的加密字符进行位置交换操作的逆操作;依据第一位置对应关系,确定所述目标加密数据的数据位对应于所述第一密钥和所述第二密钥中的第一目标位;将所述目标加密数据的数据位的字符与对应的第一目标位的字符执行第一运算操作的逆运算,得到所述加密数据对应的解密数据。
可选的,所述方法还包括:依据所述第一密钥的长度和所述第二密钥的长度对所述目标加密数据进行分组,得到多个分组目标加密数据;所述第一位置对应关系包括:所述第一密钥中的第2m-1个数据位与所述多个分组目标加密数据中各分组目标加密数据中的第2m-1个数据位相对应,所述第二密钥中的第2m个数据位与所述多个分组目标加密数据中各分组目标加密数据中的第2m个数据位相对应,其中,m为大于等于1的整数。
可选的,所述获取用于对所述加密数据进行解密的第一密钥和第二密钥的方法包括:根据一元n次方程,以及所述一元n次方程的方程解,使用韦达定理求解所述一元n次方程的未知系数,其中,所述一元n次方程的一项系数已知;基于求得的所述未知系数,生成所述用于对所述加密数据进行解密的第一密钥和第二密钥。
可选的,所述方法还包括:获取用于对所述加密数据进行解密的第三密钥;依据第二位置对应关系,确定执行第一运算操作的逆运算后的目标加密数据的数据位对应于第三密钥中的第二目标位;将所述目标加密数据的数据位的字符与对应的第一目标位的字符执行第一运算操作的逆运算,得到所述加密数据对应的解密数据包括:将所述执行第一运算操作的逆运算后的目标加密数据的数据位的字符与第二目标位的字符执行第二运算操作的逆运算,得到所述加密数据对应的解密数据。
根据本发明的第三个方面,提供了一种加密装置,包括:第一获取模块,用于获取待加密数据;第二获取模块,用于获取用于对所述待加密数据进行加密的第一密钥和第二密钥;第一确定模块,用于依据第一位置对应关系,确定所述待加密数据的数据位对应于所述第一密钥和所述第二密钥中的第一目标位;第一运算模块,用于将所述待加密数据的数据位的字符与对应的第一目标位的字符执行第一运算操作,得到与所述待加密数据的数据位对应的加密位的加密字符;第一交换模块,用于对所述待加密数据所包括的多个加密位的加密字符进行位置交换操作,得到所述待加密数据对应的加密数据。
根据本发明的第四个方面,提供了一种解密装置,包括第三获取模块,用于获取加密数据;第四获取模块,用于获取用于对所述加密数据进行解密的第一密钥和第二密钥;第二交换模块,用于对所述加密数据包括的多个加密位的加密字符进行位置恢复操作,获取目标加密数据,其中,所述位置恢复操作为:对得到所述加密数据时的多个加密位的加密字符进行位置交换操作的逆操作;第二确定模块,用于依据第一位置对应关系,确定所述目标加密数据的数据位对应于所述第一密钥和所述第二密钥中的第一目标位;第二运算模块,用于将所述目标加密数据的数据位的字符与对应的第一目标位的字符执行第一运算操作的逆运算,得到所述加密数据对应的解密数据。
根据本发明的第五个方面,提供了一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现上述任一项所述的方法。
根据本发明的第六个方面,提供了一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述任一项所述的方法。
在本发明实施例中,通过获取待加密数据和用于对待加密数据进行加密的第一密钥和第二密钥,使用第一密钥和第二密钥中与待加密数据的数据位对应的第一目标位的字符对待加密数据进行加密,相对于现有技术中只用一份密钥进行加密的方法,提高了数据的安全性,并对待加密数据中加密位的加密字符进行位置交换,得到待加密数据对应的加密数据;方法通过多个密钥加密和位置交换的双重加密方法对待加密数据进行加密,提高了待加密数据的安全性,并且不降低加密过程的执行效率,从而实现了既能确保数据安全性,也可提高加密过程的执行效率,进而解决了在相关技术中,在对数据进行加密时,存在不能同时确保数据安全性和执行效率的技术问题;且本发明实施例的方法适用于任何使用密钥的加密场景。
在本发明实施例中,通过获取加密数据和用于对加密数据进行解密的第一密钥和第二密钥,对加密数据包括的多个加密位的加密字符进行位置恢复操作,获取目标加密数据,然后依据第一位置对应关系,确定目标加密数据的数据位对应于第一密钥和第二密钥中的第一目标位,并将目标加密数据的数据位的字符与对应的第一目标位的字符执行第一运算操作的逆运算,得到加密数据对应的解密数据。在本方法中,通过使用多个密钥对待加密数据进行运算操作和位置交换的方法,提高了数据的安全性,并且保证加密过程的执行效率,从而实现了既能确保数据安全性,又能保证加密过程的执行效率,进而解决了在相关技术中,在对数据进行解密时,存在不能同时确保数据安全性和执行效率的技术问题;且本发明实施例的方法适用于任何使用密钥的加密场景以及对应的解密场景。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种加密方法的示意图;
图2是根据本发明实施例的另一种加密方法的示意图;
图3是根据本发明实施例的一种解密方法的流程图;
图4是根据本发明实施例的另一种解密方法的流程图;
图5是根据本发明实施例的一种加密装置的结构框图;
图6是根据本发明实施例的一种解密装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例,提供了一种加密方法。需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种加密方法的流程图,如图1所示,该方法包括如下步骤:
步骤S100,获取待加密数据。
作为一种可选的实施方式,待加密数据包括身份证号码、电话号码等包含隐私信息的数据。
步骤S110,获取用于对待加密数据进行加密的第一密钥和第二密钥。
作为一种可选的实施方式,上述第一密钥和第二密钥可以是采用预定密钥生成方法随机生成得到的,也可以是直接获取的预先约定好的。
步骤S120,依据第一位置对应关系,确定待加密数据的数据位对应于第一密钥和第二密钥中的第一目标位。
需要说明的是,上述第一位置对应关系是用于确定待加密数据的数据位与第一密钥和第二密钥之间的对应关系的。例如,该第一位置对应关系可以是按照位置奇偶性来确定对应位置关系,也可以依据其它位置标识来确定。可以依据具体的加密需求灵活确定。
步骤S130,将待加密数据的数据位的字符与对应的第一目标位的字符执行第一运算操作,得到与待加密数据的数据位对应的加密位的加密字符。
在一个实施例中,将待加密数据的数据位的字符与对应的第一目标位的字符执行第一运算操作包括:将待加密数据的数据位的字符的ASCII(American Standard Code forInformation Interchange,美国信息交换标准代码)码,和对应的第一目标位的字符的ASCII码执行第一运算操作。
在一个实施例中,第一目标位包括:待加密数据的数据位对应于第一密钥的第一子目标位,以及待加密数据的数据位对应于第二密钥的第二子目标位。
上述第一运算操作的方式也可以多种,例如,可以包括:将待加密数据的数据位的字符的ASCII码和对应的第一子目标位的字符的ASCII码执行加法运算,并将待加密数据的数据位的字符的ASCII码和对应的第二子目标位的字符的ASCII码执行减法运算;或者,将待加密数据的数据位的字符的ASCII码和对应的第一子目标位的字符的ASCII码执行减法运算,并将待加密数据的数据位的字符的ASCII码和对应的第二子目标位的字符的ASCII码执行加法运算;或者,将待加密数据的数据位的字符的ASCII码和对应的第一子目标位和第二子目标位的字符的ASCII码均执行减法运算;或者,将待加密数据的数据位的字符的ASCII码和对应的第一子目标位和第二子目标位的字符的ASCII码均执行加法运算。
步骤S140,对待加密数据所包括的多个加密位的加密字符进行位置交换操作,得到待加密数据对应的加密数据。
在本可选实施例中,通过获取待加密数据和用于对待加密数据进行加密的第一密钥和第二密钥,使用第一密钥和第二密钥中与待加密数据的数据位对应的第一目标位的字符对待加密数据进行加密,相对于相关技术中只用一份密钥进行加密的方法,提高了数据的安全性,对待加密数据中加密位的加密字符进行位置交换,得到待加密数据对应的加密数据;在该方法中,通过多个密钥执行运算操作和位置交换对待加密数据进行加密,提高了待加密数据的安全性,增加了抗攻击能力,并且保证加密过程的执行效率,从而实现了既能确保数据安全性,也可提高加密过程的执行效率,进而解决了在相关技术中,在对数据进行加密时,存在不能同时确保数据安全性和执行效率的技术问题;且本发明实施例的方法适用于任何使用密钥的加密场景,即:本方法可为任何使用密钥的加密场景提供密钥选择技术,用途广泛。
作为本发明的一个实施例,加密方法还包括:
步骤S111,依据第一密钥的长度和第二密钥的长度对待加密数据进行分组,得到多个分组待加密数据。
在步骤S120中,依据第一位置对应关系,确定待加密数据的数据位对应于第一密钥和第二密钥中的第一目标位,其中,第一位置对应关系包括:第一密钥中的第2m-1个数据位与多个分组待加密数据中各分组待加密数据中的第2m-1个数据位相对应,第二密钥中的第2m个数据位与多个分组待加密数据中各分组待加密数据中的第2m个数据位相对应,其中,m为大于等于1的整数。
在一个实施例中,第一密钥的长度和第二密钥的长度相等,在对待加密数据进行分组时,得到多个分组待加密数据中的各分组数据的长度等于第一密钥和第二密钥的长度。
在一个实施例中,第一密钥的长度和第二密钥的长度不相等,通过使用“-”字符对长度较短的密钥进行补充,以确保第一密钥和第二密钥的长度相等。在待加密数据的长度不等于第一密钥和第二密钥的长度的整数倍时,通过使用“,”等字符对待加密数据进行补充,以确保对待加密数据分组后,各分组数据的长度均等于第一密钥和第二密钥的长度。应当清楚的是,对密钥进行补充的字符和对待加密数据进行补充的字符可以为任意字符。
例如,待加密数据为包含15个字符的字符串,第一密钥为包含8个字符的字符串,第二密钥为包含7个字符的字符串,在进行加密时,在第二密钥的首位或末位补充字符“-”,则补充后的第二密钥包含8个字符,其长度和第一密钥的长度相等;在对待加密数据进行分组时,在待加密数据的首位或末位补充字符“,”,使其形成包含16个字符的字符串,按照第一密钥和补充后的第二密钥的长度对补充后的待加密数据进行分组,获取两组分组数据,该两组分组数据均包括8个字符。
在该发明实施例中,通过对待加密数据进行分组,并将第一密钥中的奇数位和各分组待加密数据的奇数位做对应,将第二密钥中的偶数位和各分组待加密数据的偶数位做对应,基于第一密钥中奇数位的字符和第二密钥中偶数位的字符,对待加密数据中对应数据位的字符进行加密,提高了待加密数据的安全性的加密过程的执行效率。
作为本发明的一个实施例,获取用于对待加密数据进行加密的第一密钥和第二密钥的方法时,可以采用多种方式,例如,可以采用以下可选方式:
根据一元n次方程,以及一元n次方程的方程解,使用韦达定理求解一元n次方程的未知系数,其中,一元n次方程的一项系数已知;基于求得的未知系数,生成用于对待加密数据进行加密的第一密钥和第二密钥。
例如,针对一元二次方程ax2+bx+c=0,其中,该方程的两个方程解x1、x1,以及系数a、b、c中的任一系数已知,通过使用韦达定理求解一元二次方程的两个未知系数,将求出的两个未知系数分别作为第一密钥和第二密钥。
在该发明实施例中,基于韦达定理获取用于对待加密数据进行加密的第一密钥和第二密钥,密钥的安全性高,基于该第一密钥和第二密钥对待加密数据进行加密时,待加密数据的安全性高。
图2是根据本发明实施例的另一种加密方法的流程图,如图2所示,加密方法还包括:
步骤S131,获取用于对待加密数据进行加密的第三密钥。
步骤S132,依据第二位置对应关系,确定执行第一运算操作后的待加密数据的数据位对应于第三密钥中的第二目标位。
步骤S133,将执行第一运算操作后的待加密数据的数据位的字符与第二目标位的字符执行第二运算操作,得到与待加密数据的数据位对应的加密位的目标加密字符。
其中,对待加密数据所包括的多个加密位的加密字符进行位置交换操作,得到待加密数据对应的加密数据包括:对待加密数据所包括的多个加密位的目标加密字符进行位置交换操作,得到待加密数据对应的加密数据。
在一个实施例中,第二位置对应关系可以为:第三密钥中的第k个数据位与执行第一运算操作后的待加密数据的数据中的第k个数据位相对应,其中,k为大于等于1的整数。第二运算操作为:将执行第一运算操作后的待加密数据的数据位的字符的ASCII码和对应的第二目标位的字符的ASCII码执行加法运算或减法运算。
在一个实施例中,获取第三密钥的方法包括:根据一元三次方程,以及一元三次方程的方程解,使用韦达定理求解一元三次方程的未知系数,其中,一元三次方程的一项系数已知;基于求得的未知系数,生成用于对待加密数据进行加密的第三密钥。
在本可选实施例中,使用第三密钥对执行第一运算操作后的待加密数据进行再次加密,提高了待加密数据的安全性。
以待加密数据为文档密码“177477”,第一密钥为“1656”,第二密钥为“112”为例,对文档密码“1774774”进行加密的方法包括如下步骤:
步骤S10,使用字符“-”对第二密钥进行补充,获取补充后的第二密钥“-112”;使用“,”对文档密码“177477”进行补充,获取补充后的文档密码“,,177477”;对补充后的文档密码“,,177477”进行分组,获取两组分组待加密数据“,,17”和“7477”。
步骤S11,针对分组待加密数据“,,17”:对第一密钥“1656”的第一个字符“1”的ASCII码和分组待加密数据“,,17”中的第一字符“,”的ASCII码做加法运算,对第一密钥“1656”的第三个字符“5”的ASCII码和分组待加密数据“,,17”中的第三字符“1”的ASCII码做加法运算,对补充后的第二密钥“-112”的第二个字符“1”的ASCII码和分组待加密数据“,,17”中的第二个字符“,”的ASCII码做减法运算,对补充后的第二密钥“-112”的第四个字符“2”的ASCII码和分组待加密数据“,,17”中的第四字符“7”的ASCII码做减法运算,由此获取分组待加密数据“,,17”的各加密位的加密字符。
针对分组待加密数据“7477”:对第一密钥“1656”的第一个字符“1”的ASCII码和分组待加密数据“7477”中的第一字符“7”的ASCII码做加法运算,对第一密钥“1656”的第三个字符“5”的ASCII码和分组待加密数据“7477”中的第三字符“7”的ASCII码做加法运算,对补充后的第二密钥“-112”的第二个字符“1”的ASCII码和分组待加密数据“7477”中的第二个字符“4”的ASCII码做减法运算,对补充后的第二密钥“-112”的第四个字符“2”的ASCII码和分组待加密数据“7477”中的第四字符“7”的ASCII码做减法运算,由此获取分组待加密数据“7477”的各加密位的加密字符。
步骤S12,对使用第一密钥和第二密钥加密后的两组分组待加密数据进行拼接,并将进行拼接后的分组待加密数据的各奇数加密位的加密字符和该奇数加密位后面的与其相邻的偶数加密位的加密字符进行位置交换,获取文档密码“177477”对应的加密数据;即:对拼接后的分组待加密数据,将其第一个加密位的加密字符和第二个加密位的加密字符进行位置交换,第三个加密位的加密字符和第四个加密位的加密字符进行位置交换,第五个加密位的加密字符和第六个加密位的加密字符进行位置交换,第七个加密位的加密字符和第八个加密位的加密字符进行位置交换,获取文档密码“177477”的加密数据。
或者,针对分组待加密数据“,,17”,使用第一密钥和第二密钥加密后的分组待加密数据“,,17”中第一个加密位的加密字符和第二个加密位的加密字符进行位置交换,第三个加密位的加密字符和第四个加密位的加密字符进行位置交换;针对分组待加密数据“7477”,使用第一密钥和第二密钥加密后的分组待加密数据“7477”中第一个加密位的加密字符和第二个加密位的加密字符进行位置交换,第三个加密位的加密字符和第四个加密位的加密字符进行位置交换;然后对两组经过上述处理的分组待加密数据进行拼接,获取文档密码“177477”对应的加密数据。
需要说明的是,上述第一运算操作,第二运算操作为加法或者减法仅为一种简单的举例,当然还可以是其它任何可以实现的运算操作,例如,可以是数值的乘法,除法,取模操作等,还可以是逻辑运算的和运算,或运算,等。
图3是根据本发明实施例的一种解密方法的流程图,如图3所示,解密方法包括如下步骤:
步骤S200,获取加密数据。
步骤S210,获取用于对加密数据进行解密的第一密钥和第二密钥。
步骤S220,对加密数据包括的多个加密位的加密字符进行位置恢复操作,获取目标加密数据。
其中,位置恢复操作为:对得到加密数据时的多个加密位的加密字符进行位置交换操作的逆操作。
例如,在得到加密数据“FEHG”的过程中,执行了位置交换操作:将加密字符“E”和加密字符“F”进行位置交换,将加密字符“G”和加密字符“H”进行位置交换,则位置恢复操作为:将加密字符“F”和加密字符“E”进行位置交换,将加密字符“H”和加密字符“G”进行位置交换,进而获取目标加密数据“EFGH”。
步骤S230,依据第一位置对应关系,确定目标加密数据的数据位对应于第一密钥和第二密钥中的第一目标位。
步骤S240,将目标加密数据的数据位的字符与对应的第一目标位的字符执行第一运算操作的逆运算,得到加密数据对应的解密数据。
其中,第一运算操作为对得到目标加密数据时,将待加密数据的数据位的字符与对应的第一目标位的字符进行的运算操作。
例如,在得到目标加密数据“EFGH”时,执行了第一运算操作:将待加密数据“ABCD”中第一个字符“A”的ASCII码和第一密钥中的第一个字符的ASCII码进行减法运算,将待加密数据“ABCD”中第二个字符“B”的ASCII码和第二密钥中的第二个字符的ASCII码进行加法运算,将待加密数据“ABCD”中第三个字符“C”的ASCII码和第一密钥中的第三个字符的ASCII码进行减法运算,将待加密数据“ABCD”中第四个字符“D”的ASCII码和第二密钥中的第四个字符的ASCII码进行加法运算,由此获取目标加密数据“EFGH”;则第一运算操作的逆运算为:将待加密数据“EFGH”中第一个字符“E”的ASCII码和第一密钥中的第一个字符的ASCII码进行加法运算,将待加密数据“EFGH”中第二个字符“F”的ASCII码和第二密钥中的第二个字符的ASCII码进行减法运算,将待加密数据“EFGH”中第三个字符“G”的ASCII码和第一密钥中的第三个字符的ASCII码进行加法运算,将待加密数据“EFGH”中第四个字符“H”的ASCII码和第二密钥中的第四个字符的ASCII码进行减法运算,由此获取加密数据对应的解密数据“ABCD”。
在本发明实施例中,通过获取加密数据和用于对加密数据进行解密的第一密钥和第二密钥,对加密数据包括的多个加密位的加密字符进行位置恢复操作,获取目标加密数据,然后依据第一位置对应关系,确定目标加密数据的数据位对应于第一密钥和第二密钥中的第一目标位,并将目标加密数据的数据位的字符与对应的第一目标位的字符执行第一运算操作的逆运算,得到加密数据对应的解密数据。在该方法中,通过采用对加密数据执行位置交换和运算操作的方法对加密数据进行解密,提高了数据的安全性,并且保证解密过程的执行效率,从而实现了既能确保数据安全性,又能提高解密过程的执行效率,进而解决了在相关技术中,在对数据进行解密时,存在不能同时确保数据安全性和执行效率的技术问题;且本发明实施例的方法适用于任何使用密钥的解密场景。
作为本发明的一个实施例,方法还包括:
步骤S211,依据第一密钥的长度和第二密钥的长度对目标加密数据进行分组,得到多个分组目标加密数据。
第一位置对应关系包括:第一密钥中的第2m-1个数据位与多个分组目标加密数据中各分组目标加密数据中的第2m-1个数据位相对应,第二密钥中的第2m个数据位与多个分组目标加密数据中各分组目标加密数据中的第2m个数据位相对应,其中,m为大于等于1的整数。
在该发明实施例中,通过对加密数据进行分组,并将第一密钥中的奇数位和各分组目标加密数据的奇数位作对应,将第二密钥中的偶数位和各分组目标加密数据的偶数位作对应,基于第一密钥中奇数位的字符和第二密钥中偶数位的字符,对加密数据中对应数据位的字符进行解密,提高了数据的安全性和解密过程的执行效率。
作为本发明的一个实施例,获取用于对加密数据进行解密的第一密钥和第二密钥的方法包括:
根据一元n次方程,以及一元n次方程的方程解,使用韦达定理求解一元n次方程的未知系数,其中,一元n次方程的一项系数已知;基于求得的未知系数,生成用于对加密数据进行解密的第一密钥和第二密钥。
在该发明实施例中,基于韦达定理获取用于对加密数据进行解密的第一密钥和第二密钥,密钥的安全性高,则基于该第一密钥和第二密钥对加密数据进行解密时,数据的安全性高。
图4是根据本发明另一个实施例的解密方法的流程图,如图4所示,解密方法还包括:
步骤S231,获取用于对加密数据进行解密的第三密钥。
步骤S232,依据第二位置对应关系,确定执行第一运算操作的逆运算后的目标加密数据的数据位对应于第三密钥中的第二目标位。
步骤S240,将目标加密数据的数据位的字符与对应的第一目标位的字符执行第一运算操作的逆运算,得到加密数据对应的解密数据包括:将执行第一运算操作的逆运算后的目标加密数据的数据位的字符与第二目标位的字符执行第二运算操作的逆运算,得到加密数据对应的解密数据。
具体的,通过将目标加密数据的数据位的字符与对应的第一目标位的字符执行第一运算操作的逆运算,将执行第一运算操作的逆运算后的目标加密数据的数据位的字符与第二目标位的字符执行第二运算操作的逆运算,得到加密数据对应的解密数据。其中,第二运算操作为对得到目标加密数据时,将执行第一运算操作后的待加密数据的数据位的字符与第二目标位的字符执行的运算操作。
在该发明实施例中,使用第三密钥对执行第一运算操作后的目标待加密数据进行再次加密,提高了待加密数据的安全性。
作为本发明的一个可选实施例,密钥加密方法包括如下步骤:
步骤S1,指定两个数x1和x2作为一元二次方程x2+bx+c=0的两个方程解,根据韦达定理求取系数b和c的值,然后将其分别作为密钥key1和key2;在密钥key1和key2长度不同的情况下,使用字符“-”对长度较短的密钥进行补充,使两个密钥的长度相同。
步骤S2,根据密钥key1和key2的长度对明文数据(待加密数据)进行分组,获取多个分组明文数据段,各明文数据段的长度与密钥key1和key2的长度相等;在明文数据的长度不等于密钥key1和key2的长度整数倍时,使用字符“”(空格)对明文数据进行补充,以确保分组后的各分组明文数据段的长度与密钥key1和key2的长度相等。
步骤S3,将各分组明文数据段的字符转化为ASCII码,将各分组明文数据中奇数位的字符的ASCII码和密钥key1中对应奇数位的字符的ASCII做加法运算,将各分组明文数据中偶数位的字符的ASCII码和密钥key2中对应偶数位的字符的ASCII做减法运算;
步骤S4,将使用密钥进行运算后的各分组明文数据段中各奇数位的字符和该奇数位后面与该奇数位相邻的偶数位的字符进行位置交换;
步骤S5,将经过位置交换的各分组明文数据段中的字符的ASCII码转换为字符和“,”拼接生成密文(加密数据)。
在该可选实施例中,使用两个密钥对待加密数据进行加密,并对使用密钥进行运算的各分组明文数据段中的字符进行位置交换,获取加密数据,提高了加密的安全性,增加了抗攻击能力,执行效率高,且解决了现有技术中只用一个密钥进行数据加密而产生的数据安全性低的问题,该加密方法可适用于任何使用密钥的加密场景,用途广泛。
作为本发明的一个可选实施例,密钥解密方法包括如下步骤:
步骤S6,传入密文(加密数据),以及一元二次方程x2+bx+c=0的两个方程解x1和x2,根据韦达定理求取系数b和c的值,然后将其分别作为密钥key1和key2;在密钥key1和key2的长度不同的情况下,使用字符“-”对长度较短的密钥进行补充,使两个密钥的长度相同。
步骤S7,根据“,”对密文进行分组,获取多个分组密文数据段,每个密文数据段的长度和密钥key1和key2的长度相等。
步骤S8,将各分组密文数据段中各奇数位和该奇数位后面与该奇数位相邻的偶数位的字符进行位置交换,获取正确顺序的分组密文数据段。
步骤S9,将各正确顺序的分组密文数据中奇数位的字符的ASCII码和密钥key1中对应奇数位的字符的ASCII做减法运算,将各正确顺序的分组密文数据中偶数位的字符的ASCII码和密钥key2中对应偶数位的字符的ASCII做加法运算,获取分组明文数据段。
步骤S10,将各分组明文数据段中各字符的ASCII码转化为字符进行拼接,获取明文数据(加密数据对应的解密数据)。在该可选实施例中,使用字符位置交换和另个密钥进行解密的方法对加密数据进行解密,获取加密数据对应的解密数据,提高了数据的安全性,增加了抗攻击能力,执行效率高,该加密方法可适用于任何使用密钥的加密场景,用途广泛。
图5是根据本发明实施例的加密装置的结构框图,如图5所示加密装置包括:第一获取模块30,第二获取模块31,第一确定模块32,第一运算模块33和第一交换模块34,下面对该装置进行说明。
第一获取模块30,用于获取待加密数据。
第二获取模块31,连接至上述第一获取模块30,用于获取用于对待加密数据进行加密的第一密钥和第二密钥。
第一确定模块32,连接至上述第二获取模块31,用于依据第一位置对应关系,确定待加密数据的数据位对应于第一密钥和第二密钥中的第一目标位。
第一运算模块33,连接至上述第一确定模块32,用于将待加密数据的数据位的字符与对应的第一目标位的字符执行第一运算操作,得到与待加密数据的数据位对应的加密位的加密字符。
第一交换模块34,连接至上述第一运算模块33,用于对待加密数据所包括的多个加密位的加密字符进行位置交换操作,得到待加密数据对应的加密数据。
在本发明实施例中,加密装置用于实现加密方法,在实现加密方法时,通过获取待加密数据和用于对待加密数据进行加密的第一密钥和第二密钥,使用第一密钥和第二密钥中与待加密数据的数据位对应的第一目标位的字符对待加密数据进行加密,并对待加密数据中加密位的加密字符进行位置交换,得到待加密数据对应的加密数据;在本方法中,通过使用多个密钥对待加密数据进行运算操作和位置交换的方法,提高了待加密数据的安全性,又能保证加密过程的执行效率,从而实现了既能确保数据安全性,也可提高加密过程的执行效率,进而解决了在相关技术中,在对数据进行加密时,存在不能同时确保数据安全性和执行效率的技术问题。
图6是根据本发明实施例的解密装置的结构框图,如图6所示,该解密装置包括:第三获取模块40,第四获取模块41,第二交换模块42,第二确定模块43和第二运算模块44,下面对该装置进行说明。
第三获取模块40,用于获取加密数据。
第四获取模块41,连接至上述第三获取模块40,用于获取用于对加密数据进行解密的第一密钥和第二密钥。
第二交换模块42,连接至上述第四获取模块41,用于对加密数据包括的多个加密位的加密字符进行位置恢复操作,获取目标加密数据,其中,位置恢复操作为:对得到加密数据时的多个加密位的加密字符进行位置交换操作的逆操作。
第二确定模块43,连接至上述第二交换模块42,用于依据第一位置对应关系,确定目标加密数据的数据位对应于第一密钥和第二密钥中的第一目标位。
第二运算模块44,连接至上述第二确定模块43,用于将目标加密数据的数据位的字符与对应的第一目标位的字符执行第一运算操作的逆运算,得到加密数据对应的解密数据。
在本发明实施例中,解密装置用于实现解密方法,通过获取加密数据和用于对加密数据进行解密的第一密钥和第二密钥,对加密数据包括的多个加密位的加密字符进行位置恢复操作,获取目标加密数据,然后依据第一位置对应关系,确定目标加密数据的数据位对应于第一密钥和第二密钥中的第一目标位,并将目标加密数据的数据位的字符与对应的第一目标位的字符执行第一运算操作的逆运算,得到加密数据对应的解密数据。在本方法中,通过使用多个密钥对待加密数据进行运算操作和位置交换的方法,提高了数据的安全性,并且保证的执行效率,从而实现了既能确保数据安全性,又能提高解密过程的执行效率,进而解决了在相关技术中,在对数据进行解密时,存在不能同时确保数据安全性和执行效率的技术问题。且本发明实施例的方法适用于任何使用密钥的加密场景以及对应的解密场景。
本发明实施例提供了一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现上述实施例及可选实施例中任一项所述的方法。
本发明实施例提供了一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述实施例及可选实施例中任一项所述的方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (12)
1.一种加密方法,其特征在于,包括:
获取待加密数据;
获取用于对所述待加密数据进行加密的第一密钥和第二密钥;
依据第一位置对应关系,确定所述待加密数据的数据位对应于所述第一密钥和所述第二密钥中的第一目标位;
将所述待加密数据的数据位的字符与对应的第一目标位的字符执行第一运算操作,得到与所述待加密数据的数据位对应的加密位的加密字符;
对所述待加密数据所包括的多个加密位的加密字符进行位置交换操作,得到所述待加密数据对应的加密数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
依据所述第一密钥的长度和所述第二密钥的长度对所述待加密数据进行分组,得到多个分组待加密数据;
所述第一位置对应关系包括:所述第一密钥中的第2m-1个数据位与所述多个分组待加密数据中各分组待加密数据中的第2m-1个数据位相对应,所述第二密钥中的第2m个数据位与所述多个分组待加密数据中各分组待加密数据中的第2m个数据位相对应,其中,m为大于等于1的整数。
3.根据权利要求1所述的方法,其特征在于,所述获取用于对所述待加密数据进行加密的第一密钥和第二密钥的方法包括:
根据一元n次方程,以及所述一元n次方程的方程解,使用韦达定理求解所述一元n次方程的未知系数,其中,所述一元n次方程的一项系数已知;
基于求得的所述未知系数,生成所述用于对所述待加密数据进行加密的第一密钥和第二密钥。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
获取用于对所述待加密数据进行加密的第三密钥;
依据第二位置对应关系,确定执行第一运算操作后的待加密数据的数据位对应于第三密钥中的第二目标位;
将所述执行第一运算操作后的待加密数据的数据位的字符与第二目标位的字符执行第二运算操作,得到与所述待加密数据的数据位对应的加密位的目标加密字符;
所述对所述待加密数据所包括的多个加密位的加密字符进行位置交换操作,得到所述待加密数据对应的加密数据包括:对所述待加密数据所包括的多个加密位的目标加密字符进行位置交换操作,得到所述待加密数据对应的加密数据。
5.一种解密方法,其特征在于,包括:
获取加密数据;
获取用于对所述加密数据进行解密的第一密钥和第二密钥;
对所述加密数据包括的多个加密位的加密字符进行位置恢复操作,获取目标加密数据,其中,所述位置恢复操作为对得到所述加密数据时的多个加密位的加密字符进行位置交换操作的逆操作;
依据第一位置对应关系,确定所述目标加密数据的数据位对应于所述第一密钥和所述第二密钥中的第一目标位;
将所述目标加密数据的数据位的字符与对应的第一目标位的字符执行第一运算操作的逆运算,得到所述加密数据对应的解密数据。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
依据所述第一密钥的长度和所述第二密钥的长度对所述目标加密数据进行分组,得到多个分组目标加密数据;
所述第一位置对应关系包括:所述第一密钥中的第2m-1个数据位与所述多个分组目标加密数据中各分组目标加密数据中的第2m-1个数据位相对应,所述第二密钥中的第2m个数据位与所述多个分组目标加密数据中各分组目标加密数据中的第2m个数据位相对应,其中,m为大于等于1的整数。
7.根据权利要求5所述的方法,其特征在于,所述获取用于对所述加密数据进行解密的第一密钥和第二密钥的方法包括:
根据一元n次方程,以及所述一元n次方程的方程解,使用韦达定理求解所述一元n次方程的未知系数,其中,所述一元n次方程的一项系数已知;
基于求得的所述未知系数,生成所述用于对所述加密数据进行解密的第一密钥和第二密钥。
8.根据权利要求5至7中任一项所述的方法,其特征在于,所述方法还包括:
获取用于对所述加密数据进行解密的第三密钥;
依据第二位置对应关系,确定执行第一运算操作的逆运算后的目标加密数据的数据位对应于第三密钥中的第二目标位;
将所述目标加密数据的数据位的字符与对应的第一目标位的字符执行第一运算操作的逆运算,得到所述加密数据对应的解密数据包括:将所述执行第一运算操作的逆运算后的目标加密数据的数据位的字符与第二目标位的字符执行第二运算操作的逆运算,得到所述加密数据对应的解密数据。
9.一种加密装置,其特征在于,包括:
第一获取模块,用于获取待加密数据;
第二获取模块,用于获取用于对所述待加密数据进行加密的第一密钥和第二密钥;
第一确定模块,用于依据第一位置对应关系,确定所述待加密数据的数据位对应于所述第一密钥和所述第二密钥中的第一目标位;
第一运算模块,用于将所述待加密数据的数据位的字符与对应的第一目标位的字符执行第一运算操作,得到与所述待加密数据的数据位对应的加密位的加密字符;
第一交换模块,用于对所述待加密数据所包括的多个加密位的加密字符进行位置交换操作,得到所述待加密数据对应的加密数据。
10.一种解密装置,其特征在于,包括:
第三获取模块,用于获取加密数据;
第四获取模块,用于获取用于对所述加密数据进行解密的第一密钥和第二密钥;
第二交换模块,用于对所述加密数据包括的多个加密位的加密字符进行位置恢复操作,获取目标加密数据,其中,所述位置恢复操作为对得到所述加密数据时的多个加密位的加密字符进行位置交换操作的逆操作;
第二确定模块,用于依据第一位置对应关系,确定所述目标加密数据的数据位对应于所述第一密钥和所述第二密钥中的第一目标位;
第二运算模块,用于将所述目标加密数据的数据位的字符与对应的第一目标位的字符执行第一运算操作的逆运算,得到所述加密数据对应的解密数据。
11.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至8中任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111616945.2A CN114254366A (zh) | 2021-12-27 | 2021-12-27 | 加密方法、解密方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111616945.2A CN114254366A (zh) | 2021-12-27 | 2021-12-27 | 加密方法、解密方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114254366A true CN114254366A (zh) | 2022-03-29 |
Family
ID=80798349
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111616945.2A Pending CN114254366A (zh) | 2021-12-27 | 2021-12-27 | 加密方法、解密方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114254366A (zh) |
-
2021
- 2021-12-27 CN CN202111616945.2A patent/CN114254366A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110677237B (zh) | 一种具有似混沌特性的文件加密方法 | |
US10951392B2 (en) | Fast format-preserving encryption for variable length data | |
KR100259179B1 (ko) | 암호화 통신 처리 | |
Thangavel et al. | Enhanced DNA and ElGamal cryptosystem for secure data storage and retrieval in cloud | |
CN110795762B (zh) | 基于流密码的保留格式加密方法 | |
CN1820448B (zh) | 用于使用三阶段加密来加密和验证消息的系统和方法 | |
CN111010266B (zh) | 消息的加解密、读写方法、装置、计算机设备和存储介质 | |
EP2742644B1 (en) | Encryption and decryption method | |
US20020159588A1 (en) | Cryptography with unconditional security for the internet, commercial intranets, and data storage | |
Joshy et al. | Text to image encryption technique using RGB substitution and AES | |
CN114826590B (zh) | 一种分组模式加密方法、解密方法及其装置、设备 | |
CN110889695A (zh) | 基于安全多方计算保存和恢复隐私数据的方法和装置 | |
CN113098675B (zh) | 基于多项式完全同态的二进制数据加密系统及方法 | |
Abusukhon et al. | Analyzing the efficiency of Text-to-Image encryption algorithm | |
CN106341384A (zh) | 用于促进安全通信的方法 | |
CN115632765A (zh) | 加密方法、解密方法、装置、电子设备及存储介质 | |
JP2017527225A (ja) | 暗号システムの再現可能なランダムシーケンス | |
US20130058483A1 (en) | Public key cryptosystem and technique | |
CN114254366A (zh) | 加密方法、解密方法、装置及电子设备 | |
CN110401533B (zh) | 一种私钥加密方法及装置 | |
Manz | Encrypt, Sign, Attack: A compact introduction to cryptography | |
CN109409106B (zh) | 一种新型无穷字母表的香农完美保密方法 | |
RU2188513C2 (ru) | Способ криптографического преобразования l-битовых входных блоков цифровых данных в l-битовые выходные блоки | |
KR100494560B1 (ko) | Rijndael암호를 이용한 블록 데이터 실시간암호복호화 장치 및 방법 | |
CN112069472A (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 |