CN108199842B - 延迟公布信息的方法和系统 - Google Patents
延迟公布信息的方法和系统 Download PDFInfo
- Publication number
- CN108199842B CN108199842B CN201810149157.9A CN201810149157A CN108199842B CN 108199842 B CN108199842 B CN 108199842B CN 201810149157 A CN201810149157 A CN 201810149157A CN 108199842 B CN108199842 B CN 108199842B
- Authority
- CN
- China
- Prior art keywords
- information
- public key
- shares
- node
- predetermined condition
- 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
Images
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/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0863—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
-
- 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
Abstract
本公开内容公开了延迟公布信息的方法和系统。该方法在用户端处包括将所述信息分割成m个份额,使得基于这m个份额中的任何k个份额能够重构所述信息;从区块链系统中选取n个节点,这n个节点中不可信任的节点数目小于k‑1个并且2(k‑1)小于n;以及分别使用各个节点创建的公钥对所述信息的相应份额进行加密,所述公钥是各个节点针对预定条件所创建的公钥和私钥对中的公钥。采用本公开内容的技术方案能够实现精确延迟。
Description
技术领域
本发明涉及密码安全及其应用领域,尤其涉及延迟公布信息的方法和系统。
背景技术
在二十世纪九十年代提出了时间锁加密的概念,时间锁加密通常是指对信息x(可以为任何信息)进行加密得到加密信息y,待到时间t(可以为任何时间)或者以后时任何人都可以对加密信息y进行解密以得到信息x,但是在时间t之前任何人都不能够对加密信息y进行解密,即在时间t之前任何人都不能获知信息x。这相当于对信息x进行了延迟,将其延迟到时间t,待到时间t或以后时人们才能够获知信息x。换言之,待到时间t或以后时才将信息x公布出来。通常来讲这种延迟都较长。非常需要一种使被延迟的信息变得可获知的延迟时间短且易于操作的程序安排。目前方案所需要的都是在时间t之前使信息x不可获知,但是在时间t之后的合理时间内任何人都能够提取出信息x,这里的时间t也称为延迟下界,即最小延迟到时间t,还可以比时间t更晚。
在没有可信第三方(TTP,Trusted Third Party)存在的情况下,创建时间锁的一方可以应用这样的函数,该函数的逆函数是公知的,但是求解该逆函数所需的顺序计算量相当大,使得没有人能够在时间t之前解出该逆函数。例如对信息x应用函数z得到值y,对值y应用函数z的逆函数z’以得到信息x,但是求解逆函数z’所需的计算量相当大使得没有人能够在时间t之前求出逆函数z’的解,无论使用多么高性能的计算设备等都无法实现,最快也是在时间t的时候求出逆函数z’的解,即得到信息x,这就相当于将信息x至少延迟公布有时间t这么长的时间。
很显然,上述对信息进行延迟获知的方式,都是将信息延迟到时间t或者更长,都不能够实现精确延迟,所述精确延迟是指将信息延迟到预定时间,在该预定时间到时人们即刻能够获知到所述信息。例如将信息x延迟到时间t,如果实现了精确延迟,则时间t到时人们即刻能够获知信息x。
因此需要能够实现精确延迟的对信息进行延迟的方案。
发明内容
鉴于上述技术问题,本公开内容提出了能够实现精确延迟的延迟公布信息的方法和系统而无需TTP的存在。
在本公开内容的一个方面,提供了一种延迟公布信息的方法,其在用户端处包括将所述信息分割成m个份额,使得基于这m个份额中的任何k个份额能够重构所述信息;从区块链系统中选取n个节点,这n个节点中不可信任的节点数目小于k-1个并且2(k-1)小于n;以及分别使用各个节点创建的公钥对所述信息的相应份额进行加密,所述公钥是各个节点针对预定条件所创建的公钥和私钥对中的公钥。
在一些实施方式中,所述延迟公布信息的方法还可以包括使用各个节点在所述预定条件满足时释放的私钥对经与所述私钥对应的公钥加密的所述信息的相应份额进行解密;以及基于解密的份额重构所述信息。
在一些实施方式中,所述预定条件可以为时间。
在一些实施方式中,所述预定条件可以为事件的发生。
在一些实施方式中,在m等于n的情况下,分别使用各个节点创建的公钥对所述信息的相应份额进行加密可以进一步包括分别使用每一个节点创建的公钥对所述信息的相应的一个份额进行加密。
在一些实施方式中,在m大于n的情况下,分别使用各个节点创建的公钥对所述信息的相应份额进行加密可以进一步包括分别基于每一个节点的权重而使用每一个节点创建的公钥对所述信息的相应份额进行加密。
在本公开内容的另一方面,还提供了一种延迟公布信息的方法,其在用户端选定的区块链系统的节点处包括:针对预定条件创建公钥和私钥对;在所述预定条件满足前释放所述公钥并签发宣告所述公钥对应于要在所述预定条件满足时释放的所述私钥的证书;以及在所述预定条件满足时释放所述私钥。
在一些实施方式中,所述预定条件可以为时间。
在一些实施方式中,所述预定条件可以为事件的发生。
在本公开内容的又一方面,还提供了一种延迟公布信息的系统,该系统可以包括第一用户端和区块链系统,其中所述区块链系统包括若干节点,并且所述第一用户端可以用于:将所述信息分割成m个份额,使得基于这m个份额中的任何k个份额能够重构所述信息;从所述区块链系统中选取n个节点,这n个节点中不可信任的节点数目小于k-1个并且2(k-1)小于n;以及分别使用所选取的节点创建的公钥对所述信息的相应份额进行加密。每个所选取的节点可以用于:针对预定条件创建所述公钥和私钥对;在所述预定条件满足前释放所述公钥并签发宣告所述公钥对应于要在所述预定条件满足时释放的所述私钥的证书;以及在所述预定条件满足时释放所述私钥。
在一些实施方式中,所述延迟公布信息的系统还可以包括第二用户端,所述第二用户端可以用于:使用所选取的节点在所述预定条件满足时释放的私钥对经与所述私钥对应的公钥加密的所述信息的相应份额进行解密;以及基于解密的份额重构所述信息。
在一些实施方式中,所述预定条件可以为时间。
在一些实施方式中,所述预定条件可以为事件的发生。
在一些实施方式中,在m等于n的情况下,分别使用所选取的节点创建的公钥对所述信息的相应份额进行加密可以进一步包括分别使用所选取的节点中的每一个节点创建的公钥对所述信息的相应的一个份额进行加密。
在一些实施方式中,在m大于n的情况下,分别使用所选取的节点创建的公钥对所述信息的相应份额进行加密可以进一步包括分别基于所选取的节点中的每一个节点的权重而使用每一个节点创建的公钥对所述信息的相应份额进行加密。
在本公开内容的再一方面,还提供了一种计算设备,该计算设备包括处理器和存储器,其中所述存储器上存储有计算机程序指令,所述计算机程序指令在由所述处理器执行时可以实现如上文所述的延迟公布信息的方法。
在本公开内容的再一方面,还提供了一种机器可读存储介质,在该机器可读存储介质上存储有计算机程序指令,其中所述计算机程序指令在由处理器执行时可以实现如上文所述的延迟公布信息的方法。
与现有技术相比,本公开内容的有益效果为:
本公开内容的技术方案将信息分割成m个份额,并且从区块链系统中选取n个节点,接着分别使用各个节点针对预定条件所创建的公钥对该信息的相应份额进行加密,从而使得该信息是不为公众所知的。待到预定条件满足(例如给定时间t到达)时各个节点会将私钥释放,此时使用释放的私钥就可以将加密的份额解密,从而可以基于解密出来的份额对该信息进行重构。对信息进行了重构,也即将该信息公布出来,因此实现了对信息的延迟公布。由于区块链的性质使得这些节点能够在预定条件满足时即刻释放私钥,从而使得在预定条件满足时能够对该信息即刻进行重构,因而实现了对信息的精确延迟。所述条件可以是单单依赖时间的,诸如12月13日03.30.00,也可以是依赖事件的,诸如股票XX的价格至少为YY,或者依赖于这二者。
我们能够将区块链用作TTP的等同体,即使区块链的各个节点可能出现欺骗的情况下亦如此。可以使用本公开内容的技术方案来支持需要将投标价保密到时间T的拍卖和投标过程。
附图说明
在所附权利要求书中具体阐述了本发明的新颖特征。通过参考对在其中利用到本发明原理的说明性实施方式加以阐述的以下详细描述和附图,将会对本发明的特征和优点获得更好的理解。附图仅用于示出实施方式的目的,而并不应当被认为是对本发明的限制。而且在整个附图中,用相同的附图标记表示相同的元素,在附图中:
图1示出了依据本公开内容示例性实施方式的延迟公布信息的方法在用户端处的流程图;
图2示出了依据本公开内容示例性实施方式的延迟公布信息的方法在用户端选定的区块链系统的节点处的流程图;
图3示出了依据本公开内容示例性实施方式的延迟公布信息的系统的示意图;以及
图4示出了依据本公开内容示例性实施方式的计算设备的示意图。
具体实施方式
下面将参照附图更详细地描述本公开内容的示例性实施方式。虽然附图中显示了本公开内容的示例性实施方式,然而应当理解,可以以各种形式实现本公开内容而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本公开内容,并且能够将本公开内容的范围完整地传达给本领域技术人员。在以下详细描述中没有任何内容旨在表明任何特定组件、特征或步骤对于本发明是必不可少的。本领域技术人员将会理解,在不脱离本公开内容的范围内各种特征或步骤可以彼此替代或结合。
在可信第三方(TTP)存在的情况下,可以通过TTP来实现精确延迟,其中TTP是通过法律、行政、商业等等途径得到可信资质,接受有关国家管理部门的监督,为各种系统提供维护运行服务的机构。通常情况下,在一些实施方式中,由TTP针对每一时间tr创建一对密钥(pkr,skr),即公钥和私钥对,其中pkr为公钥,skr为私钥,并且tr属于时间序列{t1,t2,t3,……}。在时间tr之前,TTP会签发证书,该证书宣告称密钥pkr是要在时间tr释放的私钥skr的公钥,换言之宣告公钥pkr对应于要在时间tr释放的私钥skr。因此,在时间tr之前用户可以使用公钥pkr对信息进行加密,待到时间tr时,TTP会释放私钥skr,此时就可以使用私钥skr对经公钥pkr加密了的信息进行解密。此方案是通过TTP来保证精确延迟的,即假定TTP是不会有欺骗行为的,只要时间tr到达,TTP会即刻释放私钥skr。类似地,TTP可以同意创建对应于任何其他条件的密钥对。
图1示出了依据本公开内容示例性实施方式的延迟公布信息的方法在用户端处的流程图。如图1所示,依据本公开内容示例性实施方式的延迟公布信息的方法可以包括:
步骤S101:将所述信息分割成m个份额,使得基于这m个份额中的任何k个份额能够重构所述信息;
步骤S102:从区块链系统中选取n个节点,这n个节点中不可信任的节点数目小于k-1个并且2(k-1)小于n;以及
步骤S103:分别使用各个节点创建的公钥对所述信息的相应份额进行加密,所述公钥是各个节点针对预定条件所创建的公钥和私钥对中的公钥。
由上述可知,本延迟公布信息的方法采用将信息分割成m个份额并且基于这m个份额中的任何k个份额都能够将该信息重构,以及从区块链系统中选取n个节点并且不可信任的节点数目小于k-1且2(k-1)小于n,即这n个节点中至少有k个节点是可信任的。然后可以分别用这n个节点创建的公钥对该信息的相应份额进行加密,这相当于将该信息隐藏起来而非现在就公布出来,即延迟公布或推迟公布。换言之,该信息由这n个节点共同托管,例如,一个节点托管一个份额或多个份额。当各节点释放了与公钥对应的私钥之后,就可以用私钥来将经公钥加密的份额进行解密以便得到该信息。我们知道区块链是将数据以一系列区块的方式按时间顺序相连形成的一种链式数据结构,并且还是以密码学方式保证数据的不可篡改和不可伪造的分布式账本。区块链利用诸如哈希和签名等加密技术以及共识算法建立信任机制,让抵赖、篡改和欺诈行为的成本巨大,保证了数据的不可篡改和不可伪造。因此当预定条件满足时,各个节点都能够即刻释放相应的私钥,从而可以保证用户能够在预定条件满足时即刻获知所述信息,因而实现了对信息的精确延迟。
在一些实施方式中,可以采用门限加密方案来对信息进行分割。例如,要将信息a0分割为m个份额,基于其中的至少k个份额能够重构信息a0,k也可称为阈值。首先生成一个随机的k-1阶多项式:
f(x)=ak-1xk-1+ak-2xk-2+…+a1x+a0,其中系数ak-1,ak-2,…,a1是随机选取的,a0是该信息。接着生成m个份额,分别为第一份额(1,f(1)),第二份额(2,f(2)),…,第m份额(m,f(m))。任何人均可以使用任意k个份额,通过拉格朗日插值公式,重组多项式f(x)。多项式f(x)重组出来后,即可计算信息a0=f(0)。又例如,假定信息a0=10,k=2,将其分割成3个份额,则生成(k-1)=1阶多项式:f(x)=3x+10。计算得到三个份额,即份额1(1,13)、份额2(2,16)和份额3(3,19),换言之将信息a0=10分割成了份额1(1,13)、份额2(2,16)和份额3(3,19),其中任意两个份额都可以重组f(x)。
区块链系统采用的是去中心化的结构,即不存在中央控制机构,存储在区块链系统上的信息由区块链系统的各个节点共同管理。目前区块链可以用于解决分布式数据存储、资产注册和交易执行等应用中出现的许多问题。对于区块链目前广泛认为具有如下性质:
–是一种具有节点集合U的数据库,在这U个节点中具有M个“矿工”,每一个节点可以是一个用户,并且有的节点是实名的,有的节点是匿名的。
–任何人都可以向该数据库中进行写入,并且他们可以自行决定是否对所写的项目进行签名。
–矿工可以通过共识机制来决定哪些项目可以成功写入该数据库,并且仅有权利拒绝如果接受会违背区块链一致性规则的写入(例如,拒绝重复花费交易,比如一笔金额已经用于购买了股票A,现在又用此笔金额来购买股票B)。
–矿工可以创建写入区块,这些写入区块具有严格的顺序,对于每一个非初始写入区块都包括对其前一个写入区块应用密码学哈希函数而得到的值。这些区块在内部通过Merkle树来认证。
–具有时间戳机制,通过时间戳机制为区块中的每个项目赋予时间,使得后续区块中的所有项目的时间都大于其前面区块中的所有项目的时间。
本公开内容利用了区块链的性质,从区块链系统中选取n个节点并且这n个节点中不可信任的节点数目小于k-1个并且2(k-1)小于n,由此可知选取的这n个节点中不可信任节点的数目少于一半,并且至少有k个节点是可信任的,那么用至少k个可信任节点创建的公钥加密的信息的份额至少有k个,从而使得信息的至少k个份额在预定条件满足时是可以获得的,又由于基于任何k个份额都能够将信息重构,因此能够重构该信息。
再如图1所示,依据本公开内容示例性实施方式的延迟公布信息的方法还可以包括:
步骤S104:使用各个节点在所述预定条件满足时释放的私钥对经与所述私钥对应的公钥加密的所述信息的相应份额进行解密;以及
步骤S105:基于解密的份额重构所述信息。
所选取的区块链系统的节点在预定条件满足时会将与公钥对应的私钥释放出来,即公布出来,此时就可以利用公布出来的私钥对经该公钥加密的信息的份额进行解密。由于至少有k个节点是可信任的,因此可以至少得到信息的k个份额,又由于基于任何k个份额都能够将信息重构,因此,信息能够被重构出来,信息被重构出来之时也即信息被公开之时,这就是所谓的延迟公布。现还以信息a0=10为例进行说明,在上文中已将其分割成了3个份额,即份额1(1,13)、份额2(2,16)和份额3(3,19),假定现在解密出了份额1和份额2,则根据份额1和份额2来重组f(x),得到f(x)之后,计算f(0)=3×0+10=10,即重构出了信息a0。
在一些实施方式中,所述预定条件可以为时间,例如为未来的某一时间,待该时间到时将信息公布出来。在另一些实施方式中,所述预定条件可以为事件的发生,即将事件的发生作为将信息公开的触发条件。例如,该事件为公司X的股票价格为5英镑,即当公司X的股票价格为5英镑时立即将信息公开。
我们知道,本公开内容将信息分割成了m个份额并且从区块链系统中选取了n个节点,对于m和n,在一些实施方式中,m可以等于n,即份额数与节点数相同,则一个节点可以对应于信息的一个份额,相当于一个节点托管一个份额。例如,将信息x分割成了份额S1,S2,…,Si,…,Sm,并且选取了节点N1,N2,…,Ni,…,Nn,其中m=n,则可以使用节点N1创建的公钥对份额S1进行加密,使用节点N2创建的公钥对份额S2进行加密,使用节点Ni创建的公钥对份额Si进行加密,等等。在一些示例中,可以先对份额进行加盐,然后再用公钥对加了盐的份额进行加密,这样可以增大破解的难度,是否加盐本发明在此方面并不作出限制,可以根据具体应用所需的安全程度而确定。
对于m大于n的情况,步骤S103分别使用各个节点创建的公钥对所述信息的相应份额进行加密可以进一步包括分别基于每一个节点的权重而使用每一个节点创建的公钥对所述信息的相应份额进行加密。m>n,即表明份额数大于节点数,则一个节点可以对应于信息的一个或多个份额,相当于一个节点可以托管一个或多个份额。每个节点所托管的份额数可以根据节点的权重来确定,节点的权重越大其托管的份额数也就越多。节点的权重可以根据该节点的可信任程度等来确定,例如对可信任程度高的节点可以赋予较大的权重。对于权重的确定以及可信任程度的确定可以采用本领域现在已知或者将来可知的任何方式来实现,本发明在此方面并不作出限制。例如,将信息x分割成份额S1,S2,…,Sj,…,Sm,并且选取了节点N1,N2,…,Ni,…,Nn,其中m>n,则可以使用节点N1创建的公钥对份额S1进行加密,使用节点N2创建的公钥对份额S2和S3进行加密,使用节点Ni创建的公钥对份额Sj进行加密,等等。由于基于信息的任何小于等于k-1个份额都得不到该信息的任何内容,因此每一个节点所托管的信息的份额数应小于k,从而可以确保没有任何一个节点能够在预定条件满足之前获得该信息。
图2示出了依据本公开内容示例性实施方式的延迟公布信息的方法在用户端选定的区块链系统的节点处的流程图。在图2中,依据本公开内容示例性实施方式的延迟公布信息的方法可以包括:
步骤S201:针对预定条件创建公钥和私钥对;
步骤S202:在所述预定条件满足前释放所述公钥并签发宣告所述公钥对应于要在所述预定条件满足时释放的所述私钥的证书;以及
步骤S203:在所述预定条件满足时释放所述私钥。
由上述可知,用户端选定的区块链系统的每一个节点可以针对预定条件创建一对公钥和私钥。例如,假定选择了n个节点,分别为节点N1,N2,…,Nj,…,Nn,则节点N1针对预定条件r创建了密钥对(pk1r,sk1r),其中pk1r为公钥,而sk1r为私钥;节点N2针对预定条件r创建了密钥对(pk2r,sk2r),其中pk2r为公钥,sk2r为私钥;节点Nj针对预定条件r创建了密钥对(pkjr,skjr)其中pkir为公钥,skir为私钥;等等。接着在预定条件满足前各节点会就其所创建的公钥和私钥对而签发证书,该证书宣告所述公钥对应于其要在该预定条件满足时释放的私钥,这即向所有用户表明用户现在可以使用该节点创建的公钥,并且在预定条件满足时该节点会将与该公钥对应的私钥释放,从而用户可以使用释放的私钥对由该公钥加密的信息的份额进行解密以便获得所述信息。当预定条件满足时,各节点会将私钥释放。
节点数n应当大于最大不可信任节点数(k-1)的二倍,即,这n个节点中至少有k个节点是可信任的,从而保证至少有k个节点能够按照约定安排创建公钥和私钥对以及释放公钥和私钥,因此在预定条件满足时用户能够使用释放的至少k个私钥获得信息的至少k个份额,从而能够基于这至少k个份额来重构该信息。信息得以重构,也即信息得以公布。
在一些实施方式中,所述预定条件可以为时间,例如为未来的某一时间,待该时间到时将私钥释放出来,也相当于信息被公布出来。在另一些实施方式中,所述预定条件可以为事件的发生,即将事件的发生作为释放私钥的触发条件。例如,该事件为公司X的股票价格为5英镑,即当公司X的股票价格为5英镑时立即将私钥释放。或者所述事件可以是区块链上的时间戳现在超过了T。
图3示出了依据本公开内容示例性实施方式的延迟公布信息的系统的示意图。在图3中,依据本公开内容示例性实施方式的延迟公布信息的系统可以包括第一用户端301和区块链系统302,其中所述区块链系统302可以包括若干节点3021,并且所述第一用户端301可以用于:将所述信息分割成m个份额,使得基于这m个份额中的任何k个份额能够重构所述信息;从所述区块链系统302中选取n个节点3021并且这n个节点3021中不可信任的节点数目小于k-1个并且2(k-1)小于n;以及分别使用所选取的节点3021创建的公钥对所述信息的相应份额进行加密。每个所选取的节点3021可以用于:针对预定条件创建公钥和私钥对;在所述预定条件满足前释放所述公钥并签发宣告所述公钥对应于要在所述预定条件满足时释放的所述私钥的证书;以及在所述预定条件满足时释放所述私钥。
由上述可知,该延迟公布信息的系统的第一用户端301将信息分割成m个份额并且基于这m个份额中的任何k个份额都能够将该信息重构,并且从区块链系统302中选取n个节点3021且不可信任的节点数目小于k-1且2(k-1)小于n,即这n个节点3021中至少有k个节点3021是可信任的。被选取的节点3021可以针对预定条件创建公钥和私钥对,并且在预定条件满足前释放公钥并签发宣告该公钥对应于要在所述预定条件满足时释放的私钥的证书。此时第一用户端301就可以知道其所选取的节点3021所创建的公钥,并且还知道在预定条件满足时其所选取的节点3021会释放与所述公钥对应的私钥。因此第一用户端301就可以分别用所选取的节点3021创建的公钥对该信息的相应份额进行加密。对信息的份额进行加密就相当于将信息的份额隐藏起来,也即将该信息隐藏起来而非现在就公布出来,这也可称为延迟公布或推迟公布。换言之,该信息由这n个节点3021共同托管,例如,一个节点3021托管一个份额或多个份额。当各节点3021释放了与公钥对应的私钥之后,就可以用私钥来将经公钥加密的份额进行解密以便得到该信息。我们知道区块链是将数据以一系列区块的方式按时间顺序相连形成的一种链式数据结构,并且还是以密码学方式保证数据的不可篡改和不可伪造的分布式账本。区块链利用诸如哈希和签名等加密技术以及共识算法建立信任机制,让抵赖、篡改和欺诈行为的成本巨大,保证了数据的不可篡改和不可伪造。因此当预定条件满足时,区块链系统302的各个节点3021能够即刻释放相应的私钥,从而可以保证在预定条件满足时所述信息能够得以即刻获知,从而实现了对信息的精确延迟。由于基于信息的任何小于等于k-1个份额都得不到该信息的任何内容,因此每一个节点所托管的信息的份额数应小于k,从而可以确保没有任何一个节点能够在预定条件满足之前获得该信息。
在一些实施方式中,可以采用门限加密方案来对信息进行分割。例如,要将信息a0分割为m个份额,基于其中的至少k个份额能够重构信息a0,k也可称为阈值。首先生成一个随机的k-1阶多项式:
f(x)=ak-1xk-1+ak-2xk-2+…+a1x+a0,其中系数ak-1,ak-2,…,a1是随机选取的,a0是该信息。接着生成m个份额,分别为第一份额(1,f(1)),第二份额(2,f(2)),…,第m份额(m,f(m))。任何人均可以使用任意k个份额,通过拉格朗日插值公式,重组多项式f(x)。多项式f(x)重组出来后,即可计算信息a0=f(0)。又例如,假定信息a0=10,k=2,将其分割成3个份额,则生成(k-1)=1阶多项式:f(x)=3x+10。计算得到三个份额,即份额1(1,13)、份额2(2,16)和份额3(3,19),换言之将信息a0=10分割成了份额1(1,13)、份额2(2,16)和份额3(3,19),其中任意两个份额都可以重组f(x)。
再如图3所示,依据本公开内容示例性实施方式的延迟公布信息的系统还可以包括第二用户端303,所述第二用户端303可以用于:使用所选取的节点3021在所述预定条件满足时释放的私钥对经与所述私钥对应的公钥加密的所述信息的相应份额进行解密;以及基于解密的份额重构所述信息。
在区块链系统302的节点3021释放了公钥并签发了证书之后,任何用户都可以看到释放的公钥以及签发的证书。需要将信息延迟的用户,例如第一用户端301就可以利用释放的公钥对需要延迟的信息的相应份额进行加密以将信息暂时隐藏起来。在预定条件满足时,私钥被释放,此时任何用户也都可以看到释放的私钥。想要获知该信息的用户,例如第二用户端303就可以利用释放的私钥对经与该私钥对应的公钥加密的信息的相应份额进行解密,从而可以得到信息的这些份额,继而可以基于这些份额来重构该信息。现还以信息a0=10为例进行说明,在上文中已将其分割成了3个份额,即份额1(1,13)、份额2(2,16)和份额3(3,19),假定现在解密出了份额1和份额2,则根据份额1和份额2来重组f(x),得到f(x)之后,计算f(0)=3×0+10=10,即重构出了信息a0。这里的第一用户端301和第二用户端303可以相同,也可以不同,本发明在此方面并不作出限制。在一些情况下,第一用户端301和/或第二用户端303可以独立于区块链系统302的节点3021而存在。在另一些情况下,第一用户端301和/或第二用户端303可以是区块链系统302的节点3021。在第一用户端301和/或第二用户端303是区块链系统302的节点3021的情况下,第一用户端301和/或第二用户端303可以是被选定的用于创建针对预定条件的公钥和私钥对且按规定安排释放公钥和私钥以及签发证书的节点3021,当然也可以是区块链系统302中除这样的节点之外的节点3021。对于第一用户端301和第二用户端303,只是分别用来代表需要将信息延迟公布的用户端和想要得到信息的用户端,这里的“第一”和“第二”并非表示顺序关系。第一用户端301和/或第二用户端302可以为多个,本发明在此方面并不作出限制。对于区块链系统302,可以使用本领域当前已知或未来可知的任何方式来实现,例如比特币(Bitcoin)、以太坊(Ethereum)等等,本发明在此方面并不作出限制。
我们知道,第一用户端301将信息分割成了m个份额并且从区块链系统302中选取了n个节点3021,对于m和n,在一些实施方式中,m可以等于n,即份额数与节点数相同,则一个节点3021可以对应于信息的一个份额,相当于一个节点3021托管一个份额。例如,将信息x分割成了份额S1,S2,…,Si,…,Sm,并且选取了节点N1,N2,…,Ni,…,Nn,其中m=n,则可以使用节点N1创建的公钥对份额S1进行加密,使用节点N2创建的公钥对份额S2进行加密,使用节点Ni创建的公钥对份额Si进行加密,等等。在一些示例中,可以先对份额进行加盐,然后再用公钥对加了盐的份额进行加密,这样可以增大破解的难度,是否加盐本发明在此方面并不作出限制,可以根据具体应用所需的安全程度而确定。
对于m大于n的情况,第一用户端301可以分别基于每一个节点3021的权重而使用每一个节点3021创建的公钥对所述信息的相应份额进行加密。m>n,即表明份额数大于所选取的节点数,则一个节点3021可以对应于信息的一个或多个份额,相当于一个节点3021托管一个或多个份额。每个节点3021所托管的份额数可以根据节点3021的权重来确定,节点3021的权重越大其托管的份额数也就越多。节点3021的权重可以根据该节点3021的可信任程度等来确定,例如对可信任程度高的节点3021可以赋予较大的权重。对于权重的确定以及可信任程度的确定可以采用本领域现在已知或者将来可知的任何方式来实现,本发明在此方面并不作出限制。例如,信息x分割成了份额S1,S2,…,Sj,…,Sm,并且选取了节点N1,N2,…,Ni,…,Nn,其中m>n,则可以使用节点N1创建的公钥对份额S1进行加密,使用节点N2创建的公钥对份额S2和S3进行加密,使用节点Ni创建的公钥对份额Sj进行加密,等等。
再如图3所示,区块链系统302的各节点3021可以通过网络3022相连接,网络3022例如可以为局域网、城域网、广域网和/或因特网等等。
在一些实施方式中,所述预定条件可以为时间,例如为未来的某一时间,待该时间到时私钥将会释放出来,这相当于将信息公布出来。例如,对于所选取的节点3021而言,该时间到时释放其所创建的私钥。举例而言,假定第一用户端301欲将信息x推迟到时间tr时再公布出来。第一用户端301将信息x分割成m个份额S1,S2,…,Si,…,Sm,并且选取了m个节点N1,N2,…,Ni,…,Nm。节点N1针对时间tr创建了密钥对(pk1r,sk1r),其中pk1r为公钥,而sk1r为私钥;节点N2针对时间tr创建了密钥对(pk2r,sk2r),其中pk2r为公钥,而sk2r为私钥;节点Ni针对时间tr创建了密钥对(pkir,skir),其中pkir为公钥,而skir为私钥;等等。第一用户端301使用公钥pk1r对份额S1进行了加密,使用公钥pk2r对份额S2进行了加密,使用公钥pkir对份额Si进行了加密,使用公钥pkmr对份额Sm进行了加密,等等。在时间tr到时,这m个节点N1,N2,…,Ni,…,Nm都将各自创建的私钥释放,即私钥sk1r,sk2r,…,skir,…,skmr在时间tr时即刻得以释放。此时,第二用户端303可以使用私钥sk1r对经公钥pk1r加密的份额S1进行解密,使用私钥sk2r对经公钥pk2r加密的份额S2进行解密,使用私钥skir对经公钥pkir加密的份额Si进行解密,使用私钥skmr对经公钥pkmr加密的份额Sm进行解密,等等,从而第二用户端303可以获得份额S1,S2,…,Si,…,Sm。由于这m个节点中至少有k个节点是可信任的,从而可以保证份额S1,S2,…,Si,…,Sm中至少有k个份额确实是属于信息x的,又由于基于任何k个份额都能够重构信息x,因此,第二用户端303基于份额S1,S2,…,Si,…,Sm即可将信息x重构,从而可获知信息x。第二用户端303是直到时间tr时才获知信息x的,这就相当于将该信息x推迟到时间tr时才公布。
在另一些实施方式中,所述预定条件可以为事件的发生,即将事件的发生作为释放私钥的触发条件,也相当于将信息公开的触发条件。例如,该事件为在2017年9月20日公司X的股票价格大于5英镑,即在2017年9月20日当公司X的股票价格大于5英镑时立即将私钥释放。
本技术的一个可能用途是用于密封式拍卖和投标。各参与方的投标价可以以延迟的方式提交,即在拍卖结束的时候将各参与方的投标价公开。因此采用本公开内容的技术方案,可以在没有TTP的情况下将各参与方的投标价保密直到拍卖结束。
在本公开内容的一个方面,如图4所示,还提供了一种计算设备400,其包括存储器402和处理器401,其中所述存储器402上存储有计算机程序指令4020,所述计算机程序指令4020在由所述处理器401执行时实现上文描述的延迟公布信息的方法。由于前面已经详细描述了延迟公布信息的方法的各技术方案,故在此不再详述。
在本公开内容的另一方面,还提供了一种机器可读存储介质,该机器可读存储介质上存储有计算机程序指令,其中所述计算机程序指令在由处理器执行时实现上文所描述的延迟公布信息的方法。对于延迟公布信息的方法的各技术方案,在上文已经进行了详细描述,在此不再赘述。在一些实施方式中,机器可读存储介质是数字处理设备的有形组件。在另一些实施方式中,机器可读存储介质可选地是可从数字处理设备移除的。在一些实施方式中,举非限制性示例而言,机器可读存储介质可以包括U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、闪速存储器、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、固态存储器、磁碟、光盘、云计算系统或服务等。
应当理解,本公开内容的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本发明的范围在此方面不受限制。
在本文所提供的说明书中,说明了大量具体细节。然而,应当理解,本公开内容的实施方式可以在没有这些具体细节的情况下实践。在一些实施方式中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
虽然本文已经示出和描述了本发明的示例性实施方式,但对于本领域技术人员显而易见的是,这样的实施方式只是以示例的方式提供的。本领域技术人员现将会在不偏离本发明的情况下想到许多更改、改变和替代。应当理解,在实践本发明的过程中可以采用对本文所描述的本发明实施方式的各种替代方案。以下权利要求旨在限定本发明的范围,并因此覆盖这些权利要求范围内的方法和结构及其等同项。
Claims (15)
1.一种延迟公布信息的方法,在用户端处,包括:
将所述信息分割成m个份额,使得基于这m个份额中的任何k个份额能够重构所述信息;
从区块链系统中选取n个节点,这n个节点中不可信任的节点数目小于k-1个并且2(k-1)小于n;以及
分别使用各个节点创建的公钥对所述信息的相应份额进行加密,所述公钥是各个节点针对预定条件所创建的公钥和私钥对中的公钥;
所述方法还包括:
使用各个节点在所述预定条件满足时释放的私钥对经与所述私钥对应的公钥加密的所述信息的相应份额进行解密;以及
基于解密的份额重构所述信息。
2.如权利要求1所述的延迟公布信息的方法,其中所述预定条件为时间。
3.如权利要求1所述的延迟公布信息的方法,其中所述预定条件为事件的发生。
4.如权利要求1所述的延迟公布信息的方法,其中在m等于n的情况下,分别使用各个节点创建的公钥对所述信息的相应份额进行加密进一步包括分别使用每一个节点创建的公钥对所述信息的相应的一个份额进行加密。
5.如权利要求1所述的延迟公布信息的方法,其中在m大于n的情况下,分别使用各个节点创建的公钥对所述信息的相应份额进行加密进一步包括分别基于每一个节点的权重而使用每一个节点创建的公钥对所述信息的相应份额进行加密。
6.一种延迟公布信息的方法,在用户端选定的区块链系统的节点处,包括:
针对预定条件创建公钥和私钥对;
在所述预定条件满足前释放所述公钥并签发宣告所述公钥对应于要在所述预定条件满足时释放的所述私钥的证书;以及
在所述预定条件满足时释放所述私钥;
将所述信息分割成m个份额,使得基于这m个份额中的任何k个份额能够重构所述信息;
从所述区块链系统中选取n个节点,这n个节点中不可信任的节点数目小于k-1个并且2(k-1)小于n;以及
分别使用所选取的节点创建的公钥对所述信息的相应份额进行加密,所述公钥是各个节点针对预定条件所创建的公钥和私钥对中的公钥;
使用各个节点在所述预定条件满足时释放的私钥对经与所述私钥对应的公钥加密的所述信息的相应份额进行解密;以及
基于解密的份额重构所述信息。
7.如权利要求6所述的延迟公布信息的方法,其中所述预定条件为时间。
8.如权利要求6所述的延迟公布信息的方法,其中所述预定条件为事件的发生。
9.一种延迟公布信息的系统,包括第一用户端和区块链系统,其中所述区块链系统包括若干节点,并且所述第一用户端用于:
将所述信息分割成m个份额,使得基于这m个份额中的任何k个份额能够重构所述信息;
从所述区块链系统中选取n个节点,这n个节点中不可信任的节点数目小于k-1个并且2(k-1)小于n;以及
分别使用所选取的节点创建的公钥对所述信息的相应份额进行加密;
并且其中每个所选取的节点用于:
针对预定条件创建所述公钥和私钥对;
在所述预定条件满足前释放所述公钥并签发宣告所述公钥对应于要在所述预定条件满足时释放的所述私钥的证书;以及
在所述预定条件满足时释放所述私钥;
所述系统还包括第二用户端,所述第二用户端用于:
使用所选取的节点在所述预定条件满足时释放的私钥对经与所述私钥对应的公钥加密的所述信息的相应份额进行解密;以及
基于解密的份额重构所述信息。
10.如权利要求9所述的延迟公布信息的系统,其中所述预定条件为时间。
11.如权利要求9所述的延迟公布信息的系统,其中所述预定条件为事件的发生。
12.如权利要求9所述的延迟公布信息的系统,其中在m等于n的情况下,分别使用所选取的节点创建的公钥对所述信息的相应份额进行加密进一步包括分别使用所选取的节点中的每一个节点创建的公钥对所述信息的相应的一个份额进行加密。
13.如权利要求9所述的延迟公布信息的系统,其中在m大于n的情况下,分别使用所选取的节点创建的公钥对所述信息的相应份额进行加密进一步包括分别基于所选取的节点中的每一个节点的权重而使用每一个节点创建的公钥对所述信息的相应份额进行加密。
14.一种计算设备,包括处理器和存储器,其中所述存储器上存储有计算机程序指令,所述计算机程序指令在由所述处理器执行时实现如权利要求1至8中任一项所述的延迟公布信息的方法。
15.一种机器可读存储介质,其上存储有计算机程序指令,其中所述计算机程序指令在由处理器执行时实现如权利要求1至8中任一项所述的延迟公布信息的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810149157.9A CN108199842B (zh) | 2018-02-13 | 2018-02-13 | 延迟公布信息的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810149157.9A CN108199842B (zh) | 2018-02-13 | 2018-02-13 | 延迟公布信息的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108199842A CN108199842A (zh) | 2018-06-22 |
CN108199842B true CN108199842B (zh) | 2021-03-02 |
Family
ID=62593426
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810149157.9A Active CN108199842B (zh) | 2018-02-13 | 2018-02-13 | 延迟公布信息的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108199842B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109327311B (zh) * | 2018-08-03 | 2021-09-21 | 克洛斯比尔有限公司 | 一种哈希时间戳创建方法、设备及可读存储介质 |
CN109379397B (zh) | 2018-08-31 | 2019-12-06 | 阿里巴巴集团控股有限公司 | 基于区块链的交易共识处理方法及装置、电子设备 |
CN109345386B (zh) | 2018-08-31 | 2020-04-14 | 阿里巴巴集团控股有限公司 | 基于区块链的交易共识处理方法及装置、电子设备 |
CN109308605B (zh) * | 2018-09-12 | 2021-04-23 | 莆田市烛火信息技术有限公司 | 一种基于区块链的电子时间胶囊管理方法及系统 |
CN109598506B (zh) * | 2018-11-02 | 2023-06-09 | 克洛斯比尔有限公司 | 区块链精确延迟加密的方法、系统、计算设备及计算机可读存储介质 |
CN111368309B (zh) * | 2018-12-26 | 2024-03-29 | 阿里巴巴集团控股有限公司 | 信息处理方法、系统及设备 |
CN109981690B (zh) * | 2019-04-29 | 2021-06-11 | 河南大学 | 一种基于区块链智能合约的防篡改定时数据保密传输方法 |
CN111131317B (zh) * | 2019-12-31 | 2022-04-26 | 百度在线网络技术(北京)有限公司 | 一种基于区块链的数据处理方法、装置、设备和介质 |
CN111159306B (zh) * | 2020-04-02 | 2020-10-30 | 支付宝(杭州)信息技术有限公司 | 一种基于区块链的信息发布方法、装置及计算机设备 |
CN111524012A (zh) * | 2020-05-06 | 2020-08-11 | 杭州复杂美科技有限公司 | 数据延时公布方法、设备和存储介质 |
CN111523895A (zh) * | 2020-05-06 | 2020-08-11 | 杭州复杂美科技有限公司 | 数据延时公布方法、设备和存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1192834A (zh) * | 1995-06-05 | 1998-09-09 | 塞特科有限公司 | 多步数字签名方法和系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8539572B2 (en) * | 2007-11-05 | 2013-09-17 | Lenovo (Singapore) Pte. Ltd. | System and method for secure usage of peripheral devices using shared secrets |
AU2016246428B2 (en) * | 2015-04-05 | 2017-11-09 | Digital Asset (Switzerland) GmbH | Digital asset intermediary electronic settlement platform |
CN106097511A (zh) * | 2016-06-23 | 2016-11-09 | 林海航 | 一种随机密钥的电子锁无钥匙进入系统 |
CN106656784B (zh) * | 2016-10-14 | 2020-01-21 | 中国银联股份有限公司 | 用于区块链网络的数据流传播系统及方法 |
CN107330787A (zh) * | 2017-05-24 | 2017-11-07 | 智牛股权投资基金(平潭)合伙企业(有限合伙) | 一种高效安全的区块链链下高频交易支付方法、系统 |
CN107292621B (zh) * | 2017-06-22 | 2020-10-27 | 丁江 | 海量数据确权存证方法和节点 |
CN107330681B (zh) * | 2017-06-27 | 2021-04-13 | 陈佺 | 一种用于确定区块链链外交易的交易时间的方法及设备 |
CN107579817A (zh) * | 2017-09-12 | 2018-01-12 | 广州广电运通金融电子股份有限公司 | 基于区块链的用户身份验证方法、装置及系统 |
CN107508686B (zh) * | 2017-10-18 | 2020-07-03 | 克洛斯比尔有限公司 | 身份认证方法和系统以及计算设备和存储介质 |
-
2018
- 2018-02-13 CN CN201810149157.9A patent/CN108199842B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1192834A (zh) * | 1995-06-05 | 1998-09-09 | 塞特科有限公司 | 多步数字签名方法和系统 |
Non-Patent Citations (2)
Title |
---|
"Revive: Rebalancing Off-Blockchain Payment Networks";Rami Khail;《Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security》;20171103;全文 * |
"TRE加密技术研究";袁科;《计算机研究与发展》;20140615;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108199842A (zh) | 2018-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108199842B (zh) | 延迟公布信息的方法和系统 | |
US11165756B2 (en) | Delayed-access encryption for blockchain field | |
CN107454114B (zh) | 一种竞拍方法、服务器及可读存储介质 | |
CN111095256B (zh) | 在可信执行环境中安全地执行智能合约操作 | |
US10803205B1 (en) | Retrieving public data for blockchain networks using trusted execution environments | |
US11082240B2 (en) | Retrieving public data for blockchain networks using highly available trusted execution environments | |
AU2019207312B2 (en) | Distributed key management for trusted execution environments | |
JP6856772B2 (ja) | 信頼できる実行環境において実行されるスマートコントラクト動作に基づくブロックチェーンデータの処理 | |
CN111066046B (zh) | 抗重放攻击认证协议 | |
CN111242617B (zh) | 用于执行交易正确性验证的方法及装置 | |
EP3619668B1 (en) | Performing parallel execution of transactions in a distributed ledger system | |
WO2019200505A1 (zh) | 基于区块链的信息发布和获取方法、装置及区块链节点 | |
CN110999255A (zh) | 使用高可用性的可信执行环境检索区块链网络的访问数据 | |
CN109598506B (zh) | 区块链精确延迟加密的方法、系统、计算设备及计算机可读存储介质 | |
CN109510818B (zh) | 区块链的数据传输系统、方法、装置、设备及存储介质 | |
CA2774155A1 (en) | Auction verification | |
CN109767218B (zh) | 区块链证书处理方法及系统 | |
CN110830452A (zh) | 基于区块链的电子投标方法、设备及存储介质 | |
US20210021408A1 (en) | Selectively private distributed computation for blockchain | |
CN115280352A (zh) | 用于提供隐私保护的基于区块链的拍卖的方法和设备 | |
CN114978634B (zh) | 一种分布式竞拍系统的构建及竞拍方法 | |
Yeow et al. | Known Bid Attack on an Electronic Sealed-Bid Auction Scheme | |
CN114780987A (zh) | 数据分发、存储、读取、传输方法及分布式系统 | |
CN117997528A (zh) | 电力调度数据的处理方法、装置、计算机设备和存储介质 | |
CN114666037A (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 |