零
教师介绍
Gang Qu, 马里兰大学教授,嵌入式系统实验室以及硬件安全实验室的Director。UCLA毕业CS博士,本科为中科大。
对他的感觉是讲课比较无聊,讲的冷笑话超级冷……
生词
- fabrication 制造
- obfuscation 混淆
- constraint 约束
- countermeasures 对策
- cryptanalysis 密码分析
- manipulate 操作
- soldering 焊接
一、数字系统设计:基础与弱点
CAD tools | 计算机辅助设计工具 | Computer-aided Design tools
DCC | 无关情况 | Don't Care Condition
IP | 知识产权 | Intellectual Property
SDC | 满足性无关 | Satisfiability don't cares
ODC | 观察性无关 | Observation don't cares
- 同步电路 有时序,信号只在时钟上翻转。相对的,异步电路 则没有时序。
- 系统声明 摘录定义原话:The specification of a system is a description of its functionality and other characteristics required for its use.通常包含了输入、输出及从输入到输出的布尔函数表达。形式也可以使用真值表或状态转换图等。它的表述可以是高级(high level)的,系统的输入输出可以是十进制表达;也可以是低级(low level, binary level)的,系统的输入输出必须表示为二进制。
- 系统实现 定义原话:The implementation of a system is how the system is constructed from simpler components.可以使用基础门、通用门、技术库、触发器(内存单元)以及IP等。
- 通用门 能够实现所有数字系统(等价于实现所有基础门)的一个或一组门。例如NAND,或者{OR, NOT}
- 无关条件 用户对某种输入而言,并不关心其输出值
- 满足性无关 对于电路的某个部分而言,由于其之前的电路约束,某种输入组合永远不可能出现,用该部分电路的输入组合表示({x=1, y=1})
- 观察性无关 对于电路的某个部分而言,当x恒定在某个值时,无论y为何值都不影响输出(也就是某个子系统的实现无关紧要),用该部分电路的输入组合表示({x=1, y=1}, {x=1, y=0})。【问】
- 锁存器 latch
- 触发器 Flip-Flop
- 自我纠错的设计 将DCC指向有意义的状态。而这也可能带来后门,因为这意味着攻击者可能利用DCC转向他需要的状态。
二、知识产权保护
SOC | 芯片级系统 | System On Design
VLSI | 超大规模集成电路 | Very Large Scale Integration
GC | 图着色(问题) | Graph Coloring
GP | 图分割(问题) | Graph Partitioning
PUF | 物理不可复制功能 | Physical Unclonable Function
- 知识产权(IP) 原文定义:An original idea with can be used to earn money. 在超大规模集成电路中,拥有知识产权的设计单元可被视为一个独立得子模块。
- 设计IP 任何能让设计变得更好的革新或者技术。包括算法,技术,方法论。
- 硬IP 固定的硬件设计,往往性能是确定的,例如一个电路板走线设计。
- 软IP 灵活的,性能不确定,往往有某种程度的抽象,例如综合性HDL源代码。
- 固IP 介于硬IP和软IP之间。
- 水印 知识产权从属的标记。
- 基于约束的水印 将签名混合到问题中去,这导致问题的解会带上签名。
-
布尔方程水印 如果要隐藏1,则使
F(a, b, c, d) = 1
;如果要隐藏0,则使F(a, b, c, d) = 0
通常会给出两个DCC,隐藏01则让第一个DCC为0,第二个DCC为1。所以,给出的DCC是有顺序的。【问题】 - 编码器水印 1. 将所有DCC按大小排列,输入位数为floor(lg(DCC数量)),设为x。输出位数为y 2. 将要嵌入的水印转为二进制,并按(x+y)的整数倍补齐 3. 按从右到左的顺序补入DCC,略难描述。
- 图着色水印 1. 为图中的顶点加上序号 2. 将消息转为二进制,从左到右取位 3. 为每个顶点寻找序号最小的两个不直接连接的顶点,如果要隐藏的位是1,则连接较大的那个,不然则连接较小的。
- 可靠性 credibility 不同芯片水印发生碰撞的可能性应该非常小。
- 易检验性 easy detectability
- 弹性 resilience 水印不容易移除
- 透明度 水印方法必须公布,且设计软件能够帮助嵌入和检测
- 部分保护 水印技术可以只保护一部分设计,从而让水印针对某个IP进行保护
- 平等性 应该对所有设计者和签名都平等
- 零负担水印 1.首先不考虑水印,如常设计。2.寻找可以嵌入水印而不增加负担的地方。3.调整设计,嵌入水印。通常第2、3步会不断寻找、尝试、测试。
- 基于约束的水印 以及 公开水印 【是完全没有看懂】
- 基于图分割问题得公开水印 将节点配对,如要隐藏1,则把该位置这对节点放在两边;如要隐藏0,则放在一边。由后往前。
- 指纹 水印标示着IP的所有人,指纹标示着IP实例的特征,其实就是个序列号。
- 基于图着色问题的指纹 利用DCC的结果不同生成指纹。
- 硬件计量 使设计师可以控制生产中的IP保护,例如过量生产。水印无法防止过量生产,但指纹可以。
- ICID 芯片在制造中自带的随机ID,是由于生产过程中的随机因素所产生的,属于被动标签,可用于指纹。
三、物理攻击
PA | 物理攻击 | Physical Attack
FIB | 聚焦离子束 | Focused Ion Beam
ASIC | 针对应用的集成电路 | Application-specific Intergrated Circuit
FIPS | 联邦信息处理标准 | Federal Information Processing Standard
ME | 模幂 | Modular Exponentiation
-
PA: 物理攻击,
- 需要:
- (直接的)芯片接触
- 信号线的接触(测量)
- 设备,工具,技能以及知识
- 两个步骤:
- Interaction(互动),获得设备的物理特性
- Explotation (利用),获得秘密
- 攻击者分类:
- Class I(Clever Outsiders)
- Class II(Knowledgeable insider)
- Class III(Funded Organizations)
- 密码分析: 数学性分析方式,寻找理论漏洞
-
侵入式攻击:Invasive Attack
- 例子
- 解封与逆向处理 Decapsulation and Deprocessing
- 逆向工程 Reverse Engineering
- 消除钝化与微探针 Depassivation and Microprobing
- 芯片修改 Chip Modification
- 工具
- 焊接与脱焊
- 化学药品
- 高精度光学显微镜
- 示波器,信号发生器
- 接线、激光切割、微探针能力
- 扫描型电子显微镜
- FIB 工作站
- 对策
- 混淆走线
- 数据加密
- 隐藏数据总线
- 外部设置传感器网络、自毁
- 例子
-
非侵入式攻击: Non-invasive Attack
- 例子
- 旁路攻击
- 蛮力
- 数据剩磁 Data Remanence
- 故障注入
- 工具
- 万用表
- 通用编程芯片
- 例子
-
半侵入式攻击:Semi-invasive Attack
- 例子
- 解封装与逆向处理
- 成像
- 故障注入
- 旁路攻击分析
- 工具
- 紫外光以及激光光源
- 显微镜
- 计算机,以及FPGA板、面包板之类的
- 例子
- 逆向工程:侵入式攻击。研究芯片内部构造及功能。花费高,基本与设计者要求相当。
- 微探针: Microprobing 侵入式攻击 在芯片表面进行观察,操作,干扰
- 故障生成: 半侵入式或是非侵入式,使芯片在极端条件下工作,导致失灵,并且泄漏信息,或者获得额外权限。对策:校验和、随机执行、冗余、故障侦测。
- 旁路攻击:非侵入式攻击。在正常工作时测量监控芯片的物理参数,通过分析数据获取信息。
- 软件攻击:非侵入式攻击。通过普通的I/O口,利用已知漏洞进行攻击。
-
数据剩磁:
- 掉电、长时间存储、低温(-20°)冰冻后,数据可能存在SRAM中。
- EEPROM和Flash中,写数据会影响电压
- 故障注入攻击:电源、温度、白光、激光、X射线、离子束、电磁
-
防篡改保护级别
- 零 ZERO
- 微处理器、通过外部存储器存储数据的FPGA
- 低 LOW
- 拥有内部存储功能的微处理器,存储功能有专利而没有被保护
- 中低 MODL
- 拥有保护的微处理器,但是对温度计电压敏感
- 中 MOD
- 微处理器的保护措施涵盖紫外线、ASIC、安全的存储芯片、SmartCard
- 中高 MODH
- 安全的FPGA,现代化的SmartCard、复杂的ASIC
- 高 HIGH
- 为CA研发的安全的加密模块、工业性以及银行性应用
- 零 ZERO
-
Diffie-Hellman 密钥交换:各自生成一个随机数X,计算
a**x mod q
后交换结果,自己生成的随机数x即为密钥 - RSA算法 : 太复杂了请谷歌
- 迭代式ME: 一个个相乘然后取模
- 开方相乘策略:square and multiply 计算a**x时,将x转换为二进制,然后从高位起逐个计算,讲起来也蛮复杂的。
- 蒙哥马利规约:太麻烦了请谷歌
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。