区块链数据隐私的可信任监管技术研究

2022-01-07 01:23王正华代文昊
软件导刊 2021年12期
关键词:监管者公钥密钥

史 玮,蓝 龙,王正华,代文昊

(1.国防科技大学计算机学院;2.国防科技大学量子信息研究所兼高性能计算国家重点实验室,湖南长沙 410073;3.中国科学院大学 网络空间安全学院,北京 100101)

0 引言

区块链技术于2008 年在中本聪发表的论文《Bitcoin:A peer-to-peer electronic cash system》中被首次提出[1]。区块链作为对等式网络中的一种去中心化的分布式账本技术,近些年受到企业、科研机构、政府的广泛关注和研究。区块链采用链式的结构进行验证并存储数据,并使用可信的共识机制以保证数据更新,从而创建出一个用于存储和共享数据的防篡改数字平台[2]。区块链具有去中心化、公开透明和不可篡改等特性,这些特性使得区块链在金融资产结算、数字政务、存证防伪数据服务等领域具有广阔的应用场景[3]。但是,在实际应用中公开透明等特性也带来了隐私保护问题,主要包括用户的匿名性和用户数据隐私保护[4]。用户数据的隐私泄露问题不胜枚举,例如Facebook 自成立以来恶意收集300PB 的用户数据并造成5 000万用户数据泄露[5-7]。在公开透明的区块链中,用户数据的隐私保护显得更为重要。2018 年,由中国信息通信研究院与中国通信标准化协会牵头,联合多家合作单位共同研究编制的《区块链安全白皮书——技术应用篇》中指出,为了促进技术安全应用,需创新监管手段,强化区块链平台应用监管力度,打造安全监测和监管平台技术实力[8]。可以看到,在可监管的前提下,保护区块链中数据的隐私信息仍然是一个极富实用价值和挑战性的研究课题。

从立法和技术的角度出发,很多方案尝试解决该问题。Dwork 等[9]使用差分隐私技术在分享数据时注入噪声,通过引入噪声达到数据隐私保护目的;Gentry 等[10]使用全同态加密技术处理数据,使得可以对加密后的数据进行任意运算。虽然Dwork 和Gentry 的方案极具开拓性,但仅仅保证了数据的隐私性,除非将噪声规律/同态私钥暴露给监管者,否则无法做到可监管特性;Zyskind 等[11]提出一种去中心化的用户隐私数据管理方案,该方案中用户完全拥有和控制自己的数据,可使用该方案中的访问授权功能实现可监管,但授权权限完全掌握在用户手中,弱化了可监管的概念以及存在访问授权变更时无法改变加密密钥等问题;Rahulamathavan 等[12]使用属性加密技术提出一种适用于物联网的可授权的数据隐私保护方案,在该方案中可通过为监管者赋予多标签实现可监管功能,但属性加密需要基于身份的密码体制,与目前区块链中使用的密码体制不同,需要重新维护一套基于身份的密码体制;Xiao 等[13]提出一种名为超级链的支持智能合约并行执行的方案,超级链开源项目中的分层确定性加密可以很好地进行加密数据监管,但额外暴露了用户的归属关系等隐私信息以及用户的任一上级均可进行监管,即用户无法控制监管授权权限[14]。

为了解决上述问题,本文提出一种适用于区块链的数据隐私保护及其可信任监管技术,在保护用户数据隐私的同时,只有被用户授权的监管机构可以访问数据,并且用户可以动态地改变监管授权策略,被回收权限的机构则无法继续访问用户隐私数据,使得用户数据真正掌握在用户手中。

1 背景知识

1.1 区块链

本文引用《区块链技术及应用》一书中对区块链的定义[15]。区块链是一种数据以区块为单位产生和存储,并按照时间顺序首尾相连形成链式结构,同时通过密码学保证不可篡改、不可伪造及数据传输访问安全的去中心化分布式账本。

为了便于理解,以比特币为例,在比特币问世之前,传统的金融系统需要可信赖的、中心化的权威第三方进行维护,而比特币没有中心化的可信第三方维护这个账本,系统中每个用户的地位都是平等的,共同维护账本且可以解决双重支付和账本一致性问题[16-18]。区块链根据读写权限可以被分为3 种类型:公有链、私有链和联盟链。顾名思义,在公有链中任何人都可以读取和写入区块链的数据。私有链与公有链恰恰相反,私有链中的写入权限仅被一个组织/机构所拥有,读取权限则可根据需求选择性地对外开放。联盟链则是介于公有链与私有链之间的区块链,其写入权限是由预先选定的多个组织/机构控制,读取权限按需求选择性地对外开放。

区块链通过链式结构存储数据,每个数据区块包括区块头和区块体两部分,每个区块拥有唯一的哈希值作为其标识,当前区块通过存储前一区块哈希值与前一区块相连,从而形成链式结构,如图1 所示。区块头中封装了前一区块的哈希值、时间戳、Merkle 树根值等信息[19];区块体存储交易信息,即由区块链记录的数据信息,每笔交易都由交易方对其进行数字签名,从而确保数据未被伪造且不可篡改,每一笔已完成的交易都将被永久性地记录在区块体中,供参与者查询。

1.2 BIP32 密钥生成协议

比特币改进建议32(Bitcoin Improvement Proposals32,BIP32)是一个密钥生成协议,用户可以通过一个随机种子生成一对扩展公私钥,然后通过公钥/私钥生成多对子扩展公私钥,并且这些子扩展公私钥也可以衍生出自己的扩展公私钥对,因此也被称为分层确定性密钥衍生协议[20]。

Fig.1 Data structure of blockchain图1 区块链的数据结构

在BIP32 中,扩展密钥的数据结构被定义为(Key,ChildNumber,ChainCode,Depth,IsPrivate,FingerPrint),其中Key为密钥、ChildNumber为序列号、ChainCode 为链码、Depth 为该扩展密钥所在的深度、IsPrivate 为区分公钥和私钥的标识符、FingerPrint 为父扩展密钥的哈希值。BIP32 中的密钥衍生算法分为两种:普通衍生和强化衍生,两者的区别在于普通衍生是使用扩展公钥衍生子密钥,强化衍生是使用扩展私钥衍生子密钥。图2 为BIP32 密钥生成协议示意图。

Fig.2 Schematic diagram of BIP32 key generation protocol图2 BIP32 密钥生成协议

2 区块链数据隐私保护与可监管方案

本方案在BIP32 协议的基础上进行了补充和优化,用户可以控制中间机构的监管权限,并且适用于多层次数据监管场景。本文设计的可信任监管方案整体流程如图3 所示,整个监管过程分为5 个具体步骤。首先由监管者衍生出加密密钥并下发给用户;用户根据加密密钥生成完整的密钥对;使用加密公钥对消息加密并上链;在消息上链过程中用户能够灵活地增加或删除中间机构的监管权限;最后,中间机构可通过密文信息查看自身是否被授权,如果被授权,则合规地解密数据并访问,其中,被授权的中间机构相互无法获知对方身份信息,保证了监管者的匿名性。

2.1 整体架构

本文提出的可信任监管技术方案基于成熟的标准密码学组件和可监管组件。其中使用到的标准密码学组件包括:非对称加密算法,签名算法和哈希算法。具体而言,非对称加密算法Genc、ℰenc、Denc包括生成算法、加密算法和解密算法;签名算法Gsig、Ssig、Vsig包括生成算法、签名算法和验证算法;哈希算法ℋ 包括两种实现方式:SHA-256 和SHA-512[21],分别表示为ℋ256和ℋ512。在实际实验中,非对称加密算法和签名算法分别由ECIES 和ECDSA 实现[22-23]。上述标准密码学组件是本文提出的可信任监管技术方法的重要组成部分,但是密码学组件本身无法实现可监管目标,为实现本文提出的可信任监管功能,下文将重点介绍可监管组件。

Fig.3 Overall flow of trusted regulatory scheme图3 可信任监管方案整体流程

构建的可监管组件包括 :加密密钥对Addressenc=(pkenc,skenc),其中pkenc为加密公钥,skenc为加密私钥;完整密钥对Address=(Addresssig,Addressenc),其中Addresssig为签名密钥对,Addressenc为加密密钥对;辅助函数(pksig,pkenc,c,σ) ←Parse(tx),该函数用于交易解析。可监管组件由算法1-3 实现,本方案以标准密码学组件和可监管组件为支撑,共同构建了可信任监管方案;2.3 节对方案算法进行说明,具体由算法4-6 实现,其中算法4 实现了用户数据加密上链;算法5-6 实现了被授权的监管机构对用户加密数据的监管以及用户通过修改加密公钥中的访问控制字段以增加或删除监管者的监管权限;2.4 节将阐述安全性说明。整体架构如图4 所示。

Fig.4 Overall architecture of trusted regulatory approach图4 可信任监管方法整体架构

2.2 可监管组件构建

对方案中使用的组件进行简要介绍,同时假设读者熟悉区块链技术[24]。

2.2.1 加密密钥对

每个用户都有一对由上级衍生的加密密钥,该加密密钥对具有层次关系。当用户需要保护敏感数据的隐私时,可使用加密公钥对数据进行加密处理后上链。当数据量

较大时,出于加密效率考虑,可使用加密公钥加密一个随机选取的对称密钥,然后使用对称密钥加密数据。本文对加密密钥进行了扩展,数据结构如下:

相较于BIP32,新增了密文血缘关系字段EncBloodline和访问控制字段AccessControl,其中EncBloodline字段为键值对集合,键为深度,值为该层中序列号的密文或明文。用户可以通过修改这两个字段动态改变监管方的授权,使被监管的权力掌握在自己手中。用户u的加密密钥对为:

如算法1 所示,阐述上级监管者s衍生用户u加密密钥的过程。其中,I是SHA-512 算法计算得到的一个大小为512 位的哈希值,哈希的原像为上级监管者的私钥信息、上级监管者的链码以及序列号,哈希值I的前256 位作为用户的加密密钥,后256 位作为用户加密密钥的链码,当中间机构衍生出加密密钥后,通过秘密通道将密钥发送给用户,本文的衍生算法仅允许安全性更强的强化衍生。

算法1 加密密钥衍生算法

2.2.2 完整密钥对

在传统的区块链中使用伪匿名机制,即用公钥哈希后的地址标识用户,每个用户拥有至少一对用于签名交易的公私钥对。在本文中,用户不仅拥有用于签名交易的公私钥对,还拥有由上级监管者衍生出的加密密钥。因此,用户的完整密钥对为:

其中,签名公私钥对Addresssig=(pksig,sksig),加密公私钥对Addressenc=(pkenc,skenc)。用户u从上级监管者收到加密公私钥对后,需要对加密密钥进行初始化,进行访问控制设置(其中最高级监管者为必选项,其余上级监管者为可选项)。

如算法2 所示,阐述了用户初始化加密公钥的过程。该算法将用户的加密公钥和访问控制字段作为输入,生成含有访问控制属性的加密公钥。首先通过随机选取的大整数异或用户公钥对血缘关系进行加密,然后通过访问控制字段调整监管策略,进行授权设置。

算法2 加密公钥初始化算法

如算法3 所示,阐述了用户完整密钥对的生成过程。该算法调用算法1 和算法2,当中间机构衍生出加密密钥后,用户对加密密钥进行初始化,最终生成完整公私钥对,其中一对公私钥用于签名,另一对公私钥用于消息加密。

算法3 完整密钥对生成算法

2.2.3 辅助函数

Parse(tx)表示对交易进行反序列化,由于本文方案内容与接收者无关,故省略接收者的地址,得到交易发起人的签名公钥、加密公钥、密文信息和签名。形式化地表示为:(pksig,pkenc,c,σ) ←Parse(tx)。

2.3 可信任监管方法

当用户发起一笔附有加密数据的交易时,用户执行算法4。当上级监管者对一笔附有加密数据的交易进行监管时,监管者执行算法5。当用户想更换加密数据的访问权限时,用户执行算法6。同时,为了便于阐述方案,本文简化了交易的定义,仅包括发送者的签名公钥、发送者的加密公钥、加密密文和签名信息。

2.3.1 数据加密上链算法

本方案允许用户对需要隐藏的数据进行加密处理,处理后的密文以交易的形式上链。更进一步地说,就是使用用户的加密公钥对消息进行加密。因为本文方案是对区块链中需要存储的数据进行加密,数据一般存储在交易的附加字段,该字段在共识阶段无需验证,因此本文方案适用于各种共识机制。如有特殊需求可对共识机制进行额外补充,例如在联盟链的共识阶段加入对密态数据的合法验证,即数据上链前进行监管。如算法4 所示,阐述了用户执行的数据加密上链算法。该算法将用户完整密钥对和需要加密的消息作为输入,得到解析后的加密公钥和签名私钥,用公钥对消息加密,私钥对交易签名,整合起来生成附有加密数据的交易信息,随后用户可将该交易信息提交至区块链。

算法4 数据加密上链算法

2.3.2 加密数据监管算法

用户对数据进行加密上链后,被授权的上级监管者可对加密数据进行解密监管,未被授权的上级监管者则无权访问解密数据。如算法5 所示,阐述了监管者执行的加密数据监管算法。该算法将监管者加密私钥和附有加密数据的交易信息作为输入,监管者从链上获取交易信息并解析,验证签名的正确性。如果验证未通过,返回失败;如果验证成功,则根据加密公钥的访问控制字段判断自己是否被授权,若没有授权则无法进行下一步操作。若被授权则正确恢复用户加密公钥的血缘关系,然后根据监管者自身的加密私钥和恢复后的血缘关系推导出用户的加密私钥,最后使用推导出的加密私钥解密数据密文,生成消息,进行监管。

算法5 加密数据监管算法

2.3.3 访问授权变更算法

用户可以通过修改加密公钥中的访问控制字段增加或删除监管者的监管权限。如算法6 所示,阐述了用户执行的访问授权变更算法。该算法将用户加密密钥、变更行为字段和监管者加密公钥作为输入,生成用户的加密密钥。其中变更行为字段可以起到变更访问授权的作用,当用户增加监管者的权限时,仅需在用户公私钥对中的访问控制字段追加监管者信息即可;当用户删除监管者的权限时,为防止不诚实的监管者在被删除权限后,仍查看用户信息,需调用算法2,不仅改变访问控制字段,也要更新密文血缘关系。其中,用户加密私钥存储的血缘关系为明文,存储的访问控制字段为监管者们的公钥信息和附加信息。

算法6 访问授权变更算法

2.4 可信任监管安全性说明

机密性:数据的机密性是基于非对称加密算法ECIES实现的机密性。敌手攻击交易数据的机密性,意味着从密文中恢复有关消息m 的信息,可以直接规约到攻击ECIES。因此,数据的机密性基于非对称加密ECIES 的安全性。

可监管性:数据的可监管性是基于椭圆曲线点乘运算实现的可监管性。敌手攻击交易的可监管性,即增加未被授权的监管者,意味着需要从r·G中恢复出r以及从ℋ256(pathKey)中恢复出pathKey,可以直接规约到攻击椭圆曲线的离散对数问题ECDLP[25]和单向散列函数。因此,数据的可监管性是基于ECDLP 和SHA256 的安全性。

3 性能测试

本方案适用于区块链中隐私数据的多层级监管场景,因此对该方案进行性能测试和分析。实验环境为:处理器Intel Core i7-4770 @ 2.2GHz、内存16GB 1 600 MHz、操作系统macOS Catalina 10.13.3、编程语言为Golang[26]。

3.1 方案实现

本方案扩展了加密密钥的存储结构,其数据结构如表1 所示。

Table 1 Data structure of the extended key表1 扩展密钥的数据结构

扩展密钥的主要方法如表2 所示,包含主密钥的生成、子密钥的衍生、加密血缘关系、解密血缘关系、访问控制设置等功能,用于实现密钥的生成、加密、存储、访问控制和读取等功能。

Table 2 Main methods of extending the key表2 扩展密钥的主要方法

本方案使用EncryptDataToBlockchain 函数实现数据加密上链算法。首先调用Encrypt 方法对消息进行加密,然后调用SHA-256 方法对加密消息进行哈希计算,最后调用Sign 方法对加密消息摘要进行签名,主要代码如下所示。

本方案使用SuperviseEncrytedData 函数实现加密数据监管算法。首先调用Verify 方法验证签名和数据的完整性,接着调用DecryptionKeyDerivation 方法判断是否被授权以及恢复血缘关系,然后调用CorrespondingPrivateChild 方法衍生出用户加密私钥,最后调用Decrypt 方法解密消息,进行监管,主要代码如下所示。

3.2 测试结果

本文对方案的性能进行了测试,测试结果为100 次实验模拟的均值,并且方差不大于5%。其中,访问授权变更算法开销很小,可忽略不计,因此本文对用户数据加密上链算法和加密数据监管算法的性能进行说明。

数据加密上链算法测试调用EncryptDataToBlockchain函数,计算交易生成所耗时间,该算法所用时间包括用户使用加密公钥加密消息的时间、对消息进行哈希运算的时间和签名消息的时间。测试结果如图5 所示,横坐标为用户加密公钥的深度,纵坐标为时间。随着加密密钥深度的增加,加密时间无明显变化,基本为恒定值,在0.55ms 附近震荡,说明本文加密方案的性能十分稳定,不会随着子密钥层数的变化而变化。

Fig.5 Encryption performance test图5 加密性能测试

加密数据监管算法测试调用SuperviseEncrytedData 函数,该算法所用时间包括监管机构使用自身加密私钥恢复用户加密公钥衍生路径的时间、监管中心推导用户加密私钥的时间以及监管机构解密消息的时间。测试结果如图6所示,随着加密密钥深度的增加,监管时间缓慢上升,幅度很小,每单位的时间增量为0.03ms(每深度单位可监管2^32位用户),说明本文监管方案性能较优,适用于大规模监管系统部署。

Fig.6 Supervision performance test图6 监管性能测试

3.3 性能对比

为了说明本文方案的实用性,在相同的实验环境下,本文与开源项目超级链中的分层确定性加密方案做了性能比较。超级链的分层确定性加密方案和本文方案都可以实现对加密数据的监管,但本文方案隐藏了用户的归属关系以及用户可以控制监管授权,实现层级化隐私保护监管能力,加密密钥对是基于现有的BIP32 协议优化生成,无需额外引入第三方复杂的密钥管理和分配服务,减少了系统开销。本文对数据加密算法的性能和监管算法的性能进行了比较,横坐标为用户加密公钥的深度,纵坐标为时间,结果如图7 和图8 所示。如预期,本文的用户加密算法与超级链的用户加密算法耗时大致相同,但本文花费了更多的监管耗时以增强用户的隐私保护和增加用户控制监管授权功能,大约多花费0.15ms,相较于整个系统开销,本文认为这部分额外开销是在可接受范围内。

Fig.7 Encryption performance comparison图7 加密性能比较

Fig.8 Supervision performance comparison图8 监管性能比较

4 结语

本文提出一种适用于区块链的数据隐私保护和大规模监管技术方案。用户可以将数据加密后上传至区块链,监管机构无需与用户交互即可对密文消息进行监管。并且,除最高监管机构外,用户可以对任意上级监管者的监管权限进行访问控制,有效地保障了用户链上数据的机密性和数据的可授权监管性。安全性分析说明了本方案在一定的密码学假设下是安全的。最后,通过性能测试可以看出,本方案简单高效且具有很强的实用性。与传统分层确定性加密方案相比,本文提出的方案有效地增强了数据隐私的分层保护和监管能力,可降低监管溯源难度,从而克服现有技术缺陷。

猜你喜欢
监管者公钥密钥
探索企业创新密钥
密码系统中密钥的状态与保护*
一种基于混沌的公钥加密方案
一种对称密钥的密钥管理方法及系统
基于ECC的智能家居密钥管理机制的实现
HES:一种更小公钥的同态加密算法
SM2椭圆曲线公钥密码算法综述
基于格的公钥加密与证书基加密
商业银行员工绩效考核与操作风险防范的博弈研究*
信息不对称情况下金融监管的博弈分析