資訊安全中RSA的步驟是什麼?
RSA演算法是由羅恩·萊維斯特、阿迪·薩莫爾和倫納德·阿德曼發明的公鑰簽名演算法。RSA還可以加密和解密通用資料,以安全地交換資訊以及管理數字簽名驗證。
RSA演算法基於大數分解中包含的複雜性。RSA演算法依賴於這樣一個事實,即沒有有效的方法來分解非常大的數字。因此,推匯出RSA金鑰將需要大量的時間和處理能力。
RSA演算法是一種非對稱加密演算法,因為它使用兩個不同的金鑰,例如公鑰和私鑰。公鑰對所有人公開,而私鑰則保密。公鑰包含兩個數字,其中一個是兩個大素數的乘積。
在RSA加密中,訊息使用稱為公鑰的程式碼進行加密,該程式碼不需要隱藏。它基於RSA演算法的數學特性,因為使用公鑰加密的訊息只能由另一個稱為私鑰的金鑰解密。因此,需要一組金鑰(即公鑰和私鑰)來讀取此類訊息。
RSA演算法包含以下步驟:
- 生成金鑰
選擇兩個大素數,例如P和Q。素數需要足夠大,以至於其他人難以找出。
計算N = P x Q
選擇公鑰(即加密金鑰)E,使其不是(P-1)和(Q-1)的因子。
選擇私鑰(即解密金鑰)D,使其滿足以下等式:
(D x E) mod (P - 1) x (Q – 1) = 1
對於加密,根據以下公式計算密文(CT)從明文(PT):
CT = PTE mod N
將CT作為密文傳送給接收方。
對於解密,根據以下公式計算明文(PT)從密文(CT):
PT = CTD mod N
**加密/解密函式** - 一旦可以生成金鑰,就可以將引數傳遞給使用相應金鑰計算密文和明文的函式。
如果明文是m,則密文 = me mod n。
如果密文是c,則明文 = cd mod n
例如,其中p = 17,q=13。e的值可以是5,因為它滿足條件1 < e < (p-1) (q-1)。
N = p * q = 91
D = e-1 mod (p-1) (q-1) = 29
公鑰對 = (91, 5)
私鑰對 = (91, 29)
如果明文(m)值為10,則可以使用公式me mod n = 82對其進行編碼。
要將此密文(c)解密回原始資料,應使用公式cd mod n = 29。
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP