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安全。然而這種想法並沒有合理的依據。實際上採用這三個值中的任何乙個都不存在安全問題。前提是使用正確的填充方案。
RSA公鑰密碼演算法
此演算法的 過程為 開始時選擇兩個素數p和q,計算它們的積n作為加密和解密時的模。接著需要計算n的尤拉函式值 n n 表示小於n且與n互素的正整數的個數。選擇與 n 互素的整數e計算d 圖表圖示如下 模擬實現 include include include int jm int m,int e,in...
RSA公鑰私鑰生成
公私鑰生成 1.openssl genrsa out rsa private key 2048.pem 2048 生成rsa私鑰,以x509編碼,指定生成的金鑰的位數 2048 注 該步驟生成的私鑰只為供第二步使用,並無實際用處 2.openssl pkcs8 topk8 in rsa privat...
RSA 公鑰和私鑰
首先明確一點,公鑰和私鑰是成對出現的。乙個負責加密,另乙個負責解密。公開的就是公鑰,自己留著的就是私鑰。所以不管加密還是解密金鑰都是可以是公鑰或者私鑰的。所以如果別人發東西給我,我就需要把加密金鑰給別人,解密金鑰自己藏著,這樣就是公鑰加密,私鑰解密。如果我想讓別人確認我的身份,我就需要把解密金鑰給別...