CN113438070B - 基于capss的区块链密钥恢复方法及系统 - Google Patents
基于capss的区块链密钥恢复方法及系统 Download PDFInfo
- Publication number
- CN113438070B CN113438070B CN202110569387.2A CN202110569387A CN113438070B CN 113438070 B CN113438070 B CN 113438070B CN 202110569387 A CN202110569387 A CN 202110569387A CN 113438070 B CN113438070 B CN 113438070B
- Authority
- CN
- China
- Prior art keywords
- module
- evolution
- share
- participant
- secret
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明提出一种基于CAPSS的区块链密钥恢复方法和系统。本发明解决无中心的密钥共享方案的方法可以通过利用元胞自动机的进化过程的可加性,将一次元胞自动机的进化过程分解为许多的部分进化任务交给不同的参与者分别执行。解决协议与系统安全问题则可以通过保密性、正确性以及鲁棒性三个角度来分析协议与系统是否能够确保管理的密钥能够保密、是否能够正确恢复密钥以及系统在有攻击者潜伏的状况下能否做到仍可以从剩余的成员中恢复秘密。
Description
技术领域
本发明涉及密码学领域并直接应用于区块链技术领域的密钥管理与恢复,并特别涉及一种基于元胞自动机先应秘密共享(CAPSS)的区块链密钥恢复方法及系统。
背景技术
区块链技术正被广泛运用于不同行业和技术领域,推动着行业的发展与技术领域的进步。例如:基于区块链分布式账本技术(DLT)的IDM允许用户自主管理身份数据,IDM正从传统的服务管理用户身份数据向着用户自我管理迅速转变,用户可以选择自己的身份管理和服务。基于DLT的医疗患者病例记录管理允许患者管理自身病例记录,自主控制访问对象对病例记录的访问。区块链技术快速推广和运用实践的背后,是无中心网络架构、智能合约以及密码学技术等多因素结合对未来研究带来的启发和产业的激励。例如:较之传统的IDM和病患记录管理来说,这种转变给用户的隐私带来了极大的保障。区块链技术打破了传统中心化服务提供商对数据或服务的垄断控制地位,给予了用户更多的权限与资源。这种权力的释放与转移,关键要素之一在于区块链公私密钥服务,用户通过私钥的持有形成对应资源的控制或者拥有。例如:基于DLT的IDM用户通过许多私钥的持有来间接证明其对身份中属性、凭证等的拥有。区块链用户也通过私钥来证明对区块链钱包的拥有。显然,区块链密钥在区块链服务中扮演着不可忽视的关键作用。然而,许多研究都指出区块链服务缺乏有效的用户密钥管理机制,用户无法应对忘记密钥所带来的损失。密钥管理始终是IDM技术中未曾很好解决的顽疾,其成为影响IDM可用性的关键因子之一。因为,所有的密钥都在用户的管理和控制之下,不存在其它机构能够帮助用户管理和恢复密钥。这就导致用户因为忘记密钥而直接损失区块链账户下的所有资产以及数据。而引入中心化机构对密钥进行统一管理又引发了对中心化方案的顾虑,即:如何确保中心化机构没有滥用、冒用用户身份信息。因此,区块链用户密钥管理是影响区块链技术运用的核心问题之一,秘密共享技术可以有效解决这个问题。
自基于拉格朗日插值与基于高维仿射空间交集的秘密共享解决方案以来,秘密共享技术一直是研究热点,涌现了许多不同的秘密共享技术。秘密共享技术就是将秘密切分成n个份额,并交给n个参与者分别持有。其核心在于n个参与者中,至少有t(t<n)个人将其手中的秘密份额提供出来才有可能恢复出原始秘密。换言之,少于t个人提供的秘密份额是无法恢复原始秘密的。此外,将秘密分发给n个参与者后,参与者手持的秘密份额面临攻击者的觊觎。如果给予攻击者足够的时间,逐个从参与者手中获得份额以恢复秘密就成为可能,进而威胁到秘密本身的安全。
以元胞自动机(Cellular Automata,CA)理论为基础,通过构建可逆进化函数实现密钥的恢复。但基于CA的秘密共享技术还没有基于CA的先应秘密共享研究。其中一维有限布尔元胞自动机由包含N个细胞的有限序列组成离散动态系统。每个细胞的状态S∈{0,1},在离散的时间中通过一个局部函数进行更新。每个细胞的状态更新取决于该细胞当前本身的状态以及其邻居的状态,并由局部函数作用产生新的细胞状态,包含这种状态更新特征的称之为无记忆元胞自动机。如果考虑细胞在T+1时刻的状态更新不仅与T时刻有关,还与T-1、T-2等过去的许多时刻有关系。那么,就称之为可记忆元胞自动机(Memory CellularAutomata,MCA)。
发明内容
本发明基于先应秘密共享(Proactive Secret Sharing,PSS),参与者手持秘密份额并周期性的变化份额,同时保证秘密本身不变,以保护参与者的份额安全,解决区块链应用中缺乏高效密钥管理与恢复机制的问题,提出一种基于元胞自动机先应秘密共享的区块链密钥恢复方法及系统,包括以下关键技术点:
关键点1,基于元胞自动机的先应秘密共享协议(CA-PSS);技术效果:这种新的可验证(t,n)门限多秘密先应共享方法实现了一种基于元胞自动机的份额更新机制,可以在共享k个秘密的同时,允许n个参与者周期性的更新其手中的份额,以保护份额的安全性;
关键点2,去中心化的CA-PSS协议;技术效果:为CA-PSS实现了一种无需Dealer参与的秘密共享协议,将协议转化为了分布式并行任务,实现秘密共享任务的并发执行;
关键点3,安全验证机制;技术效果:针对区块链密钥的管理与恢复,围绕密钥能否保密、能否正确恢复以及系统在有攻击者潜伏的状况下能否做到仍可以从剩余的成员中恢复秘密,设计了安全验证机制,可以有效分析和验证区块链密钥管理与恢复方法和系统的安全性;
具体来说针对现有技术的不足,本发明提出一种基于CAPSS的区块链密钥恢复方法,其中包括:
步骤1、以k个区块链密钥为秘密,基于该k个秘密构建t阶的可逆LMCA;
步骤2、基于LMCA的进化结果M计算分发的份额,并将各份额分发至参与者;
步骤3、根据预设周期对参与者手中的份额进行更新;
步骤4、对参与者提供的份额进行验证和恢复,集合恢复的结果,恢复该区块链密钥。
所述的基于CAPSS的区块链密钥恢复方法,其中该步骤1包括:
步骤11、选择一个素数p使得离散对数问题在GF(p)中难以解决,并为GF(p)\{0}选择一个生成器g;
步骤12、选择邻居半径r的大小,使得其满足并设置LMCA配置的细胞数量N=秘密的最大比特位长度l;
步骤13、随机选择和发布t个随机数ω1,…,ωt-1,对于1≤i≤t-1满足1≤ωi≤2(2r +1)-1;该t个随机数将分别作为初始t个配置的规则编码,以推动细胞的状态变化;
步骤14、通过下式:
构建t阶LMCA的进化M;0≤j≤N-1,是半径为r的LMCA的局部变换函数且规则编号为ωi;
步骤15、计算LMCA的初始配置序列: 并选择随机的(t-k)个长度为N的二进制字符串填补剩余空缺,构成
所述的基于CAPSS的区块链密钥恢复方法,其中该步骤2包括:
步骤21、随机选择一个进化数m,且m≥max(k,t);
步骤22、以为初始化配置进化(m+n-1)次,形成(m+n-1)阶进化M:/>
步骤23、计算第1个参与者收到的份额直到第n个参与者收到的份额/>
步骤24、计算份额的指数模并将{G1,…,Gn}公布。
所述的基于CAPSS的区块链密钥恢复方法,其中该步骤3包括对n个参与者手持的份额执行周期性的更新操作,SHi是参与者Pi(1≤i≤n)手中持有的份额,Pi通过以下过程启动份额更新操作:
步骤31、选择发布的规则编码序列ω1,…,ωt-1作为更新阶段进化的规则,通过公式构建t阶LMCA的进化U(0≤j≤N-1);
步骤32、设置并随机生成(t-1)个长度为N的二进制字符串作为剩余初始化配置,构成/>
步骤33、n个参与者在第一轮更新中协商一个随机进化数r=r(1),r(1)≥t;
步骤34、参与者Pi利用其构建的初始配置执行(n+r-1)阶进化,得到进化序列:/>
步骤35、参与者Pi将要分发给所有参与者的关于其秘密份额SHi的新份额是进化序列中的最后n个配置:
步骤36、计算参与者Pi的发布/>
步骤37、参与者Pi删除其原有份额SHi;
步骤38、参与者Pj(1≤j≤n)收到参与者Pi发来的新份额并通过执行与上述指数模相同的运算以验证新份额的有效性,若有效,则执行步骤38;
步骤38、第二轮更新启动时,参与者Pi从所有参与者中选取连续的t个份额:{Sα+1,…,Sα+t}(0≤α≤n-t);
步骤39、参与者Pi通过计算(1≤j≤n)验证份额Sj的正确性,并构建第二轮的初始化配置:/>
步骤310、参与者Pi在第二轮进化中选择相同的进化数r=r(1)或者协商一个新的数值r=r(2);
步骤311、参与者Pi循环执行步骤34到步骤37,完成第二轮更新。
所述的基于CAPSS的区块链密钥恢复方法,其中该步骤4包括:
步骤41、获取参与者Pi手中原始份额SHα+i对应的t个连续份额Sβ+1,…,Sβ+t,且Sβ+1,…,Sβ+t是参与者Pβ+1,…,Pβ+t持有的最新秘密份额,t≥k;
步骤42、参与者Pi通过计算(β+1≤j≤β+t)验证份额Sβ+t的正确性;
步骤43、若该t个连续份额全部正确,则将该份额与公开参数{ω1,…,ωt-1}结合,基于初始配置构建逆LMCA;逆LMCA基于前述配置/>进化/>次,其中R为更新轮数,便能够恢复出参与者Pi所持有的份额SHi;
步骤44、对于1≤i≤n,每个参与者Pi通过(1≤j≤n,j≠i)验证份额的正确性;
步骤45、若份额是正确的,则将份额与公开参数{ω1,…,ωt-1}结合,基于初始配置构建M的逆,并基于配置/>进化m+α次,便能够恢复/>进化(m+α+t-1)次能够恢复出/>
步骤45、将第i个秘密第k个秘密/>作为恢复的k个区块链密钥。
本发明还提出了一种基于CAPSS的区块链密钥恢复系统,其中包括:
模块1,用于以k个区块链密钥为秘密,基于该k个秘密构建t阶的可逆LMCA;
模块2,基于LMCA的进化结果M计算分发的份额,并将各份额分发至参与者;
模块3,用于根据预设周期对参与者手中的份额进行更新;
模块4,用于对参与者提供的份额进行验证和恢复,集合恢复的结果,恢复该区块链密钥。
所述的基于CAPSS的区块链密钥恢复系统,其中该模块1包括:
模块11,用于选择一个素数p使得离散对数问题在GF(p)中难以解决,并为GF(p)\{0}选择一个生成器g;
模块12,用于选择邻居半径r的大小,使得其满足并设置LMCA配置的细胞数量N=秘密的最大比特位长度l;
模块13,用于随机选择和发布t个随机数ω1,…,ωt-1,对于1≤i≤t-1满足1≤ωi≤2(2r+1)-1;该t个随机数将分别作为初始t个配置的规则编码,以推动细胞的状态变化;
模块14,用于通过下式:
构建t阶LMCA的进化M;0≤j≤N-1,是半径为r的LMCA的局部变换函数且规则编号为ωi;
模块15,用于计算LMCA的初始配置序列: 并选择随机的(t-k)个长度为N的二进制字符串填补剩余空缺,构成/>
所述的基于CAPSS的区块链密钥恢复系统,其中该模块2包括:
模块21,用于随机选择一个进化数m,且m≥max(k,t);
模块22,用于以为初始化配置进化(m+n-1)次,形成(m+n-1)阶进化M:/>
模块23,用于计算第1个参与者收到的份额直到第n个参与者收到的份额/>
模块24,用于计算份额的指数模并将{G1,…,Gn}公布。
所述的基于CAPSS的区块链密钥恢复系统,其中该模块3包括对n个参与者手持的份额执行周期性的更新操作,SHi是参与者Pi(1≤i≤n)手中持有的份额,Pi通过以下过程启动份额更新操作:
模块31,用于选择发布的规则编码序列ω1,…,ωt-1作为更新阶段进化的规则,通过公式构建t阶LMCA的进化U(0≤j≤N-1);
模块32,用于设置并随机生成(t-1)个长度为N的二进制字符串作为剩余初始化配置,构成/>
模块33,用于使n个参与者在第一轮更新中协商一个随机进化数r=r(1),r(1)≥t;
模块34,用于使参与者Pi利用其构建的初始配置执行(n+r-1)阶进化,得到进化序列:/>
模块35,用于使参与者Pi将要分发给所有参与者的关于其秘密份额SHi的新份额是进化序列中的最后n个配置:
模块36,用于计算参与者Pi的发布/>
模块37,用于使参与者Pi删除其原有份额SHi;
模块38,用于使参与者Pj(1≤j≤n)收到参与者Pi发来的新份额并通过执行与上述指数模相同的运算以验证新份额的有效性,若有效,则执行模块38;
模块38,用于在第二轮更新启动时,参与者Pi从所有参与者中选取连续的t个份额:{Sα+1,…,Sα+t}(0≤α≤n-t);
模块39,用于使参与者Pi通过计算(1≤j≤n)验证份额Sj的正确性,并构建第二轮的初始化配置:/>
模块310,用于使参与者Pi在第二轮进化中选择相同的进化数r=r(1)或者协商一个新的数值r=r(2);
模块311,用于使参与者Pi循环执行模块34到模块37,完成第二轮更新。
所述的基于CAPSS的区块链密钥恢复系统,其中该模块4包括:
模块41,用于获取参与者Pi手中原始份额SHα+i对应的t个连续份额Sβ+1,…,Sβ+t,且Sβ+1,…,Sβ+t是参与者Pβ+1,…,Pβ+t持有的最新秘密份额,t≥k;
模块42,用于使参与者Pt通过计算(β+1≤j≤β+t)验证份额Sβ+t的正确性;
模块43,若该t个连续份额全部正确,则将该份额与公开参数{ω1,…,ωt-1}结合,基于初始配置构建逆LMCA;逆LMCA基于前述配置/>进化/>次,其中R为更新轮数,便能够恢复出参与者Pi所持有的份额SHi;
模块44,对于1≤i≤n,每个参与者Pt通过(1≤j≤n,j≠i)验证份额的正确性;
模块45,若份额是正确的,则将份额与公开参数{ω1,…,ωt-1}结合,基于初始配置构建M的逆,并基于配置/>进化m+α次,便能够恢复/>进化(m+α+t-1)次能够恢复出/>
模块45,用于将第i个秘密第k个秘密/>作为恢复的k个区块链密钥。
由以上方案可知,本发明的优点在于:
与现有技术相比,本发明可以提供更高效和安全的密钥管理与恢复效果。一方面,除去验证阶段的指数运算外,基于元胞自动机的秘密共享方法的主要计算开销是由随机数生成、异或运算以及CA的进化运算(加法运算)构成,整体的运算效率非常高效;另一方面,本发明从保密、正确恢复密钥以及系统健壮性三个角度对方法和系统进行了分析和验证,较之现有的技术能够更安全的提供密钥管理与恢复服务。
附图说明
图1为本发明的模型周期性变化示意图;
图2为基于LMCA的先应秘密共享示例图;
图3为基于LMCA的(t,n)方案示例图;
图4为并发式一阶进化示例图。
具体实施方式
发明人在进行基于秘密共享技术的区块链密钥管理和恢复研究时,发现基于元胞自动机的秘密共享机制可以提供更高效的密钥管理办法。然而,基于元胞自动机的秘密共享机制还没有基于元胞自动机的先应秘密共享研究。因此,基于元胞自动机的秘密共享机制虽能提供高效的密钥管理方法,其份额却也面临着严重的安全威胁,无法有效运用于区块链的密钥管理与恢复。本发明的核心发明点在于设计基于元胞自动机的先应秘密共享协议。即:找到一个可逆的元胞自动机来解决秘密共享方案的份额更新安全问题;另一发明点为基于元胞自动机的先应秘密共享协议设计无中心的密钥共享方案。传统秘密共享方案有一个秘密处理人员(称之为Dealer)负责秘密份额的计算、分发等工作,无中心的密钥共享方案则需要将由Dealer负责处理的机制转变为无中心的秘密共享过程。另一发明点为如何确保设计的基于元胞自动机先应秘密共享的区块链密钥可恢复方法与系统是安全的。
发明人在经过对现有的基于元胞自动机的秘密共享方法的研究发现,解决份额更新的安全问题可以通过将现有基于元胞自动机的秘密共享研究中提出的可逆函数运用于份额更新,设计安全的先应秘密共享协议。解决无中心的密钥共享方案的方法可以通过利用元胞自动机的进化过程的可加性,将一次元胞自动机的进化过程分解为许多的部分进化任务交给不同的参与者分别执行。解决协议与系统安全问题则可以通过保密性、正确性以及鲁棒性三个角度来分析协议与系统是否能够确保管理的密钥能够保密、是否能够正确恢复密钥以及系统在有攻击者潜伏的状况下能否做到仍可以从剩余的成员中恢复秘密。
为让本发明的上述特征和效果能阐述的更明确易懂,下文特举实施例,并配合说明书附图作详细说明如下。
如下表所示,为本发明涉及到的符号定义:
1.基于元胞自动机的先应秘密共享协议
基于一维线性记忆元胞自动机(Linear Memory Cellular Automata,LMCA),我们提出一种新的可验证(t,n)门限多秘密先应共享方法(Cellular Automata basedVerifiable Proactive Secret Sharing,CA-PSS)。
这个方法可以在共享k个秘密的同时,允许n个参与者周期性的更新其手中的份额,以保护份额的安全性。这个方法包括4个阶段:(1)初始化阶段。利用多个秘密来构建一个t阶的可逆LMCA。(2)分发阶段。基于进化结果M来计算和分发份额。(3)更新阶段。对参与者手中的份额进行更新。(4)验证和恢复阶段。对参与者提供的份额进行验证和恢复份额,再基于恢复的份额恢复秘密。
1)初始化阶段
初始化阶段,秘密共享处理员构建一个t阶(t≥k)的可逆LMCA,具体步骤如下:
a)选择一个素数p使得离散对数问题在GF(p)中难以解决,并为GF(p)\{0}选择一个生成器g。其中GF(p)是一种数学有限域,伽罗华域(Galois Field,GF),括号内p是素数,当p为素数时,F={0,1,2,……p-1}在mod(p)下关于模运算的加法和乘法构成一个有限域,这个域就记为GF(p)。p即为该域的大小。离散对数难的关键在于,以deffie-hellman用到的数学表达式为例:G=g^s(modp),离散对数问题是指从已知的G,g,p,很难求得s,这里的计算很难的关键是p是个很大的素数。同下面的问题结合起来,这个a步骤的意义在于,选择这样一个离散对数难问题(例如:deffie-hellman用到的G=g^s(mod p)),公布G可以验证s的正确性,但是知道G却无法倒推出s(关键的秘密)。
GF(p)标识的就是mod(p)运算,因而值在0到p-1之间。GF(p)\{0}标识除去0这个值,即:1到p-1之间的域。比如选择deffie-hellman的G=g^s(mod p)后,GF(P)就是g^s(modp)。这里的g可以随意选择,例如:2,3等,也可以选择秘密共享处理员的密钥。
生成器的作用是在后续分发阶段的第e步,为即将分发给秘密共享参与者群组的秘密份额SHi计算一个安全、难以破解的可验证值(通过离散对数难公式G=g^s(modp)),即:通过这个值就可以证明参与者手中的份额SHi是不是正确。而公开这些可验证值的意义就是任何参与者想验证其中一个参与者手中的秘密份额的正确性就可以通过他持有的秘密份额对应公开的可验证值进行计算验证。
b)选择邻居半径r的大小,使得其满足并设置N=l。
c)随机选择和发布随机数ω1,…,ωt-1,对于1≤i≤t-1满足1≤ωi≤2(2r+1)-1。这t个随机数将分别作为初始t个配置的规则编码,以推动细胞的状态变化。
d)通过公式 构建t阶LMCA的进化M。0≤j≤N-1,/>是半径为r的LMCA的局部变换函数且规则编号是ωi。
e)计算初始配置序列:设置并选择随机的(t-k)个长度为N的二进制字符串填补剩余空缺。构成/>
2)分发阶段
令M为LMCA在初始化阶段构建的进化。秘密共享处理员利用该进化M来计算将要分发给n个参与者的份额。具体步骤如下:
a)随机选择一个进化数m,且m满足m≥max(k,t)。
b)以为初始化配置进化(m+n-1)次,形成(m+n-1)阶进化M:/>
c)设置
d)计算和发布{G1,…,Gn}。
要求m满足条件m≥max(k,t),主要是为了确保将要分发的配置与初始的t个配置间无重叠。选择(m+n-1)作为进化次数,一方面是由于参与者数量为n,需要至少n个配置;另一方面为了确保选择的最新的n个配置与初始配置无重叠,即:在m次进化基础上再次进化n次。此外,由于GF(p)的离散对数难问题,公布Gi不会对份额本身的信息造成泄露。而在恢复阶段,Gi能够起到验证的作用。最后,{ω1,…,ωt-1}是向秘密共享参与者群组P公布公开的参数。t<k时,多余秘密无法参与运算,需要额外运算和公开管理k-t个秘密的新份额值,使得更新阶段更难以管理。而t≥k,确保依据阈值t构建进化序列时k个秘密都能参与,便于更新阶段的不断周期进化。
3)更新阶段
本阶段n个参与者对手持的份额执行周期性的更新操作。假设SHi是参与者Pi(1≤i≤n)手中持有的份额,Pi可以通过以下过程启动份额更新操作:
a)设置阶段。选择发布的规则编码序列ω1,…,ωt-1作为更新阶段进化的规则。通过公式 构建t阶LMCA的进化U(0≤j≤N-1)。/>是半径为r的LMCA的局部变换函数且规则编号是ωi。
b)计算初始配置序列:每个参与者Pi所持有的份额SHi是该参与者唯一的秘密,设置并随机生成其它(t-1)个长度为N的二进制字符串作为剩余初始化配置。构成/>
c)n个参与者在第一轮更新中协商一个随机进化数r=r(1),r(1)≥t。
d)参与者Pi利用其构建的初始配置执行(n+r-1)阶进化,得到如下进化序列:/>
e)参与者Pi将要分发给所有参与者的关于其秘密份额SHi的新份额是进化序列中的最后n个配置:
f)参与者Pi计算发布/>
g)参与者Pj(1≤j≤n)收到参与者Pi发来的新份额并验证其有效性。
h)参与者Pi安全的删除其原有份额SHi。
i)第二轮更新启动时,参与者Pi从所有参与者中选取连续的t个份额:{Sα+1,…,Sα+t}(0≤α≤n-t)。
j)参与者Pi通过计算(1≤j≤n)来验证份额Sj的正确性。构建第二轮的初始化配置:/>
k)参与者Pi在第二轮进化中选择相同的进化数r=r(1)或者协商一个新的数值r=r(2)。
l)参与者Pi循环执行第d-h步完成第二轮更新。
周期可以设置为小时、天、月等。同样,通过GF(p)的离散对数难问题,公布Gi不会对份额本身的信息造成泄露。而在恢复阶段,Gi能够起到验证的作用。
4)验证和恢复阶段
要恢复秘密,就需要t个连续的份额。假设SHα+1,…,SHα+t是选定参与者Pα+1,…,Pα+t手中持有的连续份额(0≤α≤n-t)。验证和恢复阶段分为两个部分:第一、对于α+1≤i≤α+t,恢复参与者Pi手中的份额SHα+i。第二、依据SHα+1,…,SHα+t恢复秘密SC1,…,SCk。具体步骤如下:
a)对于α+1≤i≤α+t,要恢复参与者Pi手中的份额SHα+i,就需要t个连续的份额。假设Sβ+1,…,Sβ+t是参与者Pβ+1,…,Pβ+t持有的关于参与者Pi手中原始份额SHα+i的最新秘密份额。
b)参与者Pi通过计算(β+1≤j≤β+t)来验证份额Sβ+t的正确性。
c)如果全部份额正确,则将该份额与将份额与公开参数{ω1,…,ωt-1}结合,基于初始配置构建逆LMCA。基于前述配置/>进化次(R为更新轮数)(如果每轮的进化次数都是r,则为R*r+t-1)能够恢复出/>即:SHi。
d)对于1≤i≤n,每个Pi可以通过(1≤j≤n,j≠i)来验证份额的正确性。
e)如果份额是正确的,将份额与公开参数{ω1,…,ωt-1}结合,基于初始配置构建M的逆。基于前述配置/>进化m+α次能够恢复出/>进化(m+α+t-1)次能够恢复出/>
f)由于t≥k,则
基于元胞自动机的区块链密钥管理方法与系统研究:
1)功能模型
时期基于元胞自动机的区块链密钥管理系统中的时间被等分的划分为了许多预定长度的时隙,该时隙被称之为时期。每个时期,由区块链上的节点组成秘密共享委员会并由该委员会分别保存秘密份额。因此,在每个时期e,大小为n(e)的委员会可以通过门限秘密共享方案(t,n(e))来共享和保护秘密。
进化如图1所示,模型周期性执行进化操作,将秘密S转化为新的形式。一次进化操作由委员会中选择t个成员,并且要求该t个成员手中的份额/>是连续的。再将秘密S的t个连续配置/>变换m次,得到n(e)个连续的配置
继承如图1所示,委员会将手中的秘密进化为新的形式后,交由委员会/>继承。系统支持动态委员会,即:委员会成员可以动态的进入和离开。本文设定委员会成员仅能在继承秘密环节动态的加入和离开。在继承环节,所有继承委员会/>的成员将首先清除所有信息和回归初始状态,再接受新份额的继承。
2)区块链网络模型
本文试图运用秘密共享技术解决区块链账户密钥管理问题。参考秘密共享的运作机制,需要参与秘密共享的n个参与方通过一个网络连接起来。该网络需包括安全的广播通道以及点对点的安全通信通道,并基于该网络围绕协议协同完成任务。即:秘密共享需要一个无中心的对等协作网络,这与区块链本身的网络模型天然契合。经过几年的快速发展,区块链已经逐步划分为了三大类:公有区块链、私有区块链以及联盟区块链。从权限上来看,公有区块链允许链上节点的自由进出,私有区块链完全是受控链,而联盟区块链属于有准入机制的区块链。从扩展性上来看,以超级账本为代表的联盟链诞生之初就允许横向快速扩展多链,公有链则后期探索跨链机制推动多链生态。从秘密共享的安全性要求来看,一个强大且主动的移动攻击者/>决定了秘密共享组无法长期保护秘密的机密性。虽然,先应秘密共享技术通过不断变化参与者手中份额做到让攻击者/>难以获取秘密。但是,动态的秘密共享参与组也是维护秘密的一种重要手段。综合来看,带有准入机制的联盟区块链(例如:超级账本)以及私有区块链都是实用的网络模型。而公有区块链的节点进出自由,也可以自由参与秘密共享相关服务过程,这对于密钥的可恢复有相当的挑战。因此,当可以对公有区块链的节点进行管理时,其也是适用的网络模型。但是,此时的公有链也不是严格意义的公有链。
3)攻击者模型
我们假定存在一个强大且主动的移动攻击者他能够在协议执行过程中随意移动并在有限时间内控制委员会/>中的一个成员。显然,给移动攻击者/>足够的时间,他能够控制委员会/>中的所有成员。一旦某个成员被控制,我们假定他将被控制直到当前时期结束。新时期开始,被控制成员通过重启操作可以摆脱移动攻击者/>的控制。传统的门限秘密共享方案(t,n)中,需要至少t个成员才可以恢复秘密。因此,出于安全的考虑,剩余的(n-t)个成员是攻击者/>允许控制的上限。与此同时,为确保(n-t)个被控制的成员无法恢复秘密,还需要满足(n-t)<t,即:t>n/2。也就是说,在确保安全的情况下,允许被控制的成员数量a满足关系:a<n/2。然而,基于LMCA的秘密共享机制在要求至少t个成员恢复秘密的同时,还要求份额连续性。这意味着,即便被控制的成员数量a超过约束条件n/2,也可能因没有至少t个连续份额而无法恢复秘密。例如:如图3所示的(t,n)门限方案,假定{P1,P2,P3,P4}被移动攻击者/>控制且手中的秘密份额如图所示。在恢复阶段,份额{SH1,SH2,SH3,SH4}因通过{P1,P2,P3,P4}可以得到连续的秘密份额而可以恢复,而SH3无法恢复。进一步的,t=3意味着移动攻击者/>即便控制了{P1,P2,P3,P4}并得到了份额{SH1,SH2,SH4,SH5},也无法恢复秘密。因此,基于CA-PSS的秘密共享方案理论上较之传统方案可以有更强的容忍对手能力:a<n/2+∈。本发明基于区块链网络模型实现秘密共享以解决区块链用户的密钥管理问题。通过构建包含n个节点的联盟链子链/>来运行先应秘密共享协议,该n个节点构成了秘密共享委员会/>因此,基于区块链网络模型实现的秘密共享机制在攻击者模型上同时要满足区块链对于攻击者的阈值要求。区块链要求主动攻击者阈值a需满足条件:a<n/2,以确保子链/>自身账本数据的安全。综合来看,本文的主动攻击者阈值a为a<n/2。借鉴Hirt等[12]及Dolev等[13]对秘密共享方案的安全定义,本文定义安全为正确性(Correctness)、保密性(Secrecy)和鲁棒性(Robustness)。
定义1.面对阈值为a的任何概率多项式时间模型的攻击者我们称先应秘密共享协议对于动态委员会是安全的,当其满足以下条件:
保密性(Secrecy):任何时期下,攻击者控制了委员会中的a个成员。基于该a个成员手中的秘密份额,攻击者/>一定得不到秘密,则表示系统满足保密性。
鲁棒性(Robustness):在攻击者的干扰下,a个成员被控制。在进化阶段,仍可以从剩余的成员中有效计算新的秘密份额,则意味着秘密始终可恢复。
正确性(Correctness):在秘密可恢复且攻击者得不到秘密的前提下,选定连续秘密份额。如果恢复的秘密S′与原始秘密S保持一致,则是系统正确运行。
4)先应秘密共享协议
a)初始化与分发协议
基于准入机制的联盟链架构,选定参与节点并构建一条区块链作为秘密共享服务链。假定,该链/>创建之初包括n个节点,且创建之初都是没有被控制的安全状态。为该链发布一条初始合约,该合约包括初始化阶段需要选定的参数(p,r,ω1,…,ωt-1),阈值t以及k个秘密。用户/>通过钱包提交密钥管理服务申请,在区块链/>上形成先后有序的k个秘密管理申请REQ={Request1,Request2,...,Requestk}。本文为简便起见,假设t=k且REQ代表从时刻0到(t-1)时刻的请求序列。该请求序列的发起者/> 手中持有的密钥就是LMCA的初始化配置/>区别于前述CA-PSS的初始化阶段和分发阶段协议,基于区块链实现的初始化与分发协议没有秘密处理员。这需要区块链/>与用户/>通过分布式协作计算完成该协议。CA-PSS的初始化阶段的LMCA进化公式是分发阶段协议构建(m+n-1)阶进化的核心。考虑到该公式具有可加性,我们可以将其分解为t份子任务并发给对应用户{Ut,…,U2,U1}执行计算。此外,/>也可以并发执行,即:用户Ui在一轮计算中收到关于/> 的N个计算任务。
如图4所示,为并发一阶进化示例。用户Ui执行一阶局部进化算法,将结果反馈给区块链区块链/>通过Pos权益证明选出负责人Pj(0≤j≤n-1)来接收来自用户的一阶局部进化结果并求和得到对应比特位上的结果。Pj最终存储该一阶运算结果并作为最新的请求加入REQ,形成REQ={Request1,Request2,...,Requestt,Requestt+1}。如算法1所示为一阶局部进化算法,由时间复杂度为O(N)的异或运算和O(1)的通信开销组成。算法2为一阶进化算法,由O(t)的通信开销以及时间复杂度为O(N*t)的异或运算组成。
b)先应更新协议
区块链的初始合约在发布之初,包含有更新周期参数e。当达到触发周期更新份额的时间条件时,初始合约触发先应更新协议,启动更新流程。假定最新的n个进化结果存在于/>中。/>构成秘密共享委员会,并协商进化数r。协商方法可以采用固定约定方式(即:通过合约配置完成约定),也可以采用ATN[14]等方式完成。Pi分别执行(r+n+1)阶进化算法2,生成包含(r+n+1)个配置的进化序列至此,秘密共享委员会所有成员Pi手中都有了关于其份额SHi的(r+n+1)阶进化序列。Pi都取最后n个连续进化结果/>分发给委员会中的其它成员。至此,n个份额以及每个份额的n个进化结果与n个参与者之间形成了一个nxn的矩阵。如图3所示为例,为n=5的5x5矩阵。假设攻击者/>已经攻占了P1与P5,那么通过P2、P3和P4所持有的秘密份额仅能恢复份额SH1、SH2、SH4和SH5。显然,份额SH3的缺失使得任何秘密都无法恢复。即:基于连续份额的秘密恢复极易受到攻击者的影响,进而破坏整个系统的鲁棒性。因此,先应更新协议需要能够检测哪些节点被攻击者/>控制,并通过一定方法摆脱控制和恢复该节点的原有秘密份额数据。
如算法3所示为参与者Pi对手中的n份秘密份额的分发算法,由时间复杂度为O(n)的数组遍历和O(2n)的通信开销组成。接收者对收到的秘密份额通过哈希运算验证正确性。在周期性更新秘密的过程中,首先需要从委员会成员Pi手中恢复秘密。如果,攻击者控制了节点,可能会导致无法恢复秘密。因此,需要攻击者检测算法。如算法4所示为攻击者检测算法,算法向指定参与者发出请求秘密份额的通信,如果指定时间没收到相应或者受到错误响应都判定为攻击者。对于攻击者可以通过节点重启操作摆脱控制,通过其顺位下一个节点的加密秘密来恢复其原本持有的秘密份额值。
/>
c)验证与恢复协议
根据门限秘密共享方案(t,n),需要至少t个连续的份额才能完成秘密恢复。区块链接到恢复秘密请求时,从链/>中随机选择t个或者至少t个参与者,并通过攻击者算法检测是否存在被攻击者控制的节点。如果存在,则重启该节点。在重启完成后,从下一顺位的参与者手中拿到其加密的秘密份额,并通过密钥解密来恢复其手中的所有秘密份额。
下一步执行秘密份额SHi的恢复。通过收集选定的参与者手中的秘密份额,执行连续的次进化算法(如果每轮的进化次数都是r,则为(R*r+t-1))就能够恢复出SHi。最后,恢复出连续t个份额{SHα+1,…,SHα+t}。依据该t个连续份额分别执行(m+α)至(m+α+t-1)次进化算法就可以逐个恢复所有秘密。
5)安全分析
a)初始化与分发协议
参照CA-PSS协议,分发阶段需要(m+n-1)阶进化。区块链通过POW共识或者Raft选举机制不断选取新的负责人重复前述步骤可以完成(m+n-1)阶进化。基于竞争的负责人选取机制有可能造成新的进化结果过于集中于某些区块链节点。假设最新的n阶进化结果落在b个节点上且b<n/2-1(极端情况下,n阶进化结果可能都落在某一个算力强大的节点),攻击者/>控制了n/2-1个节点。那么,攻击者/>控制的n/2-1个节点有可能包括前述全部b个节点或者关键节点(例如:t=n时,第n/2个进化结果就是关键结果)。攻击者/>如果知道顺序则能够恢复秘密,打破了保密性。攻击者/>控制的节点如果不遵循协议,那么系统自身也无法恢复秘密,打破了鲁棒性。综合而言,基于竞争的负责人选取机制有可能引发安全危机。本发明选用了Pos权益证明,即:根据每个节点所占进化结果的比例和时间来确定负责人的机制。通过该共识机制,确保进化结果均匀分布在所有的区块链/>的节点上。当(m+n-1)阶进化结束时,最新的n阶进化结果基本均匀分布在n个节点中。攻击者/>最多控制n/2-1个节点,在选定合适的t(t>n/2)后,攻击者/>所控制的n/2-1个节点既无法威胁到区块链自身安全,也无法打破鲁棒性、保密性和正确性。即:选用Pos权益证明确保进化结果均匀分布于所有节点并选定门限阈值t(t>n/2)时,系统的初始化与分发协议是安全的。/>
b)先应更新协议
n个参与者与每个份额的n份秘密份额可以构成一个nxn的矩阵,从该矩阵中任取a列作为攻击者所控制的节点。显然,在区块链环境下,首先需要满足a<(n/2)-1才能保障区块链平台的安全。其次,a<t,即:被控制的节点数量低于门限阈值。这种情况下,攻击者始终都无法得到任何秘密,可以确保系统的保密性。另外,先应更新协议提出攻击者检测算法和秘密份额恢复机制,可以有效避免关键节点的缺失所引发的秘密无法恢复的危机。与此同时,攻击者的及时发现可以在下一轮更新启动前通过动态委员会的调整来保障一个安全的委员会环境。即:通过更新协议能够有效保障系统鲁棒性。最后,更新协议的所有分发环境通过对秘密构建哈希值和公开哈希值,以哈希验证和秘密份额的恢复机制确保秘密的正确性。综合来看,以区块链的安全通信通道为基础,先应更新协议通过攻击者检测、秘密份额恢复机制以及秘密份额验证机制可以确保系统的安全。
c)验证与恢复协议
从Pi获取到关于份额SHj秘密份额Si,首先需要验证该秘密份额的正确性。在先应更新协议生成该秘密份额Si时,依据区块链合约交易机制,账本中会存留该秘密份额生成时所产生的签名以及哈希结果。后续只要攻击者控制的节点数量少于n/2-1,账本数据就是安全的。验证协议通过将哈希函数输入秘密份额Si产生哈希结果并与账本中的哈希数值比对就可以判别秘密份额的正确性。前述先应更新协议的攻击者检测算法和节点秘密恢复机制可以确保门限t>n/2且攻击者/>所控制的节点数量小于n/2-1的情况下系统的鲁棒性。与此同时,门限t>n/2且攻击者/>所控制的节点数量小于n/2-1,也保证了/>无法恢复秘密,实现了保密性。因此,验证与恢复协议是安全的。
2.案例
本发明以超级账本区块链网络为例子,描述实施上述技术方案的详细过程。如图1所示,超级账本子链中的所有参与者构成一个秘密共享委员会/>并通过子链形成一个网络连接。
区块链账户持有用户,通过生物学特征加密方式(例如:指纹)对其私钥进行加密得到关于其账户私钥的原始秘密,并将原始秘密与能表征该用户唯一性的标识(例如:钱包地址、公钥或其它)发送给本系统。系统将该请求中的原始秘密推入秘密托管队列,返回队列编号以及用户的原始秘密在队列中的位置编号。同时,将该用户唯一性标识、原始秘密所在队列编号以及队列中的位置编号等记录入账本。
超级账本子链的时间被划分为时期(例如:小时、天或周),委员会/>中所有成员参与进化协议。超级账本子链/>在收到了k个秘密托管申请后启动初始化与分发协议,生成n个秘密份额。或者在等待了预设时间后如果没有k个秘密,则通过随机生成的方式补足形成k个秘密,进而启动初始化与分发协议,生成n个秘密份额。前述n个秘密份额将通过分发协议被分发给子链/>的n个节点。
超级账本子链到了固定时期,启动先应更新协议,将上述n个秘密份额进化为新的n个秘密份额。在超级账本子链/>继承新的n个秘密份额前,对当前委员会/>中所有成员状态进行验证和暂时剔除异常状态节点,委员会/>中成员在此时也可以选择退出委员会。最终,子链/>通过剔除和补足新成员构建新的委员会/>并继承上阶段进化操作生成的新的n个秘密份额。在没有恢复原始秘密申请的情况下,更新操作周期性执行。
如图2所示,为基于LMCA元胞自动机的先应秘密共享例子。在时期e-1,通过LMCA将份额SHi转化为n个配置并交由时期e-1的委员会的成员以秘密份额的形式保管。进化阶段,任选连续的t个成员手中的秘密份额执行m阶进化,得到一组新的n个配置。在继承阶段,选择出新的委员会/>并继承和保管新的秘密份额。
区块链账户持有用户申请恢复原始秘密,向系统发送恢复申请,系统通过查询账本定位该用户原始秘密所在的队列编号以及队列内位置编号。超级账本子链从n个节点选择该队列的至少t个连续的份额执行验证与恢复协议,直接恢复位置编号所在原始秘密。将该原始秘密返回给用户。
以下为与上述方法实施例对应的系统实施例,本实施方式可与上述实施方式互相配合实施。上述实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在上述实施方式中。
本发明还提出了一种基于CAPSS的区块链密钥恢复系统,其中包括:
模块1,用于以k个区块链密钥为秘密,基于该k个秘密构建t阶的可逆LMCA;
模块2,基于LMCA的进化结果M计算分发的份额,并将各份额分发至参与者;
模块3,用于根据预设周期对参与者手中的份额进行更新;
模块4,用于对参与者提供的份额进行验证和恢复,集合恢复的结果,恢复该区块链密钥。
所述的基于CAPSS的区块链密钥恢复系统,其中该模块1包括:
模块11,用于选择一个素数p使得离散对数问题在GF(p)中难以解决,并为GF(p)\{0}选择一个生成器g;
模块12,用于选择邻居半径r的大小,使得其满足并设置LMCA配置的细胞数量N=秘密的最大比特位长度l;
模块13,用于随机选择和发布t个随机数ω1,…,ωt-1,对于1≤i≤t-1满足1≤ωi≤2(2r+1)-1;该t个随机数将分别作为初始t个配置的规则编码,以推动细胞的状态变化;
模块14,用于通过下式:
构建t阶LMCA的进化M;0≤j≤N-1,是半径为r的LMCA的局部变换函数且规则编号为ωi;
模块15,用于计算LMCA的初始配置序列: 并选择随机的(t-k)个长度为N的二进制字符串填补剩余空缺,构成/>
所述的基于CAPSS的区块链密钥恢复系统,其中该模块2包括:
模块21,用于随机选择一个进化数m,且m≥max(k,t);
模块22,用于以为初始化配置进化(m+n-1)次,形成(m+n-1)阶进化M:/>
模块23,用于计算第1个参与者收到的份额直到第n个参与者收到的份额/>
模块24,用于计算份额的指数模并将{G1,…,Gn}公布。
所述的基于CAPSS的区块链密钥恢复系统,其中该模块3包括对n个参与者手持的份额执行周期性的更新操作,SHi是参与者Pi(1≤i≤n)手中持有的份额,Pi通过以下过程启动份额更新操作:
模块31,用于选择发布的规则编码序列ω1,…,ωt-1作为更新阶段进化的规则,通过公式 构建t阶LMCA的进化U(0≤j≤N-1);
模块32,用于设置并随机生成(t-1)个长度为N的二进制字符串作为剩余初始化配置,构成/>
模块33,用于使n个参与者在第一轮更新中协商一个随机进化数r=r(1),r(1)≥t;
模块34,用于使参与者Pi利用其构建的初始配置执行(n+r-1)阶进化,得到进化序列:/>
模块35,用于使参与者Pi将要分发给所有参与者的关于其秘密份额SHi的新份额是进化序列中的最后n个配置:
模块36,用于计算参与者Pi的发布/>
模块37,用于使参与者Pi删除其原有份额SHi;
模块38,用于使参与者Pj(1≤j≤n)收到参与者Pi发来的新份额并通过执行与上述指数模相同的运算以验证新份额的有效性,若有效,则执行模块38;
模块38,用于在第二轮更新启动时,参与者Pi从所有参与者中选取连续的t个份额:{Sa+1,…,Sα+t}(0≤α≤n-t);
模块39,用于使参与者Pi通过计算(1≤j≤n)验证份额Sj的正确性,并构建第二轮的初始化配置:/>
模块310,用于使参与者Pi在第二轮进化中选择相同的进化数r=r(1)或者协商一个新的数值r=r(2);
模块311,用于使参与者Pi循环执行模块34到模块37,完成第二轮更新。
所述的基于CAPSS的区块链密钥恢复系统,其中该模块4包括:
模块41,用于获取参与者Pi手中原始份额SHα+i对应的t个连续份额Sβ+1,…,Sβ+t,且Sβ+1,…,Sβ+t是参与者Pβ+1,…,Pβ+t持有的最新秘密份额,t≥k;
模块42,用于使参与者Pi通过计算(β+1≤j≤β+t)验证份额Sβ+t的正确性;
模块43,若该t个连续份额全部正确,则将该份额与公开参数{ω1,…,ωt-1}结合,基于初始配置构建逆LMCA;逆LMCA基于前述配置/>进化/>次,其中R为更新轮数,便能够恢复出参与者Pi所持有的份额SHi;
模块44,对于1≤i≤n,每个参与者Pi通过(1≤j≤n,j≠i)验证份额的正确性;
模块45,若份额是正确的,则将份额与公开参数{ω1,…,ωt-1}结合,基于初始配置构建M的逆,并基于配置/>进化m+α次,便能够恢复/>进化(m+α+t-1)次能够恢复出/>
模块45,用于将第i个秘密第k个秘密/>作为恢复的k个区块链密钥。/>
Claims (4)
1.一种基于CAPSS的区块链密钥恢复方法,其特征在于,该CAPSS为元胞自动机先应秘密共享,该区块链密钥恢复方法包括:
步骤1、以k个区块链密钥作为秘密,基于该k个秘密构建t阶的可逆一维线性记忆元胞自动机LMCA;
步骤2、基于LMCA的进化结果M计算分发的份额,并将各份额分发至参与者;
步骤3、根据预设周期对参与者手中的份额进行更新;
步骤4、对参与者提供的份额进行验证和恢复,集合恢复的结果,恢复该区块链密钥;
其中该步骤1包括:
步骤11、选择一个素数p使得离散对数问题在GF(p)中难以解决,并为GF(p)\{0}选择一个生成器g;
步骤12、选择邻居半径r的大小,使得其满足并设置LMCA配置的细胞数量N=秘密的最大比特位长度l;
步骤13、随机选择和发布t个随机数ω1,...,ωt-1,对于1≤i≤t-1满足1≤ωi≤2(2r+1)-1;该t个随机数将分别作为初始t个配置的规则编码,以推动细胞的状态变化;
步骤14、通过下式:
构建t阶LMCA的进化M;0≤j≤N-1,是半径为r的LMCA的局部变换函数且规则编号为ωi;
步骤15、计算LMCA的初始配置序列: 并选择随机的(t-k)个长度为N的二进制字符串填补剩余空缺,构成作为该t阶的可逆一维线性记忆元胞自动机LMCA;
该步骤3包括对n个参与者手持的份额执行周期性的更新操作,SHi是参与者Pi,1≤i≤n手中持有的份额,Pi通过以下过程启动份额更新操作:
步骤31、选择发布的规则编码序列ω1,...,ωt-1作为更新阶段进化的规则,通过公式构建t阶LMCA的进化U,0≤j≤N-1;
步骤32、设置并随机生成(t-1)个长度为N的二进制字符串作为剩余初始化配置,构成/>
步骤33、n个参与者在第一轮更新中协商一个随机进化数r=r(1),r(1)≥t;
步骤34、参与者Pi利用其构建的初始配置执行(n+r-1)阶进化,得到进化序列:/>
步骤35、参与者Pi将要分发给所有参与者的关于其秘密份额SHi的新份额是进化序列中的最后n个配置:
步骤36、计算参与者Pi的发布/>
步骤37、参与者Pi删除其原有份额SHi;
步骤38、参与者Pj,1≤j≤n收到参与者Pi发来的新份额
步骤39、第二轮更新启动时,参与者Pi从所有参与者中选取连续的t个份额:{Sα+1,...,Sα+t},0≤α≤n-t;
步骤310、参与者Pi通过计算验证份额Sj的正确性,并构建第二轮的初始化配置:/>
步骤311、参与者Pi在第二轮进化中选择相同的进化数r=r(1)或者协商一个新的数值r=r(2);
步骤312、参与者Pi循环执行步骤34到步骤37,完成第二轮更新;
该步骤4包括:
步骤41、获取参与者Pi手中原始份额SHα+i对应的t个连续份额Sβ+1,...,Sβ+t,且Sβ+1,...,Sβ+t是参与者Pβ+1,...,Pβ+t持有的最新秘密份额,t≥k;
步骤42、参与者Pi通过计算β+1≤j≤β+t验证份额Sβ+t的正确性;
步骤43、若该t个连续份额全部正确,则将该份额与公开参数{ω1,...,ωt-1}结合,基于初始配置构建逆LMCA;逆LMCA基于前述配置/>进化次,其中R为更新轮数,便能够恢复出参与者Pi所持有的份额SHi;
步骤44、对于1≤i≤n,每个参与者Pi通过1≤j≤n,j≠i验证份额的正确性;
步骤45、若份额是正确的,则将份额与公开参数{ω1,...,ωt-1}结合,基于初始配置构建M的逆,并基于配置/>进化m+α次,便能够恢复/>进化(m+α+t-1)次能够恢复出/>
步骤45、将第i个秘密第k个秘密/>作为恢复的k个区块链密钥。
2.如权利要求1所述的基于CAPSS的区块链密钥恢复方法,其特征在于,该步骤2包括:
步骤21、随机选择一个进化数m,且m≥max(k,t);
步骤22、以为初始化配置进化(m+n-1)次,形成(m+n-1)阶进化M:/>
步骤23、计算第1个参与者收到的份额直到第n个参与者收到的份额
步骤24、计算份额的指数模并将{G1,...,Gn}公布。
3.一种基于CAPSS的区块链密钥恢复系统,其特征在于,该CAPSS为元胞自动机先应秘密共享,该区块链密钥恢复系统包括:
模块1,用于以k个区块链密钥为秘密,基于该k个秘密构建t阶的可逆一维线性记忆元胞自动机LMCA;
模块2,基于LMCA的进化结果M计算分发的份额,并将各份额分发至参与者;
模块3,用于根据预设周期对参与者手中的份额进行更新;
模块4,用于对参与者提供的份额进行验证和恢复,集合恢复的结果,恢复该区块链密钥;
其中,该模块1包括:
模块11,用于选择一个素数p使得离散对数问题在GF(p)中难以解决,并为GF(p)\{0}选择一个生成器g;
模块12,用于选择邻居半径r的大小,使得其满足并设置LMCA配置的细胞数量N=秘密的最大比特位长度l;
模块13,用于随机选择和发布t个随机数ω1,...,ωt-1,对于1≤i≤t-1满足1≤ωi≤2(2r+1)-1;该t个随机数将分别作为初始t个配置的规则编码,以推动细胞的状态变化;
模块14,用于通过下式:
构建t阶LMCA的进化M;0≤j≤N-1,是半径为r的LMCA的局部变换函数且规则编号为ωi;
模块15,用于计算LMCA的初始配置序列: 并选择随机的(t-k)个长度为N的二进制字符串填补剩余空缺,构成作为该t阶的可逆一维线性记忆元胞自动机LMCA;
该模块3包括对n个参与者手持的份额执行周期性的更新操作,SHi是参与者Pi,1≤i≤n手中持有的份额,Pi通过以下过程启动份额更新操作:
模块31,用于选择发布的规则编码序列ω1,...,ωt-1作为更新阶段进化的规则,通过公式构建t阶LMCA的进化U,0≤j≤N-1;
模块32,用于设置并随机生成(t-1)个长度为N的二进制字符串作为剩余初始化配置,构成/>
模块33,用于使n个参与者在第一轮更新中协商一个随机进化数r=r(1),r(1)≥t;
模块34,用于使参与者Pi利用其构建的初始配置执行(n+r-1)阶进化,得到进化序列:/>
模块35,用于使参与者Pi将要分发给所有参与者的关于其秘密份额SHi的新份额是进化序列中的最后n个配置:
模块36,用于计算参与者Pi的发布/>
模块37,用于使参与者Pi删除其原有份额SHi;
模块38,用于使参与者Pj,1≤j≤n收到参与者Pi发来的新份额
模块39,用于在第二轮更新启动时,参与者Pi从所有参与者中选取连续的t个份额:{Sα+1,...,Sα+t},0≤α≤n-t;
模块310,用于使参与者Pi通过计算1≤j≤n验证份额Sj的正确性,并构建第二轮的初始化配置:/>
模块311,用于使参与者Pi在第二轮进化中选择相同的进化数r=r(1)或者协商一个新的数值r=r(2);
模块312,用于使参与者Pi循环执行模块34到模块37,完成第二轮更新;
该模块4包括:
模块41,用于获取参与者Pi手中原始份额SHα+i对应的t个连续份额Sβ+1,...,Sβ+t,且Sβ+1,...,Sβ+t是参与者Pβ+1,...,Pβ+t持有的最新秘密份额,t≥k;
模块42,用于使参与者Pi通过计算β+1≤j≤β+t验证份额Sβ+t的正确性;
模块43,若该t个连续份额全部正确,则将该份额与公开参数{ω1,...,ωt-1}结合,基于初始配置构建逆LMCA;逆LMCA基于前述配置/>进化次,其中R为更新轮数,便能够恢复出参与者Pi所持有的份额SHi;
模块44,对于1≤i≤n,每个参与者Pi通过1≤j≤n,j≠i验证份额的正确性;
模块45,若份额是正确的,则将份额与公开参数{ω1,...,ωt-1}结合,基于初始配置构建M的逆,并基于配置/>进化m+α次,便能够恢复/>进化(m+α+t-1)次能够恢复出/>
模块45,用于将第i个秘密第k个秘密/>作为恢复的k个区块链密钥。
4.如权利要求3所述的基于CAPSS的区块链密钥恢复系统,其特征在于,该模块2包括:
模块21,用于随机选择一个进化数m,且m≥max(k,t);
模块22,用于以为初始化配置进化(m+n-1)次,形成(m+n-1)阶进化/>
模块23,用于计算第1个参与者收到的份额直到第n个参与者收到的份额/>
模块24,用于计算份额的指数模并将{G1,...,Gn}公布。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110569387.2A CN113438070B (zh) | 2021-05-25 | 2021-05-25 | 基于capss的区块链密钥恢复方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110569387.2A CN113438070B (zh) | 2021-05-25 | 2021-05-25 | 基于capss的区块链密钥恢复方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113438070A CN113438070A (zh) | 2021-09-24 |
CN113438070B true CN113438070B (zh) | 2023-07-21 |
Family
ID=77802825
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110569387.2A Active CN113438070B (zh) | 2021-05-25 | 2021-05-25 | 基于capss的区块链密钥恢复方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113438070B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114553408B (zh) * | 2022-02-21 | 2023-11-03 | 上海交通大学 | 基于Galois环的RS码的门限线性加密解密方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106530368B (zh) * | 2016-10-28 | 2019-06-11 | 陕西师范大学 | 一种素数域多门限渐进秘密图像分存及重构方法 |
GB201709367D0 (en) * | 2017-06-13 | 2017-07-26 | Nchain Holdings Ltd | Computer-implemented system and method |
JP7301039B2 (ja) * | 2017-08-15 | 2023-06-30 | エヌチェーン ライセンシング アーゲー | 閾値デジタル署名方法及びシステム |
KR102627049B1 (ko) * | 2017-08-15 | 2024-01-19 | 엔체인 홀딩스 리미티드 | 임계치 볼트를 생성하는 컴퓨터로 구현되는 방법 |
US11244316B2 (en) * | 2018-06-07 | 2022-02-08 | International Business Machines Corporation | Biometric token for blockchain |
US11556925B2 (en) * | 2018-09-12 | 2023-01-17 | International Business Machines Corporation | Ensuring information fairness and input privacy using a blockchain in a competitive scenario governed by a smart contract |
JP6811317B2 (ja) * | 2018-11-07 | 2021-01-13 | アドバンスド ニュー テクノロジーズ カンパニー リミテッド | ブロックチェーン機密トランザクション内の暗号化されたトランザクション情報の復元 |
CN110740033B (zh) * | 2019-08-19 | 2022-07-19 | 杭州云象网络技术有限公司 | 一种基于秘密共享技术的区块链多方数据共享方法 |
-
2021
- 2021-05-25 CN CN202110569387.2A patent/CN113438070B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113438070A (zh) | 2021-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zamani et al. | Rapidchain: Scaling blockchain via full sharding | |
CN111639361B (zh) | 一种区块链密钥管理方法、多人共同签名方法及电子装置 | |
Guo et al. | Dumbo: Faster asynchronous bft protocols | |
KR102472231B1 (ko) | 블록체인 구현 방법 및 시스템 | |
CN106899698B (zh) | 一种区块链之间的跨链互操作方法 | |
TWI723665B (zh) | 基於恢復的公開金鑰進行認證 | |
EP3069249B1 (en) | Authenticatable device | |
US10375070B2 (en) | Generating cryptographic function parameters from compact source code | |
Schröder et al. | Verifiable data streaming | |
Huang et al. | Scalable and redactable blockchain with update and anonymity | |
JP2020532170A (ja) | ブロックチェーンにおける擬似乱数生成 | |
CN110086626B (zh) | 基于非对称密钥池对的量子保密通信联盟链交易方法和系统 | |
CN108400981B (zh) | 智慧城市中轻量级和隐私保护的公共云审计系统和方法 | |
KR20220088507A (ko) | 분산 거래 전파 및 검증 시스템 | |
US11316665B2 (en) | Generating cryptographic function parameters based on an observed astronomical event | |
Tian et al. | Fair (t, n) threshold secret sharing scheme | |
US10079675B2 (en) | Generating cryptographic function parameters from a puzzle | |
CN108399533B (zh) | 交易处理方法、装置、计算机设备和存储介质 | |
CN113841149A (zh) | 用于在工作量证明区块链网络上进行挖掘的系统和方法 | |
CN113438070B (zh) | 基于capss的区块链密钥恢复方法及系统 | |
Zyskind | Efficient secure computation enabled by blockchain technology | |
Kwak et al. | The design of hierarchical consensus mechanism based on service-zone sharding | |
Mihaljevic | A blockchain consensus protocol based on dedicated time-memory-data trade-off | |
CN113939821A (zh) | 用于在工作量证明区块链网络上进行非并行挖掘的系统和方法 | |
CN113468601B (zh) | 数据隐私融合方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |