• How the algorithm relates to specific business goals In the paper, you should thoroughly describe the algorithm and its uses, and relating it to specific business goals is also important.

The minimum word count for this assignment is 1500 words, but the quality of the paper is more critical than the page count. Add citations and references for any sources used in the paper. Citation Please include this book.

I`ll send the contents via email. Modern Cryptography Applied Mathematics for Encryption and Information Security by William Easttom ISBN 978-3-030-63114-7e-ISBN 978-3-030-63115-4

**William Easttom**

# Modern Cryptography

## Applied Mathematics for Encryption and Information Security

ISBN 978-3-030-63114-7e-ISBN 978-3-030-63115-4

## AES

Advanced Encryption Standard was

chosen as a replacement for DES. AES is also known as Rijndael block cipher. It was officially designated as a replacement for DES in 2001 after a 5-year process involving 15 competing algorithms. AES is designated as FIPS 197. FIPS is an acronym for Federal Information Processing Standard. Other algorithms that did not win that competition include such well-known algorithms as Twofish. The importance of AES cannot be overstated. It is widely used around the world and is perhaps the most widely used symmetric cipher. Of all the algorithms in this chapter, AES is the one you should give the most attention too.

AES can have three different key sizes, they are: 128, 192, or 256 bits. The three different implementations of AES are referred to as AES 128, AES 192, and AES 256. The block size, however, is always 128-bit. It should be noted that the original Rijndael cipher allowed for variable block and key sizes in 32-bit increments (Daemen and Rijmen **1998**). It should be noted that the algorithm, the Rijndael algorithm, supports other key and block sizes. Rijndael supports key and block sizes of 128, 160, 192, 224, and 256 bit. However, the AES standard specifies a block size of only 128 bits and key sizes of 128, 192, and 256 bit.

This algorithm was developed by two Belgian cryptographers, Joan Daemen and Vincent Rijmen. John Daeman is a Belgian cryptographer who has worked extensively on the cryptanalysis of block ciphers, stream ciphers, and cryptographic hash functions. Vincent Rijmen is also a Belgian cryptographer who has helped design the WHIRLPOOL cryptographic hash (which we will study in Chap. **9**) as well as working on ciphers such as KHAZAD, Square, and SHARK.

Rijndael uses a substitution–permutation matrix rather than a Feistel network. The Rijndael cipher works by first putting the 128-bit block of plain text into a 4-byte X 4-byte matrix

(Daemen and Rijmen **1998**). This matrix is termed the state and will change as the algorithm proceeds through its steps. Thus, the first step is to convert the plain text block into binary, then put it into a matrix as shown in Fig. **7.1**.

*Fig. 7.1*

The Rijndael matrix

### Rijndael Steps

The algorithm consists of a few relatively simple steps that are used during various rounds. The steps are described here:

*AddRoundKey*—each byte of the state is combined with the round key using bitwise XOR. This is where Rijndael applies the round key generated from the key schedule.
*SubBytes*—a non-linear substitution step where each byte is replaced with another according to a lookup table. This is where the contents of the matrix are put through the s-boxes

Each of the s-boxes is 8 bits.

**ShiftRows**—a transposition step where each row of the state is shifted cyclically a certain number of steps. In this step the first row is left unchanged. Every byte in the second row is shifted one byte to the left (with the far left wrapping around). Every byte of the third row is shifted two to the left, and every byte of the fourth row is shifted three to the left (again with wrapping around. This is shown in Fig. **7.2**.

Notice that in Fig. **7.2** the bytes are simply labeled by their row then a letter, for example, 1a, 1b, 1c, 1d.

**MixColumns**—a mixing operation which operates on the columns of the state, combining the four bytes in each column. In the MixColumns step, each column of the state is multiplied with a fixed polynomial. Each column in the state (remember the matrix we are working with) is treated as a polynomial within the Galois Field (28). The result is multiplied with a fixed polynomial **c**(**x**) = 3**x**3 + **x**2 + **x** + 2 modulo **x**4 + 1.

The MixColumns step can also be viewed as a multiplication by the particular matrix in the finite field GF(28) (Daemen and Rijmen **1999**). This is often shown as matrix multiplication, as you see in Fig. **7.3**.

Essentially, you take the four bytes and multiply them by the matrix, yielding a new set of four bytes.

### Rijndael Outline

With the aforementioned steps in mind, this is how those steps are executed in the Rijndael cipher. For 128-bit keys, there are 10 rounds. For 192-bit keys there are 12 rounds. For 256-bit keys there are 14 rounds.

*Key Expansion*—The first step is that the round keys are derived from the cipher key using Rijndael’s key schedule. The key schedule is described in more detail later in this chapter.

*Initial Round*

This initial round will only execute the AddRoundKey step. This is simply XOR’ing with the round key. This initial round is executed once, then the subsequent rounds will be executed.

*Rounds*

This phase of the algorithm executes several steps, in the

- SubBytes.
- ShiftRows.
- MixColumns.
- AddRoundKey.

#### Final Round

This round has everything the rounds phase has, except no mix columns.

- SubBytes.
- ShiftRows.
- AddRoundKey.

In the AddRoundKey step, the subkey is xord with the state. For each round, a subkey is derived from the main key using Rijndael’s key schedule; each subkey is the same size as the state.

### Rijndael S-Box

The s-box of Rijndael is fascinating to study. We will look more deeply into them in Chap. 8, S-box design. However, a brief

description is needed here. The s-box is generated by determining the multiplicative inverse for a given number in GF(28) = GF(2)[**x**]/(**x**8 + **x**4 + **x**3 + **x** + 1), Rijndael’s finite field (zero, which has no inverse, is set to zero). In other words, the s-boxes are based on a mathematical formula. In fact, there are variations of the standard Rijndael s-box. It will still operate as any other s-box, taking in bits as input and substituting it for some other bits. You can see the standard Rijndael s-box in Fig. **7.4**.