數(shù)字簽名技術原理介紹
?? 1 引言
為了確保數(shù)據(jù)傳輸?shù)陌踩裕坏貌徊扇∫幌盗械陌踩夹g,如加密技術、數(shù)字簽名、身份認證、密鑰管理、防火墻、安全協(xié)議等。其中數(shù)字簽名就是實現(xiàn)網(wǎng)上交易安全的核心技術之一,它可以保證信息傳輸?shù)谋C苄?、?shù)據(jù)交換的完整性、發(fā)送信息的不可否認性、交易者身份的確定性等。
2 數(shù)字簽名的概念
數(shù)字簽名在ISO7498—2標準中定義為:“附加在數(shù)據(jù)單元上的一些數(shù)據(jù),或是對數(shù)據(jù)單元所作的密碼變換,這種數(shù)據(jù)和變換允許數(shù)據(jù)單元的接收者用以確認數(shù)據(jù)單元來源和數(shù)據(jù)單元的完整性,并保護數(shù)據(jù),防止被人(例如接收者)進行偽造”。
數(shù)字簽名要實現(xiàn)的功能是我們平常的手寫簽名要實現(xiàn)功能的擴展。平常在書面文件上簽名的主要作用有兩點,一是因為對自己的簽名本人難以否認,從而確定了文件已被自己簽署這一事實;二是因為自己的簽名不易被別人模仿,從而確定了文件是真的這一事實。采用數(shù)字簽名,也能完成這些功能:
(1)確認信息是由簽名者發(fā)送的;
(2)確認信息自簽名后到收到為止,未被修改過;
?。?)簽名者無法否認信息是由自己發(fā)送的。
數(shù)字簽名的技術基礎是公鑰密碼技術,下面就先介紹公鑰密碼技術的基本思想和RSA公鑰密碼系統(tǒng)。
3 公鑰密碼技術
公鑰密碼技術又稱為非對稱/Jn密技術。與之相對的是對稱加密技術。對稱加密技術是發(fā)送方和接收方使用相同的密鑰進行加密/解密,雙方必須確保這個共同密鑰的安全性。其基本過程可以用下圖表示:

其中加密變換使用的密鑰和解密變換使用的密鑰是完全相同的,此密鑰必須以某種安全的方式告訴解密方。大家熟悉的DES加密標準就是一種對稱加密技術。1976年,Diffie和Hellman在一篇名叫“New Direction in Cryptog raphy(密碼學的新方向)”一文中提出了一個新的思想,即:不僅加密算法本身可以公開,就是加密用的密鑰本身也可以公開。這就是公鑰密碼體制。其中使用的密鑰被分解為一對:一把公鑰和一把私鑰。只要私鑰保密就可以了,公鑰可以發(fā)到因特網(wǎng)(如網(wǎng)站的黃頁)等公開地方供別人查詢和下載。
4 數(shù)字簽名的實現(xiàn)方法
建立在公鑰密碼技術上的數(shù)字簽名方法有很多,有RSA簽名、DSA簽名和橢圓曲線數(shù)字簽名算法(ECDSA)等等。下面對RSA簽名進行詳細分析。
RSA簽名的整個過程可以用下圖表示:

(1)發(fā)送方采用某種摘要算法從報文中生成一個128位的散列值(稱為報文摘要);
?。?)發(fā)送方用RSA算法和自己的私鑰對這個散列值進行加密,產(chǎn)生一個摘要密文,這就是發(fā)送方的數(shù)字簽名;
(3)將這個加密后的數(shù)字簽名作為報文的附件和報文一起發(fā)送給接收方:
?。?)接收方從接收到的原始報文中采用相同的摘要算法計算出128位的散列值;
?。?)報文的接收方用RSA算法和發(fā)送方的公鑰對報文附加的數(shù)字簽名進行解密;
(6)如果兩個散列值相同,那么接收方就能確認報文是由發(fā)送方簽名的。
最常用的摘要算法叫做MD5(Message Digest 5),它的作者R.L.
Rivest正是提出RSA公鑰密碼系統(tǒng)中的R。MD5采用單向Hash函數(shù)將任意長度的“字節(jié)串”變換成一個128位的散列值,并且它是一個不可逆的字符串變換算法,換言之,即使看到MD5的算法描述和實現(xiàn)它的源代碼,也無法將一個MD5的散列值變換回原始的字符串。這一個128位的散列值亦稱為數(shù)字指紋,就像人的指紋一樣,它就成為驗證報文身份的“指紋”了。
數(shù)字簽名是如何完成與手寫簽名類同的功能的呢?如果報文在網(wǎng)絡傳輸過程中被修改,接收方收到此報文后,使用相同的摘要算法將計算出不同的報文摘要,這就保證了接收方可以判斷報文自簽名后到收到為止,是否被修改過。如果發(fā)送方A想讓接收方誤認為此報文是由發(fā)送方B簽名發(fā)送的,由于發(fā)送方A不知道發(fā)送方B的私鑰,所以接收方用發(fā)送方B的公鑰對發(fā)送方A加密的報文摘要進行解密時,也將得出不同的報文摘要,這就保證了接收方可以判斷報文是否是由指定的簽名者發(fā)送。同時也可以看出,當兩個散列值相同時,發(fā)送方B無法否認這個報文是他簽名發(fā)送的。
在上述簽名方案中,報文是以明文方式發(fā)生的。所以不具備保密功能。如果報文包含不能泄漏的信息,就需要先進行加密,然后再進行傳送。具有保密機制的RSA簽名的整個過程如下圖所示:

(1)發(fā)送方選擇一個對稱加密算法(比如DES)和一個對稱密鑰對報文進行加密;
?。?)發(fā)送方用接收方的公鑰和RSA算法對第1步中的對稱密鑰進行加密,并且將加密后的對稱密鑰附加在密文中;
(3)發(fā)送方使用一個摘要算法從第2步的密文中得到報文摘要,然后用RSA算法和發(fā)送方的私鑰對此報文摘要進行加密,這就是發(fā)送方的數(shù)字簽名;
?。?)將第3步得到的數(shù)字簽名封裝在第2步的密文后,并通過網(wǎng)絡發(fā)送給接收方;
(5)接收方使用RSA算法和發(fā)送方的公鑰對收到的數(shù)字簽名進行解密,得到一個報文摘要;
(6)接收方使用相同的摘要算法,從接收到的報文密文中計算出一個報文摘要;
(7)如果第5步和第6步的報文摘要是相同的,就可以確認密文沒有被篡改,并且是由指定的發(fā)送方簽名發(fā)送的;
(8)接收方使用RSA算法和接收方的私鑰解密出對稱密鑰;
?。?)接收方使用對稱加密算法(比如DES)和對稱密鑰對密文解密,得到原始報文。
5 數(shù)字簽名在電子商務中的應用
下面用一個使用SET協(xié)議的例子來說明數(shù)字簽名在電子商務中的作用。SET協(xié)議(Secure Electronic Transaction,安全電子交易)是由VISA和MasterCard兩大信用卡公司于1997年聯(lián)合推出的規(guī)范。
SET主要針對用戶、商家和銀行之間通過信用卡支付的電子交易類型而設計的,所以在下例中會出現(xiàn)三方:用戶、網(wǎng)站和銀行。對應的就有六把“鑰匙”:用戶公鑰、用戶私鑰;網(wǎng)站公鑰、網(wǎng)站私鑰;銀行公鑰、銀行私鑰。
這個三方電子交易的流程如下:
(1)用戶將購物清單和用戶銀行賬號和密碼進行數(shù)字簽名提交給網(wǎng)站:

用戶賬號明文包括用戶的銀行賬號和密碼。
?。?)網(wǎng)站簽名認證收到的購物清單:

(3)網(wǎng)站將網(wǎng)站申請密文和用戶賬號密文進行數(shù)字簽名提交給銀行:

網(wǎng)站申請明文包括購物清單款項統(tǒng)計、網(wǎng)站賬戶和用戶需付金額。
?。?)銀行簽名認證收到的相應明文:

從上面的交易過程可知,這個電子商務具有以下幾個特點:
?。?)網(wǎng)站無法得知用戶的銀行賬號和密碼,只有銀行可以看到用戶的銀行賬號和密碼;
(2)銀行無法從其他地方得到用戶的銀行賬號和密碼的密文;
?。?)由于數(shù)字簽名技術的使用,從用戶到網(wǎng)站到銀行的數(shù)據(jù),每一個發(fā)送端都無法否認;
?。?)由于數(shù)字簽名技術的使用,從用戶到網(wǎng)站到銀行的數(shù)據(jù),均可保證未被篡改。
可見,這種方式已基本解決電子商務中三方進行安全交易的要求,即便有“四方”、“五方”等更多方交易,也可以按SET 議類推完成。
6 結語
數(shù)字簽名還需要相關法律條文的支持,所以需要引起立法機構對數(shù)字簽名技術的重視,加快立法腳步,制定相關法律,為數(shù)字簽名技術提供法律上的支持。
精彩閱讀推薦:
數(shù)字簽名技術具有什么特性_數(shù)字簽名技術的三個安全性
數(shù)字簽名技術的主要功能_數(shù)字簽名技術的實現(xiàn)過程
數(shù)字簽名技術的應用
非常好我支持^.^
(1033) 55.6%
不好我反對
(824) 44.4%
相關閱讀:
- [電子說] 虹科干貨 | HMI項目文件的加密和數(shù)字簽名,你會了嗎? 2023-03-29
- [電子說] 無紙化辦案丨如何實現(xiàn)電子筆錄原筆跡簽名? 2022-08-03
- [電子說] 數(shù)字戰(zhàn)疫丨電子簽名板,加固高速卡口防疫線 2022-05-26
- [電子說] 繪王兼容性再提升,多款產(chǎn)品兼容Linux系統(tǒng) 2022-04-13
- [電子說] HMI項目文件的加密和數(shù)字簽名,你會了嗎? 2023-03-14
- [電子說] 淺談非對稱算法與數(shù)字簽名 2022-09-03
- [電子說] 數(shù)字簽名技術的應用 2020-08-20
- [電子說] 數(shù)字簽名技術的主要功能_數(shù)字簽名技術的實現(xiàn)過程 2020-08-20
( 發(fā)表人:姚遠香 )
