我一直在阅读有关清除硬盘上可用空间的各种实用程序的信息,它们都谈到使用各种算法多次写入由 1 和 0 组成的随机字符串...
我的问题是——为什么不直接将所有 0 写入可用空间(或所有 1)?一次操作就完成了?我想我遗漏了一些非常基本的东西……
答案1
用非常宽泛的术语来强调复杂之处:
驱动器上的位被解释为二进制,即“1”和“0”,但实际上它是一个被测量的连续变量。可以形象地说,每个位实际上都可以取 0 到 1 之间的任何值,驱动器将所有 >0.7 的值解释为 1,将所有 <0.3 的值解释为 0。
假设某个位的电荷为 0.9。然后您用 0 覆盖它,这实际上降低了电荷。最终电荷可能是 0.25,但如果该位最初为电荷为 0.2 的零,那么最终电荷可能为 0.15。因此,通过使用可以高精度读取电荷的设备,理论上可以通过使用规范化来重新创建已被全零覆盖的数据,其中电荷 <0.2 为零,电荷 >0.2 为一。
如果用随机数覆盖数据,则重建过程会立即变得更加困难。这就是为什么它更适合用于非常敏感的数据。
实际上,算法要聪明得多,这取决于用于分析磁盘磁化的设备的分辨率有多好。数据恢复公司收取高昂的费用是有原因的 :-)
答案2
我认为基本思想是将数据写入旋转磁盘上的一个狭窄圆形轨道。磁头移动到不同的轨道,但这种移动的精度有限。因此,当磁头移动到该轨道写入零时,它可能不会将它们准确地写入数据的顶部。可能存在大量重叠,但理论上,在实验室中,磁盘盘片可以放入带有窄磁头的特殊驱动器中,这些磁头移动得更精确,这样就可以读取旧数据的边缘。或者,由于数据是通过重新定向磁盘中的磁性“粒子”来写入的,这本质上是一个模拟统计物理过程,因此旧数据的一些微弱的磁性“阴影”可能仍然存在,敏感的磁头仍然可以检测到。我不确定这些是否只是假设。
因此,这个想法是多次覆盖数据,比如在一张纸上涂写你的信用卡号,以防止任何人能够读取它。涂写的次数越多,下面的内容就越难读懂。
答案3
如今的取证和数据恢复技术已经足够精确,只要在原始内容上写入一次 0 或 1,就仍能读取原始数据。