在Silverlight4 Beta版本發布的時候,Silverlight4 Beta的SDK中還不包含System.Numerics.dll庫。要實現RSA演算法,還得利用其他BigInteger類。可參見我上一篇文章《Silverlight中非對稱式加密及數位簽章RSA演算法的實現》。
現在Silverlight4正式發布了。在Silverlight4正式版的SDK中包含了System.Numerics.dll庫。並且該庫中實現了BigInteger類。因此,現在要在Silverlight下實現RSA演算法,可以直接利用微軟提供的BigInteger類了。
微軟提供的BigInteger類,經測試效能比Chew Keong TAN的BigInteger類有幾十倍的提升。
以下是利用Chew Keong TAN的BigInteger類實現的RSA演算法的測試結果:
|
1024b資料 |
1KB資料 |
10KB資料 |
| 私密金鑰加密 |
00:00:01.4250000 |
00:00:04.2260000 |
00:00:35.6540000 |
| 公開金鑰加密 |
00:00:00.0360000 |
00:00:00.1070000 |
00:00:00.9030000 |
以下是利用System.Numerics.BigInteger類實現的RSA演算法的測試結果:
|
1024b資料 |
1KB資料 |
10KB資料 |
| 私密金鑰加密 |
00:00:00.1130000 |
00:00:00.3730000 |
00:00:02.8640000 |
| 公開金鑰加密 |
00:00:00.0010000 |
00:00:00.0040000 |
00:00:00.0320000 |
說明:測試使用1024位長的密鑰,e由.NET Framework中預設選擇的是65537。
本文基於署名 2.5 中國大陸許可協議發布,歡迎轉載,演繹或用於商業目的,但是必須保留本文的署名KevinShan(包含連結)。如您有任何疑問或者授權方面的協商,請給我留言。
利用System.Numerics.BigInteger類實現的RSA演算法原始碼下載:
RSAManaged.zip