| Abstract: | Software watermarking is relatively new. Only a few schemes have been developed so far.
In Collberg et al., they propose to add dynamic data structures as watermark in the source code of the program. Another approach has been chosen in Venkatesan et al. where they add a specific structure in the control flow of the program. This is also done at the source level. A third way is used in Monden et al. where they add dummy functions with some bits modified such that these bits encode a copyright text. This is done at the source level (the dummy function) and at the compiled level (the modification). The last one, done in Stern et al., works at the compiled level and try to embed a spread-spectrum mark in the code. The frequency vector is the frequency of occurrences of instructions. Some instructions are replaced by equivalent instructions in order to insert the mark.
The three first methods share common characteristics. They need to access to the source code. Implementations on java source code exist. They are 'ad hoc' methods: they have been developed without reusing any result already obtained for watermarks in other domains.
The fourth one has no implementation. We suppose it is partly because they adapted an existing watermarking scheme and therefore it is difficult to implement for software. Nevertheless, the security of the scheme has already been assessed in the image domain, it is thus interesting to try to implement it.
As the other schemes have been implemented in java, we also implemented the spread-spectrum scheme in Java. The difficult part was to build a dictionary of equivalent instructions or groups of instructions. We will show how we built such dictionary and the results we achieved. We will also evaluate the security of the scheme in the context of software.
C. Collberg and C. Thomborson. Software Watermarking: Models and Dynamic Embeddings. In ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL99), January 1999.
A. Monden, H. Iida, Ken ichi Matsumoto, Katsuro Inoue, and Koji Torii. A practical method for watermarking java programs. In The 24th Computer Software and Applications Conference, October 2000.
Julien P. Stern, Gaël Hachez, François Koeune, and Jean-Jacques Quisquater. Robust object watermarking: Application to code. In A. Pfitzmann, editor, Information Hiding ’99, volume 1768 of Lectures Notes in Computer Science (LNCS), pages 368–378, Dresden, Germany, 2000. Springer-Verlag.
R. Venkasten, V. Vazirani, and S. Sinha. A graph theoretic approach to software watermarking. In I.S. Moskowitz, editor, Information Hiding Workshop 2001, volume 2137 of Lectures Notes in Computer Science (LNCS), pages 157–168, Pittsburgh, PA, USA, 2001. Springer-Verlag.
|