一种基于格密码的区块链数据隐私保护方案
摘 要:区块链是未来技术发展的趋势,但是现有区块链技术存在隐私数据保护不够完善的问题。针对现有区块链隐私数据保护问题,设计了一种基于格密码加密方法保证隐私数据安全的方案,并采用安全的可验证密钥共享进行密钥保存。格密码加密采用了基于环上带误差学习(Ring Learning With Error,RLWE)问题的格密码加密方案,该加密方案具备抗量子攻击、密钥存储量小、计算速度相对较快的优点。密钥共享方面基于 Feldman VSS 密钥共享,结合了 ElGamal 加密,对密钥碎片进行了加密,保证了密钥碎片的可验证及安全性,同时实现了抗合谋攻击。通过实验测试了链上执行效果,并验证了该方案在隐私数据保护方面的有效性,以及在密钥共享方面的安全性。
2008年,中本聪提交了关于比特币的论文之后,区块链技术逐渐进入人们的日常生活中。经过十多年的发展,目前区块链技术已经取得了长足的进步,但是依旧存在许多问题,限制了区块链的大规模应用。区块链本质上是一个分布式数据库,具有不可篡改 、去中心化 、安全透明的特性 。然而,正是由于区块链公开账本分布式存储具有账本透明的特性,会导致用户私密数据泄露的问题。确保隐私数据安全最好的方法就是对隐私数据进行加密处理,而目前大多数的区块链平台都不具备加密用户数据的功能 。
1977 年,Ron Rivest 等人提出了著名的 RSA 加密算法。RSA 加密由 RSA 难题假设保证了加密的安全性,即在多项式时间内无法破解大素数因式分解的难题假设,从而保证了RSA加密算法的安全性。RSA 由大质数因式分解难题保证安全,但是,想要RSA 加密越安全,需要的质数乘积也越大,导致了 RSA 算法加密长度越长,基本上对于 2 048 位的RSA 加密能保证加密安全,但是计算速度较慢、效率较低,对于计算资源的消耗巨大,使用范围较为局限。
1985 年塔希尔提出了 ElGamal 加密算法 ,该加密算法基于离散对数难题。该加密算法相比于 RSA算法,加密数据量减少了,但是大量的指数运算的计算资源开销也很大,限制了该加密算法的使用。
椭圆曲线加密算法(Elliptic Curve Cryptography,ECC)是基于椭圆曲线数学理论实现的一种非对称加密算法,相比于 RSA 算法,ECC 可以使用更短的密钥来实现比 RSA 更高的加密安全,目前比特币采用的就是 ECC 加密。
以上是目前基于经典数论的 3 种非对称加密方案,无数的验证都表明使用这些方案来加密是安全的,在多项式时间内无法破解。但是,随着后量子计算时代的到来,以上基于经典数论的加密方案在量子计算时代都会被轻易破解,因此在后量子时代需要更加安全的加密算法保证数据的安全。美国国家标准技术研究所(National Institute of Standards and Technology,NIST)在 2012 年就开始了后量子密码算法的研究,截至 2021 年,研究者们提出的后量子密码算法主要包括格(Lattice based)、 哈 希(Hash-based), 编 码(Codebased)、多变量(Multivariate-based)4 种类型的抗量子加密算法。2022 年 7 月,NIST 举办的后量子密码标准竞赛选出了 CRYSTALS-KYBER(基于格密码)、CRYSTALS-DILITHIUM( 基于格密 码)、FALCON( 基于格密码)、SPHINCS+(基于哈希函数) 这 4 个算法作为标准,其中,CRYSTALS-KYBER 为公钥加密算法,CRYSTALSDILITHIUM、FALCON、SPHINCS+ 为签名算法。
2005 年,Regev首次提出了容错学习问题(Learning With Errors,LWE)。经过多年的研究,格密码已经被公认为是一种很好的抗量子计算的加密方案。基于格的算法在安全性、密钥尺寸、计算速度上达到了相对较好的平衡 ,且与经典的基于数论的加密算法相比,除了计算效率不佳,其安全性较高,尤其抗量子计算性能优越。
本文基于 Hyperledger Fabric 联盟链平台,采用基于 RLEW 格的公私钥加密方案,相比较 LWE 格密码方案,RLWE 具备较高的计算效率,以及更短的密钥尺寸。在此基础上结合密钥共享技术,将格密码生成的私钥在联盟链内进行共享,保证用户隐私数据的安全。传统的密钥共享面临合谋问题的挑战,但本文基于 Feldman 可验证密钥共享基础,结合离散对数问题,实现了一套抗合谋攻击的密钥共享。
1
基础知识
1.1 符号说明
表 1 列出了本文中所用到的符号以及符号对应的含义。
表 1 基础符号说明
1.2 格基础
定义 1:格是上的一个离散子群,即:
线性空间基与格的区别在于,线性空间中的基可以通过任意地组合构成线性空间中的所有向量,但是格是由整数构成的,是由格点构成的空间,是一个离散而非连续的空间,所有向量无法由格点准确描述,保证了离散性。如图 1 所示,在一个格空间中,可以有多组不同的基向量表示,但是通过格点无法准确描述向量。
图 1 一组二维格上两组不同的基
定义 2:q 元格。
q 元格相对来说是一类更加简单的格,A 是矩阵,由 Ax=0 这样的方程的整数解所构成的空间就是 q 元格。显然,在欧式空间是格的一种平移。
1.3 格上的困难问题
定义 3:最小整数解(Small Integer Solutions Problem,SIS) 问 题。并 且找到使得
SIS 问题即求 Ax=0 这个齐次线性方程组的解,只是限定了 x 必须是整数,且 ||x|| ≤ β 这样的条件,相当于在这个 q 元格中解决一个求最短向量(Shortest Vector Problem,SVP)问题。
定义 4:LWE 问题。并且Zq m×n,e 满足高斯误差分布找到使得
求解 As=b,找出满足非齐次方程的 e 向量很简单,但是 LWE 问题中,在方程左边加入了噪声 e,变为求 As+e=b 就很困难。
定义 5:RLWE 问题。设其中安全参数 n 是 2 的幂。设是结构的多项式环,的元素可以用小于 n 的多项式表示,与 LWE 问题类似,只是将 LWE 问题中的矩阵换为了多项式环 。
1.4 格困难问题复杂度
给定一个 n 维的格并且
γ-SVP:找到一个非零向量 v,使得 ||v|| ≤ γ。
γ-CVP:给定一个点 t,找到 v,v ∈ Λ,使得
由γ 的大小可以推算出格困难问题的复杂度,当 γ 越大的时候,格问题变得越简单;当 γ 越小的时候,格问题变成近似 NP-hard 问题。
如图 2 所示,格上的困难问题求解时间复杂度和空间复杂度都是关于 n 的一个指数,是被验证的目前可用的抗量子计算加密算法。
图 2 格困难问题复杂度
1.5 可验证密钥共享
1979 年,Shamir 提出了著名的密钥共享方案——Shamir 密钥分享。该方案巧妙地利用多项式函数,将密钥隐藏于函数值的常数,进行密钥分割时,取该 k-1 次多项式曲线上 n 个不同的点恢复密钥时,当 k 个密钥聚合在一起的时候,能够确定唯一一条曲线,而该曲线的常数项即为密钥。此外,Shamir 首次提出了通过门限完整恢复密钥的方法,但是在该方案中,如果密钥分发方故意分发错误密钥碎片,接收方无法验证,恢复密钥时则会失败。Feldman VSS[16] 进一步完善了 Shamir 的密钥分享方案,该方案完全基于 Shamir 密钥分享,并在其基础上添加了承诺,并为每一个密钥碎片计算承诺(commit),每个密钥接收方都可以通过验证自己接收到的密钥碎片和commit 进行计算,来证明密钥碎片的正确性。但Shamir 和 Feldman 方案都无法解决合谋攻击,n 个碎片中有 k 个攻击者完成合谋都能够完整地恢复出密钥。
2
方案介绍
本方案基于联盟链平台 Hyperledger Fabric,采用了 RLWE 格加密对用户上传到 Fabric 的隐私数据进行加密,并采用可验证密钥共享的方式共享私钥。此外,本文基于 Feldman VSS 密钥共享架构采用分布式密钥生成(Distributed Key Generation,DKG)模式来进行密钥生成,相比于传统方法需要一个可信的密钥分发中心,实现了去中心化。在 (n,t)DKG中,n 为节点数,t 为阈值。对于用户加密数据的私钥采用 (n,t)DKG 产生密钥碎片对每个密钥碎片采用 ElGamal 算法进行加密,得到密钥碎片所有节点都可验证密钥碎片的正确性,但是无法通过合谋获取密钥。密钥恢复时,由 DKG 中密钥的产生者收集达到阈值数量的密钥碎片,使用 ElGamal 算法产生的私钥对所有密钥碎片进行解密,得到正确的从而恢复出正确的密钥。具体方案为:
(1) 密 钥 生 成(KeyGen)。 均 匀 随 机 地 从χ 中抽取 s,即 s←χ,χ 服从高斯分布。从多项式环中均匀随机抽取即从 χ 中均匀随机选取噪声,即计算公钥私钥 sk=(s)。
(2)隐私信息加密(Encrypt)。对于 n 位明文消息利用公钥进行加密。均匀随机选 取即计算作为最后加密的密文。
(3) 密 钥 分 割(Split)。随 机 生 成到的 系 数 值, 利 用 拉 格 朗 日 插 值 法 构 建多 项 式 曲 线, 取密钥碎片构 成
(4) 密 钥 分 发(Distribute)。利 用 ElGamal算法对密钥碎片进行加密。输入安全参数,生成其中计算得到新的多项式系数从 而 得 到 新 的 多 项 式以及加密后的密钥碎片
k-1,同时生成承诺 commit,发送并且广播承诺
(5)密钥验证(Verify)。参与节点接受到密钥 碎 片 后 进 行 密 钥 碎 片 验 证。接 受 节 点 利 用对密钥碎片进行验证。
(6)密钥恢复(Recovery)。DKG 密钥产生节点收集到足够的密钥碎片后, 可 以 利 用来验证收到的密钥碎片是否被作恶。经过验证后,计算出正确的多项式系数得到后带入多项式曲线 f(x) 中,取 即为隐藏的密钥。
(7)密钥解密(Decrypt)。解密密文时,只需要计算若则 m=0,否则m=1
3
方案分析
3.1 正确性分析
RLWE 解密的正确性可由展开为:
可以发现,得到的 x 是原来密文 m 乘以,再加上噪声的结果,e的最大上限值是B,所以误差噪声最大可达到mB。多项式系数的界需要满足约束,所以误差噪声e的存在不会改变算法的正确性,就算噪声再大,m 也能落在可识别的区间内,当多项式不满足该约束时,无法恢复密文 m。
3.2 安全性分析
基于随机预言机的模型中所有的哈希函数唯一的输入值对应唯一的一个输出,用户知道哈希输入但是无法控制哈希输出,只能问询输出结果,是一种理想的随机模型。在基于格加密的隐私信息保护方案中,假设挑战者获取到了经过 RLWE 加密的隐私信息密文那么挑战者获取到的信息为其表达式为:
那么,此时构建一个类似的密文其表达式为:
同时再创建密文
因为根据 DLWE 假 设, 挑 战 者 是 无 法 分 辨RLWE 实体和随机向量的,将公钥中的替换为满足高斯分布的随机向量 v 构造出基于此,将密文部分的替换为多项式环上的一个随机数,将非随机参数随机化。依据剩余哈希定理,即便是攻击者获取了部分比特位置信息,但是依旧无法分辨综上所述,挑战者也无法分辨所以挑战者无法分辨出因此 RLWE 加密是语义安全的。保证 RLWE 格加密问题困难复杂度,并保证格加密难度下界为多项式时间,挑战者无法在线性时间内破解 RLWE 加密,所以 RLWE 加密在随机语言模型下是安全的。
本方案基于 Feldman 可验证密钥共享和ElGamal 方式来实现密钥保护。传统的密钥共享存在合谋攻击的问题,即群组中多个节点恶意串通,当超过密钥恢复阈值的节点作恶合谋时,可以共同恢复出完整的私钥,这与采用密钥共享保护私钥的初衷是背道而驰的。在本方案中,基于 Feldman 构造出来的密钥碎片不是直接分发到各个节点进行保存,而是利用 ElGamal 对构造密钥碎片的多项式系数进行加密,从而得到新的多项式系数,构造出新的多项式。基于此得到新的加密碎片,假设挑战者恶意串通,在 (n,t)DKG 模式,挑战者集合了 t 个密钥碎片,共同恢复出多项式,并计算出 f(0)。但在本方案中,由于分发的密钥碎片是基于加密改造后的多项式生成的,合谋的挑战者恢复出的密钥也是无 效 的。为 密 文,为 公 钥,p,g,z为私钥,挑战者获取了密文挑战者想要通过获取私钥破解密文,需要通过以下计算:
式中:k(0<k<p-1) 为一个均匀的随机数,挑战者猜中 k 值的概率为此外,分子部分属于离散对数难题,离散对数难题是困难的,离散对数难题的计算难度介于 N 和 NP-complete(NPC)之间。从而证明了本方案的密钥共享是具备抗合谋攻击的安全的密钥共享方案。
4
实验与分析
4.1 实验结果
本次实验环境为 AMD Ryzen 7 PRO 4750U@1.7 GHz,内存为 16 G 2 666 Hz,操作系统为 Ubuntu16.04LTS,Golang 版本为 golang1.14.7,Fabric 版本为 fabric-1.4.11。通过搭建 Hyperledger Fabric 网络,在客户端完成加密。基于 Fabric 联盟链平台,构建了 1 个 order 节点,5 个 peer 节点的区块链网络,在 Fabric 客户端实现 RLWE 的格密码加密,并采用 DKG 分布式产生密钥碎片,对密钥碎片进行加密后分发,只有产生密钥碎片的节点接受达到阈值门限的密钥碎片才能恢复密钥。图 3 和图 4 展示了基于 LWE 格密码加密和基于 RLWE 格密码加密的对比。
图 3 公钥产生时间对比
4.2 实验分析
图 3 和图 4 对比了两种格加密方案密钥生成的计算消耗对比,通过实验结果可知,无论是 LWE格加密还是 RLWE 格加密,公钥生成时间和私钥生成时间都是随着密钥生成参数的增加而增加,但是RLWE 格加密比 LWE 格加密节约 30% 左右的计算耗时,能够更快地计算出格密码的公私钥。图 5 是使用了不同加密方案后区块链网络的吞吐量。通过实验结果可知,随着区块链网络中节点数量的增加,区块链网络的 TPS 呈现出下降的趋势,没有使用加密保护隐私数据的 Fabric 网络的吞吐量最高,最高达到 64 TPS,采用本方案 RLWE 加密保护隐私信息的区块链网络 TPS 最高达到 52 TPS,采用 LWE 格加密的区块链网络 TPS 最高为 46 TPS。通过对比可知,本方案能够在保证隐私信息安全的前提下,保证区块链网络吞吐量不下降太多。
图 4 私钥产生时间对比
图 5 吞吐量比较
图 6 为不同的密钥共享方案的密钥碎片生成耗时对比。通过实验数据可知,本方案的密钥共享生成密钥碎片是耗时最久的,Shamir 密钥共享方案是生成密钥碎片最快的。这是因为,在本方案中,为了实现抗合谋攻击,对密钥碎片进行了二次加密,将基于 Feldman 生成的密钥碎片进行加密,产生了大量的耗时。通过图 7 可知,Shamir 方案和Feldman 方案在密钥恢复上的时间基本一致,而本方案中密钥恢复最慢,这是因为本方案在执行密钥恢复时,需要对密钥碎片进行解密,得到解密的密钥碎片才能恢复完整的密钥,所以本方案的密钥恢复得最慢。
图 6 密钥碎片生成时间
图 7 密钥恢复时间
综上可知,实验验证了本方案的可行性。采用了格密码加密保护重要的隐私信息,虽然牺牲了部分计算性能和网络吞吐量,但是保障了区块链上隐私信息的安全。
5
结 语
随着区块链技术的发展,隐私安全问题近年来越来越受到人们的重视,传统基于经典数论难题的加密体系在量子计算面前不堪一击。本文基于Hyperledger Fabric 联盟链平台,结合了 RLWE 格密码,实现了一套安全的、抗量子计算的隐私数据保护区块链。该方案采用 DKG 架构,没有传统加密体系中的可信第三方中心,极大提高了隐私保护的安全性,同时实现了较为安全的抗合谋攻击功能,保证了密钥的安全性。通过实验表明,虽然 RLWE格加密会导致区块链网络吞吐量下降,且密钥碎片加解密过程会导致密钥恢复过程耗时增加,但是相比其所带来的安全性是值得的。在下一步的研究中将进一步研究怎样在大规模的区块链中提高密钥分发效率并减少密钥恢复的时间。
引用格式:彭慢煜 , 孙一萌 , 牛旭彤 , 等 . 一种基于格密码的区块链数据隐私保护方案 [J]. 通信技术 ,2023,56(4):502-508.