微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 可适配多路并行移位操作指令及其硬件实现研究

可适配多路并行移位操作指令及其硬件实现研究

时间:11-08 来源:电子技术应用 点击:

分组密码具有速度快、易于标准化和便于软硬件实现等特点,已成为信息与网络安全中实现数据加密、数字签名、认证及密钥管理的核心体制之一。随着密码学和芯片设计技术的发展,专用密码处理器作为一个高速、灵活的实现方式已被广泛认可。专用分组密码处理器的指令集包含了较多运算指令,这些运算指令的灵活性与执行效率在一定程度上决定了系统处理数据的灵活性与速度。移位操作具有较好的扰乱与扩散作用,又易于软硬件实现,所以其使用频率非常高,因而移位操作指令的设计成为专用分组密码处理器指令集设计的关键之一。本设计基于32位RISC微处理器,提出了可适配的、支持多路并行执行的移位操作指令RPSI(Reconfigurable and Parallel Shift Instruction),能够实现字节移位、亚字移位、字移位以及双字的级联移位,并通过指令组合实现长字移位。文章给出了相应移位运算单元的硬件设计,最后给出了移位运算单元的性能分析。

1 分组密码算法中的移位操作

分组密码算法中用到了大量的移位操作,但其执行模式各不相同。

移位操作按照所移位数是否可变,分为固定移位和不定移位。基于常量的固定移位是分组密码处理中一种最主要的移位模式,它使数据比特到达指定的位置,且算法不易遭受定时攻击,包含移位位数及其补码的寄存器内容也可抵抗能量攻击[6],在Rijndael、DES、RC6等41种分组密码算法中有25种算法使用了固定移位[1]。依赖于分组运算中间数据或子密钥的不定移位模式,使不同子数据路径上的分组之间有了较好的扰乱与扩散效果,因此具有较强的抵抗线性密码分析的能力,目前已经得到广泛应用。所在分析的41种分组密码算法中有10种算法使用了不定移位。表1给出了移位操作在常用分组密码算法中的应用。

移位操作按照其移位方式,可分为循环移位方式和逻辑移位方式,其中,循环移位方式应用较多,如Serpent[2]、Twofish[3]、MARS[4]等算法均使用了循环移位。

移位操作按照移位方向,可分为左向移位和右向移位方式。

按照移位的操作位宽,可分为字节(8bit)移位、亚字(16bit)移位、字(32bit)移位、双字(64bit)移位及长字(128bit)移位。除DES算法移位操作的操作位宽为28bit外,其他算法的操作位宽均为2n bit(n=34567)。考虑到一些专用领域,像军事应用,有些专用密码算法所使用的移位操作位宽已达到256bit, 但因当前分组密码算法的处理位宽多为32bit,所以字移位操作的使用频率相对较高。

2 RPSI的设计及其可扩展、可级联特性研究

2.1 RPSI的设计

经对分组密码算法中移位操作特征的分析可知,完成一个指定的移位操作,需要确定其移位位数是否可变,采用何种移位方式、移位方向及移位操作位宽,所以移位操作指令的func域要包含的四个参数为:source、com、width、mode,加上标识移位位数是立即数的shift域,以及指令本身的操作数域rd、rs1及rs2,其指令格式如表2。

对func域上的source、come、width、mode适配不同的值后,此指令就可以完成不同的移位操作。由于当前常用密码算法的处理位宽多为32bit,且本设计是基于32位RISC微处理器,所以设定其操作数rd、rs1,rs2的位宽为32bit的寄存器数,imm为5bit的立即数,它根据参数source而定。

sourse的值可适配为1或0。适配为0时,代表所进行的操作为固定移位,imm为5bit的立即数;适配为1时,代表所进行的操作为不定移位,移位位数存放在rs2中,rs2为32bit的寄存器数(取后5位);mode为移位模式,00时为逻辑左移,01时为逻辑右移,10时为循环左移,11时为循环右移。width是8bit、16bit或32bit移位位宽的选择。width为00时,表示执行字节移位,一条指令可并行完成四组字节移位;width为01时,执行亚字移位,一条指令可并行完成两组;为10时,执行字移位。例如:指令IROLm Rd, Rs1, #3,它所完成的操作为:将寄存器Rs1中的32bit数按8bit分四组,分别进行固定的循环左移,移位位数为3;同理,进行相应的不定移位操作时,其指令为ROLm Rd, Rs1, Rs2,其移位位数由Rs2寄存器数的低5bit指定。图1(a)、图1(b)给出了当width为8时,执行四种字节移位操作指令的功能示意图,指令将输入的32bit数据分为4个字节,每个字节自身独立地进行指定模式的移位操作。图1(c)、图1(d)给出了当width为32bit时的字移位操作功能示意图。

2.2 RPSI的级联执行

随着分组密码算法主流分组宽度的增加,仅在32bit数据路径上的移位操作已不能满足要求,但由于RISC处理器32位位宽的局限性,不能改变其32bit的数据路径,因此在进一步研究移位操作的基础上,提出了移位操作指令的级联执行模式,即64bit级联移位。

假设要执行的操作为64bit循环左移,移位位数为m,其指令

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top