On Tue, Jul 08, 2008 at 03:27:08PM +0530, Nilay Tripathi wrote:
> Generating 'p' randomly as a safe prime and using 'g' order as 5, the
> keys generated are not consistently passing Sec 5.6.2.4 KAT test. 

It would be a good idea for you to understand why this is, rather than
just iterate until it passes.

Setting 'g' to 5 won't always work!  The expectation of SP800-56 is that
the generator (g) generates the q-ordered multiplicative subgroup of Z_p.
Because p is a safe-prime, the only possible value for q is (p-1)/2 (this
can be otherwise stated as "q is a Sophie Germain prime and p=2q+1").
Because of this selection for p, the multiplicative group Z_p is very
simple: it has a subgroup of size 2q (the whole group) a subgroup of
size q, a subgroup of size 2 and a subgroup of size 1.

g=5 is going to be either order q or order 2q.  To be consistent with
SP800-56 you need it to be order q.  If you run the required public key
validation test on a public key where g is 2q-ordered, then it will
fail roughly half the time.  This doesn't mean that you need to just
keep trying until it works, this means that your selection for g wasn't
compliant with SP800-56 in the first place!

When generating domain parameters you can test to see if you have an
order-q generator by taking g^q mod p and verifying that it equals 1.
If it instead equals (p-1) then you have a 2q-ordered generator; you
should either choose a different generator or choose a different value
for p.

                        Josh
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       openssl-dev@openssl.org
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to