Federal Information Processing Standards Publication 197 November 26,2001 Specification for the ADVANCED ENCRYPTION STANDARD (AES) Table of Contents 1.INTRODUCTION. 5 2.DEFINITIONS........ 5 2.1 GLOSSARY OF TERMS AND ACRONYMS.... 5 2.2 ALGORITHM PARAMETERS,SYMBOLS,AND FUNCTIONS. 6 3.NOTATION AND CONVENTIONS........... 7 3.1 INPUTS AND OUTPUTS......... 7 3.2 BYTES… 8 3.3 ARRAYS OF BYTES… 8 3.4 THE STATE....... 9 3.5 THE STATE AS AN ARRAY OF COLUMNS... 10 4.MATHEMATICAL PRELIMINARIES..... .10 4.1 ADDITIO0N… 10 4.2 MULTIPLICATION.… 10 4.2.1 Multiplication by 11 4.3 POLYNOMIALS WITH COEFFICIENTS IN GF(2). 12 5.ALGORITHM SPECIFICATION.................. 13 5.1 CIPHER.. 14 5.1.1 SubBytes (Transformation............... 15 5.1.2 ShiftRows()Transformation..... 17 5.1.3 Mixcolumns (Transformation............ 17 5.1.4 AddRoundKey (Transformation... 18 5.2 KEY EXPANSION 19 5.3 INVERSE CIPHER. 20Federal Information Processing Standards Publication 197 November 26, 2001 Specification for the ADVANCED ENCRYPTION STANDARD (AES) Table of Contents 1. INTRODUCTION............................................................................................................................................. 5 2. DEFINITIONS .................................................................................................................................................. 5 2.1 GLOSSARY OF TERMS AND ACRONYMS........................................................................................................... 5 2.2 ALGORITHM PARAMETERS, SYMBOLS, AND FUNCTIONS................................................................................. 6 3. NOTATION AND CONVENTIONS............................................................................................................... 7 3.1 INPUTS AND OUTPUTS ..................................................................................................................................... 7 3.2 BYTES ............................................................................................................................................................. 8 3.3 ARRAYS OF BYTES .......................................................................................................................................... 8 3.4 THE STATE ...................................................................................................................................................... 9 3.5 THE STATE AS AN ARRAY OF COLUMNS........................................................................................................ 10 4. MATHEMATICAL PRELIMINARIES....................................................................................................... 10 4.1 ADDITION...................................................................................................................................................... 10 4.2 MULTIPLICATION .......................................................................................................................................... 10 4.2.1 Multiplication by x .............................................................................................................................. 11 4.3 POLYNOMIALS WITH COEFFICIENTS IN GF(28 ) .............................................................................................. 12 5. ALGORITHM SPECIFICATION................................................................................................................. 13 5.1 CIPHER.......................................................................................................................................................... 14 5.1.1 SubBytes()Transformation............................................................................................................ 15 5.1.2 ShiftRows() Transformation ........................................................................................................ 17 5.1.3 MixColumns() Transformation...................................................................................................... 17 5.1.4 AddRoundKey() Transformation .................................................................................................. 18 5.2 KEY EXPANSION ........................................................................................................................................... 19 5.3 INVERSE CIPHER............................................................................................................................................ 20