分层身份加密(HIBE)技术原理解析(下)

上篇内容我们谈到到身份密码加密(IBE)的诞生及演进,那身份分层加密(HIBE)是如何诞生、发展,长安链中又如何集成HIBE的?

从IBE 到HIBE

IBE体制把对用户公钥证书的认证问题转化为对PKG公共参数的认证问题。继续上面的例子,比如说为了我向发送加密信息,你们只需要从我所属的PKG那里得到相应的公共参数,而不再需要核实的公钥证书。然而,正如前面的所说的,IBE体制同时存在一个缺陷,当管理的用户过多时,用于私钥生成的计算开销将非常大,如果当私钥更新间隔非常小时,这种计算开销将更加巨大。

解决这个问题的容易想到的方法是设置更多的PKG并保持较大的私钥更新时间间隔,但这样的解决方降低了IBE所拥有的优势,因为如PKG果过多,就需要对更多的公共参数进行认证。在传统的体制中,为了使不至于非常繁忙,通常使用分等级的证书颁发机构,这样用户也无需保存过多的证书,仅需要验证证书的认证链即可。为了拥有这种优势,于是提出了分等级基于身份加密(HIBE)的概念,除了拥有所有的功能外,一个拥有高等级的身份信息私钥的用户,可以为更低等级的身份信息颁发私钥。这样,任何一个用户都可以充当更低等级用户的PKG,从而减轻了主PKG的负担。

HIBE 打破了传统的 IBE 方案,构造了一种层级结构关系,每一层节点/用户用来进行数据解密的解密密钥都由上一层级进行分配,也就是说,只有根节点/用户的密钥由主PKG进行分配,再者主PKG的压力完全可以用集群服务的形式来解决,但是权限管理(解密能力的管理)只能靠HIBE的算法设计来解决。

图片

Horwitz和Lynn在Eurocrypt2002上提出了“分层身份加密”(HIBE)的概念。

论文链接:http://theory.stanford.edu/~horwitz/pubs/hibe.pdf

HIBE的形式化定义

  • Root.Setup (初始化算法): 该算法由 KGA 运行,输入安全参数λ,输出系统参数列表 params 和主密钥 msk。

  • Key.Extraction (密钥提取算法): 该算法由 KGA 运行,输入系统参数列表 params,主密钥 msk,第一层节点/用户的身份信息 I1 作为输入,输出第一层节点的解密密钥 dk1。

  • Key.Delegation (密钥分派算法): 该算法由第k-1层节点/用户运行,输入前k−1层节点/用户身份集合 ID=[I1,I2,...Ik−1],系统参数列表params 和上一层用户/节点解密密钥dkk−1,输出第k层节点/用户的解密密钥dkk,并且分配给第k层节点/用户。

  • Encryption (加密算法): 该算法由任意节点/用户运行,输入节点/用户身份 IDk=[I1,I2,...Ik],系统参数列表params以及明文m,算法输出密文CT。

  • Decryption (解密算法): 该算法由第k层节点/用户运行,输入节点/用户解密密钥 dkk , 系统参数列表 params 以及密文 CT,输出解密后的明文 m。

HIBE加密流派

困难问题 密文大小 密钥大小 参数大小 匿名性 椭圆曲线选取
Gentry-Silverberg方案 BDH问题 随层级数线性增加 常数大小 常数大小 非匿名性 困难
Gentry等人方案 BDH问题 随层级数线性增加 常数大小 随节点数和层数线性增加 非匿名性 易构造
Boneh等人方案 l-wDBDHI问题 常数大小 随层级数线性减小 随层级数线性增加 非匿名性 易构造
Seo等人方案 l-wDBDHI问题 常数大小 随层级数线性减小 层级数线性增加 非匿名性 易构造
Boneh-Waters方案 DLIN&BDH问题 随层级数线性增加 随层级数多项式增加 随层级数多项式增加 匿名性 困难

HIBE的安全模型

在假设密码分析者已知所用加密算法全部知识的情况下,根据密码分析者对明文、密文等数据资源的掌握程度,可以将针对加密系统的密码分析攻击类型分为以下四种: 惟密文攻击(Ciphtext-only attack),已知明文攻击(Plaintext-known attack),选择明文攻击 (Chosen-plaintext attack),选择密文攻击(Chosen—ciphenext attack)。

在公钥密码学中,IND-CCA (Indistinguishability under chosen-ciphertext attack)直译为选择密文攻击下的不可区分性。IND-CCA安全代表选择明文的不可伪造性。这样的安全方案的思想就是给定一个密文,攻击者不能说出给定密文是什么样的明文加密得到的。

图片

(图片来源:https://www.slideserve.com/pancho/detecting-dangerous-queries)

身份的分层加密方案是IND-ID(Identity)-CCA安全的,当且仅当不存在多项式时间内的敌手能以不可忽略的优势赢得下面的挑战者-敌手交互游戏。

  1. 参数设置:挑战者输入安全参数 k ,运行系统参数生成算法 Setup,产生主密钥 s 和系统参数params 。挑战者把系统参数params 发给敌手A ,保留主密钥s 。

  2. 查询:敌手 A 发动多次询问q1,q2,...qm,其 中 qi是下列情形之一:

    私钥查询:敌手输入用户的身份信息 ID ,挑战者运行密钥生成算法Keygeneration,将对应的 sk返回给敌手A。

    解密查询:敌手输入用户的身份信息 ID 和密文 c ,挑战者运行密钥生成算法Keygeneration,得出用户对应的私钥 sk,再运行解密算法Decryption,将结果 m 返回给敌手A。敌手进行这些查询是自适应的,即每个询问 qi均可依赖之前 q1q2qi−1的查询结果。

  3. 挑战:敌手决定结束查询后,就输出两个等长的明文消息 m0,m1∈M 和挑战用户身份 ID ,但 ID不能在第一阶段中的私钥查询中出现过。挑战者任意挑选 b∈{0,1},计算cb,并返回给敌手。

  4. 查询:敌手进行更多的查询:

    私钥查询:敌手不能对挑战用户 D或其祖先结点进行查询,其他同之前的私钥查询。

    解密查询:敌手不能对挑战密文c 进行和挑战用户 ID 或其祖先结点的解密查询,其他同之前的解密查询。这些查询也是自适应的。

  5. 猜测:敌手输出猜测b ,如果 b′=b,则敌手A赢得了游戏。称上述敌手 A 为IND−ID−CCA敌手,并称 A 在给定安全参数 k 的情况下赢得游戏的优势为: εAdvA,εINDID−CCA(k)=|Pr[b′=b]−0.5|。

上述相关部分涉及较多密码学数学知识,基于笔者水平有限,还不能很清晰地了解其中的数学及其密码学原理,有兴趣的读者可以自行参考论文和我们长安链层级身份加密方案并学习。

在长安链中集成(HIBE)

算法构造如下:

前提假设

  1. G 为一个素数阶为p的双线性群。

  2. e:G×G−>GT 是一个对称的双线性映射。

  3. H:{0,1}∗−>(Zp∗)k 是一个抗碰撞的哈希函数。

  4. 在第 k 层的公钥(ID)为 (I1,I2,...,Ik)∈(Zp∗)k,即可由在有限域内的 k 个整数表示。

  5. 待加密数据m在双线性群上G。

算法构造

Setup

  • 随机生成元 g∈G

  • 随机整数 α∈Zp 及 g1=gα

  • 随机数 g2,g3,h1,...,hl∈G,其中 l 为最大层级数

此时,我们有

  • 系统参数 params=(g,g1,g2,g3,h1,...,hl)

  • master key = g2α

KeyGen

对于某一层级的公钥,私钥生成有两种方式:

  • 由master key生成:dID=(g2α⋅(h1I1...hkIkg3)r,gr,hk+1r,...,hlr)∈G2+l−k

  • 由上一级私钥生成:记dID|k−1=(g2α⋅(h1I1...hkIkg3)r,gr,hk+1r,...,hlr)=(a0,a1,bk,...,bl),则下级私钥为dID|k=(a0⋅bkIk⋅(h1I1...hkIk⋅g3)t,a1⋅gt,bk+1⋅hk+1t,...,bl⋅hlt)

Eecrypt

给定:

  • 信息 M∈G1

  • 公钥 (I1,I2,...,Ik)∈(Zp∗)k

加密结果:CT=(e(g1,g2)s⋅M,gs,(h1I1...hkIk⋅g3)s)∈G1×G2

Decrypt

给定:

  • 密文 CT=(A,B,C)

  • 私钥 dID=(a0,a1,bk+1,...,bl)

解密方案: A⋅e(a1,C)/e(B,a0)=M

整体架构

图片

执行流程

图片

更多的背景与系统用例请参考我们的长安链层级身份加密方案。

研究的方向

基于笔者的密码学以及数学知识有限,在研究的过程中,我认为以下问题是我们值得思考探究的:

如何构造更为高效的加密方案使HIBE具有隐私保护性,且适应于大型用户群体;

HIBE体制下,各类密码方案、协议的高效实现及安全性证明;

结语

​ 从IBE到HIBE至今己经历了近三十年的发展历程,从概念的提出到具体方案的构造,再到功能和安全性的逐步完善,HIBE密码体制己从一个抽象的密码学概念发展成为具有标准的形式化定义、完善的安全性定义、丰富的实现方案、严格的安全性证明的密码学分支。它无疑有效地简化了传统公钥密码体制中的公钥证书的管理问题,丰富了公钥密码体制的功能,对该类密码体制的设计和分析,是当前密码学研领域中一个重要的研究方向。同时,在区块链中,加密技术占有核心地位,用户信息以及交易数据的安全性是区块链得以推广的必要条件,密码学技术的发展推动并制约着区块链的进一步发展同时。如何将HIBE等隐私保护技术与区块链,乃至我们的长安链技术相结合,也是我们正在研究的方向和期待实现的目标。

Tips

更多长安链开源项目QA,可登陆开源社区、技术文档库查看。

下载源码https://git.chainmaker.org.cn/chainmaker/chainmaker-go

查阅文档https://docs.chainmaker.org.cn/

更多社区权益申请https://wj.qq.com/s2/8620064/7abd

“长安链ChainMaker”是国内首个自主可控区块链软硬件技术体系,由微芯研究院联合头部企业和高校共同研发,具有全自主、高性能、强隐私、广协作的突出特点。长安链面向大规模节点组网、高交易处理性能、强数据安全隐私等下一代区块链技术需求,融合区块链专用加速芯片硬件和可装配底层软件平台,为构建高性能、高可信、高安全的数字基础设施提供新的解决方案,为长安链生态联盟提供强有力的区块链技术支撑。取名“长安链”,喻意“长治久安、再创辉煌、链接世界”。

猜你喜欢

转载自blog.csdn.net/weixin_55760491/article/details/119671890