传统的隐写术是将秘密信息隐藏在载体中进行隐蔽传输的技术.隐蔽通信是指双方通过隐写术传输数据,并对第三方隐藏传输的方式.在它们最初的定义中,隐蔽通信允许一个进程向主机中其他未经授权的进程传输信息.文献[1]首次提出囚犯问题,该问题是隐蔽通信的一个经典模型.高效的隐蔽通信不仅可以有效地隐藏通信的行为,而且具有很好的鲁棒性和隐藏容量.其在军事、政治、金融等领域应用广泛.对于传统的通信媒介,区块链具有抗篡改、抗伪造、匿名性等特点[2],因此一些研究使用区块链来解决传统隐蔽通信所面临的问题.文献[3]提出一种基于区块链的隐蔽通信方案.文献[4]提出一种利用比特币交易机制在公钥散列字段嵌入秘密信息.文献[5]提出一种纯文本信息隐藏的区块链隐秘通信方法,根据偏序关系确定嵌入秘密信息的位置.文献[6]提出一种基于哈希链的隐蔽数据嵌入方案,并根据这个方案进行了改进,增强了哈希链方案的安全性和有效性.文献[7]提出将秘密信息进行编码后存储在OP_RETURN字段中,随交易一起生成.文献[8]提出通过计算地址的哈希值,并将结果分为两组.该方法隐蔽通信信道容量小,计算量大.文献[9]提出将秘密信息隐藏在比特币测试网络的金额字段中,该方法限制了每条交易传输的内容.文献[10]提出通过暴力计算来控制地址的生成,使得地址的最后一位为所须要隐藏的秘密信息中的一位.这种方法在传输的过程中须要生成的地址量非常大,需要巨大的计算资源,成本高时间开销大.文献[11]提出将秘密信息编码成交易的输出和地址,并通过附加信息的预共享密钥来提取信息.这种方法的隐蔽性很高,但是会生成冗余地址,产生附加成本.文献[12]提出通过地址直接的交互构造地址交互矩阵,由两个地址是否直接产生交互来区分其交易是否包含秘密信息.这些研究都存在一些尚未解决的问题:a.在链上构建交易的过程中存在未达成共识交易未上链的情况,会导致信息丢失;b.须要在链上通过大量的交易来嵌入秘密信息,这种方式成本高、耗时长,且存在引起攻击者察觉的风险.基于以上问题,本研究提出一种基于区块链区块信息映射的无载体隐写隐蔽通信方法.本研究主要工作如下:a.提出一种基于区块链信息映射的无载体隐写方法,该方案无须在链上构建交易,解决了构建交易过程中出现的信息丢失问题;b.将秘密信息映射在不同的虚拟货币中,打破了在区块链中使用单一货币来做隐蔽通信的限制,提高了隐蔽通信的拓展性和嵌入容量.并且无须发起交易,节约了成本.1 方案设计1.1 区块结构比特币中使用的数据结构主要包含哈希指针和Merkle树这两个部分.哈希指针用于区块之间的连接,为了防止区块中的消息不被篡改.Merkle树用于每个区块内部交易的连接,每个区块都须要计算哈希值,并且存储在区块头部,每个区块头上有一个区块的哈希值并且与前一个区块通过哈希指针相互连接直到创世区块.区块头中包含了该区块的所有信息.区块之间的数据结构如图1所示.10.13245/j.hust.241108.F001图1区块数据结构图一个完整的区块中最重要的组成部分则是区块头信息,其中区块信息中的区块头结构信息如表1所示.10.13245/j.hust.241108.T001表1区块头结构组成字节大小/byte字段说明字节大小/byte字段说明4版本区块版本号,为验证规则4时间戳区块产生的时间32父区块哈希前一区块的哈希值4难度区块工作量证明算法的难度目标4Merkle树区块中交易的Merkle树根的哈希值4随机数验证区块的完整性和有效性1.2 基于区块链信息映射的无载体隐写方法传统隐蔽通信的方法往往是定向发送,点对点的形式,很容易被监听和攻击,并且网络延迟等一些其他因素也会影响传输的质量导致接收方无法准确地提取出所传递的秘密信息.区块链结构的特性能完美地解决这些问题.链上链下数据相对独立,一旦数据上链,上链数据的数据结构无法被更改,能很好保证载体的稳定性.使用区块链无载体映射的方法不仅能防止被攻击,而且能很好解决传统区块链隐蔽通信中实时性弱的问题.本研究使用的方法流程图如图2所示.10.13245/j.hust.241108.F002图2基于区块信息映射的无载体隐写方法流程图本方法涉及到的主要流程如下.a.提取区块信息.从虚拟货币比特币和比特币测试链客户端中下载已出块的区块信息,记为D.根据Extract(∙)函数解析提取区块信息B和Bt,其中:B为比特币;Bt为比特币测试链.B={B1,B2,…,Bn},Bt={Bt1,Bt2,…,Bti},且有B,Bt←Extract(D).(1)b.明文转密文.使用Encode对称加密的方式将明文信息转化为映射所需要的密文.秘密信息记为x,加密算法记为Se,密钥记为K,密文为S.x使用Se加密得到S,即S←Encode(x,Se,K).(2)c.二进制序列分段处理.对秘密信息S进行Split分段处理,本研究通过对比不同分段下的嵌入成功率,从中选出最优的分段长度,以L为一段的映射中,当L=10时的成功率和效率最优.本研究以L=10为一段对密文S进行分段处理,即SplitS,L=S1,S2,…,Sn-1,Sn.(3)d.秘密信息映射.从提取的区块信息区块中获取包含了映射秘密信息所需要的数据B,Bt={W,V,N,C,I,O},其中:W为区块大小;V为版本;N为随机数;C为该区块交易的总数;I为每次交易的输入地址大小;O为每次交易输出的地址数量.对以上信息的值通过秘密信息奇偶映射算法来映射秘密信息得到映射后的二进制数组集合,B和Bt的映射算法一致,只须要在输入中将B替换为Bt即可.其秘密信息映射算法如下.输入 区块信息B={B1,B2,…,Bn},秘密信息S输出 时间戳T,位置信息P步骤1 初始化处理后的区块信息列表B.步骤2 初始化空列表.步骤3 根据式(1)提取B中的结构信息得到区块信息,通过奇偶校验函数计算区块信息的奇偶校验位并添加到空列表中.步骤4 通过式(2)和式(3)对秘密信息进行处理.步骤5 使用信息映射函数对秘密信息S进行分段映射,并在列表中进行匹配得到T和P.e.秘密信息提取.发送方通过公共信道将秘密信息映射后返回的时间戳信息和位置信息传递给接收方,接收方通过区块链浏览器可以根据时间戳信息和位置信息得到对应的区块信息.对区块信息进行还原得到发送方发送的秘密信息.再使用密钥K解密即可得到发送方传递的明文信息.2 评价指标2.1 鲁棒性大多数隐蔽通信的构建方法都能被归一化消除,即通过修改区块的生成来对通信内容进行篡改[13].在区块链网络隐蔽信道环境下,攻击者只有计算出一条数据链分支中所有的区块,并获得其他节点的背书才能达到数据篡改的目的.成功篡改的概率可以通过如下公式得出,即km=1-emqpk!-1mkqk1-kqm-k,(4)式中:p为正常节点挖掘下一个块的概率;q为攻击者挖掘下一个块的概率;m为攻击者篡改该区块须要补充的块的数量;k为一个交易被确认为有效前须在其之上构建的区块数量;e为自然数对数的底;km为攻击者成功修改m个块的概率.由式(4)可知:假如正常节点接收数据并存储的概率为90%,当p=0.9时,攻击者篡改下一块的概率为0.1时,则攻击者补充下一个块的概率为0.001,以此类推,攻击者若想篡改2个区块及以上的区块时,则攻击者成功修改的概率小于0.001.正常节点只须要等待2个块就能保证交易能有99.9%的概率不被篡改.若保证篡改者篡改成功的概率小于0.001,则当p=0.9时,z=5.由此可证,区块链网络隐蔽信道具有较强的抗篡改性.2.2 嵌入成功率实验中所进行映射的区块结构数据由Bitcoin客户端得来,采用1 000个经过预处理的区块结构信息作为映射库,将秘密信息分割成相同长度的信息段来做无载体映射.区块中包含的信息庞大而复杂,本实验只选取实验所需要的信息来进行映射.每个区块所对应的映射库并不相同,秘密信息的映射也存在失败的情况.因此,本实验针对不同长度的秘密信息分别计算了信息隐藏成功率.隐藏成功率的公式为s=1-MNul,(5)式中:M为隐藏失败的区块载体数量;Nu为总共的区块载体数量;l为秘密信息被分割的数量;s为嵌入成功率.本研究使用比特币的主网和测试网的区块信息来做信息隐藏.比特币网络从2009年至今已经有数十万个区块,其中包含的信息十分巨大.区块链测试网络中有部分连续的区块信息中的数据重复数量太多,筛选之后选取双方相近年份的1 000个区块信息来作为映射载体.为了选取成功率最高的分割长度,分别在比特币网络和比特币测试网络下做了相关实验,实验如图3所示,图中:s为嵌入成功率;b为单次传输数据的字节大小.由图3可以看出:分割的信息段的长度和载体库的大小都会影响信息隐藏的成功率.其中比特币测试网络的数据多为测试数据,选取的区块中会包含重复、有规律10.13245/j.hust.241108.F003图3秘密信息的嵌入成功率(实线为Bitcoin,虚线为Testnet)的数据.所以在嵌入成功率上与比特币网络会有比较明显的差距.2.3 嵌入时间当嵌入的信息在一定范围内变化时,对信息的分段越长,嵌入成功率越低,所花费的时间也会越长.其原因是在匹配的过程中,匹配的长度提升,匹配成功率会呈指数下降,失败率越高,匹配的次数也就越多,所花费的时间就越长.如图4所示,图中t为花费的时间.图4秘密信息嵌入所花费的时间(实线为Bitcoin,虚线为Testnet)10.13245/j.hust.241108.F4a110.13245/j.hust.241108.F4a23 实验结果及分析实验使用《挪威的森林》作为秘密信息,操作系统为Win11处理器为AMD(Ryzen 7 5800H@3.20 GHz,内存16 GiB).使用Python进行编程,编译平台是Python 3.8.为了与比较方法一致,选择相同时间段的1 000个经过预处理后的区块信息作为秘密信息的映射载体.此外,为了测试使用不同的数字货币对所提出的方法进行嵌入所花费的时间,选择了两种类型的比特币(Bitcoin)和比特币测试币(Bitcoin Testnet).本研究中有3组实验,在进行秘密信息嵌入的预处理过程中,除了文献[8],其他文献中的实验部分没有对区块信息进行预处理操作,因此无法对预处理所花费的时间进行对比.本研究仅与对区块信息进行预处理的方法进行时间对比.通过选取相同的虚拟货币,并从中随机挑选相同区间内100~2 000个区块,对相同区块信息的处理时间,对比结果如图5所示,可以看出:本研究所使用的方法在区块信息预处理中所花费的时间远远小于文献[8].10.13245/j.hust.241108.F005图5区块信息预处理时间对比通过实验可以看出:Testnet中所花费的时间更短,这是由于Testnet在2020年之前使用的并不多,多用于测试场景中,所生成的区块信息更少,因此Testnet在进行预处理中所花费的时间会更短.因为每个区块所包含的交易次数是不相同的,为了直观的了解每种方法的嵌入容量,对每个的单次传输信息的大小进行了对比实验.通过表2可以发现:无载体的方法相对于其他对载体做隐写的方式能很大程度上提高嵌入容量.Bitcoin嵌入容量相对来说更高是因为Bitcoin区块信息中包含的内容更多,更不规律,映射信息的场景更符合真实的生产环境.Testnet中的区块信息则更为规律,多用于测试数据使用.均衡时间耗费和嵌入容量考虑,本研究中有效考虑的场景为Bitcoin.10.13245/j.hust.241108.T002表2不同方法下单次传输信息容量大小方法嵌入方式嵌入容量/byte文献[3]LSB隐写0.125文献[6]交易地址嵌入1.000文献[8]交易地址哈希10.000本研究B无载体15.000本研究Bt无载体9.000为了更好地模拟真实环境下交易所产生的成本,本研究从比特币中随机选取10,500,1 000和5 000笔交易所产生交易费用(美元)进行计算,其中,10笔交易所花费金额为23.25美元,500笔交易所花费金额为1 213.88美元,1 000笔交易所花费金额为2 413.72美元,5 000笔交易所花费金额为1.200 997×104美元.区块链中生成一笔交易所花费的成本与交易大小有关.为了平衡交易大小对实验结果的影响,对上述交易所产生的费用取均值来计算所传输相同信息一次所需成本,通过与其他方案中传输一次相同的信息所花费的成本作对比,本研究方法使用的是无载体技术,只须对区块信息进行秘密信息的映射来构建隐蔽通信,无须在区块链中通过发起交易来嵌入秘密信息.因此,无须发起交易的方法可以有效地避免交易手续费的产生,从而减少了隐蔽通信的成本,可以很好体现出本研究方法的低成本性,结果如表3所示.并且本研究方法还具有很好的拓展性,只借助于虚拟货币中的区块信息,无须建立交易,因此可以较好将其他同类别的虚拟货币作为载体,拓展至其他类别虚拟货币中.10.13245/j.hust.241108.T003表3传输相同信息一次所需成本方法虚拟货币场景嵌入方式成本/美元文献[3]比特币LSB隐写36.08文献[8]比特币交易地址嵌入24.05本研究比特币无载体0.004 结语本研究提出一种基于区块链区块信息的隐蔽通信方法.该方法利用虚拟货币生成区块中的区块信息作为秘密信息的映射载体.与传统的无载体方法相比,该方案利用现有的区块链作为载体,无须对其进行修改,有效降低了成本并提高了秘密信息的隐蔽性.通过将秘密信息映射到不同的虚拟货币中,打破了在区块链中使用单一货币进行隐蔽通信的限制,提高了通信的灵活性和扩展性.实验结果表明:该方案在对区块信息的预处理时间上和区块的平均嵌入容量上取得了显著的提升,并且无须对载体进行修改,具有较高的隐蔽性.然而,该方案也存在一定的局限性.在保证隐蔽性和安全性的前提下,秘密信息的映射规则相对较差,容易被攻击方检测出来.在未来的工作中将考虑改进映射规则,以克服这一局限性.此外,还须要进一步研究和探索对潜在攻击的分析和防范措施的设计.随着区块链技术的不断发展,相信这一方法在隐蔽通信领域具有潜力,并可为实际应用提供有价值的参考.
使用Chrome浏览器效果最佳,继续浏览,你可能不会看到最佳的展示效果,
确定继续浏览么?
复制成功,请在其他浏览器进行阅读
复制地址链接在其他浏览器打开
继续浏览