RSA 非對稱密碼加密方式

2021-08-27 12:15:04 字數 2053 閱讀 7533

公鑰加密,私鑰解密。

私鑰加密,公鑰解密。

私鑰簽名,公鑰驗籤。

一、公鑰密碼演算法誤區

誤解一、公開金鑰加密在防範密碼分析上比常規加密更加安全。

[解釋] 事實上,任何加密方案的安全性都依賴於金鑰的長度和破譯密碼所包含的計算工作量。從抗擊密碼分析的角度講,無論常規還是公開金鑰加密原則上都沒有比對方優越的地方。

誤解二、公開金鑰加密是乙個使得常規加密已經過時的通用技術。

[解釋] 事實上,由於當前公開金鑰加密在計算上的巨大開銷,在可以預見的未來常規加密並不會被拋棄。目前大家幾乎普遍接受的觀點是公開金鑰密碼演算法只限於金鑰管理和數字簽名等應用。

誤解三、與使用常規加密時涉及金鑰分配中心的相當繁瑣的握手過程相比,使用公開金鑰加密後金鑰分配就變的非常簡單。

[解釋] 事實上,使用公開金鑰加密仍然需要某種形式的協議,一般這會涉及到乙個中心**,而且整個過程比常規加密中的過程既不簡單也不更有效。 

二、什麼是公鑰密碼演算法

目前存在兩種金鑰體制:對稱金鑰體制和非對稱金鑰體制。對稱金鑰體制就是加密和解密用同乙個金鑰。這很好理解,相當於你用你家的鑰匙既可以鎖上你家的門,也可以開啟你家的門。非對稱金鑰體制就是加密和解密不是同乙個金鑰。也就是說乙個金鑰所加密的資料用另乙個金鑰解密。舉個生活中的例子,類似於在機場、火車站、超市以及很多其他公共場所看到的非對稱的存物箱。為了安全儲存你的財物,你把它們放入存物箱並且投入錢幣鎖上它。就如同你的住宅鑰匙鎖上大門一樣,錢幣鎖上了存物箱---在某種意義上,你的錢幣就是金鑰。鎖上門後,你得到另外一把鑰匙---也許是一把真正的鑰匙;也許只是一張寫有號碼的紙條。要開啟存物箱,你就要使用該鑰匙或在鍵盤上輸入號碼。而這個時候,你投入多少錢幣也是打不開存物箱的。

類似地,我們可以產生乙個密碼演算法,其中乙個金鑰用來加密資料,另乙個用來解密。這個模型的另一說法就是公鑰密碼學。要加密和解密資料,兩個金鑰都需要使用,所以其中乙個可以公開而不會危害安全性。這個金鑰就是公鑰。另乙個則稱之為私鑰。我們用公鑰加密資料,用私鑰解密資料。就好象例子中的任何人都知道用錢幣(公鑰)鎖上存物箱,但仍然打不開存物箱。只有擁有鑰匙或寫有號碼的紙條(私鑰)的人才能開啟存物箱。

2023年後,提出了多種公開金鑰演算法,其中許多是不安全的。而那些被視為安全的演算法,有許多卻不實用,要麼金鑰太大,要麼密文遠大於明文。只有少數幾個演算法既安全又實用。其中有三種演算法可以很好的用於加密和數字簽名:rsa、elgamal和rabin。不過它們都很慢。它們加密和解密速度比對稱演算法要慢的多,通常是太慢以致無法用於許多快速資料加密。基於這點考慮,很多時候使用混合密碼系統。使用帶隨機會話金鑰的對稱演算法來加密訊息,使用公開金鑰演算法來加密隨機會話金鑰。

三、rsa公鑰密碼演算法原理

rsa演算法是第乙個比較完善的公開金鑰演算法。它既能用於加密也能用於數字簽名。在已提出的公開金鑰演算法中,rsa是最容易理解和實現的。rsa以它的三個發明者ron rivest、adi shamir和leonard adleman的名字命名。該演算法已經經受住了多年深入的密碼分析,雖然密碼分析者既不能證明也不能否認rsa的安全性,但這恰恰說明了該演算法有一定的可信度。

rsa的安全基於大數分解的難度。其公開金鑰和私人金鑰是一對大素數(100到200個十進位制數或更大)的函式。從乙個公開金鑰和密文中恢復出明文的難度等價於分解兩個大素數之積。

rsa

這種演算法2023年就出現了,它是第乙個既能用於資料加密也能用於數字簽名的演算法。它易於理解和操作,也很流行。演算法的名字以發明者的名字命名:ron rivest, adishamir 和leonard adleman。

這種加密演算法的特點主要是金鑰的變化,上文我們看到des只有乙個金鑰。相當於只有一把鑰匙,如果這把鑰匙丟了,資料也就不安全了。rsa同時有兩把鑰匙,公鑰與私鑰。同時支援數字簽名。數字簽名的意義在於,對傳輸過來的資料進行校驗。確保資料在傳輸工程中不被修改。

按如上步驟給出序列圖,如下:

1、甲方構建金鑰對兒,將公鑰公布給乙方,將私鑰保留。

2、甲方使用私鑰加密資料,然後用私鑰對加密後的資料簽名,傳送給乙方簽名以及加密後的資料;乙方使用公鑰、簽名來驗證待解密資料是否有效,如果有效使用公鑰對資料解密。

3、乙方使用公鑰加密資料,向甲方傳送經過加密後的資料;甲方獲得加密資料,通過私鑰解密。

RSA非對稱加密

現實網路中,web應用的開發少不了需要對敏感資訊來進行加密,但是加密又不能草草了事,過於簡單。一旦被鑽了空子,就成了事故。比如密碼。之前用到了非對稱加密沒做記錄,這次又用到了,所以記錄下來!rsa是目前最有影響力的公鑰加密演算法,該演算法基於乙個十分簡單的數論事實 將兩個大素數相乘十分容易,但那時想...

RSA非對稱加密

對稱加密 演算法 在加密和解密時使用的是同乙個秘鑰 而 非對稱加密演算法 需要兩個 金鑰 來進行加密和解密,這兩個秘鑰是 公開金鑰 public key,簡稱公鑰 和私有金鑰 private key,簡稱私鑰 與對稱加密 演算法 不同,非對稱加密演算法 需要兩個 金鑰 公開金鑰 publickey ...

RSA非對稱加密

非對稱加密就是加密和解密使用的不是乙個金鑰,使用的是公鑰 私鑰,乙個加密,另外乙個解密,一般都是私鑰加密,公鑰解密 首先使用keypair獲取我們的公鑰和私鑰,配對獲取,獲取的秘鑰可以直接是物件,也可以獲取位元組陣列 如果我們使用現有的公鑰和私鑰,需要使用keyfacktory來講秘鑰轉換為響應的物...