摘要

密码算法是保证信息安全的核心技术之一,随着计算机技术的发展,密码算法经历了从古典到抗量子设计的发展,涌现出了适用于各种场景且具有多种功能的密码算法。对国内外密码算法发展中的各种征集候选算法进行介绍,分析并指出使用的主要框架等,提出在新的挑战下密码算法的发展趋势、研究重点,为新型密码算法设计和分析提供基础支撑。

内容目录:

1 对称密码算法发展

1.1 以 DES 和 AES 为代表的标准算法

1.2 NESSIE 计划

1.3 ECRYPT 计划

1.4 CAESAR 竞赛

1.5 全国密码算法设计竞赛

1.6 NIST 轻量级密码算法征集

2 公钥密码算法发展

2.1 NIST 抗量子密码算法标准化征集

2.2 全国密码算法设计竞赛

3 启 示

4 结 语

随着计算机技术的高速发展,政府、企业和个人对信息的存储、处理和传输等需求越来越急迫,特别是随着大数据、互联网、人工智能、云计算等新型场景的出现,信息安全问题越显突出,解决这类安全问题的最有效方法之一就是使用密码技术。《中华人民共和国密码法》所称的密码是指采用特定变换的方法对信息等进行加密保护、安全认证的技术、产品和服务。而密码算法是保障信息安全的密码基本技术之一,可用来保障信息的完整性、机密性、认证性等。

密码技术较长一段时间内主要用于军事领域,最早称为古典密码,例如罗马时期凯撒密码和第二次世界大战时德军使用的恩尼格码密码机,这些可以看作古典密码的经典使用。直到 1949 年香农发表《保密系统的通信理论》后,密码学发展才进入系统科学阶段。随后数据加密标准(Data Encryption Standard,DES)颁布、Diffie 与 Hellman 发表的《密码学新方向》和 RSA 公钥密码算法 的提出,带来了现代密码学设计和分析的研究热潮。

密码算法可以看作一种加解密的数学函数,根据使用密钥不同可以分为对称密码算法和公钥密码算法,其中对称密码算法又分为分组密码算法和序列密码算法。

本文首先对国内外密码算法发展历程中的征集活动进行分析和综述,探讨密码算法框架设计特点,研判未来密码算法发展趋势和特点。

对称密码算法发展

对称密码算法一般具有运行速度快、便于软硬件实现、易于标准化等显著特点,已成为实现数据保护的核心部件,被广泛应用。对称密码算法的发展经历多个重要阶段,其标志性事件为各个标准算法征集和各个行业标准制定提供了技术支持。其代表性事件主要包括:1977 年 DES正式颁布;1997 年 AES 算法标准征集;2000 年NESSIE计划征集;2004年ECRYPT密码算法征集;2013 年 CAESAR 竞赛征集;2018 年全国密码算法设计竞赛;2018 年 NIST 轻量级密码算法征集。

1.1 以 DES 和 AES 为代表的标准算法

1973 年美国国家标准局发布的密码算法研制公告,历经 4 年,在 1977 年,数据加密标准DES 正式颁布 。该算法的密钥长度为 56 比特,分组长度为 64 比特,经过 16 轮完全相同的运算,得到 64 比特的密文。其加解密结构为 Feistel,核心部件使用了 8 个非线性 S 盒。

由于 DES 使用的密钥长度较短,不能保障足够的安全性,因此,1997 年美国国家标准与技 术 研 究 院(National Institute of Standards and Technology,NIST)发起了高级加密标准(AdvancedEncryption Standard,AES)征集 [5];1998 年 NIST宣布 15 个算法入围 AES 候选算法;1999 年宣布 5 个候选算法(MARS、RC6、Serpent、Twofish、Rijndael)进入决赛,进行最终的安全性分析、软硬件评估等测试;2000 年 NIST 宣布比利时密码学家 Joan Daeman 和 Vincent Rijmen 设计的Rijndael 算法作为 AES 最终胜选算法。所有候选算法的结构如表 1 所示。

表 1 AES 候选算法

随后,ISO/IEC 也颁布了分组密码标准征集 ,其算法结构如表 2 所示。日本、韩国及一些行业等也出现了一大批密码算法标准,如表 3 所示。

表 2 ISO/IEC 的分组密码标准算法

表 3 一些国家及行业密码标准算法

1.2 NESSIE 计划

进 入 21 世 纪, 欧 洲 在 2000 年 至 2002 年之 间 提 出 了 NESSIE(New European Schemes for Signatures, Integrity and Encryption) 密 码 算 法 征集计划 , 主 要 包 含 分 组 密 码、 序 列 密 码、MAC、哈希函数、公钥密码、数字签名算法等。其征集公告中给出了 3 条基本准则:一是对算法的攻击应与强力攻击一样困难;二是算法安全性评估结果应当与提交时的声称相一致;三是算法应当给出在各种特定环境下的评估结果。第一轮共征集到 42 个算法,第二轮有 24 个算法胜出,最终有 12 个算法入选。其中,第一轮共征集到 17 个分组密码算法,经过评估,第二轮选出了 7 个密码算法。候选分组密码算法如表 4所示。候选的 5 个序列密码算法如表 5 所示。

表 4 NESSIE 计划中分组密码算法

表 5 NESSIE 计划中序列密码算法

1.3 ECRYPT 计划

NESSIE 计 划 之 后, 欧 洲 于 2004 年 又 发起 了 为 期 4 年 的 ECRYPT(European Networkof Excellence for Cryptology) 密 码 算 法 征 集 活动 。第一轮共征集到 34 个序列密码算法,有 27 个进入第二轮评估,第三轮有 16 个算法入选,最终 7 个算法胜出。胜出的算法分为两个方面:一是适合于软件的算法,例如 HC-128、Rabbit、Salsa20/12、SOSEMANUK;二是适合于硬件的算法,例如 Grain v1、Mickey 2.0、Trivium。对 34 个算法特点进行分析,总体可分为 4 类:一是基于线性反馈移位寄存器(Linear Feedback Shift Register,LFSR);二是基于非线性反馈移位寄存器(Nonlinear Feedback Shift Register,NLFSR);三是基于表驱动;四是基于分组密码部件构造序列密码。这些算法的结构如表 6 所示。

表 6 ECRYPT 计划中序列密码算法

1.4 CAESAR 竞赛

随着密码算法应用场景的拓展,亟需设计具有认证和加密功能的密码算法,因此 NIST 于2013 年 首 次 提 出 CAESAR(The Competition forAuthenticated Encryption: Security, Applicability,and Robustness)竞赛,目的是筛选出能同时满足完整性、机密性和稳健性的认证加密算法。第一轮共征集到 57 个算法,经过评估,第三轮有 15 个算法入围,最终有 6 个算法胜出,可以分为 3 类:一是适合于资源受限环境的 ASCON算 法 和 ACORN 算 法;二 是 适 合 于 高 性 能 的AEGIS-128 算法和 OCB 算法;三是适合于深度防护的 Deixys-II 算法和 COLM 算法。

下面重点介绍第三轮入选的 15 个算法,按照其设计结构可分为 4 类:一是基于分组密码工作模式;二是基于序列密码方式;三是基于海绵结构方式;四是基于专用结构。其算法结构和目标如表 7 所示。

表 7 CAESAR 竞赛第三轮密码算法

1.5 全国密码算法设计竞赛

为推动我国密码算法技术进步,提高算法设计水平及分析能力,促进密码人才成长,中国密码学会在 2018 年 6 月首次举办了“全国密码算法设计竞赛”,第一轮共征集到22 个分组密码算法、38 个公钥密码算法,截至 2019 年 9 月,共有 10 个分组密码算法、14 个公钥密码算法进入第二轮竞赛,最终 2个分组密码算法、3 个公钥密码算法获得一等奖。

第 二 轮 的 10 个 分 组 密 码 算 法 为 uBlock、Ballet、FESH、TANGRAM、ANT、NBC、FBC、SMBA、Raindrop、SPRING,分别由中国科学院软件研究所、杭州电子科技大学、清华大学、山东大学、中国科学院信息工程研究所、中国科学院数学与系统科学研究所等单位提交。具体如表8 所示。

表 8 全国密码算法设计竞赛第二轮密码算法

1.6 NIST 轻量级密码算法征集

2018 年 8 月,NIST 发起轻量级密码算法征集活动 ,第一轮共征集到 56 个候选算法,经过公开评审 32 个算法入围第二轮,最终在2021 年 3 月 NIST 宣 布 共 有 10 个 算 法 入 围 第三轮,包括 ASCON、Elephant、GIFT-COFB、Grain128-AEAD、ISAP、PHOTON-Beetle、Romulus、Sparkle,目前 NIST 正在进行最终论的评审。下面介绍第二轮入围的 32 个算法,如表 9 所示。

表 9 NIST 轻量级密码算法征集第二轮算法

续表

公钥密码算法发展

公钥密码是实现密钥生成、身份认证、数字签名等密码功能的基础体制,是各类密码基础设施的重要构成部分,因此广泛应用于通信网络和系统安全中。

随着公钥密码设计发展和抗量子研究的深入,20 世纪 90 年代,Peter Shor 提出了量子算法(Shor 算法)对 RSA 等公钥密码发展带来了威胁,即如果未来构造出一定规模的量子计算机,那么这些公钥密码算法将不再安全,亟需加快后量子公钥密码算法设计和发展。促进发展的典型事件包括:1976 年《密码学新方向》发表;1977 年 RSA 算法被提出;2016 年NIST 发起“抗量子密码算法标准化”征集活动;2018 年中国密码学会首次举办“全国密码算法设计竞赛”。

2.1 NIST 抗量子密码算法标准化征集

2016 年,美国国家标准局开启了“抗量子密码算法标准化”工作 。第一轮共征集到 69套算法(共 104 个算法方案),主要可分为基于格的密码、基于编码的密码、基于多变量的密码、基于 Hash 的密码,以及其他类密码。第二轮有 26 套算法入选,其分布如表 10 所示,第三轮推荐算法如表 11 所示。近日,NIST 宣布首批进入标准化的算法有 4 个(CRYSTALS-Kyber、CRYSTALS-Dilithium、Falcon、SPHINCS+),进入第四轮候选的有 4 个算法(BIKE、Classic McEliece、HQC、SIKE)。

表 10 入围第二轮的抗量子密码算法

表 11 进入第三轮推荐算法名单

2.2 全国密码算法设计竞赛

在中国密码学会举办的“全国密码算法设计竞赛”中,最终有 14 个公钥密码算法获 奖 ,这些算法提升了我国公钥密码算法设计 能 力。其 算 法 名 称 为 Aigis-sig、LAC.PKE、Aigis-Enc、LAC.KEX、SIAKE、SCloud、AKCN、OKCN、FatSeal、木兰、AKCN-E8、PKP-DSS、Piglet-1,分别由中国科学院信息工程研究所、清华大学、复旦大学等单位提出。

启 示

从 AES 算法征集、ISO/IEC 分组密码标准算法征集、各个国家和行业标准算法出台、NESSIE 计划实施、ECRYPT 计划实施、CAESAR竞赛开展、全国密码算法设计竞赛实施和抗量子密码算法标准化开展等行动中可以看出,目前密码算法设计正向功能化、多元化等方向发展,其设计趋势如下文所述。

(1)多功能。对称密码算法不仅具有加密功能,在某些应用场景中,还具有认证功能,并已经成为当下的研究热点。而公钥密码算法不仅能实现加密、签名,还能实现认证等功能。

(2)轻量化。资源受限环境对算法提出苛刻的要求,如低延迟、低功耗、逻辑简单等,这就需要密码算法既要满足资源消耗少,又要满足一定的安全性需求。对轻量级密码算法设计的研究已经成为密码学家新的研究方向。

(3)新结构。对称密码算法除传统的基于LFSR、NLFSR、SP 网络、Feistel 网络、MISTY 结构、IEDA 结构等结构外,还需根据当前大数据、人工智能、物联网等新型应用和所抵抗的各类攻击设计新型的密码结构。而公钥密码除基于数学困难问题外,是否还有其他的设计方式,这是密码学专家一直以来的研究重点。

(4)抗量子。针对量子计算攻击的威胁,亟需进一步研究抗量子的对称密码算法,这是当前密码学家关注的重点。而在公钥密码算法抗量子攻击设计方面,重点是围绕基于格、编码、多变量、同源、哈希等展开密码算法设计和分析,但目前国内外专家研究较多的只是基于格的密码算法设计。

结 语

从各国政府、机构及行业来看,密码算法的研究对信息安全有着至关重要的意义。本文分析了国内外密码算法征集中密码算法结构、主要部件,结合新型应用场景提出未来密码算法的发展趋势,希望对新型密码算法设计和分析提供基础支撑。

引用格式:蒋涛 ,张文政 ,周宇 ,等 .标准算法的征集及启示 [J].信息安全与通信保密 ,2022(7):106-114.

作者简介 >>>

蒋 涛,男,学士,高级工程师,主要研究方向为网络空间安全;

张文政,男,硕士,研究员,主要研究方向为密码学;

周 宇, 男, 博 士, 研 究 员,主要研究方向为密码学;

陈 静, 女, 学 士, 工 程 师,主要研究方向为信息与网络安全。

选自《信息安全与通信保密》2022年第7期(为便于排版,已省去原文参考文献)

声明:本文来自信息安全与通信保密杂志社,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。