基于密钥派生算法的链上匿名通信方法和系统

文档序号:30583915发布日期:2022-06-29 14:31阅读:来源:国知局

技术特征:
1.一种基于密钥派生算法的链上匿名通信方法,其特征在于,应用于区块链网络中任意两个拥有初始密钥的节点,基于密钥衍生算法,将消息加密上链,以去中心化的区块链作为中继,实现节点到区块链再到节点的消息安全传输的过程,所述方法包括:在第一客户端和第二客户端向认证中心进行身份认证通过后,所述认证中心生成所述第一客户端对应的第一初始私钥、第一初始公钥,以及生成所述第二客户端对应的第二初始私钥、第二初始公钥;所述第一客户端根据第一初始公钥确定第一初始地址,第二客户端根据第二初始公钥确定第二初始地址;所述第一客户端和所述第二客户端根据所述第一初始私钥、第一初始公钥、第一初始地址、第二初始私钥、第二初始公钥和第二初始地址完成链上好友确认和种子密钥的生成;所述第一客户端根据所述第一初始私钥、所述第二初始公钥、所述种子密钥和通信时间戳确定第一派生私钥、第二派生公钥和第二派生地址;所述第二客户端根据所述第二初始私钥、所述第一初始公钥、所述种子密钥和所述通信时间戳确定第二派生私钥、第一派生公钥和第一派生地址;所述第一客户端和所述第二客户端根据所述第一派生私钥、所述第一派生公钥、所述第一派生地址、所述第二派生私钥、所述第二派生公钥和所述第二派生地址完成所述第一客户端和所述第二客户端之间消息的匿名发送。2.根据权利要求1所述的基于密钥派生算法的链上匿名通信方法,其特征在于,所述认证中心生成所述第一客户端对应的第一初始私钥和第一初始公钥,具体包括:初始化第一客户端生成第一基础信息;所述第一客户端将所述第一基础信息和第一认证请求发送给引导节点,以使所述引导节点将所述第一基础信息和第一所述认证请求转发给认证中心;所述认证中心根据拜占庭容错算法确定相应的第一主节点及从节点,以使所述第一主节点根据所述认证请求对所述第一基础信息进行验证,通过后,所述主节点为所述第一客户端生成包含第一初始私钥、第一初始公钥的证书,并广播,从节点验证证书并记录。3.根据权利要求1所述的基于密钥派生算法的链上匿名通信方法,其特征在于,所述认证中心生成所述第二客户端对应的第二初始私钥和第二初始公钥,具体包括:初始化第二客户端生成第二基础信息;所述第二客户端将所述第二基础信息和第二认证请求发送给引导节点,以使所述引导节点将所述第二基础信息和第二所述认证请求转发给认证中心;所述认证中心根据拜占庭容错算法确定相应的第二主节点及从节点,以使所述第二主节点根据所述认证请求对所述第二基础信息进行验证通过后,所述主节点为所述第二客户端生成包含第二初始私钥、第二初始公钥的证书,并广播,从节点验证证书并记录。4.根据权利要求1所述的基于密钥派生算法的链上匿名通信方法,其特征在于,所述第一客户端和所述第二客户端根据所述第一初始私钥、第一初始公钥、第一初始地址、第二初始私钥、第二初始公钥和第二初始地址完成链上好友确认和种子密钥的生成,具体包括:所述第一客户端预先获知第二初始公钥和第二初始地址,确定申请消息;根据所述第二初始公钥对所述申请消息和所述第一初始公钥进行加密得到第一加密信息;根据所述第一初始私钥对所述第一加密信息的摘要进行数字签名,得到第一数字签名;将所述第一加
密信息、所述第一数字签名和所述第二初始地址通过服务链广播给所述第二客户端;所述第二客户端根据所述第二初始地址接收所述第一加密信息、所述第一数字签名;根据所述第二初始私钥对所述第一加密信息进行解密得到所述请求信息和所述第一初始公钥;根据所述初始公钥对所述第一数字签名进行验证,在确定所述第一客户端的身份之后,对所述申请信息进行回答,生成答复信息;若所述答复信息为同意,则选取第一种子密钥,并根据所述第一初始公钥对所述同意的答复信息、所述第一种子密钥和所述第二初始公钥进行加密得到第二加密信息;根据所述第二初始私钥对所述第二加密信息的摘要进行数字签名得到第二数字签名;将所述第二加密信息、所述第二数字签名和预先获知的所述第一初始地址通过所述服务链广播给所述第一客户端;所述第一客户端根据所述第一初始地址接收所述第二加密信息和所述第二数字签名;根据所述第一初始私钥对所述第二加密信息进行解密得到所述答复信息、所述第一种子密钥和所述第二初始公钥;根据所述第二初始公钥对所述第二数字签名进行验证,在确定所述第二客户端的身份和所述答复信息的内容为同意之后,选取第二种子密钥;将所述第一种子密钥和所述第二种子密钥合并为完整的种子密钥,并将所述种子密钥记录到与所述第二客户端对应的信息中;根据所述第二初始公钥对所述第二种子密钥和所述第一初始公钥进行加密得到第三加密信息;根据所述第一初始私钥对所述第三加密信息的摘要进行数字签名得到第三数字签名;将所述第三数字签名、所述第三加密信息和所述第二初始地址通过所述服务链广播给所述第二客户端;所述第二客户端根据所述第二初始地址接收所述第三加密信息和所述第三数字签名;根据所述第二初始私钥对所述第三加密信息进行解密得到第二种子密钥和所述第一初始公钥;根据所述第一初始公钥对所述第三数字签名进行验证,在确定所述第一客户端的身份之后,将所述第一种子密钥和所述第二种子密钥合并为所述种子密钥,并将所述种子密钥,记录到与所述第一客户端对应的信息中,并发送确认信息至所述第一客户端,完成好友确认和种子密钥协商。5.根据权利要求4所述的基于密钥派生算法的链上匿名通信方法,其特征在于,若所述答复信息为不同意,则根据所述第一初始公钥对所述不同意的答复信息、所述第二初始公钥进行加密得到第四加密信息;根据所述第二初始私钥对所述第四加密信息的摘要进行数字签名,得到第四数字签名;将所述第四加密信息、所述第四数字签名和预先获知的所述第一初始地址通过所述服务链广播给所述第一客户端;所述第一客户端根据所述第一初始地址接收所述第四加密信息和所述第四数字签名;根据所述第一初始私钥对所述第四加密信息进行解密得到所述答复信息和所述第二初始公钥;根据所述初始公钥对所述第四数字签名进行解密认证,在确定所述第二客户端的身份且所述答复信息为不同意之后,停止操作。6.根据权利要求5所述的基于密钥派生算法的链上匿名通信方法,其特征在于,所述第一客户端根据所述第一初始私钥、所述第二初始公钥、所述种子密钥和通信时间戳确定第一派生私钥、第二派生公钥和第二派生地址,具体包括:将所述第一客户端与所述第二客户端通信时对应的最新的区块上链的时间作为通信时间戳;根据所述通信时间戳对所述种子密钥进行第一哈希处理,得到对应的哈希结果;
根据所述哈希结果和所述第一初始私钥确定第一派生私钥;根据所述哈希结果和所述第二初始公钥确定第二派生公钥;根据所述第二派生公钥进行所述第二哈希运算得到对应的第二派生地址。7.根据权利要求6所述的基于密钥派生算法的链上匿名通信方法,其特征在于,所述第二客户端根据所述第二初始私钥、所述第一初始公钥、所述种子密钥和所述通信时间戳确定第二派生私钥、第一派生公钥和第一派生地址,具体包括:根据所述哈希结果和所述第二初始私钥确定第二派生私钥;根据所述哈希结果和所述第一初始公钥确定第一派生公钥;根据所述第一派生公钥进行所述第二哈希运算得到对应的第一派生地址。8.根据权利要求7所述的基于密钥派生算法的链上匿名通信方法,其特征在于,所述第一客户端和所述第二客户端根据所述第一派生私钥、所述第一派生公钥、所述第二派生私钥、所述第二派生公钥和所述第二派生地址完成所述第一客户端向所述第二客户端的消息的匿名发送,具体包括:当所述第一客户端向所述第二客户端发送消息时:确定所述第一客户端与所述第二客户端之间通信的消息类型;若所述消息类型为字符串类型的第一短消息,则所述第一客户端根据所述第二派生公钥对所述短消息进行加密得到第一加密数据;根据所述第一派生私钥对所述第一加密数据的摘要进行数字签名得到第一发送数字签名;将所述第一发送数字签名、所述第一加密数据和所述第二派生地址通过所述服务链发送给所述第二客户端;所述第二客户端根据所述第二派生地址获取所述第一发送数字签名和所述第一加密数据;根据所述第二派生密钥对所述第一加密数据进行解密得到所述第一短消息;根据所述第一派生公钥对所述第一发送数字签名进行验证,验证通过后,确认接收所述第一短消息;若所述消息类型为第一长文件消息,则获取所述种子密钥的对称密钥,并根据所述对称密钥对所述第一长文件消息进行加密后上传星际文件系统并获取第一索引;所述第一客户端根据所述第二派生公钥对所述第一索引进行加密得到第二加密数据;根据所述第一派生私钥对所述第二加密数据的摘要进行数字签名得到第二发送数字签名;将所述第二发送数字签名、所述第二加密数据和所述第二派生地址通过所述服务链发送给所述第二客户端;所述第二客户端根据所述第二派生地址获取所述第二发送数字签名和所述第二加密数据;根据所述第二派生密钥对所述第二加密数据进行解密得到所述第一索引;根据所述第一派生公钥对所述第二发送数字签名进行验证,验证通过后,确认接收所述索引,并根据所述索引获取所述第一长文件消息。9.根据权利要求7所述的基于密钥派生算法的链上匿名通信方法,其特征在于,所述第一客户端和所述第二客户端根据所述第一派生私钥、所述第一派生公钥、所述第二派生私钥、所述第二派生公钥和所述第一派生地址完成所述第二客户端向所述第一客户端的消息的匿名发送,具体包括:当所述第二客户端向所述第一客户端发送消息时:确定所述第二客户端与所述第一客户端之间通信的消息类型;
若所述消息类型为字符串类型的第二短消息,则所述第二客户端根据所述第一派生公钥对所述短消息进行加密得到第三加密数据;根据所述第二派生私钥对所述第三加密数据的摘要进行数字签名得到第三发送数字签名;将所述第三发送数字签名、所述第三加密数据和所述第一派生地址通过所述服务链发送给所述第一客户端;所述第一客户端根据所述第一派生地址获取所述第三发送数字签名和所述第三加密数据;根据所述第一派生密钥对所述第三加密数据进行解密得到所述第二短消息;根据所述第二派生公钥对所述第三发送数字签名进行验证,验证通过后,确认接收所述第二短消息;若所述消息类型为第二长文件消息,则获取所述种子密钥的所述对称密钥,并根据所述对称密钥对所述第二长文件消息进行加密后上传所述星际文件系统并获取第二索引;所述第二客户端根据所述第一派生公钥对所述第二索引进行加密得到第四加密数据;根据所述第二派生私钥对所述第四加密数据的摘要进行数字签名得到第四发送数字签名;将所述第四发送数字签名、所述第四加密数据和所述第一派生地址通过所述服务链发送给所述第一客户端;所述第一客户端根据所述第一派生地址获取所述第四发送数字签名和所述第四加密数据;根据所述第一派生密钥对所述第四加密数据进行解密得到所述索引;根据所述第二派生公钥对所述第四发送数字签名进行验证,验证通过后,确认接收所述第二索引,并根据所述第二索引获取所述第二长文件消息。10.一种基于密钥派生算法的链上匿名通信系统,其特征在于,应用于区块链网络中任意两个拥有初始密钥的节点,基于密钥衍生算法,将消息加密上链,以去中心化的区块链作为中继,实现节点到区块链再到节点的消息安全传输的过程,所述系统包括:第一客户端、第二客户端和认证中心;所述认证中心用于在第一客户端和第二客户端向认证中心进行身份认证通过后,认证中心主节点生成所述第一客户端对应的包含第一初始私钥和第一初始公钥的证书,以及生成所述第二客户端对应的包含第二初始私钥和第二初始公钥;所述第一客户端根据第一初始公钥确定第一初始地址,第二客户端根据第二初始公钥确定第二初始地址;所述第一客户端和所述第二客户端共同用于根据所述第一初始私钥、第一初始公钥、第一初始地址、第二初始私钥、第二初始公钥和第二初始地址完成好友确认和种子密钥的生成;所述第一客户端还用于根据所述第一初始私钥、所述第二初始公钥、所述种子密钥和通信时间戳确定第一派生私钥、第二派生公钥和第二派生地址;所述第二客户端还用于根据所述第二初始私钥、所述第一初始公钥、所述种子密钥和所述通信时间戳确定第二派生私钥、第一派生公钥和第一派生地址;所述第一客户端和所述第二客户端还共同用于根据所述第一派生私钥、所述第一派生公钥、所述第一派生地址、所述第二派生私钥、所述第二派生公钥和所述第二派生地址完成所述第一客户端和所述第二客户端之间消息的匿名发送。

技术总结
本发明提供一种基于密钥派生算法的链上匿名通信方法和系统,是任意两个拥有初始密钥的节点,将消息基于衍生密钥加密上链,以区块链为中继,实现匿名的通信。方法通过认证中心对第一客户端和第二客户端分别生成其对应的初始私钥和初始公钥,客户端计算初始地址;基于上述结果在链上完成好友确认和种子密钥的生成;二者在正式通信前,第一客户端和第二客户端分别根据上述结果、种子密钥和通信时间戳确定各自的派生私钥、派生公钥、派生地址;根据上述获取的各种派生信息,完成第一客户端和第二客户端之间消息在链上的匿名广播与接收。本发明通过上述方法实现一次一密一地址的匿名通信。采用本发明,可以增强节点间通信隐私,降低密钥协商通信代价。低密钥协商通信代价。低密钥协商通信代价。


技术研发人员:徐洁 宋绪言 崔宝江 陈思源 付俊松
受保护的技术使用者:北京邮电大学
技术研发日:2021.12.22
技术公布日:2022/6/28
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1