[发明专利]一种基于区块链的多方公平PDF合同签署方法有效
| 申请号: | 201810634852.4 | 申请日: | 2018-06-15 |
| 公开(公告)号: | CN108833115B | 公开(公告)日: | 2021-01-26 |
| 发明(设计)人: | 田海博;何杰杰;刘佳南 | 申请(专利权)人: | 中山大学 |
| 主分类号: | H04L9/32 | 分类号: | H04L9/32;H04L9/08;H04L9/06;G06Q50/18 |
| 代理公司: | 广州市深研专利事务所(普通合伙) 44229 | 代理人: | 陈雅平 |
| 地址: | 510275 广东*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 区块 多方 公平 pdf 合同 签署 方法 | ||
1.一种基于区块链的多方公平PDF合同签署方法,包括多名合同签署方P1,…,Pn,n为大于1的整数,一个可信第三方TTP及区块链节点,所述各个合同签署方协商一致的PDF合同m0,包括以下步骤:
S1)所述合同签署方P1生成所述PDF合同m0的数字签名及附属信息mP1和可验证加密签名VES1,计算合同内容的哈希上下文CTX1,生成群组密钥协商协议GKA的元素GE1,把VES1、CTX1和GE1封装为区块链交易,发送给任意区块链节点;
S2)由合同签署方P2开始,i按照由2至n升序,Pi验证Pi-1,1i≤n,的VESi-1签名;若验证失败退出协议;若验证成功则Pi生成数字签名及其附属信息和VESi、CTXi、GEi并通过区块链交易发送给任意区块链节点;
S3)在所述合同签署方Pn完成操作后,以Pj(1≤j≤n)代表所述合同签署方P1,…,Pn,Pj验证其它未验证的VES签名,如果验证失败,退出协议,否则计算群组加密密钥GK,加密PDF文档的数字签名形成密文Cj,把Cj封装为交易发送给任意区块链节点;
S4)所述Pj查询区块链数据,用GK解密其它合同签署方的密文,1≤j≤n,合成各方顺序签署的PDF合同;
S5)所述Pj在合成PDF合同过程中出现异常时与TTP通信,完成异常处理流程;
所述的步骤S1)包括:
S11)所述合同签署方P1所采用的是各个所述合同签署方协商一致的VES方案(VES.Gen,VES.Sign,VES.Verify),所述合同签署方P1通过VES.Gen算法生成所述合同签署方P1的签名公私钥对
S12)所述合同签署方P1使用作为签名密钥,使用各个所述合同签署方协商一致的兼容数字签名方案(Gen,Sign,Verify)中的数字签名算法Sign签署PDF合同m0,得到其中mP1和是所述合同签署方P1根据PDF数字签名规范所生成的附属信息,mP1为空或不为空,符号“||”是二进制比特串的串接操作;
S13)所述合同签署方P1计算其中pkTTP是TTP兼容VES方案的公钥,设置
S14)所述合同签署方P1合成含有其数字签名的PDF合同采用各个所述合同签署方协商一致的哈希方案(Hash.init,Hash.update,Hash.final),计算Hash.init,计算计算完成后设置此时的哈希缓存为CTX1;
S15)所述合同签署方P1采用各个所述合同签署方协商一致的GKA方案(GKA.Gen,GKA.KA),其中GKA.Gen与区块链节点所采用数字签名方案(BC.Gen,BC.Sign,BC.Verify)中的BC.Gen算法兼容,之后按照GKA.KA算法计算GE1;其中(BC.Gen,BC.Sign,BC.Verify)表示在本发明技术方案中区块链节点适用的任意一种数字签名方案;
S16)所述合同签署方P1把VES1、CTX1和GE1封装为区块链交易的数据,把交易发送给区块链节点;
所述的步骤S2)包括:
S21)所述Pi-1的VES签名是采用各个所述合同签署方协商一致的VES方案(VES.Gen,VES.Sign,VES.Verify)中的VES.Sign算法生成的,Pi通过VES.Gen算法生成签名公私钥对
S22)所述Pi采用VES.Verify算法验证VES签名,如果该算法返回假,则停止执行协议,否则继续;
S23)所述Pi使用Pi-1,…,P1所分别提供的VESi-1,…,VES1之中的附属信息合成准文档其中是长度分别为的全0比特串,然后按照PDF数字签名规范生成附属信息和之后定义Pi使用各个所述合同签署方协商一致的哈希方案(Hash.init,Hash.update,Hash.final),计算Hash.init,计算后用Pi-1提供的CTXi-1替换此时形成的哈希缓存,之后计算计算Hash.final得到的哈希值,之后Pi使用作为签名密钥,使用各个所述合同签署方协商一致的兼容数字签名方案(Gen,Sign,Verify)中的数字签名算法Sign签署内容得到其中Sign算法是先求哈希后计算签名的构造方法,实际计算签名时直接对的哈希值签名;
S24)所述Pi计算其中pkTTP是TTP兼容VES方案的公钥,设置
S25)所述Pi采用各个所述合同签署方协商一致的哈希方案(Hash.init,Hash.update,Hash.final),计算Hash.init,计算后用CTXi-1替换此时形成的哈希缓存,之后计算计算完成后设置此时的哈希缓存为CTXi;
S26)所述Pi采用各个所述合同签署方协商一致的GKA方案(GKA.Gen,GKA.KA),其中GKA.Gen与区块链节点所采用数字签名方案(BC.Gen,BC.Sign,BC.Verify)中的BC.Gen算法兼容,之后按照GKA.KA算法计算GEi;
S27)所述Pi把VESi、CTXi和GEi封装为区块链交易的数据,把交易发送给任意区块链节点;
所述的步骤S3)包括:
S31)所述Pj,1≤j≤n,查询区块链节点,确认Pn是否完成了操作,如果没有完成,继续等待,直至超时退出,否则继续执行;
S32)所述Pj查询VESl,使用各个所述合同签署方协商一致的VES方案(VES.Gen,VES.Sign,VES.Verify)中的VES.Verify算法验证VESl,在1l时,采用CTXl-1辅助完成验证,如果任何一个VES签名验证失败,退出协议,否则继续执行;
其中所述VESl表示当l≠j,j-1,且1≤l≤n时所指代的合同签署方Pl发送的可验证加密签名;
所述CTXl-1表示当l≠j,j-1,且1≤l≤n时所指代的合同签署方Pl-1发送的哈希上下文;
S33)所述Pj采用各个所述合同签署方协商一致的GKA方案以各方提交的GE元素为输入,计算群组密钥GK,并采用对称密钥加密算法加密形成密文Cj;
S34)所述Pj把所述Cj封装为区块链交易的数据,把交易发送给任意区块链节点;
所述的步骤S4)包括:
S41)所述Pj向区块链查询VESg,密文Cg,1≤g≤n,如果超过了合同签署最大时长,则执行异常处理流程;
S42)所述Pj采用群组密钥GK,使用对称密钥解密算法解密Cg获得明文
S43)所述Pj使用PDF合同m0,合成各方顺序签署的PDF合同;
所述的步骤S5)包括:
S51)所述Pj向区块链查询VESg,密文Cg,1≤l≤n,如果超过了合同签署最大时长,则执行异常处理流程,向TTP发送仲裁请求,指明要求仲裁的合同签署方,群组密钥GK,描述要求仲裁的原因;
S52)所述TTP查询区块链数据,确认Pj是遵从协议的,确认要求仲裁的对象尚没有被仲裁过,那么TTP使用自己的私钥,将Pj所要求仲裁的合同签署方的VES签名恢复为普通签名,并再次确认被仲裁的原因,把恢复的普通签名加密后形成密文,向区块链中记录此次仲裁事件;
S53)Pj用GK解密TTP加密的普通签名,按照步骤43)合成有签名的PDF合同。
2.根据权利要求1所述的一种基于区块链的多方公平PDF合同签署方法,其特征在于,所述的合同签署方把交易发送给区块链节点的过程如下:
S61)区块链节点运行多方合同签署的智能合约,包含注册、存储接口;
S62)智能合约通过注册接口确认合同的所有签署人、认可的TTP、签署人的顺序、此次合同签署的唯一编号等信息,并为各个签署人分配存储区;
S63)智能合约通过存储接口存储合同签署方或者TTP的交易数据,并把不同合同签署人生成的不同交易数据存储在为其分配的存储区中,交易数据中应当包含此次合同签署的唯一编号。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中山大学,未经中山大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810634852.4/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于区块链的去中心化身份认证系统及方法
- 下一篇:一种电子签章的方法





