java中的安全加密

11.1 數字簽名
2.驗證過程發送者:將報文通過 hash 算法生成摘要,用私鑰加密生成簽名。
接收者:使用公鑰解密數字簽名,得到摘要 A,再對報文進行 Hash 算法得到摘
B,比較 A B,一致則表示沒有被修改。
11.2 數字證書
數字證書則是由證書認證機構(CA, Certificate Authority)對證書申請者真
實身份驗證之後,用 CA 的根證書對申請人的一些基本信息以及申請人的公鑰進
行簽名(相當於加蓋發證書機構的公章)後形成的一個數字文件。
左圖是 CA 證書
數字證書驗證過程:CA 機構的公鑰已經是在瀏覽器發佈前提前嵌入到瀏覽器內部了
所以 CA 的公鑰是真實可靠的(如果 CA 機構被黑客攻陷,那麼也可能是不可靠的),然後
服務器發送自己的公鑰給 CA(用 CA 的公鑰進行加密),CA 對服務器的發來的內容解密得
到服務器的公鑰,然後 CA 對服務器的公鑰進行頒發數字證書(就是數字簽名),發給服務
器,服務器收到以後,將數字證書,公開密鑰發送給客戶端,客戶端用 CA 的公開密鑰驗證
得到服務器的公開密鑰,然後這樣客戶端就得到了真正可靠的服務器的公開密鑰。
11.3 公私鑰
公鑰(Public Key)與私鑰Private Key)是通過一種算法得到的一個密鑰對(即一個
公鑰和一個私鑰),公鑰是密鑰對中公開的部分,私鑰則是非公開的部分。
使用這個密鑰對的時候,如果用其中一個密鑰加密一段數據,必須用另一個密鑰解密。
比如用公鑰加密數據就必須用私鑰解密,如果用私鑰加密也必須用公鑰解密,否則解密將不
會成功。
11.4 非對稱加密 RSA
非對稱加密算法需要兩個密鑰:公開密鑰publickey)和私有密鑰(privatekey)。公
開密鑰與私有密鑰是一對,如果用公開密鑰對數據進行加密,只有用對應的私有密鑰才能解密;如果用私有密鑰對數據進行加密,那麼只有用對應的公開密鑰才能解密。因爲加密和解
密使用的是兩個不同的密鑰,所以這種算法叫作非對稱加密算法。
RSA
RSA 算法的步驟主要有以下幾個步驟:
1、選擇 pq 兩個超級大的質數 ,都是 1024 位,
2、令 n = p * q。取 φ(n) =(p-1) * (q-1)。 計算與 n 互質的整數的個數。
3、取 e 1 < e < φ(n) ( n , e )作爲公鑰對,正式環境中取 65537
可以打開任意一個被認證過的 https 證書,都可以看到。
4、令 ed mod φ(n) = 1,計算 d( n , d ) 作爲私鑰對。 計算 d 可以
利用擴展歐幾裏的算法進行計算
5、銷燬 pq。密文 = 明文 ^ e mod n , 明文 = 密文 ^ d mod n
利用蒙哥馬利方法進行計算,也叫反覆平方法,非常簡單、
其中(n,e)是公鑰 (n,d)是私鑰
11.5 對稱密鑰 DES
DESDES 算法是一種分組加密機制,將明文分成 N 個組,然後對各個組
進行加密,形成各自的密文,最後把所有的分組密文進行合併,形成最終的密
對稱密鑰就是加密使用的密鑰是一致的。
11.6 DH 加密算法
Diffie-Hellman 算法概述:
1Alice Bob 確定兩個大素數 n g,這兩個數不用保密
2Alice 選擇另一個大隨機數 x,並計算 A 如下:A=g^x mod n
3Alice A 發給 Bob
4Bob 選擇另一個大隨機數 y,並計算 B 如下:B=g^y mod n
5Bob B 發給 Alice
6)計算 Alice 的祕密密鑰 K1 如下:K1=B^x mod n
7)計算 Bob 的祕密密鑰 K2 如下:K2=A^y mod n K1=K2,因此 Alice Bob 可以
用其進行加解密
11.7 SHA MD5
MD5MD5 消息摘要算法(英語:MD5 Message-Digest Algorithm),一種被廣泛使用的密碼散列函數,可以
產生出一個 128 位(16 字節)的散列值(hash value),用於確保信息傳輸完整一致。
SHA安全散列算法(英語:Secure Hash Algorithm,縮寫爲 SHA)是一個密碼散列函數家族,是 FIPS 所認證
的安全散列算法。能計算出一個數字消息所對應到的,長度固定的字符串(又稱消息摘要)的算法。且若輸入的消息不
同,它們對應到不同字符串的機率很高。
11.1 數字簽名
2.驗證過程發送者:將報文通過 hash 算法生成摘要,用私鑰加密生成簽名。
接收者:使用公鑰解密數字簽名,得到摘要 A,再對報文進行 Hash 算法得到摘
B,比較 A B,一致則表示沒有被修改。
11.2 數字證書
數字證書則是由證書認證機構(CA, Certificate Authority)對證書申請者真
實身份驗證之後,用 CA 的根證書對申請人的一些基本信息以及申請人的公鑰進
行簽名(相當於加蓋發證書機構的公章)後形成的一個數字文件。
左圖是 CA 證書
數字證書驗證過程:CA 機構的公鑰已經是在瀏覽器發佈前提前嵌入到瀏覽器內部了
所以 CA 的公鑰是真實可靠的(如果 CA 機構被黑客攻陷,那麼也可能是不可靠的),然後
服務器發送自己的公鑰給 CA(用 CA 的公鑰進行加密),CA 對服務器的發來的內容解密得
到服務器的公鑰,然後 CA 對服務器的公鑰進行頒發數字證書(就是數字簽名),發給服務
器,服務器收到以後,將數字證書,公開密鑰發送給客戶端,客戶端用 CA 的公開密鑰驗證
得到服務器的公開密鑰,然後這樣客戶端就得到了真正可靠的服務器的公開密鑰。
11.3 公私鑰
公鑰(Public Key)與私鑰Private Key)是通過一種算法得到的一個密鑰對(即一個
公鑰和一個私鑰),公鑰是密鑰對中公開的部分,私鑰則是非公開的部分。
使用這個密鑰對的時候,如果用其中一個密鑰加密一段數據,必須用另一個密鑰解密。
比如用公鑰加密數據就必須用私鑰解密,如果用私鑰加密也必須用公鑰解密,否則解密將不
會成功。
11.4 非對稱加密 RSA
非對稱加密算法需要兩個密鑰:公開密鑰publickey)和私有密鑰(privatekey)。公
開密鑰與私有密鑰是一對,如果用公開密鑰對數據進行加密,只有用對應的私有密鑰才能解密;如果用私有密鑰對數據進行加密,那麼只有用對應的公開密鑰才能解密。因爲加密和解
密使用的是兩個不同的密鑰,所以這種算法叫作非對稱加密算法。
RSA
RSA 算法的步驟主要有以下幾個步驟:
1、選擇 pq 兩個超級大的質數 ,都是 1024 位,
2、令 n = p * q。取 φ(n) =(p-1) * (q-1)。 計算與 n 互質的整數的個數。
3、取 e 1 < e < φ(n) ( n , e )作爲公鑰對,正式環境中取 65537
可以打開任意一個被認證過的 https 證書,都可以看到。
4、令 ed mod φ(n) = 1,計算 d( n , d ) 作爲私鑰對。 計算 d 可以
利用擴展歐幾裏的算法進行計算
5、銷燬 pq。密文 = 明文 ^ e mod n , 明文 = 密文 ^ d mod n
利用蒙哥馬利方法進行計算,也叫反覆平方法,非常簡單、
其中(n,e)是公鑰 (n,d)是私鑰
11.5 對稱密鑰 DES
DESDES 算法是一種分組加密機制,將明文分成 N 個組,然後對各個組
進行加密,形成各自的密文,最後把所有的分組密文進行合併,形成最終的密
對稱密鑰就是加密使用的密鑰是一致的。
11.6 DH 加密算法
Diffie-Hellman 算法概述:
1Alice Bob 確定兩個大素數 n g,這兩個數不用保密
2Alice 選擇另一個大隨機數 x,並計算 A 如下:A=g^x mod n
3Alice A 發給 Bob
4Bob 選擇另一個大隨機數 y,並計算 B 如下:B=g^y mod n
5Bob B 發給 Alice
6)計算 Alice 的祕密密鑰 K1 如下:K1=B^x mod n
7)計算 Bob 的祕密密鑰 K2 如下:K2=A^y mod n K1=K2,因此 Alice Bob 可以
用其進行加解密
11.7 SHA MD5
MD5MD5 消息摘要算法(英語:MD5 Message-Digest Algorithm),一種被廣泛使用的密碼散列函數,可以
產生出一個 128 位(16 字節)的散列值(hash value),用於確保信息傳輸完整一致。
SHA安全散列算法(英語:Secure Hash Algorithm,縮寫爲 SHA)是一個密碼散列函數家族,是 FIPS 所認證
的安全散列算法。能計算出一個數字消息所對應到的,長度固定的字符串(又稱消息摘要)的算法。且若輸入的消息不
同,它們對應到不同字符串的機率很高。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章