< Stratus Software - Gatekeeper


HOME     

Press Room     

Contact Us     

About Us     

Products     

     Gatekeeper
Definitions
  • MID - Machine Identification.
  • PID - Program Identification
  • KEY - Encrypted data that holds usage restrictions
  • knapsack - NP complete math problem that is used as a basis for part of the encryption. Each bit is assigned a value and the encryption is the sum of all bit values. As long as the knapsack values are not superincreasing the problem can not be solved without significant analysis an a large block of data. Our use of this algorithm is limited to encrypting 6 bits.
  • superincreasing - a knapsack that is made of values that are each greater than the sum of all preceding parts.
  • Merkle-Hellman - a scheme that converts a superincreasing knapsack into a non-superincreasing knapsack by multiplying each value by some number N and then taking the modulus M. To reverse this process the knapsack result is multiplied by N to the minus 1 modulus M. This will return the sum of the original superincreasing knapsack sequence.
  • Merkle-Hellman-Tackett - a variation on the Merkle-Hellman scheme that uses a 256 round one-way function seeded with a random value to create an additional multiplier and inverse. The security is increased because the one-way function produces a pseudo-random value that further randomized the result.
  • SHA1 - XEROX algorithm that produces 160 bits of one-way hash value that has no known attacks to produce a known value by manipulating the input.
Notes

Superincreasing knapsack is created using a random number generator This is converted to a normal knapsack by the following algorithm


R = ((V*N mod M) * F(B) + A) mod M

N, B and A are chosen at random with the only requirement that N be odd. This process is reversed to retrieve V. Part of the randomness is obtained by using the 20 millisecond counter of time from last boot. This is used as part of a seed for a random number generator that creates the superincreasing knapsack. There are currently no known attacks to this process. Additional encryption is done by XORing the data with a sequence of psudo-random numbers. The result is a sequence of bits that is close to an even distribution and is thus not easily analyzed. This is used as the public PID The KEY is encrypted using Merkle-Hellman-Tackett for some parts and Bitstream XOR for others. The KEY has built-in checks for validity reducing the number of possible keys in the 128 bit value. KEYS may or may not require a MID match to decode. The result is that the creation of a valid key requires the solving of the knapsack problem and the checking system used to validate the decrypted KEY value. The problem of creating a generalized program to create KEY values for specific PID is one that should be hard enough to prevent analysis. In addition the license files are also double encrypted.