Abstract
This paper presents an implementation of the novel watermarking method proposed by Venkatesan, Vazirani, and Sinha in their recent paper A Graph Theoretic Approach to Software Watermarking. An executable program is marked by the addition of code for which the topology of the control-flow graph encodes a watermark. We discuss issues that were identified during construction of an actual implementation that operates on Java bytecode. We measure the size and time overhead of watermarking, and evaluate the algorithm against a variety of attacks.
Access provided by Autonomous University of Puebla. Download to read the full chapter text
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Aho, A.V., Sethi, R., Ullman, J.D.: Compilers, Principles, Techniques, and Tools. Addison-Wesley, Reading (1986) ISBN 0-201-10088-6
Arboit, G.: A method for watermarking Java programs via opaque predicates. In: The Fifth International Conference on Electronic Commerce Research, ICECR-5 (2002)
Collberg, C., Carter, E., Kobourov, S., Thomborson, C.: Error-correcting graphs. In: Workshop on Graphs in Computer Science (WG 2003) (June 2003)
Collberg, C., Myles, G., Huntwork, A.: SandMark — A tool for software protection research. IEEE Magazine of Security and Privacy (to appear)
Collberg, C., Thomborson, C.: Software watermarking: Models and dynamic embeddings. In: Conference Record of POPL 1999: The 26th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (January 1999)
Collberg, C., Thomborson, C., Low, D.: A taxonomy of obfuscating transformations. Technical Report 148, Department of Computer Science, University of Auckland (July 1997), http://www.cs.auckland.ac.nz/~collberg/Research/Publications/CollbergThomborsonLow97a
Collberg, C., Thomborson, C., Low, D.: Breaking abstractions and unstructuring data structures. In: IEEE International Conference on Computer Languages, ICCL 1998, Chicago, IL (May 1998), http://www.cs.auckland.ac.nz/~collberg/Research/Publications/CollbergThomborsonLow98b/
Collberg, C., Thomborson, C., Low, D.: Manufacturing cheap, resilient, and stealthy opaque constructs. In: Principles of Programming Languages 1998, POPL 1998, San Diego, CA (January 1998), http://www.cs.auckland.ac.nz/~collberg/Research/Publications/CollbergThomborsonLow98a/
Dahm, M.: Byte code engineering. In: The Scientific German Java Conference (September 1999), ftp://ftp.inf.fu-berlin.de/pub/JavaClass/paper.ps.gz
Davidson, R.L., Myhrvold, N.: Method and system for generating and auditing a signature for a computer program. US Patent 5,559,884, Assignee: Microsoft Corporation (September 1996)
Debray, S., Evans, W., Muth, R., Sutter, B.D.: Compiler techniques for code compaction. ACM Transactions on Programming Languages and Systems 22(2), 378–415 (2000)
Debray, S., Muth, R., Watterson, S., Bosschere, K.D.: ALTO: A link-time optimizer for the Compaq Alpha. Software — Practice and Experience 31, 67–101 (2001)
Debray, S., Schwarz, B., Andrews, G., Legendre, M.: PLTO: A link-time optimizer for the Intel IA-32 architecture. In: Proc. 2001 Workshop on Binary Rewriting (WBT 2001) (September 2001)
Myles, G., Collberg, C.: Software watermarking through register allocation: Implementation, analysis, and attacks. In: International Conference on Information Security and Cryptology (2003)
Nystrom, N.: Bloat – the bytecode-level optimizer and analysis tool (1999), http://www.cs.purdue.edu/homes/whitlock/bloat
Palsberg, J., Krishnaswamy, S., Kwon, M., Ma, D., Shao, Q., Zhang, Y.: Experience with software watermarking. In: Proceedings of ACSAC 2000 16th Annual Computer Security Applications Conference, pp. 308–316 (2000)
Qu, G., Potkonjak, M.: Analysis of watermarking techniques for graph coloring problem. In: IEEE/ACM International Conference on Computer Aided Design, pp. 190–193 (November 1998), http://www.cs.ucla.edu/~gangqu/publication/gc.ps.gz
Rivest, R.: The MD5 message-digest algorithm, The Internet Engineering Task Force RFC 1321 (1992), http://www.ietf.org/rfc/rfc1321.txt
Pendragon Software. Caffeinemark 3.0 (1998), http://www.pendragon-software.com/pendragon/cm3/
Stern, J.P., Hachez, G., Koeune, F., Quisquater, J.-J.: Robust object watermarking: Application to code. In: Information Hiding, pp. 368–378 (1999)
Venkatesan, R., Vazirani, V., Sinha, S.: A graph theoretic approach to software watermarking. In: 4th International Information Hiding Workshop, Pittsburgh, PA (April 2001)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Collberg, C., Huntwork, A., Carter, E., Townsend, G. (2004). Graph Theoretic Software Watermarks: Implementation, Analysis, and Attacks. In: Fridrich, J. (eds) Information Hiding. IH 2004. Lecture Notes in Computer Science, vol 3200. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-30114-1_14
Download citation
DOI: https://doi.org/10.1007/978-3-540-30114-1_14
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-24207-9
Online ISBN: 978-3-540-30114-1
eBook Packages: Computer ScienceComputer Science (R0)