CN111654484B - 基于whisper协议的以太坊隐蔽通信方法 - Google Patents
基于whisper协议的以太坊隐蔽通信方法 Download PDFInfo
- Publication number
- CN111654484B CN111654484B CN202010452749.5A CN202010452749A CN111654484B CN 111654484 B CN111654484 B CN 111654484B CN 202010452749 A CN202010452749 A CN 202010452749A CN 111654484 B CN111654484 B CN 111654484B
- Authority
- CN
- China
- Prior art keywords
- information
- envelope
- payload
- theme
- padding
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于whisper协议的以太坊隐蔽通信方法,包括:隐蔽交互主题‑密钥对;对要传递的消息T进行加密和编码获得T';随机生成语句作为whisper协议中信体的有效载体payload;将T'与载体进行字符匹配,记录匹配字符的索引信息;将索引信息加密,并进行扩充使消息总长为256字节的倍数并作为whisper协议中信体的扩充部分padding;设置whisper信件的结构信息,将信件的主题设置为交互主题,并加密;将信件广播实现信息传递;接收方通过主题筛选信件,用对应的密钥解密信件获取payload和padding;解密padding获得解密信息即索引,结合有效载体进行信息还原。本发明方法安全性高,具有较好的抗干扰性、抗篡改性和抗检测性,且结合whisper的主题机制避免了接收方筛选数据包时不必要的消耗。
Description
技术领域
本发明属于信息隐藏领域,特别涉及一种基于whisper协议的以太坊隐蔽通信方法。
背景技术
传统的隐蔽通信仍然使用中心化的单一信道,这使得通信过程容易受到网络环境等因素的干扰进而影响隐蔽通信的效果。此外,中心化节点和设备易受到攻击,严重的甚至会造成通信系统的瘫痪。区块链凭借其去中心化和抗干扰等特点,在近几年得到迅猛的发展和大量推广。它所具备的特性恰好可以有效缓解传统隐蔽通信的缺陷,同时可以让隐蔽通信的效果更优。如何将隐蔽通信有效地应用在区块链上成为了研究者关注的重点。以太坊作为现阶段被广泛使用的区块链平台,其开源性和所拥有的大量智能合约使其备受欢迎。它支持用户在其中进行开发和搭建应用,并允许用户在交易中嵌入大量额外信息。这使得它比比特币具有更强的可扩展性,也因此以太坊不仅限于交易更多的是作为分布式应用开发平台。以太坊的潜力是巨大的,其应用的多样性与日俱增且涉猎的范围越来越广,大量的用户选择通过这样一个去中心化的平台获取自己所需的应用服务并进行通讯。和区块链相同,以太坊的数据也被分布式地存储在各个节点,每个操作和记录都会在链上留下永久的不可篡改的数据。但是并非所有用户都愿意将自己执行的所有操作以及通讯的信息公开透明,有些涉及隐私和机密的消息需要通过特殊的方式在链上传递。因此,在以太坊中实现隐蔽通信是十分有意义的。
宋上等提出了一种基于区块链的隐蔽通信系统BLOCCE改进研究。在BLOCCE系统设计的隐蔽消息嵌入方法基础之上,保证系统安全性和可靠性的前提之下实现了一定的效率提升,包括提高单笔交易地址嵌入数量和单区块内交易提交数量,并对双方继续通信需要使用的参数的协议方法进行了优化。[宋上.基于区块链的隐蔽通信系统BLOCCE改进研究[D].兰州大学,2019.]中国专利CN201910466477.1公开了一种基于区块链网络的数据隐蔽传输方法,该发明中通过链外交换实现密钥的交互,然后生成包含隐蔽数据和Kleptography生成的密钥的交易,交易成功传播后接收方从众多交易中找出包含隐蔽信息的交易并使用提取出的私钥解密。上述的方法存在着两方面的不足,一是提高单笔交易地址嵌入数量和单区块内交易提交数量并没有改变1bit每地址的信息嵌入方式,没有从根本上解决信息嵌入率低的缺陷;二是交易的筛选需要采用Kleptography技术对每一个区块链交易尝试提取,直到找出能够成功提取出密钥的交易被筛选出来,工作量较大、实现起来相对繁琐。
发明内容
本发明的目的在于针对上述问题,提供一种基于whisper协议的以太坊隐蔽通信方法。
实现本发明目的的技术解决方案为:基于whisper协议的以太坊隐蔽通信方法,所述方法包括以下步骤:
步骤1,隐蔽交互主题-密钥对;
步骤2,对要传递的密文信息T进行加密、编码获得新的密文信息T';
步骤3,随机生成任意长度语句作为有效载体payload;
步骤4,对所述密文信息T'和有效载体payload进行字符匹配,记录相同字符在二者中的索引,生成密文索引集合IC和载体索引集合IP,并将T'中已匹配的字符用“*”替代;
步骤5,将IC和IP进行拼接,并对拼接结果进行加密获得部分解密信息PI,判断该解密信息PI消息大小是否为256的倍数,若不是则生成顺序标志符及冗余信息PR并执行步骤6,否则将PI直接作为扩充部分padding,并执行步骤7;
步骤6,将PI、分隔符、顺序标志符和PR拼接作为扩充部分padding;
步骤7,结合所述有效载体payload和扩充部分padding构建信体,并利用步骤1交互的密钥对信体进行加密;
步骤8,构建信封,将信封的主题设置为步骤1交互的主题并将信封广播出去,之后执行步骤9,同时判断T'中是否还包括payload中的字符,若是继续返回执行步骤3;
步骤9,接收方利用步骤1交互的主题从收到的信封中筛选出同主题的信封,并利用主题对应的密钥对信封进行解密获得有效载体payload和扩充部分padding;
步骤10,对扩充部分padding进行解密并删除分隔符、顺序标志符和冗余部分PR获得解密信息PI;
步骤11,结合有效载体payload和解密信息PI还原原始密文信息T;
步骤12,接收方判断是否发生信件丢失,若是则向邮件服务器申请重新获取丢失的信件并继续信息还原。
本发明与现有技术相比,其显著优点为:1)本发明的理论模型基于区块链下的以太坊,具有较好的抗干扰性、抗篡改性;2)本发明的数据填充方式模拟了协议本身的填充规则,可以有效躲避针对信息大小的监视,且结合以太坊分布式特点和加密机制具有较好的抗检测性;3)本发明的信息嵌入方式为空间型,以字节为单位重复利用载体信息,具有很好的嵌入效率和传递效率;4)结合whisper协议的主题机制更方便用户筛选出通信相关的数据包。
下面结合附图对本发明作进一步详细描述。
附图说明
图1为本发明基于whisper协议的以太坊隐蔽通信方法的系统架构图。
图2为本发明使用的whisper协议信息传输基本单位信封的结构示意图。
图3为本发明实施例中主题-密钥对处理示意图。
图4为本发明实施例中主题-密钥对补零及异或加密示意图。
图5为本发明实施例中信体扩充部分结构示意图。
图6为本发明实施例中信息嵌入示意图。
图7为本发明实施例中信息还原示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,结合图1,提供了一种基于whisper协议的以太坊隐蔽通信方法,所述方法包括以下步骤:
步骤1,隐蔽交互主题-密钥对,从根本上保证之后的隐蔽通信安全;
步骤2,对要传递的密文信息T进行加密、编码获得新的密文信息T',保证其不可读性;这里,是为了使得信息具有更高的安全性并能够更好地和载体信息相结合。
步骤3,随机生成任意长度语句作为有效载体payload;
步骤4,对所述密文信息T'和有效载体payload进行字符匹配,记录相同字符在二者中的索引,生成密文索引集合IC和载体索引集合IP,并将T'中已匹配的字符用“*”替代,实现信息嵌入;
步骤5,将IC和IP进行拼接,并对拼接结果进行加密获得部分解密信息PI,判断该解密信息PI消息大小是否为256的倍数,若不是则生成顺序标志符及冗余信息PR并执行步骤6,否则将PI直接作为扩充部分padding,并执行步骤7;在whisper协议中默认填充机制为将信息大小保持在256字节的倍数,以降低信息大小暴露元信息的风险,用户也可自定义填充内容但往往会使得信息大小较为特殊,容易引起注意,而此方法可以在自定义填充的基础上保证隐蔽性;
步骤6,将PI、分隔符、顺序标志符和PR拼接作为扩充部分padding;
步骤7,结合所述有效载体payload和扩充部分padding构建信体,并利用步骤1交互的密钥对信体进行加密;信体Letter body为:
Letter body=(payload,padding)=((m1,m2,…,mm),(R1,R2,…,Rr))
payload主要为与隐秘信息无关的语句M(m1,m2,…,mm),padding主要为信息还原信息R(R1,R2,…,Rr)。
步骤8,构建信封,将信封的主题设置为步骤1交互的主题并将信封广播出去,之后执行步骤9,同时判断T'中是否还包括payload中的字符,若是继续返回执行步骤3;
步骤9,接收方利用步骤1交互的主题从收到的信封中筛选出同主题的信封,并利用主题对应的密钥对信封进行解密获得有效载体payload和扩充部分padding;
步骤10,对扩充部分padding进行解密并删除分隔符、顺序标志符和冗余部分PR获得解密信息PI;
步骤11,结合有效载体payload和解密信息PI还原原始密文信息T;
步骤12,接收方判断是否发生信件丢失,若是则向邮件服务器申请重新获取丢失的信件并继续信息还原。
进一步地,在其中一个实施例中,步骤1所述隐蔽交互主题-密钥对,具体包括:
步骤1-1,指定隐蔽通信所需的包含一组或多组主题和对应密钥的主题-密钥对,其中不同的主题-密钥对用“,”分隔,在最后的密钥后以“.”作为结束;
步骤1-2,在所有主题-密钥对之前添加开始标志符,并在两端添加冗余字段,保证主题和密钥的安全性;
步骤1-3,对步骤1-2得到的结果进行霍夫曼编码,将其转换为二进制串B1的同时进行压缩;
步骤1-4,随机生成语句(可以为完全随机字符的语句如“2as319s2”或有实际表达意义的语句如“Hello”)作为信体的有效载荷和隐秘信息的载体payload,该语句转换为二进制后得到的二进制串B2的长度小于B1的长度且Δ为预设阈值;接近Δ优选为8;
步骤1-5,将B1和B2左对齐,B2空缺部分补零,记补零位数为z,z的取值范围为0~7(由于1字节信息采用八位二进制表示,而一个数除以8的最大余数为7),补零后的B2记为B2';
步骤1-6,对B1和B2'进行异或加密,并将结果转换为十六进制作为部分扩充部分Px,对Px进行冗余添加保证信息总长度为256的倍数,将添加后的Px作为信体的扩充部分padding;
步骤1-7,结合payload和padding构建信体,利用接收方公钥对信体加密,结合TTL、PoW信息构建信封,计算接收方公钥哈希值,选取该哈希值的前三字节并将z个零拼接在第四字节作为所述信封的主题,最后将信封广播出去;
步骤1-8,接收方对筛选的主题只设置前三字节,且内容为自身的公钥哈希值的前三字节,将筛选出的信封中主题的第四个字节记为z;
步骤1-9,接收方利用自身的私钥对信体进行解密,获得payload和padding,将padding中冗余部分删除获得Px,将Px转换为二进制获得B1和B2'的异或加密结果;
步骤1-10,将payload转换为二进制B2,并在其后补z个零获得B2';之后将步骤1-9的结果与B2'再进行一次异或运算获得B1;
步骤1-11,对B1进行霍夫曼解码即可还原包含主题-密钥对的字符串,将该字符串两端的冗余信息及开始标志符删除获得主题-密钥对。
进一步地,在其中一个实施例中,步骤2中所述加密采用的加密方式为对称加密,包括DES、AES,或非对称加密;所述编码采用霍夫曼编码。
进一步地,在其中一个实施例中,步骤3中所述有效载体payload的信息量计算公式为:
式中,H(x)为信源每个符号包含的信息量,p(xi)为有效载体payload中第i个字符xi出现的概率,n为有效载体中字符的种类。
这里,假设使用的字符只包含小写英文字母,完全随机生成的语句的信息量为log226即4.7bits每字符,而结合实际使用中各字母出现概率如下表1所示可得当载体有实际意义时信息量为4.18bits每字符,因此对于隐蔽性要求不高的情形下,可以使用随机生成的字符串作为信息载体,此时使用者无需额外生成载体内容因此使用起来也较为方便。而将载体设置为有意义的语句可以进一步提高通信的隐蔽性,即使信件内容被破解,也不会由于信息过于杂乱而引起怀疑。
表1英文字母在实际使用中出现频率表
进一步地,在其中一个实施例中,步骤6所述将PI、分隔符、顺序标志符和PR拼接作为扩充部分padding,具体包括:在PI和PR之间依次设置长度为LS的分割字段以及长度为LO的顺序标志符,并在最后一封信件的数字后面添加“end”。
这里,为了能够有效验证是否丢失了信件,顺序标志位一般为5字节,以“00001”开始。在最后一封信件的数字后面加个“end”表示这是最后一封信件如“03end”,可以直观地看出一共用了多少信件。
进一步地,在其中一个实施例中,所述冗余信息PR的长度LR为:
进一步地,在其中一个实施例中,步骤8所述构建信封具体结合TTL、PoW、Version信息构建,结合图2,信封主要结构包括:
(1)Version,表示当前信封加密方式的版本;若信封的版本高于节点当前值,则节点无法解密此信封只对其做转发,通信双方在版本上应该是对等的;
(2)Expiry,表示设定的本信封在网络中的过期时间,格式为UNIX时间,一旦当前时间超过此值,对应的信封将被各节点丢弃并不再做进一步转发;
(3)TTL,表示信封在网络中的生存时间;
(4)Topic,表示主题;由于去中心化的网络采用广播的形式发送数据包,各节点会收到大量和自己无关的信件,尝试着解开所有信件以找到和自己有关的消息是非常昂贵且低效的。为了便于过滤,whisper协议设置了主题;
(5)AESNonce,表示采用AES对称加密算法时使用的nonce值,该值只在对称加密时存在;
(6)Data,表示加密后的消息即信体;
(7)EnvNonce,用于PoW计算。
进一步地,在其中一个实施例中,步骤9所述接收方利用步骤1交互的主题从收到的信封中筛选出同主题的信封,并利用主题对应的密钥对信体进行解密获得有效载体payload和扩充部分padding,具体包括:
步骤9-1,接收方在自身的多个筛选器filter中将筛选标准设置为步骤1交互的主题,每接收一个信封,判断其主题与设置的主题是否相同,若不同则只进行转发,否则将信封保存在对应filter中;
步骤9-2,每个filter利用主题对应的密钥对信封进行解密,将信件的内容保存在本地等待系统访问,信件的内容包括payload和padding;在此过程中,若存在主题碰撞即其他通信方也使用同样的主题进行通信,此时接收方无法对信封进行解密,将该信封视为无关信封,只对其进行转发。
进一步地,在其中一个实施例中,步骤11所述结合有效载体payload和解密信息PI还原原始密文信息T,具体包括:
步骤11-1,根据步骤10获得的解密信息PI获取密文索引集合IC和载体索引集合IP;
步骤11-2,以IP中的元素值作为下标,找出有效载体payload对应位置的字符,放入以IC中的元素值作为下标的密文对应位置。
进一步地,在其中一个实施例中,步骤12所述接收方判断是否发生了信件丢失,若是则向邮件服务器申请重新获取丢失的信件并继续信息还原,具体包括:
步骤12-1,接收方对接收到的信件中包含的顺序标志符进行获取,判断信件数与标志符表示的总数是否相同,若相同表示未发生信件丢失,否则表示发生信件丢失,执行步骤12-2;
步骤12-2,接收方向邮件服务器提交身份信息,邮件服务器确认节点身份后建立二者的连接;
步骤12-3,接收方提供信件对应的信息,邮件服务器将对应的信件以p2p的形式直接发送给接收方,接收方无需再进行转发。
作为一种具体示例,在其中一个实施例中,对本发明进行进一步验证说明。本发明的基于whisper协议的以太坊隐蔽通信方法,包括以下内容:
(1)指定隐蔽通信所需的主题-密钥对,在此主题-密钥对以“0x11223344-0xcec94d139ff51d7df1d228812b90c23ec1f909afa0840ed80f1e04030bb681e4.”为例。
(2)结合图3,在主题-密钥对前面添加开始标志位“start”,并在两边分别添加冗余信息“abc123”、“456edf”得到处理后的主题-密钥对“abc123start0x11223344-0xcec94d139ff51d7df1d228812b90c23ec1f909afa0840ed80f1e04030bb681e4.456edf”。
(3)对(2)中的结果进行霍夫曼编码,得到B1“111001110101000001011100011111100111111110011111110111110011111000000001011101110001000110011000111000011111000100100101000101110010100001000010111011101111101000101001110110101101000101010111011011001100001011111010101001010010111000100101000001101010100101011110011011110000101101100001100110100110001110100010010011100001100000111101111011111100110000100111000111101100111101111110100110101101”。
(4)生成有效载荷,其转换为二进制后的长度小于(3)得到的结果的长度,且两者之差小于8,在此有效载体设置为“Hello,how are you.My name is Alice,nice to meetu”,其二进制为B2“01001000011001010110110001101100011011110010110001101000011011110111011100100000011000010111001001100101001000000111100101101111011101010010111001001101011110010010000001101110011000010110110101100101001000000110100101110011001000000100000101101100011010010110001101100101001011000110111001101001011000110110010100100000011101000110111100100000011011010110010101100101011101000010000001110101”。
(5)将B1和B2左对齐,发现B2比B1少了4位,因此设置z为4,并在B2后添加4个零得到B2'。
(6)对B1和B2'异或加密,并将结果转换为十六进制“af35301210b3b751765770ea84d15c785d6ca38309b4b03a09e293d60e646ac03d0a270ff300c76e6c52cfa1427bbb5eefd”作为部分扩充部分Px,将Px进行填充,此时payload的长度为49字节,Px当前长度为99字节,因此还需在Px填写长度为108字节的冗余信息“00xxfhgf1w9maddixntv52totebh5vrnlcpb73wa4vxqqgz8slgzvtuun9bi0kf8fb9emrced8gn5k306uo7p82ls1aab5ya3sf6266tlzf5,”其中“00xx”为分隔符。
(7)结合payload和padding构建信体,利用接收方公钥对信体进行加密,假设公钥为“mypublickey123”,计算此公钥哈希值“a47e2d905e2c4b1f3cc13fef2b37aaee75bffc91”,选其前三字节“a47”与z进行拼接得到此信封主题“a474”,设置相关信息和此主题后将信封广播。
(8)接收方以“a47?”为目标主题对收到的信封进行筛选,其中第四字节为任意内容,读取筛选出的信件的主题第四字节获取z的值为4。
(9)接收方利用自身的私钥对信件进行解密,获得payload“Hello,how areyou.My name is Alice,nice to meet u”和padding“af35301210b3b751765770ea84d15c785d6ca38309b4b03a09e293d60e646ac03d0a270ff300c76e6c52cfa1427bbb5eefd00xxfhgf1w9maddixntv52totebh5vrnlcpb73wa4vxqqgz8slgzvtuun9bi0kf8fb9emrced8gn5k306uo7p82ls1aab5ya3sf6266tlzf5,”删除padding中的冗余部分得到Px“af35301210b3b751765770ea84d15c785d6ca38309b4b03a09e293d60e646ac03d0a270ff300c76e6c52cfa1427bbb5eefd”,将其转换为二进制得到异或加密结果“0101011110011010100110000000100100001000010110011101101110101000101110110010101110111000011101010100001001101000101011100011110000101110101101100101000111000001100001001101101001011000000111010000010011110001010010011110101100000111001100100011010101100000000111101000010100010011100001111111100110000000011000111011011100110110001010010110011111010000101000010011110111011101101011110111011111101”。
(10)将payload转换为二进制B2,在最后添加z个零后与(9)的结果进行异或运算得到B1。
(11)将B1进行霍夫曼解码可还原出“abc123start0x11223344-0xcec94d139ff51d7df1d228812b90c23ec1f909afa0840ed80f1e04030bb681e4.456edf”,删除冗余及标志符即可还原出主题-密钥对“0x11223344-0xcec94d139ff51d7df1d228812b90c23ec1f909afa0840ed80f1e04030bb681e4”。
(12)对要传递的原始信息进行加密,假设加密后的结果T'为“HNsMHE9sCHVbpvY”。
(13)生成有效载体payload“Hello.Happy NEW Year!”。其平均信息量结合上表1可得为4.18bits每字符。
(14)结合图6,对T'和payload进行字符匹配并记相同字符的索引,替换T'中已匹配的字符为“*”,此轮匹配得到索引信息“IC=[0,1,4,5,9,12],IP=[0,12,0,13,0,8]”,T'更新为“**sM**9sC*Vb*v*”。
(15)将第一次得到的索引信息加密得到PI“U2FsdGVkX1894LijaenWq82JW0F4pUDSv7VuthaKrDPxfb167L5fNw/QHRFA3agwVfho9iVddkQ=”,结合图5,添加分隔符和冗余,冗余长度为:
其中,分隔符为“]end[”,本次顺序标志符为“00001”。添加过后的结果记为padding。
(16)根据载体payload“Hello.Happy NEW Year!”和(15)得到的padding构建信体,使用(1)中交互的密钥“0xcec94d139ff51d7df1d228812b90c23ec1f909afa0840ed80f1e04030bb681e4”对信体进行加密,将主题设置为(1)中交互的主题“0x11223344”,设置其他相关信息后将信封广播。
(17)结合图6,由于T'未被完全匹配,因此进行第二轮信息嵌入,生成payload“Ms.Veves has 9 Children’s books.”,与更新后的T'进行匹配,可得到索引信息“IC=[2,3,6,7,8,10,11,13],IP=[1,0,14,1,16,4,27,6]”,此时T'完全匹配。
(18)将第二次得到的索引信息加密得到PI“U2FsdGVkX18f+yc7i8zQlhIVz8HyA019sdSL0g8g0lIIPXUdUpXQU+RLvtqeZ/xpd3Dy7obu7b/WtoWtp4N4hA==”,结合图5,添加分隔符和冗余,冗余长度为:
其中,分隔符为“]end[”,本次顺序标志符为“02end”。添加过后的结果记为padding。
(19)根据载荷payload“Ms.Veves has 9 Children’s books.”和(18)得到的pad-di-ng构建信体,使用(1)中交互的密钥“0xcec94d139ff51d7df1d228812b90c23ec1f909afa0840ed80f1e04030bb681e4”对信体进行加密,将主题设置为(1)中交互的主题“0x11223344”,设置其他相关信息后将信封广播。
(20)接收方通过主题“0x11223344”筛选出隐蔽通信的两封信件,同时可能会筛选出同主题的碰撞信件,其利用密钥“0xcec94d139ff51d7df1d228812b90c23ec1f909afa0840ed80f1e04030bb681e4”对信件进行解密,将无法成功解密的碰撞信件丢弃,并从隐蔽通信的两封信件中获取padding和payload。
(21)对两个padding进行解密并删除冗余得到解密信息“IC=[0,1,4,5,9,12],IP=[0,12,0,13,0,8]”和“IC=[2,3,6,7,8,10,11,13],IP=[1,0,14,1,16,4,27,6]”。
(22)结合图7,使用解密信息和对应的载荷实现信息还原,得到密文T'“HNsMHE9sCHVbpvY”,对其进行解密即可还原出原始信息。
由上述实施例可知本发明的数据填充方式模拟了协议本身的填充规则,可以有效躲避针对信息大小的监视,且结合以太坊分布式特点和加密机制具有较好的抗检测性;本发明的信息嵌入方式为空间型,以字节为单位重复利用载体信息,具有很好的嵌入效率和传递效率;此外,本发明的方法基于区块链以太坊,安全性高并具有较好的抗干扰性、抗篡改性,具有良好的应用前景。
以上显示和描述了本发明的基本原理、主要特征及优点。本行业的技术人员应该了解,本发明不受上述实例的限制,上述实例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (10)
1.基于whisper协议的以太坊隐蔽通信方法,其特征在于,所述方法包括以下步骤:
步骤1,隐蔽交互主题-密钥对;
步骤2,对要传递的密文信息T进行加密、编码获得新的密文信息T';
步骤3,随机生成任意长度语句作为有效载体payload;
步骤4,对所述密文信息T'和有效载体payload进行字符匹配,记录相同字符在二者中的索引,生成密文索引集合IC和载体索引集合IP,并将T'中已匹配的字符用“*”替代;
步骤5,将IC和IP进行拼接,并对拼接结果进行加密获得部分解密信息PI,判断该解密信息PI消息大小是否为256的倍数,若不是则生成顺序标志符及冗余信息PR并执行步骤6,否则将PI直接作为扩充部分padding,并执行步骤7;
步骤6,将PI、分隔符、顺序标志符和PR拼接作为扩充部分padding;
步骤7,结合所述有效载体payload和扩充部分padding构建信体,并利用步骤1交互的密钥对信体进行加密;
步骤8,构建信封,将信封的主题设置为步骤1交互的主题并将信封广播出去,之后执行步骤9,同时判断T'中是否还包括payload中的字符,若是继续返回执行步骤3;
步骤9,接收方利用步骤1交互的主题从收到的信封中筛选出同主题的信封,并利用主题对应的密钥对信封进行解密获得有效载体payload和扩充部分padding;
步骤10,对扩充部分padding进行解密并删除分隔符、顺序标志符和冗余部分PR获得解密信息PI;
步骤11,结合有效载体payload和解密信息PI还原原始密文信息T;
步骤12,接收方判断是否发生信件丢失,若是则向邮件服务器申请重新获取丢失的信件并继续信息还原。
2.根据权利要求1所述的基于whisper协议的以太坊隐蔽通信方法,其特征在于,步骤1所述隐蔽交互主题-密钥对,具体包括:
步骤1-1,指定隐蔽通信所需的包含一组或多组主题和对应密钥的主题-密钥对,其中不同的主题-密钥对用“,”分隔,在最后的密钥后以“.”作为结束;
步骤1-2,在所有主题-密钥对之前添加开始标志符,并在两端添加冗余字段;
步骤1-3,对步骤1-2得到的结果进行霍夫曼编码,将其转换为二进制串B1的同时进行压缩;
步骤1-5,将B1和B2左对齐,B2空缺部分补零,记补零位数为z,z的取值范围为0~7,补零后的B2记为B2';
步骤1-6,对B1和B2'进行异或加密,并将结果转换为十六进制作为部分扩充部分Px,对Px进行冗余添加保证信息总长度为256的倍数,将添加后的Px作为信体的扩充部分padding;
步骤1-7,结合payload和padding构建信体,利用接收方公钥对信体加密,结合TTL、PoW信息构建信封,计算接收方公钥哈希值,选取该哈希值的前三字节并将z的值作为第四字节生成所述信封的主题,最后将信封广播出去;
步骤1-8,接收方对筛选的主题只设置前三字节,且内容为自身的公钥哈希值的前三字节,将筛选出的信封中主题的第四个字节记为z;
步骤1-9,接收方利用自身的私钥对信体进行解密,获得payload和padding,将padding中冗余部分删除获得Px,将Px转换为二进制获得B1和B2'的异或加密结果;
步骤1-10,将payload转换为二进制B2,并在其后补z个零获得B2';之后将步骤1-9的结果与B2'再进行一次异或运算获得B1;
步骤1-11,对B1进行霍夫曼解码即可还原包含主题-密钥对的字符串,将该字符串两端的冗余信息及开始标志符删除获得主题-密钥对。
3.根据权利要求1所述的基于whisper协议的以太坊隐蔽通信方法,其特征在于,步骤2中所述加密采用的加密方式为对称加密,包括DES、AES,或非对称加密;所述编码采用霍夫曼编码。
5.根据权利要求1所述的基于whisper协议的以太坊隐蔽通信方法,其特征在于,步骤6所述将PI、分隔符、顺序标志符和PR拼接作为扩充部分padding,具体包括:在PI和PR之间依次设置长度为LS的分割字段以及长度为LO的顺序标志符,并在最后一封信件的数字后面添加“end”。
7.根据权利要求1所述的基于whisper协议的以太坊隐蔽通信方法,其特征在于,步骤8所述构建信封具体结合TTL、PoW、Version信息构建,信封主要结构包括:
(1)Version,表示当前信封加密方式的版本;
(2)Expiry,表示设定的本信封在网络中的过期时间,格式为UNIX时间,一旦当前时间超过此值,对应的信封将被各节点丢弃并不再做进一步转发;
(3)TTL,表示信封在网络中的生存时间;
(4)Topic,表示主题;
(5)AESNonce,表示采用AES对称加密算法时使用的nonce值,该值只在对称加密时存在;
(6)Data,表示加密后的消息即信体;
(7)EnvNonce,用于PoW计算。
8.根据权利要求1所述的基于whisper协议的以太坊隐蔽通信方法,其特征在于,步骤9所述接收方利用步骤1交互的主题从收到的信封中筛选出同主题的信封,并利用主题对应的密钥对信体进行解密获得有效载体payload和扩充部分padding,具体包括:
步骤9-1,接收方在自身的多个筛选器filter中将筛选标准设置为步骤1交互的主题,每接收一个信封,判断其主题与设置的主题是否相同,若不同则只进行转发,否则将信封保存在对应filter中;
步骤9-2,每个filter利用主题对应的密钥对信封进行解密,将信件的内容保存在本地等待系统访问,信件的内容包括payload和padding;在此过程中,若存在主题碰撞即其他通信方也使用同样的主题进行通信,此时接收方无法对信封进行解密,将该信封视为无关信封,只对其进行转发。
9.根据权利要求1所述的基于whisper协议的以太坊隐蔽通信方法,其特征在于,步骤11所述结合有效载体payload和解密信息PI还原原始密文信息T,具体包括:
步骤11-1,根据步骤10获得的解密信息PI获取密文索引集合IC和载体索引集合IP;
步骤11-2,以IP中的元素值作为下标,找出有效载体payload对应位置的字符,放入以IC中的元素值作为下标的密文对应位置。
10.根据权利要求1所述的基于whisper协议的以太坊隐蔽通信方法,其特征在于,步骤12所述接收方判断是否发生了信件丢失,若是则向邮件服务器申请重新获取丢失的信件并继续信息还原,具体包括:
步骤12-1,接收方对接收到的信件中包含的顺序标志符进行获取,判断信件数与标志符表示的总数是否相同,若相同表示未发生信件丢失,否则表示发生信件丢失,执行步骤12-2;
步骤12-2,接收方向邮件服务器提交身份信息,邮件服务器确认节点身份后建立二者的连接;
步骤12-3,接收方提供信件对应的信息,邮件服务器将对应的信件以p2p的形式直接发送给接收方,接收方无需再进行转发。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010452749.5A CN111654484B (zh) | 2020-05-26 | 2020-05-26 | 基于whisper协议的以太坊隐蔽通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010452749.5A CN111654484B (zh) | 2020-05-26 | 2020-05-26 | 基于whisper协议的以太坊隐蔽通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111654484A CN111654484A (zh) | 2020-09-11 |
CN111654484B true CN111654484B (zh) | 2022-02-15 |
Family
ID=72350835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010452749.5A Active CN111654484B (zh) | 2020-05-26 | 2020-05-26 | 基于whisper协议的以太坊隐蔽通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111654484B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112383526B (zh) * | 2020-11-06 | 2022-08-12 | 扬州大学 | 使用智能合约实现的区块链下的隐蔽通信方法 |
CN114598508B (zh) * | 2022-02-21 | 2023-06-27 | 北京航空航天大学 | 基于以太坊交易的隐蔽信息传输方法及装置 |
CN116132152B (zh) * | 2023-01-29 | 2024-06-14 | 北京理工大学 | 一种基于区块链公链的时间隐蔽信道技术 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108566379A (zh) * | 2018-03-15 | 2018-09-21 | 江苏科技大学 | P2p网络下基于协议字段冗余的隐蔽数据传输同步方法 |
CN109474589A (zh) * | 2018-11-05 | 2019-03-15 | 江苏大学 | 基于以太坊的隐私保护传输方法 |
CN109711836A (zh) * | 2018-11-15 | 2019-05-03 | 远光软件股份有限公司 | 一种交易的存储方法、存储网络和电子设备 |
CN110225016A (zh) * | 2019-05-31 | 2019-09-10 | 北京理工大学 | 一种基于区块链网络的数据隐蔽传输方法 |
CN110610418A (zh) * | 2018-06-15 | 2019-12-24 | 翟红鹰 | 基于区块链的交易状态查询方法、系统、设备及存储介质 |
-
2020
- 2020-05-26 CN CN202010452749.5A patent/CN111654484B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108566379A (zh) * | 2018-03-15 | 2018-09-21 | 江苏科技大学 | P2p网络下基于协议字段冗余的隐蔽数据传输同步方法 |
CN110610418A (zh) * | 2018-06-15 | 2019-12-24 | 翟红鹰 | 基于区块链的交易状态查询方法、系统、设备及存储介质 |
CN109474589A (zh) * | 2018-11-05 | 2019-03-15 | 江苏大学 | 基于以太坊的隐私保护传输方法 |
CN109711836A (zh) * | 2018-11-15 | 2019-05-03 | 远光软件股份有限公司 | 一种交易的存储方法、存储网络和电子设备 |
CN110225016A (zh) * | 2019-05-31 | 2019-09-10 | 北京理工大学 | 一种基于区块链网络的数据隐蔽传输方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111654484A (zh) | 2020-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111654484B (zh) | 基于whisper协议的以太坊隐蔽通信方法 | |
CN111818031B (zh) | 基于区块链的隐蔽通信消息安全编码方法、系统和介质 | |
JP4809766B2 (ja) | 損失を適応制御したデータストリームの認証方法及び装置 | |
JP2776491B2 (ja) | タグの決定方法及び装置 | |
Park et al. | Efficient multicast stream authentication using erasure codes | |
US10237248B2 (en) | Encoder, decoder and method | |
Castiglione et al. | An asynchronous covert channel using spam | |
JP5392102B2 (ja) | 無線ネットワークにおいてオーバヘッドを低減する装置及び方法 | |
CN111654511A (zh) | 一种链式数据加密方法、链式数据解密方法及相应的系统 | |
CN114710558B (zh) | 一种基于云存储的异步安全传输通道构建方法 | |
US20040109583A1 (en) | System and method for secret communication | |
Zhang et al. | An approach of covert communication based on the Ethereum whisper protocol in blockchain | |
CN114567427B (zh) | 一种区块链隐蔽数据分段传输方法 | |
CN107666491B (zh) | 基于对称加密的空地一体化网络的数据传输方法 | |
CN114785421B (zh) | 一种基于量子加密的im离线消息处理方法 | |
CN110233725B (zh) | 多源网络编码的同态无证书签名方法 | |
CN117314427A (zh) | 一种基于区块链备注的高效隐蔽通信方法及通信系统 | |
CN111931194A (zh) | 基于云计算的安防监控大数据处理方法及装置 | |
CN116866052A (zh) | 一种基于地址编码的高效区块链隐蔽通信方法 | |
Ganivev et al. | Improving data hiding methods in network steganography based on packet header manipulation | |
CN115225320B (zh) | 一种数据传输的加密和解密方法 | |
CN116389051A (zh) | 一种基于区块链的轻量级数据隐蔽传输方法 | |
CN108063828A (zh) | 基于p2p文件传输的网络隐蔽信道构造方法 | |
CN114726509B (zh) | 一种基于多区块链平台的数据隐蔽传输方法 | |
CN114389846B (zh) | 一种基于区块链多交易拆分的数据隐蔽传输方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |