Development AES Algorithm to Encryption Images and Sounds Files

In this research, the Advanced Encryption Standard (AES) algorithm was developed, the AES is used for encryption and decryption the images and sounds files by expanding the block size of data to reach the maximum size of 512 bit instead 128 bit/cycle, by using the Thread API techniques, which is a break off CPU working for increasing times taken the inline encrypt or decrypt operations. The data entranced from the file by size 512 bits per cycle, is converted to one dimension matrix by block size which is 2048 bit. The method considered 4-lines using 4 AES, which in every line, one AES is working in a distinct system. Transmission and reception of encoded files could be performed by using Email programs provided that the sent file does not include the encoding key for the purpose of protecting encoded files against unauthorized access. In addition to the use of the histogram in this research by comparing the block size of images or sounds files through the encrypting or decrypting system by scanning bit to bit operations. The implement algorithm with a sample of histogram was used to ensure that the data is not changed throughout this study. Mohammed C.Y. Al-Zubaidy 114


Introduction to Cryptography
Cryptography is the science of secret codes, enabling the confidentiality of communication through an insecure channel that is protected against unauthorized parties, by preventing unauthorized alteration of use [Vaudenay, 2005]. Generally speaking, it uses a cryptographic system to transform a plaintext into a cipher-text using most of the time a key, figure(1), one has to notice that there exists certain ciphers that do not need a key at all [Steffen, 2005]. A simple Caesar-cipher that obscures text by replacing each letter with the letter thirteen placed down in the alphabet, since our alphabet has 26 characters, it is enough to encrypt the ciphertext again to retrieve the original message [Vaudenay, 2005]. Briefly, that there is securing public-key ciphers, like the famous and very secures, is commonly called Rivest Shamir Adleman (RSA) algorithm that uses a public key to encrypt a message and a secret key to decrypt it, cryptography is a very important domain in computer science with many applications, where the most famous example of cryptography is certainly the Enigma machine in World War II, figure(2), the legendary cipher machine is used by the German Third Reich to encrypt their messages, whose security breach ultimately led to the defeat of their submarine force, cryptography which has long been of interest to intelligence gathering agencies and law enforcement agencies because of its facilitation of privacy and the diminution of privacy attendant on its prohibition, cryptography is also of considerable interest to civil rights supporters, accordingly, there has been a history of controversial legal issues surrounding cryptography; especially since the advent of inexpensive computers has made possible widespread access to high quality cryptography [Haan, 2007] [Steffen, 2005]. In some countries, even the domestic use of cryptography is, or has been, restricted until 1999, France significantly restricted the use of cryptography domestically, in China, a license is still required to use cryptography, and many countries have tight restrictions on the use of cryptography, among the more restrictive are laws in Belarus, Kazakhstan, Mongolia, Pakistan, Russia, Singapore, Tunisia, Venezuela, and Vietnam [Haan, 2007].

Introduction to Advanced Encryption Standard
Advanced Encryption Standard(AES) is a formal encryption method adopted by the National Institute of Standards and Technology of the US Government, and is accepted worldwide [Townsend, 2009]. This paper introduces AES and key management, and discusses some important topics related to a good data security strategy. The AES algorithm is a symmetric block cipher that can encrypt encipher and decrypt decipher, where the information encrypted converts data to an unintelligible form called ciphertext; decrypting the ciphertext converts the data back into its original form called plaintext [US Federal Information, 2001]. It uses 128, 192 and 256 bits block size with a single key as a part of the encryption process are 128, 192 or 256 bits, the term 128-bit encryption refers to the use of a 128bit encryption key [Roche, 2007]. In AES, both the encryption and the decryption are performed by using the same key, this is called a symmetric encryption algorithm, where the encryption algorithms that use two different keys, a public and a private key, are called asymmetric encryption algorithms [Townsend, 2009]. The standard AES, with maximum sizes 256 bit / cycle is founded as a result of the standard algorithm software in this study, the result was very low in the processed of this data. Finally, increased with low spend a high physical memory in the system used which is more than 4096 bits/cycle. The stands read/write operations which are used in this software, they involve the algorithm in pipe line processing, data processed in the 4 lines that selected in this algorithm, every line takes 64 bits per cycle, with a result of 512 bit/cycle, it still uses the key size 256 bits in this involved, but that means, it's possible to increase the key size in the same way. On the other hand, the key may increase as data processed, AES was developed to enable to uses 512 bits key size, in the center ProtectStar™ Research, they modified the key size up to 512 and the data processed up to max 512 bit / cycle, where the rounded key is 24 cycle [Wikpedia, 2008]. As data increase the time's process decreases times, this means that the data will take a large data to perform a low time processing, and to encrypt files that take data size 1GB, these mixed times will be more sensitive to reach a few minutes sort data a low break off CPU and the highest process called the Threads API Techniques, figure(3).

The Aim of the Study
In this study, the AES algorithm was developed to encrypt and decrypt the images and sounds files by using Visual C++ v.6 language, where the software package increases data decrypt/encrypt to reach this normal level and makes processed large data in a very limited time with a very low used physical memory, figure(4). This software works on a limited physical memory, it works properly in less than 32 MB to have the action been performed; the data have been selected in very low stores bytes, while the program processed in mode is either encrypted or decrypted. There are many areas where AES is now in commercial use, including offerings from Checkpoint, Cisco, and Symantec. AES is now commonly found in network appliance, also the voice over IP vendors are using AES for telephone security, and AES has even been added to common file compression programs, such as WinZip, WinRar and 7-Zip. Where W1 refers to the highest level of numbers recorded as a red line by using the algorithm study(4 AES) with non threads applied, the times to cipher are still long too. W2 refers to the use of one AES standard without Threads and noted here the level is lower than the red level, but this state is still abnormal operation as a yellow line showed, also the times to cipher are still long. But the W3 as a green line showed in this figure as the best level reached to the highest speed, and shortest time elapsed showed by using 4 AES with threads applied to.

Review to the Other Literatures
The AES is used by many researchers for encrypt plain text only, it was limited to encrypt a large size files, and it takes a long time to encrypt the large plain text files, in this case on its block data is 64 per cycle. The necessary order developed this algorithm by ProtectStar™ [Wikpedia, 2008] . The Researcher patrick Townsend is succeeded in increasing the block size from 64 to 512 per cycle, and increasing the rounds from 12 to 24 by different methods of using keys with the AES, these different methods are called "modes of operation", the National Institute of Standards and Technology (NIST) defines six modes of operation that can be used with AES: Electronic Code Book(ECB), Cipher Block Chaining(CBC), Cipher Feed Back (CFB), Output Feed Back(OFB), Galois Counter Mode(GCM) and Counter (CTR) where CTR is default mode in AES algorithm [Townsend, 2009]. Some researchers changed the name of this algorithm from AES to new name "ProtectStar Extended AES Algorithm", the results increase the time's line process with a high large file length, for example, 1GB takes a few minutes to complete the encryption, unlike the standard AES which take a longer time if compared with the former [Wikpedia, 2008].

Description of the AES Algorithm
The original name of the AES algorithm was Rijndael, it was chosen as the algorithm for the Advanced Encryption Standard(AES) in 2001 by Joan Daemen and Vincent Rijmen, Rijndael, it consists of a number of rounds, each round makes a number of transformations on a state, and uses a round key derived from the encryption key, the number of rounds depends on the block and key size, an encryption of a block starts with a transformation AddRoundKey, this is followed by an odd number of regular rounds, and ends with a special final round, the reason of the final round is different which has nothing to do with security, but was done to make it possible to reuse encryption code to do the decryption [Daemen and Rijmen, 1998]. All the transformations used are invertible, which make decryption possible, Rijndael operates on a state that is initialized with a plaintext block, and after encryption this contains the cipher-text, the state can be pictured as an rectangular array of bytes, it consists of four rows and a number of columns defined by the block size in bytes divided by four, a block size of 128 bit would require a state of four rows and(128/8=4*4) columns as shown in figure (5).

5-2 SubBytes:
SubBytes are a substitution of each byte in the block independent of the position in the state, figure (7), this is an S-box as shown in table (1), where the coordinates(x,y) are hexadecimal values that it is a bisection on all possible byte values and therefore invertible, the inverse S-box can easily be constructed from the S-box, this is a nonlinear transformation, the S-box used is proved to be optimal with regards to nonlinearity [Boesgaard, 2003] [Alkharobi, 2007]. The S-box values are based on the arithmetic complex equations shown in the source [Daemen and Rijmen, 2001].

5-3 ShiftRows:
ShiftRows is a cyclic shift of the bytes in the rows of the state and is clearly invertible by a shift in the opposite direction by the same amount, figure (8).

Figure(8):
The operates on the rows of the state; it cyclically shifts the bytes in each row by a certain offset [Alkharobi, 2007] .

5-4 MixColumns:
Each column in the state is considered a polynomial with the byte values as coefficients, the columns are transformed independently by multiplication with a special polynomial c(x), where c(x) is a state illustrated in figure (5), that is used to reverse the multiplication by c(x) as shown in figure (9).

Description of the Software System and Display Packages
The software has a main window with control buttons to apply the proposed algorithm to make the program works easily and understandably, as illustrated in figure (11). Each number in the figure(11) above gives a special control of program software as the following functions:

Display the Software System Results
The proposed algorithm is applied to the samples in figures(12, 13, 14 and 15). Each figure contains the file acquisition method and the steps operation. Where, Chart A shows the test input(original) image or sound file. Chart B shows the test input file is already entered to the program system. Chart C shows the histogram of the number of bits which contains the test input file. Chart D shows the histogram after encryption mode. Chart E shows the histogram as the normal state and the test file returns to its original bits after decryption mode in program system.

Conclusions
1. When a proposed algorithm had been applied on the earlier computers which have 128 MB physical memory, it has been noted that it can work under any circumstances, but in more physical memory the times and the processing will be increased so far as the file size increases. 2. The results showing the encryption's histogram which determined the difference(in viewing) on both the original and decryption histograms. 3. A comparison between the original and decrypted files kept all data with no changes in any bits in both files, the histogram showing the result has no change too, this means that the algorithm was successful in continuing the increase of the block's matrix that was taken as a test . 4. The proposed algorithm failed when applied to file size less than block size(64 byte), because one block data was used while the remaining three blocks data are not used, as illustrated in figure(3). 5. On pressing stop button 5 in the figure(11) during the processing operation, the proposed algorithm will fail to retrieve the data of the tested file, that means the data will be lost.

Suggestions
1. Depending this algorithm in most physical protected media files to increase the protected use in different keys generator. 2. It still needs more work to perform full actions to this proposed method, specifically when the block size is 512 bit/cycle, the hope is to perform at least 512 bit/three cycles. 3. Give more possibility to increase more than 4 AES, for example, using 16 AES or 32 AES algorithms, working under any circumstances, this performs to decrease the time in operations used. 4. Hoping to develop this algorithm to encrypt all multimedia files, such as the moves. 5. Hoping to develop this algorithm for encrypt the compression and executable files. 6. Developing proposed algorithm in a way that it would be possible to receive or send the encoded file to the target computer; and the encoding key should be included in a certain location within the encoded file matrix, also the location of the key will be determined by both receiver and transmitter.