CN109714368B - 报文加解密方法、装置、电子设备及计算机可读存储介质 - Google Patents
报文加解密方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109714368B CN109714368B CN201910151178.9A CN201910151178A CN109714368B CN 109714368 B CN109714368 B CN 109714368B CN 201910151178 A CN201910151178 A CN 201910151178A CN 109714368 B CN109714368 B CN 109714368B
- Authority
- CN
- China
- Prior art keywords
- processing
- encryption
- decryption
- factor
- plaintext
- 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
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本公开提供了一种报文加解密方法、装置、电子设备及计算机存储介质,该方法包括:获取待加密的明文信息;按照正序依次对明文信息包括的每个报文块做加密处理,以获得密文信息;加密处理包括以下步骤:根据处理因子生成函数确定t个加密因子,按照从1至t的顺序,使用第1个加密因子对该报文块进行处理,以及,依次使用第i个加密因子对第i‑1个解密因子处理得到的结果进行处理,以得到t个处理结果;将第t个处理结果作为该报文块的目标密文进行输出;i=2,3……t;在解密密文信息时,按照逆序依次对密文信息包括的每个报文块做解密处理,以解密得到明文信息;解密处理原理与加密处理原理相同,安全性较高。
Description
技术领域
本公开涉及信息安全技术领域,更具体地说,涉及报文加解密方法、装置、电子设备及计算机可读存储介质。
背景技术
随着互联网行业的发展,加解密应用场景越来越多样化,传统的分组密码算法、序列密码算法难以满足多样化的应用,且在多样化的应用场景下,安全性难以得到保证。
综上所述,如何设计新型密码算法以适应更广泛的应用,及提供更高的安全性是目前本领域技术人员亟待解决的问题。
发明内容
本公开的目的是提供一种报文加解密方法,其能在一定程度上解决如何提供适用性更广、安全性更高的加解密方式的技术问题。本公开还提供了一种报文加解密装置、电子设备及计算机可读存储介质。
根据本公开实施例的第一方面,提供一种报文加解密方法,包括:
获取待加密的明文信息;
按照正序依次对所述明文信息包括的每个报文块做加密处理,以获得密文信息;
所述加密处理包括以下步骤:根据处理因子生成函数确定t个加密因子,按照从1至t的顺序,使用第1个加密因子对该报文块进行处理,以及,依次使用第i个加密因子对第i-1个加密因子处理得到的结果进行处理,以得到t个处理结果;将第t个处理结果作为该报文块的目标密文进行输出;i=2,3……t;
在解密所述密文信息时,按照逆序依次对所述密文信息包括的每个报文块做解密处理,以解密得到所述明文信息;
所述解密处理包括以下步骤:根据所述处理因子生成函数确定t个解密因子,按照从1至t的顺序,使用第1个解密因子对该报文块进行处理,以及,依次使用第i个解密因子对第i-1个解密因子处理得到的结果进行处理;以得到t个处理结果;将第t个处理结果作为该报文块的目标明文进行输出。
优选的,所述根据处理因子生成函数确定t个加密因子,包括:
将加密处理的前一个报文块及对应得到的t个处理结果作为输入数据输入所述处理因子生成函数,得到所述t个加密因子;
所述根据所述处理因子生成函数确定t个解密因子,包括:
将解密处理的前一个报文块及对应得到的t个处理结果作为输入数据输入所述处理因子生成函数,得到所述t个解密因子。
优选的,所述在获取待加密的明文信息之后,还包括:
在所述明文信息的首部及尾部分别填充随机数串,得到填充明文串;其中,填充在首部及尾部的随机数串包含随机数的数量均为t+1的整数倍;
按照正序依次对所述明文信息包括的每个报文块做加密处理,以获得密文信息,包括:
将所述填充明文串的前t+1个随机数输入所述处理因子生成函数,获得t个初始加密因子;
按照正序依次对所述填充明文串除去前t+1个随机数后的每个数据做所述加密处理,以获得所述密文信息;
按照逆序依次对所述密文信息包括的每个报文块做解密处理,以解密得到所述明文信息,包括:
将所述密文信息尾部的前t+1个数据输入所述处理因子生成函数,获得t个初始解密因子;
按照逆序对所述密文信息除去尾部的t+1个数据后的每个数据做所述解密处理,以解密得到所述填充明文串。
优选的,在获得密文信息之后,还包括:
迭代执行按照正序依次对所述明文信息包括的每个报文块做加密处理的步骤直到预设次数,以基于最后一轮得到的目标处理结果实现分组密码;
其中,每次迭代步骤使用的报文块为前一次迭代步骤得到的所有密文信息。
优选的,在获得密文信息之后,还包括:
迭代执行所述根据处理因子生成函数确定t个加密因子,按照从1至t的顺序,使用第1个加密因子对该报文块进行处理,以及,依次使用第i个加密因子对第i-1个加密因子处理得到的结果进行处理,以得到t个处理结果;将第t个处理结果作为该报文块的目标密文进行输出的步骤,以实现序列密码;
其中,每次迭代步骤使用的报文块为前一次迭代步骤得到的最后一个密文信息。
根据本公开实施例的第二方面,提供一种报文加解密装置,包括:
第一获取模块,用于获取待加密的明文信息;
加密处理模块,用于按照正序依次对所述明文信息包括的每个报文块做加密处理,以获得密文信息;所述加密处理包括以下步骤:根据处理因子生成函数确定t个加密因子,按照从1至t的顺序,使用第1个加密因子对该报文块进行处理,以及,依次使用第i个加密因子对第i-1个加密因子处理得到的结果进行处理,以得到t个处理结果;将第t个处理结果作为该报文块的目标密文进行输出;i=2,3……t;
解密处理模块,用于在解密所述密文信息时,按照逆序依次对所述密文信息包括的每个报文块做解密处理,以解密得到所述明文信息;所述解密处理包括以下步骤:根据所述处理因子生成函数确定t个解密因子,按照从1至t的顺序,使用第1个解密因子对该报文块进行处理,以及,依次使用第i个解密因子对第i-1个解密因子处理得到的结果进行处理;以得到t个处理结果;将第t个处理结果作为该报文块的目标明文进行输出。
优选的,所述加密处理模块包括:
加密因子生成单元,用于将加密处理的前一个报文块及对应得到的t个处理结果作为输入数据输入所述处理因子生成函数,得到所述t个加密因子;
所述解密处理模块包括:
解密因子生成单元,用于将解密处理的前一个报文块及对应得到的t个处理结果作为输入数据输入所述处理因子生成函数,得到所述t个解密因子。
优选的,还包括:
第一填充模块,用于所述第一获取模块在获取待加密的明文信息之后,在所述明文信息的首部及尾部分别填充随机数串,得到填充明文串;其中,填充在首部及尾部的随机数串包含随机数的数量均为t+1的整数倍;
所述加密处理模块包括:
初始加密因子获取单元,用于将所述填充明文串的前t+1个随机数输入所述处理因子生成函数,获得t个初始加密因子;
加密处理单元,用于按照正序依次对所述填充明文串除去前t+1个随机数后的每个数据做所述加密处理,以获得所述密文信息;
所述解密处理模块包括:
初始解密因子获取单元,用于将所述密文信息尾部的前t+1个数据输入所述处理因子生成函数,获得t个初始解密因子;
解密处理单元,用于按照逆序对所述密文信息除去尾部的t+1个数据后的每个数据做所述解密处理,以解密得到所述填充明文串。
根据本公开实施例的第三方面,提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现如上任一所述方法的步骤。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一所述方法的步骤。
本公开提供的一种报文加解密方法,获取待加密的明文信息;按照正序依次对明文信息包括的每个报文块做加密处理,以获得密文信息;加密处理包括以下步骤:根据处理因子生成函数确定t个加密因子,按照从1至t的顺序,使用第1个加密因子对该报文块进行处理,以及,依次使用第i个加密因子对第i-1个加密因子处理得到的结果进行处理,以得到t个处理结果;将第t个处理结果作为该报文块的目标密文进行输出;i=2,3……t;在解密密文信息时,按照逆序依次对密文信息包括的每个报文块做解密处理,以解密得到明文信息;解密处理包括以下步骤:根据处理因子生成函数确定t个解密因子,按照从1至t的顺序,使用第1个解密因子对该报文块进行处理,以及,依次使用第i个解密因子对第i-1个解密因子处理得到的结果进行处理;以得到t个处理结果;将第t个处理结果作为该报文块的目标明文进行输出。本公开提供的一种报文加解密方法,对于明文信息中的每一个报文块,使用第1个加密因子对该报文块进行处理,以及,依次使用第i个加密因子对第i-1个处理因子处理得到的结构进行处理,使得整个加密过程紧密联系,不易被不法分子察觉,且不易被不法分子破解,解密过程同理,加解密过程具有较高的安全性。本公开涉及的一种报文加解密装置、电子设备及计算机可读存储介质也解决了相应技术问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为根据一示例性实施例示出的一种报文加解密方法的第一流程图;
图2为本公开示出的一种报文加解密方法的加密运算逻辑图;
图3为本公开示出的一种报文加解密方法的解密运算逻辑图;
图4为本公开示出的分组加密算法的加密运算逻辑图;
图5为本公开示出的分组加密算法的解密运算逻辑图;
图6为本公开示出的序列加密算法的加解密运算逻辑图;
图7为根据一示例性实施例示出的一种报文加解密装置的第一结构示意图;
图8为根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
请参阅图1,图1为根据一示例性实施例示出的一种报文加解密方法的第一流程图。
本公开涉及的一种报文加解密方法,可以包括以下步骤:
步骤S101:获取待加密的明文信息。
可以理解的是,待加密的明文信息的信息类型可以根据应用场景来确定,明文信息中包含的报文块的数量也可以根据应用场景来确定,比如明文信息可以为音频传输过程中的音频数据等。
步骤S102:按照正序依次对明文信息包括的每个报文块做加密处理,以获得密文信息;加密处理包括以下步骤:根据处理因子生成函数确定t个加密因子,按照从1至t的顺序,使用第1个加密因子对该报文块进行处理,以及,依次使用第i个加密因子对第i-1个加密因子处理得到的结果进行处理,以得到t个处理结果;将第t个处理结果作为该报文块的目标密文进行输出;i=2,3……t。
可以理解的是,在对明文信息进行加密处理时,需按照正序依次对明文信息中的每个报文块进行处理,也即按照获取的明文信息中报文块的排列顺序,按照从头到尾的顺序依次对每个报文块进行处理。不难理解,在对每个报文块进行加密处理时,需根据处理因子生成函数确定t个加密因子,这里所描述的t个加密因子指的是对同一个报文块进行处理时所用的加密因子,其可以是处理因子生成函数一次性生成的t个加密因子;也可以是处理因子生成函数多次生成的t个加密因子,此种情况下,处理因子生成函数可以每次只生成该报文块的一个加密因子,直到生成t个加密因子。并在在加密过程中,使用第一个加密因子对该报文块进行处理,以及,依次使用第i个加密因子对第i-1个加密因子处理得到的结果进行处理,i=2,3……t,直至得到t个处理结果,最后将第t个处理结果作为该报文块的目标密文进行输出。以待处理报文块为a,处理因子的个数为3,且分别为b1、b2、b3,则对该待处理报文块a进行处理时,先使用b1对a进行处理,得到处理结果为c1,再使用b2对c1进行处理,得到处理结果为c2,最后使用b3对c2进行处理,得到处理结果为c3,可以看出,从第二次处理开始,每次的处理过程均需要前一次的处理结果的参与,从而使得整个处理过程紧密联系,不法分子难以根据处理结果还原出待处理报文块,安全性高。应当指出,在处理因子生成函数每次只生成一个加密因子时,可以在生成一个加密因子后,便对前一个加密因子处理得到的结果进行处理,得到新的处理结果等。
步骤S103:在解密密文信息时,按照逆序依次对密文信息包括的每个报文块做解密处理,以解密得到明文信息;解密处理包括以下步骤:根据处理因子生成函数确定t个解密因子,按照从1至t的顺序,使用第1个解密因子对该报文块进行处理,以及,依次使用第i个解密因子对第i-1个解密因子处理得到的结果进行处理;以得到t个处理结果;将第t个处理结果作为该报文块的目标明文进行输出。
可以理解的是,在解密密文信息时,需按照逆序对密文信息包括的每个报文块进行处理,也即在得到密文信息后,按照从尾到头的顺序对密文信息中的报文块进行处理,假设密文信息的排列顺序为A、B、C,则应按照C、B、A的顺序进行解密处理。不难理解,在对每个报文块进行解密处理时,需根据处理因子生成函数确定t个解密因子,这里所描述的t个解密因子指的是对同一个报文块进行处理时所用的解密因子,其可以是处理因子生成函数一次性生成的t个解密因子;也可以是处理因子生成函数多次生成的t个解密因子,此种情况下,处理因子生成函数可以每次只生成该报文块的一个解密因子,直到生成t个解密因子。并在在解密过程中,使用第一个解密因子对该报文块进行处理,以及,依次使用第i个解密因子对第i-1个解密因子处理得到的结果进行处理,i=2,3……t,直至得到t个处理结果,最后将第t个处理结果作为该报文块的目标明文进行输出。应当指出,在处理因子生成函数每次只生成一个解密因子时,可以在生成一个解密因子后,便对前一个解密因子处理得到的结果进行处理,得到新的处理结果等。
此外,不难发现,本公开提供的报文加解密方法中,加密因子的生成函数和解密因子的生成函数均为处理因子生成函数,只是在加密过程中,按照正序对明文信息进行加密,在解密过程中,按照逆序对密文信息进行解密,所以本公开提供的加密方法和解密方法可以共用一套装置,只是按照相反的方向对明文信息和密文信息进行处理,比如将正序的明文信息从该装置的输入端输入至该装置,进行加密处理,则将逆序的密文信息从该装置的输出端输入至该装置,进行解密处理,应用场景中,可以借助电路来进行输入端、输出端的切换从而实现该装置。
本公开提供的一种报文加解密方法,获取待加密的明文信息;按照正序依次对明文信息包括的每个报文块做加密处理,以获得密文信息;加密处理包括以下步骤:根据处理因子生成函数确定t个加密因子,按照从1至t的顺序,使用第1个加密因子对该报文块进行处理,以及,依次使用第i个加密因子对第i-1个处理因子处理得到的结果进行处理,以得到t个处理结果;将第t个处理结果作为该报文块的目标密文进行输出;i=2,3……t;在解密密文信息时,按照逆序依次对密文信息包括的每个报文块做解密处理,以解密得到明文信息;解密处理包括以下步骤:根据处理因子生成函数确定t个解密因子,按照从1至t的顺序,使用第1个解密因子对该报文块进行处理,以及,依次使用第i个解密因子对第i-1个解密因子处理得到的结果进行处理;以得到t个处理结果;将第t个处理结果作为该报文块的目标明文进行输出。本公开提供的一种报文加解密方法,对于明文信息中的每一个报文块,使用第1个加密因子对该报文块进行处理,以及,依次使用第i个加密因子对第i-1个处理因子处理得到的结构进行处理,使得整个加密过程紧密联系,不易被不法分子察觉,且不易被不法分子破解,解密过程同理,加解密过程具有较高的安全性。
本公开涉及的一种报文加解密方法中,为了进一步提高整个方法的安全性,可以提高处理因子的复杂性,比如根据前一个待处理报文块的处理结果确定下一个待处理报文块的处理因子,则根据处理因子生成函数确定t个加密因子的过程可以为:将加密处理的前一个报文块及对应得到的t个处理结果作为输入数据输入处理因子生成函数,得到t个加密因子;相应的,根据处理因子生成函数确定t个解密因子的过程可以为:将解密处理的前一个报文块及对应得到的t个处理结果作为输入数据输入处理因子生成函数,得到t个解密因子。此外,对于第一个处理的报文块,可以基于s+1个预设初值确定第一次处理的报文块的s个处理因子,之后,对于处理的每一个报文块,基于上一次处理的报文块及得到的s个处理结果得到该报文块的s个处理因子,从而使得从第二个处理的报文块开始,每个报文块的处理过程均与上一个报文块的处理结果相关,从而使得本公开涉及的报文加解密方法的整体联系更加紧密,使得不法分子难以攻破处理因子,安全性更高。不难理解,应用场景中,还可以将前一个报文块对应得到的t个处理结果及当前要处理的报文块作为输入数据输入处理因子生成函数,得到相应的加密因子或解密因子。
本公开涉及的一种报文加解密方法,还可以将随机数与明文信息组合,得到更复杂的填充明文串,一方面,可以起到隐藏真实的明文信息的作用,另一方面还可以借助随机数来得到第一个报文块的处理因子,则在获取待加密的明文信息之后,还可以在明文信息的首部及尾部分别填充随机数串,得到填充明文串;其中,填充在首部及尾部的随机数串包含随机数的数量均为t+1的整数倍;相应的,按照正序依次对所述明文信息包括的每个报文块做加密处理,以获得密文信息的过程可以为:将填充明文串的前t+1个随机数输入处理因子生成函数,获得t个初始加密因子;按照正序依次对填充明文串除去前t+1个随机数后的每个数据做加密处理,以获得密文信息;按照逆序依次对密文信息包括的每个报文块做解密处理,以解密得到所述明文信息的过程可以为:将密文信息尾部的前t+1个数据输入处理因子生成函数,获得t个初始解密因子,按照逆序对密文信息除去尾部的t+1个数据后的每个数据做解密处理,以解密得到填充明文串。
可以理解的是,可以采用寄存器保存待处理的报文块,比如采用l比特的寄存器保存当前待处理的报文块。相应的,获取待加密的明文信息的过程可以为:获取一组待处理报文;判断待处理报文的长度是否为l比特的整数倍;若待处理报文的长度并非l比特的整数倍,则对一组待处理报文进行填充,使填充后的一组待处理报文的长度为l比特的整数倍,基于填充后的一组待处理报文得到明文信息。相应的,在明文信息的首部及尾部分别填充随机数串,得到填充明文串的过程可以为:将填充后的一组待处理报文与选取的2t+2个长度均为l比特的随机数进行串运算,得到串运算结果;基于串运算结果得到n个待处理报文块,n个待处理报文块也即填充明文串,其过程可以如下:设所需加密的明文信息为M,以特定的填充方式填充明文,使填充后的明文信息的长度为l的倍数,并记填充后的明文为M',随机选取两个长度为(t+1)*l的随机数IV0,IV1,其中构造填充明文串m0||m1||…||mn-1=IV0‖M′||IV1,其中||表示串联。
此外,在处理因子生成函数一次只生成一个处理因子时,假设填充明文串的长度为n,其中前t+1和后t+1个数据均为随机数,则对明文串进行加密处理的过程可以为:按照正序在填充明文串的头部选取t+1个数据,将第一个数据作为密文输出,将t+1个数据作为输入数据输入至处理因子生成函数,得到t个加密因子;在这t+1个数据中,用第i个加密因子对第i+1个数据进行处理,得到t个处理结果,i=2,3……t;按照正序在填充明文串的头部选取1个未被处理的数据,将t个处理结果和选取的1个数据组成新的t+1个数据,返回执行将第一个数据输出作为明文及以后的步骤,直至将填充明文串中每一个数据均进行了处理,并将最后一轮得到的t个处理结果连同最后一轮选择的数据作为密文输出,总计得到n个密文。当需要对n个密文进行解密时,对n个密文进行解密处理的过程可以为:按照逆序在n各密文的尾部选取t+1个数据,将第1个数据作为明文输出,将t+1个数据作为输入数据输入至处理因子生成函数,得到t个解密因子;在这t+1个数据中,用第i个解密因子对第t-i+2个数据进行处理,得到t个处理结果,i=2,3……t;按照逆序在n个密文的尾部选取1个未被处理的数据,将t个处理结果和选取的1个数据组成新的t+1个数据,返回执行将第1个数据作为明文输出及以后的步骤,直至将填充明文串中每一个数据进行了处理,并将最后一轮得到的t个处理结果连同最后一轮选择的数据作为明文输出,总计得到n个明文。
本公开涉及的一种报文加解密方法还可以经过循环输出分组密码,也即本公开还涉及一种分组密码生成方法,由于本公开更好的安全性,其生成的分组密码的安全性也较高。本公开生成分组密码的方式如下:在获得密文信息之后,迭代执行按照正序依次对明文信息包括的每个报文块做加密处理的步骤直到预设次数,以基于最后一轮得到的目标处理结果实现分组密码;其中,每次迭代步骤使用的报文块为前一次迭代步骤得到的所有密文信息。
本公开涉及的一种报文加解密方法还可以经过再循环输出序列密码,也即本公开还涉及一种序列密码生成方法,由于本公开更好的安全性,其生成的序列密码的安全性也较高。本公开生成序列密码的方式如下:在获得密文信息之后,迭代执行根据处理因子生成函数确定t个加密因子,按照从1至t的顺序,使用第1个加密因子对该报文块进行处理,以及,依次使用第i个加密因子对第i-1个处理因子处理得到的结果进行处理,以得到t个处理结果;将第t个处理结果作为该报文块的目标密文进行输出的步骤,以实现序列密码;其中,每次迭代步骤使用的报文块为前一次迭代步骤得到的最后一个密文信息。
为了进一步对本公开涉及的一种报文加解密方法进行描述,现结合具体运算逻辑图和算法对本实施例进行描述。
可以理解的是,本公开涉及的加密方法和解密方法的流程基本相同,只是加密方法和解密方法所应用的处理因子以及其所用的算法不同,所以本公开涉及的加密方法和解密方法可以共用一套参数完全相同的逻辑装置,只需在实现加密方法或解密方法时调整数据的输入方向即可,比如加密时采用正序处理方式,将明文从输入门输入至装置;解密时采用逆序处理方式,将密文从输出门输入至装置等。请参阅图2和图3,图2为本公开示出的一种报文加解密方法的加密运算逻辑图,图3为本公开示出的一种报文加解密方法的解密运算逻辑图。图2和图3中,mi表示待处理报文块,也即明文,ci表示的加密结果,也即密文;Ri表示l比特的寄存器;fi表示相应的加密因子或解密因子;Fk表示与密钥相关的处理因子生成函数,Fk为将t+1个l比特输入转换为t个l比特输出的函数,K表示密钥;XOR表示异或门。
由图2和图3可以看出,加密运算逻辑图与解密运算逻辑图基本相同。均由t+1个寄存器与t个异或门,以及一个函数构成。
加密运算逻辑图对应的加密算法可以为:
将m0,m1,···,mt分别写入寄存器R0,R1,···,Rt中;
For i=0to n-t-2
ci=R0
(ft-1,ft-2,…,f0)=Fk(Rt,Rt-1,…,R0)
For j=0to t-1
Rt=mt+1+i
(cn-t-1,cn-t,…,cn-1)=(R0,R1,…,Rt)
输出密文:(c0,c1,…,cn-1)。
解密运算逻辑图对应的解密算法可以为:
将cn-t-1,cn-t,···,cn-1分别写入寄存器R0,R1,···,Rt中;
For i=n-t-2to 0
mi+t+1=Rt
(ft-1,ft-2,…,f0)=Fk(Rt,Rt-1,…,R0)
For i=t to 1
R0=ci
(mt,mt-1,…,m0)=(Rt,Rt-1,…,R0);
输出明文:(m0,m1,…,mn-1)
经由加密算法与解密算法可知,比较加解密最后时刻n-t-2时的内部状态,与解密运算的初始时刻n-t-2时刻的内部状态可知,解密经过第一个时钟周期之后,寄存器中的值正好为加密运算前一时刻中的值,即加解密对应时刻输入到函数FK中的值是相同的,从而加解密对应时刻FK函数返回的值f0,f1,…,ft-1也是相同的,而运算是可逆的,所以解密算法解密所得正好为对应的明文。
为了便于理解,一并示出本公开涉及的分组密码实现方法及序列密码实现方法的运算逻辑图。请参阅图4、图5和图6,图4为本公开示出的分组加密算法的加密运算逻辑图,图5为本公开示出的分组加密算法的解密运算逻辑图,图6为本公开示出的序列加密算法的加解密运算逻辑图。在图4和图5中,因为每一次迭代都是可逆的,所以,将密文置入状态寄存器按照相反方向运行,就可以得到明文。
请参阅图7,图7为根据一示例性实施例示出的一种报文加解密装置的第一结构示意图。
本公开涉及的一种报文加解密装置700,可以包括:
第一获取模块710,用于获取待加密的明文信息;
加密处理模块720,用于按照正序依次对所述明文信息包括的每个报文块做加密处理,以获得密文信息;所述加密处理包括以下步骤:根据处理因子生成函数确定t个加密因子,按照从1至t的顺序,使用第1个加密因子对该报文块进行处理,以及,依次使用第i个加密因子对第i-1个处理因子处理得到的结果进行处理,以得到t个处理结果;将第t个处理结果作为该报文块的目标密文进行输出;i=2,3……t;
解密处理模块730,用于在解密所述密文信息时,按照逆序依次对所述密文信息包括的每个报文块做解密处理,以解密得到所述明文信息;所述解密处理包括以下步骤:根据所述处理因子生成函数确定t个解密因子,按照从1至t的顺序,使用第1个解密因子对该报文块进行处理,以及,依次使用第i个解密因子对第i-1个解密因子处理得到的结果进行处理;以得到t个处理结果;将第t个处理结果作为该报文块的目标明文进行输出。
本公开涉及的一种报文加解密装置,加密处理模块可以包括:
加密因子生成单元,用于将加密处理的前一个报文块及对应得到的t个处理结果作为输入数据输入所述处理因子生成函数,得到所述t个加密因子;
解密处理模块可以包括:
解密因子生成单元,用于将解密处理的前一个报文块及对应得到的t个处理结果作为输入数据输入所述处理因子生成函数,得到所述t个解密因子。
本公开涉及的一种报文加解密装置,还可以包括:
第一填充模块,用于所述第一获取模块在获取待加密的明文信息之后,在所述明文信息的首部及尾部分别填充随机数串,得到填充明文串;其中,填充在首部及尾部的随机数串包含随机数的数量均为t+1的整数倍;
加密处理模块可以包括:
初始加密因子获取单元,用于将所述填充明文串的前t+1个随机数输入所述处理因子生成函数,获得t个初始加密因子;
加密处理单元,用于按照正序依次对所述填充明文串除去前t+1个随机数后的每个数据做所述加密处理,以获得所述密文信息;
解密处理模块可以包括:
初始解密因子获取单元,用于将所述密文信息尾部的前t+1个数据输入所述处理因子生成函数,获得t个初始解密因子;
解密处理单元,用于按照逆序对所述密文信息除去尾部的t+1个数据后的每个数据做所述解密处理,以解密得到所述填充明文串。
本公开涉及的一种报文加解密装置,还可以包括:
分组迭代循环模块,用于在获得密文信息之后,迭代执行按照正序依次对所述明文信息包括的每个报文块做加密处理的步骤直到预设次数,以基于最后一轮得到的目标处理结果实现分组密码;其中,每次迭代步骤使用的报文块为前一次迭代步骤得到的所有密文信息。
本公开涉及的一种报文加解密装置,还可以包括:
序列迭代循环模块,用于在获得密文信息之后,迭代执行所述根据处理因子生成函数确定t个加密因子,按照从1至t的顺序,使用第1个加密因子对该报文块进行处理,以及,依次使用第i个加密因子对第i-1个加密因子处理得到的结果进行处理,以得到t个处理结果;将第t个处理结果作为该报文块的目标密文进行输出的步骤,以实现序列密码;其中,每次迭代步骤使用的报文块为前一次迭代步骤得到的最后一个密文信息。
图8为根据一示例性实施例示出的一种电子设备900的框图。如图8所示,该电子设备900可以包括:处理器901,存储器902。该电子设备900还可以包括多媒体组件903,输入/输出(I/O)接口904,以及通信组件905中的一者或多者。
其中,处理器901用于控制该电子设备900的整体操作,以完成上述的报文加解密方法中的全部或部分步骤。存储器902用于存储各种类型的数据以支持在该电子设备900的操作,这些数据例如可以包括用于在该电子设备900上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器902可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件903可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器902或通过通信组件905发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口904为处理器901和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件905用于该电子设备900与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件905可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,电子设备900可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的报文加解密方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的报文加解密方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器902,上述程序指令可由电子设备900的处理器901执行以完成上述的报文加解密方法。
本公开实施例提供的一种报文加解密装置、电子设备及计算机可读存储介质中相关部分的说明请参见本公开实施例提供的一种报文加解密方法中对应部分的详细说明,在此不再赘述。另外,本公开实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本公开。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种报文加解密方法,其特征在于,包括:
获取待加密的明文信息;
按照正序依次对所述明文信息包括的每个报文块做加密处理,以获得密文信息;
所述加密处理包括以下步骤:根据处理因子生成函数确定t个加密因子,按照从1至t的顺序,使用第1个加密因子对该报文块进行处理,以及,依次使用第i个加密因子对第i-1个加密因子处理得到的结果进行处理,以得到t个处理结果;将第t个处理结果作为该报文块的目标密文进行输出;i=2,3……t ;
在解密所述密文信息时,按照逆序依次对所述密文信息包括的每个报文块做解密处理,以解密得到所述明文信息;
所述解密处理包括以下步骤:根据所述处理因子生成函数确定t个解密因子,按照从1至t的顺序,使用第1个解密因子对该报文块进行处理,以及,依次使用第i个解密因子对第i-1个解密因子处理得到的结果进行处理;以得到t个处理结果;将第t个处理结果作为该报文块的目标明文进行输出;
其中,所述根据处理因子生成函数确定t个加密因子,包括:
将加密处理的前一个报文块及对应得到的t个处理结果作为输入数据输入所述处理因子生成函数,得到所述t个加密因子;
所述根据所述处理因子生成函数确定t个解密因子,包括:
将解密处理的前一个报文块及对应得到的t个处理结果作为输入数据输入所述处理因子生成函数,得到所述t个解密因子。
2.根据权利要求1所述的方法,其特征在于,所述在获取待加密的明文信息之后,还包括:
在所述明文信息的首部及尾部分别填充随机数串,得到填充明文串;其中,填充在首部及尾部的随机数串包含随机数的数量均为t+1的整数倍;
按照正序依次对所述明文信息包括的每个报文块做加密处理,以获得密文信息,包括:
将所述填充明文串的前t+1个随机数输入所述处理因子生成函数,获得t个初始加密因子;
按照正序依次对所述填充明文串除去前t+1个随机数后的每个数据做所述加密处理,以获得所述密文信息;
按照逆序依次对所述密文信息包括的每个报文块做解密处理,以解密得到所述明文信息,包括:
将所述密文信息尾部的前t+1个数据输入所述处理因子生成函数,获得t个初始解密因子;
按照逆序对所述密文信息除去尾部的t+1个数据后的每个数据做所述解密处理,以解密得到所述填充明文串。
3.根据权利要求1至2任一项所述的方法,其特征在于,在获得密文信息之后,还包括:
迭代执行权利要求1中按照正序依次对所述明文信息包括的每个报文块做加密处理的步骤直到预设次数,以基于最后一轮得到的目标处理结果实现分组密码;
其中,每次迭代步骤使用的报文块为前一次迭代步骤得到的所有密文信息。
4.根据权利要求1至2任一项所述的方法,其特征在于,在获得密文信息之后,还包括:
迭代执行所述根据处理因子生成函数确定t个加密因子,按照从1至t的顺序,使用第1个加密因子对该报文块进行处理,以及,依次使用第i个加密因子对第i-1个加密因子处理得到的结果进行处理,以得到t个处理结果;将第t个处理结果作为该报文块的目标密文进行输出的步骤,以实现序列密码;
其中,每次迭代步骤使用的报文块为前一次迭代步骤得到的最后一个密文信息。
5.一种报文加解密装置,其特征在于,包括:
第一获取模块,用于获取待加密的明文信息;
加密处理模块,用于按照正序依次对所述明文信息包括的每个报文块做加密处理,以获得密文信息;所述加密处理包括以下步骤:根据处理因子生成函数确定t个加密因子,按照从1至t的顺序,使用第1个加密因子对该报文块进行处理,以及,依次使用第i个加密因子对第i-1个加密因子处理得到的结果进行处理,以得到t个处理结果;将第t个处理结果作为该报文块的目标密文进行输出;i=2,3……t ;
解密处理模块,用于在解密所述密文信息时,按照逆序依次对所述密文信息包括的每个报文块做解密处理,以解密得到所述明文信息;所述解密处理包括以下步骤:根据所述处理因子生成函数确定t个解密因子,按照从1至t的顺序,使用第1个解密因子对该报文块进行处理,以及,依次使用第i个解密因子对第i-1个解密因子处理得到的结果进行处理;以得到t个处理结果;将第t个处理结果作为该报文块的目标明文进行输出;
其中,所述加密处理模块包括:
加密因子生成单元,用于将加密处理的前一个报文块及对应得到的t个处理结果作为输入数据输入所述处理因子生成函数,得到所述t个加密因子;
所述解密处理模块包括:
解密因子生成单元,用于将解密处理的前一个报文块及对应得到的t个处理结果作为输入数据输入所述处理因子生成函数,得到所述t个解密因子。
6.根据权利要求5所述的装置,其特征在于,还包括:
第一填充模块,用于所述第一获取模块在获取待加密的明文信息之后,在所述明文信息的首部及尾部分别填充随机数串,得到填充明文串;其中,填充在首部及尾部的随机数串包含随机数的数量均为t+1的整数倍;
所述加密处理模块包括:
初始加密因子获取单元,用于将所述填充明文串的前t+1个随机数输入所述处理因子生成函数,获得t个初始加密因子;
加密处理单元,用于按照正序依次对所述填充明文串除去前t+1个随机数后的每个数据做所述加密处理,以获得所述密文信息;
所述解密处理模块包括:
初始解密因子获取单元,用于将所述密文信息尾部的前t+1个数据输入所述处理因子生成函数,获得t个初始解密因子;
解密处理单元,用于按照逆序对所述密文信息除去尾部的t+1个数据后的每个数据做所述解密处理,以解密得到所述填充明文串。
7.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1至4中任一项所述方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910151178.9A CN109714368B (zh) | 2019-02-28 | 2019-02-28 | 报文加解密方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910151178.9A CN109714368B (zh) | 2019-02-28 | 2019-02-28 | 报文加解密方法、装置、电子设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109714368A CN109714368A (zh) | 2019-05-03 |
CN109714368B true CN109714368B (zh) | 2022-01-11 |
Family
ID=66265928
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910151178.9A Active CN109714368B (zh) | 2019-02-28 | 2019-02-28 | 报文加解密方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109714368B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110336662B (zh) * | 2019-06-06 | 2022-02-18 | 平安科技(深圳)有限公司 | 数字信息加密方法、装置、计算机设备和存储介质 |
CN111563262B (zh) * | 2020-04-15 | 2024-01-23 | 清华大学 | 一种基于可逆深度神经网络的加密方法及系统 |
CN113821805B (zh) * | 2020-06-19 | 2023-12-26 | 北京达佳互联信息技术有限公司 | 一种数据加密方法及装置 |
CN113810363B (zh) * | 2021-07-29 | 2023-06-20 | 蜂巢能源科技有限公司 | 报文加密、解密方法及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1760667A2 (en) * | 2005-08-24 | 2007-03-07 | Agilent Technologies, Inc. | Biometric identification device |
CN104410616A (zh) * | 2014-11-20 | 2015-03-11 | 广州日滨科技发展有限公司 | 数据加密、解密、传输方法和系统 |
CN109379508A (zh) * | 2018-09-18 | 2019-02-22 | 湖北工程学院 | 一种联合加密与压缩的图像保护方法、存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100303229A1 (en) * | 2009-05-27 | 2010-12-02 | Unruh Gregory | Modified counter mode encryption |
-
2019
- 2019-02-28 CN CN201910151178.9A patent/CN109714368B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1760667A2 (en) * | 2005-08-24 | 2007-03-07 | Agilent Technologies, Inc. | Biometric identification device |
CN104410616A (zh) * | 2014-11-20 | 2015-03-11 | 广州日滨科技发展有限公司 | 数据加密、解密、传输方法和系统 |
CN109379508A (zh) * | 2018-09-18 | 2019-02-22 | 湖北工程学院 | 一种联合加密与压缩的图像保护方法、存储介质 |
Non-Patent Citations (3)
Title |
---|
"An FPGA-Based Performance Evaluation of the AES Block Cipher Candidate Algorithm Finalists";Adam J. Elb;《IEEE》;20010831;全文 * |
"Generation of Key Matrix for Hill Cipher Encryption Using Classical Cipher";K Mani;《IEEE》;20171019;全文 * |
"序列密码可重构处理系统结构及专用指令集研究";刘婷婷;《中国优秀硕士学位论文全文数据库》;20100715;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109714368A (zh) | 2019-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109714368B (zh) | 报文加解密方法、装置、电子设备及计算机可读存储介质 | |
JP5911654B2 (ja) | 乱数生成器及びストリーム暗号 | |
JP5855696B2 (ja) | 完全性検証を含むブロック暗号化方法およびブロック復号化方法 | |
CN110235409A (zh) | 使用同态加密被保护的rsa签名或解密的方法 | |
US20090220083A1 (en) | Stream cipher using multiplication over a finite field of even characteristic | |
JPWO2009020060A1 (ja) | 共通鍵ブロック暗号化装置、共通鍵ブロック暗号化方法及びプログラム | |
CN112287377A (zh) | 基于联邦学习的模型训练方法、计算机设备及存储介质 | |
Kawle et al. | Modified advanced encryption standard | |
CN109981249B (zh) | 基于拉链式动态散列和nlfsr的加密解密方法及装置 | |
CN105184115A (zh) | 用于将隐式完整性或可信性检查包括到白箱实现中的方法 | |
CN112054896B (zh) | 白盒加密方法、装置、终端及存储介质 | |
US20080243977A1 (en) | Pseudorandom number generator and encrytion device using the same | |
CN110213050A (zh) | 密钥生成方法、装置及存储介质 | |
Ajmal et al. | Cloud computing platform: Performance analysis of prominent cryptographic algorithms | |
CN116488795B (zh) | 一种gcm-aes处理方法和装置 | |
WO2015166701A1 (ja) | 暗号化方法、プログラム、および、システム | |
Buell | Modern symmetric ciphers—Des and Aes | |
CN115632782B (zh) | 基于sm4计数器模式的随机数生成方法、系统及设备 | |
TW200418298A (en) | Crypto-system with an inverse key evaluation circuit | |
CN115277064B (zh) | 数据加密、数据解密方法、装置、电子设备和介质 | |
JP2017527225A (ja) | 暗号システムの再現可能なランダムシーケンス | |
CN108777622B (zh) | 一种二进制流散列取模加密解密方法 | |
CN110474967B (zh) | 块链实验系统及方法 | |
Kumar et al. | Implementation of AES algorithm using VHDL | |
US11101824B2 (en) | Encryption device and decryption device, and operation method thereof |
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 | ||
CP01 | Change in the name or title of a patent holder |
Address after: No. 333, Yunhua Road, high tech Zone, Chengdu, Sichuan 610041 Patentee after: China Electronics Technology Network Security Technology Co.,Ltd. Address before: No. 333, Yunhua Road, high tech Zone, Chengdu, Sichuan 610041 Patentee before: CHENGDU WESTONE INFORMATION INDUSTRY Inc. |
|
CP01 | Change in the name or title of a patent holder |