基于线性反馈移位寄存器的密钥协商协议的实现方法与流程

文档序号:22553660发布日期:2020-10-17 02:33阅读:123来源:国知局
基于线性反馈移位寄存器的密钥协商协议的实现方法与流程

本发明涉及智能医疗环境中密钥协商技术领域,尤其涉及一种智能医疗环境中基于线性反馈移位寄存器的密钥协商协议的实现方法。



背景技术:

密钥协商协议是一种在通信双方或者多方之间产生会话密钥的协议。利用该对称密钥可以保证通信双方或者多方后续的通信安全。一般来说,密钥协商协议从提出至今在可支持的参与者数量上经历了两方,三方到多方的发展过程。此外,按照协商的方式密钥协商协议又可分为交互式和非交互式。其中交互式需要参与者实时在线才能完成,非交互式则可在离线状态下生成会话密钥。最后,按照协商的结果密钥协商协议又可以分为对称密钥协商协议和非对称密钥协商协议。其中,对称密钥协商协议在参与者间生成的是对称密钥而非对称密钥协商协议则生成一个群组公钥和每个用户持有的群组私钥。

随着可穿戴设备的发展,智能医疗逐渐被认为是人工智能中极具发展前景并具有重要应用价值的领域之一。近年来,人口老龄化问题的日益严重,进一步推动了智能医疗的发展。众所周知,大多数国家正处于人口老龄化加速的时期。一方面,大多数国家的老年人口已经占了相当大的比例。另一方面,据调查显示大多数国家65岁以上的人口正逐年增加。因此,便捷、多样化、高效的智能医疗被认为是养老产业的重要组成部分,受到了政府和社会的广泛关注。智能医疗环境中处理的是患者的个人隐私数据,因此数据的存储和传输过程都对安全提出了较高的要求。智能医疗环境中多方会诊可以提升对患者的救治率,案例学习则可以共享治疗经验从而在后续的治疗中有所借鉴。这两者的实施都需要保证多方通信的安全,个人医疗数据一旦遭受窃取将产生严重的隐私数据泄露,阻碍智能医疗的发展。密钥协商可以有效保证智能医疗环境中的通信和数据安全,然而现有的多方密钥协商方案普遍存在通信轮数偏高,计算开销较大的问题,无法在智能医疗大多数节点资源受限的环境中实际应用。具体问题如下:

1)协商轮数偏高。现有密钥协商协议普遍存在的协商轮数偏高问题,一般来说n个用户需要2n→n2轮协商才能完成,并且有的协议存在广播操作,从而有可能导致协议中每个参与者的贡献不均衡从而危及所建立密钥的安全。

2)通信开销过大。多轮的协商带来的是相对巨大的通信开销,对于智能医疗环境下某些对系统响应时间具有较高要求的情况,较大的通信开销将无法满足即时性的要求。

3)群组外人员无法与组内成员安全通信。一般的密钥协商协议只关注组内成员的通信安全,但是对于智能医疗环境不同组成员之间的沟通也至关重要。不支持群组间的通信将无法满足智能医疗环境中远程医疗的要求。



技术实现要素:

发明目的:针对以上问题,本发明提出了一种基于线性反馈移位寄存器的密钥协商协议的实现方法,提升密钥协商协议的效率从而使其更适用于智能医疗环境,支持智能医疗环境下的高效安全多方通信。

技术方案:为实现本发明的目的,本发明所采用的技术方案是:一种基于线性反馈移位寄存器的密钥协商协议的实现方法,包括以下步骤:

步骤1:根据参与协商的用户数量n选取初始寄存器序列,循环移位所述初始寄存器序列以构建密钥协商的拓扑结构,该拓扑结构是n阶向量矩阵,将用户编号使其对应于拓扑结构中的元素;

步骤2:给定安全参数,每个用户选取自己的私钥和公钥,并向参与协商的用户群组中其余成员广播该公钥和身份id;每个用户利用自己的私钥对其余用户的身份id进行签名并公开该签名;

步骤3:密钥协商阶段:根据拓扑结构中的用户编号以及用户私钥和签名进行密钥协商,如果协商失败则在所有用户间进行错误检测,进入步骤4;

步骤4:错误检测阶段:群组中所有用户根据广播的密钥协商错误报告进行错误测试,剔除唯一错误检测不成功的用户以及对签名验证不成功的用户;

步骤5:基于密钥协商阶段获取的安全群组公私钥,生成对称密钥,验证所得到的对称密钥,如果验证通过则对称密钥生成成功,否则进行错误检测。

进一步的,所述步骤3,密钥协商具体包括:

步骤3.1:第一轮协商,根据拓扑结构的每一行的用户编号,每一行中除该行行号编号所代表的用户外,其余用户都向该用户发送自己对其他所有用户的签名;该行行号编号所代表的用户收集该签名并提取出所有对自己身份的签名;

步骤3.2:第二轮协商,根据拓扑结构的每一列和每一行的用户编号,确定每一行行号l所代表的元素包含在同一列的其他行,同一列中包含元素l的行的行号所代表的用户i向第l个用户发送其在第一轮收到的签名;

步骤3.3:每个用户从获取的签名中提取出对自己身份的签名,并将自己对自己身份的签名与其他成员对自己身份的签名聚合构成自己的群组私钥;所有群组成员的公钥聚合构成该群组的公钥;

步骤3.4:每个用户对所获得的群组公钥和自己的群组私钥进行验证,选取一个随机字符串,利用群组公钥及随机数对该字符串进行加密,利用自己的群组私钥进行解密,如果解密成功则得到选取的字符串,否则代表协商失败,在所有用户间进行错误检测。

进一步的,所述步骤4,错误检测具体包括:

步骤4.1:发现解密结果与加密字符串不相同的用户i向群组其余成员广播密钥协商错误报告;所述错误报告包括自己的群组公钥和私钥;在收到错误报告后,每个用户进行错误测试,如果群组其余成员都能够检测成功,将用户i从群组中剔除;

步骤4.2:如果有其他成员发现所得到的群组公钥和私钥密钥对无法对随机字符串进行正确的加解密,每个用户对所收到的签名进行验证,如果验证不通过则剔除该用户。

进一步的,所述步骤4.2,验证过程通过每个用户发布的签名和其公钥进行验证。

进一步的,所述步骤5,对称密钥生成具体包括:

步骤5.1:基于密钥协商阶段获取的安全群组公私钥,每个用户选择自己的子密钥,利用群组公钥加密并基于拓扑结构将该密钥分享给其余用户;

步骤5.2:在收到每个用户共享的子密钥后,每个用户利用自己的群组私钥进行解密并聚合所得到的每个用户选取的子密钥,每个用户得到一个相同的对称密钥;

步骤5.3:验证所得到的对称密钥,如果验证通过则对称密钥生成成功,否则进行错误检测。

进一步的,所述步骤5.3,选取群组成员预先约定的公共参数进行加密并公开该加密结果,在收到密文后,每个用户利用自己的对称密钥进行解密并比较解密结果与公共参数是否相等;如果相等则说明对称密钥生成成功,如果不相等则进行错误检测。

本发明利用线性反馈移位寄存器构建新的密钥协商通信拓扑结构,该结构能够降低协商的通信轮数,提升协商效率。基于线性反馈移位寄存器的结构简单,易于设计,适用于智能医疗环境下的高效密钥协商。为了同时满足群组间和群组内的安全通信,本发明采用非对称密钥协商的方式。在密钥协商阶段,利用双线性实现多用户之间的密钥协商,同时基于双线性diffie-hellman假设保证协商会话密钥的安全性。

有益效果:与现有技术相比,本发明的技术方案具有以下有益的技术效果:

1、本发明提出了低开销的智能网络密钥协商通信拓扑结构。

本发明基于线性反馈移位寄存器这种效率极高的硬件设备,提出了密钥协商通信拓扑结构。在密钥协商过程中,协商的通信拓扑结构很大程度上决定了协商所需的通信和计算开销。一个设计良好的拓扑结构可以在很大程度上降低协议的计算和通信复杂度。基于线性反馈移位寄存器使得该结构易于设计,无需较大的开销。针对智能医疗环境下节点资源受限的特点,本发明中所提出的拓扑结构能够支持低通信的开销的密钥协商,从而为智能医疗环境的通信安全和数据安全提供保障。

2、本发明基于bls签名设计了非对称密钥协商协议。

本发明基于bls签名的可聚合性,提出了智能医疗环境下的非对称密钥协商协议。具体来说,通过对bls签名特性的研究,设计出了相应的可聚合签名算法,并通过进一步的改善使得该算法不但能够完成签名和验证操作,还能够完成加解密操作。为了实现可聚合的基于签名的加解密操作,签名的验证算法就必须将签名的字符串抵消,只保留用户的公钥即可。本发明针对这一点进行研究,提出了基于改进的bls签名的非对称密钥协商协议。

3、本发明提升了密钥协商的效率且具备容错特性。

本发明在非对称密钥的基础上协商对称会话密钥用以支持低时延的智能医疗应用场景。采用安全的公钥加密算法对每个用户选取的部分会话密钥进行加密并分享给群组中其余成员构成对称会话密钥。之后,群组的通信可以通过对称加密实现,相比于非对称加密,对称加密需要更少的时间。此外,为了保证非对称密钥和对称密钥的正确性,本发明设计了错误检测和容错机制以保证在出错情况下协议的正常运行。

4、本发明可同时支持群组内和群组间的安全通信。

本发明首先设计了非对称密钥协商,利用所生成的非对称密钥可以实现群组内和群组间的通信,一个群组的用户都可以用另一个群组的公钥加密数据并传送给加密公钥对应的群组,该群组在获得加密数据后,由于数据是通过群组公钥加密的,群组内的每个成员都可以使用自己持有的群组私钥进行解密,从而实现了群组间的安全通信。此外,本发明中提出的对称密钥协商可以在群组内生成对称的会话密钥,由于对称会话密钥是保密的,基于该密钥的加密数据只能被群组内部成员解密。

附图说明

图1是智能医疗系统模型示意图;

图2是协商通信拓扑结构构建过程示意图;

图3是密钥协商通信拓扑结构示意图;

图4是第一轮协商过程示意图;

图5是第二轮协商过程示意图;

图6是初始构建的z字形递增矩阵示意图;

图7是矩阵的转置过程示意图;

图8是矩阵的循环移位过程示意图。

具体实施方式

下面结合附图和实施例对本发明的技术方案作进一步的说明。

本发明所述的一种智能医疗系统下的基于线性反馈移位寄存器的密钥协商协议的实现方法,具体包括以下步骤:

步骤1:构建密钥协商拓扑结构

步骤1.1:根据参与协商的用户数量n选取合适的初始寄存器序列,该序列是后续循环移位构建协商拓扑结构的基础;

本实施例中选择个长度为的线性反馈移位寄存器,用于实现构造过程中的循环移位;用户数量n为13,所选择的线性反馈移位寄存器的长度k为此时应选择3个长度为3的线性反馈移位寄存器,这里的每个长度能够存储代表用户标号的元素。

步骤1.2:循环移位初始寄存器序列以构建密钥协商的拓扑结构,该拓扑结构是根据用户数量n构建的n阶向量矩阵,将用户编号使其对应于拓扑结构中的元素;

首先构建首列元素全为0,其余元素从1开始z字形递增的k+1阶方阵,用户数量为13时所构建的k+1阶方阵如图6所示;其后,选取该方阵右下角的k阶方阵并将其转置,转置过程如图7所示;接着,利用移位寄存器循环移位该初始寄存器序列以构建密钥协商的拓扑结构,循环移位的次数分别从0位到k-1位,其循环移位过程如图8所示;最后,将用户编号使其对应于拓扑结构中的元素,图2是通信拓扑结构构建过程示意图。

步骤2:初始化阶段

步骤2.1:给定安全参数(p,g1,g2,e,g),其中g1,g2是p阶乘法循环群,g是g1中的生成元,e是双线性映射e:g1×g1→g2;每个用户选取自己的私钥其中为q阶循环群中的正整数,并向参与协商的用户群组中其余成员广播自己的公钥x,y和身份信息idi,其中x=g-x,y=gy;该过程不要求所有成员同时在线。

步骤2.2:在收集到参与协商的用户群组中其他用户的身份信息后,每个用户i用自己的私钥对其余用户的身份idj,(j∈n,j≠i)进行签名,用户i对群组其他成员的签名为σi,j=e(y,g)h(idj)x,(j∈n,j≠i),h(idj)x为密码学哈希函数,其将任意长度输入映射到定长的输出,哈希函数定义为h:(0,1)*→(0,1)n,n是哈希函数的定长映射;每个用户进行相同的操作并公开自己对其他成员身份的签名,完成初始化操作之后用户之间就可以根据通信拓扑结构进行密钥协商。

步骤3:密钥协商阶段

步骤3.1:第一轮协商,根据拓扑结构的每一行的用户编号,每一行中除该行行号编号所代表的用户外,其余用户都向该用户发送自己对其他所有用户的签名:

该行行号编号所代表的用户i收集该签名并提取出所有对自己身份的签名:

步骤3.2:第二轮协商,根据拓扑结构的每一列和每一行的用户编号,确定每一行行号l所代表的元素包含在同一列的其他行,同一列中包含元素l的行的行号所代表的用户i向第l个用户发送其在第一轮收到的签名(j∈n,j≠i);

第一轮协商过程如图4所示,第二轮协商过程如图5所示,以标号为0的用户为例,两轮协商过程如下:

第一轮协商:用户0收到第0行的其他用户,也即用户1,2,3传输的消息;所述消息是指每个用户对其他用户身份的签名。

第二轮协商:用户0收到第0列的其他用户,也即用户4,8,11传输的消息。其中用户4的消息包含了在第一轮传输中收到的用户0,5,6的消息,加上用户4自己的消息,可在第二轮中向用户0传输用户4,5,6的消息;用户8的消息包含了在第一轮传输中收到的用户0,7,9的消息,加上用户8自己的消息,可在第二轮中向用户0传输用户7,8,9的消息;用户11的消息包含了在第一轮传输中收到的用户0,10,12的消息,加上用户11自己的消息,可在第二轮中向用户0传输用户10,11,12的消息。最终经过两轮协商,用户0可以获得1-12所有其他12个用户的消息。

步骤3.3:每个用户i从获取的签名中提取出对自己身份的签名:

并将自己对自己身份的签名与其他成员对自己身份的签名聚合构成自己的群组私钥所有群组成员的公钥聚合构成该群组的公钥:

步骤3.4:每个用户i对所获得的群组公钥和自己的群组私钥进行验证,选取随机字符串s,使用群组公钥并选取随机数对该字符串进行加密,得到密文:

ct=(ct1,ct2,ct3),其中ct1=gr,ct2=xr,ct3=yr·s,

利用自己的群组私钥对加密结果进行解密,得到解密后的字符串s′:

判断s=s′是否成立,如果该等式成立则说明用户i密钥协商成功,否则说明协商失败,在所有用户间进行错误检测。

步骤4:错误检测阶段

步骤4.1:发现解密结果与加密字符串不相同的用户i向群组其余成员广播密钥协商错误报告;所述错误报告包括自己的群组公钥和私钥;在收到错误报告后,每个用户进行错误测试,如果群组其余成员都能够检测成功,则要求用户i在一定的规定时间内提交自己对自己身份的签名如果该签名能够通过用户i的公钥的验证,则说明用户i发布了恶意的错误报告,说明用户i是恶意的或者其正在遭受攻击,将用户i从群组中剔除以保证其余用户的安全;

步骤4.2:如果有其他成员j发现所得到的群组公钥和私钥密钥对无法对随机字符串s进行正确的加解密,则说明协议中存在恶意用户m,此时每个用户j对所收到的签名进行验证从而判断出恶意用户或者攻击者;具体来说,验证过程通过每个用户发布的签名和其公钥进行验证,如果验证不通过则说明该用户发布了虚假的信息从而破坏协议的执行,此时应剔除该用户。

步骤5:对称密钥生成阶段;

步骤5.1:基于密钥协商阶段获取的安全群组公钥和群组私钥,每个用户选择自己的子密钥ki,利用群组公钥加密并基于拓扑结构将该密钥分享给其余用户;

步骤5.2:在收到每个用户共享的子密钥ki后,每个用户利用自己的群组私钥进行解密并聚合所得到的每个用户选取的子密钥,每个用户得到一个相同的对称密钥k:

步骤5.3:为了验证所得到的对称密钥k,选取群组成员预先约定的公共参数ver进行加密并公开该加密结果,在收到密文后,每个用户利用自己的对称密钥进行解密并比较解密结果与公共参数是否相等;如果相等则说明对称密钥生成成功,如果不相等则进行错误检测。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1