2、密码学基础(上):对称加密与非对称加密,哈希函数,数字签名原理
各位同学,咱们今天聊点硬核的。密码学,说白了就是物联网设备证明体系的「地基」。你想想看,如果连加密和签名都搞不清楚,后面签发证书、验证身份这些事根本没法落地。
我个人习惯把密码学工具分成四类:对称加密、非对称加密、哈希函数、数字签名。这四样东西,在设备证明的每个环节都会反复出现。咱们一个一个拆开讲。
2.1 对称加密:一把钥匙开一把锁
对称加密,概念上最简单。加密和解密用同一把密钥。就像你家的门锁,用同一把钥匙锁门和开门。
常见的对称加密算法有 AES、SM4、3DES。现在工业界基本只用 AES-128 或 AES-256。SM4 是国标,国内项目必须用。
| 算法 | 密钥长度 | 典型场景 |
|---|---|---|
| AES-128 | 128 bit | 设备固件加密、通信载荷加密 |
| AES-256 | 256 bit | 高安全等级设备、密钥存储加密 |
| SM4 | 128 bit | 国密合规项目、政务物联网 |
对称加密的优点是快。硬件加速下,AES-128 加密 1KB 数据只需要几微秒。缺点是密钥管理麻烦——N 个设备两两通信,需要 N×(N-1)/2 个密钥。这在物联网里根本行不通。
2.2 非对称加密:公钥私钥,各司其职
非对称加密解决了密钥分发的问题。它用一对密钥:公钥公开,私钥保密。公钥加密的数据只能用私钥解密,私钥加密的数据只能用公钥解密。
你想想看,这多方便。设备出厂时烧录私钥,公钥上传到服务器。别人想给设备发密文,直接用公钥加密就行,设备自己用私钥解密。私钥永远不出设备。
主流算法有 RSA、ECC(椭圆曲线)、SM2(国密)。RSA 现在推荐 2048 位以上,但物联网设备算力有限,我更倾向 ECC。256 位的 ECC 密钥,安全强度相当于 3072 位的 RSA,而且计算量小得多。
- 对称加密:速度快,适合加密大量数据
- 非对称加密:速度慢(慢 100-1000 倍),适合加密小数据或交换对称密钥
- 实际方案:用非对称加密传输对称密钥,再用对称密钥加密业务数据——这叫「混合加密」
我记得有一次帮客户做车联网 T-Box 安全方案。他们想直接用 RSA 加密每一条 CAN 总线数据,结果发现加密一次要 50 毫秒,车都跑出去好几米了。后来改成 ECDH 密钥协商 + AES 会话加密,延迟降到微秒级。
2.3 哈希函数:数据的「指纹」
哈希函数,输入任意长度的数据,输出固定长度的摘要。好的哈希函数有几个特点:
- 单向性:从摘要反推原始数据,计算上不可行
- 抗碰撞性:很难找到两个不同输入产生相同摘要
- 雪崩效应:输入改一个 bit,摘要一半以上的 bit 都会变
常用算法:SHA-256、SHA-3、SM3。SHA-256 输出 256 bit(32 字节),SM3 也是 256 bit。
哈希函数在设备证明里的用途:
- 固件完整性校验:计算固件哈希,和签名里的哈希对比
- 证书指纹:对证书本身做哈希,生成短标识
- 消息摘要:先对消息做哈希,再对哈希签名——这是数字签名的标准做法
2.4 数字签名:防伪造、防抵赖
数字签名,说白了就是用私钥对「消息的哈希」做加密操作。验证方用公钥解密,比对哈希值。如果一致,说明消息确实是私钥持有者签发的,而且没被篡改。
签名流程:
- 发送方对消息做哈希,得到摘要 H
- 发送方用私钥对 H 签名,得到签名值 S
- 发送方把消息和 S 一起发给接收方
- 接收方对消息做哈希,得到 H'
- 接收方用公钥解密 S,得到 H
- 比对 H 和 H',一致则签名验证通过
常见的签名算法:RSA-PSS、ECDSA、SM2 签名。物联网设备里 ECDSA 用得最多,因为签名短、计算快。
数字签名解决了三个核心问题:
- 身份认证:只有持有私钥的人才能生成有效签名
- 完整性:消息被篡改后,哈希比对会失败
- 不可抵赖:签名者无法否认自己签过这份数据
2.5 知识体系总览
下面这张图,把本章的核心逻辑串起来了。你可以看到对称加密、非对称加密、哈希函数、数字签名之间的关系,以及它们在设备证明流程中的位置。
嗯,这张图你看懂了吗?从上往下看:对称加密和非对称加密各有优劣,组合成混合加密方案;哈希函数为数字签名提供摘要基础;数字签名和混合加密最终服务于设备证明的四大场景。
2.6 本章小结
咱们这一章把密码学的四个核心工具讲清楚了:
- 对称加密:快,但密钥分发难。适合加密大量数据。
- 非对称加密:慢,但密钥管理方便。适合加密小数据或交换密钥。
- 哈希函数:单向、抗碰撞。用于完整性校验和签名摘要。
- 数字签名:私钥签名、公钥验签。解决身份认证、完整性、不可抵赖。