目錄 一,、數(shù)字簽名數(shù)字簽名(又稱公鑰數(shù)字簽名)是只有信息的發(fā)送者才能產(chǎn)生的別人無法偽造的一段數(shù)字串,這段數(shù)字串同時也是對信息的發(fā)送者發(fā)送信息真實性的一個有效證明,。它是一種類似寫在紙上的普通的物理簽名,,但是在使用了公鑰加密領(lǐng)域的技術(shù)來實現(xiàn)的,用于鑒別數(shù)字信息的方法,。一套數(shù)字簽名通常定義兩種互補的運算,,一個用于簽名,另一個用于驗證,。數(shù)字簽名是非對稱密鑰加密技術(shù)與數(shù)字摘要技術(shù)的應(yīng)用,。 所謂數(shù)字簽名就是附加在數(shù)據(jù)單元上的一些數(shù)據(jù),或是對數(shù)據(jù)單元所作的密碼變換,。這種數(shù)據(jù)或變換允許數(shù)據(jù)單元的接收者用以確認數(shù)據(jù)單元的來源和數(shù)據(jù)單元的完整性并保護數(shù)據(jù),,防止被人(例如接收者)進行偽造。它是對電子形式的消息進行簽名的一種方法,,一個簽名消息能在一個通信網(wǎng)絡(luò)中傳輸,。基于公鑰密碼體制和私鑰密碼體制都可以獲得數(shù)字簽名,,主要是基于公鑰密碼體制的數(shù)字簽名,。包括普通數(shù)字簽名和特殊數(shù)字簽名,。普通數(shù)字簽名算法有RSA、ElGamal,、Fiat-Shamir,、Guillou- Quisquarter、Schnorr,、Ong-Schnorr-Shamir數(shù)字簽名算法,、Des/DSA,橢圓曲線數(shù)字簽名算法和有限自動機數(shù)字簽名算法等,。特殊數(shù)字簽名有盲簽名,、代理簽名、群簽名,、不可否認簽名,、公平盲簽名、門限簽名,、具有消息恢復(fù)功能的簽名等,,它與具體應(yīng)用環(huán)境密切相關(guān)。 二,、數(shù)字簽名技術(shù)數(shù)字簽名的特點:
1,、報文鑒別:
接收者能夠核實發(fā)送者對報文的簽名,確信該報文世發(fā)送者發(fā)送的,,其他人無法偽造報文的簽名,。
2、報文的完整性:
接收者確信所收到的數(shù)據(jù)和發(fā)送者發(fā)送的完全一致而沒有被篡改過,。
3,、不可否認:
發(fā)送者事后不能抵賴對報文的簽名 數(shù)字簽名技術(shù)大多基于哈希摘要和非對稱密鑰加密體制來實現(xiàn)。 2.1,、基于哈希算法的數(shù)字簽名與驗證哈希函數(shù)是一種'壓縮函數(shù)',,利用哈希函數(shù)可以把任意長度的輸入經(jīng)由散列函數(shù)算法變換成固定長度的輸出,該輸出的哈希值就是消息摘要,,也稱數(shù)字摘要,。 在正式的數(shù)字簽名中,發(fā)送方首先對發(fā)送文件采用哈希算法,,得到一個固定長度的消息摘要( Message Digest),; 再用自己的私鑰對消息摘要進行簽名,形成發(fā)送方的數(shù)字簽名,。 數(shù)字簽名將作為隊件和原文一起發(fā)送給接收方,;接收方首先用發(fā)送方的公鑰對數(shù)字簽名進行解密得到發(fā)送方的數(shù)字摘要,然后用相同的哈希函數(shù)對原文進行哈希計算,,得到一個新的消息摘要,,最后將消息摘要與收到的消息摘要做比較,。具體過程如下圖所示 : 2.2、基于非對稱密鑰加密體制的數(shù)字簽名與驗證目前已有多種實現(xiàn)數(shù)字簽名的算法,,但是采用公鑰算法要比采用對稱加密算法更容易實現(xiàn),。 為了進行簽名,A使用其私鑰SKA對報文X進行D運算,,如下圖,。A把經(jīng)過D運算得到的密文傳送給B,B為了核實簽名,,用A的公鑰進行E運算,,還原出明文X。 除A外沒有別人持有A的私鑰,,所以除A外沒有別人能夠產(chǎn)生密文DSKA(X)。這樣B就相信報文是A簽名發(fā)送的,。以此實現(xiàn)報文鑒別,。 其他人如果篡改了報文,但由于無法得到A的私鑰SKA來對X進行加密,,那么B對篡改的報文進行解密后,,就會得到不可讀的報文,以此判斷報文的完整性,。 若A要抵賴曾發(fā)送過報文給B,,B可以X及DSKA(X)出示給進行公證的第三方,第三方就很容易通過PKA去證實A確實發(fā)送X給了B,,以此判斷不可否認性,。 這三項功能的關(guān)鍵點在于:第三方無法持有A的私鑰SKA。 上述過程僅對報文進行了數(shù)字簽名,,未對報文進行加密,。因為截獲到密文DSKA(X)并知道發(fā)送者的身份時,可通過查閱手冊即可獲得發(fā)送者的公鑰PKA,,因此可以知道報文的內(nèi)容,。 下圖可同時實現(xiàn)數(shù)字簽名和加密傳輸。圖中SKA和SKB分別代表A和B的私鑰,,PKA和PKB分別代表A和B的公鑰,。 三、數(shù)字簽名的作用1,、防冒充(偽造):私有密鑰只有簽名者自己知道,,所以其他人不可能構(gòu)造出正確的。 2,、鑒別身份:由于傳統(tǒng)的手工簽名一般是雙方直接見面的,,身份自可一清二楚,。在網(wǎng)絡(luò)環(huán)境中,接收方必須能夠鑒別發(fā)送方所宣稱的身份,。 3,、防篡改(防破壞信息的完整性):簽名與原有文件已經(jīng)形成了一個混合的整體數(shù)據(jù),不可能被篡改,,從而保證了數(shù)據(jù)的完整性,。 4、防重放:采用了對簽名報文添加流水號,、時間戳等技術(shù),,可以防止重放攻擊。 5,、防抵賴,。在數(shù)字簽名體制中,要求接收者返回一個自己的簽名表示收到的報文,,給對方或者第三方或者引入第三方機制,。如此操作,雙方均不可抵賴,。 6,、機密性(保密性)。手工簽字的文件(如同文本)是不具備保密性的,,文件一旦丟失,,其中的信息就極可能泄露??梢詫?shù)字簽名的報文進行加密,。 |
|