【技术实现步骤摘要】
一种SM4算法快速实现方法及装置
本专利技术涉及计算机安全
,具体涉及一种SM4算法快速实现方法及装置。
技术介绍
SM4算法是一种分组密码算法。其分组长度为128bit,密钥长度也为128bit。加密算法与密钥扩展算法均采用32轮非线性迭代结构,以字(32位)为单位进行加密运算,每一次迭代运算均为一轮变换函数F,输入数据:(X0,X1,X2,X3)。其中T为一个合成变换,由非线性变换τ和线性变换L复合而成,T(.)=L(τ(.)),先S盒变换,再L变换。目前,常用的X86结构是小端模式,而KEILC51则为大端模式。很多的ARM,DSP都为小端模式,有些ARM处理器还可以由硬件来选择是大端模式还是小端模式。大端存储与小端存储模式主要指的是数据在计算机中存储的两种字节优先顺序,小端存储指从内存的低地址开始,先存储数据的低序字节再存高序字节;相反,大端存储指从内存的低地址开始,先存储数据的高序字节再存储数据的低序字节。不管是大端还是小端存储,计算机在内存中存放数据的顺序都是从低地址到高地址,所不同的是首先取低字节 ...
【技术保护点】
1.一种SM4算法快速实现方法,其特征在于,包括:查找表构造过程和数据加密过程;/n所述查找表构造过程:/n设待加密的输入数据为(X
【技术特征摘要】
1.一种SM4算法快速实现方法,其特征在于,包括:查找表构造过程和数据加密过程;
所述查找表构造过程:
设待加密的输入数据为(X1,X2,X3,X4),轮密钥rk=(r0,r1,r2,r3),计算(b0,b1,b2,b3),其中
以(b0,b1,b2,b3)作为大端存储设备中合成变换T运算的输入参数,进行合成变换T运算,获得运算结果T(b0,b1,b2,b3);
其中,合成变换T是由非线性变换τ和线性变换L复合而成,T(.)=L(τ(.)),τ为由4个并行的S盒构成的非线性变换,非线性变换τ的输出是线性变换L的输入;
依据T(b0,b1,b2,b3)的结果信息分别构造生成大端存储设备的T变换查找表L0、L1、L2和L3;
对大端存储设备的所述T变换查找表L0、L1、L2和L3进行R变换后,分别构造生成小端存储设备的T变换查找表L0’、L1’、L2’和L3’;
所述数据加密过程:
若在大端存储设备中对待加密的输入数据进行迭代加密运算时,通过构造的所述查找表L0、L1、L2和L3计算
若在小端存储设备中对待加密的输入数据进行迭代加密运算时,通过构造的所述查找表L0’、L1’、L2’和L3’计算
利用预先生成的轮密钥rk对所述待加密的输入数据进行32次迭代运算后生成数据密文,每一次迭代运算均为一次轮函数:
2.根据权利要求1所述的SM4算法快速实现方法,其特征在于,在对待加密的输入数据进行迭代加密运算之前,还包括数据转换过程;
所述数据转换过程包括:
设输入数据为:a0,a1,a2,a3,…,a15共16字节,其中
将16字节的输入数据转换为4个4字节整数X0,X1,X2,X3,其中
对于大端存储设备,转换后的数据为:X0=(a0,a1,a2,a3),X1=(a4,a5,a6,a7),X2=(a8,a9,a10,a11),X3=(a12,a13,a14,a15);
对于小端存储设备,转换后的数据为:X0=(a3,a2,a1,a0),X1=a7,a6,a5,a4),X2=(a11,a10,a9,a8),X3=(a15,a14,a13,a12)。
3.根据权利要求1或2所述的SM4算法快速实现方法,其特征在于,所述查找表构造过程中,在大端存储设备中进行合成变换T运算,获得的运算结果T(b0,b1,b2,b3)具体为:
其中,
4.根据权利要求1或2所述的SM4算法快速实现方法,其特征在于,所述查找表构造过程中,依据T(b0,b1,b2,b3)的结果信息分别构造生成大端存储设备的T变换查找表L0、L1、L2和L3具体为:
依据L(Sbox(b0),0,0,0)、L(0,Sbox(b1),0,0)、L(0,0,Sbox(b2),0)、L(0,0,0,Sbox(b3))的数据信息分别构造生成大端存储设备的T变换查找表L0、L1、L2和L3;
其中,
L0={L(Sbox(b0),0,0,0)|b0∈[0,255]};
L1={L(0,Sbox(b1),0,0)|b1∈[0,255]};
L2={L(0,0,Sbox(b2),0)|b2∈[0,255]};
L3={L(0,0,0,Sbox(b3))|b3∈[0,255]};
对大端存储设备的所述T变换查找表L0、L1、L2和L3进行R变换后,分别构造生成小端存储设备的T变换查找表L0’、L1’、L2’和L3’具体为:
对L(Sbox(b0),0,0,0)、L(0,Sbox(b1),0,0)、L(0,0,Sbox(b2),0)、L(0,0,0,Sbox(b3))的数据信息依次进行R变化后,分别构造生成小端存储设备的T变换查找表L0’、L1’、L2’和L3’;
其中,
L0’={R(L(Sbox(b0),0,0,0))|b0∈[0,255]};
L1’={R(L(0,Sbox(b1),0,0))|b1∈[0,255]};
L2’={R(L(0,0,Sbox(b2),0))|b2∈[0,255]};
L3’={R(L(0,0,0,Sbox(b3)))|b3∈(0,255]}。
5.根据权利要求1所述的SM4算法快速实现方法,其特征在于,在构造生成查找表时,合成变换T运算的输入参数中的每个字节生成的表格有256项,4个字节共1024项,4个字节各自对应生成相应的查找表,对于大端存储设备,b0,b1,b2,b3分别对应查找表L0、L1、L2和L3;对于小端存储设备,b3,b2,b1,b0分别对应...
【专利技术属性】
技术研发人员:张朝阳,彭金辉,雷宗华,穆佩红,刘武忠,李鑫,
申请(专利权)人:郑州信大捷安信息技术股份有限公司,
类型:发明
国别省市:河南;41
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。