All Packages  Class Hierarchy  This Package  Previous  Next  Index

Class is.hi.logir.cryptonite.DHKey

java.lang.Object
   |
   +----is.hi.logir.cryptonite.Cryptonite
           |
           +----is.hi.logir.cryptonite.K
                   |
                   +----is.hi.logir.cryptonite.DHKey

public class DHKey
extends K
implements Key
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.

Author:
Logi Ragnarsson (logir@hi.is)

Constructor Index

 o DHKey(BigInteger, BigInteger, BigInteger, boolean)
Create new Diffie-Hellman key for a in the group modulo m with generator g.
 o DHKey(int)
Create a random private DHKey with an n

Method Index

 o createKeys(int)
Create a pair of public/private keys in a group with an n bit modulo.
 o equals(Object)
Return true if the two keys are eqivalent.
 o getAlgorithm()
Return the name of the algorithm used by this key.
 o getG()
Return the generator for this key.
 o getGenerator(BigInteger)
Returns the smallest number g > 1 with gcd(g,m)=1.
 o getKey()
Return the BigInteger representing this key.
 o getM()
Return the modulus for this key.
 o getModulus(int)
Return the largest prime p < 2^n such that (p-1)/2 is prime.
 o getPublic()
Return the BigInteger representing the public key from the pair.
 o getSize()
Return the "size" of the key.
 o isPrivate()
Returns true iff this is a private key.
 o matches(Key)
Returns true if this and key are a matched pair of public/private keys or the same symmetric key.
 o toString()
Return a CDS for this key.

Constructors

 o DHKey
 public DHKey(BigInteger a,
              BigInteger g,
              BigInteger m,
              boolean pri)
Create new Diffie-Hellman key for a in the group modulo m with generator g. It is a private key iff pri is true.

 o DHKey
 public DHKey(int n)
Create a random private DHKey with an n Pe-calcualted modula exist for bit lengths 256, 512 and 1024. (The 2048 bit modulus is still being calculated. Using these values saves a lot of time and does not weaken the keys.

Methods

 o getModulus
 public static BigInteger getModulus(int n)
Return the largest prime p < 2^n such that (p-1)/2 is prime.

 o getGenerator
 public static BigInteger getGenerator(BigInteger m)
Returns the smallest number g > 1 with gcd(g,m)=1.

 o createKeys
 public static KeyPair createKeys(int n)
Create a pair of public/private keys in a group with an n bit modulo.

Pe-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.

 o getSize
 public int getSize()
Return the "size" of the key. This is a measure of how difficult it is to break and is heavily dependant on the algorithm used. In many cases it will be the actual number of bits needed to store the key.

Overrides:
getSize in class K
 o getAlgorithm
 public String getAlgorithm()
Return the name of the algorithm used by this key.

Overrides:
getAlgorithm in class K
 o isPrivate
 public boolean isPrivate()
Returns true iff this is a private key. The default behaviour is to always return true. Classes for asymmetric keys should override this.

Overrides:
isPrivate in class K
 o getPublic
 public DHKey getPublic()
Return the BigInteger representing the public key from the pair.

 o getKey
 public BigInteger getKey()
Return the BigInteger representing this key.

 o getM
 public BigInteger getM()
Return the modulus for this key.

 o getG
 public BigInteger getG()
Return the generator for this key.

 o equals
 public final boolean equals(Object o)
Return true if the two keys are eqivalent.

Overrides:
equals in class Object
 o matches
 public boolean matches(Key key)
Returns true if this and key are a matched pair of public/private keys or the same symmetric key. The default behaviour is to return the same value as equals(key).

Overrides:
matches in class K
 o toString
 public String toString()
Return a CDS for this key.

Overrides:
toString in class Object

All Packages  Class Hierarchy  This Package  Previous  Next  Index