本发明涉及互联网技术领域,尤其涉及一种信息发送方法、处理方法及装置。
背景技术:
匿名通信在互联网应用中需求广泛,例如电子投票、网络银行、电子证券交易和电子商务等。用户希望在进行数据传输时保护通信用户的身份信息,防止攻击者监听和分析通信数据。而在传统的互联网中,每一个用户使用网络服务时都拥有唯一的网络协议(internetprotocol,ip)地址,每一个传输报文都包含数据源ip地址和目的ip地址。攻击者可以通过监听和分析网络中的传输报文发现报文对应的发送者和接收者,因此很难实现匿名通信。
现有的匿名通信机制主要包括洋葱(tor)网络匿名通信、虚拟专用网络(virtualprivatenetwork,vpn)加密匿名通信和比特信(bitmessage)匿名通信等。对于tor网络匿名通信,其匿名性与洋葱节点数量正相关,因此需要维护大规模的基础设施,而且,tor网络极易受到恶意节点的威胁,当tor网络中的任一节点为攻击者建造的恶意节点时,便会威胁到tor网络的信息传递路径以及信息传递的匿名性。对于vpn加密匿名通信,存在于tor网络类似的问题,其也需要额外的vpn基础设施,而且用户支付vpn服务费用的时候,也容易造成身份信息的泄露,此外,vpn服务的供应商也存在会被监管的风险。对于比特信匿名通信,其需要专门构建一个用于通信的对等网络(peertopeer,p2p),根据p2p网络中的节点地址进行节点间的通信,虽然比特信匿名通信可以利用p2p网络中节点地址的“匿名性”保证通信的匿名性,但,目前已有大量的研究证明p2p网络中的节点地址的匿名性存在缺陷,存在多种方法可以窥见节点地址与用户真实身份相关联。
综上,现有的匿名信息通信方法都存在着匿名性不足的问题。
技术实现要素:
本发明提供一种信息发送方法、处理方法及装置,用以提高匿名信息通信的匿名性。
本发明实施例提供一种信息发送方法,包括:
接收用户输入的待传输信息和传输目标;
获取所述传输目标的加密密钥,并使用所述加密密钥对所述待传输信息进行加密;
将加密后的待传输信息作为第一交易信息的附加信息参数;所述第一交易信息的交易目标与所述传输目标不同;所述第一交易信息的手续费参数设置为第一特定值,所述第一特定值用于指示区块链系统中的记账节点不记录所述第一交易信息;
通过所述区块链系统发送所述第一交易信息。
可选的,通过所述区块链系统发送所述第一交易信息之后,还包括:
在预设时间间隔内收到所述传输目标发送的响应消息时,确认所述第一交易信息发送成功。
可选的,还包括:
在预设时间间隔内未收到所述传输目标发送的响应消息时,重新发送第二交易信息;所述第二交易信息的附加信息参数为加密后的待传输信息;所述第二交易信息的手续费参数为第二特定值,所述第二特定值用于指示区块链系统中的记账节点记录所述第二交易信息。
可选的,将加密后的待传输信息作为交易信息的附加信息参数之后,还包括:
生成公私钥对;
利用所述公私钥对中的私钥对所述第一交易信息进行签名;经过签名后的所述第一交易信息中包含所述公私钥对中的公钥信息。
本发明实施例提供一种信息处理方法,包括:
传输节点接收区块链系统传输来的交易信息;所述交易信息的交易目标与传输目标不同;所述交易信息的附加信息参数为使用所述传输目标的加密密钥加密后的待传输信息;所述交易信息的手续费参数为第一特定值,所述第一特定值用于指示所述区块链系统中的记账节点不记录所述第一交易信息;
所述传输节点使用自身密钥解密所述第一交易信息中的附加信息参数,在成功解密时,提取所述附加信息参数中的信息内容。
可选的,在成功解密时,提取所述附加信息参数中的信息内容之后,还包括:
构造第三交易信息;所述第三交易信息的附加信息参数为根据发送所述第一交易信息的发送方的加密密钥加密后的响应消息;
向所述区块链系统发送所述第三交易信息。
可选的,还包括:
所述传输节点提取所述区块链系统中各节点账本的第二交易信息记录;
所述传输节点使用自身密钥解密所述第二交易信息中的附加信息参数,在成功解密时,提取所述附加信息参数中的信息内容。
可选的,所述传输节点使用自身密钥解密所述第一交易信息中的附加信息参数之前,还包括:
获取所述第一交易信息中的公钥信息;所述公钥为所述发送方生成的公私钥对中的公钥;
根据所述公钥验证所述第一交易信息的签名;
在验证通过时,使用自身密钥解密所述第一交易信息中的附加信息参数。
可选的,还包括:
在解密未成功时,继续转发所述第一交易信息。
本发明实施例提供一种信息发送装置,包括:
收发单元,用于接收用户输入的待传输信息和传输目标;
处理单元,用于获取所述传输目标的加密密钥,并使用所述加密密钥对所述待传输信息进行加密;
所述处理单元,还用于将加密后的待传输信息作为第一交易信息的附加信息参数;所述第一交易信息的交易目标与所述传输目标不同;所述第一交易信息的手续费参数设置为第一特定值,所述第一特定值用于指示区块链系统中的记账节点不记录所述第一交易信息;
所述收发单元,还用于通过所述区块链系统发送所述第一交易信息。
可选的,所述处理单元还用于:
在预设时间间隔内收到所述传输目标发送的响应消息时,确认所述第一交易信息发送成功。
可选的,所述处理单元还用于:
在预设时间间隔内未收到所述传输目标发送的响应消息时,重新发送第二交易信息;所述第二交易信息的附加信息参数为加密后的待传输信息;所述第二交易信息的手续费参数为第二特定值,所述第二特定值用于指示区块链系统中的记账节点记录所述第二交易信息。
可选的,所述处理单元还用于:
生成公私钥对;
利用所述公私钥对中的私钥对所述第一交易信息进行签名;经过签名后的所述第一交易信息中包含所述公私钥对中的公钥信息。
本发明实施例提供一种信息处理装置,包括:
收发单元,用于接收区块链系统传输来的交易信息;所述交易信息的交易目标与传输目标不同;所述交易信息的附加信息参数为使用所述传输目标的加密密钥加密后的待传输信息;所述交易信息的手续费参数为第一特定值,所述第一特定值用于指示所述区块链系统中的记账节点不记录所述第一交易信息;
处理单元,用于使用自身密钥解密所述第一交易信息中的附加信息参数,在成功解密时,提取所述附加信息参数中的信息内容;
所述处理单元,还用于在为记账节点时,若所述特定值为第一特定值,则不记录所述交易信息。
可选的,所述处理单元还用于:
构造第三交易信息;所述第三交易信息的附加信息参数为根据发送所述第一交易信息的发送方的加密密钥加密后的响应消息;
向所述区块链系统发送所述第三交易信息。
可选的,所述处理单元还用于:
提取所述区块链系统中各节点账本的第二交易信息记录;
使用自身密钥解密所述第二交易信息中的附加信息参数,在成功解密时,提取所述附加信息参数中的信息内容。
可选的,所述处理单元还用于:
获取所述第一交易信息中的公钥信息;所述公钥为所述发送方生成的公私钥对中的公钥;
根据所述公钥验证所述第一交易信息的签名;
在验证通过时,使用自身密钥解密所述第一交易信息中的附加信息参数。
可选的,所述处理单元还用于:
在解密未成功时,控制所述收发单元继续转发所述第一交易信息。
第一交易信息的交易目标与传输目标不同,使得即使攻击者能够破解区块链系统中节点地址与用户真实身份之间的关联关系,也只能获取交易目标的用户真实身份,而无法获取传输目标的用户真实身份。而且,本发明实施例中的第一交易信息中没有传输目标的地址信息,传输节点通过是否成功解密确定是否提取附加参数信息中的信息内容,而不是通过识别传输地址的手段确定是否提取附加信息参数中的信息内容,从而即使第一交易信息中没有传输目标的地址信息,也能保证传输目标可以成功接收第一交易信息所携带的待传输信息。此外,通过将第一交易信息的手续费参数设置为第一特定值以避免第一交易信息被记账节点写入区块链系统公共账本,也就避免了攻击者通过公共账本恶意筛选交易信息的风险。因此,本发明实施例所公开的技术方案能够增强匿名通信的匿名性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种比特币网络系统架构示意图;
图2为本发明实施例提供的一种信息发送方法流程示意图;
图3为本发明实施例提供的一种信息处理方法流程示意图;
图4为本发明实施例提供的一种信息发送流程示意图;
图5为本发明实施例提供的一种信息处理流程示意图;
图6为本发明实施例提供的一种信息发送流程示意图;
图7为本发明实施例提供的一种发送装置结构示意图;
图8为本发明实施例提供的一种信息处理装置结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例所提供的技术方案适用于绝大部分区块链系统,区块链系统是一种无中心的网络系统,最常见的便是比特币网络系统。图1为本发明实施例提供的一种比特币网络系统架构示意图,图1中简单示出了比特币网络的系统架构,在实际应用中的比特币网络系统架构会比图1所示复杂得多。如图1所示,比特币网络系统由多个终端组成,在该系统中并不存在中心服务器或具有类似功能的设备,系统中的每一个终端都是“平等”的,都可以构建、发送和接收交易信息。若一个终端欲加入比特币网络,则需要在终端中安装特定的比特币软件,当比特币软件运行时,该终端便加入了比特币网络。终端在比特币网络系统中存在一个独一无二的地址,这个地址可以由用户自行输入一串字符后由比特币软件生成,终端之间进行比特币交易时,交易信息中便携带着交易目标的地址信息。根据交易目标的地址信息,比特币网络系统采取中继式转发模式传输交易信息,即当一个系统节点收到一个交易信息后,根据交易信息中的交易目标的地址信息判断是否是自己的地址信息,若不是,则向邻近的系统节点广播该交易信息。比特币网络系统只是一种较为常见的区块链系统,除了比特币网络系统外,如以太坊等其它数字货币系统也都具有类似的原理和特点,也应包括于本发明实施例之中。
基于上述以比特币网络系统为例的区块链系统架构,本发明实施例提供一种信息发送方法。图2为本发明实施例提供的一种信息发送方法流程示意图,如图2所示,包括以下步骤:
s201:接收用户输入的待传输信息和传输目标。
s202:获取传输目标的加密密钥,并使用加密密钥对待传输信息进行加密。
s203:将加密后的待传输信息作为第一交易信息的附加信息参数;第一交易信息的交易目标与传输目标不同;第一交易信息的手续费参数设置为第一特定值,第一特定值用于指示区块链系统中的记账节点不记录第一交易信息。
s204:通过区块链系统发送第一交易信息。
具体实施过程中,区块链系统可以是比特币网络系统,也可以是以太坊网络系统,也可以是为了匿名传输而专门搭建的区块链系统,等等,本发明实施例对此不作限定。可选的,区块链系统为比特币网络系统,比特币网络系统是目前覆盖范围最广、发展最为成熟、运行最为稳定的区块链系统,本发明实施例提供的技术方案可直接应用于比特币网络系统中,能够充分利用比特币网络系统的上述优点,最大程度上发挥本发明实施例所带来的提高匿名通信匿名性的技术效果。当交易信息在区块链系统中传输时,生成该交易信息的系统节点为发送方,任何一个非发送方的系统节点都可以作为该交易信息的传输节点,而传输目标则是该交易信息的众多传输节点中的一个。
在s201中,待传输信息是用户意欲匿名传输给传输目标的信息。例如,用户a意欲告知用户b“明天下午4点公园门口见”,则,用户a所对应的系统节点为发送方,待传输信息便是“明天下午4点公园门口见”,而用户b所对应的系统节点便是需要接收该待传输信息的传输目标。
在s202中,传输目标的加密密钥可以是发送方通过线下或其它通信途径得到的,宗旨上应保证加密密钥不可被第三方知晓。加密密钥可以是发送方与传输目标事先约定的专用密钥,加密和解密都采用此专用密钥进行,也可以是发送方与传输目标约定的密钥对中的加密密钥,也可以是传输目标公钥地址,其中,公钥地址在区块链系统中相当于系统节点地址,是区块链系统中用户的身份标识,系统节点通过区块链软件(如比特币网络系统中的比特币软件)生成公钥地址和与该公钥地址对应的私钥,该公私钥对在区块链系统中一般被用于身份验证、数字签名等用途。
在s203中,在区块链系统的交易信息中会设有附加信息参数,一般被用于记录交易时间、交易原由等信息,本发明实施例中将加密后的待传输信息作为第一交易信息的附加信息参数。举例说明,在比特币网络系统中,附加信息参数为op_return参数,在构建交易信息时,便需将加密后的待传输信息记录于op_return参数之中。需指出的是,交易信息的交易目标与传输目标不同,例如,用户a向用户b传输消息,则交易信息的传输目标为用户b,而交易信息的交易目标为用户c。可选的,可以通过将交易信息中的交易地址信息设置为用户c的地址信息实现,也可以随意输入任意交易地址信息,这是因为本交易信息的目的是实现用户a向用户b的消息传递,并不需要保证本交易信息一定会实现用户a与其他用户之间的交易过程。当然,直接将用户a向用户b传递的消息藏匿于用户d和用户c或用户a和用户c之间的正常交易信息中的方法,也包含于本发明实施例中,本申请对此不再一一赘述。
在区块链系统,尤其是区块链数字货币系统中,多存在一个记录有系统中所有交易信息的公共账本,这个账本由每一个系统节点的账本组合而成,任何人都可以阅读公共账本所记录的交易信息中的附加信息参数。虽然本发明实施例中第一交易信息的附加信息参数为经过传输目标加密密钥加密后的待传输信息,攻击者无法解密,但是攻击者仍可以根据附加信息参数的某些特征对公共账本中的交易信息进行恶意筛选,这在一定程度上降低了通信的匿名性。因此,在s203中,第一交易信息的手续费参数设置为第一特定值,第一特定值用于指示区块链系统中的记账节点不记录第一交易信息。在区块链系统中,为了保证各个系统节点账本的一致性,会通过区块链协议选举出一个系统节点作为记账节点,由该节点将交易信息记录于公共账本,之后,记账节点发出广播通知系统中其它节点将该交易信息记录于各自的账本,并收取一定的手续费。只有当交易信息被记录于公共账本之后,才认为该交易信息生效了。通常情况下,记账节点是按照手续费由高到低的顺序处理交易信息的,即手续费参数越高的交易信息越先处理,手续费越低的交易信息越迟处理,当交易信息在一定时间内未被记账节点记录于公共账本时,便认为此交易信息失效了。本发明实施例中,将手续费参数设置为第一特定值,如0,即不支付手续费或者其它较低的数值,又或者任意形式的非法字段,使得记账节点长时间不处理第一交易信息,直至第一交易信息失效,从而避免了第一交易信息被写入公共账本。当然,第一交易信息的失效并不代表本系统中其它节点不再传输该交易信息,该交易信息依旧会通过区块链系统被传输至传输目标。
在s204中,发送方将交易信息发送至区块链系统,具体是采用广播的形式将交易信息发送给邻近的系统节点,在邻近的系统节点非传输目标时,由邻近的系统节点继续进行广播转发,即中继转发。由于区块链系统采用的是中继转发模式传递信息,区块链系统中几乎所有的系统节点都将接收到此交易信息。
与上述信息发送方法相对应的,本发明实施例还提供一种信息处理方法。图3为本发明实施例提供的一种信息处理方法流程示意图,如图3所示,包括以下步骤:
s301:传输节点接收区块链系统传输来的交易信息;交易信息的交易目标与传输目标不同;交易信息的附加信息参数为使用传输目标的加密密钥加密后的待传输信息;交易信息的手续费参数为第一特定值,第一特定值用于指示区块链系统中的记账节点不记录交易信息。
s302:传输节点使用自身密钥解密第一交易信息中的附加信息参数,在成功解密时,提取附加信息参数中的信息内容。
s303:在传输节点为记账节点时,若特定值为第一特定值,则不记录交易信息。
应理解,传输节点为区块链系统中非发送方的任一节点,其既可以是传输目标,又可以是非传输目标目标的普通系统节点。
在s301中,传输节点会收到许多交易信息,这些交易信息中有一些是发送给该传输节点的,有一些不是发送给该传输节点的。与现有技术不同的是,本发明实施例的交易信息的交易目标与传输目标不同,交易信息的附加信息参数为使用传输目标的加密密钥加密后的待传输信息。
在s302中,传输节点在收到交易信息后,除了要判断自己是否为交易信息中的交易目标,还要判断自己是否为交易信息中接收待传输信息的传输目标。在本发明实施例所提供的交易信息中,其附加信息参数中携带着待传输信息,传输节点在收到交易信息后,若要判断自己是否为交易信息的传输目标,需先采用解密密钥解密交易信息中的附加信息参数。解密密钥是与s202中,对待传输信息进行加密时所使用的加密密钥所对应的解密密钥。可选的,传输节点可以根据交易信息中携带的发送方公钥地址信息确定发送方信息,进而确定与发送方对应的加密密钥的解密密钥。
对附加信息参数进行解密后,会得到一个解密结果,可选的,对附加信息参数解密是否成功可根据预设的标准对解密结果进行判断。例如,解密成功的结果都具备一定的特征,如前3位为111,又或者解密结果为字母数字交叉组合,又或者解密成功的结果为固定长度的序列,又或者解密结果中包含预先约定的关键值等等。当然,不同的判断标准对应着发送方在构建交易信息时可能需要在附加信息参数中对应增加一定的信息,本发明实施例对此不作一一赘述。在解密成功时,提取解密结果中的信息内容,即前述的待传输信息。可选的,在未解密成功时,说明本传输节点不是该交易信息的传输目标,此时,采用广播的形式向邻近的传输节点广播该交易信息。
应理解,传输节点有可能是区块链系统的记账节点。因此,在s303中,若传输节点为记账节点,则根据第一交易信息中的特定值确定第一交易信息在处理队列中的位置,由于本发明实施例中第一交易信息中的特定值为第一特定值,记账节点将把第一交易信息置于处理队列的末尾,并在一定时间之后,仍未被记账节点处理的第一交易信息失效,从而不记录第一交易信息。
在上述实施例中,第一交易信息的交易目标与传输目标不同,使得即使攻击者能够破解区块链系统中节点地址与用户真实身份之间的关联关系,也只能获取交易目标的用户真实身份,而无法获取传输目标的用户真实身份。而且,本发明实施例中的第一交易信息中没有传输目标的地址信息,传输节点通过是否成功解密确定是否提取附加参数信息中的信息内容,而不是通过识别传输地址的手段确定是否提取附加信息参数中的信息内容,从而即使第一交易信息中没有传输目标的地址信息,也能保证传输目标可以成功接收第一交易信息所携带的待传输信息。此外,通过将第一交易信息的手续费参数设置为第一特定值以避免第一交易信息被记账节点写入区块链系统公共账本,也就避免了攻击者通过公共账本恶意筛选交易信息的风险。因此,本发明实施例所公开的技术方案能够增强匿名通信的匿名性。
此外,由于第一交易信息不需要记录于公共账本,无需向记账节点支付手续费,因此本发明实施例所提供的技术方案成本更低。
在匿名通信过程中,若一直采用同一对加密密钥和解密密钥,会存在着被破解的风险。可选的,每一次传输交易信息都对当前的加密密钥根据预设规则进行更新,采用更新后的加密密钥对待传输信息进行加密。举例说明,当前的加密密钥为a,预设规则为“在当前加密密钥的基础上加2”,则更新后的加密密钥为a+2,进行过一次交易信息传输后,当再次传输时,当前的加密密钥为a+2,根据预设规则对其更新,获得更新后的加密密钥为a+4。相应的,解密密钥也需要进行同步的更新。举例说明,系统节点a与系统节点b之间存在预设规则1,则系统节点a在接收到系统节点b发送的根据加密密钥1加密后的待传输信息后,采用解密密钥1解密成功,并提取待传输信息;之后,根据预设规则1更新解密密钥1,获得解密密钥2,当系统节点b再次向系统节点a发送信息时,系统节点b对加密密钥1进行更新,获得加密密钥2,利用加密密钥2加密待传输信息,之后,当系统节点a再次接受到系统节点b发送的根据加密密钥2加密后的待传输信息后,便可以用解密密钥2进行解密。动态更新的加密密钥和解密密钥可以降低被破解的风险,从而提高通信的匿名性。
在区块链系统中,由于系统节点数量众多,存在着非法系统节点伪造交易信息的问题。可选的,在s203之后,还包括:生成公私钥对;利用公私钥对中的私钥对交易信息进行签名;经过签名后的交易信息中包含公私钥对中的公钥信息。具体实施过程中,公私钥对可由发送方根据区块链协议生成。相应的,在s302之前,还包括:获取交易信息中的公钥信息;公钥为所述发送方生成的公私钥对中的公钥;根据公钥验证交易信息的签名;在验证通过时,解密交易信息中的附加信息参数。在区块链系统中,系统节点的私钥只有系统节点自身知晓,采用私钥对交易信息进行签名后,当采用公钥验证通过时,便说明本交易信息一定是来自于公钥信息对应的系统节点,因为若公钥信息与私钥信息不对应,便无法通过验证,从而大大提高了非法系统节点伪造交易信息的难度,有利于提高本系统的安全性。
在本发明实施例中,通过将第一交易信息的手续费参数设置为第一特定值而避免第一交易信息被写入公共账本,从而提高了通信的匿名性。然而,此实施例能够实现的前提是传输目标处于能够接收第一交易信息的状态,如在线状态。当传输目标不在线时,其便无法接收第一交易信息,而在上述实施例中,发送方在发出第一交易信息后,却无法得知第一交易信息是否被待传输目标接收,不利于重要信息的传递。可选的,传输目标在成功解密,提取附加信息参数中的信息内容之后,还包括:构造第三交易信息;第三交易信息的附加信息参数为根据发送第一交易信息的发送方的加密密钥加密后的响应消息;向区块链系统发送第三交易信息。构造第三交易信息的过程与第一交易信息类似,区别在于附加信息参数不同。第三交易信息的附加信息参数为经第一交易信息的发送方的加密密钥加密后的相应消息,相应消息具体可以是“1”、可以“收到”、可以其它约定的具体消息形式,也可以是直接对第一交易信息中待传输信息的答复等等。而对于第一交易信息的发送方,在通过所述区块链系统发送第一交易信息之后,还包括:在预设时间间隔内收到传输目标发送的响应消息时,确认第一交易信息发送成功。具体的,接收方采用自身的解密密钥解密收到的交易信息,当解密成功时,提取交易信息附加信息参数中的信息内容,即相应消息。通过规定传输目标向第一交易信息的发送方返回相应消息的形式,可以使第一交易信息的发送方得知第一交易信息是否被传输目标成功接收,提高了匿名通信的可靠性。
当第一交易信息的发送方在预设时间间隔内未收到传输目标发送的响应消息时,说明此时的传输目标处于无法接收第一交易信息的状态,如离线,此时,可选的,发送方重新发送第二交易信息;第二交易信息的附加信息参数为加密后的待传输信息;第二交易信息的手续费参数为第二特定值,第二特定值用于指示区块链系统中的记账节点记录第二交易信息。第二交易信息的构建过程与第一交易信息类似,区别在于第二交易信息的手续费参数为第二特定值,如较高值或正常值。当记账节点接收到第二交易信息时,根据手续费参数确定第二交易信息的处理顺序,由于第二特定值为较高值或正常值,因此,第二交易信息将被记账节点优先记录或正常记录于公共账本中。当传输目标恢复可接收交易信息的状态时,如登录区块链系统,可选的,提取区块链系统中各节点账本的第二交易信息记录;传输节点使用自身密钥解密第二交易信息中的附加信息参数,在成功解密时,提取附加信息参数中的信息内容。其中,区块链系统中各节点账本,即区块链系统的公共账本。具体的,在系统节点侧,当一个系统节点登录区块链系统后,遍历公共账本中记录的交易信息。可选的,只遍历公共账本一定范围内的交易信息,如在时间维度上,只遍历离线期间公共账本记录的交易信息。通过上述实施例,即使传输目标处于无法接收第一交易信息的状态,也可以通过构建第二交易信息,将第二交易信息记录于公共账本的方式使得传输目标回复可以接收第一交易信息的状态时,能够从公共账本中获取第二交易信息,从而避免了待传输信息的遗失,提高了匿名通信系统的可靠性。
为了进一步说明本发明实施例所提供的技术方案,本发明实施例还提供以下两种可能的实现方式。应理解,以下两种可能的实现方式只是为了说明本发明实施例所提供的技术方案,并不代表本发明实施例仅包括或仅适用于以下两种情况。
第一种可能的实现方式
图4为本发明实施例提供的一种信息发送流程示意图,如图4所示,包括以下步骤:
s401:接收待传输信息和传输目标。
s402:获得待传输目标的公钥信息。
s403:加密待传输信息。
s404:构造第一交易信息,将加密后的待传输信息作为第一交易信息的附加信息参数,第一交易信息的交易目标与第一交易信息的附加信息参数的传输目标不同,第一交易信息的手续费参数设置为0。
s405:根据区块链协议,生成公私钥对。
s406:采用公私钥对中的私钥对第一交易信息进行签名。
s407:向区块链系统发送签名后的第一交易信息。
图5为本发明实施例提供的一种信息处理流程示意图,如图5所示,包括以下步骤:
s501:接收从区块链系统传输来的交易信息。
s502:验证交易信息中的签名。
s503:若签名验证通过,则执行s504,否则,执行s507。
s504:解密交易信息中的附加信息参数。
s505:若解密成功,则执行s506,否则,执行s508。
s506:提取附加信息参数中的信息内容。
s507:丢弃该交易信息。
s508:向邻近节点广播该交易信息。
在上述第一种可能的实现方式中,第一交易信息的交易目标与传输目标不同,攻击者无法从第一交易信息中获取传输目标的任何信息,从而提高了通信的匿名性。将手续费参数设置为0,使得第一交易信息将不会被记录于公共账本中,从而进一步提高了通信的匿名性。此外,发送方用私钥对第一交易信息进行签名,而接收方只对签名验证通过后的第一交易信息进行处理,对签名验证未通过的第一交易信息则直接丢弃,提高了攻击者伪造第一交易信息的难度,从而提高了系统的安全性。
第二种可能的实现方式
在第二种可能的实现方式中,考虑到了传输目标有可能无法接收第一交易信息的情况。图6为本发明实施例提供的一种信息发送流程示意图,如图6所示,在图4中的s407之后,还包括以下步骤:
s601:判断在预设时间内是否收到响应消息;若是,则执行s602;若否,则执行s603。
s602:确认第一交易信息发送成功。
s603:构造第二交易信息。将加密后的待传输信息作为第二交易信息的附加信息参数,第二交易信息的交易目标与第二交易信息的附加信息参数的传输目标不同,第二交易信息的手续费参数设置为正常值。
s604:向区块链系统发送第二交易信息。
可选的,在s603之后,还可以对第二交易信息进行签名,以增强通信系统的安全性,此处不多做赘述。
相应的,在图5中的s506之后,还包括以下步骤:
步骤一:获取第一交易信息发送方的加密密钥。
步骤二:利用发送方的加密密钥加密相应消息。
步骤三:构造第三交易信息,将加密后的相应消息作为第三交易信息的附加信息参数,第三交易信息的交易目标和第三交易信息的附加信息参数的传输目标不同,第三交易信息的手续费参数设置为0。
步骤四:向区块链网络发送第三交易信息。
可选的,在步骤三之后,还可以生成公私钥对,对第三交易信息进行签名以增强通信系统的安全性。
在上述第二种可能的实现方式中,考虑到了传输目标有可能无法接收第一交易信息的情况。相较于第一种可能的实现方式,第二种可能的实现方式更能保证重要信息一定会被传输目标接收,提高了通信系统的可靠性。
基于相同的技术构思,本发明实施例还提供一种信息发送装置,图7为本发明实施例提供的一种发送装置结构示意图,如图7所示,发送装置700包括:收发单元701和处理单元702,其中,
收发单元701,用于接收用户输入的待传输信息和传输目标;
处理单元702,用于获取传输目标的加密密钥,并使用加密密钥对待传输信息进行加密;
处理单元702,还用于将加密后的待传输信息作为第一交易信息的附加信息参数;第一交易信息的交易目标与传输目标不同;第一交易信息的手续费参数设置为第一特定值,第一特定值用于指示区块链系统中的记账节点不记录第一交易信息;
收发单元701,还用于通过区块链系统发送第一交易信息。
可选的,处理单元702还用于:
在预设时间间隔内收到传输目标发送的响应消息时,确认第一交易信息发送成功。
可选的,处理单元702还用于:
在预设时间间隔内未收到传输目标发送的响应消息时,重新发送第二交易信息;第二交易信息的附加信息参数为加密后的待传输信息;第二交易信息的手续费参数为第二特定值,第二特定值用于指示区块链系统中的记账节点记录第二交易信息。
可选的,处理单元702还用于:
生成公私钥对;
利用公私钥对中的私钥对第一交易信息进行签名;经过签名后的第一交易信息中包含公私钥对中的公钥信息。
基于相同的技术构思,本发明实施例还提供一种信息处理装置,图8为本发明实施例提供的一种信息处理装置结构示意图,如图8所示,处理装置800包括:收发单元801和处理单元802,其中,
收发单元801,用于接收区块链系统传输来的交易信息;交易信息的交易目标与传输目标不同;交易信息的附加信息参数为使用传输目标的加密密钥加密后的待传输信息;交易信息的手续费参数为第一特定值,第一特定值用于指示区块链系统中的记账节点不记录第一交易信息;
处理单元802,用于使用自身密钥解密第一交易信息中的附加信息参数,在成功解密时,提取附加信息参数中的信息内容;
处理单元802,还用于在为记账节点时,若特定值为第一特定值,则不记录交易信息。
可选的,处理单元802还用于:
构造第三交易信息;第三交易信息的附加信息参数为根据发送第一交易信息的发送方的加密密钥加密后的响应消息;
向区块链系统发送第三交易信息。
可选的,处理单元802还用于:
提取区块链系统中各节点账本的第二交易信息记录;
使用自身密钥解密第二交易信息中的附加信息参数,在成功解密时,提取附加信息参数中的信息内容。
可选的,处理单元802还用于:
获取第一交易信息中的公钥信息;公钥为发送方生成的公私钥对中的公钥;
根据公钥验证第一交易信息的签名;
在验证通过时,使用自身密钥解密第一交易信息中的附加信息参数。
可选的,处理单元802还用于:
在解密未成功时,控制收发单元801继续转发第一交易信息。
综上所述,本发明实施例提供了一种信息发送方法、处理方法及装置,第一交易信息的交易目标与传输目标不同,使得即使攻击者能够破解区块链系统中节点地址与用户真实身份之间的关联关系,也只能获取交易目标的用户真实身份,而无法获取传输目标的用户真实身份。而且,本发明实施例中的第一交易信息中没有传输目标的地址信息,传输节点通过是否成功解密确定是否提取附加参数信息中的信息内容,而不是通过识别传输地址的手段确定是否提取附加信息参数中的信息内容,从而即使第一交易信息中没有传输目标的地址信息,也能保证传输目标可以成功接收第一交易信息所携带的待传输信息。此外,通过将第一交易信息的手续费参数设置为第一特定值以避免第一交易信息被记账节点写入区块链系统公共账本,也就避免了攻击者通过公共账本恶意筛选交易信息的风险。因此,本发明实施例所公开的技术方案能够增强匿名通信的匿名性。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。