CN117744114A - 一种对称加解密方法及相关装置 - Google Patents

一种对称加解密方法及相关装置 Download PDF

Info

Publication number
CN117744114A
CN117744114A CN202311763834.3A CN202311763834A CN117744114A CN 117744114 A CN117744114 A CN 117744114A CN 202311763834 A CN202311763834 A CN 202311763834A CN 117744114 A CN117744114 A CN 117744114A
Authority
CN
China
Prior art keywords
data
decryption
length
encryption
registers
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
Application number
CN202311763834.3A
Other languages
English (en)
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.)
Phytium Technology Co Ltd
Original Assignee
Phytium 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 Phytium Technology Co Ltd filed Critical Phytium Technology Co Ltd
Priority to CN202311763834.3A priority Critical patent/CN117744114A/zh
Publication of CN117744114A publication Critical patent/CN117744114A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本申请提出一种对称加解密方法及相关装置,涉及计算机应用技术领域。该对称加解密方法可以包括:对待处理数据进行预处理;其中,待处理数据为待加密数据或待解密数据;获取预处理后的待处理数据中的剩余数据;根据剩余数据的数据长度,确定与其对应的N个第一寄存器;N为大于或等于2的整数;通过N个第一寄存器加载剩余数据,以及并行对N个第一寄存器加载的数据进行加密处理或解密处理。本申请提供的技术方案有利于提高加解密算法的运算效率。

Description

一种对称加解密方法及相关装置
技术领域
本申请涉及计算机应用技术领域,尤其涉及一种对称加解密方法及相关装置。
背景技术
为了保护数据的安全性,通过加密密钥对数据进行加密处理是一种有效实现手段,之后再通过相同的解密密钥,则可获得原数据,此种加密密钥与解密密钥相同的加解密算法则为对称加解密算法。现有技术中,对于待加密数据或待解密数据的剩余数据,存在处理效率低的问题。
发明内容
基于上述现有技术的缺陷和不足,本申请提出一种对称加解密方法及相关装置,能够解决现有技术中对数据的加解密处理存在处理效率低的问题。
根据本申请实施例的第一方面,提供了一种对称加解密方法,应用于处理器,所述方法包括:
对待处理数据进行预处理;其中,所述待处理数据为待加密数据或待解密数据;
获取预处理后的待处理数据中的剩余数据;
根据所述剩余数据的数据长度,确定与其对应的N个第一寄存器;N为大于或等于2的整数;
通过所述N个第一寄存器加载所述剩余数据,以及并行对所述N个第一寄存器加载的数据进行加密处理或解密处理。
根据本申请实施例的第二方面,提供了一种对称加解密装置,应用于处理器,所述装置包括:
预处理模块,用于对待处理数据进行预处理;其中,所述待处理数据为待加密数据或待解密数据;
获取模块,用于获取预处理后的待处理数据中的剩余数据;
确定模块,用于根据所述剩余数据的数据长度,确定与其对应的N个第一寄存器;N为大于或等于2的整数;
第一处理模块,用于通过所述N个第一寄存器加载所述剩余数据,以及并行对所述N个第一寄存器加载的数据进行加密处理或解密处理。
根据本申请实施例的第三方面,提供了一种电子设备,包括:存储器和处理器;
所述存储器与所述处理器连接,用于存储程序;
所述处理器用于通过运行所述存储器中的程序,实现如第一方面所述的对称加解密方法。
根据本申请实施例的第四方面,提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时,实现如第一方面所述的对称加解密方法。
本申请提供的技术方案中,可以根据预处理后的待加密数据或待解密数据中剩余数据的长度,划分为不同并行处理情况,为剩余数据进行不同的寄存器配置,使得每个寄存器可以加载剩余数据中的一组数据,这样,使得剩余数据也能够进行并行加密处理或并行解密处理,在提高运算效率的同时,也合理地利用了处理器资源。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种对称加解密方法的流程示意图;
图2为本申请实施例提供的加密示例的处理过程示意图;
图3为本申请实施例提供的一种对称加解密装置的框图;
图4为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
示例性方法
本申请实施方式提供了一种对称加解密方法,可以应用于计算设备,具体可以应用于计算设备中的处理器(如CPU),该处理器支持基于对称加解密算法对数据进行并行加密处理和并行解密处理。
如图1所示,该方法可以包括:
步骤101:对待处理数据进行预处理。
这里所述的待处理数据为待加密数据或待解密数据。
这里所述的预处理可以是指:通过对称加解密算法,对待处理数据中满足预设条件的数据进行加密处理或解密处理。其中,满足预设条件的数据可以是指数据长度为第一预设长度整数倍的数据,该第一预设长度为处理器进行一次并行加密处理或解密处理的最大数据长度,该最大数据长度例如可以是1024位,具体取值由处理器性能决定。
可选地,可以从待处理数据的头部开始,确定满足预设条件的数据,例如,待处理数据的数据长度为2432位,第一预设长度为1024位,从其头部开始,满足预设条件的数据则为前2048位的数据。可以理解的是,也可以从待处理数据的尾部开始,确定满足预设条件的数据,对于前述示例,满足预设条件的数据则为后2048位的数据。
可选地,这里所述的对称加密解密算法可以包括但不限于以下至少一种:高级加密标准(Advanced Encryption Standard,AES)算法或SM4算法等对称加解密算法。
步骤102:获取预处理后的待处理数据中的剩余数据。
其中,剩余数据的数据长度大于第二预设长度且小于第一预设长度。该第二预设长度为对称加解密算法的分组长度,也是对称加解密处理中的最小计算长度,第二预设时长的具体取值取决于对称加解密算法。例如,对于AES算法,其分组长度可以是128位(即16比特)、192位(即24比特)或256位(即32比特);对于SM4算法,其分组长度可以为128位。由此可见,第二预设长度小于第一预设长度。
继续以前面所述示例为例进行说明,在从其头部开始,确定满足预设条件的数据为前2048位的数据的情况下,剩余数据则为后面384位的数据;在从其尾部开始,确定满足预设条件的数据为前2048位的数据的情况下,剩余数据则为前面384位的数据。
步骤103:根据剩余数据的数据长度,确定与其对应的N个第一寄存器。
其中,N为大于或等于2且小于第一预设长度与第二预设长度比值的整数。例如,第一预设长度与第二预设长度的比值为8,则N为大于或等于2且小于8的整数。
本步骤的目的在于,根据剩余数据的数据长度,确定不同的并行处理情况,并进行对应的寄存器配置,以便后续对剩余数据进行并行加密处理或并行解密处理。这里所述的寄存器可以用于加载存放待加密数据或待解密数据。每个寄存器可以加载一个计算单元的数据,即一组分组长度的数据。
步骤104:通过N个第一寄存器加载剩余数据,以及并行对N个第一寄存器加载的数据进行加密处理或解密处理。
本步骤中,可以根据对称加解密算法的计算流程,调用相应的第一寄存器,以对第一寄存器中的数据进行加密处理或解密处理。
本申请实施例中,可以根据剩余数据的数据长度,划分为不同的并行处理情况,进行不同的寄存器配置,使得剩余数据可以由多个寄存器加载,这样,即使剩余数据小于最大数据长度,也能够进行并行加密处理或并行解密处理,在提高运算效率的同时,也合理地利用了处理器资源。此外,本申请实施例中,与剩余数据对应的每种并行处理情况,对应不同的硬件加解密指令组合,在识别出剩余数据长度后,则可调用相应的加解密指令组合,如此,剩余数据可以在一轮加密处理或解密处理过程中完成数据处理。其中,硬件加解密指令组合是指用于加解密的指令的组合,不同的指令可以完成不同的数据操作流程,组合起来按特定顺序调用则可完成加解密处理的数据操作流程。
在一些实施例中,可以先通过M个寄存器加载待处理数据中满足预设条件的数据,对此部分数据进行并行加密处理或并行解密处理。完成此部分数据的加密处理或解密处理后,再利用前述M个寄存器中的N个寄存器,加载剩余数据以及并行对加载的数据进行加密处理或解密处理。其中,M为第一预设长度与第二预设长度的比值,M大于N。
在一些实施例中,对于数据长度不足处理器进行一次并行加密处理或并行解密处理的最大数据长度,且大于对称加密解密算法的分组长度的数据(即剩余数据),可以预先根据此类数据的不同长度,进行寄存器配置,即预先建立剩余数据的不同数据长度与寄存器配置之间的对应关系。
假设,处理器进行一次并行加密处理或解密处理的最大数据长度为1024位,对称加解密算法的分组长度为128位,则剩余数据的数据长度与寄存器配置之间的对应关系可以如下所示:
(1)在数据长度为大于128位且小于或等于256位的情况下,可以配置2个寄存器;
(2)在数据长度为大于256位且小于或等于384位的情况下,可以配置3个寄存器;
(3)在数据长度为大于384位且小于或等于512位的情况下,可以配置4个寄存器;
(4)在数据长度为大于512位且小于或等于640位的情况下,可以配置5个寄存器;
(5)在数据长度为大于640位且小于或等于768位的情况下,可以配置6个寄存器;
(6)在数据长度为大于768位且小于或等于869位的情况下,可以配置7个寄存器。
需要说明的是,在最大数据长度与剩余数据的数据长度之差小于第二预设时长的情况下(例如在前述示例中数据长度大于869位且小于1024位的情况),可以直接将剩余数据的数据长度补齐至最大数据长度,然后进行相应的加密处理或解密处理。
可选地,预先建立的数据长度与寄存器配置之间的对应关系除了可以包括不同数据长度对应的寄存器的个数,还可以包括用于加载数据的寄存器,即具体使用哪些寄存器。例如,有v0-v7共8个寄存器,对于数据长度大于128位且小于或等于256位的情况,在配置2个寄存器的同时,还可以指定由寄存器v0和v1加载数据;对于数据长度大于256位且小于或等于384位的情况,在配置3个寄存器的同时,还可以指定由寄存器v0、v1以及v2加载数据,其余情况以此类推,此处便不再赘述。可以理解的是,也可以随机选择N个寄存器用于加载剩余数据,例如,在配置3个寄存器的情况下,可以在寄存器v0-v7中随机选择3个寄存器使用。
在一些实施例中,步骤103:通过N个第一寄存器加载剩余数据,以及并行对N个第一寄存器加载的数据进行加密处理或解密处理,可以包括:
步骤A1:按照第二预设长度,将剩余数据划分为N组数据。
本步骤的目的在于基于最小计算长度(即第二预设长度),对剩余数据进行分组,得到与第一寄存器数量相同的N组数据。
可选地,若划分得到的最后一组数据的数据长度小于最小计算长度,则可以先进行数据长度补齐,例如,缺少几位,则利用相同数量的“0”补齐;或缺少几位,则利用相同数量的相同数字补齐,如缺少8位,则利用8个数字“8”补齐。当然也可以采用其他可实现方式进行数据补齐,本申请实施例对此不进行限定。
步骤A2:通过N个第一寄存器,分别加载N组数据中的一组数据。
即每个第一寄存器分别加载N组数据中的一组数据。这里所述的N组数据包括通过数据补齐后得到分组长度的数据,如前述示例中最后一组数据长度小于最小计算长度的一组数据,通过数据补齐后的得到的一组新数据。
步骤A3:调用N个第一寄存器,并行对每个第一寄存器中加载的数据进行加密处理或解密处理。
可选地,可以通过指令级并行技术,对每个第一寄存器中加载的数据进行加密处理或解密处理。这里所述的指令级并行技术是指允许处理器在一个时钟周期内开始执行多条指令,对于本申请实施例而言,指令级并行技术具体是指可以在一个时钟周期内执行多组分组长度的数据加密处理任务或解密处理任务,例如,可以在一个时钟周期内对8组128位的数据进行加密处理。
在此基础上,还可以通过并行流水线技术对加载的数据进行加密处理或解密处理。这里所述的并行流水线技术是指通过将一个任务分解为一系列可以同时执行的子任务来提高处理器性能的技术,每个子任务被称为一个流水线阶段,每个流水线阶段在一个独立的硬件单元(如寄存器)上执行。对于本申请实施例而言,并行流水线技术具体是指对一个分组长度的数据加密处理任务或解密处理任务,可以分解为多个可以同时执行的子任务。例如,可以将1组128位数据的加密处理任务,分为取指、译码、执行、访存、写回五个子任务。
将并行流水线技术和指令级并行技术结合使用,可以更多的提升处理器的处理效率。
本申请实施例中,在剩余数据的数据长度大于第二预设长度,且最大数据长度与剩余数据的数据长度之差小于第二预设时长的情况下,可以由多个寄存器分别加载对剩余数据分组得到的一组分组长度的数据,从而实现对剩余数据的并行加密处理或并行解密处理,在提高运算效率的同时,也能更合理地利用处理器资源。
在一些实施例中,在剩余数据的数据长度小于或等于第二预设长度的情况下,该对称加解密方法还可以包括:
通过一个第二寄存器,加载剩余数据中的数据;并对第二寄存器加载的剩余数据进行加密处理或解密处理。
这里所述的第二寄存器可以是预先设置的(即默认的),也可以是随机选择的。
在剩余数据的数据长度小于或等于分组长度(即第二预设长度)的情况下,可以通过一个寄存器对剩余数据进行加载处理,即由一个寄存器一次加载所有剩余数据。该寄存器可以是预先设置的,如预先指定寄存器v0,加载剩余数据。该寄存器也可以是随机选择的,如在寄存器v0-v7中,随机选择一个寄存器,加载剩余数据。可以理解的是,在剩余数据的数据长度小于分组长度的情况下,可以将剩余数据的数据长度补齐至第二预设长度后,再由寄存器加载,具体补齐方式可以参见前述实施例中关于数据补齐的描述,此处便不再赘述。
一个寄存器可以加载一个分组长度的数据,因此,在剩余数据的数据长度小于或等于第二预设长度的情况下,通过一个寄存器对其进行加载处理即可,以便尽快完成加密处理或解密处理。
在一些实施例中,该处理器中集成有用于对待处理数据进行加密处理的硬件加密指令集,和/或用于对待处理数据进行解密处理的硬件解密指令集,也即:该处理器中集成有对称加解密算法的硬件加解密指令集,如AES算法的加解密指令集、SM4算法的加解密指令集等,这样可以省去专门的加解密芯片,减少计算设备内的硬件数量,减小对计算设备内的空间占用。
此外,该处理器还支持多发射超标量流水线技术,基于集成的硬件加解密指令集,能够实现并行流水线技术和指令集并行技术,加速实现对称加解密算法。
最后,为了更好地理解本申请实施例提供的技术方案,下面结合图3进行举例说明。
以SM4算法为例,其中,v24-v31为128位寄存器,每个寄存器用于加载加密算法的一个轮密钥。v0-v7同样为128位寄存器,每个寄存器用于加载一个计算单元(即一个分组长度)的数据。处理器进行一次并行加密处理或解密处理的最大数据长度为1024。
假设,待加密数据为2432位,按照最大数据长度,将待加密数据划分为两部分,前2048位数据为第一部分数据(即前述满足预设条件的数据),剩余的384位(即16字节)数据为第二部分数据,也即剩余数据。
对于第一部分数据,可以按照最大数据长度划分为两个数据块,每个数据块包括1024位数据。对于每个数据块又可以按照分组长度(即128位),划分为8个计算单元。每个计算单元的数据可以分别由v0-v7八个寄存器加载,然后结合v24-v31加载的轮密钥,对加载的数据进行加密处理。在完成一个数据块的加密处理后,继续对下一数据块进行加密处理,如此不断循环执行,直到第一部分数据处理完毕,如图2所示。
对于第二部分数据,可以按照分组长度,划分为3个计算单元,每个计算单元的数据分别由v0-v2三个寄存器加载,然后结合v24-v31加载的轮密钥,对加载的数据进行加密处理,如图3所示。
其中,在第二部分数据的数据长度大于128且小于或等于869的情况下,均可通过前述方式实现对第二部分数据的并行加密算法,如图2所示。
现有技术中对于第二部分数据的处理,是在第二部分数据后补640位,达到最大数据长度后,再对其进行加密处理。
需要说明的是,对于第二部分数据,若其数据长度小于128位,则可以将其长度补齐至128位后,由寄存器v0对其加载处理。若其数据长度等于128位,则直接由寄存器v0对其加载处理,如图2所示。
以上即为对本申请实施例提供的对称加解密方法的描述。
综上所述,本申请实施例中,对剩余数据的加解密处理不再是补齐至最大数据长度后再并行处理的方式,而是将剩余数据可能出现的计算长度遍历一遍,并对每个可能的长度创建独立的处理方案。每个处理方案都可以将剩余数据划分为多个计算单元,然后利用硬件加解密指令集以及并行处理技术加速多个计算单元的计算,实现了在对剩余数据处理时,达到任何数据长度下都能充分利用处理器资源以及提高计算效率的目的。
示例性装置
相应的,本申请实施例还提供了一种对称加解密装置,应用于计算设备。
如图3所示,该装置可以包括:
预处理模块301,用于对待处理数据进行预处理。
其中,所述待处理数据为待加密数据或待解密数据。
获取模块302,用于获取预处理后的待处理数据中的剩余数据。
确定模块303,用于根据所述剩余数据的数据长度,确定与其对应的N个第一寄存器。
其中,N为大于或等于2的整数。
第一处理模块304,用于通过所述N个第一寄存器加载所述剩余数据,以及并行对所述N个第一寄存器加载的数据进行加密处理或解密处理。
可选地,所述剩余数据的数据长度小于第一预设长度且大于第二预设长度,所述第一预设长度为所述处理器进行一次并行加密处理或解密处理的最大数据长度,所述第二预设长度为加密解密算法的分组长度,所述第二预设长度小于所述第一预设长度。
可选地,所述第一处理模块304可以包括:
分组单元,用于按照所述第二预设长度,将所述剩余数据组划分为N组数据。
数据加载单元,用于通过所述N个第一寄存器,分别加载所述N组数据中的一组数据。
处理单元,用于调用所述N个第一寄存器,并行对每个所述第一寄存器中加载的数据进行加密处理或解密处理。
可选地,在所述剩余数据的数据长度小于或等于第二预设长度的情况下,所述装置还可以包括:
数据加载模块,用于通过一个第二寄存器,加载所述剩余数据中的数据。
第二处理模块,用于对所述第二寄存器加载的所述剩余数据进行加密处理或解密处理。
其中,所述第二寄存器为预设的或随机选择的。
可选地,所述处理器中集成有用于对待处理数据进行加密处理的硬件加密指令集,和/或用于对待处理数据进行解密处理的硬件解密指令集。
本实施例提供的对称加解密装置,与本申请上述实施例所提供的对称加解密方法属于同一申请构思,可执行本申请上述任意实施例所提供的对称加解密方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请上述实施例提供的对称加解密方法的具体处理内容,此处不再加以赘述。
示例性电子设备
本申请实施例还提供了一种电子设备,如图4所示,该电子设备包括:存储器400和处理器410。
存储器400与处理器410连接,用于存储程序。
处理器410用于通过运行存储器400中存储的程序,实现上述实施例中的对称加解密方法。
具体地,上述电子设备还可以包括:通信接口420、输入设备430、输出设备440和总线450。
处理器410、存储器400、通信接口420、输入设备430和输出设备440通过总线相互连接。其中:
总线450可包括一通路,在计算机系统各个部件之间传送信息。
处理器410可以是通用处理器,例如通用中央处理器(CPU)、微处理器等,也可以是特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本发明方案程序执行的集成电路。还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
处理器410可包括主处理器,还可包括基带芯片、调制解调器等。
存储器400中保存有执行本发明技术方案的程序,还可以保存有操作系统和其他关键业务。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。更具体地,存储器400可以包括只读存储器(read-only memory,ROM)、可存储静态信息和指令的其他类型的静态存储设备、随机存取存储器(random access memory,RAM)、可存储信息和指令的其他类型的动态存储设备、磁盘存储器、flash等等。
输入设备430可包括接收用户输入的数据和信息的装置,例如键盘、鼠标、摄像头、扫描仪、光笔、语音输入装置、触摸屏、计步器或重力感应器等。
输出设备440可包括允许输出信息给用户的装置,例如显示屏、打印机、扬声器等。
通信接口420可包括使用任何收发器一类的装置,以便与其他设备或通信网络通信,如以太网,无线接入网(RAN),无线局域网(WLAN)等。
处理器410执行存储器400中所存放的程序,以及调用其他设备,可用于实现本申请上述实施例所提供的对称加解密方法的各个步骤。
示例性计算机程序产品和存储介质
除了上述方法和设备以外,本申请的实施例还可以是计算机程序产品,其包括计算机程序指令,计算机程序指令在被处理器运行时使得处理器执行本申请实施例中描述的对称加解密方法中的步骤。
计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本申请的实施例还可以是存储介质,其上存储有计算机程序,计算机程序被处理器执行本申实施例中描述的对称加解密方法中的步骤。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请各实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减,各实施例中记载的技术特征可以进行替换或者组合。
本申请各实施例种装置及终端中的模块和子模块可以根据实际需要进行合并、划分和删减。
本申请所提供的几个实施例中,应该理解到,所揭露的终端,装置和方法,可以通过其它的方式实现。例如,以上所描述的终端实施例仅仅是示意性的,例如,模块或子模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个子模块或模块可以结合或者可以集成到另一个模块,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块或子模块可以是或者也可以不是物理上分开的,作为模块或子模块的部件可以是或者也可以不是物理模块或子模块,即可以位于一个地方,或者也可以分布到多个网络模块或子模块上。可以根据实际的需要选择其中的部分或者全部模块或子模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块或子模块可以集成在一个处理模块中,也可以是各个模块或子模块单独物理存在,也可以两个或两个以上模块或子模块集成在一个模块中。上述集成的模块或子模块既可以采用硬件的形式实现,也可以采用软件功能模块或子模块的形式实现。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件单元,或者二者的结合来实施。软件单元可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (10)

1.一种对称加解密方法,其特征在于,应用于处理器,所述方法包括:
对待处理数据进行预处理;其中,所述待处理数据为待加密数据或待解密数据;
获取预处理后的待处理数据中的剩余数据;
根据所述剩余数据的数据长度,确定与其对应的N个第一寄存器;N为大于或等于2的整数;
通过所述N个第一寄存器加载所述剩余数据,以及并行对所述N个第一寄存器加载的数据进行加密处理或解密处理。
2.根据权利要求1所述的对称加解密方法,其特征在于,所述剩余数据的数据长度小于第一预设长度且大于第二预设长度,所述第一预设长度为所述处理器进行一次并行加密处理或解密处理的最大数据长度,所述第二预设长度为对称加解密算法的分组长度,所述第二预设长度小于所述第一预设长度。
3.根据权利要求2所述的对称加解密方法,其特征在于,所述通过所述N个第一寄存器加载所述剩余数据,以及并行对所述N个第一寄存器加载的数据进行加密处理或解密处理,包括:
按照所述第二预设长度,将所述剩余数据划分为N组数据;
通过所述N个第一寄存器,分别加载所述N组数据中的一组数据;
调用所述N个第一寄存器,并行对每个所述第一寄存器中加载的数据进行加密处理或解密处理。
4.根据权利要求2所述的对称加解密方法,其特征在于,在所述剩余数据的数据长度小于或等于所述第二预设长度的情况下,所述方法还包括:
通过一个第二寄存器,加载所述剩余数据中的数据;
对所述第二寄存器加载的所述剩余数据进行加密处理或解密处理;所述第二寄存器为预设的或随机选择的。
5.根据权利要求1至4任一项所述的对称加解密方法,其特征在于,所述处理器中集成有用于对所述待处理数据进行加密处理的硬件加密指令集,和/或用于对所述待处理数据进行解密处理的硬件解密指令集。
6.一种对称加解密装置,其特征在于,应用于处理器,所述装置包括:
预处理模块,用于对待处理数据进行预处理;其中,所述待处理数据为待加密数据或待解密数据;
获取模块,用于获取预处理后的待处理数据中的剩余数据;
确定模块,用于根据所述剩余数据的数据长度,确定与其对应的N个第一寄存器;N为大于或等于2的整数;
第一处理模块,用于通过所述N个第一寄存器加载所述剩余数据,以及并行对所述N个第一寄存器加载的数据进行加密处理或解密处理。
7.根据权利要求6所述的对称加解密装置,其特征在于,所述剩余数据的数据长度小于第一预设长度且大于第二预设长度,所述第一预设长度为所述处理器进行一次并行加密处理或解密处理的最大数据长度,所述第二预设长度为对称加解密算法的分组长度,所述第二预设长度小于所述第一预设长度。
8.根据权利要求7所述的对称加解密装置,其特征在于,所述第一处理模块包括:
分组单元,用于按照所述第二预设长度,将所述剩余数据组划分为N组数据;
数据加载单元,用于通过所述N个第一寄存器,分别加载所述N组数据中的一组数据;
处理单元,用于调用所述N个第一寄存器,并行对每个所述第一寄存器中加载的数据进行加密处理或解密处理。
9.一种电子设备,其特征在于,包括:存储器和处理器;
所述存储器与所述处理器连接,用于存储程序;
所述处理器用于通过运行所述存储器中的程序,实现如权利要求1至5中任一项所述的对称加解密方法。
10.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时,实现如权利要求1至5中任一项所述的对称加解密方法。
CN202311763834.3A 2023-12-20 2023-12-20 一种对称加解密方法及相关装置 Pending CN117744114A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311763834.3A CN117744114A (zh) 2023-12-20 2023-12-20 一种对称加解密方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311763834.3A CN117744114A (zh) 2023-12-20 2023-12-20 一种对称加解密方法及相关装置

Publications (1)

Publication Number Publication Date
CN117744114A true CN117744114A (zh) 2024-03-22

Family

ID=90280922

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311763834.3A Pending CN117744114A (zh) 2023-12-20 2023-12-20 一种对称加解密方法及相关装置

Country Status (1)

Country Link
CN (1) CN117744114A (zh)

Similar Documents

Publication Publication Date Title
US20190116023A1 (en) Power side-channel attack resistant advanced encryption standard accelerator processor
US20220138349A1 (en) Cryptographic architecture for cryptographic permutation
CN110058843B (zh) 伪随机数的生成方法、装置和服务器
US8681976B2 (en) System and method for device dependent and rate limited key generation
CN115622684B (zh) 基于全同态加密的隐私计算异构加速方法及装置
WO2019114122A1 (zh) 登录信息的加密方法、装置、电子设备及介质
WO2017045484A1 (zh) 一种基于xts-sm4的存储加解密方法及装置
US20100246828A1 (en) Method and system of parallelized data decryption and key generation
Samir et al. ASIC and FPGA comparative study for IoT lightweight hardware security algorithms
CA2375749A1 (en) Scalable cryptographic engine
US10230523B2 (en) Computer implemented method for generating a random seed with high entropy
CN112202547A (zh) 一种轻量级分组密码gfcs实现方法、装置及可读存储介质
WO2021217939A1 (zh) 用于区块链数据处理的方法、装置及可读存储介质
US10326596B2 (en) Techniques for secure authentication
CN111563281A (zh) 一种支持多种加解密算法的处理器及其实现方法
CN110336661B (zh) Aes-gcm数据处理方法、装置、电子设备及存储介质
JPH10333569A (ja) 暗号処理装置、icカード及び暗号処理方法
Günther et al. Efficient GF arithmetic for linear network coding using hardware SIMD extensions
CN114390317B (zh) 面向流式传输视频的加密方法及系统
CN117744114A (zh) 一种对称加解密方法及相关装置
CN114826560B (zh) 一种轻量级分组密码cref实现方法及系统
CN116318660A (zh) 一种消息扩展与压缩方法及相关装置
JPH11161162A (ja) 暗号化方法または復号化方法およびそれを用いた装置
CN110071927B (zh) 一种信息加密方法、系统及相关组件
CN112487448B (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