MessageDigest對密碼進行加密

通常,使用的加密算法 比較簡便高效,密鑰簡短,加解密速度快,破譯極其困難。本文介紹了 MD5/SHA1,DSA,DESede/DES,Diffie-Hellman的使用。
<!--START RESERVED FOR FUTURE USE INCLUDE FILES--><!-- include java script once we verify teams wants to use this and it will work on dbcs and cyrillic characters --><!--END RESERVED FOR FUTURE USE INCLUDE FILES-->

第1章基礎知識

 

1.1. 單鑰密碼體制

單鑰密碼體制是一種傳統的加密算法,是指信息的發送方和接收方共同使用同一把密鑰進行加解密。

通常,使用的加密算法比較簡便高效,密鑰簡短,加解密速度快,破譯極其困難。但是加密的安全性依靠密鑰保管的安全性,在公開的計算機網絡上安全地傳送和保管密鑰是一個嚴峻的問題,並且如果在多用戶的情況下密鑰的保管安全性也是一個問題。

單鑰密碼體制的代表是美國的DES

1.2. 消息摘要

一個消息摘要就是一個數據塊的數字指紋。即對一個任意長度的一個數據塊進行計算,產生一個唯一指印(對於SHA1是產生一個20字節的二進制數組)。

消息摘要有兩個基本屬性:

  • 兩個不同的報文難以生成相同的摘要
  • 難以對指定的摘要生成一個報文,而由該報文反推算出該指定的摘要

代表:美國國家標準技術研究所的SHA1和麻省理工學院Ronald Rivest提出的MD5

1.3. Diffie-Hellman密鑰一致協議

密鑰一致協議是由公開密鑰密碼體制的奠基人Diffie和Hellman所提出的一種思想。

先決條件,允許兩名用戶在公開媒體上交換信息以生成"一致"的,可以共享的密鑰

代表:指數密鑰一致協議(Exponential Key Agreement Protocol)

1.4. 非對稱算法與公鑰體系

1976年,Dittie和Hellman爲解決密鑰管理問題,在他們的奠基性的工作"密碼學的新方向"一文中,提出一種密鑰交換協議,允許在不安全的媒體上通過通訊雙方交換信息,安全地傳送祕密密鑰。在此新思想的基礎上,很快出現了非對稱密鑰密碼體制,即公鑰密碼體制。在公鑰體制中,加密密鑰不同於解密密鑰,加密密鑰公之於衆,誰都可以使用;解密密鑰只有解密人自己知道。它們分別稱爲公開密鑰(Public key)和祕密密鑰(Private key)。

迄今爲止的所有公鑰密碼體系中,RSA系統是最著名、最多使用的一種。RSA公開密鑰密碼系統是由R.Rivest、A.Shamir和L.Adleman俊教授於1977年提出的。RSA的取名就是來自於這三位發明者的姓的第一個字母

1.5. 數字簽名

所謂數字簽名就是信息發送者用其私鑰對從所傳報文中提取出的特徵數據(或稱數字指紋)進行RSA算法操作,以保證發信人無法抵賴曾發過該信息(即不可抵賴性),同時也確保信息報文在經簽名後末被篡改(即完整性)。當信息接收者收到報文後,就可以用發送者的公鑰對數字簽名進行驗證。 

在數字簽名中有重要作用的數字指紋是通過一類特殊的散列函數(HASH函數)生成的,對這些HASH函數的特殊要求是:

  1. 接受的輸入報文數據沒有長度限制;
  2. 對任何輸入報文數據生成固定長度的摘要(數字指紋)輸出
  3. 從報文能方便地算出摘要;
  4. 難以對指定的摘要生成一個報文,而由該報文反推算出該指定的摘要;
  5. 兩個不同的報文難以生成相同的摘要

代表:DSA

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章