Graph-structured Watermarking using Bitonic Sequences of Self-inverting Permutations

Software watermarking has received considerable attention and was adopted by the software development community as a technique to prevent or discourage software piracy and copyright infringement. A wide range of software watermarking techniques has been proposed among which the graph-based methods that encode watermark numbers as graphs whose structure resembles that of real program graphs. that encode watermarks as graph structures. Following up on our recently proposed methods for encoding watermark numbers w as reducible permutation flow-graphs F[π*] through the use of self-inverting permutations π*, in this paper, we extend the types of flow-graphs available for software watermarking by proposing two different reducible permutation flow-graphs F1[π*] and F2[π*] incorporating important properties which are derived from the bitonic subsequences composing forming the self-inverting permutation π*. We show that a self-inverting permutation π* can be efficiently encoded into either F1[π*] or F2[π*] and also efficiently decoded from these graph structures. The proposed flow-graphs F1[π*] and F2[π*] enrich the repository of graphs which can encode the same watermark number w and, thus, enable us to embed multiple copies of the same watermark w into an application program P. Moreover, the enrichment of that repository with new flow-graphs increases our ability to select a graph structure more similar to the structure of a given application program P thereby enhancing the resilience of our codec system to attacks.

[1]  Stavros D. Nikolopoulos,et al.  An Efficient Graph Codec System for Software Watermarking , 2012, 2012 IEEE 36th Annual Computer Software and Applications Conference Workshops.

[2]  David Eppstein,et al.  Models and Algorithms for Graph Watermarking , 2016, ISC.

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

[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]  Elisa Bertino,et al.  On the Properties of Non-Media Digital Watermarking: A Review of State of the Art Techniques , 2016, IEEE Access.

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

[8]  Philippe Flajolet,et al.  An introduction to the analysis of algorithms , 1995 .

[9]  Jeffrey D. Ullman,et al.  Flow graph reducibility , 1972, SIAM J. Comput..

[10]  Stanley B. Zdonik,et al.  A*-tree , 2010, Proc. VLDB Endow..

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

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

[13]  Stavros D. Nikolopoulos,et al.  Encoding numbers into reducible permutation graphs using heap-ordered trees , 2015, Panhellenic Conference on Informatics.

[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 integers as self-inverting permutations , 2010, CompSysTech '10.

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

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

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