Hello All,
I’m working on SSL / TLS implementation in Squeak and
I need some help understanding RSA.
It appears that our RSA implementation has an
encodingParameter. I see what it’s doing but now I’m confused
and was hoping that someone could explain this to me.
I see that the parameter is needs to be the same for
encrypting and decrypting, or it doesn’t work.
My question is how is this stored on a certificate?
Here is the MS Export format http://msdn.microsoft.com/library/default.asp?url=/library/en-us/seccrypto/security/private_key_blobs.asp
Field |
Description |
blobheader |
A BLOBHEADER structure as described in a previous section. The
bType field must always have a
value of PRIVATEKEYBLOB. |
rsapubkey |
A RSAPUBKEY structure as described in Public
Key BLOBs. The magic field must
always have a value of 0x32415352 ("RSA2"). |
modulus |
The modulus. This has a value of
"prime1 * prime2" and is often known as "n". |
prime1 |
Prime number 1, often known as
"p". |
prime2 |
Prime number 2, often known as
"q". |
exponent1 |
Exponent 1. This has a numeric
value of "d mod (p - 1)". |
exponent2 |
Exponent 2. This has a numeric
value of "d mod (q - 1)". |
coefficient |
Coefficient. This has a numeric
value of "(inverse of q) mod p". |
privateExponent |
Private exponent, often known as
"d". |
I also noticed that : http://en.wikipedia.org/wiki/RSA
For reasons of efficiency sometimes a
different form of the private key
(including CRT parameters) is
stored:
Does this mean that the parameter is the coefficient? Is
the CRT parameter the encoding parameter? Any help would be very much appreciated,
I’m having trouble understanding the differences, and how the parameter
is supposed to be used.
Thanks!
Ron Teitelbaum