加密算法
加密算法可以分為兩類:對稱加密和非對稱加密。
對稱加密
1.概述
採用單鑰
密碼系統的加密方法,同一個密鑰可以同時用作信息的加密和解密,這種加密方法稱為
對稱加密,也稱為單密鑰加密。
需要對加密和解密使用相同密鑰的加密算法。由於其速度快,對稱性加密通常在訊息傳送方需要加密大量數據時使用。對稱性加密也稱為密鑰加密。
所謂對稱,就是採用這種加密方法的雙方使用方式用同樣的密鑰進行加密和解密。密鑰是控制加密及解密過程的指令。算法是一組規則,規定如何進行加密和解密。
因此加密的安全性不僅取決於加密算法本身,
密鑰管理的安全性更是重要。因為加密和解密都使用同一個密鑰,如何把密鑰安全地傳遞到解密者手上就成了必須要解決的問題。
2.常用算法
在
對稱加密算法中常用的算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK、AES等。不同算法的實現機制是不同的。
3.優缺點
對稱加密算法的優點是算法公開、計算量小、加密速度快、加密效率高。
對稱加密算法的缺點是在
數據傳送前,傳送方和接收方必須商定好
密鑰,然後使雙方都能保存好
密鑰。其次如果一方的
密鑰被泄露,那么加密信息也就不安全了。另外,每對用戶每次使用對稱加密算法時,都需要使用其他人不知道的唯一
密鑰,這會使得收、發雙方所擁有的鑰匙數量巨大,密鑰管理成為雙方的負擔。
非對稱加密
1.概述
對稱加密算法在加密和
解密時使用的是同一個
密鑰;而
非對稱加密算法需要兩個密鑰來進行加密和解密,這兩個秘鑰是公開密鑰(public key,簡稱公鑰)和私有密鑰(private key,簡稱私鑰)。
與對稱加密算法不同,非對稱加密算法需要兩個密鑰:公開密鑰(publickey)和私有密鑰(privatekey)。公開密鑰與私有密鑰是一對,如果用公開密鑰對數據進行加密,只有用對應的私有密鑰才能解密;如果用私有密鑰對數據進行加密,那么只有用對應的公開密鑰才能解密。因為加密和解密使用的是兩個不同的密鑰,所以這種算法叫作非對稱加密算法。
2.常用算法
在非對稱加密中使用的主要算法有:RSA、Elgamal、背包算法、Rabin、D-H、ECC(橢圓曲線加密算法)等。
3.優缺點
非對稱加密與對稱加密相比,其安全性更好:對稱加密的
通信雙方使用相同的秘鑰,如果一方的秘鑰遭泄露,那么整個通信就會被破解。而非對稱加密使用一對
密鑰,一個用來加密,一個用來解密,而且公鑰是公開的,
密鑰是自己保存的,不需要像對稱加密那樣在通信之前要先同步
密鑰。
非對稱加密的缺點是加密和解密花費時間長、速度慢,只適合對少量數據進行加密。
一般來說,非對稱加密是用來處理短訊息的,而相對於較長的訊息則顯得有些吃力。當然,可以將長的訊息分成若干小段,然後再分別簽名。不過,這樣做非常麻煩,而且會帶來
數據完整性的問題。比較合理的做法是在數字簽名前對訊息先進行數字摘要。
數字摘要
數字摘要是將任意長度的訊息變成固定長度的短訊息,它類似於一個自變數是訊息的
函式,也就是Hash函式。數字摘要就是採用單項Hash函式將需要加密的明文“摘要”成一串固定長度(128位)的密文這一串密文又稱為數字
指紋,它有固定的長度,而且不同的明文摘要成密文,其結果總是不同的,而同樣的明文其摘要必定一致。
數字摘要就是採用單項
Hash函式將需要加密的明文“摘要”成一串固定長度(128位)的密文這一串密文又稱為數字指紋,它有固定的長度,而且不同的明文摘要成密文,其結果總是不同的,而同樣的明文其摘要必定一致。
優缺點
一個Hash函式的好壞是由發生碰撞的機率決定的。如果攻擊者能夠輕易地構造出兩個訊息具有相同的Hash值,那么這樣的Hash函式是很危險的。一般來說,安全Hash標準的輸出長度為160位,這樣才能保證它足夠的安全。 這一加密方法亦稱安全Hash編碼法(SHA:Secure Hash Algorithm)或MD5(MD Standards for Message Digest),由Ron Rivest所設計。該編碼法採用單向Hash函式將需加密的明文“摘要”成一串128bit的密文,這一串密文亦稱為數字指紋(Finger Print),它有固定的長度,且不同的明文摘要成密文,其結果總是不同的,而同樣的明文其摘要必定一致。這樣這摘要便可成為驗證明文是否是“真身”的“指紋”了。
數字簽名
數字簽名(又稱公鑰數字簽名、電子簽章)是一種類似寫在紙上的普通的物理簽名,但是使用了公鑰加密領域的技術實現,用於鑑別數字信息的方法。一套數字簽名通常定義兩種互補的運算,一個用於簽名,另一個用於驗證。
數字簽名,就是只有信息的傳送者才能產生的別人無法偽造的一段數字串,這段數字串同時也是對信息的傳送者傳送信息真實性的一個有效證明。
數字簽名是非對稱密鑰加密技術與數字摘要技術的套用。
簡單地說,所謂數字簽名就是附加在數據單元上的一些數據,或是對數據單元所作的密碼變換。這種數據或變換允許數據單元的接收者用以確認數據單元的來源和數據單元的完整性並保護數據,防止被人(例如接收者)進行偽造。它是對電子形式的訊息進行簽名的一種方法,一個簽名訊息能在一個通信網路中傳輸。基於
公鑰密碼體制和私鑰密碼體制都可以獲得數字簽名,主要是基於公鑰密碼體制的數字簽名。包括普通數字簽名和特殊數字簽名。普通
數字簽名算法有RSA、ElGamal、Fiat-Shamir、Guillou- Quisquarter、Schnorr、Ong-Schnorr-Shamir數字簽名算法、Des/DSA,橢圓曲線數字簽名算法和
有限自動機數字簽名算法等。特殊數字簽名有盲簽名、代理簽名、群簽名、不可否認簽名、公平盲簽名、門限簽名、具有訊息恢復功能的簽名等,它與具體套用環境密切相關。顯然,數字簽名的套用涉及到法律問題,
美國聯邦政府基於有限域上的離散對數問題制定了自己的
數字簽名標準(DSS)。
數字簽名算法依靠公鑰加密技術來實現的。在公鑰加密技術里,每一個使用者有一對
密鑰:一把公鑰和一把私鑰。公鑰可以自由發布,但私鑰則秘密保存;還有一個要求就是要讓通過公鑰推算出私鑰的做法不可能實現。
常用算法
普通的數字簽名算法包括三種算法:密碼生成算法;標記算法;驗證算法。
主要功能
數字簽名保證信息傳輸的完整性、傳送者的身份認證、防止交易中的抵賴發生。
數字簽名技術是將摘要信息用傳送者的私鑰加密,與原文一起傳送給接收者。接收者只有用傳送者的公鑰才能解密被加密的摘要信息,然後用HASH函式對收到的原文產生一個摘要信息,與解密的摘要信息對比。如果相同,則說明收到的信息是完整的,在傳輸過程中沒有被修改,否則說明信息被修改過,因此數字簽名能夠驗證信息的完整性。
數字簽名是個加密的過程,數字簽名驗證是個解密的過程。
原理
每個人都有一對“鑰匙”(數字身份),其中一個只有她/他本人知道(密鑰),另一個公開的(公鑰)。簽名的時候用密鑰,驗證簽名的時候用公鑰。又因為任何人都可以落款聲稱她/他就是你,因此公鑰必須向接受者信任的人(身份認證機構)來註冊。註冊後身份認證機構給你發一數字證書。對檔案簽名後,你把此數字證書連同檔案及簽名一起發給接受者,接受者向身份認證機構求證是否真地是用你的密鑰簽發的檔案。
在通訊中使用數字簽名一般基於以下原因:
一、鑒權
公鑰加密系統允許任何人在傳送信息時使用公鑰進行加密,數字簽名能夠讓信息接收者確認傳送者的身份。當然,接收者不可能百分之百確信傳送者的真實身份,而只能在密碼系統未被破譯的情況下才有理由確信。
鑒權的重要性在財務數據上表現得尤為突出。舉個例子,假設一家銀行將指令由它的分行傳輸到它的中央管理系統,指令的格式是(a,b),其中a是賬戶的賬號,而b是賬戶的現有金額。這時一位遠程客戶可以先存入100元,觀察傳輸的結果,然後接二連三的傳送格式為(a,b)的指令。這種方法被稱作
重放攻擊。
二、完整性
傳輸數據的雙方都總希望確認訊息未在傳輸的過程中被修改。加密使得第三方想要讀取數據十分困難,然而第三方仍然能採取可行的方法在傳輸的過程中修改數據。一個通俗的例子就是同形攻擊:回想一下,還是上面的那家銀行從它的分行向它的中央管理系統傳送格式為(a,b)的指令,其中a是賬號,而b是賬戶中的金額。一個遠程客戶可以先存100元,然後攔截傳輸結果,再傳輸(a,b3),這樣他就立刻變成百萬富翁了。
三、不可抵賴
在密文背景下,抵賴這個詞指的是不承認與訊息有關的舉動(即聲稱訊息來自第三方)。訊息的接收方可以通過數字簽名來防止所有後續的抵賴行為,因為接收方可以出示簽名給別人看來證明信息的來源。
CA
為解決
網際網路的安全問題,世界各國信息安全業者進行了多年的研究,形成了全方位、多層次的安全解決方案。其中,目前被廣泛採用的PKI技術,在安全解決方案中占據了重要位置,它可以保證信息傳輸的機密性、真實性、完整性和不可否認性,從而保證信息的安全傳輸。
一個完整地PKI系統是由認證機構、密鑰管理中心(KMC)、註冊機構、目錄服務、以及安全認證套用軟體、證書套用服務等部分組成,其中認證機構(Certification Authority,CA)在PKI系統中居於核心地位。
我們知道,為了在信息傳輸的過程中,確保信息的機密性、真實性、完整性和不可否認性,採用了
公開密鑰加密機制。而公鑰機制所涉及的公鑰是公開的、需要通過網際網路傳送。因此,需要解決的一個重要問題就是公鑰的信任問題。必須有一個可信任的機構對任何一個主體公鑰進行公證,證明主體的身份以及它與公鑰的匹配關係。CA就是這樣的機構。為了確保CA的公信力,它必須具有高度的權威性、公正性和第三方性。目前在國記憶體在的CA基本上可以分為三類:第一類是行業性的CA,如
中國金融認證中心(CFCA)、海關CA、商務部CA(國富安CA)等,這些CA是由相應行業的主管部門牽頭建立的;第二類是地方性CA,如北京CA、上海CA、浙江CA等,這些CA是由當地地方政府牽頭建立的;第三類CA是商業性CA,如天威誠信CA。這類CA進行商業化經營,並不從屬於任何行業或地域,但它們也必須具有良好的公信力,必須由國家主管部門審批通過才能投入運營,以確保其權威、公正性。
基本功能
作為CA,必須具有如下基本功能:
(1)簽發數字證書
(2)CA密鑰的管理
(3)接受證書申請,審核申請者身份
(4)證書管理
(5)提供證書和證書狀態的查詢
以上功能中,最為重要的是簽發證書。CA對其簽發的數字證書全部內容,包括證書用戶姓名標識、公鑰信息、頒發者標識、證書有效期、簽名算法標識等信息,進行數字簽名。從而權威地證明了證書持有者和公鑰的唯一匹配關係。
CA的另一項重要功能是證書查詢。CA的證書庫可以作為公鑰的來源地。此外,證書有效性的查詢對於安全認證也是至關重要的。由於證書遺失或其他原因,證書可能需要在失效期未到時就予以撤銷。CA提供證書撤銷列表(Certificate Revocation List,CRL)或其他方法供證書依賴方實時查詢。
CA自己的一對密鑰管理,必須確保其具備高度的機密性,防止其被偽造而顛覆CA的權威性。在CFCA,根密鑰被存放在安全的禁止機房,其訪問受到了嚴格的管理。CA的密鑰由通過國家認證的加密機產生,
私鑰一經產生將不能通過明文方式離開加密機。這些措施保證了CFCA根密鑰的安全與CFCA的權威性。
組成部分
CA主要由以下部分組成:
CA伺服器:這是CA的核心,是
數字證書生成、發放的運行實體,同時提供發放證書的管理、證書廢止列表(CRL)的生成和處理等服務。
證書下載中心:該中心連線在網際網路上,用戶通過登錄CA網站訪問證書下載中心,CA伺服器生成的證書通過證書下載中心供用戶下載。
目錄伺服器:它的功能是提供數字證書的存儲,以及數字證書和證書撤銷列表(CRL)的查詢。業者有時把它稱為”LDAP”,這是因為目錄服務的技術標準遵循LDAP (
輕量級目錄訪問協定)的緣故。
OCSP伺服器:該伺服器向用戶提供證書線上狀態的查詢。
密鑰管理中心(KMC):根據國家
密碼管理規定,加密用私鑰必須由權威、可靠的機構進行備份和保管。CFCA被授權建立KMC,以備份和保管用戶的加密密鑰。
證書註冊機構(Registration Authority,RA):它負責受理證書的申請和審核,其主要功能是接受客戶證書申請並進行審核。 RA主要是遠程的,CFCA的RA部署在各家用戶銀行、稅務機關、或企業所在地。因為,這樣一方面便於進行客戶資料的審查,另一方面也便於銀行將證書與客戶的賬號進行綁定,以實現認證。但即使RA部署在遠程所在地,這些RA也仍然是CA的組成部分。
此外,CFCA還在其所在地部署了直屬CA,對一些比較零散的,不適合或者不必要建立RA的用戶提供註冊服務。