主权项 |
4个非线性驱动的轻量级流密码加密方法,其特征是包括如下步骤:(1)内部状态初始化阶段;(1.1)随机选择1个可变的88比特的种子密钥K=(k1,k2,……,k88)、1个可变的88比特的初始向量V=(v1,v2,……,v88)、一个1个固定的80比特的常量值C=(c1,c2,……,c80);(1.2)将上述88比特的种子密钥K,88比特的初始向量V和80比特的常量值C注入一个256比特长的寄存器(s1,s2,……,s256)中,其中寄存器(s1,s2,……,s64)的状态由比特(k1,k2,……,k22,v1,v2,……,v22,c1,c2,……,c20)注入,寄存器(s65,s66,……,s128)的状态由比特(k23,k24,……,k44,v23,v24,……,v44,c21,c22,……,c40)注入,寄存器(s129,s130……,s192)的状态由比特(k45,k46,……,k66,v45,v46,……,v66,c41,c42,……,c60)注入,寄存器(s193,s194,……,s256)的状态由比特(k67,k68,……,k88,v67,v68,……,v88,c61,c62,……,c80)注入;(1.3)对寄存器(s1,s2,……,s256)进行如下步骤1024次;(a)开辟4个新的存储器(t1,t2,t3,t4),该存储器t1,t2,t3,t4的状态分别是从寄存器(s1,s2,……,s256)中选取不同的5或6个比特进行平衡及2次项的组合后注入的,即:存储器t1的状态由<img file="FDA0000791760880000011.GIF" wi="842" he="68" />注入,存储器t2的状态由<img file="FDA0000791760880000012.GIF" wi="961" he="66" />注入,存储器t3的状态由<img file="FDA0000791760880000013.GIF" wi="785" he="66" />注入,存储器t4的状态由<img file="FDA0000791760880000014.GIF" wi="796" he="71" />注入;(b)寄存器(s1,s2,……,s64)的状态更新为(t3,s1,s2,……,s63),寄存器(s65,s66,……,s128)的状态更新为(t1,s65,s66,……,s127),寄存器(s129,s130,……,s192)的状态更新为(t4,s129,s130,……,s191),寄存器(s193,s194,……,s256)的状态更新为(t2,s193,s194,……,s255);(2)密钥流生成阶段;若需要生成的密钥流比特数N个,则执行以下步骤N次;(2.1)开辟4个新的存储器(t1’,t2’,t3’,t4’),其中该新的存储器t1’,t2’,t3’,t4’的状态分别是从寄存器(s1,s2,……,s256)中选取不同的2个比特进行线性组合后注入的,即:新的存储器t1’的状态由<img file="FDA0000791760880000021.GIF" wi="242" he="63" />注入,新的存储器t2’的状态由<img file="FDA0000791760880000022.GIF" wi="271" he="66" />注入,新的存储器t3’的状态由<img file="FDA0000791760880000023.GIF" wi="308" he="69" />注入,新的存储器t4’的状态由<img file="FDA0000791760880000024.GIF" wi="309" he="70" />注入;(2.2)将新的存储器t1’,t2’,t3’,t4’进行线性组合后,输出密钥流比特<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>Z</mi><mi>i</mi></msub><mo>=</mo><mi>t</mi><msup><mn>1</mn><mo>,</mo></msup><mo>⊕</mo><mi>t</mi><msup><mn>2</mn><mo>,</mo></msup><mo>⊕</mo><mi>t</mi><msup><mn>3</mn><mo>,</mo></msup><mo>⊕</mo><mi>t</mi><msup><mn>4</mn><mo>,</mo></msup><mo>;</mo></mrow>]]></math><img file="FDA0000791760880000025.GIF" wi="736" he="82" /></maths>(2.3)分别更新新的存储器(t1’,t2’,t3’,t4’),即将新的存储器t1’,t2’,t3’,t4’的状态更新为由另一个更新前的新的存储器(t1’,t2’,t3’,t4’)之一和存储器(t1,t2,t3,t4)中对应选取的寄存器(s1,s2,……,s256)中的5或6个比特进行平衡及2次项的组合后注入;即:新的存储器t1’的状态更新为<img file="FDA0000791760880000026.GIF" wi="783" he="76" /><img file="FDA0000791760880000027.GIF" wi="320" he="74" />新的存储器t2’的状态更新为<img file="FDA0000791760880000028.GIF" wi="854" he="75" /><img file="FDA0000791760880000029.GIF" wi="320" he="74" />新的存储器t3’的状态更新为<img file="FDA00007917608800000210.GIF" wi="937" he="63" />新的存储器t4’的状态更新为<img file="FDA00007917608800000211.GIF" wi="936" he="72" />(2.4)寄存器(s1,s2,……,s64)的状态更新为(t3’,s1,s2,……,s63);寄存器(s65,s66,……,s128)的状态更新为(t1’,s65,s66,……,s127);寄存器(s129,s130,……,s192)的状态更新为(t4’,s129,s130,……,s191);寄存器(s193,s194,……,s256)的状态更新为(t2’,s193,s194,……,s255);(3)加密阶段;<img file="FDA00007917608800000212.GIF" wi="251" he="70" />其中Y<sub>i</sub>为获得的密文比特,X<sub>i</sub>为待加密的明文比特,Z<sub>i</sub>为密钥流比特;上述各步骤中,<img file="FDA00007917608800000213.GIF" wi="54" he="55" />表示异或运算,·表示与运算。 |