Efficient Encoding of Watermark Numbers as Reducible Permutation Graphs

In a software watermarking environment, several graph theoretic watermark methods use numbers as watermark values, where some of these methods encode the watermark numbers as graph structures. In this paper we extended the class of error correcting graphs by proposing an efficient and easily implemented codec system for encoding watermark numbers as reducible permutation flow-graphs. More precisely, we first present an efficient algorithm which encodes a watermark number $w$ as self-inverting permutation $\pi^*$ and, then, an algorithm which encodes the self-inverting permutation $\pi^*$ as a reducible permutation flow-graph $F[\pi^*]$ by exploiting domination relations on the elements of $\pi^*$ and using an efficient DAG representation of $\pi^*$. The whole encoding process takes O(n) time and space, where $n$ is the binary size of the number $w$ or, equivalently, the number of elements of the permutation $\pi^*$. We also propose efficient decoding algorithms which extract the number $w$ from the reducible permutation flow-graph $F[\pi^*]$ within the same time and space complexity. The two main components of our proposed codec system, i.e., the self-inverting permutation $\pi^*$ and the reducible permutation graph $F[\pi^*]$, incorporate important structural properties which make our system resilient to attacks.

[1]  Jasvir Nagra,et al.  Threading Software Watermarks , 2004, Information Hiding.

[2]  Katsuro Inoue,et al.  A practical method for watermarking Java programs , 2000, Proceedings 24th Annual International Computer Software and Applications Conference. COMPSAC2000.

[3]  Jeffrey D. Ullman,et al.  Flow Graph Reducibility , 1972, SIAM J. Comput..

[4]  Zhang Li A Survey on Software Watermarking , 2003 .

[5]  Laurie J. Hendren,et al.  Is it a tree, a DAG, or a cyclic graph? A shape analysis for heap-directed pointers in C , 1996, POPL '96.

[6]  Gang Qu,et al.  Analysis of watermarking techniques for graph coloring problem , 1998, 1998 IEEE/ACM International Conference on Computer-Aided Design. Digest of Technical Papers (IEEE Cat. No.98CB36287).

[7]  Patrick Cousot,et al.  An abstract interpretation-based framework for software watermarking , 2004, POPL.

[8]  Fei-Yue Wang,et al.  A Survey of Software Watermarking , 2005, ISI.

[9]  R. Möhring Algorithmic graph theory and perfect graphs , 1986 .

[10]  Genevieve Arboit,et al.  A Method for Watermarking Java Programs via Opaque Predicates , 2002 .

[11]  Derrick Grover,et al.  The Protection of Computer Software: Its Technology and Application , 1992 .

[12]  Christian S. Collberg,et al.  Software watermarking via opaque predicates: Implementation, analysis, and attacks , 2006, Electron. Commer. Res..

[13]  Christian S. Collberg,et al.  Dynamic graph-based software fingerprinting , 2007, TOPL.

[14]  Akito Monden,et al.  Design and evaluation of birthmarks for detecting theft of java programs , 2004, IASTED Conf. on Software Engineering.

[15]  Stavros D. Nikolopoulos,et al.  Encoding watermark numbers as cographs using self-inverting permutations , 2011, CompSysTech '11.

[16]  Stavros D. Nikolopoulos,et al.  Encoding watermark integers as self-inverting permutations , 2010, CompSysTech '10.

[17]  Jeffrey D. Ullman,et al.  Characterizations of Reducible Flow Graphs , 1974, JACM.

[18]  Christian S. Collberg,et al.  Error-correcting graphs for software watermarking , 2003 .

[19]  Michael Stepp,et al.  More on graph theoretic software watermarks: Implementation, analysis, and attacks , 2009, Inf. Softw. Technol..

[20]  Christian S. Collberg,et al.  Software watermarking: models and dynamic embeddings , 1999, POPL '99.

[21]  Jean-Jacques Quisquater,et al.  Robust Object Watermarking: Application to Code , 1999, Information Hiding.

[22]  Neil J. Hurley,et al.  Securing Java through software watermarking , 2003, PPPJ.

[23]  Stavros D. Nikolopoulos Coloring permutation graphs in parallel , 2002, Discret. Appl. Math..

[24]  Christian S. Collberg,et al.  On the Limits of Software Watermarking , 1998 .

[25]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[26]  G. Ramalingam,et al.  The undecidability of aliasing , 1994, TOPL.

[27]  Michael Stepp,et al.  Dynamic path-based software watermarking , 2004, PLDI '04.

[28]  Ramarathnam Venkatesan,et al.  A Graph Theoretic Approach to Software Watermarking , 2001, Information Hiding.

[29]  Ingemar J. Cox,et al.  A Secure, Robust Watermark for Multimedia , 1996, Information Hiding.