《物联网数据加密技术实战》
第2章 密码学基础

2、密码学基础:对称加密与非对称加密、哈希函数、数字签名、密钥管理基础

在物联网(IoT)系统中,海量设备通过无线网络传输敏感数据(如温度、位置、身份凭证)。密码学是保障数据机密性、完整性、真实性和不可否认性的核心基石。本章将深入剖析四大密码学原语:对称加密、非对称加密、哈希函数与数字签名,并探讨在资源受限的IoT环境下的密钥管理策略。

2.1 对称加密:共享密钥的“保险箱”

定义:加密和解密使用同一把密钥的算法。通信双方必须事先安全地共享这把密钥。

IoT适用场景:传感器节点采集数据后,使用轻量级对称算法(如AES-128)加密,再发送给网关。速度快,适合大量数据。

核心算法对比

算法密钥长度分组大小模式(IoT常用)硬件加速
AES128 / 192 / 256 bit128 bitCCM, GCM (认证加密)✅ 多数MCU支持
ChaCha20256 bit流加密Poly1305 (MAC)✅ 软件高效
SM4 (国密)128 bit128 bitCTR, CBC✅ 国产芯片支持

内联SVG:对称加密流程

明文 共享密钥 K 加密 E 密文 C 解密 D 图:对称加密 — 同一把密钥K同时用于加密和解密

代码示例:AES-128-GCM 加密(Python)

from cryptography.hazmat.primitives.ciphers.aead import AESGCM
import os

# 生成随机密钥(128位 = 16字节)
key = AESGCM.generate_key(bit_length=128)
aesgcm = AESGCM(key)

# 加密
nonce = os.urandom(12)  # 96位随机数
plaintext = b"Temperature: 25.6C, Humidity: 68%"
ciphertext = aesgcm.encrypt(nonce, plaintext, None)

print(f"密文 (hex): {ciphertext.hex()}")
# 解密
decrypted = aesgcm.decrypt(nonce, ciphertext, None)
print(f"解密结果: {decrypted.decode()}")

2.2 非对称加密:公钥与私钥的“密钥对”

定义:使用公钥 (Public Key) 加密,私钥 (Private Key) 解密。公钥公开,私钥保密。

IoT适用场景:设备身份认证、安全固件升级、密钥交换(如ECDH)。计算开销大,通常只用于握手阶段。

内联SVG:非对称加密流程

发送者 (Alice) 明文 M 加密 E 公钥 PK 密文 C 解密 D 私钥 SK 接收者 (Bob) 图:非对称加密 — 公钥加密,私钥解密

算法对比

算法密钥长度 (安全等级)计算开销IoT 典型用途
RSA2048 / 3072 bit高 (指数运算)数字签名、证书
ECC (椭圆曲线)256 bit (≈ RSA 3072)中 (标量乘法)密钥交换 (ECDH)、签名 (ECDSA)
SM2 (国密)256 bit中国产IoT设备认证

2.3 哈希函数:数据的“数字指纹”

定义:将任意长度数据映射为固定长度摘要(Hash Value),具有单向性、抗碰撞性。

IoT适用场景:固件完整性校验、密码存储、消息认证码(HMAC)的基础。

内联SVG:哈希函数示意图

任意数据 (文件/消息) SHA-256 0x3f7a...b1c2 固定长度 (256 bit) 图:哈希函数 — 单向映射,输出固定长度摘要

常用哈希算法

  • SHA-256:最广泛使用,256位输出,IoT固件校验首选。
  • SHA-3:新一代标准,抗量子攻击潜力。
  • SM3 (国密):256位输出,国产IoT设备强制要求。
  • BLAKE2:速度极快,适合资源受限的传感器。

2.4 数字签名:防伪造的“电子印章”

定义:使用私钥对消息摘要进行签名,任何人可用公钥验证签名。提供真实性、完整性和不可否认性。

IoT适用场景:固件签名验证、设备身份认证、安全启动(Secure Boot)。

内联SVG:数字签名与验证流程

签名者 (设备) 消息 M Hash 摘要 h 签名 S 私钥 SK 验证者 (网关) 公钥 PK 验证通过 ✅ 图:数字签名 — 私钥签名,公钥验证

2.5 密钥管理基础:IoT安全的“命门”

核心挑战:IoT设备数量庞大、资源受限、物理暴露,密钥管理是系统中最薄弱的环节。

密钥生命周期管理

  1. 生成:使用硬件真随机数发生器(TRNG)或安全芯片(SE)生成。
  2. 分发:预置(工厂烧录)、密钥协商协议(如DTLS握手)、公钥基础设施(PKI)。
  3. 存储:安全元件(SE)、TrustZone、TEE(可信执行环境)。
  4. 使用:限制密钥使用次数、设置会话密钥有效期。
  5. 更新/撤销:远程密钥轮换(Over-the-Air)、证书吊销列表(CRL)。
  6. 销毁:物理销毁或安全擦除(如NIST SP 800-88)。

内联SVG:IoT密钥管理架构

☁️ 云密钥管理 HSM / KMS 📡 边缘网关 密钥缓存 / 会话管理 🔒 终端设备 SE / TEE 存储 密钥分发 (预置/协商) 密钥管理最佳实践 ✅ 硬件隔离存储 ✅ 定期轮换 ✅ 最小权限原则 ✅ 使用安全协议 (TLS 1.3 / DTLS 1.2) ✅ 物理防篡改

IoT密钥管理技术选型

技术方案安全等级资源消耗适用场景
预置对称密钥⭐⭐⭐极低低功耗传感器、Zigbee设备
PKI + 证书⭐⭐⭐⭐⭐高高端网关、工业IoT
物理不可克隆函数 (PUF)⭐⭐⭐⭐⭐低 (硬件)防克隆芯片、安全身份
量子密钥分发 (QKD)⭐⭐⭐⭐⭐极高未来高安全场景

本章小结:对称加密保障数据机密性(如AES-GCM),非对称加密解决密钥分发难题(如ECC),哈希函数确保完整性(如SHA-256),数字签名提供不可否认性(如ECDSA)。在IoT实战中,需根据设备算力、功耗和安全等级,灵活组合这些原语,并建立从生成到销毁的全生命周期密钥管理体系。