Is my data secure? The goal of any encryption system is to prevent an unauthorized party from decrypting the data. So you want a system that an attacker can't break. Obviously if they have an infinite amount of time any system will fail. But to be secure, it is enough to make the time to break the encryption too long, so it is not worth the attacker's time. The PERNG and NTRU-2x2 algorithms have been designed so that, an attacker can't decrypt your data even if they: a) know each of the encryption algorithms b) know the format of the encrypted data so they can split asymmetrical data into the asymmetrically encrypted secret key and the symmetrically encrypted actual data. c) have examples of encrypted data and the corresponding decrypted data d) have a copy of the Data Krypter so they can try many possible keys to try to decrypt the data (Or have some other software that implements the algorithms.) How long will it take to decrypt PERNG encrypted data? The strength of the Data Krypter is dependant on PERNG symmetric encryption. This is because even when encrypting data asymmetrically, PERNG is used. In this case, a random secret key of length 9-45 characters, is chosen and encrypted asymmetrically using NTRU-2x2. The actual data is then encrypted with PERNG using the secret key and is included. One way to decrypt data is to try all possible secret keys until a valid message is found. This is known as a brute force attack. Each secret key is a combination of upper and lower case letters, digits and symbols. There are 87 possible characters in the key. (26 uppercase letters, 26 lowercase letters, 10 digits and 25 symbols) The length of a secret key can be 9-45 characters. The number of possible keys depends on how likely each length is. When a user has to type the secret key it will more likely be short. For asymmetric encryption the secret key could be anywhere from 9-45 characters so there are more possibilities. For each key to try, a translation matrix has to be created. This is a relatively slow process. For example on an Intel® i7-6700 3.40 GHz creating an 87x87 translation matrix (for a character set of 87 characters) requires 0.92 ms. Suppose an attacker knew that your secret key was between 9 and 12 characters long. This calculates to about 190 x 1021 possible secret keys. To use a brute force method they would need to try at least half of these secret keys which takes about 2.8 trillion years. (the time to try half the keys= 95 x 1021 x 0.92/1000/31,536,000 years. One year has 3600x24x365=31,536,00 seconds.) Even if an attacker had a million computers, each trying different keys it would still take a few million years. When files are encrypted, a 256x256 translation matrix must be created (for encrypting bytes) and this requires 3.2 ms. Using brute force on files will take even longer. This means a brute force method of breaking the encryption, will take too long. A malicious individual will instead attempt other methods, such as: a) comparing samples of unencrypted and encrypted data to try to find the key that converts one to the other. This is also impractical for PERNG, as this example shows: The messages below have been encrypted using a secret key:
You can see that changing a single character in the secret key or a single character in the message causes almost every character of the encrypted message to change. (The first 3 characters are the message header which does not change.) The same is true for longer messages, so an attacker cannot find any pattern. For asymmetric data, an attacker would use a different means. Instead of trying to decrypt the actual data (the second half) they would try to decrypt the first half which has the encrypted secret key. This was sometimes possible in the original NTRU implemention as explained here and here. However, those techniques depend on a few characteristics of the original NTRU, which don't apply to NTRU-2x2: 1. The polynomials used for the public/private keys were sparse, which means very few of the coefficients were non-zero. This was necessary to be able to discover polynomials that had inverses. In NTRU-2x2 it is much easier to find a polynomial that has an inverse. So the polynomials many non-zero coefficients. 2. The public and private keys were polynomials with possible coefficients of -1, 0 or +1. This made it easier to defeat. NTRU-2x2 has 4 polynomials: 2 for the public key and 2 for the private key. Each polynomial in the public key has coeffients in the range 0 to a prime number in the range 4093 and 4283. One of the private key polynomials has coefficients -1, 0, +1 but the other has coefficients in the same range as the public key. These differences prevent the types of attacks that might have worked against the original NTRU algorithm. b) accessing the Data Krypter files on your computer, to find your master password. There is a file that stores your master password but it is encrypted using the master password as the secret key. So to decrypt it requires the master password which the attacker does not have. c) trying to get you to reveal your master password. (Obviously, you should not do this.) You also need to keep your anti-virus software up to date. Otherwise a key logger might get installed which an attacker can use to record your master password when you type it. Or a virus which looks like the Data Krypter might get installed. Then when it runs you may think it is the Data Krypter asking for your master password and type it. You should also follow the recommendations listed here. Quantum Computers: What about at some point in the future when a big enough quantum computer is built? At that point will your data be vulnerable? No it won't for these reasons: Shor's algorithm will speed up deciphering data that was encrypted with an algorithm that relies on factoring numbers into primes. (e.g. RSA) Shor's algorithm can also be used to speed up solving the discrete logarithm problem and the period-finding problem. However, PERNG does not rely on any of these, so it is quantum-proof. Since NTRU-2x2 is lattice based it is also quantum-proof. (the reasons are here and here.) So both PERNG and NTRU-2x2 are quantum proof (some people call it quantum safe). |