一种压缩阵列模加器及其对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的延迟差。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com