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、選擇 p、q 兩個超級大的質數 ,都是 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、銷燬 p、q。密文 = 明文 ^ e mod n , 明文 = 密文 ^ d mod n。
利用蒙哥馬利方法進行計算,也叫反覆平方法,非常簡單、
其中(n,e)是公鑰 (n,d)是私鑰
11.5 對稱密鑰 DES
DES:DES 算法是一種分組加密機制,將明文分成 N 個組,然後對各個組
進行加密,形成各自的密文,最後把所有的分組密文進行合併,形成最終的密
文。
對稱密鑰就是加密使用的密鑰是一致的。
11.6 DH 加密算法
Diffie-Hellman 算法概述:
(1)Alice 與 Bob 確定兩個大素數 n 和 g,這兩個數不用保密
(2)Alice 選擇另一個大隨機數 x,並計算 A 如下:A=g^x mod n
(3)Alice 將 A 發給 Bob
(4)Bob 選擇另一個大隨機數 y,並計算 B 如下:B=g^y mod n
(5)Bob 將 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
MD5:MD5 消息摘要算法(英語: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、選擇 p、q 兩個超級大的質數 ,都是 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、銷燬 p、q。密文 = 明文 ^ e mod n , 明文 = 密文 ^ d mod n。
利用蒙哥馬利方法進行計算,也叫反覆平方法,非常簡單、
其中(n,e)是公鑰 (n,d)是私鑰
11.5 對稱密鑰 DES
DES:DES 算法是一種分組加密機制,將明文分成 N 個組,然後對各個組
進行加密,形成各自的密文,最後把所有的分組密文進行合併,形成最終的密
文。
對稱密鑰就是加密使用的密鑰是一致的。
11.6 DH 加密算法
Diffie-Hellman 算法概述:
(1)Alice 與 Bob 確定兩個大素數 n 和 g,這兩個數不用保密
(2)Alice 選擇另一個大隨機數 x,並計算 A 如下:A=g^x mod n
(3)Alice 將 A 發給 Bob
(4)Bob 選擇另一個大隨機數 y,並計算 B 如下:B=g^y mod n
(5)Bob 將 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
MD5:MD5 消息摘要算法(英語:MD5 Message-Digest Algorithm),一種被廣泛使用的密碼散列函數,可以
產生出一個 128 位(16 字節)的散列值(hash value),用於確保信息傳輸完整一致。
SHA:安全散列算法(英語:Secure Hash Algorithm,縮寫爲 SHA)是一個密碼散列函數家族,是 FIPS 所認證
的安全散列算法。能計算出一個數字消息所對應到的,長度固定的字符串(又稱消息摘要)的算法。且若輸入的消息不
同,它們對應到不同字符串的機率很高。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.