Title: Design and Implementation of Modified Rijndael Algorithm using VHDL
1Information Engineering Technology German
University In Cairo Department of Electronics and
Electrical Engineering
A Modified Rijndael Algorithm and its
Implementation on FPGA
Ahmed Abou-Bakr Mohamed Electronics
Dept., Information Engineering Technology
German University in Cairo (GUC) Dr. Ahmed Hasan
Madian Assistant Professor, Electronics
Dept., Information Engineering Technology
German University in Cairo (GUC)
2Outline
- Introduction
- Rijndael Algorithm Implementation
- Modified Rijndael
- Implementation results
- Conclusion
Dr. Ahmed H. Madian
3Introduction
- In 1998 the DES has been expired as security
algorithm - National Institute of Standards and Technology
(NIST) initiates a process to develop an Advanced
Encryption Standard (AES) - On November 26, 2001 NIST announced that the
Rijndael encryption algorithm became the AES
3
4Rijndael
- Developed by two Belgian cryptographers where
its based on SP-Networks. - The ciphering process is divided into three
stages - Key Expansion
- Rounds
- Final Round
C. Chitu and M. Glesner, An FPGA implementation
of the AES-Rijndael in OCB/ECB modes of
operation, Microelectronics Journal 36
(2005) 139146, 21 October, 2004.
RIJNDAEL BLOCK DIAGRAM
51- Substitution
- Its a non linear operation were 128 bit data is
broken down into 16 chunks, 8 bits each, each of
which is used as the address for S-box look up
table.
61- Substitution (contd)
Substitution Simulation
72- Inverse Substitution
Inverse Substitution Simulation
83- Shift Rows
- Cyclically permutes the rows of the input data to
the left.
93- Shift Rows (contd)
Shift Rows Simulation
104- Inverse Shift Rows
- Cyclically permutes the rows of the input data to
the right.
114- Inverse Shift Rows (contd)
Inverse Shift Rows Simulation
125- Mixing Columns
S
P
- Computes a new matrix S' by multiplying two
matrices together the current matrix S by the
polynomial matrix P.
2 3 1 1
1 2 3 1
1 1 2 3
3 1 1 2
S11 S12 S13 S14
S21 S22 S23 S24
S31 S32 S33 S34
S41 S42 S43 S44
S
135- Mixing Columns (contd)
- Multiplication By 1
- The Data remains the same.
- Multiplication By 2
- The 8 bit data is left shifted by 1 bit.
- The least significant bit is replaced by 0.
- Then the most significant bit of the original
data is used for comparison - (a) If it is 0, then the left shifted data is
the result. - (b) If it is 1, then the left shifted value is
XORed with the reduction polynomial, which in our
case is 00011011, to generate the result.
145- Mixing Columns (contd)
Multiplication By 2 Simulation
- Multiplication By 3
- We simply XOR the original input with the result
of multiplication by 2.
155- Mixing Columns (contd)
Mixing Columns Simulation
167- Key Expansion
- One of the functions that ensures that a
cryptography algorithm is not vulnerable. - Generates ten matrices using the round constant
matrix. - The key expansion process is divided mainly into
three operations - Rotation
- Substitution
- Xoring
177- Key Expansion (contd)
- Rotation
- Rotates a 32 bit input one byte to the left.
- Substitution
- Similar to the one described above.
- Xoring
- Bit wise xor operation of corresponding bits.
187- Key Expansion (contd)
- Row 6 contains the results from xoring row 5 and
row 2 together. - To get row 5, row 4 is rotated, substituted and
the xored with row 1 of the round constant
matrix. Finally the output of such an operation
is then xored with row 1 to get row 5.
197- Key Expansion (contd)
- During the implementation only one matrix was
generated, due the delay that will be caused
since that each new row depends on the previous
one.
Key Expansion Simulation
208- Round Key Addition
- It simply performs a bit wise xor operation of
the expanded round key with another input.
218- Round Key Addition (contd)
Round Key Addition Simulation
22Modified Rijndael Algorithm
239- Proposed Stage Of Modified Rijndael
- Doesnt require any arithmetical or logical
operations thus routing was used during
implementation.
249- Proposed Stages for Rijndael Modification
(contd)
Mirror Simulation
Inverse Mirror Simulation
2510- Encryption / Decryption
2610- Encryption / Decryption (contd)
Encryption / Decryption FSM
2710- Encryption / Decryption (contd)
Encryption
Decryption
28Implementation results
Category Used Total Available Used
Slice Flip Flops 3658 18816 19
Slices 7148 9408 75
29Conclusion
- Modified Rijndeal algorithm has been presented
- The modification done with adding new stage
mirror stage which doesnt require bigger
hardware area. - The system has been simulated and implemented on
FPGA with total area of 75 and max. frequency of
44MHz.
30