美国国防部机密文件销毁算法

当我们在系统里“删除”了一个文件时,并不意味着这个文件就一定从磁盘上清除了,很多优秀的文件恢复软件都可以恢复被删除的文件,这在一定程度上就带来了隐私泄露的隐患。好在现在很多软件,比如360、电脑管家等等软件都集成了文件粉碎的实用功能。今天介绍一种以前被用于美国国防部的机密文件销毁算法,并附上实现的代码(C)。

算法介绍:

美国国防部DOD5220.22M文件销毁标准包括以下三步:

  1. 将文件先用0x00覆盖,再用0x01覆盖,如此重复三次;
  2. 将文件用一个随机值覆盖;
  3. 将文件名改为一个单字符文件名,最后删除之。

算法可靠性验证:

此算法虽然已经不再被美国国防部采用,但也足够应付一般的环境,主流文件恢复软件恢复的可能性还有待验证。

1 2 收藏 2 评论

关于作者:Chaobs

致力于程序设计与算法研究,喜欢各种技术,尤其对编译技术和操作系统内核感兴趣。喜欢Lisp和汇编,讨厌C++和Java。 个人主页 · 我的文章 ·     

相关文章

可能感兴趣的话题



直接登录
最新评论
  • zhimingji   2015/10/28

    好像很牛X的样子

  • Sheng Gordon   2015/10/29 精华评论

    为什么需要多次覆盖呢?直观上理解,一次写入后,磁盘上的数据就变化了。其实在硬件层面,不是这样的,还是能够恢复的。恢复的技术有下面两种(Google来的):

    第一种是:当硬盘读写头在硬盘上写入一位数据时,它使用的信号强度只是用来写入一位数据,并不会影响到相邻位的数据。由于这个写入信号并不是很强,因此你可以通过它写入的数据位的绝对信号强度来判断此前该数据位所保存的是何种数据。换句话说,如果二进制数据0被二进制数据1所覆盖,其信号强度会比二进制数据1被覆盖要弱一些。使用专门的硬件就可以检测出准确的信号强度。把被覆盖区域读出的信号减去所覆盖数据的标准信号强度,就能获得原先数据的一个副本。更令人吃惊的是,这一恢复过程可以被重复7次!因此如果想避免别人使用这种方法来窃取你的数据,至少要覆盖该数据区域7次,而且每次还应该使用不同的随机数据。

    第二种数据恢复技术则是利用了硬盘读写头的另一个特点:读写头每次进行写操作的位置并不一定对得十分精确。这就能让专家们在磁道的边缘侦测到原有的数据(也被称为影子数据)。只有重复地覆写数据才能消除这些磁道边缘的影子数据。

    由于硬件的这种特性,在销毁文件的时候,才会需要多次覆盖。

跳到底部
返回顶部