1.一种基于线性反馈移位寄存器的密钥协商协议的实现方法,其特征在于:该方法包括以下步骤:步骤1:根据参与协商的用户数量N选取初始寄存器序列,循环移位所述初始寄存器序列以构建密钥协商的拓扑结构,该拓扑结构是N阶向量矩阵,将用户编号使其对应于拓扑结构中的元素;
步骤2:给定安全参数,每个用户选取自己的私钥和公钥,并向参与协商的用户群组中其余成员广播该公钥和身份ID;每个用户利用自己的私钥对其余用户的身份ID进行签名并公开该签名;
步骤3:密钥协商阶段:根据拓扑结构中的用户编号以及用户私钥和签名进行密钥协商,如果协商失败则在所有用户间进行错误检测,进入步骤4;
步骤4:错误检测阶段:群组中所有用户根据广播的密钥协商错误报告进行错误测试,剔除唯一错误检测不成功的用户以及对签名验证不成功的用户;
步骤5:基于密钥协商阶段获取的安全群组公私钥,生成对称密钥,验证所得到的对称密钥,如果验证通过则对称密钥生成成功,否则进行错误检测。
2.根据权利要求1所述的一种基于线性反馈移位寄存器的密钥协商协议的实现方法,其特征在于:所述步骤3,密钥协商具体包括:步骤3.1:第一轮协商,根据拓扑结构的每一行的用户编号,每一行中除该行行号编号所代表的用户外,其余用户都向该用户发送自己对其他所有用户的签名;该行行号编号所代表的用户收集该签名并提取出所有对自己身份的签名;
步骤3.2:第二轮协商,根据拓扑结构的每一列和每一行的用户编号,确定每一行行号l所代表的元素包含在同一列的其他行,同一列中包含元素l的行的行号所代表的用户i向第l个用户发送其在第一轮收到的签名;
步骤3.3:每个用户从获取的签名中提取出对自己身份的签名,并将自己对自己身份的签名与其他成员对自己身份的签名聚合构成自己的群组私钥;所有群组成员的公钥聚合构成该群组的公钥;
步骤3.4:每个用户对所获得的群组公钥和自己的群组私钥进行验证,选取一个字符串,利用群组公钥对该字符串进行加密,利用自己的群组私钥进行解密,如果解密成功则得到选取的字符串,否则代表协商失败,在所有用户间进行错误检测。
3.根据权利要求2所述的一种基于线性反馈移位寄存器的密钥协商协议的实现方法,其特征在于:所述步骤4,错误检测具体包括:步骤4.1:发现解密结果与加密字符串不相同的用户i向群组其余成员广播密钥协商错误报告;所述错误报告包括自己的群组公钥和私钥;在收到错误报告后,每个用户进行错误测试,如果群组其余成员都能够检测成功,将用户i从群组中剔除;
步骤4.2:如果有其他成员发现所得到的群组公钥和私钥密钥对无法对随机字符串进行正确的加解密,每个用户对所收到的签名进行验证,如果验证不通过则剔除该用户。
4.根据权利要求3所述的一种基于线性反馈移位寄存器的密钥协商协议的实现方法,其特征在于:所述步骤4.2,验证过程通过每个用户发布的签名和其公钥进行验证。
5.根据权利要求1-4任一所述的一种基于线性反馈移位寄存器的密钥协商协议的实现方法,其特征在于:所述步骤5,对称密钥生成具体包括:步骤5.1:基于密钥协商阶段获取的安全群组公私钥,每个用户选择自己的子密钥,利用群组公钥加密并基于拓扑结构将该密钥分享给其余用户;
步骤5.2:在收到每个用户共享的子密钥后,每个用户利用自己的群组私钥进行解密并聚合所得到的每个用户选取的子密钥,每个用户得到一个相同的对称密钥;
步骤5.3:验证所得到的对称密钥,如果验证通过则对称密钥生成成功,否则进行错误检测。
6.根据权利要求5所述的一种基于线性反馈移位寄存器的密钥协商协议的实现方法,其特征在于:所述步骤5.3,选取群组成员预先约定的公共参数进行加密并公开该加密结果,在收到密文后,每个用户利用自己的对称密钥进行解密并比较解密结果与公共参数是否相等;如果相等则说明对称密钥生成成功,如果不相等则进行错误检测。