[发明专利]实现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.vipzhuanli.com/pat/books/201110097917.4/1.html,转载请声明来源钻瓜专利网。