4个非线性驱动的轻量级流密码加密方法

文档序号:7554084阅读:211来源:国知局
专利名称:4个非线性驱动的轻量级流密码加密方法
技术领域
本发明涉及信息安全领域,具体涉及一种4个非线性驱动的轻量级流密码加密方法。
背景技术
在数据传输过程中,部分敏感数据为了防止攻击者的窃听而需要进行加密处理,使得攻击者只能窃听到密文而无法获得任何有用信息,只用拥有密钥的合法接收者才能解密还原出真实消息。在数据加密算法中,有两大类加密算法。一是分组加密算法,二是流密码加密算法(也称为序列密码)。分组加密算法的加密数据是固定长度的(分成一组一组),而流密码加密算法的加密长度是一个可变范围很大的值。分组密码以一定大小作为每次处理的基本单元,而序列密码则是以一个元素(一个字母或一个比特)作为基本的处理单元。流密码加密算法具有实现简单、便于硬件实施、加解密处理速度快、没有或只有有限的错误传播等特点,因此在实际应用中,特别是专用或机密机构中保持着优势,典型的应用领域包括无线通信和外交通信等。流密 码加密算法具体应用环境和模式可见图1。首先消息发送方和接收方通过一个安全信道共享了一个种子密钥k,对于每一比特明文xi,发送方都使用一个流密码加密算法产生相对应的一比特密钥流zi,然后用Zi与xi异或掩盖明文而获得密文yi,即Λ =χ 。消息接收方接收到yi后,使用相同的方法和相同的密钥产生相同的密钥流比特zi,将zi与yi异或后即可恢复出明文xi,即火 Z, = χΓ Θγ, Θγ, =χ,。然而传
统的流密码加密算法的内部操作不易实现,内部置乱效果不佳,易受到攻击等不足,因此还需要对传统的流密码加密算法进行进一步的改进。

发明内容
本发明所要解决的技术问题是提供一种安全强度高、算法简洁易于实现、以及存储代价小的4个非线性驱动的轻量级流密码加密方法。为解决上述问题,本发明是通过以下方案实现的:4个非线性驱动的轻量级流密码加密方法,包括如下步骤:( I)内部状态初始化阶段;(1.1)随机选择I个可变的88比特的种子密钥K= (kl,k2,……,k88)、l个可变的88比特的初始向量V= (vl,v2,……,v80)、一个I个固定的80比特的常量值C= (cl,c2,......, c80);(1.2)将上述88比特的种子密钥K,88比特的初始向量V和80比特的常量值C注入一个256比特长的寄存器(sl,s2,……,s256)中,其中寄存器(sl,s2,……,s64)的状态由比特(kl,k2,……,k22,vl,v2,……,v22,cl, c2,......, c20)注入,寄存器(s65,s66,......,sl28)的状态由比特(k23,k24,......,k44, v23, v24,......,v44,c21,c22,......,c40)注入,寄存器(sl29,sl30......,sl92)的状态由比特(k45,k46,......, k66, v45, v46,......,
v66, c41, c42,......,c60)注入,寄存器(sl93,sl94,......,s256)的状态由比特(k67,k68,......,k88,v67,
v68,......, v88, c61, c62,......,c80)注入;(1.3)对寄存器(sl,s2,……,s256)进行如下步骤1024次;(a)开辟4个新的存储器(tl,t2,t3,t4),该存储器tl,t2,t3,t4的状态分别是从寄存器(sl,s2,……,s256)中选取不同的6个字进行平衡及2次项的组合后注入的,其中存储器tl的状态由s3,s62,s63, s64,sl25, sl89来决定;存储器t2的状态由s36,sl26,sl27,sl28,sl88, s252 来决定;存储器 t3 的状态由 s59,sl58,sl90, sl91,s251 来决定,存储器t4的状态由s21,sl85,s268,s254,s255来决定;(b)寄存器(sl,s2,......,s64)的状态更新为(t3,sl,s2,......,s63),寄存器(s65,s66,......,sl28)的状态更新为(tl,s65,s66,......,sl27),寄存器(sl29,sl30,......,sl92)的状态更新为(t4,sl29,sl30,......,sl91),寄存器(sl93,sl94,......,s256)的状态更新为(t2,sl93,sl94,......,s255);(2)密钥流生成阶段;若需要生成的密钥流比特数N个,则执行以下步骤N次;(2.1)开辟4个新的存储器(tl’,t2’,t3’,t4’),其中该新的存储器tl,,t2,,t3,,t4’的状态分别是从寄存器(sl,s2,……,s256)中选取不同的2个字进行线性组合后注入的,其中新的存储器11’的状态由s32,s64来决定;新的存储器t2’的状态由s92,sl28等来决定;新的存储器t3’的状态由s 160,s 192等来决定;新的存储器t4’的状态由s226,s256等来决定;(2.2)将新的存储器tl’,t2’,t3’,t4’进行线性组合后,输出密钥流比特;(2.3)分别更新新的存储器(tl’,t2’,t3’,t4’),即将新的存储器tl’,t2’,t3’,t4,的状态更新为由另一个新的存储器(tl’,t2,,t3,,t4,)之一和存储器(tl,t2,t3,t4)中对应选取的的6个字进行平衡及2次项的组合后注入;其中新的存储器tl’的状态由t3,,s3,s62,s63,s64,sl25, sl89 来决定;新的存储器 t2’ 的状态由 tl’,s36,sl26,sl27,sl28,sl88, s252 来决定;新的存储器 t3,的状态由 t4,,s59,sl58,sl90, sl91,s251 来决定,新的存储器t4’的状态由t2,,s21,sl85,s268,s254,s255来决定;(2.4)寄存器(sl,s2,......,s64)的状态更新为(t3,,sl,s2,......,s63);寄存器(s65,s66,……,sl28)的状态更新为(tl,,s65,s66,……,sl27);寄存器(sl29,sl30,......,sl92)的状态更新为(t4,,sl29,sl30,......,sl91);寄存器(sl93,sl94,......,s256)的状态更新为(t2,,sl93,sl94,......,s255);(3)加密阶段;Yi=X1 Zi,其中Yi为获得的密文,Xi为待加密的明文,Zi密钥流比特;上述各步骤中,“Φ”表示异或运算,“.”表示与运算。在步骤(1.1)中,种子密钥K为保密的,初始向量V为保密的或公开的。在步骤(1.1)中,初始向量V为发送接收双方协商一致的值。在步骤(1.1)中,常量值C具体为(1,0,1,0,……,1,0)。

在步骤(2)中,密钥流比特数N介于I 256之间。
在步骤(1.3)的(a)中,存储器tl的状态由s3 s62.s63 s64 sl25 sl89 注入,存储器 t2 的状态由 s36 sl26.sl27 sl28 sl88 s252 注入,存储器 t3 的状态由 s59 sl58 sl90.sl91 s251 注入,存储器的状态由 s21 sl85 s268 s2M.s255 注入。在步骤(2.1)中,新的存储器11’的状态由s32 s64注入,新的存储器t2’的状态由s92 sl28注入,新的存储器t3’的状态由sl60 sl92注入,新的存储器t4’的状态由s226 s256注入。在步骤(2.2)中,输出密钥流比特z=tr t2 ’ t3’ t4’。在步骤(2.3)中,新的存储器tl’的状态更新为t3’ s3 s62*s63 s64
sl25 sl89,新的存储器 t2’ 的状态更新为 tl’ s76 sl26.sl27 sl28
sl88 s252,新的存储器t3’的状态更新为t4’ s59* sl58 sl90.sl91 s251,新的存储器 t4’ 的状态更新为 t2’ s21* sl85 s268 s254
s2550与现有技术相比,本发明具有如下特点:(I)仅采用面向比特的异或“(B ”和与运算“.”运算,内部操作容易实现;(2)借鉴分组密码的多轮迭代思想,对初始化内部向量进行“多轮”比特混合置乱操作,从而能够快速达到置乱效果;(3)新引入“分区交替扩散”和“多层混淆”的技术,快速完成种子密钥比特间混淆和扩散效果; (4)所选的4个非线性驱动部件具有稳固的密码学性质以抵抗多种攻击,如平凡的统计攻击、边信道攻击、时空折中攻击等等;(5)密钥生成阶段新引入双二次项进行非线性置乱,有效抵抗传统的内部状态恢复攻击;(6)种子密钥长度为88比特具有高安全强度;(7)算法简洁、容易软、硬件平行实现,特别适合资源受限环境下使用,比如无限传感器网络等;(8)实现的存储代价小。


图1为流密码加密方法使用示意图。
具体实施例方式一种4个非线性驱动的轻量级流密码加密方法,包括如下步骤:第一阶段,内部状态初始化阶段。(1.1)随机选择I个可变的88比特的种子密钥K= (kl,k2,……,k88)、l个可变的88比特的初始向量V= (vl,v2,……,v80)、一个I个固定的80比特的常量值C= (cl,c2,……,c80)。在本发明中,种子密钥K始终为保密的。初始向量V为发送接收双方协商一致的一个任意的值。初始向量V可以选择保密,也可以选择公开。在本实施例中,常量值C 具体为(1,0,1,0,……,1,0)。(1.2)将上述88比特的种子密钥K,88比特的初始向量V和80比特的常量值C注入一个256比特长的寄存器(sl,s2,……,s256)中。其中寄存器(sl,s2,……,s64)的状态由比特(kl,k2,……,k22,vl,v2,……,v22,cl, c2,......, c20)注入,寄存器(s65,s66,......,sl28)的状态由比特(k23,k24,......,k44, v23, v24,......,
v44,c21,c22,......,c40)注入,寄存器(s129,s 130......,s 192 )的状态由比特(k45,k46,......,k66,v45,v46,......,
v66, c41, c42,......,c60)注入,寄存器(sl93,sl94,......,s256)的状态由比特(k67,k68,......,k88,v67,
v68,......, v88, c 61, c62,......,c80)注入。(1.3)对寄存器(sl,s2,......,s256)进行如下步骤 1024 (即 4X256=1024)次。(a)开辟4个新的存储器(tl,t2, t3, t4),其中存储器tl的状态由s3,s62,s63,s64,sl25, sl89来决定,为了减少计算量,并提高安全强度,一般要求采用平衡及2次项的组合,比如采用:s3 s62.s63 s64 sl25 sl89注入,存储器t2的状态由s36,sl26,sl27,sl28,sl88, s252来决定,同样采用平衡及2次项的组合,比如采用:s36 sl26.sl27 sl28 sl88 s252注入,存储器t3的状态由s59,sl58,sl90, sl91,s251来决定,同样采用平衡及2次项的组合,比如采用:s59 sl58 sl90.sl91 s251注入,存储器t4的状态由s21,sl85,s268,s254,s255来决定,同样采用平衡及2次项的组合,比如采用:s21 sl85 s268 s254.s255注入。(b)寄存器(sl,s2,......,s64)的状态更新为(t3,sl,s2,......,s63),寄存器(s65,s66,......,sl28)的状态更新为(tl,s65,s66,......,sl27),寄存器(sl29,sl30,......,sl92)的状态更新为(t4,sl29,sl30,......,sl91),寄存器(sl93,sl94,......,s256)的状态更新为(t2,sl93,sl94,......,s255)。第二阶段,密钥流生成阶段。若需要生成的密钥流比特数N个,则执行以下步骤N次。在本发明中,输出的密钥流比特至少为I个、至多为256个,即N介于I 256之间。(2.1)开辟4个新的存储器(tl’,t2’,t3’,t4’),其中新的存储器tl’的状态由s32,s64来决定,为了计算快速,一般采用线性组合,t匕如米用:s32 s64注入,新的存储器t2’的状态由s92,sl28等来决定,同样采用线性组合,比如s92 sl28 注入,新的存储器t3’的状态由sl60,sl92等来决定,同样采用线性组合,比如s] HO S192 注入,新的存储器t4’的状态由s226,s256等来决定,同样采用线性组合,比如s226 s256 注入。(2.2)输出密钥流比特由tl’,t2’,t3’,t4’来决定,为了实现快速一般采用线性组合,比如采用:Z=tl’t.3’ t4’。(2.3)分别更新新的存储器(tl’,t2’,t3’,t4’),将新的存储器tl’,t2’,t3’,t4’的状态更新为由另一个新的存储器(tl’,t2’,t3’,t4’)之一和存储器(tl,t2,t3,t4)中对应选取的的6个字进行平衡及2次项的组合后注入;即

新的存储器tl’ 的状态更新为 t.3’ s3 s62.s63 s64.sl25 sl89,新的存储器t2’的状态更新为tl’ Φ s76 sl26.sl27 sl28.sl88 s252,新的存储器t3’ 的状态更新为 t4’ s59.sl58 sl90.sl91 s251,新的存储器t4’的状态更新为 t2’ s21.sl85 s268 s254.s255。(2.4)寄存器(sl,s2,......,s64)的状态更新为(t3,,sl,s2,......,s63)。寄存器(s65,s66,......,sl28)的状态更新为(tl,,s65,s66,......,sl27)。寄存器(sl29,sl30,......,sl92)的状态更新为(t4,,sl29,sl30,......,sl91)。寄存器(sl93,sl94,......,s256)的状态更新为(t2,,sl93,sl94,......,s255)。(3)加密阶段。Y1=Xi^Zi,其中Yi为获得的密文,Xi为待加密的明文,Zi密钥流比特。该加密阶段与现有技术相同,参见图1。
权利要求
1.4个非线性驱动的轻量级流密码加密方法,其特征是包括如下步骤: (O内部状态初始化阶段; (1.1)随机选择1个可变的88比特的种子密钥K= (kl,k2,……,k88)、l个可变的.88比特的初始向量V= (vl,v2,……,v80)、一个1个固定的80比特的常量值C= (cl,c2,......, c80); (1.2)将上述88比特的种子密钥K,88比特的初始向量V和80比特的常量值C注入一个256比特长的寄存器(sl,s2,……,s256)中,其中 寄存器(sl,s2,……,s64)的状态由比特(kl,k2,……,k22,vl,v2,……,v22,cl,c2,......,c20)注入, 寄存器(s65,s66,......,sl28)的状态由比特(k23,k24,......,k44,v23,v24,......,v44,c21,c22,......,c40)注入, 寄存器(sl29,sl30......,sl92)的状态由比特(k45,k46,......,k66,v45,v46,......,v66, c41, c42,......,c60)注入, 寄存器(sl93,sl94,......,s256)的状态由比特(k67,k68,......,k88,v67,v68,......,v88, c61, c62,......,c80)注入; (1.3)对寄存器(sl,s2,……,s256)进行如下步骤1024次; (a)开辟4个新的存储器(tl,t2,t3,t4),该存储器tl,t2,t3,t4的状态分别是从寄存器(sl,s2,……,s256)中选取不同的6个字进行平衡及2次项的组合后注入的,其中存储器tl的状态由s3,s62,s63,s64,sl25, sl89来决定;存储器t2的状态由s36,sl26,sl27,sl28,sl88, s252 来决定;存储器 t3 的状态由 s59,sl58,sl90, sl91,s251 来决定,存储器t4的状态由s21,sl85,s268,s254,s255来决定; (b)寄存器(sl,s2,......,s64)的状态更新为(t3, sl, s2,......, s63), 寄存器(s65,s66,……,sl28)的状态更新为(tl,s65,s66,……,sl27), 寄存器(sl29,sl30,......,sl92)的状态更新为(t4,sl29,sl30,......,sl91), 寄存器(sl93,sl94,......,s256)的状态更新为(t2,sl93,sl94,......,s255); (2)密钥流生成阶段;若需要生成的密钥流比特数N个,则执行以下步骤N次; (2.1)开辟4个新的存储器41’32’33’34’),其中该新的存储器七1’32’33’34’的状态分别是从寄存器(sl,s2,……,s256)中选取不同的.2个字进行线性组合后注入的,其中新的存储器tl’的状态由s32,s64来决定;新的存储器t2’的状态由s92,sl28等来决定;新的存储器t3’的状态由sl60,sl92等来决定;新的存储器t4’的状态由s226,s256等来决定; (2.2)将新的存储器tl’,t2’,t3’,t4’进行线性组合后,输出密钥流比特; (2.3)分别更新新的存储器(tl’,t2’,t3’,t4’),即将新的存储器tl’,t2’,t3’,t4’的状态更新为由另一个新的存储器(tl’,t2’,t3’,t4’)之一和存储器(tl,t2,t3,t4)中对应选取的的6个字进行平衡及2次项的组合后注入;其中新的存储器tl’的状态由t3’,s3,s62,s63,s64,sl25, sl89 来决定;新的存储器 t2’ 的状态由 tl’,s36, sl26, sl27, sl28,sl88, s252来决定;新的存储器t3’的状态由t4,,s59,sl58,sl90, sl91,s251来决定,新的存储器t4,的状态由t2,,s21,sl85,s268,s254,s255来决定; (2.4)寄存器(sl,s2,......,s64)的状态更新为(t3,,sl,s2,......,s63);寄存器(s65,s66,……,sl28)的状态更新为(tl,,s65,s66,……,sl27); 寄存器(sl29,sl30,……,sl92)的状态更新为(t4’,sl29,sl30,……,sl91); 寄存器(sl93,sl94,......,s256)的状态更新为(t2,,sl93,sl94,......,s255); (3)加密阶段;Yi=XAZi,其中Yi为获得的密文,Xi为待加密的明文,Zi密钥流比特; 上述各步骤中,“Φ”表示异或运算,“.”表示与运算。
2.根据权利要求1所述的4个非线性驱动的轻量级流密码加密方法,其特征是在步骤(1.0中,种子密钥K为保密的,初始向量V为保密的或公开的。
3.根据权利要求1所述的4个非线性驱动的轻量级流密码加密方法,其特征是在步骤(1.0中,初始向量V为发送接收双方协商一致的值。
4.根据权利要求1所述的4个非线性驱动的轻量级流密码加密方法,其特征是在步骤(1.1)中,常量值C具体为(1,0,1,0,……,1,0)。
5.根据权利要求1所述的4个非线性驱动的轻量级流密码加密方法,其特征是在步骤(2)中,密钥流比特数N介于I 256之间。
6.根据权利要求1所述的4个非线性驱动的轻量级流密码加密方法,其特征是,在步骤(1.3)的(a)中, 存储器tl的状态由s3 s62.s63 s64 sl25 sl89注入, 存储器 t2 的状态由s36 sl26.sl27 sl28 sl88 s252注入, 存储器t3的状态由S59 sl58 sl90.sl91 s251注入, 存储器t4的状态由s21 sl85 s268 s254.s255注入。
7.根据权利要求1所述的4个非线性驱动的轻量级流密码加密方法,其特征是,在步骤(2.1)中, 新的存储器11’的状态由s32 s64注入, 新的存储器t2’的状态由s92 sl28注入, 新的存储器t3,的状态由K160 s 192注入, 新的存储器t4’的状态由S226 s256注入。
8.根据权利要求1所述的4个非线性驱动的轻量级流密码加密方法,其特征是,在步骤(2.2)中, 输出密钥流比特Z=tl’ t2 ’ 3Λ t.4’ 。
9.根据权利要求1所述的4个非线性驱动的轻量级流密码加密方法,其特征是,在步骤(2.3)中, 新的存储器tl’的状态更新力t3 s3 s62.s63 s64.sl25 sl89, 新的存储器t2’的状态更新为tl’ s76 sl26.sl27十sl28.sl88 s252, 新的存储器t3’的状态更新为t4’ s59*sl58 sl90*sl91 s251, 新的存储器t4’的状态更新为t2’ s21*sl85 s268 s254*s2550
全文摘要
本发明公开一种4个非线性驱动的轻量级流密码加密方法,其仅采用面向比特的异或和与运算运算,内部操作容易实现;借鉴分组密码的多轮迭代思想,对初始化内部向量进行“多轮”比特混合置乱操作,从而能够快速达到置乱效果;新引入“分区交替扩散”和“多层混淆”的技术,快速完成种子密钥比特间混淆和扩散效果;所选的4个非线性驱动部件具有稳固的密码学性质以抵抗多种攻击;密钥生成阶段新引入双二次项进行非线性置乱,有效抵抗传统的内部状态恢复攻击;种子密钥长度为88比特具有高安全强度;算法简洁、容易软、硬件平行实现,特别适合资源受限环境下使用,比如无限传感器网络等;实现的存储代价小。
文档编号H04L9/08GK103166753SQ201310098769
公开日2013年6月19日 申请日期2013年3月26日 优先权日2013年3月26日
发明者丁勇, 韦永壮, 丁继强, 官秀国, 李新国 申请人:桂林电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1