【密码学】基础知识-1-数字签名与数字证书在基于非对称密钥加密的通信过程的应用
非对称密钥加密:???
又称公钥加密,公钥加密有一对密钥对,公钥和私钥,公钥即为公开(告诉别人)的密钥,私钥则不公开。(私钥一般是随机数生成器生成的,就像你注册一个账号时,密码是自己设置的)在密钥对中,一种密钥加密的数据必定能使用另一种密钥解密。其中,公钥用来给数据加密,私钥用来解密公钥加密的数据。
场景1:
现在假设你是吴彦祖分祖,有一对密钥对(公钥+私钥),你把你的公钥广播给你的朋友们和女朋友,私钥自己保留。
摘要算法(哈希/散列算法):
通过一个函数(哈希函数),把任意长度的数据转换为一个长度固定的数据串。就是说,无论你输入是任意类型 任意长度的明文,输出的密文的长度都是固定的。?数字签名:假如你想要传输一封信给你女朋友时,先将信的内容通过摘要算法生成信件内容的摘要??,再用自己的私钥对摘要进行加密,加密所生成的内容就是数字签名,然后把数字签名附在信件上。?签名验证:你的女朋友收到了你的信件后,取下你的数字签名,然后用你广播出去的公钥解开数字签名,得到摘要(姑且称摘要1),证明了这封信是你发送的,然后你朋友再对信件内容使用哈希函数并得到一个摘要(姑且称摘要2),用摘要2与上面的摘要1对比。若两个摘要相同,则证明了信件内容没有被修改。
场景2:
由于你长得很帅,此时冒出一个绿茶🍵婊?,用尽“爱情三十六计”接近你女朋友并和你女朋友成为了好盆友,然后她偷偷用了你女朋友的电脑,用自己的公钥换走了你女朋友的公钥…… 此时你女朋友拥有的是绿茶的公钥,但是你女朋友浑然不知并且还认为这是你的公钥。因此,绿茶就可以用她的私钥做出“数字签名”写信给你女朋友,让你女朋友用假的公钥解密(绿茶的公钥并非是你的公钥)……
摇摇欲坠的爱情~ (????ε???)
后来你女朋友觉得不对劲,发现了这个bug—没办法确认她手中的公钥是否是你的。她就想出一个办法:,让你去找一个“证书中心”(结婚证?)……
数字证书:?
可认为是一种身份证,用于标识你的身份。数字证书由权威机构(certificate authority,简称CA)颁发?并且用非对称加密算法加密。权威机构中的认证者拥有属于自己的密钥对(公钥和私钥)?。如果某个小可爱需要生成自己的数字证书,就将本人的公钥和一些个人信息提交给认证机构。(私钥自己保留,别傻傻的交出去)然后,认证者将你的公钥和个人信息用他的私钥加密,生成的就是数字证书。
整个通信过程总结:
你给你女朋友发信息:
1.你先用自己的私钥对信息(一般是信息的摘要)进行签名
2.你接着使用你女朋友的公钥对信息内容和签名信息进行加密。
你女朋友收到你的信件:
1.你女朋友用自己的私钥解密你用她的公钥加密的内容,得到信件内容和数字签名。
2、你女朋友得到解密后的明文再用你的公钥解签你用自己的私钥加密的签名。(分界线)
场景3:?你很赞成你女朋友的办法,就去找了相关的权威机构(CA),把自己的公钥和一些个人信息交给CA,CA用自己的私钥加密你的公钥和个人信息,生成数字证书。于是你写信的时候不仅在信件上附上了数字签名,还附上了数字证书。当你女朋友收到你“爱的信件”时,她用CA的公钥解开数字证书,把绿茶的公钥(此时你女朋友傻乎乎的认为这是你的公钥)和数字证书中你的公钥一对比,发现不匹配。于是,绿茶的阴谋不攻自破。然后,天雷继续勾地火,你们又继续幸福快乐的生活在一起……(u guys 最喜欢的happy ending~)┑( ̄_ ̄)┍