【嵌入式】bit翻转
Bit翻转(Bit Flip)
Bit翻转是指二进制数据中的某一位(bit)从 0 变成 1 或从 1 变成 0 的现象。
1. 为什么会发生 Bit 翻转?
Bit 翻转通常由以下原因导致:
- 硬件问题(如内存故障、宇宙射线干扰、电磁干扰)
- 软件错误(如错误的位运算、缓冲区溢出)
- 辐射影响(如太空中的高能粒子可能改变存储单元的值)
- 电压波动(导致存储单元状态不稳定)
2. Bit 翻转的影响
- 数据损坏:可能导致文件、数据库、内存数据错误。
- 程序崩溃:如果关键代码或指针被修改,程序可能异常终止。
- 安全漏洞:攻击者可利用 Bit 翻转(如 Rowhammer 攻击)绕过安全机制。
3. 如何检测和防止 Bit 翻转?
- -纠错码(ECC, Error-Correcting Code):如 ECC 内存,可自动检测并修正单比特错误。
- 校验和(Checksum):用于检测数据传输或存储中的错误。
- 哈希校验:如 SHA-256,确保数据完整性。
- 冗余存储:如 RAID、多副本存储,防止单点故障。