gnu.crypto.cipher
Class Khazad
- Cloneable, IBlockCipher, IBlockCipherSpi
public final class Khazad
Khazad is a 64-bit (legacy-level) block cipher that accepts a 128-bit key.
The cipher is a uniform substitution-permutation network whose inverse only
differs from the forward operation in the key schedule. The overall cipher
design follows the Wide Trail strategy, favours component reuse, and permits
a wide variety of implementation trade-offs.
References:
- The
Khazad Block Cipher.
Paulo S.L.M. Barreto and
Vincent Rijmen.
Khazad()- Trivial 0-arguments constructor.
|
Iterator | blockSizes()- Returns an
Iterator over the supported block sizes.
|
Object | clone()
|
void | decrypt(byte[] in, int i, byte[] out, int j, Object k, int bs)- Decrypts exactly one block of ciphertext.
|
void | encrypt(byte[] in, int i, byte[] out, int j, Object k, int bs)- Encrypts exactly one block of plaintext.
|
Iterator | keySizes()- Returns an
Iterator over the supported key sizes.
|
Object | makeKey(byte[] uk, int bs)- Expands a user-supplied key material into a session key for a
designated block size.
|
boolean | selfTest()- A correctness test that consists of basic symmetric encryption /
decryption test(s) for all supported block and key sizes, as well as one
(1) variable key Known Answer Test (KAT).
|
clone, currentBlockSize, decryptBlock, defaultBlockSize, defaultKeySize, encryptBlock, init, name, reset, selfTest, testKat, testKat |
Khazad
public Khazad()
Trivial 0-arguments constructor.
decrypt
public void decrypt(byte[] in,
int i,
byte[] out,
int j,
Object k,
int bs) Decrypts exactly one block of ciphertext.
- decrypt in interface IBlockCipherSpi
in - the ciphertext.out - the plaintext.k - the session key to use.bs - the block size to use.
encrypt
public void encrypt(byte[] in,
int i,
byte[] out,
int j,
Object k,
int bs) Encrypts exactly one block of plaintext.
- encrypt in interface IBlockCipherSpi
in - the plaintext.out - the ciphertext.k - the session key to use.bs - the block size to use.
makeKey
public Object makeKey(byte[] uk,
int bs)
throws InvalidKeyException Expands a user-supplied key material into a session key for a
designated block size.
- makeKey in interface IBlockCipherSpi
uk - the 128-bit user-supplied key material.bs - the desired block size in bytes.
- an Object encapsulating the session key.
selfTest
public boolean selfTest()
A correctness test that consists of basic symmetric encryption /
decryption test(s) for all supported block and key sizes, as well as one
(1) variable key Known Answer Test (KAT).
- selfTest in interface IBlockCipher
- selfTest in interface IBlockCipherSpi
- selfTest in interface BaseCipher
true if the implementation passes simple
correctness tests. Returns false otherwise.
Copyright © 2001, 2002, 2003
Free Software Foundation,
Inc. All Rights Reserved.