1.相关性分析方法简介

相关性分析方法:针对部分或者全部密钥位参与密码运算的过程中,根据能量信号与密码运算计算过程中产生的中间数据汉明重量或者汉明距离的相关性,计算猜测密钥得到的中间结果汉明重量或者汉明距离与实测能量信号之间的线性相关性,来恢复密钥。

1.1补充知识

汉明距离 : 是一个概念,表示两个等长的字符串对应位不同的个数,对两个字符串进行异或运算,并统计其结果为1的个数就是汉明距离。(因为侧信道底层都是0和1的变换,所以此处只用二进制举例)

 汉明重量 : 它是一种特殊的汉明距离,指一个字符串与一个等长的“零”字符串的汉明距离,即一个字符串中非零的字符个数。(通俗说就是转换为二进制后1的个数)

1.2执行步骤

(1)确定被攻击密码设备的攻击点,即确定该攻击点对应的中间数据; 该中间数据可用于恢复密钥k,则中间数据可表示为:f(d,k),d是明文或者密文,k为私钥。

(2)测量密码设备运行过程中的能量曲线,攻击者记录每一次运行密码算法时对应的di,同时采集每一次运算时能量曲线,表示为ti=( ti,1,…, ti,T );

(3)猜测密钥k,并根据猜测密钥计算步骤(1)选择的中间数据。将所有可能的密钥记录为K=(k1,…, kk),对所有D次加密运算和K个密钥计算假设中间值:vi,j=f(di, kj) i=1,…,D;j=1,…,k。

(4)根据能量泄露模型,将假设中间值映射为能量泄露值hi,j。

(5)将假设能量泄露值和实际能量泄露信号进行统计分析,获取密钥。

2.CPA攻击过程

CPA攻击是经典DPA攻击的延伸,其利用功耗样点与被处理数据的汉明权重之间的相关性因子进行分析。(DPA的变种)

2.1主要思路:

  1. 攻击者已知明文,并可变化明文并采集相应的功耗曲线
  2. 攻击者猜测安全芯片的密钥,根据明文和密钥计算出某中间变量
  3. 以中间变量的汉明权重(逻辑1的个数)和功耗的相关系数作分析
  4. 相关系数最高的即对应猜测正确的密钥

CPA攻击的过程如下:

  1. 随机选择N组不相同明文或密文Mi (i∈[1,N])进行加/解密运算,采集每组明文进行加密运算时设备产生的能量曲线Ti (t),t∈{1,…,k},其中k为能量轨迹的采样点数。
  2. 选择密钥Kl (l∈Ω,Ω为密钥空间),计算在Kl和Mi条件下,密码算法进行加密运算时在被攻击点产生的中间值Di,l。
  3. 取中间值Di,l的汉明距离或者汉明重量建立能量模型hi,l,根据式计算Ti和hi,l相关性ρl。  (4)取相关系数最大值时对应的Kl,即为实际密钥。

最后根据得到的相关性系数绝对值的大小来获取密钥 。

CPA相关功耗分析(一)相关推荐

  1. CPA相关功耗分析(二)

    CPA实例1 攻击异或运算,攻击的比特数为3,即攻击的中间数据data=K⊕M, K和M的二进制比特数为3.(此处的加密方式为C=K⊕M) 下发的明文和采集到的能量数据如下表所示,密钥K=? 明文M ...

  2. MTK驱动(74)---平台待机功耗分析流程

    MTK平台待机功耗分析流程 1.目的 2.MTK平台各个场景功耗数据测试方法 很多功耗问题都是因为测试手法不对,列出一些常用场景功耗测试手法.  测试功耗数据之前,请先确认以下配置:  1.关闭 WI ...

  3. Android 功耗(11)---Android 功耗分析之wakelock

    Android 功耗分析之wakelock 生活总是让我们遍体鳞伤,但到后来,那些受伤的地方一定会变成我们最强壮的地方.-海明威 WakeLock是什么 WakeLock作用 WakeLock有那些分 ...

  4. Android功耗(8)---Camera功耗分析和拆解

    一.Camera功耗分析和拆解 Q:如何判断camera功耗是否偏高? A:camera功耗包含平台基础值.屏幕.模组.马达.feature.算法.camera app等部分,我们的camera在MT ...

  5. Android 功耗(4)---MTK平台待机功耗分析流程

    MTK平台待机功耗分析流程 MTK平台待机功耗分析流程 1.目的 2.MTK平台各个场景功耗数据测试方法 很多功耗问题都是因为测试手法不对,列出一些常用场景功耗测试手法.  测试功耗数据之前,请先确认 ...

  6. Xilinx 功耗分析

    1.功耗分析简介 在FPGA 设计中,功耗分析是成功设计的重要环节.针对 FPGA 设计中的功耗分析,Xilinx 公司推出了简单的速查表格和专用的功耗分析工具--XPower.对于开发初期的 FPG ...

  7. MTK平台待机功耗分析流程

    MTK平台待机功耗分析流程 版本信息: 作者 版本 日期 备注 陈征鼎 V1.0 2016/01/21 1.目的 2.MTK平台各个场景功耗数据测试方法 很多功耗问题都是因为测试手法不对,列出一些常用 ...

  8. verdi fsdb转vcd波形:用于后端功耗分析

    背景1:fsdb.vcd波形文件介绍 FSDB Spring Soft (Novas)公司 Debussy / Verdi 支持的波形文件,一般较小,使用较为广泛,其余仿真工具如ncsim,modle ...

  9. android平板待机电流,Android 功耗(4)---MTK平台待机功耗分析流程

    MTK平台待机功耗分析流程 1.目的 2.MTK平台各个场景功耗数据测试方法 很多功耗问题都是因为测试手法不对,列出一些常用场景功耗测试手法. 测试功耗数据之前,请先确认以下配置: 1.关闭 WIFI ...

最新文章

  1. 9.matlab中repmat函数
  2. android视频拷到iphone6s,爱思助手怎么把电脑视频导入iphone6s
  3. 2012总结--第1篇--技术篇
  4. CUBA平台正在开源
  5. Spring MVC前端控制器不拦截静态资源配置
  6. 利用Python Matplotlib库做简单的视觉化
  7. 使用ionic2开发一个登录功能
  8. 软件质量管理-考试复习总结
  9. Oracle优化新常态 前半生
  10. 74ls20设计半加器_用74ls138设计全加器
  11. Redis的雪崩,击穿,穿透详解
  12. python和excel进行数据交换_python-doc/使用Python和Excel进行交互式数据分析.md at master · HSUCHING/python-doc · GitHub...
  13. 360众测靶场云文件服务器,360 政企安全官网_帮助应对高级威胁攻击
  14. vs 的 tfs 账号更改
  15. c++ 头歌实训 第四关 日历打印
  16. 【大数据计算】(一) HDFS操作方法和基础编程
  17. ICCV2021:Rethinking Coarse-to-Fine Approach in Single Image Deblurring
  18. 4412 构造数组(区间合并)
  19. 操作系统学习之文件管理:
  20. vanilla_使用Vanilla JavaScript的快速简单的搜索过滤器

热门文章

  1. Android --- PagerAdapter的使用方法详细讲解
  2. Java快速生成20亿数字_关于内存:Java-打印10亿到20亿
  3. static在内存层面的作用_虚拟地址空间--用户进程看到的自己所占用的内存
  4. coco关键点标注json_COCO 数据集中目标检测标注说明
  5. 2020年 | 云计算发展的5大趋势
  6. 全球云数据中心发展预测白皮书2016~2021
  7. java判断表是否存在_java怎么判断表是否存在?
  8. sae mysql django_Django中MySQL读写分离技术
  9. node mysql 多个_使用Node.js处理多个MySQL查询
  10. Python语言学习之数值、小数、空格那些事:python和数值、小数、空格的使用方法之详细攻略