当前位置: 首页 > news >正文

ota之.加密算法,mcu加密方式

一、ota之.加密算法,mcu加密方式

前面一篇文章,讲了soc的加密方式,但是soc资源充足,mcu没有,所以不会用openss生成公私钥
切计算哈希用rsa256位。

  • ECC(椭圆曲线加密) 是一种非对称加密算法,用于生成公钥/私钥对,实现数字签名、密钥交换等,特点是密钥短、效率高,适合手表等资源受限设备。
  • SHA(如SHA-256) 是哈希算法,用于计算数据的“指纹”(哈希值),不生成密钥,仅用于验证数据完整性(防篡改)。
  • MD5 也是哈希算法,但安全性极低(易被碰撞攻击),已淘汰;SHA-256 是更安全的哈希算法

详细解释

  1. ECC(椭圆曲线加密)的作用:生成公私钥,实现签名/加密

ECC是非对称加密算法的一种(和RSA同属一类,但更高效),核心功能是:

  • 生成公钥和私钥对:通过椭圆曲线数学特性,生成一对关联的密钥(私钥是随机数,公钥由私钥计算得出,不可逆)。
  • 数字签名:用私钥对数据的哈希值加密(生成签名),接收方用公钥解密签名,验证数据来源和完整性(如手表OTA中,服务器用私钥签名,手表用预存公钥验签)。
  • 密钥交换:在需要加密通信时(如手表和服务器传输敏感数据),用ECC安全交换对称加密密钥(避免密钥明文传输)。

ECC的优势:相同安全性下,密钥长度比RSA短(如256位ECC≈2048位RSA),计算速度快、耗电少,特别适合手表等低功耗MCU。

  1. SHA(如SHA-256)的作用:计算哈希值,验证数据完整性

SHA(安全散列算法)是哈希算法,和密钥无关,仅做一件事:

  • 对任意长度的数据(如手表的OTA包、文本、文件)计算出固定长度的哈希值(如SHA-256生成256位=32字节的哈希值),相当于数据的“唯一指纹”。
  • 特点:数据只要有任何微小改动(哪怕1个比特),哈希值会完全不同;且无法从哈希值反推原始数据(单向性)。

为什么不用MD5?
MD5也是哈希算法,但因“碰撞攻击”漏洞(不同数据可生成相同MD5值),早已被淘汰,无法用于安全场景(如OTA验证)。SHA-256安全性高,是目前主流选择。

  1. 三者的关系:哈希(SHA)+ 非对称加密(ECC)配合实现安全验证

以手表OTA为例,流程是:

  1. 服务器端:
  • 对OTA包用SHA-256计算哈希值(得到“数据指纹”)。
  • 用ECC私钥对哈希值加密,生成数字签名(相当于“盖章”)。
  • 下发“OTA包 + 签名”给手表。
  1. 手表端:
  • 对接收到的OTA包用SHA-256计算本地哈希值。
  • 用预存的ECC公钥解密签名,得到服务器计算的原始哈希值。
  • 对比两个哈希值:一致则包未被篡改,且来自合法服务器(通过ECC公钥验证)。

总结:ECC负责“身份认证和签名加密”(用公私钥),SHA-256负责“数据完整性校验”(用哈希值),两者配合在手表等设备上实现高效、安全的OTA验证。

http://www.dtcms.com/a/284683.html

相关文章:

  • 开源 python 应用 开发(八)图片比对
  • Android wifi简单白名单实现逻辑
  • 20250717在荣品的PRO-RK3566开发板的Android13系统下解决点屏出现问题unsupport command data type: 217
  • 通俗的解释一下以太网中的端口号
  • 流式数据处理实战:用状态机 + scan 优雅过滤 AI 响应中的 `<think>` 标签
  • 深入理解CSS定位:绝对定位的包含块机制
  • 退休时间计算器,精准预测养老时间
  • 项目实战(18)-POE分离器
  • Spring底层原理(一)核心原理
  • RCU机制及常见锁的理解
  • 深入理解Java中的Map.Entry接口
  • 【数据结构】单链表的实现
  • python(one day)——春水碧于天,画船听雨眠。
  • Python 网络爬虫 —— requests 库和网页源代码
  • 网络爬虫的介绍
  • Kafka 配置参数详解:ZooKeeper 模式与 KRaft 模式对比
  • 【Android】Span的使用
  • 深入了解linux系统—— 信号的捕捉
  • 卷积神经网络--网络性能提升
  • 如何成为高级前端开发者:系统化成长路径。
  • 初识 二叉树
  • BI Agent vs. 传统BI工具:衡石科技视角下的效率与智能跃迁
  • 亚远景科技助力长城汽车,开启智能研发新征程
  • AI产品经理面试宝典第34天:破解人机社交关系面试题与答法
  • 一台显示器上如何快速切换两台电脑主机?
  • 【vue-2】Vue 3 中的 v-on 指令:全面指南与最佳实践
  • 无线调制的几种方式
  • .NET Framework版本信息获取(ASP.NET探针),获取系统的.NET Framework版本
  • Axure设计设备外壳 - AxureMost 落葵网
  • 基于C#+SQlite开发(WinForm)个人日程管理系统