More on graph theoretic software watermarks: Implementation, analysis, and attacks

Christian S Collberg, Andrew Huntwork, Edward Carter, Gregg Townsend, Michael Stepp

Research output: Contribution to journalArticle

37 Citations (Scopus)

Abstract

This paper presents an implementation of the watermarking method proposed by Venkatesan et al. in their paper [R. Venkatesan, V. Vazirani, S. Sinha, A graph theoretic approach to software watermarking, in: Fourth International Information Hiding Workshop, Pittsburgh, PA, 2001]. An executable program is marked by the addition of code for which the topology of the control-flow graph encodes a watermark. We discuss issues that were identified during construction of an actual implementation that operates on Java bytecode. We present two algorithms for splitting a watermark number into a redundant set of pieces and an algorithm for turning a watermark number into a control-flow graph. We measure the size and time overhead of watermarking, and evaluate the algorithm against a variety of attacks.

Original languageEnglish (US)
Pages (from-to)56-67
Number of pages12
JournalInformation and Software Technology
Volume51
Issue number1
DOIs
StatePublished - Jan 2009

Fingerprint

Watermarking
Flow graphs
Topology

Keywords

  • Software piracy protection
  • Software protection
  • Software watermarking
  • Surreptitious software

ASJC Scopus subject areas

  • Software
  • Information Systems
  • Computer Science Applications

Cite this

More on graph theoretic software watermarks : Implementation, analysis, and attacks. / Collberg, Christian S; Huntwork, Andrew; Carter, Edward; Townsend, Gregg; Stepp, Michael.

In: Information and Software Technology, Vol. 51, No. 1, 01.2009, p. 56-67.

Research output: Contribution to journalArticle

Collberg, Christian S ; Huntwork, Andrew ; Carter, Edward ; Townsend, Gregg ; Stepp, Michael. / More on graph theoretic software watermarks : Implementation, analysis, and attacks. In: Information and Software Technology. 2009 ; Vol. 51, No. 1. pp. 56-67.
@article{adfd25a947a240f1afaf12f09b118b49,
title = "More on graph theoretic software watermarks: Implementation, analysis, and attacks",
abstract = "This paper presents an implementation of the watermarking method proposed by Venkatesan et al. in their paper [R. Venkatesan, V. Vazirani, S. Sinha, A graph theoretic approach to software watermarking, in: Fourth International Information Hiding Workshop, Pittsburgh, PA, 2001]. An executable program is marked by the addition of code for which the topology of the control-flow graph encodes a watermark. We discuss issues that were identified during construction of an actual implementation that operates on Java bytecode. We present two algorithms for splitting a watermark number into a redundant set of pieces and an algorithm for turning a watermark number into a control-flow graph. We measure the size and time overhead of watermarking, and evaluate the algorithm against a variety of attacks.",
keywords = "Software piracy protection, Software protection, Software watermarking, Surreptitious software",
author = "Collberg, {Christian S} and Andrew Huntwork and Edward Carter and Gregg Townsend and Michael Stepp",
year = "2009",
month = "1",
doi = "10.1016/j.infsof.2008.09.016",
language = "English (US)",
volume = "51",
pages = "56--67",
journal = "Information and Software Technology",
issn = "0950-5849",
publisher = "Elsevier",
number = "1",

}

TY - JOUR

T1 - More on graph theoretic software watermarks

T2 - Implementation, analysis, and attacks

AU - Collberg, Christian S

AU - Huntwork, Andrew

AU - Carter, Edward

AU - Townsend, Gregg

AU - Stepp, Michael

PY - 2009/1

Y1 - 2009/1

N2 - This paper presents an implementation of the watermarking method proposed by Venkatesan et al. in their paper [R. Venkatesan, V. Vazirani, S. Sinha, A graph theoretic approach to software watermarking, in: Fourth International Information Hiding Workshop, Pittsburgh, PA, 2001]. An executable program is marked by the addition of code for which the topology of the control-flow graph encodes a watermark. We discuss issues that were identified during construction of an actual implementation that operates on Java bytecode. We present two algorithms for splitting a watermark number into a redundant set of pieces and an algorithm for turning a watermark number into a control-flow graph. We measure the size and time overhead of watermarking, and evaluate the algorithm against a variety of attacks.

AB - This paper presents an implementation of the watermarking method proposed by Venkatesan et al. in their paper [R. Venkatesan, V. Vazirani, S. Sinha, A graph theoretic approach to software watermarking, in: Fourth International Information Hiding Workshop, Pittsburgh, PA, 2001]. An executable program is marked by the addition of code for which the topology of the control-flow graph encodes a watermark. We discuss issues that were identified during construction of an actual implementation that operates on Java bytecode. We present two algorithms for splitting a watermark number into a redundant set of pieces and an algorithm for turning a watermark number into a control-flow graph. We measure the size and time overhead of watermarking, and evaluate the algorithm against a variety of attacks.

KW - Software piracy protection

KW - Software protection

KW - Software watermarking

KW - Surreptitious software

UR - http://www.scopus.com/inward/record.url?scp=56649105053&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=56649105053&partnerID=8YFLogxK

U2 - 10.1016/j.infsof.2008.09.016

DO - 10.1016/j.infsof.2008.09.016

M3 - Article

AN - SCOPUS:56649105053

VL - 51

SP - 56

EP - 67

JO - Information and Software Technology

JF - Information and Software Technology

SN - 0950-5849

IS - 1

ER -