簽名

當前位置 /首頁/優美文/簽名/列表

數字簽名的使用

1概述

數字簽名的使用

1.1概念與功能

數字簽名是防止他人對傳輸的檔案進行破壞.以及確定發信人的身份的手段該技術在資料單元上附加資料,或對資料單元進行祕密變換.這種資料和變換允許資料單元的接收者用以確認資料單元來源和資料單元的完整性,從而達到保護資料,防止被人進行偽造的目的。簡單說來,數字簽名是指用密碼演算法,對待發的資料進行加密處理,生成一段資料摘要資訊附在原文上一起傳送,接受方對其進行驗證,判斷原文真偽其簽名思想是簽名只能南一個人(個體)建立,但可以被任何人校驗.

數字簽名技術可以解決資料的否認、偽造、篡改及冒充等問題,滿足上述要求的數字簽名技術有如下主要功能:(1)傳送者事後不能否認自己傳送的簽名;(2)接收者能夠核實傳送者傳送的簽名;(3)接收者不能偽造傳送者的簽名;(4)接收者不能對傳送者的原文進行篡改;(5)資料交換中的某一使用者不能冒充另一使用者作為傳送者或接收者

1.2數字簽名與傳統手寫簽名差別

(1)簽署檔案方面:一個手寫簽名是所籤檔案的物理部分,而數字簽名不是,所以要使用其他的辦法將數字簽名與所籤檔案“繫結”。

(2)驗證方面:一個手寫簽名是通過和一個真實的手寫簽名相比較來驗證的而數字簽名是通過一個公開的驗證演算法來驗證:

(3)簽名的複製:一個手寫簽名不容易被複制,因為複製品通常比較容易被鑑別來:而數字簽名很容易被複制,因為一個檔案的數字簽名的複製品和原檔案是一樣的:所以要使用數字時問戳等特殊的技術避免數字簽名的重複使用。

(4)手書籤名是模擬的,且因人而異。數字簽名是0和1的數字串,因人和訊息而異。

一個安全有效的簽名方案必須滿足以下要求:1)任何人都可以驗證簽名的有效性;2)除了合法的簽名者外,其他人偽造簽名是困難的;3)對一個訊息的簽名不可複製為另一個訊息的簽名;4)簽名的訊息不可被篡改,一旦被篡改,則任何人都可以發現訊息與簽名的不一致;5)簽名者事後不能否認自己的簽名。

安全的數字簽名實現的條件:發方必須向收方提供足夠的非保密資訊,以便使其能驗證訊息的簽名,但又不能洩露用於產生簽名的機密資訊,以防止他人偽造簽名。此外,還有賴於仔細設計的通訊協議:

2原理

數字簽名有兩種:一種是對整體訊息的簽名,一種是對壓縮訊息的簽名。每一種又可分為兩個子類:一類是確定性(Deterministi)數字簽名,其明文與密文是一一對應的,它對特定訊息的簽名不變化;一類是隨機化的(Randomized)或概率式數字簽名。

目前的數字簽名技術大多是建立在公共金鑰體制的基礎上,其工作原理是:

(1)簽名:發方將原文用雜湊演算法求得數字摘要,用簽名私鑰對數字摘要加密得數字簽名,將原文與數字簽名一起傳送給接受方。

簽名體制=(M,S,K,v),其中M:明文空間,S:簽名的集合,K:金鑰空間,V:證實函式的值域,由真、偽組成。

簽名演算法:對每一m∈M和每一k∈K,易於計算對m的簽名s=Sigk(M)∈S

簽名演算法或簽名金鑰是祕密的,只有簽名人掌握。

(2)驗證:收方驗證簽名時,用發方公鑰解密數字簽名,得出數字摘要;收方將原文采用同樣雜湊演算法又得一新的數字摘要,將兩個數字摘要進行比較,如果二者匹配,說明經簽名的電子檔案傳輸成功。

驗證演算法:

Verk(S,M)∈{真,偽}={0,l1

3基於身份的數字簽名

3.1優勢

1984年Shamir提出基於身份的加密、簽名、認證的設想,其中身份可以是使用者的姓名、身份證號碼、地址、電子郵件地址等。系統中每個使用者都有一個身份,使用者的公鑰就是使用者的身份,或者是可以通過一個公開的演算法根據使用者的身份可以容易地計算出來,而私鑰則是由可信中心統一生成。在基於身份的密碼系統中,任意兩個使用者都可以安全通訊,不需要交換公鑰證書,不必儲存公鑰證書列表,也不必使用線上的第三方,只需一個可信的金鑰發行中心為每個第一次接入系統的使用者分配一個對應其公鑰的私鑰就可以了。基於身份的密碼系統不存在傳統CA頒發證書所帶來的儲存和管理開銷問題。

3.2形式化定義

基於身份的數字簽名由以下4個演算法組成,

Setup(系統初始化):輸入一個安全引數k,輸出系統引數param、和系統私鑰mk,該演算法由金鑰產生機構PKG執行,最後PKG公開params,儲存mk。Extract(使用者金鑰生成):輸入params、mk和使用者的身份ID,輸出使用者的私鑰diD,該演算法由PKG完成,PKG用安全的通道將diD返回給使用者。Sign(簽名):輸入一個安全引數r、params、diD以及訊息M,輸出對}肖息M的簽名盯,該演算法由使用者實現。Verify(驗證):輸入params、簽名人身份ID、訊息m和簽名,輸出簽名驗證結果1或0,代表真和偽,該演算法由簽名的驗證者完成。其中,簽名演算法和驗證演算法與一般簽名方案形式相同。

4數字簽名在電子政務中的應用

4.1意義

數字簽名的過程和政務公文的加密/解密過程雖然都使用公開金鑰體系,但實現的過程正好相反,使用的金鑰對也各不相同。數字簽名使用的是傳送方的金鑰對,傳送方用自己的私鑰進行加密,接收方用傳送方的公鑰進行解密。這是一個一對多的關係,即任何擁有傳送方公鑰的人都可以驗證數字簽名的正確性。政務公文的加密/解密則使用接收方的金鑰對,這是多對一的關係,即任何知道接收方公鑰的人都可以向接收方傳送加密公文,只有唯一擁有接收方私鑰的人才能對公文解密。在實際應用過程中,通常一個使用者擁有兩個金鑰對,一個金鑰對用來對數字簽名進行加密,解密;另一個金鑰對用來對公文進行加密懈密,這種方式提供了更高的安全性。

4.2形式

4.2.1個人單獨簽名

由於政務公文的檔案相對來說都比較大,所以一般需要先對所要傳輸的原文進行加密壓縮後形成一個檔案摘要,然後對這個檔案摘要進行數字簽名。一般由兩個階段組成:對原文的數字簽名和對數字簽名的驗證。

(1)對原文的數字簽名

先採用單向雜湊雜湊演算法對所要傳輸的政務公文x進行加密計算和壓縮,推算出一個檔案摘要z。然後,公文的傳送方用自己的私鑰SKA對其加密後形成數字簽名Y,並將該數字簽名附在所要傳送的政務公文後形成一個完整的資訊包(X+Y)。再用接收方的公鑰PKB對該資訊包進行加密後,通過網路傳輸給接收方。

(2)對數字簽名的驗證

接收方收到該資訊包後,首先用自己的私鑰SKB對整個資訊包進行解密,得到兩部分資訊:數字簽名部分Y和政務公文原文部分x;其次,接收方利用傳送方的公鑰PKA對數字簽名部分進行解密,得到一個檔案摘要Z;接著,接收方也採用單向雜湊雜湊演算法對所收到的政務公文原文部分進行加密壓縮,推算出另外一個檔案摘要z1。由於原文的任何改動都會使推算出的檔案摘要發生變化,所以只要比較兩個檔案摘要z和z1就可以知道公文在傳輸途中是否被篡改以及公文的來源所在。如果兩個檔案摘要相同,那麼接收方就能確認該數字簽名是傳送方的,並且說明文件在傳輸過程中沒有被破壞。通過數字簽名能夠實現對原始報文的鑑別。

4.2.2多重數字簽名

在電子政務的應用中,有時也需要多個人批閱同一份檔案,這就需要用到多重數字簽名,多重數字簽名與現實環境中多人書面簽名的最大區別在於書面簽名的長度與簽名人數成正比,而多重數字簽名的長度與個人單獨簽名長度相同。根據簽名順序和過程的不同,又可分為有序多重簽名和廣播多重簽名。

有序多重數字簽名是由檔案的傳送者規定好籤名的順序,每一位簽名者只要驗證前一位簽名者的簽名信息,如果通過驗證,就在原來的基礎上加上自己的數字簽名後把檔案傳送給下一位簽名者,如果驗證失敗則終止簽名過程。最後一名簽名者要負責把檔案和最終的簽名傳輸給接收者。多重數字簽名的實現可以與電子政務的實際工作流程結合應用,以達到簡單實用的目的。