The data encryption standard is an algorithm developed by IBM for the US government in 1977. DES is a block encryption technology based on 56-bit key. The encryption process is generally as follows:
① Disrupt and replace 64-bit plaintext blocks at one time.
② Split the 64-bit plaintext block into two 32-bit blocks;
(3) Scrambling each 32-bit block for 16 times with a secret DES key;
④ Use the reverse arrangement of the initial arrangement.
However, in practical application, the confidentiality of DES has been greatly challenged. 1June, 999, 65438+1October, EFF and distributed network deciphered 56-bit DES encrypted information in less than one day. The dominance of DES has been seriously affected. For this reason, the United States has introduced an improved version of DES-triple data encryption standard, that is, both the sender and the receiver use three keys to encrypt and decrypt. There is no doubt that this 3*56 encryption method greatly improves the security of passwords, and it is almost impossible to crack them according to the current computing speed of computers. However, while providing strong security protection for data, we also need to spend more time encrypting information three times and decrypting each secret layer. At the same time, under this premise, two senders who use this key must have three keys. If one of them is lost, the other two will become useless keys. This triples the number of private keys, which is obviously not what we want to see. Therefore, the National Institute of Standards and Technology introduced a new security measure to protect financial transactions. Advanced encryption standard The National Technical Standards Committee (NIST) in June 2000 chose Rijndael, a Belgian research achievement, as the basis of AES. Rijndael went through a long process of three years, and was finally selected from five schemes to enter the candidate.
AES has a more concise and accurate mathematical algorithm, and the encrypted data only needs to pass once. AES has fast design speed and strong safety performance, and can support various small devices. Compared with 3DES, AES has great differences not only in security performance, but also in usage performance and effective utilization of resources. Although I don't know the specific algorithm of AES until now, we can see its great superiority with 3DES from the following table.
There are some other algorithms, such as Skipjack algorithm used by the National Security Agency, but the details of its algorithm are always kept secret, and outsiders have no way to know its details. Some schemes developed by private organizations to replace DES: RC2, RC4, RC5, etc. Facing the problem of how to use and share the key and keep its confidentiality in the execution process, Whitefield Diffe and Marti Hellman put forward the concept of public key cryptography, which is called Diffie-Hellman technology. Since then, public key encryption algorithms have emerged.
Because of the adoption of public keys, the management and distribution of keys become much simpler. For a network with n users, only 2n keys are needed to achieve the density. At the same time, the confidentiality of public key encryption method focuses on extremely complicated mathematical problems, and its security is also guaranteed. But in practice, the public key encryption algorithm can't completely replace the private key encryption algorithm. The important reason is that its implementation speed lags far behind the private key encryption algorithm. Because of its security, it is often used to encrypt some important files. Since the advent of public key encryption, scholars have proposed many public key encryption methods, whose security is based on complex mathematical problems. According to the classification based on mathematical problems, there are three systems that are considered safe and effective at present: large integer factorization system (RSA), elliptic curve discrete logarithm system (ECC) and discrete logarithm system (DSA), which are introduced in detail below.
RSA algorithm was jointly developed by Rivet, Shamir and Adelman, hence the name RAS algorithm. Its security is based on the difficulty of prime number decomposition of large integers, and the decomposition of large integers is a famous problem in mathematics, and there is no effective method to solve it, so the security of RSA algorithm can be guaranteed. RSA system is the most typical method in public key system. Most products and standards that use public key cryptography for encryption and digital signature use RSA algorithm. The specific algorithm is as follows:
① Find two very large prime numbers. The bigger the prime number, the safer it is. Call these two prime numbers p and q.
② Find a number e that satisfies the following conditions:
A.this is an odd number.
B. less than p× q.
C. The coprime with (P- 1) × (Q- 1) only means that E does not have the same prime factor as the calculation result of this equation.
③ Calculate the value d and satisfy the following properties: ((d× e)- 1) is divisible by (p- 1) × (q- 1).
The public key pair is (P×Q, e).
The private key is D.
The public key is e.
The decryption function is:
Suppose t is plaintext and c is ciphertext.
The public key e and modulus p× q of the encryption function;
Encrypted information =(TE) modulus p× q.
The decryption function uses the private key d and the modulus p× q;
Decryption information =(CD) modulus p× q.
Elliptic curve encryption (ECC) is based on one-way function (discrete logarithm of elliptic curve) because it is much more complicated than the discrete logarithm used by RAS. Moreover, this one-way function is more difficult than RSA, so it has the following advantages compared with RSA:
The security performance of encryption algorithm with high security performance is generally reflected by the anti-attack strength of the algorithm. Compared with other public key systems, elliptic curve cryptosystem has absolute advantages in resisting attacks. For example, 160 bit ECC has the same security strength as 1024 bit RSA. While 2 10 bit ECC has the same security strength as 2048 bit RSA.
The calculation amount is small and the processing speed is fast. Although in RSA, the processing speed of public key can be improved by choosing a smaller public key (as small as 3), that is, the speed of encryption and signature verification can be compared with ECC, the processing speed of private key (decryption and signature) is much faster than RSA and DSA. So the overall speed of ECC is much faster than RSA and DSA.
Small storage space: Compared with RSA and DSA, ECC's key size and system parameters are much smaller, which means it takes up much less storage space. This is of great significance to the application of encryption algorithm in IC card.
Low bandwidth requirements When encrypting and decrypting long messages, the three types of cryptosystems have the same bandwidth requirements, but when applied to short messages, the ECC bandwidth requirements are much lower. However, public key encryption system is mainly used for short messages, such as digital signature and session key transmission in symmetric systems. The low bandwidth requirement makes ECC have a broad application prospect in the field of wireless networks.
These characteristics of ECC will replace RSA and become a general public key encryption algorithm. For example, the maker of SET protocol has made it the default public key cryptography algorithm in the next generation SET protocol.