布鲁斯·施奈尔 (Bruce Schneier) 写道:
病毒没有“治愈方法”。数学证明,编写任何现有防病毒程序都无法阻止的病毒总是有可能的。
摘自布鲁斯·施奈尔 (Bruce Schneier) 的《秘密与谎言》一书,第 154 页。
布鲁斯·施奈尔 (Bruce Schneier) 写道:
病毒没有“治愈方法”。数学证明,编写任何现有防病毒程序都无法阻止的病毒总是有可能的。
摘自布鲁斯·施奈尔 (Bruce Schneier) 的《秘密与谎言》一书,第 154 页。
在对此的一种可能解释下,这是赖斯定理的结果。如果程序执行某些恶意操作,则程序是恶意的,这使其成为语义属性。有些程序是恶意的,有些不是,这使它成为一个重要的属性。因此,根据赖斯定理,在一般情况下,程序是否恶意是不可判定的。
实际上,可以很容易地证明相反的情况:由于所有计算机病毒都以某种方式是可执行代码,因此您所要做的就是编写一个防病毒程序,它将报告任何可执行代码为病毒。从逻辑上讲,这样的程序将检测所有可能的病毒:
当然,关于这个防病毒软件吐出太多“误报”的说法是有争议的。但是,判断阳性是假还是真的标准是什么?啊! 原来良性代码和恶意代码之间的区别,诚实的“远程 PC 控制”套件和像 Netbus 这样的木马之间的区别是完全任意的,所以整个问题毫无意义。
除非将其重新表述为数学命题,否则该陈述无法在数学上得到证明。
至少,这需要对什么是“病毒”有一个数学上合理的定义:这是具有挑战性的;你最终可能会得到一个在实践中没有用的抽象,因为它包含了一些人们认为完全良性和有用的行为,和/或排除了一些人们认为反社会的行为。
这里的难点在于,病毒是一种以某种方式改变其环境的程序,任何严格定义环境的尝试都会对实际使用造成太大的限制。
所以我会说不:这个命题不能被数学证明,那是因为它不能被数学公式化。