ABSTRACT-- We identify three types of attack on the intellectual property contained in software and three corresponding technical defenses.

A defense against reverse engineering is obfuscation, a process that renders software unintelligible but still functional. A defense against software piracy is watermarking, a process that makes it possible to determine the origin of software. A defense against tampering is tamper-proofing, so that unauthorized modifications to software will result in nonfunctional code. We briefly survey the available technology for each type of defense.

What is water marking?
Originally used to identify paper quality
Anti-counterfeiting of paper money
Extended to other forms of hidden information.