gnu.crypto.cipher

Class Twofish

public final class Twofish extends BaseCipher

Twofish is a balanced 128-bit Feistel cipher, consisting of 16 rounds. In each round, a 64-bit S-box value is computed from 64 bits of the block, and this value is xored into the other half of the block. The two half-blocks are then exchanged, and the next round begins. Before the first round, all input bits are xored with key-dependent "whitening" subkeys, and after the final round the output bits are xored with other key-dependent whitening subkeys; these subkeys are not used anywhere else in the algorithm.

Twofish is designed by Bruce Schneier, Doug Whiting, John Kelsey, Chris Hall, David Wagner and Niels Ferguson.

References:

  1. Twofish: A 128-bit Block Cipher.

Version: $Revision: 1.10 $

Constructor Summary
Twofish()
Trivial 0-arguments constructor.
Method Summary
IteratorblockSizes()
Objectclone()
voiddecrypt(byte[] in, int inOffset, byte[] out, int outOffset, Object sessionKey, int bs)
voidencrypt(byte[] in, int inOffset, byte[] out, int outOffset, Object sessionKey, int bs)
IteratorkeySizes()
ObjectmakeKey(byte[] k, int bs)

Expands a user-supplied key material into a session key for a designated block size.

booleanselfTest()

Constructor Detail

Twofish

public Twofish()
Trivial 0-arguments constructor.

Method Detail

blockSizes

public Iterator blockSizes()

clone

public Object clone()

decrypt

public void decrypt(byte[] in, int inOffset, byte[] out, int outOffset, Object sessionKey, int bs)

encrypt

public void encrypt(byte[] in, int inOffset, byte[] out, int outOffset, Object sessionKey, int bs)

keySizes

public Iterator keySizes()

makeKey

public Object makeKey(byte[] k, int bs)

Expands a user-supplied key material into a session key for a designated block size.

Parameters: k the 64/128/192/256-bit user-key to use. bs the desired block size in bytes.

Returns: an Object encapsulating the session key.

Throws: IllegalArgumentException if the block size is not 16 (128-bit). InvalidKeyException if the key data is invalid.

selfTest

public boolean selfTest()
Copyright © 2001, 2002, 2003 Free Software Foundation, Inc. All Rights Reserved.