一种基于区块链的经营数据限时开放系统转让专利

申请号 : CN202210419160.4

文献号 : CN114510737B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张金琳俞学劢高航

申请人 : 浙江数秦科技有限公司

摘要 :

本发明涉及信息技术领域,具体涉及一种基于区块链的经营数据限时开放系统,包括接入单元、索引单元、开放申请单元和限时加密单元,接入单元接收店铺登记和店铺的经营数据,索引单元为经营数据分配编码,建立经营数据索引,经营数据索引记录经营数据的店铺名称、店铺类型、店铺位置、秘钥Key、存储地址、存证哈希值和区块高度,开放申请单元接收请求者发送的开放申请,在开放时长内将秘钥Key提交限时加密单元加密,获得开放密文,请求者在限时内解密开放密文,获得秘钥Key,解密获得明文经营数据。本发明的实质性效果是:提高经营数据的安全性,使经营数据具有更高的应用价值。

权利要求 :

1.一种基于区块链的经营数据限时开放系统,其特征在于,

包括接入单元、索引单元、开放申请单元和限时加密单元,所述接入单元接收店铺登记和店铺的经营数据,所述店铺登记包括店铺名称、店铺类型、店铺位置、店主名称和白名单,店铺周期性上传经营数据,所述索引单元为经营数据分配编码,将经营数据加密后存储并记录加密的秘钥Key以及存储地址,提取经营数据的哈希值,作为存证哈希值上传区块链存储,获得对应的区块高度,建立经营数据索引,所述经营数据索引记录经营数据的店铺名称、店铺类型、店铺位置、秘钥Key、存储地址、存证哈希值和区块高度,所述开放申请单元接收请求者发送的开放申请,所述开放申请包括请求者身份标识、数据条件和开放时长,所述数据条件包括对经营数据的店铺名称、店铺类型或店铺位置中的一个或多个的限定条件,所述开放申请单元列举数据条件涉及的店铺,剔除不符合白名单的店铺,根据最终店铺数量及开放时长生成账单,请求者将相应数量的通证转入开放申请单元公布的虚拟钱包地址后,所述开放申请单元在开放时长内,周期性将开放申请涉及的经营数据的秘钥Key提交限时加密单元加密,获得开放密文,将开放密文发送给请求者,请求者在限时内解密所述开放密文,获得秘钥Key,读取经营数据并使用秘钥Key解密获得明文经营数据,提取经营数据的哈希值与区块链上存储的存证哈希值比对,获得经营数据的真实性证明;

所述限时加密单元在区块链上发布限时加密智能合约,所述限时加密智能合约包括若干个加密栏,所述加密栏包括栏标识、时钟和提示栏,所述提示栏展示m个样本点(xi,yi),i∈[1,m],所述时钟为倒计时时钟,当时钟倒计时至0时,所述加密栏更新提示栏,并重置时钟,所述限时加密单元为每个加密栏关联一个整数n,生成一元多项式,所述一元多项式经过提示栏中的m个样本点中的n个,计算剩余其余样本点与所述一元多项式的距离,距离和记为样本距离,样本距离最小的一元多项式作为加密栏的加密多项式,所述索引单元为店铺名称、店铺类型及店铺位置分配编码,生成日期编号,所述接入单元收到经营数据时,将店铺名称、店铺类型及店铺位置的编码拼接,而后拼接经营数据对应日期的编号,构成经营数据的编码,将经营数据使用秘钥Key加密并关联编码后上传区块链存储,所述开放申请单元将经营数据的秘钥Key提交限时加密单元,所述限时加密单元将秘钥Key分别使用每个加密栏的加密多项式加密后作为开放密文,将开放密文关联栏标识及经营数据的编码上传区块链存储,请求者将账单相应数量的通证转入开放申请单元公布的虚拟钱包地址后,所述开放申请单元将开放申请涉及的店铺名称、店铺类型及店铺位置的编码以及开放时长起始日期的编号发送给请求者,所述开放申请单元将时钟与开放时长相符的加密栏的栏标识及相应的整数n发送给请求者,在开放时长内,请求者轮询区块链,获得相符的经营数据及开放密文,读取m个样本点,穷举过提示栏中m个样本点中的n个一元多项式,获得样本距离最小的一元多项式作为复原多项式,使用复原多项式解密开放密文获得秘钥Key,使用秘钥Key解密获得经营数据。

2.根据权利要求1所述的一种基于区块链的经营数据限时开放系统,其特征在于,所述经营数据以天为周期生成并上传所述接入单元,所述经营数据包括店铺名称、店铺类型、店铺位置、经营日人流量、经营日销售额及经营日每小时顾客数量,所述开放申请单元根据数据条件涉及的店铺数量及开放时长,获得开放申请涉及的经营数据数量,将涉及的经营数据数量与预设单价相乘获得开放申请需支付的通证数量。

3.根据权利要求1所述的一种基于区块链的经营数据限时开放系统,其特征在于,使用加密多项式加密秘钥Key时,限时加密智能合约执行以下步骤:将秘钥Key转换为二进制流,按预设规则补位后,截断为若干个预设长度的二进制段,将二进制段转换为整数D;

生成数据组合(b1,x1,b2,x2,…,bN,xN,△),bi为正整数,使得D=∑(‑1)^bi*floor(bi/2)*f(xi)+△,其中i∈[1,N],△为修正值,floor()为向下取证函数;

将数据组合按顺序组合作为密文Key,f(xi)表示自变量取值xi下一元多项式的值。

4.根据权利要求3所述的一种基于区块链的经营数据限时开放系统,其特征在于,限时加密智能合约为加密栏设置取值集合H,使xi∈H,为每个加密栏关联速查表,所述速查表记录取值集合H内每个自变量对应的加密函数的函数值,生成数据组合时,从速查表中选择若干个函数值经过带系数求和后,使和与整数D的差值在预设范围内,获得若干个函数对应的自变量xi的值,使用若干个自变量xi的值建立数据组合(b1,x1,b2,x2,…,bN,xN,△) ,使得D=∑(‑1)^bi*floor(bi/2)*f(xi)+△。

5.根据权利要求3所述的一种基于区块链的经营数据限时开放系统,其特征在于,所述限时加密单元将全部加密栏的加密多项式设置为联动加密多项式,全部加密栏的联动加密多项式加密相同的秘钥Key的密文相同,限时加密单元设置联动加密多项式时,执行以下步骤:限时加密单元生成主加密多项式和循环取值序列;

设置取值数量k,周期性从循环取值序列中读取k个取值;

当前周期对应的k个取值构成单周期取值集合,秘钥Key对应的整数D的数据组合中,自变量xi取值自单周期取值集合;

所述限时加密单元根据每个加密栏的时钟,获得时钟倒计时至0前,所涉及的全部单周期取值集合,全部单周期取值集合构成栏集合;

为加密栏生成联动加密多项式,所述联动加密多项式在自变量取值属于栏集合时,联动加密多项式的函数值与主加密多项式的函数值相同;

为加密栏的提示栏生成m个样本点和整数n,使得过m个样本点中的n个的一元多项式中样本距离最小的一元多项式与联动多项式相同;

当所述限时加密单元收到待加密的秘钥Key时,读取当前的单周期取值集合,使用主加密多项式并在单周期取值集合内生成自变量xi的取值,加密秘钥Key,密文作为开放密文,将开放密文关联栏标识及经营数据的编码上传区块链存储;

加密栏的时钟倒计时至0时,重置时钟,所述限时加密单元获得重置后的时钟倒计时至

0前,所涉及的全部单周期取值集合,更新栏集合,生成更新后栏集合对应的联动多项式;

更新加密栏的提示栏的m个样本点和整数n的值,使得过m个样本点中的n个的一元多项式中样本距离最小的一元多项式与更新后的联动多项式相同。

说明书 :

一种基于区块链的经营数据限时开放系统

技术领域

[0001] 本发明涉及信息技术领域,具体涉及一种基于区块链的经营数据限时开放系统。

背景技术

[0002] 企业及商店的经营数据分析是指在经营数据的基础上,完成多种指标的计算或评估。这些指标反映了企业及商店的经营现状、短期或者长期的盈利能力。经营数据不仅是管理者或经营者制定经营策略的根据,也是投资者评估投资价值和作出投资决定的重要判断依据。目前具有一定规模的企业,其财务制度较为健全且管理规范,经营数据分析通常委托具有资质的第三方进行统计和分析,完成分析报告。经营数据分析报告用于经营决策或者吸引投资,是企业经营的重要活动内容。然而经营数据由企业提供,经过统计及计算使经营数据的细节不能呈现在分析报告中。且存在部分经营数据缺乏真实性证明,影响经营数据分析报告效力。提供原始的经营数据则会影响企业保密数据的安全。对于不成规模的商店而言,由于缺乏健全的财务制度,经营数据可信度不高,通常不具备完成经营数据分析的条件。区块链是一种分布式的可信账本,存储于其上的数据具有不可篡改和透明可溯源的特性,能够天然的提供可信证明。结合区块链技术提供新的经营数据利用方案,成为业内新的研究课题。
[0003] 如中国专利CN108629013A,公开日2018年10月9日,公开了一种基于区块链的企业数据收集和展示的方法。该方法包括抛出合约;智能推荐合约给矿工,矿工自主选择发布的合约信息;对合约进行采信;将采信的合约组成企业区块,嵌入企业区块链内;将承载着新区块的区块链信息发布到所有节点。将企业数据以合约的方式打包发送,矿工会自主选择智能推荐的合约,对合约进行采信,符合要求的合约构成新的区块,并嵌入到区块链内,广播至其他节点,与其他区块内的合约形成关联关系,由区块链之间的广播方式,实现便捷地进行企业数据结构化收集和展示,并将原先的合约与新合约通过区块内合约的方式进行关联。其技术方案完善企业数据以及进一步促进企业之间的联结。但其未采用保密措施,不适合用于向投资者展示经营情况。

发明内容

[0004] 本发明要解决的技术问题是:目前缺乏兼顾数据安全的经营数据共享方案的技术问题。提出了一种基于区块链的经营数据限时开放系统,提高了经营数据的可信度且有助于管控经营数据的扩散范围。
[0005] 为解决上述技术问题,本发明所采取的技术方案为:一种基于区块链的经营数据限时开放系统,包括接入单元、索引单元、开放申请单元和限时加密单元,所述接入单元接收店铺登记和店铺的经营数据,所述店铺登记包括店铺名称、店铺类型、店铺位置、店主名称和白名单,店铺周期性上传经营数据,所述索引单元为经营数据分配编码,将经营数据加密后存储并记录加密的秘钥Key以及存储地址,提取经营数据的哈希值,作为存证哈希值上传区块链存储,获得对应的区块高度,建立经营数据索引,所述经营数据索引记录经营数据的店铺名称、店铺类型、店铺位置、秘钥Key、存储地址、存证哈希值和区块高度,所述开放申请单元接收请求者发送的开放申请,所述开放申请包括请求者身份标识、数据条件和开放时长,所述数据条件包括对经营数据的店铺名称、店铺类型或店铺位置中的一个或多个的限定条件,所述开放申请单元列举数据条件涉及的店铺,剔除不符合白名单的店铺,根据最终店铺数量及开放时长生成账单,请求者将相应数量的通证转入开放申请单元公布的虚拟钱包地址后,所述开放申请单元在开放时长内,周期性将开放申请涉及的经营数据的秘钥Key提交限时加密单元加密,获得开放密文,将开放密文发送给请求者,请求者在限时内解密所述开放密文,获得秘钥Key,读取经营数据并使用秘钥Key解密获得明文经营数据,提取经营数据的哈希值与区块链上存储的存证哈希值比对,获得经营数据的真实性证明。
[0006] 作为优选,所述经营数据以天为周期生成并上传所述接入单元,所述经营数据包括店铺名称、店铺类型、店铺位置、经营日人流量、经营日销售额及经营日每小时顾客数量,所述开放申请单元根据数据条件涉及的店铺数量及开放时长,获得开放申请涉及的经营数据数量,将涉及的经营数据数量与预设单价相乘获得开放申请需支付的通证数量。
[0007] 作为优选,所述限时加密单元在区块链上发布限时加密智能合约,所述限时加密智能合约包括若干个加密栏,所述加密栏包括栏标识、时钟和提示栏,所述提示栏展示m个样本点(xi,yi),i∈[1,m],所述时钟为倒计时时钟,当时钟倒计时至0时,所述加密栏更新提示栏,并重置时钟,所述限时加密单元为每个加密栏关联一个整数n,生成一元多项式,所述一元多项式经过提示栏中的m个样本点中的n个,计算剩余其余样本点与所述一元多项式的距离,距离和记为样本距离,样本距离最小的一元多项式作为加密栏的加密多项式,所述索引单元为店铺名称、店铺类型及店铺位置分配编码,生成日期编号,所述接入单元收到经营数据时,将店铺名称、店铺类型及店铺位置的编码拼接,而后拼接经营数据对应日期的编号,构成经营数据的编码,将经营数据使用秘钥Key加密并关联编码后上传区块链存储,所述开放申请单元将经营数据的秘钥Key提交限时加密单元,所述限时加密单元将秘钥Key分别使用每个加密栏的加密多项式加密后作为开放密文,将开放密文关联栏标识及经营数据的编码上传区块链存储,请求者将账单相应数量的通证转入开放申请单元公布的虚拟钱包地址后,所述开放申请单元将开放申请涉及的店铺名称、店铺类型及店铺位置的编码以及开放时长起始日期的编号发送给请求者,所述开放申请单元将时钟与开放时长相符的加密栏的栏标识及相应的整数n发送给请求者,在开放时长内,请求者轮询区块链,获得相符的经营数据及开放密文,读取m个样本点,穷举过提示栏中m个样本点中的n个一元多项式,获得样本距离最小的一元多项式作为复原多项式,使用复原多项式解密开放密文获得秘钥Key,使用秘钥Key解密获得经营数据。
[0008] 作为优选,使用加密多项式加密秘钥Key时,限时加密智能合约执行以下步骤:将秘钥Key转换为二进制流,按预设规则补位后,截断为若干个预设长度的二进制段,将二进制段转换为整数D;生成数据组合(b1,x1,b2,x2,…,bN,xN,△),bi为正整数,使得D=∑(‑1)^bi*floor(bi/2)*f(xi)+△,其中i∈[1,N],△为修正值,floor()为向下取证函数;将数据组合按顺序组合作为密文Key。
[0009] 作为优选,限时加密智能合约为加密栏设置取值集合H,生成数据组合时,使xi∈H,为每个加密栏关联速查表,所述速查表记录取值集合H内每个自变量对应的加密函数的函数值,生成数据组合时,从速查表中选择若干个函数值经过带系数求和后,使和与整数D的差值在预设范围内,获得若干个函数对应的自变量xi的值,使用若干个自变量xi的值建立数据组合(b1,x1,b2,x2,…,bN,xN,△) ,使得D=∑(‑1)^bi*floor(bi/2)*f(xi)+△。
[0010] 作为优选,所述限时加密单元将全部加密栏的加密多项式设置为联动加密多项式,全部加密栏的联动加密多项式加密相同的秘钥Key的密文相同,限时加密单元设置联动加密多项式时,执行以下步骤:限时加密单元生成主加密多项式和循环取值序列;设置取值数量k,周期性从循环取值序列中读取k个取值;当前周期对应的k个取值构成单周期取值集合,秘钥Key对应的整数D的数据组合中,自变量xi取值自单周期取值集合;所述限时加密单元根据每个加密栏的时钟,获得时钟倒计时至0前,所涉及的全部单周期取值集合,全部单周期取值集合构成栏集合;为加密栏生成联动加密多项式,所述联动加密多项式在自变量取值属于栏集合时,联动加密多项式的函数值与主加密多项式的函数值相同;为加密栏的提示栏生成m个样本点和整数n,使得过m个样本点中的n个的一元多项式中样本距离最小的一元多项式与联动多项式相同;当所述限时加密单元收到待加密的秘钥Key时,读取当前的单周期取值集合,使用主加密多项式并在单周期取值集合内生成自变量xi的取值,加密秘钥Key,密文作为开放密文,将开放密文关联栏标识及经营数据的编码上传区块链存储;加密栏的时钟倒计时至0时,重置时钟,所述限时加密单元获得重置后的时钟倒计时至0前,所涉及的全部单周期取值集合,更新栏集合,生成更新后栏集合对应的联动多项式;更新加密栏的提示栏的m个样本点和整数n的值,使得过m个样本点中的n个的一元多项式中样本距离最小的一元多项式与更新后的联动多项式相同。
[0011] 本发明的实质性效果是:通过白名单和限时加密控制经营数据的扩散范围,提高经营数据的安全性,将原始的经营数据通过区块链存证,为经营数据提供可信证明,使经营数据具有更高的应用价值,提供经营数据的细节,更有利于经营决策或者投资决策;通过改进的限时加密算法能够提高限时加解密的效率和安全性。

附图说明

[0012] 图1为实施例一经营数据限时开放系统示意图。
[0013] 图2为实施例一限时加密单元限时加密示意图。
[0014] 图3为实施例一加密多项式加密示意图。
[0015] 图4为实施例一速查表示意图。
[0016] 图5为实施例二限时加密单元限时加密示意图。
[0017] 其中:11、店铺,12、经营数据,20、接入单元,30、索引单元,40、区块链,50、开放申请单元,60、限时加密单元,70、请求者。

具体实施方式

[0018] 下面通过具体实施例,并结合附图,对本发明的具体实施方式作进一步具体说明。
[0019] 实施例一:
[0020] 一种基于区块链的经营数据限时开放系统,请参阅附图1,包括接入单元20、索引单元30、开放申请单元50和限时加密单元60,接入单元20接收店铺登记和店铺11的经营数据12,店铺登记包括店铺名称、店铺类型、店铺位置、店主名称和白名单,店铺11周期性上传经营数据12,索引单元30为经营数据12分配编码,将经营数据12加密后存储并记录加密的秘钥Key以及存储地址,提取经营数据12的哈希值,作为存证哈希值上传区块链40存储,获得对应的区块高度,建立经营数据12索引,经营数据12索引记录经营数据12的店铺名称、店铺类型、店铺位置、秘钥Key、存储地址、存证哈希值和区块高度,开放申请单元50接收请求者70发送的开放申请,开放申请包括请求者70身份标识、数据条件和开放时长,数据条件包括对经营数据12的店铺名称、店铺类型或店铺位置中的一个或多个的限定条件,开放申请单元50列举数据条件涉及的店铺11,剔除不符合白名单的店铺11,根据最终店铺11数量及开放时长生成账单,请求者70将相应数量的通证转入开放申请单元50公布的虚拟钱包地址后,开放申请单元50在开放时长内,周期性将开放申请涉及的经营数据12的秘钥Key提交限时加密单元60加密,获得开放密文,将开放密文发送给请求者70,请求者70在限时内解密开放密文,获得秘钥Key,读取经营数据12并使用秘钥Key解密获得明文经营数据12,提取经营数据12的哈希值与区块链40上存储的存证哈希值比对,获得经营数据12的真实性证明。哈希值是由数据输入散列函数获得,哈希值为预设长度的十六进制数,如0x 2D3FD3…622A1D。常用的散列函数有SHA256、SHA512和SM2。本领域中提及哈希值时,通常会连同提及对应的散列函数名称。使用相同的散列函数对相同的数据进行提取哈希值运算,所得哈希值相同。若数据存在任何改动,则会引起雪崩效应,导致哈希值发生显著的变化。经营数据
12与秘钥Key具有一一对应的关系,对于不同店铺11或者不同日期的经营数据12,生成相应的新的秘钥Key进行加密。
[0021] 本实施例中,店铺11指销售某一产品、某一品类产品或者多个品类产品的线下实体店铺11或者线上网店。线上网店的经营数据12由线上购物平台直接提供相关经营数据12。线下实体店铺11由人工登记顾客进店记录和销售记录,或者由现有技术中公开的自动化登记顾客进店和离店以及销售情况的技术实现经营数据12的获取。店铺11的经营数据12用于经营决策和吸引投资,为此店铺11内销售某一产品或者某一品类产品时,能够准确直观的展示产品或者同品类产品的市场及销售情况,因此本实施例中所指店铺11中,仅销售某一产品或某一品类产品具有更好的技术效果。
[0022] 店铺登记时需要提供店铺名称、店铺类型、店铺位置、店主名称和白名单,店铺名称为店铺运营主体设置的店铺名称,在系统中店铺名称具有唯一性,同时系统为每个店铺名称分配唯一ID,方便建立索引。店铺类型指销售商品品类和销售方式,销售商品品类由店铺11中主要销售的商品品类,销售商品品类由店铺运营主体设置,销售方式包括人工销售和自动销售,两种销售方式。店铺位置包括店铺11的坐标值和店铺地址,店铺地址包括所在城市、所在区、所在道路、门牌号和关联主体名称。关联主体名称指店铺11所在商圈名称,由店铺经营主体设置。例如位于综合商场时,关联主体名称为商场的名称,位于小区内则为小区名称,位于更大的店铺11内,则关联主体名称为更大的店铺11的名称。若无关联主体名称则省略关联主体名称。关联主体名称能够快速筛选同商圈的店铺11。同关联主体名称的店铺11的经营之间具有相互的影响,且对于线下实体店铺11而言通常地理位置上相互靠近。
[0023] 将一手的经营数据12通过限时开放系统共享给投资者,能够为投资者提供可信且详细的经营情况,吸引或指导投资者的投资。比如投资者计划在某商场内开设饮品店,为了评估开设后的盈利能力,投资者经过本经营数据限时开放系统,查看了同商场的若干家快餐店一个月的经营数据12,通过查看快餐店的数据,推测开设饮品店的盈利可能性,为决策提供参考。为投资者限时开放了经营数据12的若干个快餐店,则能够通过投资者支付给开放申请单元50公布的虚拟钱包地址的若干个通证内,获得通证的分成。虽然通过同商场内的其他饮品店的经营数据12能够更加准确的评估盈利能力,但饮品店通常不希望将经营数据12展示给竞争店铺查看。因此,为了保护经营数据12的安全性,避免经营数据12由店铺经营者希望查看的用户以外的用户查看,本实施例提供了白名单的技术方案。希望获得经营数据12的请求者70向开放申请单元50注册,并提供注册信息,所述注册信息包括用户类型和行业。用户类型包括经营者、一级投资者和二级投资者。经营者指,已经接入经营数据限时开放系统的接入单元20的店铺的店铺运营主体。一级投资者指仅投资所填写的行业,并且投资后转换为经营者的投资者。二级投资者指仅投入资金,不限定投入行业,且投资后基本不参与经营,仅获取分红。经营者和一级投资者需要验证已开设或者已投资的店铺的资质和行业。二级投资者需要验证可用于投资的资金规模,资金规模超过预设阈值条件,才能注册成为二级投资者。开放申请单元50验证已开设、已投资的店铺的资质或者资金规模后,通过注册申请。为请求者70赋予用户标识、身份标识和行业标识。用户标识为用户的唯一ID标识,身份标识为经营者、一级投资者和二级投资者的标识,行业标识为经营者及一级投资者对应的行业标识,二级投资者无行业标识。
[0024] 接入的店铺设置白名单,白名单记载能够访问经营数据12的请求者70的身份标识和行业标识。系统提供全部行业的标识,店铺运营主体将允许查看经营数据12的行业的标识关联相应允许的身份标识,形成白名单条目,添加到白名单中。如快餐店设置的几条白名单条目为:{服装类,经营者,一级投资者}、{饮品类,经营者,一级投资者}、{ALL,二级投资者}。其中{饮品类,经营者,一级投资者}指允许行业为饮品类的经营者或者一级投资者查看其经营数据12,{ALL,二级投资者}指允许二级投资者查看其经营数据12。全部白名单条目构成店铺的白名单。
[0025] 经营数据12以天为周期生成并上传接入单元20,经营数据12包括店铺名称、店铺类型、店铺位置、经营日人流量、经营日销售额及经营日每小时顾客数量,开放申请单元50根据数据条件涉及的店铺数量及开放时长,获得开放申请涉及的经营数据12数量,将涉及的经营数据12数量与预设单价相乘获得开放申请需支付的通证数量。
[0026] 投资者计划开设饮品店,并向经营数据限时开放系统申请开放快餐店甲一个月的经营数据12,即限时时长为30天,限时起始日期为当前日期。
[0027] 当前日期经营时段结束后,接入单元20接收快餐店甲提交的今日经营数据12,使用秘钥Key加密后存储,使用区块链40进行存证,建立经营数据12的索引。将秘钥Key使用限时加密算法加密后,作为开放密文,将开放密文提供给投资者。限时加密算法的限时从当前日期起算,限时时长同样为30天。投资者通过限时加密算法的解密过程解密获得秘钥Key,读取经过加密后的经营数据12,使用秘钥Key解密即可获得当前日期的经营数据12。后一日期的经营时段接收后,接入单元20同样能够收到快餐店甲提交的经营数据12,使用新的秘钥Key加密后存储,并通过区块链40存证。而后使用限时加密算法加密后,作为开放密文,将开放密文提供给投资者。投资者解密开放密文获得新的秘钥Key,解密获得新的日期的经营数据12。此时限时加密算法的限时时长剩余29日。直到第31日时,限时加密算法的限时到期,即便获得开放密文,投资者也无法解密开放密文,无法获得第31日的秘钥Key,从而结束了快餐店甲的经营数据12对投资者的开放。投资者获得30天最新的店铺经营数据12,具备极高的投资参考价值。
[0028] 开放申请中的数据条件包括对经营数据12的店铺名称、店铺类型或店铺位置中的一个或多个的限定条件,开放申请单元50向经过注册的请求者70公开全部已接入经营数据12的店铺的店铺名称、店铺类型和店铺位置,如表1所示。请求者70请求开放经营数据12时,指定店铺名称、店铺类型或店铺位置中的一个或多个的限定条件。如对于店铺位置的限定条件为位于C街,即会获得全部接入经营数据12的且店铺位置处于C街的店铺的经营数据
12。
[0029] 表1 已接入经营数据12的店铺的信息表
[0030]店铺 店铺名称 店铺类型 店铺位置
甲 快餐店甲 快餐 东区A街560号
乙 饮品店乙 饮品 东区B街73号
丙 服装店丙 服装 西区C街273号
丁 快餐店丁 快餐 西区C街150号
[0031] 请求者70请求开放经营数据12时,指定店铺名称为服装店丙,则仅会获得服装店丙在开放时长内的经营数据12。若指定店铺类型为快餐,则能够获得快餐店甲和快餐店丁两个店铺在开放时长内的经营数据12。若指定店铺位置为西区C街,则会获得服装店丙和快餐店丁的经营数据12。若同时指定店铺类型为快餐和店铺位置为西区C街,则仅能够获得快餐店丁的经营数据12。获得相应店铺经营数据12的前提条件是请求者70符合相应店铺的白名单。若其中存在店铺白名单与请求者70不对应的情况,则应剔除白名单不符的店铺。本实施例还收集了店铺的关联主体名称,开放申请还可以通过对关联主体名称的限定实现对店铺名称、店铺类型或店铺位置中的一个或多个的限定,其转换由开放申请单元50完成。即请求者70提供关联主体名称,开放申请单元50将关联主体名称转换为店铺位置的限定条件。将属于关联主体名称的关联的店铺的全部店铺位置均视为符合店铺位置的限定。
[0032] 限时加密单元60在区块链40上发布限时加密智能合约,限时加密智能合约包括若干个加密栏,加密栏包括栏标识、时钟和提示栏,如表2所示,限时加密智能合约建立了60个加密栏,提示栏展示m个样本点(xi,yi),i∈[1,m],如表3所示,时钟为倒计时时钟,当时钟倒计时至0时,加密栏更新提示栏,并重置时钟。请参阅附图2,限时加密的过程包括:步骤A01)限时加密单元60为每个加密栏关联一个整数n,生成一元多项式,一元多项式经过提示栏中的m个样本点中的n个;步骤A02)计算剩余其余样本点与一元多项式的距离,距离和记为样本距离,样本距离最小的一元多项式作为加密栏的加密多项式;步骤A03)索引单元30为店铺名称、店铺类型及店铺位置分配编码,生成日期编号;步骤A04)接入单元20收到经营数据12时,将店铺名称、店铺类型及店铺位置的编码拼接,而后拼接经营数据12对应日期的编号,构成经营数据12的编码;步骤A05)将经营数据12使用秘钥Key加密并关联编码后上传区块链40存储;步骤A06)开放申请单元50将经营数据12的秘钥Key提交限时加密单元60,限时加密单元60将秘钥Key分别使用每个加密栏的加密多项式加密后作为开放密文,将开放密文关联栏标识及经营数据12的编码上传区块链40存储;步骤A07)请求者70将账单相应数量的通证转入开放申请单元50公布的虚拟钱包地址后,开放申请单元50将开放申请涉及的店铺名称、店铺类型及店铺位置的编码以及开放时长起始日期的编号发送给请求者70;步骤A08)开放申请单元50将时钟与开放时长相符的加密栏的栏标识及相应的整数n发送给请求者70;步骤A09)在开放时长内,请求者70轮询区块链40,获得相符的经营数据12及开放密文;步骤A10)读取m个样本点,穷举过提示栏中m个样本点中的n个一元多项式,获得样本距离最小的一元多项式作为复原多项式;步骤A11)使用复原多项式解密开放密文获得秘钥Key,使用秘钥Key解密获得经营数据12。
[0033] 表2 限时加密智能合约记录内容
[0034]加密栏1 {栏标识1,时钟1,提示栏1}
加密栏2 {栏标识2,时钟2,提示栏2}
加密栏3 {栏标识3,时钟3,提示栏3}
…  
加密栏60 {栏标识60,时钟60,提示栏60}
[0035] 时钟既可以公开也可以不公开,本实施例中仅限时加密单元60能够获得时钟的值。限时加密单元60向限时加密智能合约请求加密栏的时钟值,限时加密智能合约将时钟值使用限时加密单元60的公钥加密后,写入到指定位置,限时加密单元60读取后使用私钥解密即可。限时加密单元60还具有设置时钟值的权限,将预设写入标识符、栏标识和欲写入的时钟值使用限时加密单元60的私钥签名后,提交给限时加密智能合约,限时加密智能合约使用公钥验证后,将栏标识对应的加密栏的时钟设置为欲写入的时钟值。
[0036] 表3 限时加密智能合约公开内容
[0037]加密栏1 {栏标识1,提示栏1:{(2,16),(4,24),(8,36),(12,64)}}
加密栏2 {栏标识2,提示栏2:{(2,10),(3,14),(6,26),(8,34)}}
加密栏3 {栏标识3,提示栏3:{(2,6),(3,24),(5,10),(7,54)}}
… …
加密栏60 {栏标识60,提示栏60:{(3,26),(4,16),(9,76),(10,32)}}
[0038] 提示栏1公开的样本点有4个,分别为:(2,16)、(4,24)、(8,36)和(12,64),即m=4,当n取值为2时,穷举过4个样本点中的2个样本点的一元多项式如表4所示。
[0039] 表4 n=2时的一元多项式及样本距离表
[0040] 序号 一元多项式 样本距离1 f(x)=4x+8 12
2 f(x)=10/3*x+28/3 16
3 f(x)=4.8x+6.4 10.4
4 f(x)=3x+12 18
5 f(x)=5x+4 10
6 f(x)=7x+‑20 38
[0041] 其中样本距离最小的一元多项式为f(x)=5x+4,当样本距离相同时,按照最高次项的系数升序排列,若最高次项系数仍然相同,则按照次高次项系数,直到出现项系数不同,按照项系数升序排列。若两个一元多项式完全相同,则两者排序先后不再需要限定。
[0042] 使用加密多项式加密秘钥Key时,请参阅附图3,限时加密智能合约执行以下步骤:步骤B01)将秘钥Key转换为二进制流,按预设规则补位后,截断为若干个预设长度的二进制段,将二进制段转换为整数D;步骤B02)生成数据组合(b1,x1,b2,x2,…,bN,xN,△),bi为正整数,使得D=∑(‑1)^bi*floor(bi/2)*f(xi)+△,其中i∈[1,N],△为修正值,floor()为向下取证函数;步骤B03)将数据组合按顺序组合作为密文Key。
[0043] 如秘钥Key为“EuWk”,在ASCII编码下,将字符串EuWk转为二进制为:01000101 01110101 01010111 01101011,按照2字节的长度截断为两个整数,分别为D1=17781,D2=
22379。加密多项式f(x)为:f(x)=15*x^2‑32*x+64。则D1可以表示为D1=6*f(7)+ f(31)+
844,对应的数据组合为(12,7,2,31,844)。同样的方式能够获得整数D2的数据组合。每个整数的数据组合是不唯一的。请求者70解密数据的方法为:请求者70读取样本点,根据n的值获得过n个样本的全部一元多项式,其中样本距离最小的一元多项式记为复原多项式f(x),依次读取数据组合,将每个数据组合中的bi及xi代入复原多项式f(x),并与修正值△求和,获得整数D;将全部整数D转换为二进制流并按顺序拼接后,去除补位后,获得解密的数据。
[0044] 为加快限时加密的效率,本实施例提供了建立速查表提高限时加密效率的方案,请参阅附图4,包括:步骤C01)限时加密智能合约为加密栏设置取值集合H,生成数据组合时,使xi∈H;步骤C02)为每个加密栏关联速查表,速查表记录取值集合H内每个自变量对应的加密函数的函数值;步骤C03)生成数据组合时,从速查表中选择若干个函数值经过带系数求和后,使和与整数D的差值在预设范围内;步骤C04)获得若干个函数对应的自变量xi的值,使用若干个自变量xi的值建立数据组合(b1,x1,b2,x2,…,bN,xN,△) ,使得D=∑(‑1)^bi*floor(bi/2)*f(xi)+△。本实施例中为加密栏1设置的自变量x取值集合为{2,4,7},加密栏1的加密多项式f(x)为:f(x)=7*x^2+12*x‑4,则相应的函数值为{48,156,423},速查表如表5所示。通过使用{48,156,423}中的值,进行带系数的求和计算,再加上修正值△,能够表示任意的整数D,完成信息的加密过程。
[0045] 表5加密栏1对应的速查表
[0046]自变量x 加密多项式f(x)函数值
2 48
4 156
7 423
[0047] 在实施例一中,若未获得正确的n值,每个提示栏仅包括了4个样本点,则通过4个样本点能够复原出4个加密多项式,即n的值遍历1至4分别能够获得1个加密多项式。通过穷举攻击能够快速的攻破限时加密算法。提高每个提示栏内的样本数量,虽然能够提高安全性,但同时也会降低加解密的效率。且即便提高样本数量,仍然不能显著的增加限时加解密算法对穷举攻击的安全性。为此本实施例提供了具体的解决方案。
[0048] 具体包括:步骤A02)中,将全部经过提示栏中的m个样本点中的n个的一元多项式按照样本距离升序排列,记录每个一元多项式的序号s;步骤A06)中,开放申请单元50生成序号s的值,开放申请单元50将经营数据12的秘钥Key和序号s提交限时加密单元60,限时加密单元60分别使用每个加密栏的排序为序号s的一元多项式加密后作为开放密文,将开放密文关联栏标识及经营数据12的编码上传区块链40存储。在步骤A08)中,开放申请单元50将时钟与开放时长相符的加密栏的栏标识及相应的整数n以及生成的序号s的值发送给请求者70。步骤A10)中,请求者70读取m个样本点,穷举过提示栏中m个样本点中的n个一元多项式,将一元多项式按照样本距离升序排列,对应序号s的一元多项式作为复原多项式。使用复原多项式加密获得秘钥Key,使用秘钥Key解密获得经营数据12。
[0049] 确定n的值后,穷举从m个数值对中选择n个数值对的组合。计算过每个组合中n个点的一元多项式,而后计算一元多项式的样本点距离。能够获得C(m,n)个一元多项式。将C(m,n)个一元多项式按照样本点距离升序排列,每个一元多项式将具有次序s。使得在每个n的值下,能够作为加密多项式的候选一元多项式的数量为C(m,n),通过次序s指定其中的一个作为加密多项式。对于提示栏m=6个样本点时,能够产生共64个可能的一元多项式。当提示栏公开1024个样本点时,能够产生2^1024个一元多项式,数量极大,显著提高了穷举破解的难度。
[0050] 如加密栏3的提示栏3中 公开了6个样本点,分别为:(2,36),(3,50),(4,18),(6,26),(8,19),(9,20)。生成整数n的值为2时,则能够生成15个一元多项式。一元多项式及相应的样本点距离如表6所示。
[0051] 表6 一元多项式及相应的样本点距离
[0052] 一元多项式 样本点距离f(x)=14/1*x+8/1 327
f(x)=‑9*x+54 133
f(x)=‑2.5*x+41 33
f(x)=‑17/6*x+125/3 34.3
f(x)=‑16/7*x+284/7 33.8
f(x)=‑32*x+146 409
f(x)=‑8*x+74 73
f(x)=‑31/5*x+343/5 58.6
f(x)=‑5390*x+65 61
f(x)=4*x+2 95
f(x)=1/4*x+17 59
f(x)=2/5*x+82/5 59
f(x)=‑7/2*x+47 37
f(x)=‑2*x+38 35
f(x)=x+11 71
[0053] 当两个一元多项式的样本点距离相同时,按照一元多项式高次项系数的较小值排序在前进行排序。如表7所示,为按照样本点距离升序排列后的一元多项式的排序,排序的次序s如表7中所记载。
[0054] 表7 样本点距离升序排列后的一元多项式
[0055]次序s 一元多项式 样本点距离
1 f(x)=‑2.5*x+41 33
2 f(x)=‑16/7*x+284/7 33.8
3 f(x)=‑17/6*x+125/3 34.3
4 f(x)=‑2*x+38 35
5 f(x)=‑7/2*x+47 37
6 f(x)=‑31/5*x+343/5 58.6
7 f(x)=1/4*x+17 59
8 f(x)=2/5*x+82/5 59
9 f(x)=‑5390*x+65 61
10 f(x)=x+11 71
11 f(x)=‑8*x+74 73
12 f(x)=4*x+2 95
13 f(x)=‑9*x+54 133
14 f(x)=14/1*x+8/1 327
15 f(x)=‑32*x+146 409
[0056] 当选择n=2,s=9时,对应的加密多项式为f(x)=‑5390*x+65,则D1=17781,可以表示为(15,4,26,2,6611),对应的n=2,s=9。
[0057] 本实施例的有益技术效果是:通过白名单和限时加密控制经营数据12的扩散范围,提高经营数据12的安全性,将原始的经营数据12通过区块链40存证,为经营数据12提供可信证明,使经营数据12具有更高的应用价值,提供经营数据12的细节,更有利于经营决策或者投资决策;通过改进的限时加密算法能够提高限时加解密的效率和安全性。
[0058] 实施例二:
[0059] 一种基于区块链的经营数据限时开放系统,限时加密单元60将全部加密栏的加密多项式设置为联动加密多项式,全部加密栏的联动加密多项式加密相同的秘钥Key的密文相同,限时加密单元60设置联动加密多项式时,请参阅附图5,执行以下步骤:步骤D01)限时加密单元60生成主加密多项式和循环取值序列;步骤D02)设置取值数量k,周期性从循环取值序列中读取k个取值;步骤D03)当前周期对应的k个取值构成单周期取值集合,秘钥Key对应的整数D的数据组合中,自变量xi取值自单周期取值集合;步骤D04)限时加密单元60根据每个加密栏的时钟,获得时钟倒计时至0前,所涉及的全部单周期取值集合,全部单周期取值集合构成栏集合;步骤D05)为加密栏生成联动加密多项式,联动加密多项式在自变量取值属于栏集合时,联动加密多项式的函数值与主加密多项式的函数值相同;步骤D06)为加密栏的提示栏生成m个样本点和整数n,使得过m个样本点中的n个的一元多项式中样本距离最小的一元多项式与联动多项式相同;步骤D07)当限时加密单元60收到待加密的秘钥Key时,读取当前的单周期取值集合,使用主加密多项式并在单周期取值集合内生成自变量xi的取值,加密秘钥Key,密文作为开放密文,将开放密文关联栏标识及经营数据12的编码上传区块链40存储;步骤D08)加密栏的时钟倒计时至0时,重置时钟,限时加密单元60获得重置后的时钟倒计时至0前,所涉及的全部单周期取值集合,更新栏集合,生成更新后栏集合对应的联动多项式;步骤D09)更新加密栏的提示栏的m个样本点和整数n的值,使得过m个样本点中的n个的一元多项式中样本距离最小的一元多项式与更新后的联动多项式相同。
[0060] 限时加密单元60生成的主加密多项式为f0(x)=5*x^2‑24*x+16,生成循环取值序列为:(2,3,4,6,8,9,12,16),相应的函数值为:(‑12,‑11,0,52,144,205,448,912)。设置k的值为3,加密秘钥Key时从循环取值序列中选择相应次序的3个自变量的值。以限时时长为2天和3天为例,生成两个联动多项式。对于限时时长为2天时,涉及的单周期取值集合有{2,
3,4}和{6,8,9},构成的栏集合为{2,3,4,6,8,9},在栏集合中,主加密多项式的函数值为(‑
12,‑11,0,52,144,205)。相应构成6个样本点(2,‑12),(3,‑11),(4,0),(6,52),(8,144),(9,205)。在栏集合中,联动加密多项式的函数值与主加密多项式的函数值相同,即联动加密多项式过该6个样本点。任意添加一个样本点,如(10,360),生成过7个点的一元多项式为:f(x)= 0.03125*x^6‑x^5+12.71875*x^4‑81.875*x^3+285.125*x^2‑505.5*x+340,作为限时时长为2天的加密栏的联动多项式。若更改任意添加的样本点,如改为(12,400),则又能够获得一个联动多项式,为:f(x)=‑0.000926*x^6+0.0296*x^5‑0.3768518*x^4+2.4259*x^3‑3.3*x^2‑9.73*x+6.4。类似的,将两个点均添加到6个样本点中,生成的一元多项式同样能够作为限时时长为2天的加密栏的联动多项式,(10,360) 和(12,400)两个点都添加时,获得的联动多项式为:f(x)=‑0.016*x^7+0.7069*x^6‑12.6959*x^5+120.347*x^4‑
647.59*x^3+1975.13*x^2‑3151.13*x+2008。由此可见,获得每个限时时长的加密栏的联动多项式时,具有无限个可能性。
[0061] 对于限时时长为3天时,涉及的单周期取值集合有{2,3,4}、{6,8,9}和{12,16,2},构成的栏集合为{2,3,4,6,8,9,12,16},在栏集合中,主加密多项式的函数值为(‑12,‑11,0,52,144,205,448,912)。相应构成8个样本点(2,‑12),(3,‑11),(4,0),(6,52),(8,144),(9,205),(12,448),(16,912)。在栏集合中,联动加密多项式的函数值与主加密多项式的函数值相同,即联动加密多项式过该6个样本点。任意添加一个样本点,如(20,1200),生成一元多项式为:f(x)=‑0.00000116*x^8+0.00007*x^7‑0.0017*x^6+0.0234*x^5‑0.186*x^4+
0.893*x^3+2.5*x^2‑20.23*x+13.69。
[0062] 本实施例中选定限时时长为2天的加密栏的联动多项式为f(x)= 0.03125*x^6‑x^5+12.71875*x^4‑81.875*x^3+285.125*x^2‑505.5*x+340,限时时长为3天的加密栏的联动多项式为f(x)=‑0.00000116*x^8+0.00007*x^7‑0.0017*x^6+0.0234*x^5‑0.186*x^4+
0.893*x^3+2.5*x^2‑20.23*x+13.69。
[0063] 为限时时长为2天的加密栏的联动多项式生成提示栏,提示栏中包括10个样本点。生成10个样本点的方法为,生成10个自变量x的值,如x∈{20,22,24,26,30,32,36,40,50,
60},联动多项式为f(x)= 0.03125*x^6‑x^5+12.71875*x^4‑81.875*x^3+285.125*x^2‑
505.5*x+340相应的函数值分别为{284280,624348,1249720,2325312,6814600,10929828,
25452592,53356320,245726940,828546460},则提示栏公开内容为:(20,284280),(22,
624348),(24,1249720),(26,2325312),(30,6814600),(32,10929828),(36,25452592),(40,53356320),(50,245726940),(60,828546460),同时设置n的值为7。穷举过10个样本点中的7个样本点的一元多项式,能够获得全部最高次项次数为6的一元多项式,计算全部一元多项式的样本距离,按照样本距离升序排列。获得联动多项式f(x)= 0.03125*x^6‑x^5+
12.71875*x^4‑81.875*x^3+285.125*x^2‑505.5*x+340的序号s,将n和s的值发送给请求者
70即可。请求者70穷举过10个样本点中的7个样本点,按照样本距离升序排列后,获得序号s对应的一元多项式,即可获得f(x)= 0.03125*x^6‑x^5+12.71875*x^4‑81.875*x^3+
285.125*x^2‑505.5*x+340。
[0064] 如秘钥Key为“EuWk”,在ASCII编码下,将字符串EuWk转为二进制为:01000101 01110101 01010111 01101011,按照2字节的长度截断为两个整数,分别为D1=17781,D2=
22379。以加密D1为例,说明秘钥Key的加密过程。
[0065] 限时加密单元60使用主加密多项式f0(x)=5*x^2‑24*x+16加密D1,同时限定自变量x的取值范围为{2,3,4},获得D1=‑900*f0(2)‑600*f0(3)+10*f0(4)+381,相应的数据组合为(1801,2,1201,3,20,4,381)。将数据组合(1801,2,1201,3,20,4,381)发送给请求者70。请求者70使用联动多项式f(x)= 0.03125*x^6‑x^5+12.71875*x^4‑81.875*x^3+
285.125*x^2‑505.5*x+340解密数据组合(1801,2,1201,3,20,4,381),得出复原整数D1’=‑
900*(0.03125*2^6‑2^5+12.71875*2^4‑81.875*2^3+285.125*2^2‑505.5*2+340)‑600*(0.03125*3^6‑3^5+12.71875*3^4‑81.875*3^3+285.125*3^2‑505.5*3+340)+10*(0.03125*4^6‑4^5+12.71875*4^4‑81.875*4^3+285.125*4^2‑505.5*4)+381=17781。可见,使用联动多项式能够正确解密出D1,同样能够解密出D2,从而复原出秘钥Key。
[0066] 使用开放时长为3天的加密栏的联动多项式f(x)=‑0.00000116*x^8+0.00007*x^7‑0.0017*x^6+0.0234*x^5‑0.186*x^4+0.893*x^3+2.5*x^2‑20.23*x+13.69,解密数据组合(1801,2,1201,3,20,4,381),得出复原整数D1’’=‑900*(‑0.00000116*2^8+0.00007*2^
7‑0.0017*2^6+0.0234*2^5‑0.186*2^4+0.893*2^3+2.5*2^2‑20.23*2+13.69)‑600*(‑
0.00000116*3^8+0.00007*3^7‑0.0017*3^6+0.0234*3^5‑0.186*3^4+0.893*3^3+2.5*3^2‑
20.23*3+13.69)+381=17781,能够得到同样的结果。
[0067] 经过2天后,原本限时时长为2天的加密栏的时钟重置,假设重置后限时时长仍然为2天。沿着循环取值序列再次读取两个单周期取值集合为{12,16,2}和{3,4,6},相应的函数值为{448,912,‑12}和{‑11,0,52}。则6个样本点为(2,‑12),(3,‑11),(4,0),(6,52),(12,448),(16,912)。此时联动多项式f(x)= 0.03125*x^6‑x^5+12.71875*x^4‑81.875*x^3+285.125*x^2‑505.5*x+340不再与主加密多项式相符。即在栏集合中,联动多项式与主加密多项式的函数值不同。因此限时加密单元60重新生成符合条件的联动多项式,并重新生成提示栏、整数n和序号s的值。但新的整数n和序号s的值不再提供给请求者70,因此请求者70无法再获得新的联动多项式。下一个日期的秘钥Key经加密后,请求者70将无法正确解密。限时时长为3天的加密栏的联动多项式,与主加密多项式在单周期集合中具有相同的函数值,仍然能够再次正确解密开放密文。相对于实施例一,本实施例中,多个加密栏加密相同的秘钥Key获得的密文相同,即开放密文是相同的,节省了需要公开的开放密文数量。简化了经营数据12开放时的数据结构,方便经营数据12的共享。限时加密单元60只需要加密一次即可,提高了限时加密的效率。请求者70将无法获得更新后的联动多项式,提高了限时加密的安全性。
[0068] 以上所述的实施例只是本发明的一种较佳的方案,并非对本发明作任何形式上的限制,在不超出权利要求所记载的技术方案的前提下还有其它的变体及改型。