CN114679261B - 基于密钥派生算法的链上匿名通信方法和系统 - Google Patents
基于密钥派生算法的链上匿名通信方法和系统 Download PDFInfo
- Publication number
- CN114679261B CN114679261B CN202111582795.8A CN202111582795A CN114679261B CN 114679261 B CN114679261 B CN 114679261B CN 202111582795 A CN202111582795 A CN 202111582795A CN 114679261 B CN114679261 B CN 114679261B
- Authority
- CN
- China
- Prior art keywords
- client
- key
- initial
- derivative
- public key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000004891 communication Methods 0.000 title claims abstract description 117
- 238000000034 method Methods 0.000 title claims abstract description 70
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 64
- 238000009795 derivation Methods 0.000 title claims abstract description 51
- 238000012790 confirmation Methods 0.000 claims abstract description 19
- 230000005540 biological transmission Effects 0.000 claims description 33
- 238000012795 verification Methods 0.000 claims description 14
- 230000008569 process Effects 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 3
- 125000004122 cyclic group Chemical group 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Abstract
本发明提供一种基于密钥派生算法的链上匿名通信方法和系统,是任意两个拥有初始密钥的节点,将消息基于衍生密钥加密上链,以区块链为中继,实现匿名的通信。方法通过认证中心对第一客户端和第二客户端分别生成其对应的初始私钥和初始公钥,客户端计算初始地址;基于上述结果在链上完成好友确认和种子密钥的生成;二者在正式通信前,第一客户端和第二客户端分别根据上述结果、种子密钥和通信时间戳确定各自的派生私钥、派生公钥、派生地址;根据上述获取的各种派生信息,完成第一客户端和第二客户端之间消息在链上的匿名广播与接收。本发明通过上述方法实现一次一密一地址的匿名通信。采用本发明,可以增强节点间通信隐私,降低密钥协商通信代价。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种基于密钥派生算法的链上匿名通信方法和系统。
背景技术
随着互联网的发展,各类业务隐私保护的需求日益凸显。在一个不可信的网络环境中,如今普遍存在的端到端加密可以通过加密隧道等方式防止恶意攻击者非法获取通信双方的通信内容,却无法防止所有信息的泄露,比如发送方和接收方的IP地址、通信双方交互频率等。为了增强客户端的隐私安全,对通信双方身份和IP隐藏,实现会话中一次一密的匿名通信尤为重要。
区块链网络是一种点对点分布式网络,节点之间通过中继转发的方式进行通信,此时,传统网络中通过窃听网络流量发现客户端之间通信关系的方法就不再适用。而且,区块链技术支持匿名交易,地址本身和客户端身份信息无关。为匿名通信提供了新的思路。然而,匿名通信的地址派生原则是,地址仅通信双方可知,其他实体看来是随机变化的。区块链虽然可以做到一次一地址,但是这种地址派生是无规律的,或者并不能被其他人知晓,因而不满足上述规则。这就需要双方协商出通信所需要的会话密钥。
当前主流的密钥分配方法有基于对称密码体制的密钥分配、混合密码体制密钥分配以及Diffie-Hellman(DH)密钥交换。其中基于对称密码体质的密钥分配基本原理是:通信双方会事先由密钥分发中心(Key Distribution Center,KDC)手工分配一个固定的主密钥,之后任一方想得到用于通信的会话密钥,都需在主密钥加密保护下向KDC申请,之后再以KDC为中介用会话密钥进行加密通信。混合密码体制分配密钥相对于对称密钥体制,最为突出的特征是:两两客户端之间无需事先手工分配一个主密钥,而是采用公钥密码体制,用对方公开的公钥加密并发送给对方新的对称密钥,对方收到后再用自己的私钥解密得到对称密钥,在正式会话时再使用新密钥进行对称加密通信。该机制使得客户端只需要维持较少的密钥关系,而且公钥能被分配而无需机密性保护,因此更加方便高效。DH密钥分配方案主要利用了计算离散对数的困难性,其主要特征是双方客户端无需再对待发送的密钥进行加密处理,而是各自随机产生一个数,并用DH算法单向计算出相应的值发送给对方,双方便可以由随机数和收到的数值得到相同的结果作为对称的会话密钥,而敌手即使截获双方发送的信息也无法复原出该密钥。
上述现有技术除了难以解决需不断协商密钥的问题,还存在一些其他的不足,比如,上述方案更多只适用于对称密钥分配,如果想要实时分享非对称密码中的公钥,则过程会更加繁琐。
发明内容
本发明提供一种基于密钥派生算法的链上匿名通信方法和系统,用以解决现有技术中需要不断协商密钥的和适用范围局限的缺陷,实现依次获取种子密钥和适用于非对称密码中的情形。
第一方面,本发明提供一种基于密钥派生算法的链上匿名通信方法,应用于区块链网络中任意两个拥有初始密钥的节点,基于密钥衍生算法,将消息加密上链,以去中心化的区块链作为中继,实现节点到区块链再到节点的消息安全传输的过程,所述方法包括:
在第一客户端和第二客户端向认证中心进行身份认证通过后,所述认证中心生成所述第一客户端对应的第一初始私钥、第一初始公钥,以及生成所述第二客户端对应的第二初始私钥、第二初始公钥;
所述第一客户端根据第一初始公钥确定第一初始地址,第二客户端根据第二初始公钥确定第二初始地址;所述第一客户端和所述第二客户端根据所述第一初始私钥、第一初始公钥、第一初始地址、第二初始私钥、第二初始公钥和第二初始地址完成链上好友确认和种子密钥的生成;
所述第一客户端根据所述第一初始私钥、所述第二初始公钥、所述种子密钥和通信时间戳确定第一派生私钥、第二派生公钥和第二派生地址;
所述第二客户端根据所述第二初始私钥、所述第一初始公钥、所述种子密钥和所述通信时间戳确定第二派生私钥、第一派生公钥和第一派生地址;
所述第一客户端和所述第二客户端根据所述第一派生私钥、所述第一派生公钥、所述第一派生地址、所述第二派生私钥、所述第二派生公钥和所述第二派生地址完成所述第一客户端和所述第二客户端之间消息的匿名发送。
进一步,根据本发明提供的基于密钥派生算法的链上匿名通信方法,其中,所述认证中心生成所述第一客户端对应的第一初始私钥和第一初始公钥,具体包括:
初始化第一客户端生成第一基础信息;
所述第一客户端将所述第一基础信息和第一认证请求发送给引导节点,以使所述引导节点将所述第一基础信息和第一所述认证请求转发给认证中心;
所述认证中心根据拜占庭容错算法确定相应的第一主节点及从节点,以使所述第一主节点根据所述认证请求对所述第一基础信息进行验证,通过后,所述主节点为所述第一客户端生成包含第一初始私钥、第一初始公钥的证书,并广播,从节点验证证书并记录。
进一步,根据本发明提供的基于密钥派生算法的链上匿名通信方法,其中,所述认证中心生成所述第二客户端对应的第二初始私钥和第二初始公钥,具体包括:初始化第二客户端生成第二基础信息;
所述第二客户端将所述第二基础信息和第二认证请求发送给引导节点,以使所述引导节点将所述第二基础信息和第二所述认证请求转发给认证中心;
所述认证中心根据拜占庭容错算法确定相应的第二主节点及从节点,以使所述第二主节点根据所述认证请求对所述第二基础信息进行验证通过后,所述主节点为所述第二客户端生成包含第二初始私钥、第二初始公钥的证书,并广播,从节点验证证书并记录。
进一步,根据本发明提供的基于密钥派生算法的链上匿名通信方法,其中,所述第一客户端和所述第二客户端根据所述第一初始私钥、第一初始公钥、第一初始地址、第二初始私钥、第二初始公钥和第二初始地址完成链上好友确认和种子密钥的生成,具体包括:
所述第一客户端预先获知第二初始公钥和第二初始地址,确定申请消息;根据所述第二初始公钥对所述申请消息和所述第一初始公钥进行加密得到第一加密信息;根据所述第一初始私钥对所述第一加密信息的摘要进行数字签名,得到第一数字签名;将所述第一加密信息、所述第一数字签名和所述第二初始地址通过服务链广播给所述第二客户端;
所述第二客户端根据所述第二初始地址接收所述第一加密信息、所述第一数字签名;根据所述第二初始私钥对所述第一加密信息进行解密得到所述请求信息和所述第一初始公钥;根据所述初始公钥对所述第一数字签名进行验证,在确定所述第一客户端的身份之后,对所述申请信息进行回答,生成答复信息;若所述答复信息为同意,则选取第一种子密钥,并根据所述第一初始公钥对所述同意的答复信息、所述第一种子密钥和所述第二初始公钥进行加密得到第二加密信息;根据所述第二初始私钥对所述第二加密信息的摘要进行数字签名得到第二数字签名;将所述第二加密信息、所述第二数字签名和预先获知的所述第一初始地址通过所述服务链广播给所述第一客户端;
所述第一客户端根据所述第一初始地址接收所述第二加密信息和所述第二数字签名;根据所述第一初始私钥对所述第二加密信息进行解密得到所述答复信息、所述第一种子密钥和所述第二初始公钥;根据所述第二初始公钥对所述第二数字签名进行验证,在确定所述第二客户端的身份和所述答复信息的内容为同意之后,选取第二种子密钥;将所述第一种子密钥和所述第二种子密钥合并为完整的种子密钥,并将所述种子密钥记录到与所述第二客户端对应的信息中;根据所述第二初始公钥对所述第二种子密钥和所述第一初始公钥进行加密得到第三加密信息;根据所述第一初始私钥对所述第三加密信息的摘要进行数字签名得到第三数字签名;将所述第三数字签名、所述第三加密信息和所述第二初始地址通过所述服务链广播给所述第二客户端;
所述第二客户端根据所述第二初始地址接收所述第三加密信息和所述第三数字签名;根据所述第二初始私钥对所述第三加密信息进行解密得到第二种子密钥和所述第一初始公钥;根据所述第一初始公钥对所述第三数字签名进行验证,在确定所述第一客户端的身份之后,将所述第一种子密钥和所述第二种子密钥合并为所述种子密钥,并将所述种子密钥,记录到与所述第一客户端对应的信息中,并发送确认信息至所述第一客户端,完成好友确认和种子密钥协商。
进一步,根据本发明提供的基于密钥派生算法的链上匿名通信方法,其中,若所述答复信息为不同意,则根据所述第一初始公钥对所述不同意的答复信息、所述第二初始公钥进行加密得到第四加密信息;根据所述第二初始私钥对所述第四加密信息的摘要进行数字签名,得到第四数字签名;将所述第四加密信息、所述第四数字签名和预先获知的所述第一初始地址通过所述服务链广播给所述第一客户端;
所述第一客户端根据所述第一初始地址接收所述第四加密信息和所述第四数字签名;根据所述第一初始私钥对所述第四加密信息进行解密得到所述答复信息和所述第二初始公钥;根据所述初始公钥对所述第四数字签名进行解密认证,在确定所述第二客户端的身份且所述答复信息为不同意之后,停止操作。
进一步,根据本发明提供的基于密钥派生算法的链上匿名通信方法,其中,所述第一客户端根据所述第一初始私钥、所述第二初始公钥、所述种子密钥和通信时间戳确定第一派生私钥、第二派生公钥和第二派生地址,具体包括:
将所述第一客户端与所述第二客户端通信时对应的最新的区块上链的时间作为通信时间戳;
根据所述通信时间戳对所述种子密钥进行第一哈希处理,得到对应的哈希结果;
根据所述哈希结果和所述第一初始私钥确定第一派生私钥;
根据所述哈希结果和所述第二初始公钥确定第二派生公钥;
根据所述第二派生公钥进行第二哈希运算得到对应的第二派生地址。
进一步,根据本发明提供的基于密钥派生算法的链上匿名通信方法,其中,所述第二客户端根据所述第二初始私钥、所述第一初始公钥、所述种子密钥和所述通信时间戳确定第二派生私钥、第一派生公钥和第一派生地址,具体包括:
根据所述哈希结果和所述第二初始私钥确定第二派生私钥;
根据所述哈希结果和所述第一初始公钥确定第一派生公钥;
根据所述第一派生公钥进行所述第二哈希运算得到对应的第一派生地址。
进一步,根据本发明提供的基于密钥派生算法的链上匿名通信方法,其中,所述第一客户端和所述第二客户端根据所述第一派生私钥、所述第一派生公钥、所述第二派生私钥、所述第二派生公钥和所述第二派生地址完成所述第一客户端向所述第二客户端的消息的匿名发送,具体包括:
当所述第一客户端向所述第二客户端发送消息时:
确定所述第一客户端与所述第二客户端之间通信的消息类型;
若所述消息类型为字符串类型的第一短消息,则所述第一客户端根据所述第二派生公钥对所述短消息进行加密得到第一加密数据;根据所述第一派生私钥对所述第一加密数据的摘要进行数字签名得到第一发送数字签名;将所述第一发送数字签名、所述第一加密数据和所述第二派生地址通过所述服务链发送给所述第二客户端;
所述第二客户端根据所述第二派生地址获取所述第一发送数字签名和所述第一加密数据;根据所述第二派生密钥对所述第一加密数据进行解密得到所述第一短消息;根据所述第一派生公钥对所述第一发送数字签名进行验证,验证通过后,确认接收所述第一短消息;
若所述消息类型为第一长文件消息,则获取所述种子密钥的对称密钥,并根据所述对称密钥对所述第一长文件消息进行加密后上传星际文件系统并获取第一索引;
所述第一客户端根据所述第二派生公钥对所述第一索引进行加密得到第二加密数据;根据所述第一派生私钥对所述第二加密数据的摘要进行数字签名得到第二发送数字签名;将所述第二发送数字签名、所述第二加密数据和所述第二派生地址通过所述服务链发送给所述第二客户端;
所述第二客户端根据所述第二派生地址获取所述第二发送数字签名和所述第二加密数据;根据所述第二派生密钥对所述第二加密数据进行解密得到所述第一索引;根据所述第一派生公钥对所述第二发送数字签名进行验证,验证通过后,确认接收所述索引,并根据所述索引获取所述第一长文件消息。
进一步,根据本发明提供的基于密钥派生算法的链上匿名通信方法,其中,所述第一客户端和所述第二客户端根据所述第一派生私钥、所述第一派生公钥、所述第二派生私钥、所述第二派生公钥和所述第一派生地址完成所述第二客户端向所述第一客户端的消息的匿名发送,具体包括:
当所述第二客户端向所述第一客户端发送消息时:
确定所述第二客户端与所述第一客户端之间通信的消息类型;
若所述消息类型为字符串类型的第二短消息,则所述第二客户端根据所述第一派生公钥对所述短消息进行加密得到第三加密数据;根据所述第二派生私钥对所述第三加密数据的摘要进行数字签名得到第三发送数字签名;将所述第三发送数字签名、所述第三加密数据和所述第一派生地址通过所述服务链发送给所述第一客户端;
所述第一客户端根据所述第一派生地址获取所述第三发送数字签名和所述第三加密数据;根据所述第一派生密钥对所述第三加密数据进行解密得到所述第二短消息;根据所述第二派生公钥对所述第三发送数字签名进行验证,验证通过后,确认接收所述第二短消息;
若所述消息类型为第二长文件消息,则获取所述种子密钥的所述对称密钥,并根据所述对称密钥对所述第二长文件消息进行加密后上传所述星际文件系统并获取第二索引;
所述第二客户端根据所述第一派生公钥对所述第二索引进行加密得到第四加密数据;根据所述第二派生私钥对所述第四加密数据的摘要进行数字签名得到第四发送数字签名;将所述第四发送数字签名、所述第四加密数据和所述第一派生地址通过所述服务链发送给所述第一客户端;
所述第一客户端根据所述第一派生地址获取所述第四发送数字签名和所述第四加密数据;根据所述第一派生密钥对所述第四加密数据进行解密得到所述索引;根据所述第二派生公钥对所述第四发送数字签名进行验证,验证通过后,确认接收所述第二索引,并根据所述第二索引获取所述第二长文件消息。
第二方面,本发明提供一种基于密钥派生算法的链上匿名通信系统,应用于区块链网络中任意两个拥有初始密钥的节点,基于密钥衍生算法,将消息加密上链,以去中心化的区块链作为中继,实现节点到区块链再到节点的消息安全传输的过程,所述系统包括:第一客户端、第二客户端和认证中心;
所述认证中心用于在第一客户端和第二客户端向认证中心进行身份认证通过后,认证中心主节点生成所述第一客户端对应的包含第一初始私钥和第一初始公钥的证书,以及生成所述第二客户端对应的包含第二初始私钥和第二初始公钥;
所述第一客户端根据第一初始公钥确定第一初始地址,第二客户端根据第二初始公钥确定第二初始地址;所述第一客户端和所述第二客户端共同用于根据所述第一初始私钥、第一初始公钥、第一初始地址、第二初始私钥、第二初始公钥和第二初始地址完成好友确认和种子密钥的生成;
所述第一客户端还用于根据所述第一初始私钥、所述第二初始公钥、所述种子密钥和通信时间戳确定第一派生私钥、第二派生公钥和第二派生地址;
所述第二客户端还用于根据所述第二初始私钥、所述第一初始公钥、所述种子密钥和所述通信时间戳确定第二派生私钥、第一派生公钥和第一派生地址;
所述第一客户端和所述第二客户端还共同用于根据所述第一派生私钥、所述第一派生公钥、所述第一派生地址、所述第二派生私钥、所述第二派生公钥和所述第二派生地址完成所述第一客户端和所述第二客户端之间消息的匿名发送。
本发明提供的一种基于密钥派生算法的链上匿名通信方法和系统,应用于区块链网络中任意两个拥有初始密钥的节点,基于密钥衍生算法,将消息加密上链,以去中心化的区块链作为中继,实现节点到区块链再到节点的消息安全传输的过程,通过在第一客户端和第二客户端向认证中心进行身份认证通过后,所述认证中心生成所述第一客户端对应的第一初始私钥、第一初始公钥,以及生成所述第二客户端对应的第二初始私钥、第二初始公钥;所述第一客户端根据第一初始公钥确定第一初始地址,第二客户端根据第二初始公钥确定第二初始地址;所述第一客户端和所述第二客户端根据所述第一初始私钥、第一初始公钥、第一初始地址、第二初始私钥、第二初始公钥和第二初始地址完成链上好友确认和种子密钥的生成;所述第一客户端根据所述第一初始私钥、所述第二初始公钥、所述种子密钥和通信时间戳确定第一派生私钥、第二派生公钥和第二派生地址;所述第二客户端根据所述第二初始私钥、所述第一初始公钥、所述种子密钥和所述通信时间戳确定第二派生私钥、第一派生公钥和第一派生地址;所述第一客户端和所述第二客户端根据所述第一派生私钥、所述第一派生公钥、所述第一派生地址、所述第二派生私钥、所述第二派生公钥和所述第二派生地址完成所述第一客户端和所述第二客户端之间消息的匿名发送。本发明通过上述方法实现无需密钥协商分发的一次一密一地址的匿名通信方案。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的基于密钥派生算法的链上匿名通信方法的流程示意图之一;
图2是本发明提供的基于密钥派生算法的链上匿名通信系统的结构示意图;
图3是本发明提供的基于密钥派生算法的链上匿名通信系统的整体示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合图1-图2描述本发明的本发明提供一种基于密钥派生算法的链上匿名通信方法,应用于区块链网络中任意两个拥有初始密钥的节点,基于密钥衍生算法,将消息加密上链,以去中心化的区块链作为中继,实现节点到区块链再到节点的消息安全传输的过程,所述方法包括:
步骤100:在第一客户端和第二客户端向认证中心进行身份认证通过后,所述认证中心生成所述第一客户端对应的第一初始私钥、第一初始公钥,以及生成所述第二客户端对应的第二初始私钥、第二初始公钥;包括:
具体地,为了实现认证中心CA(Certificate Authority)节点可控,引入安全中心的概念,安全中心是线下的一个组织或者部门的多个节点,由其承担分布式CA的功能,他们拥有自己的CA证书,包含节点的密钥对、序列号等基础信息;
CA节点入网时需要持有CA证书,引导节点上线时在程序中内置了安全中心的公钥组,通过非对称验证算法校验证书真实性,只有通过校验的节点才被允许入网。
任一客户端在加入区块链网络时首先向认证中心CA发送其身份信息,分布式CA网络为其生成一个公私钥对并提供身份证书Ecert,此证书为长期证书。客户端由公钥经单向哈希映射出初始地址,私钥、公钥和地址是不可更改的初始三元组,其中公钥和地址作为具有通信资格的参与方可预先获知身份标识。
步骤200:所述第一客户端根据第一初始公钥确定第一初始地址,第二客户端根据第二初始公钥确定第二初始地址;所述第一客户端和所述第二客户端根据所述第一初始私钥、第一初始公钥、第一初始地址、第二初始私钥、第二初始公钥和第二初始地址完成链上好友确认和种子密钥的生成;
具体地,首先,第一客户端根据第一初始公钥进行计算确定第一初始地址,第二客户顿根据第二初始公钥确定第二初始地址。即客户端对公钥K进行协定的哈希运算即现有的地址算法得到地址aess,第一客户端(申请方)获取想要通信的消息接收方及第二客户端的真实身份对应的第二初始公钥、第二初始地址。然后根据第一初始私钥对申请信息进行加密,然后将加密信息和第一初始公钥、第二初始公钥、第二初始地址向第二客户端发送进行申请添加好友。
第二客户端(接收方)接收到申请信息之后,确定是否同意,如果同意则生成随机第一种子密钥x1,并根据第一初始公钥和第一初始地址等将回复信息和第一种子密钥发送给第一客户端。
第一客户端在接收到所述第一种子密钥之后,随机生成第二种子密钥x2,并将所述第二种子密钥根据一初始私钥、第一初始公钥、第二初始公钥、第二初始地址等发送给第二客户端。
第二客户端接收到第二种子密钥之后将第一种子密钥和第二种子密钥合并成种子密钥x,并反馈收到信息给第一客户端。
经过上述几次通信之后,第一客户端和第二客户端之间建立起好友联系,同时,完后了种子密钥的生成。
步骤300:所述第一客户端根据所述第一初始私钥、所述第二初始公钥、所述种子密钥和通信时间戳确定第一派生私钥、第二派生公钥和第二派生地址;
具体地,根据区块链固定时间生成区块的特性,可将第i个区块上链时间ti设为通信的时间戳(从ti到下个区块上链ti+1前的消息都会被打包到该区块上),并作为参数对种子密钥x作哈希处理得到xi=Hash1(x||Hash2(x,ti)),实现每次通信时xi的离散化,从而生成不同的派生公钥Ki和对应的派生地址信息,第三者无法解析通信双方身份,达到一次一密一地址的效果。
第一客户端获取好友第二客户端的初始公钥KB、共享的种子密钥x、以及最新的通信区块时间戳ti,先派生出该时间戳下自己的派生私钥kAi=kA*Hash1(x||Hash2(x,ti))modn,然后派生出好友第二客户端的派生公钥KBi=Hash1(x||Hash2(x,ti))KB和派生地址addressBi。
步骤400:所述第二客户端根据所述第二初始私钥、所述第一初始公钥、所述种子密钥和所述通信时间戳确定第二派生私钥、第一派生公钥和第一派生地址;
具体地,同上。第二客户端获取好友第一客户端的初始公钥KA、共享的种子密钥x、以及最新的通信区块时间戳ti,先派生出该时间戳下自己的派生私钥kBi=kB*Hash1(x||Hash2(x,ti))mod n,然后派生出好友第一客户端的派生公钥KAi=(Hash1(x||Hash2(x,ti)))KA和派生地址addressAi。
步骤500:所述第一客户端和所述第二客户端根据所述第一派生私钥、所述第一派生公钥、所述第一派生地址、所述第二派生私钥、所述第二派生公钥和所述第二派生地址完成所述第一客户端和所述第二客户端之间消息的匿名发送。
具体地,好友双方记录种子密钥信息,同时维护一个对方的派生信息表,随固定时间戳更新,包含基于种子密钥经过派生算法运算得到的一段时间内对方会话公钥、会话地址等;
发送消息时,发送方首先计算自己的派生公私钥对、对方的派生信息以及衍生的数据加密密钥。对消息进行加密并广播至服务链端;
服务链广播该密文。进而,消息接收方比对密文附带的会话地址,判断是否为某个好友消息,如果是则利用其相应派生密钥解密验证,消息接收完成。
本发明提供的一种基于密钥派生算法的链上匿名通信方法,应用于区块链网络中任意两个拥有初始密钥的节点,基于密钥衍生算法,将消息加密上链,以去中心化的区块链作为中继,实现节点到区块链再到节点的消息安全传输的过程,通过在第一客户端和第二客户端向认证中心进行身份认证通过后,所述认证中心生成所述第一客户端对应的第一初始私钥、第一初始公钥,以及生成所述第二客户端对应的第二初始私钥、第二初始公钥;所述第一客户端根据第一初始公钥确定第一初始地址,第二客户端根据第二初始公钥确定第二初始地址;所述第一客户端和所述第二客户端根据所述第一初始私钥、第一初始公钥、第一初始地址、第二初始私钥、第二初始公钥和第二初始地址完成链上好友确认和种子密钥的生成;所述第一客户端根据所述第一初始私钥、所述第二初始公钥、所述种子密钥和通信时间戳确定第一派生私钥、第二派生公钥和第二派生地址;所述第二客户端根据所述第二初始私钥、所述第一初始公钥、所述种子密钥和所述通信时间戳确定第二派生私钥、第一派生公钥和第一派生地址;所述第一客户端和所述第二客户端根据所述第一派生私钥、所述第一派生公钥、所述第一派生地址、所述第二派生私钥、所述第二派生公钥和所述第二派生地址完成所述第一客户端和所述第二客户端之间消息的匿名发送。本发明通过上述方法实现无需密钥协商分发的一次一密一地址的匿名通信方案。
进一步,根据本发明提供的基于密钥派生算法的链上匿名通信方法,其中,所述认证中心生成所述第一客户端对应的第一初始私钥和第一初始公钥,具体包括:
初始化第一客户端生成第一基础信息;
所述第一客户端将所述第一基础信息和第一认证请求发送给第一引导节点,以使所述第一引导节点将所述第一基础信息和第一所述认证请求转发给认证中心;
所述认证中心根据拜占庭容错算法确定相应的第一主节点,以使所述第一主节点根据所述认证请求对所述第一基础信息进行验证通过后,所述认证中心向所述第一客户端生成第一初始私钥、第一初始公钥。
具体地,参考图2所示,客户端节点加密并发送基础信息至引导节点,引导节点向认证中心转发CA证书申请请求,分布式CA基于实用拜占庭容错(Practical ByzantineFault Tolerance,PBFT)算法选取主节点及从节点,主节点验证基础信息,生成证书并广播,从节点验证证书并记录,客户端获得入网证书,以初始公钥、私钥、地址三元组作为身份标识。
即客户端在加入网络时,向分布式CA发送身份证书申请请求,分布式CA基于PBFT算法选取主节点,由主节点验证身份信息并生成Ecert证书,CA使用随机数产生器生成一个256bit的随机数k∈[1,n]作为其私钥,并基于椭圆曲线加密(Elliptic CurveCryptography,ECC)循环群映射得到新的点K作为公钥,并为其生成包含身份信息及公钥的证书;然后向从节点广播客户端验证成功消息,并将客户端证书信息记录上链,从节点同样对客户端身份进行验证,成功则将证书信息记录上链。最后客户端对公钥K进行协定的哈希运算即现有的地址算法得到地址address,初始私钥、公钥和地址一经生成便不可更改,其中公钥和地址可作为公开的身份标识。
进一步,根据本发明提供的基于密钥派生算法的链上匿名通信方法,其中,所述认证中心生成所述第二客户端对应的第二初始私钥、第二初始公钥和第二初始地址,具体包括:初始化第二客户端生成第二基础信息;
所述第二客户端将所述第二基础信息和第二认证请求发送给第二引导节点,以使所述第二引导节点将所述第二基础信息和第二所述认证请求转发给认证中心;
所述认证中心根据拜占庭容错算法确定相应的第二主节点,以使所述第二主节点根据所述认证请求对所述第二基础信息进行验证通过后,所述认证中心向所述第二客户端生成第二初始私钥和第二初始公钥。
具体地,同上述实施例。
进一步,根据本发明提供的基于密钥派生算法的链上匿名通信方法,其中,所述第一客户端和所述第二客户端根据所述第一初始私钥、第一初始公钥、第一初始地址、第二初始私钥、第二初始公钥和第二初始地址完成好友确认和种子密钥的生成,具体包括:
所述第一客户端确定申请消息;根据所述第二初始公钥对所述申请消息和所述第一初始公钥进行加密得到第一加密信息;根据所述第一初始私钥对所述第一加密信息的摘要进行数字签名,得到第一数字签名;将所述第一加密信息、所述第一数字签名和预先获知的所述第二初始地址通过服务链广播给所述第二客户端;
所述第二客户端根据所述第二初始地址接收所述第一加密信息、所述第一数字签名;根据所述第二初始私钥对所述第一加密信息进行解密得到所述请求信息和所述第一初始公钥;根据所述初始公钥对所述第一数字签名进行解密认证,在确定所述第一客户端的身份之后,对所述申请信息进行回答,生成答复信息;若所述答复信息为同意,则选取第一种子密钥,并根据所述第一初始公钥对所述同意的答复信息、所述第一种子密钥和所述第二初始公钥进行加密得到第二加密信息;根据所述第二初始私钥对所述第二加密信息的摘要进行数字签名得到第二数字签名;将所述第二加密信息、所述第二数字签名和预先获知的所述第一初始地址通过所述服务链广播给所述第一客户端;
所述第一客户端根据所述第一初始地址接收所述第二加密信息和所述第二数字签名;根据所述第一初始私钥对所述第二加密信息进行解密得到所述答复信息、所述第一种子密钥和所述第二初始公钥;根据所述第二初始公钥对所述第二数字签名进行解密认证,在确定所述第二客户端的身份和所述答复信息的内容为同意之后,选取第二种子密钥;将所述第一种子密钥和所述第二种子密钥合并为完整的种子密钥,并将所述种子密钥记录到与所述第二客户端对应的信息中;根据所述第二初始公钥对所述第二种子密钥和所述第一初始公钥进行加密得到第三加密信息;根据所述第一初始私钥对所述第三加密信息的摘要进行数值签名得到第三数字签名;将所述第三数字签名、所述第三加密信息和所述第二初始地址通过所述服务链广播给所述第二客户端;
所述第二客户端根据所述第二初始地址接收所述第三加密信息和所述第三数字签名;根据所述第二初始私钥对所述第三加密信息进行解密得到第二种子密钥和所述第一初始公钥;根据所述第一初始公钥对所述第三数字签名进行解密认证,在确定所述第一客户端的身份之后,将所述第一种子密钥和所述第二种子密钥合并为所述种子密钥,并将所述种子密钥,将所述种子密钥记录到与所述第一客户端对应的信息中,并发送确认信息至所述第一客户端。
具体地,两个客户端A和B,两者的账户标识(id)、初始私钥、初始公钥和初始地址分别为A、kA、KA、addrA与B、kB、KB、addrB,以A为申请方,B为接收方对三次握手过程描述如下:
申请方A线下获取到被申请方B的初始身份、第二初始公钥和第二初始地址信息,用B的第二初始公钥对包含申请消息、第一身份idA和第一初始公钥KA的构成的消息msg1进行加密,用私钥kA对消息的摘要数字签名得到sig1。将上述内容使用短期交易Tcert证书上的匿名身份进行签名,连同addrB上传至服务链,记为“握手1”。服务链验证基于短期匿名身份的签名,通过后进行消息广播;
B接收到A发送的接收方为addrB的申请消息“握手1”,解密并验证基于入网身份KA的签名的正确性,然后选择是否同意申请。如果同意,选取第一种子密钥xB连同第二身份idB、和第一初始公钥KA一起作为消息msg2使用A的第一初始公钥加密,并对摘要使用第二初始私钥kB签名,连同addrA上传至服务链,记为“握手2”。服务链验证基于短期匿名身份的签名,通过后进行消息广播;
A收到B发送的地址为addrA的回复消息“握手2”,同上验证签名是否正确,然后用其第一初始私钥解密得到xB,并选取第二种子密钥xA,然后用B的第二初始公钥加密,同上发送消息“握手3”至服务链。同时,将B添加到好友列表,将xA、xB合并成完整的种子密钥x,记录到好友B的信息里;
B收到A发送的地址为addrB的回复消息“握手3”,同上验证签名是否正确,通过验证,则解密得到xA,并将xA、xB合并成完整的种子密钥x,记录到好友A的信息里;
这样双方的协商种子密钥过程完成,另外接收申请方B在完成最后一次握手后会自动用正式通信的方式向A发送一条确认消息,告知A加好友完成可以开始通信,而A也会一直监听这条消息,收到后双方就都可以正式进行派生密钥通信了。
进一步,根据本发明提供的基于密钥派生算法的链上匿名通信方法,其中,若所述答复信息为不同意,则根据所述第一初始公钥对所述不同意的答复信息、所述第二初始公钥进行加密得到第四加密信息;根据所述第二初始私钥对所述第四加密信息的摘要进行数字签名,得到第四数值签名;将所述第四加密信息、所述第四数字签名和预先获知的所述第一初始地址通过所述服务链广播给所述第一客户端;
所述第一客户端根据所述第一初始地址接收所述第四加密信息和所述第四数字签名;根据所述第一初始私钥对所述第四加密信息进行解密得到所述答复信息和所述第二初始公钥;根据所述初始公钥对所述第四数字签名进行解密认证,在确定所述第二客户端的身份且所述答复信息为不同意之后,停止操作。
具体地,根据上述实施例记载,若答复消息内容为不同意,则第一客户端在接收到该答复消息,并在确认发送者身份之后,即确定所述答复消息来自与该发送者即自己发送请求的对象之后,则停止操作,即终止建立好友操作。
进一步,根据本发明提供的基于密钥派生算法的链上匿名通信方法,其中,所述第一客户端根据所述第一初始私钥、所述第二初始公钥、所述种子密钥和通信时间戳确定第一派生私钥、第二派生公钥和第二派生地址,具体包括:
将所述第一客户端与所述第二客户端通信时对应的最新的区块上链的时间作为通信时间戳;
根据所述通信时间戳对所述种子密钥进行第一哈希处理,得到对应的哈希结果;
根据所述哈希结果和所述第一初始私钥确定第一派生私钥;
根据所述哈希结果和所述第二初始公钥确定第二派生公钥;
根据所述第二派生公钥进行第二哈希运算得到对应的第二派生地址。
具体地,ECC密码学公钥K由私钥k对基点G做循环群内的点倍积运算单向映射得出,给定一椭圆曲线Ep(a,b)和其上一基点G,阶数为n,提供私钥k∈(0,n-1),有
K=kG (1)
在此基础上,以公钥K为Ep(a,b)的基点,选取另一个随机数x∈(0,n-1),也可以单向映射得到新的公钥K′,根据循环群性质有
K′=xK=x*kG=(kx mod n)G (2)
因此,好友A和B可以共同保密一个随机数x,各自在不知道对方初始私钥k的前提下就可以派生出对方的新公钥K′,且对第三方保密;用于签名和解密的新私钥k′=kx modn对除自身外的客户端保密。此时,客户端以临时派生公钥向认证中心请求匿名证书Tcert即可。
客户端A获取好友客户端B的第二初始公钥KB、共享的种子密钥x、以及最新的通信区块时间戳ti,先派生出该时间戳下自己的第一派生私钥kAi=kA*Hash1(x||Hash2(x,ti))mod n,然后派生出好友B的第二派生公钥KBi=Hash1(x||Hash2(x,ti))KB和第二派生地址addressBi。
进一步,根据本发明提供的基于密钥派生算法的链上匿名通信方法,其中,所述第二客户端根据所述第二初始私钥、所述第一初始公钥、所述种子密钥和所述通信时间戳确定第二派生私钥、第一派生公钥和第一派生地址,具体包括:
根据所述哈希结果和所述第二初始私钥确定第二派生私钥;
根据所述哈希结果和所述第一初始公钥确定第一派生公钥;
根据所述第一派生公钥进行所述第二哈希运算得到对应的第一派生地址。
具体地,参见上述实施例。
进一步,根据本发明提供的基于密钥派生算法的链上匿名通信方法,其中,所述第一客户端和所述第二客户端根据所述第一派生私钥、所述第一派生公钥、所述第二派生私钥、所述第二派生公钥和所述第二派生地址完成所述第一客户端向所述第二客户端的消息的匿名发送,具体包括:
当所述第一客户端向所述第二客户端发送消息时:
确定所述第一客户端与所述第二客户端之间通信的消息类型;
若所述消息类型为字符串类型的第一短消息,则所述第一客户端根据所述第二派生公钥对所述短消息进行加密得到第一加密数据;根据所述第一派生私钥对所述第一加密数据的摘要进行数字签名得到第一发送数字签名;将所述第一发送数字签名、所述第一加密数据和所述第二派生地址通过所述服务链发送给所述第二客户端;
所述第二客户端根据所述第二派生地址获取所述第一发送数字签名和所述第一加密数据;根据所述第二初始密钥对所述第一加密数据进行解密得到所述第一短消息;根据所述第一派生公钥对所述第一发送数字签名进行解密认证,认证通过后,确认接收所述第一短消息;
若所述消息类型为第一长文件消息,则获取所述种子密钥的对称密钥,并根据所述对称密钥对所述第一长文件消息进行加密后上传星际文件系统并获取第一索引;
所述第一客户端根据所述第二派生公钥对所述第一索引进行加密得到第二加密数据;根据所述第一派生私钥对所述第二加密数据的摘要进行数字签名得到第二发送数字签名;将所述第二发送数字签名、所述第二加密数据和所述第二派生地址通过所述服务链发送给所述第二客户端;
所述第二客户端根据所述第二派生地址获取所述第二发送数字签名和所述第二加密数据;根据所述第二初始密钥对所述第二加密数据进行解密得到所述第一索引;根据所述第一派生公钥对所述第二发送数字签名进行解密认证,认证通过后,确认接收所述索引,并根据所述索引获取所述第一长文件消息。
具体地,客户端A获取好友B的初始公钥KB、共享的种子密钥x、以及最新的通信区块时间戳ti,先派生出该时间戳下自己的第一派生私钥kAi=kA*Hash1(x||Hash2(x,ti))modn,然后派生出好友B的第二派生公钥KBi=Hash1(x||Hash2(x,ti))KB和第二派生地址addressBi。
区块链通信发送的消息类型主要有两类,一类为字符串类型的短消息,一类为长文件消息。由于前者所占空间较小,传输更方便,使用加密更安全、但加密速度相对较慢的椭圆曲线派生密钥算法得到的公钥KBi来加密消息;而后者占空间较大,难以进行区块链上的传输,而且加密也相对更困难,因此使用协商的种子密钥衍生的对称密钥x′i来加密文件,并将文件上传到星际文件系统(IPFS)中得到占用字节少的索引token,再用公钥密码算法使用KBi加密token上传至服务链。
以短消息为例,A对明文使用KBi加密,连同收取方B第二派生地址addressBi,打包成消息msg,使用kAi对消息摘要生成签名并上传至服务链,完成消息的匿名发送;
收取消息:服务链完成对发送方临时交易证书的验证,客户端B收取由服务链广播的消息,筛选出与自己派生地址对应的来自A的消息msg,下载密文和消息签名,根据字典缓存获取对应的自身第二派生私钥kBi和好友A的第一派生公钥KAi,结合公钥密码体制下链上消息传输的原理,解密并验证后完成消息的匿名收取;
记录上链:服务链在完成广播后,会存储密文的相关记录,在消息流量达到一定阈值或者一个通信时间戳后,运行共识机制将密文哈希、发送时间、收取方会话地址(派生匿名地址)同步到区块链,用于防篡改和回溯等。
进一步,根据本发明提供的基于密钥派生算法的链上匿名通信方法,其中,所述第一客户端和所述第二客户端根据所述第一派生私钥、所述第一派生公钥、所述第二派生私钥、所述第二派生公钥和所述第一派生地址完成所述第二客户端向所述第一客户端的消息的匿名发送,具体包括:
当所述第二客户端向所述第一客户端发送消息时:
确定所述第二客户端与所述第一客户端之间通信的消息类型;
若所述消息类型为字符串类型的第二短消息,则所述第二客户端根据所述第一派生公钥对所述短消息进行加密得到第三加密数据;根据所述第二派生私钥对所述第三加密数据的摘要进行数字签名得到第三发送数字签名;将所述第三发送数字签名、所述第三加密数据和所述第一派生地址通过所述服务链发送给所述第一客户端;
所述第一客户端根据所述第一派生地址获取所述第三发送数字签名和所述第三加密数据;根据所述第一初始密钥对所述第三加密数据进行解密得到所述第二短消息;根据所述第二派生公钥对所述第三发送数字签名进行解密认证,认证通过后,确认接收所述第二短消息;
若所述消息类型为第二长文件消息,则获取所述种子密钥的所述对称密钥,并根据所述对称密钥对所述第二长文件消息进行加密后上传所述星际文件系统并获取第二索引;
所述第二客户端根据所述第一派生公钥对所述第二索引进行加密得到第四加密数据;根据所述第二派生私钥对所述第四加密数据的摘要进行数字签名得到第四发送数字签名;将所述第四发送数字签名、所述第四加密数据和所述第一派生地址通过所述服务链发送给所述第一客户端;
所述第一客户端根据所述第一派生地址获取所述第四发送数字签名和所述第四加密数据;根据所述第一初始密钥对所述第四加密数据进行解密得到所述索引;根据所述第二派生公钥对所述第四发送数字签名进行解密认证,认证通过后,确认接收所述第二索引,并根据所述第二索引获取所述第二长文件消息。
具体地,参考上述实施例。
结合图3所述,本发明提供一种基于密钥派生算法的链上匿名通信系统,
应用于区块链网络中任意两个拥有初始密钥的节点,基于密钥衍生算法,将消息加密上链,以去中心化的区块链作为中继,实现节点到区块链再到节点的消息安全传输的过程,所述系统包括:第一客户端、第二客户端和认证中心;
所述认证中心用于在第一客户端和第二客户端向认证中心进行身份认证通过后,认证中心主节点生成所述第一客户端对应的包含第一初始私钥和第一初始公钥的证书,以及生成所述第二客户端对应的包含第二初始私钥和第二初始公钥;
所述第一客户端根据第一初始公钥确定第一初始地址,第二客户端根据第二初始公钥确定第二初始地址;所述第一客户端和所述第二客户端共同用于根据所述第一初始私钥、第一初始公钥、第一初始地址、第二初始私钥、第二初始公钥和第二初始地址完成好友确认和种子密钥的生成;
所述第一客户端还用于根据所述第一初始私钥、所述第二初始公钥、所述种子密钥和通信时间戳确定第一派生私钥、第二派生公钥和第二派生地址;
所述第二客户端还用于根据所述第二初始私钥、所述第一初始公钥、所述种子密钥和所述通信时间戳确定第二派生私钥、第一派生公钥和第一派生地址;
所述第一客户端和所述第二客户端还共同用于根据所述第一派生私钥、所述第一派生公钥、所述第一派生地址、所述第二派生私钥、所述第二派生公钥和所述第二派生地址完成所述第一客户端和所述第二客户端之间消息的匿名发送。
由于本发明实施例提供的装置,可以用于执行上述实施例所述的方法,其工作原理和有益效果类似,故此处不再详述,具体内容可参见上述实施例的介绍。
本发明提供的一种基于密钥派生算法的链上匿名通信系统,应用于区块链网络中任意两个拥有初始密钥的节点,基于密钥衍生算法,将消息加密上链,以去中心化的区块链作为中继,实现节点到区块链再到节点的消息安全传输的过程,通过在第一客户端和第二客户端向认证中心进行身份认证通过后,所述认证中心生成所述第一客户端对应的第一初始私钥、第一初始公钥,以及生成所述第二客户端对应的第二初始私钥、第二初始公钥;所述第一客户端根据第一初始公钥确定第一初始地址,第二客户端根据第二初始公钥确定第二初始地址;所述第一客户端和所述第二客户端根据所述第一初始私钥、第一初始公钥、第一初始地址、第二初始私钥、第二初始公钥和第二初始地址完成链上好友确认和种子密钥的生成;所述第一客户端根据所述第一初始私钥、所述第二初始公钥、所述种子密钥和通信时间戳确定第一派生私钥、第二派生公钥和第二派生地址;所述第二客户端根据所述第二初始私钥、所述第一初始公钥、所述种子密钥和所述通信时间戳确定第二派生私钥、第一派生公钥和第一派生地址;所述第一客户端和所述第二客户端根据所述第一派生私钥、所述第一派生公钥、所述第一派生地址、所述第二派生私钥、所述第二派生公钥和所述第二派生地址完成所述第一客户端和所述第二客户端之间消息的匿名发送。本发明通过上述方法实现无需密钥协商分发的一次一密一地址的匿名通信方案。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种基于密钥派生算法的链上匿名通信方法,其特征在于,应用于区块链网络中任意两个拥有初始密钥的节点,基于密钥衍生算法,将消息加密上链,以去中心化的区块链作为中继,实现节点到区块链再到节点的消息安全传输的过程,所述方法包括:
在第一客户端和第二客户端向认证中心进行身份认证通过后,所述认证中心生成所述第一客户端对应的第一初始私钥、第一初始公钥,以及生成所述第二客户端对应的第二初始私钥、第二初始公钥;
所述第一客户端根据第一初始公钥确定第一初始地址,第二客户端根据第二初始公钥确定第二初始地址;所述第一客户端和所述第二客户端根据所述第一初始私钥、第一初始公钥、第一初始地址、第二初始私钥、第二初始公钥和第二初始地址完成链上好友确认和种子密钥的生成;
所述第一客户端根据所述第一初始私钥、所述第二初始公钥、所述种子密钥和通信时间戳确定第一派生私钥、第二派生公钥和第二派生地址;
所述第二客户端根据所述第二初始私钥、所述第一初始公钥、所述种子密钥和所述通信时间戳确定第二派生私钥、第一派生公钥和第一派生地址;
所述第一客户端和所述第二客户端根据所述第一派生私钥、所述第一派生公钥、所述第一派生地址、所述第二派生私钥、所述第二派生公钥和所述第二派生地址完成所述第一客户端和所述第二客户端之间消息的匿名发送。
2.根据权利要求1所述的基于密钥派生算法的链上匿名通信方法,其特征在于,所述认证中心生成所述第一客户端对应的第一初始私钥和第一初始公钥,具体包括:
初始化第一客户端生成第一基础信息;
所述第一客户端将所述第一基础信息和第一认证请求发送给引导节点,以使所述引导节点将所述第一基础信息和第一所述认证请求转发给认证中心;
所述认证中心根据拜占庭容错算法确定相应的第一主节点及从节点,以使所述第一主节点根据所述认证请求对所述第一基础信息进行验证,通过后,所述主节点为所述第一客户端生成包含第一初始私钥、第一初始公钥的证书,并广播,从节点验证证书并记录。
3.根据权利要求1所述的基于密钥派生算法的链上匿名通信方法,其特征在于,所述认证中心生成所述第二客户端对应的第二初始私钥和第二初始公钥,具体包括:初始化第二客户端生成第二基础信息;
所述第二客户端将所述第二基础信息和第二认证请求发送给引导节点,以使所述引导节点将所述第二基础信息和第二所述认证请求转发给认证中心;
所述认证中心根据拜占庭容错算法确定相应的第二主节点及从节点,以使所述第二主节点根据所述认证请求对所述第二基础信息进行验证通过后,所述主节点为所述第二客户端生成包含第二初始私钥、第二初始公钥的证书,并广播,从节点验证证书并记录。
4.根据权利要求1所述的基于密钥派生算法的链上匿名通信方法,其特征在于,所述第一客户端和所述第二客户端根据所述第一初始私钥、第一初始公钥、第一初始地址、第二初始私钥、第二初始公钥和第二初始地址完成链上好友确认和种子密钥的生成,具体包括:
所述第一客户端预先获知第二初始公钥和第二初始地址,确定申请消息;根据所述第二初始公钥对所述申请消息和所述第一初始公钥进行加密得到第一加密信息;根据所述第一初始私钥对所述第一加密信息的摘要进行数字签名,得到第一数字签名;将所述第一加密信息、所述第一数字签名和所述第二初始地址通过服务链广播给所述第二客户端;
所述第二客户端根据所述第二初始地址接收所述第一加密信息、所述第一数字签名;根据所述第二初始私钥对所述第一加密信息进行解密得到请求信息和所述第一初始公钥;根据所述初始公钥对所述第一数字签名进行验证,在确定所述第一客户端的身份之后,对申请信息进行回答,生成答复信息;若所述答复信息为同意,则选取第一种子密钥,并根据所述第一初始公钥对所述同意的答复信息、所述第一种子密钥和所述第二初始公钥进行加密得到第二加密信息;根据所述第二初始私钥对所述第二加密信息的摘要进行数字签名得到第二数字签名;将所述第二加密信息、所述第二数字签名和预先获知的所述第一初始地址通过所述服务链广播给所述第一客户端;
所述第一客户端根据所述第一初始地址接收所述第二加密信息和所述第二数字签名;根据所述第一初始私钥对所述第二加密信息进行解密得到所述答复信息、所述第一种子密钥和所述第二初始公钥;根据所述第二初始公钥对所述第二数字签名进行验证,在确定所述第二客户端的身份和所述答复信息的内容为同意之后,选取第二种子密钥;将所述第一种子密钥和所述第二种子密钥合并为完整的种子密钥,并将所述种子密钥记录到与所述第二客户端对应的信息中;根据所述第二初始公钥对所述第二种子密钥和所述第一初始公钥进行加密得到第三加密信息;根据所述第一初始私钥对所述第三加密信息的摘要进行数字签名得到第三数字签名;将所述第三数字签名、所述第三加密信息和所述第二初始地址通过所述服务链广播给所述第二客户端;
所述第二客户端根据所述第二初始地址接收所述第三加密信息和所述第三数字签名;根据所述第二初始私钥对所述第三加密信息进行解密得到第二种子密钥和所述第一初始公钥;根据所述第一初始公钥对所述第三数字签名进行验证,在确定所述第一客户端的身份之后,将所述第一种子密钥和所述第二种子密钥合并为所述种子密钥,并将所述种子密钥,记录到与所述第一客户端对应的信息中,并发送确认信息至所述第一客户端,完成好友确认和种子密钥协商。
5.根据权利要求4所述的基于密钥派生算法的链上匿名通信方法,其特征在于,若所述答复信息为不同意,则根据所述第一初始公钥对所述不同意的答复信息、所述第二初始公钥进行加密得到第四加密信息;根据所述第二初始私钥对所述第四加密信息的摘要进行数字签名,得到第四数字签名;将所述第四加密信息、所述第四数字签名和预先获知的所述第一初始地址通过所述服务链广播给所述第一客户端;
所述第一客户端根据所述第一初始地址接收所述第四加密信息和所述第四数字签名;根据所述第一初始私钥对所述第四加密信息进行解密得到所述答复信息和所述第二初始公钥;根据所述初始公钥对所述第四数字签名进行解密认证,在确定所述第二客户端的身份且所述答复信息为不同意之后,停止操作。
6.根据权利要求5所述的基于密钥派生算法的链上匿名通信方法,其特征在于,所述第一客户端根据所述第一初始私钥、所述第二初始公钥、所述种子密钥和通信时间戳确定第一派生私钥、第二派生公钥和第二派生地址,具体包括:
将所述第一客户端与所述第二客户端通信时对应的最新的区块上链的时间作为通信时间戳;
根据所述通信时间戳对所述种子密钥进行第一哈希处理,得到对应的哈希结果;
根据所述哈希结果和所述第一初始私钥确定第一派生私钥;
根据所述哈希结果和所述第二初始公钥确定第二派生公钥;
根据所述第二派生公钥进行第二哈希运算得到对应的第二派生地址。
7.根据权利要求6所述的基于密钥派生算法的链上匿名通信方法,其特征在于,所述第二客户端根据所述第二初始私钥、所述第一初始公钥、所述种子密钥和所述通信时间戳确定第二派生私钥、第一派生公钥和第一派生地址,具体包括:
根据所述哈希结果和所述第二初始私钥确定第二派生私钥;
根据所述哈希结果和所述第一初始公钥确定第一派生公钥;
根据所述第一派生公钥进行所述第二哈希运算得到对应的第一派生地址。
8.根据权利要求7所述的基于密钥派生算法的链上匿名通信方法,其特征在于,所述第一客户端和所述第二客户端根据所述第一派生私钥、所述第一派生公钥、所述第二派生私钥、所述第二派生公钥和所述第二派生地址完成所述第一客户端向所述第二客户端的消息的匿名发送,具体包括:
当所述第一客户端向所述第二客户端发送消息时:
确定所述第一客户端与所述第二客户端之间通信的消息类型;
若所述消息类型为字符串类型的第一短消息,则所述第一客户端根据所述第二派生公钥对所述短消息进行加密得到第一加密数据;根据所述第一派生私钥对所述第一加密数据的摘要进行数字签名得到第一发送数字签名;将所述第一发送数字签名、所述第一加密数据和所述第二派生地址通过所述服务链发送给所述第二客户端;
所述第二客户端根据所述第二派生地址获取所述第一发送数字签名和所述第一加密数据;根据第二派生密钥对所述第一加密数据进行解密得到所述第一短消息;根据所述第一派生公钥对所述第一发送数字签名进行验证,验证通过后,确认接收所述第一短消息;
若所述消息类型为第一长文件消息,则获取所述种子密钥的对称密钥,并根据所述对称密钥对所述第一长文件消息进行加密后上传星际文件系统并获取第一索引;
所述第一客户端根据所述第二派生公钥对所述第一索引进行加密得到第二加密数据;根据所述第一派生私钥对所述第二加密数据的摘要进行数字签名得到第二发送数字签名;将所述第二发送数字签名、所述第二加密数据和所述第二派生地址通过所述服务链发送给所述第二客户端;
所述第二客户端根据所述第二派生地址获取所述第二发送数字签名和所述第二加密数据;根据所述第二派生密钥对所述第二加密数据进行解密得到所述第一索引;根据所述第一派生公钥对所述第二发送数字签名进行验证,验证通过后,确认接收所述索引,并根据所述索引获取所述第一长文件消息。
9.根据权利要求7所述的基于密钥派生算法的链上匿名通信方法,其特征在于,所述第一客户端和所述第二客户端根据所述第一派生私钥、所述第一派生公钥、所述第二派生私钥、所述第二派生公钥和所述第一派生地址完成所述第二客户端向所述第一客户端的消息的匿名发送,具体包括:
当所述第二客户端向所述第一客户端发送消息时:
确定所述第二客户端与所述第一客户端之间通信的消息类型;
若所述消息类型为字符串类型的第二短消息,则所述第二客户端根据所述第一派生公钥对所述短消息进行加密得到第三加密数据;根据所述第二派生私钥对所述第三加密数据的摘要进行数字签名得到第三发送数字签名;将所述第三发送数字签名、所述第三加密数据和所述第一派生地址通过所述服务链发送给所述第一客户端;
所述第一客户端根据所述第一派生地址获取所述第三发送数字签名和所述第三加密数据;根据第一派生密钥对所述第三加密数据进行解密得到所述第二短消息;根据所述第二派生公钥对所述第三发送数字签名进行验证,验证通过后,确认接收所述第二短消息;
若所述消息类型为第二长文件消息,则获取所述种子密钥的对称密钥,并根据所述对称密钥对所述第二长文件消息进行加密后上传星际文件系统并获取第二索引;
所述第二客户端根据所述第一派生公钥对所述第二索引进行加密得到第四加密数据;根据所述第二派生私钥对所述第四加密数据的摘要进行数字签名得到第四发送数字签名;将所述第四发送数字签名、所述第四加密数据和所述第一派生地址通过所述服务链发送给所述第一客户端;
所述第一客户端根据所述第一派生地址获取所述第四发送数字签名和所述第四加密数据;根据所述第一派生密钥对所述第四加密数据进行解密得到所述索引;根据所述第二派生公钥对所述第四发送数字签名进行验证,验证通过后,确认接收所述第二索引,并根据所述第二索引获取所述第二长文件消息。
10.一种基于密钥派生算法的链上匿名通信系统,其特征在于,应用于区块链网络中任意两个拥有初始密钥的节点,基于密钥衍生算法,将消息加密上链,以去中心化的区块链作为中继,实现节点到区块链再到节点的消息安全传输的过程,所述系统包括:第一客户端、第二客户端和认证中心;
所述认证中心用于在第一客户端和第二客户端向认证中心进行身份认证通过后,认证中心主节点生成所述第一客户端对应的包含第一初始私钥和第一初始公钥的证书,以及生成所述第二客户端对应的包含第二初始私钥和第二初始公钥的证书;
所述第一客户端根据第一初始公钥确定第一初始地址,第二客户端根据第二初始公钥确定第二初始地址;所述第一客户端和所述第二客户端共同用于根据所述第一初始私钥、第一初始公钥、第一初始地址、第二初始私钥、第二初始公钥和第二初始地址完成好友确认和种子密钥的生成;
所述第一客户端还用于根据所述第一初始私钥、所述第二初始公钥、所述种子密钥和通信时间戳确定第一派生私钥、第二派生公钥和第二派生地址;
所述第二客户端还用于根据所述第二初始私钥、所述第一初始公钥、所述种子密钥和所述通信时间戳确定第二派生私钥、第一派生公钥和第一派生地址;
所述第一客户端和所述第二客户端还共同用于根据所述第一派生私钥、所述第一派生公钥、所述第一派生地址、所述第二派生私钥、所述第二派生公钥和所述第二派生地址完成所述第一客户端和所述第二客户端之间消息的匿名发送。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111582795.8A CN114679261B (zh) | 2021-12-22 | 基于密钥派生算法的链上匿名通信方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111582795.8A CN114679261B (zh) | 2021-12-22 | 基于密钥派生算法的链上匿名通信方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114679261A CN114679261A (zh) | 2022-06-28 |
CN114679261B true CN114679261B (zh) | 2024-05-31 |
Family
ID=
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1912376A1 (en) * | 2006-10-10 | 2008-04-16 | NTT DoCoMo, Inc. | Method and apparatus for authentication |
CN106850190A (zh) * | 2017-02-14 | 2017-06-13 | 北京乐酷达网络科技有限公司 | 一种对基于区块链数字凭证的销毁方法 |
CN107248994A (zh) * | 2017-06-26 | 2017-10-13 | 联动优势科技有限公司 | 一种信息发送方法、处理方法及装置 |
US10102526B1 (en) * | 2017-03-31 | 2018-10-16 | Vijay K. Madisetti | Method and system for blockchain-based combined identity, ownership, integrity and custody management |
CN111010265A (zh) * | 2019-12-21 | 2020-04-14 | 上海中和软件有限公司 | 基于分层密钥和bls数字签名的区块链组织密钥管理方法 |
CN111859348A (zh) * | 2020-07-31 | 2020-10-30 | 上海微位网络科技有限公司 | 一种基于用户识别模块及区块链技术的身份认证方法及装置 |
CN112217807A (zh) * | 2020-09-25 | 2021-01-12 | 山西特信环宇信息技术有限公司 | 一种锥体区块链密钥生成方法、认证方法及系统 |
CN112435020A (zh) * | 2020-06-05 | 2021-03-02 | 成都链向科技有限公司 | 一种基于区块链的有监管的匿名交易系统 |
CN112769567A (zh) * | 2021-01-19 | 2021-05-07 | 北京枫玉科技有限公司 | 一种区块链hd私钥找回方法 |
CN113343201A (zh) * | 2021-06-01 | 2021-09-03 | 联想(北京)有限公司 | 注册请求处理方法、用户身份信息管理方法及设备 |
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1912376A1 (en) * | 2006-10-10 | 2008-04-16 | NTT DoCoMo, Inc. | Method and apparatus for authentication |
CN106850190A (zh) * | 2017-02-14 | 2017-06-13 | 北京乐酷达网络科技有限公司 | 一种对基于区块链数字凭证的销毁方法 |
US10102526B1 (en) * | 2017-03-31 | 2018-10-16 | Vijay K. Madisetti | Method and system for blockchain-based combined identity, ownership, integrity and custody management |
CN107248994A (zh) * | 2017-06-26 | 2017-10-13 | 联动优势科技有限公司 | 一种信息发送方法、处理方法及装置 |
CN111010265A (zh) * | 2019-12-21 | 2020-04-14 | 上海中和软件有限公司 | 基于分层密钥和bls数字签名的区块链组织密钥管理方法 |
CN112435020A (zh) * | 2020-06-05 | 2021-03-02 | 成都链向科技有限公司 | 一种基于区块链的有监管的匿名交易系统 |
CN111859348A (zh) * | 2020-07-31 | 2020-10-30 | 上海微位网络科技有限公司 | 一种基于用户识别模块及区块链技术的身份认证方法及装置 |
CN112217807A (zh) * | 2020-09-25 | 2021-01-12 | 山西特信环宇信息技术有限公司 | 一种锥体区块链密钥生成方法、认证方法及系统 |
CN112769567A (zh) * | 2021-01-19 | 2021-05-07 | 北京枫玉科技有限公司 | 一种区块链hd私钥找回方法 |
CN113343201A (zh) * | 2021-06-01 | 2021-09-03 | 联想(北京)有限公司 | 注册请求处理方法、用户身份信息管理方法及设备 |
Non-Patent Citations (4)
Title |
---|
Digital signature based key management protocol for secure data transfer in dynamic wireless sensor networks;G J Shruthi等;2016 IEEE international conference on recent trends in electronic1,information&communication technology(RTEICT);全文 * |
后量子区块链交易认证方案分析与设计;石少全等;山东建筑大学学报;全文 * |
基于公钥自证明的认证加密方案;赵泽茂, 刘凤玉;计算机工程与应用(20);全文 * |
基于聚合签名与加密交易的全匿名区块链;王子钰;刘建伟;张宗洋;喻辉;;计算机研究与发展(10);全文 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109587132B (zh) | 一种基于联盟链的数据传递方法及装置 | |
US9106410B2 (en) | Identity based authenticated key agreement protocol | |
US6215878B1 (en) | Group key distribution | |
CN104618110B (zh) | 一种VoIP安全会议会话密钥传输方法 | |
US20020154782A1 (en) | System and method for key distribution to maintain secure communication | |
CN112887338A (zh) | 一种基于ibc标识密码的身份认证方法和系统 | |
CN101626294A (zh) | 基于身份的认证方法、保密通信方法、设备和系统 | |
CN110601838A (zh) | 一种基于量子密钥的身份认证方法、装置及系统 | |
WO2007011897A2 (en) | Cryptographic authentication, and/or establishment of shared cryptographic keys, using a signing key encrypted with a non-one-time-pad encryption, including (but not limited to) techniques with improved security against malleability attacks | |
JP2002290397A (ja) | セキュア通信方法 | |
WO2016049053A1 (en) | Facilitating encrypted communications between two parties | |
CN110999202A (zh) | 用于对数据进行高度安全、高速加密和传输的计算机实现的系统和方法 | |
CN113630248A (zh) | 一种会话密钥协商方法 | |
CN113676448B (zh) | 一种基于对称秘钥的离线设备双向认证方法和系统 | |
CN113973007B (zh) | 基于广播加密和洋葱路由的时控性加密匿名查询方法和系统 | |
CN114499857A (zh) | 一种实现大数据量子加解密中数据正确性与一致性的方法 | |
CN114679261B (zh) | 基于密钥派生算法的链上匿名通信方法和系统 | |
JP2001344214A (ja) | 端末の認証方法と暗号通信システム | |
CN113918971A (zh) | 基于区块链的消息传输方法、装置、设备及可读存储介质 | |
CN114928503A (zh) | 一种安全通道的实现方法及数据传输方法 | |
CN108768958B (zh) | 基于第三方不泄露被验信息的数据完整性和来源的验证方法 | |
CN112019553A (zh) | 一种基于ibe/ibbe数据共享方法 | |
Elboukhari et al. | Integration of quantum key distribution in the TLS protocol | |
JPH11187008A (ja) | 暗号鍵の配送方法 | |
CN114679261A (zh) | 基于密钥派生算法的链上匿名通信方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |