RSA演算法
公鑰,私鑰和數字簽名這樣最好理解
2012年02月10日 17:25:32 21aspnet 閱讀數:98309 標籤: 加密解密演算法網路c 更多
個人分類: 安全
版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/21aspnet/article/details/7249401
一、公鑰加密
假設一下,我找了兩個數字,一個是1,一個是2。我喜歡2這個數字,就保留起來,不告訴你們(私鑰),然後我告訴大家,1是我的公鑰。
我有一個檔案,不能讓別人看,我就用1加密了。別人找到了這個檔案,但是他不知道2就是解密的私鑰啊,所以他解不開,只有我可以用
數字2,就是我的私鑰,來解密。這樣我就可以保護資料了。
我的好朋友x用我的公鑰1加密了字元a,加密後成了b,放在網上。別人偷到了這個檔案,但是別人解不開,因為別人不知道2就是我的私鑰,
只有我才能解密,解密後就得到a。這樣,我們就可以傳送加密的資料了。
二、私鑰簽名
如果我用私鑰加密一段資料(當然只有我可以用私鑰加密,因為只有我知道2是我的私鑰),結果所有的人都看到我的內容了,因為他們都知
道我的公鑰是1,那麼這種加密有什麼用處呢?
但是我的好朋友x說有人冒充我給他發信。怎麼辦呢?我把我要發的信,內容是c,用我的私鑰2,加密,加密後的內容是d,發給x,再告訴他
解密看是不是c。他用我的公鑰1解密,發現果然是c。
這個時候,他會想到,能夠用我的公鑰解密的資料,必然是用我的私鑰加的密。只有我知道我得私鑰,因此他就可以確認確實是我發的東西。
這樣我們就能確認傳送方身份了。這個過程叫做數字簽名。當然具體的過程要稍微複雜一些。用私鑰來加密資料,用途就是數字簽名。
總結:公鑰和私鑰是成對的,它們互相解密。
公鑰加密,私鑰解密。
私鑰數字簽名,公鑰驗證。
舉例
比如有兩個使用者Alice和Bob,Alice想把一段明文通過雙鑰加密的技術傳送給Bob,Bob有一對公鑰和私鑰,那麼加密解密的過程如下:
- Bob將他的公開金鑰傳送給Alice。
- Alice用Bob的公開金鑰加密她的訊息,然後傳送給Bob。
- Bob用他的私人金鑰解密Alice的訊息。
上面的過程可以用下圖表示,Alice使用Bob的公鑰進行加密,Bob用自己的私鑰進行解密。
例子和圖出自《網路安全基礎 應用與標準第二版》
RSA演算法
RSA公鑰加密演算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在(美國麻省理工學院)開發的。RSA取名來自開發他們三者的名字。RSA是目前最有影響力的公鑰加密演算法,它能夠抵抗到目前為止已知的所有密碼攻擊,已被ISO推薦為公鑰資料加密標準。RSA演算法基於一個十分簡單的數論事實:將兩個大素數相乘十分容易,但那時想要對其乘積進行因式分解卻極其困難,因此可以將乘積公開作為加密金鑰。
相關文章
- RSA加密演算法加密演算法
- RSA演算法(一)演算法
- RSA演算法原理演算法
- RSA演算法簡介演算法
- JavaScript逆向之RSA演算法JavaScript演算法
- RSA演算法之學習演算法
- 非對稱加密演算法-RSA演算法加密演算法
- RSA演算法與Python實現演算法Python
- RSA演算法原理——(3)RSA加解密過程及公式論證演算法解密公式
- PHP RSA2 簽名演算法PHP演算法
- 經典加密演算法入門-RSA加密演算法
- Java實現AES和RSA演算法Java演算法
- 58同城的登入(RSA演算法)演算法
- PHP中RSA加密演算法的使用PHP加密演算法
- 公開金鑰演算法-RSA-note演算法
- RSA非對稱加密演算法淺析加密演算法
- 20.2 OpenSSL 非對稱RSA加解密演算法解密演算法
- RSA演算法揭秘:加密世界的守護者演算法加密
- iOS-在專案中引入RSA演算法iOS演算法
- python中rsa的RSAPython
- 密碼學中的RSA演算法與橢圓曲線演算法密碼學演算法
- 國密SM2演算法和RSA演算法有什麼關係?演算法
- RSA加密演算法簡單介紹以及python實現加密演算法Python
- 第四篇:非對稱加密及RSA加密演算法加密演算法
- RSA加密加密
- 非對稱加密演算法RSA中的公鑰和私鑰加密演算法
- RSA演算法中,為什麼需要的是兩個素數?演算法
- RSA入門
- javascript RSA 加密JavaScript加密
- LUC_RSA
- java RSA 解密Java解密
- RSA非對稱加密演算法中的金鑰對生成與傳輸加密演算法
- CWE-780:RSA演算法未使用最優非對稱加密填充漏洞演算法加密
- 洞見RSA2021|見證14載NSFOCUS RSA之路
- RSA進階(一)
- C# RSA 加密C#加密
- RSA 數學原理
- RSA加密與解密加密解密