[发明专利]一种用于加密解密的方法和处理器有效
申请号: | 201510946603.5 | 申请日: | 2015-12-16 |
公开(公告)号: | CN106888082B | 公开(公告)日: | 2019-09-10 |
发明(设计)人: | 陈钢;闫昆;李娜;魏伟波;魏鑫;张志刚;王杰;王颖;舒毅;吕宗辉;于润泽 | 申请(专利权)人: | 北京京航计算通讯研究所 |
主分类号: | H04L9/06 | 分类号: | H04L9/06 |
代理公司: | 中国兵器工业集团公司专利中心 11011 | 代理人: | 周恒 |
地址: | 100074 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 加密 解密 方法 处理器 | ||
技术领域
本发明涉及加密解密技术领域,尤其涉及一种用于加密解密的方法和处理器。
背景技术
AES是目前流行程度比较高,可靠性比较好的一种加密解密算法。该算法在1998年提出,很快被定美国国家标准与技术研究所(NIST)定为高级加密标准,2006年之后在国际上广泛流行。
AES算法的秘钥分成128位,192位和256位三种。大众产品普遍采用128位版本,最高机密可用256位版本。
在实现技术方面,AES算法分成采用软件实现,FPGA实现以及ASIC实现。软件实现价格低廉灵活高,ASIC实现代价高性能也高。FPGA实现是两者之间的折中。目前,很多嵌入式系统中都包含了FPGA,因此适用于FPGA的AES实现有广泛的需求。
AES在硬件中的直接实现方案占用较大的面积。FPGA资源有限,FPGA的价格同FPGA中的资源量直接关联,资源越多价格越贵。因此,怎样减少面积是AES的FPGA实现所要解决的一个重要问题。
AES算法中包含了大量的并行操作。在硬件实现中,并行操作增加了面积。因此,减少AES面积的一个重要途径就是把并行操作通过顺序方式实现。虽然这样做会降低算法的速度,但是在很多情况下,顺序AES算法也足以满足应用的需要。
文献[1,2]采用一种把128位数据路径转变成32位数据路径的技术。这类变换能够把某些子模块的面积减少到原来的四分之一。为了进一步减少面积,文献[3,4]通过引入专用处理器实现了8位数据路径的AES实现。但这两篇文献并没有公布他们所涉及的处理器指令集以及处理器的实现细节。从文献介绍来看, 某些实现技术并没有采用面积最小的实现方案。比如,在处理器中引入对子程序调用的支持,这一方案需要多占用一定的FPGA面积。
发明内容
本发明的目的在于克服现有技术不足,提供了一种用于加密解密的方法和处理器,能够有效的减少AES在FPGA的实现中所占用的逻辑单元数。
本发明的技术解决方案:
一方面,一种用于加密解密的处理器,包括:秘钥生成模块和加密、解密模块;
其中,所述秘钥生成模块,用于通过第一指令启动端口数据读入操作,并设置数据存储器ram的写操作使能为1,并把输入数据存放在数据存储器ram的输入数据寄存器中,以便下一时钟周期把输入数据读入数据存储器,所述第一指令用指令中的地址addr8域和变址寄存器addr1更新数据存储地址:addr=addr1+addr8;第二指令在循环计数器cnt2小于该指令中的循环计数cntv的条件下把变址寄存器addr1和循环计数器cnt2分别加一,然后转移到addr8指定的指令地址,循环计数器cnt2置0,所述第一指令和所述第二指令相结合实现0到15范围内的循环操作;
所述加密、解密模块,用于AES加密和解密过程中,在进行寄存器写操作的同时把该寄存器原有数据保留到另一个寄存器,把存储器到寄存器的读取操作和该寄存器到另一寄存器的写操作组合在同一条指令中,以实现两个并行的寄存器数据转移操作;用6条指令实现一个16次循环的程序块,该程序块能够完成数据存储区中的待加密文本数据同密钥做XOR操作并且把结果放回数据存 储区,用以实现AES算法中的Add Roundkey操作,以上所涉及指令的结构包括操作符op、循环计数cntv和地址addr8。
进一步可选的,所述在进行寄存器写操作的同时把该寄存器原有数据保留到另一个寄存器为:第三指令在cntv=0时把addr1同addr8相加,结果放入addr,用于把数据存储器ram的数据ram[addr]读入到输出数据缓存寄存器mem_out中,同时,把输出数据缓存寄存器mem_out中原先的数据存入通用数据寄存器reg8。
进一步可选的,所述把存储器到寄存器的读取操作和该寄存器到另一寄存器的写操作组合在同一条指令中为:在指令2中实现reg8<-mem_out和addr<-addr1+addr8两个操作:后一操作将把ram[addr]读入到输出数据缓存寄存器mem_out中,指令2的一个应用是在密钥扩展中从数据存储器中读取前一次存放的密钥数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京航计算通讯研究所,未经北京京航计算通讯研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510946603.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:动画控制方法、装置及终端
- 下一篇:一种动画生成方法和装置