張永強(qiáng), 劉佳南, 田海博
(1. 數(shù)安時(shí)代科技股份有限公司, 廣東 廣州 510000;2. 中山大學(xué) 數(shù)據(jù)科學(xué)與計(jì)算機(jī)學(xué)院, 廣東 廣州 510006)
滿足便攜文檔格式的公平多方合同簽署協(xié)議
張永強(qiáng)1, 劉佳南2, 田海博2
(1. 數(shù)安時(shí)代科技股份有限公司, 廣東 廣州 510000;2. 中山大學(xué) 數(shù)據(jù)科學(xué)與計(jì)算機(jī)學(xué)院, 廣東 廣州 510006)
當(dāng)前,便攜文檔格式中的多個(gè)數(shù)字簽名與公平多方合同簽署協(xié)議所交換的多個(gè)數(shù)字簽名存在簽署內(nèi)容不一致的問題.文中嘗試解決這一實(shí)際問題,構(gòu)造以便攜文檔格式文件為載體的公平多方合同簽署協(xié)議.采用了分布式的哈希計(jì)算方法,使得多個(gè)參與方可以在隱藏各自秘密的情況下,完成對(duì)一個(gè)共同消息的哈希;并采用傳統(tǒng)的可驗(yàn)證加密簽名技術(shù),保障公平性,減少交互次數(shù).最終獲得了每次合同簽署只需要與可信第三方交互一次的公平多方合同簽署協(xié)議,并給出了該協(xié)議實(shí)際的性能參數(shù).根據(jù)文中的結(jié)果,可以在實(shí)際應(yīng)用中以便攜文檔格式文件為載體,多個(gè)參與方公平地簽署一份文檔,并通過普通的便攜文檔格式閱讀器完成驗(yàn)證.
多方合同簽署協(xié)議;便攜文檔格式;實(shí)際應(yīng)用;公平性;數(shù)字簽名
文獻(xiàn)管理的國(guó)家標(biāo)準(zhǔn)《長(zhǎng)期保存的電子文檔文件格式》,明確了文獻(xiàn)管理中需要長(zhǎng)期保存的電子文檔文件格式包括便攜文檔格式(Portable Document Format,PDF)1.4和1.7.通過文獻(xiàn)[1-2]可知,PDF文檔中所附加的數(shù)字簽名在簽署時(shí)需要包含當(dāng)前的所有文檔內(nèi)容.以3個(gè)簽名人在一份PDF文檔中依次附加數(shù)字簽名為例: 第2個(gè)簽名人在第1個(gè)簽名人簽署文檔之后可以修改文檔,并對(duì)修改的內(nèi)容和包括第1個(gè)簽名人的數(shù)字簽名在內(nèi)的內(nèi)容進(jìn)行簽署.類似地,第3個(gè)簽名人的數(shù)字簽名包括前兩位簽名人的數(shù)字簽名.所以,PDF文檔的多個(gè)數(shù)字簽名所簽署的內(nèi)容各不相同.
公平性是許多領(lǐng)域中協(xié)議設(shè)計(jì)的一個(gè)基本要求[3-4].公平的合同簽署協(xié)議(Fair Contract Signing Protocol, FCSP)是從19世紀(jì)80年代開始設(shè)計(jì)的協(xié)議.該協(xié)議與公平認(rèn)證的郵件協(xié)議都?xì)w入公平交換協(xié)議這一門類中.按照對(duì)可信第三方(Trusted Third Party, TTP)的依賴程度,分3個(gè)子類對(duì)一些主要的協(xié)議進(jìn)行簡(jiǎn)短的綜述:
(1) 無TTP的協(xié)議.文獻(xiàn)[5]基于Rabin加密體制給出了交換Rivest-Shamir-Adleman(RSA)加密體制秘密因子的協(xié)議.合同簽署的參與人首先在合同中聲明“知道RSA加密體制秘密因子的才算有效合同”,之后公平地交換RSA加密體制秘密因子,以達(dá)到公平合同簽署的目的.文獻(xiàn)[6-7]也給出了一些類似的無TTP的FCSP.
(2) 基于在線TTP的協(xié)議.文獻(xiàn)[8]的FCSP需要第三方來保證每一次交換的公平性.文獻(xiàn)[9]給出了一個(gè)基于所謂脆弱承諾方案的無濫用FCSP,要求準(zhǔn)備簽署合同的雙方把合同交給第三方備案,需要在線TTP的支持.文獻(xiàn)[10]給出了一個(gè)基于時(shí)間服務(wù)器的FCSP,其中的時(shí)間服務(wù)器扮演了在線TTP的角色.
(3) 可脫線TTP的協(xié)議.此類協(xié)議被稱為最優(yōu)的FCSP.文獻(xiàn)[11]給出了一個(gè)FCSP,該協(xié)議中一份合同包括合同文本和一系列的隨機(jī)數(shù)及其數(shù)字簽名.簽署合同的雙方交換這些數(shù)字簽名.如果交換過程中一方過早終止,則要求第三方給予仲裁.文獻(xiàn)[12]中給出了基于可驗(yàn)證加密思想的FCSP,實(shí)現(xiàn)上使用了“分割-選擇”協(xié)議.文獻(xiàn)[13]給出了一個(gè)把普通簽名和不可否認(rèn)簽名及其非交互證明作為最終數(shù)字簽名的公平交換協(xié)議.文獻(xiàn)[14]使用多方簽名的技術(shù)構(gòu)造FCSP.
上述分類中的協(xié)議大多是兩方的交換協(xié)議,人們考慮到公平多方合同簽署的需求,也提出了一些多方的協(xié)議.例如,文獻(xiàn)[15]給出了一個(gè)使用可驗(yàn)證加密簽名(Verifiable Encrypted Signature, VES)的多方公平交換協(xié)議,文獻(xiàn)[16]給出了一個(gè)同步網(wǎng)絡(luò)中廣播信道下公平多方合同簽署協(xié)議(Fair Multi-party Contract Signing Protocol, FMCSP),文獻(xiàn)[17]給出了一個(gè)異步網(wǎng)絡(luò)通信模式下的FMCSP,文獻(xiàn)[18]給出了一個(gè)適用于各種拓?fù)浣Y(jié)構(gòu)的FMCSP,文獻(xiàn)[19]把環(huán)簽名和普通簽名結(jié)合起來提供FMCSP.
總之,公平合同簽署協(xié)議已經(jīng)存在了比較多的技術(shù)路線和比較成熟的解決方案.不管是雙方的協(xié)議還是多方的協(xié)議,都有一些理論上很漂亮的結(jié)果.然而,上述列舉的所有協(xié)議都要求交換的數(shù)字簽名是關(guān)于同一份PDF文檔的,即每個(gè)數(shù)字簽名所簽署的PDF文檔的內(nèi)容完全相同.這就使得當(dāng)前的理論結(jié)果與基于PDF文檔公平簽署合同的實(shí)際應(yīng)用之間存在了差距.
文中采用分布式計(jì)算哈希函數(shù)的方法和傳統(tǒng)的可驗(yàn)證加密簽名體制,給出實(shí)際中可使用的FMCSP,并給出了協(xié)議的性能參數(shù).
VES體制由文獻(xiàn)[20]在2003年提出.一個(gè)VES體制包含3個(gè)參與實(shí)體,設(shè)為簽名方、驗(yàn)證方和TTP,包含7個(gè)算法如下:
(1) (pk,sk)←KeyGen(n): 簽名方輸入安全參數(shù)n,輸出驗(yàn)證公鑰pk和私鑰sk.
(2) (pkT,skT)←TTPKeyGen(nT): TTP輸入安全參數(shù)nT,輸出TTP公鑰pkT和私鑰skT.
(3)δ←Sign(sk,m): 簽名方輸入消息m和私鑰sk,輸出簽名δ.
(4) {T,F(xiàn)}←Ver(pk,m,δ): 驗(yàn)證方輸入消息m、簽名方的公鑰pk和數(shù)字簽名δ,輸出真假值.
(5)δVES←VESSign(sk,m,pkT): 簽名方輸入消息m、私鑰sk和TTP公鑰pkT,輸出VES值δVES.
(6) {T,F(xiàn)}←VESVer(pk,pkT,m,δVES): 驗(yàn)證方輸入消息m、簽名方的公鑰pk、TTP公鑰pkT和VES 值δVES,輸出真假值.
(7)δ←Adj(skT,δVES): TTP輸入私鑰skT和VES值δVES,輸出普通簽名δ.
在諸多的VES體制中,文獻(xiàn)[21]中的體制可以把一個(gè)VES值恢復(fù)為普通的RSA數(shù)字簽名,使得一個(gè)符合規(guī)范的PDF閱讀器能夠不借助額外的插件完成驗(yàn)證,具有獨(dú)特的意義.當(dāng)然,該體制的代價(jià)在于,注冊(cè)時(shí)TTP需要為每一個(gè)簽名方保留一個(gè)秘密值.
FMCSP通常假設(shè)k個(gè)參與人P1,…,Pk和一個(gè)可信第三方TTP.參與人可能是拜占庭式的,這樣不誠(chéng)實(shí)的參與人最多可以有k-1 個(gè).所有參與人和TTP有公鑰證書.
假設(shè)合同文本中按照P1,…,Pk的順序包含所有參與人的身份信息,參與人也按照這樣的順序依次簽名.參與人之間的通信由攻擊者控制.攻擊者可以任意修改、中斷、延遲參與人之間的通信,但是只能延遲參與人和TTP的通信,延遲有上限,假設(shè)為TDMAX.
文中定義基于PDF的FMCSP安全目標(biāo)如下:
(1) 如果參與人Pi(2≤i≤k)獲得了包含簽名人Pj(1≤j
(2) 所有參與人都可以在有限時(shí)間內(nèi)結(jié)束協(xié)議的運(yùn)行.
(3) 協(xié)議結(jié)束后,要么所有參與人都得到了包含所有參與人順序簽名的一份PDF文檔,要么所有參與人都沒有得到這樣的文檔.
這里的哈希函數(shù)是迭代哈希函數(shù),符合消息摘要(Message Digest,MD)的基本結(jié)構(gòu),例如安全哈希算法(Secure Hash Algorithm,SHA)系列.迭代哈希函數(shù)的一個(gè)特點(diǎn)是當(dāng)壓縮函數(shù)碰撞穩(wěn)固時(shí),該迭代哈希函數(shù)可證明的碰撞穩(wěn)固.在工程實(shí)踐中,單機(jī)計(jì)算哈希函數(shù)時(shí),通常可以分為3個(gè)步驟:初始化步驟Hi、系列的更新步驟Hu和最后的結(jié)束步驟Hf.這3個(gè)步驟共用一個(gè)狀態(tài)量Hctx.在Hi階段,Hctx為具體SHA算法規(guī)定的初始值.隨著每次Hu更新,Hctx包含了當(dāng)前的狀態(tài)值St和小于一個(gè)哈希函數(shù)分組長(zhǎng)度的剩余輸入內(nèi)容.在Hf階段,對(duì)Hctx中的剩余輸入內(nèi)容填充,達(dá)到哈希函數(shù)分組長(zhǎng)度后進(jìn)行最后一次壓縮函數(shù)的計(jì)算,輸出哈希值.
該協(xié)議具有以下性質(zhì):
考慮k個(gè)參與人中的3個(gè)P1、Pi和Pk,分別代表第1個(gè)簽署PDF文檔的參與人、中間簽署PDF文檔的任意參與人和最后一個(gè)簽署PDF文檔的參與人.所有參與人的公私鑰用(pkPj,skPj)表示 (1≤j≤k),TTP的公私鑰表示為(pkT,skT).PDF文檔中合同的原始文本用mo表示,每個(gè)參與人自己修改的部分用mPj表示,按照PDF規(guī)范每次簽名前所增加的描述信息表示為mdj.假設(shè)mPj可以為空,那么參與人Pj所簽署的內(nèi)容為
mo‖mP1‖δP1‖md1‖…‖mPj‖mdj.
(3)Pk與Pi的計(jì)算過程相同,惟一的不同在于Pk需要執(zhí)行Hi,執(zhí)行Hu更新mo,得到狀態(tài)量Hctxmo,并發(fā)送消息簽名對(duì)(m1,δm1,…,mk,δmk)與Hctxmo給TTP.發(fā)送Hctxmo的目的是向TTP隱藏合同文本,同時(shí)允許TTP完成驗(yàn)證.
(5)P1發(fā)送δP1給P2.Pi驗(yàn)證δP1,…,δPi-1,驗(yàn)證通過后發(fā)送δP1,…,δPi給Pi+1;否則,要求仲裁.Pk驗(yàn)證δP1,…,δPk-1,驗(yàn)證通過后,合成最終合同,并返回最終合同給Pk-1;否則,要求仲裁.Pi驗(yàn)證來自Pi+1最終合同,驗(yàn)證通過后轉(zhuǎn)發(fā)給Pi-1;否則,要求仲裁.P1驗(yàn)證最終合同,驗(yàn)證出錯(cuò)要求仲裁.
上述協(xié)議中的參與人任何時(shí)刻都可以要求仲裁,仲裁協(xié)議如下: 參與人Pj向TTP提交合同文本Hctxmo的狀態(tài)量,請(qǐng)求仲裁; TTP檢查數(shù)據(jù)庫中的條目,如果確實(shí)存在Hctxmo,就從該記錄的各個(gè)VES簽名中恢復(fù)普通簽名,聯(lián)系所有參與人(無論該參與人是否已經(jīng)退出協(xié)議),向所有參與人發(fā)送普通簽名; 否則,TTP不進(jìn)行任何操作.
特別地,TTP可以設(shè)定一個(gè)合同簽訂的最長(zhǎng)期限,例如1個(gè)月,并在數(shù)據(jù)庫中保存該合同對(duì)應(yīng)的通信腳本.當(dāng)超過期限時(shí),自動(dòng)刪除腳本,避免數(shù)據(jù)庫無限增長(zhǎng).所有參與人也可以設(shè)定一個(gè)超時(shí)上限TOMAX,確保協(xié)議可以退出.
另外,當(dāng)允許廣播信道時(shí),每個(gè)參與實(shí)體只需要廣播1次消息,等待TTP的信號(hào),然后各自再?gòu)V播1次自己的真實(shí)簽名值,就可以合成最終的合同文本,效率可以進(jìn)一步的提升.
最后,該協(xié)議可以達(dá)到設(shè)定的安全目標(biāo):
(1) 所有參與人在TTP確認(rèn)之后才會(huì)發(fā)出真實(shí)簽名,而TTP確認(rèn)意味著TTP可以恢復(fù)所有的簽名,因此任意參與人如果在發(fā)出簽名后收不到PDF文檔,可以向TTP要求仲裁,獲得包含后續(xù)簽名人的簽名,滿足目標(biāo)(1).
(2) 如果參與人在到達(dá)TOMAX之前,收到后續(xù)簽名人返回的PDF文檔,退出協(xié)議; 參與人在到達(dá)超時(shí)上限TOMAX之后,也可以退出協(xié)議,如果TTP一直沒有確認(rèn),那么協(xié)議就確實(shí)終止了,如果TTP確認(rèn)了,而參與人已經(jīng)退出,TTP的指示信號(hào)會(huì)使得參與人重新加入?yún)f(xié)議執(zhí)行過程; 如果TTP確認(rèn)了,參與人在TOMAX- 2TDMAX時(shí)限內(nèi)沒有收到簽名,參與人要求仲裁,從TTP處獲得所有簽名,然后退出協(xié)議,滿足目標(biāo)(2).
(3) 協(xié)議結(jié)束后,要么TTP從未確認(rèn),任何人都沒得到含所有簽名人的PDF文檔; 要么TTP已經(jīng)確認(rèn),所有人都完成了協(xié)議,獲得了全部簽名;要么TTP已經(jīng)確認(rèn),有一方要求了仲裁,TTP聯(lián)系所有人,確保所有人獲得了全部簽名,滿足目標(biāo)(3).
圖1 兩方公平合同簽署時(shí)各方完成分布式簽名所需時(shí)間
在Java運(yùn)行環(huán)境1.8下,使用Bouncy Castle的bcprov-exe-jdk15-1.46庫文件和iText軟件的itextpdf-5.1.3庫文件進(jìn)行了仿真.具體的哈希函數(shù)采用了SHA-1版本,使用了Security Innovation公司的NTRU源代碼庫中提供的Java版本的SHA-1,重新編寫了獲取和設(shè)置狀態(tài)的函數(shù),其中狀態(tài)獲取函數(shù)保存了 64 B 的緩存區(qū)內(nèi)容,20 B 的SHA狀態(tài)量,4 B 的已處理數(shù)據(jù)的長(zhǎng)度,4 B 的緩存區(qū)偏移量,計(jì) 92 B.具體的PDF簽名過程與協(xié)議規(guī)范相同.
在單機(jī)上模擬了兩方的公平合同簽署過程中分布式簽名步驟,甲乙雙方完成分布式簽名所需時(shí)間如圖1所示.由甲方使用PdfTexify生成了僅包含若干字符的1個(gè)PDF文檔大小約 16 KB.甲方首先簽署文檔,在Intel公司的i5-5200U 雙核CPU,4 GB 內(nèi)存的平臺(tái)上,生成帶有 1 024 B RSA數(shù)字簽名的PDF文檔所需時(shí)間平均約 231 ms,大小約 140 KB.之后甲方計(jì)算該文檔的狀態(tài)量,約需 24 ms,大小為 92 B.乙方在甲方狀態(tài)量之上簽署第2個(gè)數(shù)字簽名,所需時(shí)間約 207 ms,所形成的帶有兩個(gè)數(shù)字簽名的PDF文檔大小約 267 KB.
文中給出了基于PDF文件和在線TTP的公平多方合同簽署協(xié)議,并對(duì)分布式簽名進(jìn)行了仿真.
參考文獻(xiàn):
[1] ADOBE. Digital Signatures in a PDF[R/OL].[2016-12-20]. http://www.adobe.com/devnet-docs/acrobatetk/tools/DigSig/AcrobatDigitalSignaturesinPDF.pdf.
[2] ISO. Document Management-portable Document Format-part 1: Pdf 1.7: BS ISO 32000-1-2008[S/OL].[2016-12-20]. http://www.doc88.com/p-8176141686190.html.
[3] 陳俊杰, 周暉, 張小美. 一種公平性的智能電視系統(tǒng)資源分配算法[J]. 西安電子科技大學(xué)學(xué)報(bào), 2016, 43(5): 139-146.
CHEN Junjie, ZHOU Hui, ZHANG Xiaomei. Fair Resource Allocation Algorithm for the Smart TV System[J]. Journal of Xidian University, 2016, 43(5): 139-146.
[4] 潘志鵬, 吳斌, 葉甜香. 多速率WLAN網(wǎng)絡(luò)的時(shí)間公平調(diào)度算法[J]. 西安電子科技大學(xué)學(xué)報(bào), 2016, 43(4): 128-134.
PAN Zhipeng, WU Bin, YE Tianxiang. Airtime Fairness Scheduling Algorithm for Multi-rate WLANs[J]. Journal of Xidian University, 2016, 43(4):128-134.
[5] BLUM M. How to Exchange (Secret) Keys[C]//Proceedings of the Annual ACM Symposium on Theory of Computing. New York: ACM, 1983: 440-447.
[6] EVEN S, ISRAEL T H. A Protocol for Signing Contracts[J]. ACM SIGACT News, 1983, 15(1): 34-39.
[7] GOLDREICH O. A Simple Protocol for Signing Contracts[C]//Advances in Cryptology. New York: Springer, 1984: 34-39.
[8] FRANKLIN M K, REITER M K. Fair Exchange with a Semi-trusted Third Party[C]//Proceedings of the ACM Conference on Computer and Communications Security. New York: ACM, 1997: 1-5.
[9] AL-SAGGAF A A, GHOUTI L. Efficient Abuse-free Fair Contract-signing Protocol Based on an Ordinary Crisp Commitment Scheme[J]. IET Information Security, 2015, 9(1): 50-58.
[10] WAN Z, DENG R H, LEE D. Electronic Contract Signing without Using Trusted Third Party[C]//Lecture Notes in Computer Science: 9408. Heidelberg: Springer Verlag, 2015: 386-394.
[11] BEN-OR M, GOLDREICH O, MICALI S, et al. Fair Protocol for Signing Contracts[J]. IEEE Transactions on Information Theory, 1990, 36(1): 40-46.
[12] ASOKAN N, SHOUP V, WAIDNER M. Optimistic Fair Exchange of Digital Signatures[J]. IEEE Journal on Selected Areas in Communications, 2000, 18(4): 593-610.
[13] HUANG X, MU Y, SUSILO W, et al. Preserving Transparency and Accountability in Optimistic Fair Exchange of Digital Signatures[J]. IEEE Transactions on Information Forensics and Security, 2011, 6(2): 498-512.
[14] WANG G. An Abuse-free Fair Contract-signing Protocol Based on the RSA Signature[J]. IEEE Transactions on Information Forensics and Security, 2010, 5(1): 158-168.
[15] BAO F, DENG R, NGUYEN K Q, et al. Multi-party Fair Exchange with an Off-line Trusted Neutral Party[C]//Proceedings of the 10th International Workshop on Database and Expert Systems Applications. Piscataway: IEEE, 1999: 858-862.
[16] BAUM-WAIDNER B, SCHUNTER M, WAIDNER M. Optimistic Synchronous Multi-party Contract Signing[C]//International Colloquium on Automata, Languages and Programming. Heidelberg: Springer Verlag, 1998: 898-911.
[17] BAUM-WAIDNER B, WAIDNER M. Optimistic Asynchronous Multi-party Contract Signing: RZ3078[R]. New York: IBM Research Division, 1998.
[18] KILIN? H, KüP?ü A. Optimally Efficient Multi-party Fair Exchange and Fair Secure Multi-party Computation[C]//Lecture Notes in Computer Science: 9048. Heidelberg: Springer Verlag, 2015: 330-349.
[19] HUANG Q, YANG G, WONG D S, et al. Efficient Optimistic Fair Exchange Secure in the Multi-user Setting and Chosen-key Model without Random Oracles[C]//Lecture Notes in Computer Science: 4964. Heidelberg: Springer Verlag, 2008: 106-120.
[20] BONEH D, GENTRY C, LYNN B, et al. Aggregate and Verifiably Encrypted Signatures from Bilinear Maps[C]//Lecture Notes in Computer Science: 2656. Heidelberg: Springer Verlag, 2003: 416-432.
[21] ATENIESE G. Verifiable Encryption of Digital Signatures and Applications[J]. ACM Transactions on Information and System Security, 2004, 7(1): 1-20.
Fairmulti-partycontractsigningprotocolsatisfyingtheportabledocumentformat
ZHANGYongqiang1,LIUJia’nan2,TIANHaibo2
(1. Global Digital Cybersecurity Authority Co., Ltd., Guangzhou 510000, China; 2.School of Data and Computer Science, Sun Yat-sen Univ., Guangzhou 510006, China)
Currently, there is an inconsistent problem about the content to be signed by multiple signatures that are exchanged in a fair multi-party contract signing protocol (FMCSP) and by those following the portable document format(PDF). This paper tries to solve the practical problem by constructing an FMCSP based on PDF files. It proposes a distributed method to compute hash values so that multiple parties could compute a hash value of a common message while they hide their secrets in the message respectively. It adopts the traditional verifiable encrypted signature technology to guarantee the fairness and reduce the interaction rounds. Finally, it obtains an FMCSP where only one interaction is needed to sign a contract, and gives practical performance parameters. According to the work, one could use a PDF file to fairly sign a document among multiple parties in practical applications, and the final signed PDF file could be verified by a common PDF reader.
multi-party contract signing protocol; portable document format; practical applications; fairness; digital signatures
2017-01-22
時(shí)間:2017-06-29
廣東省自然科學(xué)基金資助項(xiàng)目(2015A030313133)
張永強(qiáng)(1977-),男,高級(jí)工程師,博士,E-mail: zhangyq@gdca.com.cn.
田海博(1979-),男,副教授,博士,E-mail:tianhb@mail.sysu.edu.cn.
http://kns.cnki.net/kcms/detail/61.1076.TN.20170629.1735.042.html
10.3969/j.issn.1001-2400.2018.01.021
TP311
A
1001-2400(2018)01-0117-06
(編輯: 齊淑娟)