The embodiment of the invention discloses a method and a processor used for encryption and decryption, relating to encryption and decryption technology, and effectively reducing the number of logical units occupied by AES in the implementation of FPGA. The input data stored in the data input register, update the data memory address addr = addr1+addr8; if the cycle counter is less than the instruction cycle count, index registers and the cycle counter respectively plus one, and then transferred to addr8 specifies the address of the instruction, cycle counting device 0, recycling operations 0 to 15 range; the original data retention register to another register in the register and write operation, the memory to a register read operation and the register to register write operations in the same instructions, 6 instructions to achieve a 16 cycle block, used for encryption and decryption.
【技术实现步骤摘要】
一种用于加密解密的方法和处理器
本专利技术涉及加密解密
,尤其涉及一种用于加密解密的方法和处理器。
技术介绍
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实现。但这两篇文献并没有公布他们所涉及的处理器指令集以及处理器的实现细节。从文献介绍来看,某些实现技术并没有采用面积最小的实现方案。 ...
【技术保护点】
一种用于加密解密的处理器,其特征在于,包括:秘钥生成模块和加密、解密模块;其中,所述秘钥生成模块,用于通过第一指令启动端口数据读入操作,并设置数据存储器ram的写操作使能为1,并把输入数据存放在数据存储器ram的输入数据寄存器中,以便下一时钟周期把输入数据读入数据存储器,所述第一指令用指令中的地址addr8域和变址寄存器addr1更新数据存储地址:addr=addr1+addr8;第二指令在循环计数器cnt2小于该指令中的循环计数cntv的条件下把变址寄存器addr1和循环计数器cnt2分别加一,然后转移到addr8指定的指令地址,循环计数器cnt2置0,所述第一指令和所述第二指令相结合实现0到15范围内的循环操作;所述加密、解密模块,用于AES加密和解密过程中,在进行寄存器写操作的同时把该寄存器原有数据保留到另一个寄存器,把存储器到寄存器的读取操作和该寄存器到另一寄存器的写操作组合在同一条指令中,以实现两个并行的寄存器数据转移操作;用6条指令实现一个16次循环的程序块,该程序块能够完成数据存储区中的待加密文本数据同密钥做XOR操作并且把结果放回数据存储区,用以实现AES算法中的Add ...
【技术特征摘要】
1.一种用于加密解密的处理器,其特征在于,包括:秘钥生成模块和加密、解密模块;其中,所述秘钥生成模块,用于通过第一指令启动端口数据读入操作,并设置数据存储器ram的写操作使能为1,并把输入数据存放在数据存储器ram的输入数据寄存器中,以便下一时钟周期把输入数据读入数据存储器,所述第一指令用指令中的地址addr8域和变址寄存器addr1更新数据存储地址:addr=addr1+addr8;第二指令在循环计数器cnt2小于该指令中的循环计数cntv的条件下把变址寄存器addr1和循环计数器cnt2分别加一,然后转移到addr8指定的指令地址,循环计数器cnt2置0,所述第一指令和所述第二指令相结合实现0到15范围内的循环操作;所述加密、解密模块,用于AES加密和解密过程中,在进行寄存器写操作的同时把该寄存器原有数据保留到另一个寄存器,把存储器到寄存器的读取操作和该寄存器到另一寄存器的写操作组合在同一条指令中,以实现两个并行的寄存器数据转移操作;用6条指令实现一个16次循环的程序块,该程序块能够完成数据存储区中的待加密文本数据同密钥做XOR操作并且把结果放回数据存储区,用以实现AES算法中的AddRoundkey操作,以上所涉及指令的结构包括操作符op、循环计数cntv和地址addr8。2.根据权利要求1所述的处理器,其特征在于,所述在进行寄存器写操作的同时把该寄存器原有数据保留到另一个寄存器为:第三指令在cntv=0时把addr1同addr8相加,结果放入addr,用于把数据存储器ram的数据ram[addr]读入到输出数据缓存寄存器mem_out中,同时,把输出数据缓存寄存器mem_out中原先的数据存入通用数据寄存器reg8。3.根据权利要求2所述的处理器,其特征在于,所述把存储器到寄存器的读取操作和该寄存器到另一寄存器的写操作组合在同一条指令中为:在指令中实现reg8<-mem_out和addr<-addr1+addr8两个操作:后一操作将把ram[addr]读入到输出数据缓存寄存器mem_out中,该指令的一个应用是在密钥扩展中从数据存储器中读取前一次存放的密钥数据。4.根据权利要求3所述的处理器,其特征在于,所述用6条指令实现一个16次循环的程序块...
【专利技术属性】
技术研发人员:陈钢,闫昆,李娜,魏伟波,魏鑫,张志刚,王杰,王颖,舒毅,吕宗辉,于润泽,
申请(专利权)人:北京京航计算通讯研究所,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。