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
所认证
的安全
散列算法
。能计算出一个数字消息所对应到的,长度固定的字符串(又称消息摘要)的算法。且若输入的消息不
同,它们对应到不同字符串的机率很高。