cryptix.jce.provider.cipher |
|
Java Source File Name | Type | Comment |
BlockCipher.java | Class |
A fully constructed Cipher instance looks like this:
+------------------------------------------+
| CipherSpi (API methods) |
| |
| +--------------------------------------+ |
| | Padding | |
| | | |
| | +----------------------------------+ | |
| | | Mode | | |
| | | | | |
| | | +------------------------------+ | | |
| | | | CipherSpi | | | |
| | | | (blockcipher implementation) | | | |
| | | | | | | |
| | | +------------------------------+ | | |
| | | | | |
| | +----------------------------------+ | |
| | | |
| +--------------------------------------+ |
| |
+------------------------------------------+
author: Jeroen C. |
Blowfish.java | Class | This class implements the Blowfish algorithm (standard, 16 round version).
Blowfish is a symmetric block cipher, with a 64-bit blocksize and a variable
key length (between 40 and 448 bits inclusive, in 8-bit increments).
References:
- Bruce Schneier,
"Section 14.3 Blowfish,"
Applied Cryptography, 2nd edition,
John Wiley & Sons, 1996
- Bruce Schneier,
Description of a New Variable-Length Key, 64-Bit Cipher (Blowfish),
Fast Software Encryption Cambridge Security Workshop Proceedings,
Springer-Verlag, 1004, pp 191-204.
-
http://www.counterpane.com/blowfish.html
The implementation is heavily optimized (but we can still do better):
- The P-box and S-box data is encoded in a string to save on
.class-file size
- P-box entries are stored in individual integers Pxx
- The loops have been unrolled
- Encryption & decryption use the same algorithm
Speed optimizations thanks to Peter Hjelt .
Additional speed and size optimizations by gelderen .
version: $Revision: 1.1 $ author: Systemics Ltd. author: David Hopwood author: Jeroen C. |
CAST5.java | Class | CAST5 (a.k.a. |
MARS.java | Class | MARS is an AES candidate submitted by IBM.
MARS was designed by Carolynn Burwick, Don Coppersmith, Edward D'Avignon,
Rosario Gennaro, Shai Halevi, Charanjit Jutla, Stephen M. |
Rijndael.java | Class | Rijndael --pronounced Reindaal-- is a symmetric cipher with a 128-bit
block size and variable key-size (128-, 192- and 256-bit).
Rijndael was designed by Vincent
Rijmen and Joan Daemen.
version: $Revision: 1.1 $ author: Raif S. |
Serpent.java | Class | A bit-slice implementation in Java of the Serpent cipher.
Serpent is a 128-bit 32-round block cipher with variable key lengths,
including 128-, 192- and 256-bit
keys conjectured to be at least as secure as three-key triple-DES.
Serpent was designed by Ross Anderson, Eli Biham and Lars Knudsen as a
candidate algorithm for the NIST AES Quest.
References:
- Serpent: A New Block Cipher Proposal.
|
Twofish.java | Class | Twofish is an AES candidate algorithm. |