Skip to main content
Log in

Full Characterization of a Class of Graphs Tailored for Software Watermarking

  • Published:
Algorithmica Aims and scope Submit manuscript

Abstract

Digital watermarks have been regarded as a promising way to fight copyright violations in the software industry. In some graph-based watermarking schemes, identification data is disguised as control-flow graphs of dummy code. Recently, Chroni and Nikolopoulos proposed an ingenious such scheme whereby an integer is encoded into a particular kind of permutation graph. We give a formal characterization of the class of graphs generated by their encoding function, which we call canonical reducible permutation graphs. A linear-time recognition algorithm is also given, setting the basis for a polynomial-time algorithm to restore watermarks that underwent the malicious removal of some edges. Finally, we give a simpler decoding algorithm for Chroni and Nikolopoulos’ watermarks.

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
Fig. 2
Fig. 3

Similar content being viewed by others

References

  1. Allen, F.E.: Control flow analysis. SIGPLAN Not. 5, 1–19 (1970)

    Article  Google Scholar 

  2. Bento, L.M.S., Boccardo, D., Machado, R.C.S., Pereira de Sá, V.G., Szwarcfiter, J.L.: On the resilience of canonical reducible permutation graphs. Discrete Appl. Math. 234, 32–46 (2018)

    Article  MathSciNet  MATH  Google Scholar 

  3. Business Software Alliance.: Shadow Market: 2011 BSA Global Software Piracy Study. http://globalstudy.bsa.org (2012)

  4. Chroni, M., Nikolopoulos, S.D.: Efficient encoding of watermark numbers as reducible permutation graphs, arXiv:1110.1194v1 [cs.DS] (2011)

  5. Chroni, M., Nikolopoulos, S.D.: Encoding watermark numbers as cographs using self-inverting permutations. In: Proceeding of 12th International Conference on Computer Systems and Technologies, CompSysTech’11, ACM ICPS, vol. 578, pp. 142–148 (2011) (Best Paper Award)

  6. Chroni, M., Nikolopoulos, S.D.: An efficient graph codec system for software watermarking. In: IEEE Proceedings of 36th IEEE Conference on Computers, Software and Applications, COMPSAC’12, pp. 595–600 (2012)

  7. Chroni, M., Nikolopoulos, S.D.: Multiple encoding of a watermark number into reducible permutation graphs using cotrees. In: ACM ICPS Proceedings of 13th International Conference on Computer Systems and Technologies, CompSysTech’12, pp. 118–125 (2012)

  8. Chroni, M., Nikolopoulos, S.D.: An embedding graph-based model for software watermarking. In: IEEE Proceedings 8th International Conference on Intelligent Information Hiding and Multimedia Signal Processing, IIH-MSP’12, pp. 261–264 (2012)

  9. Collberg, C., Thomborson, C.: Software watermarking: models and dynamic embeddings. In: Proceedings 26th ACM SIGPLAN-SIGACT on Principles of Programming Languages, POPL’99, pp. 311–324 (1999)

  10. Collberg, C., Kobourov, S., Carter, E., Thomborson, C.: Error-correcting graphs for software watermarking. In: Proceedings 29th Workshop on Graph-Theoretic Concepts in Computer Science, WG’03, vol. 2880, pp. 156–167. LNCS (2003)

  11. Collberg, C., Thomborson, C., Townsend, G.: Dynamic graph-based software fingerprinting. ACM Trans. Program. Lang. Syst. 29, 1–67 (2007)

    Article  Google Scholar 

  12. Collberg, C., Huntwork, A., Carter, E., Townsend, G., Stepp, M.: More on graph theoretic software watermarks: implementation, analysis and attacks. Inf. Softw. Technol. 51, 56–67 (2009)

    Article  Google Scholar 

  13. Collberg, C.: SandMark: A Tool for the Study of Software Protection Algorithms. http://sandmark.cs.arizona.edu/index.html (2013) Accessed 25 Nov 2013

  14. Davidson, R.L., Myhrvold, N.: Method and system for generating and auditing a signature for a computer program, US Patent 5.559.884, Microsoft Corporation (1996)

  15. Hamilton, J., Danicic, S.: A survey of static software watermarking. In: Proceedings World Congress on Internet Security, WorldCIS’11, pp. 100–107 (2011)

  16. Hecht, M.S., Ullman, J.D.: Flow graph reducibility. SIAM J. Comput. 1, 188–202 (1972)

    Article  MathSciNet  MATH  Google Scholar 

  17. Hecht, M.S., Ullman, J.D.: Characterizations of reducible flow graphs. J. ACM 21, 367–375 (1974)

    Article  MathSciNet  MATH  Google Scholar 

  18. Nielson, F., Nielson, H.R., Hankin, C.: Principles of Program Analysis. Springer, Berlin (2004)

    MATH  Google Scholar 

  19. Raghavan, V., Spinrad, J.: Robust Algorithms for Restricted Domains. In: Proceedings of 12th Annual ACM-SIAM Symposium on Discrete Algorithms, SODA’01, pp. 460–467 (2001)

  20. Schaefer, I., Rabiser, R., Clarke, D., Bettini, L., Benavides, D., Botterweck, G., Pathak, A., Trujillo, S., Villela, K.: Software diversity: state of the art and perspectives. Int. J. Softw. Tools Technol. Transf. 14, 477–495 (2012)

    Article  Google Scholar 

  21. Su, Y., Liu, J., Li, D.: Hiding Signatures in Variable Names. Communications in Computer and Information Science, pp. 333–340. Springer, Berlin (2013)

    Google Scholar 

  22. Tarjan, R.E.: Testing flow graph reducibiliy. J. Comput. Syst. Sci. 9, 355–365 (1974)

    Article  MATH  Google Scholar 

  23. Venkatesan, R., Vazirani, V., Sinha, S.: A graph theoretic approach to software watermarking. In: Proceedings 4th International Information Hiding Workshop, pp. 157–168 (2001)

  24. Venkatesan, R., Vazirani, V.: Technique for producing through watermarking highly tamper-resistant executable code and resulting watermarked code so formed, Microsoft Corporation, US Patent: 7051208 (2006)

  25. Wichmann, B.A., Canning, A.A., Clutterbuck, D.L., Winsborrow, L.A., Ward, N.J., Marsh, D.W.R.: Industrial perspective on static analysis. Softw. Eng. J. 10, 69–75 (1995)

    Article  Google Scholar 

  26. Zhu, J., Liu, Y., Yin, K.: A novel dynamic graph software watermark scheme. In: Proceedings of 1st International Workshop on Education Technology and Computer Science, vol. 3, pp. 775–780 (2009)

  27. Zhu, W., Thomborson, C., Wang, F-Y.: A survey of software watermarking. In: Proceedings IEEE International Conference on Intelligence and Security Informatics, ISI’05, pp. 454–458 (2005)

Download references

Acknowledgements

Funding was provided by Conselho Nacional de Desenvolvimento Cientìfico e Tecnológico (Grant Nos. 400609/2015-0, 487061/2013-6, 309234/2015-8, 421007/2016-8), Pronametro (Grant No. 52600.017257/2013), Fundação Carlos Chagas Filho de Amparo à Pesquisa do Estado do Rio de Janeiro (BR) (Grant Nos. JCNE-203889, TECNOVA-143360) and Financiadora de Estudos e Projetos (Grant No. TI-MAIOR-SBV936).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Vinícius G. Pereira de Sá.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Part of this paper was presented as an extended abstract entitled “Towards a provably resilient scheme for graph-based watermarking” at the 39th International Workshop on Graph Theoretic Concepts in Computer Science, WG 2013, and appeared in Lecture Notes in Computer Science8165 (2013), 50–63.

Rights and permissions

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. Full Characterization of a Class of Graphs Tailored for Software Watermarking. Algorithmica 81, 2899–2916 (2019). https://doi.org/10.1007/s00453-019-00557-w

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00453-019-00557-w

Keywords

Navigation