硬件安全技术——芯片安全设计技术1
芯片安全设计技术1
- 一、常见的对称算法
- 二、常见的使用模式与场景
- 三、常见的抗攻击设计
- 四、对称密码算法实现
- 五、总结:
一、常见的对称算法
- 对称密码算法
加密和解密的秘钥是一样的
加密过程:X是明文,K是秘钥,Y是密文
解密过程:Y是密文,K是秘钥,X是明文
- 常见的对称算法
AES (Advanced Encryption Standard)
DES/3DES (Data Encryption Standard)
SM4
ZUC
Chacha20
按照字节来划分,前三种AES,DES, SM4可分为一类,均按照8、16字节来分组,又称为分组密码。
对于ZUC,Chacha20则没有分组,又称为流密码。
- AES分组密码算法
AES是目前国际使用最为广泛的对称密码算法
其算法流程为:
AES算法有三个子类,分别为AES128、AES-192、AES-256。
区别:
秘钥长度:128,192,256
轮数:10,12,14
加解密的黑盒子SBOX不同
加解密使用轮秘钥的顺序不同
二、常见的使用模式与场景
分组密码操作模式
ECB模式(电子密码本模式)
在实际中,,加密数据往往大于8字节,16字节,最简单的方式就是将数据分割为若干个分组后,对这些分组数据分别进行加密,也就是ECB模式。关于操作模式说明:对于很长的数据,如1M,那么使用SM4,AES等对称密码算法,输入只能为固定字节数,如8字节或16字节。那么最简单的解决方式即为ECB模式。
ECB模式的缺点:采用ECB模式及每个数据都分别进行加密,各个加密之间互不干扰,因此,可以从密文中可以看出对应的结构变化趋势,这对于抵抗攻击来说是不安全的。
类似于一个模糊的图片,虽然被加密了,但还是能够看出其中的一些信息:
CBC模式
为了解决ECB模式的缺点,此外还有其他的模式,如CBC模式:
对于CBC加密过程,每一个分组异或后会与上一个得到的结果,在进行下一次的黑盒运算。这样可以打乱每一个分组的结构信息。常见的对称算法加密模式
- ECB-Electronic Code Book
- CBC-Cipher Block Chaining
- CTR-CounTeR
- GCM-Galois/Counter,用于网络通信
- XTS-XEX-based Tweaked-codebook mode with ciphertext Stealing,用于数据存储
数据存储
安卓7.0以及更高的版本支持文件级别的加密(FBE)。采用文件级加密时,可以使用不同的秘钥对不同的文件进行加密,也可以对加密的文件单独解密。
所有加密都基于采用XTS模式的AES-256算法。内核的加密性能必须要在使用AES XTS时至少达到50MB/s,以确保良好的用户体验。
因为在使用数据存储加密时,会带来性能上的瓶颈,造成性能变差,因此需要对加密的算法提出合理的要求来达到良好的用户体验。
数据存储的常用模式-XTS
特点:
- NIST SP800-38E (标准化模式)
- 无需IV,初始向量(与CBC模式不同)
- i为sector number(与数据处理的位置相关)
- 可以随机访问
- 可以进行并行处理
- 网络通信
- SSL/TLS(Secure Socket Layer 安全套接层)是基于HTTPS下的一个协议加密层
- TLS通信中数据都会使用对称密码算法进行加密,密码算法的种类在握手阶段进行确认
- TLS-AES-128-GCM-SHA256为TLS v1.3的必选算法
- 网络通信加密中常见的模式——GCM模式
特点
- NIST SP800-38D(标准)
- 即可以对数据加密,也可以用于提供校验值(auth tag)
- 处理速度可以比CBC快,因为加解密部分可以并行处理。
三、常见的抗攻击设计
- 侧信道攻击防护
思想1:对中间值进行随机化或掩码。
对中间值进行随机化处理,往往通过对中间值异或或掩码来达到随机化中间过程的目的:
线性操作往往使用布尔掩码
非线性操作使用乘法掩码、随机掩码和国定值掩码
思想2:增加随机延迟或伪操作
在功耗上无法区别延迟或者伪操作,使得攻击者无法对齐功耗曲线。
- FI防护(错误注入分析防护)
多次操作校验是否计算结果相同
- 可以使用加密后解密来判断明文是否一致,对运算前后几轮需要重点关注
关键参数保存CRC
- 例如秘钥的CRC值可以由硬件保存,不定时计算目前使用的秘钥CRC值是否一致
四、对称密码算法实现
SBOX黑盒设计实现策略
硬件上游两种主要实现方案:
a. 使用查找表
b. 二项式求逆
SMIC55, 100MHz,上面的是查找表实现,下面的是二项式求逆实现。可以看到查找表实现的面积大约为其一倍。一般是频率越高,二项式求逆的面积越小,因此,需要权衡面积和性能的关系(trade-off)。
轮秘钥的计算逻辑
使用两个寄存器来存储轮秘钥,regA存储第一轮或最后一轮轮秘钥,regB用于存储当前的轮秘钥(非高速应用中)需要有标识标志regA存储的为第一轮还是最后一轮轮秘钥
在一个时钟周期只进行一轮(或较少轮数)运算时,避免在一开始就讲坤秘钥全部扩展完成,占用大量寄存器。
密钥管理
关键密钥:关键密钥由硬件管理,软件不可见或控制访问权限,例如根密钥。应用密钥:应用密钥由软件协调管理,增加灵活性,例如会话秘钥。
4.指令集加速
通过查看CPU信息来确认是否支持指令集加速
user@root:grep aes -o -ml /proc/cpuinfo
aes
openssl 1.0.1版本后,运行时期自动检测是否支持AES-NI
只有使用openssl EVP的接口,定义函数才能使用AES-NI
如果CPU支持AES-NI指令扩展,其性能如下:
五、总结:
- 根据应用场景选择适合的算法和模式,根据标准规范使用
- 大多数算法还是可以使用空间换时间的方式进行加速
- 物理安全设计包含前端、后端整个IC设计流程,安全性措施在设计完成后还需要经过过实验室测试
- 常用的硬件对密码算法往往有加速支持
硬件安全技术——芯片安全设计技术1相关推荐
- 硬件安全技术——芯片安全设计技术2
硬件安全技术--芯片安全设计技术2 芯片安全设计技术2 一.常见的公钥密码算法 1. 公钥密码概述 2.RSA密码算法 3. RSA算法描述 4. ECC椭圆曲线算法 二.常见的使用场景 1. 非对称 ...
- 硬件安全技术——芯片安全设计技术3
芯片安全设计技术3 一.硬件安全解决方案 1. 为什么需要硬件安全 2. 传统安全解决方案对比 3. SoC安全解决方案 二.Root of Trust(信任根) 1. 信任根(RoT)是建立信任链的 ...
- 硬件安全技术-芯片安全设计技术一
本篇主要介绍一些常用的对称加密算法 常用的对称算法 对称加密算法是应用较早的加密算法,技术成熟.在对称加密算法中,数据发信方将明文(原始数据)和加密密钥(mi yao)一起经过特殊加密算法处理后,使其 ...
- 智能终端信息安全概念(八):硬件安全技术—芯片自主化与安全硬件架构
这个part是我比较关注的一点了. 其实最近在学安全相关的东西.一直软件层面,但是还是涉及的很底层,所以对于硬件的了解,也很有必要. 但是我发现初始接触某些东西,如果是第一次,就很容易陷入到先入为主, ...
- 零基础学习硬件安全技术
关注OSR的朋友们,是否留意到OSR从4月底开始,与工信部"芯动力"合作,在芯动力人才计划平台上线了一套课程.这几个月,和客户面对面交流的机会非常少,我们利用宝贵的时间,各部门协同 ...
- 硬件安全技术-硬件安全综述一
硬件安全技术系列课程详细介绍硬件安全相关的攻击技术和抗攻击设计技术,包括芯片的安全架构设计和安全认证. 硬件安全是什么? 传统意义上的硬件安全是指密码芯片安全,智能卡.可信计算等多是安全芯片的独立形态 ...
- 硬件安全技术——概述1(安全威胁和硬件安全技术)
一.硬件安全技术是什么? 传统视角: 硬件安全=密码芯片安全,特别是智能卡.可信计算.Ukey等芯片攻击防御技术 密码芯片的逻辑接口.物理接口安全: 核心功能:具备防攻击能力,能有效保护秘钥存储.进行 ...
- 一站式智能芯片定制技术
一站式智能芯片定制技术 从55nm到5nm先进工艺,拥有创纪录(> 200次流片)和年10万片FinFET晶圆授权量产的骄人业绩,并且成功率高达100%.15年以来,先进工艺产品交付纪录持续行业 ...
- 科技产品下一个重大突破将来自芯片堆叠技术
来源:网易科技 概要:作为几乎所有日常电子产品最基础的一个组件,微芯片正出现一种很有意思的现象. 作为几乎所有日常电子产品最基础的一个组件,微芯片正出现一种很有意思的现象.通常又薄又平的微芯片,如今却 ...
最新文章
- html css js实现快递单打印_html+css+js实现计算器
- 又有六所大学考研预调剂系统已开放!
- 【数字图像处理】三.MFC实现图像灰度、采样和量化功能详解
- 有哪些经济学理论可以用在谈恋爱上?
- c语言四个数找大wxyz,2015年计算机二级《C语言》考试上机测试题(7)
- GCD之线程挂起与恢复
- 《大道至简》第一章读后感(java伪代码)
- JavaFX屏幕截图工具ScreenCapture
- 微信小程序数据库更新数据说明
- 东莞:“风暴眼”中的世界工厂
- Birds in Forest
- 计算机如何远程控制对方手机,如何远程控制别人的电脑【图解】
- vue ssr之nuxt
- 教你如何赚你的第一桶金 - 2048(包括源代码)
- Oracle set timing on
- 如何用企业微信做私域流量客户运营,社群运营?企业微信入门篇(完整版)
- HTTP.sys远程代码执行漏洞
- csv和excel文件操作
- 喷泉模型fountain model
- 汇总css布局模型和常见代码缩写与长度单位