RSA演算法簡介

初學愛好者發表於2020-09-28

RSA演算法簡介

RSA演算法是一種非對稱性加密演算法,現在算是最具有影響力的演算法,簡單來說RSA演算法運用了"一個大整數進行因式分解具備一定的難度"這個數學知識來進行加密,對一個極大整數做因式分解越難,那麼想要破解加密過後的密碼就越難。在瞭解RSA演算法之前,先要了解以下幾個知識點:

一、互質關係

__如果兩個正整數,除了1以外,沒有其他公因子,我們就稱這兩個數是互質關係(coprime)。__比如,15和32沒有公因子,所以它們是互質關係。這說明,不是質數也可以構成互質關係。

關於互質關係,不難得到以下結論:

  1. 任意兩個質數構成互質關係,比如13和61。
  2. 一個數是質數,另一個數只要不是前者的倍數,兩者就構成互質關係,比如3和10。
  3. 如果兩個數之中,較大的那個數是質數,則兩者構成互質關係,比如97和57。
  4. 1和任意一個自然數是都是互質關係,比如1和99。
  5. p是大於1的整數,則p和p-1構成互質關係,比如57和56。
  6. p是大於1的奇數,則p和p-2構成互質關係,比如17和15。

二、尤拉函式

尤拉函式可以用來解決"給定任意一個整數N,那麼小於N或等於N的整數中,有幾個和N是互質關係",可表示為φ(N)

例:以φ(8)表示
在小於或等於8之中,只有1,3,5,7和8是互質關係,所以φ(8)={1,3,5,7}=4

這裡只需要知道幾個知識點就夠了,沒必要把尤拉函式全部給理解了。

φ(n) 的計算方法並不複雜,但是為了得到最後那個公式,需要一步步討論。

第一種情況

如果n=1,則 φ(1) = 1 。因為1與任何數(包括自身)都構成互質關係。

第二種情況

如果n是質數,則 φ(n)=n-1 。因為質數與小於它的每一個數,都構成互質關係。比如5與1、2、3、4都構成互質關係。

第三種情況

如果n是質數的某一個次方,即 n = p^k (p為質數,k為大於等於1的整數),則

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-jzsUzcT5-1601259593358)(https://i.loli.net/2020/09/05/KXHNk6YDlTGjfcB.png)]

比如 φ(8) = φ(2^3) =2^3 - 2^2 = 8 -4 = 4。

第四種情況

如果n可以分解成兩個互質的整數之積,n = p1 × p2 則 φ(n) = φ(p1p2) = φ(p1)φ(p2),

即積的尤拉函式等於各個因子的尤拉函式之積。比如,φ(56)=φ(8×7)=φ(8)×φ(7)=4×6=24。

三、尤拉定理

當兩個整數A,B是互質關係的時候,那麼A的φ(A)次方除於N除餘必然是1

image.png

也就是說,a的φ(n)次方被m除的餘數為1。或者說,a的φ(m)次方減去1,可以被m整除。比如,3和7互質,而7的尤拉函式φ(7)等於6,所以3的6次方(729)減去1,可以被7整除(728/7=104)。

這個公式也不進行證明,比較複雜,只需要記住結論就好了。

尤拉定理有一個特殊情況,當m是質數p時,此式則為:

image.png

這就是著名的費馬小定理。它是尤拉定理的特例。

尤拉定理是RSA演算法的核心。理解了這個定理,就可以理解RSA。

四、模反元素

如果兩個正整數a和n互質,那麼一定可以找到整數b,使得 ab-1 被n整除,或者說ab被n除的餘數是1。

image.png

比如,3和11互質,那麼3的模反元素就是4,因為 (3 × 4)-1 可以被11整除。顯然,模反元素不止一個, 4加減11的整數倍都是3的模反元素 {…,-18,-7,4,15,26,…},即如果b是a的模反元素,則 b+kn 都是a的模反元素。

具體可以參考:http://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html

文件資訊

  • 版權宣告:自由轉載-非商用-非衍生-保持署名(創意共享3.0許可證
  • 發表日期: 2013年6月27日

相關文章