Software Protection: Security's Last Stand?

Given that application software protection is necessary, what form and function should it take? There are three principal forms of protection: watermarking, obfuscation, and application performance degradation. These techniques perform three main functions: detection of attempts to pirate, misuse, or tamper with software, protection of software against those attempts, and alteration of the software to ensure that its functionality degrades in an undetectable manner if protection fails. These defenses are required on hardware ranging from single processors to small computer clusters to traditional supercomputers to wide-area distributed computing.