硬件安全技术——芯片安全设计技术2
Posted 摆渡沧桑
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了硬件安全技术——芯片安全设计技术2相关的知识,希望对你有一定的参考价值。
硬件安全技术——芯片安全设计技术2
芯片安全设计技术2
一、常见的公钥密码算法
1. 公钥密码概述
- 公钥密码学与1976年由Whitfield Diffe 、Martin Hellman和Ralph Merkle公开介绍
- 公钥密码计数是20世界最伟大的思想之一
由于其改变了秘钥分发的方式
可以广泛应用于数字签名和身份认证服务 - 1977年提出的RSA成为以后使用最广泛的一种非对称密码算法
2.RSA密码算法
- 1977年由Ronald Rivest、Adi Shamir和Leonard Adleman发明,1978年公布。算法名称取自作者的名字首字母。
- 1993年发布了PKCS#1标准来说明RSA的使用规范。2000年RSA专利到期(当时ECC专利还未到期)
- 如今,只有短的RSA秘钥才能被强力方式破解。到2019年为止,还没有任何可靠的攻击RSA算法的方式。RSA-2048至今是安全的。
3. RSA算法描述
解密的过程主要依赖欧拉函数来正确还原明文。
4. ECC椭圆曲线算法
- 1985年由Neal Koblitz和Victor Miller分别独立提出
- 域K上的椭圆曲线E有下述方程定义:
- 有两种运算法则:倍点和点加
- 点乘运算可以转换为点加和倍点运算
- 主要运算为点乘,P和Q为椭圆曲线上的点,K为标量,Q=kP,知道P与Q,很难得到k
- 点乘运算类似模幂运算
9(0b1001)P = 222P + P
- 不同公钥算法安全级别对比
二、常见的使用场景
1. 非对称算法应用
- 签名、验签(常用):
私钥用云签名,公钥用于验签,确认签名者的身份 - 秘钥协商
双方协商出一个共同的秘钥 - 加密、解密
公钥用于加密,私钥用于解密,该方式加解密代价较大
2. 常见应用1——网络认证
- 客户端需要验证服务端的身份或者服务端验证客户端的身份,在双方验证完身份后,通过协商的密钥
- 在握手阶段需要进行验签、密钥交换操作
3. 常见应用2——安全启动
- 目前越来越多的设备使用了安全启动来保护安全,防止固件等呗第三方篡改
- 验证固件、应用的签名,但验证失败,就无法进入下一个阶段
4. 常见应用3——V2X新应用领域
- 频繁对周围设备发来的位置信息进行验签
- 验签速度远远大于签名速度,验签速度大于在2000次每秒
- 目前的规范大多使用了ECDSA
5. 常见应用4——嵌入式设备
-
嵌入式设备通常都有mbedtls
-
mbedTLS软件包提供了如下的能力
6. RSA、ECC的选择
- RSA的验签素服可以做到很快(原因是私钥可以很短)
例如在安全启动的场景下,如果对启动速度很敏感则很有优势 - ECC的验签速度一般比签名速度慢
如果使用ECDSA并且未经优化,签名速度一般是验签的速度的两倍 - RSA的存储占用远远大于ECC
对SRAM敏感的场景下,建议使用ECC算法 - RSA的密钥生成速度远远小于ECC
三、常见的抗攻击设计
1. 点乘,模幂的防侧信道保护
- 点乘
- 固定时间:蒙哥马利阶乘
- 标量掩码:标量加上阶的随机倍数
- 随机坐标:对投影坐标进行随机化处理
- 模幂
- 固定时间:蒙哥马利阶乘
- 指数掩码:对幂指数进行拆分(欧拉函数)
- 底数掩码:对底数乘上随机数,在得到最终结果前脱掩码
2. 验签的防FI(错误注入)保护
- 硬件多次校验
- 多次校验之间使用随机延迟
- 如果使用了蒙哥马利阶乘,可以利用两数之间的关系进行校验
- 参数进行CRC校验
四、非对称密码算法实现
1. 层次化设计
- 根据运算调用关系进行分层
底层的适合用硬件来处理,顶层的适合使用软件来处理
- 底层的运算被调用频率高,使用硬件有利于增加运算效率
- 顶层协议级运算考虑使用软件设计以增加灵活性,但需要考虑硬件的中断设计,在硬件运算时可以释放CPU资源
2.选取适合的坐标系
-
标准摄影坐标系
-
雅可比(Jacobian)坐标系
3.预计算加速(软件实现比较多)
-
对基点进行预计算
-
OpenSSL的预计算优化
4.利用SIMD指令进行加速
- 各家都有自己的SIMD指令
Intel:AXV2/SSE
ARM:NEON - 利用SIMD特性,能够使运算提升数倍
五、总结
- 公钥算法用于身份识别,主要应用为签名和验签
- ECDSA/ECDH和RSA是主流的公钥密码体系中的算法,SM2是国内主要的公钥密码算法
- 公钥密码算法往往有吞吐数据量小,运算时间长的特性
- 由于公钥算法比较复杂,可以优先考虑已有的实现,避免反复造轮子。但要有优势,软硬件结合是最好的方式。
以上是关于硬件安全技术——芯片安全设计技术2的主要内容,如果未能解决你的问题,请参考以下文章