本发明涉及区块链、多方安全计算和分布式能源交易等,具体是一种基于抗量子多方安全计算的分布式电力交易方案及系统。
背景技术:
1、在电力区块链应用场景中,分布式能源用户在交易过程中常常有大量隐私数据需要存储,为了保护数据的隐私,数据往往以加密的形式进行存储。但解密用的私钥如果在单个节点上进行管理,会造成节点权限过大和私钥泄露风险。安全多方计算作为一种提供隐私保护的通用密码学原语,其分布式合作的计算范式在分布式能源交易的应用场景得到广泛应用,不同分布式能源用户用公钥加密自身隐私数据,随后存储在电力区块链网络数据库中,数据管理中心针对密文进行解密,经过协作计算后,得到目标输出返回给用户。在此过程中多个互不信任的参与方在无可信第三方前提下协同计算,确保输入的隐私性和计算的正确性,通过数学理论保证参与计算的各方成员输入信息不暴露,且同时能够获得准确的运算结果,能够实现在数据在不可见的前提下可用,打破数据壁垒,发挥敏感数据集的应用价值,对于促进新型电力交易模式的快速发展具有重要意义。
2、传统的多方安全门限解密的构造都依赖于大整数分解、离散对数求解等困难问题,然而在量子计算机的攻击下,这些困难问题将不再安全。抗量子多方门限解密可以使得私钥由多个节点进行管理,需要对加密数据进行解密的时候,对多个私钥管理节点发起解密请求,私钥管理节点使用自己的私钥份额对数据执行解密,得到解密分片,将解密分片发送给解密请求方,解密请求方收集到一定数量的解密分片后,恢复出隐私数据。但是由于需要与多个私钥管理节点进行通信,解密请求方需要发送解密请求并接收解密分片。在大规模的分布式系统中,会增加网络通信的开销,同时私钥的分片和恢复过程需要高度的安全性,如果私钥管理节点的私钥份额被泄露,整个系统将面临安全威胁。
技术实现思路
1、本发明的目的是针对攻击者从电力系统中由于密钥在单个节点上进行管理,当密钥掌管者权限过大或遭受攻击时,攻击者通过获取用户密钥信息,从而得到用户在整个区块链网络中的交易动态及地址群,导致的隐私泄露问题。
2、为实现上述目的,本发明提供了一种基于抗量子多方安全计算的分布式电力交易方案及系统,用来解决去中心化环境下的电力交易用户身份隐私安全问题,在无可信第三方前提下为数据拥有者、数据使用者、系统管理者、密钥掌管者等参与者类型提供安全可信的分布式电力交易和数据共享环境。
3、第一方面,本发明实施例提供了一种基于抗量子多方安全计算的分布式电力交易方案,所述方案包括:
4、响应于区块链系统初始化信号,确定方案的门限设置,随后生成系统中的密钥掌管者;
5、执行密钥生成算法,生成加密所需公钥以及私钥,将公钥在系统内进行公开,同时将私钥按照方案的门限设置进行切割后分发给各个密钥掌管者进行掌管;
6、业务数据方根据自身需求使用公钥对隐私数据进行加密存储;
7、响应于到数据使用者通过智能合约发起的解密密文数据申请,密钥掌管者首先执行部分解密得到数据的解密分片,随后将解密分片发送给数据使用者,最终数据使用者在收集到一定数量的解密分片后,执行最终解密得到隐私数据明文。
8、优选的,所述数据拥有者、数据使用者、系统管理者、密钥掌管者等参与者类型,数据拥有者,在分布式能源交易中可以是电力生产者也可以是电力消纳者,负责将隐私敏感数据通过加密上传至电力区块链网络。数据使用者,类似数据拥有者,是电力生产者或者电力消纳者,可在匿名条件下,向电力区块链网络发起联合计算任务,经密钥掌管者解密后收集一定数量的解密分片,执行最终解密。系统管理者,在接收到数据使用者发起的计算请求和数据获取请求时,查看数据库中的密文数据地址,并向相应的密钥掌管者发起解密请求。密钥掌管者,根据所掌握的私钥分片,进行部分解密获取解密分片,不同密钥掌管者将部分解密分片发送给数据使用者。
9、优选的,所述确定门限设置,加密方利用抗量子的多方门限解密能力,使用公钥对数据进行加密,多个私钥持有方联合对数据进行解密。根据线性秘密分享方案确定系统门限设置,n代表密钥份额总数,t代表门限值,当所持有密钥份额数超过门限值个数时,密钥掌管者才可以恢复明文数据。
10、优选的,所述线性秘密分享方案如下:
11、a、对于t/u门限方案,其对应的布尔表达式为析取范式∧(∧pi),其中pi为第i个密钥掌管结点,这种特殊形式的布尔表达式中只包含“与”和“或”,因此是单调的布尔表达式,我们可以根据该布尔表达式构造一个二叉树结构,其叶子结点为表达式中的全部pi,非叶子结点为两个子树对应表达式之间的“与”或者“或”,最后从树的根结点出发即可还原整个布尔表达式;
12、b、对上面得到的二叉树使用folklore算法;
13、(1)为根结点赋值m1=(1),令count=1;
14、(2)对表达式形成的树上的每个结点n执行如下操作:若结点n对应“或”,则将结点n的值m赋给左右分支,若结点n对应“与”,则在m的末尾补0,使得m的长度等于count,然后在m的后面补一个1并将其赋值给左分支,最后将长为count+1的向量(0,0,…,0,-1)赋给右分支,并令count=count+1;
15、(3)取出所述二叉树所有叶子结点的值,并在这些值后面补0使得他们的长度相同。
16、c、对得到的所述二叉树所有叶子结点的值按照顺序排成一列,构成一个的矩阵,该矩阵作为秘密分享矩阵m;
17、d、zp是一个有限域,在所述有限域zp上按照离散高斯分布采样得到随机数r2,r3,…,rn,然后定义向量w=m·(k,r2,r3,...,rn)t,此时长为的列向量w中的每个数字作为对应密钥掌管结点pi在进行秘密分享时的一个秘密份额。
18、优选的,所述密钥生成算法,具体步骤如下:
19、s1、任取多项式f,g,满足f,g的系数均属于-1,0,1;令f=1+pf,如果f在多项式环rq上不可逆,则重新选择多项式;令g=pg,定义h=f-1g mod q。
20、s2、对于(t-n)门限,按线性秘密分享方案构造秘密分享矩阵sharematrix,初始一条长度为sharematrix列数的向量k,设置k[0]=f,其余分量按步骤s1、s2,生成f1,f2,...,并设置k[1]=f1,k[2]=f2,...;
21、s3、令keys=sharematrix·k,将keys各分量分给各参与方;
22、s4、输出公钥为h,私钥份额keys;
23、优选的,所述用公钥对隐私数据进行加密存储,所述加密过程如下:
24、(1)任取随机多项式r;
25、(2)对于明文消息m,计算密文y=r*h+m(mod q)。
26、优选的,所述解密请求阶段,系统管理员在接收数据使用者(数据使用者)对密文数据进行解密请求后,查看数据库,确定密文编号及地址,通过智能合约向密钥掌管者请求解密数据。
27、优选的,所述执行部分解密得到数据的解密分片,包括:
28、响应于数据用户通过智能合约发起的密文数据y的解密申请,密钥掌管节点计算解密分片ai=fi*y(mod q),并将自身计算得到的解密分片ai发送给数据用户,其中ai表示由第i个密钥掌管节点pi计算得到的解密分片,fi表示由第i个密钥掌管节点pi所拥有的私钥,q为大模数;
29、对于t/u门限方案,至少需要t个密钥掌管节点参与部分解密过程。
30、优选的,所述执行最终解密,包括:
31、数据用户根据从至少t个密钥掌管节点处得到的解密分片,计算解密分片聚合结果a=∑ai(mod q),其中ai表示由第i个密钥掌管节点pi计算得到的解密分片,q为大模数;
32、随后计算所需明文m=a(mod p),其中a为解密分片聚合结果,p为小模数。
33、第二方面,本发明实施例提供了一种基于抗量子多方安全计算的分布式电力交易系统,所述系统包括:
34、确定门限模块,用于响应于区块链系统初始化信号,根据线性秘密分享方案确定方案的门限设置t/u,随后生成系统中的密钥掌管节点;
35、密钥生成模块,用于根据确定的门限设置t/u生成加密算法所需的公钥与私钥,将公钥在系统内进行公开,同时将私钥按照方案的门限设置进行切割后分发给各个密钥掌管节点进行掌管;
36、加密模块,用于根据业务数据方的数据加密请求,利用公钥对隐私数据进行加密存储;
37、部分解密模块,用于响应于数据用户通过智能合约发起的解密密文数据申请,密钥掌管节点首先执行部分解密得到数据的解密分片,随后将解密分片发送给数据用户;
38、最终解密模块,用于等待数据用户收集到一定数量的解密分片后,执行最终解密得到隐私数据明文。
39、优选的,所述确定门限模块包括:
40、门限设置加载单元,用于根据t/u门限方案对应的布尔表达式v(∧pi)构造一个二叉树结构,其叶子结点为表达式中的全部pi,非叶子结点为两个子树对应表达式之间的“与”或者“或”,从树的根结点出发还原整个布尔表达式;对得到的所述二叉树结构使用folklore算法,得到所述二叉树所有叶子结点的值,
41、对得到的所述二叉树所有叶子结点的值按照顺序排成一列,构成一个的矩阵,其中,u代表密钥份额总数,t代表门限值,该矩阵作为秘密分享矩阵m,在有限域上zp按照离散高斯分布采样得到随机数r2,r3,...,rn,然后定义向量w=m·(k,r2,r3,…,rn)t,此时长为的列向量w中的每个数字作为对应密钥掌管结点pi在进行秘密分享时的一个秘密份额,其中u代表密钥份额总数,t代表门限值,pi为第i个密钥掌管节点。
42、优选的,所述密钥生成模块,具体步骤如下:
43、密钥生成与分发单元,用于执行以下步骤:
44、s1、选取正整数n,对应多项式环选取大模数q和小模数p,满足q和p的最大公因数是1,且q>>p;
45、s2、任取多项式f,g,满足f,g的系数均属于-1,0,1;令f=1+pf,如果f在多项式环rq上不可逆,则重新选择多项式;令g=pg,定义h=f-1gmod q;
46、s3、对于t/u门限,按线性秘密分享方案构造秘密分享矩阵sharematrix,初始一条长度为sharematrix列数的向量k,设置k[0]=f,其余分量按步骤s2,生成f1,f2,...,,并设置k[1]=f1,k[2]=f2,…;
47、s4、令keys=sharematrix·k,将keys各分量分给各参与方;
48、s5、输出公钥为h,在系统中公开,输出u个私钥份额keys,由各个密钥掌管节点掌管。
49、优选的,所述部分解密模块包括:
50、解密请求单元,用于系统管理员在接收数据用户对密文数据进行解密请求后,查看数据库,确定密文编号及地址,通过智能合约向密钥掌管节点请求解密数据。
51、优选的,所述最终解密模块包括:门限检查模块,用于检查用户收到的解密分片是否达到确定的门限t,若是,则数据用户进一步执行最终解密算法,根据从至少t个密钥掌管节点处得到的解密分片,计算解密分片聚合结果a=∑ai(mod q),其中ai表示由第i个密钥掌管节点pi计算得到的解密分片,q为大模数,随后计算所需明文m=a(mod p),其中a为解密分片聚合结果,p为小模数;若否,则返回无法正常解密的结果。
52、本发明所述的一种基于抗量子多方安全计算的分布式电力交易方案及系统的优点和积极效果是:
53、1、本发明中通过多方门限解密,将密钥权限进行分割,数据拥有者的私钥由多个密钥掌管者进行管理,当数据使用者需要对加密数据进行协作计算请求的时候,系统管理员查看密文编号和地址并向多个密钥掌管者发起解密请求,密钥掌管者使用自己的私钥份额对数据执行解密,得到解密分片,将解密分片发送给解密请求方,解密请求方收集到一定数量的解密分片后,恢复出隐私数据。此过程解决了由于单私钥解密模式使得个体的权限过大造成的单点私钥泄露问题,同时保证数据使用方仅得到查询结果,但对数据库其他记录信息不可知,从而保证了数据查询和使用过程安全可信。
54、2、本发明中在电力区块链网络中构造抗量子多方安全计算算法,提高抗量子算法与区块链的兼容性,提高了电力交易过程敏感数据的安全性和隐私性,保证了交易双方可信互联互通,大幅降低数据信息交易成本,为数据拥有者和使用者提供有效的对接渠道,丰富区块链在分布式电力中的应用场景。
55、3、本发明中电力区块链系统通过智能合约自动运行抗量子多方安全计算算法,多方计算参与各方就某一约定计算任务,通过约定多方安全计算协议进行协同计算,计算结束后,各方得到正确的数据结果。各参与方地位平等,不同电力用户例如分布式光伏发电、分布式天然气发电和分散式风电发电之间节点可自由随机组合,提供了灵活性,易于根据具体分布式电力需求进行调整和扩展,从而满足了复杂的分布式电力交易场景下应用需求。
56、下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
1.一种分布式电力交易方案,其特征在于,所述方案包括:
2.根据权利要求1所述的方案,其特征在于,所述确定方案的门限设置,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据线性秘密分享方案确定系统门限设置,包括:
4.根据权利要求3所述的方案,其特征在于,所述对二叉树使用folklore算法,包括:
5.根据权利要求1所述的方案,其特征在于,所述密钥生成算法,包括:
6.根据权利要求1所述的方案,其特征在于,所述用公钥对隐私数据进行加密存储,包括:
7.根据权利要求1所述的方案,其特征在于,所述执行部分解密得到数据的解密分片,包括:
8.根据权利要求1所述的方案,其特征在于,所述执行最终解密,包括:
9.一种分布式电力交易系统,其特征在于,所述系统包括以下模块:
10.根据权利要求9所述的分布式电力交易系统,其特征在于,所述确定门限模块包括:
11.根据权利要求9所述的分布式电力交易系统,其特征在于,还包括:
12.根据权利要求9所述的分布式电力交易系统,其特征在于,所述密钥生成模块包括:
13.根据权利要求9所述的分布式电力交易系统,其特征在于,所述部分解密模块包括:
14.根据权利要求9所述的分布式电力交易系统,其特征在于,所述最终解密模块包括: