|
Cryptix V3.2 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Object
|
+--xjava.security.IJCE_Traceable
|
+--xjava.security.Cipher
|
+--cryptix.provider.cipher.SPEED
SPEED is a block cipher with variable key size, data block size and number of rounds (in the style of RC5).
These parameters are set as follows:
initEncrypt or initDecrypt. It can be
any even number of bytes from 6 to 32 (6, 8, 10, ... 32).
These are recommended settings for 'adequate' security:
+--------------------------------------------------+
| block size | key length | rounds |
|==================================================|
| 8 | >= 8 | >= 64 |
|--------------------------------------------------|
| 16 | >= 8 | >= 48 |
|--------------------------------------------------|
| 32 | >= 8 | >= 48 |
+--------------------------------------------------+
SPEED was designed by Yuliang Zheng, and is in the public domain.
References:
Copyright © 1997
Systemics Ltd on behalf of the
Cryptix Development Team.
All rights reserved.
$Revision: 1.6 $
| Fields inherited from class xjava.security.Cipher |
DECRYPT,
ENCRYPT,
UNINITIALIZED |
| Constructor Summary | |
SPEED()
Constructs a SPEED cipher object, in the UNINITIALIZED state. |
|
| Method Summary | |
protected void |
blockDecrypt(byte[] in,
int in_offset,
byte[] out,
int out_offset)
Decrypts a block. |
protected void |
blockEncrypt(byte[] in,
int in_offset,
byte[] out,
int out_offset)
Encrypts a block. |
java.lang.Object |
clone()
Always throws a CloneNotSupportedException (cloning of ciphers is not supported for security reasons). |
protected int |
engineBlockSize()
SPI: Return the data block length of this cipher. |
protected java.lang.Object |
engineGetParameter(java.lang.String param)
SPI: Gets the value of the specified algorithm parameter. |
void |
engineInitDecrypt(java.security.Key key)
SPI: Initializes this cipher for decryption, using the specified key. |
void |
engineInitEncrypt(java.security.Key key)
SPI: Initializes this cipher for encryption, using the specified key. |
protected void |
engineSetParameter(java.lang.String param,
java.lang.Object value)
SPI: Sets the specified algorithm parameter to the specified value. |
protected int |
engineUpdate(byte[] in,
int inOffset,
int inLen,
byte[] out,
int outOffset)
SPI: This is the main engine method for updating data. |
protected void |
finalize()
Cleans up resources used by this instance, if necessary. |
static LinkStatus |
getLinkStatus()
Gets an object representing the native linking status of this class. |
int |
getRounds()
Returns the currently set number of rounds for this instance. |
static void |
main(java.lang.String[] argv)
Entry point for self_test. |
static void |
self_test(java.io.PrintWriter out,
java.lang.String[] argv)
Runs algorithm through test data, including certification data provided in paper. |
void |
setBlockSize(int blocksize)
Sets the block size in bytes for this cipher. |
void |
setRounds(int rounds)
Sets the number of rounds for this cipher. |
| Methods inherited from class java.lang.Object |
equals,
getClass,
hashCode,
notify,
notifyAll,
wait,
wait,
wait |
| Constructor Detail |
public SPEED()
| Method Detail |
public static LinkStatus getLinkStatus()
protected final void finalize()
public final java.lang.Object clone()
throws java.lang.CloneNotSupportedException
protected int engineBlockSize()
public void engineInitEncrypt(java.security.Key key)
throws java.security.InvalidKeyException
key - the key to use for encryption.
public void engineInitDecrypt(java.security.Key key)
throws java.security.InvalidKeyException,
CryptixException
key - the key to use for decryption.
protected int engineUpdate(byte[] in,
int inOffset,
int inLen,
byte[] out,
int outOffset)
in and out may be the same array, and the input and output regions may overlap.
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.
protected void engineSetParameter(java.lang.String param,
java.lang.Object value)
throws NoSuchParameterException,
java.security.InvalidParameterException,
InvalidParameterTypeException
SPEED has two parameters:
param - the string name of the parameter.value - the parameter value.
protected java.lang.Object engineGetParameter(java.lang.String param)
throws NoSuchParameterException,
java.security.InvalidParameterException
SPEED has two parameters:
param - the string name of the parameter.public void setRounds(int rounds)
If the specified number is invalid, an IllegalArgumentException is thrown.
rounds - the desired number of rounds: >= 32, multiple of 4public int getRounds()
public void setBlockSize(int blocksize)
If the specified number is invalid, an IllegalArgumentException is thrown.
blocksize - the desired block size in bytes: 8, 16 or 32
protected void blockEncrypt(byte[] in,
int in_offset,
byte[] out,
int out_offset)
in - The data to be encrypted.in_offset - The start of data within the in buffer.out - The encrypted data.out_offset - The start of data within the out buffer.
protected void blockDecrypt(byte[] in,
int in_offset,
byte[] out,
int out_offset)
in - The data to be decrypted.in_offset - The start of data within the in buffer.out - The decrypted data.out_offset - The start of data within the out buffer.public static final void main(java.lang.String[] argv)
public static void self_test(java.io.PrintWriter out,
java.lang.String[] argv)
throws java.lang.Exception
|
Cryptix V3.2 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||