【发布时间】:2012-07-10 02:50:09
【问题描述】:
我想使用 2048 位 DSA 密钥,并且我使用的是 .NET DSACryptoServiceProvider。我在将关键参数加载到 .NET DSAParameters 对象时遇到问题,因此我编写了以下代码来输出 DSACryptoServiceProvider 的有效密钥大小:
DSACryptoServiceProvider sampleDSA = new DSACryptoServiceProvider();
Console.Write("----- DSA LEGAL KEY SIZES -----\n");
foreach (KeySizes ks in sampleDSA.LegalKeySizes)
{
Console.WriteLine("Min: " + ks.MinSize.ToString());
Console.WriteLine("Max: " + ks.MaxSize.ToString());
}
数组中只有一个KeySizes对象,输出如下:
----- DSA LEGAL KEY SIZES -----
Min: 512
Max: 1024
有没有办法使用DSACryptoServiceProvider 获得 2048 位密钥?不能使用 1024 位密钥。
----编辑-----
我列举了所有处理数字签名的 .NET CryptoServiceProvider 类的 LegalKeySizes。结果如下。
System.Security.Cryptography.DSACryptoServiceProvider
Min: 512
Max: 1024
System.Security.Cryptography.RSACryptoServiceProvider
Min: 384
Max: 16384
System.Security.Cryptography.ECDsaCng
Min: 256
Max: 384
Min: 521
Max: 521
我想问的是:有没有办法通过DSACryptoServiceProvider 调整它以使用 2048 位密钥,还是我被锁定在 512-1024 位范围内?
【问题讨论】:
标签: c# .net security public-key-encryption public-key