一种基于同态加密算法的联盟链数据处理方法及装置与流程

文档序号:18226298发布日期:2019-07-19 23:28阅读:260来源:国知局
一种基于同态加密算法的联盟链数据处理方法及装置与流程

本发明属于密码学以及联盟链技术领域,尤其为一种基于同态加密算法的联盟链数据处理方法及装置。



背景技术:

随着时代的发展,各领域通过数据处理、分享所获得的价值越来越大,所以对数据处理有了更高的需求,不仅要加快数据的传输速度,也要保证数据的安全可信。如何保证数据在开放共享的时候,并且在处理的过程中数据包含的信息不被泄露,并且能够有效解决信任问题,是我们关注的主题。

目前数据处理的方法,一般是中心化的数据处理方案。所以在第三方是存在安全隐患的,一旦无法保证绝对的数据安全,如果发生了数据泄露将造成严重的损失。

区块链的出现,使我们不再需要第三方,并因此在现在和未来都有着广泛的应用。区块链技术的去中心化和不可篡改性使得在处理数据的架构上有了重大发展,但是完全的去中心化又消耗了大量的计算,处理数据的效率并不高,因此联盟链技术也应运而生。它相比区块链有着更高的处理速度,但是同样,那些比如联盟成员中的联合欺诈,有不合作用户通过联盟链窃取数据或篡改数据,这都对我们实现数据的安全处理和稳定传输造成了很大的威胁。同时也容易受到女巫攻击,女巫攻击,即在对等网络中,每一个节点具有多个身份标识,同一份数据通常需要备份到多个分布式节点上,这就是数据冗余机制。恶意节点通过控制系统的大部分节点来削弱冗余备份的作用。

然而,同态加密是一种形式的加密。其意义在于,真正从根本上解决将数据及其操作委托给第三方时的保密问题,特别是完全同态加密。

综上所述,本专利将提供一种将完全同态加密技术应用于联盟链的数据处理系统的方法及装置,以确保数据的绝对安全性,是各行业亟待解决的问题。



技术实现要素:

为解决上述背景技术中提出的问题。本发明提供了一种基于同态加密算法的联盟链数据处理方法及装置,具有安全性高的特点。

为实现上述目的,本发明提供如下技术方案:一种基于同态加密算法的联盟链数据处理方法,包括以下步骤:

s1、提供同态加密库并生成同态密钥,对用户提供的数据用其公钥进行加密保护,数据处理的时候都是密文运算,在最终账本中加密保存;

s2、对各其它节点产生的数值进行加密而生成加密值;

s3、把加密值传输至运行联盟链的order节点,并且控制子节点,根据用户的需求,对各个加密值进行运算,最终获得加密过的数据;

s4、提供范围证明校验,共识节点能够对密文进行验证;

s5、用户用其同态私钥进行解密,得出经联盟链处理后的信息。

优选的,s2中对数值进行加密的执行主体可以是各其它节点本身,也可以是其它节点以外的节点。

一种基于同态加密算法的联盟链数据处理装置,包括用于生成同态密钥的同态加密库、基于函数的信息加密模块、函数加密模块和提供运算的区块链运行层。

优选的,所述区块链运行层分为6层,从下至上分别是存储层、数据层、网络层、共识层、激励层和应用层。

优选的,所述存储层主要存储交易日志和交易相关的内容。

优选的,所述数据层由区块和区块的链式结构组成。

优选的,所述网络层主要提供共识达成及数据通信的底层支持。

优选的,所述共识层采用pbft共识算法。

与现有技术相比,本发明的有益效果是:

1、根据同态加密的特性,使得数据由始至终都处于加密状态,增强了数据处理的安全性,实现了全程加密。

2、保证了即使在多节点的情况下,联盟成员与成员之间的信任程度。

3、采用整数环全同态加密算法,主要进行多项式运算,加密过程中不需要重新选择多项式,连续性好。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1为本发明的信息加解密示意图;

图2为本发明中的加密信息处理图;

图3为本发明中的加密函数处理图;

图4为本发明中的区块链运行层架构图;

图5为本发明中的内部数据流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例1

请参阅图1-5,本发明提供以下技术方案:一种基于同态加密算法的联盟链数据处理方法及装置,包括以下步骤:

s1、提供同态加密库并生成同态密钥,对用户提供的数据用其公钥进行加密保护,数据处理的时候都是密文运算,在最终账本中加密保存;

s2、对各其它节点产生的数值进行加密而生成加密值;

s3、把加密值传输至运行联盟链的order节点,并且控制子节点,根据用户的需求,对各个加密值进行运算,最终获得加密过的数据;

s4、提供范围证明校验,共识节点能够对密文进行验证;

s5、用户用其同态私钥进行解密,得出经联盟链处理后的信息。

本实施方案中:请参阅图1,同态加密颠覆了传统意义上的加密模式,即可以实现在密文上的计算,其生成解密后,仿佛他们已经在执行的操作的结果匹配的加密结果的明文,换言之,这项技术令人可以在把私有信息经过加密上传到云端中,进行诸如检索、比较等操作,得出正确的结果,而在整个处理过程中云端并不能获得用户的信息。因此全同态加密算法可以实现在整个数据处理的过程中始终保持加密的状态,从而满足了用户的需求,对加密信息和加密函数进行保护。

本实施方案中:对需要加密传输计算的信息进行同态加密,请参阅图2,其中接收方a有私有的函数fa和私有的信息xa,发送方把私有信息yb用私有公钥pkb加密得到e(y)发送给了a,接收方a用自己的私有函数fa加密私有信息xa和e(yb),由于同态性质,函数faxb被隐藏,而b获得e(fa(xa,yb))。发送方通过私有的私钥加密d(e(fa(xa,yb)))=fa(xa,yb)。

也可以对函数进行加密处理,加密函数的处理如图3所示,主要是对私有的操作函数进行保护。alice有私有的函数fa,并用私有公钥pka加密函数fa发送给b,b根据私有信息xb计算e(fa)(xb),由于同态性质,因此隐藏了b的信息xb,得到e(fa(xb)),并发送给a,a用私钥解密获得fa(xb)。

其中,同态算法具体如下:

keygen:对f(x)∈fp[x],选择随机的整数ai,ri∈z,因此公钥pk=<b0,b1,…,bn>,对每个bi,满足bi=a*f(x)+ri,b0最大。

encryption:随机选择一个整数子集s∈{1,2,…,n},m∈{o,1},随机选择r∈(-22p,22p),密文

decryption:m=[cmodx]mod2

同态性性质:

(1)加法:给定公钥pk,密文c1、c2,则:

c=[c1+c2]modb0

(2)乘法:给定公钥pk,密文c1、c2,则:

c=[c1*c2]modb0

其中,表示x向下取整;表示x向上取整。

加解密正确性证明:

(1)设需要加密的明文信息为m=1或m=0,选择的函数为fi(x),选择n+1个a和n+1个ri,s={1,2,…,n}。

(2)计算n+1个bi,使得b0次数最高。

(3)加密明文信息m,得到

(4)不妨设i取得s集合中的前k个bi。

(5)密文c可以写成:c=[m+2r+2(b1+b2+...+bk)]modb0

(6)c是满足多项式形式的数据,即c=g(x)x+r’。

(7)解密时,首先cmodx得到h,其中,h=r'=m+2(r+r1+r2+...+rk)。

(8)最后hmod2得到密文m。

同态算法正确性证明:

(1)设c={c1,c2,...,cn},

(2)h(pk,c)=(c1*c2*...*cn)modb0,其中,*表示同态加法或者同态乘法。

(3)d(sk,h(pk,c))=(((c1*c2*...*cn)modb0)modx)mod2。

(4)恢复得到明文m=(m1*m2*…*mn)。

本实施方案中:采用对计算的信息进行同态加密,先用生成的公钥pk加密明文信息m,得到在经过联盟链的处理后通过私钥sk恢复明文,得到用户需要的数据m’。应用本种加密方法可以对已经加密的数据进行处理,使流程得到简化,能够把信息加密和数据处理统一结合,并且能够很好地增强存储于各个节点的安全性,从而很好地抵抗女巫攻击。

本实施方案中:请参阅图4,存储层主要存储交易日志和交易相关的内容。其中,交易日志基于logback实现。交易的内容由内置的sqlite数据库存储,读写sqlite数据库可以基于jpa实现;交易的上链元数据信息由rocksdb或leveldb存储。

数据层由区块和区块“链”(区块的链式结构)组成。其中,区块中还会涉及交易列表在merkle树中的存储及根节点哈希值的计算。交易的内容也需要加密处理。由于在联盟链中有多个节点,为有效管理节点数据及保障数据安全,建议为不同节点分配不同的公、私钥,以便加密使用。

网络层主要提供共识达成及数据通信的底层支持。在区块链中,每个节点既是数据的发送方,又是数据的接收方。可以说每个节点既是客户端,又是服务端,因此需要基于长连接来实现。我们可以基于websocket用原生方式建立长连接,也可以基于长连接第三方工具包实现。

共识层采用pbft(practicalbyzantinefaulttolerance)共识算法。不同于公链的挖矿机制,联盟链中更注重各节点信息的统一,因此可以省去挖矿,直奔共识达成的目标。

激励层主要是币(coin)和token的颁发和流通。在公链中,激励是公链的灵魂;但在联盟链中不是必需的。

应用层主要是联盟链中各个产品的落地。一般联盟链的应用层都是面向行业的,解决行业内的问题。

本实施方案中:请参阅图5,联盟链架构划分出order节点与非order节点两类节点,其中order节点参与共识,非order节点提供数据运算的服务。由于存在木桶原理,即系统中性能最差的拜占庭节点会影响整个系统的性能,因此采用同态加密后使得非order节点的运算量得到了平衡,以保证整个系统的稳定性、高效性、可用性等。

1、在联盟链节点获得数据之前,提供同态加密库并生成同态密钥(包括公钥及私钥),对用户提供的数据用其公钥进行加密保护,数据处理的时候都是密文运算,在最终账本中加密保存,即使节点被攻破,获取到数据记录也无法解密;

2、然后对各其它节点产生的数值进行加密而生成加密值,对数值进行加密的执行主体可以是各其它节点本身,也可以是其它节点以外的节点,如共识节点,在此不做具体限定。

3、然后把加密值传输至运行联盟链的order节点,并且控制子节点,根据用户的需求,对各个加密值进行运算,最终获得加密过的数据。

4、提供范围证明校验,共识节点能够对密文进行验证,无需解密就能校验交易的正确性,从而识别出恶意交易风险,

5、保证了智能合约的正确执行。最终输出处理后的数据,最终由用户用其同态私钥进行解密,得出经联盟链处理后的信息。

本发明的工作原理及使用流程:例如国家卫生部门会根据用同态加密算法生成的公钥和私钥,先用公钥加密账本,然后传入联盟链中,对联盟中的各大医院作为联盟节点,在联盟链中进行医疗数据的采集和处理,最终将处理过数据返还给卫生部门,然后用私钥解密,得出最终统计过的数据,步骤如下:

步骤1.首先同态加密是基于数学难题的计算复杂性理论的密码学技术,可以对经过同态加密的数据进行数据处理得到一个输出,将这个输出进行解密,也可以对处理数据的函数进行加密,

其结果与用同一方法处理未加密的原始数据得到的输出结果是一致的,本例采用原始数据进行加密处理:

其中,m表示明文的集合,c表示密文的集合,←表示可以从右式计算得出左式。

特别地,有:

,e(m1×m2)←e(m1)×e(m2)

分别为加法同态、乘法同态。

代码demo如下:

另外,执行本步骤的前提是在order节点获得数据之前根据同态加密算法生成同态密钥(包括公钥及私钥),进而order节点需要公开同态公钥以供其它节点以外的节点使用,并且用户自身保留同态私钥。

步骤2.本步骤通过order节点所公开的同态公钥对各其它节点产生的数值进行加密而生成加密值,进而通过使用加密值参与后续的执行步骤能够保证其它节点的具体数据内容不被泄露,提高了数据处理的隐秘性。此外,对数值进行加密的执行主体可以是各其它节点本身,也可以是其它节点以外的节点,如共识节点,在此不做具体限定。联盟链是用pbft就是以算法模型来解决共识,它不存在token分发机制,能耗较低。过程可以简述为大家先投票选出领导者,领导者记账后其他人投票通过。在pbft算法中,可以证明只要会出错的拜占庭节点小于系统全部数量的1/3,那么整个系统就可以正常工作。联盟链通过基于pki的成员身份管理,联盟链网络可以对接入的节点和用户的各种能力进行限制。比如,在fabric设计中考虑了三种类型的证书:登记证书(enrollmentcertificate)、交易证书(transactioncertificate),以及保障通信链路安全的tls证书。仅允许授权的节点加入网络,并可根据权限查看信息,它的维护一般由联盟成员进行,容易进行权限的控制,治理有规可循。维护简单,交易成本也更低。

另外,本步骤中所指的同态加密算法,是对于加法同态加密算法以及乘法同态加密算法的统称,并且上述由于乘法与加法之间存在转换关系,因此上述两种计算类型的同态加密算法均能够实现本步骤中对数据的加密以及后续步骤中对加密值的求和求积运算。

步骤3.然后把加密值传输至运行联盟链的order节点,并且控制子节点,根据用户的需求,对各个加密值进行运算,最终获得加密过的数据。

步骤4.各个节点在相互之间都遵循联盟链下面的智能合约,然后通过各节点中的区块相连接,传输并且在各个节点当中处理数据。需要指出的是,节点假设定有n个,各个节点都是在联盟链中的联盟节点,拥有的权限更高,能够执行联盟链机制下的相关操作。

步骤5.最终输出处理后的数据,最终由用户用其同态私钥进行解密,得出经联盟链处理后的信息。

可以得出的是无论是order节点还是下面的节点,都对信息是不可知的,因为进行了同态加密,即使是联盟中的order节点,能够获取数据,也没办法还原具体的信息,因为,数据在之前已经经过加密处理。并且基于的是同态加密算法,可以在真实信息中加入混淆信息,这样能够极大程度地保证了即使是弱中心化的联盟链就算可以看到数据,也没有办法窃取它的信息或者进行篡改。

最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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