2020-12-06

区块链“微信”群内点对点交流可以吗?

背景技术
在信息化高度发展的未来,对信息的隐私保护将成为越来越重要的需求,而对隐私保护越来越严格的要求下,必然催生信息各自保护的现象,这样将进一步催生出去中心化的信息应用场景。比如社交领域的聊天信息,如果总是通过某一家公司的聊天软件去发送消息,那么在越来越严格的隐私保护要求下,这家公司将越来越没有办法证明自己没有做任何侵犯用户隐私权益的事情,那么最终的结果必然是这家公司放弃对用户隐私信息的接管,或者另一家不接触用户隐私信息的公司代替这家公司的地位。这将直接产生去中心化的隐私信息交换需求,一条聊天记录在不经过任何一家公司的服务器中转的情况下,还可以安全的送到目标用户手中。在区块链快速发展的今天,已经为这种去中心需求提供了最好的网络环境,但区块链是点对点的网络,只能进行点对点的传输,那么如何在这种网络中,构建一种多对多的私密信息发送与接收,实现区块链群组内私密消息的交换,成为一个急需解决的问题。

问题:
所要解决的技术问题在于提供一种多对多的私密信息发送与接收办法,实现区块链群组私密消息交换快捷、安全的基于区块链的群组内私密消息交换方法及系统。

技术解决方案是:

一种基于区块链的群组内私密消息交换方法,包括如下步骤:

0006发送信息节点生成一条数据Info;

0007系统定位发送信息节点所在群组B,提取群组B的群组信息和群组类型;

0008系统根据群组类型获得群组加密方式,得出群组公钥Bpk;

0009系统生成小于等于群组成员总数的随机整数Index,提取该随机数所对应成员信息P,得到该成员公钥Ppk;

0010系统使用成员公钥Ppk对数据进行加密,使用群组公钥Bpk对随机整数Index进行加密,得出最终数据Data=Bpk(Index)+Ppk(Info);

0011系统将数据发送给群组B内的组员,组员接收并提取发送来的数据;

0012接收信息节点获取本节点所在群组类型,提取所在群组公钥;

0013接收信息节点使用群组公钥解密数据头部;

0014接收信息节点得到原始随机数Index,接收信息节点获取该随机数所对应成员;

0015接收信息节点获取该成员公钥;

0016接收信息节点使用该成员公钥解密接收到的数据后半部分,完成数据解密。

[0017]一种基于区块链的群组内私密消息交换系统,包括:

[0018]群组管理器,所述的群组管理器与区块链网络相连,用于管理当前已经定义的群组,所述的群组在业务运行过程中由用户添加;

[0019]成员管理器,所述的成员管理器与区块链网络相连,用于管理成员的信息,所述的信息是控制指令信息或描述性信息,所述的成员是能被数字化的可描述对象;

[0020]在密钥管理器,所述的密钥管理器与区块链网络相连,用于生成密钥对和验证密钥,并为群组与成员提供密码服务;

[0021]所述的群组管理器、成员管理器和密钥管理器顺序连接。

[0022]进一步的,所述的群组管理器包括群组属性管理模块、群组类型定义模块和群组数据管理模块。

[0023]进一步的,所述的群组属性管理模块用于定义群组具有的各项属性,所述的属性包括群组的简洁信息、群组的位置和群组和其他用于为业务提供信息记录能力的信息,所述的群组类型定义模块用于定义群组的类型,所述的类型是技术层面的类型,用于对群组属性做不同的解析,所述的群组数据管理模块用于为其它各模块提供数据存取能力,并将已经定义好的数据进行持久化存储。

[0024]进一步的,所述的成员管理器是群组管理器的子集,成员管理器依附在群组管理器上工作,所述的成员管理器包括成员属性管理模块、成员类型定义模块和成员数据管理模块。

[0025]进一步的,所述的成员属性管理模块用于定义群组具有的各项属性,针对不同的上层业务环境来定义各项属性,所述的群组类型定义模块用于群组的类型,所述的类型是技术层面的类型,所述的成员数据管理模块用于为其它模块提供成员数据的存取,并为已经形成的成员数据提供持久化存储。

[0026]进一步的,所述的技术层面的类型包括数据、合约、账户、设备和群组,当技术层面的类型为数据时,对成员信息做普通的文本处理,当技术层面的类型为合约时,将成员信息作为程序进行执行,当技术层面的类型为账户时,将进行账户的上下账操作,当技术层面的类型为设备时,将会作为一个控制器发送指令使用,当技术层面的类型为群组时,将再一次解析组内成员。

[0027]进一步的,所述的密钥管理器包括密钥对生产模块、加密模块和校验模块。

[0028]进一步的,所述的密钥对生产模块用于为群组和成员提供密钥对的生成,所述的加密模块用于为数据提供加密服务,为上层应用选择加密方式,所述的校验模块与加密模块对应,校验模块提供密码校验方法。

[0029]进一步的,所述的加密方式有三种,第一种是使用群组密钥对的非对称加密方式,第二种是采用随机抽取群组成员公钥的对称加密方式,第三种是使用群组成员所有公钥进行环形签名,所述的校验方法有两种,第一种是在对称加密中直接找到密钥解密,第二种是在非对称加密中,根据其所采用的加密方式找到对应密钥对,使用另一个密钥进行解密。

[0030]本发明的有益效果是:

[0031]本发明通过将一群节点在逻辑上组成一个群组,或者是逻辑上的一个节点,构建“虚拟群组”的概念,当需要向这个群组所有人发送消息时,只需要向这个虚拟的节点发送消息即可,实现了多对多的私密信息发送与接收,构建了在区块链下群组私密消息交换快捷、安全的结构模型,解决了区块链中点到点群发受限的问题。

附图说明
[0032]图1是本发明对应方法的流程图;

具体实施方式
[0033]下面结合附图和具体实施例对本发明作进一步详述。在此需要说明的是,下面所描述的本发明各个实施例中所涉及的技术特征只要彼此之间未构成冲突就可以相互组合。

[0034]为了解决区块链只能进行点对点的传输,没法进行多对多的私密信息发送与接收,实现区块链群组内私密消息的交换的问题,本申请提出了“虚拟群组”的概念,“虚拟群组”的核心思路是将一群节点在逻辑上组成一个群组,或者是逻辑上的一个节点,当需要向这个群组所有人发送消息时,只需要向这个虚拟的节点发送消息即可。具体的,本发明公开了一种基于区块链的群组内私密消息交换方法,如图1所示,包括如下步骤:

0035发送信息节点生成一条数据Info;这里的发送信息节点是要群发数据的那个节点,在发送之前,需要先生产一条数据Info;

0036系统定位发送信息节点所在群组B,提取群组B的群组信息和群组类型;这个步骤的作用是定位发送信息节点的位置,然后记录发送信息节点的群组属性;

0037系统根据群组类型获得群组加密方式,得出群组公钥Bpk;

0038系统生成小于等于群组成员总数的随机整数Index,提取该随机数所对应成员信息P,得到该成员公钥Ppk;

0039系统使用成员公钥Ppk对数据进行加密,使用群组公钥Bpk对随机整数Index进行加密,得出最终数据Data=Bpk(Index)+Ppk(Info);该最终数据就是经过组内随机密钥加密过后的数据,该步骤便完成了群发数据的发送和加密过程,

0040系统将数据发送给群组B内的组员,组员接收并提取发送来的数据;群组内的所有成员都可以提取发送来的数据,该步骤开始接收的过程;

0041接收信息节点获取本节点所在群组类型,提取所在群组公钥;由于群组公钥是由群组类型决定的,因此,本群组内的所有组员通过获取本身的群组类型均可以获得群组公钥;

0042接收信息节点使用群组公钥解密数据头部;

0043接收信息节点得到原始随机数Index,接收信息节点获取该随机数所对应成员;同个群组内的成员都能接收到随机整数Index,并根据该随机数确定所对应成员;

0044接收信息节点获取该成员公钥;

0045接收信息节点使用该成员公钥解密接收到的数据后半部分,完成数据解密。

[0046]本发明所使用的群组内私密消息交换方法是采用组内随机密钥的方式,核心实现方法是,用这个群组的公钥对当前消息的随机序号加密,在加密前先用这个序号抽取该群组中某一个成员的公钥做对称加密,组内其它人要给这个群组发送消息时,自己随机抽取一个序号然后提取该序号对应的公钥加密后将数据发出,群组内成员通过群组公钥和获取的成员的公钥解密数据即可实现数据的接收。该方法适用于组内成员向组内成员群发信息,加密和解密速度快,使用便捷。

[0047]本发明还公开了一种基于区块链的群组内私密消息交换系统,包括:

[0048]群组管理器,所述的群组管理器与区块链网络相连,用于管理当前已经定义的群组,所述的群组在业务运行过程中由用户添加;例如用户添加的聊天群,在某些特定应用场景中,初始阶段在代码中就已经设定好,比如物联网应用中,用于控制一个房间所有灯泡的系统,就类似于群组管理器的功能。

[0049]成员管理器,所述的成员管理器与区块链网络相连,用于管理成员的信息,所述的信息是控制指令信息或描述性信息,所述的成员是能被数字化的可描述对象;例如应用于社交时是一个人的昵称和个性签名等信息,在应用于物联网时可能是一些控制指令信息,比如让灯光亮或者关闭灯光的指令信息等,成员管理器的成员相当于群组内的一个子集,群组是用于控制一个房间所有灯泡的系统,成员即是控制灯光亮或者关闭灯光的指令信息。

[0050]在密钥管理器,所述的密钥管理器与区块链网络相连,用于生成密钥对和验证密钥,并为群组与成员提供密码服务;

[0051]所述的群组管理器、成员管理器和密钥管理器顺序连接。

[0052]优选的,所述的群组管理器包括群组属性管理模块、群组类型定义模块和群组数据管理模块。优选的,所述的群组属性管理模块用于定义群组具有的各项属性,所述的属性包括群组的简洁信息、群组的位置和群组和其他用于为业务提供信息记录能力的信息,在不同的上层应用场景中有不同的定义,比如在聊天中可以定义一个群的简洁信息,在物联网应用中可以定义一个群组的位置。这里定义的信息根据后续类型定义模块的设计不同有不同的用途,常规情况下用于为业务提供信息记录能力,其它情况下可能用于定义不同的业务操作。优选的,所述的群组类型定义模块用于定义群组的类型,所述的类型是技术层面的类型,用于对群组属性做不同的解析,技术层面的类型与业务层面的类型不同,业务层面的类型实际通过群组属性进行体现,即通过群组属性管理模块进行定义,比如一个聊天群,它的的类型是公司内部聊天群,这里的公司内部这个类型是这个群的一个属性,在底层技术支持中,这个群是一个文本型的描述群,这里的文本型才是这里说指的群组类型,根据具体业务需求不同,这里实现的类型支持也不同,比如只用于文本描述的群组,则这里只记录文本信息,类型定义模块遇到这种类型时只做文本处理,比如这里如果定义这个群组是一个程序群组,那么类型定义模块遇到这种类型时会将其组员作为一个程序进行处理。在本发明中,主要实现了文本型和合约型,根据上层业务需求不同,可增加新的类型或删除旧的类型。优选的,所述的群组数据管理模块用于为其它各模块提供数据存取能力,并将已经定义好的数据进行持久化存储。

[0053]优选的,所述的成员管理器是群组管理器的子集,成员管理模块与群组管理模块类似,成员管理器依附在群组管理器上工作,所述的成员管理器包括成员属性管理模块、成员类型定义模块和成员数据管理模块。优选的,所述的成员属性管理模块用于定义群组具有的各项属性,针对不同的上层业务环境来定义各项属性,所述的群组类型定义模块用于群组的类型,所述的类型是技术层面的类型,优选的,所述的技术层面的类型包括数据、合约、账户、设备和群组,当技术层面的类型为数据时,对成员信息做普通的文本处理,当技术层面的类型为合约时,将成员信息作为程序进行执行,当技术层面的类型为账户时,将进行账户的上下账操作,当技术层面的类型为设备时,将会作为一个控制器发送指令使用,当技术层面的类型为群组时,将再一次解析组内成员。本发明根据不同的类型来实现不同的功能。优选的,所述的成员数据管理模块用于为其它模块提供成员数据的存取,并为已经形成的成员数据提供持久化存储。

[0054]优选的,所述的密钥管理器包括密钥对生产模块、加密模块和校验模块。所述的密钥对生产模块用于为群组和成员提供密钥对的生成,所述的加密模块用于为数据提供加密服务,为上层应用选择加密方式,所述的加密方式有三种,第一种是使用群组密钥对的非对称加密方式,即为这个群组分配一对密钥,只有群组内的人拥有私钥,公钥对所有人开放,组内和组外其它人要给这个群组发送消息时,只需要使用这个公钥加密后发送到这个群组,这个群组中的任何一个人均可以使用这个群组的私钥进行解密。该方法适用于组外成员向组内成员发送信息第二种,是采用组内随机密钥,及本发明着重适用也是最常用的方法,即用这个群组的公钥对当前消息的随机序号加密,在加密前先用这个序号抽取该群组中某一个成员的公钥做对称加密,组内其它人要给这个群组发送消息时,自己随机抽取一个序号然后提取该序号对应的公钥加密后将数据发出,群组内成员解密该序号后使用该公钥解密。第二种只适用于组内成员向组内成员发送信息,但是速度最快,适用性强。第三种,是采用组内环形签名的方式发送,组内和组外成员要给这个群组发送消息时,使用这个组内所有人的公钥做环形签名,然后组内成员任何一人用自己的私钥进行解密。第三种同样适用于组外成员向组内成员发送信息,而且安全性最高,但是速度最慢,因此,可以根据不同的需求来选择不同的加密方式。所述的校验模块与加密模块对应,校验模块提供密码校验方法,所述的校验方法有两种,第一种是在对称加密中直接找到密钥解密,第二种是在非对称加密中,根据其所采用的加密方式找到对应密钥对,使用另一个密钥进行解密。

[0055]本发明是通过群组管理器来管理不同的群组,用成员管理器来管理群组中的不同成员,用密钥管理器对群组和成员加密解密,通过将一群节点在逻辑上组成一个群组,或者是逻辑上的一个节点,构建“虚拟群组”的概念,利用虚拟群组间的数据发送和接收来实现群组内的数据发送和传输,实现了多对多的私密信息发送与接收,构建了在区块链下群组私密消息交换快捷、安全的结构模型,解决了区块链中群点到点群发受限的问题。

结束语:未来已来
只是还未流行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

探索真

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值