1.一种双重可变轮结构的SM4算法实现方法,其特征在于,所述方法包括:通过ICB总线,将主机需要的配置数据传输到SM4算法核中;将SM4算法核计算后的数据传输到主机中。
2.根据权利要求1所述的方法,其特征在于,主机需要的配置数据包括:加解密的数据和加解密选择信号、轮数选择信号。
3.根据权利要求1所述的方法,其特征在于,SM4算法核包括:控制模块、参数存储模块、S-box模块、加解密模块、密钥扩展模块和轮缓冲模块。
4.根据权利要求3所述的方法,其特征在于,控制模块用于实现位宽匹配和信号分配功能,是一个状态机的形式,分为空闲状态即IDLE、加密状态即EC_EN、解密状态即DEC_EN、密钥准备状态即PRE_KEY和密钥扩展状态即KEY_EXP;当收到ICB总线传递的状态数据即EN_SEL,通过解析,传入相应的模块,状态机会从IDLE状态进入对应的状态;假如EN_SEL为00时,为复位状态,进入IDLE状态;假如EN_SEL为11时,状态机从IDLE跳转至PRE_KEY状态,进而跳转到KEY_EXP状态;假如EN_SEL为01时,状态机从IDLE跳转至EN_EN状态;假如EN_SEL为10时,状态机从IDLE跳转至DEC_EN状态。
5.根据权利要求3所述的方法,其特征在于,参数存储模块用于存储SM4算法密钥扩展过程中所需要的系统参数FK和固定参数CK,当控制模块给出使能信号时,将该参数传输给密钥扩展模块。
6.根据权利要求3所述的方法,其特征在于,S-box模块用于存储密钥扩展和加解密时非线性变换过程中的映射数据,采用查表法实现S盒的转换。
7.根据权利要求3所述的方法,其特征在于,加解密模块分为轮变换和逆序变换两个部分,每一轮变换均包含移位、S-box转换和相应的异或操作;采用流水线和循环迭代相结合的形式,在收到控制模块解析的轮数选择信号时,对循环轮数和流水线结构进行调整;解密的密钥输入为加密时的倒序。
8.根据权利要求3所述的方法,其特征在于,密钥扩展模块是轮变换部分,每一轮变换也包含移位、S-box转换和相应的异或操作;类采用流水线和循环迭代相结合的形式,在收到控制模块解析的轮数选择信号时,对循环轮数和流水线结构进行调整。
9.一种双重可变轮结构的SM4算法实现系统,所述系统用于实现权利要求1-8任意一项所述的方法,其特征在于,所述系统包括:第一传输模块和第二传输模块;所述第一传输模块用于通过ICB总线,将主机需要的配置数据传输到SM4算法核中;所述第二传输模块用于将SM4算法核计算后的数据传输到主机中。