发明名称 4个非线性驱动的轻量级流密码加密方法
摘要 本发明公开一种4个非线性驱动的轻量级流密码加密方法,其仅采用面向比特的异或和与运算,内部操作容易实现;借鉴分组密码的多轮迭代思想,对初始化内部向量进行“多轮”比特混合置乱操作,从而能够快速达到置乱效果;新引入“分区交替扩散”和“多层混淆”的技术,快速完成种子密钥比特间混淆和扩散效果;所选的4个非线性驱动部件具有稳固的密码学性质以抵抗多种攻击;密钥生成阶段新引入双二次项进行非线性置乱,有效抵抗传统的内部状态恢复攻击;种子密钥长度为88比特具有高安全强度;算法简洁、容易软、硬件平行实现,特别适合资源受限环境下使用,比如无限传感器网络等;实现的存储代价小。
申请公布号 CN103166753B 申请公布日期 2015.12.09
申请号 CN201310098769.7 申请日期 2013.03.26
申请人 桂林电子科技大学 发明人 丁勇;韦永壮;丁继强;官秀国;李新国
分类号 H04L9/08(2006.01)I 主分类号 H04L9/08(2006.01)I
代理机构 桂林市持衡专利商标事务所有限公司 45107 代理人 陈跃琳
主权项 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>&CirclePlus;</mo><mi>t</mi><msup><mn>2</mn><mo>,</mo></msup><mo>&CirclePlus;</mo><mi>t</mi><msup><mn>3</mn><mo>,</mo></msup><mo>&CirclePlus;</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" />表示异或运算,·表示与运算。
地址 541004 广西壮族自治区桂林市金鸡路1号