Overview
The InfoLock encryption algorithm is unique in its security. It is a symmetrical encryption system that is largely based on the classic Vigenere cipher. The algorithm uses its own variation of this cipher, making use of a secondary binary passkey to greatly increase the length and unintelligibility of the passphrase. In addition, the algorithm uses differing alphabet spaces for the plaintext and passphrase, each in random order. While this last feature theoretically will not actually increase the strength of algorithm, it will certainly cause confusion and be a headache for anyone attempting to break encrypted code. Nevertheless, even without this added touch of obfuscation, the InfoLock algorithm is a very secure and strong one.
What is EKC encryption?
As far as the actual encryption process is concerned, there is no difference between using regular or EKC encryption. An EKC (Extended Key Combination) is just that: a very long, randomly generated passphrase and passkey combination. The big difference is in security. If an easy to guess passphrase is used, a hacker could perform a dictionary brute-force attack on your code (though this still would be difficult due to the passkey). An EKC, on the other hand, is a completely random passphrase that is 35,000 to 45,000 characters in length, combined with a random passkey, producing a master key that is approximately 1,600,000,000 characters in length. Brute-force attacks on keys this size are impossible with todays technology, and likely will be for a long, long time to come. Furthermore, if the information to be encrypted is shorter than the original passphrase, which is likely for most documents, then the encrypted code will be mathematically impossible to crack.
THE PROCESS - HOW DATA IS ENCRYPTED
The actual process of encrypting is pretty simple: corresponding characters in the passphrase and plaintext are compared with an alphabet space where numeral integers represent each, these integers are added, and the result is compared with an alphabet space to yield the encrypted character. To help you understand, let’s use a numeric example. Suppose you have a secret number that you want to encrypt: 5. To encrypt this number, you choose a number to act as a passphrase: 3. You then add these together to produce your encrypted code: 8. Anyone who sees the number 8 will not be able to determine what number you started with unless they know what number you used as the passphrase.
Let’s now look at a more realistic example. Suppose you want to encrypt the word “treasure”, and you will use the passphrase “abc” to do so. The first character of the plaintext is aligned with the first character of the passphrase, the second with the second, and so on until the end of the passphrase. At this point, the passphrase is repeated. The aligning letters are then compared on an alphabet space (we’ll assume a normal alphabet), their numeric values added, and the sum converted back to a character, as such:
Align:
T - R - E - A - S - U - R - E
A - B - C - A -B - C - A - B
Convert to number:
20 - 18 - 5 - 1 - 19 - 21 - 18 - 5
1 - 2 - 3 - 1 - 2 - 3 - 1 - 2
Add corresponding values:
21 - 20 - 8 - 2 - 21 - 24 - 19 - 7
Convert back to character:
U - T - H - B - U - X - S - G
Thus, the encrypted code is: ‘uthbuxsg’. This is an extremely simple example of a Vigenere cipher. The InfoLock algorithm uses an alphabet space that includes far more than just 26 letters (distinction between capital and lowercase, spaces, punctuation, symbols, etc,) in random order, and in fact uses differing alphabet spaces for the passphrase and plaintext. The InfoLock algorithm also introduces a new idea: passkeys.
In addition to a passphrase, a passkey is aligned with the plaintext. If the corresponding bit of the passkey is a 1, then the values of the passphrase character and plaintext character are added together. If the bit of the passkey is a 0, then the plaintext is subtracted from the passphrase. A passphrase and passkey of differing lengths will repeat offset from each other, and thus will produce a longer pattern. The length of the overall repeating pattern is the Least Common Multiple of the lengths of the passphrase and passkey. Thus, a passkey length should be chosen that has a very high least common multiple with the length of the passphrase. The greatest least common multiple an integer can have is that with a consecutive integer. So, to produce the longest and therefore strongest pattern, the passkey should be just one bit shorter or longer than the the passphrase (this is the case with EKCs). On the other hand, a long passkey is hard to remember.
To compromise, a passkey length should be chosen that gives a high least common multiple, but is short enough to remember. Since the average human can easily remember 5-9 units of data, we decided to let InfoLock advise a maximum of 6 digits. This means that when you enter a passphrase into the program, InfoLock computes a passkey length that will give the highest least common multiple, but only considers lengths 1 through 6 digits.
What has been described is essentially the process that InfoLock uses to encrypt your data. Like all symmetric encryption methods, it is only as strong as your passphrase a passkey. A strong passphrase should be long and hard to guess. A strong passkey should not repeat within itself. EKC encryption is by far the most secure option for encryption on the market, but it bears the weakness that it is a file stored on your computer. For the paranoid, a good strategy is to encrypt your sensitive data with an EKC, and then encrypt the EKC itself with a passphrase kept only in your head.