主页 > imtokenapp专业版下载 > 【发明专利】基于vanitygen生成的特殊比特币地址的隐蔽通信方法正在审查中

【发明专利】基于vanitygen生成的特殊比特币地址的隐蔽通信方法正在审查中

imtokenapp专业版下载 2023-03-09 07:30:04

本发明公开了一种基于vanitygen生成的特殊比特币地址的隐蔽通信方法,包括:对隐蔽信息T进行加密,然后进行base58编码得到T';从 T' 中选择三个不同的字符作为关键字 key;使用vanitygen生成包含key的地址a,匹配T'和a,记录两者中相同字符的位置索引,将T'中匹配的字符替换为“*”;重复上述过程,直到T'中的所有字符都被替换,并将使用的地址信息和得到的索引信息拼接,得到解密信息R; R被分段存储在OP_RETURN字段中;获取交易信息后,拼接OP_RETURN内容并还原得到R;结合R和地址集恢复T';对T'进行解码和解密,还原出信息T。本发明方法简单,信息嵌入率和传输率高,也适用于工作量证明系统,具有良好的应用前景。

技术

本发明涉及信息隐藏领域,具体涉及一种基于vanitygen生成的特殊比特币地址的隐蔽通信方法。

背景技术

隐蔽通信是信息隐藏在通信行业中的应用。与传统的加密技术隐藏信息本身的内容不同,隐蔽通信更针对信息的存在。传统的隐蔽通信基于第三方中心服务器,采用中心化通道。通信过程易受攻击和干扰,通信信道易受监控。这种情况下,通信内容很容易泄露,攻击者也会通过流量分析获得通信者的身份信息。区块链去中心化系统作为近年兴起的一项技术,可以更好地规避中心化系统所面临的威胁。此外,它还具有去中心化、防篡改、匿名等特性。这些特性使得区块链在隐蔽通信中的应用具有不易被监控、通信接收方匿名化、高抗篡改和抗篡改等优点。 -干扰等。在区块链中,最具代表性的应用是比特币交易,它拥有大量的资源为隐蔽通信的实现提供条件。现阶段这方面的研究还很少,如何设计一种有效可行的基于区块链的隐蔽通信方法是非常有意义的。

Juha Partala 等人。提出了一种基于比特币公钥地址最低有效位的隐身通信方法。将信息转换成二进制后,用公钥地址的最低位存储一位二进制信息,通过比特币交易实现信息。传输[Partala J.Provally Secure Covert Communication on Blockchain[J].Cryptography,2018,2(3):18.].中国专利CN201811034819.4公开了一种区块链的隐蔽通信链式网络环境下的方法,本发明提出的具体模型首先对信息进行编码,形成调制序列与信息传输时间间隔序列的映射关系,然后用传输时间间隔序列来表示编码后的信息,最后根据生成的时间间隔集合发送信息,实现信息传输,上述方法有两个不足,一是使用最低有效位和时间间隔序列作为信息嵌入载体,两者的信息容量很小,对信息的影响很大。二是在传输大量信息时,两种方式都需要大量的信息传输次数,这不适用于基于工作量证明的比特币网络,平均区块确认时间长达十分钟,需要大量消耗。资源和时间。

发明内容

本发明的目的是提供一种基于区块链的信息嵌入率和传输率高、可行性高的隐蔽通信方法。

实现本发明目的的技术方案是:一种基于vanitygen生成的特殊比特币地址的隐蔽通信方法,该方法包括以下步骤:

步骤1:对要传输的秘密信息T进行初步加密;

步骤2,根据步骤1的加密结果进行base58编码,得到处理后的秘密信息T';

第三步,从秘密信息T'中选出3个不为“*”的不同字符组成关键字密钥;

第四步,结合关键字key和比特币地址生成软件vanitygen的相关命令,生成嵌入信息的比特币地址a,比特币地址a包含key;

步骤5,对秘密信息T'和比特币地址a进行字符匹配,找出相同的字符,一一对应记录它们对应的索引,形成信息索引数组IT'和地址索引数组 Ia ,并将 T' 中匹配的字符替换为 "*";

第6步,判断T'中是否有“*”以外的字符,如果有,返回第3步,否则,表示完全实现了信息的嵌入,继续执行以下步骤;

步骤7,将上述过程中得到的所有索引数组进行拼接,得到部分解密信息RI;

第八步:计算上面使用的每个比特币地址的哈希值,并按照比特币地址的使用顺序拼接哈希值,得到另一部分解密信息Ra;

步骤9,将解密信息RI和Ra拼接并加密得到最终的解密信息R;

第10步,根据比特币交易OP_RETURN字段的长度将R分成段,并为每个段添加一个序列标识;

比特币查询地址

步骤11:将包含序列标识的分段R段填充到每个事务的OP_RETURN字段中,并发起事务,实现信息传递;

步骤12,获取交易信息后,对OP_RETURN内容进行拼接转换,还原解密信息R;

步骤13,结合恢复的解密信息R和比特币地址集合,恢复秘密信息T';

在步骤14中,对恢复的秘密信息T'进行base58解码,并进行与步骤1对应的解密,得到原始秘密信息T。

与现有技术相比,本发明具有以下显着优点:1)本发明具有较高的信息嵌入和传输效率,传输相同信息需要更少的比特币地址和更少的交易;2)本发明在保证生成地址信息量的基础上,充分利用地址中的信息资源嵌入秘密信息,大大减少了地址生成所需的时间,提高了系统的整体效率;3)本发明大大减小了通信规模,通过少量事务即可传输大量信息,适用于工作量证明环境,具有更高的可行性。

下面结合附图对本发明作进一步详细说明。

图纸说明

图。图1为本发明基于vanitygen生成的特殊比特币地址的隐蔽通信方法流程图。

图。图2为本发明实施例的系统模型及架构示意图。

图。图3为本发明实施例的信息嵌入示意图。

图。图4为本发明隐藏信息嵌入界面示意图。

图。图5为本发明实施例的信息传输示意图。

图。图6为本发明提取隐藏信息的界面图。

图。图7为本发明实施例的信息提取示意图。

具体实现方法

为使本申请的目的、技术方案和优点更加清楚,下面结合附图和实施例对本申请作进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限制本申请。

在一个实施例中,结合图1,提供了一种基于由vanitygen生成的特殊比特币地址的隐蔽通信方法。整个系统模型和架构如图2所示,具体包括以下步骤:

比特币查询地址

步骤1:对要传输的秘密信息T进行初步加密;

步骤2,根据步骤1的加密结果进行base58编码(与比特币地址相同的编码方式),得到处理后的秘密信息T',与比特币地址结合,嵌入信息

步骤3,为了保证作为信息存储介质的比特币地址在T'中有更多的信息,从秘密信息T'中选择3个不为“*”的不同字符组成关键字密钥;

这里,特别是,如果秘密信息T'中除“*”外的字符少于3个,则根据实际数量确定密钥的长度Lk。如果只剩下一个字符,这个字符作为key,不会对系统产生什么影响,所以1≤Lk≤3,Lk的单位是byte。

第四步,结合关键字key和比特币地址生成软件vanitygen的相关命令生成嵌入信息的比特币地址a,作为信息嵌入载体,比特币地址a包含key;

在这里,密钥可以是地址中的任何位置。如果你指定它的位置,那么找到满足条件的地址会更加困难。如果密钥包含base58编码规则以外的字符,程序将继续运行但永远不会生成。符合条件的地址。

步骤5,对秘密信息T'和比特币地址a进行字符匹配,找出相同的字符,一一对应记录它们对应的索引,形成信息索引数组IT'和地址索引数组 Ia ,并将 T' 中匹配的字符替换为“*”以防止重复;

这里,两个索引数组IT'和Ia的元素个数应该相同,即相同位置的元素相互对应:

IT'[i]~Ia[i](i=0,1,2...)

在公式中,i是元素的索引。由于T'中匹配的字符被替换比特币查询地址,IT'中的索引值不一样,作为载体的地址a可以重复嵌入信息,所以Ia中的元素可以相同。

第6步,判断T'中是否有“*”以外的字符,如果有,返回第3步,否则,表示完全实现了信息的嵌入,继续执行以下步骤;

步骤7,将上述过程中得到的所有索引数组进行拼接,得到部分解密信息RI;

第八步:计算上面使用的每个比特币地址的哈希值,并按照比特币地址的使用顺序拼接哈希值,得到另一部分解密信息Ra;

步骤9,将解密信息RI和Ra拼接并加密得到最终的解密信息R;

步骤10,根据比特币交易的长度OP_RETURN(用于存放比特币交易时的备注信息),将R划分为段,并在每段中添加一个序列标识,用于后续解密信息R的恢复;

p>

步骤11:将包含序列标识的分段R段填充到每个事务的OP_RETURN字段中,并发起事务,实现信息传递;

比特币查询地址

步骤12,获取交易信息后,对OP_RETURN内容进行拼接转换,还原解密信息R;

步骤13,结合恢复的解密信息R和比特币地址集合,恢复秘密信息T';

在步骤14中,对恢复的秘密信息T'进行base58解码,并进行与步骤1对应的解密,得到原始秘密信息T。

进一步,在其中一种实施例中,在步骤2中描述的base58编码中,编码x字节所需的空间是为本步骤预留的空间大小S:

公式中S的单位是字节。

进一步,在其中一个实施例中,在步骤7中,将上述过程中得到的所有索引数组进行拼接,得到部分解密信息RI,具体过程包括:

在步骤7-1中,假设进行p轮字符匹配,完全实现信息的嵌入。此时信息索引数组和地址索引数组的个数都是p;获取信息索引数组IT'1、IT'2、...、IT'p和地址索引数组Ia1、Ia2、...、Iap; IT'i、Iai分别表示第i轮字符匹配对应的信息索引数组和地址索引数组,i=1,2,...,p;

步骤7-2:将所有索引数组按照信息索引和地址索引以及使用和生成的顺序整合成两个数组集合:信息索引数组集合地址索引数组集合

假设索引数组的顺序和地址的使用顺序相同,分别是1、2...,p下标表示,索引数组整合成一个数组集:

步骤7-3,拼接数组集得到部分解密信息

进一步,在其中一个实施例中,在步骤8中计算出上面使用的每个比特币地址的哈希值,并将哈希值按照比特币地址的使用顺序拼接得到另一部分解密信息Ra,包括:

在步骤8-1中,为了减少地址与哈希值的相关性,计算哈希值时只计算地址中长度为x的部分的值。选取每个比特币地址的最后x个字符,计算x个字符的hash值;

步骤8-2,检查是否发生hash冲突,如果发生,则将选中的部分比特币地址对应hash值前移x位,重新计算hash值。哈希值,后面加字符“/”表示该值为最后x位的哈希值;

步骤8-3,检查步骤8-2的第二次计算是否发生哈希冲突,如果是,按照步骤8-2的方式进行第三次移位计算,同时有在第二次计算中没有碰撞。的hash值,后面加上字符“//”表示这个值是最后2x到x位的值;执行这个过程,直到没有哈希冲突发生;

步骤8-4,将上述哈希值按照对应比特币地址的使用顺序拼接得到解密信息Ra,其形式为“Hash1/Hash2//Hash3///。 ..”。

进一步地,在其中一个实施例中,步骤9中的步骤1、中的加密所使用的加密方法是对称加密,包括DES、AES,或非对称加密,包括椭圆曲线加密。

进一步地,在其中一个实施例中,根据步骤10中比特币交易OP_RETURN字段的长度,将R划分为段,并在每个段中添加一个序列标识,具体包括:

比特币查询地址

步骤10-1,计算需要的比特币交易OP_RETURN字段个数,字段个数n的计算公式为:

其中,LR为解密信息R的总长度,以字节为单位;

步骤10-2,将解密信息R转换为16进制,分成n段,其中第n-1段长度为219字节,第n段长度为LR-(n-< @1)×219字节;

步骤10-3,在每个段前依次添加序列标识符“1”、“2”、...“n”,然后将每个段放入比特币交易OP_RETURN字段。

进一步,在其中一个实施例中,在步骤11中,将包含序列标识的分段R填充到每个事务中的OP_RETURN字段中,并发起事务以实现信息传递,具体包括:

步骤11-1,判断R段数n和使用的比特币地址数是否相同,如果相同,使用每个比特币地址进行一次交易,将每个R段填入每笔交易的OP_RETURN字段,如果R段数n小于使用的比特币地址数,则将多个比特币地址合并为一笔交易,保证两者数量相等,然后进行上述操作。如果 R 段数 n 大于使用的比特币地址数,则随机生成不相关的交易地址,以增加可用的 OP_RETURN 数量,并将每个 R 段填充到每个交易的 OP_RETURN 字段中;

步骤11-2,在交易中使用生成的比特币地址,填写对应的OP_RETURN字段并设置对应的金额。

进一步地,在其中一种实施例中,在步骤12中获取交易信息后,对OP_RETURN内容进行拼接转换,还原解密信息R,具体包括:

步骤12-1,根据每个OP_RETURN字段的序列标识对每个OP_RETURN字段进行排序,删除标识后拼接每个OP_RETURN段;

在步骤12-2中,将步骤12-1得到的结果从十六进制转换为字符串,并对其进行步骤9对应的解密,恢复解密后的信息R。

进一步地,在其中一个实施例中,步骤13结合恢复的解密信息R和比特币地址集合恢复秘密信息T',具体包括:

步骤13-1,将恢复的解密信息R分为地址信息Ra和索引信息RI;

步骤13-2,根据哈希顺序从地址信息Ra中找出对应的地址,并将这些地址按此顺序排列,还原信息嵌入时发送方使用的地址的正确顺序;想要的值是m"/"后,需要从使用的几个比特币地址中找到mx与(m-1)x bits hash值的倒数相同的地址,并放在相同顺序和位置作为哈希值;

步骤13-3:将索引信息划分为地址索引集和信息索引集。地址索引的元素表示一个字符在地址中的位置,该字符放在对应信息索引相同位置的元素所代表的T中。 ',结合各个索引集和步骤13-2中恢复的地址,可以恢复编码加密信息T'。

作为具体例子,在其中一个实施例中,进一步验证和解释本发明。本发明基于vanitygen生成的特殊比特币地址的隐蔽通信方法包括以下内容:

(1)使用DES对原始消息“Hello”进行加密,加密结果为b'9529f063366486a8'。

(2)以上结果为base58编码,结果为“84jBS2cMAB6Y9atVFS8Y9d”,标记为T',编码规则见表1。

比特币查询地址

表1 base58编码规则表

ValueCharacterValueCharacterValueCharacterValueCharacter0112233445566778899A10B11C12D13E14F15G16H17J18K19L20M21N22P23Q24R25S26T27U28V29W30X31Y32Z33a34b35c36d37e38f39g40h41i42j43k44l45m46n47p48q49r50s51t52u53v54w55x56y57z

(3)从编码结果T'中选择3个不是“*”的不同字符“S8Y”组成关键字key。

(4)结合关键字key和比特币地址生成软件vanitygen的相关命令,生成嵌入信息的比特币地址a。功能和命令如表2所示。

表2 vanitygen函数及对应命令

这里使用第一条命令,生成包含“S8Y”的地址“mg3ZvMMk8iZS8YCd7V8bw97nUYFX6ToUhK”。

(5)结合图3,对密文T'和地址a进行字符匹配,找出其中出现的相同字符。然后记录它们对应的索引IT'1=[0,4, 7 ,10,11,12,15,16,17,18,19,20,21] 和 Ia1=[8,11,5,28,13,21,17,26,11,8,13,21, 15 ],将T'中匹配的字符替换为“*”得到一个新的T'“*4jB*2c*AB***at*******”。

(6)根据步骤(5)判断没有嵌入所有信息,所以返回(3)重新获取key="B4a" ,并使用生成的新地址“moTHAXZGBZWMPvkGPbARvPUAbiggB4aWcX”结合图3进行信息嵌入,得到第二个索引IT'2=[29,8,32,4,8,30],Ia2=[1,3,6, 8,9,13] 并替换 T' 已经匹配的字符得到“**j**2********t********”,继续返回(3)直到所有信息已嵌入。

(7)将得到的所有索引信息整合成一个信息索引集和一个地址索引集,并串联起来作为部分解密信息RI。

(8)Calculate the hash value of the address in the order of use and concatenate it into another part of the decryption information Ra="1f93616bb2ea967efbe71e19127acfb8cba7163a/50cce6726fe77997e5ee061c62cbd8a02d198110/b647a71836223f1a6ca83780eb83f1a6ca83780".

(9)拼接加密RI和Ra作为最终解密信息R.

(10)根据R的长度计算所需的OP_RETURN字段个数n,其中R的长度为608字节,n按如下公式计算:

Available, 3 fields are required to store R.将R以219字节为单位进行分割,将其转换为十六进制,并在前面添加顺序标志,最终得到三个OP_RETURN字段分别为“01160555d96db046660957d3192e607535de56fdf2b4af438b77e2b1ac911378c77da1e58a33b5576d575db322b840d897eb7bc16c0f8d796e61a4164671d47244cc6cbc202509256d91d64e138c22a40330b6ba0d2d6dafa797c99e8af9b75a815d2f8911aaf0013f7cc421dbbcd ”、“02bc591e0d19898a5d196feb637c00a7f317314da6a66d9d0e724228f0a4fc9cb2e4021c8c3ea9828459c6d34fde64c41bf84fdcbf85b9cc9c1ca7df91b0dd3e960a79939b974fb5c6ac1915c5b6a72e9ece51c12d61cbbbedb8883d09c8c45a09581b200614c565e9f25fd6b69ef”和“031d7e058dc08c5fdd3713fcf85dde08e646a449e6b85764ddb88d8a0a2fba6fe21a0651d237c47ea7b6a7ce217e413e020e9fb840ae593480c1f90a39a3a518c2f158b0e984de8e436f1a745371233340276bf856c0”,上述步骤可Combined with the implementation in Figure 4, the address used and the fields of the generated OP_RETURN can be obtained by entering the message "Hello".

(11)将分割后的R填充到不同交易的OP_RETURN脚本中,使用地址“mg3ZvMMk8iZS8YCd7V8bw97nUYFX6ToUhK”、“moTHAXZGBZWMPvkGPbARvPUAbiggB4aWcX”和“mpbscxB2eNZBFDui89E7wV85j2tPVoGZ2d”地址进行交易,结合内嵌秘密信息进行交易同图1。通过。

(12) 过滤发送方发起的交易获取交易信息,按照顺序标识对每个OP_RETURN字段进行排序,删除标识后拼接每个段,将十六进制转换结果拼接为字符串并进行解密即可得到解密信息R=“1f93616bb2ea967efbe71e19127acfb8cba7163a/50cce6726fe77997e5ee061c62cbd8a02d898110/b647a71836223f1a6ca8378eb832298d917d4030/addr_index=[[8,11,5,28,13,21,17,26,11,8,13,21 ,15] ,[29,8,32,4,8,30],[24,7,26]]text_index=[[0,4,7,10,11,12,15,16,17,18, 19,20 ,21],[1,3,6,8,9,13],[2,5,14]]",其中索引集是和

(13)结合图6,使用索引和地址还原加密编码信息T'"84jBS2cMAB6Y9atVFS8Y9d"。

(14)通过base58解码解密T'可以恢复秘密信息“Hello”。上面的步骤可以结合图7来实现。输入使用的地址就可以恢复原始信息以及所有 OP_RETURN 字段的内容。.

从上述实施例可以看出,本发明操作简单,信息嵌入率和传输率高,充分利用地址中的信息资源,以字节为单位嵌入秘密信息,大大减少了地址数量和传输速率。生成地址所需的时间,提高了系统的整体效率,减少了通信规模,通过少量交易即可传输大量信息,适用于工作量证明环境比特币查询地址,具有更高的可行性和良好的应用前景。

本发明的基本原理、主要特征和优点已经在上面进行了展示和描述。本领域技术人员应当理解,本发明不受上述实施例的限制。上述例子和描述仅说明本发明的原理。在不脱离本发明的精神和范围的情况下,本发明还将有各种变化和改进,旨在落入所要求保护的发明的范围内。本发明要求保护的范围由所附权利要求及其等同物来定义。