【安全硬件】Chap.3 如何插入一个硬件木马到芯片的组合逻辑电路的漏洞里?如何进行硬件的逻辑加密在不影响正常电路的功能的情况下

  • 1. 组合逻辑电路的漏洞
    • 组合逻辑电路中的硬件木马—举例
      • Fault injection attacks
    • 士兵巡逻预案系统解决方法——硬件的逻辑加密(Logic encryption of hardware )
      • 士兵巡逻预案系统的反思
      • 硬件的逻辑加密(Logic encryption of hardware )
  • 2. Design for Trust Techniques
  • 3. 组合逻辑电路的一般设计流程与卡诺图化简

硬件木马(Hardware Trojan)一般潜伏在实际电路里面,平时并不会影响电路的运行,但因为组合逻辑电路的漏洞常常会造成系统崩坏。而逻辑加密logic encryption,通过在原始设计中插入额外的门(称为密钥门)来隐藏设计的功能和实现,从而在一定情况下防止硬件木马。

1. 组合逻辑电路的漏洞

  输出取决于输入信号的逻辑组合的电路称为“数字组合逻辑电路”,因为没有记忆(memory)所以其输出仅取决于其输入的当前值,主要用来搭建功能性的模块(functional block)。

组合逻辑电路中的硬件木马—举例

  本作者在这里举个例子,来说明硬件木马的破坏力Hardware Trojan:比如要求设计一个在挑选士兵巡逻预案的系统,列出了5种天气情况下,士兵X和士兵Y巡逻任务安排,编写真值表如下:

inputs outputs
编码说明 A B C X Y
下雪 0 0 0 两人都巡逻 1 1
刮风 0 0 1 X巡逻 1 0
炎热 0 1 0 X巡逻 1 0
下雨 0 1 1 Y巡逻 0 1
下冰雹 1 0 0 Y巡逻 0 1

  设计者的本意是按照领导的意思,不管下雪还是下冰雹,都有一个人巡逻,于是他很开心地列出了逻辑表达式:

  • X = A ˉ B ˉ + A ˉ C ˉ X=\bar{A}\bar{B}+\bar{A}\bar{C} X=AˉBˉ+AˉCˉ
  • Y = B C ˉ + B ˉ C ˉ Y=B\bar{C}+\bar{B}\bar{C} Y=BCˉ+BˉCˉ

  然后他根据表达式搭建了这个挑选士兵巡逻预案的硬件芯片的组合逻辑:

  细心的读者可以发现,上面的真值表包含了其他输入情况下的无关项,但是实际上这片军营附近并不会出现其他的天气,也就是说在正常情况下不管下雪还是下冰雹,都有一个人巡逻

  假如有一个刺客,我想搞一个暗杀行动,不想今天有人巡逻,我就得让两个士兵都接收不到命令,即想办法使得输出A和B都是0。实际上原设计并不会输出AB为00的情况因为硬件芯片组合逻辑电路上没有这个功能。

  分析完成后,那么我攻击目的很简单:

  1. 首先让系统能输出00的情况,在这种情况下,今天不会有人巡逻。
  2. 得到刺杀任务之后,辅助采取别的手段激活这种情况,有特殊的输入可以启动我的木马让系统能输出00。

  第一件事就是插入一个木马,为注入攻击留下后门。观察真值表中的无关项,将无关项置零(给系统加上隐患漏洞),让硬件系统有输出00的可能。

  根据真值表的写出表达式:发现实际上只变了在输出Y的表达式

  • X = A ˉ B ˉ + A ˉ C ˉ X=\bar{A}\bar{B}+\bar{A}\bar{C} X=AˉBˉ+AˉCˉ
  • Y = A ˉ B C ˉ + B ˉ C ˉ Y=\bar{A}B\bar{C}+\bar{B}\bar{C} Y=AˉBCˉ+BˉCˉ

  根据逻辑表达式画出此时的组合逻辑图

  实际上,我这个“刺客”只添加了一个与门,增加了两条连线就把巡逻任务置于危险之下:此时的士兵巡逻预案系统可以输出00,即添加了没有士兵巡逻的情况。称原设计为一种Untrusted Design,插入硬件木马后的设计为Infected Design。

  插入硬件木马后的设计为Infected Design,不影响日常的使用,因为平时的系统使用也用不到其他的输入,正如前文提及实际上这片军营附近并不会出现其他的天气,也就是说在正常情况下不管下雪还是下冰雹,都有一个人巡逻。但是,刺客在硬件上开了这个后门,允许无人巡逻的情况发生。

  This creates a backdoor into the design which can be used as a killer switch or for fault inection attack.

  这时候比如刺客有很先进的一个强光照射设备可以改变某一处的电压,直接让系统的输入为111,那么士兵巡逻预案系统如刺客所想,可以直接输出00,即士兵A和士兵B都不巡逻,结果是没有士兵巡逻。。。

Fault injection attacks

Fault injection attacks on cryptographic devices and countermeasures
IoT Security - Part 20 (101 - Introduction to Fault Injection Attack (FI))
  故障注入是在异常情况下对设备的物理攻击,目的是故意在系统中注入故障以改变其预期行为。

  • 改变电源电压 ——产生尖峰
  • 改变时钟频率 ——产生故障
  • 加热设备,使得芯片过热
  • 强光照射——相机闪光灯或精确激光光束

士兵巡逻预案系统解决方法——硬件的逻辑加密(Logic encryption of hardware )

士兵巡逻预案系统的反思

  刺客所设计的硬件木马直接破坏了所设计的硬件IC芯片的安全性,这一切的一切都是因为系统的设计者留下了无关项,给刺客可乘之机。很简单的改进策略就是,让系统不能产生00输出,将无关项的输出全部给1,这样就保证了至少有一个人巡逻

  Simple countermeasure: To prevent a 00 output you can specify the "don’t care "conditions.

硬件的逻辑加密(Logic encryption of hardware )


  硬件的逻辑加密(Logic encryption of hardware )并不是用密码算法对设计文件进行加密; 相反,它意味着加密硬件的功能。通过在原始设计中插入额外的门(称为密钥门)来隐藏设计的功能和实现。以免设计表现出不正确的功能(即防止产生不正确的输出)。

2. Design for Trust Techniques

  Design for Trust是一种思想,使用预防性设计技术来克服木马检测的挑战。策略是构建可信赖的 IC电路,它完全按照要求进行设计逻辑,不多也不少

  • The use preventative design techniques has been proposed to overcome the challenges of Trojan detection.
  • A trusted IC is an integrated circuit which does exactly what it is asked for, no less and no more.
  • Untrusted circuit may fail to deliver all required functional specifications or may perform additional malicious tasks.

  基本分类有四种:

  • 逻辑加密logic encryption,通过在原始设计中插入额外的门(称为密钥门)来隐藏设计的功能和实现。
  • 拆分制造split manufacturing
  • IC 伪装IC camouflaging
  • 木马激活Trojan activation

Regaining Trust in VLSI Design: Design-for-Trust Techniques

Advancing the State-of-the-Art in Hardware Trojans Design

3. 组合逻辑电路的一般设计流程与卡诺图化简

  1. 分析要解决的问题。电路的功能、输入输出是什么、画出简单的小系统框图(block diagram)可以分析输入输出的关系。
  2. 使用合适的设计表示来表述问题。真值表或波形图描述、用计算机语言编码一定的输入输出符号。(formulate the problem using a suitable design representation)
  3. 选实施的功能性模块,如ROM、PLA、二选一选择器、译码器、或门、离散门等等。(Choose implementation target)
  4. 按照步骤实施,卡诺图化简成想要的形式(可能是两层gj括号的表达式方便控制延迟)、硬件描述语言verilog描述并用工具解释(Follow implementation procedure)

    K-maps for two-level will reduce delay

【安全硬件】Chap.3 如何插入一个硬件木马到芯片的组合逻辑电路的漏洞里?不影响正常电路的功能的情况下进行硬件的逻辑加密相关推荐

  1. 下面是以十六进制格式存储的一个 UDP 首部:~~~TCP连接使用1000字节的窗口值,而上一次的确认号是22001~~那么下一个报文段的序号是否就是 x + 1 呢?在本题中列出的 8 种情况下,画

    5-10 试说明运输层中伪首部的作用 用于计算运输层数据报校验和 5-11 某个应用进程使用运输层的用户数据报UDP,然而继续向下交给IP层后,又封装成IP数据报.既然都是数据报,可否跳过UDP而直接 ...

  2. 在开发者选项里开启gpu渲染后,能不能关闭应用的硬件加速???

    目前状况是魅族os默认开启gpu渲染,而我的app中带有使用drawpath方法绘制的view,导致开启硬件加速的时候drawpath方法无效,而且在配置文件里使用hardwareAccelerate ...

  3. 【安全硬件】Chap.2 如何破译一个CMOS门级电路;传播延迟、动态功耗、静态功耗可能泄露电路的构造以及输入密钥;非侵入式攻击 Non-Invasive Attacks

    [安全硬件]Chap.2 如何破译一个CMOS门级电路:传播延迟.动态功耗.静态功耗可能泄露电路的构造以及输入密钥:非侵入式攻击 Non-Invasive Attacks 前言 CMOS电路结构可能存 ...

  4. mongodb安装_MongoDB事实:商品硬件上每秒插入80000次以上

    mongodb安装 在尝试一些时间序列集合时,我需要一个大数据集来检查我们的聚合查询在增加数据负载的情况下不会成为瓶颈. 我们解决了5000万份文档,因为超出此数目我们仍然会考虑分片. 每次事件如下所 ...

  5. mongodb插入速度每秒_MongoDB事实:商品硬件上每秒插入80000次以上

    mongodb插入速度每秒 在尝试一些时间序列集合时,我需要一个大型数据集来检查我们的聚合查询在增加数据负载的情况下不会成为瓶颈. 我们解决了5000万份文档,因为超出此数目我们仍然会考虑分片. 每次 ...

  6. MongoDB事实:商品硬件上每秒插入80000次以上

    在尝试一些时间序列集合时,我需要一个大数据集来检查我们的聚合查询在增加数据负载的情况下不会成为瓶颈. 我们解决了5000万份文档,因为超出此数目我们仍然会考虑分片. 每次事件如下所示: {" ...

  7. 硬件基础知识---如何设计一个三极管放大电路

    硬件基础知识---如何设计一个三极管放大电路 设计步骤 1) 分析设计要求 电压增益可以用于计算电压放大倍数:最大输出电压可以用于设置电源电压 输出功率可以用于计算发射极电流:在选择晶体管时需要注意频 ...

  8. 【前沿关注】教育智能硬件是面向教育的一个新细分产品体系----详参《2021年中国教育智能硬件趋势研究报告》

    概念界定:教育智能硬件的核心体现在"学生群体"."传感互联"."智能交互":驱动因素:政策利好.市场常态化发展.技术支撑能力强共同驱动行业发 ...

  9. linux查看并口设备,如何在LINUX下实现硬件的自动检测(下)

    本文是<如何在LINUX下实现硬件的自动检测>一文的下部分,作者将继续向我们讲述如何自动检测另外几种总线类型硬件设备. 5 .USB设备的自动检测 5.1 USB设备检测的一般过程 USB ...

最新文章

  1. Tomcat备份脚本
  2. OpenCV学习笔记之OpenCV安装
  3. 中班音乐活动 机器人_【教育生活】音乐浸润童心,专业引领成长 ——记柯桥区中心幼儿园教育集团音乐项目组教学展示与研讨活动...
  4. springBoot(20):使用Spring Session实现集群-redis
  5. hihoCoder挑战赛14 -1223
  6. Mac下搭建手机APP开发环境(HBuilder X ,HTML5plus Runtime,MUI,springboot)
  7. 【OpenCV/C++】KNN算法识别数字的实现原理与代码详解
  8. 【MATLAB统计分析与应用100例】案例017:matlab读取Excel数据,进行变量系统聚类分析
  9. arcgis使用教程和视频教程
  10. Mac上将多张图片转化为pdf文档并添加水印
  11. 承认多元化,保持宽容
  12. Linux中环境变量的设置——setenv/export
  13. 人工智能应用最多的七大领域解析
  14. Mellanox网卡FW刷新方法
  15. 精确率、准确率、召回率
  16. 晶振PPM小参数,大作用
  17. php双月日历代码,PHP输出日历表代码实例
  18. 一元线性回归模型的原理及实现
  19. 调整VM虚拟机显示窗口大小
  20. vue uniapp 知识点整理

热门文章

  1. PCL可视化八叉树格网
  2. Linux之lrzsz命令安装及使用
  3. 直播预约|有奖竞猜,企业架构从业人员峰会进入两天倒计时
  4. 大陆见闻;谈电脑课程与书籍(侯捷)
  5. win10远程桌面连接ubuntu20
  6. Maven构建 —— groupId、artifactId、version概念
  7. java 设计音乐播放器设计与实现_基于java的音乐播放器的设计(源代码+实验报告)...
  8. 计算机java毕业设计 SSM与VUE的汉服销售论坛系统(源码+论文)
  9. 计算机英语教程作文,大学英语作文范文精选12篇
  10. 我一天的工作,同事一个小时就做完了?python的应用