The block cipher Rijndael
Fourth conference on the Advanced Encryption Standard (AES4)
"Vincent lives now in
Graz. Updates to the information on this page are
The Rijndael book is out !
We finally finished this book. Besides
our algorithm, the book also contains a description of all the
implementation tricks we know about, a thorough explanation of our design
strategy and the underlying motivations, an overview of the cryptanalytic
results on reduced versions of Rijndael, an overview of related ciphers, and
some more. The book also contains some previously unpublished results on extending
Matsui's linear cryptanalysis to ciphers defined in GF(256).
It's published by Springer-Verlag, ISBN 3-540-42580-2.
Rijndael becomes AES
You probably know it already, maybe it's the reason why you're here at this page.
We happily refer you to the Rijndael fan page
for more news.
CaStaR - Personality of the year 2000
Because of Rijndael's selection as AES,
we have been selected as (Flemish) personalities of the year 2000.
As a consequence, we were rewarded with the piece of art you see on the
The coloured specks on the skull and the bones are in fact the shields
of a rare beetle.
Some people say it symbolizes the DES (bird) being replaced by the
AES (skull). Others think that the Flemish watch too much MTV.
Anyway, if you're interested in obtaining (buying) this remarkable
piece of art, you
can always contact us.
What is Rijndael ?
Rijndael is a block cipher, designed by
and Vincent Rijmen as a candidate
algorithm for the
The cipher has a variable block length and key length. We currently
specified how to use keys with a length of 128, 192, or 256 bits
to encrypt blocks with al length of 128, 192 or 256 bits (all nine
combinations of key length and block length are possible).
Both block length and key length can be extended very easily to multiples
of 32 bits.
Rijndael can be implemented very efficiently on a wide range of
processors and in hardware.
The design of Rijndael was strongly influenced by the design
of the block cipher Square .
Besides the documents available from this web site, a number
of (technical) Rijndael-related papers have been published.
We give here an overview.
If you are looking for a Rijndael
reference, then please use one of these.
- J. Daemen, V. Rijmen, ``The Block Cipher Rijndael,''
Smart Card Research and Applications, LNCS 1820, J.-J. Quisquater
and B. Schneier, Eds., Springer-Verlag, 2000, pp. 277-284.
- J. Daemen and V. Rijmen, ``Rijndael, the advanced encryption standard,''
Dr. Dobb's Journal , Vol.~26, No.~3, March 2001, pp.~137--139.
Pictures and animations
Being not very at home in the graphical department, we refer you
happily to the
pictures made by John Savard.
Enrique Zabala from Uruguay made a very nice
showing the operation of Rijndael (error corrected on 29/03/2004).
The following files are available for download:
Rijndael is available for free. You can use it for whatever purposes
you want, irrespective of whether it is accepted as AES or not.
to the observations on the Rijndael diffusion layer,
recently submitted to the NIST AES forum.
Updated documentation and complete
as required by NIST (Adobe PDF format). This version corrects the
errors that were found in the original document. NOTE: after Rijndael
was selected to become AES, it was decided to change the names
of some subroutines. The new names have been used in all our subsequent
publications (including the book).
The paper here is provided for reasons of historical
interest only. Please use the description available from NIST's
- A more theoretic paper ,
detailing the design principles behind Rijndael (Adobe PDF format).
- A document on efficient implementation
of the S-box in hardware.
- Java code , for use with the
Reference code in ANSI C v2.2.
Optimised C code v3.0
Paulo S.L.M. Barreto). This code was written in order to clarify the
mathematical description, and to run the statistical test. The
implementation of the tests is known to have bugs, but this package is
no longer maintained.
The Rijndael specific code is still maintained as part of Paulo's EAX++. package.
- Testvalues (as required by NIST) .
You can download information on the test vector format
- A program
that illustrates the working of Rijndael,
by Jose de Jesus Angel.
C code from Brian Gladman's page.
A code size optimised version by Robert G. Durnal.
here. (Now also available for people outside the USA and Canada.)
Keating's page has a fast implementation on the Motorola 6805.
Mike Scott's implementation.
- An 80186 assembly implementation,
written by Rafael R. Sevilla (updated on August 21, 2000).
The v2.4 code, rewritten as
a compact-easy-to-use C++ class by
- Ada 95 code , by Michael Yoder.
NIST's pages have links to
more implementations on various platforms.
- It's in Wei Dai's
Crypto++ library .
- An implementation in Oberon-2,
by Paulo Barreto.
JAVA servlet implementation, by Cass Crockatt.
- A Visual Basic
by P. Fresle (updated on April 20, 2001).
- An Emacs Lisp
implementation, by Simon Jozefsson.
- An implementation
by Gerhard Wesp. (GNU Lesser Public License).
- It's in the
Catacomb crypto library, by Mark Wooding.
- A free
Delphi implementation by Eldos
Perl module by Rafael R. Sevilla.
Matlab implementation by J.J. Buchholz.
port to the Symbian OS.
- AESLib for PalmOS by Stuart Eichert.
by Christophe Devine.
- An Atmal implementation by Sung Ha Kim.
(Note that the documentation uses the old names for the subroutines, which
are different from the names in the FIPS.)
- Andre Barbosa implemented Rijndael in Actionscript. You can
code and test it.
- Jose Luis Gomez Pardo implemented Rijndael in Mathematica.
Rijndael is used in the
digital lecture board, developed at the university
It is also used in a freeware file protection tool called
More information and analysis
The NIST AES site
contains a multitude of reports covering more topics
of the AES/Rijndael than we would have thought possible.
Prof. J. von zur Gathen organized two Rijndael seminars at the university
of Paderborn (Germany). A lot of interesting material was developed,
and is available
- How is that pronounced ?
If you're Dutch, Flemish,
or South-African, it's pronounced like you think it should be.
Otherwise, you could pronounce it like "Reign Dahl", "Rain Doll",
"Rhine Dahl". We're not picky.
As long as you make it sound different from "Region Deal".
- Why did you choose this name ?
Because we were both fed up with people mutilating
the pronunciation of the names "Daemen" and "Rijmen".
(There are two messages in this answer.)
- Can't you give it another name ? (Propose it as a tweak !)
Dutch is a wonderful language.
Currently we are debating about the names "Herfstvrucht",
"Angstschreeuw" and "Koeieuier". Other suggestions are welcome of course.
Derek Brown, Toronto, Ontario, Canada, proposes "bob".
This page is no longer maintained.