令n,m,q =poly(n)为参数.给定一个最大的分级深度d,令高斯参数和噪声向量的参数分别表示为σ =(σ1,··· ,σd),α=(α1,··· ,αd).
对所有l <d,设一个身份向量id|l = (id1,id2,··· ,idl)是一个经过充分随机编码后的输出,则方案如下执行:
系统建立.PKG 生成族公钥和族私钥如下:
1.生成及其陷门基(陷门抽样算法).
2.抽取d矩阵R1,R2,··· ,Rd 服从Dm×m.
则:
Derive(MPK,SKid|l,id).给定MPK,一个父身份id|l =(id1,id2,··· ,idl)及其私钥key SKid|l 以及一个“子”身份id|k =(id1,id2,··· ,idl,··· ,idk),k-l ≤d,执行如下运算:
1.选择Ri.具体的,对l ≤i ≤k,若idi = 1,选择矩阵Ri-l.若不然,假如idi = 0,不选择任何矩阵.假定idji =1,对i=1,2,··· ,l*,ji >l成立.设“父”身份的公钥为Fid|l,“子”身份的公钥为Fid|k :
2.运行(www.daowen.com)
3.输出私钥SKid|k 以及公钥Fid|k.,Extract.对第一层的身份id|1,Extract算法如Derive(PP,SKid|l,i算法一样工作,只要令
Encrypt(MPK,id|l,M).输入MPK,id|l = (id1,id2,··· ,idl) ∈{0,1}l 及深度l,以及消息矩阵如下执行:
1.利用公钥赋值原则选择公开矩阵Ri.令idj1 = ··· = idj*l = 1,其中l* 为id|l的汉明重量.
2.计算
3.选择以及一个噪声矩阵
4.输出密文C,
Decrypt(SKid|l,C,PP)计算
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。