20181117 RSA演算法數學原理分析

2021-09-01 05:41:57 字數 1173 閱讀 8562

非對稱加密技術,在現在網路中,有非常廣泛應用。加密技術更是數字貨幣的基礎。

所謂非對稱,就是指該演算法需要一對金鑰,使用其中乙個(公鑰)加密,則需要用另乙個(私鑰)才能解密。

rsa演算法原理

rsa演算法的基於這樣的數學事實:兩個大質數相乘得到的大數難以被因式分解。

如:有很大質數p跟q,很容易算出n,使得 n = p * q,

但給出n, 比較難找p q(沒有很好的方式, 只有不停的嘗試)

這其實也是單向函式的概念

下面來看看數學演算過程:

選取兩個大質數p,q,計算n = p q 及 φ ( n ) = φ § φ (q) = (p-1) * (q-1)

三個數學概念:

質數(prime numbe):又稱素數,為在大於1的自然數中,除了1和它本身以外不再有其他因數。

互質關係:如果兩個正整數,除了1以外,沒有其他公因子,我們就稱這兩個數是互質關係(coprime)。

φ(n):叫做尤拉函式,是指任意給定正整數n,在小於等於n的正整數之中,有多少個與n構成互質關係。

如果n是質數,則 φ(n)=n-1。

如果n可以分解成兩個互質的整數之積, φ(n) = φ(p1p2) = φ(p1)φ(p2)。即積的尤拉函式等於各個因子的尤拉函式之積。

選擇乙個大於1 小於φ(n)的數e,使得 e 和 φ(n)互質

e其實是1和φ(n)之前的乙個質數

計算d,使得de=1 mod φ(n) 等價於方程式 ed-1 = k φ(n) 求一組解。

d 稱為e的模反元素,e 和 φ(n)互質就肯定存在d。

模反元素是指如果兩個正整數a和n互質,那麼一定可以找到整數b,使得ab被n除的餘數是1,則b稱為a的模反元素。

可根據尤拉定理證明模反元素存在,尤拉定理是指若n,a互質,則:

a^φ(n) ≡ 1(mod n) 及 a^φ(n) = a * a^(φ(n) - 1), 可得a的 φ(n)-1 次方,就是a的模反元素。

(n, e)封裝成公鑰,(n, d)封裝成私鑰。

假設m為明文,加密就是算出密文c:

m^e mod n = c (明文m用公鑰e加密並和隨機數n取餘得到密文c)

解密則是:

c^d mod n = m (密文c用金鑰解密並和隨機數n取餘得到明文m)

私鑰解密這個是可以證明的,這裡不展開了。

演算法 數學 矩陣

include include using namespace std const int row 1010 const int col 1010 class matrix matrix matrix int row,int col n row m col 預設n,m 小於row,col void ...

非對稱加密技術 RSA演算法數學原理分析

非對稱加密技術,在現在網路中,有非常廣泛應用。加密技術更是數字貨幣的基礎。所謂非對稱,就是指該演算法需要一對金鑰,使用其中乙個 公鑰 加密,則需要用另乙個 私鑰 才能解密。但是對於其原理大部分同學應該都是一知半解,今天就來分析下經典的非對稱加密演算法 rsa演算法。通過本文的分析,可以更好的理解非對...

非對稱加密技術 RSA演算法數學原理分析

非對稱加密技術,在現在網路中,有非常廣泛應用。加密技術更是數字貨幣的基礎。所謂非對稱,就是指該演算法需要一對金鑰,使用其中乙個 公鑰 加密,則需要用另乙個 私鑰 才能解密。但是對於其原理大部分同學應該都是一知半解,今天就來分析下經典的非對稱加密演算法 rsa演算法。通過本文的分析,可以更好的理解非對...