我想使用2048位DSA密鑰,並且我正在使用.NET DSACryptoServiceProvider
。我是有麻煩的關鍵參數裝載到.NET DSAParameters
對象,所以我寫下面的代碼輸出有效密鑰大小爲DSACryptoServiceProvider
:.NET 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位密鑰不是一個選項。
----編輯-----
我所列舉的LegalKeySizes
爲具有數字簽名處理所有的.NET CryptoServiceProvider
類。結果如下。
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位範圍?
由@bartonjs發佈,.NET Framework 4.6.2增加了對FIPS 186-3數字簽名算法(DSA)的支持。 (請參閱https://blogs.msdn.microsoft.com/dotnet/2016/08/02/announcing-net-framework-4-6-2/) – David 2016-08-05 12:15:46