当前位置: 首页 > 科技观察

一张图看懂Linux公钥和私钥的区别和关系

时间:2023-03-18 19:47:11 科技观察

Linux系统非对称加密需要用到公钥和私钥。还经常涉及数字签名、数字证书、CA证书等概念。本文通过海绵宝宝和小伙伴们的有趣故事配上有趣的图片来解释这些概念,希望能帮助读者更轻松地理解这些概念和知识点。片段1.海绵宝宝有两把钥匙,一把是海绵宝宝的公钥,一把是海绵宝宝的私钥。片段2海绵宝宝到钥匙店,通过伪造复制了多把相同的公钥,送给好朋友派大星和章鱼哥各一把。片段3.帕特里克想给海绵宝宝写一封密信。为了防止信件被别人截取,看到内容信息。它决定在写完信后,用海绵宝宝给的公钥对信的内容进行加密。加密后的信件内容只能用海绵宝宝的私钥解密。这样就可以达到保密的效果。片段4,海绵宝宝收到信后,用自己的私钥解密了信,可以看到信的内容。这封信是安全的,即使落入他人之手,没有海绵宝宝的私钥也无法解密信中的内容。片段5,海绵宝宝回复派大星,决定使用“数字签名”。写入后的信息内容使用单向Hash函数生成信件摘要。数字签名:又称“公钥数字签名”,是一种类似于普通的纸质物理签名,但采用公钥加密领域的技术来识别数字信息的方法。数字签名是非对称密钥加密技术和数字摘要技术的应用。数字摘要:指将任意长度的消息转化为固定长度的短消息。它类似于一个以消息为参数的函数,即哈希函数。数字摘要是利用单向哈希函数,将需要加密的明文“摘要”转化为一串固定长度(128位)的密文。这串密文也称为数字指纹。它的长度是固定的,不同的明文摘要得到的密文结果总是不同的,但是同一个明文的摘要一定是相同的。片段6.海绵宝宝然后用自己的私钥加密这个摘要,生成一个“数字签名”。片段7.海绵宝宝将此签名附在信上并将其发送给帕特里克。片段8派大兴收到信件后,去掉数字签名,用海绵宝宝的公钥解密,得到信件摘要。这证明这封信确实是海绵宝宝寄来的。Fragment9.派大星对字母本身使用相同的单向Hash函数,将得到的结果与刚才得到的摘要进行比较。如果两者一致,则证明这封信的内容没有被他人修改过。片段10。出现了一种特殊情况。章鱼哥想骗拍大兴。他偷偷生成了自己的“章鱼哥公钥”来换取派大星的“海绵宝宝公钥”。此时,派大兴其实拥有了“章鱼哥的公钥,只是他没有注意到。因此,章鱼哥可以假扮成海绵宝宝,用他的私钥做一个“数字签名”,写信发送给派大兴,让派大兴用假的海绵宝宝公钥解密。由于解密很顺利,派大兴认为这封信是海绵宝宝写的片段11。后来,派大兴越来越觉得不对劲,它发现无法确定自己使用的公钥是否真的属于海绵宝宝,于是它想了一个办法:让海绵宝宝找一个“证书颁发机构”(CA)来验证公钥。证书中心用自己的私钥将海绵宝宝的公钥和一些相关信息一起加密,生成“数字证书”片段12,海绵宝宝拿到数字证书后就可以放心了,我会写的e以后去拍大兴。信,在签名的同时附上数字证书即可。片段13.派大星收到信后,用CA的公钥解锁数字证书,得到海绵宝宝的真实公钥,再用海绵宝宝的公钥重复步骤9验证数字签名,证明这封信是否真的是海绵宝宝写的。故事概要:先生成公钥和私钥,私钥自己保管。公钥是给需要给你发送加密信息文件的收件人的。收件人通过公钥对发送给您的信息进行加密,可以保证信息的安全(在密文暴露的情况下,如果您的私钥不被他人获取,加密后的信息仍然无法被解密泄露)您可以还可以通过生成“数字证书”来证明这封信是你写的。数字证书使用单向哈希函数生成新内容的加密摘要,然后通过私钥对这一端的摘要进行加密。发送信件时,将数字证书信件的内容一并发送给收件人,收件人可以通过公钥解密数字证书得到摘要,然后使用单向Hash函数对信件内容进行处理letter生成摘要。匹配这两个摘要就知道信件的内容是否被修改了。但是有一种特殊情况,就是对象不能确定自己手里的公钥是不是你给的公钥。这时候你就需要你去证书中心做一件特别的事情,证书中心会用它的私钥加密你自己的信息,公钥等生成数字证书。这样,当你写信的时候,在附上自己的数字签名的同时,也带上了证书中心颁发的数字证书。对方可以先通过CA公开的公钥对数字证书进行解密,得到你的公钥。然后用公钥解密你的数字签名得到数字摘要。然后,通过与单向哈希信内容的数字摘要进行比较,可以确定公钥就是你的公钥,信是你写的,内容没有被修改!