传送数据加密过程的理解
参考网址:数据传送加密
1.密钥:
密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数。密钥分为对称密钥与非对称密钥。
1.1对称密钥
对称密钥加密,又称私钥加密,即信息的发送方和接收方用一个密钥去加密和解密数据。它的最大优势是加/解密速度快,适合于对大数据量进行加密,但密钥管理困难。
1.2非对称密钥
非对称密钥加密系统,又称公钥密钥加密。它需要使用一对密钥来分别完成加密和解密操作,一个公开发布,即公开密钥,另一个由用户自己秘密保存,即私用密钥。信息发送者用公开密钥去加密,而信息接收者则用私用密钥去解密。公钥机制灵活,但加密和解密速度却比对称密钥加密慢得多。
注意:如果用其中一个密钥加密一段数据,必须用另一个密钥解密。如用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密,否则解密将不会成功 [1] 。
2.公钥与私钥
公钥和私钥是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),其中的一个向外界公开,称为公钥;另个自己保留,称为私钥。通过这种算法得到的密钥对能保证在世界范围内是唯一的。使用这个密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密。如用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密,否则解密将不会成功 [1] 。
3.数字签名
1.首先假设有两个人要进行通信:一个时Bob,另外一个是Pat,Bod负责发送消息,而Pat主要负责接受消息
下面为图示:
下面引入一个新的问题:
Doug要欺骗Pat,冒充Bob给Pat写信,他应该怎么做的?既然Bob的公钥是公开的,Doug可以冒充Bob,将他自己的公钥发给Pat,让Pat误认为收到的公钥就是Bob的,然后就可以冒充Bob给Pat发消息了(这里我们只谈理论,不谈具体实现方式)。所以问题的核心就是,如何确保公钥不被冒充?
使用数字证书可以确保公钥不被冒充。数字证书是经过权威机构(CA)认证的公钥,通过查看数字证书,可以知道该证书是由那家权威机构签发的,证书使用人的信息,使用人的公钥。它有以下特点:
1、由专门的机构签发的数字证书才安全有效。
2、签发数字证书是收费的。
3、不会被冒充,安全可信。
4、数字证书有使用期限,过了使用期限,证书变为不可用。CA也可以在试用期内,对证书进行作废操作。
4.数字证书
生成数字证书的流程的如下:
数字证书是经过权威机构(CA)认证的公钥
1、持有人将公钥以及身份信息发送给权威机构。
2、权威机构负责对持有人的身份进行验证,确保公钥和持有人的信息准确无误。
3、权威机构使用自己私钥对持有人公钥进行数字签名,生成数字证书。
4、为了确保证书不被篡改,权威机构对数字证书进行hash计算(指纹算法),生成摘要(指纹),使用自己的私钥对摘要进行数字签名,放到数字证书中。
5、对持有人收费。
Pat收信后,用CA的公钥解密数字证书中的数字签名(CA公钥存在根证书中,根证书是绝对信任的),得到数字签名的原文,再计算数字证书的hash值,对比得到的hash值和得到的数字签名原文,即可验证该数字证书是否可信任,若验证通过了,说明该数字证书上的信息是可信的,进而得到Bob的真实公钥,用Bob的真实公钥来验证Bog的数字签名,若验证通过,则可以确认该信件是Bob发出的了。
下面为图示: