You are on page 1of 6

Question 01.

1. Elaborate the general properties of the Advanced Encryption Standard (AES)


crypto scheme.
The general properties of the Advanced Encryption Standard (AES) are listed below:
 For its implementation, it employs the Block cipher method.
 It performs 128-bit group encryption with key lengths of 128, 192, and 256
bits.
 Its symmetric algorithm needs just one encryption and decryption key.
 It secures data for 20 to 30 years.
 It is generally accessible.

Question 02.

2. Explain the sub-key generation algorithm for the AES-128 crypto scheme.
The stages for the AES-128 crypto scheme's subkey generation algorithm are
outlined below:
1. The block size for the AES-128 crypto scheme will be 128 bits and the cipher
will process 128 bits of input data at a time.
2. Round key generation- A key scheduling technique will be used to generate
all round keys from the key. As a result, the 128-bit key will be used to
produce ten 128-bit subkeys.
3. The byte of each subkey will be written column-wise into a 4 by 4 matrix
during encryption. And the four processes indicated below will be included in
each cycle of encryption.
4. Substitution is referred to as SubBytes. The S-Box lookup table will be used in
this to replace each byte with a different byte.
5. ShiftRows- will perform the shifting of each row of the 4✕4 matrices a fixed
number of times.
6. Basically, the matrix multiplication is made up of MixColumns. Each column
will be multiplied by a certain matrix, changing the order in which each byte in
the column is located.
7. Round key addition: The preceding phase's output will be XORed with the
relevant round key in this step.
Question 03.

3. What is the use of RCON table during the sub-key formation?

RCON is a lookup table that is used in the key expansion process of the AES
(Advanced Encryption Standard) algorithm. It is an 8-bit table that consists of a
predetermined set of values that are used to modify the key during the key
expansion process.

In the AES algorithm, the key expansion process involves generating a set of
subkeys from the original key that are used to encrypt and decrypt the data. The
subkeys are generated by applying a series of operations, including XOR and
rotation, to the original key. The RCON table is used in the key expansion process to
provide a set of values that are used to modify the original key and generate the
subkeys.

The RCON table is an important part of the AES algorithm because it helps to
ensure that the generated subkeys are unique and secure. The values in the RCON
table are chosen in such a way that it is difficult for an attacker to determine the
original key or the subkeys based on the encrypted data. As a result, the use of the
RCON table helps to make the AES algorithm resistant to cryptographic attacks.

Question 04.

4. Explain the use of input-arrays.


Input arrays are data structures that are used to store and manipulate a set of input
values in a program. They are commonly used in programming languages to
represent a collection of values that are passed as input to a function or algorithm.
Input arrays can be used in a variety of contexts, such as sorting algorithms,
searching algorithms, and data processing algorithms. In these contexts, input arrays
are used to store the data that the algorithm operates on and to facilitate the
manipulation of that data.
Input arrays are often used in conjunction with loops or iteration constructs, which
allow the algorithm to process the values in the array one by one. For example, a
sorting algorithm might use an input array to store a list of numbers, and then use a
loop to iterate through the array, comparing each number to the others in the array
and swapping them if necessary to put them in order.

Input arrays can be of various data types, such as integers, floating-point numbers,
characters, or complex data structures. They can also be of different sizes,
depending on the needs of the algorithm and the amount of data to be processed.
Overall, the use of input arrays is an important part of many algorithms and
programming tasks, as they provide a way to store and manipulate large amounts of
data in a structured and efficient manner.

Question 05.

5. Explain the use of state-arrays.


State arrays are data structures that are used to store and manipulate the internal
state of a program or algorithm. They are commonly used in programming languages
to represent a collection of values that are used to keep track of the progress of an
algorithm or to store intermediate results.
State arrays are often used in algorithms that perform complex or iterative
operations, where the state of the algorithm needs to be maintained across multiple
iterations or steps. For example, a state array might be used to store the current
position of an iteration, the result of an intermediate calculation, or the status of a
conditional branch.
State arrays can be of various data types, such as integers, floating-point numbers,
characters, or complex data structures. They can also be of different sizes,
depending on the needs of the algorithm and the complexity of the internal state.
In addition to storing the state of an algorithm, state arrays can also be used to
communicate information between different parts of a program or between different
algorithms. For example, a state array might be used to pass information from one
function to another, or from a parent algorithm to a child algorithm.
Overall, the use of state arrays is an important part of many algorithms and
programming tasks, as they provide a way to store and manipulate the internal state
of a program or algorithm in a structured and efficient manner.

6. Explain the use of output-arrays.


Output arrays are data structures that are used to store and manipulate the results of
a program or algorithm. They are commonly used in programming languages to
represent a collection of values that are generated by a function or algorithm and are
returned to the caller or used for further processing.
Output arrays are often used in algorithms that perform complex or iterative
operations, where the results of the algorithm need to be collected and stored for
later use. For example, an output array might be used to store the results of a search
algorithm, the sorted elements of a list, or the transformed values of an input array.
Output arrays can be of various data types, such as integers, floating-point numbers,
characters, or complex data structures. They can also be of different sizes,
depending on the needs of the algorithm and the amount of data to be generated
In addition to storing the results of an algorithm, output arrays can also be used to
communicate information between different parts of a program or between different
algorithms. For example, an output array might be used to pass information from one
function to another, or from a child algorithm to a parent algorithm.
Overall, the use of output arrays is an important part of many algorithms and
programming tasks, as they provide a way to store and manipulate the results of a
program or algorithm in a structured and efficient manner.

7. What happens throughout the ByteSub step in Aes-128?

In the ByteSub step of the AES-128 (Advanced Encryption Standard) algorithm,


each byte of the state array is transformed using a substitution table called the S-
box. The S-box is a fixed, pre-computed table that consists of a set of values that are
used to substitute the original bytes in the state array.

During the ByteSub step, the value of each byte in the state array is used as an
index into the S-box, and the corresponding value in the S-box is used to replace the
original byte. This process is repeated for each byte in the state array, resulting in a
new, transformed state array.

The purpose of the ByteSub step is to increase the complexity and security of the
AES algorithm by adding non-linearity to the encryption process. The S-box is
designed in such a way that it is difficult for an attacker to predict the transformed
values based on the original values, making it harder to recover the plaintext from
the encrypted data.

The Byte Sub step is typically followed by the Shift Row step, in which the rows of
the transformed state array are shifted by a predetermined number of positions. The
Shift Row step is used to further increase the complexity and security of the AES
algorithm.

8. Explain the processes involved in the Shift Rows step in AES-128.

In the ShiftRow step of the AES-128 (Advanced Encryption Standard) algorithm, the
rows of the state array are shifted by a predetermined number of positions. This step
is used to further increase the complexity and security of the AES algorithm.

The ShiftRow step involves shifting the second row of the state array one position to
the left, the third row two positions to the left, and the fourth row three positions to
the left. The first row is not shifted at all.

The ShiftRow step is performed on the transformed state array obtained from the
ByteSub step, which is a non-linear substitution of the original bytes in the state
array using the S-box. The ShiftRow step is used to further increase the non-linearity
of the AES algorithm, making it more resistant to cryptographic attacks.

After the ShiftRow step, the state array is transformed again using a linear
transformation called the MixColumn step. This step is used to further increase the
complexity and security of the AES algorithm by mixing the columns of the state
array in a predetermined way.

Overall, the ShiftRow step is an important part of the AES-128 algorithm, as it helps
to increase the complexity and security of the algorithm by adding non-linearity to the
encryption process.

9. Elaborate the involved ideas in the Mix Columns step in AES-128.

The Mix Column step in the AES-128(Advanced Encryption Standard) algorithm is a


linear transformation that is used to mix the columns of the state array in a
predetermined way. This step is used to further increase the complexity and security
of the AES algorithm.
In the Mix Column step, each column of the state array is treated as a polynomial
over the field GF(2^8) and multiplied by a fixed polynomial c(x) using polynomial
multiplication. The resulting polynomial is then reduced modulo x^4 + 1, which is a
primitive polynomial in GF(2^8).

The fixed polynomial c(x) is chosen in such a way that it has good diffusion
properties, which means that it spreads the influence of each input bit to many output
bits. This helps to increase the complexity and security of the AES algorithm by
making it more difficult for an attacker to determine the original values from the
transformed values.

After the Mix Column step, the state array is transformed again using the Add Round
Key step, which XORs the state array with a round key. The round key is a subkey
that is generated from the original key using the key expansion process.

Overall, the Mix Column step is an important part of the AES-128 algorithm, as it
helps to increase the complexity and security of the algorithm by adding a linear
transformation to the encryption process.

You might also like