本发明涉及芯片领域,具体地,涉及一种降低算法功耗的硬件实现方法及算法功耗降低装置。
背景技术:
1、sm4是中华人民共和国政府采用的一种分组密码标准,由国家密码管理局发布。相关标准为“gm/t 0002-2012《sm4分组密码算法》(原sms4分组密码算法)”。在国内得到广泛应用,采用sm4算法,具有性能快,安全性强的特点,在国内各个安全领域都在使用。
2、手持设备或者电池供电设备领域,设备所携带的电池容量较小,加密芯片的功耗对以上设备是一个负担。增加加密芯片会大大缩短移动设备的续航,影响设备的使用时间与设备本身的算法功能的实现,同时会影响设备的使用功能效果。所以如何在保证算法性能不变的情况下,降低加密芯片的功耗,是目前需要攻克的技术难题。
技术实现思路
1、针对现有技术中的缺陷,本发明的目的是提供一种降低算法功耗的硬件实现方法,以解决现有技术芯片高功耗的问题,本技术方案使得芯片在维持性能不变的情况下降低功耗。
2、为解决上述技术问题,本申请提供一种降低算法功耗的硬件实现方法,包括如下步骤:
3、对输入的明文进行算法加密;
4、使用sm4的32轮对称算法,并作为所述降低算法功耗的硬件实现方法的一轮运算;根据电路需求设置时钟分频参数以对所述算法进行迭代控制;
5、选择设置所述降低算法功耗的硬件实现方法的轮数;根据所述轮数设置时钟个数,时钟个数为32/轮数;所述一次算法的工作时间为32/频率;
6、所述降低算法功耗的硬件实现方法可设置若干个时钟以对明文进行若干轮算法加密,输出轮结果后,对所述轮结果进行反序变换,输出密文。
7、在上述硬件实现方法的一种可能的实现中,所述降低算法功耗的硬件实现方法的工作周期范围为tmin至tmax,sm4对称算法的工作周期为trnd;且
8、trnd<tmin。
9、在上述硬件实现方法的一种可能的实现中,所述轮数可设置为1或2或4或8。
10、在上述硬件实现方法的一种可能的实现中,在所述轮数设置为非1或非2或非4或非8时,所述降低算法功耗的硬件实现方法将自动将所属轮数减小至最近的选择区间,所诉选择区间包括1或2或4或8。
11、在上述硬件实现方法的一种可能的实现中,所述对称算法的具体步骤包括:
12、对明文进行行移位,将移位后的数据进行轮密钥加密,对所述加密后的数据进行sbox替换,将所述替换后的数据再进行列混淆。
13、在上述硬件实现方法的一种可能的实现中,所述降低算法功耗的硬件实现方法的轮数对应所述轮密钥的个数,各轮降低算法功耗的硬件实现方法中的轮密钥各不相同。
14、在上述硬件实现方法的一种可能的实现中,所述降低算法功耗的硬件实现方法的轮数为m,m轮sm4计算分别为n,n+1,n+2,……,n+m-1轮的加密计算。
15、本申请还提供了一种算法功耗降低装置,应用于前述提供的硬件实现方法中,包括:
16、明文寄存器,用于寄存输入的明文;
17、时钟分频选择单元,用于选择降低算法功耗的硬件实现方法所用轮数;
18、迭代控制器,用于按照所述轮数对所述分频算法进行迭代控制;
19、轮结果寄存器,用于寄存所述分频算法计算后的结果;
20、sm4芯片,用于使用sm4对称算法进行计算。
21、与现有技术相比,本发明具有如下的有益效果:
22、本发明提供的降低算法功耗的硬件实现方法,降低了算法、芯片及其装置的工作功耗;通过设置工作时钟分频,增加每个时钟的计算轮数,使得算法性能不变的同时,降低了功耗。
1.一种降低算法功耗的硬件实现方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的降低算法功耗的硬件实现方法,其特征在于,所述降低算法功耗的硬件实现方法的工作周期范围为tmin至tmax,sm4对称算法的工作周期为trnd;且
3.根据权利要求1所述的降低算法功耗的硬件实现方法,其特征在于,所述轮数可设置为1或2或4或8。
4.根据权利要求1所述的降低算法功耗的硬件实现方法,其特征在于,所述轮数设置为非1或非2或非4或非8时,所述降低算法功耗的硬件实现方法将自动将所属轮数减小至最近的选择区间,所诉选择区间包括1或2或4或8。
5.根据权利要求1所述的降低算法功耗的硬件实现方法,其特征在于,所述对称算法的具体步骤包括:
6.根据权利要求5所述的降低算法功耗的硬件实现方法,其特征在于,所述降低算法功耗的硬件实现方法的轮数对应所述轮密钥的个数,各轮降低算法功耗的硬件实现方法中的轮密钥各不相同。
7.根据权利要求6所述的降低算法功耗的硬件实现方法,其特征在于,所述降低算法功耗的硬件实现方法的轮数为m,m轮sm4计算分别为n,n+1,n+2,……,n+m-1轮的加密计算。
8.一种算法功耗降低装置,使用权利要求1至7中任意一项所述的降低算法功耗的硬件实现方法,其特征在于,包括: