CN109951456A - 报文加解密方法、装置、电子设备及计算机可读存储介质 - Google Patents
报文加解密方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109951456A CN109951456A CN201910150574.XA CN201910150574A CN109951456A CN 109951456 A CN109951456 A CN 109951456A CN 201910150574 A CN201910150574 A CN 201910150574A CN 109951456 A CN109951456 A CN 109951456A
- Authority
- CN
- China
- Prior art keywords
- clear text
- text block
- treatment factors
- block
- factors
- 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
Landscapes
- Storage Device Security (AREA)
Abstract
本公开涉及一种报文加解密方法及装置、电子设备、计算机可读存储介质,该方法包括获取一组待处理报文,一组待处理报文中包括t个待处理报文块,t为正整数;依次针对t个待处理报文块中的每一个待处理报文块进行如下处理:确定s个处理因子,处理因子为加密因子或解密因子;按照从1至s的顺序,使用第1个处理因子对该待处理报文块进行处理,以及,依次使用第i个处理因子对第i‑1个处理因子处理得到的结果进行处理,以获得s个处理结果;i=2,3……s;将第s个处理结果作为该待处理报文块的目标处理结果进行输出。本公开提供的一种报文加解密方法、装置、电子设备及计算机可读存储介质,提高了加解密算法的安全性。
Description
技术领域
本公开涉及信息安全技术领域,更具体地说,涉及报文加解密方法、装置、电子设备及计算机可读存储介质。
背景技术
随着通信技术的发展,信息安全的重要性日渐上升。为了保证信息的安全,需要对信息进行加密,相关的加密方法有序列密码加密方式、分组密码加密方式等。
当前,现有的加解密方式难以越来越多样化的应用需求,设计新型、高效、安全的加解密算法是目前本领域技术人员亟待解决的问题。
发明内容
本公开的目的是提供一种报文加解密方法,其能在一定程度上解决如何提供一种适用于更多应用场景并具有较高安全性的加解密算法的技术问题。本公开还提供了一种报文加解密装置、电子设备及计算机可读存储介质。
一方面,本公开提供了一种报文加解密方法,包括:
获取一组待处理报文,所述一组待处理报文中包括t个待处理报文块,t为正整数;
依次针对所述t个待处理报文块中的每一个待处理报文块进行如下处理,以获得所述t个待处理报文对应的t个目标处理结果:
确定s个处理因子,所述处理因子为加密因子或解密因子;
按照从1至s的顺序,使用第1个处理因子对该待处理报文块进行处理,以及,依次使用第i个处理因子对第i-1个处理因子处理得到的结果进行处理,以获得s个处理结果;i=2,3……s;
将第s个处理结果作为该待处理报文块的目标处理结果进行输出。
优选的,所述确定s个处理因子,包括:
将上一次处理的待处理报文块及对应得到的s个处理结果作为输入数据输入处理因子生成函数,得到s个处理因子;
其中,将s+1个预设初值作为输入数据输入所述处理因子生成函数得到所述t个待处理报文块中第一个待处理报文块的s个处理因子;所述处理因子生成函数为将s+1个输入转换为s个输出的加密因子生成函数或解密因子生成函数,将s+1个输入数据正序输入所述加密因子生成函数后得到的运算结果,与将所述s+1个输入数据反序输入所述解密因子生成函数后得到的运算结果相同。
优选的,在获得所述t个待处理报文对应的t个目标处理结果之后,还包括:
迭代执行对t个待处理报文块进行处理的步骤直到预设次数,以基于最后一轮得到的目标处理结果实现分组密码;
其中,每次迭代步骤使用的t个待处理报文块为前一次迭代步骤得到的t个目标处理结果。
优选的,在获得所述t个待处理报文对应的t个目标处理结果之后,还包括:
迭代执行所述确定s个处理因子、按照从1至s的顺序,使用第1个处理因子对该待处理报文块进行处理,以及,依次使用第i个处理因子对第i-1个处理因子处理得到的结果进行处理,以获得s个处理结果、将第s个处理结果作为该待处理报文块的目标处理结果进行输出的步骤,以实现序列密码;
其中,每次迭代步骤使用的待处理报文块为前一次迭代步骤得到的最后一个所述目标处理结果。
优选的,所述确定s个处理因子之后,所述按照从1至s的顺序,使用第一个处理因子对该待处理报文进行处理之前,还包括:
基于所述处理因子的大小确定所述s个处理因子的排列顺序。
根据本公开实施例的第二方面,提供一种报文加解密装置,包括:
第一获取模块,用于获取一组待处理报文,所述一组待处理报文中包括t个待处理报文块,t为正整数;
第一确定循环模块,用于依次针对所述t个待处理报文块中的每一个待处理报文块,确定s个处理因子,所述处理因子为加密因子或解密因子;
第一处理循环模块,用于依次针对所述t个待处理报文块中的每一个待处理报文块,按照从1至s的顺序,使用第1个处理因子对该待处理报文进行处理,以及,依次使用第i个处理因子对第i-1个处理因子处理得到的结果进行处理,以获得s个处理结果;i=2,3……s;
第一输出循环模块,用于依次针对所述t个待处理报文块中的每一个待处理报文块,将第s个处理结果作为该待处理报文的目标处理结果进行输出。
优选的,所述第一确定循环模块包括:
第一确定单元,用于将上一次处理的待处理报文块及对应得到的s个处理结果作为输入数据输入处理因子生成函数,得到s个处理因子;
其中,将s+1个预设初值作为输入数据输入所述处理因子生成函数得到所述t个待处理报文块中第一个待处理报文块的s个处理因子;所述处理因子生成函数为将s+1个输入转换为s个输出的加密因子生成函数或解密因子生成函数,将s+1个输入数据正序输入所述加密因子生成函数后得到的运算结果,与将所述s+1个输入数据反序输入所述解密因子生成函数后得到的运算结果相同。
优选的,还包括:
分组迭代循环模块,用于在获得所述t个待处理报文对应的t个目标处理结果之后,迭代执行对t个待处理报文块进行处理的步骤直到预设次数,以基于最后一轮得到的目标处理结果实现分组密码;其中,每次迭代步骤使用的t个待处理报文块为前一次迭代步骤得到的t个目标处理结果。
根据本公开实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上任一所述方法的步骤。
根据本公开实施例的第四方面,提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现如上任一所述方法的步骤。
本公开提供的一种报文加解密方法,获取一组待处理报文,一组待处理报文中包括t个待处理报文块,t为正整数;依次针对t个待处理报文块中的每一个待处理报文块进行如下处理,以获得t个待处理报文对应的t个目标处理结果:确定s个处理因子,处理因子为加密因子或解密因子;按照从1至s的顺序,使用第1个处理因子对该待处理报文块进行处理,以及,依次使用第i个处理因子对第i-1个处理因子处理得到的结果进行处理,以获得s个处理结果;i=2,3……s;将第s个处理结果作为该待处理报文块的目标处理结果进行输出。本公开提供的一种报文加解密方法,使用s个处理因子对每一个待处理报文块进行处理,且在使用第1个处理因子对待处理报文块进行处理之后,依次使用第i个处理因子对第i-1个处理因子处理得到的结果进行处理,使得整个加密过程紧密联系,不易被不法分子察觉,且不易被不法分子破解,提高了加解密算法的安全性。本公开提供的一种加解密装置、电子设备及计算机可读存储介质也解决了相应技术问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为根据一示例性实施例示出的一种报文加解密方法的第一流程图;
图2为根据一示例性实施例示出的一种报文加解密方法的第二流程图;
图3为本公开示出的一种加解密方法的加密运算逻辑图;
图4为本公开示出的一种加解密方法的解密运算逻辑图;
图5为本公开示出的分组加密算法的运算逻辑图;
图6为本公开示出的序列加密算法的运算逻辑图;
图7为根据一示例性实施例示出的一种报文加解密装置的第一结构示意图;
图8为根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
请参阅图1,图1为根据一示例性实施例示出的一种报文加解密方法的第一流程图。
本公开涉及的一种报文加解密方法,可以包括以下步骤:
步骤S101:获取一组待处理报文,一组待处理报文中包括t个待处理报文块,t为正整数。
可以理解的是,一组待处理报文中的信息可以根据应用场景来确定,比如其可以为视频传输过程中的视频数据等。
步骤S102:依次针对t个待处理报文块中的每一个待处理报文块进行如下处理:确定s个处理因子,处理因子为加密因子或解密因子。
可以理解是,对于t个待处理报文块中的每一个待处理报文块,均需先确定s个处理因子,处理因子的类型可以根据应用场景确定,比如在需要对当前待处理报文块进行加密操作时,处理因子可以为加密因子;而在需要对当前待处理报文块进行解密操作时,处理因子可以为解密因子等,且此时的一组待处理报文应为处理因子为加密因子时得到的加密结果。s个处理因子可以根据应用场景来确定,且每个待处理报文块对应的s个处理因子可以为相同的处理因子,也可以为不同的处理因子。
步骤S103:依次针对t个待处理报文块中的每一个待处理报文块进行如下处理:按照从1至s的顺序,使用第1个处理因子对该待处理报文块进行处理,以及,依次使用第i个处理因子对第i-1个个处理因子处理得到的结果进行处理,以获得s个处理结果,i=2,3……s。
可以理解的是,在对每一个待处理报文块进行处理的过程中,在确定s个处理因子后,可以按照从1至s的顺序,使用第1个处理因子对该待处理报文块进行处理,以及,依次使用第i个处理因子对第i-1个处理因子处理得到的结果进行处理,以获得s个处理结果。以待处理报文块为a,处理因子的个数为3,且分别为b1、b2、b3,则对该待处理报文块a进行处理时,先使用b1对a进行处理,得到处理结果为c1,再使用b2对c1进行处理,得到处理结果为c2,最后使用b3对c2进行处理,得到处理结果为c3,可以看出,从第二次处理开始,每次的处理过程均需要前一次的处理结果的参与,从而使得整个处理过程紧密联系,不法分子难以根据处理结果还原出待处理报文块,安全性高。
步骤S104:依次针对t个待处理报文块中的每一个待处理报文块进行如下处理:将第s个处理结果作为该待处理报文块的目标处理结果进行输出。
可以理解的是,在基于s个处理因子对于t个待处理报文块中的每一个待处理报文块进行处理之后,可以将每个待处理报文块的第s个处理结果作为该待处理报文块的目标处理结果,还可以将每个待处理报文块的目标处理结果进行输出,得到一组待处理报文的处理结果。
本公开提供的一种报文加解密方法,获取一组待处理报文,一组待处理报文中包括t个待处理报文块,t为正整数;依次针对t个待处理报文块中的每一个待处理报文块进行如下处理,以获得t个待处理报文对应的t个目标处理结果:确定s个处理因子,处理因子为加密因子或解密因子;按照从1至s的顺序,使用第1个处理因子对该待处理报文块进行处理,以及,依次使用第i个处理因子对第i-1个处理因子处理得到的结果进行处理,以获得s个处理结果;i=2,3……s;将第s个处理结果作为该待处理报文块的目标处理结果进行输出。本公开提供的一种报文加解密方法,使用s个处理因子对每一个待处理报文块进行处理,且在使用第1个处理因子对待处理报文块进行处理之后,依次使用第i个处理因子对第i-1个处理因子处理得到的结果进行处理,使得整个加密过程紧密联系,不易被不法分子察觉,且不易被不法分子破解,提高了加解密算法的安全性。
本公开涉及的一种报文加解密方法中,为了进一步提高整个方法的安全性,可以提高处理因子的复杂性,比如根据前一个待处理报文块的处理结果确定下一个待处理报文块的处理因子,则确定s个处理因子的过程可以为:将上一次处理的待处理报文块及对应得到的s个处理结果作为输入数据输入处理因子生成函数,得到s个处理因子;其中,将s+1个预设初值作为输入数据输入处理因子生成函数得到t个待处理报文块中第一个待处理报文块的s个处理因子;处理因子生成函数为将s+1个输入转换为s个输出的加密因子生成函数或解密因子生成函数,且当处理因子为加密因子时,处理因子生成函数为加密因子生成函数,以进行加密,当处理因子为解密因子时,处理因子生成函数为解密因子生成函数,以进行解密;且将s+1个输入数据正序输入加密因子生成函数后得到的运算结果,与将该s+1个输入数据反序输入解密因子生成函数后得到的运算结果相同。也即对于第一个处理的待处理报文块,基于s+1个预设初值确定第一次处理的待处理报文块的s个处理因子,之后,对于处理的每一个待处理报文块,基于上一次处理的待处理报文块及得到的s个处理结果得到该待处理报文块的s个处理因子,从而使得从第二个处理的待处理报文块开始,每个待处理报文块的处理过程均与上一个待处理报文块的处理结果相关,从而使得本公开涉及的报文加解密方法的整体联系更加紧密,使得不法分子难以攻破处理因子,安全性更高。
请参阅图2,图2为根据一示例性实施例示出的一种报文加解密方法的第二流程图。
在应用场景中,可以借助循环来实现本公开涉及的报文加解密方法,其可以包括以下步骤:
步骤S201:获取一组待处理报文,一组待处理报文中包括t个待处理报文块,t为正整数。
步骤S202:选取一个待处理报文块作为当前待处理报文块。
步骤S203:保存当前待处理报文块。
步骤S204:判断本轮保存报文块的第一实时次数是否大于等于n,n为大于等于1的正整数;若否,则执行步骤S205,若是,则执行步骤S206。
可以理解的是,本轮指的是对当前选取的一个待处理报文块进行处理的轮次。由后面的方案可知,n与s的数值相等,起到了限制对当前待处理报文块进行处理的次数,应用场景中,可以通过调节n来调节对当前待处理报文块,也即当前选取的待处理报文块,进行处理的次数。
步骤S205:将当前待处理报文块与第一实时次数对应的处理因子进行异或运算,得到当前待处理报文块的当前处理结果,将当前处理结果作为当前待处理报文块,返回步骤S203。
可以理解的是,由步骤S205的循环,及第一实时次数为本轮保存报文块的次数的定义可知,当前处理结果为对当前选取的一个待处理报文块连续与每一个处理因子进行运算后的结果。
步骤S206:将保存时刻与当前时刻的差值最小的当前待处理报文块作为当前选取的一个待处理报文块的目标处理结果。
可以理解的是,将保存时刻与当前时刻的差值最小的当前待处理报文块作为当前选取的一个待处理报文块的目标处理结果,也即将最后得到的当前待处理报文块作为当前选取的一个待处理报文块的目标处理结果。
步骤S207:基于执行保存操作后保存的n+1个报文块数据更新每一个第一实时次数对应的处理因子,其中,第一组第一实时次数对应的处理因子包括基于预设的各个初值生成的处理因子,处理因子包括加密因子或解密因子。
可以理解的是,对第一次选取的待处理报文块进行运算时所用的处理因子可以为基于预设的各个初值生成的处理因子。应用场景中,可以基于预设的处理因子生成函数对保存的n+1个报文块数据进行运算,得到n个运算结果,处理因子生成函数均包括将n+1个l比特输入转换为n个l比特输出的函数;并按照预设的分配规则,基于n个运算结果更新每一个第一实时次数对应的处理因子。此时,可以采用l比特的寄存器保存当前待处理报文块。
可以理解的是,按照预设的分配规则,基于n个运算结果更新每一个第一实时次数对应的处理因子的过程可以是:确定每个运算结果的生成时刻;按照生成时刻值的大小顺序对所有的运算结果进行排序;将排序位置与第一实时次数对应的运算结果更新为实时次数对应的处理因子。按照生成时刻值的大小顺序对所有的运算结果进行排序的过程可以是:按照生成时刻值的大小顺序,依照从小到大的顺序对所有的运算结果进行排序。
步骤S208:删除执行保存操作后保存的每一个报文块数据,返回步骤S202,直至得到每个待处理报文块各自对应的目标处理结果。
可以理解的是,本实施例中,各个待处理报文块对应的处理因子的数量是相同的,应用场景中,可以为每个待处理报文块分配不同数量的处理因子,则只需将步骤S204更改为:判断本轮保存报文块的第一实时次数是否大于等于当前选取的待处理报文块对应的预设次数n,n为大于等于1的正整数;若否,则执行步骤S205,若是,则执行步骤S206。
为了便于理解,以一组待处理报文中包括待处理报文块A和B为例,对本实施例进行说明。以先选取的一个待处理报文块为A;第一实时次数对应的处理因子分别为a1、a2,当第一实时次数值为1时,对应a1,当第二实时次数值为2时,对应a2;n的值为3;按照步骤S203、步骤S204及步骤S205对A进行处理。先执行步骤S203,保存的结果为A,此时第一实时次数的值为1,小于n的值3,继续执行步骤S205,得到当前处理结果为此时的当前待处理报文块也即返回步骤S203,保存的结果为此时第一实时次数的值为2,小于n的值3,继续执行步骤S205,得到当前处理结果为此时的当前待处理报文块也即返回步骤S203,保存的结果为此时第一实时次数的值为3,等于n的值3,进入步骤S206;将最后保存的作为选取的A的目标处理结果,进入步骤S207;基于保存操作保存的A、更新值为1、值为2的第一实时次数对应的处理因子,假设更新后的值为1的第一实时次数对应的处理因子为更新后的值为2的第一实时次数对应的处理因子为进入步骤S308;删除保存的A、以免其影响后续更新第一实时次数对应的处理因子的过程。之后对B的处理过程可以参阅对A的处理过程,最后得到B的目标处理结果为其中,表示异或运算。
本公开涉及的一种报文加解密方法还可以经过循环输出分组密码,也即本公开还涉及一种分组密码生成方法,由于本公开更好的安全性,其生成的分组密码的安全性也较高。本公开生成分组密码的方式如下:在获得t个待处理报文对应的t个目标处理结果之后,迭代执行对t个待处理报文块进行处理的步骤直到预设次数,以基于最后一轮得到的目标处理结果实现分组密码;其中,每次迭代步骤使用的t个待处理报文块为前一次迭代步骤得到的t个目标处理结果。
本公开涉及的一种报文加解密方法还可以经过再循环输出序列密码,也即本公开还涉及一种序列密码生成方法,由于本公开更好的安全性,其生成的序列密码的安全性也较高。本公开生成序列密码的方式如下:在获得t个待处理报文对应的t个目标处理结果之后,迭代执行确定s个处理因子、按照从1至s的顺序,使用第1个处理因子对该待处理报文块进行处理,以及,依次使用第i个处理因子对第i-1个处理因子处理得到的结果进行处理,以获得s个处理结果、将第s个处理结果作为该待处理报文块的目标处理结果进行输出的步骤,以实现序列密码;其中,每次迭代步骤使用的待处理报文块为前一次迭代步骤得到的最后一个目标处理结果。
本公开涉及的一种报文加解密方法,当处理因子为加密因子时,处理因子生成函数便为加密因子生成函数,当处理因子为解密因子时,处理因子生成函数便为解密因子生成函数。此外,在应用加密因子基于本公开涉及的报文加解密方法对报文加密后,可以应用相应的解密因子基于本公开涉及的报文加解密方法对加密后的报文进行解密,且加密过程和解密过程相似,只是处理因子进行了变化,所以本公开涉及的报文加解密方法在对报文加解密时可以基于一套装置来实现对报文加解密,降低加解密装置的复杂性,比如在同一电路中进行加解密函数的切换,从而实现一套可以进行加密及解密的装置。
应用场景中,处理因子生成函数可以为s+1个l比特输入,s个l比特输出的函数,其格式可以为(f0,f1,···,fs-1)=FK(R0,R1,···,Rs),其中,FK表示处理因子生成函数,f0,f1,···,fs-1表示s个处理因子,R0,R1,···,Rs表示上一次处理得到的s+1个处理结果。假设FK1表示加密因子生成函数,FK2表示解密因子生成函数,则FK1(R0,R1,···,Rs)=FK2(Rs,Rs-1,···,R0)。
本公开涉及的一种报文加解密方法,在确定s个处理因子之后,在按照从1至s的顺序,使用第一个处理因子对该待处理报文进行处理之前,还可以:基于s个处理因子的大小确定s个处理因子的排列顺序。比如按照从大到小的顺序确定s个处理因子的排列顺序,按照从小到大的顺序确定s个处理因子的排列顺序等,这样可以在保证报文加解密方法的安全性的前提下,降低报文加解密方法的实施难度。
为了进一步对本公开涉及的一种报文加解密方法进行描述,现结合具体运算逻辑图和算法对本实施例进行描述。
可以理解的是,本公开涉及的加密方法和解密方法的流程基本相同,只是加密方法和解密方法所应用的处理因子以及其所用的算法不同,所用本公开涉及的加密方法和解密方法可以共用一套逻辑装置,只需在实现加密方法或解密方法时调整逻辑装置的参数即可。请参阅图3和图4,图3为本公开示出的一种加解密方法的加密运算逻辑图,图4为本公开示出的一种加解密方法的解密运算逻辑图。图3和图4中,mi表示待处理报文块,也即明文,ci表示mi对应的加密结果,也即密文,明文和密文均被划分为l比特的块后输入电路,即mi,Ri表示l比特的寄存器;fi表示相应的加密因子或解密因子;Fk表示与密钥相关的加密函数,FK'表示与密钥相关的解密函数,Fk、FK'均为将s+1个l比特输入转换为s个l比特输出的函数,K表示密钥,并且满足以下条件:FK(R0,R1,···,Rs)=FK'(Rs,···,R1,R0);XOR表示异或门。
由图3和图4可以看出,加密运算逻辑图与解密运算逻辑图基本相同。均由s+1个寄存器与s个异或门,以及一个函数构成。
加密运算逻辑图对应的加密算法可以为:
(R0,R1,···,Rs)=(iv0,iv1,···,ivs);
For i=0 to t-1
(f0,f1,···,fs-1)=FK(R0,R1,···,Rs);
R0=mi;
For j=1 to s;
ci=Rs;
最后得到密文序列c0,c1,···,ct-1。其中,iv0,iv1,···,ivs表示初值。
解密运算逻辑图对应的解密算法可以为:
(R0,R1,···,Rs)=(ivs,ivs-1,···,iv0);
For i=0 to t-1
(f0,f1,···,fs-1)=FK'(R0,R1,···,Rs);
R0=ci;
For j=1 to s;
mi=Rs;
最后得到明文序列m0,m1,···,mt-1。
比较加密算法与解密算法可知,在同一时刻加密函数和解密函数的输出值相同,均为(f0,f1,···,fs-1),而加密过程解密过程,也即加密算法和解密算法正确。
为了便于理解,一并示出本公开涉及的分组密码实现方法及序列密码实现方法的运算逻辑图。请参阅图5和图6,图5为本公开示出的分组加密算法的运算逻辑图,图6为本公开示出的序列加密算法的运算逻辑图。在图5和图6中,每次重复加密都是一次加密函数在相同加密运算寄存器初态下的加密运算,所以都可以解密,对n次加密得到的密文进行n次解密即可得到原始明文。Si表示加密结果或解密结果。
可以理解的是,本公开涉及的一种报文加解密方法中,每次选取的待处理报文块可以为一组待处理报文中的第一个待处理报文块,相应的,在对选取的待处理报文块进行操作后,需在一组待处理报文中删除该待处理报文块,则本公开涉及的一种报文加解密方法可以包括以下步骤:
获取一组待处理报文,一组待处理报文中包括t个待处理报文块,t为正整数;
选取待处理报文块中的第一个待处理报文块作为当前待处理报文块;
基于当前待处理报文块更新第一个寄存器,将当前待处理报文块依次与每一个处理因子异或运算以更新余下的s个寄存器;
保存当前待处理报文块的目标处理结果,目标处理结果为当前待处理报文块与所有处理因子异或所得的结果,处理结果与更新后的最后一个寄存器中存储的报文相同;
在待处理报文中删除当前处理的报文;
返回选取待处理报文块的第一块报文作为当前待处理报文块的步骤,直至得到每个待处理报文块各自对应的目标处理结果。
其中,使用当前待处理报文及处理因子依次更新s+1个预置寄存器的步骤可以为:处理因子生成函数读取s+1个预置寄存器中的报文,并生成s个处理因子,使用当前待处理报文更新第一个寄存器,使用当前待处理报文与第一个处理因子异或更新第二个寄存器,使用当前待处理报文与前两个处理因子异或更新第三个寄存器,使用当前待处理报文依次与前n-1个寄存器异或更新第n个寄存器,直至更新所有s+1个寄存器,并将当前待处理报文与所有处理因子异或所得的结果作为目标处理结果,该结果与更新后的最后一个寄存器中的报文相同。
此外,直至得到每个待处理报文块各自对应的目标处理结果之后,还可以将每个待处理报文块各自对应的目标处理结果作为一组待处理报文,每个目标处理结果作为待处理报文块;返回选取一个待处理报文块作为当前待处理报文块的步骤;重复执行指定次数后,保存所得的目标处理结果即实现分组密码。相应的,直至得到每个待处理报文块各自对应的目标处理结果之后,还可以将最后一次选取的待处理报文块对应的目标处理结果作为一组待处理报文,最后一次选取的待处理报文对应的目标处理结果作为待处理报文块;返回选取一个待处理报文块作为当前待处理报文块的步骤;重复执行指定次数后,完成初始化,然后再继续执行该处理过程,并将每次所保存的目标处理结果作为伪随机序列输出,构成序列密码。
为了便于理解,以一组待处理报文中包括待处理报文块A和B为例,对本实施例进行说明。以先选取的一个待处理报文块为A;s+1个预置寄存器中的值分别为iv1,iv2,iv3(假定预置寄存器为3个),处理因子生成函数读取个预置寄存器中的报文值,生成2个处理因子(f1,f2)=Fk(iv1,iv2,iv3);使用当前待处理报文A更新第一个预置寄存器中的报文,即第一个预置寄存器更新后的报文值为A,依次更新后两个预置寄存器,更新后的第二、三预置寄存器中的报文值分别为保存当前处理报文的目标处理结果删除当前处理的报文块之后,接着处理报文块B;使用反馈函数读取三个预置寄存器中的报文并生成处理因子使用当前待处理报文B更新第一个预置寄存器中的报文,即第一个预置寄存器更新后的报文值为B,依次更新后两个预置寄存器,更新后的第二、三预置寄存器中的报文值分别为 保存当前处理报文的目标处理结果删除当前处理的报文块之后,处理完毕所有待处理报文,输出所有目标处理结果 其中,表示异或运算。
请参阅图7,图7为根据一示例性实施例示出的一种报文加解密装置的第一结构示意图。
本公开涉及的一种报文加解密装置700,可以包括:
第一获取模块710,用于获取一组待处理报文,一组待处理报文中包括t个待处理报文块,t为正整数;
第一确定循环模块720,用于依次针对t个待处理报文块中的每一个待处理报文块,确定s个处理因子,处理因子为加密因子或解密因子;
第一处理循环模块730,用于依次针对t个待处理报文块中的每一个待处理报文块,按照从1至s的顺序,使用第1个处理因子对该待处理报文进行处理,以及,依次使用第i个处理因子对第i-1个处理因子处理得到的结果进行处理,以获得s个处理结果;i=2,3……s;
第一输出循环模块740,用于依次针对t个待处理报文块中的每一个待处理报文块,将第s个处理结果作为该待处理报文的目标处理结果进行输出。
本公开涉及的一种报文加解密装置中,第一确定循环模块可以包括:
第一确定单元,用于将上一次处理的待处理报文块及对应得到的s个处理结果作为输入数据输入处理因子生成函数,得到s个处理因子;
其中,将s+1个预设初值作为输入数据输入处理因子生成函数得到t个待处理报文块中第一个待处理报文块的s个处理因子;处理因子生成函数为将s+1个输入转换为s个输出的加密因子生成函数或解密因子生成函数,将s+1个输入数据正序输入加密因子生成函数后得到的运算结果,与将s+1个输入数据反序输入解密因子生成函数后得到的运算结果相同。
本公开涉及的一种报文加解密装置中,还可以包括:
分组迭代循环模块,用于在获得t个待处理报文对应的t个目标处理结果之后,迭代执行对t个待处理报文块进行处理的步骤直到预设次数,以基于最后一轮得到的目标处理结果实现分组密码;其中,每次迭代步骤使用的t个待处理报文块为前一次迭代步骤得到的t个目标处理结果。
本公开涉及的一种报文加解密装置中,还可以包括:
序列迭代循环模块,用于在获得t个待处理报文对应的t个目标处理结果之后,迭代执行确定s个处理因子、按照从1至s的顺序,使用第1个处理因子对该待处理报文块进行处理,以及,依次使用第i个处理因子对第i-1个处理因子处理得到的结果进行处理,以获得s个处理结果、将第s个处理结果作为该待处理报文块的目标处理结果进行输出的步骤,以实现序列密码;其中,每次迭代步骤使用的待处理报文块为前一次迭代步骤得到的最后一个目标处理结果。
本公开涉及的一种报文加解密装置中,还可以包括:
排列顺序确定单元,用于第一确定循环模块确定s个处理因子之后,第一处理循环模块按照从1至s的顺序,使用第一个处理因子对该待处理报文进行处理之前,基于s个处理因子的大小确定s个处理因子的排列顺序。
图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 (10)
1.一种报文加解密方法,其特征在于,包括:
获取一组待处理报文,所述一组待处理报文中包括t个待处理报文块,t为正整数;
依次针对所述t个待处理报文块中的每一个待处理报文块进行如下处理,以获得所述t个待处理报文对应的t个目标处理结果:
确定s个处理因子,所述处理因子为加密因子或解密因子;
按照从1至s的顺序,使用第1个处理因子对该待处理报文块进行处理,以及,依次使用第i个处理因子对第i-1处理因子处理得到的结果进行处理,以获得s个处理结果;i=2,3……s;
将第s个处理结果作为该待处理报文块的目标处理结果进行输出。
2.根据权利要求1所述的方法,其特征在于,所述确定s个处理因子,包括:
将上一次处理的待处理报文块及对应得到的s个处理结果作为输入数据输入处理因子生成函数,得到s个处理因子;
其中,将s+1个预设初值作为输入数据输入所述处理因子生成函数得到所述t个待处理报文块中第一个待处理报文块的s个处理因子;所述处理因子生成函数为将s+1个输入转换为s个输出的加密因子生成函数或解密因子生成函数,将s+1个输入数据正序输入所述加密因子生成函数后得到的运算结果,与将所述s+1个输入数据反序输入所述解密因子生成函数后得到的运算结果相同。
3.根据权利要求1或2所述的方法,其特征在于,在获得所述t个待处理报文对应的t个目标处理结果之后,还包括:
迭代执行权利要求1中对t个待处理报文块进行处理的步骤直到预设次数,以基于最后一轮得到的目标处理结果实现分组密码;
其中,每次迭代步骤使用的t个待处理报文块为前一次迭代步骤得到的t个目标处理结果。
4.根据权利要求1或2所述的方法,其特征在于,在获得所述t个待处理报文对应的t个目标处理结果之后,还包括:
迭代执行所述确定s个处理因子、按照从1至s的顺序,使用第1个处理因子对该待处理报文块进行处理,以及,依次使用第i个处理因子对第i-1个处理因子处理得到的结果进行处理,以获得s个处理结果、将第s个处理结果作为该待处理报文块的目标处理结果进行输出的步骤,以实现序列密码;
其中,每次迭代步骤使用的待处理报文块为前一次迭代步骤得到的最后一个所述目标处理结果。
5.根据权利要求1所述的方法,其特征在于,所述确定s个处理因子之后,所述按照从1至s的顺序,使用第一个处理因子对该待处理报文进行处理之前,还包括:
基于所述s个处理因子的大小确定所述s个处理因子的排列顺序。
6.一种报文加解密装置,其特征在于,包括:
第一获取模块,用于获取一组待处理报文,所述一组待处理报文中包括t个待处理报文块,t为正整数;
第一确定循环模块,用于依次针对所述t个待处理报文块中的每一个待处理报文块,确定s个处理因子,所述处理因子为加密因子或解密因子;
第一处理循环模块,用于依次针对所述t个待处理报文块中的每一个待处理报文块,按照从1至s的顺序,使用第1个处理因子对该待处理报文进行处理,以及,依次使用第i个处理因子对第i-1处理因子处理得到的结果进行处理,以获得s个处理结果;i=2,3……s;
第一输出循环模块,用于依次针对所述t个待处理报文块中的每一个待处理报文块,将第s个处理结果作为该待处理报文的目标处理结果进行输出。
7.根据权利要求6所述的装置,其特征在于,所述第一确定循环模块包括:
第一确定单元,用于将上一次处理的待处理报文块及对应得到的s个处理结果作为输入数据输入处理因子生成函数,得到s个处理因子;
其中,将s+1个预设初值作为输入数据输入所述处理因子生成函数得到所述t个待处理报文块中第一个待处理报文块的s个处理因子;所述处理因子生成函数为将s+1个输入转换为s个输出的加密因子生成函数或解密因子生成函数,将s+1个输入数据正序输入所述加密因子生成函数后得到的运算结果,与将所述s+1个输入数据反序输入所述解密因子生成函数后得到的运算结果相同。
8.根据权利要求6或7所述的装置,其特征在于,还包括:
分组迭代循环模块,用于在获得所述t个待处理报文对应的t个目标处理结果之后,迭代执行对t个待处理报文块进行处理的步骤直到预设次数,以基于最后一轮得到的目标处理结果实现分组密码;其中,每次迭代步骤使用的t个待处理报文块为前一次迭代步骤得到的t个目标处理结果。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-5任一项所述方法的步骤。
10.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1-5中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910150574.XA CN109951456A (zh) | 2019-02-28 | 2019-02-28 | 报文加解密方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910150574.XA CN109951456A (zh) | 2019-02-28 | 2019-02-28 | 报文加解密方法、装置、电子设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109951456A true CN109951456A (zh) | 2019-06-28 |
Family
ID=67008125
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910150574.XA Pending CN109951456A (zh) | 2019-02-28 | 2019-02-28 | 报文加解密方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109951456A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112235262A (zh) * | 2020-09-26 | 2021-01-15 | 建信金融科技有限责任公司 | 报文的解析方法、装置、电子设备及计算机可读存储介质 |
CN113204771A (zh) * | 2021-04-21 | 2021-08-03 | 北京连山科技股份有限公司 | 一种利用国密sm3改进分组密码cbc模式缺点的高效方法 |
CN113468567A (zh) * | 2021-07-02 | 2021-10-01 | 罗克佳华(重庆)科技有限公司 | 数据处理方法及数据处理设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102185692A (zh) * | 2011-04-25 | 2011-09-14 | 北京航空航天大学 | 基于aes加密算法的多模式可重构加密方法 |
US20160191238A1 (en) * | 2014-12-24 | 2016-06-30 | Kirk Yap | Sms4 acceleration hardware |
CN105740721A (zh) * | 2016-01-21 | 2016-07-06 | 浪潮电子信息产业股份有限公司 | 一种数据加解密处理的装置、方法及系统 |
CN106067878A (zh) * | 2016-05-31 | 2016-11-02 | 国网山东省电力公司寿光市供电公司 | 一种网络数据加密传输方法 |
CN107612683A (zh) * | 2017-09-30 | 2018-01-19 | 上海众人网络安全技术有限公司 | 一种加解密方法、装置、系统、设备和存储介质 |
CN107896149A (zh) * | 2018-01-02 | 2018-04-10 | 南京航空航天大学 | 基于三个群运算的128位对称加密方法 |
-
2019
- 2019-02-28 CN CN201910150574.XA patent/CN109951456A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102185692A (zh) * | 2011-04-25 | 2011-09-14 | 北京航空航天大学 | 基于aes加密算法的多模式可重构加密方法 |
US20160191238A1 (en) * | 2014-12-24 | 2016-06-30 | Kirk Yap | Sms4 acceleration hardware |
CN105740721A (zh) * | 2016-01-21 | 2016-07-06 | 浪潮电子信息产业股份有限公司 | 一种数据加解密处理的装置、方法及系统 |
CN106067878A (zh) * | 2016-05-31 | 2016-11-02 | 国网山东省电力公司寿光市供电公司 | 一种网络数据加密传输方法 |
CN107612683A (zh) * | 2017-09-30 | 2018-01-19 | 上海众人网络安全技术有限公司 | 一种加解密方法、装置、系统、设备和存储介质 |
CN107896149A (zh) * | 2018-01-02 | 2018-04-10 | 南京航空航天大学 | 基于三个群运算的128位对称加密方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112235262A (zh) * | 2020-09-26 | 2021-01-15 | 建信金融科技有限责任公司 | 报文的解析方法、装置、电子设备及计算机可读存储介质 |
CN113204771A (zh) * | 2021-04-21 | 2021-08-03 | 北京连山科技股份有限公司 | 一种利用国密sm3改进分组密码cbc模式缺点的高效方法 |
CN113204771B (zh) * | 2021-04-21 | 2022-02-22 | 北京连山科技股份有限公司 | 一种利用国密sm3改进分组密码cbc模式缺点的高效方法 |
CN113468567A (zh) * | 2021-07-02 | 2021-10-01 | 罗克佳华(重庆)科技有限公司 | 数据处理方法及数据处理设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106850221B (zh) | 信息加密、解密方法及装置 | |
CN102461063B (zh) | 基于硬件的加密技术 | |
CN1914849B (zh) | 受信移动平台体系结构 | |
CN109886687B (zh) | 一种基于区块链实现安全多方计算的结果验证方法及系统 | |
CN109951456A (zh) | 报文加解密方法、装置、电子设备及计算机可读存储介质 | |
CN110389747A (zh) | 具有物理不可复制功能的真随机数生成系统 | |
CN109714368A (zh) | 报文加解密方法、装置、电子设备及计算机可读存储介质 | |
CN102138300A (zh) | 消息认证码预计算在安全存储器中的应用 | |
CN109564553A (zh) | 多阶段存储器完整性方法和装置 | |
CN107017981A (zh) | 硬件辅助快速伪随机数生成 | |
CN102347834A (zh) | 受信移动平台体系结构 | |
CN107113163A (zh) | 流加密技术 | |
CN105359450A (zh) | 防篡改密码算法实现 | |
Pandey et al. | A high-performance and area-efficient VLSI architecture for the PRESENT lightweight cipher | |
CN107122634A (zh) | 软件安装包的加固保护方法及装置 | |
CN105184115A (zh) | 用于将隐式完整性或可信性检查包括到白箱实现中的方法 | |
CN108199847A (zh) | 数字安全处理方法、计算机设备及存储介质 | |
CN105095695A (zh) | 经由白箱实现的不正确功能行为实现授权 | |
CN109842488A (zh) | 用于物理芯片内的密钥生成组件 | |
CN109698745A (zh) | 一种密钥管理方法、系统及耳机和存储介质 | |
CN116232586A (zh) | 基于分数阶忆阻神经网络时间反馈控制的图像加密方法 | |
Shariffuddin et al. | Review on arbiter physical unclonable function and its implementation in FPGA for IoT security applications | |
CN111600867B (zh) | 一种数据加密方法和相关设备 | |
CN111901097B (zh) | 一种白盒实现方法、装置、电子设备及计算机存储介质 | |
CN103312500B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190628 |