一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种结合区块链与洋葱网络的数据隐蔽传输系统及方法与流程

2021-11-25 00:38:00 来源:中国专利 TAG:


1.本发明涉及一种数据隐蔽传输系统及方法,具体涉及一种使用diffie

hellman(dh)密钥交换算法、洋葱路由技术和区块链技术机制构造的,兼具高隐蔽性和高传输带宽的数据隐蔽传输系统及方法,属于区块链和网络信息安全技术领域。


背景技术:

2.随着“互联网 ”的不断发展,越来越多的传统服务业与互联网相结合,如金融、餐饮、住宿等行业,对数据的安全性提出了更高的要求。网络隐私泄露事件的频繁发生,使人们逐渐意识到网络中个人隐私的重要性,对用户的隐私保护意识越来越强。
3.传统的互联网安全,主要侧重于对通信信息内容的保护,如采用数据加密等技术,这些技术可以更好地保护通信数据的安全。但是,数据发送和接收双方的身份信息、网络地址、传输方式等隐私信息仍暴露在网络中。一些常见的网络攻击手段(如流量分析等)通过截获网络中的数据流,即使无法知道通信数据具体内容,也能够通过分析数据流的对应关系推断出发送方和接收方之间的通信关系、通信状态及其身份信息。
4.目前,在网络购物、网络投票、军事通信和情报部门等应用中,不仅要求保证通信数据的安全性,还要求隐藏用户的身份、位置等敏感信息。针对如何在公共网络中保护用户的隐私,让用户在公开通信环境中实现快速、安全且隐秘的通信,是信息安全领域亟待解决的关键问题之一。
5.匿名通信的概念和各种类型的匿名通信系统被提出,以弥补传统安全技术对隐私保护的不足。匿名通信技术最早起源于1981年由chaum提出的mix

net机制。它通过单个或多个mix节点对消息进行混淆处理,从而实现匿名通信。后来,出现了两类匿名通信协议,分别是基于洋葱路由算法的节点网络和基于“密码学家问题”实现的dc

net机制。
6.现有的基于洋葱路由算法的节点网络,主要基于传统tcp/ip的网络架构,在通信之前需事先了解接收方的ip地址等信息,无法满足数据接收方动态更换ip的需求。
7.区块链技术实现了一个建立在对等网络上的分布式账本,具备构造更好的隐蔽通信的潜力。在区块链这样的通信模型中,消息传输没有特定的目的地,它通过泛洪的方式进行传播,每个节点均会获得所有的消息,因此可以完美地隐藏接收者的身份。此外,发送者使用系统时无需注册过程,能够进一步减少身份泄露的风险。另外,区块链系统保证了通信的抗篡改性,使得对手很难破坏秘密消息的传输。基于上述区块链的这些特性,可以利用去区块链信道建立更可靠的秘密通信。
8.但是,区块链网络的传输容量较小,不适于大文本的传输。同时,区块链公开的网络和数据将使得攻击者能够轻易获取区块链中的全部原始数据,因此,需要寻找一种更加隐蔽的传输方式。
9.目前,相关领域研究人员提出了一些解决方案,包括:
10.1.基于洋葱路由算法,客户端向目录服务器请求所有节点信息,并选择节点建立链路,在数据传输时因为数据包的每一层都使用不同的加密密钥进行了加密,因此接收数
据包的节点的目标只有目标节点才可以解密,创建隐藏路径后,每个节点只能知道下一个节点的地址,以实现隐藏网络传输,通过此包的每条节点仅知道相邻的两个节点地址。因此,攻击者通过控制其中一个节点来获取有关该路径的更多信息。
11.但是,该方法存在以下不足:
12.(1)洋葱网络基于传统的tcp/ip网络协议,在隐蔽消息传输之前,需要实现了解消息接收方的ip地址,其适用于固定ip的接收方,对于变化ip的接收方缺少有效的调整。
13.(2)洋葱网络关注于点对点的传输,不适用于群组消息的传递,如果需要进行广播则需要建立多个连接,消息发送方的通信代价较高。
14.2.中国专利申请cn111698222a提出了“一种基于vanitygen生成的特殊比特币地址的隐蔽通信方法”,对隐秘信息t进行加密和base58编码得到t';从t'选取三个不同字符作为关键词key;使用vanitygen生成包含key的地址a,将t'和a进行字符匹配,记录相同字符在二者中的位置索引,重复上述过程直到t'中所有字符被替换,将使用的地址信息以及得到的索引信息拼接得到解密信息r;将r分段存储在op_return字段中;获取交易信息后对op_return内容进行拼接和还原得到r;结合r和地址集合还原出t';对t'进行解码和解密还原信息t。
15.但是,该方法存在以下不足:
16.(1)将区块链中的隐蔽信息部分存储在op_return字段中,使得op_return字段具有一定的特征,容易被识别。
17.(2)vanitygen生成特殊比特币地址是一种随机构造方式,每增加一个字符,工作量几何级增长,其工作效率较低。
18.(3)隐蔽性较低。交易中明确包括了发送方的区块链地址,且地址不可更改,区块链地址并不是匿名,而是假名机制。现有研究表明已经有许多方法可以推测区块链地址之间的关系,甚至可以结合线下信息推测出对应的身份信息。
19.3.宋上等人提出了一种基于区块链的隐蔽通信系统blocce改进。在保证系统安全性和可靠性的前提下,实现了对blocce系统设计的隐蔽消息嵌入方法效率的提升,包括提高单笔交易地址嵌入数量和单区块内交易提交数量,并对双方继续通信需要使用的参数的协议方法进行了优化。
20.但是,该方法存在以下不足:
21.(1)提高单笔交易中地址嵌入数量和单区块内交易提交数量,并没有改变单个地址中只能利用最低有效位(lsb)存储1bit信息的嵌入方式,没有从根本上解决信息嵌入率低的缺陷。
22.(2)在下一次交易之前需要协商消息开始标识符(msi),会带来额外的开销,使得传输消息的有效比较低。


技术实现要素:

23.本发明的目的是为了克服现有技术的缺陷,实现在公共网络中保护用户的隐私,让用户在公开通信环境中实现快速、安全且隐秘的通信,解决区块链隐蔽信息传输及数据回传的技术问题,提出一种结合区块链与洋葱网络的数据隐蔽传输系统及方法。
24.开放式的区块链网络,是全世界任何人都可读取、发送交易且交易能获得有效确
认的、也可以参与其中共识过程的公有区块链。在区块链网络中,需要存在尽可能多的节点以及尽可能多的交易,以便于特殊交易能够更好的隐藏在所有的交易中,增加攻击者筛选特殊交易的难度。
25.本发明提出了一种结合区块链与洋葱网络的数据隐蔽传输系统,包括两个参与方,分别是发送方和接收方。其中,发送方能够接收区块链上传输的用于洋葱网络通信的网络参数,并根据接收到的参数,利用洋葱网络向接收方发送数据。接收方能够发送区块链上传输的用于洋葱网络通信的网络参数,并监听通过洋葱网络传来的数据。
26.同时,系统还包括三条信道。其中两条为离链信道,即,不在区块链上的信道,它们通过传统方式进行通信,两条信道分别用于参数交换和洋葱网络通信,参数交换为直接通信,在系统初始化时进行,只需进行一次。第三条为链上信道,使用区块链网络进行通信,发送方和接收方通过构造特殊交易以及筛选特殊交易的形式来传递和接收洋葱网络中的ip地址。洋葱网络为隐蔽通信的信道,通过洋葱网络的方式对信息进行隐蔽传输。
27.本发明进一步提出了基于系统的数据隐蔽传输方法,包括以下步骤:
28.步骤1:链外密钥交换。
29.为实现数据隐蔽传输,通信双方(发送方和接收方)须提前进行协商传输机制。本方法中,发送方与接收方首先交换一个随机数种子,利用该随机数种子,通过伪随机数算法生成随机数。
30.步骤2:构造洋葱网络参数。
31.在洋葱网络中,消息像洋葱包一样逐层加密,通过称为洋葱路由器的网络节点发送。每个洋葱路由器解密数据包的最外层,直到目的地解密最后一层,这样目的地就能够获得原始消息。
32.具体地,地址生成和数据嵌入的方法如下:
33.首先,用户使用客户端将待传输的ip地址进行编码,得到子字符串[substring1,substring2,

,substringn],之后进行字符串substring的嵌入。
[0034]
发送方和接收方先共享一个随机数种子seed,发送方通过调用seed()函数设置随机数种子,然后根据要传输的隐蔽信息多次调用random()函数生成伪随机数,调用次数取决于所需传输的隐蔽信息在全体传输信息空间中的位置。将获取到的最后一个伪随机数,按照区块链地址生成的方法进行计算,得到要使用的区块链地址,同时,通过旧随机数种子与传输信息进行异或的方式更新随机数种子。重复执行上述过程,最终得到[addr0,addr1,...,addrn]这一系列地址。
[0035]
最后,以该系列地址作为交易的接收地址创建交易[tx0,tx1,...,txn],将这些交易发送到区块链网络中,即可完成隐蔽信息数据的嵌入。
[0036]
步骤3:链上参数传输。
[0037]
特殊交易按照区块链系统默认的泛洪传播在网络中传播。在区块链的交易中,特殊交易和普通交易混在一起。由于特殊交易的交易格式与普通交易内容模式相同,除非是持有种子的接收方,其他人无法区分特殊交易和普通交易。最终,特殊交易将传播至所有的区块链节点。
[0038]
步骤4:提取链上参数。
[0039]
在每次传输交易之前,根据更新的随机数种子预先生成随机数序列,并根据区块
链地址生成算法生成其对应的地址序列addrs,其中,需要生成地址的数量为每次传输的数据空间的大小。比如:传输英文字符(忽略大小写),则每次需要生成地址数量为26个;传输ascii字符,则每次需要生成地址数量为128个。由于伪随机数算法的性质,给定相同的随机数种子,生成的随机数序列也是相同的,所以,该地址序列必然包含数据发送方所发起交易的接收地址。
[0040]
接收方客户端持续读取网络中传播的交易数据。同时,检测接收到的交易的接收方地址,如果交易接收方地址在客户端预先生成的列表addrs中,则获取该地址对应的列表中元素的序号,并在信息空间中查找该位置对应的信息,即可接收到传输来的信息。
[0041]
步骤5:进行洋葱网络传输。
[0042]
首先,客户端op(洋葱代理服务器)通过http协议从目录服务器上下载与节点相关的网络状态信息。
[0043]
然后,客户端op根据目录服务器提供的节点信息,通过预定的算法选择入口节点、中间结点与出口节点。
[0044]
之后,客户端op与入口节点协商密钥并建立联系,再通过入口节点与中间节点建立连接并完成第二层密钥协商,以此类推完成链路的建立。
[0045]
而后,客户端每一个传输单元依次使用共享会话密钥进行加密,密钥由内到外的顺序为:出口节点共享密钥、中间结点共享密钥和入口节点共享密钥。当中继节点接收到传输单元后,使用共享会话密钥进行解密,剥离一层数据加密,然后将传输单元传输给下一个中继节点,出口节点解密后得到明文数据,并将明文数据传输给目的服务。
[0046]
最后,目的服务返回数据,中继节点依次使用会话密钥进行加密,并沿通道依次回溯传输。当客户端op接收到返回数据后,依次使用会话密钥进行解密,得到明文数据。
[0047]
有益效果
[0048]
本发明方法,对比现有技术,具有以下优点:
[0049]
1.ip地址传输具有高效性。六条交易可以包含一个ip地址信息,并且对交易的筛选只需要对交易进行一次遍历,而对每条交易只需要在列表中进行查找,所以交易的筛选可以在交易数量的线性时间内完成。在intel i7

7700hq cpu@2.80ghz,8g内存的个人pc中进行测试,每条交易的构造需要0.02s,对包含200个交易的区块的筛选需要0.04s(不考虑获取区块数据的网络时间),满足区块链区块的产生速度。同时区块链泛洪传播的特性有利于进行一对多传输。
[0050]
2.具有较高的抗篡改性和隐蔽性。区块链系统是一个分布式账本,每个节点都可以获取到所有的交易数据,在传统隐蔽传输中传输路径一个恶意节点可以篡改传输的数据,而在区块链节点中恶意节点无法篡改数据。同时无需利用比特币的op_return或者以太坊的input字段存储信息,同时也无需对其他字段进行编码来存储信息,其交易模式与普通交易模式完全相同,具有高度的不可区分性。
[0051]
3.能够适应动态ip的接收方。区块链账户与ip地址无关,动态ip的接收方可以将利用区块链来发送自身ip给各发送方,以便于各发送方有足够的信息利用洋葱网络来进行隐蔽传输。
[0052]
4.数据传输速率高。除了ip地址的传输外均使用传统基于tcp/ip网络的洋葱网络进行数据传输,其传输速率更高。
附图说明
[0053]
图1是结合区块链与洋葱网络数据隐蔽传输系统的架构图。
具体实施方式
[0054]
下面结合附图和实施例对本发明方法做进一步详细说明。
[0055]
实施例
[0056]
一种结合区块链与洋葱网络的数据隐蔽传输系统,如图1所示,
[0057]
包括两个参与方,分别是发送方和接收方。其中,发送方能够接收区块链上传输的用于洋葱网络通信的网络参数,并根据接收到的参数,利用洋葱网络向接收方发送数据。接收方能够发送区块链上传输的用于洋葱网络通信的网络参数,并监听通过洋葱网络传来的数据。
[0058]
同时,系统还包括三条信道。其中两条为离链信道,即,不在区块链上的信道,它们通过传统方式进行通信,两条信道分别用于参数交换和洋葱网络通信,参数交换为直接通信,在系统初始化时进行,只需进行一次。第三条为链上信道,使用区块链网络进行通信,发送方和接收方通过构造特殊交易以及筛选特殊交易的形式来传递和接收洋葱网络中的ip地址。洋葱网络为隐蔽通信的信道,通过洋葱网络的方式对信息进行隐蔽传输。
[0059]
本实施例中,系统进行数据隐蔽传输的过程如下:
[0060]
步骤1:链外密钥交换。
[0061]
首先,取随机数种子为:
[0062]
94063216765725209944832901363545669963698314641210984567325264796151021743490
[0063]
将随机数种子由发送方和接收方进行共享,并以伪随机数算法为梅森旋转(mt)算法,区块链网络为以太坊为例。
[0064]
步骤2:构造洋葱网络参数。
[0065]
设需要传输的ip地址为“124.87.167.143:8888”编码成[124,87,167,143,34,184],对8888编码成16位数并将前后八位分别还原为十进制,即34和184。首先以上述随机数种子作为种子,依据编码的数据多次调用mt算法,例如对124即调用125次mt算法,根据得到的随机数生成以太坊地址,即0x40ab45277315e385285b680f62cf013b948658af。
[0066]
之后,将124与随机数种子做异或得新的随机数种子,并继续上述流程,以此类推得到交易接收方地址为:
[0067]
[0x40ab45277315e385285b680f62cf013b948658af,0x3df94a7cb14695e3e2fabebc6418ab0b056f1fcb,0x76da83894ca31424feb27e06fd102bf015aa93fd,0x15c07f27600242b584f960a817e86468d7c0bdbc,0xf95e88e8b87c2e25c50c344c68f255862a8ced18,0x3ba6122a2b78a7ff26df5901298cf0f8bb0be484]
[0068]
以这6个地址作为交易接收地址,构造交易。
[0069]
步骤3:链上参数传输
[0070]
将构造好的交易发送到区块链上,并通过区块链的传播方式进行传输。
[0071]
步骤4:链上参数提取。
[0072]
在接收提取的时候,接收方以最新的随机数种子作为种子,并调用256次mt算法,
对每一次算法的输出生成对应的以太坊地址,得到地址序列如下:
[0073]
[
……
(123个数,序号从0到122),0x5ea4e3e326caa06bf5c9c1446b2bbe47d096dad0,0x40ab45277315e385285b680f62cf013b948658af,0xaf83cc9e70006c787bf7f01481e71ba9f29a64fb,
……
]
[0074]
当收到每条交易之后,在地址序列中查找交易的接收方地址,若收到交易的地址为0x40ab45277315e385285b680f62cf013b948658af,则在地址序列中序号为124,即为需要传输的数据。以此类推,得到所有的数据:[124,87,167,143,34,184]。
[0075]
步骤5:洋葱网络传输阶段。
[0076]
发送方收到[124,87,167,143,34,184]后将其进行组合,得到需要传输到的“124.87.167.143:8888”。通过洋葱网络与接收方建立连接,并并将需要传输的数据发送给接收方。
[0077]
实施例中,伪代码如下描述:
[0078]
createaccount():开发区块链系统中使用的根据输入生成其对应的地址。
[0079]
seed():用于设置伪随机数算法的种子。
[0080]
random():是伪随机数算法,根据设置的随机数种子通过某种变换得到伪随机数,其生成的伪随机数和真随机数在计算时间内不可区分。同时给定相同的随机数种子,能够得到相同的随机数序列。
[0081]
本实施例进一步给出了相关算法实现过程:
[0082]
算法1地址生成算法(generate_addrs)
[0083][0084]
算法2交易筛选算法(screen_addrs)
[0085][0086][0087]
算法3数据嵌入算法(embed_data)
[0088]
输入:seed,ip,port
[0089]
输出:无
[0090]
(1)set params=[]
[0091]
(2)numbers=split(ip,’.’)
[0092]
(3)for number in numbers params.append(ord(number))
[0093]
(4)params.append(ord(port/0xff))params.append(ord(port%0xff))
[0094]
(5)addrs=generate_addrs(seed,params)
[0095]
(6)for addr in addrssend_transaction(addr)
[0096]
算法4数据提取算法(extract_data)
[0097][0098]
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献