RSA演算法簡介

2021-10-12 12:43:27 字數 2129 閱讀 5801

rsa演算法原理

rsa演算法流程

2023年以前,所有的加密方法都是同一種模式:

a選擇某一種加密規則,對資訊進行加密;

b使用同一種規則,對資訊進行解密。

這種加密模式有乙個最大缺點:

加密和解密使用同樣的規則(金鑰),

a必須把金鑰告訴b,否則無法解密。

儲存和傳遞金鑰,就成了最頭疼的問題。

後來出現一種 」diffie-hellman金鑰交換演算法「,它的加密和解密可以使用不同的規則,只要這兩種規則之間存在某種對應關係即可,這樣就避免了直接傳遞金鑰。

b生成公鑰pk跟私鑰sk,公鑰公開任何人都可以獲得,私鑰保密。

a 獲取b的公鑰,然後用b的公鑰進行資訊加密。

b得到加密後的資訊,用自己的私鑰解密。

所以如果公鑰加密的資訊只有私鑰解得開,那麼只要私鑰不洩漏,通訊就是安全的。

rsa演算法一直是最廣為使用的非對稱加密演算法。

根據數論,尋求兩個大素數比較簡單,而將它們的乘積進行因式分解卻極其困難,因此可以將乘積公開作為加密金鑰。

舉個例子:

定義函式f為 f(p, q) = pq, pq是兩個大質數,那麼我們很容易通過pq得到 f(p, q)

如果:f(p, q) = 32213114911055087, 求 p, q.

這樣就裂開了,目前還沒有有效演算法。

首先看一下rsa的密碼體制,課本上亂七八糟的字母看不懂也沒關係,至少對這些字母有個印象。

同樣的,我們通過乙個例子來引入:

假設alice要與bob進行加密通訊,注意重點來了,alice首先生成自己的公私鑰對 pk, sk

隨機選擇兩個不相等的質數p和q,(這兩個質數越大,就越難破解),我們為了方便舉例,選取5和11

計算p和q的乘積n 和尤拉函式φ(n)

n = 5×11 = 55

φ(n) = (p-1)(q-1) = 40

隨機選擇乙個整數b,條件是1< b < φ(n),且b與φ(n) 互質…我們就選擇3吧,方便計算

計算b對於φ(n)的模反元素a

a ≡ b-1 (mod φ(n)) ≡ 3-1 mod 40

即:a×3 ≡ 1 mod 40

(有小夥伴可能不知道怎麼得來的。。a = n×40 + 3-1 ,等式兩邊同乘3 即 3a = 3n × 40 + 1)

a×3 ≡ 1 mod 40 =>> 3a - 40y = 1

得: a = 27, y = 2 是上述不定方程的一組解

(實際應用中公鑰和私鑰的資料都採用asn.1格式表達)

至此,我們的公私鑰對生成階段結束,下面開始加密

假設bob要向alice傳送加密資訊x,他就要用alice的公鑰 (n, b) 對x進行加密。

重點:x 必須是整數(字串可以取ascii值),且x必須小於n。

這裡我們例子中的n相對較小,所以我們需要將明文拆開進行多次加密:

假設我們加密明文 987654

乙個乙個來:

ek(x) = xb (mod n) = 93 mod 55 = 14

ek(x) = xb (mod n) = 83 mod 55 = 17

ek(x) = xb (mod n) = 73 mod 55 = 13

ek(x) = xb (mod n) = 63 mod 55 = 51

ek(x) = xb (mod n) = 53 mod 55 = 15

ek(x) = xb (mod n) = 43 mod 55 = 9

最終明文結果為:14 17 13 51 15 9

然後 alice用自己的私鑰進行解密:

dk(y) = ya (mod n) =1427 mod 55 = 9

dk(y) = ya (mod n) =1727 mod 55 = 8

dk(y) = ya (mod n) =1327 mod 55 = 7

dk(y) = ya (mod n) =5127 mod 55 = 6

dk(y) = ya (mod n) =1527 mod 55 = 5

dk(y) = ya (mod n) =927 mod 55 = 4

計算出明文:987654

RSA演算法簡介

rsa演算法簡介 1 簡介 當前最著名 應用最廣泛的公鑰系統rsa是在1978年,由美國麻省理工學院 mit 的rivest shamir和adleman在題為 獲得數字簽名和公開鑰密碼系統的方法 的 中提出的。它是乙個基於數論的非對稱 公開鑰 密碼體制,是一種分組密碼體制。其名稱來自於三個發明者的...

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以外,沒...