首页 > 技术文章 > zuc

Janly 2020-04-03 09:43 原文

区块链技术当中一个很重要的组成部分就是密码学作为从事区块链研究工作的相关人员,应对密码学有相当的认识。ZUC 算法,即祖冲之算法,属于序列密码,其也是中国第一个成为国际密码标准的密码算法。

ZUC 算法,即祖冲之算法,是移动通信 3GPP 机密性算法 EEA3 和完整性算法 EIA3的核心,其亦是中国自主设计的加密算法。

在 2009 年 5 月, ZUC 算法获得了 3GPP 安全算法组 SA立项,正式申请参加 3GPP LTE 第三套机密性和完整性算法标准的竞选工作。

其中经历了两年多的时间, ZUC 算法经过包括 3GPP SAGE 内部评估,两个邀请付费的学术团体的外部评估以及公开评估等在内的 3 个阶段的安全评估工作后,于 2011 年 9 月正式被 3GPP SA全会通过,成为 3GPP LTE 第三套加密标准核心算法。

ZUC 算法是中国第一个成为国际密码标准的密码算法。

ZUC 标准化的成功,是中国在商用密码算法领域取得的一次重大突破,体现了中国离用密码应用的开放性和商用密码设计的高能力,极大的增加中国在国际通信安全应用领域的影响力,且今后无论是对中国在国际商用密码标准化方面的工作,还是商用密码的密码设计来说都有深远的影响。

ZUC 是一个同步流密码算法,其以中国古代著名数学家祖冲之的拼音(ZU Chongzhi)首字母命名,中文称作祖冲之算法。

此算法在设计之初就面拖着高的挑战。因为,美国高级加密标准 AES 和欧洲 SNOW 3G 当时已经被选为 LTE 加密标准,它们是两个设计非常优秀的密码算法,具有非常高的安全强度。

ZUC 算法的设计必须做到不能比 AES 或 SNOW 3G差, 才有可能在 3 GPPLTE 有立脚之处。

面对挑战, ZUC 算法的设计必须具有高安全、高效率以及新颖性等特点。其中高安全和高效率要求设计的新算法在安全和效率上不能比 AES 或 SNOW 3G 低,而新颖性要求设计的密码算法在结构和部件上都有创新。然而密码算法设计发展到今天,许多经典结构和部件的设计都基本定型,要同时达到上述目标,无疑是一项非常艰巨的任务。

ZUC 算法在逻辑上采用三层结构设计,如下图所示。

ZUC 算法上层为定义在素域 GF(231 - 1) 上的线性反馈移位寄存器(LFSR),这是 ZUC 算法设计的一大创新。

目前常见流密码体制的 LFSR 均采用二元域或二元域的某个扩域上的 m 序列。

这种序列具有明显的多重线性关系,这使得以其为序列源的密码算法容易受黠相关攻击。

ZUC 算法的 LFSR 设计首次采用素域 GF(231 - 1) 的 m 序列。该类序列周期长、统计特性好,且在特征为 2 的有限域上是非线性的,其具有线性结构弱、比特关系符合率低等优点。

因而采用GF(231 - 1) 上的 LFSR 设计的 ZUC 算法具有天然的强抵抗二元域上密码攻击方法的能力,譬如二元域上的代数攻击、区分分析和相关攻击等。此外,由于素域 GF(231 - 1)上的乘法可以快速实现, ZUC 算法 LFSR 在设计时充分考虑到安全和效率两方面的问题,在达到高安全目标的同时可以非常高效地软硬件实现。

ZUC 算法的中间层为比特重组。比特重组采用取半合并技术,实现 LFSR 数据单元到非线性函数 F 和密钥输出的数据转换,其主要目的是破坏 LFSR 在素域上 GF(231 - 1) 上的线性结构。

结合下层的非线性函数 F,比特重组可使得一些在素域 GF(231 - 1) 上的密码攻击方法变得非常困难。

ZUC 算法下层为非线性函数 F。在非线性函数 F 的设计上, zuc 算法设计充分借鉴了分组密码的设计技巧,采用 S 盒和高扩散特性的线性变换 L ,非线性函数 F 具有高的抵抗区分分析、快速相关攻击和猜测确定攻击等方法的能力。

此外,非线性函数 F 的 S盒采用结构化设计方法,在具有好的密码学性质的同时降低了硬件实现代价,具有实现面积小、功耗低等特点。

经过上述三层结构的综合运用, ZUC 算法具有非常高的安全强度,能够抵抗目前常见的各种流密码攻击方法。

其设计已得到国内外著名密码学家的认可,他们对其安全强度给予了很高的评价。

最后,需要点明的是上面介绍的 ZUC 算法本质上是一种非线性序列产生器。由此,在种子密钥的作用下,可以产生足够长的安全密钥序列。把与密钥序列晓文数据模 2 相加,便完成了数据加密。同样,把密钥序列与密文数据模 2 相加,便完成了数据解密。

于中阳Mercina-zy

由于排版的问题,上述出现的 GF(231 - 1) 实际是:

特此注明。

推荐阅读