All Packages Class Hierarchy This Package Previous Next Index
Class cryptix.provider.cipher.LOKI91
java.lang.Object
|
+----java.security.IJCE_Traceable
|
+----java.security.Cipher
|
+----cryptix.provider.cipher.LOKI91
- public final class LOKI91
- extends Cipher
- implements SymmetricCipher
LOKI is a proposed Australian alternative cipher to DES. It was first
designed by L. Brown, J. Pieprzyk and J. Seberry in 1990 and later re-
designed (and renamed LOKI91), with improved resistance to differential
cryptanalysis, by L. Brown, M. Kwan, J. Pieprzyk and J. Seberry.
LOKI91 is a 64-bit symmetric block cipher with a 64-bit user key.
See
LOKI91KeyGenerator for information about weak keys.
This current version is based on special C-code obtained, under license,
from The School of Computer Science, UC, UNSW. The speed gain is achieved
by pre-computing the 4,096 values of the substitutions (S-Box) used by the
algorithm as well as the permutations for all possible 256 input values for
each of the four 8-bit blocks.
References:
- Bruce Schneier,
Applied Cryptography, 2nd edition,
John Wiley & Sons 1996, 314-316.
- Personal correspondance with Dr. Lawrence Brown.
Copyright © 1997
Systemics Ltd on behalf of the
Cryptix Development Team.
All rights reserved.
$Revision: 1.2 $
- Author:
- Raif S. Naffah
-
LOKI91()
- Constructs a LOKI91 cipher object, in the UNINITIALIZED state.
-
clone()
- Always throws a CloneNotSupportedException (cloning of ciphers is not
supported for security reasons).
-
engineBlockSize()
- SPI: Returns the length of an input block, in bytes.
-
engineInitDecrypt(Key)
- SPI: Initializes this cipher for decryption, using the
specified key.
-
engineInitEncrypt(Key)
- SPI: Initializes this cipher for encryption, using the
specified key.
-
engineUpdate(byte[], int, int, byte[], int)
- SPI: This is the main engine method for updating data.
-
finalize()
- Cleans up resources used by this instance, if necessary.
-
getLinkStatus()
- Gets an object representing the native linking status of this class.
LOKI91
public LOKI91()
- Constructs a LOKI91 cipher object, in the UNINITIALIZED state.
This calls the Cipher constructor with implBuffering false,
implPadding false and the provider set to "Cryptix".
getLinkStatus
public static LinkStatus getLinkStatus()
- Gets an object representing the native linking status of this class.
finalize
protected final void finalize()
- Cleans up resources used by this instance, if necessary.
- Overrides:
- finalize in class Object
clone
public final Object clone() throws CloneNotSupportedException
- Always throws a CloneNotSupportedException (cloning of ciphers is not
supported for security reasons).
- Overrides:
- clone in class Cipher
engineBlockSize
protected int engineBlockSize()
- SPI: Returns the length of an input block, in bytes.
- Returns:
- the length in bytes of an input block for this cipher.
- Overrides:
- engineBlockSize in class Cipher
engineInitEncrypt
protected void engineInitEncrypt(Key key) throws KeyException
- SPI: Initializes this cipher for encryption, using the
specified key.
- Parameters:
- key - the key to use for encryption.
- Throws: KeyException
- if the key is invalid.
- Overrides:
- engineInitEncrypt in class Cipher
engineInitDecrypt
protected void engineInitDecrypt(Key key) throws KeyException
- SPI: Initializes this cipher for decryption, using the
specified key.
- Parameters:
- key - the key to use for decryption.
- Throws: KeyException
- if the key is invalid.
- Overrides:
- engineInitDecrypt in class Cipher
engineUpdate
protected int engineUpdate(byte in[],
int inOffset,
int inLen,
byte out[],
int outOffset)
- SPI: This is the main engine method for updating data.
in and out may be the same array, and the input and output
regions may overlap.
- Parameters:
- in - the input data.
- inOffset - the offset into in specifying where the data starts.
- inLen - the length of the subarray.
- out - the output array.
- outOffset - the offset indicating where to start writing into
the out array.
- Returns:
- the number of bytes written.
- Throws: CryptixException
- if the native library is being used, and it
reports an error.
- Overrides:
- engineUpdate in class Cipher
All Packages Class Hierarchy This Package Previous Next Index