电子邮件商标Logo标志认证,预防网络钓鱼
对邮件进行数字签名和加密
对PDF等文档进行数字签名
驱动程序微软数字签名解决方案
PKI
自建CA实现私有证书签发和管理
SSL证书自动化运维服务
网站加速和安全防护
全球领先服务器控制面板
全球领先Linux服务器面板
海外网站加速和安全防护
上百域名后缀可供选择
转入域名到锐成,管理更安全
委托回购已被注册域名
企业出海域名品牌保护必选
将短信迅速送达全球
简单易用的云服务销售管理系统
锐成行业解决方案,让您轻松解决企业上云痛点,加速云上应用构建。
技术方案
能够灵活适配客户邮件环境
云端PKI解决方案和本地PKI解决方案
供统一的数字证书生命周期管理服务
一站式等保合规安全解决方案
行业解决方案
让商家更专注于业务
让您轻松开展主机业务
无论何时何地,锐成各领域专家就在您身边,帮助您解决上云问题。
文档与工具
服务支持
增值服务
锐成云携手合作伙伴,共创云上安全生态,合作共赢
合作推广
生态合作伙伴
锐成免费站长工具,让网站管理运维更简单。
SSL工具
轻松生成您的CSR和私钥
解码你的CSR并确保信息正确无误
将您的SSL证书转换为不同的格式
检查SSL证书的安装情况
下载完整的证书链
查找颁发给您的域名所有SSL证书
DNS工具
查看该域名的所有DNS记录
查询域名信息状态
查询网站域名在全球范围内是否被墙
作为全球领先的云基础安全服务公司,我们坚持让安全成为公共服务,助力全球客户加速价值创新。
关于锐成
市场商务合作
摘?要:传统密码算法难以适用于物联网等资源受限环境,为了满足此类场景的安全防护需求,轻量级密码算法应运而生且不断发展。近些年,世界各国学者、机构推出了大量的轻量级密码算法,本文对选取的6个典型轻量级密码算法进行对比分析,结合算法结构和软硬件上的性能表现,给予相应的评价以及应用场景推荐。最后从算法应用的角度对轻量级密码算法在物联网端边云协同、自动驾驶和卫星安全通信三个场景下的应用进行探讨。
内容目录:
1轻量级密码发展现状2轻量级密码算法简介2.1算法分类2.2分组密码2.3认证加密算法3轻量级密码算法对比研究3.1算法设计理论对比分析3.2算法硬件性能对比分析3.3软件性能测试对比分析3.4算法总体分析及应用评估4轻量级密码算法应用研究4.1物联网端边云协同4.2自动驾驶4.3卫星安全通信5问题与展望6结?语
1轻量级密码发展现状
2013年,美国国家安全局(NationalSecurityAgency,NSA)发布了两个轻量级分组密码算法,分别是SIMON和SPECK。同时,美国国家标准与技术研究所(NationalInstituteofStandardsandTechnology,NIST)启动了一个轻量级密码项目。为了推动这一项目,NIST在2015年和2016年分别举办了两次轻量级密码研讨会,以征求公众的建议和观点。随后,NIST于2017年4月发布了有关轻量级密码标准化进程的白皮书,并在2018年5月发布了文件,以征求有关轻量级密码算法标准化流程和评估策略的意见。最终,在2018年8月,NIST正式启动了轻量级密码的征集、评估和标准化工作,旨在开发一系列适用于那些现有NIST密码算法标准不适用的资源受限环境的轻量级密码算法,其中,重点考虑认证加密算法。这一工作的目标是确保在嵌入式设备、物联网和其他资源受限应用中提供适当的数据安全性。经过3轮评选,2023年2月7日,NIST宣布从最初的56个候选算法中选择Ascon算法簇作为优胜算法,并开展轻量级密码学标准化工作。
欧洲、日本等国家或地区也较早开展了轻量级密码的研究工作。欧洲早在2004年就开始将轻量级密码算法作为欧盟委员会第6和第7框架计划ECRYPTI和ECRYPTII的研究主题。eSTREAM计划则最终选择了一些适用于硬件实现的轻量级流密码算法。2013年,日本密码学研究和评估委员会(CryptographyResearchandEvaluationCommittees,CRYPTREC)成立了轻量级密码工作组,制定了轻量级密码技术指南,为需要轻量级加密技术的产品和用户推荐合适的算法。此外,2015年,俄罗斯发布了密码算法标准GostR34.12-2015,用分组密码Kuznyechik代替了之前的算法。这些举措表明,全球范围内对轻量级密码算法的研究和标准化工作正在积极推进,以满足不同国家和地区对于资源受限环境下的数据安全需求。
我国的第一个轻量级密码算法是在2011年由吴文玲和张蕾等人在ACNS2011上提出的LBlock,它的出现推动了我国在轻量级分组密码设计上的发展。随后在2015年,我国学者张文涛等人提出Rectangle算法。近期,我国科学家在基于同态加密的轻量级密码算法研究中取得了一些重要成果。由于我国目前还没有启动关于轻量级密码算法的标准化进程,对于轻量级密码算法的研究更多地是对国内外轻量级算法的优化、安全性分析等。
2轻量级密码算法简介
2.1算法分类
2.2分组密码
近年来发布的轻量级分组密码大多采用传统的分组密码整体结构,其主要特点体现在非线性部件、扩散层和密钥扩展算法等方面。表1列出了国际上一些重要的期刊和会议上发表的35种轻量级分组密码算法。
表1已发表的轻量级分组密码
下面将从算法结构的角度选取5个国内外典型的轻量级密码算法进行介绍。
2.2.1Feistel结构
Feistel结构是一种经典的分组密码结构,被广泛用于设计和构建分组密码算法,它以高度的安全性和可逆性在密码学领域中备受赞誉。
如图1所示,Feistel结构的核心思想是将明文数据分成两个部分,并通过一系列轮函数的迭代处理逐步转换这两个部分,最终将它们合并生成密文。在每一轮中,右半部分的数据会被送入轮函数中与左半部分进行某种运算,例如异或操作。这个过程会被反复执行多轮,每轮中的密钥都会发生变化,增加了密码的复杂性。Feistel结构最著名的应用是数据加密标准(DataEncryptionStandard,DES),并且它的变体结构在轻量级分组密码算法中也得到了广泛应用。
图1Feistel结构
(1)LBlock
LBlock是一种由我国学者吴文玲和张蕾在ACNS2011上提出的轻量级分组密码算法。它采用32轮Feistel结构,并拥有80bit的密钥和64bit的分组长度。
(2)SIMON
SIMON算法是由美国国家安全局(NationalSecurityAgency,NSA)于2013年发布的一族轻量级分组密码算法,旨在满足不同应用需求并强调灵活性。该算法支持多种分组长度和密钥长度,以适应不同安全性和资源限制的场景。SIMON算法采用Feistel结构,分组长度可以是32bit、48bit、64bit、96bit和128bit,而密钥长度根据分组长度的选择而变化,范围从64bit到256bit不等。这种设计使得SIMON算法在多样化的应用中具有广泛的适用性。
2.2.2SPN结构
如图2所示,代换-置换网络(Substitution-PermutationNetwork,SPN)结构一般由可逆的线性函数S和可逆的线性变换P组成,其中S通过替换操作实现数据的混合作用,而P则通过置换操作实现数据的扩散作用。相比于Feistel结构,SPN结构的数据扩散速度更快。S层和P层可以在实现中考虑并行操作,以取得更快的性能表现。
图2SPN结构
SPN结构最具代表性的分组密码算法是AES,许多轻量级分组密码算法在设计中也采用了SPN结构。
(1)PRESENT
PRESENT发布于2007年,2012年被纳入ISO/IEC轻量级分组密码国际标准。PRESENT在轻量级密码算法中占据了重要的地位,在设计之初,它一度被认为是最杰出的超轻量级密码算法。PRESENT的整体结构将简单性原则体现得淋漓尽致,非线性层使用4bitS盒,线性层的操作仅为比特置换。PRESENT的分组长度为64bit,密钥长度为80/128bit,整体结构为SPN结构,迭代轮数为31。
(2)GIFT
GIFT是Banik等人[12]为庆祝PRESENT算法10周年设计的,延续了后者的设计策略。GIFT的主要设计目标是弥补PRESENT在安全性上的弱点,同时在实现性能方面更有效,硬件实现面积更小、速度更快。为了尽可能达到轻量化设计极限,GIFT选取了硬件实现面积更小的S盒,放宽了密码特性的一些指标限制。GIFT有两个版本,密钥长度为128bit,分组长度分别为64bit和128bit。
(3)Rectangle
Rectangle发布于2015年,是我国学者张文涛等人发布的轻量级分组密码算法,其主要设计思想是采用比特切片技术设计适合多个软硬件平台的轻量级分组密码算法。Rectangle的分组长度为64bit,密钥长度为80bit和128bit。整体结构为SP结构,迭代轮数为25。由于采用比特切片设计的风格,在现有的轻量级分组密码中,Rectangle实现了非常有竞争力的软件速度。S盒可以使用12条基本逻辑指令序列来实现。p层由3个旋转组成,这使得它对硬件和软件实现都非常友好。
2.3认证加密算法
认证加密算法(AuthenticatedEncryption&AuthenticatedCipher)指同时完成数据加密和完整性验证的密码算法。早期的认证加密算法多采用组合方式设计,主要的组合方式有Encrypt-then-MAC、MAC-then-Encrypt、Encrypt-and-MAC,这3种构造方式的优势在于通用性,适用于常见的加密和认证算法,但缺乏令人信服的安全性。
认证加密AE方案构造如图3所示,具体流程为:发送者将临时值、关联数据、明文数据作为输入,生成密文和标签T,接收者进行解密并生成T’,若T’=T,则输出明文;否则返回空。
图3可认证加密的工作原理
ASCON是NIST轻量级密码竞赛的获胜算法。ASCON算法采用复式结构,共分为初始化、处理关联数据、处理明文、终止函数4个阶段。ASCON算法的作者推荐两个参数的算法版本分别为:ASCON-128和ASCON-128a,它们的区别在于数据块长度,分别为64bit和128bit,其中第2个版本在处理长数据上有性能优势。ASCON的密钥灵活性高,其底层置换状态小仅320bit,轮函数设计简单,同时采用了比特切片的设计理念。该算法在2013年就已公布,经历了长期的国际学术界的安全性分析与考验。
3轻量级密码算法对比研究
本节对第2节所提到的LBlock、SIMON、PRESENT、GIFT、Rectangle、ASCON共6项轻量级密码算法进行细化的对比研究,分别从算法理论设计、算法硬件性能、算法软件性能等维度评估各项算法的基础能力。
3.1算法设计理论对比分析
表2是从算法设计理论的角度进行对比分析的结果。PRESENT算法最早发布,算法设计简洁,是较为公认的首个轻量级分组密码;LBlock算法以PRESENT为参照,采用了广义Feistel结构减少S盒的个数;GIFT算法发布最晚,沿用PRESENT的设计策略,采用了更小的S盒。Rectangle和ASCON算法都加入了比特切片理念,使得它们对硬件和软件实现都非常友好。SIMON算法支持多种分组长度和密钥长度,应用灵活。
表2?算法设计理论的对比分析
3.2算法硬件性能对比分析
根据文献[9]中提供的数据,LBlock在与PRESENT算法达到相同输出速率的情况下,实现面积约为1350GE;ASCON算法提供认证加密功能的轻量级实现,该实现的面积约为2600GE。当采用基于轮数的实现时,面积将近10000GE,但这样的实现可以达到4.9~7.3Gbit/s的吞吐量,足够对千兆以太网连接进行加密。
表3?部分算法硬件实现性能对比
表格中分组密码算法的硬件实现面积均小于2000GE,单从面积指标上分析都满足资源受限环境场景,其中,64bit分组长度的GIFT算法实现面积最小。但在最大输出功率和能量消耗方面,密钥长度为128bit的Rectangle算法以较小的实现面积在这两项指标中表现较为优秀。ASCON算法的实现面积虽然较高,考虑到其具备认证加密功能和良好的吞吐量,该算法的表现也十分优异。
3.3软件性能测试对比分析
图4软件实现性能对比
另外,由于Rectangle、ASCON在设计中采用了比特切片的思想,这些算法在使用指令集实现时有着很大的优势,通过指令集可以在特定场景下取得相当优异的软件性能,而本次实验中并没有体现指令实现的性能。
3.4算法总体分析及应用评估
本节综合上述的算法设计理念、算法硬件性能、软件性能对选取算法进行总体评价,并对算法的应用场景进行建议,为算法应用落地提供参考,具体如表4所示。
表4?选取算法总体分析及应用评估
4轻量级密码算法应用研究
4.1物联网端边云协同
图5物联网端边云协同轻量级密码应用案例
本场景下,物联网嵌入式设备往往具有受限的计算存储资源,对功耗极为敏感,而轻量级密码算法兼顾资源效率、安全性、低功耗和快速性,可在不影响业务的前提下保护物联网设备通信及数据的安全性。此外,轻量级密码算法可在边缘计算服务器、云平台等集成,这使得物联网“端—边—云”协同更加安全。在物联网的快速增长中,轻量级密码算法将继续发挥关键作用,确保数据的保密性和完整性。
4.2自动驾驶
汽车自动驾驶技术的快速发展要求在车辆通信和数据传输中确保数据的安全和隐私。图6给出了轻量级密码算法在自动驾驶车辆网络架构下的应用案例,其中主要包括云服务数据中心(DataCenter,DC)、车载控制中心(VehicleCenter,VC)、远端用户(User)、自动驾驶车辆(Car)。云服务数据中心拥有极大的存储空间和极高的计算能力,可采用传统密码和轻量级密码算法相结合的资源计算中心,而自动驾驶车辆需要配备电子控制器单元(ElectronicControlUnit,ECU)。
“User-DC”端通信中,一方面用户可以访问路况和天气等信息,并做出相应的评估;另一方面,用户通过身份认证后可以获取车辆的实时数据,并通过远程指令对车辆路线规划、应急处理进行管理。对于这种通信情形,可采用传统密码算法和轻量级密码算法等不同方案保证身份认证和安全通信的灵活性。“DC-VC-Car”端的通信,可采用轻量级可认证加密算法保证对数据源的认证及控制指令的安全性。“Car-Car-DC”端的通信分为两个部分,其中“Car-Car”指车辆与车辆之间的“挑战-响应”对(Challenge-ResponsePair),车辆之间可以通过轻量级认证加密算法对车辆间的指令信息加密,保证无线传输网络的安全性,同时车内的ECU单元利用轻量级分组密码对本地敏感数据进行加密保护;“Car-DC”指自动驾驶车辆与云服务数据中心之间的通信,该通信可采用基于轻量级分组密码算法的无线安全传输协议。
图6自动驾驶轻量级密码应用案例
本场景下,通过认证的车主可以远程控制本人的汽车,车载控制中心虽然具备客观的计算能力,但由于车辆众多,可分配到每辆汽车的资源有限,所以轻量级密码算法的低功耗特点可以很好地弥补这一点。另外,由于车内ECU单元存储及计算资源有限,且车内通信时效性高,因此可将轻量级密码库作为终端安全支撑设施,采用对称密码技术实现车内安全通信保障,或采用可认证加密同时完成数据加密和数据完整性保护。
4.3卫星安全通信
卫星通信是一种经常应用于远程通信、数据传输和全球联网的技术。在卫星通信中,轻量级密码算法具有重要的应用价值。
如图7所示,卫星通信网络分为星间链路和星地链路。星地链路是指从地球上的终端用户到卫星,然后返回到地球上的地面站点的通信链接。这种链路通常分为上行链路(用户到卫星)和下行链路(卫星到用户)。星地链路主要采用的通信协议是5G等标准协议,由标准制定单位进行设计。而星间链路通信可以采用定制化协议。
图7卫星安全通信轻量级密码应用案例
卫星通信中传输的数据往往是敏感的,因此数据的安全性尤为重要。然而,卫星通信终端的计算和存储资源通常是有限的,并且卫星设备常常依赖有限的能源供应,如太阳能电池等。因此,在选择加密算法时,低功耗是一个重要的考量指标。
轻量级密码算法正好符合上述特点和需求,它们适用于资源受限的环境。将带有认证加密功能的轻量级算法应用于星间链路的定制化通信协议中,可以很好地解决上述问题。这样做既满足卫星之间通信的数据安全和隐私需求,又能尽量减少资源消耗。
5问题与展望
轻量级密码算法发展至今,在其不断发展的进程中仍然存在一些问题和难点,但这些问题也为其未来的发展指明了方向。
(1)安全性分析:轻量级密码算法的安全性需要进行深入的分析和评估。与传统密码算法相比,轻量级密码算法采用了新的设计方法,因此需要使用新的分析手段和技术来评估算法的安全性。
(4)应用场景需求:随着自动驾驶、卫星通信等技术的兴起,对于部件、功耗、面积的标准有着更为严苛的要求,这迫使轻量级密码进一步完善与发展。
(5)量子安全和后量子密码算法:随着量子计算机的发展,传统密码算法的安全性可能受到威胁。因此,量子安全的MAC算法和后量子轻量级公钥密码算法是未来的研究方向。
6结?语
本文通过对比分析多种轻量级密码算法的设计理论,比较它们在硬件与软件性能上的差异,给出了总体评价和应用建议。探讨了轻量级密码学在物联网、自动驾驶和卫星安全通信等前沿应用场景中的关键作用和发展现状。最后提出了轻量级密码算法目前存在的问题和对未来的展望。
综合上述分析可以看出,轻量级密码算法作为保护资源受限环境中的数据安全的强有力工具,未来将持续扮演至关重要的角色。随着技术的不断演进,轻量级密码算法需要不断优化,以满足日益增长的安全需求,为数字世界提供坚实的安全基石。