轻量级密码:为物联网安全“减负”

释放双眼,带上耳机,听听看~!

近年来,物联网技术及其在各行业的应用取得了持续发展。在物联网应用场景中,为了安全地实现众多物联网设备间的信息交互,通常需要以密码算法为基础提供安全的数据传输、设备认证等服务。由于物联网设备大多为传感器、微控制器等计算和存储能力较弱的轻量设备,轻量级密码算法成为了物联网环境下同时满足安全性和性能要求的可选方案之一。

一、什么是轻量级密码

目前,以AES、DES/3DES等对称密码算法、RSA、ECC等公钥密码算法、SHA系列哈希算法以及SM系列国密算法为代表的各类密码算法已广泛应用于不同行业的信息系统中,用于实现数据机密性、完整性、可用性的安全保护。但是,上述通用密码算法主要考虑主机级应用环境,在设计时优先满足的是安全性要求,未专门针对受限环境进行性能优化,因此,通用密码算法普遍存在着运算效率相对较低等性能局限性。

作为一类兼顾安全性和性能的密码算法,轻量级密码算法能够更好地适用于受限环境,其中受限因素主要包括芯片性能、能耗、存储空间、通信带宽、运行时间等软硬件条件,具体的受限应用场景包括射频识别(RFID)标签、非接触式智能卡应用、健康监测体域网、传感器网络、分布式控制系统等等。

与传统的通用密码算法相比,轻量级密码算法一般具有吞吐量较低、安全级别适中、性能较高等特点。

吞吐量较低:在受限应用环境中,数据处理的规模通常较小,因此对轻量级密码算法的吞吐量要求较低。

安全级别适中:轻量级密码算法的安全强度要求一般为80比特以上,适合对长期安全性要求不高的应用场景(如RFID)。

性能较高:轻量级密码算法大多适合采用硬件实现,其目标是在保证一定安全性的前提下尽可能减少存储空间并提高运行效率。

分组密码、公钥密码、哈希函数是众多类型的密码算法中最为常用的3类,但由于公钥密码一般基于数学困难问题而非复杂运算结构,因而在算法层面本身的轻量化空间较小。因此,下面对轻量级分组密码和哈希函数进行分别概述。

(一)轻量级分组密码

轻量级分组密码算法与传统分组密码算法相比具有以下特性。

分组长度更小:一些轻量级分组密码算法采用64比特或80比特分组长度,小于AES的128位分组长度。

密钥长度更小:为了提高性能,一些轻量级分组密码算法采用小于96比特的密钥长度(例如80比特的PRESENT算法)。但是,目前一般要求分组密码算法的密钥长度至少为112比特(例如采用双56比特密钥的3DES算法)。

轮函数更简单:轻量级分组密码算法采用的轮函数通常比传统分组密码算法更为简单,例如采用4比特S盒而非8比特S盒。轮函数的简化可降低对芯片面积的要求,例如PRESENT算法使用的4比特S盒仅需要28个GE(等效门),而AES算法的S盒需要395个GE。

密钥编排更简单:轻量级分组密码算法大多采用更简单的密钥编排方法用以即时生成子密钥,可降低内存、延时、能耗的要求。

几种典型的通用分组密码算法与轻量级分组密码算法的对比如表1所示。

表1 通用分组密码与轻量级分组密码对比

类型典型算法分组长度(bit)密钥长度(bit)安全强度(bit)
通用分组密码AES128128128
192192
256256
3DES6456*280
SM4128128128
轻量级分组密码PRESENT648080
128128
CLEFIA128128128
192192
256256
LEA128128128
192192
256256

(二)轻量级哈希函数

轻量级哈希函数与传统哈希函数相比具有以下特性。

内部状态和输出长度更小:在对哈希函数的抗碰撞要求较高的情况下,足够大的输出长度十分重要;而在对抗碰撞要求不高的情况下,可以采用更小的内部状态和输出长度。因此,对于轻量级应用环境,可通过减小内部状态长度提高哈希函数性能。

消息长度更小:传统的哈希函数可支持较大的输入长度(约264比特),而在轻量级哈希函数的主要应用场景中,输入长度通常较小(约256比特)。因此可对哈希函数进行优化,通过缩短支持的消息长度以降低其他开销,进而适用于轻量级应用场景。

几种典型的通用哈希函数与轻量级哈希函数的对比如表2所示。

表2 通用哈希函数与轻量级哈希函数对比

类型典型算法摘要长度(bit)内部状态长度(bit)安全强度(bit)
通用哈希函数SHA-116016064
SHA-2224256112
256128
384512192
512256
SHA-32241600112
256128
384192
512256
MD512812840
SM3256256128
轻量级哈希函数PHOTON8010040
12814464
16019680
224256112
256288128
SPONGENT808840
12813664
16017680
224240112
256272128
Lesamnta-LW256256128

二、轻量级密码的标准化

目前,针对轻量级密码算法的标准化工作主要包括ISO/IEC 29192轻量级密码算法国际标准以及美国国家标准与技术研究院(NIST)轻量级密码算法标准化项目。

(一)ISO轻量级密码算法国际标准(ISO/IEC 29192)

ISO于2012至2019年期间发布了一系列轻量级密码算法国际标准,系列标准具体包括分组密码、流密码、非对称密码、哈希函数、消息认证码、广播认证协议、认证加密等,详情如表3所示。

表3 ISO轻量级密码算法国际标准

算法类型标准号示例算法
分组密码ISO/IEC 29192-2:2019(1)64位分组:PRESENT(2)128位分组:CLEFIA、LEA
流密码ISO/IEC 29192-3:2012Enocoro-128v2、Enocoro-80、Trivium密钥流生成器
非对称密码ISO/IEC 29192-4:2013cryptoGPS、ALIKE等
哈希函数ISO/IEC 29192-5:2016(1)硬件实现优化:PHOTON、SPONGENT(2)软件实现优化:Lesamnta-LW
消息认证码ISO/IEC 29192-6:2019(1)基于分组密码:LightMAC(2)基于哈希函数:Tsudik密钥模式(3)专用MAC:Chaskey-12
广播认证协议ISO/IEC 29192-7:2019TESLA-RD
认证加密ISO/IEC 29192-8制定中

在ISO/IEC 29192标准中,轻量级密码算法的受限因素包括芯片面积(Chip area)、能耗(Energy consumption)、程序代码和内存大小(Program code size and RAM size)、通信带宽(Communication bandwidth)、运行时间(Execution time)共5类,安全强度要求至少为80比特(与3DES相当)。

(二)NIST轻量级密码算法标准化项目

NIST于2015年启动了轻量级密码算法标准化项目,并于2017年3月发布了《轻量级密码报告》(NISTIR 8114)。根据该报告,传统的通用密码算法适用于服务器、个人电脑、平板电脑,智能手机等设备,而轻量级密码算法适用于嵌入式系统、RFID、传感器网络等环境。

2018年8月,NIST开始进行轻量级密码算法征集,接受面向软件或硬件受限环境的轻量级认证加密(AEAD)和哈希算法的投稿,并收到了57个算法。NIST分别于2019年4月和2019年8月公布了前两轮候选算法筛选结果,并于2021年3月宣布进入最终轮的10个算法为ASCON、Elephant、GIFT-COFB、Grain128-AEAD、ISAP、Photon-Beetle、Romulus、Sparkle、TinyJambu、Xoodyak,具体进展如表4所示。

表4 NIST轻量级密码候选算法

时间轮数候选算法
2019年4月18日第一轮(56个)ACE、ASCON、Bleep64、CiliPadi、CLAE、CLX、COMET、DryGASON、Elephant、ESTATE、FlexAEAD、ForkAE、FountainGAGE and InGAGE、GIFT-COFB、Gimli、Grain-128AEAD、HERN & HERON、HYENA、ISAP、KNOT、LAEM、Lilliput-AE、Limdolen、LOTUS-AEAD and LOCUS-AEAD、mixFeed、ORANGE、Oribatida、PHOTON-Beetle、Pyjamask、Qameleon、Quartet、REMUS、Romulus、SAEAES、Saturnin、Shamash & Shamashash、SIMPLE、SIV-Rijndael256、SIV-TEM-PHOTON、SKINNY-AEAD/SKINNY-HASH、SNEIK、SPARKLE (SCHWAEMM and ESCH)、SPIX、SpoC、Spook、Subterranean 2.0、SUNDAE-GIFT、Sycon、Thank Goodness It’s Friday (TGIF)、TinyJambu、Triad、TRIFLE、WAGE、Xoodyak、Yarará and Coral
2019年8月30日第二轮(32个)ACE、ASCON、COMET、DryGASON、Elephant、ESTATE、ForkAE、GIFT-COFB、Gimli、Grain-128AEAD、HyENA、ISAP、KNOT、LOTUS-AEAD and LOCUS-AEAD、mixFeed、ORANGE、Oribatida、PHOTON-Beetle、Pyjamask、Romulus、SAEAES、Saturnin、SKINNY-AEAD/SKINNY-HASH、SPARKLE (SCHWAEMM and ESCH)、SPIX、SpoC、Spook、Subterranean 2.0、SUNDAE-GIFT、TinyJambu、WAGE、Xoodyak
2021年3月29日最终轮(10个)ASCON:认证加密、哈希Elephant:认证加密GIFT-COFB:认证加密Grain128-AEAD:认证加密(流密码)ISAP:认证加密Photon-Beetle:认证加密、哈希Romulus:认证加密、哈希Sparkle:认证加密、哈希TinyJambu:认证加密Xoodyak:哈希、加密、消息认证码计算、认证加密

下一步,NIST将对最终轮算法进行为期约12个月的标准化工作,最终形成NIST轻量级密码算法标准。

三、总结

轻量级密码算法用于在计算、存储、能耗等条件受限的环境中替代性能较差的通用密码算法。现如今,随着物联网技术的发展和相关应用的推广,大量的轻量化物联网设备存在安全交互的需求,轻量级密码算法产生了更加广阔的应用场景。

给TA买糖
共{{data.count}}人
人已赞赏
数据安全

CIPM注册信息隐私管理师认证考试经验分享

2020-9-30 11:23:26

数据安全

《数据安全法》实施在即,企业如何应对分类分级保护制度?

2021-7-12 12:02:13

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索