Rc4流密碼生成器的制造方法
【專利摘要】本發(fā)明公開(kāi)了一種RC4流密碼生成器,K-box模塊將M*N比特的原始密鑰Key的各位按設(shè)定規(guī)則組合為F組一級(jí)秘鑰矢量,每一組一級(jí)秘鑰矢量包括2~個(gè)N比特位寬的二級(jí)密鑰矢量,并將各組一級(jí)秘鑰矢量及其二級(jí)密鑰矢量依序輸出,生成的流密碼以N比特位寬的格式進(jìn)行輸出,由于原始密鑰分為多個(gè)二級(jí)密鑰矢量,每個(gè)二級(jí)密鑰矢量較短,每次RC4運(yùn)算使用的輸出密鑰寬度僅為一個(gè)二級(jí)密鑰矢量的寬度,所以S-box模塊中可以采用幾個(gè)較短長(zhǎng)度的寄存器的替代常規(guī)的1字節(jié)X256的RAM陣列;并且由于每一組一級(jí)秘鑰矢量的RC4運(yùn)算輸出的流密碼的較短,用較小的寄存器即可實(shí)現(xiàn)暫存,不需要使用較大容量的RAM模塊進(jìn)行流密碼的暫存,大大減小了硬件資源消耗。
【專利說(shuō)明】RC4流密碼生成器
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及信息安全技術(shù),特別涉及一種RC4流密碼生成器。
【背景技術(shù)】
[0002] 在諸多信息產(chǎn)品設(shè)計(jì)中,不得不考慮信息傳輸?shù)陌踩用軉?wèn)題,使用硬件進(jìn)行加 密是高效、安全的解決方法。RC4流密碼在當(dāng)前的實(shí)際應(yīng)用中占有重要地位,可以利用其來(lái) 對(duì)傳輸?shù)男畔⑦M(jìn)行加密。
[0003] RC4是一種分組對(duì)稱加密算法,具有安全性高、實(shí)現(xiàn)簡(jiǎn)單等優(yōu)點(diǎn),廣泛應(yīng)用于無(wú)線 網(wǎng)絡(luò)安全中。RC4加密的基本思想是,生成一個(gè)叫流密碼的偽隨機(jī)序列字節(jié)流,然后與明文 數(shù)據(jù)相異或,生成密文。解密算法與加密算法一致,使用相同的流密碼與密文異或得到明 文。RC4加密算法關(guān)鍵在于生成偽隨機(jī)的流密碼。
[0004] RC4實(shí)際上包含兩個(gè)算法:一個(gè)是密鑰調(diào)度算法(Key Scheduling Algorithm),它 是將RC4加密密鑰(64位或128位)按一定算法與S-B0X中的初始狀態(tài)S{0,1,…,N-l) 運(yùn)算,得到新的置亂后的狀態(tài)序列。
[0005] 具體說(shuō),這個(gè)算法的步驟是:
[0006] 1)建立一個(gè)1字節(jié)X 256的陣列,稱為S-B0X,先用0-255按順序依次填充S-B0X。 然后再建立一個(gè)1字節(jié)X 256的陣列,叫做Κ-Β0Χ,用RC4加密密鑰(64位或128位)順序 填充Κ-Β0Χ,密鑰用完后重復(fù)使用直到填滿為止。
[0007] 2)將S-B0X中的每個(gè)字節(jié)依次(從第1個(gè)字節(jié)開(kāi)始)與S-B0X中的另外一個(gè)字 節(jié)(該字節(jié)的地址由特定算法給出)互換,完成S-B0X的初始化。密鑰調(diào)度算法的偽代碼 描述如下,其中,S[i]是S-B0X中第i個(gè)單元的值,S[j]是S-B0X中第j個(gè)單元的值:
[0008]
【權(quán)利要求】
1. 一種RC4流密碼生成器,其特征在于,包括K-b〇X模塊、S-b〇X模塊、j運(yùn)算單元、q運(yùn) 算單元、輸出控制邏輯模塊、主控制邏輯模塊; 所述K-box模塊,用于存儲(chǔ)M*N比特的原始密鑰,并在主控制邏輯模塊和S-box模塊作 用下將M*N比特的原始密鑰的各位按設(shè)定規(guī)則組合為F組一級(jí)秘鑰矢量,每一組一級(jí)秘鑰 矢量包括2N個(gè)N比特位寬的二級(jí)密鑰矢量,將各組一級(jí)秘鑰矢量及其二級(jí)密鑰矢量依序輸 出;N為正整數(shù),Μ為大于等于2的整數(shù)并且M*N小等于256, F為正整數(shù)且F*2N大于等于 Μ ; 所述S-box模塊,包括2ν個(gè)寬度至少為Ν比特的寄存器,并根據(jù)j、q,計(jì)算更新所述2ν 個(gè)寄存器的值,并控制輸出S[i]到所述j運(yùn)算單元,輸出S[j]、S[q]到所述q運(yùn)算單元, 輸出S[q]到所述輸出控制邏輯模塊;S[i]表示S-box模塊的第i個(gè)寄存器中的N比特值, S [ j]表示S-box模塊的第j個(gè)寄存器中的N比特值,S [q]表示S-box模塊的第q個(gè)寄存器 中的N比特值; 所述j運(yùn)算單元,用于計(jì)算輸出對(duì)應(yīng)于sskey[f] [h]及S[i]的j,sskey[f] [h]為第 f組一級(jí)秘鑰矢量中的第h個(gè)N比特位寬的二級(jí)密鑰矢量;f為0到F-l的整數(shù),h為0到 2Ν_1的整數(shù); 所述q運(yùn)算單元,用于根據(jù)所述S-box模塊輸出的S [i]、S [ j]計(jì)算輸出q ; 所述輸出控制邏輯模塊,用于緩存所述S-box模塊輸出的對(duì)應(yīng)于一組一級(jí)秘鑰矢量的 2N個(gè)S[q],并以第二時(shí)鐘將緩存的2N個(gè)S[q]作為對(duì)應(yīng)于該組一級(jí)秘鑰矢量的流密碼依序 輸出; 所述主控制邏輯模塊,用于根據(jù)外部控制信號(hào),控制所述κ-box模塊、s-box模塊、輸出 控制邏輯模塊開(kāi)始或停止工作。
2. 根據(jù)權(quán)利要求1所述的RC4流密碼生成器,其特征在于, 所述K-box模塊、S-box模塊、主控制邏輯模塊的工作時(shí)鐘為第一時(shí)鐘; 第二時(shí)鐘的周期大于等于第一時(shí)鐘的周期的5倍。
3. 根據(jù)權(quán)利要求2所述的RC4流密碼生成器,其特征在于, M*N比特的原始密鑰產(chǎn)生流密碼,按如下標(biāo)準(zhǔn)的RC4偽代碼規(guī)則進(jìn)行運(yùn)算: 一·為f賦初值,f = 〇; 二.為S[i]賦初值,S[i] = i,i為0到2N-1的整數(shù); 三·為i、j、h賦初值,i = 0, j = 0 ; 四· j = U+S[i]+sskey[f] [i]}mod 2N ; 五. 交換 S[i]、S[j]; 六. i自增1,如果i < 2N,進(jìn)行步驟四,否則進(jìn)行步驟七; 七·為 i、j、h 賦初值,i = 0, j = 0, h = 0 ; 八· i = (i+l)mod 2N ; 九· j = (j+S[i])mod 2N ; 十.交換 S[i]、S[j]; i^一 · q = (S[i]+S[j])mod 2N ; 十二· Z[f] [h] = S[q]; 十三.h自增1,如果h < 2N,進(jìn)行步驟八,否則進(jìn)行步驟十四; 十四.f自增1,如果f < F,進(jìn)行步驟二;否則結(jié)束。
4. 根據(jù)權(quán)利要求3所述的RC4流密碼生成器,其特征在于, Μ 為 16,N 為 2,F(xiàn) 為 8。
5. 根據(jù)權(quán)利要求4所述的RC4流密碼生成器,其特征在于, 所述S-box模塊,包括S-box寄存器、RC4處理邏輯單元、交換邏輯單元。 所述S-box寄存器,包括4個(gè)寬度為2比特的寄存器; 所述RC4處理邏輯單元,根據(jù)i、j、q值及加密控制信號(hào)、第一時(shí)鐘控制所述S-box寄存 器輸出相應(yīng)寄存器的值S[i]、S[j]、S[q]; 所述RC4處理邏輯單元,當(dāng)加密控制信號(hào)為二進(jìn)制0001到1000時(shí)工作,在加密控制信 號(hào)為二進(jìn)制1001時(shí)停止工作; 所述RC4處理邏輯單元,在開(kāi)始工作時(shí),輸出二級(jí)密鑰矢量更新標(biāo)記為二進(jìn)制00,并且 每輸出一次S[q]使輸出的二級(jí)密鑰矢量更新標(biāo)記加1 ; 所述RC4處理邏輯單元,當(dāng)輸出的二級(jí)密鑰矢量更新標(biāo)記由二進(jìn)制11變?yōu)槎M(jìn)制00 后,輸出一個(gè)一級(jí)密鑰矢量更新信號(hào); 所述交換邏輯單元,根據(jù)第一時(shí)鐘,將所述S-box寄存器的相應(yīng)寄存器輸出的值S [i]、 S[j]互換后寫入所述S-box寄存器的相應(yīng)寄存器; 所述K-box模塊,當(dāng)加密控制信號(hào)為二進(jìn)制0001到1000時(shí),相應(yīng)控制輸出第0組一級(jí) 秘鑰矢量到第7組一級(jí)秘鑰矢量,當(dāng)二級(jí)密鑰矢量更新標(biāo)記加1時(shí),相應(yīng)控制輸出當(dāng)前一組 一級(jí)秘鑰矢量中的下一個(gè)二級(jí)密鑰矢量; 所述輸出控制邏輯模塊,用于緩存所述S-box模塊輸出的對(duì)應(yīng)于一組一級(jí)秘鑰矢量的 4個(gè)S [q],并以第二時(shí)鐘將緩存的4個(gè)S [q]作為對(duì)應(yīng)于該組一級(jí)秘鑰矢量的流密碼依序輸 出; 所述主控制邏輯模塊,根據(jù)第一時(shí)鐘、外部控制信號(hào)、一級(jí)密鑰矢量更新信號(hào),產(chǎn)生加 密控制信號(hào),控制所述κ-box模塊、s-box模塊、輸出控制邏輯模塊工作。
6. 根據(jù)權(quán)利要求1到5任一項(xiàng)所述的RC4流密碼生成器,其特征在于,所述設(shè)定規(guī)則, 為順序分組或間隔分組。
【文檔編號(hào)】H04L9/18GK104219045SQ201310217545
【公開(kāi)日】2014年12月17日 申請(qǐng)日期:2013年6月3日 優(yōu)先權(quán)日:2013年6月3日
【發(fā)明者】吳淼, 張釗鋒, 梅年松 申請(qǐng)人:中國(guó)科學(xué)院上海高等研究院