基于区块链的即时通讯系统技术方案

技术编号:27305981 阅读:14 留言:0更新日期:2021-02-10 09:18
本发明专利技术提出一种基于区块链的即时通讯系统,包括以区块链通信方式连接的多个节点。每一节点生成一非对称加密对。发送端欲对至少一接收端发出一信息时,执行一打包程序。打包程序包括:生成一个一次性对称密钥;使用一次性对称密钥加密信息;使用每一个接收端的对应的公钥加密一次性对称密钥;及将经加密的信息及经加密的一次性对称密钥加入至一广播信息,以将广播信息广播至所有节点。每一节点收到广播信息时执行一解封程序,解封程序包括:使用自身的私钥尝试解锁经加密的一次性对称密钥;及若成功解锁,则将获得的一次性对称密钥解密经加密的信息。加密的信息。加密的信息。

【技术实现步骤摘要】
基于区块链的即时通讯系统


[0001]本专利技术涉及即时通讯
,具体是一种基于区块链的即时通讯系统。

技术介绍

[0002]现有的基于区块链的群聊机制大多是每建立一个群组,便产生一个群地址及对应的私钥,该群组的成员发话时,向该地址发送交易并附加信息,成员使用私钥解密信息。然而,当要对该群组增加新成员时,便需要将群地址及对应的私钥传送该新成员,或者重新设立新的群组与对应私钥。然而,在网路上传递私钥是相当危险的,并且群组加入新成员的程序繁杂。此外,非对称加密方式具有信息长度的限制。

技术实现思路

[0003]鉴于上述问题,本专利技术提出一种基于区块链的即时通讯系统,介以解决先前技术存在之问题。
[0004]在一实施例,基于区块链的即时通讯系统包括以区块链通信方式连接的多个节点。每一节点生成包括一公钥及一私钥的一非对称加密对。多个节点中的其中一个发送端欲对其他的节点中的至少一接收端发出一信息时,执行一打包程序。打包程序包括:生成一个一次性对称密钥;使用一次性对称密钥加密信息;使用每一个接收端的对应的公钥加密一次性对称密钥;及将经加密的信息及经加密的一次性对称密钥加入至一广播信息,以将广播信息广播至所有节点。每一节点收到广播信息时执行一解封程序,解封程序包括:使用自身的私钥尝试解锁经加密的一次性对称密钥;及若成功解锁,则将获得的一次性对称密钥解密经加密的信息。
[0005]依据一些实施例,打包程序还包括:使用自身的私钥产生一签章;及将所述签章加入至所述广播信息。解封程序还包括:验证签章,于验证通过才尝试解锁经加密的一次性对称密钥。
[0006]依据一些实施例,解封程序还包括:若节点成功解锁,则将信息上链储存。
[0007]依据一些实施例,解封程序还包括:节点在上链储存之前先确认信息是否已被上链储存。
[0008]依据一些实施例,解封程序还包括:若节点成功解锁,则将信息进行本地储存。
[0009]依据一些实施例,发送端和至少一接收端构成一群组的多个成员,其他的节点中的一个作为一新成员加入群组时,每一成员将自身的一信息记录作为欲发出的信息并以新成员作为接收端,而执行打包程序后发送出去。
[0010]依据一些实施例,新成员在加入群组时,依据自身的公钥产生一地址,并使用自身的私钥对自身的地址签章后发布到区块链。
[0011]依据一些实施例,每一节点依据公钥产生对应节点的一地址,每一节点使用自身的私钥对自身的地址签章后发布到区块链。
[0012]依据一些实施例,发送端和至少一接收端构成一群组的多个成员,其他的节点中
的一个作为一新成员加入群组时,验证成员经过签章之后的地址。
[0013]综上,本专利技术提供一种基于区块链的即时通讯系统,提供不限信息长度的加密方式,且能够隐密信息的接收对象。信息能够被保存在区块链上,避免信息被删除或窜改。在群组聊天上提供新成员加入的弹性,且信息的传递是由发送端来指定能解封的对象,使得群组设立数量不会受到局限。
附图说明
[0014]图1是本专利技术一实施例的基于区块链的即时通讯系统100的方块示意图。
[0015]图2是本专利技术一实施例的打包程序流程图。
[0016]图3是本专利技术一实施例的解封程序流程图。
[0017]图4是本专利技术另一实施例的打包程序流程图。
[0018]图5是本专利技术另一实施例的解封程序流程图。
具体实施方式
[0019]为了使本专利技术的目的、特征及效果更容易理解,以下提供用于详细说明本专利技术的实施例及附图。
[0020]请参阅图1,图1是本专利技术一实施例的基于区块链的即时通讯系统100的方块示意图。基于区块链的即时通讯系统100包括多个节点110。此些节点110经由区块链通信方式连接,例如包括网络层、数据层、及应用层。网络层支持点对点网络、TCP/IP协议等。数据层支持公共帐本、共识算法、密码学、数据库等。应用层支持可编程语言(如智能合同)等。所述节点110可以是任何具有计算及连网能力的电子装置,如桌上型电脑、手机、平板电脑、伺服器、嵌入式装置等。
[0021]每一节点110生成一非对称加密对,包括一公钥及一私钥。非对称加密对可使用RSA、Elgamal、Rabin等算法生成。在此,每一节点110依据自身的公钥产生节点110的地址,例如:直接以公钥作为地址,或取公钥的一部分作为地址,或根据公钥的全部或一部分执行一特定运算(如逻辑运算、散列运算)后作为地址。节点110将自身的地址发送至整个区块链网络,使得每一个节点110可以知道要传送信息的对象的地址。
[0022]在一些实施例中,节点110在发送地址之前,会先对此地址以自己的私钥进行签章。其他节点110可以透过对应的公钥对经签章的地址进行验证,以确认该地址确实由该节点110所发出。
[0023]参照图2,是本专利技术一实施例的打包程序流程图。当一个节点110(此称发送端111)欲对至少一个节点110(此称接收端112)发送信息时,会执行一打包程序。所述信息包括但不限于文字、图像、声音、视频、档案等。以下说明打包程序,首先,生成一个一次性对称密钥(步骤S210)。对称密钥可以利用DES、3DES、IDEA、FEAL、BLOWFISH等算法产生。所述对称密钥是随机生成的,因此每次生成的对称密钥不会相同。接着,利用此一次性对称密钥对欲发送的信息进行加密,由于是采用对称密钥进行加密,不需限制信息的长度(步骤S220)。在步骤S230中,使用每一个接收端112的对应的公钥加密此一次性对称密钥。最后,在步骤S240中,将经加密的信息及经加密的一次性对称密钥加入至一广播信息,以供后续将此广播信息广播至所有节点110。
[0024]参照图3,是本专利技术一实施例的解封程序流程图。当节点110收到广播信息之后,将执行一解封程序。以下说明解封程序,首先,节点110使用自身的私钥尝试解锁经加密的一次性对称密钥(步骤S310)。节点110如果能够成功解锁经加密的一次性对称密钥,代表为此广播信息的接收对象。接着,便可将获得的一次性对称密钥解密经加密的信息(步骤S320)。若无法解锁,则结束解封程序。介此,发送端111发送的信息可被指定的接收端112所获得,非指定的接收端112即便取得广播信息也无法得知其内容,也无法得知指定接收端112是何者。即使是群组聊天的态样,亦能指定仅有群组中的单一或部分成员才能解密信息,并且成员之间并不能知道其他成员是否能够解析信息,而能隐藏信息传送对象。
[0025]参照图4及图5,分别是本专利技术另一实施例的打包程序及解封程序流程图。打包程序还包括步骤S200:使用自身的私钥产生一签章。在前述步骤S240中,还把签章加入广播信息中(步骤S240

)。并且,解封程序还包括步骤S300:验证签章。若签章为合法,代表收到的广播信息没有被窜改,则进入步骤S310(亦即于验证通过才尝试解锁经加密的一次性对称密钥);若不合法,则结束解封程序。
[0026]在一些实施例本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于区块链的即时通讯系统,其特征在于,包括:多个节点,以区块链通信方式连接,每一所述节点生成包括一公钥及一私钥的一非对称加密对,所述多个节点中的其中一个发送端欲对其他的所述节点中的至少一接收端发出一信息时,执行一打包程序,所述打包程序包括:生成一个一次性对称密钥;使用所述一次性对称密钥加密所述信息;使用每一个所述接收端的对应的所述公钥加密所述一次性对称密钥;及将经加密的所述信息及经加密的所述一次性对称密钥加入至一广播信息,以将所述广播信息广播至所有所述节点;其中,每一所述节点收到所述广播信息时执行一解封程序,所述解封程序包括:使用自身的所述私钥尝试解锁所述经加密的所述一次性对称密钥;及若成功解锁,则将获得的所述一次性对称密钥解密经加密的所述信息。2.根据权利要求1所述的基于区块链的即时通讯系统,其特征在于,所述打包程序还包括:使用自身的所述私钥产生一签章;及将所述签章加入至所述广播信息;其中,所述解封程序还包括:验证所述签章,于验证通过才尝试解锁所述经加密的所述一次性对称密钥。3.根据权利要求1或2所述的基于区块链的即时通讯系统,其特征在于,所述解封程序还包括:若所述节点成功解锁,则将所述信息上链储存。4.根据权利要求3所述的基于区块链的即时通讯系统...

【专利技术属性】
技术研发人员:周乃杰
申请(专利权)人:北京威宁特科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1