三、数字签名
1、 基础:公钥技术
a) PKI(Public Key Infrastructure)公钥基础设施
b) 算法RSA
c) 不共享密钥,有两个密钥使用时一个保密一个公开
2、 数字签名及身份认证技术
数字签名:我用我的私钥对消息进行签名,然后将这个签名连同消息一起发送过去。您可以使用我的公共钥验证您收到的签名。
签名方法
验证签名方法
3、 证书
从上面的图中可以看出如果签名是正确的那么发布这个消息的人就是他所声称的那个人,也就是可以由此进行身份验证。 |
a) 那么如何发布公钥呢?
b)我们将安全个体的名字和公钥绑定起来作为证书来发布。发布公钥的时候使用证书来发布。
c)证书(Certificate)
l 本质:包含多个字段的字符串
l ITU X.509 v3
l 一个典型的证书包含的内容
版本 |
序列号 |
签名算法 |
发行人 |
有效起始时间 |
有效终止时间 |
主题 |
公钥 |
其他字段 |
CA的数字签名 |
l 证书的发布一般为一个组织
l CA(Certification Authority)证书权威机构
l 某个人想发行一个数字签名,要找CA,告诉这个组织我的公钥并要反向声明告诉这个组织我就是我拥有这个公钥的真正主人(取决于这个组织的认证方式)。
l 这时如果我传递消息给你时(消息和数字签名的组合)要同包含我公钥的证书一起发给你,现在你可以使用证书的公钥来证实我是消息的发布者。那么这个证书中的公钥是否是正确的呢?这由证书中的发布证书组织的数字签名来保证。
l 这时又带来了新的问题,用于认证的证书中的CA签名的CA公钥由谁提供?我们想到的答案是:用这个组织的上级组织的证书来证明。
l 证书链:这样一级一级向上查找证书会形成一个证书链。
l 根证书:证书链的结束位置的证书我们称为根证书,这个证书是CA用自己的私钥对它的证书产生一个签名。也就是说是自签名的。
l 确定哪个CA是您接受的根CA是个严肃的问题。通常这由用户决定。
4、 密钥长问题
5、 公钥与单密钥技术结合