數字簽名

數字簽名

以電子形式存在於數據信息之中的,或作為其附屬檔案的或邏輯上與之有聯繫的數據,可用於辨別數據簽署人的身份,並表明簽署人對數據信息中包含的信息的認可。一套數字簽名通常定義兩種互補的運算,一個用於簽名,另一個用於驗證。Digital signature (also called public keydigital signature, electronic signature) is a kind of similar to write on thepaper of ordinary physical signature, but the use of public keyencryptiontechnology, method foridentificationof digital information. A digitalsignature is usually defined two complementary operation, one for thesignature, another for verification。

基本信息

定義

所謂“數字簽名”就是通過某種密碼運算生成一系列符號代碼組成電子密碼進行簽名,來代替書寫簽名或印章,對於這種電子式的簽名還可進行技術驗證,其驗證的準確度是一般手工簽名和圖章的驗證而無法比擬的。“數字簽名”是目前電子商務電子政務中套用最普遍、技術最成熟的、可操作性最強的一種電子簽名方法。它採用了規範化的程式和科學化的方法,用於鑑定簽名人的身份以及對一項電子數據內容的認可。它還能驗證出檔案的原文在傳輸過程中有無變動,確保傳輸電子檔案的完整性、真實性和不可抵賴性。

概述

數字簽名不是指將你的簽名掃描成數字圖像,或者用觸摸板獲取的簽名,更不是你的落款。數字簽名了的檔案的完整性是很容易驗證的(不需要騎縫章,騎縫簽名,也不需要筆跡專家),而且數字簽名具有不可抵賴性(不需要筆跡專家來驗證)。

數字簽名就是附加在數據單元上的一些數據,或是對數據單元所作的密碼變換。這種數據或變換允許數據單元的接收者用以確認數據單元的來源和數據單元的完整性並保護數據,防止被人(例如接收者)進行偽造。它是對電子形式的訊息進行簽名的一種方法,一個簽名訊息能在一個通信網路中傳輸。基於公鑰密碼體制和私鑰密碼體制都可以獲得數字簽名,目前主要是基於公鑰密碼體制的數字簽名。包括普通數字簽名和特殊數字簽名。普通數字簽名算法有RSA、ElGamal、Fiat-Shamir、Guillou-Quisquarter、Schnorr、Ong-Schnorr-Shamir數字簽名算法、Des/DSA,橢圓曲線數字簽名算法和有限自動機數字簽名算法等。特殊數字簽名有盲簽名、代理簽名、群簽名、不可否認簽名、公平盲簽名、門限簽名、具有訊息恢復功能的簽名等,它與具體套用環境密切相關。顯然,數字簽名的套用涉及到法律問題,美國聯邦政府基於有限域上的離散對數問題制定了自己的數字簽名標準(DSS)。

數字簽名(DigitalSignature)技術是不對稱加密算法典型套用。

套用過程

數字簽名數字簽名

數字簽名的套用過程是,數據源傳送方使用自己的私鑰對數據校驗和或其他與數據內容有關的變數進行加密處理,完成對數據的合法“簽名”,數據接收方則利用對方的公鑰來解讀收到的“數字簽名”,並將解讀結果用於對數據完整性的檢驗,以確認簽名的合法性。數字簽名技術是在網路系統虛擬環境中確認身份的重要技術,完全可以代替現實過程中的“親筆簽字”,在技術和法律上有保證。在數字簽名套用中,傳送者的公鑰可以很方便地得到,但他的私鑰則需要嚴格保密。

數字簽名是指傳送方以電子形式簽名一個訊息或檔案,簽名後的訊息或檔案能在計算機網路中傳送,並表示簽名人對該訊息或檔案的內容負有責任。數字簽名綜合使用了數字文摘和非對稱加密技術,可以保證接受者能夠核實傳送者對報文的簽名,傳送者事後不抵賴報文的簽名,接受者不能篡改報文內容和偽造對報文的簽名。
在金融和商業等系統中,許多業務都要求在單據上進行簽名或加蓋印章,證實其真實性,以備日後檢查,可是在利用計算機網路來傳送報文時,顯然不能用手簽的方法,在計算機中我們可以採用數字簽名的方法,利用公開密鑰來實現數字簽名,從而代替傳統的簽名。
為使數字簽名能代替傳統的簽名,必須滿足下面三個條件:
1.接收者能夠核實傳送者對報文的簽名;
2.傳送者事後不能抵賴對其報文的簽名
3.接收者無法偽造對報文的簽名。

功能

保證信息傳輸的完整性、傳送者的身份認證、防止交易中的抵賴發生。

數字簽名技術是將摘要信息用傳送者的私鑰加密,與原文一起傳送給接收者。接收者只有用傳送的公鑰才能解密被加密的摘要信息,然後用HASH函式對收到的原文產生一個摘要信息,與解密的摘要信息對比。如果相同,則說明收到的信息是完整的,在傳輸過程中沒有被修改,否則說明信息被修改過,因此數字簽名能夠驗證信息的完整性。

數字簽名是個加密的過程,數字簽名驗證是個解密的過程。

個人安全郵件證書

具有數字簽名功能的個人安全郵件證書是用戶證書的一種,是指單位用戶收發電子郵件時採用證書機制保證安全所必須具備的證書。個人安全電子郵件證書是符合x.509標準的數字安全證書,結合數字證書和S/MIME技術對普通電子郵件做加密和數字簽名處理,確保電子郵件內容的安全性、機密性、發件人身份確認性和不可抵賴性。具有數字簽名功能的個人安全郵件證書中包含證書持有人的電子郵件地址、證書持有人的公鑰、頒發者(河南CA)以及頒發者對該證書的簽名。個人安全郵件證書功能的實現決定於用戶使用的郵件系統是否支持相應功能。目前,MSOutlook、OutlookExpress、Foxmail及河南CA安全電子郵件系統均支持相應功能。使用個人安全郵件證書可以收發加密和數字簽名郵件,保證電子郵件傳輸中的機密性、完整性和不可否認性,確保電子郵件通信各方身份的真實性。

簽名

報文的傳送方用一個哈希函式從報文文本中生成報文摘要(散列值)。傳送方用自己的私人密鑰對這個散列值進行加密。然後,這個加密後的散列值將作為報文的附屬檔案和報文一起傳送給報文的接收方。報文的接收方首先用與傳送方一樣的哈希函式從接收到的原始報文中計算出報文摘要,接著再用傳送方的公用密鑰來對報文附加的數字簽名進行解密。如果兩個散列值相同、那么接收方就能確認該數字簽名是傳送方的。通過數字簽名能夠實現對原始報文的鑑別。

數字簽名有兩種功效:一是能確定訊息確實是由傳送方簽名並發出來的,因為別人假冒不了傳送方的簽名。二是數字簽名能確定訊息的完整性。因為數字簽名的特點是它代表了檔案的特徵,檔案如果發生改變,數字簽名的值也將發生變化。不同的檔案將得到不同的數字簽名。 一次數字簽名涉及到一個哈希函式、傳送者的公鑰、傳送者的私鑰。

用數字簽名識別病毒

如何區分數字簽名攻擊呢?有兩個方法:

1.查看數字簽名的詳細信息,我們應該查看該數字簽名的詳細信息,點擊“詳細信息”按鈕即可。

我們會發現正常EXE和感染(或捆綁木馬)後的EXE數字簽名的區別

正常EXE的數字簽名詳細信息被篡改後的EXE數字簽名信息無效

方法2,使用數字簽名驗證程式sigcheck.exe(可以百度一下找這個工具,著名系統工具包SysinternalsSuite的組件之一。)

數字簽名異常的結果為:

C:\DocumentsandSettings\litiejun\??\modify.exe:Verified:UnsignedFiledate:15:462008-5-23Publisher:n/a Description:n/aProduct:n/aVersion:n/aFileversion:n/a數字簽名正常的結果為:C:\DocumentsandSettings\litiejun\??\che.exe:Verified:SignedSigningdate:16:282008-4-29Publisher:n/aDescription:n/a Product:n/aVersion:n/aFileversion:n/a

原因分析

1,精心設計的感染

當EXE被感染時,是很容易破壞檔案的數字簽名信息的,如果攻擊者感染或破壞檔案時,有意不去破壞EXE中有關數字簽名的部分,就可能出現感染後,數字簽名看上去正常的情況。但認真查看檔案屬性或校驗檔案的HASH值,你會發現該EXE程式已經不是最原始的版本了。

2.該軟體發行商的數字簽名檔案被盜,攻擊者可以把捆綁木馬或感染病毒後的EXE程式,也打包上數字簽名,這種情況下就更嚴重了。企業如果申請了數字簽名證書,一定要妥善保管,否則後患無窮。

使用

你可以對你發出的每一封電子郵件進行數字簽名。這不是指落款,普遍把落款訛誤成簽名。

在我國大陸,數字簽名是具法律效力的,正在被普遍使用。2000年,中華人民共和國的新《契約法》首次確認了電子契約、電子簽名的法律效力。2005年4月1日起,中華人民共和國首部《電子簽名法》正式實施。

原理和特點

每個人都有一對“鑰匙”(數字身份),其中一個只有她/他本人知道(密鑰),另一個公開的(公鑰)。簽名的時候用密鑰,驗證簽名的時候用公鑰。又因為任何人都可以落款申稱她/他就是你,因此公鑰必須向接受者信任的人(身份認證機構)來註冊。註冊後身份認證機構給你發一數字證書。對檔案簽名後,你把此數字證書連同檔案及簽名一起發給接受者,接受者向身份認證機構求證是否真地是用你的密鑰簽發的檔案。

在通訊中使用數字簽名一般基於以下原因:

鑒權

公鑰加密系統允許任何人在傳送信息時使用公鑰進行加密,數字簽名能夠讓信息接收者確認傳送者的身份。當然,接收者不可能百分之百確信傳送者的真實身份,而只能在密碼系統未被破譯的情況下才有理由確信。鑒權的重要性在財務數據上表現得尤為突出。舉個例子,假設一家銀行將指令由它的分行傳輸到它的中央管理系統,指令的格式是(a,b),其中a是賬戶的賬號,而b是賬戶的現有金額。這時一位遠程客戶可以先存入100元,觀察傳輸的結果,然後接二連三的傳送格式為(a,b)的指令。這種方法被稱作重放攻擊。

完整性

傳輸數據的雙方都總希望確認訊息未在傳輸的過程中被修改。加密使得第三方想要讀取數據十分困難,然而第三方仍然能採取可行的方法在傳輸的過程中修改數據。一個通俗的例子就是同形攻擊:回想一下,還是上面的那家銀行從它的分行向它的中央管理系統傳送格式為(a,b)的指令,其中a是賬號,而b是賬戶中的金額。一個遠程客戶可以先存100元,然後攔截傳輸結果,再傳輸(a,b3),這樣他就立刻變成百萬富翁了。

不可抵賴

在密文背景下,抵賴這個詞指的是不承認與訊息有關的舉動(即聲稱訊息來自第三方)。訊息的接收方可以通過數字簽名來防止所有後續的抵賴行為,因為接收方可以出示簽名給別人看來證明信息的來源。

如何實現

數字簽名算法依靠公鑰加密技術來實現的。在公鑰加密技術里,每一個使用者有一對密鑰:一把公鑰和一把私鑰。公鑰可以自由發布,但私鑰則秘密保存;還有一個要求就是要讓通過公鑰推算出私鑰的做法不可能實現。

普通的數字簽名算法包括三種算法:

1.密碼生成算法;

2.標記算法;

3.驗證算法。

套用例子

假如現在Alice向Bob傳送數字信息,為了保證信息傳送的保密性、真實性、完整性和不可否認性,需要對傳送的信息進行數字加密和簽名,其傳送過程為:
1.Alice準備好要傳送的數字信息(明文);
2.Alice對數字信息進行哈希運算,得到一個信息摘要
3.Alice用自己的私鑰對信息摘要進行加密得到Alice的數字簽名,並將其附在數字信息上;
4.Alice隨機產生一個加密密鑰,並用此密碼對要傳送的信息進行加密,形成密文
5.Alice用Bob的公鑰對剛才隨機產生的加密密鑰進行加密,將加密後的DES密鑰連同密文一起傳送給Bob;
6.Bob收到Alice傳送來的密文和加密過的DES密鑰,先用自己的私鑰對加密的DES密鑰進行解密,得到Alice隨機產生的加密密鑰;
7.Bob然後用隨機密鑰對收到的密文進行解密,得到明文的數字信息,然後將隨機密鑰拋棄;
8.Bob用Alice的公鑰對Alice的數字簽名進行解密,得到信息摘要;
9.Bob用相同的哈希算法對收到的明文再進行一次哈希運算,得到一個新的信息摘要;
10.Bob將收到的信息摘要和新產生的信息摘要進行比較,如果一致,說明收到的信息沒有被修改過。

盤點密碼學相關知識

盤點密碼學相關知識,密碼學是研究編制密碼和破譯密碼的技術科學。

相關搜尋

熱門詞條

聯絡我們