張永強, 劉佳南, 田海博
(1. 數(shù)安時代科技股份有限公司, 廣東 廣州 510000;2. 中山大學 數(shù)據(jù)科學與計算機學院, 廣東 廣州 510006)
滿足便攜文檔格式的公平多方合同簽署協(xié)議
張永強1, 劉佳南2, 田海博2
(1. 數(shù)安時代科技股份有限公司, 廣東 廣州 510000;2. 中山大學 數(shù)據(jù)科學與計算機學院, 廣東 廣州 510006)
當前,便攜文檔格式中的多個數(shù)字簽名與公平多方合同簽署協(xié)議所交換的多個數(shù)字簽名存在簽署內容不一致的問題.文中嘗試解決這一實際問題,構造以便攜文檔格式文件為載體的公平多方合同簽署協(xié)議.采用了分布式的哈希計算方法,使得多個參與方可以在隱藏各自秘密的情況下,完成對一個共同消息的哈希;并采用傳統(tǒng)的可驗證加密簽名技術,保障公平性,減少交互次數(shù).最終獲得了每次合同簽署只需要與可信第三方交互一次的公平多方合同簽署協(xié)議,并給出了該協(xié)議實際的性能參數(shù).根據(jù)文中的結果,可以在實際應用中以便攜文檔格式文件為載體,多個參與方公平地簽署一份文檔,并通過普通的便攜文檔格式閱讀器完成驗證.
多方合同簽署協(xié)議;便攜文檔格式;實際應用;公平性;數(shù)字簽名
文獻管理的國家標準《長期保存的電子文檔文件格式》,明確了文獻管理中需要長期保存的電子文檔文件格式包括便攜文檔格式(Portable Document Format,PDF)1.4和1.7.通過文獻[1-2]可知,PDF文檔中所附加的數(shù)字簽名在簽署時需要包含當前的所有文檔內容.以3個簽名人在一份PDF文檔中依次附加數(shù)字簽名為例: 第2個簽名人在第1個簽名人簽署文檔之后可以修改文檔,并對修改的內容和包括第1個簽名人的數(shù)字簽名在內的內容進行簽署.類似地,第3個簽名人的數(shù)字簽名包括前兩位簽名人的數(shù)字簽名.所以,PDF文檔的多個數(shù)字簽名所簽署的內容各不相同.
公平性是許多領域中協(xié)議設計的一個基本要求[3-4].公平的合同簽署協(xié)議(Fair Contract Signing Protocol, FCSP)是從19世紀80年代開始設計的協(xié)議.該協(xié)議與公平認證的郵件協(xié)議都歸入公平交換協(xié)議這一門類中.按照對可信第三方(Trusted Third Party, TTP)的依賴程度,分3個子類對一些主要的協(xié)議進行簡短的綜述:
(1) 無TTP的協(xié)議.文獻[5]基于Rabin加密體制給出了交換Rivest-Shamir-Adleman(RSA)加密體制秘密因子的協(xié)議.合同簽署的參與人首先在合同中聲明“知道RSA加密體制秘密因子的才算有效合同”,之后公平地交換RSA加密體制秘密因子,以達到公平合同簽署的目的.文獻[6-7]也給出了一些類似的無TTP的FCSP.
(2) 基于在線TTP的協(xié)議.文獻[8]的FCSP需要第三方來保證每一次交換的公平性.文獻[9]給出了一個基于所謂脆弱承諾方案的無濫用FCSP,要求準備簽署合同的雙方把合同交給第三方備案,需要在線TTP的支持.文獻[10]給出了一個基于時間服務器的FCSP,其中的時間服務器扮演了在線TTP的角色.
(3) 可脫線TTP的協(xié)議.此類協(xié)議被稱為最優(yōu)的FCSP.文獻[11]給出了一個FCSP,該協(xié)議中一份合同包括合同文本和一系列的隨機數(shù)及其數(shù)字簽名.簽署合同的雙方交換這些數(shù)字簽名.如果交換過程中一方過早終止,則要求第三方給予仲裁.文獻[12]中給出了基于可驗證加密思想的FCSP,實現(xiàn)上使用了“分割-選擇”協(xié)議.文獻[13]給出了一個把普通簽名和不可否認簽名及其非交互證明作為最終數(shù)字簽名的公平交換協(xié)議.文獻[14]使用多方簽名的技術構造FCSP.
上述分類中的協(xié)議大多是兩方的交換協(xié)議,人們考慮到公平多方合同簽署的需求,也提出了一些多方的協(xié)議.例如,文獻[15]給出了一個使用可驗證加密簽名(Verifiable Encrypted Signature, VES)的多方公平交換協(xié)議,文獻[16]給出了一個同步網(wǎng)絡中廣播信道下公平多方合同簽署協(xié)議(Fair Multi-party Contract Signing Protocol, FMCSP),文獻[17]給出了一個異步網(wǎng)絡通信模式下的FMCSP,文獻[18]給出了一個適用于各種拓撲結構的FMCSP,文獻[19]把環(huán)簽名和普通簽名結合起來提供FMCSP.
總之,公平合同簽署協(xié)議已經(jīng)存在了比較多的技術路線和比較成熟的解決方案.不管是雙方的協(xié)議還是多方的協(xié)議,都有一些理論上很漂亮的結果.然而,上述列舉的所有協(xié)議都要求交換的數(shù)字簽名是關于同一份PDF文檔的,即每個數(shù)字簽名所簽署的PDF文檔的內容完全相同.這就使得當前的理論結果與基于PDF文檔公平簽署合同的實際應用之間存在了差距.
文中采用分布式計算哈希函數(shù)的方法和傳統(tǒng)的可驗證加密簽名體制,給出實際中可使用的FMCSP,并給出了協(xié)議的性能參數(shù).
VES體制由文獻[20]在2003年提出.一個VES體制包含3個參與實體,設為簽名方、驗證方和TTP,包含7個算法如下:
(1) (pk,sk)←KeyGen(n): 簽名方輸入安全參數(shù)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,δ): 驗證方輸入消息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): 驗證方輸入消息m、簽名方的公鑰pk、TTP公鑰pkT和VES 值δVES,輸出真假值.
(7)δ←Adj(skT,δVES): TTP輸入私鑰skT和VES值δVES,輸出普通簽名δ.
在諸多的VES體制中,文獻[21]中的體制可以把一個VES值恢復為普通的RSA數(shù)字簽名,使得一個符合規(guī)范的PDF閱讀器能夠不借助額外的插件完成驗證,具有獨特的意義.當然,該體制的代價在于,注冊時TTP需要為每一個簽名方保留一個秘密值.
FMCSP通常假設k個參與人P1,…,Pk和一個可信第三方TTP.參與人可能是拜占庭式的,這樣不誠實的參與人最多可以有k-1 個.所有參與人和TTP有公鑰證書.
假設合同文本中按照P1,…,Pk的順序包含所有參與人的身份信息,參與人也按照這樣的順序依次簽名.參與人之間的通信由攻擊者控制.攻擊者可以任意修改、中斷、延遲參與人之間的通信,但是只能延遲參與人和TTP的通信,延遲有上限,假設為TDMAX.
文中定義基于PDF的FMCSP安全目標如下:
(1) 如果參與人Pi(2≤i≤k)獲得了包含簽名人Pj(1≤j
(2) 所有參與人都可以在有限時間內結束協(xié)議的運行.
(3) 協(xié)議結束后,要么所有參與人都得到了包含所有參與人順序簽名的一份PDF文檔,要么所有參與人都沒有得到這樣的文檔.
這里的哈希函數(shù)是迭代哈希函數(shù),符合消息摘要(Message Digest,MD)的基本結構,例如安全哈希算法(Secure Hash Algorithm,SHA)系列.迭代哈希函數(shù)的一個特點是當壓縮函數(shù)碰撞穩(wěn)固時,該迭代哈希函數(shù)可證明的碰撞穩(wěn)固.在工程實踐中,單機計算哈希函數(shù)時,通??梢苑譃?個步驟:初始化步驟Hi、系列的更新步驟Hu和最后的結束步驟Hf.這3個步驟共用一個狀態(tài)量Hctx.在Hi階段,Hctx為具體SHA算法規(guī)定的初始值.隨著每次Hu更新,Hctx包含了當前的狀態(tài)值St和小于一個哈希函數(shù)分組長度的剩余輸入內容.在Hf階段,對Hctx中的剩余輸入內容填充,達到哈希函數(shù)分組長度后進行最后一次壓縮函數(shù)的計算,輸出哈希值.
該協(xié)議具有以下性質:
考慮k個參與人中的3個P1、Pi和Pk,分別代表第1個簽署PDF文檔的參與人、中間簽署PDF文檔的任意參與人和最后一個簽署PDF文檔的參與人.所有參與人的公私鑰用(pkPj,skPj)表示 (1≤j≤k),TTP的公私鑰表示為(pkT,skT).PDF文檔中合同的原始文本用mo表示,每個參與人自己修改的部分用mPj表示,按照PDF規(guī)范每次簽名前所增加的描述信息表示為mdj.假設mPj可以為空,那么參與人Pj所簽署的內容為
mo‖mP1‖δP1‖md1‖…‖mPj‖mdj.
(3)Pk與Pi的計算過程相同,惟一的不同在于Pk需要執(zhí)行Hi,執(zhí)行Hu更新mo,得到狀態(tài)量Hctxmo,并發(fā)送消息簽名對(m1,δm1,…,mk,δmk)與Hctxmo給TTP.發(fā)送Hctxmo的目的是向TTP隱藏合同文本,同時允許TTP完成驗證.
(5)P1發(fā)送δP1給P2.Pi驗證δP1,…,δPi-1,驗證通過后發(fā)送δP1,…,δPi給Pi+1;否則,要求仲裁.Pk驗證δP1,…,δPk-1,驗證通過后,合成最終合同,并返回最終合同給Pk-1;否則,要求仲裁.Pi驗證來自Pi+1最終合同,驗證通過后轉發(fā)給Pi-1;否則,要求仲裁.P1驗證最終合同,驗證出錯要求仲裁.
上述協(xié)議中的參與人任何時刻都可以要求仲裁,仲裁協(xié)議如下: 參與人Pj向TTP提交合同文本Hctxmo的狀態(tài)量,請求仲裁; TTP檢查數(shù)據(jù)庫中的條目,如果確實存在Hctxmo,就從該記錄的各個VES簽名中恢復普通簽名,聯(lián)系所有參與人(無論該參與人是否已經(jīng)退出協(xié)議),向所有參與人發(fā)送普通簽名; 否則,TTP不進行任何操作.
特別地,TTP可以設定一個合同簽訂的最長期限,例如1個月,并在數(shù)據(jù)庫中保存該合同對應的通信腳本.當超過期限時,自動刪除腳本,避免數(shù)據(jù)庫無限增長.所有參與人也可以設定一個超時上限TOMAX,確保協(xié)議可以退出.
另外,當允許廣播信道時,每個參與實體只需要廣播1次消息,等待TTP的信號,然后各自再廣播1次自己的真實簽名值,就可以合成最終的合同文本,效率可以進一步的提升.
最后,該協(xié)議可以達到設定的安全目標:
(1) 所有參與人在TTP確認之后才會發(fā)出真實簽名,而TTP確認意味著TTP可以恢復所有的簽名,因此任意參與人如果在發(fā)出簽名后收不到PDF文檔,可以向TTP要求仲裁,獲得包含后續(xù)簽名人的簽名,滿足目標(1).
(2) 如果參與人在到達TOMAX之前,收到后續(xù)簽名人返回的PDF文檔,退出協(xié)議; 參與人在到達超時上限TOMAX之后,也可以退出協(xié)議,如果TTP一直沒有確認,那么協(xié)議就確實終止了,如果TTP確認了,而參與人已經(jīng)退出,TTP的指示信號會使得參與人重新加入?yún)f(xié)議執(zhí)行過程; 如果TTP確認了,參與人在TOMAX- 2TDMAX時限內沒有收到簽名,參與人要求仲裁,從TTP處獲得所有簽名,然后退出協(xié)議,滿足目標(2).
(3) 協(xié)議結束后,要么TTP從未確認,任何人都沒得到含所有簽名人的PDF文檔; 要么TTP已經(jīng)確認,所有人都完成了協(xié)議,獲得了全部簽名;要么TTP已經(jīng)確認,有一方要求了仲裁,TTP聯(lián)系所有人,確保所有人獲得了全部簽名,滿足目標(3).
圖1 兩方公平合同簽署時各方完成分布式簽名所需時間
在Java運行環(huán)境1.8下,使用Bouncy Castle的bcprov-exe-jdk15-1.46庫文件和iText軟件的itextpdf-5.1.3庫文件進行了仿真.具體的哈希函數(shù)采用了SHA-1版本,使用了Security Innovation公司的NTRU源代碼庫中提供的Java版本的SHA-1,重新編寫了獲取和設置狀態(tài)的函數(shù),其中狀態(tài)獲取函數(shù)保存了 64 B 的緩存區(qū)內容,20 B 的SHA狀態(tài)量,4 B 的已處理數(shù)據(jù)的長度,4 B 的緩存區(qū)偏移量,計 92 B.具體的PDF簽名過程與協(xié)議規(guī)范相同.
在單機上模擬了兩方的公平合同簽署過程中分布式簽名步驟,甲乙雙方完成分布式簽名所需時間如圖1所示.由甲方使用PdfTexify生成了僅包含若干字符的1個PDF文檔大小約 16 KB.甲方首先簽署文檔,在Intel公司的i5-5200U 雙核CPU,4 GB 內存的平臺上,生成帶有 1 024 B RSA數(shù)字簽名的PDF文檔所需時間平均約 231 ms,大小約 140 KB.之后甲方計算該文檔的狀態(tài)量,約需 24 ms,大小為 92 B.乙方在甲方狀態(tài)量之上簽署第2個數(shù)字簽名,所需時間約 207 ms,所形成的帶有兩個數(shù)字簽名的PDF文檔大小約 267 KB.
文中給出了基于PDF文件和在線TTP的公平多方合同簽署協(xié)議,并對分布式簽名進行了仿真.
參考文獻:
[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]. 西安電子科技大學學報, 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)絡的時間公平調度算法[J]. 西安電子科技大學學報, 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
時間:2017-06-29
廣東省自然科學基金資助項目(2015A030313133)
張永強(1977-),男,高級工程師,博士,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
(編輯: 齊淑娟)