數(shù)字簽名
目錄
1.什么是數(shù)字簽名
所謂數(shù)字簽名(Digital Signature)(又稱(chēng)公鑰數(shù)字簽名、電子簽章)是一種類(lèi)似寫(xiě)在紙上的普通的物理簽名,但是使用了公鑰加密領(lǐng)域的技術(shù)實(shí)現(xiàn),用于鑒別數(shù)字信息的方法。一套數(shù)字簽名通常定義兩種互補(bǔ)的運(yùn)算,一個(gè)用于簽名,另一個(gè)用于驗(yàn)證。
2.數(shù)字簽名的條件
在金融和商業(yè)等系統(tǒng)中,許多業(yè)務(wù)都要求在單據(jù)上進(jìn)行簽名或加蓋印章,證實(shí)其真實(shí)性,以備日后檢查,可是在利用計(jì)算機(jī)網(wǎng)絡(luò)來(lái)傳送報(bào)文時(shí),顯然不能用手簽的方法,在計(jì)算機(jī)中我們可以采用數(shù)字簽名的方法,利用公開(kāi)密鑰來(lái)實(shí)現(xiàn)數(shù)字簽名,從而代替?zhèn)鹘y(tǒng)的簽名。
為使數(shù)字簽名能代替?zhèn)鹘y(tǒng)的簽名,必須滿足下面三個(gè)條件:
(1)接收者能夠核實(shí)發(fā)送者對(duì)報(bào)文的簽名;
(2)發(fā)送者事后不能抵賴(lài)對(duì)其報(bào)文的簽名;
(3)接收者無(wú)法偽造對(duì)報(bào)文的簽名。
3.數(shù)字簽名的基本形式
對(duì)于交換信息的雙方而言,數(shù)字簽名的最基本形式是該信息基于某種特定的附加信息(如密鑰或標(biāo)識(shí)等的信息摘錄)。發(fā)送方對(duì)發(fā)送的報(bào)文簽名并隨同報(bào)文一起發(fā)送,以擔(dān)保報(bào)文的內(nèi)容,若需接收方也對(duì)報(bào)文的內(nèi)容進(jìn)行擔(dān)保,則要求接收方向發(fā)送方返回一個(gè)簽名的回執(zhí)(可以是對(duì)報(bào)文的再簽名)。
4.數(shù)字簽名的實(shí)現(xiàn)
數(shù)字簽名的簡(jiǎn)單實(shí)例是直接利用RSA算法和發(fā)送方的秘密密鑰。對(duì)被簽名的數(shù)據(jù)進(jìn)行加密。當(dāng)接收方收取本塊密文時(shí),使用發(fā)送方的公開(kāi)密鑰進(jìn)行解密,如果能夠還原明文,則根據(jù)公開(kāi)密鑰體制的特點(diǎn)(公開(kāi)密鑰加密的密文只能用秘密密鑰解密,秘密密鑰加密的密文只能用公開(kāi)密鑰解密),可以認(rèn)為該數(shù)據(jù)確實(shí)來(lái)自于希望的發(fā)送方。
5.數(shù)字簽名與手寫(xiě)簽名的區(qū)別
數(shù)字簽名同傳統(tǒng)的手寫(xiě)簽名相比有許多特點(diǎn):
首先,數(shù)字簽名中的簽名同信息是分開(kāi)的,需要一種方法將簽名與信息聯(lián)系在一起,而在傳統(tǒng)的手寫(xiě)簽名中,簽名與所簽署之信息是一個(gè)整體;
其次,在簽名驗(yàn)證的方法上,數(shù)字簽名利用一種公開(kāi)的方法對(duì)簽名進(jìn)行驗(yàn)證,任何人都可以對(duì)之進(jìn)行檢驗(yàn).而傳統(tǒng)的手寫(xiě)簽名的驗(yàn)證,是由經(jīng)驗(yàn)豐富的接收者,通過(guò)同預(yù)留的簽名樣本相比較而作出判斷的;
最后,在數(shù)字簽名中,有效簽名的復(fù)制同樣是有效的簽名,而在傳統(tǒng)的手寫(xiě)簽名中,簽名的復(fù)制是無(wú)效的.
數(shù)字簽名可以同時(shí)具有兩個(gè)作用:確認(rèn)數(shù)據(jù)的來(lái)源,以及保證數(shù)據(jù)在發(fā)送的過(guò)程中未作任何修改或變動(dòng).因此,在某些方面而言,數(shù)據(jù)簽名的功能,更有些近似于整體性檢測(cè)值的功能.但是,二者的一個(gè)主要區(qū)別在于,數(shù)字簽名必須能夠保證以下特點(diǎn),即發(fā)送者事后不能抵賴(lài)對(duì)報(bào)文的簽名.這一點(diǎn)相當(dāng)重要.由此,信息的接收者可以通過(guò)數(shù)字簽名,使第三方確信簽名人的身份及發(fā)出信息的事實(shí).當(dāng)雙方就信息發(fā)出與否及其內(nèi)容出現(xiàn)爭(zhēng)論時(shí),數(shù)字簽名就可成為一個(gè)有力的證據(jù).一般來(lái)說(shuō)因信息篡改而受影響較大的是接收方.因此,接收方最好使用與信息發(fā)送方不同的數(shù)字簽名,以示區(qū)別.這是整體性檢測(cè)值所不具有的功能.在這種意義上說(shuō)來(lái),確認(rèn)一個(gè)數(shù)字簽名,有些類(lèi)似于通過(guò)辯認(rèn)手寫(xiě)簽名來(lái)確認(rèn)某一書(shū)面文件的來(lái)源一樣的意義。
6.數(shù)字簽名的確認(rèn)
數(shù)字簽名的確認(rèn)是一個(gè)參照原信息和給定的公共密碼來(lái)查驗(yàn)數(shù)字簽名的過(guò)程,進(jìn)而決定為同一信息使用私人密碼創(chuàng)建的數(shù)字簽名與被參照的公共密碼是否保持一致.通過(guò)使用與創(chuàng)建數(shù)字簽名相同的哈希函數(shù)功能,來(lái)計(jì)算出原信息新的哈希函數(shù)結(jié)果,以達(dá)到對(duì)數(shù)據(jù)簽名的確認(rèn).接著,使用公共密碼和新的哈希函數(shù)結(jié)果,確認(rèn)者可以檢查數(shù)字簽名是否是使用相應(yīng)的私人密碼簽署的,新計(jì)算出來(lái)的哈希函數(shù)結(jié)果是否與在簽名過(guò)程中被轉(zhuǎn)化為數(shù)字簽名的原哈希函數(shù)結(jié)果值相匹配.
確認(rèn)軟件將認(rèn)同數(shù)字簽名為"已被確認(rèn)",假如:
(1)簽名者的私人密碼是用來(lái)對(duì)信息進(jìn)行數(shù)據(jù)簽名的,而公共密碼是用來(lái)確認(rèn)數(shù)字簽名的,因?yàn)?公共密碼將只確認(rèn)簽名者使用私人密碼簽署數(shù)字簽名.而事實(shí)上,公共密碼已經(jīng)確認(rèn)了簽名是由私人密碼作出的;
(2)信息未曾被改變,在確認(rèn)過(guò)程中,這一點(diǎn)可以通過(guò)將確認(rèn)者計(jì)算出來(lái)的哈希函數(shù)結(jié)果與從數(shù)字簽名中的哈希函數(shù)結(jié)果相對(duì)比得出結(jié)論來(lái).
7.數(shù)字簽名的過(guò)程
數(shù)字簽名的使用一般涉及以下幾個(gè)步驟,這幾個(gè)步驟即可由簽名者也可由被簽署信息的接受者來(lái)完成:
(1)用戶生成或取得獨(dú)一無(wú)二的加密密碼組.
(2)發(fā)件人在計(jì)算機(jī)上準(zhǔn)備一個(gè)信息(如以電子郵件的形式).
(3)發(fā)件人用安全的哈希函數(shù)功能準(zhǔn)備好"信息摘要".數(shù)字簽名由一個(gè)哈希函數(shù)結(jié)果值生成.該函數(shù)值由被簽署的信息和一個(gè)給定的私人密碼生成,并對(duì)其而言是獨(dú)一無(wú)二的.為了確保哈希函數(shù)值的安全性,應(yīng)該使通過(guò)任意信息和私人密碼的組合而產(chǎn)生同樣的數(shù)字簽名的可能性為零.
(4)發(fā)件人通過(guò)使用私人密碼將信息摘要加密.私人密碼通過(guò)使用一種數(shù)學(xué)算法被應(yīng)用在信息摘要文本中.數(shù)字簽名包含被加密的信息摘要.
(5)發(fā)件人將數(shù)字簽名附在信息之后.
(6)發(fā)件人將數(shù)字簽名和信息(加密或未加密)發(fā)送給電子收件人.
(7)收件人使用發(fā)件人的公共密碼確認(rèn)發(fā)件人的電子簽名.使用發(fā)件人的公共密碼進(jìn)行的認(rèn)證證明信息排他性地來(lái)自于發(fā)件人.
(8)收件人使用同樣安全的哈希函數(shù)功能創(chuàng)建信息的"信息摘要".
(9)收件人比較兩個(gè)信息摘要.假如兩者相同,則收件人可以確信信息在簽發(fā)后并未作任何改變.信息被簽發(fā)后哪怕是有一個(gè)字節(jié)的改變,收件人創(chuàng)建的數(shù)據(jù)摘要與發(fā)件人創(chuàng)建的數(shù)據(jù)摘要都會(huì)有所不同.
(10) 收件人從證明機(jī)構(gòu)處獲得認(rèn)證證書(shū)(或者是通過(guò)信息發(fā)件人獲得),這一證書(shū)用以確認(rèn)發(fā)件人發(fā)出信息上的數(shù)字簽名的真實(shí)性.證明機(jī)構(gòu)在數(shù)字簽名系統(tǒng)中是一個(gè)典型的受委托管理證明業(yè)務(wù)的第三方.該證書(shū)包含發(fā)件人的公共密碼和姓名(以及其他可能的附加信息),由證明機(jī)構(gòu)在其上進(jìn)行數(shù)字簽名.
其中,第(1)~(6)是數(shù)字簽名的制作過(guò)程,(7)~(10)是數(shù)字簽名的核實(shí)過(guò)程.