<div dir="ltr"><div class="gmail_quote"><div dir="ltr"><p class="MsoNormal">Hello,</p>

<p class="MsoNormal"><br></p>

<p class="MsoNormal">Our product was FIPS-certified a few years ago. We are now
about to start the re-certification process.</p>

<p class="MsoNormal"><br></p>

<p class="MsoNormal">The test for RSA X9.31 key generation have somewhat changed,
or so it looks like to me anyway.</p>

<p class="MsoNormal"><br></p>

<p class="MsoNormal">A few years ago, we received test vectors with the following
parameters: modulus size, e, xp1, xp2, Xp, xq1, xq2, Xq.</p>

<p class="MsoNormal">The response we provided included the previous parameters
and these generated values: p, q, n, d.</p>

<p class="MsoNormal"><br></p>

<p class="MsoNormal">We used 
FIPS_rsa_x931_derive_ex()  to
generate the values. </p>

<p class="MsoNormal">I believe this function implements section B.3.6: Generation
of Probable Primes with Conditions Based on Auxiliary Probable Primes. Prime
method: Primes p1, p2, q1,q2, p and q shall all be probable primes.</p>

<p class="MsoNormal">Is my assumption correct?</p>

<p class="MsoNormal"><br></p>

<p class="MsoNormal">If so, we’d like to minimise effort and reuse our test sw
for the new tests in <span><a href="http://csrc.nist.gov/groups/STM/cavp/documents/dss2/rsa2vs.pdf" target="_blank">http://csrc.nist.gov/groups/STM/cavp/documents/dss2/rsa2vs.pdf</a>.</span></p>

<p class="MsoNormal"><br></p>

<p class="MsoNormal">I’m looking at section 6.2.1 where the parameters are:
modulus size, e, N=25 (number of iterations). It seems to me that we have to
send a response with all of the other parameters: xp1, xp2, Xp, xq1, xq2, Xq,
p, q, n, d. </p>

<p class="MsoNormal">xp1, xp2, Xp, xq1, xq2, Xq are random numbers, some of them
have to be odd.</p>

<p class="MsoNormal"><br></p>

<p class="MsoNormal">Which function(s) do you suggest to use to generate them? </p>

<p class="MsoNormal">Or can I just use FIPS_rsa_x931_generate_key_ex() ? Is this
used with a fixed exponent? Does it also implement section B.3.6?</p>

<p class="MsoNormal"><br></p>

<p class="MsoNormal">We also have to indicate to NIST the type of Probabilistic
Primality Test the (specific) OpenSSL functions use:</p><p>a)<span style="font-stretch:normal;font-size:7pt;font-family:'Times New Roman'">     
</span>Table C.2. Minimum number of rounds of M-R
testing when generating primes</p><p>b)<span style="font-stretch:normal;font-size:7pt;font-family:'Times New Roman'">     
</span>Table C.3. Minimum number of rounds of M-R
testing when generating primes using an error probability of 2^–100</p><p class="MsoNormal"><br></p>

<p class="MsoNormal">Which one(s) does OpenSSL implement? If both, how is that
chosen?</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">Many thanks in advance.</p><p class="MsoNormal"><br></p></div>
</div><br></div>