數字簽名、加密傳輸原理

數字簽名,就是通過在數據單元上附加數據,或對數據單元進行祕密變換,從而使接收者可以確認數據來源和完整性。簡單說來,數字簽名是防止他人對傳輸的文件進行破壞,以及確定發信人的身份的手段。

 

        目前的數字簽名是建立在公共密鑰體制基礎上,它是公用密鑰加密技術的另一類應用。它的主要方式是:報文的發送方從報文文本中生成一個128位的散列值(又 稱報文摘要,數字指紋)。發送方用自己的私人密鑰對這個散列值進行加密來形成發送方的數字簽名。然後,這個數字簽名將作爲報文的附件和報文一起發送給報文 的接收方。報文的接收方首先從接收到的原始報文中計算出128位的散列值,接着再用發送方的公用密鑰來對報文附加的數字簽名進行解密。如果兩個散列值相 同、那麼接收方就能確認該數字簽名是發送方的。通過數字簽名能夠實現對原始報文的鑑別。採用數字簽名,能確認以下兩點:第一,信息是由簽名者發送的;第 二,信息自簽發後到收到爲止未曾作過任何修改。這樣數字簽名就可用來防止電子信息因易被修改而有人作僞,或冒用別人名義發送信息。或發出(收到)信件後又 加以否認等情況發生。

       應用廣泛的數字簽名方法主要有三種,即:RSA簽名、DSS簽名和Hash簽名。這三種算法可單獨使用,也可綜合在一起使用。用RSA或其它公開密鑰密 碼算法的最大方便是沒有密鑰分配問題(網絡越複雜、網絡用戶越多,其優點越明顯)。因爲公開密鑰加密使用兩個不同的密鑰,其中有一個是公開的,另一個是保 密的。公開密鑰可以保存在系統目錄內、未加密的電子郵件信息中、電話黃頁(商業電話)上或公告牌裏,網上的任何用戶都可獲得公開密鑰。而私有密鑰是用戶專 用的,由用戶本身持有,它可以對由公開密鑰加密信息進行解密。RSA算法中數字簽名技術實際上是通過一個哈希函數來實現的。數字簽名的特點是它代表了文件 的特徵,文件如果發生改變,數字簽名的值也將發生變化。不同的文件將得到不同的數字簽名。DSS數字簽名是由美國國家標準化研究院和國家安全局共同開發 的。由於它是由美國政府頒佈實施的,主要用於與美國政府做生意的公司,其他公司則較少使用,它只是一個簽名系統,而且美國政府不提倡使用任何削弱政府竊聽 能力的加密軟件,認爲這才符合美國的國家利益。Hash簽名是最主要的數字簽名方法,也稱之爲數字摘要法(Digital Digest)或數字指紋法(Digital Finger Print)。它與RSA數字簽名是單獨的簽名不同,該數字簽名方法是將數字簽名與要發送的信息緊密聯繫在一起,它更適合於電子商務活動。

         對電子文件進行數字簽名並在網上傳輸,其技術實現過程大致如下:首先要在網上進行身份認證,然後再進行簽名,最後是對簽名的驗證。
1. 認證
PKI提供的服務首先是認證,即身份識別與鑑別,確認實體即爲自己所聲明的實體。認證的前提是甲乙雙方都具有第三方CA所簽發的證書,認證分單向認證和雙向認證。
(1) 單向認證是甲乙雙方在網上通信時,甲只需要認證乙的身份即可。這時甲需要獲取乙的證書,獲取的方式有兩種,一種是在通信時乙直接將證書傳送給甲,另一種是 甲向CA的目錄服務器查詢索取。甲獲得乙的證書後,首先用CA的根證書公鑰驗證該證書的簽名,驗證通過說明該證書是第三方CA簽發的有效證書。然後檢查證 書的有效期及檢查該證書是否已被作廢(LRC檢查)而進入黑名單。
(2)雙向認證。雙向認證是甲乙雙方在網上通信時,甲不但要認證乙的身份,乙也要認證甲的身份。其認證過程與單向認證過程相同。
2. 數字簽名與驗證過程
網 上通信的雙方,在互相認證身份之後,即可發送簽名的數據電文。數字簽名的全過程分兩大部分,即簽名與驗證。即發方將原文用哈希算法求得數字摘要,用簽名私 鑰對數字摘要加密得數字簽名,發方將原文與數字簽名一起發送給接受方;收方驗證簽名,即用發方公鑰解密數字簽名,得出數字摘要;收方將原文采用同樣哈希算 法又得一新的數字摘要,將兩個數字摘要進行比較,如果二者匹配,說明經數字簽名的電子文件傳輸成功。 

2. 數字簽名與驗證過程
網上通信的雙方,在互相認證身份之後,即可發送簽名的數據電文。數字簽名的全過 程分兩大部分,即簽名與驗證。即發方將原文用哈希算法求得數字摘要,用簽名私鑰對數字摘要加密得數字簽名,發方將原文與數字簽名一起發送給接受方;收方驗 證簽名,即用發方公鑰解密數字簽名,得出數字摘要;收方將原文采用同樣哈希算法又得一新的數字摘要,將兩個數字摘要進行比較,如果二者匹配,說明經數字籤 名的電子文件傳輸成功。 

       數字簽名原理中定義的是對原文做數字摘要和簽名並傳輸原文,在很多場合傳輸的原文是要求保密的,要求對原文進行加密的數字簽名方法如何實現?這裏就要涉及 到“數字信封”的概念。“電子信封”基本原理是將原文用對稱密鑰加密傳輸,而將對稱密鑰用收方公鑰加密發送給對方。收方收到電子信封,用自己的私鑰解密信 封,取出對稱密鑰解密得原文。其詳細過程如下:
(1) 發方A將原文信息進行哈希運算,得一哈希值即數字摘要MD;
(2) 發方A用自己的私鑰PVA,採用非對稱RSA算法,對數字摘要MD進行加密,即得數字簽名DS;
(3) 發方A用對稱算法DES的對稱密鑰SK對原文信息、數字簽名SD及發方A證書的公鑰PBA採用對稱算法加密,得加密信息E;
(4) 發方用收方B的公鑰PBB,採用RSA算法對對稱密鑰SK加密,形成數字信封DE,就好像將對稱密鑰SK裝到了一個用收方公鑰加密的信封裏;
(5) 發方A將加密信息E和數字信封DE一起發送給收方B;
(6) 收方B接受到數字信封DE後,首先用自己的私鑰PVB解密數字信封,取出對稱密鑰SK;
(7) 收方B用對稱密鑰SK通過DES算法解密加密信息E,還原出原文信息、數字簽名SD及發方A證書的公鑰PBA;
(8) 收方B驗證數字簽名,先用發方A的公鑰解密數字簽名得數字摘要MD;
(9) 收方B同時將原文信息用同樣的哈希運算,求得一個新的數字摘要MD’;
(10)將兩個數字摘要MD和MD’進行比較,驗證原文是否被修改。如果二者相等,說明數據沒有被篡改,是保密傳輸的,簽名是真實的;否則拒絕該簽名。
這樣就做到了敏感信息在數字簽名的傳輸中不被篡改,未經認證和授權的人,看不見原數據,起到了在數字簽名傳輸中對敏感數據的保密作用。


 

 

2.1.1 數據加密標準
  
   數據加密標準(Data Encryption Standard,DES)是美國國家標準局於1977年開發的對稱密鑰算法。它是一種對稱密鑰算法,可以使用40~56位長的密鑰。另一種稱爲3DES 的加密策略也使用同樣的DES算法,但它並不只是加密一次,而是先加密一次,再加密(解密)一次,最後做第三次加密,每一次加密都使用不同的密鑰。這一過 程顯著地增加了解密數據的難度。
  
  2.1.2 RSA算法
  
  RSA是一種根據它的發明者Rivest,Shamir和Adleman命名的公開密鑰算法。它方便了對稱密鑰加密中的密鑰交換過程。它還可以用來產生數字簽名。
  
  2.1.3 Diffie-Hellman
  
  Diffie-Hellman是一種簡化在非安全網絡上交換祕密密鑰的公開密鑰加密算法。算法是以Diffie和Hellman命名的,他們在1977年出版了第一個公開密鑰加密的公開搜索。它的主要目的是簡化在不安全網絡上交換祕密會話密鑰的過程。
  
  2.1.4 散列函數
  
   散列(Hash)函數是一種單向的算法,它提取任意長度的一段信息併產生固定長度的亂序的摘要。摘要是文本的一個截取,只包含與文本最相關的部分,這就 是Hash函數所產生的結果。Hash是一種單向的定義。我們可以在給定的文本上運行算法來獲得固定長度的Hash值,但不能從Hash過程中獲得最初的 文本。Hash函數可以唯一地定義文本。它對每個唯一的消息而言就像是指紋一樣。不同的消息可以產生不同的值,並且相同的消息會產生完全相同的 Hash,Hash值可以用於維持數據的完整性。如果A發送一個消息給B,並給B消息的Hash。B可以在消息上運行用在該消息上的同一Hash算法,並 用計算得到的Hash值與B收到的Hash值相比較。如果發現根據消息計算出來的Hash與B收到的Hash值不同,就可以知道數據在傳輸的過程中出錯 了。
  
  2.1.5 消息摘要:MD5
  
  消息摘要(Message Digest 5,MD5)是一種符合工業標準的單向128位的Hash算法,由RSA Data Security Inc.開發,它可以從一段任意長的消息中產生一個128位的Hash值。(例如,質詢握手身份驗證協議 (CHAP)通過使用MD5來協商一種加密身份驗證的安全形式。CHAP在響應時使用質詢-響應機制和單向MD5散列。用這種方法,用戶可以向服務器證明 自己知道密碼,但不必實際將密碼發送到網絡上,從而保證了密碼本身的安全性。)
  
  2.1.6 安全散列算法:SHA-1
  
  Secure Hash Algorithm(SHA-1)是一種產生160位Hash值的單向Hash算法。它類似於MD5,但安全性比MD5更高。
  
  2.1.7 Hash信息驗證碼HMAC(Hash message authentication codes)
  
  HMAC可以用來驗證接收消息和發送消息的完全一致性(完整性)。
  
  2.1.8 數字簽名
  
   數字簽名標準(Digital Signature Standard,DSS)是國家標準技術研究所開發的數字簽名算法。數字簽名(Digital Signature,DS)是一種用使用者的私有密鑰加密的Hash值。它可以像正常簽名一樣用於認證,但它也可以用做與簽名相關的信息完整性的認證。
  
  2.1.9 認證授權
  
   認證授權(Certificate Authority,CA)是一個實體,通常是一臺計算機,它保存了一些公開密鑰。事實上,它保存的一些稱爲認證的目標包含了用戶或設備的信息,其中包括 它們的公開密鑰。認證包含某個公開密鑰的所有者的認證信息,如:姓名、地址、公司等。認證的目的有兩個:
  
  ●標誌一個用戶或設備的公開密鑰。
  
  ●確認假設的公開密鑰的擁有者是公開密鑰的真實擁有者。
  
   認證授權(CA)是一個記錄了所有認證的第三方。使用CA,用戶可以有一個認證的集中貯藏處,它允許用戶獲得其他用戶的公開密鑰並認證那些用戶。它提供 了一個記錄用戶和設備公開密鑰的集中存放點。它還提供了認證授權,當用戶從CA中獲得用戶A的公開密鑰時,密鑰確實是用戶A的而不是其他人的。
  
  2.1.10 OAKLEY密鑰決定協議
  
   Hilarie Orman提出的"OAKLEY密鑰決定協議",Oakley和SKEME各自定義了一種建立已認證密鑰交換的方法,包括載荷的結構、所承載載荷信息、處 理它們的順序以及如何使用它們。Oakley描述了一系列的密鑰交換模式,提供密鑰交換和刷新功能。
  
  2.1.11 SKEME: Secure Key Exchange Mechanism
  
  Hugo Krawczik提出的"安全密鑰交換機制(SKEME)"SKEME描述了通用密鑰交換技術,提供匿名性、防抵賴和快速刷新。
  
  2.1.12 互連網安全聯盟及密鑰管理協議
  
   互連網安全聯盟及密鑰管理協議(Internet Security Association and Key Management Protocol,ISAKMP)是一個定義在主機之間交換密鑰和協商安全參數的框架。ISAKMP定義密鑰在非安全網絡上交換的一般機制,ISAKMP 定義的信息包括報文中消息的位置和通信過程發生的機制,但它不指明使用的協議和算法。
  
  2.1.13 互連網密鑰交換
  
   互連網密鑰交換(Internet Key Exchange,IKE)是一種實現密鑰交換定義的協議。IKE是一種在ISAKMP框架下運行的協議。它是從其他密鑰交換協議OaKley和 SKEME中派生而來的。IKE用於在對等端之間認證密鑰並在它們之間建立共享的安全策略。IKE用於確認,譬如標誌一個要求加密會話的對等端,以及決定 對等端使用何種算法和何種密鑰。
  
  IKE考慮了IPSec使用的所有算法交換祕密密鑰的複雜性。通過將密鑰管理函數替代普通的密鑰管理協議,簡化了將新的算法添加進IPSec協議棧的過程。IKE使用公開密鑰加密算法在非安全網絡上安全地交換祕密密鑰。
  
  2.1.14 Kerberos V5身份驗證
  
   Kerberos V5是用於處理用戶和系統身份的身份驗證的Internet標準安全協議,是在Windows 2000 Server域中進行身份驗證的主要安全協議。使用Kerberos V5,通過網絡線路所發送的密碼將經過加密而不作爲純文本進行發送。Kerberos V5協議校驗了用戶的身份和網絡服務。這種雙重驗證被稱爲相互身份驗證。

發佈了7 篇原創文章 · 獲贊 0 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章