RSA公鑰指數的選取
1:什么是RSA公鑰指數,
首先了解一下RSA密鑰的建立流程,如下圖所示:

(1)選擇兩個不同的大素數p和q;
(2)計算公共模數(n=pq)和歐拉數(eular=(p-1)(q-1));
(3)選擇公鑰指數e;
(4)計算inverse(d);
(5)生成公鑰、私鑰;
上述流程中出現的e就是公鑰指數,
2:公鑰指數的選取,
公鑰指數是可以隨意選取的,但是為了提高RSA的加密速度實際使用中公鑰指數最長用的三個值是3、17、65537(=2^16+1,65537的二進制表示中只有兩個1,所以需要17次乘法來實作指數運算),PEM建議用3,PKCS#1建議用3或65537,X.509建議用65537,這樣選取主要是為了提高加密或簽名驗證的性能,因為3、17或65537分別只需要2或17次模乘運算,而一個隨機選擇的e(假設n是1024-bit)則大約需要1000次模乘運算,這種方法刻意把公鑰指數選的小一點,其對應私鑰指數就會很大,這么做的目的是節約公鑰運算的時間,因為正常使用中都是用公鑰加密,所以需要節約大部分人的時間,而極少部分人也會選用私鑰解密,那么就只能少數服從多數了,
在選用公鑰指數時,人們普遍會認為3和17沒有65537安全,然而這種想法并沒有合理的依據,實際上采用這三個值中的任何一個都不存在安全問題,前提是使用正確的填充方案,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/211105.html
標籤:java
下一篇:【SaaS - Export專案】23 - Shiro加密實作登錄注銷,MD5加密演算法,加鹽加密,shiro憑證匹配器,實作增加用戶密碼密文存盤資料庫,登錄時通過加鹽加密對密文進行比較
