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