RSA公開金鑰系統

信安小小白發表於2020-11-17
  1. 先弄清對稱密碼體制和非對稱密碼體制(系統)
    對稱密碼體制就是加密和解密都使用同一個金鑰。非對稱金鑰密碼體制,其是將公鑰與私鑰分離,用公鑰加密明文形成密文,資料以密文形式傳播,用私鑰解密密文獲得明文;如果是使用私鑰加密,也必須使用公鑰解密,公鑰和私鑰是相對的,對外公開的加密金鑰是公鑰,自己私有不公開的解密金鑰就是私鑰。

  2. RSA是一個非對稱密碼體制(系統)
    RSA是目前使用最廣泛的公開金鑰密碼系統,從提出到現在已近三十年,經歷了各種攻擊的考驗,逐漸為人們接受,普遍認為是目前最優秀的公鑰方案之一。其最大的缺點就是加密速度,因為進行的都是大數運算(長達幾百上千位的素數,估計光把這個數字寫出來就要佔一頁紙~_ ~,當然肯定是要交個計算機去算的)。所以RSA一般只用於少量資料的加密。

  3. RSA演算法的具體描述如下:
    (1)任意選取兩個不同的大素數p和q計算乘積在這裡插入圖片描述

    (2)任意選取一個大整數e,滿足(gcd是求最大公因數運算)在這裡插入圖片描述
    整數e用做加金鑰(注意:e的選取是很容易的,例如,所有大於p和q的素數都可用) ;
    (3)確定的解金鑰d,滿足(mod是求餘運算) :在這裡插入圖片描述
    即:在這裡插入圖片描述
    K ≥ 1 是一個任意的整數;所以,若知道e和ψ(n) ,則很容易計算出d ;
    (4)公開整數n和e,祕密儲存d ;
    (5)將明文m(m<n是一個整數)加密成密文c,加密演算法為:
    在這裡插入圖片描述

    (6)將密文c解密為明文m,解密演算法為:
    在這裡插入圖片描述

    然而只根據n和e(注意:不是p和q)要計算出d是不可能的。因此,任何人都可對明文進行加密,但只有授權使用者(知道d)才可對密文解密 。

  4. RSA是以單向函式為基礎
    單向函式:對於每一個輸入,函式值都容易計算,但是給出一個隨機輸入的函式值,算出原始輸入卻比較困難。比如RSA系 統中的兩個大素數p和q,計算n=pq很簡單,但是如果給定n(估計是一個能寫幾百頁紙的一個大素數),要計算p和q,這就非常非常非常耗時了。
    所以單向函式的這種特性,保證了公開金鑰系統的安全性,n越大越安全,一般RSA使用的都是500位以上的素數,1024位可認為是非常安全的。由此也可以知道,任何單向函式都可以作為某種公開金鑰系統的基礎。

相關文章