1.一种工业无线通信安全方法,其特征在于,包括多设备密钥协商及更新方法、密钥扩展方法和加解密方法;
所述密钥协商及更新方法,其特征在于,包括以下步骤:S1、密钥协商
2 3
可信设备A、B、C...N接入网络之后,进行基于椭圆曲线方程y=x+ax+b的密钥协商,a、b为其系数,G为双方约定的基于该椭圆曲线的某个基点,n为基点G的阶,每次更新密钥时对a、b和G进行动态调整,具体步骤如下:S11、各设备使用自带的随机数发生器产生随机数ri∈[1,n‑1];基于ri计算椭圆曲线点Ri=[ri]G=(xi,yi);生成私钥di,私钥存储于可信区域内,严格保密且无法传输;基于私钥di生成公钥Pi=[di]G;上述步骤中i∈[A,N];
S12、各设备向网络中发布非密数据:Ri、Pi;
S13、设备i获取其他设备的非密数据并计算椭圆曲线点:Ei=[ti](PA+RA)... (Pi‑1+Ri‑1) (Pi+1+Ri+1)... (PN+RN)=(xi',yi'),其中ti=di+ri;
因此对于设备A:EA=[tA](PB+RB)(PC+RC)...(PN+RN)=(xA',yA'),其中tA=dA+rA;
对于设备B:EB=[tB](PA+RA)(PC+RC)...(PN+RN)=(xB',yB'),其中tB=dB+rB;
依次类推可得到所有设备的椭圆曲线点;
各椭圆曲线点的坐标值相同,即xA'=xB'=...=xN',yA'=yB'=...=yN';
S14、各设备计算协商密钥
首先各设备基于SM3算法计算256位哈希值:HA=H256(xA'||yA');HB=H256(xB'||yB');...;HN=H256(xN'||yN');
然后计算协商密钥:
KA=F192(HA);KB=F192(HB);...;KN=F192(HN);F192表示选取256位哈希值的前192位;
由S13步骤已知各椭圆曲线点坐标值相同,因此各设备获得相同的系统私钥值d∑=KA=KB=...=KN;
d∑为192位,对d∑进行十六进制数表示:A0A1A2A3A4A5A6A7A8A9A10A11A12A13A14A15A16A17A18A1
9A20A21A22A23A24A25A26A27A28A29A30A31A32A33A34A35A36A37A38A39A40A41A42A43A44A45A46A47,每个Ai表示
4位;另外可表示d∑=dSM4||dodd‑even,dSM4为密钥扩展算法使用的原始密钥,由A0~A31组成,dodd‑even为S盒置换机制中奇偶判定依据,由A32~A47组成;
S2、密钥更新
当有新设备接入并认证成功后,或经过设定周期T后,各设备建立第二线程并依据S1各
2 3
步骤对密钥进行更新,密钥更新前需依据已协商的密钥对椭圆曲线方程y =x+ax+b的a和b2
参数进行更新,使a=A46,b=A47,并重新选择椭圆曲线的基点G,使其横坐标xG=HA,然后根据y3
=x+A46x+A47计算纵坐标yG,最终G=(xG,yG)。
2.根据权利要求1所述的一种工业无线通信安全方法,所述密钥扩展方法,其特征在于,包括以下步骤:
S3、数据的预处理和输入:
原始密钥dSM4被拆分为:
MK0(32位):A0A1A2A3A4A5A6A7;
MK1(32位):A8A9A10A11A12A13A14A15;
MK2(32位):A16A17A18A19A20A21A22A23;
MK3(32位):A24A25A26A27A28A29A30A31;
MK0、MK1、MK2、MK3分别与动态参数FK进行异或运算后进入轮函数F';
设置动态参数FK,以dSM4的反向数值作为FK的设置依据:FK0:A31A30A29A28A27A26A25A24;
FK1:A23A22A21A20A19A18A17A16;
FK2:A15A14A13A12A11A10A9A8;
FK3:A7A6A5A4A3A2A1A0;
设置动态参数CKi:在轮函数F'中根据轮次数i设定动态参数CKi,当i=0时,使CK0=FK1,当i≠0时,引入轮函数F'中间变量CKi=M';
S4、轮函数F'运算:
S41、构造S盒置换机制τ:
SM4算法中标准的S盒符号为S1;基于混沌算法生成的S盒符号为S2; S2经过行列置换后的S盒符号为S2';τ用于S盒的选择、评估和置换,每次进行密钥更新后需重设该机制,具体方法为:对A32~A47进行求和,结果为奇数则使用S1盒对32位数据M进行置换;结果为偶数则对S2盒进行行列置换形成S2'盒,其中A0~A15用于S2盒的列变换,依次交换A0A1列、A2A3列... A14A15列,A16~A31用于S2盒的行变换,依次交换A16A17行、A18A19行... A30A31行,构造S2'盒完成后计算其适应度函数,通过权衡其非线性度Ns、差分均匀度δs、雪崩度Bs构造函数f(s)=asfs(Ns)+adfd(δs)+aBfB(Bs),这里定义fs(Ns)=Ns,fd(δs)=δs,fB(Bs)=Bs,as、ad、aB表示加权系数,f(s)越大则S盒综合性能越优良,适应度函数完整形式如下:f(s)=
所有设备约定相同的适应度阈值fTTZ,当f(s)≥fTTZ时则对32位数据M进行S2'盒的置换,若f(s)<fTTZ时则对32位数据M进行原始S2盒的置换;
S42、轮密钥输出:
计算输出值:Ki+4= Ki⊕T'(M)=Ki⊕T'(Ki+1⊕Ki+2⊕Ki+3⊕CKi),i=0,1,......,31;
其中T'为密钥扩展算法的合成置换操作;
T'(Ki+1⊕Ki+2⊕Ki+3⊕CKi)=L'(τ(Ki+1⊕Ki+2⊕Ki+3⊕CKi));
其中L'()操作为线性变换,其计算公式为:L'(B)= B⊕(B<<<13)⊕(B<<<23)。
3.根据权利要求1所述的一种工业无线通信安全方法,所述加解密方法,其特征在于,包括以下步骤:
S5、输入明文的预处理:
每次输入128bit明文,可拆分为X0,X1,X2,X3;
计算输入进S盒置换机制τ的数据:
M=Xi+1⊕Xi+2⊕Xi+3⊕rki=Xi+1⊕Xi+2⊕Xi+3⊕Ki+4S6、轮函数F运算:
S61、构造S盒置换机制τ:
τ用于S盒的选择、评估和置换,直接借用S41步骤生成的S盒置换机制τ;
S62、生成密文:
Xi+4=Xi⊕T(M)= Xi⊕T(Xi+1⊕Xi+2⊕Xi+3⊕Ki+4),i=0,1,......,31;
其中T为加密算法的合成置换操作;
T(Xi+1⊕Xi+2⊕Xi+3⊕Ki+4) =L(τ(Xi+1⊕Xi+2⊕Xi+3⊕Ki+4));
其中L()操作为线性变换,其计算公式为:L(B)=(B<<<2)⊕(B<<<10)⊕B⊕(B<<<18)⊕(B<<<24);
反序变换:在轮函数F中进行32次迭代后最终获得X32, X33, X34, X35共计128bit数据,使用反序变换最终得到128bit密文C=X35||X34||X33||X32;
S7、解密方法:
本算法的解密变换与加密变换相同,不同的仅是轮密钥的使用顺序,解密时,使用轮密钥序(rk31,rk30,..., rk0)。