古特曼算法

古特曼算法（Gutmann method）是一种将电脑硬盘中的内容，如档案，进行安全抹除的算法。该算法由彼得·古特曼与科林·普拉姆设计，最早出现于1996年6月的期刊文章《Secure Deletion of Data from Magnetic and Solid-State Memory》。主要特色是在要被抹除的区段中重复写入35个片段。

而片段的选择，是在假定使用者不知道使用在硬盘的编码机制为何，因此该算法特别为3种不同型别的硬盘，设计不同的片段。如果使用者知道硬盘所使用的编码模式，就可以为这个硬盘选用专属的片段模式。一个硬盘当中不同的编码机制，会需要不同的片段模式。

在古特曼算法当中，大多数的片段模式多是设计给较老旧的MFM/RLL编码硬盘。较为近代的硬盘类型技术上都不是使用这种较老旧的编码模式，造成这些由古特曼设计的片段模式成为累赘。因此，从约2001年开始，ATA IDE与SATA硬盘制造商，针对 “安全抹除”标准进行支援设计，避免了使用古特曼算法抹除整个硬盘的需求。

自2001年起，一些高技术配置及SATA硬盘制造商的设计已支援ATA Secure Erase标准，使得在清除整个硬盘时，不再需要使用古特曼算法。此外，古特曼算法不适用于随身碟：一项2011年的研究显示，有 71.7% 的资料仍可被恢复。而在固态硬盘上，使用该方法后的资料恢复率约为 0.8% 至 4.3%。

## 背景

在大多数操作系统中，删除功能仅会将档案所占用的空间标记为可重复使用（即移除档案的指标），但不会立即移除其内容。因此，在此阶段，透过许多资料恢复软件仍能相对轻松地还原档案。然而，一旦该空间被其他资料覆写后，已无法透过纯软件方式来恢复被覆写的资料，因为储存装置的界面仅能回传当前的内容。

彼得·古特曼主张，情报机构可能具备高阶工具（例如磁力显微镜搭配图像分析），可以侦测磁盘上先前的资料位元。然而，根据《使用磁力显微镜从硬盘重建资料》的研究，这项主张被认为站不住脚。

## 方法

一次完整的覆写程序由四组随机写入模式作为开头，接着随机执行第 5 至 31 次的特定写入模式（详见下表），最后再以四组随机模式作为结束。

每个第 5 至 31 次的模式皆针对某一种磁储存的代码方式设计，以隐藏磁盘上的资料，达到无法轻易恢复的效果。尽管下表中的位元模式专门针对特定编码方式，但覆写时仍会对整个磁盘进行多次写入，确保资料被彻底覆盖。使用该方法的最终目标是，即使是高阶的物理扫描技术（如磁力显微镜），也无法恢复任何资料。

次数｜写入资料 (表示法)｜针对的编码方式之磁盘写入模式

二进制｜十六进制｜(1,7)长度限制编码｜(2,7)长度限制编码｜改良频率调变

1~4｜(随机)｜(随机)

5｜`01010101 01010101 01010101`｜`55 55 55`｜`100`...｜`000 1000`...

6｜`10101010 10101010 10101010`｜`AA AA AA`｜`00 100`...｜`0 1000`...

7｜`10010010 01001001 00100100`｜`92 49 24`｜`00 100000`...｜`0 100`...

8｜`01001001 00100100 10010010`｜`49 24 92`｜`0'''0'''00 100000`...｜`'''1'''00 100`...

9｜`00100100 10010010 01001001`｜`24 92 49`｜`100000`...｜`00 100`...

10｜`00000000 00000000 00000000`｜`00 00 00`｜`101000`...｜`1000`...

11｜`00010001 00010001 00010001`｜`11 11 11`｜`0 100000`...

12｜`00100010 00100010 00100010`｜`22 22 22`｜`'''0'''0'''0'''00 100000`...

13｜`00110011 00110011 00110011`｜`33 33 33`｜`10`...｜`1000000`...

14｜`01000100 01000100 01000100`｜`44 44 44`｜`'''0'''00 100000`...

15｜`01010101 01010101 01010101`｜`55 55 55`｜`100`...｜`000 1000`...

16｜`01100110 01100110 01100110`｜`66 66 66`｜`'''0'''000 100000`...｜`0'''0'''0000 10000000`...

17｜`01110111 01110111 01110111`｜`77 77 77`｜`100010`...

18｜`10001000 10001000 10001000`｜`88 88 88`｜`00 100000`...

19｜`10011001 10011001 10011001`｜`99 99 99`｜`0 100000`...｜`00 10000000`...

20｜`10101010 10101010 10101010`｜`AA AA AA`｜`00 100`...｜`0 1000`...

21｜`10111011 10111011 10111011`｜`BB BB BB`｜`00 101000`...

22｜`11001100 11001100 11001100`｜`CC CC CC`｜`0 10`...｜`0000 10000000`...

23｜`11011101 11011101 11011101`｜`DD DD DD`｜`0 101000`...

24｜`11101110 11101110 11101110`｜`EE EE EE`｜`0 100010`...

25｜`11111111 11111111 11111111`｜`FF FF FF`｜`0 100`...｜`000 100000`...

26｜`10010010 01001001 00100100`｜`92 49 24`｜`00 100000`...｜`0 100`...

27｜`01001001 00100100 10010010`｜`49 24 92`｜`0'''0'''00 100000`...｜`'''1'''00 100`...

28｜`00100100 10010010 01001001`｜`24 92 49`｜`100000`...｜`00 100`...

29｜`01101101 10110110 11011011`｜`6D B6 DB`｜`0 100`...

30｜`10110110 11011011 01101101`｜`B6 DB 6D`｜`100`...

31｜`11011011 01101101 10110110`｜`DB 6D B6`｜`00 100`...

32~35｜(随机)｜(随机)

表中的模式透过不同编码方式展示了磁盘上的位元如何排列。这些模式旨在隐藏原始资料，使即便有进阶的工具也难以找回。

## 批评

美国全国经济研究所这间私人非营利研究机构的丹尼尔·费恩柏格（Daniel Feenberg）对葛特曼的主张提出了批评。他质疑葛特曼所宣称的“情报机构有能力读取被覆写的资料”的说法，指出此类主张缺乏证据支持。费恩柏格发现，葛特曼引用了一个不存在的资料来源，且其他来源也无法实际证明成功恢复资料，只能进行部分成功的观察。此外，葛特曼对“随机”的定义与常见的理解也有所不同。他认为，随机资料应该是伪随机数据，且序列的生成规律需为资料恢复方所知。然而，这与一般的“不可预测”随机数不同，例如由密码学安全伪随机数生成器所生成的序列。

尽管如此，一些政府的资讯安全程序仍认为，磁盘即使已被覆写一次，仍属于敏感资料。

葛特曼本人对部分批评进行了回应，并在其原始论文的后记中批评了人们对其算法的滥用。他指出：

“自从这篇论文发表以来，有些人将我所描述的35 次覆写技术，视为一种驱邪仪式来驱逐邪灵，而非基于磁盘编码技术的技术性分析。因此，他们主张即使在PRML和EPRML磁盘上也应进行完整的 35 次覆写，尽管这样做的效果不会比单纯以随机资料覆盖更有效。”

“实际上，对任何磁盘进行完整的 35 次覆写都是毫无意义的，因为此技术的设计涵盖了所有常用编码技术的组合，包括超过 30 年历史的 MFM 方法（如果你不了解这段话的意思，请重读论文）。如果你使用的磁盘采用某一种特定的编码技术X，只需要进行针对 X 的覆写，而不需要进行全部 35 次的覆写。”

“对于现代的 PRML 和 EPRML 磁盘而言，进行几次随机资料的擦除已是最佳方法。正如论文所说，‘用随机资料进行彻底擦除，已经是所能达到的最佳效果’。这在1996 年如此，现在依然如此。”