Présentations de l'algo RSA:
Implémentations RSA (et du BigInt) en Javascript:
Bench Signature RSA clé 2048 bits:
Bench Signature RSA clé 1024 bits:
RSAParameters Structure (msdn)
RSAParameters field | Contains | Corresponding PKCS #1 field |
---|---|---|
D | d, the private exponent | privateExponent |
DP | d mod (p - 1) | exponent1 |
DQ | d mod (q - 1) | exponent2 |
Exponent | e, the public exponent | publicExponent |
InverseQ | (InverseQ)(q) = 1 mod p | coefficient |
Modulus | n | modulus |
P | p | prime1 |
Q | q | prime2 |
int dwKeySize = 384 ; bool exportPrivateKey = true ; RSACryptoServiceProvider rsa = new RSACryptoServiceProvider( dwKeySize ); using( StreamWriter sw = new StreamWriter( "RSAParameters.xml" ) ) { sw.Write( rsa.ToXmlString( exportPrivateKey ) ); sw.Close(); }
Format .Net System.Security.Cryptography.RSACryptoServiceProvider.ToXmlString() :
Private:
<RSAKeyValue> <Modulus>3XGodAOyDWfoGGMelpKft1Wx1E15m5yot4Rj0ppWpa/wTaHcudYfl+VIq+0EaC4N</Modulus> <Exponent>AQAB</Exponent> <P>+dhBWqM/4f1FBB3dP2fqKfhRnsfGqgTz</P> <Q>4uZIM7QCetizjB9PGLoLcLIM2f1vDcD/</Q> <DP>U2mXqCMImPJtsEooK5sN2qVE2rXn5atx</DP> <DQ>xblS9etJte+dFuA5txx4163w0Q2udtfV</DQ> <InverseQ>3q9gba8r1cFdsp/0uAYO3aVn7gnwqCPG</InverseQ> <D>W9XmAW8C6XJdG7gHmHRoTlT4sc4Lj9BwliwVb9fN0sSqbF4UlABupXlIZTyuCBS1</D> </RSAKeyValue>
Public only:
<RSAKeyValue> <Modulus>t6yVboVvHOyCpOH7/hdA2cRlmkDoMZJc3cC72PpakR2/7dbq9Lqc1a+MY09sOMDH</Modulus> <Exponent>AQAB</Exponent> </RSAKeyValue>