|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.logi.crypto.Crypto
org.logi.crypto.keys.K
org.logi.crypto.keys.SymmetricKey
org.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 given no known plaintext.
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.
Field Summary |
Fields inherited from class org.logi.crypto.keys.K |
fingerprint, otherFingerprint |
Fields inherited from class org.logi.crypto.Crypto |
BIT, cdsPath, EMPTY_ARRAY, FOUR, keySource, NIBBLE, ONE, primeCertainty, random, TWO, ZERO |
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 1 byte. |
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 org.logi.crypto.keys.SymmetricKey |
calcFingerprint, isPrivate, matches |
Methods inherited from class org.logi.crypto.keys.K |
getFingerprint, getFingerprint, hashCode, matchFingerprint, matchFingerprint |
Methods inherited from class org.logi.crypto.Crypto |
binString, binString, equal, equalRelaxed, equalSub, fromHexNibble, fromHexString, fromString, fromString, hexString, hexString, hexString, hexString, hexString, initRandom, initRandom, makeClass, makeInt, makeLong, makeSessionKey, pastSpace, pickBits, pickBits, readBlock, readInt, writeBytes, writeBytes, writeInt |
Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Methods inherited from interface org.logi.crypto.keys.Key |
getFingerprint, getFingerprint, hashCode, isPrivate, matches, matchFingerprint, matchFingerprint |
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.
InvalidCDSException
- if the CDS is malformed.Crypto.fromString(String)
public int getSize()
getSize
in interface Key
public final int plainBlockSize()
plainBlockSize
in interface CipherKey
public final int cipherBlockSize()
cipherBlockSize
in interface CipherKey
public java.lang.String getAlgorithm()
getAlgorithm
in interface Key
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]
.
encrypt
in interface CipherKey
public final void decrypt(byte[] source, int i, byte[] dest, int j)
source[i]
is decrypted and put in
dest[j]
.
decrypt
in interface CipherKey
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |