基金项目: 国家重点研发计划项目(2017YFB0802000);国家自然科学基金项目(U1636114;61772550;61572521);国家密码发展基金项目(MMJJ20170112)
Multi-identity Fully Homomorphic Encryption Scheme Supporting Threshold Decryption
身份基加密[1-4](identity-based encryption, IBE)是对传统的公钥基础设施(public key infrastructure, PKI)技术的优化,它以用户专属的身份标志(identity, ID)为公钥,不采用数字证书的概念,用户使用和后台管理都很简单,具有广泛的应用前景[5]。相比于IBE,分层身份基加密[6-9](hierarchical identity-based encryption, HIBE)将ID分为多个层次,每一层都有自己的私钥生成器(private key generator, PKG),负责为低层身份生成、分发私钥,大大减轻了根PKG的负担[10]。
全同态加密[11-14](fully homomorphic encryption, FHE)因其在密文处理的特殊性质,在云计算领域发挥重要作用。相比于FHE,多密钥全同态加密[15-18](multi-key fully homomorphic encryption, MKFHE)能够实现对不同用户的密文进行运算,应用场景更加广泛。
IBE与FHE结合,能够对身份密文进行同态运算和访问控制,数据处理更加灵活,但目前此类研究成果并不多。2013年,Gentry等[14]提出了第一个分层身份基全同态加密方案(hierarchical identity-based fully homomorphic encryption, HIBFHE),但该方案只能对同一ID下的密文进行运算。2015年,Clear等[16]利用文献[4]的IBE方案,构造一个多身份全同态加密方案(multi-identity FHE),实现对不同ID下密文的同态运算,但该方案密文扩展复杂,效率不高。2017年,Canetti等[19]提出了一个利用IBE和MKFHE构造multi-identity FHE的通用转化模型。但该模型下的密文规模大,计算复杂度高。
门限密码系统的基础是秘密共享,它对用户密钥进行分散管理,提高密码系统安全性。基于门限FHE构造多方计算(multi-party computation, MPC)协议能够有效减少通信复杂度和通信轮度[20]。2016年,Mukherjee等[17]提出了支持门限解密的MKFHE方案,并据此构造了一个2轮MPC协议。
作者对文献[14]提出的第一个HIBFHE方案和文献[17]提出的MKFHE转化机制以及门限解密展开研究,构造一个新的multi-identity FHE方案。首先,使用工具矩阵[21](gadget matrix)得到新的加解密形式,取代原方案的校平技术[14](flatting)。并改变IBE的底层格基维度,得到优化的密文规模和密钥规模更小的HIBFHE方案,但该方案仍然只能对同一ID下的密文进行运算。然后,利用文献[17]中的MKFHE转化机制,为优化的HIBFHE方案构造屏蔽系统(masking system),生成辅助密文,为密文扩展提供技术支持。最后,得到提出的multi-identity FHE方案,实现对不同ID下密文的同态运算和访问控制,并给出门限解密过程,利用文献[17]构造MPC协议的方法,同样可以构造一个公共参考字符串(common reference string, CRS)模型下的2轮MPC协议。
1 预备知识
1.1 工具矩阵
定义1[21] 对任意模数
$q$
,
${\ell _q} = \left\lceil {{\rm{l}} {\rm{b }}\;q} \right\rceil $
,行向量
${{g}} = ({2^0},{2^1}, \cdots ,{2^{\ell - 1}}) \in \mathbb{Z}_q^{{\ell _q}}$
,矩阵
${{{G}}_n} = ({{{I}}_n} \otimes {{g}}) \in \mathbb{Z}_q^{n \times n{\ell _q}}$
。
定义2[21] 随机化函数
${{{g}}^{ - 1}}:{\mathbb{Z}_q} \to {\mathbb{Z}^{{\ell _q}}}$
,对于任意
$a \in {\mathbb{Z}_q}$
,列向量
${{x}} \leftarrow {{{g}}^{ - 1}}(a)$
的元素为0、1,并且有
$\left\langle {{{g}},{{x}}} \right\rangle = a$
。
定义3[21] 随机化函数
${{{G}}^{ - 1}}:\mathbb{Z}_q^{n \times m} \to \mathbb{Z}_q^{n{\ell _q} \times m}$
,对任意矩阵
${{A}} \in \mathbb{Z}_q^{n \times m}$
,
${{X}} \leftarrow {{{G}}^{ - 1}}({{A}})$
的元素为0、1,并且有
${{G}} \cdot {{X}} = {{G}} \cdot {{{G}}^{ - 1}}({{A}}) = {{A}}$
。
1.2 门限解密
定义4[17] 一个支持一轮门限分布式解密协议的MKFHE方案还包括两个算法:
1)
$\rm{MKFHE} .PartDec$
:输入扩展密文
${\hat{ c}}$
、公钥串
$(p{k_1},p{k_2}, \cdots ,p{k_N})$
和第
$i$
个用户的私钥
$s{k_i}$
,输出部分解密值
${p_i}$
。
2)
$\rm{MKFHE} .FinDec$
:重复执行
$N$
次上述步骤,得到
$N$
个部分解密值,运行最终解密函数,得到
$\mu ' = {\rm{MKFHE} .FinaDec}({p_1},{p_2}, \cdots ,{p_N})$
。
设
${{{c}}_i}$
为第
$i$
个用户对
${\mu _i}$
加密的密文,
${{\hat{ c}}_i} \leftarrow {\rm{Expand}}((p{k_1},$
$p{k_2}, \cdots ,p{k_N}),i,{{{c}}_i})$
为
${{{c}}_i}$
的扩展密文,
$\{ {p_1},{p_2}, \cdots ,{p_N}\} $
为部分解密值集合,
$f$
表示任意有效的同态运算函数,
$\hat {{C}} = {\rm{Eval}} (f,{{\hat{ c}}_1},{{\hat{ c}}_2}, \cdots ,{{\hat{ c}}_t})$
表示对扩展密文进行同态运算后的结果密文。一个门限多密钥全同态加密方案还应当满足以下两条性质:
1)正确性:
${\rm FinDec}(\hat {{C}},{p_1},{p_2}, \cdots ,{\rm{ }}{p_N}) = f({\mu _1},{\mu _2}, \cdots ,{\rm{ }}{\mu _t}){\text{。}}$ |
2)可模拟性:存在一个多项式时间的模拟器
${{\rm Sim}^{{\rm{thr}}}}$
,对于上述输入
$\mu = f({\mu _1},{\mu _2}, \cdots ,{\mu _t})$
、
${\hat{ c}}$
以及除
$s{k_i}$
之外的所有密钥,输出
${p'_i} \leftarrow {{\rm Sim}^{{\rm{thr}}}}(\mu ,{\hat{ c}},i,{\{ s{k_j}\} _{j \in N\backslash \{ i\} }})$
满足
${p'_i}$
和
${p_i}$
的统计不可区分性。
2 多身份全同态加密方案构造
2.1 优化的HIBFHE方案
对文献[14]提出的第一个HIBFHE方案进行改进,得到密文规模和密钥规模更小的优化方案。
1)
${\rm HIBFHE .Setup}({1^\lambda },{1^L},{1^d})$
:设
$\lambda $
为安全参数,
$L$
为计算电路的最大深度,
$d$
为分层的最大深度。选择
$\chi = \chi (\lambda ,L)$
,得到
${B_\chi }$
有界的误差分布。选择
$n$
、
$m$
、
$q$
作为标准误差学习(learning with errors,LWE)问题的参数,
$m = \omega (n{\rm lb}\;q) =\left[ {(k + 1)n + 1} \right]$
$ {\ell _q}$
,
${\ell _q} = \left\lceil {\rm l} {{\rm b }\;q} \right\rceil $
。采用
${\rm{GenBasis(}}{1^n},{1^m},q)$
[9]算法,可以得到随机均匀矩阵
${{{A}}_0} \in \mathbb{Z}_q^{m \times n}$
和对应格
$ {\varLambda ^ \bot }({{{A}}_0}) = \{ {{x}} \in {\mathbb{Z}^m}:{{xA}} ={{\textit{0}}}\;od \;q\} $
的一组短基
${{{S}}_0} \in {\mathbb{Z}^{m \times m}}$
。对每个
$(i,b) \in [k] \times \{ 0,1\} $
,得到均匀独立矩阵
${{{A}}_{i,b}} \in \mathbb{Z}_q^{n \times m}$
,随机选择
${{z}} \leftarrow $
$\mathbb{Z}_q^m$
。输出系统参数
$pp = (n,m,q,\chi ,{B_\chi })$
,
$mpk = ({{{A}}_0},\{ {{{A}}_{i,b}}\} ,{{z}})$
,
$msk = {{{S}}_0}$
。所有的算法都默认以
$pp$
为输入。
2)
${\rm{HIBFHE} .KeyGen}(msk,ID)$
:设身份
$ID = (i{d_1},i{d_2},$
$ \cdots ,i{d_k}) = {\{ 0,1\} ^k}$
,则有
${{{A}}_{ID}} = {{{A}}_0}||{{{A}}_{1,i{d_1}}}||{{{A}}_{2,i{d_2}}}|| \cdots ||{{{A}}_{k,i{d_k}}} \in$
$ \mathbb{Z}_q^{m \times \left( {k + 1} \right)n}$
,
${{{A}}_{i,i{d_i}}} = {{{A}}_{i,b}} \in \mathbb{Z}_q^{m \times n}$
。采用
${\rm{ExtBasis}} ({{{S}}_0},{{{A}}_{ID}})$
[9]算法,输出格
${\varLambda ^ \bot }({{{A}}_{ID}})$
的一组短基
${{{S}}_{ID}}$
;采用
${\rm{SampleD}} ({{{S}}_{ID}},$
${{{A}}_{ID}},{{z}})$
[4]算法,输出
${{{t}}_{ID}} \in {\{ 0,1\} ^{(k + 1)n}}$
满足
${{{A}}_{ID}} \cdot {{{t}}_{ID}} =$
$ {{z}}{\rm{ }}od {\rm{ }}q$
。令私钥
$s{k_{ID}} = {{s}} = (1, - {{t}}_{ID}^{\rm{T}}) \in \mathbb{Z}_q^{\left( {k + 1} \right)n + 1}$
,
${{{A}}_{ID}'} = {{z}}\parallel$
${{{A}}_{ID}}\in \mathbb{Z}_q^{m \times \left[ {(k + 1)n + 1} \right]}$
,则有
${{s}} \cdot {({{{A}}_{ID}'})^{\rm{T}}} = {{\textit{0}}}\; od \; q \in \mathbb{Z}_q^m$
成立。
设
$ID'$
为低层身份信息,即
$ID' = (ID\parallel \overline {ID} )$
,
${{{A}}_{ID'}} =$
$ {{{A}}_{ID}}\parallel {{{A}}_{\overline {ID} }}$
,采用上述算法
${\rm{ExtBasis}} ({{{S}}_{ID}},{{{A}}_{ID'}})$
得到
${{{S}}_{ID'}}$
;采用算法
${\rm{SampleD}} ({{{S}}_{ID'}},{{{A}}_{ID'}},{{z}})$
得到
${{{t}}_{ID'}}$
。由此,从高层PKG得到低层
$ID$
对应的私钥。
3)
${\rm{HIBFHE} .Enc}(\mu ,mpk,ID)$
:随机选择矩阵
${{R}} \in$
$ {\{ 0,1\} ^{m \times m}}$
,
$\mu \in \{ 0,1\} $
,
${{E}} \leftarrow {\chi ^{[(k + 1)n + 1] \times m}}$
,得到密文:
$ {{{C}}_{ID}} = {({{{A}}_{ID}'})^{\rm{T}}} \cdot {{R}} + \mu {{{G}}_{(k + 1)n + 1}} + {{E}} $ |
(1) |
计算:
$ {{s}} \cdot {{C}} = \mu {{s}}{{{G}}_{(k + 1)n + 1}} + {{sE}} $ |
(2) |
4)
${\rm HIBFHE} .{\rm Eval}\left( {({{{C}}_1},{{{C}}_2}, \cdots ,{{{C}}_t}),f} \right)$
:设
${{C}}_1$
、
${{C}}_2$
分别为某一
$ID$
下加密的不同密文,私钥为
${{s}}$
,定义同态加法运算
${{{C}}^{( + )}} = {{{C}}_1} + {{{C}}_2}$
,则
${{s}} \cdot {{{C}}^{( + )}} = ({\mu _1} + {\mu _2}){{sG}} + ({{{e}}_1} + {{{e}}_2})$
满足同态加法性质;定义同态乘法运算
${{{C}}^{( \times )}} ={{{C}}_1}{{{G}}^{ - 1}}({{{C}}_2})$
,则
${{s}}{{{C}}^{( \times )}}\!=({\mu _1}{{sG}}\!+ {{{e}}_1}) {{{G}}^{ - 1}}({{{C}}_2}) ={\mu _1}{{s}}{{{C}}_2} +{{{e}}_1}{{{G}}^{ - 1}}({{{C}}_2})={\mu _1}{\mu _2}{{sG}} +$
${\mu _1}{{{e}}_2} \!+\! {{{e}}_1} \cdot {{{G}}^{ - 1}}({{{C}}_2})$
满足同态乘法性质。因此,通过加法和乘法组合,可以对密文做任意同态运算,满足
${{s}}{{{C}}_{{\rm{Eval}}}} = f({\mu _1},{\mu _2}, \cdots ,{\mu _t}){{sG}} + {{e'}}$
。
5)
${\rm{HIBFHE} .Dec}({{C}},{{s}})$
:定义向量
${{\omega }} =(\left\lceil {{q / 2}} \right\rceil ,0, \cdots\!,$
$0)^{\rm{T}} \in \mathbb{Z}_q^{(k + 1)n + 1}$
,若
${{C}}$
为初始密文,则:
$ \begin{aligned} \mu ' = & {{sC}}{{{G}}^{ - 1}}({{\omega }}) = (\mu {{sG}} + {{e'}}){{{G}}^{ - 1}}({{\omega }}) = \mu {{s\omega }} + \\ &\left\langle {{{e'}} \cdot {{{G}}^{ - 1}}({{\omega }})} \right\rangle = \mu (1, - {{t}}_{ID}^{\rm{T}}){(\left\lceil {{q / 2}} \right\rceil ,0, \cdots ,0)^{\rm{T}}} + \\ &\left\langle {{{e'}} \cdot {{{G}}^{ - 1}}({{\omega }})} \right\rangle = \mu \cdot \left\lceil {{q / 2}} \right\rceil + {e}'{\text{。}} \end{aligned} $ |
若
$\mu '{\rm{ = }}small$
,则
$\mu = 0$
;若
$\mu ' - \left\lceil {{q / 2}} \right\rceil = small$
,则
$\mu = 1$
。
同理,若
${ C}$
为同态运算结果密文,则
$\mu ' = {{s}}{{{C}}_{\rm Eval}} \cdot $
$ {{{G}}^{ - 1}}({{\omega }}) = f({\mu _1},{\mu _2}, \cdots ,{\mu _t}) \cdot \left\lceil {{q / 2}} \right\rceil + e$
。
由于
${B_\chi } \ll q$
,计算
$\left\lfloor {\dfrac{{\mu '}}{{\left\lceil {{q / 2}} \right\rceil }}} \right\rfloor \!=\! \left\lfloor {f({\mu _1},{\mu _2}, \cdots\!,{\mu _t}) + \dfrac{e}{{\left\lceil {{q / 2}} \right\rceil }}} \right\rfloor \!=\! f({\mu _1},{\mu _2}, \cdots ,{\mu _t})$
,满足同态方案性质。
2.2 优化的HIBFHE方案屏蔽系统
定义5[17] 算法
${\rm Lcomb} \left( {({{{C}}_{1,1}},{{{C}}_{1,2}}, \cdots ,{{{C}}_{m,m}}),{{v}}} \right)$
执行以下步骤:
1)对于所有的
$i \in [m]$
、
$j \in [m]$
,
$[m]=\{1,2,\cdots,m\}$
,定义矩阵
${{{Z}}_{i,j}} \in $
$ \mathbb{Z}_q^{\left[ {(k + 1)n + 1} \right] \times m}$
的形式如下:
${{{Z}}_{i,j}}[a,b] = \left\{ \begin{aligned} & {v_i},\quad a = 1,b = j;\\ & 0,\quad{\text{其他}}{\text{。}} \end{aligned} \right.$ |
2)输出
${{{C}}_{{\rm{lc}}}} = \displaystyle\sum\limits_{i = 1,j = 1}^{m,m} {{{{C}}_{i,j}}{{{G}}^{ - 1}}({{{Z}}_{i,j}})}$
。
对于一个矩阵
${{M}} \in \mathbb{Z}_q^{m \times m}$
,
${M_{i,j}}$
表示矩阵中的各元素,
${{{C}}_{i,j}} \in \mathbb{Z}_q^{\left[ {(k + 1)n + 1} \right] \times m}$
为
${M_{i,j}}$
的密文,对应私钥
${{s}} \in \mathbb{Z}_q^{\left[ {(k + 1)n + 1} \right]}$
,向量
${{\nu }} \in \mathbb{Z}_q^m$
表示一个函数。该同态操作以
${M_{i,j}}$
、
${{{C}}_{i,j}}$
、
${{s}}$
和
${{v}}$
为输入,输出一个密文
${{{C}}_{{\rm{lc}}}}$
,则
$ \begin{aligned}[b] {{s}}{{{C}}_{{\rm{lc}}}} = & \sum\limits_{i = 1,j = 1}^{m,m} {{{s}}{{{C}}_{i,j}} \cdot {{{G}}^{ - 1}}({{{Z}}_{i,j}})} = \\ & (1, - {{t}}_{ID}^{\rm{T}})\left[ \begin{aligned} {{vM}}\, \\ {{{\textit{0}}}^{m - 1}} \end{aligned} \right] + {{e''}} = {{vM}} + {{e''}} \end{aligned} $ |
(3) |
本屏蔽系统包括两个多项式时间算法[17]:
1)
${\rm UniEnc} (\mu ,ID,mpk)$
:运行
${\rm HIBFHE} .{\rm Enc}(\mu ,mpk,$
$ID)$
算法,对
${{R}} \in {\{ 0,1\} ^{m \times m}}$
的每个元素进行加密,得到
${m^2}$
个密文,令
${{U}} = ({{{V}}^{(1,1)}},{{{V}}^{(1,2)}}, \cdots ,{{{V}}^{(m,m)}}) \in {(\mathbb{Z}_q^{\left[ {(k + 1)n + 1} \right] \times m})^{{m^2}}}$
。
2 )
${\rm Extend} (\mu ,mpk,ID,ID')$
:令
$ {{X}} ={\rm Lcomb}({{U}},{{t}}_{ID'}^{\rm{T}}\cdot$
$ ({{A}}_{ID}^{\rm{T}} -{{A}}_{ID'}^{\rm{T}}))$
,则
$ \begin{aligned}[b] {{s'C}} = & {{s'}}[{({{{{A}}}_{ID}'})^{\rm{T}}} \cdot {{R}} + \mu {{G}} + {{E}}] = \\ & (1, - {{t}}_{ID'}^{\rm{T}})\left( {\begin{aligned} {{{{z}}^{\rm{T}}}}\;\, \\ {{{A}}_{ID}^{\rm{T}}} \end{aligned}} \right){{R}} + \mu {{s'G}} + {{s'E}} = \\ & ({{t}}_{ID'}^{\rm{T}}{{A}}_{ID'}^{\rm{T}} - {{t}}_{ID'}^{\rm{T}}{{A}}_{ID}^{\rm{T}}){{R}} + \mu {{s''G}} + {{s'E}} = \\ & {{t}}_{ID'}^{\rm{T}}({{A}}_{ID'}^{\rm{T}} - {{A}}_{ID}^{\rm{T}}){{R}} + \mu {{s'G}} + {{s'E}} \end{aligned} $ |
(4) |
由式(3)可得:
${{sX}} = {{t}}_{ID'}^{\rm{T}}({{A}}_{ID}^{\rm{T}} - {{A}}_{ID'}^{\rm{T}}){{R}} + {{{e}}_X}$ |
(5) |
式(4)和(5)相加,得到:
${{sX}} + {{s'C}} = \mu {{s'G}} + {{s'E}} + {{{e}}_X}。$ |
(6) |
2.3 提出的multi-identity FHE方案
利用以上优化的HIBFHE方案和屏蔽系统,构造一个新的multi-identity FHE方案,记为
$\varepsilon $
。
1)
$\varepsilon .{\rm Setup} ({1^\lambda },{1^L},{1^d})$
:设
$\kappa $
为参与方身份的最大个数,则定义身份集合
$I = \left( {I{D_1},I{D_2}, \cdots ,I{D_\kappa }} \right)$
,
$\left| {I{D_i}} \right| \le d$
。
$m =$
$ \left[ {(d + 1)n + 1} \right]{\ell _q}$
,
$q \ge {2^{\omega (L\lambda {\rm{l}} {\rm{b }}\; \lambda )}}{B_\chi }$
。运行
$\rm{HIBFHE.Setup}({1^\lambda },$
${1^L},{1^d})$
,得到
$pp$
、
$mpk$
和
$msk$
。算法都默认以
$pp$
为输入。
2)
$\varepsilon .{\rm KeyGen} (I{D_i},msk)$
:运行
${\rm HIBFHE.KeyGen}(msk,$
ID)算法,得到私钥
$s{k_{I{D_i}}}$
和对应的
${ A}_{{{ID}_i}}'$
。为保证解密时的密钥级联,用0对私钥进行填充,将其维度扩大到
$\mathbb{Z}_q^{(d + 1)n + 1}$
。
3)
$\varepsilon .{\rm Enc} (I{D_i},\mu ,mpk)$
:运行屏蔽系统的
$\rm{UniEnc}(\mu,$
$ ID,mpk)$
算法,输出一对值
$({{U}},{{C}})$
。为保证密文间的同态运算,用0对密文矩阵进行补充,将其维度扩大到
$\mathbb{Z}_q^{\left[ {(d + 1)n + 1} \right] \times m}$
,
${{c}}= ({{U}},{{C}})$
。
4)
$\varepsilon .{\rm Expand} (I,{{C}},mpk)$
:以身份集合和初始密文为输入,得到扩展密文
$\hat {{C}} \in \mathbb{Z}_q^{\kappa \left[ {(d + 1)n + 1} \right] \times \kappa m}$
。具体过程如下:
①对于任意的
$j \in [\kappa ]\backslash i$
,运行
${{{X}}_j} \leftarrow {\rm{Extend}} ({{U}},mpk,$
$I{D_i},I{D_j})$
算法。
②扩展密文可分解为
${\kappa ^2}$
个部分,每部分都是
$\hat {{C}}[a,b] \in \mathbb{Z}_q^{\left[ {(d + 1)n + 1} \right] \times m}$
的矩阵,定义如下:
$\hat {{C}}[a,b] = \left\{\begin{aligned} & {{{C}},}\quad {a = b;}\\ & {{{{X}}_j},}\quad a = i \ne j,b = j;\\ & {{{{\textit{0}}}^{\left[ {(d + 1)n + 1} \right] \times m}},} \quad {\text{其他}}{\text{。}} \end{aligned}\right. $ |
对第
$i$
个用户,对应的身份为
$I{D_i}$
,
${{C}} \in \mathbb{Z}_q^{\left[ {(d + 1)n + 1} \right] \times m}$
为初始密文,则扩展密文为:
${\hat {{C}}_i} = \left[\!\!\!{\begin{array}{*{20}{c}} {{C}}&0& \cdots &0& \cdots &0 \\ 0&{{C}}& \cdots &0& \cdots &0 \\ \vdots & \vdots &{}& \vdots & \vdots & \vdots \\ {{{{X}}_1}}&{{{{X}}_2}}& \cdots &{{C}}& \cdots &{{{{X}}_\kappa }} \\ \vdots & \vdots & \vdots & \vdots &{}& \vdots \\ 0&0& \cdots &0& \cdots &{{C}} \end{array}}\!\!\!\right]$ |
(7) |
式中,
${{{X}}_j}$
位于第i行,
$j \in [\kappa ]$
。
令
${\hat{ s}} = \left( {{{{s}}_{I{D_1}}},{{{s}}_{I{D_2}}}, \cdots ,{{{s}}_{I{D_\kappa }}}} \right)$
,计算
${\hat{ s}}\hat {{C}} =({{{s}}_1}{{C}} + {{{s}}_i}{{{X}}_1},$
${{{s}}_2}{{C}} + {{{s}}_i}{{{X}}_2}, \cdots ,{{{s}}_\kappa }{{C}} + {{{s}}_i}{{{X}}_\kappa })$
,由式(6)可知,
${{{s}}_i}{{{X}}_j} + {{{s}}_j}{{{C}}_i} =$
$ \mu {{{s}}_j}{{G}} + {{{s}}_j}{{e}} + {{{e}}_X}$
,因此,
$\begin{aligned}[b] {\hat{ s}}\hat {{C}} = & (\mu {{{s}}_1}{{G}} + {{{\hat{ e}}}_1},\mu {{{s}}_2}{{G}} + {{{\hat{ e}}}_2}, \cdots ,\mu {{{s}}_\kappa }{{G}} + {{{\hat{ e}}}_\kappa }){\rm{ = }} \\ & \mu {\hat{ s}}{\hat {{G}}_\kappa } + ({{{\hat{ e}}}_1},{{{\hat{ e}}}_2}, \cdots ,{{{\hat{ e}}}_\kappa })\end{aligned} $ |
(8) |
式(8)与(2)具有相同的形式,满足加解密正确性。
5)
$\varepsilon .{\rm Eval} (({\hat {{C}}_1},{\hat {{C}}_2}, \cdots ,{\hat {{C}}_t}),f)$
:同态运算的定义与
${\rm HIBFHE.Eval}(({{{C}}_1},{{{C}}_2}, \cdots ,{{{C}}_t}),f)$
相同。定义同态加法运算为
${\hat {{C}}^{( + )}} = {\hat {{C}}_1} + {\hat {{C}}_2}$
,则
${\hat{ s}}{\hat {{C}}^{( + )}} = ({\mu _1} + {\mu _2}){\hat{ s}}{\hat {{G}}_\kappa } + ({{\hat{ e}}_1} + {{\hat{ e}}_2})$
;定义同态乘法运算为
${\hat {{C}}^{( \times )}} = {\hat {{C}}_1}{{{G}}^{ - 1}}({\hat {{C}}_2})$
,则
${\hat{ s}}{\hat {{C}}^{{\rm{( \times )}}}} =$
$ ({\mu _1}{\hat{ s}}{\hat {{G}}_\kappa } +$
$ {{\hat{ e}}_1}){{{G}}^{ - 1}}({\hat {{C}}_2}) = {\mu _1}{\mu _2}{\hat{ s}}{\hat {{G}}_\kappa } + {{\hat{ e}}'}$
;二者均满足同态运算性质。因此,同态运算结果密文满足
${\hat{ s}}{\hat {{C}}_{{\rm{Eval}}}} =f({\mu _1},{\mu _2}, \cdots , {\mu _t})\cdot $
$ {\hat{ s}}{\hat {{G}}_\kappa } +{{\hat{ e}}_{{\rm{Eval}}}}$
。
6)
$\varepsilon .{\rm Dec} (\hat {{C}},\hat {{s}})$
:解密过程与
${\rm HIBFHE.Dec}({{C}},{{s}})$
类似。定义向量
${\hat{ \omega }} = {(0, \cdots ,0,\left\lceil {{q / 2}} \right\rceil ,0, \cdots ,0)^{\rm{T}}} \in \mathbb{Z}_q^{\kappa \left[ {(d + 1)n \times 1} \right]}$
,对第
$i$
个用户,
$\left\lceil {{q / 2}} \right\rceil $
位于第
$(i - 1)\left[ {(d + 1)n + 1} \right] + 1$
行。若
$\hat {{C}}$
为初始密文,则
$\mu ' = {\hat{ s}}\hat {{C}}{\hat {{G}}^{ - 1}}({\hat{ \omega }}) = \mu \cdot \left\lceil {{q / 2}} \right\rceil + {{e'}}$
;若
$\hat {{C}}$
为同态结果密文,则
$\mu ' = {\hat{ s}}{\hat {{C}}_{\rm Eval}}{\hat {{G}}^{ - 1}}({\hat{ \omega }}) = f({\mu _1},{\mu _2}, \cdots ,{\mu _t}) \cdot $
$\left\lceil {{q / 2}} \right\rceil + {\hat{e}}$
。由此可求出
$\mu $
和
$f({\mu _1},{\mu _2}, \cdots ,{\mu _t})$
,满足同态方案性质。
3 方案分析
3.1 噪音分析
定义6[14] (
$\beta $
-noisy ciphertext)设
$\mu $
为明文消息,
${{C}}$
为
${\rm{Enc}}$
过程得到的密文,
${{s}}$
为对应的私钥,则有
${{sC}} = \mu {{sG}} + {{e}}$
。若对于
${\left\| {{e}} \right\|_\infty } \le \beta $
,则称
${{C}}$
为
$\beta $
噪音密文。
在优化的HIBFHE方案中,密文
${{C}} = {({{{A}}_{ID}'})^{\rm{T}}} \cdot{{R}} +$
$ \mu {{G}} + {{E}}$
,
${{E}} \!=\! ({{{e}}_1},{{{e}}_2}, \cdots\!,{{{e}}_m})$
,
${\left\| {{e}} \right\|_\infty } \le {B_\chi }$
。
${{s}} \cdot {{C}} \!=\! \mu {{sG}} + {{sE}}$
,对应的噪音
${\left\| {{{sE}}} \right\|_\infty } \le [(k + 1)n + 1]{B_\chi }$
,则
$\beta = [(k + 1)n + 1]$
${B_\chi }$
。
在提出的multi-identity FHE方案中,设
$\hat {{C}}$
为
$\beta '$
密文,
${\hat{ s}}\hat {{C}} = \mu {\hat{ s}}{\hat {{G}}_\kappa } + {\hat{ e}}$
,对应噪音
${\left\| {{\hat{ e}}} \right\|_\infty } = {\left\| {{{sE}} + {{{e}}_X}} \right\|_\infty }$
,其中,
$\left\| {{{sE}}} \right\| = \beta\;\;$
,
$\left\| {{{{e}}_X}} \right\| \!\le\! {\left\| {\displaystyle\sum\limits_{i = 1,j = 1}^{m,m} {{{{e}}_{i,j}} \cdot {{{G}}^{ - 1}}({{{Z}}_{i,j}})} } \right\|_\infty }={m^3}\beta \;$
,
${\left\| {\hat {{e}}} \right\|_\infty } \!=\! ({m^3} + $
$ 1)\,\beta $
。因此
$\,\beta ' = ({m^3} + 1)\beta $
。同理,在同态运算阶段,噪音的增长主要来自于同态乘法,
${\hat{ s}}{\hat {{C}}^{{\rm{( \times )}}}} = {\mu _1}{\mu _2}{\hat{ s}}{\hat {{G}}_\kappa } + $
${\mu _1}{{\hat{ e}}_2} + {{\hat{ e}}_1} \cdot {{{G}}^{ - 1}}({\hat {{C}}_2})$
,
${\left\| {{{{\hat{ e}}}_{{\rm{Eval}}}}} \right\|_\infty } = (1 + \kappa m)\beta '$
。设
$L$
表示进行同态操作的电路深度,则进行同态操作后噪音最多增长为
${\left\| {{{{\hat{ e}}}_{{\rm{Eval}}}}} \right\|_\infty } = {(1 + \kappa m)^L}\beta '$
。同理,解密密文
$\mu ' = {\hat{ s}}\hat {{C}} \cdot $
$\hat {{G}}_\kappa ^{ - 1}({\hat{ \omega }})$
,若
$\hat {{C}}$
为初始密文,对应噪音
${\left\| {{{{\hat{ e}}}_{{\rm{Dec}}}}} \right\|_\infty } \le \kappa m\beta '$
;若
$\hat {{C}}$
为同态运算密文,对应噪音
${\left\| {{{{\hat{ e}}}_{{\rm{Dec}}}}} \right\|_\infty } \le \kappa m{(1 + \kappa m)^L}\beta '$
。为保证解密正确,
${\left\| {{{{\hat{ e}}}_{{\rm{max}}}}} \right\|_\infty } \le \dfrac{q}{4}$
。由上述公式可知:
$\begin{aligned} {\left\| {{\hat { e}}_{\rm max}} \right\|_\infty } = & \kappa m{(1 + \kappa m)^L}\beta ' = \\ & \kappa m{(1 + \kappa m)^L}({m^3} + 1)\left[ {(k + 1)n + 1} \right]{B_\chi } \le \dfrac{q}{4}, \end{aligned}$ |
满足解密正确条件。
3.2 安全性分析
定理1 优化的HIBFHE方案为选择身份下的选择明文攻击不可区分性(IND–sID–CPA)安全,困难性可规约到LWE问题。
证明:优化的HIBFHE方案与HIBE方案相比,增加了一个Eval算法。在Eval算法中,输入均为密文,不影响方案的安全性。因此,优化的HIBFHE方案的安全性与HIBE方案相同,证明过程可参考文献[9]。
引 理[9] 存在一个多项式时间的预言机算法
$\cal{S}$
攻击
${\rm{LW}}{{\rm{E}}_{q,\chi }}$
问题,对于任意多项式时间敌手
$\cal{A}$
在IND–CPA游戏中攻击优化的HIBFHE方案的密钥封装机制(key encapsulation mechanism, KEM),满足
$Ad{v_{{\rm{LW}}{{\rm{E}}_{q,\chi }}}}({{\cal{S}}^{\cal{A}}}) \ge$
$ Adv_{{\rm{KEM}}}^{{\rm{IND - CPA}}}({\cal{A}}) - {\rm{negl} }(n)$
,其中,
${\rm negl} \left( n \right)$
表示值可忽略的函数。
采用密钥封装机制(KEM)对优化的HIBFHE方案的加密和解密过程进行封装,具体过程如下:
1)随机均匀选取
${{A}} \in \mathbb{Z}_q^{m \times (d + 1)n}$
,
${{z}} \leftarrow \mathbb{Z}_q^m$
,
${{t}} \in {\{ 0,1\} ^{(d + 1)n}}$
,满足
${{At}} = {{z}}{\rm{ }}od {\rm{ }}q$
。令
${{A'}} = {{z}}\parallel {{A}} \in \mathbb{Z}_q^{m \times \left( {(d + 1)n + 1} \right)}$
,
${{s}} = ( 1, $
$- {{{t}}^{\rm{T}}})\in\mathbb{Z}_q^{(d + 1)n + 1}$
,则有
${{s}} \cdot {({{A'}})^{\rm{T}}} = {{\textit{0}}}{\rm{ }}od {\rm{ }}q \in \mathbb{Z}_q^m$
。其中,
$({{A}},{{A'}},{{z}})$
公开,
$({{t}},{{s}})$
私有。
2)随机选取
${{R}} \in {\{ 0,1\} ^{m \times m}}$
作为加密时的随机数。选取
$b \in \left\{ {0,1} \right\}$
,
${{{E}}_1} \in {\chi ^{\left( {d + 1} \right)n \times m}}$
,
${{{E}}_2} \in {\chi ^{\left( {\left( {d + 1} \right)n + 1} \right) \times m}}$
,令
${{B}} = {{{A}}^{\rm{T}}}{{R}} +$
$ {{{E}}_1}$
,
${{P}} = {({{A'}})^{\rm{T}}} \cdot {{R}} + {\mu _b}{{G}} + {{{E}}_2}$
。
3)令
${{\eta }} = {(\left\lceil {{q / 2}} \right\rceil ,0, \cdots ,0)^{\rm{T}}} \in \mathbb{Z}_q^{\left( {(d + 1)n + 1} \right)}$
,计算
$\mu ' = {{sP}} \cdot $
$ {{{G}}^{ - 1}}({{\eta }}) = {\mu _b} \cdot \left\lceil {{q / 2}} \right\rceil + {{e}}$
进行解密。
分析封装过程可知:
1)优化的HIBFHE方案中由
${\rm{GenBasis}} ({1^n},{1^m},q)$
生成的矩阵
${{A}}$
接近于均匀分布,统计距离可忽略不计,并且对于任意的
${{A}} \in \mathbb{Z}_q^{m \times (k + 1)n},k \le d$
同样成立。
2)在未获得密钥的情况下,攻击者从矩阵
${{P}}$
中获取明文信息,等价于从矩阵
${{B}}$
中获取随机选取的矩阵
${{R}}$
,等价于解决LWE问题。
3)攻击者
$\cal{A}$
在IND–CPA游戏中获胜的优势不大于
$\cal{S}$
在求解LWE问题中获胜的优势。
因此,引理成立。
定理2[9] 存在一个多项式时间的预言机算法
$\cal{S}$
攻击KEM,对于任意多项式时间敌手
$\cal{B}$
在IND–sID–CPA游戏中攻击作者优化的HIBFHE方案,满足
$Ad{v_{{\rm{KEM}}}}({{\cal{S}}^{\cal{B}}}) \ge Adv_{{\rm{HIBFHE}}}^{{\rm{IND - sID - CPA}}}({\cal{B}}) - {{\rm negl}} (n)$
。
文献[9]中给出了
${\cal{S}}$
模拟攻击者
${\cal{B}}$
的攻击过程,分析模拟攻击过程可知:
1)优化的HIBFHE方案中由
${\rm{GenBasis}} ({1^n},{1^m},q)$
生成的矩阵
${{A}}$
接近于均匀分布,统计距离可忽略不计。
2)攻击者
${\cal{B}}$
可以通过询问检验预言机是否为真实世界,即是否可信。
3)攻击者
${\cal{B}}$
在IND–sID–CPA游戏中获胜的优势不大于
${\cal{S}}$
攻击KEM获胜的优势。
因此,定理2成立。
由上述引理和定理2可以得到,
$Ad{v_{{\rm{LW}}{{\rm{E}}_{q,\chi }}}}({{\cal{S}}^{\cal{A}}}) \ge$
$ Adv_{{{\rm HIBFHE}}}^{{\rm{IND - sID - CPA}}}({\cal{B}}) - {{\rm negl}} (n)$
,即将优化的HIBFHE方案的安全性归约到LWE问题,得到优化的HIBFHE方案的IND–sID–CPA安全性。
因此,定理1证明完毕。
定理3 优化的HIBFHE方案的屏蔽系统为IND–CPA安全。
证明:优化的HIBFHE方案的屏蔽系统安全性证明过程可参考文献[9]。
攻击者
${\cal{A}}$
在IND–CPA游戏中可以获得系统参数和对加密预言机的询问,在此条件下,攻击者想要以一个不可忽略的优势识别出
${\mu _b}$
。为此,假设Game 0为标准的IND–CPA游戏,攻击者的攻击对象为分布
$(pp,$
${{C}},{{U}})$
,其中,
${{C}} = {\rm{GSW} .Enc}({\mu _b},pk)$
,
${{U}} = {\rm{GSW} .Enc}(R(a,$
$b),pk)$
。
Game 1:与Game 0相比,不同之处在于令
${{U}} = {\rm{GSW} .Enc}(0,pk)$
。由文献[11]的语义安全性可知,攻击者无法以不可忽略的优势区分Game 1与Game 0,即
$\left| {Ad{v_{{G_1}}}[{\cal{A}}] - Ad{v_{{G_0}}}[{\cal{A}}]} \right| = {{\rm negl}} (n)$
。
Game 2:与Game 1相比,不同之处在于令
${{C}} = {\rm{GSW} .Enc}(0,pk)$
。由文献[11]的语义安全性可知,攻击者无法以不可忽略的优势区分Game 2与Game 1,即
$\left| {Ad{v_{{G_2}}}({\cal{A}}) - Adv_{{G_1}}(\cal{A})} \right| = {\rm{negl}} \left( n \right)$
。
因此,有
$\left| {Ad{v_{{G_2}}}({\cal{A}}) - Ad{v_{{G_0}}}({\cal{A}})} \right| = {\rm{negl}} \left( n \right)$
成立。即攻击者从已知密文中区分
${\mu _b}$
的优势可以忽略不计。
因此,定理3证明完毕。
定理4 若优化的HIBFHE方案为IND–sID–CPA安全,且所构造的屏蔽系统为IND–CPA安全,则提出的multi-identity FHE方案为IND–sID–CPA安全。
证明:提出的multi-identity FHE方案是IND–sID–CPA安全的,当且仅当多项式时间敌手无法以不可忽略的优势赢得以下的攻击者–挑战者交互游戏:
1)挑战者
${\cal{C}}$
选择身份信息
$I{D^*} \leftarrow I$
,生成
$(mpk,$
$msk) \leftarrow {\rm S\!etup}{\rm{(}}{{\rm{1}}^\lambda },{1^d},{1^L}{\rm{)}}$
,并将
$\;mpk$
返还给攻击者
${\cal{B}}$
。
2)对于
$\alpha = 1,2, \cdots ,poly$
;
$\cal{B}$
向
$\cal{C}$
询问
$I{D_\alpha }$
。如果
$I{D_\alpha }{\rm{ = }}I{D^*}$
或
$I{D_\alpha }$
在分层结构中为
$I{D^*}$
的任意一个祖先,则游戏结束,
$\cal{B}$
失败;如果
$I{D_\alpha } \ne I{D^*}$
且
$I{D_\alpha }$
在分层结构中不是
$I{D^*}$
的任意一个祖先,
$\cal{C}$
生成
${{{s}}_{I{D_\alpha }}} \leftarrow {\rm{Extract}}(msk, $
$I{D_\alpha })$
,并返回给
$\cal{B}$
。
3)
$\cal{B}$
将一对等长消息
${\mu _0}$
、
${\mu _1}$
发送给
$\cal{C}$
。
4)
$\cal{C}$
随机选择
$b \in \{ 0,1\} $
,生成
${{{C}}^*} \leftarrow {\rm{Enc}}(pp,I{D^*},$
${\mu _b})$
,并将密文返还给攻击者。
5)
$\cal{B}$
输出
$b' \in \{ 0,1\} $
,如果
$b' = b$
,则攻击成功。
对任意的多项式时间敌手
$\cal{B}$
,其攻击成功的优势为
$Ad{v_{\cal{B}}} = \left| {\Pr (b' = b) - {1 / 2}} \right|$
。
定理1证明了攻击者在询问
$ID$
对应的私钥条件下,区分
${\mu _b}$
的优势忽略不计,定理2证明了攻击者在获得扩展密文的情况下区分
${\mu _b}$
的优势忽略不计。因此,本游戏的中敌手攻击成功的优势忽略不计,即
$Ad{v_{\cal{B}}} = \left| {\Pr (b' = b) - {1 / 2}} \right| = {\rm{negl}} \left( n \right)$
。
因此,提出的multi-identity FHE方案为IND–sID–CPA安全。
3.3 性能分析
在应用场景上,将提出的multi-identity FHE方案与文献[14,16-17]方案进行比较。利用文献[17]的MKFHE转化机制,将IBFHE方案转化为multi-identity FHE方案,因此,提出的multi-identity FHE方案实现了IBE与MKFHE的结合,在功能上兼具二者的优势。具体分析见表1。
表1(Tab. 1)
表1 提出的multi-identity FHE方案与相关方案的应用场景比较 Tab. 1 Comparison of application scenarios for the proposed multi-identity FHE scheme and related schemes |
表1 提出的multi-identity FHE方案与相关方案的应用场景比较 Tab. 1 Comparison of application scenarios for the proposed multi-identity FHE scheme and related schemes
方案 |
多身份 |
多密钥 |
分层 |
文献[14]方案
|
NO |
NO |
YES |
文献[16]方案
|
YES |
YES |
NO |
文献[17]方案
|
NO |
YES |
NO |
提出的multi-identity FHE方案 |
YES |
YES |
YES |
|
 |
设参数
$n$
、
$m$
、
$q$
为标准LWE问题的参数,
$m = $
$ \omega (n{\ell _q})$
,
${\ell _q} = \left\lceil {\rm{l}} {\rm{b }}\;q\right\rceil $
。
$\kappa $
为参与方不同身份的最大个数。
在效率上,将提出的multi-identity FHE方案与文献[16]方案进行对比。设密文明文比为加密单比特明文消息对应的扩展密文大小,则文献[16]方案中密文明文比为
${\kappa ^2}{(m + 1)^2}{\ell _q}$
,提出的multi-identity FHE方案密文明文比为
${\kappa ^2}\left[ {(d + 1)n + 1} \right]m$
。由于
$m = \omega (n{\ell _q})$
,模数
$q$
为
$n$
的指数级,在分层深度
$d \le O(\ell _q^3)$
的情况下,提出的方案密文明文比更小。设扩展密文为
$\rho $
噪音密文,考虑同态乘法运算,则一次同态运算后,文献[16]方案的同态密文噪音为
$(\kappa (m + 1){\ell _q} + 1)\rho $
,噪音扩张为
$(\kappa (m + 1){\ell _q} + 1)$
,由第3.1节噪音分析可知,提出的方案的同态密文噪音为
$(1 + \kappa m)\rho $
,噪音扩张为
$(1 + \kappa m)$
。因此,提出的方案同态运算的噪音扩张率更小。与文献[16]方案相比,提出的方案使用的底层IBE方案具有分层性质,高层PKG可以为低层ID分配密钥,允许多个PKG参与密钥的生成分发,大大减轻了根PKG的负担。因此,提出的方案效率更高。具体分析见表2。
表2(Tab. 2)
表2 提出的multi-identity FHE方案与文献[16]方案的效率比较
Tab. 2 Comparison of the efficiency for the proposed multi-identity FHE scheme and the literature [16] scheme
|
表2 提出的multi-identity FHE方案与文献[16]方案的效率比较
Tab. 2 Comparison of the efficiency for the proposed multi-identity FHE scheme and the literature [16] scheme
方案 |
密文
明文比
|
一次同态运算
噪音扩张
|
PKG参与
个数
|
文献[16]方案
|
${\kappa ^2}{(m + 1)^2}\ell_q^2$
|
$\kappa (m + 1){\ell_q} + 1$
|
1 |
提出的multi-identity FHE方案 |
${\kappa ^2}(dn + 1)m$
|
$\kappa m + 1$
|
>1 |
|
 |
4 门限解密过程
上述提出的multi-identity FHE方案的门限解密过程由以下两个算法实现[17]:
1)
$\varepsilon .{\rm PartDec}(\hat {{C}},mpk,I,{\rm{ }}i,{\rm{ }}s{k_{I{D_i}}})$
:将扩展密文分解为
$\kappa $
个子块,
$\hat {{C}} = {\left[\!\!\!{\begin{array}{*{20}{c}} {{{\hat {{C}}}^{(1)}}}&{{{\hat {{C}}}^{(2)}}}& \cdots &{{{\hat {{C}}}^{(\kappa )}}} \end{array}}\!\!\!\right]^{\rm{T}}}$
,其中,
${\hat {{C}}^{(i)}} \in $
$\mathbb{Z}_q^{\left[ {(d + 1)n + 1} \right] \times \kappa m} $
。定义
${\hat{ \omega }} = {\left( {\left\lceil {{q / 2}} \right\rceil ,0, \cdots ,0} \right)^{\rm{T}}} \in \mathbb{Z}_q^{\kappa \left[ {(d + 1)n + 1} \right]}$
,第
$i$
个用户使用私钥对扩展密文进行运算,有
${\gamma _i} = $
${{{s}}_i}{\hat {{C}}^{\left( i \right)}}{\hat {{G}}^{ - 1}}({\hat{ \omega }}) \in {\mathbb{Z}_q}$
,输出
${p_i} = {\gamma _i} + e_i^{{\rm{sim}}} \in {\mathbb{Z}_q}$
,其中,
$e_i^{{\rm{sim}}}\xleftarrow{\$ } $
$[ - B_{{\rm{smdg}}}^{{\rm{dec}}},B_{{\rm{smdg}}}^{{\rm{dec}}}]$
,
$B_{{\rm{smdg}}}^{{\rm{dec}}} = {2^{L\lambda{\rm{l}} {\rm{b }}\; \lambda }}{B_\chi }$
为随机的模糊噪音。
2)
$\varepsilon .{\rm{FinalDec}} ({p_1},{p_2}, \cdots ,{p_\kappa })$
:每个用户分别运行
$\varepsilon .{\rm{PartDec}} $
算法,重复执行
$\kappa$
次,得到
$({p_1},{p_2}, \cdots ,{p_\kappa })$
,计算:
$\begin{array}{l} \displaystyle\sum\limits_{i \in \{ \kappa \} } {{p_i}} = \displaystyle\sum\limits_{i \in \{ \kappa \} } {{\gamma _i}} + \displaystyle\sum\limits_{i \in \{ \kappa \} } {e_i^{{\rm{sim}}}} = e_{}^{{\rm{sim}}} + \displaystyle\sum\limits_{i \in \{ \kappa \} } {{{{s}}_i}{{\hat {{C}}}^{\left( i \right)}}{{\hat { G}}^{ - 1}}\left( {\hat {{\omega }}} \right)} =\\ \quad\quad {e}_{}^{{\rm{sim}}}+\left( {\mu {\hat{ s}}{{\hat {{G}}}_\kappa } + {\hat { e}}} \right){\hat { G}}_{}^{ - 1}({\hat { \omega }}) = \mu \cdot \left\lceil {{\raise0.7ex\hbox{$q$} / \!\lower0.7ex\hbox{$2$}}} \right\rceil + {{\hat e'}} + e^{{\rm{sim}}}, \end{array}$ |
对应噪音为
${\left\| {\hat e' + e_{}^{{\rm{sim}}}} \right\|_\infty }$
。由第3.1节噪音分析可知,
${\left\| {\hat e'} \right\|_\infty } \le {2^{O(L {\rm{l}} {\rm{b }}\; \lambda )}}B\chi $
,
${\left\| {e_{}^{{\rm{sim}}}} \right\|_\infty } \le \kappa B_{{\rm{smdg}}}^{{\rm{dec}}} = {2^{O(L\lambda {\rm{l}} {\rm{b }}\; \lambda )}}B\chi $
。已知模数
$q \ge {2^{\omega \left( {L\lambda {\rm{l}} {\rm{b }}\; \lambda } \right)}}{B_\chi }$
,因此
${\left\| {\hat e' + e_{}^{{\rm{sim}}}} \right\|_\infty } \le \dfrac{q}{4}$
成立。输出
$\mu ' = \left| {\left\lceil {\dfrac{p}{{{q / 2}}}} \right\rceil } \right| = \left| {\left\lceil {\mu + \dfrac{{\hat e' + e_{}^{{\rm{sim}}}}}{{{q / 2}}}} \right\rceil } \right|$
,最终得出正确密文。
根据提出的multi-identity FHE方案,结合门限解密,利用文献[17]中的方法,可以构造一个CRS模型下的2轮MPC协议。
5 结 论
针对已有的IBFHE方案进行研究,将其扩展到多身份场景中,得到新的multi-identity FHE方案。结果表明,本方案加密单比特明文消息时,对应密文规模更小,同态运算的噪音扩张率更小,且允许多个PKG参与密钥的生成分发。因此,本方案效率更高。最后,给出了本方案的门限解密过程。此外,属性基密码体制既克服了传统密码体制访问控制单一的缺点,又能同时实现对机密性和不可伪造性的保护[22],与MKFHE的结合具有重要的研究价值,如何构造安全高效的多属性全同态加密方案是下步研究的重点。