硬件安全技术——芯片安全设计技术2

芯片安全设计技术2

  • 一、常见的公钥密码算法
    • 1. 公钥密码概述
    • 2.RSA密码算法
    • 3. RSA算法描述
    • 4. ECC椭圆曲线算法
  • 二、常见的使用场景
    • 1. 非对称算法应用
    • 2. 常见应用1——网络认证
    • 3. 常见应用2——安全启动
    • 4. 常见应用3——V2X新应用领域
    • 5. 常见应用4——嵌入式设备
    • 6. RSA、ECC的选择
  • 三、常见的抗攻击设计
    • 1. 点乘,模幂的防侧信道保护
    • 2. 验签的防FI(错误注入)保护
  • 四、非对称密码算法实现
    • 1. 层次化设计
    • 2.选取适合的坐标系
    • 3.预计算加速(软件实现比较多)
      • 4.利用SIMD指令进行加速
  • 五、总结

一、常见的公钥密码算法

1. 公钥密码概述
  1. 公钥密码学与1976年由Whitfield Diffe 、Martin Hellman和Ralph Merkle公开介绍
  2. 公钥密码计数是20世界最伟大的思想之一
    由于其改变了秘钥分发的方式
    可以广泛应用于数字签名和身份认证服务
  3. 1977年提出的RSA成为以后使用最广泛的一种非对称密码算法
2.RSA密码算法
  1. 1977年由Ronald Rivest、Adi Shamir和Leonard Adleman发明,1978年公布。算法名称取自作者的名字首字母
  2. 1993年发布了PKCS#1标准来说明RSA的使用规范。2000年RSA专利到期(当时ECC专利还未到期)
  3. 如今,只有短的RSA秘钥才能被强力方式破解。到2019年为止,还没有任何可靠的攻击RSA算法的方式。RSA-2048至今是安全的
3. RSA算法描述


解密的过程主要依赖欧拉函数来正确还原明文。

4. ECC椭圆曲线算法
  1. 1985年由Neal Koblitz和Victor Miller分别独立提出
  2. 域K上的椭圆曲线E有下述方程定义:
  3. 有两种运算法则:倍点和点加
  • 点乘运算可以转换为点加和倍点运算
  • 主要运算为点乘,P和Q为椭圆曲线上的点,K为标量,Q=kP,知道P与Q,很难得到k
  • 点乘运算类似模幂运算
    9(0b1001)P = 222P + P
  1. 不同公钥算法安全级别对比

二、常见的使用场景

1. 非对称算法应用
  • 签名、验签(常用):
    私钥用云签名,公钥用于验签,确认签名者的身份
  • 秘钥协商
    双方协商出一个共同的秘钥
  • 加密、解密
    公钥用于加密,私钥用于解密,该方式加解密代价较大
2. 常见应用1——网络认证
  1. 客户端需要验证服务端的身份或者服务端验证客户端的身份,在双方验证完身份后,通过协商的密钥
  2. 在握手阶段需要进行验签、密钥交换操作
3. 常见应用2——安全启动
  1. 目前越来越多的设备使用了安全启动来保护安全,防止固件等呗第三方篡改
  2. 验证固件、应用的签名,但验证失败,就无法进入下一个阶段
4. 常见应用3——V2X新应用领域
  1. 频繁对周围设备发来的位置信息进行验签
  2. 验签速度远远大于签名速度,验签速度大于在2000次每秒
  3. 目前的规范大多使用了ECDSA
5. 常见应用4——嵌入式设备
  1. 嵌入式设备通常都有mbedtls

  2. mbedTLS软件包提供了如下的能力

6. RSA、ECC的选择
  1. RSA的验签素服可以做到很快(原因是私钥可以很短)
    例如在安全启动的场景下,如果对启动速度很敏感则很有优势
  2. ECC的验签速度一般比签名速度慢
    如果使用ECDSA并且未经优化,签名速度一般是验签的速度的两倍
  3. RSA的存储占用远远大于ECC
    对SRAM敏感的场景下,建议使用ECC算法
  4. RSA的密钥生成速度远远小于ECC

三、常见的抗攻击设计

1. 点乘,模幂的防侧信道保护
  1. 点乘
  • 固定时间:蒙哥马利阶乘
  • 标量掩码:标量加上阶的随机倍数
  • 随机坐标:对投影坐标进行随机化处理
  1. 模幂
  • 固定时间:蒙哥马利阶乘
  • 指数掩码:对幂指数进行拆分(欧拉函数)
  • 底数掩码:对底数乘上随机数,在得到最终结果前脱掩码
2. 验签的防FI(错误注入)保护
  1. 硬件多次校验
  2. 多次校验之间使用随机延迟
  3. 如果使用了蒙哥马利阶乘,可以利用两数之间的关系进行校验
  4. 参数进行CRC校验

四、非对称密码算法实现

1. 层次化设计
  1. 根据运算调用关系进行分层
    底层的适合用硬件来处理,顶层的适合使用软件来处理
  • 底层的运算被调用频率高,使用硬件有利于增加运算效率
  • 顶层协议级运算考虑使用软件设计以增加灵活性,但需要考虑硬件的中断设计,在硬件运算时可以释放CPU资源
2.选取适合的坐标系
  1. 标准摄影坐标系

  2. 雅可比(Jacobian)坐标系

3.预计算加速(软件实现比较多)
  1. 对基点进行预计算

  2. OpenSSL的预计算优化

4.利用SIMD指令进行加速
  1. 各家都有自己的SIMD指令
    Intel:AXV2/SSE
    ARM:NEON
  2. 利用SIMD特性,能够使运算提升数倍

五、总结

  1. 公钥算法用于身份识别,主要应用为签名和验签
  2. ECDSA/ECDH和RSA是主流的公钥密码体系中的算法,SM2是国内主要的公钥密码算法
  3. 公钥密码算法往往有吞吐数据量小运算时间长的特性
  4. 由于公钥算法比较复杂,可以优先考虑已有的实现,避免反复造轮子。但要有优势,软硬件结合是最好的方式。

硬件安全技术——芯片安全设计技术2相关推荐

  1. 硬件安全技术——芯片安全设计技术1

    芯片安全设计技术1 一.常见的对称算法 二.常见的使用模式与场景 三.常见的抗攻击设计 四.对称密码算法实现 五.总结: 一.常见的对称算法 对称密码算法 加密和解密的秘钥是一样的 加密过程:X是明文 ...

  2. 硬件安全技术——芯片安全设计技术3

    芯片安全设计技术3 一.硬件安全解决方案 1. 为什么需要硬件安全 2. 传统安全解决方案对比 3. SoC安全解决方案 二.Root of Trust(信任根) 1. 信任根(RoT)是建立信任链的 ...

  3. 硬件安全技术-芯片安全设计技术一

    本篇主要介绍一些常用的对称加密算法 常用的对称算法 对称加密算法是应用较早的加密算法,技术成熟.在对称加密算法中,数据发信方将明文(原始数据)和加密密钥(mi yao)一起经过特殊加密算法处理后,使其 ...

  4. 智能终端信息安全概念(八):硬件安全技术—芯片自主化与安全硬件架构

    这个part是我比较关注的一点了. 其实最近在学安全相关的东西.一直软件层面,但是还是涉及的很底层,所以对于硬件的了解,也很有必要. 但是我发现初始接触某些东西,如果是第一次,就很容易陷入到先入为主, ...

  5. 零基础学习硬件安全技术

    关注OSR的朋友们,是否留意到OSR从4月底开始,与工信部"芯动力"合作,在芯动力人才计划平台上线了一套课程.这几个月,和客户面对面交流的机会非常少,我们利用宝贵的时间,各部门协同 ...

  6. 硬件安全技术-硬件安全综述一

    硬件安全技术系列课程详细介绍硬件安全相关的攻击技术和抗攻击设计技术,包括芯片的安全架构设计和安全认证. 硬件安全是什么? 传统意义上的硬件安全是指密码芯片安全,智能卡.可信计算等多是安全芯片的独立形态 ...

  7. 硬件安全技术——概述1(安全威胁和硬件安全技术)

    一.硬件安全技术是什么? 传统视角: 硬件安全=密码芯片安全,特别是智能卡.可信计算.Ukey等芯片攻击防御技术 密码芯片的逻辑接口.物理接口安全: 核心功能:具备防攻击能力,能有效保护秘钥存储.进行 ...

  8. 一站式智能芯片定制技术

    一站式智能芯片定制技术 从55nm到5nm先进工艺,拥有创纪录(> 200次流片)和年10万片FinFET晶圆授权量产的骄人业绩,并且成功率高达100%.15年以来,先进工艺产品交付纪录持续行业 ...

  9. 科技产品下一个重大突破将来自芯片堆叠技术

    来源:网易科技 概要:作为几乎所有日常电子产品最基础的一个组件,微芯片正出现一种很有意思的现象. 作为几乎所有日常电子产品最基础的一个组件,微芯片正出现一种很有意思的现象.通常又薄又平的微芯片,如今却 ...

最新文章

  1. 弹出窗口以及关闭窗口
  2. Docker与虚拟机
  3. 反向输出dna序列_蛋白质序列反向(逆向)翻译成DNA序列-在线工具
  4. android activity调用Adapter方法刷新列表UI,RecyclerView.Adapter
  5. 大数据世界要熟悉的5门语言
  6. 如何添加媒体控件Windows Media Player到工具箱中
  7. Android面试算法题之拆分元素
  8. 两个辅助指针变量挖字符串
  9. php 递归函数 示例,php递归使用示例(php递归函数)_PHP
  10. xu2w显示屏软件下载_LED BEST(LED显示屏控制软件) V2.8 官方版
  11. 腾讯优图贾佳亚:当AI进入产业应用时代时,计算机视觉技术更应该服务于人才对!
  12. 多路视频直播播放器系统框架
  13. IE地址栏发生改变,页面没有刷新而保留在原页面的解决方法
  14. android:TableRow之平均分布列
  15. PackageManagerService Android 8.1 源码解读 02
  16. Oracle 取余函数
  17. 王牌战士怎么用电脑玩 王牌战士模拟器玩法教程
  18. cmos逻辑门传输延迟时间_如何判断输出的高低电平(三态门)?
  19. 中文邮件格式模板、工作汇报邮件模板这样写,90%人都爱看
  20. 文本识别 OCR 浅析:特征篇

热门文章

  1. openssl 1.0.2k-fips 升级到 openssl-3.0.5
  2. 音乐分类及处理——用机器学习的方法实现python
  3. Qt与Mysql进行连接实现账号的注册登录和密码修改和验证码
  4. Android Studio实现文字识别(基于百度云OCR)
  5. Python网络爬虫:爬取腾讯招聘网职位信息 并做成简单可视化图表
  6. 互联网产品之运营管理
  7. jmeter性能测试各个方法介绍
  8. T83310 【音乐会】二重变革
  9. 今天气温达到了39度 单位给买了雪糕降温
  10. FPGA学习之毛刺问题