一种压缩阵列模加器及其对ZUC-256流密码算法的优化实现方法

摘要: 本申请涉及密码学硬件加速领域,特别是涉及一种压缩阵列模加器及其对zuc-256流密码算法的优化实现方法。背景技术:1、随着通信系统的快速发展,用户对数据传输的实...
一种压缩阵列模加器及其对ZUC-256流密码算法的优化实现方法

本申请涉及密码学硬件加速领域,特别是涉及一种压缩阵列模加器及其对zuc-256流密码算法的优化实现方法。

背景技术:

1、随着通信系统的快速发展,用户对数据传输的实时性和安全性提出了更高要求。加密算法不仅需要具备较强的抗攻击能力,还应在有限的面积下实现高吞吐率。特别是在移动通信场景中,数据量大、传输频繁,端到端加解密需在短时间内完成,因此通常采用流密码算法(stream cipher)以满足连续加密和快速响应的需求。与分组密码算法相比,流密码具有延迟低、结构简单、逻辑开销小等优点,更适用于通信系统的物理层与链路层加密。

2、在此背景下,中国自主设计的zuc-128流密码算法于2011年被第三代合作伙伴计划(3rd generation partnership project,3gpp)采纳为第四代移动通信(4thgeneration,4g)系统中的第三套数据机密性与完整性保护算法。zuc-128被广泛应用于4g网络的数据加密与认证过程中,对信息安全具有重要的支撑作用。但随着计算能力的提高以及量子计算机的逐渐成熟,为提升zuc-128算法的抗攻击能力,推出了其增强版本zuc-256。zuc-256算法通过把密钥与初始向量的长度扩展为256位,并增加初始化过程的复杂度,显著提高了安全强度。然而,zuc-256的复杂性也带来了更高的实现成本,包括更长的关键路径、更为复杂的多输入模(231-1)加运算和更多的控制逻辑,使其在难以直接应用于面积受限、功耗敏感的边缘计算设备中。因此,提升zuc-256算法的硬件实现效率,是关系zuc-256在通信领域推广应用中亟需解决的关键问题。

3、附图1展示了zuc-256算法的整体结构。现有的设计大都通过构造流水线去实现zuc-256算法中的lfsr更新操作,将多输入的模(231-1)加运算拆解成多个两输入的模(231-1)加运算,并在相邻的两输入的模(231-1)加运算间插入寄存器构建流水线。而两输入的模(231-1)加运算常使用如附图2与附图3所示的串行模(231-1)结构和并行模(231-1)加结构。然而上述方法存在以下问题:

4、1.在构建lfsr的流水线时引入了多组31比特寄存器,造成额外的资源消耗;

5、2.缺乏从整体角度上去优化多输入的模(231-1)加运算,使得优化集中在两输入的模(231-1)加运算;

6、3.虽然通过构建流水线的方式降低了lfsr的延迟,但缺乏从系统的角度去平衡整体流水线的延时,使得fsm中的模(232)运算成为新的关键路径;

7、采用上述方法设计的zuc-256硬件装置无法达到较高的工作频率,吞吐率表现不佳,并且硬件开销大,仅适用于对时延和面积都不敏感的场景。

技术实现思路

1、基于此,有必要针对上述技术问题,提出了一种新型的zuc-256流密码算法硬件设计方法。

2、一种压缩阵列模加器,包括:三层压缩部分;

3、第一层压缩部分包括两组csa,每组csa均包含n个三输入的单比特csa,第一组csa处理单元对lfsr中多输入模2n-1加运算的前三个输入的对应比特位执行单比特三输入加法运算,生成每一位的部分和sum1与进位carry1;第二组csa对lfsr中多输入模2n-1加运算的后三位个输入的对应比特位执行单比特三输入加法运算,生成每一位的部分和sum2与进位carry2;

4、第二层压缩部分包括一组csa;每组csa均包含n个三输入的单比特csa,其中,从左至右第i个csa的输入为第一层压缩部分输出的carry1i-1、sum1i与sum2i,csa0输入信号为carry1n-1,sum10与sum20,输出为新的部分和sum3与进位carry3;

5、第三层压缩部分包括一组csa;每组csa均包含n个三输入的单比特csa,其中,从左至右第i个csa的输入为第二层压缩部分输出的carry3i-1、sum3i与第一层压缩部分输出的carry2i-1,csa0输入信号为carry3n-1、carry2n-1和sum30,最终输出新的部分和sum4与进位carry4;

6、对部分和sum4与进位carry4进行模(2n-1)加运算。

7、在其中一个实施例中,将部分和sum4与进位carry4划分为低比特与高比特两部分,记为sl、sh、cl和ch;

8、两个比特全加器分别计算sl+cl+1和sl+cl+0,输出结果分别为{carryl1,suml1}和{carryl0,suml0};

9、两个比特全加器分别计算sh+ch+1和sh+ch+0,输出结果分别为{carryh1,sumh1}和{carryh0,sumh0};

10、根据进位信号生成的选择条件,对suml1、suml0、sumh1和sumh1进行选择拼接,获得模(2n-1)加运算输出结果。

11、在其中一个实施例中,压缩阵列模加器为压缩阵列模(231-1)加器,所述第一层压缩部分、第二层压缩部分以及第三层压缩部分输出的均为31比特数据。

12、一种压缩阵列的模加器对zuc-256流密码算法的优化实现方法,lfsr中多输入模2n-1加运算采用上述压缩阵列模加器,得到多输入模(2n-1)加运算的运算结果。

13、在其中一个实施例中,压缩阵列模加器为压缩阵列模(231-1)加器。

14、在其中一个实施例中,为对fsm中的模232加法运算进行位宽划分计算,平衡fsm与lfsr的延迟差。

15、上述压缩阵列模加器及其对zuc-256流密码算法的优化实现方法,提出的cama(compression array modulo-adder,基于压缩阵列的模加器)直接实现了多输入的模(2n-1)加运算,无需将多输入模(2n-1)加运算拆解成多个两输入模(2n-1)加运算,省去了在各个两输入模(2n-1)加运算插入寄存器的消耗。cama相比于两输入模(2n-1)加器只增加了压缩部分的延时,该部分延时只额外增加了3级单比特csa的延时。远远小于两输入的模(2n-1)加器延时。

1.一种压缩阵列模加器,其特征在于,包括:三层压缩部分;

2.根据权利要求1所述的压缩阵列模加器,其特征在于,对部分和sum4与进位carry4进行模2n-1加运算,包括:

3.根据权利要求1所述的压缩阵列模加器,其特征在于,压缩阵列模加器为压缩阵列模2n-1加器,所述第一层压缩部分、第二层压缩部分以及第三层压缩部分输出的均为31比特数据。

4.一种压缩阵列的模加器对zuc-256流密码算法的优化实现方法,其特征在于,lfsr中多输入模2n-1加运算采用权利要求1至3任一项所述的压缩阵列模加器,得到多输入模(2n-1)加运算的运算结果。

5.根据权利要求4所述的方法,其特征在于,压缩阵列模加器为压缩阵列模231-1加器。

6.根据权利要求4所述的方法,其特征在于,为对fsm中的模232加法运算进行位宽划分计算,平衡fsm与lfsr的延迟差。