祖冲之密码算法,即ZUC(ZU Chongzhi)算法,是一种由中国自主研发的流密码算法,主要用于4G无线通信的加密和完整性保护。该算法由中国科学院信息工程研究所等机构研发,包括祖冲之算法、加密算法128-EEA3和完整性算法128-EIA3,并被国际组织3GPP推荐为4G无线通信的第三套国际加密和完整性标准的候选算法。
命名:ZUC算法以中国古代数学家祖冲之的拼音首字母命名。
背景:该算法由国家密码管理局发布,并已成为中国国家密码标准以及国际标准组织的相关标准。它还被国际组织3GPP推荐为4G无线通信的第三套国际加密和完整性标准的候选算法。
是产生密钥流的基础部件,包含多个寄存器单元,通过特定的反馈函数进行更新。它有两种运行模式:初始化模式和工作模式。在初始化模式下,LFSR接受一个31比特字的输入,并对寄存器单元进行更新;在工作模式下,LFSR无输入,直接对寄存器单元进行更新。
由 16 个 31 比特寄存器单元变量,…组成,以有限域上的 16 次本原多项式为连接多项式,,,,,作为抽头部分。有初始化模式和工作模式两种运行模式,初始化模式下接受一个 31 比特字输入更新寄存器单元,工作模式下无输入直接更新。
从LFSR寄存器单元中抽取一定长度的比特,并重新组合成多个32比特字。这些32比特字将作为非线性函数F的输入。
从 LFSR 寄存器单元中抽取 128 比特,拼成 4 个 32 比特字,,,,前三个字参与非线性函数运算,第四个字参与密钥流计算,主要目的是破坏 LFSR 在素域上的线性结构。
是ZUC算法的核心部分,它接受BR输出的32比特字作为输入,并通过复杂的非线性变换产生输出。非线性函数F的引入增强了密钥流的随机性和不可预测性,从而提高了算法的安全性。
运用到了比特异或、循环移位和模加法运算,以及两个非线性盒变换,接受输出的 32 比特字作为输入,输出一个 32 比特,与输出的异或,形成算法的输出密钥字序列。
在加密和解密过程中,需要使用一个初始化向量(IV)和初始密钥(k)。这些参数将作为LFSR的初始状态,并用于生成密钥流。
通过LFSR、BR和F三层结构的综合运用,ZUC算法生成一个足够长的密钥流。这个密钥流具有高度的随机性和不可预测性,能够确保加密过程的安全性。
将明文数据与密钥流进行模2相加(即异或运算),得到密文数据。这个过程中,密钥流的每一位都与明文数据的对应位进行异或运算,从而完成数据加密。
解密过程与加密过程相反。将密文数据与密钥流进行模2相加(即异或运算),得到明文数据。由于异或运算的可逆性,解密过程能够准确地还原出原始明文数据。
ZUC算法通过精心设计的非线性函数和密钥调度机制,确保了算法的抗攻击能力。它能够有效抵御已知的各种密码分析攻击,包括线性分析、差分分析等。
ZUC算法在设计时充分考虑了硬件实现的效率。它的三层结构使得算法在各种移动通信设备上都能高效运行,满足实时通信的需求。
ZUC算法支持多种密钥长度和操作模式。它可以根据不同的应用场景灵活选择密钥长度和操作模式,以适应不同的安全需求。
ZUC算法在我国商用密码领域具有广泛的应用,包括但不限于:
1.互联网通信保护用户在互联网、电子邮件、即时通信等场景中的信息安全。
2.数据库加密对数据库中存储的敏感信息进行加密,防止信息泄露。
3.软件保护对软件源代码进行加密和保护,避免被盗取或篡改。
4.数字媒体版权保护对教育视频、电影、音乐等数字媒体作品进行加密,防止盗版。
5.移动设备加密对移动设备中存储的个人隐私信息进行加密,确保信息不会被窃取。
六、相关标准
祖冲之算法于 2011 年 9 月被采纳为国际加密标准(标准号为TS35.221),即第 4 代移动通信加密标准;
2012 年 3 月被发布为国家密码行业标准(标准号为 GM/T0001—2012);
2016 年 10 月被发布为国家标准(标准号为 GB/T33133—2016)。
欢迎关注《网络安全和等保测评》微信公众号⬇️
关注我们
联系我们
原文始发于微信公众号(网络安全和等保测评):祖冲之密码算法详解
评论