一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于区块链的扶贫贷款审批系统的制作方法

2022-07-16 22:35:48 来源:中国专利 TAG:


1.本发明涉及信息技术领域,具体涉及一种基于区块链的扶贫贷款审批系统。


背景技术:

2.扶贫贷款是由有关金融机构承担的一项政策性贷款业务,是我国扶贫开发的重要组成部分,发放的形式主要有两种:一种是到户的小额扶贫贷款;另一种是发放给龙头企业以及基础设施建设的扶贫贷款。扶贫贷款兼具政策性导向和商业性经营两种属性。在扶贫贷款的申请审批中,不仅要对贷款风险进行把控,还需要对申请企业的资质进行审核。而扶贫贷款的申请企业通常承载风险的能力比较低,固有资产通常比较少。因此扶贫贷款的审批难度较高。在扶贫贷款申请企业固有资产较少的情况下,掌握申请企业的经营情况,更有利于控制贷款风险,同时能够更为准确的判断申请企业是否符合扶贫贷款发放的条件。但目前缺乏能够获取企业经营数据的贷款审批系统。
3.中国专利cn114282990a是与本技术最接近的现有技术,其公开日为2022年4月5日,公开了一种基于区块链技术的贷款评估方法及其系统,涉及区块链技术领域,区块链网络至少包括车辆监控节点以及贷款评估节点,基于区块链技术的贷款评估方法包括:车辆监控节点获取车辆运行信息,并发送至贷款评估节点;根据预设收费标准,贷款评估节点对车辆运行信息进行计算,得到营业额信息;根据预设风险标准,贷款评估节点对营业额信息进行评估,得到贷款风险等级,并将贷款风险等级存入区块链网络中。其技术方案根据车辆监控信息获得企业的营业额信息,部分掌握了企业的经营数据,但并不适合用于扶贫贷款的审批。


技术实现要素:

4.本发明要解决的技术问题是:目前缺乏能够获取企业经营数据的贷款审批方案的技术问题。提出了一种基于区块链的扶贫贷款审批系统,能够结合企业经营数据,提供贷款审批依据,适合扶贫贷款的审批。
5.为解决上述技术问题,本发明所采取的技术方案为:一种基于区块链的扶贫贷款审批系统,包括业务数据接入单元、贷款申请接收单元、业务数据开放单元和审批单元,所述业务数据接入单元接收企业的经营业务数据,将经营业务数据关联接收的日期作为日经营数据,赋予日经营数据唯一编号,提取日经营数据的哈希值,将哈希值关联唯一编号后上传区块链存储,所述贷款申请接收单元接收扶贫贷款申请及申请材料,所述贷款申请接收单元向业务数据开放单元发送数据开放请求和接收公钥,制作开放起止日期内的全部日经营数据的副本,使用限时加密算法加密后存放在联网存储设备,将限时解密秘钥和存储地址使用接收公钥加密后上传到区块链存储,所述审批单元在预设的限时时长内轮询区块链,使用私钥解密获得限时解密秘钥和存储地址,从存储地址读取获得加密后的全部副本,使用限时解密秘钥解密获得全部副本的明文,所述审批单元将全部副本记载的日经营数据展示给审批人员。
6.作为优选,所述经营业务数据包括产品信息、资金往来信息和合同信息,所述产品信息包括产品名称、产品型号、产品类型和产品用途,所述资金往来信息包括企业资金往来对手名称、金额和时间,所述合同信息为企业签署业务合同的目录,所述目录记录合同名称、合同对象名称、合同对象行业、合同金额和签署时间。
7.作为优选,所述业务数据开放单元为每个数据开放请求生成限时加密秘钥和限时解密秘钥,使用限时加密秘钥分别加密起止日期内的全部副本,将加密后的副本关联对应日经营数据的唯一编号,将限时解密秘钥拆分为两个秘钥,将其中一个秘钥使用接收公钥加密后上传区块链存储,所述业务数据开放单元在区块链上发布智能合约,所述智能合约将另一个秘钥使用接收公钥加密后,关联金融机构名称显示,所述智能合约在限时时长到达后,停止显示秘钥。
8.作为优选,所述业务数据开放单元为每个数据开放请求生成限时数、公开数和解密数,使限时数、公开数和解密数的乘积等于2π的整倍数加1,公开数和解密数为限时解密秘钥,所述解密数为正奇数,所述业务数据开放单元将解密数使用接收公钥加密后上传区块链存储,将公开数、接收公钥、限时时长及金融机构名称提交所述智能合约,所述智能合约将公开数使用接收公钥加密,所述智能合约在限时时长内显示公开数的密文及金融机构名称。
9.作为优选,所述业务数据开放单元将副本转换为二进制流,将二进制流补位后截断为若干个预设长度的二进制数,转换为十进制并记为明文,尝试生成中间数,使密文的余弦值保留前指定位小数恰好为明文,同时保证中间数的小数位位数小于或等于限时数、公开数和解密数的乘积的整数位数,计算中间数与限时数乘积的余弦值作为密文,全部二进制数的密文关联序号打包构成副本的密文。
10.作为优选,金融机构轮询区块链,使用私钥解密获得解密数和副本的存储地址,读取获得副本的密文,在限时时长内读取智能合约并使用私钥解密获得公开数,使用余弦函数的倍角公式计算特征值,特征值等于中间值、限时数、公开数和解密数的乘积的余弦值,保留特征值的前指定位小数即得明文,将解密获得的全部明文转换为二进制并按照关联序号排序并去除补位获得解密后的副本。
11.作为优选,所述业务数据开放单元接收到新数据开放请求时,根据企业名称和开放起止日期,获得新数据开放请求涉及的日经营数据的副本集合,判断联网存储设备内是否存在与副本集合相符且过期时长大于限时时长的副本,若存在,则读取副本对应的限时数和公开数,生成第二公开数和第二解密数,满足第二公开数和第二解密数的乘积与公开数和解密数的乘积相同,所述第二解密数为正奇数,将限时数作为新数据开放请求的限时加密秘钥,第二公开数和第二解密数为新数据开放请求的限时解密秘钥,将第二公开数、新数据开放请求的接收公钥、新数据开放请求的限时时长及新数据开放请求的金融机构名称提交所述智能合约,所述智能合约将第二公开数使用新数据开放请求的接收公钥加密,所述智能合约在限时时长内显示第二公开数的密文及新数据开放请求的金融机构名称。
12.作为优选,新数据开放请求涉及尚未存入联网存储设备的副本时,读取相应日经营数据并制作副本,使用限时数加密后存入联网存储设备,获得新数据开放请求涉及的全部副本的存储地址,新数据开放请求对应的金融机构查询区块链,使用私钥解密获得第二解密数和全部副本的存储地址,读取获得副本的密文,在限时时长内读取智能合约并使用
私钥解密获得第二公开数,使用第二公开数和第二解密数解密获得全部副本的明文。
13.本发明的实质性效果是:将企业经营数据接入并通过区块链存证,使业务数据不可被篡改,为贷款审批提供业务数据能够降低贷款风险,借助限时加密技术有效管控企业经营数据的扩散范围,兼顾企业经营数据的安全。
附图说明
14.图1为实施例一扶贫贷款审批系统示意图。
15.图2为实施例一经营业务数据示意图。
16.图3为实施例一限时秘钥发送示意图。
17.图4为实施例一业务数据开放单元生成限时秘钥示意图。
18.图5为实施例一限时加密示过程意图。
19.图6为实施例一金融机构限时解密过程示意图。
20.图7为实施例二经营业务数据限时加解密过程示意图。
21.图8为实施例三限时加密智能合约进行加密过程示意图。
22.图9为实施例三限时加密智能合约进行解密过程示意图。
23.其中:10、贷款申请接收单元,11、数据开放请求,20、业务数据开放单元,30、业务数据接入单元,40、审批单元,50、区块链,60、经营业务数据,61、产品信息,62、资金往来信息,63、合同信息,611、产品名称,612、产品型号,613、产品类型,614、产品用途,621、对手名称,622、金额,623、时间,631、合同名称,632、合同对象名称,633、合同对象行业,634、合同金额,635、签署时间。
具体实施方式
24.下面通过具体实施例,并结合附图,对本发明的具体实施方式作进一步具体说明。
25.实施例一:一种基于区块链的扶贫贷款审批系统,请参阅附图1,包括业务数据接入单元30、贷款申请接收单元10、业务数据开放单元20和审批单元40,业务数据接入单元30接收企业的经营业务数据60,将经营业务数据60关联接收的日期作为日经营数据,赋予日经营数据唯一编号,提取日经营数据的哈希值,将哈希值关联唯一编号后上传区块链50存储,贷款申请接收单元10接收扶贫贷款申请及申请材料,建立贷款申请任务并赋予任务编号,提取申请材料的哈希值关联任务编号上传区块链50存储,贷款申请接收单元10向业务数据开放单元20发送数据开放请求11和接收公钥,数据开放请求11包括金融机构名称、企业名称和开放起止日期,业务数据开放单元20向将数据开放请求11转发给对应企业,对应的企业反馈确认后,业务数据开放单元20制作开放起止日期内的全部日经营数据的副本,将全部副本使用限时加密算法加密后存放在联网存储设备,存入联网存储设备的副本均赋予预设的过期时长,到达过期时长的副本将被删除,将限时解密秘钥和全部副本的存储地址使用接收公钥加密后上传到区块链50存储,审批单元40在预设的限时时长内轮询区块链50,使用私钥解密获得限时解密秘钥和存储地址,从存储地址读取获得加密后的全部副本,使用限时解密秘钥解密获得全部副本的明文,审批单元40将全部副本记载的日经营数据展示给审批人员,审批人员将审批单元40显示的日经营数据以及线下接收的贷款申请资料,共同作为
判断企业是否具有扶贫贷款申请资质的依据。
26.表1中记录了企业甲在6月份共30日的日经营数据,日经营数据以zip格式存储在存储设备di的目录中。表1记载了每个日经营数据的哈希值、区块高度和存储路径,方便进行检索。唯一编号有业务数据接入单元30统一赋予。哈希值采用sha256或者sm3算法,也可以两个哈希值均做提取和记录。
27.表1 企业甲的日经营数据唯一编号日期哈希值区块高度存储路径96235202106015d537

6b7922013657di/8/96235.zip9623620210602aa67b

4ed452013681di/8/96236.zip9623720210603fc2a7

17b412013762di/8/96237.zip
……………
9626420210629a8f8f

921d72015961di/8/96264.zip9626520210630e93b9

b90042016115di/8/96265.zip如表2所示,银行a作为承载扶贫贷款业务的金融机构之一,在7月份先后收到了若干个企业的扶贫贷款申请。为此银行a希望查看每个企业在6月份的实际经营数据,来了解企业的实际经营情况,获得企业偿债能力的评估。同时根据企业的实际经营数据,还有助于判断企业是否具有扶贫贷款的申请资质。具体为,根据企业的经营数据,判断企业是否购买或出售农产品或与农产品有关的产品,或者企业是否与从事农业行业的其他企业开展业务往来。通过查看企业的产品销售情况和企业资金往来的对手信息或者企业签署的合同信息63即可。
28.企业的经营数据有企业每日主动提交给业务数据接入单元30,每日提交的经营数据均会经过区块链50进行存证。业务数据接入单元30将保密收到的业务数据,除非收到了业务数据开放单元20的数据开放请求11。对请求者身份的核实由业务数据开放单元20进行。涉及企业商业秘密的经营数据,企业可以主动选择不上报业务数据接入单元30。然而为了尽可能获得贷款的审批,企业有动机在保护商业秘密的前提下,尽可能多的上报更多的经营数据,以增加业务量,进而获得金融机构更好的评价。
29.表2 银行a收到的扶贫贷款申请任务编号申请人申请材料哈希值区块高度10025691企业甲ki/1002/5691.zip2fcdb

38c80221230310025692企业乙ki/1002/5692.zip5a631

bb022221238010025693企业丙ki/1002/5693.zip7c4ef

f9e5a221246710025694企业丁ki/1002/5694.zip22f76

c2e1e221268210025695企业戊ki/1002/5695.zip1f184

c0c832212793当银行a收到企业甲的扶贫贷款申请后,将申请材料存储在指定位置,提取申请材料的哈希值上传区块链50存证,以备后续扶贫贷款获得行a向业务数据开放单元20发送业务数据开放请求11。业务数据开放请求11包括金融机构名称、企业名称、开放起止日期和接收公钥,即{银行a名称,企业甲,20210601-20210630,keypub:migfma

idaqab},公钥使用pkcs#8格式公私钥对,直接写入在业务数据开放请求11中。业务数据开放单元20收到上述的业务数据开放请求11后,将业务数据开放请求11发送给企业甲。企业甲因向银行a申请了
扶贫贷款,因而反馈同意了该业务数据开放请求11。而后业务数据开放单元20开始执行业务数据开放操作。
30.业务数据开放单元20读取日期20210601至日期20210630的全部日经营数据,并制作每个日经营数据的副本,共获得30个副本。记为副本df1至副本df30。为本次业务数据开放请求11生成限时加密秘钥和限时解密秘钥,使用限时加密秘钥加密副本df1至副本df30后,将加密后的副本df1至副本df30存储在联网存储设备中,获得副本df1至副本df30的网络存储地址。从而允许银行a通过网络读取加密后的副本df1至副本df30。本实施例中为银行a设置的限时时长为5天。即若5天内银行a惰于查看企业甲的经营数据,则银行a将无法查看本次生成的加密副本。此时银行a需要再次发起业务数据开放请求11,并再次经企业甲审核同意后才有机会再次查看企业甲的经营数据。若银行a的审批单元40在5日内轮询区块链50,获得限时解密秘钥,而后读取联网存储设备中加密的副本df1至副本df30。银行a使用限时解密秘钥分别解密副本df1至副本df30,即可获得原文状态下的副本df1至副本df30。银行a的审批单元40将副本df1至副本df30记载的经营数据和申请材料共同展示给审批人员。
31.请参阅附图2,经营业务数据60包括产品信息61、资金往来信息62和合同信息63,产品信息61包括产品名称611、产品型号612、产品类型613和产品用途614,资金往来信息62包括企业资金往来对手名称621、金额622和时间623,合同信息63为企业签署业务合同的目录,目录记录合同名称631、合同对象名称632、合同对象行业633、合同金额634和签署时间635。
32.表3 企业甲的产品信息61产品名称611产品型号612产品类型613产品用途614玉米种子高产a1型农作物种子种植农作物玉米种子高产a3型农作物种子种植农作物玉米种子糯性960型农作物种子种植农作物玉米种子糯性965型农作物种子种植农作物水稻种子高产a1型农作物种子种植农作物水稻种子高产a2型农作物种子种植农作物水稻种子高产a3型农作物种子种植农作物水稻种子粳稻730型农作物种子种植农作物如表3所示,记载了企业甲的8种产品,分别为玉米种子和水稻种子。通过企业甲的产品信息61即可判定企业甲为涉及农业的企业。若企业甲的经营所在地为划定的贫困地区,则可以判定企业甲具有扶贫贷款申请的资质。
33.表4 企业甲的资金往来信息62对手名称621金额622时间623农业科学研究院b-60,000.0020210603生产社c120,000.0020210604包装用品公司d-5,600.0020210612种子经销公司e150,000.0020210622种子经销公司f80,000.0020210628表4记载了企业甲的资金往来信息62,资金往来信息62有企业主动提交给业务数
据接入单元30,是由企业的实际资金往来信息62中,将对手名称621、金额622和时间623截取而来。表4中记载了企业甲在日期20210603向农业科学研究院b支付了6万元的研发委托费用。在日期20210604由生产社c收入了12万元种子销售收入。在日期20210612向包装用品公司d支付了5千6百元的包装材料费用。在日期20210622由种子经销公司e收入了15万元的种子销售收入。在日期20210628由种子经销公司f收入了8万元的种子销售收入。可见企业甲在6月份共收入28万4千4百元,具有相应的偿债能力。相应的合同目录如表5所示。
34.表5 企业甲的业务合同的目录合同名称631合同对象名称632合同对象行业633合同金额634签署时间635委托研发农业科学研究院b农业60,000.0020210603种子销售生产社c农业120,000.0020210604包装采购包装用品公司d包装业5,600.0020210612种子销售种子经销公司e农业150,000.0020210622种子销售种子经销公司f农业80,000.0020210628由表3至表5记载的经营数据能够从企业甲实际经营产生的直接数据上,反映企业甲的经营情况,为贷款审批提供更为可信和细致的参考信息。有助于银行a更为可靠的掌控贷款风险,同时更为准确的判断企业甲是否具有申请扶贫贷款的资质。
35.请参阅附图3,业务数据开放单元20生成并将限时秘钥发送给金融机构的过程包括:步骤a01)业务数据开放单元20为每个数据开放请求11生成限时加密秘钥和限时解密秘钥;步骤a02)使用限时加密秘钥分别加密起止日期内的全部副本,将加密后的副本关联对应日经营数据的唯一编号;步骤a03)将限时解密秘钥拆分为两个秘钥,将其中一个秘钥使用接收公钥加密后上传区块链50存储;步骤a04)业务数据开放单元20在区块链50上发布智能合约,智能合约将另一个秘钥使用接收公钥加密后,关联金融机构名称显示,智能合约在限时时长到达后,停止显示秘钥。
36.表6 智能合约记载内容秘钥金融机构名称限时时长swrfy

z2sha银行a4天lscqq

db8io银行a3天p7xvb

wa0g5银行a2天tfisj

cczzg银行a3天如表6所示,智能合约记载了加密后的秘钥、金融机构名称和限时时长。其中加密后的秘钥和金融机构名称公开显示,限时时长则可隐藏。每日限时时长自减一,当限时时长减至0时,智能合约将删除对应的条目,使加密后的秘钥和金融机构名称不再被显示。
37.请参阅附图4,业务数据开放单元20生成限时秘钥的过程包括:步骤b01)业务数据开放单元20为每个数据开放请求11生成限时数、公开数和解密数,使限时数、公开数和解密数的乘积等于2π的整倍数加1,公开数和解密数为限时解密秘钥,解密数为正奇数,限时数为正小数,即为正小数d,公开数为小数或者整数,本实施例采用公开数为正整数,记为正整数g,解密数为正奇数,记为正奇数e,记d*e*g=(10^s*k*π)_n 1,其中s为预设正整数,k为正偶数,n表示括号内的数保留n位小数,小数d为限时加密秘钥;步骤b02)正整数g和正奇数e为限时解密秘钥,业务数据开放单元20将正奇数e使用接收公钥加密后上传区块链50存储;
步骤b03)将正整数g、接收公钥、限时时长及金融机构名称提交智能合约;步骤b04)智能合约将正整数g使用接收公钥加密,智能合约在限时时长内显示正整数g的密文及金融机构名称。
38.本实施例中设置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,将提供更高的精度。
39.本实施例中加密算法的安全性建立在计算给定数的余弦值快捷,且精度可自行设置,而从余弦值反向推算角度值则十分困难的规律之上。由余弦值反向推算角度值,有两种方式:穷举破解和反余弦函数计算。
40.穷举破解需要逐个遍历每个可能值,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的值足以应对穷举破解。
41.由于反余弦函数arccos的值域为[-π/2,π/2],得到反余弦函数arccos的值后,还需要进行修正。即将arccos(c)的值与2*k*π相加。由于π为无理数,即有无数个小数位。m的值的小数位也不确定,因而无法确定m的值。更何况密文c仅保留了n位小数,超过n位的小数位被截断,是有损变换。使用c进行反余弦函数计算的结果本身即存在较大的误差。
[0042]
请参阅附图5,使用限时加密秘钥加密副本的过程包括:步骤c01)业务数据开放单元20将副本转换为二进制流,将二进制流补位后截断为若干个预设长度的二进制数,记为m;步骤c02)尝试生成小数m,使round(10^h*cos(m))=m,h为m取最大值时在十进制下的位数,round()函数为四舍五入取整函数,同时保证m的小数位的位数小于或等于s;步骤c03)计算c=(cos(d*m))_n作为密文,全部二进制数的密文关联序号打包构成副本的密文。
[0043]
某个截断的二进制数为0010 0100,转换为十进制得到m=36。尝试生成小数m,使round(10^h*cos(m))=m。本实施例中截断的二进制数长度为1字节,即最大值为255,即m可能的最大长度为3位,因此h的值取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。
[0044]
选定m=26.6673,计算c=(cos(d*m))_n作为密文,cos(d*m)=cos
(1012291.0217121*26.6673)=-0.90715863476983。保留6位小数,获得c=(cos(d*m))_n=-0.907158。将c=-0.907158作为二进制段的密文。全部二进制段的密文构成副本的密文。
[0045]
请参阅附图6,金融机构限时解密过程包括:步骤d01)金融机构轮询区块链50,使用私钥解密获得正奇数e和副本的存储地址;步骤d02)读取获得副本的密文,在限时时长内读取智能合约并使用私钥解密获得正整数g;步骤d03)计算t=(cos(e*d*g*m)_n=(dup_eg(c))_n,其中dup_eg()表示余弦函数的e*g倍角公式,由d*e*g=(10^s*k*π)_n 1,有t=(cos(10^s*k*π*m m))_n=(cos(m))_n;步骤d04)计算round(10^h*t)即得二进制数m;步骤d05)将解密获得的全部二进制数m按照关联序号排序并去除补位获得解密后的副本。
[0046]
金融机构轮询区块链50获得正奇数e=3和副本的存储地址,在限时时长内查询智能合约获得正整数g的值为6,计算t=(cos(e*d*g*m)_n=(dup_eg(c))_n=(cos(18*d*m)_n=(dup_18(c))_n。
[0047]
已知余弦函数的倍角公式为:cos(mx)=∑(-1)^k*m!/((2k)!*(m-2k)!)*(cosx)^(m-2k)*(sinx)^(2k),其中m为偶数,k∈[0,m/2]。
[0048]
cos(mx)=∑(-1)^k*m!/((2k)!*(m-2k)!)*(cosx)^(m-2k)*(sinx)^(2k),其中m为奇数,k∈[0,(m-1)/2]。
[0049]
获得dup_18(c)=4*((-1 2*c^2)(16*c^4-16*c^2 1))^3-3*(-1 2*c^2)(16*c^4-16*c^2 1)=0.036309602469642。取6位小数,得t=(dup_18(c))_n=0.036309,计算round(10^h*t)=round(10^3*t)=round(36.309)=36。即得m=36,将m=36转换为8位二进制数,得到m=36=0010 0100b。将全部m转换为二进制按顺序排列,并去除补位后,获得完整的副本的二进制流,进而获得明文状态下的副本。
[0050]
本实施例的有益技术效果是:将企业经营数据接入并通过区块链50存证,使业务数据不可被篡改,为贷款审批提供业务数据能够降低贷款风险,借助限时加密技术有效管控企业经营数据的扩散范围,兼顾企业经营数据的安全。
[0051]
实施例二:一种基于区块链的扶贫贷款审批系统,相对于实施例一,本实施例提供了提高限时加密效率的具体技术方案。请参阅附图7,包括:步骤e01)业务数据开放单元20接收到新数据开放请求11时,根据企业名称和开放起止日期,获得新数据开放请求11涉及的日经营数据的副本集合。
[0052]
表7 已存在的加密后的副本企业名称日期过期时长企业甲2021060120天企业甲2021060220天
………
企业甲2021063020天企业乙2021060119天企业乙2021060219天
………
企业乙2021063019天
如表7所示,由于银行a请求过企业甲和企业乙的经营数据开放,因此联网存储设备中,将存在企业甲和企业乙在日期20210601至20210630的全部加密后的副本。由于联网存储设备保存数据的时长为30天。即存入联网存储设备的数据,将在30天后被删除,无论是否存在仍在限时时长内的业务数据开放请求11。
[0053]
步骤e02)判断联网存储设备内是否存在与副本集合相符且过期时长大于限时时长的副本,若存在,则执行步骤e03)读取副本对应的正小数d和正整数g;步骤e04)生成第二公开数和第二解密数,满足第二公开数和第二解密数的乘积与公开数和解密数的乘积相同,第二公开数记为g2,第二解密数记为e2,满足d*e2*g2=d*e*g=(10^s*k*π)_n 1,g2≠g,e2≠e;步骤e05)将小数d作为新数据开放请求11的限时加密秘钥,正整数g2和正奇数e2为新数据开放请求11的限时解密秘钥;步骤e06)将正整数g2、新数据开放请求11的接收公钥、新数据开放请求11的限时时长及新数据开放请求11的金融机构名称提交智能合约;步骤e07)智能合约将正整数g2使用新数据开放请求11的接收公钥加密,智能合约在限时时长内显示正整数g2的密文及新数据开放请求11的金融机构名称。
[0054]
在银行a请求企业甲经营数据开放后的第10天,又有一家银行请求企业甲在日期20210601至20210630的经营业务数据60。此时业务数据开放单元20根据企业名称和开放起止日期,获得新数据开放请求11涉及的日经营数据的副本集合。查询联网存储设备将发现已经存在加密后的企业甲在日期20210601至20210630的副本。为此没有必要再次制作企业甲在日期20210601至20210630的副本并再次加密。但需要生成共享限时加密秘钥的限时解密秘钥。
[0055]
具体包括,生成正整数g2和正奇数e2,满足d*e2*g2=(10^s*k*π)_n 1,本实施例中生成g2=2,e2=9。将小数d=1012291.0217121作为新数据开放请求11的限时加密秘钥,使用d加密新数据开放请求11的副本。
[0056]
步骤e08)新数据开放请求11涉及的副本尚未存入联网存储设备,则读取相应日经营数据并制作副本,使用正小数d加密后存入联网存储设备,获得新数据开放请求11涉及的全部副本的存储地址。
[0057]
对于同样的二进制段0010 0100b,其十进制值为m=36,已知其密文c=-0.907158,使用g2=2,e2=9解密的过程为。计算t=(cos(e*d*g*m)_n=(dup_eg(c))_n=(cos(18*d*m)_n=(dup_18(c))_n。
[0058]
dup_18(c)=4*((-1 2*c^2)(16*c^4-16*c^2 1))^3-3*(-1 2*c^2)(16*c^4-16*c^2 1)=0.036309602469642。取6位小数,得t=(dup_18(c))_n=0.036309,计算round(10^h*t)=round(10^3*t)=round(36.309)=36。即得m=36,将m=36转换为8位二进制数,得到m=36=0010 0100b。将全部m转换为二进制按顺序排列,并去除补位后,获得完整的副本的二进制流,进而获得明文状态下的副本。
[0059]
新数据开放请求11还请求开放企业甲在日期20210701至20210705这5天的经营数据,新数据开放请求11涉及的副本尚未存入联网存储设备。因此业务数据开放单元20读取相应日经营数据并制作副本,使用正小数d加密后存入联网存储设备,将存储地址使用新数据开放请求11的接收公钥加密后上传区块链50存储。
[0060]
步骤e09)新数据开放请求11对应的金融机构查询区块链50,使用私钥解密获得正奇数e2和全部副本的存储地址,读取获得副本的密文,在限时时长内读取智能合约并使用
私钥解密获得正整数g2,使用正整数g2和正奇数e2解密获得全部副本的明文。银行a由于无法获得新的副本的存储地址,因此无法获得副本的密文,自然无法解密获得企业甲在日期20210701至20210705这5天的经营数据。相对于实施例一,本实施例能够使在后的数据开放请求11共用在先的数据开放请求11的限时加密秘钥,但使用不同的限时解密秘钥,从而对已经加密的副本,不再需要再次进行加密,提高了获得副本密文的效率。
[0061]
实施例三:一种基于区块链的扶贫贷款审批系统,包括业务数据接入单元30、贷款申请接收单元10、业务数据开放单元20和审批单元40,包括业务数据接入单元30、贷款申请接收单元10和审批单元40与实施例一相同。区别在于本实施例中业务数据开放单元20使用限时加密算法加密副本的过程包括:业务数据开放单元20在区块链上发布限时加密智能合约,限时加密智能合约包括加密接收栏、解密接收栏、输出栏和若干个加解密栏。如表8所示,加解密栏包括栏标识、加密函数和时钟,时钟记录加密函数的更新剩余时长,更新剩余时长为0时,加解密栏更新加密函数并重置时钟。业务数据开放单元20使用对称加密算法加密副本,对称加密秘钥为key,将key提交限时加密智能合约进行加密,获得秘钥key的密文。将秘钥key的密文关联加密后的副本存储地址使用接收公钥加密,并关联调用者标识上传区块链存储。银行轮询区块链,使用私钥解密获得秘钥key的密文和加密后的副本。将秘钥key的密文提交限时加密智能合约,解密获得秘钥key。使用秘钥key解密副本获得副本的明文。加密函数为现有技术披露的对称加密算法,如des、 3des(tripledes)和aes。加解密栏使用的加密秘钥由限时加密智能合约随机生成,并在时钟倒计时为0时,更新使用的加密秘钥,完成加密函数的更新。
[0062]
表8限时加密智能合约示意图加解密栏1{栏标识1,加密函数1,时钟1}加解密栏2{栏标识2,加密函数2,时钟2}
……
加解密栏60{栏标识60,加密函数60,时钟60}加密接收栏{5,data1.pub_key1}解密接收栏null输出栏null加密接收栏收到的数据为{30d,data1.pub_key1},检查发现没有加解密栏的时钟与5天相符,因此限时加密智能合约,将处于初始状态的加解密栏5的时钟设置为5天,时钟为倒计时时钟,当加解密栏5的时钟倒计时至0时,加解密栏5将更新加密函数并重置时钟。在时钟倒计时至0前,加密函数不变,因此能够加密数据data1,同样的,也能够将加密后的数据解密回明文。但加解密栏5的时钟一旦倒计时至0,加密函数将被更新。此时再提交旧的加密函数加密过的data1,就无法正确解密。当第10天时,加解密栏5的时钟倒计时至20天,此时加密接收栏收到了限时时长为20天的数据。于是限时加密智能合约就将新写入的数据,交由加解密栏5进行加密。
[0063]
限时加密智能合约进行加密时,请参阅附图8,执行以下步骤:步骤f01),当加密接收栏被写入数据时,检查写入的数据是否包含限时时长、待加密数据和接收公钥,若缺少限时时长、待加密数据或接收公钥则不做操作,反之,则使用限时加密智能合约的私钥解密获
得待加密数据,进入步骤f02)进行加密;步骤f02),检查全部加解密栏的时钟,若存在时钟与限时时长相符,则将待加密数据关联加密标识符,提交给对应的加解密栏,获得经加解密栏的加密函数加密后的数据;步骤f03),限时加密智能合约使用私钥签名栏标识、限时时长和时间戳,将加密后的数据关联签名后,作为限时密文,将限时密文使用加密接收栏内的接收公钥加密后,写入输出栏,业务数据开放单元20读取输出栏,使用相应私钥解密获得限时密文。
[0064]
限时加密智能合约进行解密时,请参阅附图9,执行以下步骤:步骤g01),当解密接收栏被写入数据时,检查写入的数据是否包含经限时加密智能合约公钥加密后的限时密文和接收公钥,若缺少限时密文或接收公钥,则不做操作,反之,则进入步骤g02);步骤g02),使用限时加密智能合约的私钥解密获得限时密文,使用限时加密智能合约的公钥解密限时密文中的签名,获得栏标识、限时时长和时间戳;步骤g03),限时加密智能合约判断当前时刻距离签名中的时间戳是否超出限时时长,若超出则将超时标识符写入输出栏,反之,则进入步骤g04);步骤g04),将加密后的数据关联解密标识符后,提交给签名中栏标识对应的加解密栏,获得经加解密栏的加密函数解密的数据,将数据使用接收公钥加密后,写入输出栏。
[0065]
限时加密智能合约的加密接收栏、解密接收栏或输出栏被写入数据时,限时加密智能合约锁定加密接收栏、解密接收栏和输出栏,在预设的时长内,加密接收栏、解密接收栏和输出栏不接受新数据的写入,当加密接收栏写入的数据缺少限时时长、待加密数据或公钥时,限时加密智能合约立即解除加密接收栏、解密接收栏和输出栏的锁定,当解密接收栏写入的数据缺少限时密文或公钥时,限时加密智能合约立即解除加密接收栏、解密接收栏和输出栏的锁定。
[0066]
相对于实施例一和实施例二,本实施例记载的限时加密方案,在加解密过程中,均不会泄露任何有关加密函数的信息,具有更高的安全性。但因加解密均需要限时加密智能合约在区块链上完成,导致对区块链资源的占用比较多。在区块链业务比较拥挤时,会影响限时加解密的时效。
[0067]
以上所述的实施例只是本发明的一种较佳的方案,并非对本发明作任何形式上的限制,在不超出权利要求所记载的技术方案的前提下还有其它的变体及改型。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献