许可链中身份基密码应用初探

2021-04-13 11:04:40郑建武刘明生
河北省科学院学报 2021年1期
关键词:委派私钥密码

郑建武,刘明生

(1.石家庄铁道大学交通运输学院 河北省交通安全与控制重点实验室,河北 石家庄 050000;2.石家庄铁路职业技术学院,河北 石家庄 050000)

1 区块链发展概述

区块链就是利用分布式计算、共识机制、密码技术、以及数据存储技术等实现的去中心化的不可篡改交易账本,而区块链技术则是泛指这些相关技术的总和。由对等实体构成并管理的分布式网络是区块链的硬件平台;基于该平台各对等实体分别拥有并管理一份自有的账本实例,各账本实例记录发生于各实体间业务交互的历史痕迹;所有账本实例的一致性依赖于网络中一些特殊的节点所执行的共识机制,发生于网络上的业务或交易由这些节点进行分组和打包以构成区块;区块间利用散列(或哈希)密码服务以形成链式区块,所有的追踪区块皆绑定于其直接前驱区块,构成逆向链表即账本,对任何历史区块的人为修改将破坏区块间的链式关系,依此分布式交易账本的不可篡改得以保证。

区块链技术的提出源于比特币(Bitcoin)[1],这是首个也是最受广泛关注的区块链应用。由于比特币应用局限(仅限于密币交易),需要引入新的技术以推动区块链发展。以太坊(Ethereum)[2]区块链技术融合比特币的所有特性和智能合约技术以拓展区块链应用疆域,可适用于开发以“以太币”(以太坊的密币名称)为标的的分布式应用。不论是比特币、以太坊以及诸多的变体密币(及应用),都是开放网络技术,即对所有人开放,实体间的交互是匿名的,此类区块链技术被称为开放无许可区块链(Open Permissionless Blockchain)。

随着比特币、以太坊等的流行和推广,如何将区块链技术(特别是不可篡改分布式账本、分布共识机制等)应用于业务场景更丰富、业务交互更复杂的企业应用,引起学术界及产业界的极大兴趣。由于企业应用对业务执行等有特殊的要求,如业务时效性、多实体交互等,以上比特币、以太坊等的开放无许可区块链技术难以支持;其次,对于企业应用通常业务交互禁止匿名,业务交互不允许公开(包括交易的执行、交易的存储等)、业务交互强调公平交易环境等,所有这些也是开放无许可区块链技术所不具备的。由此,新一类的区块链技术,即许可区块链技术(Permissioned Blockchain)出现[3]。

2 许可链应用的安全需求与服务

在许可链应用中,由于业务执行对实体身份合法性和业务安全等有特殊的规定和要求,本节简述许可链应用实施中的安全需求和有关许可链平台能够被提供的安全服务。

2.1 许可链应用的安全需求

许可链应用与传统的分布式应用等在安全需求上没有太多的不同,只是因为实现去中心化(去信任)、不可篡改等特性,涉及本地账本、本地状态数据库,以及交易要求的共识、排序等,有更多因基于区块链平台而提出的控制与交互安全要求,以实现应用的可信和私密。许可链应用安全涉及以下内容。

(1)实体可信:业务实体身份合法、成员(包括应用)身份确认等。身份合法需要引入根信任机制,而身份确认则需要建立可信链以确认身份合法。在许可链应用中,业务实体的身份合法(权限)通常是通过不同的安全策略来限定,如共识策略、链码配置策略、通道配置策略等等。

(2)交互可信:业务交互隐私保证,要求交易的细节不能被公开,通常指交易的标的等的数值不能被公开;更高一级的要求则是参与交易的实体身份不能被公开,即匿名要求,其次是同一用户发起或参与的多次交易不能被关联,即不可关联性。许可链应用中,交易是基于共识基础上(以及交易次序)的多点执行(以实现不可篡改),交易执行过程需要在多个实体流转、执行和验证,保证交互可信较为复杂,不仅要求许可链应用执行流程的模式支持,也要求应用安全执行的密码服务支持。

(3)存储可信:私密状态数值的私密存储和不可被非授权访问。许可链应用中,要求所有参与应用的实体都需要本地维护正确、完整的账本,但应用目标达成通常是多项关联业务的执行来共同实现的,而不同的业务涉及的实体并不相同,对于各自独立的业务在有私密状态参与的情况下,排除非业务参与实体了解或获取私密状态数据是必要的,存在的挑战是这些非业务参与实体却需要记录交易执行的细节以维持本地账本的可信。

2.2 业务可信的结构与节点支持

许可链应用涉及的业务依赖于区块链网络上的各机构以及隶属各机构且发挥不同作用的多类节点。下面从围绕许可链的应用开展,论述实现业务可信的基础,即支持业务开展的组织结构和执行业务交互的实体节点。论述的内容以Hyperledger Fabric为示例。

2.2.1 支持业务的组织结构

(1)联盟(consortium):这是许可链成形的基础,具有一致业务内容且需要完成适当的业务交互才可实现业务目标的多个组织(Organization)共同构成联盟。联盟内的各组织因业务交互需求而建立联系,但组织间的信任、业务私密等并没有因结盟而自动提供,只能通过额外的服务、外加的措施来保证。

(2)组织(Organization):这是具有独立业务能力和独立业务目标的机构,是构成以上联盟的前提,联盟可独立划分为多个组织,各组织间因业务交互而建立联系,组织间的业务联系反映联盟的结构,联盟的结构可以是星型全连通、链式关系等。

(3)应用(或客户应用,Client Application):这是组织业务的有机组合,是实现特定组织目标的业务总和。一个组织可以有多个独立的应用,各应用可由多项业务捆绑构成,若各业务间无关联关系,则可独立为组织应用。

(4)通道(Channel):这是组织业务交互关系的组合,参与的组织基于通道完成业务交互。通道为分离组织间的业务交互提供明确的边界,为利于区块链应用更好地实现原子性和健壮性等。

(5)集合(或族,Collection):主要指服务私有交易的逻辑域(Private Data Collection),是基于通道之上的、由相关组织内的有关节点构建的一种业务关系。值得指出的是在同一个(交易)通道之上可以定义多个私有数据集合,简单的示例如竞标业务,多方组织两两间的业务有相应的隐私要求,这样的隐私要求即可由各自的独立的私有数据集合来满足。由上面的业务组织结构可以看出,组织间的业务交互发生在通道之上,组织间的信任需要基于通道确立,业务的隐私需要实现通道基础上的细化控制,即由私有数据集合(族)以构建业务交互的隔离运行环境。

2.2.2 业务执行的交互节点

(1)背书节点(Endorsing Nodes):共识机制实现的核心执行机构,组织间业务交互经链码实现,应用请求链码执行(交易提案,transaction proposal)需经背书节点批准。背书节点(的组成)由链码配置指定,即背书策略由链码配置明示。由于背书节点需要执行交易,所以在私密业务的背书过程,背书节点将掌握私密数据。所以私密交易的背书策略需要充分考虑背书节点集合的合理性。

(2)锚节点(Anchor Nodes):这是为解决联盟内不同组织间节点的识别问题而设置的节点,不同组织内节点信息经锚节点的转接而共享,随后并能脱离锚节点而直接建立联系与交互。因锚节点(若不身兼带队节点)不涉及具体的业务应用,故不会涉及私密交易,无安全需求。

(3)带队节点(Leading Nodes):为服务交易执行效率和优化许可链应用流程,为各组织设置带队节点(通过静态配置或动态选举的方式)。对于私密交易,背书节点是将私密业务的私有数据发送给各授权组织(参与私有业务的各组织)的带队节点,并由带队节点在组织内广播给其他授权节点(或主动请求)。独立出带队节点有利于层次化业务交互,且在背书节点不可用时,维持组织内状态数据库正确以及账本一致性。

(4)被授权节点(Authorized Nodes):执行私密交易的节点,节点不仅本地记账私有状态属性值的异动历史,同时维护对应私有状态的私密值。

(5)普通节点(Normal Nodes):不直接参与私密交易的节点即为普通节点,会参与私密交易演进历史的记账但不维持私密属性值。普通节点因不直接操作私密属性值,业务安全实现独立于此类节点。

2.3 业务可信的安全服务

为了解决以上多组织机构、多业务节点间的安全边界、可信交互、数据隐私等要求,Hyperledger Fabric利用证书基公钥密码学(Certificate-Based Public Cryptography)以提供必要的密码服务。

(1)建立信任链:基于PKI(Public Key Infrastructure)引入X.509证书提供证书链,分别创建根CA(Certificate Authority)、中间CA(Intermediate CA),使得基于证书的身份校验、签名验证等可归结于根信任(Root of Trust)。

(2)安全传输:基于TLS(Transfer Layer Security,安全传出协议)解决业务交互的可信与私密,通过自签名证书建立私密会话传输途径。TLS证书通常独立于实体的身份证书。

(3)基于授权的操作:交易共识、交易执行等都基于策略执行,策略内容由相应的通道配置、链码配置等限定。另外通过定义私密数据集合(Private Data Collection)限定参与私密交易的被授权集合,非被授权集合中的节点在不了解私密状态值的前提下依状态值的版本号验证交易并记账交易。

(4)组织内私密信息共享:私密交易执行时被授权节点可向组织内(亦可跨组织,但要求不同组织节点是基于统一的CA派生身份)拥有私密信息的其他节点(也是被授权节点)请求通过gossip协议共享。在有数据的同步需求时,在权限管理下组织内的节点可共享业务状态和业务记录。

基于以上证书基密码服务并通过业务策略配置以及私有数据集合(Private Data Collection),Fabric可解决业务节点的身份合法性、签名有效性、交易私密性等安全需求。但存在第3.1节提到的基于证书的公钥密码(简称证书基密码)实施面临的问题。

2.4 属性基的密码服务

基于许可链的应用,因产业领域或实际业务内容差异,呈现不同的安全需求和预期多样的安全目标。为了满足多样的安全需求相应需要有适用的密码措施。Fabric中为实现对于交易的隐私保护,包括业务节点的身份匿名、业务节点发起交易的不可关联性等安全需求,Fabric并没有提供或实现证书基(即基于公钥证书)的解决方案,而是通过引入Idemix服务来解决[4]。

Idemix密码服务涉及凭证的签发、使用和校验,分别对应签发者、用户和校验者。Idemix服务与证书基公钥服务相似,X.509证书因CA的签名而确认拥有与证书相应私钥的实体为合法用户,Idemix的凭证也是因签发者的签名而确认用户属性值的合法与可信。两者的主要区别在于验证证书和凭证的签名方案具有很大的不同。Idemix的优势在于用户能够向验证者证明自己拥有来自签发者的对特定属性(属性值,如某个身份或某项本领)的签名[5],同时验证签名的交互过程并不泄露被校验的属性值以及签名本身。用户因拥有凭证密钥(私钥)可以生成凭证及其对应的属性的证明。Idemix服务对于凭证验证可实现上述签名和属性隐藏,但是该零知识证明也对Fabric CA(充当凭证签发者)透明,即用户对Fabric CA也是匿名和不可关联的;这其实对于许可链应用或业务执行并不是有益的,特别是当出现交易争端或在需要揭示真实的业务执行者身份场合时。

事实上也可以基于证书基实现上述匿名、不可关联等密码服务,如某点通过不断申领新的证书,并在各业务中使用独立的证书(类似于在不同的业务中使用不同的别名),以满足相应的安全需求。但是该方法会引起证书的实时申请、存储,以及对应各独立证书的私钥安全使用等复杂问题。

Idemix服务是基于属性的密码(Attribute-Based Cryptography,简称属性基)实现,属性基密码是下面即将讨论的基于身份的密码(Identity Based Cryptography, IBC,简称身份基)的推广。Idemix服务是由基于双线性对(Bilineal Pairing)、支持零知识证明签名持有的盲签名方案来实现和提供。

3 身份基密码技术

基于公开身份信息的密码——身份基密码(Identity Based Cryptography, IBC)是公钥密码学中相对于证书基密码(Certificate Based Cryptography)的另一个重要研究分支。在身份基的密码系统中,存在一可信的实体(Trusted Authority),通常称为私钥生成器(PKG,Private Key Generator),PKG拥有系统主密钥(Master Key)。系统中各用户的公开密钥(Public Key)就是他的公开身份信息(任意具有标识功能的字符串,例如用户名称、邮箱地址、IP地址等等),简称身份(Identity),与用户身份对应的私钥(Private Key)是在PKG完成对成员的身份认证(现实世界)之后,由PKG基于系统主密钥、用户身份(公开密钥)等创建,并通过可信的途径分发给正确的用户。

下面先简述证书基密码应用面临的挑战,其次简要综述身份基密码重要原语(身份基加密、身份基签名、身份基群签名等)的发展和相关研究领域。

3.1 基于证书的公钥密码面临的挑战

在涉及安全需求的应用中,确认参与业务交互实体的身份可信、可鉴别是一切工作的基础。基于公钥密码服务是完成本项工作的关键,且解决公钥密码的密钥可认证是核心。比如在许可链应用中,共识节点在返回私密交易提案响应时,需要将私密数据返回给参与交易的组织内的被授权节点,首先要求共识节点具备获取请求私密数据节点的身份凭证,并能够予以实时验证。

公钥密码应用中,用户在加密数据(使用公钥的加密操作)或校验签名(使用公钥验证数字签名)时,需要确信所使用的公开密钥(简称公钥, Public Key)的确属于数据目的用户或签名签发用户,对方应该拥有与所用公钥相匹配的私有密钥(简称私钥, Private Key)。在传统公钥密码系统中,如公钥基础设施(Public Key Infrastructure, PKI),证书管理机构(Certificate Authority, CA)为系统中的每个用户签发数字证书,证书承载用户的身份、公开密钥以及CA对以上内容的数字签名,以证书为凭证来证明公开密钥的归属(或公钥与身份之间的关联)。无论用户在什么时候需要使用其他用户的公开密钥,需要首先得到由CA签发给该用户的(有效)数字证书,并验证证书中的有效性(需要利用公开可得的CA的公钥,仅确认公钥或身份合法或有效)。

现实PKI实践(证书基密码)中面临诸多与证书有关的难题,包括证书的废止、证书的验证、证书的分发以及证书的存储与管理等[6]。相反,在身份基密码应用中,用户的公钥可以直接由用户公开身份推导得到,用户身份可以是用户的名字、邮箱地址、IP地址、车辆牌照号码等,并不需要来自可信第三方签发的数字证书以认证用户的公开密钥。

在基于公开身份信息的密码应用中,并不存在传统公钥密码系统中要求的公钥证书,而公钥证书对于基于公钥基础设施实现的公钥密码系统而言却是至关重要的。身份基密码的研究与应用正是针对证书基密码所面临的问题,由于身份基密码不要求证书,避免了证书管理和使用带来的复杂性,使得身份基密码应用具有非常高的灵活性和可扩展性。

3.2 身份基加密

身份基加密(Identity Based Encryption, IBE)系统[7-8]是一个公钥加密系统,系统中实体的公钥可以是实体的任意身份标识符(任意公开的字符串),而实体的私钥则是由一个被称为私钥生成器(PKG)的管理机构根据实体的身份计算得到。

自从1985年Shamir[9]提出身份基密码概念之后,直到Boneh和Franklin[7,10]、Cocks[8],以及Sakai等人[11]构造的IBE方案被提出。身份基密码的可实践性才得以解决。Boneh和Franklin[7,10]是基于椭圆曲线[12]上的双线性对构造IBE方案,所构造的IBE方案的安全性可规约于双线性Diffie-Hellman(Bilinear Diffie-Hellman, BDH)问题的难解性。

3.3 层次身份基加密

层次身份基加密的概念由Horwitz和Lynn[13]首次提出,他们构造的方案是首个可适用于层次身份结构的身份基加密系统,但仅考虑两层的身份层次结构,同时依赖于随机预言模型,而且该方案抵抗串谋攻击能力有限。Gentry和Silverberg[14]随后在随机预言模型下推广了Boneh-Franklin IBE方案[7],构造了一个能够完全抵抗串谋攻击的层次身份基加密系统,该方案的安全性基于BDH问题的难解假设。

Canetti等人[15]和Boneh等人[16-17]基于判定双线性Diffie-Hellman (Decisional Bilinear Diffie-Hellman, DBDH)假设构造出层次身份基加密系统,并在标准安全模型下证明所构造HIBE系统的安全性。随后,Boneh等人[18]、Gentry[19]、Waters[20]和Lewko等人[21]则构造出完全安全(Fully Secure,即实现的是An adaptive identity secure,而不是A selective identity secure)的层次身份基加密系统,且HIBE构造并不使用密码哈希函数。

3.4 身份基签名

Bellare等[22]等指出一个完整的身份基密码体系除了身份基加密外,还应该包括身份基的认证,即身份基签名(Identity Based Signature, IBS)。Kiltz和Neven[23]总结了三种身份基签名方案的构造方法,包括基于标准签名方案的证书方法[24-25],由身份认证方案的构造方法[22],以及源自双线性对的构造方法(例如,由身份基加密方案构造身份基签名方案)[26]。

自Boneh和Franklin[7]以及Cocks[8]等将双线性对引入密码学研究与应用领域,双线对应用不仅为构建身份基加密方案同时也为身份基签名方案开辟新的途径[26-28]。

正如Naor[7]指出以及文献[29]所述,可以直接利用身份基加密方案来构造身份基签名方案,即Naor变换。Boneh, Lynn和Shacham[30]以及Boneh和Boyen[31]分别利用由Boneh和Franklin提出的身份基加密方案[7]以及由Boneh和Boyen提出的身份基加密方案[16]构造出结果签名大小很短的身份基签名方案。

层次身份基签名(Hierarchical IBS, HIBS)是身份基签名(IBS)[14]的自然推广,签名系统中的所有用户依逻辑关系构成身份层次;同样可以通过Naor变换利用层次身份基加密方案来构造层次身份基签名方案。

3.5 身份基群签名

群签名的概念是由Chaum和Van Heyst于1991年提出的[32],它使签名者为了隐匿自己的身份成为可能,同时它也赋予群管理者具备追踪签名者真实身份的权利。因为同时具备匿名与追踪看似矛盾的安全属性,使得群签名成为一类重要的密码学原语,并在诸多的密码构造中应用。自群签名概念提出之后,有许多群签名方案被提出[33-37]。

Boneh, Boyen和Shacham基于双线性映射构造“短”群签名[33],群签名方案安全性则是基于同一文献中提出的强Diffie-Hellman假设[38]。在同一时期,Camenish和Lysyanskaya也给出利用双线性映射的群签名方案[39],该方案的安全性则是基于交互式的LRSW假设[40]。但是以上所有这些方案都是在随机预言模型下被证明是安全的。

Bellare, Micciancio和Warinschi[36]第一次给出了在标准模型下可证安全的群签名方案,而且他们也给出群签名安全属性的正式定义,包括完全匿名、完全可跟踪等。但是他们使用的是非交互零知识的一般性构造方法,构造出来的群签名方案因效率太低不具有实用性。

4 传统身份基密码面临的挑战

4.1 身份基密码的密钥托管问题

在身份基密码系统中(不论是一层或多层系统),根PKG因拥有系统的主密钥可以生成系统中所有实体的私钥;并且根PKG还可以将私钥生成和分发的任务委派给层次系统中的层PKGs,这些层PKGs同样也能够生成自己子孙实体的私钥。带来的结果就是具备权限生成子孙实体私钥的层PKG就可以以它的子孙实体的私钥来完成本应只能由这些子孙实体自己才可以完成的密码操作,不论这些层PKG的行为动机是善意的或恶意的。这就是身份基密码系统中的“密钥托管问题”(Key Escrow Problem)。

我们可以相信根PKG是可信且不会执行恶意行为,但不应该想当然地认为所有的层PKG不会被恶意实体控制,或者不会执行恶意行为。所以,我们至少需要阻止层PKG能够无条件地利用它自身的私钥来计算子孙实体的私钥。

4.2 传统HIBE系统的私钥委派机制

分析已有的HIBE系统的私钥构造方式,能够发现密钥托管问题没有得到有效解决的原因,源于为实现私钥委派HIBE系统中私钥的构造存在问题。下面分析当前HIBE系统所实现的两类私钥委派机制,这些机制难以有效管控密钥托管问题、甚至引起密钥托管问题恶化。

4.2.1 无限的私钥委派

Gentry和Silverberg[14]和Boneh和Boyen[16]等构造的经典HIBE系统实现相同的私钥委派机制,该委派机制使得任一层PKG都可以只利用它的私钥推导得到它的所有子孙实体的私钥,或层次结构中某节点的私钥都可以由他的祖先节点的私钥推导得到。即所实现的私钥委派是“直接”和“无限制”的。“直接”表示作为层PKGs能够利用它自身的私钥和公开可得的信息(如系统参数、子孙实体的身份等),而不需要其他的来自根PKG的私有值,即可推导得到它的子孙实体私钥;“无限制”是指任一层PKG可以利用它的私钥推导得到它的所有子孙实体的私钥。这样的私钥委派称之为“无限委派”(Unlimited Delegation)。

依照以上推导,HIBE系统中的任一实体的私钥都可以由该实体的任意祖先实体通过随机化自身的私钥得到,随机化只需沿着目标实体的层次分支(Hierarchical Branch)Ii+1→ …→Ij逐层进行即可。

4.2.2 有限的私钥委派

不同于具有无限委派的HIBE系统[14,16],可以沿身份层次继续随机化父实体的私钥得到子孙实体的私钥。Boneh,Boyen和Goh于文献[18,21]中的HIBE系统为了完成私钥推导还要求有来自根PKG提供的有关当前私钥构造的一些私密值。

即HIBE系统[18,21]可以限定系统中的任意实体仅能推导得到它的有限深度的子孙实体的私钥,具体地讲就是,通过给实体分发一个受限私钥,根PKG可以限制私钥能够被该实体推导出来的子孙实体的数量。这样的私钥委派被称为“有限委派”(Limited Delegation)。

其中r是取值Zq的一个随机数,l-i个私有值rhi+1,…,rhl,能够被用于与私钥元组中的其他单元一起完成身份IDi的所有子孙身份私钥的推导。如果根PKG并没有提供RHi+1,…,RHl这些私有值,dIDi就是有序对(d0,d1),可用于解密操作,但无法推导任何子孙身份的私钥。

利用IDi的私钥dIDi=(d0,d1,RHi+1,…,RHl)推导身份IDi+1=(IDi,Ii+1)的私钥,可随机选择随机数r∈Zq,并输出私钥dIDi+1∈Gl-i+1如下

具有“有限委派”的HIBE系统为了完成密钥推导需要有来自根PKG提供的有关当前私钥构造的一些私密值,即私钥dIDi中的RHi+k(∀k∈{1,…,l-i})这些单元。通过给身份IDi分发一个仅含有t个用于私钥推导要求的私钥值rhi+1,…,rhi+t,则可以限定IDi的子孙身份中只有层次深度为i+1和i+t之间的身份的私钥能够利用IDi的私钥和这些私有计算出来。

有限委派虽然可以限制身份IDi的私钥dIDi仅能用于计算受限层次深度内的身份的私钥,但是却无法限制私钥dIDi仅能用于推导得到某一特定层次ξ(i+2≤ξ≤l)子孙实体的私钥,并且能够满足层次深度在i+1和ξ-1之间的身份的私钥不能被计算出来。该隐私缺憾源于所构造的HIBE系统的密钥推导为了得到子辈的私钥要求必须先得到父辈的私钥。

5 新的层次身份基密码及其私钥委派

对于层次身份基密码,直接和无限制的私钥推导(即“无限委派”)是不合理且不可接受的,需要实现的密钥委派必须是有条件的,而不是与生俱来的;对于具有“有限委派”的HIBE系统,赋予身份IDi的私钥dIDi具有推导层次深度为ξ的子孙实体的私钥,则该私钥肯定也能被用于推导层次深度在i+1和ξ-1之间所有子孙实体的私钥。

虽然源于身份基密码系统中实体私钥生成的机制,身份基密码中密钥托管问题是固有存在的(至少根PKG是必须具备这样的能力)。但是,对于层次身份基密码,需要有措施以避免或处置密钥托管问题。我们的工作[41]从研究身份基密码的私钥委派入手,提出层次身份基密码的私钥构造新技术,实现许可下的私钥独立委派,初步解决了层次身份基密码中的密钥托管问题。本节简述我们的初步工作和被提出的HIBE构造。

5.1 私钥构造的新技术-标识符差异化

为了避免以上两种私钥构造方法存在的问题,笔者[41]已经提出了“标识符差异化”的私钥构造方法(Identifier Discrimination)。“标识符差异化”的核心在于区别对待身份IDj中的非本地标识符I1,…,Ij-1和本地标识符Ij;即身份IDj的私钥由定义于层次I1→…→Ij(非本地标识符决定)得到的全局隐私,即沿着以上层次逐层随机化HIBE系统的主密钥,和定义于本地标识符Ij的身份专属隐私构成。该私钥构造技术被称为“标识符差异化”(Identifier Discrimination)。

因此,对于身份为IDj的实体的任何祖先实体(它们身份是IDj的前缀)首先因为无法推导得到构成身份IDj私钥所要求的身份专属隐私而无法推导得到IDj身份的私钥;其次,也无法将它们所拥有的私钥中与自身身份相关的专属隐私去除,所以就能够阻止这些祖先实体利用自身的私钥以推导得到其子孙实体的私钥。

对于层次身份基密码系统而言,私钥委派通常又是必须的。在所构造的HIBE中,私钥作为私钥委派凭证的功能被废止,我们提出通过由根PKG为身份为IDj的实体分发可用于推导它的子孙实体私钥的委派凭证(Delegation Credential),即实现授权委派。

5.2 能够实现独立私钥委派的HIBE构造

本节给出具有授权委派和专属加密隐私的层次身份基加密系统[41],该HIBE构造于一般的非对称双线性对Λ=(G,,GT,q,e)。实体身份可被看作是i维矢量或是具有i个单元的元组,其中Ik表示身份IDi在第k层的身份标识符,I1,…,Ii-1表示身份IDi的非本地标识符,而Ii则表示本地身份标识符。

定义5.1AD-HIBE=(Setup,Extract,Derive,Encrypt,Decrypt)为一层次身份基密码,该HIBE构造各元组(算法)分别定义如下。

Setup(1k,l)→Λ,params,mk.根PKG以安全参数1k和最大层次深度l为输入,运行算法Setup,输出满足要求的双线性对Λ、HIBE系统公开参数params和HIBE系统主密钥mk。记双线性对为Λ=(G,,GT,q,e),其中q是二进制位数为k的一个素数,G,,GT都是阶为q的群且它们的生成元分别为和

算法Setup输出HIBE系统公开参数params∈G2l+2×2l+2×GT和系统主密钥mk∈如下

parmas=(g,g1,h1,…,hl,l1,…,ll,

(1)

根PKG依输入为身份IDi抽取一个私钥dIDi=(d0,RD1,…,RDi)∈i+1如下

(2)

ΦIDi是个身份模式的集合(见文献[41]以了解关于身份模式更详细的信息),集合中的每一个身份模式 (μ,ν,τi+1,…,τμ-1)的构成单元取值满足:μ∈{0}∪{i+1,…,l},ν∈{0,1}n,τk∈{0,1}n对于k∈{i+1,μ-1}。

ΨIDi是可用于推导IDi子孙身份的秘值集合,集合中的每个秘值可用于推导ΦIDi中某个有序元组所指代的身份类中所有身份的私钥。集合ΦIDi中有序元组(μ,ν,…)所指代的身份类EIDi,(μ,ν,…)的秘值SIDi,(μ,ν,…)被计算如下。(身份模式可被细化分类,秘值计算可相应简化,在此不赘述)

对每个k∈{1,…,μ},其中τk=Ik,ξk=rk对每个k∈{1,…,i}。

(3)

Derive(params,IDi,SIDi,(μ,ν,…),IDj)→dIDj。令IDi=(I1,…,Ii)是IDj的(身份)前缀(即IDj=(IDi,Ii+1,…,Ij)),算法Derive以系统参数params,身份对(IDi,IDj)和一个秘值S(IDi,(μ,ν,…)为输入,输出IDj的一个私钥,秘值SIDi,(μ,ν,…)是由前缀IDi和身份模式(μ,ν,…)共同指代的身份类的秘值。

(4)

(Mvs,sg,s((I1-Ij)g1+h1),…,s((Ij-1-Ij)g1+hj-1),s(Ijg1+lj))。

(5)

在得到的结果密文元组中,最后一个单元是定义于身份IDj(密文目标接收者)的本地标识符Ij和层相关参数lj,这是不同于它之前的j-1个单元s((Ik-Ij)g1+hk)所使用的层相关参数hk对于k=1,…,j-1。

Decrypt(params,dIDj,CIDj)→M。算法Decrypt使用身份IDj=(I1,…,Ij)的私钥dIDj=(d0,RD1,…,RDj)来解密基于身份IDj加密的一个密文CIDj=(c0,c1,RE1,…,REj)∈GT×Gj+1,解密结果消息计算如下

(6)

5.3 关于新HIBE构造的几点说明

5.3.1 私有值的作用被层相关参数限定

在构造身份IDi=(I1,…,Ii)的私钥或为某个由身份前缀IDi和身份模式(μ,ν,…)指定的身份类生成秘值时,关键是应避免这些私密值被用于非它们命定的用途,即私钥只能用于指定身份IDi的加解密操作,身份类的秘值只能用于推导本身份类中各身份的私钥而不能用于其他用途。

5.3.2 沿着虚身份层次的秘值推导

不同于传统的无限委派和有限委派的私钥委派机制,在新的HIBE构造(定义5.1)中,任意实体无法利用它的私钥和公开可得的信息来推导它的任意子孙实体的私钥(比如通过随机化自身的私钥来推导)。但是在所构造的HIBE中的确有一条途径,能够为根PKG授权某个实体推导它的任意一个子孙实体的私钥,并且推导过程是沿着该子孙实体身份定义的“虚”身份层次逐层随机化以得到目标实体的私钥。

IDk|Im(IDj)=(I1|Im(IDj),…,Ik|Im(IDj)),

Ik|Im(IDj)=Ik-Ij(modq),对每个k∈{1,…,j-1},

Ij|Im(IDj)=Ij。

(7)

其中Ik|Im(IDj)=Ik-Ij(modq)对每个k∈{1,…,j-1},并且Ij|Im(IDj)=Ij。

令IDi=(I1,…,Ii)和IDj=(IDi,Ii+1,…,Ij)为两个身份满足IDi是IDj的身份前缀,根PKG通过向身份为IDi的实体Ei,分发特定于虚身份IDi|Im(IDj)的一个秘值S(IDi,IDj),以授权Ei可以沿着“虚”身份层次I1|Im(IDj)→ …Ii|Im(IDj)→ …Ij|Im(IDj)以推导身份IDj的私钥。特定于虚身份IDi|Im(IDj)的S(IDi,IDj)计算如下

(8)

其中,rk对于k∈{1,…,i} ∪ {j}是取值于Zq的随机数。

6 未来研究工作

以上通过依赖于“标识符差异化”的私钥构造技术,能够解决身份基密码系统固有的密钥托管问题,并实现独立的授权私钥委派。但是为了把身份基密码推广应用到如区块链应用中去,层次身份基密码自身及其如何满足许可链安全需求等都仍有许多需要研究的问题。

本节将简述其中的两个基础问题,还有许许多多的相关问题值得深入研究于探讨。比如Fabric中实现的Idemix服务,通过引入属性基的盲签名以解决交易参与方的身份隐私及交易的不可关联性,但该方案也存在Fabric CA都无法揭示参与交易的节点身份,从许可链的应用需求看这是不合理的。可行的思路是引入群签名,不仅解决交易节点的身份匿名,同时也保证在有需要时可揭示交易节点的真实身份;在将身份基密码引入许可链应用,可以研究构造合适的身份基群签名以适用许可链应用,已有一些相应的身份基群签名密码体制被提出[42-43],但在零知识证明方式[44-45]、动态群结构适应性等等方面还需要有新的思路与实现。

6.1 构造具有常数大小的层次身份基加密系统

隐私和效率是影响层次身份基密码(HIBC)可用性的两个重要因素,隐私问题关注的是源于身份基密码系统所固有的密钥托管和私钥委派等问题;效率问题则要求被构造的HIBE系统的私钥和密文仅由数量很少的单元构成,且私钥和密文的大小与实体身份的层次深度无关,即实现系统中各身份对应的私钥、密文、执行的密码操作(加密、解密)等独立于(即无关)该身份的层次深度。

而且,利用身份IDj的私钥dIDj=(d0,RD1,…,RDj)解密依身份IDj加密的密文CIDj=(C0,C1,RE1,…,REj),可计算一明文M′如下

即解密操作所需要的时间(以需要完成的双线性映射数量来衡量)也是与身份IDj的身份层次深度成线性关系。为了处理源于身份层次深度引起的计算、通信和存储等线性相关性,就需要构造荷载均衡的层次身份基密码系统,即构造具有常数大小的层次身份基加密系统。

6.2 构造非Naor变换的层次身份基签名系统

在区块链应用中,组织、节点间的交互,以及交易的共识等极大依赖于密码签名方案,所以为了应用身份基密码于许可链应用,除了身份基加密系统外,还需要研究并引入身份基签名系统[22],以构建完整的身份基密码体系。有多种方法可用于身份基签名方案的构造[23],基于双线性对构造身份基签名方案相比证书方法等在效率、复杂性以及可实践性等方面具有一定的优势。

Naor变换[29]为由身份基加密方案构造身份基签名方案提供了通用的构造方法。例如Boneh和Boyen[31]、Paterson和Schuldt[26]等利用各IBE方案通过Naor变换在标准模型下构造出具有短签名的IBS方案。Naor变换可同样应用于HIBE方案以构造层次身份基签名(HIBS)方案。

Naor变换是将被签名消息M当作签名者身份IDi的子实体的本地身份标识符,即假定IDi=(I1,…,Ii),则引入被签名消息之后得到的构造身份为IDM,IDi=(I1,…,Ii,M)。因为得到的签名是构造身份(IDi,M)的有效私钥,如果这个构造身份是HIBE系统中的一个有效身份,因签名的公开带来具有身份(IDi,M)的实体的私钥被公开。

另外,在具有独立委派的HIBE系统中,实现Naor变换相当于在HIBE密钥抽取时,需要(为了签名)请求根PKG生成一个可以推导得到所有子实体(直接下一层的所有实体,该实体的本地身份标识符为所有需要被签名的消息)私钥的秘值。则具有身份IDi的实体不仅能够依身份IDi对任意消息进行签名(这是我们所要求的),但是该实体还因为得到了来自根PKG的委派凭证,因此能够推导得到它的所有子实体的私钥,而这是我们所不需要的,而且这也与授权委派的要求不符。

身份基密码(及其推广属性基密码)和区块链技术是两项新兴的技术,都既有各自独立和丰富的学术研究内容,也都具有非常广阔的推广和应用前景,且在将理论、技术推广到产业应用中需要解决诸多的现实挑战,如性能、效率、可扩展性、以及标准化等等问题或挑战,故需着眼理论与技术攻关,也需着力产业实践与推广。

猜你喜欢
委派私钥密码
密码里的爱
保健医苑(2022年4期)2022-05-05 06:11:30
比特币的安全性到底有多高
基于改进ECC 算法的网络信息私钥变换优化方法
密码疲劳
英语文摘(2020年3期)2020-08-13 07:27:02
一种基于虚拟私钥的OpenSSL与CSP交互方案
密码藏在何处
夺命密码
烟草专卖内管委派制对县级局内部监管的思考
现代企业(2015年8期)2015-02-28 18:55:45
新形势下如何发挥专卖内管委派制的作用和效能
现代企业(2015年6期)2015-02-28 18:51:34
高校实行会计委派制的利与弊