Forward Source Link: RSA encryption algorithm encryption and decryption process analysis
1. Overview of cryptographic algorithms
The encryption algorithm can be divided into reversible and non-reversible encryption depending on whether the content is restored.
Reversible encryption can be divided into symmetric and asymmetric encryption according to whether the same key is used for encryption and decryption.
Symmetric encryption refers to the same key that is used when encrypting and decrypting: For a simple example, do a simple cryptographic processing of a string C, for each word nonalphanumeric and a Do XOR, form ciphertext s. When decrypting, use ciphertext s and key A to make a different or revert to the original string C. One of the big drawbacks of this encryption is that it's unsafe, because once the encryption key is compromised, you can use that key to hack all the other ciphertext.
Asymmetric encryption uses a different key, the public key and the private key, during encryption and decryption. The public key is used for encryption, and everyone is visible, the private key is used for decryption, only the decryption holder. Even if the original text and ciphertext leak in a single encryption process, the cracker can not infer the private key in the case of knowing the original text, ciphertext and public key, which ensures the security of the data to a great extent.
Here, we introduce a very representative asymmetric encryption algorithm, RSA encryption algorithm. RSA algorithm was invented in 1977, the full name is the RSA public key System, which is the common key.
2. Key calculation and acquisition process
The key is calculated as: first select two prime numbers p and Q, to make n=p*q.
Make k=? (n) = (p−1) (q−1), see Principle 4 analysis
Select any integer d to ensure that it is with the K coprime
Take the integer e, making [De]k=[1]k. This means that de=kt+1,t is an integer.
The process of using 3.RSA encryption algorithm
Similarly, for example, to encrypt a string, such as the art of programming, the RSA algorithm provides two public keys E and N, with a value of two positive integers, the decryption party holds a private key D, and then begins the process of encrypting and decrypting.
1. The string is converted to a positive integer z based on a certain regularity, for example, 0 to 36, and an integer sequence is formed after the conversion.
2. For each character corresponding to the positive integer mapping value z, calculate its encrypted value m= (n^e)%n. Where N^e represents the e-time side of N.
3. After the decryption party receives the ciphertext, it begins to decrypt and calculates the decrypted value (m^d)%n, where the positive integer z is obtained.
4. Depending on the public conversion rules that you set up, you can convert Z to the corresponding character and get clear text.
Principle analysis of 4.RSA encryption algorithm
The following analysis of its intrinsic mathematical principles, the RSA encryption algorithm will have to talk about Euler's theorem.
Euler's theorem (Euler's theorem) is a more applicable theorem found in the process of proving Fermat theorem.
First, define a function called the Euler phi function, i.e. (n), where n is a positive integer.
? (n) = Total (from 1 to n−1, and n coprime integers)
For example 5, then 1,2,3,4, all with 5 coprime. With 5 coprime the number has 4.? (5) =4
Again such as 6, with 1,5 coprime, and 2,3,4 not coprime. So? (6) =2
For a prime number p, it and 1, 2, 3, ..., p–1 are coprime, so? (p) =p−1. Like what? (7) = 6,? (11) =10
Euler's theorem is described as follows:
Euler's theorem: if n is a positive integer, A is any one of the non-0 integers, and N and a coprime. So, a^? (n) −1 can be divisible by N.
Corollary 1: if M and n are positive integers of coprime. So? (MN) =? (m)? (n)
Corollary 2: [Ab]n=[[a]n[b]n]n
Proof: Suppose that the remainder of a and b divided by N is c1,c2. A and B can be written as A=NT1+C1,B=NT2+C2. So, ab=n2t1t2+nt1c2+nt2c1+c1c2. So the remainder of AB divided by N is c1c2. That is [Ab]n=[a]n[b]n.
with the above theorem, the intrinsic principle of RSA algorithm can be deduced .
According to Euler's theorem, for any z, if z and N coprime, then:
[z^? (n)] n=[z^k]n=[1]n
So
[z^ (DE)]n=[z^ (kt+1)]n=[z^ (kt) *z]n=[z^kt]n*[z]n= [Z]n because [z^k]n = [1]n
The above mainly uses de=kt+1 and inference 2. Other words:
[z^ (DE)]n=[z]n
According to the inference of 2, there is
([Z^e]n) ^d=[z]n
That is, the D remainder is multiplied because its product may be greater than n, so the [Ab]n=[[a]n[b]n]n, for example, A and B are 5,n to 3, the conclusion
Therefore, the formula can be described as [([Z^e]n) ^d]n=[z]n=z, that is, the original number of the balance of the remainder, and then the remainder after the second to obtain the original number of the process of obtaining evidence.
Public encryption method, private decryption method. The key to RSA security is that it is difficult to factor the decomposition of a large integer.
Disadvantages of 5.RSA Encryption
1) It is troublesome to generate a key, which is limited by the technology of prime number generation, so it is difficult to do it once.
2) Security , RSA Security relies on the large number of factor decomposition, but did not theoretically prove that the difficulty of deciphering RSA and large number decomposition is equivalent, and the majority of cryptography scholars tend to factor decomposition is not NP problem.
3) too slow , due to the RSA packet length is too large, in order to ensure security, n at least more than BITX, so that the computational cost is very high, especially the speed is slow, more than symmetric cipher algorithm several orders of magnitude, and with the development of large number decomposition technology, this length is still increasing, Not conducive to standardization of data formats.
Encryption and decryption of RSA encryption algorithm