Abstract
Software watermarking involves integrating an identifier within the software, enabling timely retrieval to disclose authorship/ownership, and deter piracy. Various software watermarking schemes have been proposed in the literature, many of which involve statically embedding an encoded identifier into the control flow graph of the program. In this paper, we propose novel embedding and extraction algorithms characterized by four key features: randomization, generating watermarks with a size closely matching the number of bits in the identifier, implementing both encoding and decoding with linear time complexity, and, most importantly, generating watermarks that conform to structured code. We emphasize the capability to encode the same identifier as distinct graphs, coupled with the absence of cumbersome “GOTO”-like substructures, as enhancements to the stealthiness of our watermarks. This feature makes them more resilient to common forms of attack, contributing to their effectiveness in safeguarding software integrity and discouraging unauthorized use.
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs42979-024-02934-x/MediaObjects/42979_2024_2934_Fig1_HTML.png)
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs42979-024-02934-x/MediaObjects/42979_2024_2934_Figa_HTML.png)
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs42979-024-02934-x/MediaObjects/42979_2024_2934_Fig2_HTML.png)
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs42979-024-02934-x/MediaObjects/42979_2024_2934_Figb_HTML.png)
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs42979-024-02934-x/MediaObjects/42979_2024_2934_Fig3_HTML.png)
Similar content being viewed by others
Notes
The source code can be found in https://www.dropbox.com/s/7elhp32ooj484f8/watermark_RS_012021.py?dl=0.
References
The Software Alliance: Software Management: Security Imperative, Business Opportunity. BSA Global Software Survey (2018). BSA Global Software Survey. https://www.bsa.org/files/2019-02/2018_BSA_GSS_Report_en_.pdf
Asongu SA. Global software piracy, technology and property rights institutions. J Knowl Econ. 2020. https://doi.org/10.1007/s13132-020-00653-1.
Collberg C, Nagra J. Surreptitious software: obfuscation, watermarking, and tamperproofing for software protection. 1st ed. Addison-Wesley software security series. Addison-Wesley Professional; 2009.
Hamilton J, Danicic S. A survey of static software watermarking. In: 2011 World Congress on Internet Security (WorldCIS-2011), 2011; pp. 100–7 IEEE
Venkatesan R, Vazirani V, Sinha S. A graph theoretic approach to software watermarking. In: Moskowitz IS, editor. Information hiding. Berlin: Springer; 2001. p. 157–68.
Dey A, Bhattacharya S, Chaki N. Software watermarking: progress and challenges. INAE Lett. 2019;4:65–75.
Chroni M, Nikolopoulos SD. An embedding graph-based model for software watermarking. In: 2012 Eighth International Conference on Intelligent Information Hiding and Multimedia Signal Processing, 2012;pp. 261–4. https://doi.org/10.1109/IIH-MSP.2012.69
Chroni M, Nikolopoulos SD, Palios L. Encoding watermark numbers as reducible permutation graphs using self-inverting permutations. Discret Appl Math. 2018;250:145–64. https://doi.org/10.1016/j.dam.2018.04.021.
Mpanti A, Nikolopoulos SD, Rini M. Experimental study of the resilience of a graph-based watermarking system under edge modifications. In: Proceedings of the 21st Pan-Hellenic Conference on Informatics. PCI 2017. Association for Computing Machinery, New York, NY, USA 2017; https://doi.org/10.1145/3139367.3139436
Bento LMS, Boccardo DR, Machado RCS, Sá VG, Szwarcfiter JL. On the resilience of canonical reducible permutation graphs. Discrete Appl Math. 2018;234:32–46. https://doi.org/10.1016/j.dam.2016.09.038. (Special Issue on the Ninth International Colloquium on Graphs and Optimization, 2014).
Mpanti A, Nikolopoulos SD, Palios L. Strong watermark numbers encoded as reducible permutation graphs against edge modification attacks. J Comput Secur. 2023;31(2):107–28. https://doi.org/10.3233/JCS-210048.
Bento LMS, Boccardo D, Machado RCS, Sá VG, Szwarcfiter JL. Towards a provably resilient scheme for graph-based watermarking. In: Brandstädt A, Jansen K, Reischuk R (eds) Graph-Theoretic Concepts in Computer Science: 39th International Workshop, WG 2013, Lübeck, Germany, June 19–21, 2013, Revised Papers, 2013;pp. 50–63. Springer, New York, NY, USA. https://doi.org/10.1007/978-3-642-45043-3_6
Bento LMS, Boccardo DR, Machado RCS, Sá VG, Szwarcfiter JL. Full characterization of a class of graphs tailored for software watermarking. Algorithmica. 2019;81:2899–916. https://doi.org/10.1007/s00453-019-00557-w.
Dahl OJ, Dijkstra EW, Hoare CAR, editors. Structured programming. London: Academic Press Ltd.; 1972.
Bento LMS, Boccardo DR, Machado RCS, Miyazawa FK, Sá VG, Szwarcfiter JL. Dijkstra graphs. Discrete Appl Math. 2016;2019(261):52–62. https://doi.org/10.1016/j.dam.2017.07.033. (GO X Meeting, Rigi Kaltbad (CH), July 10-14.).
Davidson RI, Myhrvold N. Method and system for generating and auditing a signature for a computer program. Google Patents. US Patent 5,559,884 1996.
Arboit G. A method for watermarking java programs via opaque predicates. In: In Proc. International Conference on Electronic Commerce Research (ICECR-5) 2002.
Collberg C, Carter E, Debray S, Huntwork A, Kececioglu J, Linn C, Stepp M. Dynamic path-based software watermarking. In: Proceedings of the ACM SIGPLAN 2004 Conference on Programming Language Design and Implementation. PLDI 2004;’04: pp. 107–18. ACM, New York, NY, USA. https://doi.org/10.1145/996841.996856
Cousot P, Cousot R. An abstract interpretation-based framework for software watermarking. In: Proceedings of the 31st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. POPL 2004;’04: pp. 173–85. ACM, New York, NY, USA. https://doi.org/10.1145/964001.964016
Monden A, Iida H, Matsumoto K, Torii K, Inoue K. A practical method for watermarking java programs. In: 24th International Computer Software and Applications Conference (COMPSAC 2000), 25–28 October 2000, Taipei, Taiwan, 2000;pp. 191–7. https://doi.org/10.1109/CMPSAC.2000.884716
Nagra J, Thomborson CD. Threading software watermarks. In: Information Hiding, 6th International Workshop, IH 2004, Toronto, Canada, May 23–25, 2004, Revised Selected Papers, 2004;pp. 208–23. https://doi.org/10.1007/978-3-540-30114-1_15
Qu G, Potkonjak M. Analysis of watermarking techniques for graph coloring problem. In: Proceedings of the 1998 IEEE/ACM International Conference on Computer-aided Design. ICCAD 1998;’98: pp. 190–3. ACM, New York, NY, USA. https://doi.org/10.1145/288548.288607
Zeng Y, Liu F, Luo X, Lian S. Abstract interpretation-based semantic framework for software birthmark. Comput Secur. 2012;31(4):377–90. https://doi.org/10.1016/j.cose.2012.03.004.
Jacob RM, K, P, P.P A. Application of visual cryptography scheme in software watermarking. In: 2020 4th International Conference on Trends in Electronics and Informatics (ICOEI)(48184), 2020;pp. 1044–8.
Mnkash SH, Abdulmunem ME. A review of software watermarking. Iraqi J Sci. 2020;61(10):2740–50. https://doi.org/10.24996/ijs.2020.61.10.30.
Preda MD, Ianni M. Exploiting number theory for dynamic software watermarking. J Comput Virol Hacking Tech. 2023. https://doi.org/10.1007/s11416-023-00489-8.
Kim T, Jang Y, Lee C, Koo H, Kim H. Smartmark: software watermarking scheme for smart contracts, 2023;pp. 283–94 https://doi.org/10.1109/ICSE48619.2023.00035 . Cited by: 0; All Open Access, Green Open Access. https://www.scopus.com/inward/record.uri?eid=2-s2.0-85171746334 &doi=10.1109
Collberg C, Thomborson C. Software watermarking: models and dynamic embeddings. In: Proceedings of the 26th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. POPL 1999;’99: pp. 311–24. ACM, New York, NY, USA. https://doi.org/10.1145/292540.292569
Collberg C, Kobourov S, Carter E, Thomborson C. Graph-based approaches to software watermarking. In: Bodlaender HL, editor. Graph-Theoretic Concepts in Computer Science. Berlin: Springer; 2003. p. 156–67.
Collberg C, Kobourov S, Carter E, Thomborson C. Error-correcting graphs for software watermarking. Lect Notes Comput Sci. 2003;2880:156–67.
Mpanti A, Nikolopoulos SD, Rini M. Experimental study of the resilience of a graph-based watermarking system under edge modifications. In: Proceedings of the 21st Pan-Hellenic Conference on Informatics. PCI 2017. Association for Computing Machinery, New York, NY, USA 2017. https://doi.org/10.1145/3139367.3139436
Purser M. Introduction to error-correcting codes. Artech House; 1995.
Reed IS, Solomon G. Polynomial codes over certain finite fields. J Soc Ind Appl Math. 1960;8(2):300–4. https://doi.org/10.1137/0108018.
Kan SH. Metrics and models in software quality engineering. 2nd ed. Delhi: Addison-Wesley Professional; 2002.
Author information
Authors and Affiliations
Corresponding author
Ethics declarations
Conflict of interest
On behalf of all authors, the corresponding author states that there is no conflict of interest.
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.
About this article
Cite this article
Bento, L.M.S., Boccardo, D.R., Machado, R.C.S. et al. Structured Watermarks for Structured Software. SN COMPUT. SCI. 5, 568 (2024). https://doi.org/10.1007/s42979-024-02934-x
Received:
Accepted:
Published:
DOI: https://doi.org/10.1007/s42979-024-02934-x