Abstract
In this paper we explore the application of the QP watermarking algorithm proposed by G. Qu and M. Potkonjak to software watermarking. The algorithm was originally proposed as a technique for watermarking the graph coloring problem which can be applied to a variety of media such as FPGA designs and software through register allocation. We implemented the algorithm within the SandMark framework, a system that allows the study of watermarking, tamper-proofing, and obfuscation algorithms for Java bytecode. Through the use of this framework we were able to perform an empirical evaluation of the algorithm. In particular we demonstrate that the use of register allocation, while incurring no performance overhead and being stealthy, is in fact vulnerable to attacks such as decompile/recompile. We also demonstrate that the QP algorithm does not allow for accurate watermark recognition without significant modifications.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Bloat: The bytecode-level optimizer and analysis tool, http://www.cs.purdue.edu/s3/projects/bloat/
Jad - the fast java decompiler, http://www.geocities.com/zzxu/jad.html
Sandmark, http://www.cs.arizona.edu/sandmark/
Spec jvm98 v1.04, http://www.specbench.org/osg/jvm98/
Aucsmith, D.: Tamper resistant software: An implementation. In: Anderson, R. (ed.) IH 1996. LNCS, vol. 1174, pp. 317–333. Springer, Heidelberg (1996)
Chang, H., Atallah, M.: Protecting software code by guards. In: Sander, T. (ed.) DRM 2001. LNCS, vol. 2320, p. 160. Springer, Heidelberg (2002), http://www.star-lab.com/sander/spdrm/papers.html
Collberg, C., Myles, G., Huntwork, A.: Sandmark - a tool for software protection research. IEEE Security and Privacy 1(4), 40–49 (2003)
Collberg, C., Thomborson, C.: Software watermarking: Models and dynamic embeddings. In: Principles of Programming Languages 1999, POPL 1999, pp. 311–324 (1999)
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 (1996), http://www.delphion.com/details?pn=US05559884
Hachez, G.: A Comparative Study of Software Protection Tools Suited for ECommerce with Contributions to Software Watermarking and Smart Cards. PhD thesis, Universite Catholique de Louvain (2003)
Horne, B., Matheson, L., Sheehan, C., Tarjan, R.E.: Dynamic self-checking techniques for improved tamper resistance. In: Sander, T. (ed.) DRM 2001. LNCS, vol. 2320, p. 141. Springer, Heidelberg (2002)
Koushanfar, F., Qu, G., Potkonjak, M.: Intellectual property metering. In: Moskowitz, I.S. (ed.) IH 2001. LNCS, vol. 2137, pp. 87–102. Springer, Heidelberg (2001)
Linn, C., Debray, S.K.: Obfuscation of executable code to improve resistance to static disassembly. In: ACM Conference on Computer and Communications Security (October 2003)
International Planning and Research Corporation. In: Sixth annual BSA global software piracy study (2001)
Qu, G., Wong, J.L., Potkonjak, M.: Fair watermarking techniques. In: EEE/ACM Asia and South Pacific Design Automation Conference, pp. 55–60 (2000)
Qu, G., Potkonjak, M.: Analysis of watermarking techniques for graph coloring problem. In: ICCAD, pp. 190–193 (1998)
Qu, G., Potkonjak, M.: Hiding signatures in graph coloring solutions. In: Pfitzmann, A. (ed.) IH 1999. LNCS, vol. 1768, pp. 348–367. Springer, Heidelberg (2000)
Qu, G., Potkonjak, M.: Fingerprinting intellectual property using constraint-addition. In: Design Automation Conference, pp. 587–592 (2000)
Qu, G., Wong, J.L., Potkonjak, M.: Optimization-intensive watermarking techniques for decision problems. In: Design Automation Conference, pp. 33–36 (1999)
Sahoo, T.R., Collberg, C.: Software watermarking in the frequency domain: Implementation, analysis, and attacks. In: ACM Symposium on Applied Computing (March 2004) (to appear)
Stern, J.P., Hachez, G., Koeune, F., Quisquater, J.-J.: Robust object watermarking: Application to code. In: Pfitzmann, A. (ed.) IH 1999. LNCS, vol. 1768, pp. 368–378. Springer, Heidelberg (2000), http://citeseer.nj.nec.com/stern00robust.html
Venkatesan, R., Vazirani, V., Sinha, S.: A graph theoretic approach to software watermarking. In: Moskowitz, I.S. (ed.) IH 2001. LNCS, vol. 2137, p. 157. Springer, Heidelberg (2001), http://link.springer.de/link/service/series/0558/bibs/2137/21370157.htm
Wolfe, G., Wong, J.L., Potkonjak, M.: Watermarking graph partitioning solutions. In: Design Automation Conference, pp. 486–489 (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
Myles, G., Collberg, C. (2004). Software Watermarking Through Register Allocation: Implementation, Analysis, and Attacks. In: Lim, JI., Lee, DH. (eds) Information Security and Cryptology - ICISC 2003. ICISC 2003. Lecture Notes in Computer Science, vol 2971. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24691-6_21
Download citation
DOI: https://doi.org/10.1007/978-3-540-24691-6_21
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-21376-5
Online ISBN: 978-3-540-24691-6
eBook Packages: Springer Book Archive