專利名稱:4個非線性驅(qū)動的輕量級流密碼加密方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息安全領(lǐng)域,具體涉及一種4個非線性驅(qū)動的輕量級流密碼加密方法。
背景技術(shù):
在數(shù)據(jù)傳輸過程中,部分敏感數(shù)據(jù)為了防止攻擊者的竊聽而需要進行加密處理,使得攻擊者只能竊聽到密文而無法獲得任何有用信息,只用擁有密鑰的合法接收者才能解密還原出真實消息。在數(shù)據(jù)加密算法中,有兩大類加密算法。一是分組加密算法,二是流密碼加密算法(也稱為序列密碼)。分組加密算法的加密數(shù)據(jù)是固定長度的(分成一組一組),而流密碼加密算法的加密長度是一個可變范圍很大的值。分組密碼以一定大小作為每次處理的基本單元,而序列密碼則是以一個元素(一個字母或一個比特)作為基本的處理單元。流密碼加密算法具有實現(xiàn)簡單、便于硬件實施、加解密處理速度快、沒有或只有有限的錯誤傳播等特點,因此在實際應(yīng)用中,特別是專用或機密機構(gòu)中保持著優(yōu)勢,典型的應(yīng)用領(lǐng)域包括無線通信和外交通信等。流密 碼加密算法具體應(yīng)用環(huán)境和模式可見圖1。首先消息發(fā)送方和接收方通過一個安全信道共享了一個種子密鑰k,對于每一比特明文xi,發(fā)送方都使用一個流密碼加密算法產(chǎn)生相對應(yīng)的一比特密鑰流zi,然后用Zi與xi異或掩蓋明文而獲得密文yi,即Λ =χ 。消息接收方接收到y(tǒng)i后,使用相同的方法和相同的密鑰產(chǎn)生相同的密鑰流比特zi,將zi與yi異或后即可恢復(fù)出明文xi,即火 Z, = χΓ Θγ, Θγ, =χ,。然而傳
統(tǒng)的流密碼加密算法的內(nèi)部操作不易實現(xiàn),內(nèi)部置亂效果不佳,易受到攻擊等不足,因此還需要對傳統(tǒng)的流密碼加密算法進行進一步的改進。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種安全強度高、算法簡潔易于實現(xiàn)、以及存儲代價小的4個非線性驅(qū)動的輕量級流密碼加密方法。為解決上述問題,本發(fā)明是通過以下方案實現(xiàn)的:4個非線性驅(qū)動的輕量級流密碼加密方法,包括如下步驟:( I)內(nèi)部狀態(tà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)的狀態(tài)由比特(kl,k2,……,k22,vl,v2,……,v22,cl, c2,......, c20)注入,寄存器(s65,s66,......,sl28)的狀態(tài)由比特(k23,k24,......,k44, v23, v24,......,v44,c21,c22,......,c40)注入,寄存器(sl29,sl30......,sl92)的狀態(tài)由比特(k45,k46,......, k66, v45, v46,......,
v66, c41, c42,......,c60)注入,寄存器(sl93,sl94,......,s256)的狀態(tài)由比特(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的狀態(tài)分別是從寄存器(sl,s2,……,s256)中選取不同的6個字進行平衡及2次項的組合后注入的,其中存儲器tl的狀態(tài)由s3,s62,s63, s64,sl25, sl89來決定;存儲器t2的狀態(tài)由s36,sl26,sl27,sl28,sl88, s252 來決定;存儲器 t3 的狀態(tài)由 s59,sl58,sl90, sl91,s251 來決定,存儲器t4的狀態(tài)由s21,sl85,s268,s254,s255來決定;(b)寄存器(sl,s2,......,s64)的狀態(tài)更新為(t3,sl,s2,......,s63),寄存器(s65,s66,......,sl28)的狀態(tài)更新為(tl,s65,s66,......,sl27),寄存器(sl29,sl30,......,sl92)的狀態(tài)更新為(t4,sl29,sl30,......,sl91),寄存器(sl93,sl94,......,s256)的狀態(tài)更新為(t2,sl93,sl94,......,s255);(2)密鑰流生成階段;若需要生成的密鑰流比特數(shù)N個,則執(zhí)行以下步驟N次;(2.1)開辟4個新的存儲器(tl’,t2’,t3’,t4’),其中該新的存儲器tl,,t2,,t3,,t4’的狀態(tài)分別是從寄存器(sl,s2,……,s256)中選取不同的2個字進行線性組合后注入的,其中新的存儲器11’的狀態(tài)由s32,s64來決定;新的存儲器t2’的狀態(tài)由s92,sl28等來決定;新的存儲器t3’的狀態(tài)由s 160,s 192等來決定;新的存儲器t4’的狀態(tài)由s226,s256等來決定;(2.2)將新的存儲器tl’,t2’,t3’,t4’進行線性組合后,輸出密鑰流比特;(2.3)分別更新新的存儲器(tl’,t2’,t3’,t4’),即將新的存儲器tl’,t2’,t3’,t4,的狀態(tài)更新為由另一個新的存儲器(tl’,t2,,t3,,t4,)之一和存儲器(tl,t2,t3,t4)中對應(yīng)選取的的6個字進行平衡及2次項的組合后注入;其中新的存儲器tl’的狀態(tài)由t3,,s3,s62,s63,s64,sl25, sl89 來決定;新的存儲器 t2’ 的狀態(tài)由 tl’,s36,sl26,sl27,sl28,sl88, s252 來決定;新的存儲器 t3,的狀態(tài)由 t4,,s59,sl58,sl90, sl91,s251 來決定,新的存儲器t4’的狀態(tài)由t2,,s21,sl85,s268,s254,s255來決定;(2.4)寄存器(sl,s2,......,s64)的狀態(tài)更新為(t3,,sl,s2,......,s63);寄存器(s65,s66,……,sl28)的狀態(tài)更新為(tl,,s65,s66,……,sl27);寄存器(sl29,sl30,......,sl92)的狀態(tài)更新為(t4,,sl29,sl30,......,sl91);寄存器(sl93,sl94,......,s256)的狀態(tài)更新為(t2,,sl93,sl94,......,s255);(3)加密階段;Yi=X1 Zi,其中Yi為獲得的密文,Xi為待加密的明文,Zi密鑰流比特;上述各步驟中,“Φ”表示異或運算,“.”表示與運算。在步驟(1.1)中,種子密鑰K為保密的,初始向量V為保密的或公開的。在步驟(1.1)中,初始向量V為發(fā)送接收雙方協(xié)商一致的值。在步驟(1.1)中,常量值C具體為(1,0,1,0,……,1,0)。
在步驟(2)中,密鑰流比特數(shù)N介于I 256之間。
在步驟(1.3)的(a)中,存儲器tl的狀態(tài)由s3 s62.s63 s64 sl25 sl89 注入,存儲器 t2 的狀態(tài)由 s36 sl26.sl27 sl28 sl88 s252 注入,存儲器 t3 的狀態(tài)由 s59 sl58 sl90.sl91 s251 注入,存儲器的狀態(tài)由 s21 sl85 s268 s2M.s255 注入。在步驟(2.1)中,新的存儲器11’的狀態(tài)由s32 s64注入,新的存儲器t2’的狀態(tài)由s92 sl28注入,新的存儲器t3’的狀態(tài)由sl60 sl92注入,新的存儲器t4’的狀態(tài)由s226 s256注入。在步驟(2.2)中,輸出密鑰流比特z=tr t2 ’ t3’ t4’。在步驟(2.3)中,新的存儲器tl’的狀態(tài)更新為t3’ s3 s62*s63 s64
sl25 sl89,新的存儲器 t2’ 的狀態(tài)更新為 tl’ s76 sl26.sl27 sl28
sl88 s252,新的存儲器t3’的狀態(tài)更新為t4’ s59* sl58 sl90.sl91 s251,新的存儲器 t4’ 的狀態(tài)更新為 t2’ s21* sl85 s268 s254
s2550與現(xiàn)有技術(shù)相比,本發(fā)明具有如下特點:(I)僅采用面向比特的異或“(B ”和與運算“.”運算,內(nèi)部操作容易實現(xiàn);(2)借鑒分組密碼的多輪迭代思想,對初始化內(nèi)部向量進行“多輪”比特混合置亂操作,從而能夠快速達到置亂效果;(3)新引入“分區(qū)交替擴散”和“多層混淆”的技術(shù),快速完成種子密鑰比特間混淆和擴散效果; (4)所選的4個非線性驅(qū)動部件具有穩(wěn)固的密碼學(xué)性質(zhì)以抵抗多種攻擊,如平凡的統(tǒng)計攻擊、邊信道攻擊、時空折中攻擊等等;(5)密鑰生成階段新引入雙二次項進行非線性置亂,有效抵抗傳統(tǒng)的內(nèi)部狀態(tài)恢復(fù)攻擊;(6)種子密鑰長度為88比特具有高安全強度;(7)算法簡潔、容易軟、硬件平行實現(xiàn),特別適合資源受限環(huán)境下使用,比如無限傳感器網(wǎng)絡(luò)等;(8)實現(xiàn)的存儲代價小。
圖1為流密碼加密方法使用示意圖。
具體實施例方式一種4個非線性驅(qū)動的輕量級流密碼加密方法,包括如下步驟:第一階段,內(nèi)部狀態(tài)初始化階段。(1.1)隨機選擇I個可變的88比特的種子密鑰K= (kl,k2,……,k88)、l個可變的88比特的初始向量V= (vl,v2,……,v80)、一個I個固定的80比特的常量值C= (cl,c2,……,c80)。在本發(fā)明中,種子密鑰K始終為保密的。初始向量V為發(fā)送接收雙方協(xié)商一致的一個任意的值。初始向量V可以選擇保密,也可以選擇公開。在本實施例中,常量值C 具體為(1,0,1,0,……,1,0)。(1.2)將上述88比特的種子密鑰K,88比特的初始向量V和80比特的常量值C注入一個256比特長的寄存器(sl,s2,……,s256)中。其中寄存器(sl,s2,……,s64)的狀態(tài)由比特(kl,k2,……,k22,vl,v2,……,v22,cl, c2,......, c20)注入,寄存器(s65,s66,......,sl28)的狀態(tài)由比特(k23,k24,......,k44, v23, v24,......,
v44,c21,c22,......,c40)注入,寄存器(s129,s 130......,s 192 )的狀態(tài)由比特(k45,k46,......,k66,v45,v46,......,
v66, c41, c42,......,c60)注入,寄存器(sl93,sl94,......,s256)的狀態(tài)由比特(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的狀態(tài)由s3,s62,s63,s64,sl25, sl89來決定,為了減少計算量,并提高安全強度,一般要求采用平衡及2次項的組合,比如采用:s3 s62.s63 s64 sl25 sl89注入,存儲器t2的狀態(tài)由s36,sl26,sl27,sl28,sl88, s252來決定,同樣采用平衡及2次項的組合,比如采用:s36 sl26.sl27 sl28 sl88 s252注入,存儲器t3的狀態(tài)由s59,sl58,sl90, sl91,s251來決定,同樣采用平衡及2次項的組合,比如采用:s59 sl58 sl90.sl91 s251注入,存儲器t4的狀態(tài)由s21,sl85,s268,s254,s255來決定,同樣采用平衡及2次項的組合,比如采用:s21 sl85 s268 s254.s255注入。(b)寄存器(sl,s2,......,s64)的狀態(tài)更新為(t3,sl,s2,......,s63),寄存器(s65,s66,......,sl28)的狀態(tài)更新為(tl,s65,s66,......,sl27),寄存器(sl29,sl30,......,sl92)的狀態(tài)更新為(t4,sl29,sl30,......,sl91),寄存器(sl93,sl94,......,s256)的狀態(tài)更新為(t2,sl93,sl94,......,s255)。第二階段,密鑰流生成階段。若需要生成的密鑰流比特數(shù)N個,則執(zhí)行以下步驟N次。在本發(fā)明中,輸出的密鑰流比特至少為I個、至多為256個,即N介于I 256之間。(2.1)開辟4個新的存儲器(tl’,t2’,t3’,t4’),其中新的存儲器tl’的狀態(tài)由s32,s64來決定,為了計算快速,一般采用線性組合,t匕如米用:s32 s64注入,新的存儲器t2’的狀態(tài)由s92,sl28等來決定,同樣采用線性組合,比如s92 sl28 注入,新的存儲器t3’的狀態(tài)由sl60,sl92等來決定,同樣采用線性組合,比如s] HO S192 注入,新的存儲器t4’的狀態(tài)由s226,s256等來決定,同樣采用線性組合,比如s226 s256 注入。(2.2)輸出密鑰流比特由tl’,t2’,t3’,t4’來決定,為了實現(xiàn)快速一般采用線性組合,比如采用:Z=tl’t.3’ t4’。(2.3)分別更新新的存儲器(tl’,t2’,t3’,t4’),將新的存儲器tl’,t2’,t3’,t4’的狀態(tài)更新為由另一個新的存儲器(tl’,t2’,t3’,t4’)之一和存儲器(tl,t2,t3,t4)中對應(yīng)選取的的6個字進行平衡及2次項的組合后注入;即
新的存儲器tl’ 的狀態(tài)更新為 t.3’ s3 s62.s63 s64.sl25 sl89,新的存儲器t2’的狀態(tài)更新為tl’ Φ s76 sl26.sl27 sl28.sl88 s252,新的存儲器t3’ 的狀態(tài)更新為 t4’ s59.sl58 sl90.sl91 s251,新的存儲器t4’的狀態(tài)更新為 t2’ s21.sl85 s268 s254.s255。(2.4)寄存器(sl,s2,......,s64)的狀態(tài)更新為(t3,,sl,s2,......,s63)。寄存器(s65,s66,......,sl28)的狀態(tài)更新為(tl,,s65,s66,......,sl27)。寄存器(sl29,sl30,......,sl92)的狀態(tài)更新為(t4,,sl29,sl30,......,sl91)。寄存器(sl93,sl94,......,s256)的狀態(tài)更新為(t2,,sl93,sl94,......,s255)。(3)加密階段。Y1=Xi^Zi,其中Yi為獲得的密文,Xi為待加密的明文,Zi密鑰流比特。該加密階段與現(xiàn)有技術(shù)相同,參見圖1。
權(quán)利要求
1.4個非線性驅(qū)動的輕量級流密碼加密方法,其特征是包括如下步驟: (O內(nèi)部狀態(tài)初始化階段; (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)的狀態(tài)由比特(kl,k2,……,k22,vl,v2,……,v22,cl,c2,......,c20)注入, 寄存器(s65,s66,......,sl28)的狀態(tài)由比特(k23,k24,......,k44,v23,v24,......,v44,c21,c22,......,c40)注入, 寄存器(sl29,sl30......,sl92)的狀態(tài)由比特(k45,k46,......,k66,v45,v46,......,v66, c41, c42,......,c60)注入, 寄存器(sl93,sl94,......,s256)的狀態(tài)由比特(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的狀態(tài)分別是從寄存器(sl,s2,……,s256)中選取不同的6個字進行平衡及2次項的組合后注入的,其中存儲器tl的狀態(tài)由s3,s62,s63,s64,sl25, sl89來決定;存儲器t2的狀態(tài)由s36,sl26,sl27,sl28,sl88, s252 來決定;存儲器 t3 的狀態(tài)由 s59,sl58,sl90, sl91,s251 來決定,存儲器t4的狀態(tài)由s21,sl85,s268,s254,s255來決定; (b)寄存器(sl,s2,......,s64)的狀態(tài)更新為(t3, sl, s2,......, s63), 寄存器(s65,s66,……,sl28)的狀態(tài)更新為(tl,s65,s66,……,sl27), 寄存器(sl29,sl30,......,sl92)的狀態(tài)更新為(t4,sl29,sl30,......,sl91), 寄存器(sl93,sl94,......,s256)的狀態(tài)更新為(t2,sl93,sl94,......,s255); (2)密鑰流生成階段;若需要生成的密鑰流比特數(shù)N個,則執(zhí)行以下步驟N次; (2.1)開辟4個新的存儲器41’32’33’34’),其中該新的存儲器七1’32’33’34’的狀態(tài)分別是從寄存器(sl,s2,……,s256)中選取不同的.2個字進行線性組合后注入的,其中新的存儲器tl’的狀態(tài)由s32,s64來決定;新的存儲器t2’的狀態(tài)由s92,sl28等來決定;新的存儲器t3’的狀態(tài)由sl60,sl92等來決定;新的存儲器t4’的狀態(tài)由s226,s256等來決定; (2.2)將新的存儲器tl’,t2’,t3’,t4’進行線性組合后,輸出密鑰流比特; (2.3)分別更新新的存儲器(tl’,t2’,t3’,t4’),即將新的存儲器tl’,t2’,t3’,t4’的狀態(tài)更新為由另一個新的存儲器(tl’,t2’,t3’,t4’)之一和存儲器(tl,t2,t3,t4)中對應(yīng)選取的的6個字進行平衡及2次項的組合后注入;其中新的存儲器tl’的狀態(tài)由t3’,s3,s62,s63,s64,sl25, sl89 來決定;新的存儲器 t2’ 的狀態(tài)由 tl’,s36, sl26, sl27, sl28,sl88, s252來決定;新的存儲器t3’的狀態(tài)由t4,,s59,sl58,sl90, sl91,s251來決定,新的存儲器t4,的狀態(tài)由t2,,s21,sl85,s268,s254,s255來決定; (2.4)寄存器(sl,s2,......,s64)的狀態(tài)更新為(t3,,sl,s2,......,s63);寄存器(s65,s66,……,sl28)的狀態(tài)更新為(tl,,s65,s66,……,sl27); 寄存器(sl29,sl30,……,sl92)的狀態(tài)更新為(t4’,sl29,sl30,……,sl91); 寄存器(sl93,sl94,......,s256)的狀態(tài)更新為(t2,,sl93,sl94,......,s255); (3)加密階段;Yi=XAZi,其中Yi為獲得的密文,Xi為待加密的明文,Zi密鑰流比特; 上述各步驟中,“Φ”表示異或運算,“.”表示與運算。
2.根據(jù)權(quán)利要求1所述的4個非線性驅(qū)動的輕量級流密碼加密方法,其特征是在步驟(1.0中,種子密鑰K為保密的,初始向量V為保密的或公開的。
3.根據(jù)權(quán)利要求1所述的4個非線性驅(qū)動的輕量級流密碼加密方法,其特征是在步驟(1.0中,初始向量V為發(fā)送接收雙方協(xié)商一致的值。
4.根據(jù)權(quán)利要求1所述的4個非線性驅(qū)動的輕量級流密碼加密方法,其特征是在步驟(1.1)中,常量值C具體為(1,0,1,0,……,1,0)。
5.根據(jù)權(quán)利要求1所述的4個非線性驅(qū)動的輕量級流密碼加密方法,其特征是在步驟(2)中,密鑰流比特數(shù)N介于I 256之間。
6.根據(jù)權(quán)利要求1所述的4個非線性驅(qū)動的輕量級流密碼加密方法,其特征是,在步驟(1.3)的(a)中, 存儲器tl的狀態(tài)由s3 s62.s63 s64 sl25 sl89注入, 存儲器 t2 的狀態(tài)由s36 sl26.sl27 sl28 sl88 s252注入, 存儲器t3的狀態(tài)由S59 sl58 sl90.sl91 s251注入, 存儲器t4的狀態(tài)由s21 sl85 s268 s254.s255注入。
7.根據(jù)權(quán)利要求1所述的4個非線性驅(qū)動的輕量級流密碼加密方法,其特征是,在步驟(2.1)中, 新的存儲器11’的狀態(tài)由s32 s64注入, 新的存儲器t2’的狀態(tài)由s92 sl28注入, 新的存儲器t3,的狀態(tài)由K160 s 192注入, 新的存儲器t4’的狀態(tài)由S226 s256注入。
8.根據(jù)權(quán)利要求1所述的4個非線性驅(qū)動的輕量級流密碼加密方法,其特征是,在步驟(2.2)中, 輸出密鑰流比特Z=tl’ t2 ’ 3Λ t.4’ 。
9.根據(jù)權(quán)利要求1所述的4個非線性驅(qū)動的輕量級流密碼加密方法,其特征是,在步驟(2.3)中, 新的存儲器tl’的狀態(tài)更新力t3 s3 s62.s63 s64.sl25 sl89, 新的存儲器t2’的狀態(tài)更新為tl’ s76 sl26.sl27十sl28.sl88 s252, 新的存儲器t3’的狀態(tài)更新為t4’ s59*sl58 sl90*sl91 s251, 新的存儲器t4’的狀態(tài)更新為t2’ s21*sl85 s268 s254*s2550
全文摘要
本發(fā)明公開一種4個非線性驅(qū)動的輕量級流密碼加密方法,其僅采用面向比特的異或和與運算運算,內(nèi)部操作容易實現(xiàn);借鑒分組密碼的多輪迭代思想,對初始化內(nèi)部向量進行“多輪”比特混合置亂操作,從而能夠快速達到置亂效果;新引入“分區(qū)交替擴散”和“多層混淆”的技術(shù),快速完成種子密鑰比特間混淆和擴散效果;所選的4個非線性驅(qū)動部件具有穩(wěn)固的密碼學(xué)性質(zhì)以抵抗多種攻擊;密鑰生成階段新引入雙二次項進行非線性置亂,有效抵抗傳統(tǒng)的內(nèi)部狀態(tài)恢復(fù)攻擊;種子密鑰長度為88比特具有高安全強度;算法簡潔、容易軟、硬件平行實現(xiàn),特別適合資源受限環(huán)境下使用,比如無限傳感器網(wǎng)絡(luò)等;實現(xiàn)的存儲代價小。
文檔編號H04L9/08GK103166753SQ201310098769
公開日2013年6月19日 申請日期2013年3月26日 優(yōu)先權(quán)日2013年3月26日
發(fā)明者丁勇, 韋永壯, 丁繼強, 官秀國, 李新國 申請人:桂林電子科技大學(xué)