An abstract interpretation-based framework for software watermarking

Patrick Cousot, Radhia Cousot

Research output: Contribution to journalConference articlepeer-review


Software watermarking consists in the intentional embedding of indelible stegosignatures or watermarks into the subject software and extraction of the stegosignatures embedded in the stegoprograms for purposes such as intellectual property protection. We introduce the novel concept of abstract software watermarking. The basic idea is that the watermark is hidden in the program code in such a way that it can only be extracted by an abstract interpretation of the (maybe non-standard) concrete semantics of this code. This static analysis-based approach allows the watermark to be recovered even if only a small part of the program code is present and does not even need that code to be executed. We illustrate the technique by a simple abstract watermarking protocol for methods of Java™ classes. The concept applies equally well to any other kind of software (including hardware originally specified by software).

Original languageEnglish (US)
Pages (from-to)173-185
Number of pages13
JournalConference Record of the Annual ACM Symposium on Principles of Programming Languages
StatePublished - 2004
EventConference Record of POPL 2004 - 31st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages - Venice, Italy
Duration: Jan 14 2004Jan 16 2004


  • Abstract Interpretation
  • Authentication
  • Copyrights Protection
  • Fingerprinting
  • Identification
  • Intellectual Property Protection
  • Obfuscation
  • Software Authorship
  • Software Watermarking
  • Static Analysis
  • Steganography
  • Stegoanalyst
  • Stegoattacks
  • Stegokey

ASJC Scopus subject areas

  • Software


Dive into the research topics of 'An abstract interpretation-based framework for software watermarking'. Together they form a unique fingerprint.

Cite this