Rijndael FPGA implementations utilising look-up tables

Research output: Contribution to journalArticlepeer-review

48 Citations (Scopus)


This paper presents single-chip FPGA Rijndael algorithm implementations of the Advanced Encryption Standard (AES) algorithm, Rijndael. In particular, the designs utilise look-up tables to implement the entire Rijndael Round function. A comparison is provided between these designs and similar existing implementations. Hardware implementations of encryption algorithms prove much faster than equivalent software implementations and since there is a need to perform encryption on data in real time, speed is very important. In particular, Field Programmable Gate Arrays (FPGAs) are well suited to encryption implementations due to their flexibility and an architecture, which can be exploited to accommodate typical encryption transformations. In this paper, a Look-Up Table (LUT) methodology is introduced where complex and slow operations are replaced by simple LUTs. A LUT-based fully pipelined Rijndael implementation is described which has a pre-placement performance of 12 Gbits/sec, which is a factor 1.2 times faster than an alternative design in which look-up tables are utilised to implement only one of the Round function transformations, and 6 times faster than other previous single-chip implementations. Iterative Rijndael implementations based on the Look-Up-Table design approach are also discussed and prove faster than typical iterative implementations.
Original languageEnglish
Pages (from-to)261-275
Number of pages15
JournalJournal of VLSI signal processing systems for signal, image and video technology
Issue number3
Publication statusPublished - 01 Jul 2003

Bibliographical note

Copyright 2008 Elsevier B.V., All rights reserved.

ASJC Scopus subject areas

  • Information Systems
  • Signal Processing
  • Electrical and Electronic Engineering

Fingerprint Dive into the research topics of 'Rijndael FPGA implementations utilising look-up tables'. Together they form a unique fingerprint.

Cite this