Key Length
- A general purpose Root CA should never be larger than 2048 bits. Reason: MSFT Support sees many cases where Java apps or network devices only support key sizes of 2048 bytes. Save the higher bit lengths to CAs that are constrained for a specific purpose (Windows vs Network devices) etc.
Choosing a Hash
Windows 2003 and XP clients may need a patch for SHA2 Algorithms which include SHA256, SHA384, and SHA512. See more technical information
Authenticode and S/MIME with SHA2 hashing is not supported on XP or 2003
"Regarding SHA-224 support, SHA-224 offers less security than SHA-256 but takes the same amount of resources. Also SHA-224 is not generally used by protocols and applications. The NSA's Suite B standards also do not include it." source
Choosing a Cryptographic Provider
I'm not sure which one to choose so I'll post this link to a list of providers
High Security/Suite B Deployments
Here is information regarding the Suite B algorithms supported in Windows 2008 and R2
ALGORITHM SECRET TOP SECRET
Encryption:
Advanced Standard (AES) 128 bits 256 bits
Digital Signature:
Elliptic Curve Digital Signature Algorithm (ECDSA) 256 bit curve. 384 bit curve
Key Exchange:
Elliptic Curve Diffie-Hellman (ECDH) 256 bit curve. 384 bit curve
Hashing:
Secure Hash Algorithm (SHA) SHA-256 SHA-384
For Suite B compliance, the ECDSA_P384#Microsoft Software Key Service Provider
as well as the 384
key size and SHA384
as the hash algorithm may also be selected if the level of classification desired is Top Secret. The settings that correspond with the required level of classification should be used. ECDSA_P521
is also available as an option. While the use of a 521 bit ECC curve may exceed the cryptographic requirements of Suite B, due to the non-standard key size, 521 is not part of the official Suite B specification.
Finally one should know that installing AD Certificate Services isn't as simple as adding the role. The file CAPolicy.inf should be edited as needed for your environment