專利名稱:一種應(yīng)用于無(wú)線局域網(wǎng)的加密方法
技術(shù)領(lǐng)域:
本發(fā)明涉及分組加密算法的實(shí)現(xiàn)方法,尤其涉及一種用于無(wú)線局域網(wǎng)的加密方法。
背景技術(shù):
隨著無(wú)線局域網(wǎng)的廣泛應(yīng)用,其安全性問(wèn)題越來(lái)越突出。對(duì)于無(wú)線局域網(wǎng)來(lái)說(shuō),在 安全性方面非常脆弱,這是由于傳輸速率能達(dá)到11M,而且覆蓋范圍達(dá)100米。正是其傳輸 速度快,覆蓋范圍廣,才使它在安全方面非常脆弱。因?yàn)閿?shù)據(jù)在傳輸?shù)倪^(guò)程中都曝露在空 中,很容易被別有用心的人截取數(shù)據(jù)包。目前,在現(xiàn)有算法的實(shí)現(xiàn)方式中,大多還是采用軟件方法實(shí)現(xiàn),其實(shí)現(xiàn)方式簡(jiǎn)單方 便,但其運(yùn)算速度卻不是太理想,很難滿足實(shí)時(shí)的需要,而硬件實(shí)現(xiàn)的方式存在硬件開(kāi)銷 大,成本過(guò)高,電路實(shí)現(xiàn)面積和功耗大等不足。而且隨著社會(huì)對(duì)信息安全的需要越來(lái)越高, 因此對(duì)加密算法的電路實(shí)現(xiàn)以及對(duì)密鑰的管理也都提出了很大的挑戰(zhàn),在實(shí)際應(yīng)用中,相 對(duì)于解密的相關(guān)性能來(lái)說(shuō)用戶往往更加關(guān)注加密的性能指標(biāo),因此如何在滿足加密數(shù)據(jù)安 全性的同時(shí),并提高密碼算法的加密速度,這又是一個(gè)新的難題。
發(fā)明內(nèi)容
本發(fā)明目的是提供一種應(yīng)用于無(wú)線局域網(wǎng)的加密方法,該方法大大提高了加解密 速度和單位時(shí)間的數(shù)據(jù)吞吐量,且數(shù)據(jù)的安全性強(qiáng)。為達(dá)到上述目的,本發(fā)明采用的技術(shù)方案是一種應(yīng)用于無(wú)線局域網(wǎng)的加密方法,包括以下步驟步驟一.將第一組明文編碼以字為單位分為4個(gè)編碼字,將第一組主密鑰編碼以 字為單位分為4個(gè)密鑰字;步驟二 .將所述第一組主密鑰編碼中第1位密鑰字至第3位密鑰字與一常量異或 運(yùn)算后,再作可逆變換,再與第0位密鑰字異或運(yùn)算生成一個(gè)字長(zhǎng)的第1輪子密鑰,再將第1 位密鑰字至第3位密鑰字前移至第0位至第2位密鑰字的位置,將所述第1輪子密鑰移至 第3位密鑰字的位置,并保留該輪子密鑰;步驟三.重復(fù)步驟二生成第一組主密鑰編碼的31個(gè)子密鑰;步驟四.將所述第1輪子密鑰與所述第一組明文編碼第1位編碼字至第3位編碼 字異或運(yùn)算后,再作可逆變換,再與第0位編碼字異或運(yùn)算生成一個(gè)字長(zhǎng)的第一輪密文字, 再將第1位編碼字至第3位編碼字前移至第0位至第2位編碼字的位置,將所述第一輪密 文字移至第3位編碼字的位置;步驟五.送入第二組明文編碼,該第二組明文編碼以字為單位分為4個(gè)編碼字,該 第二組明文編碼與其上一組明文編碼間隔至少4輪時(shí)鐘周期;同時(shí),送入第二組主密鑰編 碼,第二組主密鑰編碼以字為單位分為4個(gè)密鑰字,該第二組主密鑰編碼與其上一組主密 鑰編碼的時(shí)間間隔與所述第二組明文編碼與第一組明文編碼的時(shí)間間隔相同;
步驟六.重復(fù)步驟二生成第二組主密鑰編碼的31個(gè)子密鑰;步驟七.對(duì)所述第一組明文編碼依次按順序使用第一組主密鑰編碼的第2輪子密 鑰至第32輪子密鑰重復(fù)步驟三進(jìn)行31輪加密;同理,對(duì)所述第二組明文編碼依次按順序使 用第二組主密鑰編碼的第1輪子密鑰至第32輪子密鑰重復(fù)步驟三進(jìn)行32輪加密;步驟八.當(dāng)一組明文編碼經(jīng)過(guò)32輪加密后,將其第0位至第3位編碼字作反序變 換,獲得密文編碼。上述技術(shù)方案中的有關(guān)內(nèi)容解釋如下1.上述方案中,所述第一組明文編碼與其上一組明文編碼間隔為4輪時(shí)鐘周期。2.上述方案中,所述加密過(guò)程中可逆變換為T為加密過(guò)程中可逆變換,其中T為 Z322到Z322的一個(gè)可逆變換,由非線性變換τ和線性變化L復(fù)合而成,即T(.) =L(x (.))。其中非線性變換τ 它是由4個(gè)并行的S盒構(gòu)成。設(shè)輸入 為 A= (B1, a2, a3, a4) e (Z82)4,輸出為 B= (b1 b2, b3, b4) e (Z82)4,貝U有(b” b2, b3, b4) = τ (A) = (Sbox (a^ , Sbox (a2), Sbox (a3), Sbox (a4))線性變換L 非線性變換τ的輸出也即為線性變換L的輸入。設(shè)輸入為B e Z322, 則有C=L(B)=B θ (Β 2) (Β 10) @ (Β 18) (Β 24),其中<< i 為 32 比
特循環(huán)左移i位。由于上述技術(shù)方案運(yùn)用,本發(fā)明與現(xiàn)有技術(shù)相比具有下列優(yōu)點(diǎn)和效果(1)本發(fā)明設(shè)計(jì)簡(jiǎn)潔,加解密方式相同,密鑰擴(kuò)展方式和加解密方式類似,加解密 中和密鑰擴(kuò)展中的S盒也相同,該算法實(shí)現(xiàn)時(shí)硬件的利用率更高,且有利于整個(gè)算法在更 小的電路面積上實(shí)現(xiàn);其次,安全性高,對(duì)于我國(guó)的信息安全有更加可靠的保證。通過(guò)對(duì)密 鑰的實(shí)時(shí)更新,使得數(shù)據(jù)的安全性更好,可以阻止更多攻擊。(2)加解密速度快,本發(fā)明通過(guò)分別寄存加解密算法過(guò)程中所產(chǎn)生的每一輪的 輪密文和由密鑰擴(kuò)展算法過(guò)程中所產(chǎn)生的每一輪的子密鑰,再由一個(gè)數(shù)據(jù)輸入指示信號(hào) data_input和主密鑰輸入指示信號(hào)keyjnput來(lái)分別控制數(shù)據(jù)的輸入和主密鑰的輸入,從 而可在經(jīng)過(guò)32個(gè)時(shí)鐘單元獲得第一組128比特?cái)?shù)據(jù)的密文之后,每隔4個(gè)時(shí)鐘周期即可獲 得第二組,第三組,直到所有數(shù)據(jù)的密文,從而不用分別等待32個(gè)時(shí)鐘單元才能獲得相應(yīng) 的明文數(shù)據(jù)的密文,也即4個(gè)時(shí)鐘單元即可處理一組128比特的明文數(shù)據(jù),因此大大的提高 了數(shù)據(jù)的加解密速度和數(shù)據(jù)的吞吐量,從而可以大批量的處理數(shù)據(jù),使得加解密處理速度 獲得了極大的提高。(3)電路實(shí)現(xiàn)簡(jiǎn)單,通過(guò)定義不同的寄存器用于寄存每一輪所產(chǎn)生的輪密文和子 密鑰,從而使得電路實(shí)現(xiàn)相對(duì)簡(jiǎn)單,不需要過(guò)多的考慮加解密算法和密鑰擴(kuò)展算法的邏輯 實(shí)現(xiàn)。(4)適用面更廣,通過(guò)大幅的提高了加解密處理速度和數(shù)據(jù)吞吐量,從而使得能適 用于對(duì)速度要求更高的應(yīng)用領(lǐng)域,從而使得其的使用范圍擴(kuò)大了,能適用不同的應(yīng)用環(huán)境。
附圖1為本發(fā)明整體電路結(jié)構(gòu)示意圖;附圖2為本發(fā)明密鑰擴(kuò)展電路每一輪的運(yùn)算內(nèi)部框架示意附圖3為本發(fā)明加解密電路整體框架示意圖;附圖4為本發(fā)明加解密算法中每一輪的運(yùn)算的內(nèi)部框架示意圖。
具體實(shí)施例方式下面結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步描述實(shí)施例一種應(yīng)用于無(wú)線局域網(wǎng)的加密方法,包括以下步驟步驟一.將第一組明文編碼以字為單位分為4個(gè)編碼字,將第一組主密鑰編碼以 字為單位分為4個(gè)密鑰字。步驟二 .將所述第一組主密鑰編碼中第1位密鑰字至第3位密鑰字與一常量異或 運(yùn)算后,再作可逆變換,再與第0位密鑰字異或運(yùn)算生成一個(gè)字長(zhǎng)的第1輪子密鑰,再將第1 位密鑰字至第3位密鑰字前移至第0位至第2位密鑰字的位置,將所述第1輪子密鑰移至 第3位密鑰字的位置,并保留該輪子密鑰。步驟三.重復(fù)步驟二生成第一組主密鑰編碼的31個(gè)子密鑰。步驟四.將所述第1輪子密鑰與所述第一組明文編碼第1位編碼字至第3位編碼 字異或運(yùn)算后,再作可逆變換,再與第0位編碼字異或運(yùn)算生成一個(gè)字長(zhǎng)的第一輪密文字, 再將第1位編碼字至第3位編碼字前移至第0位至第2位編碼字的位置,將所述第一輪密 文字移至第3位編碼字的位置。步驟五.送入第二組明文編碼,該第二組明文編碼以字為單位分為4個(gè)編碼字,該 第二組明文編碼與其上一組明文編碼間隔至少4輪時(shí)鐘周期;同時(shí),送入第二組主密鑰編 碼,第二組主密鑰編碼以字為單位分為4個(gè)密鑰字,該第二組主密鑰編碼與其上一組主密 鑰編碼的時(shí)間間隔與所述第二組明文編碼與第一組明文編碼的時(shí)間間隔相同。步驟六.重復(fù)步驟二生成第二組主密鑰編碼的31個(gè)子密鑰。步驟七.對(duì)所述第一組明文編碼依次按順序使用第一組主密鑰編碼的第2輪子密 鑰至第32輪子密鑰重復(fù)步驟三進(jìn)行31輪加密;同理,對(duì)所述第二組明文編碼依次按順序使 用第二組主密鑰編碼的第1輪子密鑰至第32輪子密鑰重復(fù)步驟三進(jìn)行32輪加密。步驟八.當(dāng)一組明文編碼經(jīng)過(guò)32輪加密后,將其第0位至第3位編碼字作反序變 換,獲得密文編碼。所述第一組明文編碼與其上一組明文編碼間隔為4輪時(shí)鐘周期。所述加密過(guò)程中可逆變換為T為加密過(guò)程中可逆變換,其中T為Z322到Z322的一 個(gè)可逆變換,由非線性變換τ和線性變化L復(fù)合而成,即T(.) =L(x (.))。其中非線性變換τ 它是由4個(gè)并行的S盒構(gòu)成。設(shè)輸入 為 A= (B1, a2, a3, a4) e (Z82)4,輸出為 B= (b1 b2, b3, b4) e (Z82)4,貝U有(b” b2, b3, b4) = τ (A) = (Sbox (a^ , Sbox (a2), Sbox (a3), Sbox (a4))線性變換L 非線性變換τ的輸出也即為線性變換L的輸入。設(shè)輸入為B e Z322, 則有C=L(B)=B θ (Β 2) (Β 10) (Β 18) (Β 24),其中<< i 為 32 比
特循環(huán)左移i位。本實(shí)施例上述內(nèi)容解釋如下。
附圖1中各信號(hào)的功能描述如下輸入信號(hào)elk:系統(tǒng)時(shí)鐘輸入,rst 復(fù)位信號(hào),低電平有效,crypt 加解密模式,0為解密,1為加密,key[127:0]算法的主密鑰,位寬為128比特,new_key 更新主密鑰指示信號(hào),sms4_in [127:0]明文輸入,位寬為128比特。data_input 明文輸入指示信號(hào)。Keyjnput 密鑰輸入指示信號(hào)。輸出信號(hào)sms4_out [127:0]密文輸出,位寬為128比特,cryptdone 加解密結(jié)束指示信號(hào),roundcipher[31:0]輪密文,位寬為 32 比特。內(nèi)部信號(hào)round[5:0]輪選擇控制信號(hào),位寬為6比特,roundkey[31:0]輪密鑰,位寬為 32 比特。加密密鑰長(zhǎng)度為128 比特,表示為 MK = (MK0,MK1, MK2, MK3),其中 MKi (i = 0,1,2, 3)為字,輪密鑰表示為(rlvrkp...,rk31),其中rki(i = 0,1,... ,31)為字。輪密鑰由加 密密鑰生成。Hi = (FK0, FK1, FK2, FK3)為系統(tǒng)參數(shù),CK = (CK0, CK1,... , CK31)為固定參數(shù), 用于密鑰擴(kuò)展算法,其中FKi (i = 0,1,2,3),CKi (i = 0,1,...,31)為字。本算法采用非線 性迭代結(jié)構(gòu),以字為單位進(jìn)行加密運(yùn)算,稱一次迭代運(yùn)算為一輪變換.一共有32輪迭代變 換。設(shè)輸入為(‘XpXyX》e (Z322) 4,輪密鑰為rk e Z322,則輪函數(shù)F為F(X0, Xb X2, X3, rk)=X0 十 T^X1 十 X2 十 X3 十 rk)定義反序變換R 為=R(Ac^ApAyA3) = (A3jA2jAijA0)jAi e Z322 , i = 0,1,2,3。設(shè)明 文輸入為(XcpXPU3) e (Z322) 4,密文輸出為(YtlJpY2J3) e (Z322) 4,輪密鑰為 rf e Z322, i = 0,1,...,31。則本算法的加密變換為對(duì)于i =0,1,...,31有Xi+4=F( Xi, Xi+1, Xi+2, Xi+3,rki )= Xi T(Xi+1 @ Xi+2 Xi+3 Tki)(Y0,Yl, Y2, Y3) = R(X32, X33, X34, X35) = (X35, X34, X33, X32)本發(fā)明算法硬件實(shí)現(xiàn)方法包含算法中的密鑰擴(kuò)展算法的硬件實(shí)現(xiàn)和加解密算法 的硬件實(shí)現(xiàn),而用快速的算法硬件實(shí)現(xiàn)方法實(shí)現(xiàn)后的電路包括密鑰擴(kuò)展電路,加解密電路 和輪控制電路。所述密鑰擴(kuò)展電路是指用128比特的主密鑰產(chǎn)生算法中32輪加解密所需的 子密鑰的電路,其中每一輪子密鑰長(zhǎng)度為32比特。所述加解密電路是指128比特明文和由 密鑰擴(kuò)展電路產(chǎn)生的32輪子密鑰經(jīng)過(guò)算法32輪的加解密過(guò)程得到128比特密文的電路。 所述輪控制電路是指選擇和控制密鑰擴(kuò)展電路以及加解密電路中的輪數(shù)。所述的加解密電路,定義32個(gè)32比特的寄存器,分別寄存由加解密算法所產(chǎn)生的 32輪的輪密文,其中每一輪的輪密文為32比特,數(shù)據(jù)輸入長(zhǎng)度為128比特,而由一個(gè)數(shù)據(jù)輸 入指示信號(hào)datajnput來(lái)確定何時(shí)送入新的128比特?cái)?shù)據(jù),指示信號(hào)datajnput是一個(gè) 周期為4個(gè)時(shí)鐘單元的指示信號(hào),也即每4個(gè)時(shí)鐘單元后送入新的128比特?cái)?shù)據(jù)。
6
所述的加解密電路,當(dāng)指示信號(hào)datajnput指示信號(hào)有效時(shí),第一組128比特?cái)?shù) 據(jù)送入加解密電路中,經(jīng)過(guò)32個(gè)時(shí)鐘單元可獲得第一組128比特?cái)?shù)據(jù)的密文,再經(jīng)4個(gè)時(shí) 鐘單元即可獲得第二組128比特?cái)?shù)據(jù)的密文,再經(jīng)4個(gè)時(shí)鐘單元即可獲得第三組128比特 數(shù)據(jù)的密文,依次類推,直到所有的數(shù)據(jù)處理完成。所述的密鑰擴(kuò)展電路,定義32個(gè)32比特的寄存器,分別寄存密鑰擴(kuò)展算法所產(chǎn)生 的32輪的子密鑰,其中每一輪的子密鑰長(zhǎng)度為32比特,主密鑰為128比特,而由一個(gè)主密 鑰輸入指示信號(hào)keyjnput來(lái)確定何時(shí)送入新的128比特主密鑰。指示信號(hào)keyjnput是 一個(gè)周期為4個(gè)時(shí)鐘單元的指示信號(hào)。在主密鑰不變的情況下,則指示信號(hào)key_inpUt — 直無(wú)效;在主密鑰隨輸入的明文數(shù)據(jù)變化而變化時(shí),指示信號(hào)key_inpUt的時(shí)鐘周期等同 于數(shù)據(jù)輸入指示信號(hào)datajnput的時(shí)鐘周期。上述實(shí)施例只為說(shuō)明本發(fā)明的技術(shù)構(gòu)思及特點(diǎn),其目的在于讓熟悉此項(xiàng)技術(shù)的人 士能夠了解本發(fā)明的內(nèi)容并據(jù)以實(shí)施,并不能以此限制本發(fā)明的保護(hù)范圍。凡根據(jù)本發(fā)明 精神實(shí)質(zhì)所作的等效變化或修飾,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
一種應(yīng)用于無(wú)線局域網(wǎng)的加密方法,其特征在于包括以下步驟步驟一.將第一組明文編碼以字為單位分為4個(gè)編碼字,將第一組主密鑰編碼以字為單位分為4個(gè)密鑰字;步驟二.將所述第一組主密鑰編碼中第1位密鑰字至第3位密鑰字與一常量異或運(yùn)算后,再作可逆變換,再與第0位密鑰字異或運(yùn)算生成一個(gè)字長(zhǎng)的第1輪子密鑰,再將第1位密鑰字至第3位密鑰字前移至第0位至第2位密鑰字的位置,將所述第1輪子密鑰移至第3位密鑰字的位置,并保留該輪子密鑰;步驟三.重復(fù)步驟二生成第一組主密鑰編碼的31個(gè)子密鑰;步驟四.將所述第1輪子密鑰與所述第一組明文編碼第1位編碼字至第3位編碼字異或運(yùn)算后,再作可逆變換,再與第0位編碼字異或運(yùn)算生成一個(gè)字長(zhǎng)的第一輪密文字,再將第1位編碼字至第3位編碼字前移至第0位至第2位編碼字的位置,將所述第一輪密文字移至第3位編碼字的位置;步驟五.送入第二組明文編碼,該第二組明文編碼以字為單位分為4個(gè)編碼字,該第二組明文編碼與其上一組明文編碼間隔至少4輪時(shí)鐘周期;同時(shí),送入第二組主密鑰編碼,第二組主密鑰編碼以字為單位分為4個(gè)密鑰字,該第二組主密鑰編碼與其上一組主密鑰編碼的時(shí)間間隔與所述第二組明文編碼與第一組明文編碼的時(shí)間間隔相同;步驟六.重復(fù)步驟二生成第二組主密鑰編碼的31個(gè)子密鑰;步驟七.對(duì)所述第一組明文編碼依次按順序使用第一組主密鑰編碼的第2輪子密鑰至第32輪子密鑰重復(fù)步驟三進(jìn)行31輪加密;同理,對(duì)所述第二組明文編碼依次按順序使用第二組主密鑰編碼的第1輪子密鑰至第32輪子密鑰重復(fù)步驟三進(jìn)行32輪加密;步驟八.當(dāng)一組明文編碼經(jīng)過(guò)32輪加密后,將其第0位至第3位編碼字作反序變換,獲得密文編碼。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于所述第一組明文編碼與其上一組明文編 碼間隔為4輪時(shí)鐘周期。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于所述加密過(guò)程中可逆變換為T為加密過(guò) 程中可逆變換,其中T為Z322到Z322的一個(gè)可逆變換,由非線性變換τ和線性變化L復(fù)合而 成,即T(.) =L(x (.))。其中非線性變換τ 它是由4個(gè)并行的S盒構(gòu)成。設(shè)輸入為A =(B1, a2, a3, a4) e (Z82)4,輸出為 B= (b1 b2, b3, b4) e (Z82)4,貝U有 (bj, b2, b3, b4) = τ (A) = (Sbox(a),Sbox(a2),Sbox(a3),Sbox(a4)) 線性變換L 非線性變換τ的輸出也即為線性變換L的輸入。設(shè)輸入為B GZ322,則有C=L(B)=B θ (Β 2) (Β 10) (Β 18) θ (Β 24),其中<< i 為 32 比特循環(huán)左移i位。
全文摘要
一種應(yīng)用于無(wú)線局域網(wǎng)的加密方法,將第一組明文編碼以字為單位分為4個(gè)編碼字,將第一組主密鑰編碼以字為單位分為4個(gè)密鑰字;將所述第一組主密鑰編碼中第1位密鑰字至第3位密鑰字與第0位密鑰字運(yùn)算生成一個(gè)字長(zhǎng)的第1輪子密鑰,再將第1位密鑰字至第3位密鑰字前移至第0位至第2位密鑰字的位置,將所述第1輪子密鑰移至第3位密鑰字的位置;送入第二組明文編碼,該第二組明文編碼與其上一組明文編碼間隔至少4輪時(shí)鐘周期;同時(shí),送入第二組主密鑰編碼,該第二組主密鑰編碼與其上一組主密鑰編碼的時(shí)間間隔與所述第二組明文編碼與第一組明文編碼的時(shí)間間隔相同。該方法大大提高了加解密速度和單位時(shí)間的數(shù)據(jù)吞吐量,且數(shù)據(jù)的安全性強(qiáng)。
文檔編號(hào)H04W12/04GK101938739SQ201010272420
公開(kāi)日2011年1月5日 申請(qǐng)日期2010年9月6日 優(yōu)先權(quán)日2010年9月6日
發(fā)明者林雄鑫, 肖佐楠, 鄭茳, 鐘名富 申請(qǐng)人:蘇州國(guó)芯科技有限公司