當前位置:文書都 >

經典美文 >簽名 >

數字簽名的使用

數字簽名的使用

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多重數字簽名

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

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

  • 文章版權屬於文章作者所有,轉載請註明 https://wenshudu.com/meiwen/qianming/nm9qomy.html
專題