RSA公開金鑰系統
-
先弄清對稱密碼體制和非對稱密碼體制(系統)
對稱密碼體制就是加密和解密都使用同一個金鑰。非對稱金鑰密碼體制,其是將公鑰與私鑰分離,用公鑰加密明文形成密文,資料以密文形式傳播,用私鑰解密密文獲得明文;如果是使用私鑰加密,也必須使用公鑰解密,公鑰和私鑰是相對的,對外公開的加密金鑰是公鑰,自己私有不公開的解密金鑰就是私鑰。 -
RSA是一個非對稱密碼體制(系統)
RSA是目前使用最廣泛的公開金鑰密碼系統,從提出到現在已近三十年,經歷了各種攻擊的考驗,逐漸為人們接受,普遍認為是目前最優秀的公鑰方案之一。其最大的缺點就是加密速度,因為進行的都是大數運算(長達幾百上千位的素數,估計光把這個數字寫出來就要佔一頁紙~_ ~,當然肯定是要交個計算機去算的)。所以RSA一般只用於少量資料的加密。 -
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)才可對密文解密 。
-
RSA是以單向函式為基礎
單向函式:對於每一個輸入,函式值都容易計算,但是給出一個隨機輸入的函式值,算出原始輸入卻比較困難。比如RSA系 統中的兩個大素數p和q,計算n=pq很簡單,但是如果給定n(估計是一個能寫幾百頁紙的一個大素數),要計算p和q,這就非常非常非常耗時了。
所以單向函式的這種特性,保證了公開金鑰系統的安全性,n越大越安全,一般RSA使用的都是500位以上的素數,1024位可認為是非常安全的。由此也可以知道,任何單向函式都可以作為某種公開金鑰系統的基礎。
相關文章
- 公開金鑰演算法-RSA-note演算法
- C#和JAVA的RSA金鑰、公鑰轉換C#Java
- SSH-keygen rsa 金鑰對根據私鑰生成公鑰
- 使用openssl生成rsa公鑰和私鑰
- OpenSSL工具生成RSA金鑰對
- C# Rsa加密(私鑰加密、公鑰解密、金鑰格式轉換、支援超大長度分段加密)C#加密解密
- 3.2 公開金鑰演算法演算法
- Mac 使用openssl生成RSA公鑰和私鑰Mac
- # RSA 公鑰加密演算法加密演算法
- 金鑰,私鑰,公鑰的區分
- RSA金鑰的跨平臺通用
- Mac OS上執行openssl命令操作,生成RSA私鑰和RSA公鑰Mac
- java程式設計之:生成rsa金鑰Java程式設計
- RSA公鑰回密演算法原理演算法
- 現代密碼-公鑰密碼RSA密碼
- MAC OSX 下 使用openssl 命令 生成RSA公鑰和私鑰Mac
- 10 建立SSL與RSA證書與金鑰
- iOS端基於RSA公鑰加密和解密iOS加密解密
- 非對稱加密演算法RSA中的公鑰和私鑰加密演算法
- Win10系統正版金鑰是否可以反覆用 win10系統金鑰的使用方法Win10
- java中的使用RSA演算法進行公鑰加密私鑰解密 .Java演算法加密解密
- 把Java生成的RSA公鑰、私鑰轉換成.NET使用的XML格式JavaXML
- C#通過java生成的RSA公鑰加密和解密C#Java加密解密
- 前端RSA金鑰生成和加解密——window.crypto使用相關前端解密
- 公鑰私鑰
- PHP中使用OpenSSL生成RSA公鑰私鑰及進行加密解密示例(非對稱加密)PHP加密解密
- 開源新聞速遞:OpenSSH 7.3不再支援小於1024位的RSA金鑰
- 關於https 證明公開金鑰正確性的證書HTTP
- Win10系統產品金鑰如何檢視 win10檢視產品金鑰的方法Win10
- 公鑰和私鑰
- win10系統啟用金鑰有什麼用Win10
- Win11專業工作站版系統金鑰
- 谷歌雙因素驗證金鑰套裝公開發售 現價50美元谷歌
- 資訊保安第一次作業,AES CBC加密,RSA金鑰簽名加密
- RSA非對稱加密演算法中的金鑰對生成與傳輸加密演算法
- office產品金鑰大全 office產品金鑰分享
- Win10如何更改金鑰 Win10電腦金鑰過期修改金鑰的方法Win10
- openSSL生成公鑰和私鑰