rsa演算法簡介
1 簡介
當前最著名、應用最廣泛的公鑰系統rsa是在2023年,由美國麻省理工學院(mit)的rivest、shamir和adleman在題為《獲得數字簽名和公開鑰密碼系統的方法》的**中提出的。它是乙個基於數論的非對稱(公開鑰)密碼體制,是一種分組密碼體制。其名稱來自於三個發明者的姓名首字母。 它的安全性是基於大整數素因子分解的困難性,而大整數因子分解問題是數學上的著名難題,至今沒有有效的方法予以解決,因此可以確保rsa演算法的安全性。rsa系統是公鑰系統的最具有典型意義的方法,大多數使用公鑰密碼進行加密和數字簽名的產品和標準使用的都是rsa演算法。
rsa演算法是第乙個既能用於資料加密也能用於數字簽名的演算法,因此它為公用網路上資訊的加密和鑑別提供了一種基本的方法。它通常是先生成一對rsa 金鑰,其中之一是保密金鑰,由使用者儲存;另乙個為公開金鑰,可對外公開,甚至可在網路伺服器中註冊,人們用公鑰加密檔案傳送給個人,個人就可以用私鑰解密接受。為提高保密強度,rsa金鑰至少為500位長,一般推薦使用1024位。
該演算法基於下面的兩個事實,這些事實保證了rsa演算法的安全有效性:
1) 已有確定乙個數是不是質數的快速演算法;
2) 尚未找到確定乙個合數的質因子的快速演算法。
2 工作原理
1) 任意選取兩個不同的大質數p和q,計算乘積r=p*q;
2) 任意選取乙個大整數e,e與(p-1)*(q-1)互質,整數e用做加密金鑰。注意:e的選取是很容易的,例如,所有大於p和q的質數都可用。
3) 確定解密金鑰d: d*e modulo (p - 1)*(q - 1) = 1 根據e、p和q可以容易地計算出d。
4) 公開整數r和e,但是不公開d;
5) 將明文p (假設p是乙個小於r的整數)加密為密文c,計算方法為:
c = pow(p,e) modulo r
6) 將密文c解密為明文p,計算方法為:
p = pow(c,d) modulo r
然而只根據r和e(不是p和q)要計算出d是不可能的。因此,任何人都可對明文進行加密,但只有授權使用者(知道d)才可對密文解密。
3 簡單例項
為了說明該演算法的工作過程,我們下面給出乙個簡單例子,顯然我們在這只能取很小的數字,但是如上所述,為了保證安全,在實際應用上我們所用的數字要大的多得多。
例:選取p=3, q=5,則r=15,(p-1)*(q-1)=8。選取e=11(大於p和q的質數),通過d * 11 modulo 8 = 1 ,計算出d =3。
假定明文為整數13。則密文c為
c = pow(p,e) modulo r
= pow(13,11) modulo 15
= 1,792,160,394,037 modulo 15
= 7
復原明文p為:
p = pow(c,d) modulo r
= pow(7,3) modulo 15
= 343 modulo 15
= 13
RSA演算法簡介
rsa演算法是 r rirest asllalnlr和l adleman於1977年在美國麻省理工學院開發,於1978年首次公布,其演算法如下 a 選擇兩質數p q。b 計算n p q。c 計算n的尤拉函式 n p 1 q 1 d 選擇整數e,使e與 n 互質,且1 利用rsa加密,首先需將明文數位...
RSA演算法簡介
rsa演算法是一種非對稱性加密演算法,現在算是最具有影響力的演算法,簡單來說rsa演算法運用了 乙個大整數進行因式分解具備一定的難度 這個數學知識來進行加密,對乙個極大整數做因式分解越難,那麼想要破解加密過後的密碼就越難。在了解rsa演算法之前,先要了解以下幾個知識點 如果兩個正整數,除了1以外,沒...
RSA演算法簡介
rsa演算法原理 rsa演算法流程 1976年以前,所有的加密方法都是同一種模式 a選擇某一種加密規則,對資訊進行加密 b使用同一種規則,對資訊進行解密。這種加密模式有乙個最大缺點 加密和解密使用同樣的規則 金鑰 a必須把金鑰告訴b,否則無法解密。儲存和傳遞金鑰,就成了最頭疼的問題。後來出現一種 d...