掌桥专利:专业的专利平台
掌桥专利
首页

基于区块链多签名的隐蔽通信方法及系统

文献发布时间:2023-06-19 11:45:49


基于区块链多签名的隐蔽通信方法及系统

技术领域

本发明属于网络通信技术与信息安全领域,尤其涉及一种基于区块链多签名的隐蔽通信方法及系统。

背景技术

随着政府、军事等领域的组织或个人对安全、私密地进行通信的需求不断增加,隐蔽通信技术在有上述需求的组织或个人中有着越来越重要的地位。

隐蔽通信的优势和特点在于通信双方在进行消息的隐蔽传输的同时,他们的通信行为难以被恶意监听者发现,隐蔽通信技术的直接目的就是保护发送者和接收者间的关系。隐蔽通信在实现上往往需要密码学和隐写术的实施,密码学用于确保所传消息的私密性,隐写术用于掩盖存在加密通信的事实。

在一些经典的隐蔽通信方法中,往往需要使用数据包、数据报、图像、视频、音频等内容作为载体,将加密后的隐蔽消息嵌入到这些载体中,然后使用传统的网络信道进行发送,但这些传统方法易被恶意监听者检测后使用某种手段进行篡改或者破坏,这样的隐蔽通信系统的健壮性较弱、可用性较差。

为了解决这个问题,有研究开始探索在区块链这种天然具备不可篡改性的介质中实现隐蔽通信,一系列基于区块链的隐蔽通信方法应运而生。

在现有的基于区块链的隐蔽通信方法中,存在两类共性问题亟待解决,一类是使用不可花费的输出信道会造成数字货币无法取回,另一类是使用低嵌入率信道会造成数字货币被他人取走。

(1)不可花费的输出信道

该技术由Andrey Fionov于论文《Exploring Covert Channels in BitcoinTransactions》中进行综述,同时在Roman Matzutt等人所著的论文《A QuantitativeAnalysis of the Impact of Arbitrary Blockchain Content on Bitcoin》中也对该类技术有所提及。

不可花费的输出信道是指直接把区块链交易单中的收款地址替换成秘密消息,因为无法解出收款地址对应的私钥,所以没有人能再次花费该收款地址中的数字货币,这就是该技术名称中“不可花费”的由来。

从原理上来说,使用不可花费的输出信道在进行秘密消息嵌入时只是单纯地把收款地址字段替换掉,又因为收款地址是由公钥经过哈希运算得到的,同时已知公钥反推私钥是一类椭圆曲线上的离散对数问题,在多项式时间内不可解,所以理论上没有人能获得该收款地址对应的私钥,转入这个地址的这部分数字货币将不能被任何人所使用,上述这种行为也被称作烧币或销币。

现有的不可花费的输出信道技术有着以下局限性:

1.该技术仅仅考虑了将秘密消息嵌入交易单的方法,但没有考虑构成完整隐蔽通信系统的方法,在实际中不能被直接利用它进行隐蔽通信系统的实现;

2.该技术存在烧币问题,从而导致对消息发送方、区块链数字货币和区块链网络这三者的不良影响,包括:

2.1)消息发送方的直接财产损失。相比其他的基于区块链的隐蔽通信方法而言,使用此类方法会导致消息发送方无法正常取回已经花费的数字货币。

2.2)数字货币自身的潜在经济学影响。由于该方法会将数字货币发送到一个无人可用的收款地址,这就意味着这一部分数字货币将永远退出流通,影响了本类货币的流动性,从长远来看会使得该类数字货币出现不可逆转的通货紧缩问题。

2.3)区块链的网络运行效率降低。区块链网络中的所有全节点必须永远维护这些已经无法流通的数字货币信息,增加了全节点的存储成本和查找成本,从而降低了区块链网络的运行效率。

产生上述问题的根本原因在于烧币行为本身,因此只要解决了烧币问题,就能解决使用不可花费的输出信道导致的上述问题。

(2)低嵌入率信道

该技术同样由Andrey Fionov于论文《Exploring Covert Channels in BitcoinTransactions》中进行综述,并且在Partala与Juha合著的论文《Provably Secure CovertCommunication on Blockchain》中给出了安全性的证明和一个具体的实施例。

低嵌入率信道是在收款地址中的最低有效位进行消息嵌入的,是依靠收款地址的计算过程中使用的哈希函数实现的,从理论上来说哈希函数的结果中每一个比特取0或1的概率均等,所以收款地址在计算时的最低有效位是可以通过控制私钥从而间接控制的。在计算机的计算能力较强时,可以通过不断尝试,间接控制收款地址,在其中嵌入多个有效位。

但是,低嵌入率信道在提升嵌入容量时可能会有大量的地址被使用。从理论上讲,占用大量地址的时候存在一定可能性会使用到他人已有的收款地址,此时如果转账到这些地址,就可能产生数字货币被他人取走的风险。

现有的低嵌入率信道技术有着以下局限性:

1.一旦占用了他人已有的地址,进行隐蔽通信时就可能产生数字货币被盗的风险;

2.含密标签是显式给出的,使得恶意监听者可能通过流量分析等方法发现隐蔽通信的行为。

以上两种方法除了会造成消息发送方的直接财产损失之外,还存在一个潜在问题。消息接收方在识别这些含密交易单时需要人为提前预协商标签,如果反复利用相同的地址作为标签,也许会使得恶意监听者通过流量分析等手段发现隐蔽通信的事实。

发明内容

为了解决不可花费的输出信道中存在的烧币问题以及低嵌入率信道中潜在的数字货币被盗的问题,本发明提出了一种基于区块链多签名的隐蔽通信方案,其主要技术方案如下:

一种基于区块链多签名的隐蔽通信方法及系统,其步骤包括:

1)在通信行为开始前,消息发送方与消息接收方共享消息发送方的公钥pk

2)消息发送方创建t个密钥对及包含n个多签名脚本的多签名交易单,并将秘密消息转换为公钥pk

3)依据秘密消息位置,分别在多签名交易单中s个多签名脚本的公钥字段嵌入子秘密消息,生成包含数字货币的含密交易单,并将含密交易单发送至区块链中;

4)根据含密交易单的类型,决定消息接收方从含密交易单中提取所述秘密消息,及消息发送方将数字货币转至消息发送方指定地址的顺序。

进一步地,消息发送方与消息接收方共享公钥pk

进一步地,当含密交易单为付款到多签名地址形式的交易单时,多签名门限(t,n)包括:(2,3)或(3,6)。

进一步地,通过以下步骤创建t个密钥对:

1)使用密码学安全的随机数产生器生成随机数k作为私钥sk

2)使用椭圆曲线数字签名算法的secp256k1相关参数计算公钥pk

进一步地,通过以下策略将秘密消息转换为多签名中冗余的公钥:

1)消息发送方与消息接收方协商一个公钥码表;

2)消息发送方与消息接收方获取一个完备公钥集合,所述完备公钥集合中各公钥二进制表示的固定的b个比特位置对应2

3)直接将公钥替换成秘密消息。

进一步地,嵌入子秘密消息的方法包括:查表、选择子秘密消息对应的完备公钥集合中的公钥、或直接将秘密消息替换成公钥。

进一步地,数字货币包括:比特币。

进一步地,含密交易单的类型包括:付款到多签名地址交易单和付款到脚本哈希交易单。

进一步地,当含密交易单为付款到多签名地址交易单时,消息接收方依据公钥pk

进一步地,当含密交易单为付款到脚本哈希交易单时,消息发送方利用t个密钥对中的私钥生成赎回交易单,将数字货币转至消息发送方的指定地址,然后消息接收方依据公钥pk

一种基于区块链多签名的隐蔽通信系统,包括:

消息发送方,用以在通信行为开始前,与消息接收方共享消息发送方的公钥pk

消息接收方,用以在通信行为开始前,与消息发送方共享消息发送方的公钥pk

其中,根据含密交易单的类型,决定消息接收方从含密交易单中提取所述秘密消息,及消息发送方将数字货币转至消息发送方指定地址的顺序。

与现有技术相比,本发明的有益效果如下:

本发明从实际需求和应用的角度出发,设计出了一种基于区块链多签名的隐蔽通信方案。为了解决不可花费的输出信道方法和低嵌入率方法的现有问题,本方案通过构建消息发送方可控的多签名,实现通信双方在区块链上的隐蔽通信。

1.本发明设计的一种基于区块链多签名的隐蔽通信方案相比于原有不可花费的输出信道方法,完整地给出了一套可实施的隐蔽通信方案;

2.本发明设计的一种基于区块链多签名的隐蔽通信方案使用区块链交易单中的内在属性作为消息接收方用于识别含密交易单的标签,因为没有额外引入其他标签,所以使得含密交易单与一般的非含密交易单具有不可区分性,有效降低了通信行为被恶意监听者发现的可能;

3.本发明设计的一种基于区块链多签名的隐蔽通信方案使用多签名技术,消息发送方通过持有多数密钥对,使得消息发送方拥有了交易单中所转账数字货币的实际控制权,可以在通信行为结束后随时赎回这部分数字货币,从根本上解决了烧币问题和数字货币被盗的问题。

附图说明

图1是基于区块链多签名的隐蔽通信方案的流程图。

图2是在比特币中实现多签名的公钥字段消息嵌入的示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的具体实施方式主要分为以下9个步骤,以比特币作为区块链的实现,介绍基于区块链多签名的输出隐蔽通信方法,该方案的流程图如图1所示:

步骤一和步骤二,通信双方Alice和Bob需要借助比特币区块链进行一次隐蔽通信,在通信行为开始前,通信双方通过离线的方式安全共享消息发送方Alice的公钥pk

在本发明中,在比特币中n的最大值取决于实现多签名的方式:在付款到多签名的输出脚本中,允许n≤3;在付款到脚本哈希的赎回脚本中,允许n≤15。

在本实施例中选取格式相对简单的付款到多签名这种方式以说明问题,不妨取t=2,n=3,s=1,此种多签名脚本格式如图2所示。

步骤三,消息发送方Alice创建t个密钥对,用于保证对多签名的控制权。创建1个密钥对的过程如下:

a.使用密码学安全的随机数产生器生成随机数k作为私钥sk

b.使用椭圆曲线数字签名算法的secp256k1相关参数计算公钥pk

重复上述过程t次即可产生t个密钥对。

步骤四和步骤五,消息发送方Alice嵌入秘密消息,然后发布交易单到区块链网络。消息发送方Alice可以在s个多签名脚本中的公钥位置嵌入秘密消息,在图2所示的脚本中,可以嵌入1个秘密消息。在完成秘密消息嵌入后,消息发送方Alice可以将交易单发布到区块链网络。

步骤六和步骤七,消息接收方Bob监听网络中所有来自Alice公钥pk

步骤八和步骤九,消息发送方Alice在通信完成后可以发布比特币赎回交易单:使用自己持有的t个密钥对中的私钥解锁多签名交易单中的比特币,并将这部分比特币转回给公钥pk

在实际操作中,通常可以选择的多签名门限包括但不限于(2,3)和(3,6),前者是比特币合约中第三方代管仲裁合约的多签名门限,后者是比特币中一个较为流行的钱包Bitfinex的多签名门限,伪装成这两种形式的多签名交易单可以更好地掩盖隐蔽通信行为;

由于是在公钥中嵌入,而公钥在比特币中是secp256k1这条曲线上的点,为了保证秘密消息嵌入的不可见性,秘密消息必须也是曲线上的点。这里有2种解决方法:

1.通信双方预先沟通、协商一个公钥码表,嵌入和提取消息时可以通过查表完成;

2.通信双方预先找到一个完备公钥集合,其二进制表示中的固定的b个比特位置刚好可以对应2

3.使用压缩的公钥表示,将秘密消息直接替换成公钥的横坐标,以嵌入至多255比特的内容。

上述实施例采用付款到多签名的方式的基本步骤与前文发明内容的主要技术方案相同,不过由于在比特币区块链中多签名脚本一般会以付款到脚本哈希中的赎回脚本的形式存在,这会导致实施例中步骤六、七与步骤八、九相调换,但不影响本发明使用多签名技术实施隐蔽通信方案的核心方法。

以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求所述为准。

相关技术
  • 基于区块链多签名的隐蔽通信方法及系统
  • 一种基于区块链的防篡改隐蔽通信方法、系统及平台
技术分类

06120113046197