System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于加密通信,尤其涉及一种基于区块链的隐蔽通信方法。
技术介绍
1、基于区块链的隐蔽通信存在一些明显的技术限制。首先,消息发送方必须通过其控制的地址参与区块链交易的生成,承担了较高的身份暴露的风险。然后,区块链数据永久链上保存,一旦某些基于区块链的隐蔽通信信息被内部攻击者泄露,攻击者就会利用这些不可抹去的痕迹去破获更多的隐蔽通信。最后,区块链这种广播性质的隐蔽通信信道也给通信双方的密钥协商与同步带来挑战。公开研究成果所提出的基于区块链的隐蔽通信还没有突破上述技术瓶颈,因而无法实现隐蔽性高、性能优良的隐蔽信道。
2、现有的解决方案中主要集中在消息嵌入技术上。一种常见的方法是利用区块链中的可修改字段来携带隐蔽消息。尽管这类方法很直接,但缺乏隐蔽性。为了增强基于区块链的隐蔽通信的隐蔽性,进一步的研究引入了隐式嵌入,例如利用区块链协议中的随机数,或者地址的交互关系来携带隐蔽消息。与显式嵌入方法相比,隐式嵌入技术具有更好的隐蔽性。然而,这些方法并未解决区块链隐蔽通信所带来的特殊性问题。
3、第一个问题是,消息发送方因为必须显式地参与区块链交易的生成,因而承担了较高的身份暴露的风险。区块链领域的去匿名化研究已经获得了相当多的成果,可以有效追踪某一被怀疑的用户的所有上链行为。如果发送方使用的地址被检测到,隐蔽通道就会暴露。因此,为了保护消息发送方,必须引入发送方地址随机化技术,同时又不影响通信双方下一次通信信道的构建。现有方案都没有考虑这种非对称性带来的安全问题。
4、第二个问题是,区块链提供的是
5、第三个问题是,所有隐蔽通信数据都会随着区块链永久保存,一旦某些隐蔽通信用户叛变或者被攻破,相关的承载了隐蔽通信的交易样本就会被攻击者所掌握。攻击者就可以利用链上的不可抹去的痕迹去破获更多的隐蔽通信。现有的方案都不考虑部分隐蔽通信被暴露的情况下,如何确保其它隐蔽通信的安全。但是在现实中,隐蔽通信不是一次性的,而是长期使用;而且是集体行为,必须考虑相关可能性。
技术实现思路
1、本专利技术的目的在于,为克服现有技术缺陷,提供了一种基于区块链的隐蔽通信方法,通信双方只需要知道对方的公钥,就可以在没有直接联系的情况下生成相同的密钥信息,并帮助对方找到隐蔽通信载体;允许发送方为每个承载了隐蔽通信的交易使用不同的随机发送地址,而接收方可以根据需要动态生成和同步这些地址;设计了一种交易特征伪装机制,并利用数字签名中的随机数作为消息载体。
2、本专利技术目的通过下述技术方案来实现:
3、一种基于区块链的隐蔽通信方法,所述方法用于发送方和接收方通信,所述发送方拥有带有第一签名算法的第一私钥,所述第一私钥对应有第一公钥以及对应有比特币地址,所述接收方拥有第二私钥,所述第二私钥对应有第二公钥,发送方与接收方互相知道对方公钥且不知道对方私钥,所述方法包括:
4、发送方利用第一私钥生成第一完整交易,并利用第二签名算法后生成第二完整交易,将所述第一完整交易和所述第二完整交易广播上链;
5、接收方通过查询所述比特币地址的交易获取所述第一完整交易和所述第二完整交易,并通过第二签名算法恢复第一私钥;
6、发送方和接收方之间通过ecdh算法生成一个共享秘密,并对所述共享秘密哈希,得到第一链码;
7、发送方生成伪造交易集合,所述伪造交易集合包括伪造交易的输入数量,输出数量,输入总金额,输出总金额和交易费;
8、发送方和接收方使用所述第一私钥和所述第一链码构造hd钱包使用的扩展私钥,并通过所述扩展私钥按照所述hd钱包的方法同步生成公私钥对;
9、发送方将通信消息拆分成多个消息片段,并生成若干笔隐蔽通信交易的原始字节,所述原始字节对应的任意一个完整交易中的一个输入地址为对应的公钥的比特币地址,交易承载参数、输出总金额和交易费从所述伪造交易集合中随机选取;
10、发送方将每个消息片段嵌入对应的完整交易中,将签名附加到对应交易上,得到完整的隐蔽通信交易集合,并广播上链;
11、接收方通过查询每个隐蔽通信交易的输入地址,获取完整的隐蔽通信交易集合,并恢复每个交易的原始字节,提取出对应签名;
12、接收方从所述对应签名中恢复消息片段,所有的消息片段组成完整的消息。
13、进一步的,所述第一签名算法包括:
14、输入发送方私钥和第一交易原始字节;
15、对第一交易原始字节进行哈希,得到第一哈希结果z1;
16、随机选择k1∈{1,…,n-1},计算椭圆曲线点(x1,y1)=k1·g,g是区块链密码系统的椭圆曲线的生成元,令r1=x1modn,n是比特币椭圆曲线的阶数;
17、计算s1=k1-1·(z1+r1·skalice)modn,skalice为发送方私钥;
18、得到签名σ1=(r1,s1)。
19、进一步的,所述第二签名算法包括:
20、输入发送方私钥、k1、接收方公钥和第二交易原始字节;
21、对第二交易原始字节进行哈希,得到第二哈希结果z2;
22、随机选择t∈{0,1},计算e=(k1-wt)·g+(-ak1-b)·pkbob,pkbob为接收方公钥,w是一个固定的奇整数,a和b是两个固定的常数。
23、计算k2=hash(e),计算椭圆曲线点(x2,y2)=k2·g,令r2=x2modn,计算s2=k2-1·(z2+r2·skalice)modn;
24、得到签名σ2=(r2,s2)。
25、进一步的,所述通过第二签名算法恢复第一私钥具体包括:
26、输入接收方私钥、(r1,s1)、(r2,s2)和第二原始交易字节;
27、用r1和r2作为椭圆曲线横坐标确定相应的纵坐标,得到椭圆曲线点(x1,y1)和(x2,y2);
28、计算e1=(x1,y1)-skbob(a·(x1,y1)+b·g);
29、如果(x2,y2)=hash(e1)·g,则返回k2=hash(e1),否则计算e2=e1-w·g,如果(x2,y2)=hash(e2)·g,则返回k2=hash(e2);
30、对第二原始交易字节进行哈希,得到第二哈希结果;
31、恢复发送方的私钥skalice=r2-1·(s2k2-z2)。
32、进一步的,所述生成伪造交易集合具体包括:
33、下载比特币的真实交易数据并生成交易承载参数以及交易费集合,交易承载参数包括输入数量、输出数量和输入总金额;
34、发本文档来自技高网...
【技术保护点】
1.一种基于区块链的隐蔽通信方法,所述方法用于发送方和接收方通信,其特征在于,所述发送方拥有带有第一签名算法的第一私钥,所述第一私钥对应有第一公钥以及对应有比特币地址,所述接收方拥有第二私钥,所述第二私钥对应有第二公钥,发送方与接收方互相知道对方公钥且不知道对方私钥,所述方法包括:
2.如权利要求1所述的基于区块链的隐蔽通信方法,其特征在于,所述第一签名算法包括:
3.如权利要求2所述的基于区块链的隐蔽通信方法,其特征在于,所述第二签名算法包括:
4.如权利要求3所述的基于区块链的隐蔽通信方法,其特征在于,所述通过第二签名算法恢复第一私钥具体包括:
5.如权利要求1所述的基于区块链的隐蔽通信方法,其特征在于,所述生成伪造交易集合具体包括:
6.如权利要求5所述的基于区块链的隐蔽通信方法,其特征在于,所述交易承载参数的生成方法包括:
7.如权利要求1所述的基于区块链的隐蔽通信方法,其特征在于,所述交易费的生成方法包括:
8.如权利要求1所述的基于区块链的隐蔽通信方法,其特征在于,所述通过所述扩展私钥
9.如权利要求1所述的基于区块链的隐蔽通信方法,其特征在于,所述第二签名算法为Kleptography算法。
10.如权利要求1所述的基于区块链的隐蔽通信方法,其特征在于,在所述方法中,每个交易使用唯一地址作为发送地址,发送方可以生成额外的接收地址,每个接收地址都是唯一的。
...【技术特征摘要】
1.一种基于区块链的隐蔽通信方法,所述方法用于发送方和接收方通信,其特征在于,所述发送方拥有带有第一签名算法的第一私钥,所述第一私钥对应有第一公钥以及对应有比特币地址,所述接收方拥有第二私钥,所述第二私钥对应有第二公钥,发送方与接收方互相知道对方公钥且不知道对方私钥,所述方法包括:
2.如权利要求1所述的基于区块链的隐蔽通信方法,其特征在于,所述第一签名算法包括:
3.如权利要求2所述的基于区块链的隐蔽通信方法,其特征在于,所述第二签名算法包括:
4.如权利要求3所述的基于区块链的隐蔽通信方法,其特征在于,所述通过第二签名算法恢复第一私钥具体包括:
5.如权利要求1所述的基于区块链的隐蔽通信方法,其特征在于,所述生成...
【专利技术属性】
技术研发人员:赵越,田波,苏宏,
申请(专利权)人:中国电子科技集团公司第三十研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。