黃 敏,趙 艷,王海瑤
(1.河北科技大學信息科學與工程學院,河北石家莊 050018;2.福建江夏學院工商管理系,福建福州 350108)
基于數字簽名和數字水印技術的電子簽章算法研究
黃 敏1,趙 艷1,王海瑤2
(1.河北科技大學信息科學與工程學院,河北石家莊 050018;2.福建江夏學院工商管理系,福建福州 350108)
將數字簽名技術、數字水印技術和時間戳技術相結合提出了一種電子簽章的實現算法。該算法在數字簽名中添加時間戳信息,進一步提高了簽章的安全性和抗攻擊性。在簽章算法中設計了一個基于小波分解信號的局部極大值的數字水印嵌入算法,可以將簽名信息作為水印嵌入到簽章圖片中,增強了簽章信息的隱蔽性。經過仿真實驗,該方案能夠較好地完成電子商務交易中的合同簽章應用,實現身份認證和保證合同文本的完整性和不可篡改性。
數字簽名;數字水?。粫r間戳;電子簽章
隨著互聯網的廣泛應用,電子商務的應用已經深入到社會經濟生活的各個領域。但伴隨著電子商務行業蓬勃發展的同時也帶來了許多法律問題,如網絡通信的安全與隱私保護問題、知識產權問題、電子支付問題、電子合同問題、交易認證問題等等。電子簽名問題也是其中一個重要方面。在傳統的交易過程中,書面合同文件的法律效力體現在使用印章或企業法人的手寫簽名來完成身份認證。然而這種傳統的手工蓋章與簽名已不能適應現代化的電子商務交易模式?!峨娮雍灻ā酚?005-04-01在中國正式施行,其中明確指出:可靠的電子簽名與手寫簽名或者蓋章具有同等的法律效力[1]。這項法律規定使得以電子簽章的形式實現身份認證保障電子合同在交易過程中的安全成為了可能。
電子簽章是電子簽名的一種特定形式,是數字簽名的一種可視化的表現形式。在電子商務交易模式中,合同或文件需要以電子文件的形式表現和傳遞,但是在電子文件上是無法直接進行手工簽名或蓋章的。能夠在電子文件中識別雙方的真實身份,保證傳輸或交易的安全性、真實性及不可抵賴性,起到與手寫簽名或蓋章同等作用的簽名的電子技術手段,稱之為電子簽名。文獻[2]提出使用組合公鑰(CPK)技術實現電子簽章。文獻[3]提出利用時間戳技術實現電子簽章的實現方案。文獻[4]和文獻[5]提出將數字水印技術和PKI技術相結合實現電子簽章系統的方案。這些研究在一定程度上對電子簽章技術進行了改進,但如何將數字簽名技術、數字水印技術和時間戳技術相結合,進一步加強電子簽章的安全性和保密性,是目前制約數字水印技術在電子簽章系統上應用的一個難題。
筆者利用數字簽名技術、數字水印技術和時間戳技術相結合設計了一個電子簽章算法,完成對電子合同的加密、簽名和認證。該方案有效地解決了電子商務交易過程中電子合同的完整性、防偽造性、防篡改性等安全問題。
PKI(public key infrastructure,公鑰基礎設施)是指用公鑰概念和技術來實施和提供安全服務的具有普適性的安全基礎設施。它是國際上解決開放式互聯網絡信息安全需求的一套體系。PKI體系支持身份認證、信息傳輸和存儲的完整性、消息傳輸和存儲的機密性以及操作的不可否認性[5]。PKI通過CA(certificate authority,認證機構)實現數字證書的申請、簽發、制作、廢止、認證和管理,提供網上客戶身份認證、數字簽名、電子公證、安全電子郵件等服務。CA機構作為受信任和具有權威性的第三方,承擔公鑰體系中公鑰的合法性檢驗的責任[6]。
數字簽名(digital signature)技術是使用不對稱加密算法來實現身份認證。在數字簽名過程中,數據發送方使用自己的私鑰對數據校驗和或其他與數據內容有關的變量進行加密處理,完成對數據的合法“簽名”,數據接收方則利用對方的公鑰來解讀收到的“數字簽名”,并將解讀結果用于對數據完整性的檢驗,以確認簽名的合法性。數字簽名技術是在網絡系統虛擬環境中確認身份的重要技術,完全可以代替現實過程中的“親筆簽字”,在技術上和法律上保證了身份認證和數據安全。
數字簽名實現過程如圖1所示。

圖1 數字簽名過程Fig.1 Process of digital signature
數字水印技術是信息隱藏技術的一個應用分支。數字水印是嵌在數字產品中的數字信號,是指具有不可見性、魯棒性、抗檢測性的,含有認證敏感信息的數字標記,諸如數字簽名、日期、商標或隨機序列等。利用數字水印的不可見性,將用戶對文件的簽名信息隱藏在印章圖片中,實現電子簽章,并且提高簽章系統的安全性。
筆者使用小波變換工具來實現水印嵌入。與傳統的傅里葉變換比較,小波變換是空間/時間和頻率的局部化分析,它通過伸縮平移運算對信號逐步進行多尺度細化,最終達到高頻處時間細分,低頻處頻率細分,從而聚焦到信號的任意細節。它克服短時傅里葉變換固定分辨率的弱點,既可分析信號的概貌,又可分析信號的細節。
圖像的二級小波分解可以用圖2表示,圖像經過一級小波分解后,變成4個子圖像,其中LL1為低頻分量,HL1,LH1和HH1分別為水平細節分量、垂直細節分量和對角細節分量。若需要對圖像進行二級小波分解,即將LL1分量進一步分解為1個低頻分量LL2和3個細節分量HL2,LH2和HH2。

圖2 圖像的二級小波分解Fig.2 Two-scale wavelet transform of an image
利用時間戳技術來驗證數據信息的創建或簽名是在一個特定的時間段完成的。在電子商務交易文件中,時間是十分重要的信息。在書面合同中,文件簽署的日期和簽名一樣均是十分重要的,是防止文件被偽造和篡改的關鍵性內容。因此,在進行數字簽名時需要加蓋一個時間標記,是對數字時間戳的數字簽名。
時間戳是一個經加密后形成的憑證文檔,它包括3部分:1)需加時間戳的文件的摘要;2)DTS(digital time stamp service,數字時間戳服務)收到文件的日期和時間;3)DTS的數字簽名。
簽章方首先使用散列算法SHA對電子合同文本進行數字簽名,將簽名信息發送到時間戳服務器加蓋時間戳。對簽章圖片進行小波變換,將加時間戳的簽名信息作為數字水印嵌入到變換系數中。完成小波逆變換,形成水印簽章圖片插入到電子合同文件中。將簽章后的合同文件發送到驗證方。
驗證方首先將合同文件和水印簽章圖片分離開。對水印簽章圖片進行小波變換,從變換后得到的變換系數中提取水印信息。將水印信息轉換為加時間戳的簽名信息,對其進行簽章驗證。通過驗證則認為該合同文檔是完整的、未被篡改的、被簽章人認可并且是不可抵賴的。驗證未通過則認為合同文檔在傳輸過程中可能被篡改、被攻擊、不被簽章人認可。
筆者所提出的基于數字簽名和數字水印技術的電子簽章算法的處理流程如圖3所示。
時間戳技術可以驗證簽章加蓋的時間是否在有效期內,由此可以抵抗重復攻擊。而且在本方案中并不是在文件摘要上直接加時間戳,而是由簽章用戶首先對合同文件進行數字簽名,然后再傳遞給時間戳服務加蓋時間戳。保證了在加蓋時間戳的過程中文件信息的一致性和安全性。
加蓋時間戳的過程如下。
1)對于原始合同文件M,首先使用SHA算法計算其摘要值S(M);
2)簽章用戶利用自己的私鑰PrivateKeyA對摘要S(M)進行加密,形成數字簽名PrivateKeyA(S(M));
3)將原始文件M和數字簽名PrivateKeyA(S(M))封裝形成時間戳請求發送到時間戳服務器;
4)時間戳服務器收到時間戳請求后,提取原始文件M′和數字簽名PrivateKeyA(S(M))。從認證機構CA中得到簽章用戶的數字證書,獲得其公鑰PublicKeyA。利用公鑰對數字簽名PrivateKeyA(S(M))進行解密獲得摘要信息S(M)。對原始文件M′計算摘要值S(M′),若S(M)與S(M′)不相等,則給出驗證失敗信息,若相等則通過驗證。
5)通過驗證后,將數字簽名PrivateKeyA(S(M))和時間戳DateTime結合形成組合信息SignDT,利用時間戳服務器的私鑰對其進行加密形成PrivateKeyDTS(SignDT)。將加蓋了時間戳的數字簽名信息發送回簽名方,PrivateKeyDTS(SignDT)可以作為數字水印嵌入到簽章圖片中。

圖3 電子簽章算法處理流程Fig.3 Process of electronic signature algorithm

水印的嵌入是指將前述的簽名信息PrivateKeyDTS(SignDT)作為數字水印嵌入到簽章圖像信息中。這樣的水印必須是不可見的、易碎的水印。如果企圖破壞水印信息,則簽章圖像信息也被破壞。
筆者提出一種基于小波分解信號的模極大值的水印嵌入算法。其基本思想是:將水印信息轉換為二進制的比特序列重新進行調制。將圖像進行小波變換,得到多層小波變換分解系數。在變換系數的高頻分量中查找符合一定規則的特征值(局部極大值),重新對這些特征值進行排列,使其排列順序規則包含水印比特序列的排列規則,即將水印信息隱藏在這些特征值的排列順序中。
水印嵌入算法步驟如下。
1)采用小波變換的方法,首先對簽章圖像進行2層尺度的小波變換。
假定給定平方可積的二維離散信號(圖像)A0(m,n)。令h和g分別為小波多分辨率分析獲得的低通和高通濾波器,則通過下列二維圖像的金字塔算法,可以將圖像分解尺度為j+1的低頻圖像Aj+1(m,n)和高頻圖像Hj+1(m,n),Vj+1(m,n),Dj+1(m,n):

其中:Aj保持了原圖像的低頻分量;Hj保持了原圖像的水平邊緣細節;Vj保持了原圖像的垂直邊緣細節;Dj保持了原圖像的斜邊緣細節。
2)在變換后得到的分解系數中計算局部極大值。
對圖像信息A0(m,n)進行2層尺度的小波變換,獲得小波系數V2(m,n),H2(m,n)和D2(m,n)。由上所述,H分量系數體現了原圖像的水平邊緣細節,V分量系數體現了原圖像的垂直邊緣細節。根據這2個分量可以計算其合成向量的模和幅角。計算公式:

幅角矩陣Arc表示向量方向與水平方向的夾角,代表的是圖像邊緣的法線方向。與該角度相垂直的表示圖像的梯度方向。所以將局部極大值點定義為沿著梯度方向具有局部拐點特性的點。
在矩陣Arc(m,n)中的元素是在區間[-π/2,π/2]上,而對于圖像中的一個像素來說,假定在其八鄰域內劃分0°,45°,90°,135°的方向。因此必須對Arc(m,n)中元素的角度值進行合并轉換。
a代表矩陣Arc(m,n)中某一元素值,
若a∈(3π/8,π/2]并且a∈[-π/2,-3π/8),認為a=0°;
若a∈(π/8,3π/8], 認為a=135°;
若a∈[-π/8,π/8), 認為a=90°;
若a∈[-3π/8,-π/8), 認為a=45°。
根據式(2)求出2層尺度上的模值圖像ABS和相應的方向圖像Arc。根據角度值合并準則,對Arc中各元素進行轉換,得到新的角度矩陣Arc′。如果ABS中某一點大于其八鄰域中(沿著Arc′中對應點所表示的方向)的相鄰兩點,則判定該點為候選局部極大值。為了克服對噪聲的敏感,對模值圖像ABS取閾值t1,僅對其模值大于t1的點進行進一步的判斷。這里選取閾值t1與尺度參數成反比,與ABS中最大值成正比:

在式(3)中s是尺度參數,取值1,2,3。c1是常數,這里取為0.1。max(ABS)代表模值圖像矩陣ABS中的最大值。
對于保留下來的點如果大于在角度方向上相鄰2個點,超過閾值t2才視為局部極大值點。這里選取t2=c2(t1-min(ABS))/s。 (4)
式(4)中c2是常數,取值為0.05;min(ABS)代表ABS矩陣中的最小值。
將水印信息重新調制隱藏在局部極大值中,局部極大值示例見圖4。

圖4 局部極大值示例Fig.4 Examples of wavelets transform module maximum
得到2層尺度下所有局部極大值后,記錄下這些局部極大值在矩陣中的位置,形成位置集合Z。在保持了原圖像的斜邊緣細節的變換系數D2中找到對應位置的變換系數,形成特征數列集合,記為{M(x,y),(x,y)∈Z}。
將簽名信息PrivateKeyDTS(SignDT)轉換為二進制序列(x1x2x3…xn),mi為特征數列集合M中的一個元素。對變換系數D2進行變換,規則是:若xi為1,交換m2i-1和m2i使得m2i-1大于m2i;若xi為0,交換m2i-1和m2i使得m2i-1小于m2i。
對小波系數進行逆變換,得到嵌入水印后的圖像簽章。
接收到電子合同后,對電子合同的完整性驗證流程具體如下。
1)從電子合同中分離出圖像簽章,對其進行2層小波變換。
2)利用小波系數V2(m,n)和H2(m,n),根據以上描述的算法計算其局部極大值。
3)掃描小波系數D2(m,n),提取水印信息。xi表示提取的水印數據位。

4)將二進制水印數據位串轉換為簽名信息PrivateKeyDTS′(SignDT)。使用時間戳服務器的公鑰(若沒有,則從認證機構CA中得到時間戳服務器的數字證書,獲得其公鑰PublicKeyDTS)對簽名信息進行解密,得到簽章用戶的簽名信息PrivateKeyA′(S(M))和時間戳 DateTime′。
5)驗證時間戳DateTime′是否在有效時間范圍內。若驗證無效,則提示該簽章無效。
6)利用簽章用戶A的公鑰PubilcKeyA對簽名信息PrivateKeyA′(S(M))進行解密,得到摘要信息S(M′)。
7)使用SHA算法對電子合同文本進行哈希計算,得到摘要S(M)。
8)將S(M′)和S(M)進行比較,若相等,則表明簽章驗證通過;若不相等則表明簽章驗證未通過,見圖5和圖6。

圖5 簽章驗證通過Fig.5 Signature validated

圖6 簽章驗證未通過Fig.6 Signature verification failed
相比于傳統的基于數字簽名的電子簽章系統,筆者將數字簽名技術、數字水印技術和時間戳技術相結合,實現的電子簽章系統在安全性上具有以下優點。
1)電子簽章能夠對電子合同文本的完整性進行檢查,保證合同文本的真實性、不可修改、不可偽造,一旦電子合同文本內容被篡改,電子簽章能夠給予提示。
2)簽名信息以水印的形式隱藏在簽章圖片中,具有很好的隱蔽性,對其進行刪除或篡改都十分困難,具有很好的安全性。
3)以水印形式存在的簽名信息能夠唯一的表明所有者的身份,具有不可抵賴性。
4)在簽名信息中加蓋時間戳,可以對簽名時間進行驗證,保證簽章時間在電子圖章的有效期范圍內,而且時間戳可以防止合同簽章的重復攻擊。
提出一種將數字簽名技術、數字水印技術和時間戳技術相結合的電子簽章實現方案。在簽章算法中設計了一個基于小波分解信號的局部極大值的數字水印嵌入算法,可以將簽名信息作為水印嵌入到簽章圖片中。與傳統的電子簽章方案相比,該方案進一步提高了電子簽章的安全性、隱蔽性和抗攻擊性。
[1]全國人民代表大會常務委員會.中華人民共和國電子簽名法[EB/OL].http://news.xinhuanet.com/zhengfu/2004-08/30/content_1924493.htm,2004-08-28.
[2]范志強,李 成,馬兆豐.基于CPK組合公鑰的電子簽章技術研究[J].信息安全與通信保密,2011(7):98-102.
[3]張 飛,肖 剛,程振波.基于時間戳服務的電子簽章驗證方法研究[J].浙江工業大學學報,2009,37(3):300-305.
[4]李 靜,湯光明,孫怡峰,等.一種基于數字水印和PKI的電子簽章系統[J].微計算機信息,2005,21(26):62-64.
[5]張沈斌,陳 浩.一種基于數字簽名與數字水印認證的電子簽章系統[J].蘇州大學學報,2011,27(2):23-28.
[6]關振勝.公共基礎設施PKI與認證機構CA[M].北京:電子工業出版社,2002.
Electronic signature algorithm based on digital signature and digital watermarking technology
HUANG Min1,ZHAO Yan1,WANG Hai-yao2
(1.College of Information Science and Engineering,Hebei University of Science and Technology,Shijiazhuang Hebei 050018,China;2.Department of Business Administration,Fujian Jiangxia University,Fuzhou Fujian 350108,China)
An electronic signature algorithm,using a combined technology of digital signature,digital watermarking and time stamp,is presented.In this algorithm time,stamp information is added to digital signature data for improving the signature safety and anti-offensive.A digital watermark embedding algorithm based on wavelets transform module maximum is designed.By using this algorithm the signature information can be embedded into the signature image as a watermark,thus enhancing the imperceptibility.The experiment shows that the algorithm can meet the requirements of contract signature in e-commerce transactions,implements the identity authentication,and ensures the integrity and non-tampering of the contract.
digital signature;digital watermarking;time stamp;electronic signature
TP317.4
A
1008-1534(2012)03-0149-06
2012-01-09
陳書欣
黃 敏(1979-),男,河北邯鄲人,講師,碩士,主要從事電子商務和網絡管理方面的研究。