System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于数据市场,具体涉及到基于大素数分解的数字签名和加密方法。
技术介绍
0、技术背景
1、为了保证数据的正常流通与使用,充分发挥大数据的价值,近年来兴起了众多关于个人数据共享与交易的新兴机构。除了传统的数据流通方式(即公司与用户之间广泛存在的数据换取服务的模式)外,还涌现出了大数据共享交易市场,通过将数据需求与数据源进行匹配来促成数据交易。在传统数据交易市场上存在若干的乱象。不诚实的数据交换可能会在卖方不知情和未经批准的情况下,秘密地缓存和转售卖方的数据集。同时,对于现有的中心化数据交换模型,攻击者只需要瞄准数据交易平台,而不需要对多个数据所有者进行攻击,就能使得数据交易平台瘫痪或出错。
2、为了能够克服以上传统数据交易平台以上的缺陷,去中心化的数据交易市场诞生了。智能合约可以被视为在区块链上运行的程序,其执行必须通过所有验证器之间的共识来确认。凭借智能合约能力,区块链可以实现合同的自我执行和可信执行,促进相互不信任的独立各方之间的合作。智能合约将使个人用户能够直接与数据需求方达成交易,不依赖任何第三方,从而让用户保持对数据的所有权,并确保交易过程的公开透明。基于区块链本身自带的去中心化,透明性和安全性,可以很好地免受传统数据交易中心的一些缺点,并且可以规避单点攻击问题,但是同时智能合约所带来的数据上线后的保密性和版权问题也是迫切需要解决的技术问题。
技术实现思路
1、本专利技术所要解决的技术问题在于克服上述现有技术的缺点,提供一种安全性高、抗单点
2、解决上述技术问题所采用的技术方案是由以下步骤组成:
3、(1)系统初始化
4、1)提供商的加密密钥生成
5、密钥生成中心为每个数据提供商随机选取长度相等的两个大素数ps,qs,且ps的长度最小为512位,qs的长度最小为512位,使其满足:
6、gcd(ps×qs,(ps-1)×(qs-1))=1
7、其中,gcd(·)表示最大公因数。
8、按下式构建ls(x)函数:
9、
10、ns=ps×qs;
11、其中,x是小于的一个整数,密钥生成中心从模整数乘法群中随机选择正整数gs和正整数rs。
12、按下式确定数据提供商加密公钥pks:
13、pks=(ns,gs);
14、按下式确定数据提供商加密私钥sks:
15、sks=(λs,μs);
16、λs=lcm(ps-1,qs-1);
17、
18、其中,lcm(·)表示最小公倍数,表示gs的λs次幂。
19、2)提供商的签名密钥生成
20、密钥生成中心为每个数据提供商选取一个大素数es,使得es能够整除(ps-1),并且es的长度最小为160位,密钥生成中心为每个数据提供商从模大素数ps整数乘法群随机选择整数ks,并且使其满足:
21、
22、并为数据提供商随机选择签名私钥xs,其中,1<xs<es。
23、按下式确定数据提供商签名公钥ys:
24、
25、其中,表示ks的xs次方。
26、3)用户的加密密钥生成
27、密钥生成中心为每个用户随机选取长度相等的两个大素数pu,qu,且pu的长度最小为512位,qu的长度最小为512位,使其满足:
28、gcd(pu×qu,(pu-1)×(qu-1))=1
29、其中,gcd(·)表示最大公约数。
30、按下式构建lu(x)函数:
31、
32、nu=pu×qu
33、其中,x是小于的一个整数,密钥生成中心从模整数乘法群随机选择整数gu和整数ru。
34、按下式确定用户加密公钥pku:
35、pku=(nu,gu)
36、按下式确定用户加密私钥sku:
37、sku=(λu,μu)
38、λu=lcm(pu-1,qu-1)
39、
40、其中,lcm(·)表示最小公倍数,表示gu的λu次幂。
41、4)用户的签名密钥生成
42、密钥生成中心为每个用户选取一个大素数eu,使得eu能够整除(pu-1),并且eu的长度最小为160位,密钥生成中心为每个用户从模大素数pu整数乘法群随机选择整数ku,并且使其满足:
43、
44、并为用户随机选择签名私钥xu,其中,1<xu<eu。
45、按下式确定用户签名公钥yu:
46、
47、其中,表示ku的xu次方。
48、(2)数据提供商发布信息
49、数据提供商发布信息为:上传数据提供商加密公钥pks、样例数据d0、源数据量n0、操作类型o0、单位数据量报价a0信息到智能合约中。
50、(3)用户选择数据
51、用户下载数据提供商发布信息,编写数据操作内容o1,加密获得操作内容密文co,并对数据操作内容o1签名,得到操作内容签名σo。
52、按式(1)确定数据操作内容o1,操作内容密文co,操作内容签名σo:
53、o1=(z1,z2,z3) (1)
54、
55、σo=(ao,so)
56、ao=h(ro,o1)
57、
58、so=(eu×ao+b)mod eu
59、其中,z1表示用户选择是否单列求和,z1是0或1,z2表示用户选择是否单列数乘,z2是0或1,z3表示用户选择是否列相加,z3是0或1,z1、z2、z3不同时为0,h是sha256算法,b是随机正整数,且1<b<eu。
60、用户将数据量n1加密,获得数据量密文cn,并对数据量n1签名得到数据量签名σn:
61、n1=(v1,v2,v3)
62、v1=(t0,t1,...,tω)
63、
64、v3=(i0,i1,...,iβ)
65、
66、σn=(an,sn)
67、an=h(rn,n1)
68、
69、sn=(eu×an+d)mod eu
70、其中,v1表示用户选择单列求和的序号,tω表示第ω个求和列号,tω≤n0,ω<n0,v2表示用户单列数乘的序号,表示第个单列乘法列号,v3表示用户列相加的序号,iβ表示第β个相加列号,iβ≤n0,β<n0,h是sha256算法,d是随机正整数,且1<d<eu。
71、按下式确定用户向智能合约付款金额a1:
72、a1=n1×a0;
73、用户向智能合约上传操作内容密文co、操作内容签本文档来自技高网...
【技术保护点】
1.一种基于智能合约的数据市场交易方法,其特征在于由下述步骤组成。
2.根据权利要求1所述的基于智能合约的数据市场交易方法,其特征在于:在步骤(1)系统初始化中,所述的大素数ps的取值为2521+887;所述的大素数qs的取值为2521+2001;所述的大素数es的取值为2192-264-1;所述的大素数pu的取值为2521+2309;所述的大素数qu的取值为2521+2311;所述的大素数eu的取值为2192-264+47。
3.根据权利要求1所述的基于智能合约的数据市场交易方法,其特征在于:在本步骤(3)用户选择数据的式(1)中,所述的正整数b的取值为[2100,2160]。
4.根据权利要求1或3所述的基于智能合约的数据市场交易方法,其特征在于:在本步骤(3)用户选择数据的式(1)中,所述的正整数b的取值为2130。
5.根据权利要求1所述的基于智能合约的数据市场交易方法,其特征在于所述的步骤(2)数据提供商发布信息为:上传数据提供商加密公钥PKs、样例数据D0、源数据量N0、操作类型O0、单位数据量报价A0信息到智能合约中;
6.根据权利要求1所述的基于智能合约的数据市场交易方法,其特征在于:在步骤(5)数据提供商处理数据的式(2)中,所述的β表示用户列相加的序号的最大值,1≤β≤N0,α表示源数据中每一列数据的行数,α<215。
...【技术特征摘要】
1.一种基于智能合约的数据市场交易方法,其特征在于由下述步骤组成。
2.根据权利要求1所述的基于智能合约的数据市场交易方法,其特征在于:在步骤(1)系统初始化中,所述的大素数ps的取值为2521+887;所述的大素数qs的取值为2521+2001;所述的大素数es的取值为2192-264-1;所述的大素数pu的取值为2521+2309;所述的大素数qu的取值为2521+2311;所述的大素数eu的取值为2192-264+47。
3.根据权利要求1所述的基于智能合约的数据市场交易方法,其特征在于:在本步骤(3)用户选择数据的式(1)中,所述的正整数b的取值为[2100,2160]。
4...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。