A Current Perspective on Encryption Algorithms
Dr Lawrie Brown
School of Computer Science,
Australian Defence Force Academy,
Canberra, Australia
Email: Lawrie.Brown@adfa.edu.au
Superceeded by the revised version presented to
UniforumNZ'99, May 1999.
Abstract
This talk will present a perspective on the current state of play in the
field of encryption algorithms, in particular on private key block ciphers
which are widely used for bulk data and link encryption. I will initially
survey some of the more popular and interesting algorithms currently in
use. Then I'll describe the recent call by the US NIST for submissions
to define an Advanced Encryption Standard to eventually replace the DES.
I will sketch the requirements they've given and briefly describe the
candidates currently known.
Introduction
With growing awareness of, and concerns about, computer and
communications security, there is increasing incorporation of
cryptographic algorithms into such systems. This paper presents a brief
overview of the current state of cryptographic algorithms, with an
emphasis on private key block ciphers. These are widely used for
applications requiring bulk data or link encryption.
It has been prompted in part by the US
NIST (National Institute of Standards and Technology) call for
submissions of candidate algorithms for an Advanced Encryption Standard,
to replace the exising DES, which is currently underway.
Types of Encryption Algorithms
Cryptographic algorithms can be broadly catagorised as follows:
- private (single, shared) key algorithms
- are used for bulk data encryption, as they are comparatively
fast. They do require a secret key to be known by both parties.
Examples include: DES, Blowfish, IDEA, LOKI, RC4.
- public (two) key algorithms
- are used for key validation & distribution, good because a public
key is used, but limited by their computational cost (and thus slow speed)
compared to private key schemes. Examples include: Diffie-Hellman, ElGamal, RSA
- signature algorithms
- are used to sign & authenticate data, and are also usually public key
based. Examples include: ElGamal, RSA, DSA
- hash algorithms
- are used to compress data down to a fixed size for signing.
Examples include: MD5, Haval, SHA
In practice, many systems involve a combination of these algorithms,
with public key algorithms being used to exchange session keys and
to authenticate a hash of the information, and private key algorithms
to encrypt the data (eg. as in PGP secure email). See any good
crypto text for details, eg Stallings [Stal98], or
Schneier [Schn96].
Block Ciphers Past
In this talk, I will be focusing on Block Ciphers, which are the most
common form of private key algorithms. These operate on a fixed size
data block (eg 64 bits), use a single secret, shared key (eg 56, 64,
or128 bits), and generally involve multiple rounds (8-32) of some
simple, non-linear function which uses half the value as input, and
whose output is XOR'd with the other half. This is known as a feistel
structure, invented by Horst Feistel of IBM in the early '70's, and its
great advantage is its easy inversion for decryption. There are
various standard modes of use which allow a variable amount of
information to be processed by the algorithm's fixed size inputs and
outputs. For encrypting bulk data, the ECB or CBC modes are used;
for stream data, the CFB or OFB modes.
The best known and most widely used block cipher is the DES, which has
a 64 bit data block and a 56 bit key. It evolved from the earlier
Lucifer algorithm, developed by Feistel and colleagues at IBM in the
early 70's. It has been the standard algorithm for banking and other
applications since 1977.
Any block cipher can theoretically be attacked by exhaustively trying
all possible keys, whether this is feasible or not depends on the
size of the key. If an attack faster than exhaustive search is possible,
then the cipher is regarded as, at least theoretically, broken.
Recently several brute force recoveries of 56-bit DES keys have been
demonstrated [RSAD97] [EFF98a],
which graphically illustrate the advances made in computational speeds in
recent years.
Also since the early 90's, theoretical attacks on the DES, which are
faster than exhaustive key search, have been developed as discussed
below. In response to this, as an interim measure, we see the
deployment of Triple-DES. This uses two (112 bit) or three (162 bit)
keys and three passes of the DES algorithm on each block (at
consequently 1/3 the speed). In the longer term, the US NIST is
looking at standardising a new algorithm.
Aside from DES, a number of other block ciphers have been proposed
in the intervening years. In the late 80's, several proposals were
published by the academic community. The best known of these include:
- FEAL
- a 64-bit, n-round (where n has grown from 4 to 32+) feistel block cipher
with a 64 or 128 bit key, designed by Shimizu and Miyaguchi from NTT
Japan in 1987. Implemented in both hardware and software, it has been
widely used in Japan. A number of attacks have been developed against
it, which has led to revised versions with more rounds and larger keys.
- IDEA
- a 64-bit, 8 round iterated block cipher with a 128-bit key,
designed by X. Lai and J. Massey in 1990. It uses the concept of
"mixing operations from different algebraic groups". Best known
for its use in PGP, SSH and other systems, it is one of the
more widely used algorithms at the present time, and is still
believed secure. It is patented though and licensing may be needed.
- LOKI91
- a 64-bit, 16 round, symmetric block cipher with a 64-bit key. It
was originally designed by Brown, Pieprzyk and Seberry in 1990
[BrPS90], and later re-designed (and renamed
LOKI91), with improved security in 1991 [BKPS91].
It is also believed secure, and is used by several companies
wanting a licence and patent free Australian algorithm.
Also around this time, Biham and Shamir announced the (re)discovery (in
the public arena) of differential cryptanalysis - a powerful general
technique for attacking iterated block ciphers [BiSh93].
Subsequently, Matsui announced the discovery
of linear cryptanalysis [Mats93]; and Biham of
related key attacks [Biha94c]. All of these
attacks utilise knowledge of the structure of the cipher to accumulate
information from extremely large numbers of observed encryptions to
obtain information about the (unknown) key used. The success of these
attacks depends on the number of observed encryptions, and decreases
rapidly with increasing numbers of rounds. Eventually a break-even point
is reached where exhaustive search is faster, and even where the number
of observations required is greater than the total number possible. Thus
these attacks are possible and (theoretically) faster against some
ciphers, eg DES or some FEAL versions, and not against others (eg IDEA,
LOKI91).
In the light of this new (in the public community) knowledge, and
experience with the preceding ciphers, a number of others were
developed during the early 90's. The better known of these include:
- BLOWFISH
- a 64-bit, 16 round feistel block cipher with a variable length key,
designed by B. Schneier in 1994. It is optimised for bulk data
encrpytion (since key changes are slow), and uses four large 8*32 bit
random substitution boxes generated from the supplied key, whose outputs are
combined using addition and xor. Used in SSH and other packages, this
cipher is also well known, and is unencumbered by patent or licencing issues.
- CAST
- a 64-bit, 8 round feistel block cipher with a 64-bit key, designed
by C. Adams and S. Tavares in 1993. It uses six 8*32 bit substitution
boxes (some with data in, some with subkey in) whose outputs are
combined using xor. These substitution boxes are designed for and fixed
per application. It is used in a number of products in Canada (where it
was designed), and may need to be licenced.
- RC2, RC5
- two private key block ciphers developed by RSA Data Security Inc.
The details of both are proprietary, though the RC5 design has
subsequently been published and subject to some analysis. They are
parameterisable, with various sized data and keys, and number of rounds,
possible. These ciphers have been widely licenced and used in products
such as Netscape. However because of their proprietary nature, public
analysis has been limited (nb. RC4 is a stream cipher by the same
people, also widely used, with details released due to its reverse
engineering).
- SAFER
- a 64-bit, 6 or higher round, iterated block cipher with
64 or 128 bit keys, designed by J. Massey in 1994.
- SQUARE
- a 128-bit, 8-round block cipher,
designed by Joan Daemen and Vincent Rijmen in 1997,
with emphasis on resistance against differential and linear cryptanalysis.
- TEA
- a simple 64-bit, 32 round feistel block cipher with a 128-bit key,
designed by Wheeler & Needham [WhNe94] in 1994.
It uses a very simple round function composed of alternating additions
and xor's along with left and right shifts,
iterated over many rounds to provide sufficient complexity.
Has a surprising degree of security for such a simple cipher.
As these ciphers are newer, there has not been as much opportunity for
analysis. Some have already been adopted in a number of systems though.
Most are also characterised by using the same 64 bit data block size as
DES, and either 64 or 128 bit keys (or 40 when lobotomised to insecurity
by US export laws). This is changing in the next generation being
developed for the AES call, as discussed below.
Comparative Speeds
As an illustration, a number of these algorithms have been implemented
in Java (using the Cryptix library [Cryp97]).
In one run, interpreted on a Pentiun2/266 Linux system,
the following comparative times were obtained:
Table of Comparative Block Ciphers Timings
IJCE Timing Encryption (1MByte) Key Init
Algorithm Time (ms) Rate (Kbps) 1000 pairs (ms)
--------- --------- ----------- ---------------
Blowfish 20506 409 79290
CAST5 23772 352 976
DES 48629 172 519
TripleDES 160807 52 1790
IDEA 43409 193 734
LOKI91 31071 269 76
RC2 43329 193 790
RC4 (*) 12945 648 2382
SAFER 41442 202 2219
Square 29610 283 2166
nb. (*) RC4 is stream cipher;
Choosing a Cipher
Selecting between the competing ciphers is not easy. Apart from slightly
different currently known security levels, questions of speed, code size,
and any patent or licencing issues need to be considered. As a general
rule, do rely on ciphers that are known, have been publically analysed,
and in some use. Different applications are likely to require different
tradeoffs and hence choices.
Block Ciphers Future
Given the rapid advances in hardware speeds, and the development of
new cryptanalytic techniques, it has become clear that firstly the
DES must be replaced soon, and that a general increase in
the block and key sizes used, is needed. Thus the AES call.
Advanced Encryption Standard (AES)
The US NIST issued a request for
possible candidates in Sept 97 [AES97].
As noted (by Bruce Schneier) at a meeting discussing the proposed call:
Miles Smid presented NIST's goals for AES. They wanted a strong
block encryption algorithm for government and commercial use,
one that would support "standard codebook modes" of encryption,
"significantly more efficient than Triple-DES," and with a variable key size.
In the call, they note:
It is intended that the AES will specify an unclassified, publicly
disclosed encryption algorithm available royalty-free worldwide that is
capable of protecting sensitive government information well into the
next century.
AES Requirements
NIST have specified that proposed algorithms must implement a symmetric
block cipher, with a block size of 128 bits, and keys sizes of 128, 192
and 256 bits (at least). They want an algorithm whose security is at
least as good as Triple-DES, but with significantly improved efficiency.
Submissions were due by June 15, 1998. These submissions had to include a
complete specification of the algorithm, its design rationale, computational
efficiency, and expected strength against known forms of attack. Also to be
included were reference implementations in Java (based on the Sun JCE 1.2
framework) and C, as well as extensive validation and test values.
AES Evaluation
NIST has planned for two phases of evaluation of the candidate algorithms.
During the first phase, NIST will evaluate the algorithms, including
using publically submitted evaluations, and select a shortlist of at most 5.
These will then be more extensively evaluated during the second phase
to select the final candidate algorithm. In the evaluations,
security is the prime consideration, then efficiency and flexibility.
NIST have committed to releasing all non-classified evaluations of
the candidate algorithms.
AES Candidates
Following the submission deadline, NIST reviewed all submissions for
compliance with the minimum requirements, and announced
at the First AES conference on 20-22nd August 1998,
that 15 algorithms had been accepted as complete and proper
for evaluation in phase 1. A further 6 algorithms were rejected as incomplete.
These algorithms are (as detailed at the AES web site
[AES97]):
- CAST-256 - Adams (Entrust Tech., Canada)
- A 48-round unbalanced feistel cipher using the same round functions
as CAST-128, which use + - XOR rotates and 4 fixed 6-bit S-boxes;
with a key schedule also using an unbalanced feistel cipher
[Adam98].
- CRYPTON - Lim (Future Systems, Korea)
- A 12-round iterative cipher with a round function
using & | XOR rotates and 2 fixed 8-bit S-boxes;
with various key lengths supported [Lim98].
- DEAL - Knudsen (U. Bergen, Norway), Outerbridge (UK)
- A rather different proposal, a 6 to 8 round feistel cipher
which uses the existing DES as the round function.
Thus a lot of existing analysis can be leveraged, but at a cost
in speed [Knud98]
- DFC - Gilbert, Girault, Hoogvorst, Noilhan, Pornin, Poupard, Stern, Vaudenay (ENS, France)
- An 8-round feistel cipher designed based on a decorrelation technique
and using + x and a permutation in the round function;
with a 4-round key schedule [GGHN98].
- E2 - NTT, Japan
- A 12-round feistel cipher, using a non-linear function comprised of
substitution using a single fixed 8-bit S-box, a permutation,
XOR mixing operations, and a byte rotation
[NTT98]
- FROG - Georgoudis, Leroux, Chaves (TecApro, South Africa)
- An 8-round cipher, with each round performing 4 basic operations
(with XOR, substitution using a single fixed 8-bit S-box,
and table value replacement)
on each byte of its input [GeLC98]
- Hasty Pudding - Schroeppel, Orman (U. Arizona, USA)
- An 8-round feistel cipher, which modifies 8 internal 64-bit variables
as well as the data using + - x & | XOR rotates and a lookup table
[ScOr98]
- LOKI97 - Brown, Pieprzyk (ADFA/UOW, Australia)
- A 16-round feistel cipher using a complex round function f
with two S-P layers with fixed 11-bit and 13-bit S-boxes, a permutation,
and + XOR combinations; and with a 256-bit key schedule using 48 rounds of
an unbalanced feistel network using the same complex round function f
[BrPi98a]
- Magenta - Deutsche Telecom, Germany
- A 6 to 8 round feistel cipher, with a round function that uses a
large number of substitutions using a single fixed S-box (based on
exponentiation on GF(28)), which combined together with
key bits using XOR [JaHu98].
- MARS - IBM, USA
- A 8+16+8-round unbalanced feistel cipher with 4 distinct phases:
key addition and 8 rounds of unkeyed forward mixing,
8 rounds of keyed forwards transformation,
8 rounds of keyed backwards transformation,
and 8 rounds of unkeyed backwards mixing and keyed subtraction.
The rounds use + - x rotates XOR and 2 fixed 8-bit S-boxes
[IBM98].
- RC6 - Rivest, Robshaw, Sidney, Yin (RSA Labs/MIT, USA)
- A 20-round iterative cipher, developed from RC5 (and fully parameterised),
which uses a number of 32-bit operations (+ - x XOR rotates)
to mix data in each round [RBSY98].
- RIJNDAEL - Daemen, Rijmen (Banksys/Katholieke Universiteit Leuven, Belgium)
- A 10 to 14-round iterative cipher, using byte substitution, row shifting,
column mixing and key addition, as well as an
initial and final round of key addition, derived from the previous SQUARE
cipher [DaRi98].
- SAFER+ - Massey (Cylink, USA)
- An 8 to 16-round iterative cipher, derived from the earlier SAFER,
which uses + x XOR and 2 fixed 8-bit S-boxes
[Mass98].
- SERPENT - Anderson (Cambridge, UK), Biham (Technion, Israel), Knudsen (U. Bergen, Norway)
- A 32-round feistel cipher, with key mixing using XOR and rotates,
substitutions using 8 key dependent 4-bit S-boxes,
and a linear transformation, in each round [AnBK98].
- TWOFISH - Schneier, Kelsey, Whiting, Wagner, Hall, Ferguson (Counterpane Systems, USA)
- A 16-round feistel cipher using 4 key dependent 8-bit S-boxes,
matrix transforms, rotations, and
based in part on Blowfish [SKWW98].
At this stage it is too early for much analysis to have been done on these
algorithms. However you can certainly expect to hear about some of them
in the coming year or so as the field is narrowed down and a final
candidate chosen. There is a spread of choice between those algorithms
with fewer complex rounds, and those with many simple rounds. The latter
are usually easier to implement, but care is needed with their security.
I'd expect that the "big-name" submissions will likely make it through.
Information on the progress with analysis can be found at the
US NIST AES web site [AES97],
and at the AES Block Cipher Lounge [KnRi98].
I do believe that if you are designing products which use cryptographic
algorithms, you certainly ought to be planning to incorporate the
final AES algorithm in your product. This requires planning for the
use of 128-bit data blocks, and one or more of 128, 192 or 256 bit keys.
Comparative Speeds
At the time of writing, the Java implementation of a few of these
algorithms was available. The timing runs trialed each algorithm
with each of the 3 required AES key sizes.
In one timing run, interpreted on a Pentiun2/266 Linux system,
the following comparative times were obtained:
Table of Comparative AES Ciphers Timings
NIST Timing Encryption (1MByte) Key Init
Algorithm Time (ms) Rate (Kbps) 1000 pairs (ms)
--------- --------- ----------- ---------------
DEAL/128 144567 58 5969
DEAL/192 144481 58 6025
DEAL/256 183245 45 7594
LOKI97/128 159629 52 4104
LOKI97/192 159118 52 4142
LOKI97/256 159499 52 4020
Rijndael/128 30115 278 1738
Rijndael/192 32649 256 1924
Rijndael/256 34863 240 2140
Serpent/128 515656 16 8970
Serpent/192 516348 16 8955
Serpent/256 515716 16 8925
Twofish/128 60977 137 7831
Twofish/192 61086 137 10280
Twofish/256 61159 137 12311
Clearly there are some significant speed differences between even these
few algorithms, which needs to be balanced against possibly varying
levels of security, as continuing analysis should reveal.
Other Observations
Some personal observations about other aspects of cryptographic algorithms.
Key escrow is dead! It has been overtaken by events (including the
AES), is simply not wanted by many around the world, and is bypassed by
the widespread availability of good encryption products without it.
However, key backup is a useful idea, used voluntary by organisations for
good management reasons. This will become more common, and supported,
in products. It is distinct from key escrow in that it applies
to archival data and key access, not communications sessions.
56-bit block cipher keys are insecure! Repeated demonstrations
have illustrated that 40-bit keys can be broken by brute-force in a
few hours or days by any group with access to a reasonable pool of
workstations (eg a few labs at the Uni). More recently, 56-bit DES
keys have been searched by a group who invested a moderate (US$250k)
amount in building dedicated hardware to search for any key in a few
days [EFF98a]. It is clear, that as discussed
by a group of cryptographers in 96 [BDRS96],
key lengths should be 80 bits or more for moderate term security.
To support wide-spread interaction amongst large communities, we
need (public key) certificate authorities, and we need them now!
Its time to stop arguing about the politics, and do it!
Also to improve security, good, strong, encryption is needed now
in many products, particularly those involving network communications.
With the development of new algorithms, and their public evaluation,
this should be easier than ever before, if only people will address
the political issues and accept its necessity.
Conclusions
This paper presents a brief survey of block ciphers, their past,
and their further development in response to the AES call.
Continuing changes and developments can be expected in the short term,
though the selection of a final AES algorithm should give some direction
in the medium term.
References
- AES97
-
NIST,
"Advanced Encryption Standard Call",
NIST, 1997.
http://www.nist.gov/aes/.
- Adam98
-
Carlisle Adams,
"The CAST-256 Encryption Algorithm",
Entrust Technologies, Canada, AES submission, Jun 1998.
http://www.entrust.com/resources/pdf/cast-256.pdf.
- AnBK98
-
Ross Anderson, Eli Biham, Lars Knudsen,
"SERPENT",
Cambridge UK, Technion Israel, U. Bergen Norway, AES submission, Jun 1998.
http://www.cl.cam.ac.uk/ftp/users/rja14/serpent.pdf.
- BDRS96
-
M. Blaze, W. Diffie, R. Rivest, B. Schneier, T. Shimomura, E. Thompson, and M. Weiner,
"Minimal Key Lengths for Symmetric Ciphers to Provide Adequate Commercial Security",
Jan 1996.
http://www.counterpane.com/keylength.html.
- BKPS91
-
Lawrence Brown, Matthew Kwan, Josef Pieprzyk, Jennifer Seberry,
"Improving Resistance to Differential Cryptanalysis and the Redesign of LOKI",
in Advances in Cryptology - Asiacrypt'91,
Lecture Notes in Computer Science, Vol 739, Springer-Verlag, pp 36-50, 1991.
Also issued as ADFA TR CS38/91.
- BiSh93
-
Eli Biham, Adi Shamir,
"Differential Cryptanalysis of the Data Encryption Standard",
Springer-Verlag, New York, 1993.
- Biha94c
-
Eli Biham,
"New Types of Cryptanalytic Attacks Using Related Keys",
Journal of Cryptology, Vol 7, No 4, pp 229-246, 1994.
- BrPS90
-
Lawrence Brown, Josef Pieprzyk, Jennifer Seberry,
"LOKI - A Cryptographic Primitive for Authentication and Secrecy Applications",
in Advances in Cryptology: Auscrypt '90,
Lecture Notes in Computer Science, Vol 453, Springer-Verlag, pp 229-236, 1990.
Also issued as ADFA TR CS1/90.
- BrPi98a
-
Lawrie Brown, Josef Pieprzyk,
"Introducing the New LOKI97 Block Cipher",
Australian Defence Force Academy, Canberra, Australia, AES Submission, Jun 1998.
http://lpb.canb.auug.org.au/adfa/research/loki97/.
- Cryp97
-
Ian Grigg, Raif Naffah,
"Cryptix Java Cryptographic Library",
1997.
http://www.systemics.com/docs/cryptix/.
- DaRi98
-
Joan Daemen, Vincent Rijmen,
"AES Proposal: Rijndael",
Banksys/Katholieke Universiteit Leuven, Belgium, AES submission, Jun 1998.
http://www.esat.kuleuven.ac.be/~rijmen/rijndael/.
- EFF98a
-
Electronic Frontier Foundation,
"Cracking DES",
O'Reilly, 1998.
1-56592-520-3. http://www.oreilly.com/catalog/crackdes/.
- GGHN98
-
Henri Gilbert, Marc Girault, Philippe Hoogvorst, Fabricc Noilhan, Thomas Pornin, Guillaume Poupard, Jacques Stern, Serge Vaudney,
"Decorrelated Fast Cipher: an AES Candidate",
Ecole Normale Supérieure, France, AES submission, Jun 1998.
http://www.dmi.ens.fr/~vaudenay/dfc.html.
- GeLC98
-
Dianelos Georgoudis, Damian Leroux, Billy Simón Chaves,
"The "FROG" Encryption Algorithm",
TecApro Intl., South Africa, AES submission, Jun 1998.
http://www.tecapro.com/aesfrog.htm.
- IBM98
-
Carolynn Burwick, Don Coppersmith, Edward D'Avignon, Rosario Gennaro, Shai Halevi, Charanjit Jutla, Stephen M. Matyas Jr., Luke O'Connor, Mohammad Peyravian, David Safford, Nevenko Zunic,
"MARS - a candidate cipher for AES",
IBM, USA, AES submission, Jun 1998.
http://www.research.ibm.com/security/mars.html.
- JaHu98
-
M.J. Jacobson, K. Huber,
"The MAGENTA Block Cipher Algorithm",
Deutsche Telecom, Darmstadt, Germany, AES submission, Jun 1998.
- KnRi98
-
Lars Knudsen, Vincent Rijmen,
"AES Block Cipher Lounge",
UiB, Norway, 1998.
http://www.ii.uib.no/~larsr/aes.html.
- Knud98
-
Lars Knudsen,
"DEAL: A 128-bit Block Cipher",
University of Bergen, Norway, Technical Report, No 151, Feb 1998.
http://www.ii.uib.no/~larsr/newblock.html.
- Lim98
-
Chae Hoon Lim,
"CRYPTON : A new 128-bit block cipher",
Future Systems, Korea, AES submission, Jun 1998.
http://crypt.future.co.kr/~chlim/crypton.html.
- Mass98
-
James Massey,
"SAFER+",
Cylink, USA, Jun 1998.
http://www.cylink.com/SAFER.
- Mats93
-
Mitsuru Matsui,
"Linear Cryptanalysis Method for DES Cipher",
in Advances in Cryptology - Eurocrypt'93,
Lecture Notes in Computer Science, Vol 765, Springer-Verlag, pp 386-397, 1993.
- NTT98
-
Kazumaro Aoki, Masayuki Kanda, Tsutomu Matsumoto, Shiho Moriai, Kazuo Ohta, Miyako Ookubo, Youichi Takashima, Hiroki Ueda,
"E2 - a 128-bit Block Cipher",
NTT, Japan, AES submission, Jun 1998.
http://info.isl.ntt.co.jp/e2/.
- RBSY98
-
R. Rivest, M.J.B. Robshaw, R. Sidney, Y.L. Yin,
"The RC6 Block Cipher",
RSA Labs/MIT, USA, AES submission, Jun 1998.
http://theory.lcs.mit.edu/~rivest/rc6.pdf.
- RSAD97
-
RSA Data Security Inc,
"Government encryption standard DES takes a fall",
1997.
http://www.rsa.com/des/.
- SKWW98
-
Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall, Niels Ferguson,
"Twofish: A 128-bit Block Cipher",
Counterpane Systems, USA, AES submission, Jun 1998.
http://www.counterpane.com/twofish.html.
- ScOr98
-
Rich Schroeppel, Hilarie Orman,
"An Overview of the Hasty Pudding Cipher",
University of Arizona, Arizona, USA, AES submission, Jun 1998.
http://www.cs.arizona.edu/~rcs/hpc/.
- Schn96
-
Bruce Schneier,
"Applied Cryptography - Protocols, Algorithms and Source Code in C",
2nd edn, John Wiley and Sons, New York, 1996.
- Stal98
-
W. Stallings,
"Cryptography and Network Security - Principles and Practice",
2nd edn, Prentice-Hall, 1998.
http://www.shore.net/~ws/Security.html.
- WhNe94
-
David J. Wheeler, Roger M. Needham,
"TEA, a Tiny Encryption Algorithm",
in Fast Software Encryption 2,
Lecture Notes in Computer Science, Vol 1008, Springer-Verlag, pp 363-366, 1994.
http://www.cl.cam.ac.uk/ftp/papers/djw-rmn/djw-rmn-tea.html.
This paper was presented to
AUUG98, Sept 1998.
The latest version of this paper may be found at:
http://lpb.canb.auug.org.au/adfa/papers/auug98/.
Last updated: 21 Aug 98.