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

技术编号:8836608 阅读:480 留言:0更新日期:2013-06-22 22:04
本发明专利技术公开一种4个非线性驱动的轻量级流密码加密方法,其仅采用面向比特的异或和与运算运算,内部操作容易实现;借鉴分组密码的多轮迭代思想,对初始化内部向量进行“多轮”比特混合置乱操作,从而能够快速达到置乱效果;新引入“分区交替扩散”和“多层混淆”的技术,快速完成种子密钥比特间混淆和扩散效果;所选的4个非线性驱动部件具有稳固的密码学性质以抵抗多种攻击;密钥生成阶段新引入双二次项进行非线性置乱,有效抵抗传统的内部状态恢复攻击;种子密钥长度为88比特具有高安全强度;算法简洁、容易软、硬件平行实现,特别适合资源受限环境下使用,比如无限传感器网络等;实现的存储代价小。

【技术实现步骤摘要】

本专利技术涉及信息安全领域,具体涉及一种。
技术介绍
在数据传输过程中,部分敏感数据为了防止攻击者的窃听而需要进行加密处理,使得攻击者只能窃听到密文而无法获得任何有用信息,只用拥有密钥的合法接收者才能解密还原出真实消息。在数据加密算法中,有两大类加密算法。一是分组加密算法,二是流密码加密算法(也称为序列密码)。分组加密算法的加密数据是固定长度的(分成一组一组),而流密码加密算法的加密长度是一个可变范围很大的值。分组密码以一定大小作为每次处理的基本单元,而序列密码则是以一个元素(一个字母或一个比特)作为基本的处理单元。流密码加密算法具有实现简单、便于硬件实施、加解密处理速度快、没有或只有有限的错误传播等特点,因此在实际应用中,特别是专用或机密机构中保持着优势,典型的应用领域包括无线通信和外交通信等。流密 码加密算法具体应用环境和模式可见图1。首先消息发送方和接收方通过一个安全信道共享了一个种子密钥k,对于每一比特明文xi,发送方都使用一个流密码加密算法产生相对应的一比特密钥流zi,然后用Zi与xi异或掩盖明文而获得密文yi,即Λ =χ 。消息接收方接收到yi后,使用相同的方法和相同的密钥产生相同的密钥流比特zi,将zi与yi异或后即可恢复出明文xi,即火 Z, = χΓ Θγ, Θγ, =χ,。然而传统的流密码加密算法的内部操作不易实现,内部置乱效果不佳,易受到攻击等不足,因此还需要对传统的流密码加密算法进行进一步的改进。
技术实现思路
本专利技术所要解决的技术问题是提供一种安全强度高、算法简洁易于实现、以及存储代价小的。为解决上述问题,本专利技术是通过以下方案实现的:,包括如下步骤:( 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注入,本文档来自技高网...

【技术保护点】
4个非线性驱动的轻量级流密码加密方法,其特征是包括如下步骤:(1)内部状态初始化阶段;(1.1)随机选择1个可变的88比特的种子密钥K=(k1,k2,……,k88)、1个可变的88比特的初始向量V=(v1,v2,……,v80)、一个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)中选取不同的6个字进行平衡及2次项的组合后注入的,其中存储器t1的状态由s3,s62,s63,s64,s125,s189来决定;存储器t2的状态由s36,s126,s127,s128,s188,s252来决定;存储器t3的状态由s59,s158,s190,s191,s251来决定,存储器t4的状态由s21,s185,s268,s254,s255来决定;(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’ 的状态由s32,s64来决定;新的存储器t2’的状态由s92,s128等来决定;新的存储器t3’的状态由s160,s192等来决定;新的存储器t4’的状态由s226,s256等来决定;(2.2)将新的存储器t1’,t2’,t3’,t4’进行线性组合后,输出密钥流比特;(2.3)分别更新新的存储器(t1’,t2’,t3’,t4’),即将新的存储器t1’,t2’,t3’,t4’的状态更新为由另一个新的存储器(t1’,t2’,t3’,t4’)之一和存储器(t1,t2,t3,t4)中对应选取的的6个字进行平衡及2次项的组合后注入;其中新的存储器t1’的状态由t3’,s3,s62,s63,s64,s125,s189来决定;新的存储器t2’的状态由t1’,s36,s126,s127,s128,s188,s252来决定;新的存储器t3’的状态由t4’,s59,s158,s190,s191,s251来决定,新的存储器t4’的状态由t2’,s21,s185,s268,s254,s255来决定;(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)加密阶段;其中Yi为获得的密文,Xi为待加密的明文,Zi密钥流比特;上述各步骤中,表示异或运算,“·”表示与运算。FDA00002965871300021.jpg,FDA00002965871300022.jpg...

【技术特征摘要】
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’,t...

【专利技术属性】
技术研发人员:丁勇韦永壮丁继强官秀国李新国
申请(专利权)人:桂林电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1