Encoding watermark numbers as cographs using self-inverting permutations

In a software watermarking environment, several graph theoretic watermark methods encode the watermark values as graph structures and embed them in application programs. In this paper we extended the class of graphs which can be efficiently used in a software watermarking system by proposing an efficient codec system, i.e., encoding and decoding algorithms that embed/extract watermark values into/from cographs through the use of self-inverting permutations. More precisely, we present a codec system which takes as input an integer ω as watermark value, converts it into a self-inverting permutation π*, and then encodes the permutation π* as a cograph. The main property of our codec system is its ability to encode the same integer ω, using a self-inverting permutation π*, into more than one cograph. This property causes our system to be resilient to attacks since it can embed multiple copies of the same watermark number ω into an application program. Moreover, the proposed codec system has low time complexity and can be easily implemented.

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

[2]  Michel Habib,et al.  A Simple Linear Time LexBFS Cograph Recognition Algorithm , 2003, WG.

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

[4]  Stavros D. Nikolopoulos,et al.  Efficient Encoding of Watermark Numbers as Reducible Permutation Graphs , 2011, ArXiv.

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

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

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

[8]  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).

[9]  Thomas Vestdam Proceedings of the 2nd International Conference on the Principles and Practice of Programming in Java, Kilkenny City, Ireland, June 16-18, 2003 , 2003 .

[10]  Lorna Stewart,et al.  A Linear Recognition Algorithm for Cographs , 1985, SIAM J. Comput..

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

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

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

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

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

[16]  M. Golumbic Algorithmic Graph Theory and Perfect Graphs (Annals of Discrete Mathematics, Vol 57) , 2004 .

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

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

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