Definition and Working System of Advanced Encryption Standard (AES)
Advance Encryption Standard (AES)
Advanced Encryption Standard (AES) is a cryptographic algorithm that can be used to secure data. AES algorithm is a symmetric ciphertext block that can encrypt (decipher) decoding information. Encryption changes data that cannot be read anymore called ciphertext; otherwise decryption is changing the ciphertext data into its original form which we know as plaintext.
AES (Advanced Encryption Standard) is a continuation of the DES (Data Encryption Standard) encryption algorithm whose validity period is considered to have ended due to security factors. Very fast computer speed is considered to be very dangerous to DES, so that on March 2, 2001, Rijndael’s new algorithm was designated as AES.
AES Algorithm Method
Rijndael’s algorithm came to be known as the Advanced Encryption Standard (AES). After undergoing several standardization processes by NIST, Rijndael was then officially adopted as the standard cryptographic algorithm on May 22, 2002. In 2006, AES was one of the most popular algorithms used in symmetric key cryptography.
AES is a block cipher algorithm using permutation and substitution systems (P-Box and S-Box) not with Feistel network as block ciphers in general. AES type is divided into 3, namely:
This type of AES grouping is based on the length of the key used. The numbers behind the word AES illustrate the length of the key used in each AES type. In addition, the thing that distinguishes each of these AES is the number of rounds used. AES-128 uses 10 rounds, AES-192 has 12 rounds, and AES-256 has 14 rounds.
An outline of the Rijndael Algorithm that operates on a 128-bit block with a 128-bit key is as follows (outside the round key generation process):
1. AddRoundKey: XOR between the initial state (plaintext) with the cipher key. This stage is also called the initial round.
2. Round of Nr – 1 time. The process carried out in each round is:
a. SubBytes: substitution bytes using the substitution table (S-box).
b. ShiftRows: shift the array state lines in wrapping.
c. MixColumns: randomize data in each state array column.
d. AddRoundKey: XOR between the current state of the round key.
3. Final round: the process for the last round:
AES has a fixed block size of 128 bits and a key size of 128, 192 or 256 bits. Based on a fixed block size, AES works on a 4×4 matrix where each matrix cell consists of 1 byte (8 bits). Whereas Rijndael itself can have a matrix size that is more than that by adding as many columns as needed.
The cipher block in this discussion will be assumed as a box. Each plaintext will be converted first into these blocks in the form of hexadecimal. Only then will the block be processed by the method that will be explained. In general the method used in encryption processing in this algorithm can be seen through the following image:
1. ADD ROUND KEY
The Add Round Key is basically combining an existing cipher text with a cipher key cipher with an XOR relationship. The chart can be seen in the picture
In the picture on the left is the cipher text and the right is the round key. XOR is done per column, namely column-1 cipher text in XOR with column-1 round key and so on.
2. SUB BYTES
The principle of Sub Bytes is to exchange the contents of the existing matrix / table with another matrix / table called the Rijndael S-Box. Below is an example of Sub Bytes and Rijndael S-Box.
In the Sub Bytes illustration above, there is a column number and row number. As mentioned earlier, each box contents of a cipher block contain hexadecimal information consisting of two digits, can be numbers, letters, or letters that are all listed in the Rijndael S-Box. The step is to take one of the contents of the matrix box, matching it with the left digit as the row and the right digit as the column. Then by knowing the columns and rows, we can retrieve a table contents from the Rijndael S-Box. The final step is to change the entire cipher block into a new block whose contents are the result of exchanging all the contents of the block with the contents of the steps mentioned earlier.
3. SHIFT ROWS
Shift Rows as the name suggests is a process that does shifts or shifts to every block / table element that is done per row. Ie the first line is not shifted, the second line is shifted by 1 byte, the third line is shifted by 2 bytes, and the fourth line is shifted by 3 bytes. The shift is seen in a block is a shift to each element to the left depending on how many bytes shifted, each shift of 1 byte means shifting left once.
4. MIX COLUMNS
What happens when Mix Column is multiplying each element of the cipher block with the matrix shown in Figure 11. The table is determined and ready to use. Multiplication is done like ordinary matrix multiplication using dot product and then multiplying both of them into a new cipher block. The illustration in Figure 12 will explain how this multiplication should be done. That way the entire set of processes that occur in AES has been explained and the next step is to explain the use of each process.
5. AES FLOW DIAGRAM
Go back to the diagram shown in Figure 6. As you can see all the processes described earlier are included in the diagram. Which means that starting from the second round, a continuous repetition is carried out with a series of Sub Bytes, Shift Rows, Mix Columns and Add Round Key processes, after which the results of that round will be used in the next round with the same method. But in the tenth round, the Mix Columns Process was not carried out, in other words the sequence of processes carried out was Sub Bytes, Shift Rows, and Add Round Key, the results of this Add Round Key were used as a cipher of AES.
By knowing all the processes that exist in AES, then we can use them in various examples of cases that arise in everyday life.
Implement Advanced Encryption Standard
AES or Rijndael algorithm as one of the important algorithms certainly has a variety of uses that have been applied or implemented in everyday life which of course requires a protection or concealment of information in the process.
One example of using AES is 7-Zip compression. One of the processes in 7-Zip is to encrypt the contents of the data using the AES-256 method. The key is generated through the Hash function. This combination makes information protected and not easily damaged, especially by viruses which are one of the biggest enemies in the world of computers and information because they are destructive of data.
Something similar is used in WinZip as one of the software used for compression. But the principle of compression is not the same as the principle of encryption. Because compression is to reduce the size of a data, Huffman code is usually used in doing this. Another example of usage is the DiskCryptor software whose use is to encrypt the entire contents of the disk / partition on a computer. The encryption method offered is to use AES-256, Twofish, or Serpent.