[发明专利]一种新的基于公私钥密码机制的安全匿名通信方法有效
申请号: | 201911077872.7 | 申请日: | 2019-11-06 |
公开(公告)号: | CN110784321B | 公开(公告)日: | 2022-03-29 |
发明(设计)人: | 李凤银;刘中兴;崔璨;王伊蕾 | 申请(专利权)人: | 曲阜师范大学 |
主分类号: | H04L9/08 | 分类号: | H04L9/08;H04L9/30;H04L9/40 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 273165 山*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 公私 密码 机制 安全 匿名 通信 方法 | ||
1.一种新的基于公私钥密码机制的安全匿名通信方法,包含匿名通信链路建立和匿名消息传输两个阶段,具体过程如下:
第一步:用户IDA在密钥分发中心KGC(Key Generation Center)管理的公共列表中随机选择L=3个洋葱路由节点,获取洋葱路由节点和目的节点的长期公钥;
第二步:用户分别生成与目的节点和三个中继洋葱路由节点通信时使用的临时公私钥对,将这些临时私钥与洋葱路由的长期公钥利用DH(Diffie-Hellman)密钥交换算法分别生成共享临时会话密钥;
第三步:用户IDA本地生成链路建立请求REQ,确定一个会话截止时间EXP,然后用与目的节点共享的临时会话密钥加密REQ+EXP,再用目的接收者D的长期公钥加密自己的临时公钥,再加上会话截止时间EXP,下一跳路由RD一起构成最内层洋葱数据包;
然后用与第三跳中继洋葱路由节点共享的临时会话密钥加密最内层洋葱数据包得到一层洋葱数据包,连带第三跳路由器长期公钥加密的IDA的临时会话公钥、会话截止时间、下一跳路由R3一起构成二层洋葱数据包;
以此类推,再依次用与第二跳、第一跳中继路由器的共享临时会话密钥和长期公钥逐层加密洋葱数据包,得到三层洋葱数据包;
第四步:用户将三层洋葱发送给匿名链路的第一个节点R1,R1先利用自己的长期私钥解密这个洋葱数据包的公钥部分,得到IDA与自己交互用的临时公钥,基于该公钥和自己的长期私钥,利用DH算法还原出与IDA共享的临时会话密钥K1,使用该会话密钥解密第一层洋葱,得到会话到期时间,下一跳路由节点以及需要转发给R2的二层洋葱数据包;
R1检查会话时间的有效性,如果没有超过截止时间,则将二层洋葱数据包转发给R2;
第五步:路由节点R2接收到二层洋葱数据包以后,执行和R1一样的操作,将自己解密的一层洋葱数据包转发给中继路由器R3;
第六步:路由节点R3执行和R2相同的操作,将自己解密得到的最内层洋葱加密数据包转发给匿名链路的终点D;
第七步:目的接收者D接收到这个最内层的洋葱,利用长期私钥解密公钥部分得到IDA与自己交互用的临时会话公钥,然后利用该公钥和自己的长期私钥利用DH密钥算法还原出与用户IDA共享的临时会话密钥,进而解密出匿名链路建立请求REQ和会话到期时间;
第八步:如果D同意该匿名链路建立请求,则首先通过与KGC交互,基于公钥密码体制,产生一对D自己的会话用公私钥对;
后面可基于该密钥对的私钥、用户IDA的临时会话公钥和DH密钥交换算法,生成匿名链路的源点IDA和终点D之间用于后续匿名消息传输阶段的会话密钥;
然后,用户D生成匿名链路建立的确认信息ACK,利用自己和源用户IDA共享的临时会话密钥加密确认信息以及自己的临时公钥得到最内层确认数据包,根据之前保留的路由信息,沿匿名链路的反方向,将最内层确认数据包反馈给匿名链路上的前一个路由节点R3;
第九步:洋葱路由节点R3,R2,R1依次收到确认洋葱数据包时,以同样的方式为自己产生一对会话用公私钥对,并通过与源用户IDA共享的临时会话密钥逐层加密确认洋葱数据包返回给匿名链路上的前一个节点;
第十步:用户IDA收到洋葱路由节点R1发来的确认洋葱数据包时,该数据包已经分别经由目的节点D和三个洋葱路由节点加密了四层;
用户IDA使用其与三个路由节点和目的节点共享的临时会话密钥逐层解密洋葱数据包,依次得到各路由节点的会话用公钥,最终得到最内层链路终点D的链路建立确认信息和会话用公钥;
这样,用户IDA可以利用自己与各路由节点及链路终点D共享的临时会话用私钥、各路由节点和D的临时会话用公钥和DH算法,还原出在匿名消息传输阶段与各路由节点和链路终点D的会话密钥;
后续进行匿名消息传输时,用户IDA可以依次利用这些会话密钥逐层加密匿名消息,通过匿名链路进行匿名消息的传输;
第十一步:用户IDA准备要发送的匿名消息m,首先使用与目的节点D共享的会话密钥对消息m进行一层加密,得到匿名消息的加密结果;然后,使用与各个洋葱路由节点和目的节点D共享的会话密钥依次加密消息m的哈希值H(m)、匿名路径上的下一跳路由节点和会话到期时间,生成三层洋葱路由数据包;最后,用户将该三层洋葱路由数据包和匿名消息的加密结果合并在一起得到匿名消息传输数据包,沿着匿名通信链路进行匿名消息传输;
第十二步:各个洋葱路由节点收到匿名消息数据包后,使用对应的与源用户共享的会话密钥解密本路由节点对应的洋葱路由层,获得内层洋葱路由数据包、下一跳路由节点和会话到期时间,检查会话到期时间没有问题后,转发内层洋葱路由数据包给下一跳路由节点;
如此继续,直到洋葱路由数据包被三个路由节点解密三层,得到最内层H(m)的加密数据包,连同自己收到的匿名消息的加密结果一起发给目的地D;
第十三步:目的节点D收到数据包后,利用和发送方用户共享的会话密钥分别解密匿名消息的加密结果和最内层H(m)的加密数据包,得到匿名通信消息m以及m的哈希值H(m);
通过计算m的哈希值H′(m),并与接收到的H(m)对比,如果二者一致,则接收该匿名消息;否则,丢弃该匿名消息;
第十四步:反之,目的节点D可准备匿名消息m',按照匿名通信链路的反方向依次进行数据包的加密和消息转发;
D先用与接收方用户共享的会话密钥分别加密匿名消息m'得到匿名消息加密结果、加密匿名消息m'的哈希值H(m′)和过期时间得到最内层洋葱路由数据包,将两者合并在一起得到匿名消息数据包反馈给匿名路径的上一跳路由节点;
第十五步:匿名通信链路上的三个洋葱路由节点,依次利用自己和源用户共享的会话密钥对洋葱路由数据包进行逐层加密,和匿名消息的加密结果一起,沿着匿名路径的反方向转发给匿名链路上的前一跳路由节点;
如此继续,直到该匿名消息的最内层洋葱数据包和加密结果到达接收方用户;
第十六步:源用户IDA收到匿名消息的最内层洋葱数据包和加密结果之后,首先依次利用自己与三个洋葱路由节点和目的节点D共享的会话密钥依次解密三层洋葱数据包得到匿名消息m'的哈希值H(m′),然后利用与目的节点D共享的会话密钥解密匿名消息的加密结果得到匿名消息m',并计算的哈希值H′(m′),然后把该计算得到的哈希值与解密洋葱数据包得到的哈希值进行对比,验证匿名消息m'的合法性和有效性,进而决定是接收还拒绝该匿名消息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于曲阜师范大学,未经曲阜师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911077872.7/1.html,转载请声明来源钻瓜专利网。