RSA encryption algorithm is an asymmetric encryption algorithm. It is based on the mathematical problem of factoring large numbers, and it is also the most widely used asymmetric encryption algorithm. RSA is widely used in public key encryption and electronic commerce.
RSA was founded in 1977 by Ron Rivest, Adi Shamir and Leonard Adelman Adleman). All three of them were working at MIT at the time. RSA is composed of the initial letters of their last names spelled together. (Recommended learning: PHP video tutorial)
In 1973, Clifford Cocks, a mathematician working at the British Government Communications Headquarters, wrote in an internal document An identical algorithm was proposed in , but his discovery was classified and was not published until 1997.
The difficulty of factoring extremely large integers determines the reliability of the RSA algorithm. In other words, the more difficult it is to factorize a very large integer, the more reliable the RSA algorithm is.
If someone finds a fast factorization algorithm, then the reliability of information encrypted with RSA will definitely decrease dramatically. But the possibility of finding such an algorithm is very small. Today only short RSA keys can be cracked by brute force.
So far, there is no reliable way to attack the RSA algorithm in the world. As long as the key length is long enough, information encrypted with RSA cannot actually be cracked.
In 1983, MIT applied for a patent for the RSA algorithm in the United States. This patent expired on September 21, 2000. Since the algorithm was published before the patent application was filed, the patent rights are not recognized in most other parts of the world.
Basic meaning
RSA public key cryptography system. The so-called public key cryptography system uses different encryption keys and decryption keys. It is a cryptosystem that "it is computationally infeasible to derive the decryption key from the known encryption key."
In the public key cryptography system, the encryption key (i.e., the public key) PK is public information, while the decryption key (i.e., the secret key) SK needs to be kept secret. Encryption algorithm E and decryption algorithm D are also public. Although the decryption key SK is determined by the public key PK, since the Euler function phi(N) for large numbers n cannot be calculated, SK cannot be calculated based on PK.
It is based on this theory that the famous RSA algorithm appeared in 1978. It usually generates a pair of RSA keys first, one of which is a secret key and is saved by the user; the other is a public key , can be made public, and can even be registered in a web server.
To improve confidentiality, the RSA key must be at least 500 bits long, and 1024 bits is generally recommended. This makes encryption computationally intensive. In order to reduce the amount of calculation, when transmitting information, a combination of traditional encryption methods and public key encryption methods is often used, that is, the information is encrypted with an improved DES or IDEA key, and then an RSA key is used to encrypt the conversation key and information digest. . After the other party receives the message, it uses different keys to decrypt it and can check the message summary.
The RSA algorithm is the first algorithm that can be used for both encryption and digital signatures. It is also easy to understand and operate. RSA is the most widely studied public key algorithm. In the more than thirty years since it was proposed, it has experienced various attacks and has gradually been accepted by people. As of 2017, it is generally considered to be one of the best public key schemes. one.
For more PHP-related technical articles, please visit the PHP Graphic Tutorial column to learn!
The above is the detailed content of rsa encryption algorithm belongs to. For more information, please follow other related articles on the PHP Chinese website!