Strongest AES with S-Boxes Bank and Dynamic Key MDS Matrix (SDK-AES)
Total Page:16
File Type:pdf, Size:1020Kb
International Journal of Computer and Communication Engineering, Vol. 2, No. 4, July 2013 Strongest AES with S-Boxes Bank and Dynamic Key MDS Matrix (SDK-AES) Fatma Ahmed and Dalia Elkamchouchi the State by cyclically shifting the last three rows of the State Abstract—With computers, security is only a matter of by different offsets to provide inter-column diffusion. software. The Internet has made computer security much more Mix columns: Transformation in the Cipher that takes all difficult than it used to be. In this paper, we introduce modified AES with S-boxes bank to be acted like rotor mechanism and of the columns of the State and mixes their data dynamic key MDS matrix (SDK-AES). In this paper we try to (independently of one another) to produce new columns make AES key dependent and resist the frequency attack. The which provides inter-Byte diffusion. SDK-AES algorithm is compared with AES and gives excellent Add round key: Transformation in the Cipher and Inverse results from the viewpoint of the security characteristics and Cipher in which a RoundKey is added to the State using an the statistics of the ciphertext. Also, we apply the randomness tests to the SDK-AES algorithm and the results shown that the XOR operation which provides confusion. new design passes all tests which proven its security. This paper introduces a new modification on AES algorithm to exhibit a substantial avalanche effect, to ensure Index Terms—Advanced encryption algorithm (AES), that no trapdoor is present in the cipher, to make the key S-boxes bank, rotor, frequency analysis, inverse power function, schedule so strong that the knowledge of one round key does MDS. not help in finding the cipher key or other round keys, and to I. INTRODUCTION resist the frequency analysis on ciphertext. B. The MDS Matrix A. AES Maximum distance separable matrixes (MDS) are widely AES is short for Advanced Encryption Standard and is a used in design of block ciphers and hash functions etc. Based United States encryption standard defined in Federal on the character of its differential branch number, MDS Information Processing Standard (FIPS) 192, published in matrix is widely used and the arithmetic using MDS matrixes November 2001 [1]. It was approved as a federal standard in can effective against differential cryptanalysis and linear May 2002. AES is the most recent of the four current cryptanalysis. A linear code over Galois field GF (2p ) is algorithms ratified for federal us in the United States. Rijndael submitted by Joan Daemen and Vincent Rijmen, is a denoted as an (,,)n k d code, where n is the symbol length symmetric key, iterated block cipher based on the arithmetic of the encoded message, k is the symbol length of the in the Galois Field GF (28 ) . AES Input and Output consists of original message, and d is the minimal symbol distance 128 bit sequences. The cipher key is 128, 192, or 256 bits. between any two encoded messages[3]. Byte is the unit of processing. Input blocks are 16 bytes each. Definition 1: Let K be a finite field and p and q be two AES operations are Conducted on a two dimensional array of integers. Let x M x be a mapping from K p to bytes called the state. The state consists of four rows of bytes q K defined by the qp matrix M . We say that it is a linear each containing N bytes where N is the block length divided b b multipermutation (or an MDS matrix) if the set of all pairs by 32. Rijndael round function acts on a state times, where N r (,)x M x is an MDS code, i.e. a linear code of is equal to the number of rounds that can be 10, 12 or 14 N r dimension p , length pq and minimal distance q 1 [4]. rounds, depending on N , where is equal to the number of k N k The following theorem [5] will depict the character of 32-bit words comprising the Cipher Key [2]. Rijndael round MDS matrix from the angle of a subdeterminant. is consists of 4 transformations: Theorem 1: A matrix is an MDS matrix if and only if Sub bytes: Transformation in the Cipher that processes every sub-matrix is non-singular. the State using a nonlinear byte substitution table (S-box) that MDS matrices are constructed by two types of matrices: operates on each of the State bytes independently which circulant and Hadamard matrices. provides nonlinearity and confusion. Circulant matrices: Given k elements, ....., , a Shift rows: Transformation in the Cipher that processes 0 1k 1 circulant matrix M is constructed with each entry M . Manuscript received January 11, 2013; revised April 12, 2013. i, j ( i j )mod k Fatma Ahmed is with the Dept. of Electrical Engineering, Alexandria Hadamard matrices: Given k elements, ......., , Higher Institute of Engineering and Technology (AIET) Alexandria, Egypt 0 1k 1 (e-mail: [email protected]). a Hadamard matrix M is constructed with each entry Dalia Elkamchouchi is with the Dept of Electrical Engineering, Faculty of M . Engineering, Alexandria University Alexandria, Egypt (e-mail: i,() j i j [email protected]). DOI: 10.7763/IJCCE.2013.V2.242 530 International Journal of Computer and Communication Engineering, Vol. 2, No. 4, July 2013 II. SDK-AES operation will be repeated every 256 bytes. In our system, SDK-AES is block cipher; it can encrypt blocks the second S-box will be rotated by irregular step. This ofplaintext of length 128 byte into blocks of the same length. rotation consists of two steps: the first step is rotating the The key length can be 128, 192, or 256 bytes. The total second S-box in the tenth round after mapping each byte by number of rounds depends on the key length that can be 10, odd numbers (1, 3, 5 and 7). First we rotate the second S-box 12 or 14 respectively. We assume a key length of 128 byte, by one byte until we reach 256 bytes then we rotate it by three which is likely to be the one most commonly implemented. bytes for the next 256 input bytes. Then we rotate it by five The input to the encryption and decryption algorithms is bytes for the next 256 input bytes. Finally we rotate it by block of length 128 byte. This block is copied into the 16×8 seven bytes until we have 256 input bytes. At the second step matrix of bytes, which is modified at each stage of encryption we rotate the second S-box after the tenth round is completed or decryption. After the final stage, State is copied to an by one byte. These two steps guarantee that the S-box rotates output matrix. Similarly the 128 byte key is depicted as 16×8 in irregular manner because after encrypt each block of matrix of bytes. This key is then expanded into an array of plaintext the second S-box will be in different arrangement so key schedule words; each word is four bytes and the total key even we have repeated data, the output will be totally schedule is 32×11 words. The encryption and decryption different. The basic idea is make the S-box like rotor process of SDK-AES resembles that of AES. The Fig. 1 cryptosystem with maintain the security and the simple shows the overall structure of SDK-AES. decryption. In decryption algorithm we don't rotate the S-boxes or even scanned for output like rotor, we only subtract the output from the inverse-second S-box with the number of times that second S-box bytes rotated. We rotate the second S-box only and keep the first one stationary because the second one only known to sender and receiver. B. ShiftRows Transformation The input data is arranged in sixteen rows and eight columns. The forward shift row transformation is performed in following way: The first and ninth row of State is not altered. For the second row, a 1-byte circular left shift is performed. For the third row, a 2-byte circular left shift is performed. And so on until the eighth row, a 7-byte circular left shift is performed [7]. Then we circular left shift the tenth row by one byte, the eleventh row by two bytes and so on until the sixteen row, a seven-byte circular left shift is performed. The inverse shift row transformation performs the circular shifts in the opposite direction for each of the fourteenth rows. (a) Encryption structure (b) Decryption structure C. The New Efficient MDS Matrix Fig. 1. SDK-AES algorithm In SDK-AES, we design new dynamic MDS matrixes A. S-Boxes Bank which depend on the user key. The number of matrixes is SDK-AES is a technique seeking to make AES key eight each one depends on the user key. In encryption process depending. In this paper, key dependent S-boxes bank act we only use one matrix from eight for every data block. The like rotor mechanism [6] is introduced. The S-boxes bank choice of this one depends on the subkeys and plaintext. The contains two S-boxes, the first S-box is one used for AES new matrixes are self inverse so that same matrix can be used algorithm. In order to maintain the structure of cipher to be for decryption algorithm, which decreases the complexity of simple, the second S-box constructs from shifted the first system. The new MDS matrix is 44 Circulant matrix.