New Coding Scheduling Strategy Based on Virtual Queuein Wireless Multicast Network
-
摘要:
网络编码由于其传输效率高的特性,近年来在无线多播网络中得到广泛的应用。针对无线多播网络中丢包自动重传效率低的问题,该文提出一种新的基于虚拟队列中数据包到达时间的编码调度策略(CSAT)。在CSAT策略中,为了提高编码效率,采用虚拟队列来存放初始以及未被所有接收者接收到的数据包。考虑到队列的稳定性,CSAT策略按照一定的比率从主次队列选择发送;在次队列发送数据包时,结合了编码和非编码两种方式,根据数据包到达队列的先后,选取能够使较多数据包参与编码的方式发送。仿真结果表明,该文所提的CSAT编码调度策略在有效提高了数据包传输效率的同时,提高了网络的吞吐量并降低了平均等待时延。
Abstract:Network coding is widely used in wireless multicast networks in recent years due to its high transmission efficiency. To address the low efficiency of automatic retransmission caused by packet loss in wireless multicast network, a new Coding Scheduling strategy based on Arriving Time (CSAT) in virtual queue is proposed. For improving encoding efficiency, virtual queues are used to store packets that are initially generated and not received by all receivers. Considering the stability of the queue, CSAT strategy chooses to send packet from the primary and secondary queue at a certain ratio. Both encoding and non-encoding methods are combined to send in the secondary queue. According to the arrival sequence of packets in the queue, the sending method that makes more packets participate in encoding is selected. Simulation results show that the proposed CSAT not only effectively improves packet transmission efficiency, but also improves network throughput and reduces average wait delay.
-
Key words:
- Network coding /
- Virtual queue /
- Wireless multicast network /
- Automatic retransmission /
- Throughput
-
1. 引言
万物联网的需求使得无线传感器、智能卡和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节总结全文。
2. Simeck算法
文中用到的符号说明如表1所示。
表 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 2.1 Simeck算法的轮函数
Simeck算法是文献[2]提出的轻量级分组密码,设计思想结合了SIMON和SPECK算法的优点。为了满足不同的应用需求,Simeck算法按照分组长度和密钥长度的不同分为3个版本Simeck2n(4n), n=16, 24, 32,每个版本的Simeck参数如表2所示。
表 2 Simeck算法的参数算法 分组长度 密钥长度 字长 轮数 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) 其中,
f(x)=(x⊙(x<<<5))⊕(x<<<1) 。2.2 Simeck算法的密钥扩展算法
Simeck2n(4n)的密钥扩展算法借鉴SPECK算法,密钥迭代算法使用线性反馈移位寄存器(LFSR)来产生轮子密钥,初始主密钥K包含4个nbit字
(K3, K2,K1,K0) ,作为LFSR的初始状态(t2,t1,t0,rk0) 。为了更新寄存器状态以生成轮子密钥,复用轮函数并使用轮常数ci 作为轮密钥。对于0≤i<T−1 ,状态更新过程如式(2)rki+1=tici=c⊕(zj)iti+3=rki⊕f(ti)⊕ci} (2) 其中,
c=2n−4 ,(zj)i 是序列zj 的第i bit。Simeck32(64)和Simeck48(96)使用同一个m-序列z0 , Simeck64(128)则使用另外一个m-序列z1 。对于Simeck2n(4n),通过研究Simeck密钥扩展算法的规律不难发现,开始4轮的密钥
rk0 ,rk1 ,rk2 ,rk3 分别等于K0 ,K1 ,K2 ,K3 , 且rki+4 只由rki ,rki+1 和ci 决定,与其它轮子密钥无关。基于上述发现,本文给出密钥扩展算法的性质。性质1 对于Simeck2n(4n)算法,当
0≤i≤ T−4 时,rki=rki+4⊕f(rki+1)⊕ci 。证明 当
i≥3 时,联立Simeck密钥扩展算法的式(2),可得rki+1=ti=rki−3⊕f(ti−3) ⊕ci−3 。此外,由式(2)可知,ti−3=rki−2 。因此,rki+1 可以由rki−3 ,rki−2 和ci−3 唯一表示rki+1=rki−3⊕f(rki−2)⊕ci−3 (3) 即对于任意的
0≤i≤T−4 ,都有rki+4=rki ⊕f(rki+1)⊕ci 。等式两边同时异或rki+4⊕rki ,成立rki=rki+4⊕f(rki+1)⊕ci (4) 证毕
更进一步,如果需要求解
rki 的某一特定比特,则有以下性质。性质2 对于Simeck2n(4n)算法,当
0≤i≤ T−4 ,0≤j<n 时,rki(j)=rki+4(j)⊕(rki+1(j) ⊙rki+1((j−5)modn))⊕rki+1((j−1)modn)⊕ci(j) 。根据Simeck密钥扩展算法的性质,可以利用轮数较高的轮子密钥来求解轮数较低的轮子密钥,进而减少攻击过程中密钥的猜测量。
2.3 Simeck算法的安全性分析
Simeck48和Simeck64算法的安全性分析主要集中在差分和线性攻击,不可能差分和零相关攻击,积分攻击等。表3,表4分别列出了对Simeck48, Simeck64主要攻击结果。
表 3 Simeck48的主要攻击结果算法 攻击方法 攻击轮数 数据复杂度 存储复杂度 时间复杂度 成功概率 参考文献 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 本文 表 4 Simeck64的主要攻击结果算法 攻击方法 攻击轮数 数据复杂度 存储复杂度 时间复杂度 成功概率 参考文献 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 本文 3. 24轮Simeck48算法的积分攻击
3.1 Simeck48算法的积分区分器
对于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) 其中,
A 表示4个活动比特,A 表示1个活动比特,C 表示1 bit的固定值,U表示4 bit的任意值,∗ 表示1 bit的任意值,B表示1个平衡比特。区分器的输入有34个活动比特,区分器输出状态中右半部分第22个比特CR(22) 是平衡的。在该积分区分器的基础上,用“1”标记比特活跃,用“0”标记常数比特,得到向量(1000, 1000, 1100, 1110, 1111, 1111, 1001, 1001, 1101, 1111, 1111, 1111)刻画算法的积分状态,利用文献[12]提出高阶积分的扩展方法,向前解密2轮得到15轮的高阶积分区分器,区分器的输入形式为:
(ACAA,ACAA,A,A,A,A,A,A,A,A,A,A) ,有46个活动比特,区分器输出状态中右半部分第22个比特CR(22) 仍是平衡的。进一步,基于Feistel结构,令
(L1,R1)= (ACAA,ACAA,A,A,A,A,A,A,A,A,A,A) ,可以向前扩展1轮得到16的高阶积分区分器。区分器的输入(L0,R0)=(R1,f(R1)⊕L1) ,区分器输出状态中右半部分第22个比特CR(22) 是平衡比特。利用该区分器向后加8轮,可以攻击24轮的Simeck48算法。攻击过程中利用等价子密钥技术和密钥扩展算法的性质减少密钥猜测量,结合中间相遇思想和部分和技术,降低攻击的复杂度。3.2 降低复杂度的技术
(1) 等价子密钥技术
等价子密钥技术是由Isobe等人[13]在ASIACRYPT 2013首次提出,结合Simeck算法轮函数的具体运算,把第
i 轮的子密钥rki 移动到第i−1 轮,其中i=17,18,···,24 ,可以得到等效子密钥K′i 。如图2所示,以rk23 为例。图2(a)为Simeck算法本来的结构,为了等效移动
rk23 而不改变算法结构,rk23 需要异或到相应位置,如图2(b)所示。此外,rk23 可以进一步转移,与rk22 异或,如图2(c)所示。因此,rk23 等价于K′23 ,同样地,可以通过类似的处理进行移动,即rk22⊕(rk23<<<1) 等价于K′22 。以此类推,K′i 仅与rki 有关,并且这种关系是线性的。在攻击过程中,注意到K′16 在区分器内部,所以恢复密钥时不需要猜测。(2) 中间相遇策略
根据积分攻击的原理,对猜测的子密钥,如果
⊕R16(22)=0 ,那么猜测值是候选密钥。因此,进行部分解密的目标是找到使得⊕R16(22)=0 子密钥比特。根据Feistel结构特性式(5)成立⊕R16(22)=⊕((L16(22)⊙L16(17))⊕L16(21)⊕L17(22)) (5) 进一步
⊕R16(22)=⊕((L16(22)⊙L16(17))⊕L17(22)⊕R17(21)) (6) 因此,
⊕R16(22)=0 等价于⊕((L16(22)⊙L16(17))⊕L17(22)=⊕R17(21) (7) 这个过程如图3所示。
采用中间相遇策略,独立计算
⊕((L′16(22) ⊙L′16(17))⊕L′17(22)) ,将所有猜测的密钥和结果一起存储在表Tb1 中;独立计算⊕R′17(21) ,并将猜测的密钥和结果存储在另一个表Tb2 ,其中,L′i 和R′i 表示使用了等价子密钥技术后的中间状态。最后,通过检查这两个表之间的匹配得到正确的候选密钥,从而降低复杂度。在计算过程中,使用部分和技术来降低时间复杂度。(3) 部分和技术
部分和技术是Ferguson等人[14]在FSE 2000提出的,用以改进对Rijndael算法的攻击结果,随后,部分和技术广泛应用于分组密码的积分攻击[15,16]。下面具体给出利用部分和技术恢复Simeck48密钥的过程。
3.3 Simeck48算法的密钥恢复过程
攻击最终的目标是恢复Simeck48的96-bit密钥,需要独立计算
⊕((L′16(22)⊙L′16(17))⊕L′17(22)) 和⊕R′17(21) ,分别存储在表Tb1 和表Tb2 中。(1) 计算表
Tb1 的过程计算
⊕((L′16(22)⊙L′16(17))⊕L′17(22)) ,总共需要猜测79 bit 密钥,具体过程如图4所示。(a) 对于224个猜测密钥
K′23 和246个密文,设置241个1 bit计数器Re1 ,计算得到L′22(1,2,5∼7,9∼ 22)||R′22(0∼2,4∼22) 的值,给相应的计数器的值增加1,保留计数器的值为奇数的那些值。这一步的时间复杂度为246×224×1/24+246×224×22/ (24×24)≈266.42 。(b) 对于222个猜测密钥
K′22(0∼2,4∼22) 和保留下来的Re1 的位置,设置233个1 bit计数器Re2 ,计算得到L′21(2,6,7,10∼12,14∼17,19∼22)||R′21 (1,2,5∼7,9∼22) 的值,保留计数器的值为奇数的那些值。这一步的时间复杂度为246×241×19/(24× 24)≈282.08 。(c) 对于210个猜测密钥
K′21(1,2,6,7,11,12,16, 17,21,22) 和保留下来的Re2 的位置,设置230个1 bit计数器Re3 ,计算L′20(5,7,9∼22)||R′20(2,6, 7,11,12,16,17,21,22)||L′21(10,14,15,19,20) 的值,保留计数器的值为奇数的那些值。这一步的时间复杂度为256×233×9/(24×24)≈283.00 。(d) 对于27个猜测密钥
K′21(5,9,10,14,15,19, 20) 和保留下来的Re3 的位置,设置223个1 bit计数器Re4 ,计算得到L′20(7,11,12,15∼17,20∼22)|| R′20(2,6,7,10∼12,14∼17,19∼22) 的值,保留计数器的值为奇数的那些值。这一步的时间复杂度为263×230×5/(24×24)≈286.15 。(e) 对于27个猜测密钥
K′20(6,10,11,15,16,20, 21) 和保留下来的Re4 的位置,设置218个1 bit计数器Re5 ,计算得到L′19(2,6,7,11,12,16,17,21,22)|| R′19(11,15,16,20,21)||R′20(7,12,17,22) 的值,保留计数器的值为奇数的那些值。这一步的时间复杂度为270×223×5/(24×24)≈286.15 。(f) 对于25个猜测密钥
K′20(2,7,12,17,22) 和保留下来的Re5 的位置,设置214个1 bit计数器Re6 ,计算得到L′19(12,16,17,21,22)||R′19(7,11,12,15∼ 17,20∼22) 的值,保留计数器的值为奇数的那些值。这一步的时间复杂度为275×218×4/(24 ×24)≈285.83 。(g) 对于27个密钥
K′19(7,11,12,16,17,21,22) 和保留下来的Re6 的位置,由密钥扩展算法的性质1和性质2可知,因为K′19=rk19⊕(rk20<<<1) ,rk19=rk23⊕f(rk20)⊕c19 ,又根据等价子密钥与原始子密钥的线性关系,rk23 和rk20 可以由已经猜测的密钥比特直接算出,所以K′19(7,11,12,16,17, 21,22) 不需要猜测。而且计算过程与中间状态无关,所以相较于解密过程,计算复杂度忽略不计。设置27个1 bit计数器Re7 ,计算得到L′18(17,22)|| R′18(12,16,17,21,22) 的值,给相应的计数器的值增加1,保留计数器的值为奇数的那些值。这一步的时间复杂度为275×214×5/(24×24)≈282.15 。(h) 对于23个密钥
K′18(12,17,22) 和保留下来的Re7 的位置,与第(g)步类似,根据密钥扩展算法的性质和等价子密钥与原始子密钥的关系,可知计算K′18(12,17,22) 的复杂度忽略不计。设置23个1 bit计数器Re8 ,计算得到L′17(22)||R′17(17,22) 的值,保留计数器的值为奇数的那些值。这一步的时间复杂度为275×27×2/(24×24)≈273.83 。(i) 对于密钥
K′17(17,22) 以及保留下来的Re8 的位置,猜测4-bitK′20(14,19) 和K′21(13,18) ,计算出K′17(17,22) 这2-bit 的密钥值,计算复杂度约为3轮Simeck48加密运算。计算得到((L′16 (22)⊕K′17(22))⊙(L′16(17)⊕K′17(17)))⊕L′17(22) 的值,和猜测的密钥比特一起存储在表Tb1 。这一步的时间复杂度为279×23×1/(24×24)+279×3× 2/(24×24)≈273.64 。(2) 计算表
Tb2 的过程计算
⊕R′17(21) ,总共需要猜测65 bit密钥,具体过程下所示。(a) 对于222个猜测密钥
K′23(0,1,3∼21,23) 和246个密文,设置233个1 bit计数器Re1 ,计算得到L′22(1,5,6,9∼11,13∼21)||R′22(0,1,4∼6,8∼21) 的值,给相应的计数器加1,保留计数器的值为奇数的值。这一步时间复杂度为246×222×22/(24× 24)+246×222×19/(24×24)≈263.29 。(b) 对于219个猜测密钥
K′22(0,1,4∼6,8∼ 21) 和保留下来的Re1 的位置,设置225个1 bit计数器Re2 ,计算得到L′21(6,10,11,14∼16,18∼21)|| R′21(1,5,6,9∼11,13∼21) 的值,给相应计数器的值增加1,保留计数器的值为奇数的值。这一步时间复杂度为241×233×15/(24×24)≈268.74 。(c) 对于215个
K′21(1,5,6,9∼11,13∼21) 和保留下来的Re2 位置,设置216个1 bit计数器Re3 ,计算L′20(11,15,16,19∼21)||R′20(6,10,11,14∼16,18∼ 21) 的值,保留计数器的值为奇数的值。时间复杂度为256×225×10/(24×24)≈275.15 。(d) 对于29个猜测密钥
K′20(6,10,11,14∼16, 19∼21) 和保留下来的Re3 的位置,设置29个1 bit计数器Re4 ,计算得到L′19(10,16,21)||R′19(11,15,16, 19∼21) 的值,给相应的计数器的值增加1,保留计数器的值为奇数的那些值。这一步的时间复杂度为265×216×6/(24×24)≈274.42 。(e) 对于25个密钥
K′19(11,15,16,20,21) 和保留下来的Re4 的位置,因为K′19=rk19⊕(rk20<<<1) ,由性质1可知rk19=rk23⊕f(rk20)⊕c19 ,又根据等价子密钥与原始子密钥的关系,rk23 和rk20 可以由已经猜测的密钥比特直接算出,所以K′19(11,15,16,20, 21)不需要猜测。计算过程与中间状态无关,所以相较于解密过程,计算复杂度可以忽略不计。设置24个1 bit计数器Re5 ,计算得到L′18(21)||R′18(10, 16,21)的值,给相应的计数器的值增加1,保留计数器的值为奇数的那些值。这一步的时间复杂度为265×29×3/(24×24)≈266.42 。(f) 对于密钥
K′18(16,21) 和保留下来的Re5 的位置,密钥K′18(16,21) 可以由已经猜测的密钥比特唯一解出,计算复杂度约为加密2轮Simeck48运算。计算得到⊕R′17(21) 的值,和猜测的密钥一起存储在表Tb2 中。时间复杂度为265×24×1/(24×24)+ 265×(2×2)/(24×24)≈260.15 。因为只考虑1个平衡比特,所以总的密钥候选空间从
265+14+0=279 减少到278。再加上剩余的K′20(0,1,3,4,5,7,8,13,18,23) ,K′21(0,3,4,8,23) 和K′22(1,23) 这17 bit的密钥,仍然有295个候选密钥。针对这295个候选密钥检测明密文是否匹配,进一步根据等价子密钥和轮子密钥的关系和密钥扩展算法,可以由轮子密钥解出正确的主密钥。24轮Simeck48算法的积分攻击的过程可以概括如下:
步骤 1 构造一个包含246个明文的集合,该集合中的明文满足以下性质:加密1轮后的输出形式为
(ACAA,ACAA,A,A,A,A,A,A,A,A,A,A) 。进一步,加密明文获得相应密文;步骤 2 猜测子密钥
K′i(17≤i≤23) 的部分比特,并且部分解密246个密文8轮来计算⊕((L′16(22) ⊙L′16(17))⊕L′17(22)) ,计算结果和79 bit猜测密钥一起存储在表Tb1 中;步骤 3 猜测
K′i(18≤i≤23) 的部分比特,并且部分解密246个密文7轮来计算⊕R′17(21) ,计算结果和65 bit猜测密钥一起存储在表Tb2 中;步骤 4 对每个候选的子密钥,猜测
K′i(20≤ i≤23) 剩余的17 bit密钥,根据性质1计算得到主密钥,利用两组明密文对检查密钥的正确性,筛选得到正确的主密钥。3.4 复杂度计算
24轮Simeck48积分攻击的数据复杂度为246个选择明文。
构造
Tb1 和Tb2 的时间复杂度分别为287.75 和275.83 ,所以攻击过程中步骤2和步骤3总的时间复杂度为287.75+275.83≈287.75 次24轮Simeck48加密,而步骤4的时间复杂度为295次24轮Simeck48加密。所以,总的攻击时间复杂度约为295次24轮Simeck48加密。存储的内容包括
Tb1 和Tb2 。对于Tb1 ,存储复杂度为282.52 Byte。对于Tb2 ,存储复杂度为268.19 Byte。所以,总的存储复杂度约为282.52 Byte。4. 29轮Simeck64算法的积分攻击
文献[7]中给出Simeck64算法15轮积分区分器,区分器的输入形式为:
(ACCC,CCCC,CCCC, ACCC,AACC,AAAC,A,A,ACCC,CCCA,CCCA, ACCA,AACA,A,A,A) ,区分器输出状态中右半部分第28个比特CR(28) 是平衡的。在该积分区分器基础上,向前做高阶积分扩展,得到19轮的积分区分器(AAAC,A,A,A,A,A,A,A,A,A,A,A,A,A, A,A) ,进一步,基于算法 Feistel结构,可以向前扩展1轮得到20轮的高阶积分区分器。利用该区分器,攻击29轮的Simeck64算法。攻击过程与3.3节类似。在部分解密9轮Simeck64算法恢复密钥的计算过程中,使用部分和技术和密钥扩展算法的性质来降低时间复杂度。猜测得到2104个105 bit等价子密钥,在此基础上穷举23 bit等价子密钥,从而实现全密钥的恢复。29轮Simeck64积分攻击的数据复杂度为263,时间复杂度为2127.3次,存储复杂度为2109.02。
5. 结束语
本文给出了轻量级分组密码算法Simeck积分攻击的新结果。在已有积分区分器的基础上,通过向前做高阶积分扩展,分别得到16轮Simeck48和20轮Simeck64算法的积分区分器。利用等价子密钥技术、中间相遇策略,结合部分和技术和密钥扩展算法的性质,实现了24轮Simeck48和29轮Simeck64的积分攻击。与已有积分攻击的结果相比,本文明显提高了Simeck48和Simeck64算法积分攻击的轮数,分别提高了3轮和5轮。下一步如何利用减少复杂度的技术推广积分攻击算法的应用范围,将是值得研究的工作。
-
表 1 3个接收者时的网络编码策略
队列编号 Q0 Q1 Q2 Q3 Q4 Q5 Q6 索引集合 {1, 2, 3} {1, 2} {2, 3} {1, 3}} {1} {2} {3} NC0 1 0 0 0 0 0 0 NC1 0 0 0 0 1 1 1 NC2 0 1 0 0 0 0 1 NC3 0 0 1 0 1 0 0 NC4 0 0 0 1 0 1 0 表 2 CSAT调度策略流程
输入: 队列Qi(0 ≤ i ≤ 6), QT ={Qi|0 ≤ i ≤ 6},主队列为Q0,次队列为Qi(1 ≤ i ≤ 6), Phi表示队列Qi的队首数据包,索引集合为I={Ri|1
≤ i ≤ 3}, Ihi表示Qi队首数据包的索引集合,Ri表示接收者i,编码方式表示为NCk(1 ≤ k ≤ 4),主次队列发送比为m/n,令flag1=
0, flag2=0。输出: 每个队列的最大长度max(Qi),被所有接收者成功接收到的数据包的个数num,每个时隙发送数据包的个数的和sum。 步骤 1 若QT 不为空,执行步骤2;否则等待数据包的到达; 步骤 2 如果Q0不为空并且flag1<m,发送队列Q0的队首数据包Phi, flag1++,根据反馈消息更新该数据包的索引集合Ihi;否则跳转步骤4; 步骤 3 如果Ihi集合为空,Phi数据包被成功接收,离开该队列系统;如果Ihi={R1, R2, R3}, Phi数据包没有被任何接收者接收,继续停留
队列Qi,否则该数据包将根据其索引集合进入其他队列;步骤 4 如果次队列非空并且flag2<n,选择最先到达队列的数据包Phi,寻找满足该数据包的编码方式集合{NCk|1 ≤ k ≤ 4},否则跳转步骤1; 步骤 5 如果有3个数据包参与编码的编码方式存在并且其它队列与之编码的数据包均存在,则以该编码方式发送数据包Phi, flag2++;否
则执行步骤6;步骤 6 若其它队列存在数据包与之编码发送,则以该编码方式发送数据包Phi, flag2++;否则,以非编码的方式发送数据包Phi, flag2++; 步骤 7 输出各个队列的最大长度max(Qi),被所有接收者接收到的数据包个数num以及每个时隙发送的数据包个数和sum。 表 3 在不同的丢包率下达到的最大输入率以及最优的主次队列发送比
信道丢包率ε 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 主次比(m/n) 9:1 8:2 8:2 7:3 6:4 5:5 7:3 7:3 7:3 最大输入率(λ) 0.89 0.79 0.69 0.59 0.49 0.39 0.3 0.2 0.1 -
AHLSWEDE R, CAI Ning, LI S Y R, et al. Network information flow[J]. IEEE Transactions on Information Theory, 2000, 46(4): 1204–1216. doi: 10.1109/18.850663 AMERIMEHR M H, ASHTIANI F, and VALAEE S. Maximum stable throughput of network-coded multiple broadcast sessions for wireless tandem random access networks[J]. IEEE Transactions on Mobile Computing, 2014, 13(6): 1256–1267. doi: 10.1109/TMC.2013.2296502 SUNDARARAJAN J K, SHAH D, MÉDARD M, et al. Feedback-based online network coding[J]. IEEE Transactions on Information Theory, 2017, 63(10): 6628–6649. doi: 10.1109/TIT.2017.2710192 CHEN Wei, LETAIEF K B, and CAO Zhigang. Buffer-aware network coding for wireless networks[J]. IEEE/ACM Transactions on Networking, 2012, 20(5): 1389–1401. doi: 10.1109/TNET.2011.2176958 SAGDUYU Y E and EPHREMIDES A. On Broadcast stability of queue-based dynamic network coding over erasure channels[J]. IEEE Transactions on Information Theory, 2009, 55(12): 5463–5487. doi: 10.1109/tit.2009.2032732 SAGDUYU Y E, GEORGIADIS L, TASSIULAS L, et al. Capacity and stable throughput regions for the broadcast erasure channel with feedback: An unusual union[J]. IEEE Transactions on Information Theory, 2013, 59(5): 2841–2862. doi: 10.1109/tit.2011.2171180 SHAO Pengfei, ZHAO Yanwei, YANG Mingxia, et al. Hash searching and network coding based constant retransmission for wireless multicast[J]. IET Communications, 2017, 11(2): 302–309. doi: 10.1049/iet-com.2016.0484 TAN Guoping, CHEN Yangjie, LI Yueheng, et al. PNCIA: An interference aware wireless multicast scheme with partial network coding[C]. 2016 IEEE Information Technology, Networking, Electronic and Automation Control Conference, Chongqing, China, 2016: 155–159. doi: 10.1109/ITNEC.2016.7560339. MOHANDESPOUR M, GOVINDARASU M, and WANG Zhengdao. Rate, energy, and delay tradeoffs in wireless multicast: network coding versus routing[J]. IEEE Transactions on Mobile Computing, 2016, 15(4): 952–963. doi: 10.1109/TMC.2015.2439258 LI Yuzhou, SHI Yan, SHENG Min, et al. Energy-efficient transmission in heterogeneous wireless networks: A delay-aware approach[J]. IEEE Transactions on Vehicular Technology, 2016, 65(9): 7488–7500. doi: 10.1109/TVT.2015.2472578 MOGHADAM N and LI Hongxiang. Improving queue stability in wireless multicast with network coding[C]. 2015 IEEE International Conference on Communications, London, UK, 2015: 3382–3387. doi: 10.1109/ICC.2015.7248847. MOGHADAM N and LI Hongxiang. Queue stability analysis in network coded wireless multicast network[J]. IEEE Communications Letters, 2016, 20(5): 950–953. doi: 10.1109/LCOMM.2016.2524453 MOGHADAM N and LI Hongxiang. A new wireless multicast queuing design using network coding and data-flow model[J]. IEEE Communications Letters, 2016, 20(8): 1603–1606. doi: 10.1109/LCOMM.2016.2568212 BÓNA M. Introduction to Enumerative Combinatorics[M]. Boston: McGraw-Hill, 2007: 63–70. 杨雅琴. 第二类Stirling数计算公式的一种证明[J]. 青岛科技大学学报: 自然科学版, 2009, 30(4): 369–371. doi: 10.3969/j.issn.1672-6987.2009.04.023YANG Yaqin. The proof for formula of stirling numbers of the second-kind[J]. Journal of Qingdao University of Science and Technology:Natural Science Edition, 2009, 30(4): 369–371. doi: 10.3969/j.issn.1672-6987.2009.04.023 期刊类型引用(1)
1. 杜小妮,段娥娥,王天心. 基于混沌的双模块Feistel结构高安全性高速分组密码算法安全性分析. 电子与信息学报. 2021(05): 1365-1371 . 本站查看
其他类型引用(1)
-