16.Error detection - Katyusha's blog
mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6mobile wallpaper 7
508 字
1 分钟
16.Error detection
2026-09-27

错误检测:根据发送的信息,生成错误检测位,放入发送信息的头部或者尾部

例如以太网的 CRC TLS的MAC IP的checksum

几种检测位生成算法:

1.校验和 checksum

​ 发送端将所有数据16位反码无符号相加,得到的结果取反,放入数据包中

​ 接收端计算数据包中16位无符号数的和是否是0xFFFF0xFFFF (x + ~ x = 0xFFFF)

​ 若最终算出的16位无符号和是 0xFFFF,发送时不会取反,而是直接写入为 0xFFFF,避免0x0000代表无意义,此时有0xFFFF + 0xFFFF = 0x1FFFE → 高位回卷 → 0xFFFE + 1 = 0xFFFF,验证依然成立

​ 便于生成,鲁棒性不足,用于网络层和传输层

2.循环冗余编码器 CRC

​ 将一个N位的数据,变为C位的校验数据,保证了≤c\leq c位的bit错误一定能检验到,校验失误率为 (12)c(\frac{1}{2}) ^ {c}

​ 算法思路是多项式大除法,用消息的每一个bit作为多项式这个次数的系数(0/1),在这个多项式后补零,然后除以一个特定的生成多项式,得到的余数就是CRC

​ 算法强度取决于生成多项式,生成代价高,鲁棒性更强,一般用于链路层,保证底层的鲁棒性

3.消息认证码 MAC 发送方与接受方共享密钥,将数据包通过密钥进行加密与解密

MAC加密算法要求在不知道密钥的情况下,只能几乎穷举进行加密和解密

MAC在所有情况下都不保证一定能够检测到错误

CRC/checksum 没有密钥。攻击者可以改消息后自己重算 CRC/checksum,接收端照样通过。所以它们只能对付随机噪声,对主动攻击提供零保护

​ 因此MAC可以通过密钥对TLS进行保护

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

16.Error detection
https://katyusha-blog.com/posts/cs144/notes/16error-detection/
作者
katyusha
发布于
2026-09-27
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

目录