RSA演算法詳解與舉例

2022-08-14 08:09:04 字數 856 閱讀 6968

這段時間在做伺服器證書的功能,先前對證書的了解比較零碎,正好趁這次機會將證書的內容有個系統的了解以及生成。

首先需要了解證書的演算法rsa演算法。rsa演算法非常簡單,概述如下:

找兩素數p和q 取n=p*q 取t=(p-1)*(q-1) 取任何乙個數e,要求滿足e這樣最終得到三個數: n d e

設訊息為數m (m 在對稱加密中: n d兩個數構成公鑰,可以告訴別人; n e兩個數構成私鑰,e自己保留,不讓任何人知道。 給別人傳送的資訊使用e加密,只要別人能用d解開就證明資訊是由你傳送的,構成了簽名機制。

別人給你傳送資訊時使用d加密,這樣只有擁有e的你能夠對其解密。

rsa的安全性在於對於乙個大數n,沒有有效的方法能夠將其分解從而在已知n d的情況下無法獲得e;同樣在已知n e的情況下無法求得d。

實踐:接下來我們來乙個實踐,看看實際的操作: 找兩個素數:

p=47 q=59 這樣 n=p*q=2773 t=(p-1)*(q-1)=2668 取e=63,滿足eperl -e "foreach $i (1..9999)" 847 即d=847

最終我們獲得關鍵的 n=2773 d=847 e=63

取訊息m=244我們看看

加密:c=m**d%n = 244**847'73 用perl的大數計算來算一下: c:

\temp>perl -mbigint -e "print 244**847'73" 465 即用d對m加密後獲得加密資訊c=465

解密:我們可以用e來對加密後的c進行解密,還原m: m=c**e%n=465**63'73 :

c:\temp>perl -mbigint -e "print 465**63'73" 244 即用e對c解密後獲得m=244 , 該值和原始資訊m相等。

Floyd演算法詳解

求最短路徑演算法總結 部分內容參考 all pairs 的最短路徑問題 所有點對之間的最短路徑 dijkstra演算法是求單源最短路徑的,那如果求圖中所有點對的最短路徑的話則有以下兩種解法 解法一 以圖中的每個頂點作為源點,呼叫dijkstra演算法,時間複雜度為o n3 解法二 floyd 弗洛伊...

C語言經典演算法詳解

分而治之方法與軟體設計的模組化方法非常相似。為了解決乙個大的問題,可以 1 把它分成兩個或多個更小的問題 2 分別解決每個小問題 3 把各小問題的解答組合起來,即可得到原問題的解答。小問題通常與原問題相似,可以遞迴地使用分而治之策略來解決。下列通過例項加以說明。例 利用分而治之演算法求乙個整數陣列中...

演算法 框圖 複數 推理與證明測試題及詳解

第 卷 選擇題共60分 一 選擇題 本大題共12個小題,每小題5分,共60分,在每小題給出的四個選項中,只有一項是符號題目要求的。1 2011 遼寧瀋陽二中階段測試 已知複數z 則它的共軛複數等於 a 2 ib 2 i c 2 i d 2 i 答案 b 解析 z 2 i,故其共軛複數是2 i.2 文...