2、密码学基础回顾:对称加密与非对称加密、哈希函数与消息认证码、数字签名与证书体系

聊远程证明,绕不开密码学。这不是在背公式,而是理解IoT设备之间怎么互相信任。我做了这么多年安全,见过太多项目因为密码选型翻车——选错了算法,性能扛不住;用错了模式,安全形同虚设。这一节我们快速过一遍核心概念,重点放在IoT场景下怎么选、怎么用。

2.1 对称加密:快,但密钥怎么分?

对称加密,说白了就是加密和解密用同一把钥匙。你想想看,两个人通信,手里得有相同的密钥才能加解密。优点是快,特别快。在资源受限的IoT设备上,比如传感器、智能锁,对称加密几乎是唯一可行的选择。

常用的对称算法有AES、SM4。AES-128在安全性和性能之间平衡得最好,我个人习惯在项目里优先选它。模式上,IoT场景我建议用GCM(Galois/Counter Mode),它同时提供加密和完整性校验,一步到位。

核心要点: 对称加密速度快,适合大量数据加密。但密钥分发是最大痛点——如果密钥在传输过程中被截获,整个系统就废了。

我在一个智能门锁项目里遇到过这个问题:设备端用AES-ECB模式加密指令,结果攻击者通过重放攻击直接开了门。嗯,ECB模式不能隐藏明文模式,千万别用在IoT里。

算法 密钥长度 IoT适用性 推荐模式
AES 128 / 192 / 256 bit 高(硬件加速常见) GCM / CCM
SM4 128 bit 中(国密标准) GCM
ChaCha20 256 bit 高(无硬件加速时更快) Poly1305

2.2 非对称加密:慢,但能解决信任问题

非对称加密有一对密钥:公钥公开,私钥自己藏好。公钥加密的数据只有私钥能解,反过来私钥签名的东西公钥能验。这解决了对称加密的密钥分发难题——你不需要提前商量密钥,直接把公钥扔出去就行。

但代价是慢。RSA-2048在低端MCU上做一次签名可能要几百毫秒,这在实时性要求高的场景里根本扛不住。所以我建议IoT设备优先用椭圆曲线密码学(ECC),比如ECDSA或SM2。同样的安全强度,ECC的密钥更短、计算更快。

选型建议: 设备端做签名用ECDSA P-256,服务端验签。如果设备性能极差(比如8位MCU),可以考虑预置证书或委托签名。

我曾经在一个固件升级项目里踩过坑:用RSA-2048做签名验证,结果设备启动时间从2秒拖到了15秒。后来换成ECDSA P-256,启动时间降到3秒以内。选对算法,体验天差地别。

2.3 哈希函数与消息认证码

哈希函数把任意长度的数据压缩成固定长度的摘要。它不可逆,而且输入稍微改一点,输出就面目全非。在远程证明里,哈希用来做数据完整性校验——比如验证固件有没有被篡改。

常用的哈希算法有SHA-256、SM3。SHA-256在IoT里够用,SM3是国密标准,国内项目必须用。注意,MD5和SHA-1已经不安全了,别再用。

消息认证码(MAC)是哈希的升级版——它加了一把密钥。只有持有相同密钥的双方才能验证MAC是否正确。这能防止攻击者伪造数据。HMAC是最常见的实现,比如HMAC-SHA256。

避坑指南: 我曾经见过一个项目直接用SHA-256做固件完整性校验,没加密钥。攻击者替换了固件后重新计算哈希值,设备完全没察觉。记住:完整性校验必须用MAC或数字签名,不能裸用哈希。

2.4 数字签名与证书体系

数字签名是非对称加密的典型应用。私钥签名,公钥验签。它能提供三个保证:数据没被改过(完整性)、确实是某人签的(真实性)、签名者不能抵赖(不可否认性)。

在IoT远程证明里,设备用私钥对“证据”签名,验证方用设备的公钥验签。但问题来了——你怎么确认这把公钥确实是这个设备的?这就需要证书体系(PKI)。

证书说白了就是一张数字身份证。CA(证书颁发机构)用自己的私钥给设备的公钥签名,生成证书。验证方只要信任CA,就能通过证书链信任设备。X.509是最常用的证书标准,IoT场景里常用的是精简版,去掉不必要的字段以节省空间。

证书链工作流程:
  1. 设备向CA申请证书,CA验证设备身份后签发。
  2. 设备在远程证明时,发送自己的证书和签名数据。
  3. 验证方用CA的公钥验证设备证书,再用证书里的公钥验证签名。
  4. 如果都通过,证明设备是可信的。

我个人习惯在IoT项目里用自建CA,而不是依赖公共CA。公共CA的证书通常很贵,而且IoT设备数量巨大,自建CA更灵活、成本更低。但要注意保护好CA的私钥——一旦泄露,整个信任体系就崩了。

2.5 知识体系总览

下面这张图把本章的核心概念串起来了。你可以看到对称加密、非对称加密、哈希、MAC、数字签名和证书体系之间的关系,以及它们在远程证明中的位置。

密码学基础在远程证明中的应用 密码学基础在远程证明中的应用 密码学基础 对称加密 非对称加密 哈希函数 消息认证码 (MAC) 数字签名 证书体系 (PKI) 远程证明协议 说明 对称加密保障传输效率,非对称加密解决密钥分发, 哈希/MAC保证完整性,数字签名+证书建立信任链。

2.6 小结:IoT场景下的选型建议

这一节内容不少,但核心就一句话:没有万能密码学方案,只有适合场景的选型。我根据经验整理了几个原则:

  • 设备资源极有限(如8位MCU、几KB内存):优先用对称加密+MAC,密钥预置在设备中。非对称操作尽量委托给网关或云端。
  • 设备有一定算力(如ARM Cortex-M系列):用ECDSA做签名,AES-GCM做数据加密。证书用精简X.509。
  • 需要国密合规:SM2+SM3+SM4组合,注意SM2签名性能比ECDSA略慢,提前做压力测试。
  • 密钥管理:永远不要在代码里硬编码密钥。用安全元件(SE)或可信执行环境(TEE)存储私钥。
我的习惯: 每次做IoT安全方案,我都会先画一张“信任链图”——从设备启动到云端验证,每一步用了什么密码学原语,密钥在哪里存储,谁信任谁。画清楚了,方案就不会有大漏洞。