问题: 公钥 私钥是怎么产生和使用的?
根证书
根证书, 是CA给自己颁发的数字证书, 是信任链的起始点. 它一 般放在CA网站上, 供任何人下载.
数字签名原理
公私钥的特性:
1.对于一个私钥,有且只有一个与之对应的公钥。生成者负责生成私钥和公钥,并保存私钥,公开公钥
2.公钥是公开的,但不可能通过公钥反推出私钥,或者说极难反推,只能穷举,所以只要密钥足够长度,要通过穷举而得到私钥,几乎是不可能的
3.通过私钥加密的密文只能通过公钥解密,公钥加密的密文只有通过私钥解密
1.1 签名:
发送者先对要发送的”数据"计算一个哈希值, 再用自己的私钥对这个哈希值加密生成一 个"签名(值)", 同时发送者要拥有一个向CA申请得到的"数字证书"(
其记录有公钥
), 最后发送者把"数据", “签名(值)"和"数字证书"一起发送给接收者.
1.2 验证签名:
接收者接收到发来的”数据", "签名(值)"和"数字证书"后, 会作一系列验证来判断这一数 字签名是否有效:
- 1.2.1
- 打开并验证"数字证书"的有效性;
- 1.2.2
计算"数据"的哈希值H1, 用"数字证书"记录的公钥对"签名(值)"进行解密得到值H2, 如 果H1==H2, 则该"数字签名"有效.
具体到
iOS证书签名
Apple官方提供的证书形式: