基于区块链的数据隐私及数据共享保护技术

2022-10-21 12:19唐卫华
科学技术创新 2022年27期
关键词:私钥公钥密钥

唐卫华

(深圳链式资讯有限公司,广东 深圳 518048)

区块链技术的优势不仅仅在于分布式数据存储,而且还融合了加密算法、共识机制,在提高数据存储容量的同时也能保证数据的存储安全。由此可见,将区块链技术应用于数据隐私保护和数据共享保护存在技术上的可行性。在云存储模式下,用户将数据上传至云服务器后,由于用户无法完全信任云服务提供商,因此需要对数据进行加密。而等到用户需要使用数据或共享数据时,又必须提前将加密数据进行解密。这种情况下数据的安全性和操作的简易性无法得到兼顾,给用户带来了不好的体验。基于区块链的数据隐私与数据共享保护技术,可以实现快速的加密解密,而被加密的数据只能通过保留在用户处的私钥才能解密,这样既可以保证数据隐私和共享安全,同时又支持用户随时访问数据,优化了用户的使用体验。

1 基于区块链的数据隐私保护技术

1.1 隐私保护的实现原理

假设第三方可信CA(证书颁发机构)提供了门限NTRU 密码系统(p,t),其中p 代表CA 以及用户数量,t表示参与解密的最少用户数量。设该系统中对所有用户公开的公钥(pk)为h,发放给所有用户的私钥(sk)为i,数据隐私保护实现方法为:

首先,由CA 向每一名用户发放一个密钥,用户可使用该密钥对需要保护的数据进行加密。加密后的数据,至少需要t 个用户才能对数据进行解密。同时,云服务器支持数据的上传和下载,并同步生成具有防篡改性的哈希值(Hash),每一组哈希值对应一个数字证书。

其次,云服务器将被加密的数据写入到区块链中,实现加密数据的分布式存储。当两名及以上的用户希望通过区块链实现数据交换与共享时,利用NTRU 密码算法对共享数据进行加密,保证数据传输的安全性。其他用户接收到经过加密处理后的数据后,可以加密并获得信息。解密时,同样需要不少于t个用户一起解密。

1.2 数据隐私保护系统的设计

该系统主要由4 个模块组成,分别是用户层、数据层、云存储层和区块链层。各模块的功能如下:

(1) 用户层提供的人机交互界面,可以支持用户手动对数据进行加密、解密处理。同时,不同用户之间也可以交换数据实现共享。用户层与数据层之间可通过工业数据总线的方式连接并实现数据的传递;此外,用户层也可跨越数据层、云存储层直接与区块楼层连接,进行数据的交易和读取。

(2) 数据层用于存储用户想要保密和共享的数据。对于支持共享的数据,所有用户可以共同维护数据安全。其实现方式为:使用NTRU 密码算法将共享数据进行加密处理,然后将其上传到云端,实现共享。由于共享后的数据为所有用户共有,因此数据的保密也需要全体用户的参与。当需要对加密数据进行解密时,必须由该系统内所有用户同时执行解密操作,从而避免了单个用户篡改数据的行为,切实保障了共享数据的安全性[1]。

(3) 云存储层主要存放被用户加密的数据。这些数据即可上传至数据层,方便用户浏览和调用;同时也能下载到区块链中进行分布式保存。

(4) 区块链层采用分布式协议,主要用于存储从云端下载下来的数据。由于区块链具有不可伪造、不可篡改的特性,因此一旦数据被写入区块链,就无法改变和移除,从而保证了数据的隐私性和安全性。当然,用户可以与区块链交易从而调用数据,但是获得的数据为被加密状态,需要经过所有用户的同意才能解密、使用。

1.3 数据隐私保护技术的性能验证

1.3.1 密钥生成性能验证

本次实验使用兼容X9.98 协议的密钥,并选择了3 个不同安全级别的NTRU 密钥, 分别是NTRU_EES401EP2(公钥长度557Byte、私钥长度607Byte)、NTRU_EES439EP1(公钥长度609Byte、私钥长 度 659Byte)、NTRU_EES593EP1 ( 公 钥 长 度821Byte、私钥长度891Byte)。在NTRU 密码算法中,公钥用h 表示,私钥以(f,fp)集合形式表示。实验中通过调用NTRU 密码函数库,可以获得与3 种公钥对应的密码对,即密钥。密钥生成时间,见图1。

结合图1 可知,基于NTRU 算法生成密钥的3 种公钥,长度为557 Byte 的公钥只需要9.3 s 即可生成密钥;而长度为821 Byte 的公钥则需要14.2 s 生成密钥。由此可见,随着公钥长度的增加,生成密钥所需时间也会相应的增加[2]。

图1 NTRU 密钥生成时间

1.3.2 加密性能验证

实验中仍然选择长度分别为557 Byte、609 Byte和821 Byte 的3 种公钥,分别开展加密与解密实验,并统计加密、加密的时间,实验结果,见图2。

图2 NTRU 加解密时间

结合图2 可知,整体上来看基于NTRU 算法的加密、解密速度较快,基本上维持在了10 ms 以内。其中,随着公钥长度的增加,加密时间也相应增加,呈良好的线性变化;而公钥长度增加并不会对NTRU 解密时间产生明显的影响。长度为557 Byte 的公钥完成解密,用时为2 ms;长度为609 Byte 的公钥完成解密为2.4 ms;长度为821 Byte 的公钥完成解密为2.9 s,变化不明显。整体来看,本文设计的基于NTRU 算法的公钥密码体制具有较高的效率,可以快速实现加密、解密,满足了用户对数据进行加密保护和加密使用的需求[3]。

2 基于区块链的数据共享保护技术

2.1 系统模型的构建

要想实现数据共享,必然伴随着数据在网络间的传输。而网络的开放性很容易使得数据传输过程中被第三方恶意拦截,从而导致数据面临泄露、丢失的风险。为避免这一问题,设计了一种基于区块链的数据共享保护系统,该系统主要包括安全云、区块链、传感器所有者和第三方数据请求者4 部分,其结构组成,见图3。

图3 基于区块链的数据共享保护模型

2.2 系统功能的实现

该系统的运行流程为:

(1) 传感器所有者通过启动程序或操作按键的方式,使传感器从待机状态变位激活状态,在读取智能合约信息后将其注册到区块链上。

(2) 在传感器被激活后,第三方数据请求者同步向传感器发送一个访问请求,用于获取数据的类型和要求。

(3) 访问请求获得许可后,准备发送数据。数据发送前,安全云服务会对该数据进行过滤处理,保证数据已经被加密。

(4) 传感器所有者在区块链上对密钥进行更新,准备接收数据。

(5) 数据正常接收后,根据用户的数据保密需要,使用密钥对数据进行代理重签密。重签密后的数据被上传至云服务器,在合适的位置保存。

(6) 安全云将数据的密钥、存储位置等信息发送给第三方数据请求者。后期可以基于智能合约和密钥,对存储在云服务器上的加密数据进行解密和下载[4]。

2.3 与区块链的连接

基于区块链技术的代理重加密,会提供配对的公钥和私钥。其中,密钥的持有者可以使用该密钥对任意一段数据进行数字签名。这样既可以实现对数据的加密处理,同时也能使用数字签名来验证区块链上提交的交易,从而避免第三方假冒密钥持有者非法获取数据。在部署智能合约时,公钥PB被上传到区块链上。此时存在以下关系:

而重加密密钥KBC则经过传感器由PB导出,再基于智能合约与云服务器实现共享。分布式存储在区块链上的数据,用以太网对重加密密钥进行Hsah 和签名。操作方式为:

(1) KBC=H(meta|sPB)+ H(meta|sPC)

(2) SID<-H(KBC)

云服务器通过重加密密钥将数据转化成为密文,并上传到云端进行存储。经过加密处理后的数据可以与代理服务器共享。在代理服务器上使用私钥SID可以进行验证,并在验证通过后进行解密。

2.4 数据共享保护系统的性能验证

为验证本文设计的数据共享保护系统的应用效果,以传统的数据加密保护方式为参照,设计了对比实验。两种方案的计算成本,见表1。

表1 2 种方案的计算成本对比

表1 中,M 表示G1中的点乘计算量,P 表示配对操作计算量。另外对2 种方案的密文长度和安全性进行了比较,见表2。

表2 2种方案安全性和密文长度对比

表2 中,“√”为当前方案满足安全属性,同理“×”为不满足安全属性。结合上表可知,传统方案不满足IND_CCA2 的安全性,而本文设计的方案可以同时满足IND-CCA2 和EUF-CMA 安全要求。密文长度方面,本文设计系统的密文长度短。在仿真实验中,传统方案解密用时77.45 ms,而本文设计方案解密用时为53.37 ms,解密速度更快[5]。

3 结论

在大数据时代,数据隐私保护和共享保护的要求进一步提升。而区块链的不可篡改性、去中心化等特点,在保障数据安全方面发挥了独特优势。因此将区块链技术应用到数据隐私保护和数据共享保护领域是可行的。本文提供的一种基于NTRU 密码算法进行数据保护,同时结合区块链技术进行数据加密、解密处理,既可以满足用户对重要数据的保密存储要求,同时又能方便、快速地完成加密,为数据的共享利用提供了便利,实用效果良好。

猜你喜欢
私钥公钥密钥
比特币的安全性到底有多高
幻中邂逅之金色密钥
幻中邂逅之金色密钥
Spatially defined single-cell transcriptional profiling characterizes diverse chondrocyte subtypes and nucleus pulposus progenitors in human intervertebral discs
程序员把7500枚比特币扔掉损失巨大
神奇的公钥密码
Android密钥库简析
国密SM2密码算法的C语言实现
基于身份的聚合签名体制研究
一种新的动态批密钥更新算法