你好,歡迎來到IOS教程網

 Ios教程網 >> IOS訊息 >> 關於IOS >> RSA與ECC的選擇

RSA與ECC的選擇

編輯:關於IOS

數字簽名技術已經廣泛使用於網絡安全協議或分布式系統中,目前比較流行的數字簽名算法有RSA和ECDSA。很多同學在產品設計中往往都難以區分RSA和ECDSA的優劣,所以筆者將基於自己的實踐,來給出一些初步的建議。

1. 密碼強度比較

Symmetric
ECC
RSA
80 163 1024 112 233 2240 128 283 3072 192 409 7680

這是學術界普遍認可的密碼強度對照表。比如,3072-bit的RSA密碼強度,大約相當於283-bit的ECC密碼強度,大約相當於128-bit的對稱密碼算法的強度。換句話說,攻擊分組加密算法AES-128的難度,與攻擊數字簽名RSA-3072的難度相當。此外,我們應注意到,從RSA-1024到RSA-3072,模數長度增長了200%,但密碼強度僅增強了50%左右;拿密碼哈希函數來比較,這個安全強度的增長只是相當於從SHA1增強到SHA-256。

2. 性能比較

筆者基於開源的tommathlib實現了ECDSA(符合ANSI X9.62標准)和RSA簽名算法(符合PKCS#1 v2.1, e=65537)。

Verify
Sign
RSA-1024
12 us 511 us RSA-2048
30 us 3270 us ECDSA-192
590 us 490 us

表中數據是筆者基於自己的開發機器(Intel Xeon CPU E5520  @ 2.27GHz)上單線程運行得出的實驗結果。對於ECDSA來說,生成簽名與驗證簽名的開銷相差不大,而對於RSA來說,驗證簽名比生成簽名要高效得多,這是因為RSA可以選用小公鑰指數,比如{3, 5, 17, 257 or 65537},而安全強度不變。如果只看單次操作,那麼ECDSA的Sign操作比RSA的性能更好,而RSA的Verify要比ECDSA更好。

3. 結論

(1) RSA簽名算法適合於:Verify操作頻度高,而Sign操作頻度低的應用場景。比如,分布式系統中基於capability的訪問控制就是這樣的一種場景。
(2) ECDSA簽名算法適合於:Sign和Verify操作頻度相當的應用場景。比如,點對點的安全信道建立。

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved