首页 > 其他分享 >2022 Deep Learning-Based Side-Channel Analysis Against AES Inner Rounds

2022 Deep Learning-Based Side-Channel Analysis Against AES Inner Rounds

时间:2022-11-14 13:00:44浏览次数:58  
标签:AES Based 字节 攻击 明文 密钥 Learning delta oplus

一、引言

1 CPA

将能量迹和观察到的泄露(泄露模型包括 HW、HD)关联

2 深度学习方法

  • DL-SCA 在预处理和攻击效果上优于其它建模类攻击,它将能量迹和标签在建模阶段结合起来,在定义的模型上根据定义的标准(高准确率或低损失)运行
  • 标签取决于泄露函数和密钥假设
  • 模型输入层为能量迹,输出层包括泄露模型定义的类
  • 训练后模型参数的权重用于攻击阶段确定密钥假设的概率

3 攻击评估方法

  • SCA 性能评估指标一般为密钥次序(key rank)/ 猜测熵(guessing entropy),攻击模型输出密钥空间中所有密钥的概率,将其降序排列则正确密钥在密钥空间中的次序即为密钥次序 / 猜测熵

二、相关工作

  • 密钥猜测限制为不超过 32 位
  • 基于深度学习的建模方法(包括 SVM、神经网络)效果好,但是需要利用对攻击者随机掩码有了解的假设,而直接攻击内部轮即可避开反制措施

三、对 AES 算法内部轮的一阶 DPA 攻击

1 攻击第 4 轮字节替换操作

  • 指定 \(v\) 为第 4 轮字节替换操作后的 1 个中间字节
  • \(v=S(m_0*S(m_0*S(m_0*S(p_0\oplus k_0)\oplus \delta)\oplus \gamma)\oplus \theta)\),\(\theta\) 取决于所有的 16 个明文字节
  • 需要通过猜测 \(k_0\), \(\delta\), \(\gamma\) 和 \(\theta\) 值达到 32 位的极限
  • 以上两点导致对第 4 轮字节替换操作的攻击不可行

2 攻击第 7 轮轮密钥加操作

  • 指定 \(v\) 为第 7 轮轮密钥加操作前的 1 个中间字节
  • \(v=k_0\oplus S^{-1}(m_0'*S^{-1}(m_0'*S^{-1}(c_0\oplus k_1)\oplus\delta)\oplus\gamma)\),\(\delta\) 取决于 3 个密文字节,\(\gamma\) 取决于 12 个密文字节
  • 需要通过猜测 \(k_1\), \(\delta\) 和 \(\gamma\) 值进行攻击

注:原理详见 2010 Principles on the Security of AES against First and Second-Order Differential Power Analysis

四、实验结果

1 深度学习模型结构

  • 模型:\(CNN_{best}\)
  • 结构
    • 5 个卷积块,每个卷积块包括 1 个卷积层和 1 个平均池化层,卷积滤波器大小为 (64, 128, 256, 512, 512),卷积核大小为 11,激活函数为 ReLU
    • 2 个全连接层,每个层包括 4096 个单元,激活函数为 Softmax
    • 损失函数为交叉熵
  • 超参数调试
    • RMSprop 优化器
    • 学习率为 \(10^{-5}\)
    • 批大小为 64
    • 训练轮次为 50 / 100
  • 输入输出
    • 输入层参数数量 2960 × 64,2960 为 POI 数量
    • 输出层参数数量 9,对应每个类(汉明重量)的概率

2 攻击第 2 轮字节替换输出

  • 理论分析

    • 指定 \(v\) 为第 2 轮某个 S 盒输出则 \(v=S(m_0*S(p_0\oplus k_1)\oplus \theta)\)

      其中 \(\theta=k_0\oplus m_1*u_1\oplus m_2*u_3\oplus m_3*u_3\)(详见 2010 Principles on the Security of AES against First and Second-Order Differential Power Analysis)

      要对 1 个明文字节进行一阶 DPA 攻击,需要固定 3 个明文字节,即一条能量迹可以用于攻击 4 个明文字节,即固定 12 个明文字节

    • 使用汉明重量模型即 \(P∝HW[S(02*S(p_0\oplus k_0)\oplus \delta)]\)

      其中 \(\delta=03*S(p_5\oplus k_5)\oplus 01*S(p_{10}\oplus k_{10})\oplus 01*S(p_{15}\oplus k_{15})\oplus k_0^1\)

    • 由上式将 \((p_5,p_{10},p_{15})\) 固定,则 \(\delta\) 为定值,P 只与 \(k_0\) 和 \(\delta\) 相关

  • 攻击过程

    • 建模阶段将预测中间值 \(v\) 汉明重量作为标签
    • 攻击阶段猜测 \(k_0\) 和 \(\delta\)
  • 在攻击密码芯片过程中通常假设有两台设备,设备 1 是已知密钥的,主要用于训练过程;设备 2 里是未知密钥,作为待分析对象。一般使用中间值作为建模对象

    • 步骤 1:在设备1上选特定的密钥和明文,采集波形作为神经网络输入,将预测的中间值作为标签进行训练,得到一个可用于从波形中分类得到中间值信息的神经网络
    • 步骤 2:在设备 2 上采集波形输入到神经网络进行分类
    • 步骤 3:用步骤 2 输出的中间值推导密钥

3 攻击第 3 轮字节替换输出

4 攻击第 4 轮字节替换输出

标签:AES,Based,字节,攻击,明文,密钥,Learning,delta,oplus
From: https://www.cnblogs.com/buaa19231055/p/16886344.html

相关文章