cryptix.provider.elgamal

Class GenericElGamalParameterSet

public class GenericElGamalParameterSet extends Object

This class represents a set of ElGamal parameters for various prime lengths.

The best methods for computing discrete logarithms in GF(p) have an expensive pre-computation stage, but once the pre-computation has been done, individual logarithms can be calculated quickly. In order to make sure that a particular set of parameters does not become too much of a target because it is used in more than one application, you may wish to generate your own set of parameters.

References:

  1. Bruce Schneier, "Section 11.3 Number Theory" (heading "Calculating Discrete Logarithms in a Finite Group," pages 262-263), Applied Cryptography, 2nd edition, John Wiley & Sons, 1996.

Copyright © 1997 Systemics Ltd on behalf of the Cryptix Development Team.
All rights reserved.

$Revision: 1.4 $

Since: Cryptix 2.2.2

Author: David Hopwood

See Also: cryptix.examples.CreateElGamalParameterSet cryptix.security.elgamal.BaseElGamalKeyPairGenerator

Constructor Summary
protected GenericElGamalParameterSet(int[] primeLengths, String[][] precomputed)
Subclasses should call this constructor to determine the parameters that will be returned by getParameters.
Method Summary
voidcheckSane()
Throws an InvalidParameterException if any of the parameters are obviously incorrect.
ElGamalParamsgetParameters(int primeLength)
If primeLength corresponds to one of the precomputed prime lengths, this method returns a corresponding ElGamalParams object.

Constructor Detail

GenericElGamalParameterSet

protected GenericElGamalParameterSet(int[] primeLengths, String[][] precomputed)
Subclasses should call this constructor to determine the parameters that will be returned by getParameters.

Parameters: primeLengths an array of bit lengths for each prime precomputedP an array of hex strings representing each prime precomputedG an array of hex strings representing each base

Throws: IllegalArgumentException if the arrays are not all the same length.

Method Detail

checkSane

public void checkSane()
Throws an InvalidParameterException if any of the parameters are obviously incorrect.

getParameters

public ElGamalParams getParameters(int primeLength)
If primeLength corresponds to one of the precomputed prime lengths, this method returns a corresponding ElGamalParams object. Otherwise, it returns null.