Software watermarking through register allocation: Implementation, analysis, and attacks

Ginger Myles, Christian S Collberg

Research output: Contribution to journalArticle

37 Citations (Scopus)

Abstract

In this paper we explore the application of the QP water-marking algorithm proposed by G. Qu and M. Potkonjak to software watermarking. The algorithm was originally proposed as a technique for watermarking the graph coloring problem which can be applied to a variety of media such as FPGA designs and software through register allocation. We implemented the algorithm within the SandMark framework, a system that allows the study of watermarking, tamper-proofing, and obfuscation algorithms for Java bytecode. Through the use of this framework we were able to perform an empirical evaluation of the algorithm. In particular we demonstrate that the use of register allocation, while incurring no performance overhead and being stealthy, is in fact vulnerable to attacks such as decompile/recompile. We also demonstrate that the QP algorithm does not allow for accurate watermark recognition without significant modifications.

Original languageEnglish (US)
Pages (from-to)274-293
Number of pages20
JournalLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume2971
StatePublished - 2004

Fingerprint

Register Allocation
Watermarking
Software
Attack
Software Design
Obfuscation
Digital watermarking
Graph Coloring
Watermark
Coloring
Demonstrate
Field Programmable Gate Array
Java
Field programmable gate arrays (FPGA)
Water
Evaluation

Keywords

  • Copyright protection
  • Java bytecode
  • Register allocation
  • Software piracy
  • Software watermarking

ASJC Scopus subject areas

  • Computer Science(all)
  • Biochemistry, Genetics and Molecular Biology(all)
  • Theoretical Computer Science

Cite this

@article{af793eccccb748a5bab9532c0ed4ad2a,
title = "Software watermarking through register allocation: Implementation, analysis, and attacks",
abstract = "In this paper we explore the application of the QP water-marking algorithm proposed by G. Qu and M. Potkonjak to software watermarking. The algorithm was originally proposed as a technique for watermarking the graph coloring problem which can be applied to a variety of media such as FPGA designs and software through register allocation. We implemented the algorithm within the SandMark framework, a system that allows the study of watermarking, tamper-proofing, and obfuscation algorithms for Java bytecode. Through the use of this framework we were able to perform an empirical evaluation of the algorithm. In particular we demonstrate that the use of register allocation, while incurring no performance overhead and being stealthy, is in fact vulnerable to attacks such as decompile/recompile. We also demonstrate that the QP algorithm does not allow for accurate watermark recognition without significant modifications.",
keywords = "Copyright protection, Java bytecode, Register allocation, Software piracy, Software watermarking",
author = "Ginger Myles and Collberg, {Christian S}",
year = "2004",
language = "English (US)",
volume = "2971",
pages = "274--293",
journal = "Lecture Notes in Computer Science",
issn = "0302-9743",
publisher = "Springer Verlag",

}

TY - JOUR

T1 - Software watermarking through register allocation

T2 - Implementation, analysis, and attacks

AU - Myles, Ginger

AU - Collberg, Christian S

PY - 2004

Y1 - 2004

N2 - In this paper we explore the application of the QP water-marking algorithm proposed by G. Qu and M. Potkonjak to software watermarking. The algorithm was originally proposed as a technique for watermarking the graph coloring problem which can be applied to a variety of media such as FPGA designs and software through register allocation. We implemented the algorithm within the SandMark framework, a system that allows the study of watermarking, tamper-proofing, and obfuscation algorithms for Java bytecode. Through the use of this framework we were able to perform an empirical evaluation of the algorithm. In particular we demonstrate that the use of register allocation, while incurring no performance overhead and being stealthy, is in fact vulnerable to attacks such as decompile/recompile. We also demonstrate that the QP algorithm does not allow for accurate watermark recognition without significant modifications.

AB - In this paper we explore the application of the QP water-marking algorithm proposed by G. Qu and M. Potkonjak to software watermarking. The algorithm was originally proposed as a technique for watermarking the graph coloring problem which can be applied to a variety of media such as FPGA designs and software through register allocation. We implemented the algorithm within the SandMark framework, a system that allows the study of watermarking, tamper-proofing, and obfuscation algorithms for Java bytecode. Through the use of this framework we were able to perform an empirical evaluation of the algorithm. In particular we demonstrate that the use of register allocation, while incurring no performance overhead and being stealthy, is in fact vulnerable to attacks such as decompile/recompile. We also demonstrate that the QP algorithm does not allow for accurate watermark recognition without significant modifications.

KW - Copyright protection

KW - Java bytecode

KW - Register allocation

KW - Software piracy

KW - Software watermarking

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

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

M3 - Article

AN - SCOPUS:24944554182

VL - 2971

SP - 274

EP - 293

JO - Lecture Notes in Computer Science

JF - Lecture Notes in Computer Science

SN - 0302-9743

ER -