主权项 |
针对SM4密码算法基于汉明重量的模板攻击的方法,以SM4算法的轮输入作为模板攻击的目标,其特征在于,所述方法包括以下步骤:S1:建立模板阶段,选择性的输入明文或者密文X<sub>0</sub>、X<sub>1</sub>、X<sub>2</sub>和X<sub>3</sub>与随机的已知密钥,建立轮输入M=(X<sub>i+1</sub>⊕X<sub>i+2</sub>⊕X<sub>i+3</sub>⊕rk<sub>i</sub>)(i=0,1,2,3)为运算中间值的汉明重量的模板,每轮轮输入运算建立33个模板;S2:模板匹配阶段,分别将每轮的33个模板建立对应的33个支持向量机分类器,针对每一个模板建立分类器时,当前模板为正类,其余的模板为负类;通过选择性明文或密文的输入,建立未知密钥的模板T;更新当前轮X=(X<sub>i+1</sub>⊕X<sub>i+2</sub>⊕X<sub>i+3</sub>⊕rk<sub>i</sub>),(i=0,1,2,3)结果的第<img file="dest_path_image001.GIF" wi="108" he="31" />比特,建立新的未知模板T’,利用分类器分别对模板<img file="450536dest_path_image002.GIF" wi="13" he="22" />和<img file="dest_path_image003.GIF" wi="17" he="24" />进行匹配,得出其对应的汉明重量分别为W和W’,比较W和W’的大小,即可得出当前轮密钥的第j比特,重复上面的过程,直到恢复出前4轮的字密钥;S3:在S2的基础上得出前四轮的字密钥,运用SM4密钥扩展算法推出未知的SM4的密钥。 |