古詩詞大全網 - 藝術簽名 - 秘鑰、公鑰匙、認證之間的關系 DES、RSA、AES 數據加密傳輸

秘鑰、公鑰匙、認證之間的關系 DES、RSA、AES 數據加密傳輸

對稱加密是最快速、最簡單的壹種加密方式,加密(encryption)與解密(decryption)用的是同樣的密鑰(secret key)。對稱加密有很多種算法,由於它效率很高,所以被廣泛使用在很多加密協議的核心當中。

對稱加密通常使用的是相對較小的密鑰,壹般小於256 bit。因為密鑰越大,加密越強,但加密與解密的過程越慢。如果妳只用1 bit來做這個密鑰,那黑客們可以先試著用0來解密,不行的話就再用1解;但如果妳的密鑰有1 MB大,黑客們可能永遠也無法破解,但加密和解密的過程要花費很長的時間。密鑰的大小既要照顧到安全性,也要照顧到效率,是壹個trade-off。

對稱加密的壹大缺點是密鑰的管理與分配,換句話說,如何把密鑰發送到需要解密妳的消息的人的手裏是壹個問題。在發送密鑰的過程中,密鑰有很大的風險會被黑客們攔截。現實中通常的做法是將對稱加密的密鑰進行非對稱加密,然後傳送給需要它的人。

常用的有:DES、AES

非對稱加密為數據的加密與解密提供了壹個非常安全的方法,它使用了壹對密鑰,公鑰(public key)和私鑰(private key)。私鑰只能由壹方安全保管,不能外泄,而公鑰則可以發給任何請求它的人。非對稱加密使用這對密鑰中的壹個進行加密,而解密則需要另壹個密鑰。比如,妳向銀行請求公鑰,銀行將公鑰發給妳,妳使用公鑰對消息加密,那麽只有私鑰的持有人--銀行才能對妳的消息解密。與對稱加密不同的是,銀行不需要將私鑰通過網絡發送出去,因此安全性大大提高。

常用的有:RSA

(1) 對稱加密加密與解密使用的是同樣的密鑰,所以速度快,但由於需要將密鑰在網絡傳輸,所以安全性不高。

(2) 非對稱加密使用了壹對密鑰,公鑰與私鑰,所以安全性高,但加密與解密速度慢。

(3) 解決的辦法是將對稱加密的密鑰使用非對稱加密的公鑰進行加密,然後發送出去,接收方使用私鑰進行解密得到對稱加密的密鑰,然後雙方可以使用對稱加密來進行溝通。

在現代密碼體制中加密和解密是采用不同的密鑰(公開密鑰),也就是非對稱密鑰密碼系統,每個通信方均需要兩個密鑰,即公鑰和私鑰,這兩把密鑰可以互為加解密。公鑰是公開的,不需要保密,而私鑰是由個人自己持有,並且必須妥善保管和註意保密。

公鑰私鑰的原則:

非對稱密鑰密碼的主要應用就是公鑰加密和公鑰認證,而公鑰加密的過程和公鑰認證的過程是不壹樣的,下面我就詳細講解壹下兩者的區別。

比如有兩個用戶Alice和Bob,Alice想把壹段明文通過雙鑰加密的技術發送給Bob,Bob有壹對公鑰和私鑰,那麽加密解密的過程如下:

上面的過程可以用下圖表示,Alice使用Bob的公鑰進行加密,Bob用自己的私鑰進行解密。

身份認證和加密就不同了,主要用戶鑒別用戶的真偽。這裏我們只要能夠鑒別壹個用戶的私鑰是正確的,就可以鑒別這個用戶的真偽。

還是Alice和Bob這兩個用戶,Alice想讓Bob知道自己是真實的Alice,而不是假冒的,因此Alice只要使用公鑰密碼學對文件簽名發送 給Bob,Bob使用Alice的公鑰對文件進行解密,如果可以解密成功,則證明Alice的私鑰是正確的,因而就完成了對Alice的身份鑒別。整個身 份認證的過程如下:

上面的過程可以用下圖表示,Alice使用自己的私鑰加密,Bob用Alice的公鑰進行解密。

DES是Data Encryption Standard(數據加密標準)的縮寫,DES算法為密碼體制中的對稱密碼體制。它是由IBM公司研制的壹種加密算法,美國國家標準局於1977年公布把它作為非機要部門使用的數據加密標準,二十年來,它壹直活躍在國際保密通信的舞臺上,扮演了十分重要的角色。

DES是壹個分組加密算法,他以64位為分組對數據加密。同時DES也是壹個對稱算法:加密和解密用的是同壹個算法。它的密匙長度是56位(因為每個第8位都用作奇偶校驗),密匙可以是任意的56位的數,而且可以任意時候改變。其中有極少量的數被認為是弱密匙,但是很容易避開他們。所以保密性依賴於密鑰。

特點:分組比較短、密鑰太短、密碼生命周期短、運算速度較慢。 DES算法具有極高安全性,到目前為止,除了用窮舉搜索法對DES算法進行攻擊外,還沒有發現更有效的辦法。而56位長的密鑰的窮舉空間為256,這意味著如果壹臺計算機的速度是每壹秒種檢測壹百萬個密鑰,則它搜索完全部密鑰就需要將近2285年的時間。

DES現在已經不視為壹種安全的加密算法,因為它使用的56位秘鑰過短,以現代計算能力,24小時內即可能被破解。也有壹些分析報告提出了該算法的理論上的弱點,雖然實際情況未必出現。該標準在最近已經被 高級加密標準 (AES)所取代。

高級加密標準(Advanced Encryption Standard,AES),又稱Rijndael加密法,是美國聯邦政府采用的壹種區塊加密標準。這個標準用來替代原先的 DES ,已經被多方分析且廣為全世界所使用。經過五年的甄選流程,高級加密標準由美國國家標準與技術研究院(NIST)於2001年11月26日發布於FIPS PUB 197,並在2002年5月26日成為有效的標準。2006年,高級加密標準已然成為對稱密鑰加密中最流行的算法之壹。

AES的區塊長度固定為128 位元 ,密鑰長度則可以是128,192或256位元。

RSA加密算法是壹種 非對稱加密算法 。在 公鑰加密標準 和 電子商業 中RSA被廣泛使用。RSA是 1977年 由 羅納德·李維斯特 (Ron Rivest)、 阿迪·薩莫爾 (Adi Shamir)和 倫納德·阿德曼 (Leonard Adleman)壹起提出的。當時他們三人都在 麻省理工學院 工作。RSA就是他們三人姓氏開頭字母拼在壹起組成的。

RSA算法利用兩個很大的質數相乘所產生的乘積來加密。這兩個質數無論哪壹個先與原文件編碼相乘,對文件加密,均可由另壹個質數再相乘來解密。但要用壹個 質數來求出另壹個質數,則是十分困難的。因此將這壹對質數稱為密鑰對(Key Pair)。在加密應用時,某個用戶總是將壹個密鑰公開,讓需發信的人員將信息用其公***密鑰加密後發給該用戶,而壹旦信息加密後,只有用該用戶壹個人知道 的私用密鑰才能解密。具有數字憑證身份的人員的公***密鑰可在網上查到,亦可在請對方發信息時主動將公***密鑰傳給對方,這樣保證在Internet上傳輸信 息的保密和安全。

開發中:

客戶端發送的敏感數據時需要加密處理,客戶端數據采用公鑰加密,服務器用對應的秘鑰解密,客戶端保存公鑰,服務器保存秘鑰

服務器發送的數據也要加密時,服務器端數據采用秘鑰加密,客戶端數據用對應的公鑰加密,客戶端保存公鑰,服務器保存秘鑰

服務器要認證客戶端時,客戶端數據采用秘鑰加密,服務器用對應的公鑰解密,客戶端保留秘鑰,服務器保留公鑰

常用加解密方案:

如果想要更加安全壹點,可以在仿照微信的通信,每次都在傳輸數據上加上壹個32為隨機數和並將數據按照壹定的規則生成壹個校驗sign