一种基于许可链支持监管的隐私通信方法与流程

文档序号:11930539阅读:296来源:国知局

本发明在现有区块链协议的基础上,添加了链上隐私通信协议,达到只有通信双方和监管方能解密通信原文,第三方无法解密的功能。



背景技术:

区块链是一种公开账本技术,用户通过对私钥的妥善保管,将通信数据打包成交易,并附带不可伪造的签名,来保证安全性。节点使用用户的公钥验证签名,确认用户身份后,将交易打包成块保。每个节点均保存了同样的全链数据备份,解决了各方难以建立信任的问题,却也同时带来了一个新的问题,就是隐私问题。

链上非公开交易一般涉及两方,如果用户直接用明文信息和对方通信,则明文将直接暴露在大众或者特定群体面前,用户信息无隐私可言。如果发起方事先约定单一密钥与所有用户通信,则无法保证第三方对通信内容的不可见。如果每次通信随机生成一个密钥对内容加密,则对方无法直接解出原文,还需单独发送该随机密钥给对方,这个过程中无法保证密钥的一致性,并且需要多次交互,逻辑复杂。

许可链作为有身份信息和权限的区块链,运行着现实生活中的实际商业应用,一般亦存在监管方角色。监管方虽不直接参与用户双方的通信和交易,但需要有事后看穿能力,可以解密所有用户的隐私交易。



技术实现要素:

本发明的目的在于针对现有技术的不足,提供一种基于许可链支持监管的隐私通信方法。

本发明的目的是通过以下技术方案实现的:一种基于许可链支持监管的隐私通信方法,包括以下步骤:

(1)监管方生成自己的私钥Sj,并公布对应公钥Pj

(2)用户A完成初始化操作,得到通信公私钥(Saj,Paj)。具体为:

(2.1)用户A生成一对临时的私钥Sa,并公布对应公钥Pa

(2.2)用户A通过(Sa,Pj),用共享密钥算法得出通信私钥Saj,并公布对应公钥Paj

(2.3)监管方通过(Sj,Pa),用共享密钥算法得出通信私钥Sja,并公布对应公钥Pja

(2.4)节点若观察到Paj与Pja相等,则可以推断用户保存的Saj和监管方保存的Sja相等,用户A将来即用(Saj,Paj)作为通信公私钥,初始化完成。若节点观察到Paj与Pja不等,则初始化失败,重新开始上述流程进行初始化操作。

(3)同上,用户B完成初始化操作,得到通信公私钥(Sbj,Pbj)。

(4)A需要发起与B的通信,A首先通过(Saj,Pbj),用共享密钥算法得出双方通信私钥(Sab,Pab),再通过加密算法,将明文通信内容用Sab加密成密文,并发起交易,等待入块上链。

(5)区块链节点收到A发起的交易,打包入块。

(6)用户B同步最新的区块,发现A发起的加密通信数据,B通过(Sbj,Paj),用共享密钥算法得出双方通信公私钥(Sab’,Pab’),通过解密算法,解密密文数据得到明文通信内容。

(7)用户B计算的双方通信公私钥(Sab’,Pab’)与A计算的(Sab,Pab)如果相等,则B可以正常解出A的加密数据内容,否则AB某人的计算错误,B不能解出A消息的明文。

(8)监管方实时同步最新的区块,如果发现A发给B隐私通信数据,由于同时拥有A和B用户的通信公私钥(Saj,Paj)和(Sbj,Pbj),用共享密钥算法得出A和B的通信公私钥(Sab,Pab),对加密数据进行解密。

本发明的有益效果在于:本方法不需监管方事先分发和存储私钥,而是由用户各自生成临时私钥,之后再通过共享密钥算法得到所有用户之间的可验证相同的通信私钥,既保证了用户双方的隐私通信效果,又保证了监管方对链上数据的看穿能力,完成了一种高效便捷的支持监管的隐私通信方法。

附图说明

图1为本方法的整体架构图。

具体实施方式

如图1所示,一种基于许可链支持监管的隐私通信方法,包括以下步骤:

步骤1:监管方生成自己的私钥Sj,并公布对应公钥Pj

1.1:本方案不局限于特定的公私钥体系算法、共享密钥算法、以及加解密算法,只要在区块链协议中事先约定即可。

1.2:监管方只是逻辑上的概念,实际上可以存在多个监管机构,只要他们共享同一个监管公私钥,采用同样的算法就可以同时对链上数据进行看穿。

步骤2:用户A完成初始化操作,得到通信公私钥(Saj,Paj)。具体为:

2.1:用户A生成一对临时的私钥Sa,并公布对应公钥Pa

2.2:用户A通过(Sa,Pj),用共享密钥算法得出通信私钥Saj,并公布对应公钥Paj

2.3:监管方通过(Sj,Pa),用共享密钥算法得出通信私钥Sja,并公布对应公钥Pja

2.4:节点若观察到Paj与Pja相等,则可以推断用户保存的Saj和监管方保存的Sja相等,用户A将来即用(Saj,Paj)作为通信公私钥,初始化完成。若节点观察到Paj与Pja不等,则初始化失败,重新开始上述流程进行初始化操作。

用户只是与监管方同步通信公私钥,用来对交易中的隐私信息加密,作为交易的一部分数据。监管方和用户仍然保留自己唯一的交易私钥,对交易签名。

步骤3:同上,用户B完成初始化操作,得到通信公私钥(Sbj,Pbj)。

步骤4:A需要发起与B的通信,A首先通过(Saj,Pbj),用共享密钥算法得出双方通信私钥(Sab,Pab),再通过加密算法,将明文通信内容用Sab加密成密文,并发起交易,等待入块上链。

步骤5:区块链节点收到A发起的交易,打包入块。

步骤6:用户B同步最新的区块,发现A发起的加密通信数据,B通过(Sbj,Paj),用共享密钥算法得出双方通信公私钥(Sab’,Pab’),通过解密算法,解密密文数据得到明文通信内容。

步骤7:用户B计算的双方通信公私钥(Sab’,Pab’)与A计算的(Sab,Pab)如果相等,则B可以正常解出A的加密数据内容,否则AB某人的计算错误,B不能解出A消息的明文。

步骤8:监管方实时同步最新的区块,如果发现A发给B隐私通信数据,由于同时拥有A和B用户的通信公私钥(Saj,Paj)和(Sbj,Pbj),用共享密钥算法得出A和B的通信公私钥(Sab,Pab),对加密数据进行解密。如果A使用错误的双方通信公私钥,则监管方无法解出明文或解出错误明文。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1