public class TripleDES extends BaseCipher
Triple-DES runs the DES algorithm three times with three independent 56 bit keys. To encrypt:
Ci = Ek3 ( Ek2-1 ( Ek1 ( Pi )))
And to decrypt:
Pi = Ek1-1 ( Ek2 ( Ek3-1 ( Ci )))
(The "ede" comes from the encryption operation, which runs Encrypt-Decrypt-Encrypt)
References:
| Modifier and Type | Field and Description |
|---|---|
static int |
BLOCK_SIZE
Triple-DES only operates on 64 bit blocks.
|
static int |
KEY_SIZE
Triple-DES uses 168 bits of a parity-adjusted 192 bit key.
|
currentBlockSize, currentKey, defaultBlockSize, defaultKeySize, lock, nameCIPHER_BLOCK_SIZE, KEY_MATERIAL| Constructor and Description |
|---|
TripleDES()
Default 0-arguments constructor.
|
| Modifier and Type | Method and Description |
|---|---|
static void |
adjustParity(byte[] kb,
int offset)
Transform a key so it will be parity adjusted.
|
java.util.Iterator |
blockSizes()
Returns an
Iterator over the supported block sizes. |
java.lang.Object |
clone()
Returns a clone of this instance.
|
void |
decrypt(byte[] in,
int i,
byte[] out,
int o,
java.lang.Object K,
int bs) |
void |
encrypt(byte[] in,
int i,
byte[] out,
int o,
java.lang.Object K,
int bs) |
static boolean |
isParityAdjusted(byte[] kb,
int offset)
Tests if a byte array has already been parity adjusted.
|
java.util.Iterator |
keySizes()
Returns an
Iterator over the supported key sizes. |
java.lang.Object |
makeKey(byte[] kb,
int bs) |
currentBlockSize, decryptBlock, defaultBlockSize, defaultKeySize, encryptBlock, init, name, reset, selfTest, testKat, testKatpublic static final int BLOCK_SIZE
public static final int KEY_SIZE
public static void adjustParity(byte[] kb,
int offset)
kb - The key bytes to adjust.offset - The starting offset into the key bytes.DES.adjustParity(byte[],int)public static boolean isParityAdjusted(byte[] kb,
int offset)
kb - The key bytes to test.offset - The starting offset into the key bytes.true if the bytes in kb starting at
offset are parity adjusted.DES.isParityAdjusted(byte[],int),
adjustParity(byte[],int)public java.lang.Object clone()
IBlockCipherReturns a clone of this instance.
clone in interface IBlockCipherclone in class BaseCipherpublic java.util.Iterator blockSizes()
IBlockCipherReturns an Iterator over the supported block sizes. Each
element returned by this object is an Integer.
Iterator over the supported block sizes.public java.util.Iterator keySizes()
IBlockCipherReturns an Iterator over the supported key sizes. Each element
returned by this object is an Integer.
Iterator over the supported key sizes.public java.lang.Object makeKey(byte[] kb,
int bs)
throws java.security.InvalidKeyException
java.security.InvalidKeyExceptionpublic void encrypt(byte[] in,
int i,
byte[] out,
int o,
java.lang.Object K,
int bs)
public void decrypt(byte[] in,
int i,
byte[] out,
int o,
java.lang.Object K,
int bs)
Copyright © 2025. All rights reserved.