CN111698222A - 基于vanitygen生成的特殊比特币地址的隐蔽通信方法 - Google Patents

基于vanitygen生成的特殊比特币地址的隐蔽通信方法 Download PDF

Info

Publication number
CN111698222A
CN111698222A CN202010434449.4A CN202010434449A CN111698222A CN 111698222 A CN111698222 A CN 111698222A CN 202010434449 A CN202010434449 A CN 202010434449A CN 111698222 A CN111698222 A CN 111698222A
Authority
CN
China
Prior art keywords
information
address
index
transaction
bitcoin
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.)
Granted
Application number
CN202010434449.4A
Other languages
English (en)
Other versions
CN111698222B (zh
Inventor
张乐君
张智杰
薛霄
陈慧灵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yangzhou University
Original Assignee
Yangzhou University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yangzhou University filed Critical Yangzhou University
Priority to CN202010434449.4A priority Critical patent/CN111698222B/zh
Publication of CN111698222A publication Critical patent/CN111698222A/zh
Application granted granted Critical
Publication of CN111698222B publication Critical patent/CN111698222B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange

Abstract

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

Description

基于vanitygen生成的特殊比特币地址的隐蔽通信方法
技术领域
本发明涉及信息隐藏领域,特别涉及一种基于vanitygen生成的特殊比特币地址的隐蔽通信方法。
背景技术
隐蔽通信就是信息隐藏在通信行业的应用,和传统加密技术对信息本身内容进行隐藏不同,隐蔽通信更加针对于信息的存在性。传统的隐蔽通信基于第三方中心服务器,采用集中化信道,通信过程易受到攻击和干扰,通信信道易受到监听。在此情况下,通信的内容容易泄露,通信者的身份信息也会被攻击者通过流量分析的方式获取。区块链作为近几年兴起的技术,其去中心化的系统可以较好的避免中心化系统面临的威胁。此外,它还具有去中心化、防篡改、匿名化等特点,这些特点使得区块链在隐蔽通信上的应用具有如不易受到监听、通信接收方匿名化、高抗篡改和抗干扰性等优势。在区块链中,最具代表性的应用就是比特币交易,其拥有大量的资源为实现隐蔽通信提供了条件。现阶段关于这方面的研究还很少,如何设计出一种有效可行的基于区块链的隐蔽通信方式是十分有意义的。
Juha Partala等提出了一种基于比特币公钥地址最低有效位的隐秘通信方法,将信息转换为二进制后使用公钥地址最低有效位存储一位二进制信息,并通过比特币交易实现信息传递[Partala J.Provably Secure Covert Communication on Blockchain[J].Cryptography,2018,2(3):18.]。中国专利CN201811034819.4公开了一种区块链网络环境下的隐蔽通信方法,该发明中提出的具体模型首先将信息进行编码处理,并将调制序列与信息发送时间间隔序列形成映射,之后采用此发送时间间隔序列表示编码后的信息,最后根据生成的时间间隔集发送信息实现信息传递。上述的方法存在着两方面的不足,一是使用最低有效位和时间间隔序列作为信息嵌入载体,二者的信息容量很小,极大地影响了信息的嵌入效率;二是当传递大量信息时,两种方法均需要大量的信息传递次数,这对于基于工作量证明、区块确认平均时间长达十分钟的比特币网络并不适用,需要消耗大量资源和时间。
发明内容
本发明的目的在于提供一种基于区块链的高信息嵌入率和传递率、高可行性的隐蔽通信方法。
实现本发明目的的技术解决方案为:一种基于vanitygen生成的特殊比特币地址的隐蔽通信方法,所述方法包括以下步骤:
步骤1,对要传递的隐秘信息T进行初步加密;
步骤2,根据步骤1加密后的结果进行base58编码,获得处理后的隐秘信息T';
步骤3,从隐秘信息T'中选取3个不同的且均不是“*”的字符组成关键词key;
步骤4,结合关键词key和比特币地址生成软件vanitygen的相关命令,生成用于嵌入信息的比特币地址a,该比特币地址a中包含key;
步骤5,对所述隐秘信息T'与比特币地址a进行字符匹配,找出其中相同的字符,一一对应分别记录它们对应的索引,形成信息索引数组IT'和地址索引数组Ia,并将T'中已匹配的字符用“*”替代;
步骤6,判断T'中是否还存在非“*”字符,若存在,返回执行步骤3,否则表示完全实现信息的嵌入,继续执行下述步骤;
步骤7,对上述过程得到的所有索引数组进行拼接获得部分解密信息RI
步骤8,计算上述使用的每个比特币地址的哈希值,并按照比特币地址使用顺序将哈希值拼接,获得另一部分解密信息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个不同的且均不是“*”的字符组成关键词key;
这里,特殊地,若隐秘信息T'中除“*”外不足3个字符,则根据实际数量确定key的长度Lk,如仅剩一个字符便将此字符作为key,这并不会对系统造成什么影响,因此1≤Lk≤3,Lk的单位为字节。
步骤4,结合关键词key和比特币地址生成软件vanitygen的相关命令,生成用于嵌入信息的比特币地址a,作为信息嵌入载体,该比特币地址a中包含key;
这里,key可以在地址的任意位置,如果指定其位置,找出满足条件的地址会相对更加困难,如果key中包含base58编码规则以外的字符,此程序会一直运行下去但是永远无法生成满足条件的地址。
步骤5,对所述隐秘信息T'与比特币地址a进行字符匹配,找出其中相同的字符,一一对应分别记录它们对应的索引,形成信息索引数组IT'和地址索引数组Ia,并将T'中已匹配的字符用“*”替代,防止重复;
这里,两个索引数组IT'和Ia中元素的个数理应相同,即
Figure BDA0002501705250000042
且相同位置的元素互相对应:
IT'[i]~Ia[i](i=0,1,2…)
式中,i为元素的索引,由于对T'中已匹配的字符进行了替换,因此在IT'中的索引不存在值相同的情况,而作为载体的地址a可以重复嵌入信息,因此Ia中的元素可以相同。
步骤6,判断T'中是否还存在非“*”字符,若存在,返回执行步骤3,否则表示完全实现信息的嵌入,继续执行下述步骤;
步骤7,对上述过程得到的所有索引数组进行拼接获得部分解密信息RI
步骤8,计算上述使用的每个比特币地址的哈希值,并按照比特币地址使用顺序将哈希值拼接,获得另一部分解密信息Ra
步骤9,拼接所述解密信息RI和Ra并进行加密获得最终的解密信息R;
步骤10,根据比特币交易OP_RETURN(比特币交易时用于存放备注信息)字段长度,将R进行分段,并在每段中添加顺序标识符以便后续解密信息R的还原;
步骤11,将分段后且包含顺序标识符的R片段填入各个交易中的OP_RETURN字段,发起交易实现信息传递;
步骤12,获取交易信息后对OP_RETURN内容进行拼接转换,还原解密信息R;
步骤13,结合还原的解密信息R和比特币地址集合还原隐秘信息T';
步骤14,对还原的隐秘信息T'进行base58解码和步骤1对应的解密获得原始隐秘信息T。
进一步地,在其中一个实施例中,步骤2所述的base58编码,其编码x字节所需空间即为此步骤预留的空间大小S为:
Figure BDA0002501705250000041
式中,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,将所有索引数组按照信息索引和地址索引以及使用和生成顺序分别整合为两个数组集合:信息索引数组集合
Figure BDA0002501705250000051
地址索引数组集合
Figure BDA0002501705250000052
假设索引数组的顺序和地址的使用顺序相同,均为下标所示的1、2...、p,则将索引数组整合为数组集合:
Figure BDA0002501705250000053
步骤7-3,拼接数组集合
Figure BDA0002501705250000054
获得部分解密信息
Figure BDA0002501705250000055
进一步地,在其中一个实施例中,步骤8所述计算上述使用的每个比特币地址的哈希值,并按照比特币地址使用顺序将哈希值拼接,获得另一部分解密信息Ra,具体包括:
步骤8-1,为了降低地址和哈希值之间的关联性,计算哈希值时仅计算地址中长度为x的一部分的值。选取各个比特币地址的最后x位字符,并计算该x位字符的哈希值;
步骤8-2,检测是否发生哈希碰撞,若是,则将该哈希值对应的比特币地址选取的部分往前移x位并重新计算哈希值,同时针对未发生碰撞的哈希值,在其后添加字符“/”表示此值为最后x位的哈希值;
步骤8-3,检测步骤8-2中二次计算是否发生哈希碰撞,若是则以步骤8-2的方式进行第三次移位和计算,同时针对二次计算中未发生碰撞的哈希值,在其后添加字符“//”表示此值是后2x到x位的值;依此过程执行,直至不发生哈希碰撞;
步骤8-4,将上述哈希值按照对应比特币地址使用顺序进行拼接,获得解密信息Ra,Ra形如“Hash1/Hash2//Hash3///......”。
进一步地,在其中一个实施例中,步骤1、步骤9中所述加密采用的加密方式为对称加密,包括DES、AES,或非对称加密,包括椭圆曲线加密。
进一步地,在其中一个实施例中,步骤10所述根据比特币交易OP_RETURN字段长度,将R进行分段,并在每段中添加顺序标识符,具体包括:
步骤10-1,计算所需比特币交易OP_RETURN字段个数,字段个数n计算公式为:
Figure BDA0002501705250000061
式中,LR为所述解密信息R的总长度,单位为字节;
步骤10-2,将所述解密信息R转换为十六进制并分为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位哈希值与此值相同的地址,并将其置于与哈希值同样的顺序和位置;
步骤13-3,将索引信息分为地址索引集合
Figure BDA0002501705250000071
和信息索引集合
Figure BDA0002501705250000072
其中地址索引的元素代表地址中某个字符的位置,将此字符放入对应信息索引同位置的元素所代表的T'中的位置,结合各个索引集合和步骤13-2还原出的地址即可还原出编码和加密后的信息T'。
作为一种具体示例,在其中一个实施例中,对本发明进行进一步验证说明。本发明的基于vanitygen生成的特殊比特币地址的隐蔽通信方法,包括以下内容:
(1)采用DES对原始信息“Hello”进行加密,加密后的结果为b‘9529f063366486a8’。
(2)对上述结果进行base58编码,结果为“84jBS2cMAB6Y9atVFS8Y9d”,将其记为T'。编码规则如表1所示。
表1 base58编码规则表
Value Character Value Character Value Character Value Character
0 1 1 2 2 3 3 4
4 5 5 6 6 7 7 8
8 9 9 A 10 B 11 C
12 D 13 E 14 F 15 G
16 H 17 J 18 K 19 L
20 M 21 N 22 P 23 Q
24 R 25 S 26 T 27 U
28 V 29 W 30 X 31 Y
32 Z 33 a 34 b 35 c
36 d 37 e 38 f 39 g
40 h 41 i 42 j 43 k
44 l 45 m 46 n 47 p
48 q 49 r 50 s 51 t
52 u 53 v 54 w 55 x
56 y 57 z
(3)从编码结果T'中挑选3个不同且非“*”的字符“S8Y”构成关键字key。
(4)结合关键词key和比特币地址生成软件vanitygen的相关命令,生成用于嵌入信息的比特币地址a,功能和命令如表2所示.
表2 vanitygen功能及对应命令
Figure BDA0002501705250000081
在此使用第一个命令,生成了包含“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)将得到的所有索引信息整合为信息索引集合
Figure BDA0002501705250000082
Figure BDA0002501705250000083
和地址索引集合
Figure BDA0002501705250000084
Figure BDA0002501705250000085
并将其拼接后作为部分解密信息RI
(8)按照使用顺序计算地址的哈希值并将其拼接为另一部分解密信息Ra=“1f93616bb2ea967efbe71e19127acfb8cba7163a/50cce6726fe77997e5ee061c62cbd8a02d898110/b647a71836223f1a6ca8378eb832298d917d4030/”。
(9)将RI和Ra拼接并加密作为最终解密信息R。
(10)根据R的长度计算所需OP_RETURN字段数n,其中,R长度为608字节,由下式计算n:
Figure BDA0002501705250000091
可得,需要3个字段对R进行存放。将R以219字节为单位进行分割,将其转换为十六进制,并在前面添加顺序标志,最终得到三个OP_RETURN字段分别为“01160555d96db046660957d3192e607535de56fdf2b4af438b77e2b1ac911378c77da1e58a33b5576d575db322b840d897eb7bc16c0f8d796e61a4164671d47244cc6cbc202509256d91d64e138c22a40330b6ba0d2d6dafa797c99e8af9b75a815d2f8911aaf0013f7cc421dbbcd”、“02bc591e0d19898a5d196feb637c00a7f317314da6a66d9d0e724228f0a4fc9cb2e4021c8c3ea9828459c6d34fde64c41bf84fdcbf85b9cc9c1ca7df91b0dd3e960a79939b974fb5c6ac1915c5b6a72e9ece51c12d61cbbbedb8883d09c8c45a09581b200614c565e9f25fd6b69ef”和“031d7e058dc08c5fdd3713fcf85dde08e646a449e6b85764ddb88d8a0a2fba6fe21a0651d237c47ea7b6a7ce217e413e020e9fb840ae593480c1f90a39a3a518c2f158b0e984de8e436f1a745371233340276bf856c0”,上述步骤可结合图4实现,输入消息“Hello”即可获取使用的地址和生成的OP_RETURN各字段。
(11)将分割后的R填入不同交易的OP_RETURN脚本,并使用嵌入隐秘信息的地址“mg3ZvMMk8iZS8YCd7V8bw97nUYFX6ToUhK”、“moTHAXZGBZWMPvkGPbARvPUAbiggB4aWcX”以及“mpbscxB2eNZBFDui89E7wV85j2tPVoGZ2d”进行交易,结合图5实现隐秘信息传递。
(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]]”,其中索引集合分别为
Figure BDA0002501705250000092
Figure BDA0002501705250000093
(13)结合图6,使用索引和地址还原出加密和编码后的信息T'“84jBS2cMAB6Y9atVFS8Y9d”。
(14)对T'进行base58解码和解密即可还原出隐秘信息“Hello”,上述步骤可结合图7实现,输入使用的地址和所有OP_RETURN字段内容即可还原原始信息。
由上述实施例可知本发明操作简单,信息嵌入率和传递率高,充分利用了地址中的信息资源以字节为单位嵌入隐秘信息,大大减少地址数量和生成地址所需的时间,提高了系统整体的效率,缩减了通信规模,能够将大量信息通过少数几笔交易传递,适用于工作量证明环境,具有更高的可行性和具有良好的应用前景。
以上显示和描述了本发明的基本原理、主要特征及优点。本行业的技术人员应该了解,本发明不受上述实例的限制,上述实例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

Claims (10)

1.一种基于vanitygen生成的特殊比特币地址的隐蔽通信方法,其特征在于,所述方法包括以下步骤:
步骤1,对要传递的隐秘信息T进行初步加密;
步骤2,根据步骤1加密后的结果进行base58编码,获得处理后的隐秘信息T';
步骤3,从隐秘信息T'中选取3个不同的且均不是“*”的字符组成关键词key;
步骤4,结合关键词key和比特币地址生成软件vanitygen的相关命令,生成用于嵌入信息的比特币地址a,该比特币地址a中包含key;
步骤5,对所述隐秘信息T'与比特币地址a进行字符匹配,找出其中相同的字符,一一对应分别记录它们对应的索引,形成信息索引数组IT'和地址索引数组Ia,并将T'中已匹配的字符用“*”替代;
步骤6,判断T'中是否还存在非“*”字符,若存在,返回执行步骤3,否则表示完全实现信息的嵌入,继续执行下述步骤;
步骤7,对上述过程得到的所有索引数组进行拼接获得部分解密信息RI
步骤8,计算上述使用的每个比特币地址的哈希值,并按照比特币地址使用顺序将哈希值拼接,获得另一部分解密信息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。
2.根据权利要求1所述的基于vanitygen生成的特殊比特币地址的隐蔽通信方法,其特征在于,步骤2所述的base58编码,其编码x字节所需空间即为此步骤预留的空间大小S为:
Figure FDA0002501705240000021
式中,S的单位为字节。
3.根据权利要求1所述的基于vanitygen生成的特殊比特币地址的隐蔽通信方法,其特征在于,步骤3所述从隐秘信息T'中选取3个不同的且均不是“*”的字符组成关键词key,特殊地,若隐秘信息T'中除“*”外不足3个字符,则根据实际数量确定key的长度Lk,1≤Lk≤3,Lk的单位为字节。
4.根据权利要求1所述的基于vanitygen生成的特殊比特币地址的隐蔽通信方法,其特征在于,步骤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,将所有索引数组按照信息索引和地址索引以及使用和生成顺序分别整合为两个数组集合:信息索引数组集合
Figure FDA0002501705240000022
地址索引数组集合
Figure FDA0002501705240000023
假设索引数组的顺序和地址的使用顺序相同,均为下标所示的1、2...、p,则将索引数组整合为数组集合:
Figure FDA0002501705240000024
步骤7-3,拼接数组集合
Figure FDA0002501705240000025
获得部分解密信息
Figure FDA0002501705240000026
5.根据权利要求1所述的基于vanitygen生成的特殊比特币地址的隐蔽通信方法,其特征在于,步骤8所述计算上述使用的每个比特币地址的哈希值,并按照比特币地址使用顺序将哈希值拼接,获得另一部分解密信息Ra,具体包括:
步骤8-1,选取各个比特币地址的最后x位字符,并计算该x位字符的哈希值;
步骤8-2,检测是否发生哈希碰撞,若是,则将该哈希值对应的比特币地址选取的部分往前移x位并重新计算哈希值,同时针对未发生碰撞的哈希值,在其后添加字符“/”表示此值为最后x位的哈希值;
步骤8-3,检测步骤8-2中二次计算是否发生哈希碰撞,若是则以步骤8-2的方式进行第三次移位和计算,同时针对二次计算中未发生碰撞的哈希值,在其后添加字符“//”表示此值是后2x到x位的值;依此过程执行,直至不发生哈希碰撞;
步骤8-4,将上述哈希值按照对应比特币地址使用顺序进行拼接,获得解密信息Ra,Ra形如“Hash1/Hash2//Hash3///......”。
6.根据权利要求1所述的基于vanitygen生成的特殊比特币地址的隐蔽通信方法,其特征在于,步骤1、步骤9中所述加密采用的加密方式为对称加密,包括DES、AES,或非对称加密,包括椭圆曲线加密。
7.根据权利要求1所述的基于vanitygen生成的特殊比特币地址的隐蔽通信方法,其特征在于,步骤10所述根据比特币交易OP_RETURN字段长度,将R进行分段,并在每段中添加顺序标识符,具体包括:
步骤10-1,计算所需比特币交易OP_RETURN字段个数,字段个数n计算公式为:
Figure FDA0002501705240000031
式中,LR为所述解密信息R的总长度,单位为字节;
步骤10-2,将所述解密信息R转换为十六进制并分为n段,其中前n-1段长度为219字节,第n段长度为LR-(n-1)×219字节;
步骤10-3,按照顺序在各段前加入顺序标识符“1”、“2”、…“n”,之后将各段放入比特币交易OP_RETURN字段。
8.根据权利要求1或7所述的基于vanitygen生成的特殊比特币地址的隐蔽通信方法,其特征在于,步骤11所述将分段后且包含顺序标识符的R填入各个交易中的OP_RETURN字段,发起交易实现信息传递,具体包括:
步骤11-1,判断R片段数n和使用的比特币地址数是否相同,若相同则使用每一个比特币地址进行一笔交易,并将各个R片段填入每笔交易的OP_RETURN字段,若R片段数n小于使用的比特币地址数,则将多个比特币地址整合为一笔交易以保证二者数量相等,再执行上述操作,若R片段数n大于使用的比特币地址数,则随机生成无关地址进行交易以增加可用的OP_RETURN数并将各个R片段填入每笔交易的OP_RETURN字段;
步骤11-2,在交易中使用生成的比特币地址,填写对应的OP_RETURN字段并设置相应金额。
9.根据权利要求1或7所述的基于vanitygen生成的特殊比特币地址的隐蔽通信方法,其特征在于,步骤12所述获取交易信息后对OP_RETURN内容进行拼接转换,还原解密信息R,具体包括:
步骤12-1,根据各OP_RETURN字段顺序标识符将各OP_RETURN字段排序,并在删除标识符后将各OP_RETURN段拼接;
步骤12-2,将步骤12-1获得的结果从十六进制转为字符串,并对其进行步骤9对应的解密从而还原解密信息R。
10.根据权利要求1或5所述的基于vanitygen生成的特殊比特币地址的隐蔽通信方法,其特征在于,步骤13所述结合还原的解密信息R和比特币地址集合还原隐秘信息T',具体包括:
步骤13-1,将还原的解密信息R分为地址信息Ra和索引信息RI
步骤13-2,按照哈希排列顺序从地址信息Ra中找出对应地址,并将这些地址按照此顺序进行排列以还原出发送方在信息嵌入时所使用的正确地址顺序;若哈希值后为m个“/”,则需从使用的若干比特币地址中找出倒数mx到(m-1)x位哈希值与此值相同的地址,并将其置于与哈希值同样的顺序和位置;
步骤13-3,将索引信息分为地址索引集合
Figure FDA0002501705240000041
和信息索引集合
Figure FDA0002501705240000042
其中地址索引的元素代表地址中某个字符的位置,将此字符放入对应信息索引同位置的元素所代表的T'中的位置,结合各个索引集合和步骤13-2还原出的地址即可还原出编码和加密后的信息T'。
CN202010434449.4A 2020-05-21 2020-05-21 基于vanitygen生成的特殊比特币地址的隐蔽通信方法 Active CN111698222B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010434449.4A CN111698222B (zh) 2020-05-21 2020-05-21 基于vanitygen生成的特殊比特币地址的隐蔽通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010434449.4A CN111698222B (zh) 2020-05-21 2020-05-21 基于vanitygen生成的特殊比特币地址的隐蔽通信方法

Publications (2)

Publication Number Publication Date
CN111698222A true CN111698222A (zh) 2020-09-22
CN111698222B CN111698222B (zh) 2022-06-07

Family

ID=72478052

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010434449.4A Active CN111698222B (zh) 2020-05-21 2020-05-21 基于vanitygen生成的特殊比特币地址的隐蔽通信方法

Country Status (1)

Country Link
CN (1) CN111698222B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112600665A (zh) * 2020-12-25 2021-04-02 江苏通付盾区块链科技有限公司 一种基于区块链和加密技术的隐蔽通信方法、装置及系统
CN113014590A (zh) * 2021-03-08 2021-06-22 中电积至(海南)信息技术有限公司 一种加密流媒体网络流量的解密方法和装置
CN113628113A (zh) * 2021-08-11 2021-11-09 科大讯飞股份有限公司 一种图像拼接方法及其相关设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107612678A (zh) * 2017-08-18 2018-01-19 华侨大学 一种基于网络拓扑结构图的隐写方法
CN107689226A (zh) * 2017-08-29 2018-02-13 中国民航大学 基于iLBC编码的一种小容量语音信息隐藏方法
CN109257346A (zh) * 2018-09-10 2019-01-22 中山大学 基于区块链的隐蔽传输系统
CN109672661A (zh) * 2018-10-09 2019-04-23 中南林业科技大学 一种基于区块链的防篡改隐蔽通信方法、系统及平台

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107612678A (zh) * 2017-08-18 2018-01-19 华侨大学 一种基于网络拓扑结构图的隐写方法
CN107689226A (zh) * 2017-08-29 2018-02-13 中国民航大学 基于iLBC编码的一种小容量语音信息隐藏方法
CN109257346A (zh) * 2018-09-10 2019-01-22 中山大学 基于区块链的隐蔽传输系统
CN109672661A (zh) * 2018-10-09 2019-04-23 中南林业科技大学 一种基于区块链的防篡改隐蔽通信方法、系统及平台

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112600665A (zh) * 2020-12-25 2021-04-02 江苏通付盾区块链科技有限公司 一种基于区块链和加密技术的隐蔽通信方法、装置及系统
CN112600665B (zh) * 2020-12-25 2023-12-01 江苏通付盾区块链科技有限公司 一种基于区块链和加密技术的隐蔽通信方法、装置及系统
CN113014590A (zh) * 2021-03-08 2021-06-22 中电积至(海南)信息技术有限公司 一种加密流媒体网络流量的解密方法和装置
CN113628113A (zh) * 2021-08-11 2021-11-09 科大讯飞股份有限公司 一种图像拼接方法及其相关设备

Also Published As

Publication number Publication date
CN111698222B (zh) 2022-06-07

Similar Documents

Publication Publication Date Title
CN111698222B (zh) 基于vanitygen生成的特殊比特币地址的隐蔽通信方法
CN104917747B (zh) 一种隐秘通信方法
US5757913A (en) Method and apparatus for data authentication in a data communication environment
US20120134491A1 (en) Cloud Storage Data Encryption Method, Apparatus and System
CN1139221C (zh) 数据的加密方法及设备
CN110610105B (zh) 一种云环境下基于秘密共享的三维模型文件的认证方法
US8457304B2 (en) Efficient encoding processes and apparatus
CN102904711B (zh) 信息加密方法
CN106874516A (zh) 一种云存储中基于kcb树和布隆过滤器的高效密文检索方法
CN107911354B (zh) 一种复合并行数据加密方法
CN114338038B (zh) 区块链数据保密查询的存储系统及不经意传输方法
CN115514469B (zh) 一种信息加密保护方法
CN114244498A (zh) 一种具有前向安全的动态可搜索公钥加密方法
Wu et al. Encryption of accounting data using DES algorithm in computing environment
CN112804046B (zh) 一种基于区块链私钥映射的无载体隐写方法及系统
Rahim et al. An application data security with lempel-ziv welch and blowfish
WO2014089843A1 (zh) 一种数据加密、解密的方法及设备
CN116319117B (zh) 一种网络安全信息数据的实时分析监控方法
CN111027081B (zh) 基于特征映射的文本无载体信息隐藏方法
Yao Hybrid Encryption Scheme for Hospital Financial Data Based on Noekeon Algorithm
CN107566123A (zh) Pptp vpn口令校验方法及计算机可读存储介质
Chen et al. Exploring Unobservable Blockchain-based Covert Channel for Censorship-Resistant Systems
KR20100003093A (ko) 암호문 크기를 줄이기 위한 공개키 기반의 검색가능암호문생성 방법과, 그에 따른 공개키 기반의 데이터 검색 방법
Preneel et al. Security analysis of the message authenticator algorithm (MAA)
CN101364868A (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