[發明專利]實現RC4加/解密的裝置及其方法有效
| 申請號: | 201110097917.4 | 申請日: | 2011-04-19 |
| 公開(公告)號: | CN102752107A | 公開(公告)日: | 2012-10-24 |
| 發明(設計)人: | 尉志偉;馬洪亮;吳斌;程鵬;楊坤;周玉梅 | 申請(專利權)人: | 中國科學院微電子研究所 |
| 主分類號: | H04L9/18 | 分類號: | H04L9/18 |
| 代理公司: | 北京市德權律師事務所 11302 | 代理人: | 王建國 |
| 地址: | 100029 北京市*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 實現 rc4 解密 裝置 及其 方法 | ||
1.一種實現RC4加/解密的裝置,其特征在于,包括:
用于存儲數據包的加/解密密鑰的第一密鑰盒子、第二密鑰盒子,及構成數據流乒乓結構的第一密鑰調度控制單元、第二密鑰調度控制單元、第一S-BOX存儲器、第二S-BOX存儲器、第三S-BOX存儲器、第一偽隨機序列產生控制單元、第二偽隨機序列產生控制單元;
其中,所述第一S-BOX存儲器、第二S-BOX存儲器、第三S-BOX存儲器存儲密鑰初始化及密鑰流生成操作中間過程中的值;
所述第一密鑰調度控制單元調用所述第一密鑰盒子存儲的密鑰,所述第二密鑰調度控制單元調用所述第二密鑰盒子存儲的密鑰,按RC4算法交替對所述三個S-BOX存儲器中空閑的S-BOX存儲器進行初始化;
所述第一偽隨機數產生控制單元與所述第二偽隨機數產生控制單元,交替對所述三個S-BOX存取器中已初始化完畢的S-BOX存儲器進行置換,以產生加/解密的偽隨機密鑰流。
2.根據權利要求1所述的裝置,其特征在于:
所述第一S-BOX存儲器、第二S-BOX存儲器及第三S-BOX存儲器使用鏡像RAM存儲結構,均包括256×8的雙端口RAM_1、256×8的雙端口RAM_2、用于暫存地址的寄存器、用于暫存中間交換數據的數據寄存器以及用于控制暫存中間交換數據的交換控制單元。
3.根據權利要求1所述的裝置,其特征在于:
所述第一偽隨機數產生控制單元、第二偽隨機數產生控制單元包括用來兩個存放置換過程中S_BOX的地址信息的寄存器、兩個用來暫存從S-BOX讀出內容的寄存器及完成S-BOX置換操作控制的置換操作控制器。
4.根據權利要求1所述的裝置,其特征在于:
所述RC4加密密鑰由會話密鑰、發送端MAC地址與初始化向量IV混合得到;該RC4加密密鑰長度為64位或128位。
5.根據權利要求2-4任一項所述的裝置,其特征在于,還包括:
異或門,用于將產生的所述偽隨機密鑰流與明文數據異或,從而產生密文。
6.基于權利要求5所述的一種實現RC4加/解密的方法,其特征在于,包括:
步驟S1、獲得第n幀數據的加解密密鑰,由此推斷出第n+1幀數據的密鑰;
步驟S2、按照RC4算法,使用所述第n幀數據加解密密鑰對第一密鑰盒子進行填充,使用第n+1幀數據的密鑰對第二密鑰盒子進行填充;?
步驟S3、按照RC4的密鑰調度算法,由第一密鑰調度控制單元和第二密鑰調度控制單元,分別對第一S_BOX存儲器、第二S_BOX存儲器進行初始化;
步驟S4、通過第一偽隨機數產生控制單元對已經初始化完畢的第一S_BOX存儲器進行置換,以產生用于加/解密的第n幀數據的偽隨機密鑰流;
步驟S5、在執行步驟S4的同時,如果第n+1幀數據到達,則通過第二偽隨機數產生控制單元對已經初始化完畢的第二S_BOX存儲器進行置換,以產生用于加/解密的第n+1幀數據的偽隨機密鑰流;同時,根據所推斷出的第n+2幀數據的密鑰,由第一密鑰調度控制單元對第三S_BOX存儲器進行步驟1-3的初始化操作;
步驟S6、當第n+2幀數據到達時,通過第一偽隨機數產生控制單元對已經初始化完畢的第三S_BOX存儲器進行置換,以產生用于加/解密的第n+2幀數據的偽隨機密鑰流。
7.根據權利要求6所述的方法,其特征在于,所述第一偽隨機數產生控制單元對已經初始化完畢的第一S_BOX存儲器進行置換,以產生用于加/解密的第n幀數據的偽隨機密鑰流或第二偽隨機數產生控制單元對已經初始化完畢的第二S_BOX存儲器進行置換,以產生用于加/解密的第n+1幀數據的偽隨機密鑰流或通過第一偽隨機數產生控制單元操作對已經初始化完畢的第三S_BOX存儲器進行置換,以產生用于加/解密的第n+2幀數據的密鑰流包括:
步驟A1:RAM_1通過端口A讀地址i;
步驟A2:RAM_1通過端口A讀取Sj(i),其中,j(i)為要與地址i做置換的地址,Sj(i)為S-BOX中地址j(i)存儲的內容;RAM_2通過端口A將Si寫入地址j(i),并保存Si的值至Si寄存器;
步驟A3:RAM_1通過端口A對地址i寫Sj(i),通過端口B對地址j寫Si,完成置換;RAM_2通過端口B對地址i寫入Sj(i),通過端口A讀地址i+1,開始下一次置換;
步驟A4:設i+1對應的置換地址為j(i+1),RAM_1通過端口A讀取Sj(i+1),RAM_1通過端口B讀地址t1(?t1=Si+Sj(i)),得到第一個密鑰流字節;RAM_2通過端口A向地址j?(i+1)寫入Si+1;
步驟A5:RAM_1通過端口A對地址i+1寫入Sj(i+1),通過端口B對地址j?(i+1)寫入Si+1,完成置換;RAM_2通過端口B向地址i+1寫入Sj(i+1),通過端口A讀地址i+2,開始下一次置換。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國科學院微電子研究所,未經中國科學院微電子研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110097917.4/1.html,轉載請聲明來源鉆瓜專利網。





