證書、公鑰、加密驗證

公鑰 和 私鑰

公鑰(Public Key)與私鑰(Private Key)是通過一種算法得到的一個密鑰對(即一個公鑰和一個私鑰),公鑰是密鑰對中公開的部分,私鑰則是非公開的部分。公鑰通常用于加密會話密鑰、驗證數(shù)字簽名,或加密可以用相應(yīng)的私鑰解密的數(shù)據(jù)。通過這種算法得到的密鑰對能保證在世界范圍內(nèi)是獨一的。使用這個密鑰對的時候,如果用其中一個密鑰加密一段數(shù)據(jù),必須用另一個密鑰解密。比如用公鑰加密數(shù)據(jù)就必須用私鑰解密,如果用私鑰加密也必須用公鑰解密,否則解密將不會成功。

可以通過SSH生成公鑰和私鑰

//打開終端,進入SSH配置
cd ~/.ssh
//生成SSH公鑰和私鑰的文件,輸入如下回車
ssh-keygen -t rsa -C "emailAddress"
//提示輸入命名公鑰和私鑰的的文件名,這里我取名:id_rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/yanlongli/.ssh/id_rsa): id_rsa
//輸入文件名后回車,第一次輸入密碼(直接回車不用輸入)
Enter passphrase (empty for no passphrase):
//第二次輸入密碼(直接回車不用輸入)
Enter same passphrase again:

//看到如下內(nèi)容
Your identification has been saved in id_rsa
Your public key has been saved in id_rsa.pub.
The key fingerprint is:
SHA256:rAMqiezMn/NlTvFn1+SXxf+PAB8W3AxDR6hAJuAz6Aw vickyxiao@tencent.com
The key's randomart image is:
+---[RSA 2048]----+
|    ....o  .+oo  |
|   o   o.  ..*   |
|E . +    . .o o  |
| +   o .  .  . . |
|  o .  .S . o  .o|
|o. . . .o  + .+ +|
|+..   o+ . oo. +o|
|+. .. =.  o .. .o|
| +.oo. .      . +|
+----[SHA256]-----+

//ls -l 下檢查生成的SSH Key文件,看到id_rsa(私鑰)和id_rsa.pub(公鑰)兩個文件,
//代表公鑰和私鑰已經(jīng)成功生成了,若沒有,需要按照上面步驟重新生成

"數(shù)字簽名"(digital signature) 和 "數(shù)字證書"(digital certificate)

1.鮑勃有兩把鑰匙,一把是公鑰,另一把是私鑰


2.鮑勃把公鑰送給他的朋友們----帕蒂、道格、蘇珊----每人一把


  1. 蘇珊要給鮑勃寫一封保密的信。她寫完后用鮑勃的公鑰加密,就可以達到保密的效果


  2. 鮑勃收信后,用私鑰解密,就看到了信件內(nèi)容。這里要強調(diào)的是,只要鮑勃的私鑰不泄露,這封信就是安全的,即使落在別人手里,也無法解密


  3. 鮑勃給蘇珊回信,決定采用"數(shù)字簽名"。他寫完后先用Hash函數(shù),生成信件的摘要(digest)


  4. 然后,鮑勃使用私鑰,對這個摘要加密,生成"數(shù)字簽名"(signature)


  5. 鮑勃將這個簽名,附在信件下面,一起發(fā)給蘇珊


  6. 蘇珊收信后,取下數(shù)字簽名,用鮑勃的公鑰解密,得到信件的摘要。由此證明,這封信確實是鮑勃發(fā)出的


  7. 蘇珊再對信件本身使用Hash函數(shù),將得到的結(jié)果,與上一步得到的摘要進行對比。如果兩者一致,就證明這封信未被修改過


  8. 復(fù)雜的情況出現(xiàn)了。道格想欺騙蘇珊,他偷偷使用了蘇珊的電腦,用自己的公鑰換走了鮑勃的公鑰。此時,蘇珊實際擁有的是道格的公鑰,但是還以為這是鮑勃的公鑰。因此,道格就可以冒充鮑勃,用自己的私鑰做成"數(shù)字簽名",寫信給蘇珊,讓蘇珊用假的鮑勃公鑰進行解密。


  9. 后來,蘇珊感覺不對勁,發(fā)現(xiàn)自己無法確定公鑰是否真的屬于鮑勃。她想到了一個辦法,要求鮑勃去找"證書中心"(certificate authority,簡稱CA),為公鑰做認(rèn)證。證書中心用自己的私鑰,對鮑勃的公鑰和一些相關(guān)信息一起加密,生成"數(shù)字證書"(Digital Certificate)


  10. 鮑勃拿到數(shù)字證書以后,就可以放心了。以后再給蘇珊寫信,只要在簽名的同時,再附上數(shù)字證書就行了


  11. 蘇珊收信后,用CA的公鑰解開數(shù)字證書,就可以拿到鮑勃真實的公鑰了,然后就能證明"數(shù)字簽名"是否真的是鮑勃簽的


加密

對稱加密

  • 加解密使用同一個密鑰
  • 常見的對稱加密算法:DES,AES等
  • 加解密的效率要高得多、加密速度快

非對稱加密

  • 加解密使用不同的密鑰(公鑰 和 私鑰)
  • 最常用的非對稱加密算法:RSA
  • 加密和解密花費時間長、速度慢,只適合對少量數(shù)據(jù)進行加密

END!

參考文章:

http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容