Random function as key
Direct encryption of Random Functions refers to using the value generated by random functions as part of the key or key to encrypt files. We know that as long as a seed is set for a random function, a new function value can be generated when a random function is computed. These values can be directly or encrypted as keys, it can multiply a non-zero coefficient or add a constant term as the key. Decryption is an encrypted inverse operation.
Crack random function Encryption
By reading the program, you can know what random functions are used for encryption. If direct encryption is used (the key has no parameters or constant items, it is only a random function value), you will be able to know the random function seed. You can use the exhaustive method to obtain the seed and list all possible values as the seed candidates. Try them respectively, but it is impossible to generate one or two function values after the seed is set, it cannot be determined whether the decryption is successful. It requires at least a few values or more to judge. If you know the plaintext attribute, You can grasp its features to judge whether the decryption is successful. Generally, division is available, it is to make the impossible values into a table, and then test the next seed candidate until the real seed is found. It may take a long time for a random function to find a job with a large cycle, but you may find it soon with luck.
If the key has parameters and constant items, it will be much more difficult to crack. In addition to selecting a seed candidate, the random numbers generated must be multiplied by the upper coefficient plus the constant item, the coefficients and constants are unknown, so we need to try again. You probably need to test "random function period X Series numeric field x constant item value range.
Random Functions generate values in various forms, for example, in the 32-bit binary number format, if the key only needs 8-bit binary number, A number of Modulo operations from large to small before the function value is used as the key will fundamentally change the value of the key. The value of the module also comes from the derivative value of the user password, the attacker must also make the same attempt. Otherwise, it cannot be cracked. This requires more experimentation.
The random function period must be larger to be reliably encrypted. For example, the period has a power of 36. It is the simplest Search for existing function values. It uses the fastest computer to calculate 10 thousand trillion operations per second (less than 3000 trillion records). It takes 3.2 trillion years to search again, for example, it takes several to dozens of times longer to make judgments plus other computations.
Some people think that brute force cracking can be used. If there is only one password, you will soon be able to try all the passwords. It will always happen, so the number of digits of the password cannot be too small. Generally, there are measures to limit the minimum number of passwords. Software that can be attacked by brute force cracking is caused by Software defects. For example, the encryption in winrar is shown. If you enter the wrong password, the program will not run down, the system immediately prompts you that the password is incorrect. Using this method, the attacker can quickly try to solve a large number of candidate passwords. That is, the mechanism that winrar itself detects the correct password actually helps the hacker, I sold myself out. Otherwise, it takes a lot of time for the attacker to perform operations such as checking whether the decryption is successful, if the file itself is garbled, there is no hope of decryption, because there is no judgment standard.
Directly Using Random Function encryption. From the analysis above, if two or more random functions are used for encryption and there are parameters and constant items related to the user password, it is quite safe, if the configuration is reconfigured with the salt adding technology, single table replacement, and so on, you can achieve public security even if the source code is encrypted.
From the column sjd163