數字簽名和數字證書詳解

原文件地址:http://www.tuicool.com/articles/7buueeQ算法

密鑰分爲兩種:對稱密鑰和非對象密鑰ide

對稱密鑰算法:DES 3DES AES,加密算法快ui

非對稱密鑰算法:RAS,加密算法慢加密


摘要:採用某種摘要算法,將明文轉化爲固定長度的字符,摘要也被稱爲指紋.相同的文件內容和文件名具備
相同的指紋spa

摘要算法:md5(二進制:128位,16進制:32位),SHA1(二進制:256位,64位)3d

wKiom1iznODynshEAAAcmg19rOg237.png



對稱密鑰理解圖:對象

wKiom1izl1_ilVi_AABUv3_B1Lg868.jpg

wKioL1izl7OAaqdlAABQRNrD6oU484.jpg



基於Bob向Alice發送文件的場景,blog

wKiom1iztp2AasWVAAA0GE8jd3g288.jpg

  1. 摘要算法(md5,SHA1) +Bob的原始文件 計算出=> 這個文件的摘要值md5

  2. 非對稱密鑰算法(RSA)+ Bob私鑰 + 上一步的摘要值 =>摘要密文ci

  3. 摘要密文 + 原始文件 發送給 => Alice

摘要密文和原始文件被稱做Bob對原始文件的簽名結果

數字簽名:就是對原始文件的摘要(指紋),用其私鑰進行加密



Alice收到Bob發來的信息後:

wKioL1izuwCx0PJVAABVnGK23Yk766.jpg



  1. Alice使用Bob的公鑰將收到的摘要密文解密獲得摘要值(能用Bob的私鑰解密,說明對方必定是Bob,這個摘要值很明顯是由Bob計算獲得的)

  2. Alice利用摘要算法(md5,SHA1) + 原始文件 =>摘要值(這個由Alice計算獲得的)與上一步獲得的摘要值對比,同樣說明Alice從Bob接受到的數據是完整的,沒有人篡改過.

    以上兩個步驟被稱爲驗籤


PKCS10(P10)數據包:公鑰 + 密鑰的算法 + 該公鑰的全部者(主題) + 該公鑰的有效期等屬性




簽名過程:

wKioL1izvU6jHgp_AAA_3Q9eBEk441.jpg

  1. Bob將本身的P10數據包發送給CA,通過CA簽名得 原始文件(P10數據包) + 摘要密文(由CA私鑰加密造成),這個簽名後的結果被稱爲數字證書.


數字證書一樣遵循一個格式標準,咱們稱做X509標準,咱們通常提到的X509證書就是如此。



基於這個數字證書,再來看Bob如何給Alice發送一份不能否認,不可篡改的文件


wKiom1izvwij1pGhAAA79lxGC_g800.jpg

  1. Bob將本身的簽名後的結果(原始文件(Hello World!) + 摘要密文(Bob私鑰加密hello,world後) ) + Bob的數字證書(P10數據包 + 摘要密文(P10數據包經CA私鑰加密)) 發送給Alice






Alice接受Bob發送的數據過程

wKioL1izxPCwh4eaAABepah1SDU198.jpg

  1. Alice利用CA公鑰對Bob發來的數字證書進行驗證,若是驗證成功,則提取證書中的
    公鑰,對Bob發來的文件進行驗籤,若是驗證成功,則證實文件不能否認不可篡改.


        總結:基於數字證書後,Alice不須要本身維護一個公鑰庫維護Bob(等人的)公鑰證書,只要持有CA

     的公鑰便可.

相關文章
相關標籤/搜索