发明名称 实现SMS4算法的加解密系统
摘要 本发明涉及无线局域网分组密码算法领域,提出一种实现SMS4算法的加解密系统:包含第一运算模块和第一存储模块的第一级流水线、包含第二运算模块和第二存储模块的第二级流水线、包含第三运算模块和第三存储模块的第三级流水线。本发明的技术方案中三个运算模块实现加解密运算和轮密钥扩展运算的功能复用,直接降低了部件冗余度,并使得系统占用面积更小。而且由于本发明采用了三级流水线结构,因此可以同时处理3组数据,这3组数据任何一组可以是加解密运算或轮密钥扩展运算,提高了系统的效率。
申请公布号 CN101764685B 申请公布日期 2012.02.08
申请号 CN200910193308.1 申请日期 2009.10.26
申请人 广州杰赛科技股份有限公司 发明人 张永强
分类号 H04L9/06(2006.01)I 主分类号 H04L9/06(2006.01)I
代理机构 广州华进联合专利商标代理有限公司 44224 代理人 王茹;曾旻辉
主权项 一种实现SMS4算法的加解密系统,其特征在于,包括:第一级流水线、第二级流水线、第三级流水线;所述第一级流水线包含第一运算模块和第一存储模块;所述第二级流水线包含第二运算模块和第二存储模块;所述第三级流水线包含第三运算模块和第三存储模块;所述各级流水线的存储模块都包含控制参数区域、输入数据区域和运算数据区域;所述控制参数区域用于存储控制参数,该控制参数用于指示工作模式和迭代轮次;所述输入数据区域用于存储输入数据,所述第一级流水线接收对应轮次的输入数据,并保存于各级流水线的存储模块的输入数据区域;所述运算数据区域用于存储运算数据,各级流水线的运算输出结果保存于各级流水线的存储模块的运算数据区域;所述工作模式包括密钥扩展模式和加解密模式;所述工作模式由第一轮次的输入数据决定,若输入数据为加密密钥则处于密钥扩展模式,若输入数据为明文或密文则处于加解密模式;所述第一运算模块根据所述工作模式将输入数据与系统参数或零参数执行异或操作,并将运算输出结果保存于所述第一存储模块;所述第二运算模块接收第一存储模块的运算输出结果,然后根据工作模式将该运算输出结果与固定参数或轮密钥执行异或操作,再进行S盒查表操作,并将运算输出结果保存于所述第二存储模块;所述第三运算模块接收第二存储模块的运算输出结果,然后根据工作模式对该运算输出结果执行循环左移操作,再执行异或运算,并将运算输出结果保存于所述第三存储模块;所述第一运算模块包括第一数据选择部件和第一异或部件;所述第一数据选择部件用于数据的选择,选择的依据是所述控制参数中包含的工作模式;若处于密钥扩展模式,则选择系统参数;若处于加解密模式,则选择零参数;所述第一异或部件用于对所述输入数据与所述第一数据选择部件的输出结果执行异或操作;所述第二运算模块包括第二数据选择部件、第二异或部件和S盒部件;所述第二数据选择部件用于数据的选择,其选择依据是所述控制参数中包含的工作模式;若处于密钥扩展模式,则选择固定参数;若处于加解密模式,则选择轮密钥;选择所述轮密钥还依据所述控制参数中包含的迭代轮次;所述第二异或部件用于对所述运算数据与所述第二数据选择部件的输出结果执行异或操作;所述S盒部件用于对所述第二异或部件的输出结果执行S盒查表操作;所述第三运算模块包括第三数据选择部件、循环左移部件和第三异或部件;所述第三数据选择部件用于数据的选择,其选择依据是控制参数中包含的工作模式;若处于密钥扩展模式,则选择参数{0,0,13,23};若处于加解密模式,则选择参数{2,10,18,24};所述循环左移部件用于对运算数据执行循环左移和异或操作;所述循环左移部件先对运算数据执行四种带参数的循环左移运算,所述参数代表左移的比特个数,再对四种循环左移结果执行异或操作;所述循环左移部件的参数来自所述第三数据选择部件的输出结果;所述第三异或部件用于对所述输入数据与所述循环左移部件的输出结果执行异或操作;所述第二运算模块在所述第三级流水线处于密钥扩展模式时根据所述第三存储模块存储的运算输出结果来更新轮密钥;所述第三级流水线把运算输出结果发送至第一级流水线进入下一迭代轮次,复制工作模式并将迭代轮次递增;如果所述第三级流水线处于最后一个迭代轮次,则不把运算输出结果发送至第一级流水线;若该最后一个迭代轮次为加解密模式下的最后一个迭代轮次,则把所述第三级流水线的运算输出结果作为加解密运算结果。
地址 510310 广东省广州市海珠区新港中路381号