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 所认证
的安全散列算法。能计算出一个数字消息所对应到的,长度固定的字符串(又称消息摘要)的算法。且若输入的消息不
同,它们对应到不同字符串的机率很高。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.