首页 > 其他分享 >2019 Non-Profiled Deep Learning-based Side-Channel attacks with Sensitivity Analysis

2019 Non-Profiled Deep Learning-based Side-Channel attacks with Sensitivity Analysis

时间:2022-11-15 22:58:41浏览次数:60  
标签:Non based 函数 attacks 标签 建模 攻击 敏感度 密钥

一、引言

  • 侧信道分析可以分为建模类攻击(模板攻击和随机方法)和非建模类攻击(DPA、CPA 和互信息分析)
  • 进行建模类侧信道攻击需要目标设备和建模设备
    • 攻击者对目标设备由有限的控制权,即其密钥是未知的
    • 攻击者对建模设备由完全的控制权,包括选择输入和密钥
  • 建模类攻击过程
    • 建模阶段:从建模设备对所有可能密钥下目标操作的泄露进行建模
    • 攻击阶段:将目标设备获取到的能量迹基于泄露模型进行分类
  • 建模类和非建模类攻击对比
    • 建模类攻击要求对建模设备的完全控制权,很难在实际中得到满足,且可收集的能量迹数量通常有限,建模类攻击难以完成
    • 非建模类攻击的唯一假设为攻击者能够从目标设备收集已知输入且固定密钥情况下的能量迹

1 目标

研究深度神经网络在非建模类攻击上的应用

2 文章贡献

  • 非建模类场景下 CNN 网络的平移不变性能够处理非同步能量迹
  • 不需要预处理和对保护措施的了解即可攻破掩码防护
  • 在非建模类场景下使用敏感度分析方法得到密钥和 POI

3 相关工作

  • 基于划分的 DPA 攻击
    • step1:对于每个密钥猜测,将能量迹根据中间值进行划分
    • step2:分类器衡量划分的一致性(?)并给出正确密钥

二、预备知识

1 深度学习

  • 深度学习是机器学习的分支,即利用神经网络进行分类

  • 神经网络为一个函数网络 \(R^D\rightarrow R^{|Z|}\),其中 D 为输入数据的维数,|Z| 为标签的个数,即将一个数据输入网络得到对应于每个标签的评分

  • 神经网络中包含一系列可训练参数,在训练过程中 使用误差函数度量网络性能并将可训练参数调优

  • 误差函数 \(E:R^D\rightarrow R\) 度量某一输入下神经网络输出与标签的误差,而误差函数可以视为误差函数的算术平均

  • 对神经网络的训练可以视为一个优化问题,即找到最优的可训练参数使得损失函数最小

  • 深度学习中降低损失函数的常用方法为梯度下降,即在迭代过程中计算损失函数关于可训练参数的梯度并根据学习率更新可训练参数,梯度下降的计算基于反向传播技术,即从网络的最后一层开始计算并向前传播

  • 随机梯度下降(SGD)每次抽取训练样本中的一部分更新可训练参数,并重复多轮(epoch)直到损失函数达到最优,相比于传统梯度下降计算速度加快,且能够避免陷入局部最优

1.1 多层感知机(MLP)
  • 多层感知机由若干感知机单元构成,除输入层和输出层外的网络层称作隐藏层
  • 感知机单元 \(P:R^{n}\rightarrow R\) 计算 \(P(x)=A(\sum^n_{i=1}w_ix_i+b)\) 作为下一层感知机的输入,其中 A 为激活函数,w 为权重系数,b 为偏差,w 和 b都是可训练参数
1.2 卷积神经网络(CNN)
  • CNN 为由卷积层和池化层组成的深度神经网络
  • 卷积层滑动滤波器对输入执行卷积操作
  • 池化层(一种非线性层)在输入上进行滑动获取平均值或最大值等作为输出
  • 优点:池化操作和卷积操作中的跨空间共享权重使其具有平移不变性
1.3 损失和正确率
  • 正确率定义为在某一 epoch 神经网络正确分类比例
  • 损失和正确率都给出了训练过程的信息
1.4 敏感度分析
  • 敏感度分析是对模型输出关于某些模型参数敏感度的分析
  • 敏感度分析提供对模型输入与输出关系的更好的理解,如确定神经网络中对分类影响最大的神经元
  • 神经网络输出关于参数的偏微分可以作为敏感度的表征

2 建模类深度学习侧信道攻击

将模板攻击中使用多元高斯分布模型建模替换为使用深度学习训练(详见 2016 Breaking Cryptographic Implementations Using Deep Learning Techniques)

  • 建模阶段

    对于 256 个密钥分别收集 N 条能量迹,能量迹的标签定义为其对应的密钥

  • 攻击阶段

    将在目标设备上收集的 M 条能量迹输入神经网络得到 M 个评分向量(输出向量),将其相加并选取评分之和最大的密钥

三、非建模类深度学习侧信道攻击

1 差分深度学习分析

  • 原理:在基于划分的 DPA 攻击中将深度学习作为分类器

  • 训练阶段:对于每个密钥假设计算中间值 \(V_{i,k}\),使用区分函数 \(H_{i,k}=h(V_{i,k})\) 对能量迹进行划分

    使用能量迹作为训练数据,将对应的中间值区分函数作为标签

  • 攻击阶段:选定密钥,若密钥正确则神经网络数据结果与计算得到的中间值区分函数在选定评估标准下最吻合

    注意事项:为保证猜测的独立性,有必要在对每个密钥训练后重新初始化可训练参数

image-20201212190410230
  • 网络结构:DDLA 攻击不局限于某种特定网络,攻击者可以根据目标设备的算法实现调整网络,本文使用的网络结构细节见附录(略)

2 评估指标

为了观察以下评估指标,生成 5000 条仿真能量迹

每条能量迹有 50 个时间点,其中 t = 25 处为 S 盒泄露,并定义为 \(Sbox(d_i\oplus k^*)+N(0,1)\),其中 \(d_i\) 为已知随机明文字节,\(k_i\) 为选定密钥字节,\(N(0,1)\) 为高斯噪声,其它时间点的能量消耗为 0 到 255 的随机值

2.1 基于 MLP 第一层权重的敏感度分析
  • 优点:发现 poi,如能量迹中泄露或掩码的位置

  • 能量迹的 n 个时间点对应于第一个隐藏层的权重,可以看作一个 n × R 矩阵,\(W_{i,j}\) 表示第 i 个时间点和第 j 个第一隐藏层神经元之间的权重,则梯度可以表示为 \(\nabla W_{i,j}=\frac{\partial L}{\partial W_{i,j}}\),\(|\nabla W_{i,j}|\) 即为损失函数关于该权重的敏感度,敏感度越高表明该权重对损失最小化的影响越大

  • 将和时间点 t 相关的所有权重的敏感度相加 \(S_{weights}[t]=\sum^R_{j=1}|\nabla W_{i,j}|\),用于衡量该时间点的敏感度

  • 仿真迹实验结果

    • 正确密钥:泄露样本点敏感度显著大于其它样本点敏感度,特别是在第一轮训练阶段(泄露样本点携带有效信息,对于损失最小化有直接影响,而其它样本点只携带噪声信息对分类无影响),在训练过程后期损失函数基本已经为最佳,对权重的偏微分值较小
image-20201212190410230
  • 错误密钥:此时中间值区分函数也可以看作是随机的,即能量迹标签是错误的,泄露样本点对应权重对损失最小化的影响与其它样本点几乎相同,因此敏感度也几乎相同
image-20201212190410230
  • 根据以上结果,使用该评估标准既可以得到正确的密钥猜测,也可以发现信息泄露位置,但只适用于 MLP
2.2 基于网络输入的敏感度分析
  • 优点:可以应用于所有网络结构

  • 损失函数对输入的梯度可以表示为 \(\nabla T_{i,j}=\frac{\partial L_{T_i}}{\partial x_{j}}\),其中 \(L_{T_i}\) 表示训练至第 i 条能量迹时损失函数,\(x_j\) 表示输入层第 j 个分量

  • 将和时间点 t 相关的所有训练迹的敏感度相加 \(S_{input}[t]=\sum^N_{i=1}|\nabla T_{i,t}|\),用于衡量该时间点的敏感度

    • 对于正确密钥猜测,泄露样本点敏感度明显高于其它样本点敏感度
    • 对于错误密钥猜测,所有样本点敏感度都较小!
image-20201212190410230
  • 另外一种敏感度的定义方法 \(S_{input}[t]=\sum^N_{i=1}(\nabla T_{i,t}×T_{i,t})\),其中 \(T_{i,t}\) 为第 i 条能量迹第 t 个样本点值

    在这种定义方式下通常会有更好的实验结果

2.3 损失和正确率指标

下图表明计算损失和正确率指标能够用于得到正确密钥

image-20201212190410230

3 标签

  • 使用单射目标函数作为标签的问题

    将标签设置为例如 \(H_{i,k} = Sbox(d_i\oplus k)\) 的单射函数(即 S 盒输入与输出一一对应)的形式时,基于该标签的能量迹划分对于所有密钥猜测来说都是一致的,不管密钥是否正确损失函数结果相近,无法找到正确密钥

  • 标签 1:汉明重量标签 \(H_{i,k} = HW(V_{i,k})\)

  • 标签 2:二进制标签 \(H_{i,k} = MSB(V_{i,k})/LSB(V_{i,k})\),二进制标签的实验效果通常优于汉明重量标签

    下图即 MLP-DDLA 在使用 identity 标签和二进制标签的正确率对比

image-20201212190410230

4 CNN-DDLA

由于 CNN 具有平移不变性,它在提取非同步化迹信息时更加实用,优于经典 CPA

5 高阶 DDLA(由于攻击带掩码的加密算法实现)

  • 当掩码和被掩码值位置已知时,只需要结合这两个泄露位置进行二阶攻击
  • 当掩码和被掩码值位置已知时,需要结合所有可能的点对,点对个数为 \(\frac{n×(n-1)}{2}\)
  • 使用 DDLA 进行高阶攻击不需要了解或猜测算法实现细节如掩码技术和掩码数量

标签:Non,based,函数,attacks,标签,建模,攻击,敏感度,密钥
From: https://www.cnblogs.com/buaa19231055/p/16894309.html

相关文章