工程科学与技术   2019, Vol. 51 Issue (4): 133-139
支持门限解密的多身份全同态加密方案
杨晓元1,2, 涂广升1,2, 孔咏骏1,2, 周潭平1,2     
1. 武警工程大学 密码工程学院,陕西 西安 710086;
2. 网络和信息安全武警部队重点实验室,陕西 西安 710086
基金项目: 国家重点研发计划项目(2017YFB0802000);国家自然科学基金项目(U1636114;61772550;61572521);国家密码发展基金项目(MMJJ20170112)
摘要: 针对传统的身份基全同态加密方案只能对同一身份下的密文进行同态运算和访问控制的问题,提出了一个基于LWE问题的多身份全同态加密方案。首先,使用工具矩阵得到新的加解密形式,约减噪音,并改变身份基加密中底层格基的维度,对身份基全同态加密方案进行优化。其次,利用多密钥全同态转化机制,构造身份基全同态加密方案的屏蔽系统,生成辅助密文。最后,将多密钥全同态加密中的多用户场景延伸到多身份场景,构造多身份全同态加密方案,实现对不同身份下密文的同态运算和访问控制。结果表明,本方案实现了身份基加密与多密钥全同态加密的结合,并证明为选择身份下的IND–CPA安全。与其他方案相比,本方案加密单比特明文消息时密文规模更小,对密文进行同态运算时噪音扩张率更低,并且允许多个PKG参与密钥的生成、分发。同时,给出本方案的门限解密过程,据此可以构造一个2轮多方计算协议。
关键词: 身份基加密    全同态加密    多身份    门限解密    
Multi-identity Fully Homomorphic Encryption Scheme Supporting Threshold Decryption
YANG Xiaoyuan1,2, TU Guangsheng1,2, KONG Yongjun1,2, ZHOU Tanping1,2     
1. School of Cryptographic Eng., Eng. Univ. of PAP, Xi’an 710086, China;
2. Key Lab. of Network and Information Security of PAP, Xi’an 710086, China
Abstract: In order to solve the problem that traditional identity-based fully homomorphic encryption schemes can only perform homomorphic operations and access control on ciphertexts under the same identity, a multi-identity fully homomorphic encryption scheme was proposed based on LWE problem. Firstly, the identity-based fully homomorphic encryption scheme was optimized by using a gadget matrix and a new form of encryption and decryption was obtained, which reduced noise, and changed the dimension of the underlying lattice basis in the identity-based encryption. Secondly, by using the multi-key fully homomorphic transformation mechanism, the masking system was constructed to generate auxiliary ciphertext. Finally, the multi-identity fully homomorphic encryption scheme was constructed to handle ciphertexts under different identities in which the multi-key scenario was extended to the multi-identity scenario. The results showed that the proposed scheme combined identity-based encryption with multi-key fully homomorphic encryption, and was proved to be IND–CPA security under the selected identity. Compared with other schemes, the ciphertext size and noise expansion were reduced when encrypting a single-bit message and evaluating ciphertexts, and more PKGs were allowed to participate in the generation and distribution of private key. Meanwhile, a 2-round multi-party computation protocol could be constructed by the given threshold decryption scheme.
Key words: identity-based encryption    fully homomorphic encryption    multi-identity    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方案与文献[1416-17]方案进行比较。利用文献[17]的MKFHE转化机制,将IBFHE方案转化为multi-identity FHE方案,因此,提出的multi-identity FHE方案实现了IBE与MKFHE的结合,在功能上兼具二者的优势。具体分析见表1

表1 提出的multi-identity FHE方案与相关方案的应用场景比较 Tab. 1 Comparison of application scenarios for the proposed multi-identity FHE scheme and related schemes

设参数 $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 提出的multi-identity FHE方案与文献[16]方案的效率比较 Tab. 2 Comparison of the efficiency for the proposed multi-identity FHE scheme and the literature [16] scheme

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的结合具有重要的研究价值,如何构造安全高效的多属性全同态加密方案是下步研究的重点。

参考文献
[1]
Shamir A.Identity-based cryptosystems and signature schemes[M]//Advances in Cryptology.Berlin:Springer,1984:47–53.
[2]
Boneh D,Franklin M.Identity-based encryption from the Weil pairing[M]//Advances in Cryptology— CRYPTO 2001.Berlin:Springer,2001:213–229.
[3]
Cocks C.An identity based encryption scheme based on quadratic residues[M]//Cryptography and Coding.Berlin:Springer,2001:360–363.
[4]
Gentry C,Peikert C,Vaikuntanathan V.Trapdoors for hard lattices and new cryptographic constructions[C]//Proceedings of the 40th Annual ACM Symposium on Theory of Computing.New York:ACM, 2008: 197–206.
[5]
曾梦岐,卿昱,谭平璋,等. 基于身份的加密体制研究综述[J]. 计算机应用研究, 2010, 27(1): 27-31. DOI:10.3969/j.issn.1001-3695.2010.01.007
[6]
Horwitz J,Lynn B.Towards hierarchical identity-based encryption[M]//Advances in Cryptology—EUROCRYPT 2002.Berlin:Springer,2002:466–481.
[7]
Boyen X,Waters B.Anonymous hierarchical identity-based encryption (without random oracles)[M]//Advances in Cryptology—CRYPTO 2006.Berlin:Springer,2006:290–307.
[8]
Boneh D,Boyen X.Efficient selectice-ID secure identity based encryption without random oracles[M]//Advances in Cryptology—EUROCRYPT 2004.Berlin:Springer,2004:223–238.
[9]
Cash D,Hofheinz D,Kiltz E,et al.Bonsai trees,or how to delegate a lattice basis[M]//Advances in Cryptology—EUROCRYPT 2010.Berlin:Springer,2010:523–552.
[10]
张席,杨玲. 一个高效的基于身份的分层加密方案[J]. 计算机工程与应用, 2012, 48(24): 101-105. DOI:10.3778/j.issn.1002-8331.2012.24.023
[11]
Rivest R,Adleman L,Dertouzos M. On data banks and privacy homomorphisms[J]. Foundations of Secure Computation, 1978, 4: 169-179.
[12]
Gentry C.Fully homomorphic encryption using ideal lattices[C]//Proceedings of the 41st Annual ACM Symposium on Symposium on Theory of Computing.New York:ACM,2009:169–178.
[13]
Brakerski Z,Vaikuntanathan V.Efficient fully homomorphic encryption from (standard) LWE[C]//Proceedings of the 2011 IEEE 52nd Annual Symposium on Foundations of Computer Science.Palm Springs:IEEE,2011:97–106.
[14]
Gentry C,Sahai A,Waters B.Homomorphic encryption from learning with errors:Conceptually-simpler,asymptotically-faster,attribute-based[M]//Advances in Cryptology—CRYPTO 2013.Berlin:Springer,2013:75–92.
[15]
L’opez-Alt A,Tromer E,Vaikuntanathan V.On-the-fly multiparty computation on the cloud via multikey fully homomorphic encryption[C]//Proceedings of the 44th Annual ACM Symposium on Theory of Computing.New York:ACM,2012:1219–1234.
[16]
Clear M,McGoldrick C.Multi-identity and multi-key leveled FHE from learning with errors[M]//Advances in Cryptology—CRYPTO 2015.Berlin:Springer,2015:630–656.
[17]
Mukherjee P,Wichs D.Two round multiparty computation via multi-key FHE[M]//Advances in Cryptology—EUROCRYPT 2016.Berlin:Springer,2016:735–763.
[18]
Chen Long,Zhang Zhenfeng,Wang Xueqing.Batched multi-hop multi-key FHE from ring-LWE with compact ciphertext extension[M]//Theory of Cryptography.Cham:Springer,2017:597–627.
[19]
Canetti R,Raghuraman S,Richelson S,et al.Chosen-ciphertext secure fully homomorphic encryption[M]//Public-Key Cryptography—PKC 2017.Berlin:Springer,2017:213–240.
[20]
李增鹏,马春光,周红生. 全同态加密研究[J]. 密码学报, 2017, 4(6): 561-578. DOI:10.13868/j.cnki.jcr.000208
[21]
Micciancio P,Peikert C.Trapdoors for lattices:Simpler,tighter,faster,smaller[M]//Advances in Cryptology—EUROCRYPT 2012.Berlin:Springer,2012:700–718.
[22]
韩益亮,卢万谊,杨晓元. 支持电路结构的多线性映射属性签密方案[J]. 四川大学学报(工程科学版), 2013, 45(6): 27-32. DOI:10.1007/978-3-642-40084-1_27