引言
rsa演算法是一種很經典的非對稱性演算法,所謂的非對稱性加密即指的是任何乙個人都有兩個金鑰,乙個公鑰(別人可以知道),乙個私鑰(只有自己知道),非對稱性加密在能保證資訊保安的前提下,相比於對稱性加密能極大地縮小資訊加密的成本,同時在快捷和實用性上有著極大的便利
rsa演算法
rsa演算法中有兩對金鑰,公鑰常記為(e,n),私鑰常記為(d,n),根據用法不同,rsa可以被用來對資訊進行加密或者用來做數字簽名,兩種用法具有一定的對稱性
1:利用rsa演算法加密資訊
原理:當b想要給a傳送資訊的時候,這時b只需要用a的公鑰對要傳送的資訊進行加密處理,就可以得到加密後的密文,而a拿到密文之後,再用自己手上的私鑰對密文進行解密,就可以還原得到b傳送給a的真實資訊(也就是明文)
這裡我們不關注rsa演算法底層的數學原理,可以從應用的角度簡單理解如下,利用rsa演算法進行資訊的加密看重的是資訊傳遞的安全性,即別人即使得到了密文和資訊接收者的公鑰,沒有資訊接收者的金鑰也是很難很難從密文中破解出真實的明文資訊,但是要是有私鑰,從密文到真實的明文資訊就變得很簡單。
2:利用rsa演算法數字簽名
原理:當a想要給b傳送資料,並想進行數字簽名的時候,a只需要利用自己的私鑰,對資料進行數字簽名演算法,就可以得到乙個新的簽名資料,這時a需要把自己原來的資料,以及新得到的簽名資料都傳送給b,b接受到簽名資料之後,用a的公鑰對簽名資料進行驗證演算法,看得出來的資料與a傳送過來的資料是不是完全一樣的即可。
這裡我們同樣先從應用的角度簡單理解一下rsa演算法進行數字簽名,與利用rsa進行資訊加密是為了保證資訊在網際網路上安全傳輸不一樣,利用rsa進行數字簽名看重的是如下三點:
1:防止資訊被篡改
注釋:當a傳送的資料在網際網路上傳遞的時候要是被別人篡改了,這時候b利用a的公鑰對a的簽名資料進行驗證演算法,得出來的資料肯定就跟網路上a傳送過來的資料不一樣了,這樣就可以起到防止資訊被篡改的作用
2:驗證資訊是某人傳送的
注釋:這個是由rsa的數學理論決定的,rsa中公鑰資料和私鑰資料之間有一定的數學關係,當你用自己的私鑰對資訊進行資料簽名的時候,別人只有用你的公鑰對簽名進行驗證演算法,才能得出與你傳送的資訊完全一樣的資料,由此來驗證該資訊是誰傳送的
3:防止資訊傳送方抵賴傳送過該資訊
RSA演算法基本原理
圖為 rsa公開金鑰演算法的發明人,從左到右ron rivest,adi shamir,leonard adleman.攝於1978年 素數是這樣的整數,它除了能表示為它自己和1的乘積以外,不能表示為任何其它兩個整數的乘積。例如,15 3 5,所以15不是素數 又如,12 6 2 4 3,所以12也...
c 實現rsa演算法 RSA 演算法 基本原理篇
咱們每天說非對稱加密,說公鑰私鑰,但是公鑰和私鑰到底是怎麼產生的,加密和解密過程到底是怎麼樣的,不看看具體演算法實現還真是感覺心裡沒底。rsa 演算法是非對稱加密演算法鼻祖,至今仍然是最為廣泛使用的演算法之一,所以我們就來拆解一下 rsa 演算法本身。學東西最怕的就是沒有大思路,直接深入細節。所以開...
RSA加密原理
如果你問我,哪一種演算法最重要?我可能會回答 公鑰加密演算法 因為它是計算機通訊安全的基石,保證了加密資料不會被破解。你可以想象一下,信用卡交易被破解的後果。進入正題之前,我先簡單介紹一下,什麼是 公鑰加密演算法 一 一點歷史 1976年以前,所有的加密方法都是同一種模式 1 甲方選擇某一種加密規則...