|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--is.logi.crypto.Crypto | +--is.logi.crypto.keys.K | +--is.logi.crypto.keys.SymmetricKey | +--is.logi.crypto.keys.CaesarKey
The Caesar algorithm is supposedly the one Julius Caesar used by hand many centuries ago. As you can imagine, this is NOT A STRONG CIPHER, but included only to show how to write a very simple Key class for the logi.crypto package. Often, the first assignment given to cryptography students is to break this cipher.
Data is encrypted byte-by-byte by adding a constant value to it and taking the 8 lowest order bits.
The CDS for a CaesarKey object is CaesarKey(n)
where
n is a value in the range 0..255.
Fields inherited from class is.logi.crypto.Crypto |
BIT,
cdsPath,
keySource,
NIBBLE,
primeCertainty,
random |
Constructor Summary | |
CaesarKey()
Create a new random Caesar key. |
|
CaesarKey(byte shift)
Create a new Caesar key with the specified shift. |
Method Summary | |
int |
cipherBlockSize()
The block-size for the Caesar cipher is one byte. |
void |
decrypt(byte[] source,
int i,
byte[] dest,
int j)
Decrypt one byte. |
void |
encrypt(byte[] source,
int i,
byte[] dest,
int j)
Encrypt one byte. |
boolean |
equals(java.lang.Object o)
Return true iff the two keys are equivalent. |
java.lang.String |
getAlgorithm()
The name of the algorithm is "Caesar". |
int |
getSize()
The key-size for the Caesar cipher is 8 bytes. |
static CaesarKey |
parseCDS(java.lang.String key)
If "CaesarKey( key )" is a valid CDS for a CaesarKey, then CaesarKey.parseCDS(key) will return the described CaesarKey object. |
int |
plainBlockSize()
The block-size for the Caesar cipher is one byte. |
java.lang.String |
toString()
Return a CDS for this key. |
Methods inherited from class is.logi.crypto.keys.SymmetricKey |
isPrivate,
matches |
Methods inherited from class is.logi.crypto.keys.K |
getFingerprint,
hashCode,
matchFingerprint |
Methods inherited from class is.logi.crypto.Crypto |
binString,
binString,
equal,
equalRelaxed,
equalSub,
fromHexNibble,
fromHexString,
fromString,
fromString,
hexString,
hexString,
hexString,
hexString,
makeClass,
makeInt,
makeLong,
makeSessionKey,
pastSpace,
pickBits,
pickBits,
readInt,
writeBytes,
writeBytes,
writeInt |
Methods inherited from class java.lang.Object |
getClass,
notify,
notifyAll,
wait,
wait,
wait |
Constructor Detail |
public CaesarKey(byte shift)
public CaesarKey()
Method Detail |
public static CaesarKey parseCDS(java.lang.String key) throws InvalidCDSException
A valid CDS can be created by calling the CaesarKey.toString() method.
Crypto.fromString(String)
public int getSize()
public final int plainBlockSize()
public final int cipherBlockSize()
public java.lang.String getAlgorithm()
public final boolean equals(java.lang.Object o)
public java.lang.String toString()
Crypto.fromString(java.io.Reader)
public final void encrypt(byte[] source, int i, byte[] dest, int j)
source[i]
is encrypted and put in
dest[j]
.public final void decrypt(byte[] source, int i, byte[] dest, int j)
source[i]
is decrypted and put in
dest[j]
.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |