Skip to main content
Log in

Structured Watermarks for Structured Software

  • Original Research
  • Published:
SN Computer Science Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Algorithm 1
Fig. 2
Algorithm 2
Fig. 3

Similar content being viewed by others

Notes

  1. The source code can be found in https://www.dropbox.com/s/7elhp32ooj484f8/watermark_RS_012021.py?dl=0.

References

  1. 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

  2. Asongu SA. Global software piracy, technology and property rights institutions. J Knowl Econ. 2020. https://doi.org/10.1007/s13132-020-00653-1.

    Article  Google Scholar 

  3. Collberg C, Nagra J. Surreptitious software: obfuscation, watermarking, and tamperproofing for software protection. 1st ed. Addison-Wesley software security series. Addison-Wesley Professional; 2009.

    Google Scholar 

  4. Hamilton J, Danicic S. A survey of static software watermarking. In: 2011 World Congress on Internet Security (WorldCIS-2011), 2011; pp. 100–7 IEEE

  5. 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.

    Chapter  Google Scholar 

  6. Dey A, Bhattacharya S, Chaki N. Software watermarking: progress and challenges. INAE Lett. 2019;4:65–75.

    Article  Google Scholar 

  7. 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

  8. 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.

    Article  MathSciNet  Google Scholar 

  9. 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

  10. 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).

    Article  MathSciNet  Google Scholar 

  11. 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.

    Article  Google Scholar 

  12. 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

  13. 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.

    Article  MathSciNet  Google Scholar 

  14. Dahl OJ, Dijkstra EW, Hoare CAR, editors. Structured programming. London: Academic Press Ltd.; 1972.

    Google Scholar 

  15. 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.).

    Article  MathSciNet  Google Scholar 

  16. 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.

  17. Arboit G. A method for watermarking java programs via opaque predicates. In: In Proc. International Conference on Electronic Commerce Research (ICECR-5) 2002.

  18. 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

  19. 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

  20. 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

  21. 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

  22. 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

  23. 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.

    Article  Google Scholar 

  24. 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.

  25. 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.

    Article  Google Scholar 

  26. 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.

    Article  Google Scholar 

  27. 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

  28. 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

  29. 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.

    Chapter  Google Scholar 

  30. Collberg C, Kobourov S, Carter E, Thomborson C. Error-correcting graphs for software watermarking. Lect Notes Comput Sci. 2003;2880:156–67.

    Article  MathSciNet  Google Scholar 

  31. 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

  32. Purser M. Introduction to error-correcting codes. Artech House; 1995.

    Google Scholar 

  33. 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.

    Article  MathSciNet  Google Scholar 

  34. Kan SH. Metrics and models in software quality engineering. 2nd ed. Delhi: Addison-Wesley Professional; 2002.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Lucila M. S. Bento.

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.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Received:

  • Accepted:

  • Published:

  • DOI: https://doi.org/10.1007/s42979-024-02934-x

Keywords

Navigation