APP下载

标准算法的征集及启示*

2022-08-22张文政

信息安全与通信保密 2022年7期
关键词:公钥量子密码

蒋 涛,张文政,周 宇,陈 静

(1.中国电子科技网络信息安全有限公司,四川 成都 610041; 2.保密通信重点实验室,四川 成都 610041)

0 引 言

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

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

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

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

1 对称密码算法发展

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

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

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

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

表1 AES 候选算法[5]

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

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

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

1.2 NESSIE 计划

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

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

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

1.3 ECRYPT 计划

NESSIE 计划之后,欧洲于2004 年又发起了为期4 年的ECRYPT(European Network of Excellence for Cryptology)密码算法征集活动[15]。第一轮共征集到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 for Authenticated Encryption: Security, Applicability,and Robustness)竞赛[16],目的是筛选出能同时满足完整性、机密性和稳健性的认证加密算法。第一轮共征集到57 个算法,经过评估,第三轮有15 个算法入围,最终有6 个算法胜出,可以分为3 类:一是适合于资源受限环境的ASCON算法和ACORN 算法;二是适合于高性能的AEGIS-128 算法和OCB 算法;三是适合于深度防护的Deixys-II 算法和COLM 算法。

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

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

1.5 全国密码算法设计竞赛

为推动我国密码算法技术进步,提高算法设计水平及分析能力,促进密码人才成长,中国密码学会在2018 年6 月首次举办了“全国密码算法设计竞赛”[17],第一轮共征集到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 发起轻量级密码算法征集活动[18],第一轮共征集到56 个候选算法,经过公开评审32 个算法入围第二轮,最终在2021 年3 月NIST 宣布共有10 个算法入围第三轮,包括ASCON、Elephant、GIFT-COFB、Grain128-AEAD、ISAP、PHOTON-Beetle、Romulus、Sparkle,目前NIST 正在进行最终论的评审。下面介绍第二轮入围的32 个算法,如表9 所示。

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

续表

2 公钥密码算法发展

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

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

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

2016 年,美国国家标准局开启了“抗量子密码算法标准化”工作[20]。第一轮共征集到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 个公钥密码算法获奖[17],这些算法提升了我国公钥密码算法设计能力。其算法名称为Aigis-sig、LAC.PKE、Aigis-Enc、LAC.KEX、SIAKE、SCloud、AKCN、OKCN、FatSeal、木兰、AKCN-E8、PKP-DSS、Piglet-1,分别由中国科学院信息工程研究所、清华大学、复旦大学等单位提出。

3 启 示

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

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

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

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

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

4 结 语

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

猜你喜欢

公钥量子密码
密码里的爱
《量子电子学报》征稿简则
《量子电子学报》征稿简则
新量子通信线路保障网络安全
密码抗倭立奇功
神奇的公钥密码
国密SM2密码算法的C语言实现
基于身份的聚合签名体制研究
密码藏在何处
威力强大的量子“矛”和“盾”