Font Size: a A A

One Kind Of Static Data-structure Software Watermarking Method Based On Class Tree

Posted on:2010-03-20Degree:MasterType:Thesis
Country:ChinaCandidate:Y P LiuFull Text:PDF
GTID:2178360302465919Subject:Software engineering
Abstract/Summary:PDF Full Text Request
With the widespread use of computers and the rapid development of Internet technology, illegally infringing software products have been very serious. The phenomenon like software piracy, code theft and illegal tampering is more and more. Business Software Alliance (BSA) issued a white paper shows that in 2008 year 41% of the PC installed software is pirated software. This makes the software industry lost at least 53 billion U.S. dollars. At present, the traditional means of software protection is not enough. In order to protect software copyrights, a technology generation - software watermarking, similar to digital watermarking. Such technology must not change the normal use of the software and the copyright information embedded in the permanent program, in order to prove the copyright.By function, embedded mode, embedded location, characteristics, software watermarking can be divided into different categories. A common classification is based on the embedded mode. Software Watermarking can be classified as Static Watermark and Dynamic Watermark. They can also rely on embedded location is divided into: static data watermark, static code watermark, Easter Egg Watermark, dynamic data structure watermark and dynamic execution watermark. These kinds of software watermarking have their own advantages and disadvantages. Meanwhile, the attacks technology against the software watermark was born. This technology is classified as: to remove watermark information - Cropping Attacks; to add new watermark information– Additive Attacks; to make the watermark information not complete– Distortive Attacks; for copies with different watermark information– Collusive Attacks.This article presents one kind of static data-structure software watermarking method based on class tree, in order to use the class structure instead of simple data. This can correct the static data watermark defects.First of all, this paper presents the core issue is one kind of information representation based on class tree. When a class node has only one inheritance relations, we can use binary 0 to represent the class node and its inheritance relations; When a class node has many inheritance relations, we can use binary 1 to represent the class node and its inheritance relations; When a class node doesn't have any inheritance relations, we don't need to use anything to represent the class node. In this way, we can use binary sequence expressed as inheritance of information of the class node, which is in the class tree and has any inheritance relations. Select the inheritance of information contains the largest number binary number. It can be used to help us define the class tree size.Then, I design an information embedding algorithm based on class trees. The main method is to add classes to the class node in the tree. This can change the inheritance relations in the class tree and change the inheritance of information of some class nodes. Specifically includes the following steps:1. Select branch: Select some branches. The length of the branch information must be longer than the length of the embedded information. Use the branch information to XOR true-code and anti-code of the embedded information. If the binary 1 position of the results in the original information is binary 0, we save the results. The result which contains the least number of binary 1 will be selected. At the same time, save how to get this result.2. Insert the flag: The purpose is to mark the class node which saved the embedded information. Use the repeat inheritance to set the flag. The flag is divided into the true-code flag and the anti-code flag. Insert the appropriate flag according to the first step.3. Embedded information: Find the binary 1 position of the results. Add a parent class to the appropriate class node.4. Information extraction: First of all, search the flag in the class tree. Confirm the position of the class node, and confirm the type of the embedded information. Extract the inheritance of information of the class node. This information will be converted into true information.Finally, create a new kind of software watermarking method. First, select a large integer N. Then, permanently embed it in the software system. When you want to prove software copyright, extract the large integer N from the software system. Only the copyright holder knows primes P and primes Q .The large integer N is the result of primes P multiplied by primes Q. The software watermarking method must be completed in overall design stage and detailed design stage of the Software development. This method includes five steps:1. Calculate range: In the overall design stage of the software development, calculate the range of the integer N using the class tree size.2. Choose the watermark: Choose a large integer N which closes to the maximum value. Use a form to determine whether the large integer N can be embedded into the software system.3. Watermark decomposition: If the large integer N can be embedded into the software system, use a form to decompose watermark.4. Embedded watermark: In the detailed design stage of the software development, embed the information in the software system.5. Camouflage design: Add some methods and properties to the add class. So the add class will be not removed easily.The process of extracting the watermark depends on class diagram. First of all, generate class diagrams of each class tree. Then, extract the information in the class diagram. Finally, decomposition information, arrange information, portfolio information and get the large integer N.Using this kind of static data-structure software watermarking method based on class tree, I put the watermark information embedded in a large-scale software system. Then, I use tools and manual to attack the software system. Through experiments and analysis, I summarize the software watermarking features:1. This software watermarking method based on static data watermarks. It can use the class structure instead of simple data, and make it difficult to remove the watermark.2. This software watermarking method use the inheritance relation expressed as watermark information, so it can't be affected by normally changes and inheritance.3. This software watermarking method includes one kind of information representation based on class tree. It expands the thinking of study for software watermarking.4.This software watermarking method is constrained by software system. Therefore, it can not be used for small-scale software systems.5. This software watermarking method is not easily destroyed by tools or manual.I summarize the characteristics of the software watermarking. It makes me know how to study software watermark. My method makes a contribution to the study software watermarking.
Keywords/Search Tags:Software Watermarking, Class Tree, Static Data Structures, Inheritance of Information
PDF Full Text Request
Related items