The U.S. Patent and Trademark Office has granted Microsoft a patent, which describes an approach of integrating digital watermarks into software applications on the fly. According to the documents filed, the method is based on a process where personal identification information, “such as a purchaser’s name, address, telephone number, credit card number” is collected and embedded into the binary code of an application at the time when the software is purchased over the Internet and prepared for download release.
The binary sequence is mapped into an instruction swap table to create a sequence that is used for exchanging specific of pairs of “non-interfering instructions”. As the application is downloaded, pairs of non-interfering instructions are swapped based on the encoded binary sequence. As the result, the patent filing claims, the downloaded application is watermarked with the personal identification information collected from the purchaser before the application was downloaded.
The inventors claim that software pirates will be able to detect the differences between two applications, but they will not be able to discover all pairs of instructions that can be swapped or that may have been changed which means that pirates will have to compare a greater number of applications to be likely to find the digital watermarks. The patent description also notes that watermarks could be encrypted before instruction keys are swapped.
Vice versa, software companies would be able to determine the origin very quickly simply by extracting the watermark by comparing the pirated with the original code of the application.