Software watermarking in the frequency domain: Implementation, analysis, and attacks

Christian Collberg, Tapas Ranjan Sahoo

Research output: Contribution to journalArticlepeer-review

21 Scopus citations


In this paper we analyze the SHKQ software watermarking algorithm, originally due to Stern, Hachez, Koeune and Quisquater. The algorithm has been implemented within the SANDMARK framework, a system designed to allow effective study of software protection algorithms (such as code obfuscation, software watermarking, and code tamper-proofing) targeting Java bytecode. The SHKQ algorithm embeds a watermark in a program using a spread spectrum technique. The idea is to spread the watermark over the entire application by modifying instruction frequencies. Spreading the watermark over the code provides a high level of stealth and some manner of resilience against attack. In this paper we describe the implementation of the SHKQ algorithm, in particular the issues that arise when targeting Java bytecodes. We then present an empirical examination of the robustness of the watermark against a wide variety of attacks. We conclude that SHKQ, while stealthy, is easily attacked by simple distortive transformations.

Original languageEnglish (US)
Pages (from-to)721-755
Number of pages35
JournalJournal of Computer Security
Issue number5
StatePublished - 2005


  • Intellectual property protection
  • Java bytecode
  • Software protection
  • Software watermarking

ASJC Scopus subject areas

  • Software
  • Safety, Risk, Reliability and Quality
  • Hardware and Architecture
  • Computer Networks and Communications


Dive into the research topics of 'Software watermarking in the frequency domain: Implementation, analysis, and attacks'. Together they form a unique fingerprint.

Cite this