蔡昭煒, 劉從軍,2, 劉 超
( 1 江蘇科技大學計算機學院, 江蘇 鎮江 212003; 2 江蘇科大匯峰科技有限公司, 江蘇 鎮江 212003;3 鎮江市不動產登記交易中心, 江蘇 鎮江 212003)
隨著電子政務的不斷發展及推廣,為響應國務院辦公廳《關于壓縮不動產登記辦理時間的通知》(國辦發〔2019〕8 號)[1]精神,以及進一步提升省市“放管服”改革、“3550”改革和營商環境優化工作,各地不動產登記交易服務依次展開業務升級。 其中不動產登記交易一窗受理平臺[2]的搭建,給不動產業務帶來更高的定位、更方便快捷的服務、更全面的服務融合、數據互聯共享[3]等多方面提升。 涉及到業務辦理中的文書簽署也被電子簽署所取代[4],不動產柜面業務辦理逐漸向線上或柜面無紙化辦理模式轉變。
電子簽署中所使用的公鑰密碼算法的密鑰對由公鑰和私鑰組成。 公鑰由私鑰進行不可逆計算得出,公鑰對外公開,私鑰需要秘密保存[5]。 協同簽名基于門限密碼學思想提出,是一種需要多方參與才能完成簽名、解密運算的數字簽名技術。 將簽名密鑰分割并存儲于不同存儲介質中[6],可以增加攻擊、破解密鑰的難度同時減少密鑰泄露的可能性。2017 年Yehuda Lindell[7]設計了一種快速安全的兩方ECDSA 簽名方案。 該方案運用Paillier 的同態加密特性,并用零知識證明了方案的安全性,方案具有較好的性能。 2020 年Yudi Zhang 等人[8]提出了一種可證明的、安全實用的兩方分布式SM2 簽名算法協議,針對發展迅速的物聯網移動端場景,能夠在不需要重建私鑰的情況下生成有效簽名。 2020 年馮琦等人[9]設計了一種輕量級的非平衡SM2 協同簽名方案,方案中服務器協同客戶端完成簽名,過程中不暴露密鑰信息。
在柜面簽署場景下,簽名人簽署行為的真實性、文書簽署行為所產生的簽名是否表明簽名人的真實意愿,是關注的重點。 隨著手工簽署文書方式向線上電子簽署方式的轉變,該問題也隨之轉變為對簽名者身份的核驗以及簽名所使用密鑰的安全保護[10]。 本文考慮上述存在的問題,提出一種用于不動產柜面簽署場景的不動產業務辦理柜面無紙化簽署系統,并基于系統設計一種基于SM2 的協同簽名方案,用于生成不動產文書簽名。 方案在流程中引入簽署人身份認證,使得簽名能夠表明簽名人真實簽名意愿,結合PBE 基于口令的密鑰算法思想,保護客戶端私鑰分量,并運用門限密碼學思想,將密鑰分散在客戶端服務器和協同服務器中分別保存,以提高簽名密鑰安全性。
SM2 數字簽名算法[11]由國家密碼管理局發布,是橢圓曲線公鑰密碼算法(SM)標準。 在SM2 數字簽名算法中,通常采用SM3 密碼雜湊算法[12]計算摘要。 具體簽名步驟如下:
(1)初始化:選定橢圓曲線參數(q,a,b,G,n)并輸出;
(2)簽名生成:選取私鑰d,計算P=[d]G,將P作為公鑰,由此得到密鑰對(P,d);
(3)簽名算法:設待簽名消息為M,簽名者A 生成消息簽名需進行如下運算。
①計算雜湊值
其中,IDA是長度為entlen Abit的可辨識標識;ENTLA是entlenA轉換而成的兩個字節;(xG,yG) 是基點G的坐標;(x,y) 是公鑰P的坐標。
②使用隨機數發生器產生k,滿足k∈[1,n-1];計算橢圓曲線點(x1,y1)=[k]G。
③計算r=(e+x1)modn。 如果r=0 或r+k=n,則返回上一步。
④利用私鑰dA和r計算
⑤輸出消息M的簽名(r,s)。
(4)驗證算法:驗證者收到簽名者的簽名(r,s)和明文M后,利用公鑰P進行如下驗證:
①計算e′=,其中=Z‖M′。
②計算t=(r′+s′)modn,其中(r′,s′) 即接收者B 接收到的簽名(r,s) 。 如果t=0,則直接返回驗證失敗。
③計算(x′,y′)=[s′]G+(r′+s′)P。
④計算R=(e+x′)modn
驗證R=r′ 是否成立,如果成立則返回驗證成功,反之驗證失敗。
PBE 是一種根據口令生成密鑰來加密的方法[13],在其生成密鑰過程中,會通過偽隨機數生成器生成一個被稱為“鹽”的隨機數,與口令一起進行密鑰計算,該方法可以有效防御字典攻擊,其密鑰生成過程如圖1 所示:

圖1 生成PBE 密鑰Fig. 1 PBE key generation process
系統硬件設計如圖2 所示。 整體系統可以分為兩部分,首先不動產業務辦理柜面簽署系統的業務模塊集成在不動產一窗受理平臺中,業務服務器與柜面工作PC 設備相連并置于內網之中,柜面工作人員可以在業務系統中受理業務,推送任務到不動產一窗受理平臺的各個子系統中。
不動產業務辦理柜面簽署系統的簽署模塊與業務服務器相連,由客戶端服務器、身份認證服務器、協同服務器相連構成子系統,同時客戶端服務器與不動產業務辦理柜面簽署設備連接。 客戶端服務器與協同服務器是實現數字簽名運算的重要組成部分,身份認證服務器提供了對用戶身份的核驗甄別服務。 本文基于這3 個服務器,設計了一種基于SM2 的協同簽名方案,將簽名密鑰分割,在未來對不動產業務升級遠程不見面簽署服務[14]時,可以實現服務器的復用。
不動產業務辦理柜面簽署系統的流程設計如圖3 所示。 可以根據上述硬件設計的劃分模式將整體流程劃分為兩部分。

圖3 系統流程Fig. 3 System process design
第一部分由用戶發起業務申請開始。 柜面工作人員在業務系統中根據用戶需要辦理的業務類型創建簽署任務,并登記必要信息,業務系統會提取業務信息創建待簽文書模板、生成用戶口令Pin。 業務系統最終將簽署任務及簽署必要數據推送至客戶端服務器中,等待用戶喚醒。
第二部分由用戶發起簽署開始。 用戶使用柜面簽署設備進行身份認證,身份認證成功后喚醒對應簽署任務,此時客戶端服務器將待簽文書展示于柜面簽署設備中,并派生客戶端私鑰分量與協同服務器進行協同密鑰運算,計算用戶密鑰對。 當用戶確認待簽文書無誤并手繪簽名提交后,客戶端服務器將與協同服務器協同運算,輸出對文書的數字簽名。客戶端服務器驗證簽名通過后,將輸出數據及手繪簽名圖樣合成至待簽文書中,得到已簽署文書并返回至業務服務器。
為實現不動產業務辦理柜面無紙化簽署系統中的不動產文書簽名服務功能,設計了一種基于SM2的協同簽名方案。
方案的參與者包括:客戶端U(用戶)、身份認證服務器IS、協同服務器CS。 其中,身份認證服務器存儲了代表IS 身份的公私鑰對(PIS,KIS) ,并通過安全信道將公鑰PIS發送至客戶端U 和協同服務器CS。 方案主要功能包括用戶身份驗證、協同密鑰生成、簽名生成。 方案實現步驟如下:
(1)客戶端將用戶面部識別及id 等數據發送到身份認證服務器(IS)進行身份認證。
(2)IS 向客戶端U 和協同服務器(CS)返回認證結果。
(3)客戶端U 使用用戶口令及身份認證信息派生私鑰分量。
(4)客戶端U 與CS 協同計算公鑰P。
(5)客戶端U 與CS 共同等待簽署的文書運算數字簽名σ。
用戶身份認證主要由客戶端和身份認證服務器協作完成。 具體流程如下:
(1)柜面業務系統根據用戶申報信息創建簽署任務、生成用戶口令Pin, 并推送至柜面簽署設備(客戶端U)中。 用戶使用客戶端,通過活體面部識別采集面部信息fu,使用PIS加密面部信息fu、簽名任務流水號idtask和用戶id,并向身份認證服務器IS發送認證請求Re qver(En cPIS(id,fu,idtask))。
(2)IS 收到認證申請后,使用私鑰KIS解密,將獲得的用戶id 和面部信息fu與公安公民身份信息庫進行比對,并生成比對結果fv。
IS 根據認證結果向客戶端U 和協同服務器CS反饋認證通知,若認證不通過,通知客戶端U 和協同服務器CS 終止簽署,若認證通過則會進行如下操作:
(1)IS 使用單項散列函數計算H(id‖idtask‖fv)。
(2)以H(id‖idtask‖fv) 為消息,使用私鑰KIS對其計算簽名Sig nIS(H(id‖idtask‖fv))。
(3)將H(id‖idtask‖fv)、SignIS(H(id‖idtask‖fv)) 發送給客戶端U 及協同服務器CS。
客戶端和協同服務器使用PIS驗證簽名SignIS(H(id‖idtask‖fv)),若驗證成功繼續簽署流程,否則終止簽署。
客戶端U 驗證SignIS(H(id‖idtask‖fv)) 成功,即用戶身份驗證成功后,需要完成簽名前的準備工作:選定SM2 橢圓曲線參數生成橢圓曲線; 計算自身的密鑰分量。 具體實現過程如下:
(1)選取橢圓曲線E,方程為y2=x3+ax+b,其中a,b∈Fq且滿足4a3+27b2≠0。 選擇E上階為n的基點G=(xG,yG),n為大于2 160 的素數;選取消息長度為v比特的Hash 函數Hv; 選取輸出為256 b 比特串的Hash 函數H256:{0,1} →ZG。
(2)將用戶口令Pin視為PBE 算法中的“鹽”,與SignIS(H(id‖idtask‖fv)) 共同作為參數輸入到密鑰派生算法中,生成一個符合SM2 密碼算法規則的密鑰字符串du。
協同密鑰由客戶端U 和協同服務器CS 共同生成,實現過程如下:
(1)客戶端U 使用密鑰字符串dU作為私鑰分量,并計算Pu=[du]G, 將Pu發送給協同服務器CS。
(2)協同服務器CS 接收到Pu后,生成隨機數dc,并計算P=[dc]PU-G,P作為公鑰公開。
如圖4 所示,用戶在客戶端U 查閱文書并手繪簽名后,將與協同服務器CS 進行簽名運算,生成數字簽名σ。 具體運算步驟如下:

圖4 簽名運算過程Fig. 4 Signature calculation process
(1)客戶端U 計算用戶雜湊值:Zu=H256(ENTLU‖I DU‖a‖b‖xG‖yG‖xp‖yp),置其中M為待簽名的文書。 計算e=Hv。
(2)客戶端使用隨機數發生器生成隨機數k1∈[1,n-1],計算變量Q1=[k1]G,將Q1、e發送給協同服務器CS。
(3)CS 使用隨機數發生器生成兩個隨機數k2、k3∈[1,n-1],計算變量Q2=k-12Q1和橢圓曲線點(x,y)=k3G+k3Q2。
(4)CS 計算r=(e+x)modn,使用r計算簽名分量和簽名分量后,將r、S1、S2發送到客戶端U。
(5)客戶端U 收到CS 發送的r、S1、S2后,計算簽名得到簽名σ=(r,S)。
(6)客戶端U 使用公鑰P=[dc]PU-G驗證簽名σ,如果驗證成功則輸出簽名σ=(r,S)
3.7.1 簽名生成的正確性
協同密鑰由P=[dc]PU-G生成,則有:
協同服務器CS 計算簽名分量為:
根據客戶端U 計算簽名S可得:
此時,可設簽名σ=(r,S) 是由私鑰d=du dc-1modn和隨機數k=k1k-12k3+k3modn生成的SM2簽名,滿足S=(1-d)-1(k-rd)modn。 因此,方案生成的簽名σ=(r,S) 是正確的。
3.7.2 簽名驗證的正確性
根據客戶端U 計算橢圓曲線點(x,y):
驗證者想要驗證簽名,需要使用收到的簽名σ=(r′,S′) 和公鑰P, 計算橢圓曲線點(x′,y′)=[S′]G+(r′+S′)P,則有:
如果簽名σ=(r,S) 正確,從上式可以得知x=x′,驗證者只需要通過計算R=(e+x′)modn和r是否相等來判斷簽名驗證是否成功。
為驗證方案,搭建了硬件環境進行實驗測試,硬件參數配置見表1。

表1 硬件參數Tab. 1 Hardware parameters
程序構建基于bcprov-jdk 加密解密庫,主要通過業務模擬的方式對系統進行功能測試,同時在測試中對采用的SM2 協同簽名方案進行耗時記錄,用于性能分析。
根據業務流程設計,簽署任務需要在創建階段采集必要的業務信息,其中包括業務類型、不動產登記信息、辦理人身份資料等。 合同文書簽署模板需要根據這些必要信息進行創建,并推送至客戶端服務器開始簽署。
簽署任務推送至客戶端服務器后,用戶使用柜面設備進行業務辦理,柜面設備簽署界面如圖5 所示,用戶確認簽署并手繪簽名后,系統進行簽名運算,生成簽名后客戶端服務器會對所生成簽名進行驗證。 若驗證通過,則合成并輸出如圖6 所示的已簽署文書。

圖5 柜面設備簽署界面Fig. 5 Counter equipment signing interface
圖7 反映了本文SM2 協同簽名方案各階段的性能表現。 在身份認證階段主要考慮身份認證服務器IS 生成服務器簽名SignIS(H(id‖idtask‖fv)) 的耗時,認證通知階段主要考慮客戶端U 和協同服務器CS 對SignIS(H(id‖idtask‖fv)) 的驗證耗時。

圖7 本文方案各階段運算耗時Fig. 7 Operation time consumed in each stage
圖8 展示在密鑰生成階段、簽名生成階段客戶端服務器與協同服務器的耗時情況,同時將兩者與原始SM2 數字簽名方案的性能表現進行對比。

圖8 密鑰、簽名生成性能對比Fig. 8 Comparison of key and signature generation performance
總體來看,本文方案在密鑰生成階段客戶端及協同服務器性能表現接近原始SM2 簽名方案,在具有更好性能的服務器架構中,協同服務器的簽名運算速度能夠進一步得到縮減。
將本文所提簽名方案與文獻[15]和文獻[9]中提出的SM2 協同簽名方案進行計算效率對比,結果見表2。 定義Exp 表示一次標量點乘運算或模冪運算,對于形如的多點乘法等同于一次點乘運算所需時間,加法運算所需計算量忽略不計。 文獻[9]方案中使用了零知識證明,但在半誠實模型下,通信雙方誠實計算可以省略零知識證明,故在對比時只考慮在半誠實模型下的計算效率。

表2 計算效率對比Tab. 2 Calculation efficiency comparison
通過對比分析,本文方案只需要2 輪通信,在密鑰生成階段通信雙方都只需要1Exp,總體優于文獻[9]和文獻[15]中所提方案。 在簽名生成階段中,客戶端服務器(參與方A)需要2Exp,優于文獻[15]方案,將更多的計算消耗放在硬件性能更好的協同服務器(參與方B)中,轉移了部分運算壓力。 由此可見,本文方案在計算效率上具有較好表現。
圖9 展現了不動產業務辦理柜面無紙化簽署系統與手工文書簽署的在不同業務數量下平均工作效率對比結果。

圖9 業務辦理效率對比Fig. 9 Comparison of business handling efficiency
在實際調研中發現,不動產柜面業務辦理手工文書簽署方式在材料、文書的核實、打印、整理、收納上耗費大量的時間和溝通成本,導致柜面工作效率無法提高。 不動產業務辦理柜面無紙化簽署系統在實際使用在文書處理、保存上具有顯著優勢,不但縮短了業務辦理時長,提高了柜面工作效率,同時也實現對合同文書的電子化歸檔和整合,規避了紙質文書歸檔保存時可能出現管理不善的風險。 因此,本方案在柜面無紙化簽署場景下具有良好的應用效果。
針對不動產柜面業務辦理手工文書簽署向柜面無紙化簽署轉變而帶來的簽名人身份認證和密鑰安全問題,本文方案提出了一種不動產業務辦理柜面無紙化系統,在系統設計中考慮了后續不動產業務升級優化預留了兼容空間,并根據系統設計了一種基于SM2 的協同簽名方法,在方案流程融入了身份認證服務,采用門限密碼學思想將簽名所需要的密鑰分割在客戶端及協同服務器中,提高了密鑰存儲的安全性。 此外,方案結合PBE 基于口令密鑰算法的思想,提升了客戶端私鑰分量的安全性,在實際場景中具有良好的應用效果。
由于不動產登記交易業務的特殊性,未來研究方向是將電子公證技術與系統進行融合升級,提升電子文書法律效力,減少辦理人業務辦理成本。