ZUC-256 算法的快速软件实现
2021-07-22贾文义朱桂桢
白 亮, 贾文义, 朱桂桢
兴唐通信科技有限公司, 北京 100191
1 引言
祖冲之序列密码算法(即ZUC 算法, 为了和ZUC-256 算法区分, 下文中我们将其称为ZUC-128算法) 使用128 比特密钥, 能够提供数据的机密性和完整性保护功能. 2011 年9 月在日本福冈召开的第三代合作伙伴计划(3GPP)[1]系统架构组(SA) 会议上, ZUC-128 算法被批准写入3GPP 长期演进(LTE) 系统标准规范[2], 用于LTE 空口数据传输保护, 是我国首个成为国际标准的密码算法. 3GPP 基于ZUC-128 算法, 结合LTE 系统实际工作输入输出需要, 制定了机密性保护算法(128-EEA3) 使用规范和完整性保护算法(128-EIA3) 使用规范. 在5G R15 版本标准制定过程中, 3GPP 中国参会企业代表与ETSI SAGE、GSMA 等共同对128-EEA3/EIA3 标准进行了修订, 将ZUC-128 算法作为5G 空口机密性和完整性保护算法(128-NEA3/NIA3) 推进成为了5G 标准. 随着量子计算不断发展, 在2017 年3GPP 安全组(SA3) 的会议上, 多个企业提出了5G 中使用256 比特对称密码算法的需求. 为此, 3GPP SA3 专门开展研究项目, 探讨256 比特密码算法在5G 中应用相关问题[3]. 在研究项目中, 空口机密性和完整性保护算法是各国企业关注的重点: 美国AT&T 等公司提出未来5G 标准应当使用AES-256 算法, 提供抗量子计算攻击的能力; 我国于2018 年初公布了使用256 比特密钥、基于ZUC-128 算法设计的ZUC-256 序列密码算法(草案)[4]; 欧洲爱立信等公司在2018 年底提出了256 比特的SNOW-V 序列密码算法[5]. 与128 比特密钥的ZUC-128 算法相比, ZUC-256 算法对初始化进行了重新设计, 增加了初始化向量(IV) 长度以提供足够的安全冗余; 能够支持多种长度的消息认证码(MAC), 以应对5G 潜在的多安全级别的需求. 除了安全性, 空口密……
