Chapter 1. Introduction

Validy Technology is an innovative subtractive and hardware-based software protection method that works by splitting an application into two parts: the first part, still executed by the original processor, and the second part that is executed by a secure coprocessor. At application protection time, the instructions that constitute the second part are ciphered using a secret key and embedded inside the first part. As the protected application executes, the ciphered instructions are sent to the coprocessor where they are decrypted and executed. Data is also exchanged back and forth and the secure coprocessor maintains a subset of the application's state inside its own memory.

When the second part is an essential subset of the original application, the protected application cannot be run without its secure coprocessor.

At the present time, the process of splitting the application is semi automatic, performed by a tool from hints provided by the developer. This document is a guide to the evaluation version of such a tool, Validy SoftNaos, specialized in the transformation of Java® classes. The tool is a bytecode partial translator: it transforms already compiled Java class files by converting a subset of the original Java instructions to the instruction set of the secure coprocessor. In the build of an application, the translator can be called at the same stage as the bytecode weaver of Aspect Oriented Programming. However, in contrast with a weaver, it does not add extra code to the application but simply translates some of the existing code.

1. Organization of this Guide

Chapter 2, Getting Started describes how to install the translator, run it to protect a simple application, and then run the protected application.

Chapter 3, Overview gives more details on Validy Technology.

Chapter 4, Usage shows how to use the translator or its associated Ant task and describes their respective options.