发明名称 一种基于光汉明重量的密钥分析方法
摘要 本发明公开了一种基于光汉明重量的密钥分析方法,包括如下步骤:A-1、建立汉明重量分析模型;A-2、为光子数测量选取光泄漏点:选定密码芯片上字节变换的输入和输出作为两个光泄漏采集点;B-1、对密钥k第一个字节k<sub>0</sub>进行分析;B-2、对密钥k其他字节进行分析:通过对密钥k的其它字节重复进行步骤B-1的操作,直至得出全部密钥。本发明的光辐射密钥分析攻击方法对AES密码芯片的解析具有很高的实际可操作性,本发明对于我国军事和民用行业均具有十分重要的现实意义。
申请公布号 CN105591739A 申请公布日期 2016.05.18
申请号 CN201610130026.7 申请日期 2016.03.08
申请人 中国人民解放军军械工程学院 发明人 王红胜;徐子言;张阳;陈开颜;李宝晨;陈军广;李建中;吴令安
分类号 H04L9/08(2006.01)I;H04L9/14(2006.01)I;H04L9/28(2006.01)I 主分类号 H04L9/08(2006.01)I
代理机构 北京科亿知识产权代理事务所(普通合伙) 11350 代理人 汤东凤
主权项 一种基于光汉明重量的密钥分析方法,适用于采用4×4字节的矩阵秘钥k对4×4字节的明文矩阵d<sub>i</sub>进行字节替换、行移位、列混淆、轮密钥加等操作的AES加密算法,其特征在于:该方法包括如下步骤:A、基础分析A‑1、汉明重量分析:以明文分组d<sub>i</sub>的第一个字节d<sub>i,0</sub>为例建立如下分析模型:<maths num="0001"><math><![CDATA[<mrow><mi>H</mi><mi>W</mi><mrow><mo>(</mo><msub><mi>d</mi><mrow><mi>i</mi><mo>,</mo><mn>0</mn></mrow></msub><mo>&CirclePlus;</mo><msub><mi>k</mi><mn>0</mn></msub><mo>)</mo></mrow><mo>=</mo><mi>H</mi><mi>W</mi><mrow><mo>(</mo><msub><mi>X</mi><mrow><mi>i</mi><mo>,</mo><mn>0</mn></mrow></msub><mo>)</mo></mrow><mo>;</mo><mi>H</mi><mi>W</mi><mrow><mo>(</mo><mi>S</mi><mo>(</mo><msub><mi>d</mi><mrow><mi>i</mi><mo>,</mo><mn>0</mn></mrow></msub><mo>&CirclePlus;</mo><msub><mi>k</mi><mn>0</mn></msub><mo>)</mo></mrow><mo>)</mo><mo>=</mo><mi>H</mi><mi>W</mi><mrow><mo>(</mo><msub><mi>S</mi><mrow><mi>i</mi><mo>,</mo><mn>0</mn></mrow></msub><mo>)</mo></mrow><mo>;</mo></mrow>]]></math><img file="FDA0000936674760000011.GIF" wi="1142" he="71" /></maths>其中HW( )表示汉明重量,S( )表示AES算法过程中的S盒变换操作;d<sub>i,0</sub>表示明文分组d<sub>i</sub>的第一个字节,k<sub>0</sub>表示原始密钥k的第一个字节,HW(X<sub>i,0</sub>)表示d<sub>i,0</sub>与k<sub>0</sub>异或后值的汉明重量;HW(S<sub>i,0</sub>)表示d<sub>i,0</sub>与k<sub>0</sub>异或后再经S盒变换后值的汉明重量;对已知若干条明文分组d<sub>i</sub>进行加密运算,分别得到该加密流程下明文字节与原始密钥字节异或操作后和S盒变换操作后输出值的汉明重量;A‑2、光泄漏点选取:与步骤A‑1的分析模型相对应,选定AES密码芯片上字节变换的输入和输出作为两个光泄漏采集点;B、密钥分析B‑1、对密钥k第一个字节k<sub>0</sub>进行分析:依据步骤A‑1的模型对m组明文进行加密并分析相应的汉明重量,同时采集步骤A‑2选定的两个光泄漏点的光子数得到m条光辐射迹,采集时对每组明文采集n遍求平均值;通过对照光子数与汉明重量的关系确定出HW(X<sub>i,0</sub>)和HW(S<sub>i,0</sub>)的值;由于明文d<sub>i</sub>已知,即可对原始密钥k第一个字节k<sub>0</sub>的可能值集合进行分析;对于8位的k<sub>0</sub>而言,所有可能的取值有256种,其中k<sub>0</sub>=0,1,2……255,分别和明文分组d<sub>i</sub>的第一个字节d<sub>i,0</sub>进行异或运算,筛选出异或运算结果的汉明重量等于HW(X<sub>i,0</sub>)的密钥,得到一个密钥可能值集合k'<sub>0</sub>;再对k<sub>0</sub>可能值即集合k'<sub>0</sub>中的各元素和d<sub>i,0</sub>异或的结果进行S盒变换操作,进一步得到S盒变换后值的汉明重量与HW(S<sub>i,0</sub>)相等的密钥可能值,即得到进一步缩小范围的密钥可能值集合k″<sub>0</sub>;通过上述两步的筛选,k<sub>0</sub>可能的密钥值数量大大减少;如果k<sub>0</sub>密钥可能值集合k″<sub>0</sub>的元素个数大于1,则继续使用其它不同的明文,重复进行上述两步操作,对得到的密钥可能值集合k″<sub>0</sub>与上条明文确定的密钥可能值集合k″<sub>0</sub>进行求交集运算,产生新的密钥可能值集合,直到密钥可能值集合的元素个数为1,得出密钥k<sub>0</sub>;B‑2、对密钥k其他字节进行分析:通过对密钥k的其它字节重复进行步骤B‑1的操作,直至得出全部密钥。
地址 050003 河北省石家庄市桥东区和平西路97号