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, name
CIPHER_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, testKat
public 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()
IBlockCipher
Returns a clone of this instance.
clone
in interface IBlockCipher
clone
in class BaseCipher
public java.util.Iterator blockSizes()
IBlockCipher
Returns 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()
IBlockCipher
Returns 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.InvalidKeyException
public 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.