基于区块链的贷款合同在线签署系统

阅读: 评论:0

著录项
  • CN202210732901.4
  • 20220627
  • CN114792270A
  • 20220726
  • 浙江数秦科技有限公司
  • 高航;张金琳
  • G06Q40/02
  • G06Q40/02 G06Q50/18 G06F21/60 G06F21/64 H04L9/08 H04L9/32 H04L9/40

  • 浙江省杭州市余杭区仓前街道鼎创财富中心2幢11层
  • 浙江(33)
摘要
本发明涉及信息技术领域,具体涉及一种基于区块链的贷款合同在线签署系统,包括证书模块、业务模块、合同模块、签署模块和存证模块,企业提交贷款申请材料,证书模块为企业生成公私秘钥对,金融机构为企业生成初始授信额度,业务模块展示贷款产品列表,企业将选定的贷款产品导入合同模块,合同模块提供空白模板合同并自动填写贷款金额、贷款期限、放款金融机构和贷款申请人,企业核对后导入签署模块,提取验证哈希值,企业使用私钥签名验证哈希值,将签名和贷款合同打包作为签署包提交存证模块,存证模块验证签名后提取签署包的哈希值上传区块链存储,将签署包关联区块高度存储。本发明的实质性效果是:实现了贷款合同的在线签署。
权利要求

1.基于区块链的贷款合同在线签署系统,其特征在于,

包括证书模块、业务模块、合同模块、签署模块和存证模块,

企业提交贷款申请材料,审核通过后所述证书模块为企业生成公私秘钥对,将加密私钥发送给企业,将公钥关联企业名称后公开,若干个金融机构审核所述贷款申请材料,为企业生成初始授信额度,所述业务模块为企业展示金融机构提供的贷款产品列表,企业将选定的贷款产品并填入贷款金额和贷款期限后导入合同模块,所述合同模块提供空白模板合同并自动填写贷款金额、贷款期限、放款金融机构和贷款申请人,所述贷款金额不高于初始授信额度,企业核对后将填写后的贷款合同导入签署模块,签署模块提取贷款合同的哈希值作为验证哈希值,企业使用私钥签名验证哈希值,将签名和贷款合同打包作为签署包提交存证模块,所述存证模块验证签名后提取签署包的哈希值上传区块链存储,获得相应的区块高度,将签署包关联区块高度存储。

2.根据权利要求1所述的基于区块链的贷款合同在线签署系统,其特征在于,

企业核对合同后将合同打印并盖章,生成盖章扫描件,将盖章扫描件上传签署模块,签署模块提取盖章扫描件的哈希值,记为扫描件哈希值,将贷款合同的哈希值和扫描件哈希值一起提取哈希值,作为验证哈希值,企业使用私钥签名签名验证哈希值,将签名、盖章扫描件和贷款合同打包作为签署包提交存证模块。

3.根据权利要求1或2所述的基于区块链的贷款合同在线签署系统,其特征在于,

所述存证模块存储签署包时,为签署包分配唯一标识,所述签署模块为合同生成唯一编号,所述存证模块建立签署包查询索引,所述查询索引记录签署包的唯一标识和贷款合同的唯一编号。

4.根据权利要求3所述的基于区块链的贷款合同在线签署系统,其特征在于,

所述存证模块存储签署包时,将签署包拆分为若干个子包,为子包赋予子包编号,将子包关联唯一标识和子包编号后分散存储。

5.根据权利要求4所述的基于区块链的贷款合同在线签署系统,其特征在于,

所述存证模块分散存储子包的过程为:

所述存证模块在存储设备开辟存储区,在存储区划分存储单元,存储单元大小与子包匹配,存储单元的起始地址为存储单元的寻址地址;

建立地址表,所述地址表将寻址地址随机排序;

所述存证模块从地址表中选择数量与子包数量相符的未被使用的寻址地址,将子包存储在寻址地址指向的存储单元;

所述存证模块提取子包的唯一标识和子包编号的哈希值,记为查哈希值,将查哈希值填入地址表,并与对应的寻址地址关联。

6.根据权利要求5所述的基于区块链的贷款合同在线签署系统,其特征在于,

所述存证模块提取查哈希值时,按照预设规则生成随机码,将随机码、唯一标识和子包编号一起提取哈希值,作为查哈希值,生成随机码的过程为:

所述存证模块生成预设的合值,将唯一标识和子包编号一起提取哈希值并取末尾N位,将合值与末尾N位的差值作为随机码,读取签署包时,向存证模块提供唯一标识和子包编号,所述存证模块提取唯一标识和子包编号的哈希值,取末尾N位并计算合值与末尾N位的差值,获得随机码,将随机码、唯一标识和子包编号一起提取哈希值,使用查哈希值查询地址表,获得对应的寻址地址,读取对应的存储单元,按照子包编号排序拼接获得签署包。

7.根据权利要求1或2所述的基于区块链的贷款合同在线签署系统,其特征在于,

所述证书模块为企业生成公私秘钥对的过程为:

所述证书模块生成加密数、调整数、解密数和限值,所述调整数为小数,所述解密数为正奇数,所述加密数、调整数和解密数的乘积等于2π的整倍数加1,所述限值为位数大于验证哈希值位数的十六进制正数,所述加密数为私钥,所述调整数、解密数和限值为公钥,关联企业名称后公开,所述证书模块使用加密通信将私钥发送给企业。

8.根据权利要求1或2所述的基于区块链的贷款合同在线签署系统,其特征在于,

企业使用私钥签名验证哈希值的过程包括:

将验证哈希值和限值均以十进制表示;

尝试生成辅助数,使辅助数的余弦值保留前M位小数恰好与验证哈希值的十进制表示相符;

计算加密数、调整数与辅助数的乘积的余弦值作为密文,所述密文即为签名。

9.根据权利要求8所述的基于区块链的贷款合同在线签署系统,其特征在于,

所述存证模块验证签名的过程为:

使用余弦函数的倍角公式计算解密数、加密数、调整数与辅助数的乘积的余弦值,取余弦值的前M位小数恰好获得验证哈希值的十进制表示,转换为十六进制获得复原的验证哈希值;

将复原的验证哈希值与签署模块提取的验证哈希值对比,若一致,则签名验证通过,反之,则签名验证不通过。

10.根据权利要求1或2所述的基于区块链的贷款合同在线签署系统,其特征在于,

所述存证模块对贷款合同的扫描件进行以下处理:将扫描件切分为若干个切片区域,将切片区域编号;提取每个切片区域的哈希值,记为切片哈希值;扫描件的哈希值记为完整哈希值,将完整哈希值和全部切片哈希值一起提取哈希值,作为扫描件哈希值;将每个切片区域关联编号、扫描件哈希值和全部切片哈希值存储。

说明书
技术领域

本发明涉及信息技术领域,具体涉及一种基于区块链的贷款合同在线签署系统。

广义的贷款指贷款、贴现、透支等出贷资金的总称。银行通过贷款的方式将所集中的货币和货币资金投放出去,可以满足社会扩大再生产对补充资金的需要,促进经济的发展,同时,银行也可以由此取得贷款利息收入,增加银行自身的积累。随着金融行业的发展,金融机构提供的贷款产品种类丰富多样。企业难以寻到最为适宜的贷款产品。为此提供贷款产品的运营平台随之而生,在运营平台上展示了来自不同金融机构提供的多种贷款产品。不仅为企业提供了完整的金融服务信息,也提供了方便企业进行贷款申请的线上申请渠道。随着计算机科学技术和网络技术的发展,以电子技术作为载体来进行社会活动已经是屡见不鲜的事。替代纸质书面合同的电子合同逐渐在金融借款行业中占据地位。为进一步方便企业获得贷款产品,有必要研究能够在线完成贷款合同签署的技术。

如中国专利CN109087056A,公开日2018年12月25日,公开了一种电子合同签署方法,包括以下步骤:响应于用户指令,向用户发送包括签名认证界面的所述电子合同;接收用户在所述签名认证界面上的签名,将所述签名生成到所述电子合同中;获取与所述电子合同相关联的时间戳,将所述时间戳与所述电子合同进行关联;通过预设加密规则对包括所述签名且与所述时间戳关联的电子合同加密。其技术方案应用于房屋租赁领域,在电子签署合同基础上,通过时间戳、加密的方法保证电子合同的防篡改性、在线签约法律效力。但其技术方案并不能解决贷款合同的在线签署问题。

本发明要解决的技术问题是:目前缺乏实现贷款合同在线签署方案的技术问题。提出了一种基于区块链的贷款合同在线签署系统,能够在线上完成贷款合同的签署,简化了贷款业务的办理。

为解决上述技术问题,本发明所采取的技术方案为:基于区块链的贷款合同在线签署系统,包括证书模块、业务模块、合同模块、签署模块和存证模块,企业提交贷款申请材料,审核通过后所述证书模块为企业生成公私秘钥对,将加密私钥发送给企业,将公钥关联企业名称后公开,若干个金融机构审核所述贷款申请材料,为企业生成初始授信额度,所述业务模块为企业展示金融机构提供的贷款产品列表,企业将选定的贷款产品并填入贷款金额和贷款期限后导入合同模块,所述合同模块提供空白模板合同并自动填写贷款金额、贷款期限、放款金融机构和贷款申请人,所述贷款金额不高于初始授信额度,企业核对后将填写后的贷款合同导入签署模块,签署模块提取贷款合同的哈希值作为验证哈希值,企业使用私钥签名验证哈希值,将签名和贷款合同打包作为签署包提交存证模块,所述存证模块验证签名后提取签署包的哈希值上传区块链存储,获得相应的区块高度,将签署包关联区块高度存储。

作为优选,企业核对合同后将合同打印并盖章,生成盖章扫描件,将盖章扫描件上传签署模块,签署模块提取盖章扫描件的哈希值,记为扫描件哈希值,将贷款合同的哈希值和扫描件哈希值一起提取哈希值,作为验证哈希值,企业使用私钥签名签名验证哈希值,将签名、盖章扫描件和贷款合同打包作为签署包提交存证模块。

作为优选,所述存证模块存储签署包时,为签署包分配唯一标识,所述签署模块为合同生成唯一编号,所述存证模块建立签署包查询索引,所述查询索引记录签署包的唯一标识和贷款合同的唯一编号。

作为优选,所述存证模块存储签署包时,将签署包拆分为若干个子包,为子包赋予子包编号,将子包关联唯一标识和子包编号后分散存储。

作为优选,所述存证模块分散存储子包的过程为:所述存证模块在存储设备开辟存储区,在存储区划分存储单元,存储单元大小与子包匹配,存储单元的起始地址为存储单元的寻址地址;建立地址表,所述地址表将寻址地址随机排序;所述存证模块从地址表中选择数量与子包数量相符的未被使用的寻址地址,将子包存储在寻址地址指向的存储单元;所述存证模块提取子包的唯一标识和子包编号的哈希值,记为查哈希值,将查哈希值填入地址表,并与对应的寻址地址关联。

作为优选,所述存证模块提取查哈希值时,按照预设规则生成随机码,将随机码、唯一标识和子包编号一起提取哈希值,作为查哈希值,生成随机码的过程为:所述存证模块生成预设的合值,将唯一标识和子包编号一起提取哈希值并取末尾N位,将合值与末尾N位的差值作为随机码,读取签署包时,向存证模块提供唯一标识和子包编号,所述存证模块提取唯一标识和子包编号的哈希值,取末尾N位并计算合值与末尾N位的差值,获得随机码,将随机码、唯一标识和子包编号一起提取哈希值,使用查哈希值查询地址表,获得对应的寻址地址,读取对应的存储单元,按照子包编号排序拼接获得签署包。

作为优选,所述证书模块为企业生成公私秘钥对的过程为:所述证书模块生成加密数、调整数、解密数和限值,所述调整数为小数,所述解密数为正奇数,所述加密数、调整数和解密数的乘积等于2π的整倍数加1,所述限值为位数大于验证哈希值位数的十六进制正数,所述加密数为私钥,所述调整数、解密数和限值为公钥,关联企业名称后公开,所述证书模块使用加密通信将私钥发送给企业。

作为优选,企业使用私钥签名验证哈希值的过程包括:将验证哈希值和限值均以十进制表示;尝试生成辅助数,使辅助数的余弦值保留前M位小数恰好与验证哈希值的十进制表示相符;计算加密数、调整数与辅助数的乘积的余弦值作为密文,所述密文即为签名。

作为优选,所述存证模块验证签名的过程为:使用余弦函数的倍角公式计算解密数、加密数、调整数与辅助数的乘积的余弦值,取余弦值的前M位小数恰好获得验证哈希值的十进制表示,转换为十六进制获得复原的验证哈希值;将复原的验证哈希值与签署模块提取的验证哈希值对比,若一致,则签名验证通过,反之,则签名验证不通过。

作为优选,所述贷款产品包括类型、金额区间、年利率区间和期限区间,所述类型包括信用贷款、抵押贷款、保函和票据贴现。

作为优选,所述存证模块对贷款合同的扫描件进行以下处理:将扫描件切分为若干个切片区域,将切片区域编号;提取每个切片区域的哈希值,记为切片哈希值;扫描件的哈希值记为完整哈希值,将完整哈希值和全部切片哈希值一起提取哈希值,作为扫描件哈希值;将每个切片区域关联编号、扫描件哈希值和全部切片哈希值存储。

作为优选,所述存证模块读取多个贷款合同的扫描件对应位置的切片区域,计算多个切片区域在每个像素位置的均值,全部像素的均值构成切片区域的切片模板;计算每个切片区域与切片模板在每个像素位置的像素差值,使用更短字节长度表示像素差值,使用例外集合存储超出缩短后字节长度表示范围的例外像素,所述例外集合记录例外像素的像素坐标和像素值。

本发明的实质性效果是:通过证书模块为企业分配专属的公私秘钥对,其中使用私钥进行签名能够作为身份证明,提供了不可抵赖的身份证明信息,借助区块链将带有签名的贷款合同进行存证,能够避免贷款合同被篡改,提供真实性证明;将签署包分散存储,提高了签署的电子合同的安全性;借助改进的非对称加密算法,提高了加解密的效率。

图1为实施例一贷款合同在线签署系统示意图。

图2为实施例一签署包存储示意图。

图3为实施例一分散存储子包过程示意图。

图4为实施例一生成随机码过程示意图。

图5为实施例三生成公私秘钥对过程示意图。

图6为实施例三使用私钥签名验证哈希值过程示意图。

图7为实施例三验证签名过程示意图。

其中:10、企业,11、贷款申请材料,12、签名,20、证书模块,30、业务模块,40、合同模块,41、合同,50、签署模块,60、存证模块,61、签署包,62、子包。

下面通过具体实施例,并结合附图,对本发明的具体实施方式作进一步具体说明。

实施例一:

基于区块链的贷款合同在线签署系统,请参阅附图1,包括证书模块20、业务模块30、合同模块40、签署模块50和存证模块60,企业10提交贷款申请材料11,审核通过后证书模块20为企业10生成公私秘钥对,将加密私钥发送给企业10,将公钥关联企业10名称后公开,若干个金融机构审核贷款申请材料11,为企业10生成初始授信额度,业务模块30为企业10展示金融机构提供的贷款产品列表,企业10将选定的贷款产品并填入贷款金额和贷款期限后导入合同模块40,合同模块40提供空白模板合同41并自动填写贷款金额、贷款期限、放款金融机构和贷款申请人,贷款金额不高于初始授信额度,企业10核对后将填写后的贷款合同41导入签署模块50,签署模块50提取贷款合同41的哈希值作为验证哈希值,企业10使用私钥签名12验证哈希值,将签名12和贷款合同41打包作为签署包61提交存证模块60,存证模块60验证签名12后提取签署包61的哈希值上传区块链存储,获得相应的区块高度,将签署包61关联区块高度存储。贷款产品包括类型、金额区间、年利率区间和期限区间,类型包括信用贷款、抵押贷款、保函和票据贴现。企业10经营过程中对资金的需求是多种多样的,不同的需求对应不同的贷款产品。贷款合同41为要式合同41,一般情况下应采用要式的格式进行书面签订。随着信息技术,尤其是区块链技术的发展,为电子合同41的存证提供了可靠的真实性证明,从而实现电子合同41的效力。

哈希值由数据进行散列函数处理获得,通过把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,不具有可逆性,所以不可能从散列值来确定唯一的输入值。散列函数具有雪崩的特性,即当输入信息中仅有极小部分的改变,也会导致最终的哈希值发生显著的变化。本实施例采用的散列算法可以为SHA256、SM3、MD5以及RIPEMD-160中的一种。最佳为SHA256和SM3联用,即分别使用SHA256和SM3提取哈希值,将两个哈希值拼接作为最终的验证哈希值。SHA256和SM3的输出为一定长度的十六进制数,如:0xC1FB44C72628EAE49132062FE5109F650B6A7AB903336E7FCD2EF8F5EBA04151,即为字符串HASH在SHA256算法下的哈希值。

区块链上存储的数据具有不可篡改性、可追溯和公开透明的特点。借助区块链对贷款合同41进行存证,能够确保贷款合同41不被篡改。将验证哈希值上传区块链存储,即可确保贷款合同41不被篡改。因为若贷款合同41被作出任何的修改,提取被修改后的贷款合同41的哈希值,就会与区块链上存储的验证哈希值不符,从而立即识别出贷款合同41的真伪。只有真实的、未被篡改的贷款合同41的哈希值,才会有区块链上存储的哈希值相符。

仅仅能够提供真实的、未被篡改的贷款合同41,还不足以完成贷款合同41的在线签订。还需要提供可靠的身份证明,即证明生成贷款合同41的操作是由企业10的相关人员进行。提供身份证明需要借助非对称加密算法。非对称加密需要两个密钥来进行加密和解密,这两个密钥是公开密钥和私有密钥,分别简称为公钥和私钥。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密;如果用私钥对数据进行加密,那么只有用对应的公钥才能解密。数据的加密和解密过程是通过密码体制和密钥来控制的。密码体制的安全性依赖于密钥的安全性,现代密码学不追求加密算法的保密性,而是追求加密算法的完备,即:使攻击者在不知道密钥的情况下,没有办法从算法到突破口。密码体制可分为对称密码体制和非对称密码体制。

非对称密码体制也叫公钥加密技术,该技术是针对私钥密码体制(对称加密算法)的缺陷被提出来的。与对称密码体制不同,公钥加密系统中,加密和解密是相对独立的,加密和解密会使用两把不同的密钥,加密密钥向公众公开,谁都可以使用,解密密钥只有解密人自己知道,非法使用者根据公开的加密密钥无法推算出解密密钥,这样就大大加强了信息保护的力度。公钥密码体制不仅解决了密钥分配的问题,还为签名12和认证提供了手段。

本实施例中,企业10首先提交相关申请材料,申请材料能够证明企业10真实业务意图即可。而后证书模块20即会为企业10分配公私秘钥对。将公钥关联企业10名称后公开,任何人均可查看获得企业10的公钥。采用加密方式将私钥发送给企业10,由企业10妥善保管。生成电子版的贷款合同41后,企业10核对信息无误,提取贷款合同41的哈希值作为验证哈希值,使用私钥签名12验证哈希值。将签名12、验证哈希值,关联相关时间戳、贷款合同41的唯一编号后,上传区块链存储。关联贷款合同41的唯一编号是为了查方便。将电子版的贷款合同41妥善保存即可。事后需要提供贷款合同41时,提供电子版的贷款合同41。提取电子版的贷款合同41的哈希值,与区块链上存储的验证哈希值比对,若二者相符,则证明电子版的贷款合同41未被修改过。而后读取区块链上的签名12,使用企业10的公钥验证签名12,获得签名12内容为验证哈希值,签名12解密出的验证哈希值与区块链上存储的验证哈希值相符,则证明企业10对贷款合同41进行过确认和签名12,是企业10的真实意图,从而实现合同41的效力。

优选的,为进一步提升在线签署贷款合同41的可信度,本实施例还可以要求企业10核对合同41后将合同41打印并盖章,生成盖章扫描件,将盖章扫描件上传签署模块50,签署模块50提取盖章扫描件的哈希值,记为扫描件哈希值,将贷款合同41的哈希值和扫描件哈希值一起提取哈希值,作为验证哈希值,企业10使用私钥签名12签名12验证哈希值,将签名12、盖章扫描件和贷款合同41打包作为签署包61提交存证模块60。扫描件通过区块链存证后,也即不可篡改,扫描件不仅有区块链和签名12提供真实性证明,还存在企业10的公章作为证明,进而使得贷款合同41的在线签署更为正式和可信。但扫描件并非本实施例的必要构件。仅缺乏扫描件不影响通过本实施例签署的贷款合同41效力的证明。

存证模块60存储签署包61时,为签署包61分配唯一标识,签署模块50为合同41生成唯一编号,存证模块60建立签署包61查询索引,查询索引记录签署包61的唯一标识和贷款合同41的唯一编号。

请参阅附图2,存证模块60存储签署包61时,将签署包61拆分为若干个子包62,为子包62赋予子包62编号,将子包62关联唯一标识和子包62编号后分散存储。将签署包61打包为数据包,而后将数据包拆分为若干个子包62。子包62的数据格式为:{唯一标识,子包62编号,数据开始标志符,签署包61数据片段,数据结束标志符}。将签署包61的二进制表示截断为若干个数据片段,每个数据片段对应一个子包62。两端添加数据开始标志符和数据结束标志符后,再关联唯一标识和子包62编号。

请参阅附图3,存证模块60分散存储子包62的过程为:步骤A01)存证模块60在存储设备开辟存储区,在存储区划分存储单元,存储单元大小与子包62匹配,存储单元的起始地址为存储单元的寻址地址;步骤A02)建立地址表,地址表将寻址地址随机排序;步骤A03)存证模块60从地址表中选择数量与子包62数量相符的未被使用的寻址地址,将子包62存储在寻址地址指向的存储单元;步骤A04)存证模块60提取子包62的唯一标识和子包62编号的哈希值,记为查哈希值,将查哈希值填入地址表,并与对应的寻址地址关联。更为有利的,存储设备为分布式存储设备,包括相互通信连接的多个存储节点。如表1所示,为本实施例建立的地址表及其内存储的寻址地址和相应的所属存储节点。

表1地址表内的寻址地址及所属存储节点

序号 寻址地址 所属存储节点 查哈希值 1 0x2293d420e195 P1 0x2B8691F1…9C8CCDA1 2 0x6f46c3c3366f P3 0xF871BDC…A809E43C4 3 0x65ef89e38ea5 P5 0xF4B4192…8BAC29BEF 4 0x39c936440700 P7 NULL 5 0x6b8e0765e085 P8 NULL … … … … N 0x0a998bb2c814 P9 NULL

当需要读取签署包61时,提供签署包61的唯一标识。提取唯一标识和数字1的哈希值,即为查哈希值。在地址表内查询相符的记录,若存在,则读取寻址地址对应的存储单元内的数据。若无记录,则表明提供的签署包61唯一标识错误。读取第一个子包62后,提取唯一标识和数字2的哈希值,查地址表并读取获得第二个子包62。直到提取唯一标识和某个数字的哈希值,在地址表中没有记录,表明全部子包62已被读取出来。将全部子包62内的数据片段拼接,即可获得完整的签署包61。

存证模块60提取查哈希值时,按照预设规则生成随机码,将随机码、唯一标识和子包62编号一起提取哈希值,作为查哈希值,请参阅附图4,生成随机码的过程为:步骤B01)存证模块60生成预设的合值,将唯一标识和子包62编号一起提取哈希值并取末尾N位;步骤B02)将合值与末尾N位的差值作为随机码;步骤B03)读取签署包61时,向存证模块60提供唯一标识和子包62编号;步骤B04)存证模块60提取唯一标识和子包62编号的哈希值,取末尾N位并计算合值与末尾N位的差值,获得随机码;步骤B05)将随机码、唯一标识和子包62编号一起提取哈希值,使用查哈希值查询地址表,获得对应的寻址地址;步骤B06)读取对应的存储单元,按照子包62编号排序拼接获得签署包61。

本实施例中选定N的值为5,合值设置为0xDC35CB。当唯一标识“DK20210205180255”和子包62编号“3”一起提取哈希值为0x7FA0BD557D…BFEBDB5E时,取哈希值的末尾5位为0xBDB5E,计算合值0xDC35CB与0xBDB5E的差值为0xD05A6D。而后提取“DK20210205180255”、子包62编号“3”和随机码“0xD05A6D”的哈希值,得查哈希值为“0xF17C7C5E3CE355EA3443B601D32CE21008EACD5522F02DC4D92448FEEC4FA9A6”。由于合值仅由存证模块60生成和保存,因此也只有存证模块60才能生成正确的查哈希值,完成子包62的读取,保证了子包62的安全。

将在线签署的贷款合同41的验证哈希值和签名12上传区块链存储,形成真实性凭证,确保贷款合同41具有效力。而后将贷款合同41对应的签署包61分散存储在存储设备中,仅有存证模块60才能读取,保证了签署包61的安全性,避免了签署包61在存储过程中泄露的可能性。

本实施例的有益技术效果是:将签署包61分散存储,提高了签署的电子合同41的安全性;借助改进的非对称加密算法,提高了加解密的效率。

实施例二:

基于区块链的贷款合同在线签署系统,本实施例在实施例一的基础上,对签署的保存提出了新的技术方案。本实施例中,签署包61中包括贷款合同41的扫描件。电子版的贷款合同41由于属于要式合同41,合同41的大部分内容均为重复内容,存储时仅需要存储若干个差异位置的数据即可。其余部分直接读取电子版的空白合同41相应区域的数据,与差异位置的数据组合即可复原电子版的贷款合同41。

然而对于图像格式的扫描件,由于每个企业10进行扫描时的纸张、光线以及扫描设备的差异,扫描件在每个像素位置的像素值不尽相同。为此,本实施例中,对扫描件进行以下处理:将扫描件切分为若干个切片区域,将切片区域编号;提取每个切片区域的哈希值,记为切片哈希值;扫描件的哈希值记为完整哈希值,将完整哈希值和全部切片哈希值一起提取哈希值,作为扫描件哈希值;将每个切片区域关联编号、扫描件哈希值和全部切片哈希值存储。

对于贷款合同41的扫描件而言,其大部分像素区域的内容是相同的,但因扫描差异性,导致像素值有细微的差别。为此,本实施例为每个切片区域建立切片模板。切片模板的建立过程为:读取多个贷款合同41的扫描件对应位置的切片区域,计算多个切片区域在每个像素位置的均值,全部像素的均值构成切片区域的切片模板。计算每个切片区域与切片模板在每个像素位置的像素差值,使用更短字节长度表示像素差值,从而使用更短字节长度表示切片区域,使用例外集合存储超出缩短后字节长度表示范围的例外像素,例外集合记录例外像素的像素坐标和像素值,进而使用更短字节表示贷款合同41的扫描件。由于贷款合同41的扫描件并不需要经常读取,若企业10按照签署的贷款合同41获得贷款,并按照预定的还款计划进行还款,则根本不需要再将贷款合同41的扫描件进行读取。而大部分企业10会获得贷款并按照还款计划进行还款。即大部分的贷款合同41的扫描件均是不需要再被读取的。因此,采用本实施例对扫描件进行无损的压缩存储,能够节省存储设备的开支。读取扫描件时,将保存的像素差值和切片模板叠加后,使用例外集合记录的像素值替换对应像素坐标的像素值,复原切片区域。为每个切片区域生成相应的切片哈希值,使每个切片区域均获得存证,提高了扫描件存证的可信度。

扫描件以图片格式存储,图片的像素使用RGB彩体系表示,每个像素使用3个通道,每个通道的通道值使用1个字节表示,即每个通道取值范围为[0,255],三个通道值的集合构成像素值。每个像素值占用3个字节。由于贷款合同41的扫描件,在同一个区域内的图像是高度相似的。因此每个扫描件在相同像素位置的像素值与共用切片的差值将较小。使用半个字节就足以表示。即每个通道的差值取值范围为[0,15],加上一个位表示差值的正负号。差值的形成主要是由于扫描设备每次扫描时的硬件差异。对于差值超出[0,15]的像素点,则采用例外集合的方式,单独记录这样的像素点。由于共用切片只需要存储一次,大部分像素使用像素差值即可存储,每个像素占用空间缩短一半。虽然少量像素需要占用例外集合的空间,但对于相同类型档案的相同区域,例外像素的数量应当是较少的,从而整体上占用更少的存储空间。

更有利的,本实施例为每个切片区域关联一个调整像素值,调整数具有正负属性,如RGB格式下的调整像素值为(-30,12,-26)。切片区域的像素位置的像素值均叠加调整像素值。使得叠加调整像素值后,切片区域与切片模板对比后,需要使用例外集合记录的像素值的数量最少。

更有利的,本实施例将例外集合的存储直接纳入正常的像素值存储流中,从而节省了例外集合中需要记录例外像素的像素位置所需要占用的空间。若像素差值小于M1则使用第一字节长度表示,像素差值不小于M1则使用第二字节长度表示。第二字节长度即扫描件正常存储下,每个像素值的通道值占用的字节长度。使用RGB表示颜时。每个像素点有三个通道,每个通道占用1字节,即8位。表示像素差值时,使用5个位表示,第一个位表示正负号,即在切片模板上对应像素位置的对应通道值上增加或减少后续4位表示的差值。4个位表示的范围是[0,15]。即第一字节长度为五个位长度。第一字节长度表示的最大值为M1,第二字节长度表示的最小值为M2。则M1的值为15,M2的值为0。

表2相邻若干个像素值的表示

切片模板 (245,245,245) (30,30,32) … (205,215,208) 切片区域 (240,235,239) (242,240,242) … (213,219,217) 像素差值 (-5,-10,-6) (212,210,210) … (8,4,9)

如表2所示,表示贷款合同41的扫描件上述的相邻若干个个像素值的二进制表示为:(10101,11010,10110)、(11010100,11010010,11010010)、…、(01000,00100,01001)。

添加M1和M2作为间隔:(10101,11010,10110)、M1:(01111,01111,01111)、(11010100,11010010,11010010)、…、M2:(00000000,00000000,00000000)、(01000,00100,01001)。

最终若干个个像素的二进制表示为:101011101010110011110111101111110101001101001011010010…000000000000000000000000010000010001001。

设定存证模块60读取到上述的若干个像素时,为像素差值模式,即一次性读取5x3个位。而后划分为3个5位二进制数,分别为第一个像素相对切片模板同像素位置像素值的差值。5个位中首位位1,则为负值,首位为0,则为正值。获得(-5,-10,-6),结合切片模板,能够复原第一个像素。向后再次读取5x3个位,发现三个通道的像素差值全部为正15,即M1的值,因此丢弃该5x3个位。而后向下读取8x3个位,即直接读取获得下一个像素的3个通道的值,直接复原出该像素。不断向下读取直到读取到某个8x3个位时,读取到的值全部为0,则丢弃该8x3个位。并切换为向下读取5x3个位的模式继续读取。由于RGB中(0,0,0)表示纯黑,而档案扫描中受印刷饱和度和光照影响,得到的档案扫描件中,黑部分将呈现为接近黑的深灰,而几乎不可能是纯黑。因此M2不会导致档案扫描件失真的情况。若某个位置的像素与切片模板的像素差值的3个通道都恰好为15,则不使用像素差值表示该像素,采用一个字节直接表示该像素。

相对于实施例一,本实施例使大量贷款合同41的扫描件占用的存储空间大幅度下降,降低了系统的存储负荷。

实施例三:

基于区块链的贷款合同在线签署系统,本实施例在实施例一的基础上,提供了改进的私钥签名12方案。请参阅附图5,证书模块20为企业10生成公私秘钥对的过程为:步骤C01)证书模块20生成加密数、调整数、解密数和限值,调整数为小数,解密数为正奇数,加密数、调整数和解密数的乘积等于2π的整倍数加1;步骤C02)限值为位数大于验证哈希值位数的十六进制正数,加密数为私钥,调整数、解密数和限值为公钥,关联企业10名称后公开,证书模块20使用加密通信将私钥发送给企业10。调整数为小数,记为正整数g,本实施例采用加密数为正整数,记为正整数g,解密数为正奇数,记为正奇数e,记d*e*g=(10^s*k*π)_N+1,其中s为预设正整数,k为正偶数,N表示括号内的数保留N位小数。本实施例中设置N=6,即计算中保留6位小数,s的值设置为5。证书模块20生成正小数d、正整数g和正奇数e分别为d=1012291.0217121,g=6,e=3,满足d*e*g=(10^s*k*π)_N+1=(29*10^5*2*π)_N+1=18221238.390819。即在6位小数的精度下,d*e*g的乘积是29*10^5个2π周期加1的值。业务数据开放单元20进行验证计算,任意举例cos(2.567)=-0.83941376,而cos(d*e*g*2.567)=cos(46773918.949232)= -0.83941104。误差为0.00000272,误差率为0.0003%。在误差范围内能够用于加解密。若要提高精度,则提高N的值即可。如设置N=100,将提供更高的精度。

请参阅附图6,企业10使用私钥签名12验证哈希值的过程包括:步骤D01)将验证哈希值和限值均以十进制表示;步骤D02)尝试生成辅助数,使辅助数的余弦值保留前M位小数恰好与验证哈希值的十进制表示相符;步骤D03)计算加密数、调整数与辅助数的乘积的余弦值作为密文,密文即为签名12。

更为有利的,将验证哈希值拆分为多个十六进制数,分别计算每个十六进制数的密文,全部密文拼接获得验证哈希值的密文。十六进制数的十进制值记为W,辅助数记为小数m,保留前M位小数即计算round(10^M*cos(m))。m的小数位数受到限制,即m的小数位数需要不超过s的值。即生成小数位数不超过s的辅助数m,round(10^M*cos(m))=W。而后计算C=(cos(d*g*m))_N作为密文。

某个截断的十六进制数为0x24,转换为十进制得到W=36。尝试生成小数m,使round(10^M*cos(m))=W。本实施例中截断的二进制数长度为1字节,即最大值为255,即W可能的最大长度为3位,因此M的值取3。尝试生成小数m,获得m=26.6673时,有cos(26.6673)=0.036229625079962。尝试生成m是方便快速的,且m的值并不唯一,因此本实施例提供的限时加密是一种密文不唯一的加密算法。比如m取值26.6675时,有cos(26.6675)=0.036029755658376,取值26.6674时,有cos(26.6674)=0.036129690549818,取值26.6676时,有cos(26.6676)=0.035929820406637。这些取值的共同特点是计算round(10^3*cos(m))均得到M=36的结果。同时m的小数位的位数均小于5。

选定m=26.6673,计算C=(cos(d*g*m))_N作为密文,cos(d*g*m)=cos(1012291.0217121*6*26.6673)=-0.859909163882019726095。保留6位小数,获得C=(cos(d*g*m))_N=-0.859909。将C=-0.859909作为二进制段的密文。全部二进制段的密文构成副本的密文。

请参阅附图7,存证模块60验证签名12的过程为:步骤E01)使用余弦函数的倍角公式计算解密数、加密数、调整数与辅助数的乘积的余弦值,取余弦值的前M位小数恰好获得验证哈希值的十进制表示,转换为十六进制获得复原的验证哈希值;步骤E02)将复原的验证哈希值与签署模块50提取的验证哈希值对比,若一致,则签名12验证通过,反之,则签名12验证不通过。

计算T=(cos(e*d*g*m)_N=(dup_e(C))_N,其中dup_e()表示余弦函数的e倍角公式,由d*e*g=(10^s*k*π)_N+1,则有T=(cos(10^s*k*π*m+m))_N=(cos(m))_N。计算round(10^M*T)即得验证哈希值片段的十六进制数的十进制表示W。全部验证哈希值片段被解密出来后,拼接即可获得完整的验证哈希值。

计算T=(cos(e*d*g*m)_N=(dup_e(C))_N=(cos(3*d*m)_N=(dup_3(C))_N。

已知余弦函数的倍角公式为:

cos(mx)=∑(-1)^k*m!/((2k)!*(m-2k)!)*(cosx)^(m-2k)*(sinx)^(2k),其中m为偶数,k∈[0,m/2]。

cos(mx)=∑(-1)^k*m!/((2k)!*(m-2k)!)*(cosx)^(m-2k)*(sinx)^(2k),其中m为奇数,k∈[0,(m-1)/2]。

获得dup_3(C)=4*C^3-3*C=0.036309602469642,取6位小数,得T=(dup_3(C))_N=0.036309,计算round(10^M*T)=round(10^3*T)=round(36.309)=36。即得W=36,将W=36转换为十六进制数,得到M=36=0x24。

本实施例中加密算法的安全性建立在计算给定数的余弦值快捷,且精度可自行设置,而从余弦值反向推算角度值则十分困难的规律之上。由余弦值反向推算角度值,有两种方式:穷举破解和反余弦函数计算。

穷举破解需要逐个遍历每个可能值,C=(cos(d*m))_N,其中有两个未知的变量,即d和m。尝试生成猜测值d’和猜测值m’,计算cos(d’*m’),使cos(d’*m’)恰好与公开的密文C相同。而m是小数,且s的值较大时,如s取值100,则m的小数位最长能够有100个。假设m的整数固定为常数,且d的值为常数,仅仅遍历m的小数。由于遍历100位小数位需要进行10^100次余弦函数运算。以1GHz的计算频率,需要用时10^91秒,约3*10^82年。以537212.00Tflops的算力进行计算时, Tflops为每秒万亿次浮点运算,认为余弦函数计算与单次浮点运算时间623相同,仍然需要的时间623仍为2*10^82秒,约6*10^73年。可见,通过增加s的值足以应对穷举破解。

由于反余弦函数arccos的值域为[-π/2,π/2],得到反余弦函数arccos的值后,还需要进行修正。即将arccos(C)的值与2*k*π相加。由于π为无理数,即有无数个小数位。m的值的小数位也不确定,因而无法确定m的值。更何况密文C仅保留了N位小数,超过N位的小数位被截断,是有损变换。使用C进行反余弦函数计算的结果本身即存在较大的误差。

相对于实施例一,本实施例通过证书模块20为企业10分配专属的公私秘钥对,其中使用私钥进行签名12能够作为身份证明,提供了不可抵赖的身份证明信息,借助区块链将带有签名12的贷款合同41进行存证,能够避免贷款合同41被篡改,提供真实性证明。

以上所述的实施例只是本发明的一种较佳的方案,并非对本发明作任何形式上的限制,在不超出权利要求所记载的技术方案的前提下还有其它的变体及改型。

本文发布于:2023-04-15 05:28:07,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/1/87607.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图