1.一种基于区块链的抗后门攻击的公共参数产生方法,其特征在于,包括以下步骤:
1)准备阶段:
首先确定公共参数的取值范围以及满足条件,生成公共参数的选值集合g;
2)公共参数生成阶段:
在系统中设置生成次数变量i与连续区块数l;获取区块链上最新确认的l个区块哈希值,将这l个区块哈希值和生成次数变量i通过约定映射关系映射到集合g中的元素得到此次生成的公共参数;
3)公共参数验证阶段:
判断生成阶段产生的参数是否满足条件,若不满足条件,则舍弃该参数,更新生成次数变量i=i+1,返回步骤2);若满足条件,则输出该公共参数至公共参数使用设备。
2.如权利要求1所述方法,其特征在于,步骤2)中获取区块链上最新确认的l个区块哈希值,将这l个区块哈希值和生成次数变量i通过约定映射关系映射到集合g中的元素得到此次生成的公共参数的具体方法是:
以太坊区块链上最新确认的l个区块的哈希值按时间先后顺序分别表示为hblock1、hblock2、…、hblockl;约定映射关系为f,将l个区块哈希值和生成次数变量i通过约定映射关系映射到集合g,f(hblock1,hblock2,…,hblockl,i)→g;生成公共参数a1=f(hblock1,hblock2,…,hblockl,i)。
3.如权利要求1所述方法,其特征在于,步骤2)中获取区块链上最新确认的l个区块哈希值,将这l个区块哈希值和生成次数变量i通过约定映射关系映射到集合g中的元素得到此次生成的公共参数的具体方法是:
集合g中给定参数的比特长度plen与公共参数的比特长度a1len的大小关系对映射结果再取模:首先计算参数p的比特长度plen。若plen≤a1len,公共参数a1=h(hblock1||hblock2||…||hblockl||i)modp,其中mod为取模运算;若plen>a1len,首先搜索满足plen≤a1len*l的最小l,再计算公共参数a1=h(hblock1||hblock2||…||hblockl||i)||h(hblock1||hblock2||…||hblockl||i+1)||…||h(hblock1||hblock2||…||hblockl||i+l-1)modp,i=0。
4.如权利要求1、2或3所述方法,其特征在于,当步骤2)基于以太坊区块链为生成公共参数时,保证链质量和链一致性的最小值
当步骤2)基于比特币区块链为生成公共参数时,保证链质量和链一致性的最小值
5.如权利要求2或3所述方法,其特征在于,设置l=12。