1.一种基于区块链的多用户通信密钥协商方法,其特征在于,该方法包括:选取安全参数和抗碰撞哈希函数,生成公开参数和区块链初始块;
每个用户根据所述公开参数生成各自的一对公钥及私钥,并将公钥写入区块链,所述用户包括密钥协商发起者、密钥协商参与者和密钥协商收听者;
所述密钥协商发起者根据一组密钥协商参与者和一组密钥协商收听者的公钥执行密钥协商初始化过程并生成通信密钥协商初始参数,所述通信密钥协商初始参数和所涉及全部用户的身份被写入区块链;
每个所述密钥协商参与者从所述区块链读取所述通信密钥协商初始参数,计算各自的响应参数,并将所述响应参数写入所述区块链;
所述密钥协商发起者从所述区块链读取所有密钥协商参与者生成的响应参数,计算得到第一通信密钥;
每个所述密钥协商参与者从所述区块链读取所述通信密钥协商初始参数以及其他密钥协商参与者生成的响应参数,计算得到第二通信密钥;
每个密钥协商收听者从区块链读取通信密钥协商初始参数以及所有密钥协商参与者生成的响应参数,计算得到第三通信密钥。
2.根据权利要求1所述的一种基于区块链的多用户通信密钥协商方法,其特征在于,所述公开参数para具体为:para=(G,g,p,H(·)),其中,G为阶数为素数p的循环群,g表示G的一个生成元,H(·)表示抗碰撞哈希函数。
3.根据权利要求2所述的一种基于区块链的多用户通信密钥协商方法,其特征在于,所述每个用户根据所述公开参数生成各自的一对公钥及私钥,具体包括:用户Ui随机选择Zp域中的一个非0元素 并计算 用户Ui得到公钥pki=vi以及私钥ski=ai;其中,1≤i≤m, 表示域Zp的非零元素子集{1,2,..,p-1}, 表示群G上的幂运算。
4.根据权利要求3所述的一种基于区块链的多用户通信密钥协商方法,其特征在于,所述密钥协商发起者根据一组密钥协商参与者和一组密钥协商收听者的公钥执行密钥协商初始化过程并生成通信密钥协商初始参数,具体包括:密钥协商发起者U0随机选择域Zp中的两个非0元素α0, 选取时间戳T0和通信协商有效期Ξ,构造如下域Zp上的多项式:其中, 和 表示群G上的幂运算,v1,…,vm表示m个密钥协商参与者U1,…,Um的公钥,vm+1,…,vm+n表示n个密钥协商参与者Um+1,…,Um+n的公钥,||表示字符串连接,Ξ为通信协商有效期;
密钥协商发起者U0将上述多项式 进行整理,得到如下形式:
其中, 表示多项式 的系数,
称作通信密钥协商初始参数。
5.根据权利要求4所述的一种基于区块链的多用户通信密钥协商方法,其特征在于,所述每个所述密钥协商参与者从所述区块链读取所述通信密钥协商初始参数,计算各自的响应参数,具体包括:密钥协商参与者Ui随机选择域Zp中的两个非0元素αi, 选取时间戳Ti,并构造如下域Zp上的多项式:其中,v0表示密钥协商发起者U0的公钥,v1,…vi-1,vi+1,…,vm表示m-1个密钥协商参与者U1,…,Ui-1,Ui+1,…,Um的公钥;
密钥协商参与者Ui将多项式 进行整理,得到如下形式:
其中, 表示上述多项式 的系数,
称作密钥协商参与者Ui的响应参数。
6.根据权利要求5所述的一种基于区块链的多用户通信密钥协商方法,其特征在于,所述密钥协商发起者从所述区块链读取所有密钥协商参与者生成的响应参数,计算得到第一通信密钥,具体包括:密钥协商发起者U0验证m个密钥协商参与者Uj选取的时间戳以及当前时刻是否超出T0+Ξ,如果任一个已超出,则终止执行后续步骤,否则,继续执行以下步骤;其中,1≤j≤m;
密钥协商发起者U0重构出多项式 计算恢复出m个密钥协商参与者Uj选取的随机参数密钥协商发起者U0计算得到协商的第一通信密钥
7.根据权利要求6所述的一种基于区块链的多用户通信密钥协商方法,其特征在于,每个所述密钥协商参与者从所述区块链读取所述通信密钥协商初始参数以及其他密钥协商参与者生成的响应参数,计算得到第二通信密钥,具体包括:密钥协商参与者Ui验证密钥协商发起者U0和其他m-1个密钥协商参与者Uj选取的时间戳以及当前时刻是否超出T0+Ξ,如果任一个已超出,则终止执行后续步骤,否则,继续执行以下步骤;
密钥协商参与者Ui重构出多项式 计算恢复出密钥协商发起者U0选取的随机参数密钥协商参与者Ui重构出多项式 计算恢复出其他m-1个密钥协商参与者Uj(1≤j≤m,j≠i)选取的随机参数密钥协商参与者Ui计算得到协商的第二通信密钥
8.根据权利要求7所述的一种基于区块链的多用户通信密钥协商方法,其特征在于,每个密钥协商收听者从区块链读取通信密钥协商初始参数以及所有密钥协商参与者生成的响应参数,计算得到第三通信密钥,具体包括:密钥协商收听者Ui验证密钥协商发起者U0和m个密钥协商参与者Uj选取的时间戳以及当前时刻是否超出T0+Ξ,如果任一个已超出,则终止执行后续步骤,否则,继续执行以下步骤;其中,m+1≤i≤m+n,1≤j≤m;
密钥协商收听者Ui重构出多项式 计算恢复出密钥协商发起者U0选取的随机参数密钥协商收听者Ui重构出多项式 计算恢复出m个密钥协商参与者Uj选取的随机参数密钥协商收听者Ui计算得到协商的第三通信密钥
9.一种基于区块链的多用户通信密钥协商系统,其特征在于,该系统包括:初始化模块,用于选取安全参数和抗碰撞哈希函数,生成公开参数和区块链初始块;
用户密钥生成模块,用于每个用户根据所述公开参数生成各自的一对公钥及私钥,并将公钥写入区块链,所述用户包括密钥协商发起者、密钥协商参与者和密钥协商收听者;
密钥协商发起模块,用于所述密钥协商发起者根据一组密钥协商参与者和一组密钥协商收听者的公钥执行密钥协商初始化过程并生成通信密钥协商初始参数,所述通信密钥协商初始参数和所涉及全部用户的身份被写入区块链;
密钥协商响应模块,用于每个所述密钥协商参与者从所述区块链读取所述通信密钥协商初始参数,计算各自的响应参数,并将所述响应参数写入所述区块链;
协商密钥计算模块,用于所述密钥协商发起者从所述区块链读取所有密钥协商参与者生成的响应参数,计算得到第一通信密钥;
协商密钥恢复模块,用于每个所述密钥协商参与者从所述区块链读取所述通信密钥协商初始参数以及其他密钥协商参与者生成的响应参数,计算得到第二通信密钥;
协商密钥收听模块,用于每个密钥协商收听者从区块链读取通信密钥协商初始参数以及所有密钥协商参与者生成的响应参数,计算得到第三通信密钥。