keyExpansion

The present design implements the key expansion for the 128-bit version of the Advanced Encryption Standard (AES).  Since the design targets a high-throughput implementation, the key expansion is implemented using pipeline register between each roundkey calculation.

General Information

FilekeyExpansion.vhd
TitleAES-128 key expansion
ProjectVLSI Book AES-128 Example
AuthorMichael Muehlberghuber (mb.nosp@m.gh@iis.ee..nosp@m.ethz.ch)
CompanyIntegrated Systems Laboratory, ETH Zurich
CopyrightCopyright © 2014 Integrated Systems Laboratory, ETH Zurich
File Created2014-10-16
Last Updated2014-10-16
PlatformSimulation=QuestaSim; Synthesis=Synopsys
StandardSystemVerilog 1800-2009

Revision Control System Information

File ID$Id: keyExpansion.sv 42 2014-10-30 12:17:09Z u59323933 $
Revision$Revision: 42 $
Local Date$Date: 2014-10-30 13:17:09 +0100 (Thu, 30 Oct 2014) $
Modified By$Author: u59323933 $

Major Revisions

2014-10-16 (v1.0)Created (mbgh)
Summary
keyExpansionThe present design implements the key expansion for the 128-bit version of the Advanced Encryption Standard (AES).
Ports
Clk_CISystem clock.
Reset_RBIAsynchronous, active-high reset.
Start_SIDetermines whether a new cipherkey has been applied or not.
Cipherkey_DIThe cipher key (master key) for the encryption.
Roundkeys_DOThe generated round keys.
Types
byteArrayTypeAn array holding 10 bytes.
subWordArrayTypeAn array holding 10 words.
expkeyArrayTypeAn array holding the 44 words, containing all of the roundkeys (including the cipherkey for the first round).
rconArrayTypeAn array holding 10 words (for the round constants).
Methods
to_logicConverts four Words into a logic [127:0].
xor_wordsAn exclusive-or (XOR) operation for two Words.

Ports

Clk_CI

System clock.

Reset_RBI

Asynchronous, active-high reset.

Start_SI

Determines whether a new cipherkey has been applied or not.

0No new cipherkey has been applied.
1New cipherkey has been applied.

Cipherkey_DI

The cipher key (master key) for the encryption.

Roundkeys_DO

The generated round keys.

Types

byteArrayType

An array holding 10 bytes.

subWordArrayType

An array holding 10 words.

expkeyArrayType

An array holding the 44 words, containing all of the roundkeys (including the cipherkey for the first round).

rconArrayType

An array holding 10 words (for the round constants).

Methods

to_logic

function logic [127:0] to_logic

Converts four Words into a logic [127:0].

xor_words

function Word xor_words

An exclusive-or (XOR) operation for two Words.

function logic [127:0] to_logic
Converts four Words into a logic [127:0].
function Word xor_words
An exclusive-or (XOR) operation for two Words.
Close