深入理解加密 解密 數字簽名和數字證書

2021-07-29 08:01:15 字數 4185 閱讀 9636

**:

隨著電子商務的迅速發展,資訊保安已成為焦點問題之一,尤其是網上支付和網路銀行對資訊保安的要求顯得更為突出。為了能在網際網路上開展安全的電子商務活動,公開金鑰基礎設施( pki, public key infrastructure 

)逐步在國內外得到廣泛應用。我們是否真的需要 pki , pki 究竟有什麼用?下面通過乙個案例一步步地來剖析這個問題 : 甲想將乙份合同檔案通過 internet 發給遠在國外的乙,此合同檔案對雙方非常重要,不能有絲毫差錯,而且此檔案絕對不能被其他人得知其內容。如何才能實現這個合同的安全傳送? 

問題 1: 最自然的想法是,甲必須對檔案加密才能保證不被其他人檢視其內容,那麼 , 到底應該用什麼加密技術,才能使合同傳送既安全又快速呢 ? 

可以採用一些成熟的對稱加密演算法 , 如 des 、 3des 、 rc5 等對檔案加密。對稱加密採用了對稱密碼編碼技術,它的特點是檔案加密和解密使用相同的金鑰,即加密金鑰也可以用做解密金鑰,這種方法在密碼學中叫做對稱加密演算法, 

問題 2: 如果黑客截獲此檔案,是否用同一演算法就可以解密此檔案呢 ? 

不可以 , 因為加密和解密均需要兩個元件 : 加密演算法和對稱金鑰 , 加密演算法需要用乙個對稱金鑰來解密 , 黑客並不知道此金鑰。 

問題 3: 既然黑客不知金鑰,那麼乙怎樣才能安全地得到其金鑰呢?用**通知,若**被竊聽,通過 internet 發此金鑰給乙,可能被黑客截獲,怎麼辦 ? 

方法是用非對稱金鑰演算法加密對稱金鑰後進行傳送。與對稱加密演算法不同,非對稱加密演算法需要兩個金鑰:公開金鑰( public key )和私有金鑰( private key )。公開金鑰與私有金鑰是一對,如果用公開金鑰對資料進行加密,只有用對應的私有金鑰才能解密;如果用私有金鑰對資料進行加密,只有用對應的公開金鑰才能解密。因為加密和解密使用的是兩個不同的金鑰,所以這種演算法叫做非對稱加密演算法 ( 公 / 私鑰可由專門軟體生成 ) 。甲乙雙方各有一對公 / 私鑰,公鑰可在 internet 上傳送,私鑰自己儲存。這樣甲就可以用乙的公鑰加密問題 1 中提到的對稱加密演算法中的對稱金鑰。即使黑客截獲到此金鑰,也會因為黑客不知乙的私鑰,而解不開對稱金鑰,因此也解不開密文,只有乙才能解開密文。 

問題 4 :既然甲可以用乙的公鑰加密其對稱金鑰,為什麼不直接用乙的公鑰加密其檔案呢?這樣不僅簡單,而且省去了用對稱加密演算法加密檔案的步驟? 

不可以這麼做。因為非對稱密碼演算法有兩個缺點 : 加密速度慢 , 比對稱加密演算法慢 10 ~ 100 倍 , 因此只可用其加密小資料 ( 如對稱金鑰 ) ,另外加密後會導致得到的密文變長。因此一般採用對稱加密演算法加密其檔案 , 然後用非對稱演算法加密對稱演算法所用到的對稱金鑰。 

問題 5 : 如果黑客截獲到密文,同樣也截獲到用公鑰加密的對稱金鑰,由於黑客無乙的私鑰,因此他解不開對稱金鑰,但如果他用對稱加密演算法加密乙份假檔案 , 並用乙的公鑰加密乙份假檔案的對稱金鑰,並發給乙,乙會以為收到的是甲傳送的檔案,會用其私鑰解密假檔案 , 並很高興地閱讀其內容,但卻不知已經被替換。換句話說,乙並不知道這不是甲發給他的,怎麼辦 ? 

答案是用數字簽名證明其身份。數字簽名是通過雜湊演算法 , 如 md5 、 sha-1 等演算法從大塊的資料中提取乙個摘要。而從這個摘要中不能通過雜湊演算法恢復出任何一點原文,即得到的摘要不會透露出任何最初明文的資訊,但如果原資訊受到任何改動,得到的摘要卻肯定會有所不同。因此甲可以對檔案進行雜湊演算法得到摘要,並用自己的私鑰加密 ( 因為非對稱演算法可逆,即用私鑰可解開公鑰加密的檔案,反之亦然 ) ,這樣即使黑客截獲也無用。因為黑客不會從摘要內獲得任何資訊,但乙卻不一樣,他可用甲的公鑰解密,得到其摘要 ( 如果用甲的公鑰能夠解開此摘要,說明此摘要肯定是甲發的,因為只有甲的公鑰才能解開用甲的私鑰加密的資訊 , 而甲的私鑰只有甲自己知道 ) ,並對收到的檔案 ( 解密後的合同檔案 ) 也進行同樣的雜湊演算法,通過比較其摘要是否一樣 , 就可得知此檔案是否被篡改過  ( 因為若摘要相同,則肯定資訊未被改動,這是雜湊演算法的特點 ) 。這樣不僅解決了證明傳送人身份的問題,同時還解決了檔案是否被篡改問題。 

問題 6 : 通過對稱加密演算法加密其檔案,再通過非對稱演算法加密其對稱金鑰 , 又通過雜湊演算法證明其傳送者身份和其資訊的正確性,這樣是否就萬無一失了 ? 

回答是否定的。問題在於乙並不能肯定他所用的所謂甲的公鑰一定是甲的 , 解決辦法是用數字證書來繫結公鑰和公鑰所屬人。 

數字證書是乙個經證書授權中心數字簽名的包含公開金鑰擁有者資訊以及公開金鑰的檔案 , 是網路通訊中標識通訊各方身份資訊的一系列資料,它提供了一種在 internet 上驗證身份的方式,其作用類似於司機的駕駛執照或日常生活中的身份證,人們可以在交往中用它來識別對方的身份。 

最簡單的證書包含乙個公開金鑰、名稱以及證書授權中心的數字簽名

。一般情況下證書中還包括金鑰的有效時間、發證機關 ( 證書授權中心 ) 名稱、該證書的序列號等資訊。它是由乙個權威機構—— ca 機構,又稱為證書授權 (certificate authority) 中心發放的。 ca 機構作為電子商務交易中受信任的第三方,承擔公鑰體系中公鑰的合法性檢驗的責任。 ca 

中心為每個使用公開金鑰的使用者發放乙個數字證書,數字證書的作用是證明證書中列出的使用者合法擁有證書中列出的公開金鑰。

ca 

在此強調下證書和簽名:

證書實際對於非對稱加密演算法(公鑰加密)來說的,一般證書包括公鑰、姓名、數字簽名三個部分。證書好比身份證,證書機構(ca

)就好比是公安局,職責就是負責管理使用者的證書也就是身份證。比如我的公鑰是frankkey,姓名是frank xu lei。公安局可以給我登記,但是怎麼保證我和別的frank xulei區別開呢,於是公安局(證書機構)就使用我的名字和金鑰做了個組合,再使用一種雜湊演算法,得出一串值,來標識我的唯一性,這個值就是我的身份證號碼,也就是證書裡的數字簽名(訊息摘要),同時為了不能讓黑客仿造數字證書,數字證書的發行者用自己的私鑰對數字簽名進行加密,這樣,使用該數字證書的網路交易實體就可以用證書發行者的公鑰進行解密驗證。(即:數字簽名的目的是證明自己的身份的確是真實的自己而非其他人,所以需要用自己的私鑰進行加密,讓使用者用公鑰進行解密驗證,從而從技術上杜絕了偽造自己的黑客。)

假設乙個朋友給我寫信,他就可以到公安局(證書機構)來查詢我的身份證(證書)。上面包括我的個人資訊,可以保證這個公鑰就是我的。然後他把新建進行加密,郵寄給我。別人即使拆開我的信件,因為沒有金鑰進行解密,所以無法閱讀我的信件內容。這樣就保證了資訊保安。

所以說加密不一定要證書,取決於你資料安全具體的需求。一般大型的電子商務**都有自己特定的證書。證書管理的機構比較有名的就是verisign(可以 說是網際網路上的身份證管理局)。企業可以申請註冊,它會給申請者生成特定的簽名。我們自己的企業內部應用如果需要的話,可以在企業區域網內部建立企業私有的證書伺服器,來產生和管理證書。其實x.509是由國際電信聯盟(itu-t)制定的一種定義證書格式和分布的國際標準(相當於製作身份證的規範)。為了提供公用網路使用者目錄資訊服務,並規定了實體鑑別過程中廣泛適用的證書語法和資料介面, x.509 稱之為證書,或者說是身份證的一種形式,類似與我們現在的二代身份證,也是身份證的一種,根據特定的標準製作出來的。另外證書使用的時候還有有效期的限制,和我們的身份證的10年有效期一樣。證書也可以設定有效期。

附:u盾的工作原理介紹

一、什麼是u盾

u盾,即工行2003

年推出並獲得國家專利的客戶證書usbkey,是工行為您提供的辦理網上銀行業務的高階別安全工具。它外形酷似u盤,像一面盾牌,時刻保護著您的網上銀行資金安全。

從技術角度看,u

盾是用於網上銀行電子簽名和數字認證的工具,它內建微型智慧卡處理器,採用1024位非對稱金鑰演算法對網上資料進行加密、解密和數字簽名,確保網上交易的保密性、真實性、完整性和不可否認性

二、工作原理 u

盾又作移動數字證書,它存放著你個人的數字證書,並不可讀取。同樣,銀行也記錄著你的數字證書。

當你嘗試進行網上交易時,銀行會向你傳送由時間字串,位址字串,交易資訊字串,防重放攻擊字串組合在一起進行加密後得到的字串a

,你的u盾將跟據你的個人證書對字串a進行不可逆運算得到字串b,並將字串b傳送給銀行,銀行端也同時進行該不可逆運算,如果銀行運算結果和你的運算結果一致便認為你合法,交易便可以完成,如果不一致便認為你不合法,交易便會失敗。

(理論上,不同的字串a

不會得出相同的字串b,即乙個字串a對應乙個唯一的字串b;但是字串b和字串a無法得出你的數字證書,而且u盾具有不可讀取性,所以任何人都無法獲行你的數字證書。並且銀行每次都會發不同的防重放字串(隨機字串)和時間字串,所以當一次交易完成後,剛發出的b字串便不再有效。綜上所述,理論上u盾是絕對安全的****注意是理論上發生偽造概率大約為2的80次方分之一,但是如果有像變形金剛中的那種dnabasecomputer的話。

參考文獻:

(介紹了pki體系和常見證書)

深入理解加密 解密 數字簽名和數字證書

在此強調下證書和簽名 證書實際對於非對稱加密演算法 公鑰加密 來說的,一般證書包括公鑰 姓名 數字簽名三個部分。證書好比身份證,證書機構 ca 就好比是公安局,職責就是負責管理使用者的證書也就是身份證。比如我的公鑰是frankkey,姓名是frank xu lei。公安局可以給我登記,但是怎麼保證我...

數字簽名與加密解密

有關數字簽名與加密解密的文章我看了許多次,基於這樣的事實 我總是說服不了自己,所以每次看都看不明白,說服不了自己。最近在看oauth的相關東西,數字簽名與加密解密是繞不開了,乾脆靜下心來,看看資料,嘗試著將自己說服.1,加密解密基礎 簡單地講,計算機加密無非是,用金鑰k,對明文p加密,得到密文m k...

對加密解密及數字簽名的理解

對加密解密及數字簽名的理解 資料加密有兩種型別,一種是對稱加密,另一種是不對稱加密 對稱加密的傳送方和接受方都使用同乙個金鑰對資料進行加密解密,因此,在傳送加密資料的時候同時也要傳送金鑰,接收方接到金鑰後才能對資料進行解密,這就有乙個問題,那就是,如果別人攔截到了金鑰,相當於鑰匙被別人偷走了,那這個...