|
|||||||||
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.DHKey
This object holds one Diffie-Hellman key. It is not used for encryption or signatures, but only to initialize Difie-Hellman key-exchange objects.
CDS for a Diffie-Hellman key is DHKey(a,g,m,pub)
for a public key or DHKey(a,g,m,pri)
for a private
key. In both cases a
,g
and m
are
hexadecimal numbers.
DHKeyExNoninter
Fields inherited from class is.logi.crypto.Crypto |
BIT,
cdsPath,
keySource,
NIBBLE,
primeCertainty,
random |
Constructor Summary | |
DHKey(java.math.BigInteger a,
java.math.BigInteger g,
java.math.BigInteger m,
boolean pri)
Create a new Diffie-Hellman key. |
|
DHKey(int n)
Create a random private DHKey with an n
bit modulus. |
Method Summary | |
static KeyPair |
createKeys(int n)
Create a pair of public/private keys in a group with an n bit modulo. |
boolean |
equals(java.lang.Object o)
Return true iff the two keys are equivalent. |
java.lang.String |
getAlgorithm()
The name of the algorithm is "Diffie-Hellman". |
java.math.BigInteger |
getG()
Return the generator for this key. |
static java.math.BigInteger |
getGenerator(java.math.BigInteger m)
Return a Generator for a modulus group. |
java.math.BigInteger |
getKey()
Return the BigInteger representing this key. |
java.math.BigInteger |
getM()
Return the modulus for this key. |
static java.math.BigInteger |
getModulus(int n)
Return a Diffie-Hellman modulus. |
DHKey |
getPublic()
Return the public key from the pair. |
int |
getSize()
Return the "size" of the key. |
boolean |
isPrivate()
Returns true iff this is a private key. |
boolean |
matches(Key key)
Check if a key mathces this. |
static DHKey |
parseCDS(java.lang.String key)
If "DHKey( key )" is a valid CDS for a DHKey, then DHKey.parseCDS(key) will return the described DHKey object. |
java.lang.String |
toString()
Return a CDS for this key. |
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 DHKey(java.math.BigInteger a, java.math.BigInteger g, java.math.BigInteger m, boolean pri)
a
in the group modulo m
with generator g
. It is
a private key iff pri is true
.
public DHKey(int n)
n
bit modulus.
Pre-calcualted modula exist for bit lengths 256, 512, 1024 and 2048. Using these values saves a lot of time and does not weaken the keys.
Method Detail |
public static DHKey parseCDS(java.lang.String key) throws InvalidCDSException
A valid CDS can be created by calling the DHKey.toString() method.
Crypto.fromString(String)
public static java.math.BigInteger getModulus(int n)
Return the largest prime p
< 2^n
such
that (p
-1)/2 is prime. This takes a long time unless
n
is one of 256, 512, 1024 or 2048.
The reason for the second constraint on p
is to make
the Discrete-Logarithm problem harder in the group Zp. In
particular it thwarts the Pholig-Hellman algorithm.
public static java.math.BigInteger getGenerator(java.math.BigInteger m)
Returns the smallest number g
> 1 with
gcd(g
,m-1
)=1.
public static KeyPair createKeys(int n)
n
bit modulo.
Pre-calcualted modula exist for bit lengths 256, 512, 1024 and 2048. Using these values saves a lot of time and does not weaken the keys.
public int getSize()
public java.lang.String getAlgorithm()
public boolean isPrivate()
public DHKey getPublic()
public java.math.BigInteger getKey()
public java.math.BigInteger getM()
public java.math.BigInteger getG()
public final boolean equals(java.lang.Object o)
public boolean matches(Key key)
public java.lang.String toString()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |