《数据完整性校验技术》
时间:2025-03-22
作者:周文喆
记录下自己遇到的关于数据校验的需求
| 技术 | 原理 | 纠错能力 | 检错能力 | 冗余开销 | 计算复杂度 | 典型应用 |
|---|---|---|---|---|---|---|
| Parity | 添加1位校验位(奇/偶校验) | 无 | 单比特错误 | 极低 | 极低 | 串口通信、内存基础校验 |
| Checksum | 累加或异或运算生成校验值 | 无 | 整体和错误 | 低 | 低 | IP协议头校验、简单文件验证 |
| CRC | 多项式除法生成固定长度校验码 | 无 | 突发错误、多比特 | 中 | 中 | 以太网、硬盘存储 |
| ECC | 冗余校验位(如汉明码、BCH码) | 单比特纠正 | 双比特检测 | 高 | 高 | 服务器内存(ECC RAM) |
| BCC | 逐字节异或运算生成校验码 | 无 | 偶数个错误 | 低 | 极低 | 串行通信、低延迟传输 |
| 哈希校验 | 哈希函数生成固定长度摘要值 | 无 | 篡改检测 | 无 | 中高 | 文件完整性、数字签名 |
| 海明码 | 冗余位编码实现错误定位 | 单比特纠正 | 双比特检测 | 中高 | 中 | 早期通信系统、基础内存校验 |
| 数字签名 | 非对称加密+哈希算法 | 无 | 来源验证+防篡改 | 高 | 高 | 安全通信、电子合同 |
ISO 8473-1 Checksum(Fletcher-255)
CRC
$$
x^{16} + x^{12} + x^5 + 1
$$
单字节累加和
$$
\left( \sum_{i=0}^{n-1} b_i \right) \bmod 256
$$