數(shù)字簽名技術(shù)原理介紹
?? 1 引言
為了確保數(shù)據(jù)傳輸?shù)陌踩?,不得不采取一系列的安全技術(shù),如加密技術(shù)、數(shù)字簽名、身份認(rèn)證、密鑰管理、防火墻、安全協(xié)議等。其中數(shù)字簽名就是實(shí)現(xiàn)網(wǎng)上交易安全的核心技術(shù)之一,它可以保證信息傳輸?shù)谋C苄?、?shù)據(jù)交換的完整性、發(fā)送信息的不可否認(rèn)性、交易者身份的確定性等。
2 數(shù)字簽名的概念
數(shù)字簽名在ISO7498—2標(biāo)準(zhǔn)中定義為:“附加在數(shù)據(jù)單元上的一些數(shù)據(jù),或是對(duì)數(shù)據(jù)單元所作的密碼變換,這種數(shù)據(jù)和變換允許數(shù)據(jù)單元的接收者用以確認(rèn)數(shù)據(jù)單元來源和數(shù)據(jù)單元的完整性,并保護(hù)數(shù)據(jù),防止被人(例如接收者)進(jìn)行偽造”。
數(shù)字簽名要實(shí)現(xiàn)的功能是我們平常的手寫簽名要實(shí)現(xiàn)功能的擴(kuò)展。平常在書面文件上簽名的主要作用有兩點(diǎn),一是因?yàn)閷?duì)自己的簽名本人難以否認(rèn),從而確定了文件已被自己簽署這一事實(shí);二是因?yàn)樽约旱暮灻灰妆粍e人模仿,從而確定了文件是真的這一事實(shí)。采用數(shù)字簽名,也能完成這些功能:
?。?)確認(rèn)信息是由簽名者發(fā)送的;
?。?)確認(rèn)信息自簽名后到收到為止,未被修改過;
?。?)簽名者無法否認(rèn)信息是由自己發(fā)送的。
數(shù)字簽名的技術(shù)基礎(chǔ)是公鑰密碼技術(shù),下面就先介紹公鑰密碼技術(shù)的基本思想和RSA公鑰密碼系統(tǒng)。
3 公鑰密碼技術(shù)
公鑰密碼技術(shù)又稱為非對(duì)稱/Jn密技術(shù)。與之相對(duì)的是對(duì)稱加密技術(shù)。對(duì)稱加密技術(shù)是發(fā)送方和接收方使用相同的密鑰進(jìn)行加密/解密,雙方必須確保這個(gè)共同密鑰的安全性。其基本過程可以用下圖表示:
其中加密變換使用的密鑰和解密變換使用的密鑰是完全相同的,此密鑰必須以某種安全的方式告訴解密方。大家熟悉的DES加密標(biāo)準(zhǔn)就是一種對(duì)稱加密技術(shù)。1976年,Diffie和Hellman在一篇名叫“New Direction in Cryptog raphy(密碼學(xué)的新方向)”一文中提出了一個(gè)新的思想,即:不僅加密算法本身可以公開,就是加密用的密鑰本身也可以公開。這就是公鑰密碼體制。其中使用的密鑰被分解為一對(duì):一把公鑰和一把私鑰。只要私鑰保密就可以了,公鑰可以發(fā)到因特網(wǎng)(如網(wǎng)站的黃頁)等公開地方供別人查詢和下載。
4 數(shù)字簽名的實(shí)現(xiàn)方法
建立在公鑰密碼技術(shù)上的數(shù)字簽名方法有很多,有RSA簽名、DSA簽名和橢圓曲線數(shù)字簽名算法(ECDSA)等等。下面對(duì)RSA簽名進(jìn)行詳細(xì)分析。
RSA簽名的整個(gè)過程可以用下圖表示:
?。?)發(fā)送方采用某種摘要算法從報(bào)文中生成一個(gè)128位的散列值(稱為報(bào)文摘要);
(2)發(fā)送方用RSA算法和自己的私鑰對(duì)這個(gè)散列值進(jìn)行加密,產(chǎn)生一個(gè)摘要密文,這就是發(fā)送方的數(shù)字簽名;
?。?)將這個(gè)加密后的數(shù)字簽名作為報(bào)文的附件和報(bào)文一起發(fā)送給接收方:
?。?)接收方從接收到的原始報(bào)文中采用相同的摘要算法計(jì)算出128位的散列值;
?。?)報(bào)文的接收方用RSA算法和發(fā)送方的公鑰對(duì)報(bào)文附加的數(shù)字簽名進(jìn)行解密;
?。?)如果兩個(gè)散列值相同,那么接收方就能確認(rèn)報(bào)文是由發(fā)送方簽名的。
最常用的摘要算法叫做MD5(Message Digest 5),它的作者R.L.
Rivest正是提出RSA公鑰密碼系統(tǒng)中的R。MD5采用單向Hash函數(shù)將任意長度的“字節(jié)串”變換成一個(gè)128位的散列值,并且它是一個(gè)不可逆的字符串變換算法,換言之,即使看到MD5的算法描述和實(shí)現(xiàn)它的源代碼,也無法將一個(gè)MD5的散列值變換回原始的字符串。這一個(gè)128位的散列值亦稱為數(shù)字指紋,就像人的指紋一樣,它就成為驗(yàn)證報(bào)文身份的“指紋”了。
數(shù)字簽名是如何完成與手寫簽名類同的功能的呢?如果報(bào)文在網(wǎng)絡(luò)傳輸過程中被修改,接收方收到此報(bào)文后,使用相同的摘要算法將計(jì)算出不同的報(bào)文摘要,這就保證了接收方可以判斷報(bào)文自簽名后到收到為止,是否被修改過。如果發(fā)送方A想讓接收方誤認(rèn)為此報(bào)文是由發(fā)送方B簽名發(fā)送的,由于發(fā)送方A不知道發(fā)送方B的私鑰,所以接收方用發(fā)送方B的公鑰對(duì)發(fā)送方A加密的報(bào)文摘要進(jìn)行解密時(shí),也將得出不同的報(bào)文摘要,這就保證了接收方可以判斷報(bào)文是否是由指定的簽名者發(fā)送。同時(shí)也可以看出,當(dāng)兩個(gè)散列值相同時(shí),發(fā)送方B無法否認(rèn)這個(gè)報(bào)文是他簽名發(fā)送的。
在上述簽名方案中,報(bào)文是以明文方式發(fā)生的。所以不具備保密功能。如果報(bào)文包含不能泄漏的信息,就需要先進(jìn)行加密,然后再進(jìn)行傳送。具有保密機(jī)制的RSA簽名的整個(gè)過程如下圖所示:
?。?)發(fā)送方選擇一個(gè)對(duì)稱加密算法(比如DES)和一個(gè)對(duì)稱密鑰對(duì)報(bào)文進(jìn)行加密;
?。?)發(fā)送方用接收方的公鑰和RSA算法對(duì)第1步中的對(duì)稱密鑰進(jìn)行加密,并且將加密后的對(duì)稱密鑰附加在密文中;
?。?)發(fā)送方使用一個(gè)摘要算法從第2步的密文中得到報(bào)文摘要,然后用RSA算法和發(fā)送方的私鑰對(duì)此報(bào)文摘要進(jìn)行加密,這就是發(fā)送方的數(shù)字簽名;
(4)將第3步得到的數(shù)字簽名封裝在第2步的密文后,并通過網(wǎng)絡(luò)發(fā)送給接收方;
?。?)接收方使用RSA算法和發(fā)送方的公鑰對(duì)收到的數(shù)字簽名進(jìn)行解密,得到一個(gè)報(bào)文摘要;
(6)接收方使用相同的摘要算法,從接收到的報(bào)文密文中計(jì)算出一個(gè)報(bào)文摘要;
?。?)如果第5步和第6步的報(bào)文摘要是相同的,就可以確認(rèn)密文沒有被篡改,并且是由指定的發(fā)送方簽名發(fā)送的;
(8)接收方使用RSA算法和接收方的私鑰解密出對(duì)稱密鑰;
?。?)接收方使用對(duì)稱加密算法(比如DES)和對(duì)稱密鑰對(duì)密文解密,得到原始報(bào)文。
5 數(shù)字簽名在電子商務(wù)中的應(yīng)用
下面用一個(gè)使用SET協(xié)議的例子來說明數(shù)字簽名在電子商務(wù)中的作用。SET協(xié)議(Secure Electronic Transaction,安全電子交易)是由VISA和MasterCard兩大信用卡公司于1997年聯(lián)合推出的規(guī)范。
SET主要針對(duì)用戶、商家和銀行之間通過信用卡支付的電子交易類型而設(shè)計(jì)的,所以在下例中會(huì)出現(xiàn)三方:用戶、網(wǎng)站和銀行。對(duì)應(yīng)的就有六把“鑰匙”:用戶公鑰、用戶私鑰;網(wǎng)站公鑰、網(wǎng)站私鑰;銀行公鑰、銀行私鑰。
這個(gè)三方電子交易的流程如下:
?。?)用戶將購物清單和用戶銀行賬號(hào)和密碼進(jìn)行數(shù)字簽名提交給網(wǎng)站:
用戶賬號(hào)明文包括用戶的銀行賬號(hào)和密碼。
?。?)網(wǎng)站簽名認(rèn)證收到的購物清單:
?。?)網(wǎng)站將網(wǎng)站申請(qǐng)密文和用戶賬號(hào)密文進(jìn)行數(shù)字簽名提交給銀行:
網(wǎng)站申請(qǐng)明文包括購物清單款項(xiàng)統(tǒng)計(jì)、網(wǎng)站賬戶和用戶需付金額。
(4)銀行簽名認(rèn)證收到的相應(yīng)明文:
從上面的交易過程可知,這個(gè)電子商務(wù)具有以下幾個(gè)特點(diǎn):
(1)網(wǎng)站無法得知用戶的銀行賬號(hào)和密碼,只有銀行可以看到用戶的銀行賬號(hào)和密碼;
?。?)銀行無法從其他地方得到用戶的銀行賬號(hào)和密碼的密文;
?。?)由于數(shù)字簽名技術(shù)的使用,從用戶到網(wǎng)站到銀行的數(shù)據(jù),每一個(gè)發(fā)送端都無法否認(rèn);
?。?)由于數(shù)字簽名技術(shù)的使用,從用戶到網(wǎng)站到銀行的數(shù)據(jù),均可保證未被篡改。
可見,這種方式已基本解決電子商務(wù)中三方進(jìn)行安全交易的要求,即便有“四方”、“五方”等更多方交易,也可以按SET 議類推完成。
6 結(jié)語
數(shù)字簽名還需要相關(guān)法律條文的支持,所以需要引起立法機(jī)構(gòu)對(duì)數(shù)字簽名技術(shù)的重視,加快立法腳步,制定相關(guān)法律,為數(shù)字簽名技術(shù)提供法律上的支持。
精彩閱讀推薦:
數(shù)字簽名技術(shù)具有什么特性_數(shù)字簽名技術(shù)的三個(gè)安全性
數(shù)字簽名技術(shù)的主要功能_數(shù)字簽名技術(shù)的實(shí)現(xiàn)過程
數(shù)字簽名技術(shù)的應(yīng)用
非常好我支持^.^
(1033) 55.6%
不好我反對(duì)
(824) 44.4%
相關(guān)閱讀:
- [電子說] 虹科干貨 | HMI項(xiàng)目文件的加密和數(shù)字簽名,你會(huì)了嗎? 2023-03-29
- [電子說] 無紙化辦案丨如何實(shí)現(xiàn)電子筆錄原筆跡簽名? 2022-08-03
- [電子說] 數(shù)字戰(zhàn)疫丨電子簽名板,加固高速卡口防疫線 2022-05-26
- [電子說] 繪王兼容性再提升,多款產(chǎn)品兼容Linux系統(tǒng) 2022-04-13
- [電子說] HMI項(xiàng)目文件的加密和數(shù)字簽名,你會(huì)了嗎? 2023-03-14
- [電子說] 淺談非對(duì)稱算法與數(shù)字簽名 2022-09-03
- [電子說] 數(shù)字簽名技術(shù)的應(yīng)用 2020-08-20
- [電子說] 數(shù)字簽名技術(shù)的主要功能_數(shù)字簽名技術(shù)的實(shí)現(xiàn)過程 2020-08-20
( 發(fā)表人:姚遠(yuǎn)香 )