Abstract: This article introduces how to implement the IDEA symmetrical encryption algorithm in the Java environment. Due to the popularity of e-commerce and e-government, safety encryption technology is very broad, and the requirements for security encryption technology are also high. At present, IdeA encryption is achieved in a Java environment, because Java is based on object-oriented programming languages, and because its platform-independent performance is largely applied to the Internet development. Keywords: Idea (International Data Encryption Algorithm) JCA JCE Key Standby Reliability With the rapid development of the Internet, the wave of e-commerce is unstoppable, daily work and data transfer are put on the Internet online, which greatly improves efficiency, decrease The cost has created a good benefit. However, because the Internet Network Agreement itself has important security issues (IP package itself does not inherit any security characteristics, it is easy to fake the address of the IP package, modify its content, replay the previous package, and intercept the previous package and intercept the bag and check the package. Content), making online information transmission There is a huge security risk of energy, e-commerce, has become more and more prominent. Encryption is the most important security technology in e-commerce, and the selection of encryption methods directly affects the security of information in e-commerce activities. In e-commerce systems, the main security issues can be solved by encryption. The confidentiality of data can be implemented by different encryption algorithms. For my country, although many foreign equipment can be introduced, the encryption equipment cannot rely on introduction, because it involves the security of network security, national confidential information, so you must develop it yourself. There are many encryption algorithms in the world, where DES (Data Encryption Standard) is the earliest use of the most widely used group symmetrical algorithm, DES encrypts 64 plaintexts with 56-bit honeymath, output 64-bit Cipher, DES's 56-bit There is a total of 256 possible keys, but history has been used to crack the DES key in history. In 1998, the electronic border fund (EFF) was used for a special computer manufactured by $ 250, using 56 hours to crack DES's secret. Key, in 1999, EFF completed the crack in 22 hours, making the DES algorithm have been severely blown, making it seriously threatened. Because of the security and network processing capability of Java language, this paper mainly describes the secure transmission of data encryption in the Java environment using the Idea (International Data Encryption Algorithm) data encryption algorithm. Idea Data Encryption Algorithm Idea Data Encryption Algorithm is a joint proposed by Chinese scholars to learn Maxie and famous password expert James L. Massey in 1990. Its plaintext and ciphertext are 64 bits, but the key is 128 bits. Idea is implemented as an iterative packet password, using 128-bit keys and 8 cycles. This provides more security than the DES, but when selecting a key for the IDEA, the key called "weak key" should be excluded. DES has only four weak keys and 12 weak keys, and the number of weak keys in IDEA is considerable, and there are 2 51 times. However, if the total number of keys is very large, reaching 2 128 times, then there are still 2 77-old key to choose from. Idea is considered extremely secure. With 128-bit keys, the number of tests that need to be made in brute force attack will increase significantly comparable to DES, and even allow the weak key test. Moreover, it also shows it especially to resist professional forms of analytical attacks. Second, the Java password system and Java password extended Java is an object-oriented programming language developed by Sun, and because its platform independence is largely applied to the development of Internet. The design purpose of the Java Password System (JCA) and Java Password Extensions (JCE) is to provide Java with unrelated encryption function API.
They all use the Factory method to create a class routine, then delegate the actual encryption function to the underlying engine specified by the provider, and provide the service provider interface to the class to implement the data in Java to implement the encryption / decryption of the service provider. Built-in JCE (Java Encryption Extension) is implemented. The Java Development Toolset 1.1 is an encrypted function including a digital signature and information summary, a vendor-based new flexible application programming interface. Java password architecture supports suppliers' interoperability while supporting hardware and software implementation. Java cryptography structure design follows two principles: (1) independence and reliability of the algorithm. (2) The independence and interaction of the realization. The independence of the algorithm is obtained by defining a password service class. Users only need to know the concept of password algorithms, not to care about how to implement them. The independent and interaction of the realization is achieved by a password service provider. The password service provider is one or more packages that implement one or more password services. After a certain interface, the software developer is packaged into a provider, and the user can install different providers. Installing and configuring the provider, placing the ZIP and JAR files containing the provider under classPath, edit the Java security properties file to set the definition. When the Java runs the environment Sun version, it provides a default provider sun. Third, the implementation of the Java environment 1. Realization of encryption VOID IDEA_ENC (int DATA11 [], / * 64-bit data first address * / int key1 []) {INT i; int TMP, X; int zz [] = new int [6]; for (i = 0; i <48; i = 6) {/ * perform 8 wheel loop * / for (int J = 0, Box = I; J <6; J , Box ) {zZ [J] = key1 [ Box];} x = handle_data (DATA11, ZZ); TMP = DATA11 [1]; / * Switch middle two * / data11 [1] = data11 [2]; data11 [2] = TMP;} TMP = DATA11 [ 1]; / * The last round does not exchange * / data11 [1] = data11 [2]; DATA11 [2] = TMP; DATA11 [0] = MUL (DATA11 [0], Key1 [48]); DATA11 [1 ] = (char) ((DATA11 [1] KEY1 [49])% 0x10000); DATA11 [2] = (char) ((DATA11 [2] KEY1 [50])% 0x10000); DATA11 [3] = MUL (DATA11 [3], Key1 [51]); 2. Realization of decryption process