首先有一个【神奇的箱子】的概念:
- 神奇的箱子有一把锁。
- 这把锁有两种钥匙:通常只有一把红钥匙;有很多把绿钥匙。
- 开锁跟解锁必须使用不同种的钥匙。
当然也有【普通的箱子】:
- 普通的箱子有一把锁。
- 这把锁有一种钥匙:既可以开锁,又可以解锁
下面说下TLS协议的过程:
一个漆黑的店里,来了一名顾客。 “看看货” ——顾客向黑暗中递上一张纸条。 不久,一本证书送到了顾客手中。顾客熟练的翻看证书,证书中夹着一把绿色钥匙。 使用【某种方法】验证了证书确实是这个店家的。顾客掏出了一把自制的普通钥匙,用证书中的绿色钥匙把普通钥匙锁在【神奇的箱子】中,递了出去。
店里很黑,但既然是在【神奇的箱子】里,这个客人就可以放心等待交易的发生了。
果不其然,不久后一只【普通的箱子】送了过来。顾客使用【普通钥匙】打开了它,发现里面确实有自己需要的货。他笑了笑,把钱放进箱子中,又送了出去。他知道最后一定会送达店主手中。
故事里面【神奇的箱子】指的就是非对称加密。 使用不同的钥匙来开锁解锁,听起来真的就像是魔法一样!感谢伟大的数学让这种魔法得以发生。 利用这种魔法,才能成功的将普通钥匙送到拥有着红色钥匙的店主手中。 那么接下来的交易就用普通钥匙就行了,魔法的代价毕竟还是很昂贵的!
CA认证
回顾刚才的故事,有一个地方特别的让人感觉不协调。 【普通的箱子】可以信任。是因为普通钥匙放在了【神奇的箱子】中。 真的是这样吗?【神奇的箱子】是由绿色钥匙锁上的。普通钥匙最后一定会落到绿色钥匙的主人手上。但是有没有一种可能,绿色钥匙的主人,并不是店主? 细思极恐!一个贪婪邪恶的歹徒,正拿着顾客给的普通钥匙,一个一个的打开眼前的箱子。他脚边是一把红色钥匙,而箱子里,全是顾客的财产!
对于这个歹徒来说,伪造证书跟绿色钥匙都是拿手绝活。 然而魔高一尺道高一丈,魔法协会有专门的一套办法来保证这个小店的安全。
追加概念【真名之箱】
- 非常小的一个箱子。
- 任何钥匙都可以把东西锁在这个箱子里面,但是无法解锁。
- 被上锁的东西不会被消耗
- 箱子上会显现出东西的【真名】。相同钥匙相同东西,显现的真名相同。
店主提交证书到协会,魔法协会是这样做的:
- 协会拿出证书中的绿色钥匙,生成了证书的【真名之箱】
- 协会拿出协会红色钥匙(这个钥匙非常贵重,是整个协会的象征),把【真名之箱】锁入一个【神奇的箱子】并交给店主。
现在可以解释下上面顾客是如何用【某种方法】验证了证书确实是这个店家的: 店主在送出证书同时,还给了一个【神奇的箱子】。 顾客拿到证书后,翻到背面,找到给证书认证的魔法协会。 顾客腰间有一串绿色钥匙,这都是各个魔法协会的,他从中选出了这本证书对应的协会的一把。打开了证书附赠的【神奇的箱子】。箱子里面的东西十分小巧,他认出来这就是【真名之箱】。 于是顾客用证书中的绿色钥匙,对着证书也生成了一只【真名之箱】。两个箱子上面浮现出相同的【真名】。他此时知道了,这个证书一定是店主给他的。
|