数字签名中的密钥(公钥、私钥)
2017-08-23 本文已影响0人
a279d9b63eac
前言
曾几何时,大学里面还有一门课,叫PKI(Public Key Infrastructure),当时感觉没毛用工作后感慨,教那门课的老师真和蔼。除了安全三要素机密性(Confidentiality)、完整性(Integrity)、可用性(Availability),加上数字签名的不可否认性,使的我们的网络环境,尤其在电子商务中更加安全本文将介绍PKI中的数字签名,涉及到的名词主要有,CA、公钥、私钥,签名,摘要等等。希望大家喜欢。
名词介绍
CA:
发放和管理数字证书的权威机构,电子商务交易中受信任的第三方,主要负责公钥体系中公钥的合法性检验。
非对称加密算法
非对称加密算法需要两个密钥:公钥(publickey)和私钥(privatekey),用公钥揭秘私钥加密的数据,用私钥揭秘公钥加密的数据。
RSA:
一种广泛使用的非对称加密算法。
公钥:
密钥对中公开的部分。
私钥:
非公开的部分。
摘要:
对任何输入报文数据生成固定长度的摘要,主要通过HASH函数
签名:
使用自己的私钥对摘要加密
签名过程
铭记公钥是公布出去的,网络环境上的人都可以知道,私钥必须保证只有自己知道,
每个用户在一套系统中都有自己的公私钥
发送方
1.生成摘要
把要发的数据,通过HASH函数生成摘要。
2.生成签名
对生成的摘要用自己的私钥加密,就生成了签名。
3.拼接数据
把摘要附在原始数据后,生成要返送的数据。
4.发送数据
用接受方的公钥,对要发的数据加密后,发送数据。
至此发送方工作已完成
接受方
1.解密接受到的数据
使用自己的私钥,解密收到的数据。(解密不了说明,不是发给自己的)
2.分离数据
解密后,分离出摘要密文与原始数据,用发送方的公钥解密摘要密文,得到原始数据摘要,如果解密失败,说明发送方造假,活中间人攻击,抛弃数据,认证失败。
3.计算摘要
自己使用同样的摘要算法,计算出原始数据摘要。
4.完整性验证
把自己生成的原始数据摘要与收到的摘要对比。如果一致说明,数据没被中间人篡改,完整性验证通过,如不一致,认证失败。
疑惑
1.非对称加密算法,这么强大,还要对此加密干嘛?现实应用中,对称加密还是非常常见的,因为非对称加密效率不高,对大量的数据加密还得用对称加密。我们可以在认证过程中发送双方在发送的原始数据中加入对称加密的秘钥,一旦认证成功,就可以取到秘钥,这样就可以愉快的解密数据了(哈哈哈哈,我自己的理解)。
2.别人怎么知道我的公钥内?还记的CA吧,大boss。它知道所有用户的公钥,毕竟人家权威吗。CA也有自己的公钥,用户可以从指定,地点获取。每个用户的公钥在自己的证书中,这个证书怎么来的?大家都相信权威当然是CA颁发的。用户的证书中有,CA用自己的私钥对用户的公钥和一些相关信息一起加密,生成"数字证书"。当我们想获取或验证其他用户的证书时,找CA。
最后
密钥很重要,一定要注意保密,一定要注意传送方式,尤其是私钥,一定要保证安全。