A random encryption package works by applying a stream of random data to the data to be encrypted thus rendering it unreadable.
Ruskwig pioneered random encryption in early 1999 and developed a random encryption package achieving key lengths of 10,000 bits in March 1999 and has owned the Copyright to random encryption since this time. The first publicly available random encryption package utilising random encryption techniques was released in May 1999.
The random encryption package algorithm 'Random Byte Encryption' was developed by Chris Stone to provide highly secure and fast encryption. With this algorithm it is possible to use key lengths of 10,000 bits on a standard PC.
Random Byte Encryption is a private key encryption algorithm. It is similar in concept to the German Enigma machine of the second world war. The objective of the algorithm was to design an algorithm that was fast, scalable and that could only be cracked by brute force. Then if the key length is long enough it should be very difficult to crack.
The input data is encrypted as it is read therefore making it a fast algorithm. The input data is combined with a stream of random numbers altering the original data into something that is unintelligible. The random numbers are generated by multiple streams of random number generators which are combined together to form a single random number which is applied to the input data.
The random numbers are generated using a linear congruential generator of the form;-
X(n+1) = A X(n) + B (mod N) where X(0) is given as the seed.
This pseudo random number sequence repeats after N -1 iterations. The values of the parameters A,B and N have been chosen to keep the repeat interval in line with the seed length.
Multiple streams of random numbers from the pseudo random number generators are combined together to form a single random number. One of the problems of combining lots of random numbers between 0 and 1 is that the combined numbers tend to become smaller and smaller and tend towards 0. If this happens the data is not encrypted at all.
To overcome this as each random number from the multiple streams of random numbers is applied to the combined random number an adjustment is made if the combined number has become too small. This allows the probability distribution to be maintained close to that of true random numbers.
1 |
The user provides a key consisting of extended ASCII characters. Every x number of ASCII characters are used to generate a seed for one of the multiple streams of random numbers. |
2 |
An 8-bit byte of data is then read from the input stream of data and converted in to the decimal equivalent DE of the ASCII character. |
3 |
The multiple streams of random numbers are then combined to produce a random number between 0 and 255. |
4, |
The random number generated is then added to DE to produce a new value NV. The decimal value NV is then converted back into its equivalent extended ASCII character. If NV is greater than 255 the maximum value permitted for an extended ASCII character, the ASCII character equivalent to NV-256 is generated. Thus each byte of data is randomly changed in to a different byte. |
5 |
The ASCII character generated is then written to the output data stream. |
6 |
To decrypt the file the random number sequence generated by the key is used in reverse. |
This algorithm is scalable and only limited by the speed of the machine it is running on. As longer key lengths are required it is simply a matter of using another stream of random numbers for every x number of ASCII characters in the key.
As the output stream is written as the input stream is read the algorithm is fast.
In order to crack the algorithm it is necessary to be able to predict each random number applied to the data in turn. This can only realistically be achieved by working through every possible combination of key by brute force. If the key is long enough it its not possible to crack the encryption during the useful life of the data.
Copyright © C.Stone 1996 - 2016