<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<style>
<!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
p
        {mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman";}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:Arial;
        color:windowtext;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
        {page:Section1;}
/* List Definitions */
@list l0
        {mso-list-id:1976331921;
        mso-list-template-ids:-530649006;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
-->
</style>
</head>
<body lang=EN-US link=blue vlink=purple>
<div class=Section1>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Hello All,<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>I’m working on SSL / TLS implementation in Squeak and
I need some help understanding RSA.<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>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.<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>I see that the parameter is needs to be the same for
encrypting and decrypting, or it doesn’t work.<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>My question is how is this stored on a certificate? <o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Here is the MS Export format <a
href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/seccrypto/security/private_key_blobs.asp">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/seccrypto/security/private_key_blobs.asp</a>
<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<table class=MsoNormalTable border=0 cellpadding=0 width="90%" bgcolor="#999999"
style='width:90.0%;background:#999999'>
<tr>
<td valign=bottom bgcolor="#CCCCCC" style='background:#CCCCCC;padding:3.0pt 6.0pt 3.0pt 6.0pt'>
<p class=MsoNormal style='mso-margin-top-alt:.1in;margin-right:0in;
margin-bottom:.05in;margin-left:0in'><b><font size=1 face=Verdana><span
style='font-size:8.5pt;font-family:Verdana;font-weight:bold'>Field<font
color=black><span style='color:black'><o:p></o:p></span></font></span></font></b></p>
</td>
<td valign=bottom bgcolor="#CCCCCC" style='background:#CCCCCC;padding:3.0pt 6.0pt 3.0pt 6.0pt'>
<p class=MsoNormal style='mso-margin-top-alt:.1in;margin-right:0in;
margin-bottom:.05in;margin-left:0in'><b><font size=1 face=Verdana><span
style='font-size:8.5pt;font-family:Verdana;font-weight:bold'>Description<font
color=black><span style='color:black'><o:p></o:p></span></font></span></font></b></p>
</td>
</tr>
<tr>
<td valign=top bgcolor=white style='border-top:none;border-left:none;
border-bottom:solid #CCCCCC 1.0pt;border-right:solid #CCCCCC 1.0pt;
background:white;padding:3.0pt 6.0pt 3.0pt 6.0pt'>
<p class=MsoNormal style='mso-margin-top-alt:.1in;margin-right:0in;
margin-bottom:.05in;margin-left:0in'><b><font size=1 face=Verdana><span
style='font-size:8.5pt;font-family:Verdana;font-weight:bold'>blobheader</span></font></b><font
size=1 color=black face=Verdana><span style='font-size:8.5pt;font-family:
Verdana;color:black'><o:p></o:p></span></font></p>
</td>
<td valign=top bgcolor=white style='border-top:none;border-left:none;
border-bottom:solid #CCCCCC 1.0pt;border-right:solid #CCCCCC 1.0pt;
background:white;padding:3.0pt 6.0pt 3.0pt 6.0pt'>
<p class=MsoNormal style='mso-margin-top-alt:.1in;margin-right:0in;
margin-bottom:.05in;margin-left:0in'><font size=1 face=Verdana><span
style='font-size:8.5pt;font-family:Verdana'>A <b><span style='font-weight:
bold'>BLOBHEADER</span></b> structure as described in a previous section. The
<b><span style='font-weight:bold'>bType</span></b> field must always have a
value of PRIVATEKEYBLOB.<font color=black><span style='color:black'><o:p></o:p></span></font></span></font></p>
</td>
</tr>
<tr>
<td valign=top bgcolor=white style='border-top:none;border-left:none;
border-bottom:solid #CCCCCC 1.0pt;border-right:solid #CCCCCC 1.0pt;
background:white;padding:3.0pt 6.0pt 3.0pt 6.0pt'>
<p class=MsoNormal style='mso-margin-top-alt:.1in;margin-right:0in;
margin-bottom:.05in;margin-left:0in'><b><font size=1 face=Verdana><span
style='font-size:8.5pt;font-family:Verdana;font-weight:bold'>rsapubkey</span></font></b><font
size=1 color=black face=Verdana><span style='font-size:8.5pt;font-family:
Verdana;color:black'><o:p></o:p></span></font></p>
</td>
<td valign=top bgcolor=white style='border-top:none;border-left:none;
border-bottom:solid #CCCCCC 1.0pt;border-right:solid #CCCCCC 1.0pt;
background:white;padding:3.0pt 6.0pt 3.0pt 6.0pt'>
<p class=MsoNormal style='mso-margin-top-alt:.1in;margin-right:0in;
margin-bottom:.05in;margin-left:0in'><font size=1 face=Verdana><span
style='font-size:8.5pt;font-family:Verdana'>A <a
href="http://msdn.microsoft.com/library/en-us/seccrypto/security/rsapubkey.asp"><b><span
style='font-weight:bold'>RSAPUBKEY</span></b></a> structure as described in <a
href="http://msdn.microsoft.com/library/en-us/seccrypto/security/public_key_blobs.asp">Public
Key BLOBs</a>. The <b><span style='font-weight:bold'>magic</span></b> field must
always have a value of 0x32415352 ("RSA2").<font color=black><span
style='color:black'><o:p></o:p></span></font></span></font></p>
</td>
</tr>
<tr>
<td valign=top bgcolor=white style='border-top:none;border-left:none;
border-bottom:solid #CCCCCC 1.0pt;border-right:solid #CCCCCC 1.0pt;
background:white;padding:3.0pt 6.0pt 3.0pt 6.0pt'>
<p class=MsoNormal style='mso-margin-top-alt:.1in;margin-right:0in;
margin-bottom:.05in;margin-left:0in'><b><font size=1 face=Verdana><span
style='font-size:8.5pt;font-family:Verdana;font-weight:bold'>modulus</span></font></b><font
size=1 color=black face=Verdana><span style='font-size:8.5pt;font-family:
Verdana;color:black'><o:p></o:p></span></font></p>
</td>
<td valign=top bgcolor=white style='border-top:none;border-left:none;
border-bottom:solid #CCCCCC 1.0pt;border-right:solid #CCCCCC 1.0pt;
background:white;padding:3.0pt 6.0pt 3.0pt 6.0pt'>
<p class=MsoNormal style='mso-margin-top-alt:.1in;margin-right:0in;
margin-bottom:.05in;margin-left:0in'><font size=1 face=Verdana><span
style='font-size:8.5pt;font-family:Verdana'>The modulus. This has a value of
"prime1 * prime2" and is often known as "n".<font
color=black><span style='color:black'><o:p></o:p></span></font></span></font></p>
</td>
</tr>
<tr>
<td valign=top bgcolor=white style='border-top:none;border-left:none;
border-bottom:solid #CCCCCC 1.0pt;border-right:solid #CCCCCC 1.0pt;
background:white;padding:3.0pt 6.0pt 3.0pt 6.0pt'>
<p class=MsoNormal style='mso-margin-top-alt:.1in;margin-right:0in;
margin-bottom:.05in;margin-left:0in'><b><font size=1 face=Verdana><span
style='font-size:8.5pt;font-family:Verdana;font-weight:bold'>prime1</span></font></b><font
size=1 color=black face=Verdana><span style='font-size:8.5pt;font-family:
Verdana;color:black'><o:p></o:p></span></font></p>
</td>
<td valign=top bgcolor=white style='border-top:none;border-left:none;
border-bottom:solid #CCCCCC 1.0pt;border-right:solid #CCCCCC 1.0pt;
background:white;padding:3.0pt 6.0pt 3.0pt 6.0pt'>
<p class=MsoNormal style='mso-margin-top-alt:.1in;margin-right:0in;
margin-bottom:.05in;margin-left:0in'><font size=1 face=Verdana><span
style='font-size:8.5pt;font-family:Verdana'>Prime number 1, often known as
"p".<font color=black><span style='color:black'><o:p></o:p></span></font></span></font></p>
</td>
</tr>
<tr>
<td valign=top bgcolor=white style='border-top:none;border-left:none;
border-bottom:solid #CCCCCC 1.0pt;border-right:solid #CCCCCC 1.0pt;
background:white;padding:3.0pt 6.0pt 3.0pt 6.0pt'>
<p class=MsoNormal style='mso-margin-top-alt:.1in;margin-right:0in;
margin-bottom:.05in;margin-left:0in'><b><font size=1 face=Verdana><span
style='font-size:8.5pt;font-family:Verdana;font-weight:bold'>prime2</span></font></b><font
size=1 color=black face=Verdana><span style='font-size:8.5pt;font-family:
Verdana;color:black'><o:p></o:p></span></font></p>
</td>
<td valign=top bgcolor=white style='border-top:none;border-left:none;
border-bottom:solid #CCCCCC 1.0pt;border-right:solid #CCCCCC 1.0pt;
background:white;padding:3.0pt 6.0pt 3.0pt 6.0pt'>
<p class=MsoNormal style='mso-margin-top-alt:.1in;margin-right:0in;
margin-bottom:.05in;margin-left:0in'><font size=1 face=Verdana><span
style='font-size:8.5pt;font-family:Verdana'>Prime number 2, often known as
"q".<font color=black><span style='color:black'><o:p></o:p></span></font></span></font></p>
</td>
</tr>
<tr>
<td valign=top bgcolor=white style='border-top:none;border-left:none;
border-bottom:solid #CCCCCC 1.0pt;border-right:solid #CCCCCC 1.0pt;
background:white;padding:3.0pt 6.0pt 3.0pt 6.0pt'>
<p class=MsoNormal style='mso-margin-top-alt:.1in;margin-right:0in;
margin-bottom:.05in;margin-left:0in'><b><font size=1 face=Verdana><span
style='font-size:8.5pt;font-family:Verdana;font-weight:bold'>exponent1</span></font></b><font
size=1 color=black face=Verdana><span style='font-size:8.5pt;font-family:
Verdana;color:black'><o:p></o:p></span></font></p>
</td>
<td valign=top bgcolor=white style='border-top:none;border-left:none;
border-bottom:solid #CCCCCC 1.0pt;border-right:solid #CCCCCC 1.0pt;
background:white;padding:3.0pt 6.0pt 3.0pt 6.0pt'>
<p class=MsoNormal style='mso-margin-top-alt:.1in;margin-right:0in;
margin-bottom:.05in;margin-left:0in'><font size=1 face=Verdana><span
style='font-size:8.5pt;font-family:Verdana'>Exponent 1. This has a numeric
value of "d mod (p - 1)".<font color=black><span style='color:black'><o:p></o:p></span></font></span></font></p>
</td>
</tr>
<tr>
<td valign=top bgcolor=white style='border-top:none;border-left:none;
border-bottom:solid #CCCCCC 1.0pt;border-right:solid #CCCCCC 1.0pt;
background:white;padding:3.0pt 6.0pt 3.0pt 6.0pt'>
<p class=MsoNormal style='mso-margin-top-alt:.1in;margin-right:0in;
margin-bottom:.05in;margin-left:0in'><b><font size=1 face=Verdana><span
style='font-size:8.5pt;font-family:Verdana;font-weight:bold'>exponent2</span></font></b><font
size=1 color=black face=Verdana><span style='font-size:8.5pt;font-family:
Verdana;color:black'><o:p></o:p></span></font></p>
</td>
<td valign=top bgcolor=white style='border-top:none;border-left:none;
border-bottom:solid #CCCCCC 1.0pt;border-right:solid #CCCCCC 1.0pt;
background:white;padding:3.0pt 6.0pt 3.0pt 6.0pt'>
<p class=MsoNormal style='mso-margin-top-alt:.1in;margin-right:0in;
margin-bottom:.05in;margin-left:0in'><font size=1 face=Verdana><span
style='font-size:8.5pt;font-family:Verdana'>Exponent 2. This has a numeric
value of "d mod (q - 1)".<font color=black><span style='color:black'><o:p></o:p></span></font></span></font></p>
</td>
</tr>
<tr>
<td valign=top bgcolor=white style='border-top:none;border-left:none;
border-bottom:solid #CCCCCC 1.0pt;border-right:solid #CCCCCC 1.0pt;
background:white;padding:3.0pt 6.0pt 3.0pt 6.0pt'>
<p class=MsoNormal style='mso-margin-top-alt:.1in;margin-right:0in;
margin-bottom:.05in;margin-left:0in'><b><font size=1 face=Verdana><span
style='font-size:8.5pt;font-family:Verdana;font-weight:bold'>coefficient</span></font></b><font
size=1 color=black face=Verdana><span style='font-size:8.5pt;font-family:
Verdana;color:black'><o:p></o:p></span></font></p>
</td>
<td valign=top bgcolor=white style='border-top:none;border-left:none;
border-bottom:solid #CCCCCC 1.0pt;border-right:solid #CCCCCC 1.0pt;
background:white;padding:3.0pt 6.0pt 3.0pt 6.0pt'>
<p class=MsoNormal style='mso-margin-top-alt:.1in;margin-right:0in;
margin-bottom:.05in;margin-left:0in'><font size=1 face=Verdana><span
style='font-size:8.5pt;font-family:Verdana'>Coefficient. This has a numeric
value of "(inverse of q) mod p".<font color=black><span
style='color:black'><o:p></o:p></span></font></span></font></p>
</td>
</tr>
<tr>
<td valign=top bgcolor=white style='border-top:none;border-left:none;
border-bottom:solid #CCCCCC 1.0pt;border-right:solid #CCCCCC 1.0pt;
background:white;padding:3.0pt 6.0pt 3.0pt 6.0pt'>
<p class=MsoNormal style='mso-margin-top-alt:.1in;margin-right:0in;
margin-bottom:.05in;margin-left:0in'><b><font size=1 face=Verdana><span
style='font-size:8.5pt;font-family:Verdana;font-weight:bold'>privateExponent</span></font></b><font
size=1 color=black face=Verdana><span style='font-size:8.5pt;font-family:
Verdana;color:black'><o:p></o:p></span></font></p>
</td>
<td valign=top bgcolor=white style='border-top:none;border-left:none;
border-bottom:solid #CCCCCC 1.0pt;border-right:solid #CCCCCC 1.0pt;
background:white;padding:3.0pt 6.0pt 3.0pt 6.0pt'>
<p class=MsoNormal style='mso-margin-top-alt:.1in;margin-right:0in;
margin-bottom:.05in;margin-left:0in'><font size=1 face=Verdana><span
style='font-size:8.5pt;font-family:Verdana'>Private exponent, often known as
"d".<font color=black><span style='color:black'><o:p></o:p></span></font></span></font></p>
</td>
</tr>
</table>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p style='background:#F8FCFF'><font size=2 face=Arial><span style='font-size:
10.0pt;font-family:Arial'>I also noticed that : <a
href="http://en.wikipedia.org/wiki/RSA">http://en.wikipedia.org/wiki/RSA</a> <o:p></o:p></span></font></p>
<p style='background:#F8FCFF'><font size=3 face="Times New Roman"><span
lang=EN style='font-size:12.0pt'>For reasons of efficiency sometimes a
different form of the <b><span style='font-weight:bold'>private key</span></b>
(including <b><span style='font-weight:bold'>CRT parameters</span></b>) is
stored:<o:p></o:p></span></font></p>
<ul type=disc lastCheckbox=null>
<li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
mso-list:l0 level1 lfo1;background:#F8FCFF'><i><font size=3
face="Times New Roman"><span lang=EN style='font-size:12.0pt;font-style:
italic'>p</span></font></i><span lang=EN> and <i><span style='font-style:
italic'>q</span></i>, the primes from the key generation, <o:p></o:p></span></li>
<li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
mso-list:l0 level1 lfo1;background:#F8FCFF'><i><font size=3
face="Times New Roman"><span lang=EN style='font-size:12.0pt;font-style:
italic'>d mod (p-1)</span></font></i><span lang=EN> and <i><span
style='font-style:italic'>d mod (q-1)</span></i> (often known as <i><span
style='font-style:italic'>dmp1</span></i> and <i><span style='font-style:
italic'>dmq1</span></i>) <o:p></o:p></span></li>
<li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
mso-list:l0 level1 lfo1;background:#F8FCFF'><i><font size=3
face="Times New Roman"><span lang=EN style='font-size:12.0pt;font-style:
italic'>(1/q) mod p</span></font></i><span lang=EN> (often known as <i><span
style='font-style:italic'>iqmp</span></i>) <o:p></o:p></span></li>
</ul>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN style='font-size:10.0pt;
font-family:Arial'>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. <o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN style='font-size:10.0pt;
font-family:Arial'>Thanks!<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN style='font-size:10.0pt;
font-family:Arial'>Ron Teitelbaum<o:p></o:p></span></font></p>
</div>
</body>
</html>