常见侧信道攻击方法

news2024/12/23 18:18:31

  侧信道攻击方法需要采集到密码设备的能量泄露信息然后建立对应的能量消耗模型,之后使用特定的攻击方法来破解密钥。常见的侧信道攻击方法有简单能量(或电磁)攻击(SPA)、差分功耗(或电磁)攻击(DPA)和故障注入攻击。

简单能量攻击(SPA)

  简单能量分析攻击中,攻击者直接观察功耗信息的差异并由此得到密钥信息。由侧信道攻击原理可知,加密设备执行不同操作或计算不同数据时,采集到的整体功耗曲线存在差异。若每次迭代执行操作由对应的密钥信息决定,则攻击者可以直接分析迭代的功耗差异即可得到完整的密钥信息。
  例如,SPA攻击传统 Double-and-Add 实现的ECC标量乘法,如下图所示:
SPA攻击ECC标量乘法
图 1. SPA 攻击ECC标量乘法
   从上图1中可知,ECC标量乘法中,当标量值为1时,该次迭代将运行点加与倍点操作;当标量值为0时,该次迭代只运行倍点操作。同时,点加操作与倍点操作的功耗曲线存在差异,因此攻击者直接观察即可得到标量乘法中的完整标量数据,这也是 Double-and-Add 实现算法的一大缺陷。

差分能量分析攻击(DPA)

   差分能量分析攻击是利用功耗信息的特征信息进行统计分析的一种强劲的能量分析攻击方法。与SPA攻击相比,DPA无须了解加密设备的先验知识,只需要对加密算法的实现有所了解即可。但需要更多的功耗曲线,和需要更多的信息处理与统计学方面的知识储备。
   DPA攻击主要对功耗曲线的数据分量进行计算并分析,当猜测的正确密钥与错误密钥的特性存在较大差异时,即可由统计特性而推测出完整的密钥信息,其攻击详细步骤如下所述。
(1)选择算法的某个中间值 f ( d , k ) f(d,k) f(d,k),其中 ( d , k ) (d,k) (d,k)是明文密钥或密文密钥对, f ( ⋅ ) f(\cdot) f() 是一个函数;
(2)采集功耗曲线;输入不同明文( d 1 , d 2 , ⋯   , d D d_1, d_2,\cdots, d_D d1,d2,,dD),分别采集其对应的功耗曲线,构成功耗矩阵 T \pmb{T} T
T = [ t 1 , 1 t 1 , 2 ⋯ t 1 , T t 2 , 1 t 2 , 2 ⋯   t 2 , T ⋯ t D , 1 t D , 2 ⋯ t D , T ] \pmb{T} = \begin{bmatrix} t_{1,1} & t_{1,2} & \cdots & t_{1,T} \\ t_{2,1} & t_{2,2} & \cdots &\ t_{2,T}\\ &\cdots& &\\ t_{D,1}&t_{D,2} & \cdots & t_{D,T} \end{bmatrix} T= t1,1t2,1tD,1t1,2t2,2tD,2t1,T t2,TtD,T
在功耗矩阵 T \pmb{T} T 中,每一行代表不同输入 d i d_i di 采得的功耗曲线,其中 T T T 为每条曲线的采样点数, D D D 为曲线的条数,即对应输入明文 d i d_i di的个数。

(3)计算假设中间值,对每一个可能 ( d i , k j ) ( i = 1 , 2 , ⋯   , D , j = 1 , 2 , ⋯   , K ) (d_i,k_j)(i=1,2,\cdots,D, j=1,2,\cdots ,K) (di,kj)(i=1,2,,D,j=1,2,,K) f ( ⋅ ) f(\cdot) f(),得到矩阵 C D × K C^{D\times K} CD×K
C = [ f ( d 1 , k 1 ) f ( d 1 , k 2 ) ⋯ f ( d 1 , k K ) f ( d 2 , k 1 ) f ( d 2 , k 2 ) ⋯ f ( d 2 , k K ) ⋯ f ( d D , k 1 ) f ( d D , k 2 ) ⋯ f ( d D , k K ) ] \pmb{C} = \begin{bmatrix} f(d_1,k_1) & f(d_1,k_2) & \cdots & f(d_1,k_K) \\ f(d_2,k_1) & f(d_2,k_2) & \cdots &f(d_2,k_K)\\ &\cdots& &\\ f(d_D,k_1)&f(d_D,k_2) & \cdots &f(d_D,k_K) \end{bmatrix} C= f(d1,k1)f(d2,k1)f(dD,k1)f(d1,k2)f(d2,k2)f(dD,k2)f(d1,kK)f(d2,kK)f(dD,kK)
(4)将中间值使用的能量模型映射为功耗值;常使用汉明重量 H W ( f ( d i , k j ) ) HW(f(d_i,k_j)) HW(f(di,kj))进行映射,得到假设中间值的能量模型矩阵 H \pmb{H} H
H = [ H W ( f ( d 1 , k 1 ) ) H W ( f ( d 1 , k 2 ) ) ⋯ H W ( f ( d 1 , k K ) ) H W ( f ( d 2 , k 1 ) ) H W ( f ( d 2 , k 2 ) ) ⋯ H W ( f ( d 2 , k K ) ) ⋯ H W ( f ( d D , k 1 ) ) H W ( f ( d D , k 2 ) ) ⋯ H W ( f ( d D , k K ) ) ] \pmb{H} = \begin{bmatrix}HW(f(d_1,k_1) ) & HW(f(d_1,k_2) )& \cdots & HW(f(d_1,k_K) )\\ HW(f(d_2,k_1)) & HW(f(d_2,k_2) )& \cdots & HW(f(d_2,k_K))\\ &\cdots& &\\ HW(f(d_D,k_1))&HW(f(d_D,k_2)) & \cdots & HW(f(d_D,k_K)) \end{bmatrix} H= HW(f(d1,k1))HW(f(d2,k1))HW(f(dD,k1))HW(f(d1,k2))HW(f(d2,k2))HW(f(dD,k2))HW(f(d1,kK))HW(f(d2,kK))HW(f(dD,kK))
(5)统计分析矩阵 H \pmb{H} H与功耗曲线 T \pmb{T} T;使用统计工具对矩阵 H \pmb{H} H与功耗曲线 T \pmb{T} T进行逐列分析,可以得到分析的结果矩阵 R K × T \pmb{R}^{K\times T} RK×T;矩阵 R \pmb{R} R中的值 r i , j r_{i,j} ri,j越大,表示匹配度越高,此时的假设值 k j k_j kj是密钥的可能性越高。
其中,
R = [ r 1 , 1 r 1 , 2 ⋯ r 1 , T r 2 , 1 r 2 , 2 ⋯ r 2 , T ⋯ r K , 1 r K , 2 ⋯ r K , T ] \pmb{R} = \begin{bmatrix}r_{1,1}& r_{1,2}& \cdots & r_{1,T}\\ r_{2,1} & r_{2,2}& \cdots & r_{2,T}\\ &\cdots& &\\ r_{K,1}&r_{K,2}& \cdots & r_{K,T} \end{bmatrix} R= r1,1r2,1rK,1r1,2r2,2rK,2r1,Tr2,TrK,T
   若第(5)步使用的相关系数进行对比分析,则该攻击方法也被称为相关系数能量分析攻击(CPA),即, r i , j r_{i,j} ri,j由下式进行计算。
r i , j = ∑ d = 1 D [ ( h d , i − h i ‾ ) ( t d , j − t j ‾ ) ] ∑ d = 1 D ( h d , i − h i ‾ ) 2 ∑ d = 1 D ( t d , j − t j ‾ ) 2 r_{i,j} = \frac{\sum_{d=1}^D[(h_{d,i}-\overline{h_i})(t_{d,j}-\overline{t_j})]}{\sqrt{\sum_{d=1}^D(h_{d,i}-\overline{h_i})^2\sum_{d=1}^D(t_{d,j}-\overline{t_j})^2}} ri,j=d=1D(hd,ihi)2d=1D(td,jtj)2 d=1D[(hd,ihi)(td,jtj)]
   若结果矩阵 R \pmb{R} R中的某一行( r i , : r_{i,:} ri,: )存在一个尖峰,即猜测密钥值为对应的 k i k_i ki

故障攻击分析(FA)

   故障攻击指的是入侵者通过相关的辅助设备对正在执行过程中的密码算法、安全系统以及机密设备等注入故障从而导致错误信息的输出,利用错误信息分析出相关的信息。分为故障注入和故障分析。常见的故障注入手段有电压毛刺、时钟毛刺、电磁脉冲等。常见的故障分析有差分故障分析,通过比较在相同输入情况下密码设备的正确输出与错误输出之间的差异来进行密钥恢复;统计故障分析,利用密码设备故障输出的统计特性来进行密钥恢复;无效故障分析,利用注入成功但未引起故障输出的无效故障来进行密钥恢复。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/879877.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

idea打jar包

目录 1、打包设置 2、打包介绍 3、开始打包 1、打包设置 先设置要打包的模块信息,即打包进去的内容。如下图所示:File --> Project Structure --> Artifacts,点击+号完成模块创建,其中有两种方式:…

【C++】STL---vector

STL---vector 一、vector 的介绍二、vector 的模拟实现1. 容量相关的接口(1)size(2)capacity(3)reserve(4)resize(5)empty 2. [] 重载3. 迭代器4. 修改数据相…

【二开】jeecgboot 开发过程方法扩展二开整理

【二开】jeecgboot 开发过程方法扩展二开整理 org.jeecg.modules.system.controller.CommonController#upload 可以二开统一文件上传 返回值增加文件大小 跟文件名称 //自定义 图片前缀savePath jeecgBaseConfig.getUploadRequestHost() savePath;if(oConvertUtils.isNotEm…

选择任务管理软件:哪个更适合你的需求?

随着互联网的发展,知识管理是可以成为企业获得更大发展前景的神兵利器,任务协同,是服务于中小型团队,或者大型机构的终端组织。来看看这款国外流行的任务管理软件Zoho Projects。 任务管理是企业协同的重要组成部分。 任务管理是企…

如何正确下载tomcat???

亲爱的小伙伴,千万别再去找下网站下载啦,这样詪容易携带病毒。 我们去官方网址下载。 Apache Tomcat - Welcome! 最后下载解压即可。。。

免费机器人来了(基于有限状态机),快来体验下

免费有限状态机机器人来了,快来体验下 51jiqiren.cn 五分钟就可以完成一个简单的机器人. 懂json的同学可以自定义状态和状态跳转,完成复杂的业务流程. 更多功能还在开发中. 网站右下角点"联系客服"截图: 弹出来了: 后端管理界面: 有限状态机界面: 数据界面: 在网…

论文复现--关于单视角动作捕捉工具箱--MMHuman3d的研究(基于Windows10和Linux18.04中配置)

分类:动作捕捉 github地址:https://github.com/open-mmlab/mmhuman3d 所需环境: Windows10,CUDA11.6,conda 4.13.0,Visual Studio 2017; Ubuntu18.04,conda22.9.0,CUDA11…

企业网盘 vs 传统存储设备:为何云存储成为首选?

企业网盘的出现为企业提供了新的存储方式,相较于传统的存储设备,为何越来越多的企业选择了云存储呢? 一、存储成本 在企业数据存储方面,成本是企业重要的考量因素。企业网盘是基于云存储技术的存储工具,因此它比传统的…

算法(第4版)练习题 1.1.27 的三种解法

本文列举了对于 算法 : 第4版 / (美) 塞奇威客 (Sedgewick, R.) , (美) 韦恩 (Wayne, K.) 著 ; 谢路云译. -- 北京 : 人民邮电出版社, 2012.10 (2021.5重印)(以下简称原书或书)中的练习题 1.1.27 的三种解法(C 实现),并…

朴素贝叶斯(右心室肥厚的辅助识别)

现在我们判断右心室是否肥厚通常的做法都是借助心电图来识别,左侧的是右心室肥厚的,右侧的是右心室厚度正常,那接下来就要按照给出的图像来处理特征,提取出正常组和肥厚组的不同特征。 根据上图我们可以得出通过图像提取出了年龄…

〔AI 绘画〕Stable Diffusion 之 VAE 篇

✨ 目录 🎈 什么是VAE🎈 开启VAE🎈 下载常见的VAE🎈 对比不同VAE生成的效果 🎈 什么是VAE VAE:是 Variational Auto-Encoder 的简称,也就是变分自动编码器可以把它理解成给图片加滤镜&#xff…

KCC@深圳开源读书会即将举办,来与行业大咖面对面交流

KCC,全称 KAIYUANSHE City Community(中文:开源社城市社区)是由开源社发起,旨在让开源社区在每个城市落地生根的地域性开源组织。 自2023年2月份发起以来,我们已经在南京、上海、深圳、北京、硅谷、新加坡、…

WebRTC | ICE详解

目录 一、Candidate种类与优先级 二、ICE策略 1. iceServers 2. iceTransportPolicy 三、P2P连接 1.Nat类型 (1)完全锥型NAT (2)IP限制锥型NAT (3)端口限制锥型NAT (4)对称…

HCIP的MPLS实验

题目 拓扑图 IP地址及环回配置 注&#xff1a;R2的g0/0/1口和g0/0/2口还有R4的g0/0/0口和g0/0/2口都先不配置IP&#xff0c;因为后面这些接口的IP需要放入vpn空间中 R1 <Huawei>sys Enter system view, return user view with CtrlZ. [Huawei]sysname r1 [r1]int l0 […

《Linux从练气到飞升》No.13 Linux进程状态

&#x1f57a;作者&#xff1a; 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux菜鸟刷题集 &#x1f618;欢迎关注&#xff1a;&#x1f44d;点赞&#x1f64c;收藏✍️留言 &#x1f3c7;码字不易&#xff0c;你的&#x1f44d;点赞&#x1f64c;收藏❤️关注对我真的…

通过 Amazon SageMaker JumpStart 部署 Llama 2 快速构建专属 LLM 应用

来自 Meta 的 Llama 2 基础模型现已在 Amazon SageMaker JumpStart 中提供。我们可以通过使用 Amazon SageMaker JumpStart 快速部署 Llama 2 模型&#xff0c;并且结合开源 UI 工具 Gradio 打造专属 LLM 应用。 Llama 2 简介 Llama 2 是使用优化的 Transformer 架构的自回归语…

正确治理窜货的方法

所有违规行为的形成原因都离不开利益&#xff0c;窜货是如此&#xff0c;低价也是如此&#xff0c;窜货与低价又是一体的&#xff0c;因为有更多的利润空间&#xff0c;所以经销商或者非授权愿意承担风险去窜货&#xff0c;同样的也是因为窜货可以将价格压更低&#xff0c;上升…

冠达管理:险资最新重仓股曝光!加仓这些股票

随着上市公司半年报陆续发表&#xff0c;险资最新重仓持股状况也逐渐清晰。 到8月14日&#xff0c;在已发表2023年半年报的上市公司中&#xff0c;超越60家上市公司的前十大流通股东中呈现险资身影。 从职业来看&#xff0c;制造业成为险资的“心头好”。在险资重仓个股中&…

ClickHouse(十九):Clickhouse SQL DDL操作-1

进入正文前&#xff0c;感谢宝子们订阅专题、点赞、评论、收藏&#xff01;关注IT贫道&#xff0c;获取高质量博客内容&#xff01; &#x1f3e1;个人主页&#xff1a;含各种IT体系技术&#xff0c;IT贫道_Apache Doris,大数据OLAP体系技术栈,Kerberos安全认证-CSDN博客 &…

学习助手(安卓)

首先&#xff0c;这是一款人工智能的学习软件&#xff0c;功能非常的强大&#xff0c;进入软件就能看见多种功能&#xff0c;它可以根据大家提供的主题&#xff0c;环境&#xff0c;文体&#xff0c;语言等要求进行写作&#xff0c;还有诗歌创作&#xff0c;也可以帮我们进行内…