1.一种基于合数阶群的用户身份加密方法,其特征在于,包括如下步骤:S1)初始化:密钥生成中心生成合数阶群,并根据安全参数生成公共参数以及主密钥;
S2)密钥生成阶段:密钥生成中心根据公共参数,主密钥以及用户身份生成与用户身份相关的私钥;
S3)加密阶段:数据发送者根据公共参数,接收者的身份对明文进行加密,输出对应密文;
S4)解密阶段:数据接受者根据公共参数,自己的私钥对接收到的密文进行解密,并验证密文是否被篡改;
S5)陷门生成阶段:用户根据自己的私钥以及密文计算得到陷门,并将陷门发送给云服务器;
S6)测试阶段:云服务器根据各个用户提供的同一身份对应的密文和陷门,进行两两密文之间的匹配,如果匹配成功,则输出“1”,否则输出“0”;
所述步骤S1包括如下子步骤:
+ +
输入一个安全参数k∈Z,其中Z表示正整数集合,公共参数PK生成如下公式(1)所示:公共参数PK用于之后的关键词加解密及加密搜索匹配,具体生成过程及其含义如下:①合数N=p1p2p3,其中p1,p2,p3是三个不相同的素数;
②G是一个阶为N的双线性群,GT是一个具有相同阶数的循环群, 表示群G的阶为pi的子群,其中i=1,2,3;
③e:G×G→GT是一个双线性映射;
④ 是哈希函数,且要求具有抗碰撞性;
⑤随机选取两个数α1,α2∈ZN,将α1,α2, 的生成元作为主密钥,其中ZN表示模N的整数的集合, 表示群G的阶为p3的子群;
⑥随机选取三个元素u,g, 其中 表示群G的阶为p1的子群;
所述步骤S6还包括关键词明文未知情况下的关键词密文匹配过程:首先输入所搜索的关键词MA的密文CA,陷门 以及被检索匹配的关键词MB的密文CB,陷门 其中两个密文的具体构造如公式(8)、(9)所示,Encrypt表示加密算法,IDJ表示加密关键词的身份,J=A,B:CA=(C0,A,C1,A,C2,A,C3,A)=Encrypt(IDA,MA) (8)CB=(C0,B,C1,B,C2,B,C3,B)=Encrypt(IDB,MB) (9)所搜索的关键词的陷门如公式(10)所示:
被检索匹配的关键词密文的陷门如公式(11)所示:然后按照公式(12)、(13)、(14)、(15)计算参数EA、XA、EB、XB:再验证如下公式(16)是否成立:
e(C2,A,XB)=e(C2,B,XA) (16)如果成立,则判定所搜索的关键词密文及被云服务器检索匹配的关键词密文所对应的明文相同,匹配成功,即MA=MB。
2.如权利要求1所述的基于合数阶群的用户身份加密方法,其特征在于,所述步骤S2包括如下子步骤:输入一个身份ID,选取随机数r∈ZN和随机元素R3, 计算该ID所对应的私钥skID=(K1,K2,K3),如公式(2)所示:
3.如权利要求1所述的基于合数阶群的用户身份加密方法,其特征在于,所述步骤S3包括如下子步骤:输入一个身份ID和关键词明文M,选取随机数s∈ZN,并计算关键词密文C=(C0,C1,C2,C3),密文的具体计算如公式(3)所示:
4.如权利要求1所述的基于合数阶群的用户身份加密方法,其特征在于,所述步骤S4包括如下子步骤:输入关键词密文C=(C0,C1,C2,C3)和身份ID所对应的私钥skID=(K1,K2,K3),解密时首先按照公式(4)所示,将私钥和密文对应的值代入公式中,然后利用群G的子群的正交性以及双线性映射的双线性,计算出致盲因子 之后再利用密文中的C0部分,按照公式(5)所示计算出明文M1;
然后按照公式(6)所示验证关键词明文的有效性
s
e(H(M) ,g)=e(H(M1),C2) (6)如果这个等式验证通过,则判定计算出的关键词明文M1有效,被加密的明文M未被篡改,输出关键词明文M1。
5.如权利要求1所述的基于合数阶群的用户身份加密方法,其特征在于,所述步骤S5中的陷门用来匹配关键词的,并用于关键词明文未知情况下的搜索和分类,陷门tdID=(tdID,1,tdID,2)具体计算如公式(7)所示:
6.如权利要求1所述的基于合数阶群的用户身份加密方法,其特征在于,所述步骤S5中如果密文C是空字符串,则所有密文对应相同的陷门。