符号 | 说明 |
Simeck2n(4n) | 分组为2n,密钥为4n的Simeck算法 |
Li | 第i轮左半部分输入nbit |
Li(j) | Li第j bit |
Ri | 第i轮右半部分输入nbit |
Ri(j) | Ri第j bit |
K | 主密钥K=(K3,K2,K1,K0) |
rki | 第i轮nbit的轮子密钥 |
⊕ | 异或运算 |
&,⊙ | 与运算 |
<<<r, >>>r | 循环左移、右移rbit |
Citation: | XIA Zhuoqun, SU Chao, XU Zisang, LONG Kejun. A Lightweight and Provably Secure Authentication Protocol for Internet of Vehicles Using Physical Unclonable Function[J]. Journal of Electronics & Information Technology, 2024, 46(9): 3788-3796. doi: 10.11999/JEIT240141 |
万物联网的需求使得无线传感器、智能卡和RFID标签等受限设备的应用越来越广泛。针对资源受限环境下数据安全和隐私保护问题,兼顾安全和效率的轻量级密码算法的设计和分析成为研究热点。2013年6月,美国国家安全局提出了分别适用于软件和硬件环境的轻量级分组密码算法SIMON和SPECK[1]。这两种算法一经提出,就受到广泛关注。随后,在CHES 2015上,Yang等人[2]提出了一种新的轻量级分组密码Simeck算法。Simeck结合了SIMON和SPECK设计上的优点,在软件及硬件方面都有出色的表现。
针对Simeck算法安全性的分析,最初由设计者给出了Simeck算法差分分析和不可能差分分析的结果[2]。随后,Bagheri[3]对Simeck算法抗线性攻击的能力进行了评估。2016年,文献[4]针对Simeck48和Simeck64,给出了成功概率为1的差分分析的更好结果。随后,Blondeau等人[5]给出了更长轮数带概率的差分分析结果。2018年,Zhang等人[6]给出了Simeck算法零相关线性攻击的结果。对Simeck算法的积分攻击首先由文献[7]提出,Zhang等人[7]构造了Simeck算法的积分区分器,分别给出了21/21/24轮Simeck32/48/64算法的积分攻击。
积分攻击是一种有效的选择明文攻击。1997年,Daemen等人[8]提出一种新的分析方法攻击SQUARE算法。2001年,Lucks[9]提出Saturation攻击,同年,Biryukov等人[10]提出了Multiset攻击。随后,Knudsen等人[11]在FSE 2002上提出了积分攻击的思想。积分攻击的原理是加密特定形式的选择明文,再对所得密文求和,通过积分值的不随机性将密码算法与随机置换区分开。积分攻击成功的关键是建立有效的积分区分器,近年来,提出了很多新的自动化算法搜索积分区分器,大大加快了积分区分器的搜索效率,提高了积分攻击的成功率。
本文对Simeck48和Simeck64在积分攻击下的安全性进行研究。首先,在文献[7]给出的Simeck48算法13轮积分区分器的基础上,标记区分器内部比特的状态,利用文献[12]提出的由内向外的扩展方法,向前解密2轮得到Simeck48算法15轮的高阶积分区分器,再根据Simeck算法Feistel的结构特点,在顶部加1轮得到16轮的积分区分器。然后利用该区分器,给出了24轮Simeck48算法的积分攻击。密钥恢复过程中利用等价子密钥技术和密钥扩展算法的性质减少了密钥猜测量,攻击过程结合中间相遇思想和部分和技术,降低了整个攻击算法的计算复杂度。攻击24轮Simeck48算法的时间复杂度为295,数据复杂度为246,存储复杂度为282.52。同样地,对于Simeck64算法,构造了20轮高阶积分区分器,部分解密9轮,猜测得到2104个105 bit等价子密钥,在此基础上穷举23 bit等价子密钥,实现密钥的恢复。攻击29轮Simeck64数据复杂度为263,时间复杂度为2127.3,存储复杂度为2109.02。
本文的结构安排如下:第2节简要介绍Simeck算法,给出密钥扩展算法的性质和安全性分析的结果;第3节给出Simeck48算法积分攻击的具体过程和复杂度计算;第4节给出Simeck64算法积分攻击的新结果;第5节总结全文。
文中用到的符号说明如表1所示。
符号 | 说明 |
Simeck2n(4n) | 分组为2n,密钥为4n的Simeck算法 |
Li | 第i轮左半部分输入nbit |
Li(j) | Li第j bit |
Ri | 第i轮右半部分输入nbit |
Ri(j) | Ri第j bit |
K | 主密钥K=(K3,K2,K1,K0) |
rki | 第i轮nbit的轮子密钥 |
⊕ | 异或运算 |
&,⊙ | 与运算 |
<<<r, >>>r | 循环左移、右移rbit |
Simeck算法是文献[2]提出的轻量级分组密码,设计思想结合了SIMON和SPECK算法的优点。为了满足不同的应用需求,Simeck算法按照分组长度和密钥长度的不同分为3个版本Simeck2n(4n), n=16, 24, 32,每个版本的Simeck参数如表2所示。
算法 | 分组长度 | 密钥长度 | 字长 | 轮数 |
Simeck | 32 | 64 | 16 | 32 |
48 | 96 | 24 | 36 | |
64 | 128 | 32 | 44 |
Simeck算法采用Feistel结构,其轮函数与SIMON算法类似,只有与运算,异或和循环移位操作,唯一的区别是循环移位常数不同。轮函数的迭代过程如图1所示,可以表示如式(1)
Ri+1=LiLi+1=f(Li)⊕Ri⊕rki} |
(1) |
其中,
Simeck2n(4n)的密钥扩展算法借鉴SPECK算法,密钥迭代算法使用线性反馈移位寄存器(LFSR)来产生轮子密钥,初始主密钥K包含4个nbit字
rki+1=tici=c⊕(zj)iti+3=rki⊕f(ti)⊕ci} |
(2) |
其中,
对于Simeck2n(4n),通过研究Simeck密钥扩展算法的规律不难发现,开始4轮的密钥
性质1 对于Simeck2n(4n)算法,当
证明 当
rki+1=rki−3⊕f(rki−2)⊕ci−3 |
(3) |
即对于任意的
rki=rki+4⊕f(rki+1)⊕ci |
(4) |
证毕
更进一步,如果需要求解
性质2 对于Simeck2n(4n)算法,当
根据Simeck密钥扩展算法的性质,可以利用轮数较高的轮子密钥来求解轮数较低的轮子密钥,进而减少攻击过程中密钥的猜测量。
Simeck48和Simeck64算法的安全性分析主要集中在差分和线性攻击,不可能差分和零相关攻击,积分攻击等。表3,表4分别列出了对Simeck48, Simeck64主要攻击结果。
算法 | 攻击方法 | 攻击轮数 | 数据复杂度 | 存储复杂度 | 时间复杂度 | 成功概率 | 参考文献 |
Simeck48(96) | 差分攻击 | 20 | O(246) | – | 275 | 1 | 文献[2] |
Simeck48(96) | 差分攻击 | 26 | O(247) | – | 262 | 1 | 文献[4] |
Simeck48(96) | 差分攻击 | 28 | O(246) | – | 268.3 | 0.468 | 文献[5] |
Simeck48(96) | 线性攻击 | 19 | O(245) | – | 294 | 1 | 文献[3] |
Simeck48(96) | 不可能差分 | 24 | O(248) | O(274) | 294.7 | 1 | 文献[2] |
Simeck48(96) | 零相关攻击 | 24 | O(248) | O(265.06) | 291.6 | 1 | 文献[6] |
Simeck48(96) | 积分攻击 | 21 | O(234) | O(266) | 295 | 1 | 文献[7] |
Simeck48(96) | 积分攻击 | 24 | O(246) | O(282.52) | 295 | 1 | 本文 |
算法 | 攻击方法 | 攻击轮数 | 数据复杂度 | 存储复杂度 | 时间复杂度 | 成功概率 | 参考文献 |
Simeck64(128) | 差分攻击 | 26 | O(263) | – | 2121 | 1 | 文献[2] |
Simeck64(128) | 差分攻击 | 33 | O(263) | O(263) | 296 | 1 | 文献[4] |
Simeck64(128) | 差分攻击 | 35 | O(263) | – | 2116.3 | 0.555 | 文献[5] |
Simeck64(128) | 线性攻击 | 27 | O(261) | – | 2120.5 | 0.477 | 文献[3] |
Simeck64(128) | 不可能差分 | 25 | O(264) | O(279) | 2126.6 | 1 | 文献[2] |
Simeck64(128) | 零相关攻击 | 28 | O(264) | O(297.67) | 2123.06 | 1 | 文献[6] |
Simeck64(128) | 积分攻击 | 24 | O(235) | O(290.46) | 2127 | 1 | 文献[7] |
Simeck64(128) | 积分攻击 | 29 | O(263) | O(2109.02) | 2127.3 | 1 | 本文 |
对于Simeck48算法,文献[7]构造了13轮的积分区分器。具体形式为
(ACCC,ACCC,AACC,AAAC,A,A,ACCA,ACCA,AACA,A,A,A)→(U,U,U,U,U,U,∗B∗∗,U,U,U,U,U) |
其中,
在该积分区分器的基础上,用“1”标记比特活跃,用“0”标记常数比特,得到向量(1000, 1000, 1100, 1110, 1111, 1111, 1001, 1001, 1101, 1111, 1111, 1111)刻画算法的积分状态,利用文献[12]提出高阶积分的扩展方法,向前解密2轮得到15轮的高阶积分区分器,区分器的输入形式为:
进一步,基于Feistel结构,令
(1) 等价子密钥技术
等价子密钥技术是由Isobe等人[13]在ASIACRYPT 2013首次提出,结合Simeck算法轮函数的具体运算,把第
图2(a)为Simeck算法本来的结构,为了等效移动
(2) 中间相遇策略
根据积分攻击的原理,对猜测的子密钥,如果
⊕R16(22)=⊕((L16(22)⊙L16(17))⊕L16(21)⊕L17(22)) |
(5) |
进一步
⊕R16(22)=⊕((L16(22)⊙L16(17))⊕L17(22)⊕R17(21)) |
(6) |
因此,
⊕((L16(22)⊙L16(17))⊕L17(22)=⊕R17(21) |
(7) |
这个过程如图3所示。
采用中间相遇策略,独立计算
(3) 部分和技术
部分和技术是Ferguson等人[14]在FSE 2000提出的,用以改进对Rijndael算法的攻击结果,随后,部分和技术广泛应用于分组密码的积分攻击[15,16]。下面具体给出利用部分和技术恢复Simeck48密钥的过程。
攻击最终的目标是恢复Simeck48的96-bit密钥,需要独立计算
(1) 计算表
计算
(a) 对于224个猜测密钥
(b) 对于222个猜测密钥
(c) 对于210个猜测密钥
(d) 对于27个猜测密钥
(e) 对于27个猜测密钥
(f) 对于25个猜测密钥
(g) 对于27个密钥
(h) 对于23个密钥
(i) 对于密钥
(2) 计算表
计算
(a) 对于222个猜测密钥
(b) 对于219个猜测密钥
(c) 对于215个
(d) 对于29个猜测密钥
(e) 对于25个密钥
(f) 对于密钥
因为只考虑1个平衡比特,所以总的密钥候选空间从
24轮Simeck48算法的积分攻击的过程可以概括如下:
步骤 1 构造一个包含246个明文的集合,该集合中的明文满足以下性质:加密1轮后的输出形式为
步骤 2 猜测子密钥
步骤 3 猜测
步骤 4 对每个候选的子密钥,猜测
24轮Simeck48积分攻击的数据复杂度为246个选择明文。
构造
存储的内容包括
文献[7]中给出Simeck64算法15轮积分区分器,区分器的输入形式为:
利用该区分器,攻击29轮的Simeck64算法。攻击过程与3.3节类似。在部分解密9轮Simeck64算法恢复密钥的计算过程中,使用部分和技术和密钥扩展算法的性质来降低时间复杂度。猜测得到2104个105 bit等价子密钥,在此基础上穷举23 bit等价子密钥,从而实现全密钥的恢复。29轮Simeck64积分攻击的数据复杂度为263,时间复杂度为2127.3次,存储复杂度为2109.02。
本文给出了轻量级分组密码算法Simeck积分攻击的新结果。在已有积分区分器的基础上,通过向前做高阶积分扩展,分别得到16轮Simeck48和20轮Simeck64算法的积分区分器。利用等价子密钥技术、中间相遇策略,结合部分和技术和密钥扩展算法的性质,实现了24轮Simeck48和29轮Simeck64的积分攻击。与已有积分攻击的结果相比,本文明显提高了Simeck48和Simeck64算法积分攻击的轮数,分别提高了3轮和5轮。下一步如何利用减少复杂度的技术推广积分攻击算法的应用范围,将是值得研究的工作。
[1] |
XIE Qi and HUANG Juanjuan. Improvement of a conditional privacy-preserving and desynchronization-resistant authentication protocol for IoV[J]. Applied Sciences, 2024, 14(6): 2451. doi: 10.3390/app14062451.
|
[2] |
JAVAID U, AMAN M N, and SIKDAR B. A scalable protocol for driving trust management in internet of vehicles with blockchain[J]. IEEE Internet of Things Journal, 2020, 7(12): 11815–11829. doi: 10.1109/JIOT.2020.3002711.
|
[3] |
ELHALAWANY B M, EL-BANNA A A A, and WU Kaishun. Physical-layer security and privacy for vehicle-to-everything[J]. IEEE Communications Magazine, 2019, 57(10): 84–90. doi: 10.1109/MCOM.001.1900141.
|
[4] |
KUMAR V, AHMAD M, MISHRA D, et al. RSEAP: RFID based secure and efficient authentication protocol for vehicular cloud computing[J]. Vehicular Communications, 2020, 22: 100213. doi: 10.1016/j.vehcom.2019.100213.
|
[5] |
XIONG Jinbo, MA Rong, CHEN Lei, et al. A personalized privacy protection framework for mobile crowdsensing in IIoT[J]. IEEE Transactions on Industrial Informatics, 2020, 16(6): 4231–4241. doi: 10.1109/tii.2019.2948068.
|
[6] |
AMAN M N, JAVAID U, and SIKDAR B. A privacy-preserving and scalable authentication protocol for the internet of vehicles[J]. IEEE Internet of Things Journal, 2021, 8(2): 1123–1139. doi: 10.1109/jiot.2020.3010893.
|
[7] |
XIE Qi, DING Zixuan, and ZHENG Panpan. Provably secure and anonymous V2I and V2V authentication protocol for VANETs[J]. IEEE Transactions on Intelligent Transportation Systems, 2023, 24(7): 7318–7327. doi: 10.1109/TITS.2023.3253710.
|
[8] |
UMAR M, ISLAM S K H, MAHMOOD K, et al. Provable secure identity-based anonymous and privacy-preserving inter-vehicular authentication protocol for VANETS using PUF[J]. IEEE Transactions on Vehicular Technology, 2021, 70(11): 12158–12167. doi: 10.1109/TVT.2021.3118892.
|
[9] |
WU Anmulin, GUO Yajun, and GUO Yimin. A decentralized lightweight blockchain-based authentication mechanism for Internet of Vehicles[J]. Peer-to-Peer Networking and Applications, 2023, 16(3): 1340–1353. doi: 10.1007/s12083-022-01442-0.
|
[10] |
LI Jie, LIN Yuanyuan, LI Yibing, et al. BPA: A novel blockchain-based privacy-preserving authentication scheme for the internet of vehicles[J]. Electronics, 2024, 13(10): 1901. doi: 10.3390/electronics13101901.
|
[11] |
XI Ning, LI Weihui, JING Lv, et al. ZAMA: A ZKP-based anonymous mutual authentication scheme for the IoV[J]. IEEE Internet of Things Journal, 2022, 9(22): 22903–22913. doi: 10.1109/JIOT.2022.3186921.
|
[12] |
LIU Jingwei, PENG Chuntian, SUN Rong, et al. CPAHP: Conditional privacy-preserving authentication scheme with hierarchical pseudonym for 5G-enabled IoV[J]. IEEE Transactions on Vehicular Technology, 2023, 72(7): 8929–8940. doi: 10.1109/TVT.2023.3246466.
|
[13] |
WEI Fushan, ZEADALLY S, VIJAYAKUMAR P, et al. An intelligent terminal based privacy-preserving multi-modal implicit authentication protocol for internet of connected vehicles[J]. IEEE Transactions on Intelligent Transportation Systems, 2021, 22(7): 3939–3951. doi: 10.1109/TITS.2020.2998775.
|
[14] |
LIANG Yangfan, LUO Entao, and LIU Yining. Physically secure and conditional-privacy authenticated key agreement for VANETs[J]. IEEE Transactions on Vehicular Technology, 2023, 72(6): 7914–7925. doi: 10.1109/TVT.2023.3241882.
|
[15] |
WANG Denghui, YI Yuping, YAN Shan, et al. A node trust evaluation method of vehicle-road-cloud collaborative system based on federated learning[J]. Ad Hoc Networks, 2023, 138: 103013. doi: 10.1016/j.adhoc.2022.103013.
|
[16] |
WAZID M, BAGGA P, DAS A K, et al. AKM-IoV: Authenticated key management protocol in fog computing-based Internet of vehicles deployment[J]. IEEE Internet of Things Journal, 2019, 6(5): 8804–8817. doi: 10.1109/JIOT.2019.2923611.
|
[17] |
GOPE P, DAS A K, KUMAR N, et al. Lightweight and physically secure anonymous mutual authentication protocol for real-time data access in industrial wireless sensor networks[J]. IEEE Transactions on Industrial Informatics, 2019, 15(9): 4957–4968. doi: 10.1109/TII.2019.2895030.
|
[18] |
BELLARE M and ROGAWAY P. Random oracles are practical: A paradigm for designing efficient protocols[C]. Proceedings of the 1st ACM Conference on Computer and Communications Security, Fairfax, USA, 1993: 62–73. doi: 10.1145/168588.168596.
|
[19] |
NURKIFLI E H and HWANG T. Provably secure authentication for the internet of vehicles[J]. Journal of King Saud University-Computer and Information Sciences, 2023, 35(8): 101721. doi: 10.1016/j.jksuci.2023.101721.
|
[20] |
YADAV K A and VIJAYAKUMAR P. LPPSA: An efficient Lightweight Privacy-Preserving Signature-based Authentication protocol for a vehicular ad hoc network[J]. Annals of Telecommunications, 2022, 77(7/8): 473–489. doi: 10.1007/s12243-021-00897-1.
|
1. | 杜小妮,段娥娥,王天心. 基于混沌的双模块Feistel结构高安全性高速分组密码算法安全性分析. 电子与信息学报. 2021(05): 1365-1371 . ![]() |
符号 | 说明 |
Simeck2n(4n) | 分组为2n,密钥为4n的Simeck算法 |
Li | 第i轮左半部分输入nbit |
Li(j) | Li第j bit |
Ri | 第i轮右半部分输入nbit |
Ri(j) | Ri第j bit |
K | 主密钥K=(K3,K2,K1,K0) |
rki | 第i轮nbit的轮子密钥 |
⊕ | 异或运算 |
&,⊙ | 与运算 |
<<<r, >>>r | 循环左移、右移rbit |
算法 | 分组长度 | 密钥长度 | 字长 | 轮数 |
Simeck | 32 | 64 | 16 | 32 |
48 | 96 | 24 | 36 | |
64 | 128 | 32 | 44 |
算法 | 攻击方法 | 攻击轮数 | 数据复杂度 | 存储复杂度 | 时间复杂度 | 成功概率 | 参考文献 |
Simeck48(96) | 差分攻击 | 20 | O(246) | – | 275 | 1 | 文献[2] |
Simeck48(96) | 差分攻击 | 26 | O(247) | – | 262 | 1 | 文献[4] |
Simeck48(96) | 差分攻击 | 28 | O(246) | – | 268.3 | 0.468 | 文献[5] |
Simeck48(96) | 线性攻击 | 19 | O(245) | – | 294 | 1 | 文献[3] |
Simeck48(96) | 不可能差分 | 24 | O(248) | O(274) | 294.7 | 1 | 文献[2] |
Simeck48(96) | 零相关攻击 | 24 | O(248) | O(265.06) | 291.6 | 1 | 文献[6] |
Simeck48(96) | 积分攻击 | 21 | O(234) | O(266) | 295 | 1 | 文献[7] |
Simeck48(96) | 积分攻击 | 24 | O(246) | O(282.52) | 295 | 1 | 本文 |
算法 | 攻击方法 | 攻击轮数 | 数据复杂度 | 存储复杂度 | 时间复杂度 | 成功概率 | 参考文献 |
Simeck64(128) | 差分攻击 | 26 | O(263) | – | 2121 | 1 | 文献[2] |
Simeck64(128) | 差分攻击 | 33 | O(263) | O(263) | 296 | 1 | 文献[4] |
Simeck64(128) | 差分攻击 | 35 | O(263) | – | 2116.3 | 0.555 | 文献[5] |
Simeck64(128) | 线性攻击 | 27 | O(261) | – | 2120.5 | 0.477 | 文献[3] |
Simeck64(128) | 不可能差分 | 25 | O(264) | O(279) | 2126.6 | 1 | 文献[2] |
Simeck64(128) | 零相关攻击 | 28 | O(264) | O(297.67) | 2123.06 | 1 | 文献[6] |
Simeck64(128) | 积分攻击 | 24 | O(235) | O(290.46) | 2127 | 1 | 文献[7] |
Simeck64(128) | 积分攻击 | 29 | O(263) | O(2109.02) | 2127.3 | 1 | 本文 |
符号 | 说明 |
Simeck2n(4n) | 分组为2n,密钥为4n的Simeck算法 |
Li | 第i轮左半部分输入nbit |
Li(j) | Li第j bit |
Ri | 第i轮右半部分输入nbit |
Ri(j) | Ri第j bit |
K | 主密钥K=(K3,K2,K1,K0) |
rki | 第i轮nbit的轮子密钥 |
⊕ | 异或运算 |
&,⊙ | 与运算 |
<<<r, >>>r | 循环左移、右移rbit |
算法 | 分组长度 | 密钥长度 | 字长 | 轮数 |
Simeck | 32 | 64 | 16 | 32 |
48 | 96 | 24 | 36 | |
64 | 128 | 32 | 44 |
算法 | 攻击方法 | 攻击轮数 | 数据复杂度 | 存储复杂度 | 时间复杂度 | 成功概率 | 参考文献 |
Simeck48(96) | 差分攻击 | 20 | O(246) | – | 275 | 1 | 文献[2] |
Simeck48(96) | 差分攻击 | 26 | O(247) | – | 262 | 1 | 文献[4] |
Simeck48(96) | 差分攻击 | 28 | O(246) | – | 268.3 | 0.468 | 文献[5] |
Simeck48(96) | 线性攻击 | 19 | O(245) | – | 294 | 1 | 文献[3] |
Simeck48(96) | 不可能差分 | 24 | O(248) | O(274) | 294.7 | 1 | 文献[2] |
Simeck48(96) | 零相关攻击 | 24 | O(248) | O(265.06) | 291.6 | 1 | 文献[6] |
Simeck48(96) | 积分攻击 | 21 | O(234) | O(266) | 295 | 1 | 文献[7] |
Simeck48(96) | 积分攻击 | 24 | O(246) | O(282.52) | 295 | 1 | 本文 |
算法 | 攻击方法 | 攻击轮数 | 数据复杂度 | 存储复杂度 | 时间复杂度 | 成功概率 | 参考文献 |
Simeck64(128) | 差分攻击 | 26 | O(263) | – | 2121 | 1 | 文献[2] |
Simeck64(128) | 差分攻击 | 33 | O(263) | O(263) | 296 | 1 | 文献[4] |
Simeck64(128) | 差分攻击 | 35 | O(263) | – | 2116.3 | 0.555 | 文献[5] |
Simeck64(128) | 线性攻击 | 27 | O(261) | – | 2120.5 | 0.477 | 文献[3] |
Simeck64(128) | 不可能差分 | 25 | O(264) | O(279) | 2126.6 | 1 | 文献[2] |
Simeck64(128) | 零相关攻击 | 28 | O(264) | O(297.67) | 2123.06 | 1 | 文献[6] |
Simeck64(128) | 积分攻击 | 24 | O(235) | O(290.46) | 2127 | 1 | 文献[7] |
Simeck64(128) | 积分攻击 | 29 | O(263) | O(2109.02) | 2127.3 | 1 | 本文 |