A software watermarking algorithm based on stack-state transition graph
Xu Jinchao
Department of Computer Science and Technology
Tongji University
Shanghai, China
e-mail: xujctj@gmail.com
Zeng Guosun
Department of Computer Science and Technology
Tongji University
Shanghai, China
e-mail: gszeng@sina.com
Abstract—In the Internet age, Software security and piracy
becomes a more and more important issue. In order to prevent
software from piracy and unauthorized modification, various
techniques have been developed. Among them is software
watermarking which protects software through embedding
some secret information into software as an identifier of the
ownership of copyright for this software. This paper gives an
new algorithm based on stack-state transition graph,
watermarks is embed by adding additional code in the
executable file, and extracted by recognizing the relationship of
stack-state which processed in runtime. Analysis proves that
our algorithm is more reliable.
Keywords- Digital Copyright, Dynamic Software
Watermarking, Stack-state transition graph, Watermarking
Algorithm
I. INTRODUCTION
For a long time, knowledge products, human innovation,
and digital copyright protection have been a daunting task.
In the Internet age, Software security and piracy becomes an
important issue. In order to prevent software from piracy
and unauthorized modification, various techniques have
been developed. Among them is software watermarking
which protects software through embedding some secret
information into software as an identifier of the ownership
of copyright for this software. When an unauthorized use of
this software occurs the copyright holders of this software
can have evidence of piracy by extracting this secret
message from an unauthorized copy.
Compare to other software protection techniques, the
research on software watermarking lack of theoretical basis
and fewer algorithms have been proposed. In 1996,
Davidson and Myhrvold
[1]
published the first software
watermarking algorithm. It watermarks a program by
reordering its basic blocks. Then Qu and Potkonjak
[2]
proposed register allocation algorithm, which inserts a
watermark into the interference graph of a program. Stern et
al.
[3]
proposed a spread-spectrum algorithm which
represents a program as a vector and modifies each
component of the vector with a small random amount.
Arboit
[4]
proposed opacue to insert a watermark into a
dummy method and opaque predicate. Nagra and
Thomborson
[5]
proposed a threading software watermarking
algorithm based on the intrinsic randomness for a thread to
run in a multithreaded program. Cousot
[6]
proposed abstract
interpretation algorithm by embedded the watermark in
values assigned to designated integer local variables during
program execution. Dynamic path algorithm was proposed
by Collberg et al.
[7]
. This algorithm inserts a watermark in
the runtime branch structure of a program to be
watermarked. In addition, Graph-based algorithms are also
an important research field on software watermarking.
Venkatesan, Vazirani and Sinha
[8]
proposed the first graph-
based software watermarking. It is a static software
watermarking algorithm, called the VVS algorithm.
Collberg and Thomborson
[9]
proposed the first dynamic
graph algorithm, the CT algorithm. It embeds the watermark
in a graph data structure which is built during the execution
of the program.
The follow deficient exists in above algorithms. (1)
Many algorithms are only available to source-level program
to be watermarked, but not available to most compiled
executable program. (2) Most algorithms are only resistance
to some special attacks, but have no effect on many
legitimate soft transformations such as compressed or
encrypted. (3) Inefficient are also defect of some software
watermarking algorithms.
Graph-based software watermarking algorithms have
many advantages, but they also have their own
disadvantage. For example, VVS is a kind of static
watermarking algorithm; the code inserted doesn’t execute,
and therefore, easily be detected. For CT algorithm,
software watermarking is embedded in data structures which
are built on the heap at runtime, but the data structures have
little relation with the host software that vulnerable to
targeted attacks.
Aimed to the shortcoming of existing algorithms, this
paper presents a new software watermarking algorithm based
on stack-state transition graph. The algorithm used two
secret input, thus weakens the relation between watermarks
and reduces the computational while embed or extract the
watermarking. Compare to existing algorithms, safety,
versatility has been improved.
II. T
HE BASIC CONCEPTS OF SOFTWARE
WATERMARKING
A Digital watermark is a meaningful string of bits of 0
and 1, or a big integer, even be a picture, etc., It can be used
as an identifier of the copyright of digital products, to ensure
the legitimate use of the digital products. Digital
watermarking is used to embed a unique identifier in the
digital products (such as text, image, audio, video, software,
2010 Fourth International Conference on Network and System Security
978-0-7695-4159-4/10 $26.00 © 2010 IEEE
DOI 10.1109/NSS.2010.51
83
2010 Fourth International Conference on Network and System Security
978-0-7695-4159-4/10 $26.00 © 2010 IEEE
DOI 10.1109/NSS.2010.51
83