CN109902501B - 一种基于云服务平台进行相等性测试的结构化加密方法及系统 - Google Patents

一种基于云服务平台进行相等性测试的结构化加密方法及系统 Download PDF

Info

Publication number
CN109902501B
CN109902501B CN201910208122.2A CN201910208122A CN109902501B CN 109902501 B CN109902501 B CN 109902501B CN 201910208122 A CN201910208122 A CN 201910208122A CN 109902501 B CN109902501 B CN 109902501B
Authority
CN
China
Prior art keywords
field
user
ciphertext
structured
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910208122.2A
Other languages
English (en)
Other versions
CN109902501A (zh
Inventor
曲海鹏
颜祯
林喜军
徐建良
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ocean University of China
Original Assignee
Ocean University of China
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ocean University of China filed Critical Ocean University of China
Priority to CN201910208122.2A priority Critical patent/CN109902501B/zh
Publication of CN109902501A publication Critical patent/CN109902501A/zh
Application granted granted Critical
Publication of CN109902501B publication Critical patent/CN109902501B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明公开一种基于云服务平台进行相等性测试的结构化加密方法及系统,方法为:系统初始化,生成系统参数,将系统参数公开;用户根据系统参数生成自身密钥,包括公钥和私钥;消息发送者利用系统参数和目标用户的公钥对结构化消息进行结构化加密,生成结构化消息的密文,将密文上传至云服务器;当需要对密文中某个字段的值同其它用户密文中相应字段的值做相等性测试时,用户利用自身的私钥对密文中待测试的字段进行结构化授权,生成对密文中该字段的授权陷门,将授权陷门上传至云服务器;云服务器收到来自不同用户的密文和授权陷门后,在不恢复明文信息的前提下,根据不同用户的授权陷门,提取用户密文中待测试的字段所对应的消息进行相等性测试。

Description

一种基于云服务平台进行相等性测试的结构化加密方法及 系统
技术领域
本发明涉及数据加密技术领域,更具体地,涉及一种基于云服务平台进行相等性测试的结构化加密方法及系统。
背景技术
目前,云计算通过将计算任务分配在由大量计算机构成的资源池上,来为用户提供所需的计算服务,从而成为了一种新兴的商业计算模式。在云计算的催化下,越来越多的云服务平台开始为企业、服务商等提供广泛的全球计算、数据存储、分析、部署和应用服务,来帮助用户节约IT成本、提高运作效率。但随着大数据挖掘等数据分析技术的发展,用户向云服务平台上传的数据中所含的个人医疗信息、企业商业机密、个人行为习惯等用户隐私也存在了潜在的泄露风险。因此,用户应在上传数据到云端之前先采用密码体制对数据进行加密。然而,由于密文失去了数据的结构性,如何在不恢复明文的前提下对加密数据进行处理,以便云服务平台在保护用户数据隐私的前提下为用户提供高效的服务成为了一个亟待解决的问题。可搜索加密技术的提出,让用户可以在不知明文的前提下对密文进行关键字检索,快速定位云服务器中包含相应关键字的文档,但是该方案只适用于对同一公钥加密的密文进行检索,这极大的局限了方案的实际应用。针对这一问题,Yang等人提出了一个新的密码原语---支持相等性测试的公钥加密技术,该方案可以使云服务器在不解密密文的情况下,判断两个用不同公钥加密的密文是否包含相同的明文。对于同一公钥加密的密文而言,支持相等性测试的公钥加密技术可以实现可搜索加密技术的全部功能,可视为对可搜索加密技术的一种扩展。但在该方案中任意用户都可对密文进行相等性测试,缺乏相应的授权机制,这在一定意义上泄露了用户隐私,因此,一系列带有授权机制的支持相等性测试的公钥加密方案相继被提出。然而,在云服务平台的实际应用场景下,用户数据的来源不同、结构多样,对于由多个字段和相应的字段值构成的结构化消息而言,不同结构的消息中所含的字段不同或字段排列顺序不同。目前现有的支持相等性测试的公钥加密方案皆未考虑结构化消息,仅将消息作为整体进行相等性测试。但在大数据时代,医疗、金融等行业的数据皆具有结构,仅将其数据即结构化消息作为整体进行比对是不切实际的。然而,在现有的支持相等性测试的公钥加密方法中,针对结构化消息,不能在保护消息机密性的同时对结构化消息进行相等性测试,即无法在不解密密文的前提下,对不同公钥加密的密文中特定字段的字段值进行相等性测试,不适用于云服务平台的实际应用场景。
为此,需要一种技术,以实现基于云服务平台进行相等性测试的结构化加密技术。
发明内容
本发明技术方案提供一种基于云服务平台进行相等性测试的结构化加密方法及系统,借助密码学方法,对用户的结构化消息进行加密,在保护消息机密性的同时对结构化消息进行相等性测试,以解决在不解密密文的前提下对用不同用户公钥加密的密文中特定字段的字段值进行相等性测试的问题。
本发明提供了一种基于云服务平台进行相等性测试的结构化加密方法,所述方法包括:
系统初始化,生成系统参数,并将所述系统参数公开;
用户根据所述系统参数生成自身密钥,所述密钥包括公钥和私钥;
消息发送者利用所述系统参数和目标用户的公钥对结构化消息进行结构化加密,生成结构化消息的密文,将所述密文上传至云服务器;
当需要对所述密文中某个字段的值同其它用户密文中相应字段的值做相等性测试时,用户利用自身的私钥对所述密文中待测试的字段进行结构化授权,生成对密文中该字段的授权陷门,将所述授权陷门上传至云服务器;
云服务器收到来自不同用户的密文和授权陷门后,在不恢复明文信息的前提下,根据不同用户的所述授权陷门,提取用户密文中待测试的字段所对应的消息进行相等性测试。
优选地,当需要解密所述密文中某个字段的值时,用户利用自身的私钥对所述密文中待解密的字段进行解密,获取所述字段的明文信息且不泄露其它字段的信息。
优选地,还包括:
运行初始化算法Setup(λ),输入安全参数λ,生成公开的系统参数PP;
用户运行密钥生成算法KeyGen(PP),输入系统参数PP,生成自身的公私钥对(PK,SK),PK为用户的公钥,SK为用户的私钥。
优选地,消息发送者运行结构化加密算法Encrypt(PP,PK,M)对结构化消息进行结构化加密,输入所述系统参数PP、目标用户的公钥PK和结构化消息M=V1||V2||...||Vl,其中Vi(i=1,...,l)表示字段Fieldi对应的字段值,l为结构化消息M所含字段的个数;生成结构化消息的密文C后,将密文C上传至云服务器。
优选地,当需要解密所述密文中某个字段的值时,用户运行结构化解密算法Decrypt(PP,C,SK,Fieldi),输入所述系统参数PP、密文C、自身的私钥SK和待解密字段名Fieldi,解密得到所述密文中字段Fieldi的字段值Vi且不泄露其他字段的信息。
优选地,还包括:
当需要对所述密文中某个字段的值同其它用户密文中相应字段的值做相等性测试时,用户通过运行授权算法Auth(PP,C,SK,Fieldi),输入所述系统参数PP、密文C、自身的私钥SK和待测试字段名Fieldi,生成对密文C中字段Fieldi的授权陷门tdi,并将所述授权陷门tdi发送给云服务器;
云服务器收到来自不同用户的所述密文和所述授权陷门后,运行相等性测试算法Test(PP,CA,tdA,i,CB,tdB,j),输入所述系统参数PP、用户A的密文CA和字段Fieldi的授权陷门tdA,i以及用户B的密文CB和字段Fieldj的授权陷门tdB,j;若两者所述密文中用户A的字段Fieldi和用户B的字段Fieldj所对应的字段值相同,测试算法返回1;否则返回0。
优选地,还包括:
所述初始化算法Setup(λ)具体过程如下:
Setup(λ)→PP:随机选择阶为素数q的循环群
Figure BDA0001999641610000041
在循环群
Figure BDA0001999641610000042
中选择生成元g,选取抗碰撞哈希函数
Figure BDA0001999641610000043
Figure BDA0001999641610000044
其中d为
Figure BDA0001999641610000045
中元素的比特长度;随机选取η1,η2,η3,η4,η5,η6∈{0,1}d;设置公开的系统参数为
Figure BDA0001999641610000046
优选地,还包括:
所述密钥生成算法KeyGen(PP)具体过程如下:
KeyGen(PP)→(PK,SK):在q阶素域
Figure BDA0001999641610000047
中选取随机数x、y,设置用户公钥为PK=(X,Y)=(gx,gy),设置用户私钥为SK=(x,y),其中g为公开的系统参数PP中q阶循环群
Figure BDA0001999641610000048
的生成元。
优选地,还包括:
所述结构化加密算法Encrypt(PP,PK,M)具体过程如下:
Encrypt(PP,PK,M)→C,其中,公开的系统参数
Figure BDA0001999641610000049
Figure BDA00019996416100000410
g为阶为素数q的循环群
Figure BDA00019996416100000411
的生成元,
Figure BDA00019996416100000412
Figure BDA00019996416100000413
为抗碰撞哈希函数,其中d为
Figure BDA00019996416100000414
中元素的比特长度,η1,η2,η3,η4,η5,η6∈{0,1}d;用户公钥PK=(X,Y)=(gx,gy);结构化消息M=V1||V2||...||Vl,Vi(i=1,...,l)表示字段Fieldi对应的字段值,
Figure BDA00019996416100000415
l为结构化消息M所含字段的个数:
选取随机数
Figure BDA00019996416100000416
计算C0=gr
计算点:D0=(H1(Xr),H2(C0,Xr));
对结构化消息M中的每个字段Fieldi及相应的字段值Vi(i=1,...,l),分别计算点:Di=(H3(Xr,Fieldi),Vi);
利用Shamir秘密共享,过l+1个点:D0,D1,...,Dl构造一个l次插值多项式FE(x);
随机选取xi∈{0,1}d,i=1,...,l,计算FE(x)上的l个点
Figure BDA0001999641610000051
对结构化消息M中的每个字段值Vi(i=1,...,l),构造一个二次插值多项式fi(u),并随机选取ui,1,ui,2∈{0,1}d,计算fi(u)上的两个点(ui,1,vi,1)和(ui,2,vi,2);
最终,计算密文C为:
Figure BDA0001999641610000052
优选地,还包括:
所述对结构化消息M中的每个字段值Vi(i=1,...,l)构造一个二次插值多项式fi(u)的方法为:
利用系统参数PP,计算三个点:
Figure BDA0001999641610000053
Figure BDA0001999641610000054
Figure BDA0001999641610000055
利用Shamir秘密共享,过点Qi,1,Qi,2,Qi,3构造一个二次插值多项式fi(u)。
优选地,还包括:
所述结构化解密算法Decrypt(PP,C,SK,Fieldi)具体过程如下:
Decrypt(PP,C,SK,Fieldi)→Vi,其中公开的系统参数
Figure BDA0001999641610000056
Figure BDA0001999641610000057
g为阶为素数q的循环群
Figure BDA0001999641610000058
的生成元,
Figure BDA0001999641610000059
Figure BDA00019996416100000510
为抗碰撞哈希函数,η1,η2,η3,η4,η5,η6∈{0,1}d,其中d为
Figure BDA00019996416100000511
中元素的比特长度;密文C=(C0,C1,C2);用户私钥SK=(x,y):
计算点:
Figure BDA00019996416100000512
使用Shamir秘密共享,经过l+1个点:
Figure BDA00019996416100000513
构造l次插值多项式F′E(x);
计算
Figure BDA0001999641610000061
恢复Vi
对于字段值Vi,计算三个点:
Figure BDA0001999641610000062
Figure BDA0001999641610000063
Figure BDA0001999641610000064
利用Shamir秘密共享,过点Q′i.1,Q′i.2,Q′i.3构造一个二次插值多项式f′i(u);
用户计算
Figure BDA0001999641610000065
恢复ui,1||ui,2||vi,1||vi,2
若f′i(ui,1)=vi,1,f′i(ui,2)=vi,2皆成立,则用户解密成功,输出字段Fieldi的字段值Vi;否则用户解密失败,输出⊥。
优选地,还包括:
所述授权算法Auth(PP,C,SK,Fieldi)具体过程如下:
Auth(PP,C,SK,Fieldi)→tdi:用户根据私钥SK=(x,y)生成密文C=(C0,C1,C2)中字段Fieldi的授权陷门
Figure BDA0001999641610000066
其中,H4为公开的系统参数PP中的抗碰撞哈希函数
Figure BDA0001999641610000067
Figure BDA0001999641610000068
为阶为素数q的循环群,d为
Figure BDA0001999641610000069
中元素的比特长度。
优选地,还包括:
所述相等性测试算法Test(PP,CA,tdA,i,CB,tdB,j)具体过程如下:
Test(PP,CA,tdA,i,CB,tdB,j)→{0,1}:
计算
Figure BDA00019996416100000610
Figure BDA00019996416100000611
使用Shamir秘密共享,经过三点(uA,i,1,vA,i,1),(uA,i,2,vA,i,2),(uB,j,1,vB,j,1)重构用户A的二次插值多项式fA,i(u)的秘密值
Figure BDA00019996416100000612
经过三点(uB,j,1,vB,j,1),(uB,j,2,vB,j,2),(uA,i,1,vA,i,1)重构用户B的二次插值多项式fB,j(u)的秘密值
Figure BDA00019996416100000613
即计算:
Figure BDA00019996416100000615
Figure BDA00019996416100000614
其中,q为公开的系统参数PP中的素数q;
检查
Figure BDA0001999641610000071
是否成立,若成立,则两者密文中用户A的字段Fieldi和用户B的字段Fieldj所对应的字段值相同,返回1;否则,两者密文中用户A的字段Fieldi和用户B的字段Fieldj所对应的字段值不同,返回0。
基于本发明的另一方面,提供一种基于云服务平台进行相等性测试的结构化加密系统,所述系统包括:
初始单元,用于进行系统初始化,生成系统参数,并将所述系统参数公开;
生成单元,用于所述用户根据公开的所述系统参数生成自身密钥,所述密钥包括公钥和私钥;
加密单元,用于所述消息发送者利用所述系统参数和目标用户的公钥对结构化消息进行结构化加密,生成结构化消息的密文,将所述密文上传至云服务器;
授权单元,用于所述用户利用自身的私钥对所述密文中待测试的字段进行结构化授权,生成对密文中该字段的授权陷门,将所述授权陷门上传至云服务器;
测试单元,用于所述云服务器收到来自不同用户的密文和授权陷门后,在不恢复明文信息的前提下,根据不同用户的所述授权陷门,提取用户密文中待测试字段所对应的消息进行相等性测试。
优选地,还包括解密单元,用于所述用户利用自身的私钥对所述密文中待解密的字段进行解密,获取所述字段的明文信息且不泄露其它字段的信息;
优选地,还包括:
所述初始单元还用于:运行初始化算法Setup(λ),输入安全参数λ,生成公开的系统参数PP;
所述生成单元还用于:用户运行密钥生成算法KeyGen(PP),输入系统参数PP,生成自身的公私钥对(PK,SK),PK为用户的公钥,SK为用户的私钥。
优选地,所述加密单元还用于:
消息发送者运行结构化加密算法Encrypt(PP,PK,M)对结构化消息进行结构化加密,输入所述系统参数PP、目标用户的公钥PK和结构化消息M=V1||V2||...||Vl,其中Vi(i=1,...,l)表示字段Fieldi对应的字段值,l为结构化消息M所含字段的个数;生成结构化消息的密文C后,将密文C上传至云服务器。
优选地,所述解密单元还用于:
当需要解密所述密文中某个字段的值时,用户运行结构化解密算法Decrypt(PP,C,SK,Fieldi),输入所述系统参数PP、密文C、自身的私钥SK和待解密字段名Fieldi,解密得到所述密文中字段Fieldi的字段值Vi且不泄露其他字段的信息。
优选地,还包括:
所述授权单元还用于:当需要对所述密文中某个字段的值同其它用户密文中相应字段的值做相等性测试时,用户通过运行授权算法Auth(PP,C,SK,Fieldi),输入所述系统参数PP、密文C、自身的私钥SK和待测试字段名Fieldi,生成对密文C中字段Fieldi的授权陷门tdi,并将所述授权陷门tdi发送给云服务器;
所述测试单元还用于:云服务器收到来自不同用户的所述密文和所述授权陷门后,运行相等性测试算法Test(PP,CA,tdA,i,CB,tdB,j),输入所述系统参数PP、用户A的密文CA和字段Fieldi的授权陷门tdA,i以及用户B的密文CB和字段Fieldj的授权陷门tdB,j;若两者所述密文中用户A的字段Fieldi和用户B的字段Fieldj所对应的字段值相同,测试算法返回1;否则返回0。
本发明技术方案提供了一种基于云服务平台进行相等性测试的结构化加密方法和系统,本发明技术方案借助密码学方法,对用户的结构化消息进行加密,在保护消息机密性的同时对结构化消息进行相等性测试,即实现在不解密密文的情况下对用不同用户公钥加密的密文中特定字段的字段值进行相等性测试。
附图说明
通过参考下面的附图,可以更为完整地理解本发明的示例性实施方式:
图1为根据本发明优选实施方式的基于云服务平台进行相等性测试的结构化加密方法流程图;
图2为根据本发明优选实施方式的基于云服务平台进行相等性测试的结构性加密方法系统模型图;
图3为根据本发明优选实施方式的基于云服务平台进行相等性测试的结构化加密系统结构图。
具体实施方式
现在参考附图介绍本发明的示例性实施方式,然而,本发明可以用许多不同的形式来实施,并且不局限于此处描述的实施例,提供这些实施例是为了详尽地且完全地公开本发明,并且向所属技术领域的技术人员充分传达本发明的范围。对于表示在附图中的示例性实施方式中的术语并不是对本发明的限定。在附图中,相同的单元/元件使用相同的附图标记。
除非另有说明,此处使用的术语(包括科技术语)对所属技术领域的技术人员具有通常的理解含义。另外,可以理解的是,以通常使用的词典限定的术语,应当被理解为与其相关领域的语境具有一致的含义,而不应该被理解为理想化的或过于正式的意义。
图1为根据本发明优选实施方式的基于云服务平台进行相等性测试的结构化加密方法流程图。本申请实施方式提供一种基于云服务平台进行相等性测试的结构化加密方法,方法包括:系统初始化,生成系统参数,并将系统参数公开;用户根据系统参数生成自身密钥,密钥包括公钥和私钥;消息发送者利用系统参数和目标用户的公钥对结构化消息进行结构化加密,生成结构化消息的密文,将密文上传至云服务器;当需要解密密文中某个字段的值时,用户利用自身的私钥对密文中待解密的字段进行解密,获取字段的明文信息且不泄露其它字段的信息;当需要对密文中某个字段的值同其它用户密文中相应字段的值做相等性测试时,用户利用自身的私钥对密文中待测试的字段进行结构化授权,生成对密文中该字段的授权陷门,将授权陷门上传至云服务器;云服务器收到来自不同用户的密文和授权陷门后,在不恢复明文信息的前提下,根据不同用户的授权陷门,提取用户密文中待测试的字段所对应的消息进行相等性测试。如图1所示,一种基于云服务平台进行相等性测试的结构化加密方法,方法包括:
优选地,在步骤101:系统初始化,生成系统参数,并将系统参数公开。
优选地,方法还包括:运行初始化算法Setup(λ),输入安全参数λ,生成公开的系统参数PP;
优选地,方法还包括:
初始化算法Setup(λ)具体过程如下:
Setup(λ)→PP:随机选择阶为素数q的循环群
Figure BDA0001999641610000101
在循环群
Figure BDA0001999641610000102
中选择生成元g,选取抗碰撞哈希函数
Figure BDA0001999641610000103
Figure BDA0001999641610000104
其中d为
Figure BDA0001999641610000105
中元素的比特长度;随机选取η1,η2,η3,η4,η5,η6∈{0,1}d;设置公开的系统参数为
Figure BDA0001999641610000106
优选地,在步骤102:用户根据系统参数生成自身密钥,密钥包括公钥和私钥。
优选地,方法还包括:用户运行密钥生成算法KeyGen(PP),输入系统参数PP,生成自身的公私钥对(PK,SK),PK为用户的公钥,SK为用户的私钥。
优选地,方法还包括:
密钥生成算法KeyGen(PP)具体过程如下:
KeyGen(PP)→(PK,SK):在q阶素域
Figure BDA0001999641610000107
中选取随机数x、y,设置用户公钥为PK=(X,Y)=(gx,gy),设置用户私钥为SK=(x,y),其中g为公开的系统参数PP中q阶循环群
Figure BDA0001999641610000111
的生成元。
优选地,在步骤103:消息发送者利用系统参数和目标用户的公钥对结构化消息进行结构化加密,生成结构化消息的密文,将密文上传至云服务器。
优选地,方法还包括:消息发送者运行结构化加密算法Encrypt(PP,PK,M)对结构化消息进行结构化加密,输入系统参数PP、目标用户的公钥PK和结构化消息M=V1||V2||...||Vl,其中Vi(i=1,...,l)表示字段Fieldi对应的字段值,l为结构化消息M所含字段的个数;生成结构化消息的密文C后,将密文C上传至云服务器。
优选地,方法还包括:
结构化加密算法Encrypt(PP,PK,M)具体过程如下:
Encrypt(PP,PK,M)→C,其中,公开的系统参数
Figure BDA0001999641610000112
Figure BDA0001999641610000113
g为阶为素数q的循环群
Figure BDA0001999641610000114
的生成元,
Figure BDA0001999641610000115
Figure BDA0001999641610000116
为抗碰撞哈希函数,其中d为
Figure BDA0001999641610000117
中元素的比特长度,η1,η2,η3,η4,η5,η6∈{0,1}d;用户公钥PK=(X,Y)=(gx,gy);结构化消息M=V1||V2||...||Vl,Vi(i=1,...,l)表示字段Fieldi对应的字段值,
Figure BDA0001999641610000118
l为结构化消息M所含字段的个数:
选取随机数
Figure BDA0001999641610000119
计算C0=gr
计算点:D0=(H1(Xr),H2(C0,Xr));
对结构化消息M中的每个字段Fieldi及相应的字段值Vi(i=1,...,l),分别计算点:Di=(H3(Xr,Fieldi),Vi);
利用Shamir秘密共享,过l+1个点:D0,D1,...,Dl构造一个l次插值多项式FE(x);
随机选取xi∈{0,1}d,i=1,...,l,计算FE(x)上的l个点
Figure BDA00019996416100001110
对结构化消息M中的每个字段值Vi(i=1,...,l),构造一个二次插值多项式fi(u),并随机选取ui,1,ui,2∈{0,1}d,计算fi(u)上的两个点(ui,1,vi,1)和(ui,2,vi,2);
最终,计算密文C为:
Figure BDA0001999641610000121
优选地,方法还包括:
对结构化消息M中的每个字段值Vi(i=1,...,l)构造一个二次插值多项式fi(u)的方法为:
利用系统参数PP,计算三个点:
Figure BDA0001999641610000122
Figure BDA0001999641610000123
Figure BDA0001999641610000124
利用Shamir秘密共享,过点Qi,1,Qi,2,Qi,3构造一个二次插值多项式fi(u)。
优选地,在步骤104:当需要对密文中某个字段的值同其它用户密文中相应字段的值做相等性测试时,用户利用自身的私钥对密文中待测试的字段进行结构化授权,生成对密文中该字段的授权陷门,将授权陷门上传至云服务器。
优选地,方法还包括:当需要对密文中某个字段的值同其它用户密文中相应字段的值做相等性测试时,用户通过运行授权算法Auth(PP,C,SK,Fieldi),输入系统参数PP、密文C、自身的私钥SK和待测试字段名Fieldi,生成对密文C中字段Fieldi的授权陷门tdi,并将授权陷门tdi发送给云服务器。
优选地,方法还包括:
授权算法Auth(PP,C,SK,Fieldi)具体过程如下:
Auth(PP,C,SK,Fieldi)→tdi:用户根据私钥SK=(x,y)生成密文C=(C0,C1,C2)中字段Fieldi的授权陷门
Figure BDA0001999641610000125
其中,H4为公开的系统参数PP中的抗碰撞哈希函数
Figure BDA0001999641610000126
Figure BDA0001999641610000127
为阶为素数q的循环群,d为
Figure BDA0001999641610000128
中元素的比特长度。
优选地,在步骤105:云服务器收到来自不同用户的密文和授权陷门后,在不恢复明文信息的前提下,根据不同用户的授权陷门,提取用户密文中待测试的字段所对应的消息进行相等性测试。
优选地,方法还包括:云服务器收到来自不同用户的密文和授权陷门后,运行相等性测试算法Test(PP,CA,tdA,i,CB,tdB,j),输入系统参数PP、用户A的密文CA和字段Fieldi的授权陷门tdA,i以及用户B的密文CB和字段Fieldj的授权陷门tdB,j;若两者密文中用户A的字段Fieldi和用户B的字段Fieldj所对应的字段值相同,测试算法返回1;否则返回0。
优选地,方法还包括:
相等性测试算法Test(PP,CA,tdA,i,CB,tdBj)具体过程如下:
Test(PP,CA,tdA,i,CB,tdB,j)→{0,1}:
计算
Figure BDA0001999641610000131
Figure BDA0001999641610000132
使用Shamir秘密共享,经过三点(uA,i,1,vA,i,1),(uA,i,2,vA,i,2),(uB,j,1,vB,j,1)重构用户A的二次插值多项式fA,i(u)的秘密值
Figure BDA0001999641610000133
经过三点(uB,j,1,vB,j,1),(uB,j,2,vB,j,2),(uA,i,1,vA,i,1)重构用户B的二次插值多项式fB,j(u)的秘密值
Figure BDA0001999641610000134
即计算:
Figure BDA0001999641610000135
Figure BDA0001999641610000136
其中,q为公开的系统参数PP中的素数q;
检查
Figure BDA0001999641610000137
是否成立,若成立,则两者密文中用户A的字段Fieldi和用户B的字段Fieldj所对应的字段值相同,返回1;否则,两者密文中用户A的字段Fieldi和用户B的字段Fieldj所对应的字段值不同,返回0。
优选地,当需要解密密文中某个字段的值时,用户利用自身的私钥对密文中待解密的字段进行解密,获取字段的明文信息且不泄露其它字段的信息。
优选地,方法还包括:当需要解密密文中某个字段的值时,用户运行结构化解密算法Decrypt(PP,C,SK,Fieldi),输入系统参数PP、密文C、自身的私钥SK和待解密字段名Fieldi,解密得到密文中字段Fieldi的字段值Vi且不泄露其他字段的信息。
优选地,方法还包括:
结构化解密算法Decrypt(PP,C,SK,Fieldi)具体过程如下:
Decrypt(PP,C,SK,Fieldi)→Vi,其中公开的系统参数
Figure BDA0001999641610000141
Figure BDA0001999641610000142
g为阶为素数q的循环群
Figure BDA0001999641610000143
的生成元,
Figure BDA0001999641610000144
Figure BDA0001999641610000145
为抗碰撞哈希函数,η1,η2,η3,η4,η5,η6∈{0,1}d,其中d为
Figure BDA0001999641610000146
中元素的比特长度;密文C=(C0,C1,C2);用户私钥SK=(x,y):
计算点:
Figure BDA0001999641610000147
使用Shamir秘密共享,经过l+1个点:
Figure BDA0001999641610000148
构造l次插值多项式F′E(x);
计算
Figure BDA0001999641610000149
恢复Vi
对于字段值Vi,计算三个点:
Figure BDA00019996416100001410
Figure BDA00019996416100001411
Figure BDA00019996416100001412
利用Shamir秘密共享,过点Q′i.1,Q′i.2,Q′i.3构造一个二次插值多项式f′i(u);
用户计算
Figure BDA00019996416100001413
恢复ui,1||ui,2||vi,1||vi,2
若f′i(ui,1)=vi,1,f′i(ui,2)=vi,2皆成立,则用户解密成功,输出字段Fieldi的字段值Vi;否则用户解密失败,输出⊥。
本申请基于Shamir秘密共享实现了对结构化消息的加密,在保护消息机密性的同时可对结构化消息进行相等性测试,即在不解密密文的情况下,可对用不同用户公钥加密的密文中特定字段的字段值进行相等性测试,且不会泄露该字段的任何明文信息。
本申请假设云服务器是诚实但好奇的,即云服务器诚实地执行数据存储和密文比对等操作,但有可能会对存储在云服务器中的密文数据进行分析来试图获取相关的明文信息。
本申请提出的基于云服务平台进行相等性测试的结构化加密方法主要实现以下目标:
支持结构化消息:实现对结构化消息的加密,使用户可解密密文中某个特定字段的字段值;并在保护消息机密性的同时,实现对结构化消息的相等性测试,可在不解密密文的情况下,对用不同用户公钥加密的密文中特定字段的字段值进行相等性测试。
高效率:对于结构化消息,利用Shamir秘密共享实现加密、解密和相等性测试算法,无需使用双线性映射,从而提高方案的运算效率,使之更加适用于实际应用场景。
安全性:对于云服务器中存储的密文,只有对应的用户才对该密文进行解密,且用户在解密密文中某个特定字段的字段值时不会泄露其它字段的任何信息;只有当收到用户的授权陷门后,云服务器才可根据用户发送的授权陷门,提取出用户密文中特定字段所对应的消息来进行相等性测试,且不会得知该字段的任何明文信息。
本申请中,使用到的密码学原语为Shamir秘密共享,其具体描述如下:
Shamir秘密共享将秘密y划分为n份,分发给n个成员
Figure BDA0001999641610000151
Figure BDA0001999641610000152
当且仅当用户拥有不少于t份子秘密时,可利用拉格朗日插值多项式重构出秘密值y。Shamir秘密共享的具体算法如下:
SS.Setup(λ):该算法根据安全参数λ,输出一个随机大素数q。
SS.Generation(q,y):该算法按以下步骤将秘密值
Figure BDA0001999641610000153
划分为n份子秘密:
1)随机产生一个t-1次多项式f(x)=a0+a1x+...+at-1xt-1(mod q),其中秘密值y=a0=f(0),系数
Figure BDA0001999641610000154
2)随机选取
Figure BDA0001999641610000155
计算子秘密yi=f(xi)(mod q),并将yi安全地发送给成员Ui
Figure BDA0001999641610000156
该算法随机根据任意t个点
Figure BDA0001999641610000161
利用拉格朗日插值多项式重构秘密值y:y=f(0)=∑i∈AΔiyi(mod q),其中
Figure BDA0001999641610000162
Δi为拉格朗日插值多项式的系数且
Figure BDA0001999641610000163
图2为根据本发明优选实施方式的基于云服务平台进行相等性测试的结构性加密方法系统模型图。如图2所示,本发明的支持相等性测试的结构化加密方法的系统模型为:
(1)系统初始化,运行初始化算法Setup(λ),输入安全参数λ,生成公开的系统参数PP。
(2)密钥生成,用户运行密钥生成算法KeyGen(PP),输入系统参数PP,生成自身的公私钥对(PK,SK),PK为用户的公钥,SK为用户的私钥。
(3)结构加密,消息发送者运行结构化加密算法Encrypt(PP,PK,M)对结构化消息进行结构化加密,输入系统参数PP、目标用户的公钥PK和结构化消息M=V1||V2||...||Vl,其中Vi(i=1,...,l)表示字段Fieldi对应的字段值,l为结构化消息M所含字段的个数;生成结构化消息的密文C后,将密文C上传至云服务器。
(4)结构解密,当需要解密密文中某个字段的值时,用户运行结构化解密算法Decrypt(PP,C,SK,Fieldi),输入系统参数PP、密文C、自身的私钥SK和待解密字段名Fieldi,解密得到密文中字段Fieldi的字段值Vi且不泄露其他字段的信息。
(5)授权陷门生成,当需要对密文中某个字段的值同其它用户密文中相应字段的值做相等性测试时,用户通过运行授权算法Auth(PP,C,SK,Fieldi),输入系统参数PP、密文C、自身的私钥SK和待测试字段名Fieldi,生成对密文C中字段Fieldi的授权陷门tdi,并将授权陷门tdi发送给云服务器。
(6)密文比对,云服务器收到来自不同用户的密文和授权陷门后,运行相等性测试算法Test(PP,CA,tdA,i,CB,tdB,j),输入系统参数PP、用户A的密文CA和字段Fieldi的授权陷门tdA,i以及用户B的密文CB和字段Fieldj的授权陷门tdB,j;若两者密文中用户A的字段Fieldi和用户B的字段Fieldj所对应的字段值相同,测试算法返回1;否则返回0。
本申请中结构化消息表示为:M=V1||V2||...||Vl,Vi(i=1,...,l)表示字段Fieldi对应的字段值,
Figure BDA0001999641610000171
l为结构化消息M中所含字段的个数。不同结构的消息中所含字段不同或字段相同但字段排列顺序不同。
初始化算法Setup(λ)具体过程如下:
Setup(λ)→PP:随机选择阶为素数q的循环群
Figure BDA0001999641610000172
在循环群
Figure BDA0001999641610000173
中选择生成元g,选取抗碰撞哈希函数
Figure BDA0001999641610000174
Figure BDA0001999641610000175
其中d为
Figure BDA0001999641610000176
中元素的比特长度,随机选取η1,η2,η3,η4,η5,η6∈{0,1}d,设置公开的系统参数为
Figure BDA0001999641610000177
密钥生成算法KeyGen(PP)具体过程如下:
KeyGen(PP)→(PK,SK):在q阶素域
Figure BDA0001999641610000178
中选取随机数x、y,设置用户公钥为PK=(X,Y)=(gx,gy),设置用户私钥为SK=(x,y),其中g为公开的系统参数PP中q阶循环群
Figure BDA0001999641610000179
的生成元。
结构化加密算法Encrypt(PP,PK,M)具体过程如下:
Encrypt(PP,PK,M)→C,其中,公开的系统参数
Figure BDA00019996416100001710
Figure BDA00019996416100001711
g为阶为素数q的循环群
Figure BDA00019996416100001712
的生成元,
Figure BDA00019996416100001713
Figure BDA00019996416100001714
为抗碰撞哈希函数,其中d为
Figure BDA00019996416100001715
中元素的比特长度,η1,η2,η3,η4,η5,η6∈{0,1}d;用户公钥PK=(X,Y)=(gx,gy);结构化消息M=V1||V2||...||Vl,Vi(i=1,...,l)表示字段Fieldi对应的字段值,
Figure BDA00019996416100001716
l为结构化消息M所含字段的个数:
选取随机数
Figure BDA00019996416100001717
计算C0=gr
计算点:Do=(H1(Xr),H2(C0,Xr));
对结构化消息M中的每个字段Fieldi及相应的字段值Vi(i=1,...,l),分别计算点:Di=(H3(Xr,Fieldi),Vi);
利用Shamir秘密共享,过l+1个点:D0,D1,...,Dl构造一个l次插值多项式FE(x);
随机选取xi∈{0,1}d,i=1,...,l,计算FE(x)上的l个点
Figure BDA0001999641610000181
对结构化消息M中的每个字段值Vi(i=1,...,l),利用系统参数PP,分别计算三个点:
Figure BDA0001999641610000182
Figure BDA0001999641610000183
Figure BDA0001999641610000184
利用Shamir秘密共享,过点Qi,1,Qi,2,Qi,3构造一个二次插值多项式fi(u),并随机选取ui,1,ui,2∈{0,1}d,计算fi(u)上的两个点(ui,1,vi,1)和(ui,2,vi,2);
最终,计算密文C为:
Figure BDA0001999641610000185
结构化解密算法Decrypt(PP,C,SK,Fieldi)具体过程如下:
Decrypt(PP,C,SK,Fieldi)→Vi,其中公开的系统参数
Figure BDA0001999641610000186
Figure BDA0001999641610000187
g为阶为素数q的循环群
Figure BDA0001999641610000188
的生成元,
Figure BDA0001999641610000189
Figure BDA00019996416100001810
为抗碰撞哈希函数,η1,η2,η3,η4,η5,η6∈{0,1}d,其中d为
Figure BDA00019996416100001811
中元素的比特长度;密文C=(C0,C1,C2);用户私钥SK=(x,y):
计算点:
Figure BDA00019996416100001812
使用Shamir秘密共享,经过l+1个点:
Figure BDA00019996416100001813
构造l次插值多项式F′E(x);
计算
Figure BDA00019996416100001814
恢复Vi
对于字段值Vi,计算三个点:
Figure BDA00019996416100001815
Figure BDA00019996416100001816
Figure BDA00019996416100001817
利用Shamir秘密共享,过点Q′i.1,Q′i.2,Q′i.3构造一个二次插值多项式fi(u);
用户计算
Figure BDA0001999641610000191
恢复ui,1||ui,2||vi,1||vi,2
若f′i(ui,1)=vi,1,f′i(ui,2)=vi,2皆成立,则用户解密成功,输出字段Fieldi的字段值Vi;否则用户解密失败,输出⊥。
授权算法Auth(PP,C,SK,Fieldi)具体过程如下:
Auth(PP,C,SK,Fieldi)→tdi:用户根据私钥SK=(x,y)生成密文C=(C0,C1,C2)中字段Fieldi的授权陷门
Figure BDA0001999641610000192
其中,H4为公开的系统参数PP中的抗碰撞哈希函数
Figure BDA0001999641610000193
Figure BDA0001999641610000194
为阶为素数q的循环群,d为
Figure BDA0001999641610000195
中元素的比特长度。
相等性测试算法Test(PP,CA,tdA,i,CB,tdBj)具体过程如下:
Test(PP,CA,tdA,i,CB,tdB,j)→{0,1}:
计算
Figure BDA0001999641610000196
Figure BDA0001999641610000197
使用Shamir秘密共享,经过三点(uA,i,1,vA,i,1),(uA,i,2,vA,i,2),(uB,j,1,vB,j,1)重构用户A的二次插值多项式fA,i(u)的秘密值
Figure BDA0001999641610000198
经过三点(uB,j,1,vB,j,1),(uB,j,2,vB,j,2),(uA,i,1,vA,i,1)重构用户B的二次插值多项式fB,j(u)的秘密值
Figure BDA0001999641610000199
即计算:
Figure BDA00019996416100001910
Figure BDA00019996416100001911
其中,q为公开的系统参数PP中的素数q;
检查
Figure BDA00019996416100001912
是否成立,若成立,则两者密文中用户A的字段Fieldi和用户B的字段Fieldj所对应的字段值相同,返回1;否则,两者密文中用户A的字段Fieldi和用户B的字段Fieldj所对应的字段值不同,返回0。
正确性分析
1)本发明中数据解密过程的正确性证明如下:
对于任意结构化消息M=V1||V2||...||Vl,Vi(i=1,...,l)表示字段Fieldi对应的字段值且
Figure BDA0001999641610000201
l为结构化消息M中所含字段的个数,应有以下公式成立:Vi=Decrypt(PP,Encrypt(PP,PK,M),SK,Fieldi)。
给定结构化消息M的密文C=Encrypt(PP,PK,M)=(C0,C1,C2):
Figure BDA0001999641610000202
由于
Figure BDA0001999641610000203
是l次插值多项式FE(x)上的l个点,而FE(x)是根据用户公钥PK=(X,Y)=(gx,gy),利用Shamir秘密共享,经过l+1个点D0,D1,...,Dl构造的,其中,
D0=(H1(Xr),H2(C0,Xr))=(H1(grx),H2(gr,grx)),
Di=(H3(Xr,Fieldi),Vi)=(H3(grx,Fieldi),Vi)(i=1,...,l)。
所以根据以上l次插值多项式FE(x)的构造方法可知,若用户使用私钥SK=(x,y)计算出点
Figure BDA0001999641610000204
Figure BDA0001999641610000205
再使用Shamir秘密共享,经过l+1个点:
Figure BDA0001999641610000206
可重构出l次插值多项式F′E(x)=FE(x)。随后计算
Figure BDA0001999641610000207
并利用系统参数
Figure BDA0001999641610000208
计算三点:
Figure BDA0001999641610000209
Figure BDA00019996416100002010
Figure BDA00019996416100002011
利用Shamir秘密共享,过点Q′i.1,Q′i.2,Q′i.3可构造二次插值多项式f′i(u)。
又由于
Figure BDA00019996416100002012
Figure BDA00019996416100002013
其中(ui,1,vi,1)、(ui,2,vi,2)是二次插值多项式fi(u)上的点,而fi(u)是根据系统参数PP,利用Shamir秘密共享,经过三点Qi,1,Qi,2,Qi,3构造的,其中
Figure BDA00019996416100002014
Figure BDA00019996416100002015
所以根据以上二次插值多项式f′i(u)、fi(u)的构造方法可知,若V′i=Vi,则必有f′i(u)=fi(u)成立。反之,若V′i≠Vi,因为
Figure BDA00019996416100002016
匀抗碰撞哈希函数,所以Pr[f′i(u)=fi(u)]可忽略不计。因此,若f′i(ui,1)=vi,1,f′i(ui,2)=vi,2皆成立,则V′i=Vi,用户解密成功,输出字段Fieldi对应的字段值V′i;否则用户解密失败,输出⊥。
2)本发明中相等性测试过程的正确性证明如下:
对于密文CA=Encrypt(PP,PKA,MA)、CB=Encrypt(PP,PKB,MB)和相应的陷门tdA,i=Auth(PP,CA,SKA,Fieldi)、tdB,j=Auth(PP,CB,SKB,Fieldj)而言,应有以下公式成立:
若VA,i=VB,j,则有Test(PP,CA,tdA,i,CB,tdB,j)=1;否则Pr[Test(PP,CA,tdA,i,CB,tdB,j)=1]应可忽略不计。
首先计算:
Figure BDA0001999641610000211
同理,
Figure BDA0001999641610000212
由于
Figure BDA0001999641610000213
Figure BDA0001999641610000214
其中(uA,i,1,vA,i,1)、(uA,i,2,vA,i,2)是二次插值多项式fA,i(u)上的点,而fA,i(u)是根据系统参数PP,利用Shamir秘密共享,经过三点QA,i,1,QA,i,2,QA,i,3构造的,其中,
Figure BDA0001999641610000215
Figure BDA0001999641610000216
Figure BDA0001999641610000217
同理,CB,2,j的二次插值多项式fB,j(u)是根据系统参数PP,利用Shamir秘密共享,经过三点QB,j,1,QB,j,2,QB,j,3构造的,其中,
Figure BDA0001999641610000218
Figure BDA0001999641610000219
Figure BDA00019996416100002110
所以根据以上二次插值多项式fA,i(u),fB,j(u)的构造方法可知,若VA,i=VB,j,则必有fA,i(u)=fB,j(u)成立。因此,对于fA,i(u)上的点(uA,i,1,vA,i,1)、(uA,i,2,vA,i,2)和fB,j(u)上的点(uB,j,1,vB,j,1)、(uB,j,2,vB,j,2)而言,若VA,i=VB,j,则点(uA,i,1,vA,i,1)、(uA,i,2,vA,i,2)、(uB,j,1,vB,j,1)、(uB,j,2,vB,j,2)皆为二次插值多项式fA,i(u)、fB,j(u)上的有效点,那么根据Shamir秘密共享,利用三点(uA,i,1,vA,i,1)、(uA,i,2,vA,i,2)、(uB,j,1,vB,j,1)可重构出秘密值
Figure BDA0001999641610000221
同理,利用三个点(uB,j,1,vB,j,1)、(uB,j,2,vB,j,2)、(uA,i,1,vA,i,1)可重构出秘密值
Figure BDA0001999641610000222
因此,若VA,i=VB,j,则
Figure BDA0001999641610000223
即Test(PP,CA,tdA,i,CB,tdB,j)=1。
反之,若VA,i≠VB,j,因为
Figure BDA0001999641610000224
为抗碰撞哈希函数,所以Pr[fA,i(u)=fB,j(u)]可忽略不计,故Pr[fA,i(uB,j,1)=vB,j,1]和Pr[fB,j(uA,i,1)=vA,i,1]可忽略不计。所以,若VA,i≠VB,j,则利用点(uA,i,1,vA,i,1)、(uA,i,2,vA,i,2)、(uB,j,1,vB,j,1)构造出正确的fA,i(u)和利用点(uB,j,1,vB,j,1)、(uB,j,2,vB,j,2)、(uA,i,1,vA,i,1)构造出正确的fB,j(u)的概率可忽略不计。因此,若VA,i≠VB,j,则
Figure BDA0001999641610000225
Figure BDA0001999641610000226
可忽略不计,即Pr[Test(PP,CA,tdA,i,CB,tdB,j)=1]可忽略不计。
综上,对本发明的相等性测试过程而言:
若VA,i=VB,j,则有Test(PP,CA,tdA,i,CB,tdB,j)=1;否则,Pr[Test(PP,CA,tdA,i,CB,tdB,j)=1]应可忽略不计。
本申请实现的技术效果与现有技术的对比如表1所示。
表1
Figure BDA0001999641610000227
Figure BDA0001999641610000231
其中,T表示一次幂运算的时间,T表示一次双线性映射(Pairing)的时间,Tm表示一次乘法运算的时间,TI表示一次模逆运算的时间,l表示该结构化消息中字段的个数。与这些运算相比,其他运算例如哈希运算等速度较快,可以忽略不计。
本申请的优点及积极效果为:基于Shamir秘密共享实现了对结构化消息的加密,解密时用户可解密密文中某个特定字段的字段值,而不泄露其它字段的任何信息。本发明可在保护消息机密性的同时对结构化消息进行相等性测试,使用户在不解密密文的情况下,可对用不同用户公钥加密的密文中特定字段的字段值进行相等性测试,且不会得知该字段的任何明文信息。另外,本发明基于Shamir秘密共享的重构算法实现结构化加密和相等性测试,而无需使用双线性映射,进一步提高了方案的运算效率。
图3为根据本发明优选实施方式的基于云服务平台进行相等性测试的结构化加密系统结构图。如图3所示,一种基于云服务平台进行相等性测试的结构化加密系统,系统包括:
初始单元301,用于进行系统初始化,生成系统参数,并将系统参数公开。
生成单元302,用于用户根据公开的系统参数生成自身密钥,密钥包括公钥和私钥。
加密单元303,用于消息发送者利用系统参数和目标用户的公钥对结构化消息进行结构化加密,生成结构化消息的密文,将密文上传至云服务器。
授权单元304,用于用户利用自身的私钥对密文中待测试的字段进行结构化授权,生成对密文中该字段的授权陷门,将授权陷门上传至云服务器。
测试单元305,用于云服务器收到来自不同用户的密文和授权陷门后,在不恢复明文信息的前提下,根据不同用户的授权陷门,提取用户密文中待测试字段所对应的消息进行相等性测试。
优选地,系统还包括解密单元,用于用户利用自身的私钥对密文中待解密的字段进行解密,获取字段的明文信息且不泄露其它字段的信息。
优选地,系统中:
初始单元301还用于:运行初始化算法Setup(λ),输入安全参数λ,生成公开的系统参数PP。
生成单元302还用于:用户运行密钥生成算法KeyGen(PP),输入系统参数PP,生成自身的公私钥对(PK,SK),PK为用户的公钥,SK为用户的私钥。
优选地,系统加密单元303还用于:
消息发送者运行结构化加密算法Encrypt(PP,PK,M)对结构化消息进行结构化加密,输入系统参数PP、目标用户的公钥PK和结构化消息M=V1||V2||...||Vl,其中Vi(i=1,...,l)表示字段Fieldi对应的字段值,l为结构化消息M所含字段的个数;生成结构化消息的密文C后,将密文C上传至云服务器。
优选地,系统还包括:
授权单元304还用于:当需要对密文中某个字段的值同其它用户密文中相应字段的值做相等性测试时,用户通过运行授权算法Auth(PP,C,SK,Fieldi),输入系统参数PP、密文C、自身的私钥SK和待测试字段名Fieldi,生成对密文C中字段Fieldi的授权陷门tdi,并将授权陷门tdi发送给云服务器;
测试单元305还用于:云服务器收到来自不同用户的密文和授权陷门后,运行相等性测试算法Test(PP,CA,tdA,i,CB,tdB,j),输入系统参数PP、用户A的密文CA和字段Fieldi的授权陷门tdA,i以及用户B的密文CB和字段Fieldj的授权陷门tdB,j;若两者密文中用户A的字段Fieldi和用户B的字段Fieldj所对应的字段值相同,测试算法返回1;否则返回0。
优选地,解密单元还用于:
当需要解密密文中某个字段的值时,用户运行结构化解密算法Decrypt(PP,C,SK,Fieldi),输入系统参数PP、密文C、自身的私钥SK和待解密字段名Fieldi,解密得到密文中字段Fieldi的字段值Vi且不泄露其他字段的信息。
本发明优选实施方式的基于云服务平台进行相等性测试的结构化加密系统300与本发明另一优选实施方式的用于云服务平台进行相等性测试的结构性加密方法100相对应,在此不再进行赘述。
已经通过参考少量实施方式描述了本发明。然而,本领域技术人员所公知的,正如附带的专利权利要求所限定的,除了本发明以上公开的其他的实施例等同地落在本发明的范围内。
通常地,在权利要求中使用的所有术语都根据他们在技术领域的通常含义被解释,除非在其中被另外明确地定义。所有的参考“一个/所述/该[装置、组件等]”都被开放地解释为所述装置、组件等中的至少一个实例,除非另外明确地说明。这里公开的任何方法的步骤都没必要以公开的准确的顺序运行,除非明确地说明。

Claims (17)

1.一种基于云服务平台进行相等性测试的结构化加密方法,所述方法包括:
系统初始化,生成系统参数,并将所述系统参数公开;
用户根据所述系统参数生成自身密钥,所述密钥包括公钥和私钥;
消息发送者利用所述系统参数和目标用户的公钥对结构化消息进行结构化加密,生成结构化消息的密文,将所述密文上传至云服务器;
当需要对所述密文中某个字段的值同其它用户密文中相应字段的值做相等性测试时,用户利用自身的私钥对所述密文中待测试的字段进行结构化授权,生成对密文中该字段的授权陷门,将所述授权陷门上传至云服务器;
云服务器收到来自不同用户的密文和授权陷门后,在不恢复明文信息的前提下,根据不同用户的所述授权陷门,提取用户密文中待测试的字段所对应的消息进行相等性测试,包括:
当需要对所述密文中某个字段的值同其它用户密文中相应字段的值做相等性测试时,用户通过运行授权算法Auth(PP,C,SK,Fieldi),输入所述系统参数PP、密文C、自身的私钥SK和待测试字段名Fieldi,生成对密文C中字段Fieldi的授权陷门tdi,并将所述授权陷门tdi发送给云服务器;
云服务器收到来自不同用户的所述密文和所述授权陷门后,运行相等性测试算法Test(PP,CA,tdA,i,CB,tdB,j),输入所述系统参数PP、用户A的密文CA和字段Fieldi的授权陷门tdA,i以及用户B的密文CB和字段Fieldj的授权陷门tdB,j;若两者所述密文中用户A的字段Fieldi和用户B的字段Fieldj所对应的字段值相同,测试算法返回1;否则返回0。
2.根据权利要求1所述的方法,当需要解密所述密文中某个字段的值时,用户利用自身的私钥对所述密文中待解密的字段进行解密,获取所述字段的明文信息且不泄露其它字段的信息。
3.根据权利要求1所述的方法,还包括:
运行初始化算法Setup(λ),输入安全参数λ,生成公开的系统参数PP;
用户运行密钥生成算法KeyGen(PP),输入系统参数PP,生成自身的公私钥对(PK,SK),PK为用户的公钥,SK为用户的私钥。
4.根据权利要求3所述的方法,还包括:
消息发送者运行结构化加密算法Encrypt(PP,PK,M)对结构化消息进行结构化加密,输入所述系统参数PP、目标用户的公钥PK和结构化消息M=V1||V2||…||Vl,其中Vi(i=1,...,l)表示字段Fieldi对应的字段值,l为结构化消息M中所含字段的个数;生成结构化消息M的密文C后,将密文C上传至云服务器。
5.根据权利要求2所述的方法,还包括:
当需要解密所述密文中某个字段的值时,用户运行结构化解密算法Decrypt(PP,C,SK,Fieldi),输入所述系统参数PP、密文C、自身的私钥SK和待解密字段名Fieldi,解密得到所述密文中字段Fieldi的字段值Vi且不泄露其他字段的信息。
6.根据权利要求3所述的方法,还包括:
所述初始化算法Setup(λ)具体过程如下:
Setup(λ)→PP:随机选择阶为素数q的循环群
Figure FDA0003188527170000021
在循环群
Figure FDA0003188527170000022
中选择生成元g,选取抗碰撞哈希函数
Figure FDA0003188527170000023
Figure FDA0003188527170000024
其中d为
Figure FDA0003188527170000025
中元素的比特长度;随机选取η1,η2,η3,η4,η5,η6∈{0,1}d;设置公开的系统参数为
Figure FDA0003188527170000026
7.根据权利要求3所述的方法,还包括:
所述密钥生成算法KeyGen(PP)具体过程如下:
KeyGen(PP)→(PK,SK):在q阶素域
Figure FDA0003188527170000027
中选取随机数x、y,设置用户公钥为PK=(X,Y)=(gx,gy),设置用户私钥为SK=(x,y),其中g为公开的系统参数PP中q阶循环群
Figure FDA0003188527170000028
的生成元。
8.根据权利要求4所述的方法,还包括:
所述结构化加密算法Encrypt(PP,PK,M)具体过程如下:
Encrypt(PP,PK,M)→C,其中,公开的系统参数
Figure FDA0003188527170000029
Figure FDA00031885271700000210
g为阶为素数q的循环群
Figure FDA00031885271700000211
的生成元,
Figure FDA0003188527170000031
Figure FDA0003188527170000032
为抗碰撞哈希函数,其中d为
Figure FDA0003188527170000033
中元素的比特长度,η1,η2,η3,η4,η5,η6∈{0,1}d;用户公钥PK=(X,Y)=(gx,gy);结构化消息M=V1||V2||…||Vl,Vi(i=1,...,l)表示字段Fieldi对应的字段值,
Figure FDA0003188527170000034
l为结构化消息M所含字段的个数:
选取随机数
Figure FDA0003188527170000035
计算C0=gr
计算点:D0=(H1(Xr),H2(C0,Xr));
对结构化消息M中的每个字段Fieldi及相应的字段值Vi(i=1,...,l),分别计算点:Di=(Ha(Xr,Fieldi),Vi);
利用Shamir秘密共享,过l+1个点:D0,D1,...,Dl构造一个l次插值多项式FE(x);
随机选取xi∈{0,1}d,i=1,...,l,计算FE(x)上的l个点
Figure FDA0003188527170000036
对结构化消息M中的每个字段值Vi(i=1,...,l),构造一个二次插值多项式ri(u),并随机选取ui,1,ui,2∈{0,1}d,计算fi(u)上的两个点(ui,1,vi,1)和(ui,2,vi,2);
最终,计算密文C为:
Figure FDA0003188527170000037
9.根据权利要求8所述的方法,还包括:
所述对结构化消息M中的每个字段值Vi(i=1,...,l)构造一个二次插值多项式fi(u)的方法为:
利用系统参数PP,计算三个点:
Figure FDA0003188527170000038
Figure FDA0003188527170000039
Figure FDA00031885271700000310
利用Shamir秘密共享,过点Qi,1,Qi,2,Qi,3构造一个二次插值多项式fi(u)。
10.根据权利要求5所述的方法,还包括:
所述结构化解密算法Decrypt(PP,C,SK,Fieldi)具体过程如下:
Decrypt(PP,C,SK,Fieldi)→Vi,其中公开的系统参数
Figure FDA0003188527170000041
Figure FDA0003188527170000042
g为阶为素数q的循环群
Figure FDA0003188527170000043
的生成元,
Figure FDA0003188527170000044
Figure FDA0003188527170000045
为抗碰撞哈希函数,η1,η2,η3,η4,η5,η6∈{0,1}d,其中d为
Figure FDA0003188527170000046
中元素的比特长度;密文C=(C0,C1,C2);用户私钥SK=(x,y):
计算点:
Figure FDA0003188527170000047
使用Shamir秘密共享,经过l+1个点:
Figure FDA0003188527170000048
构造l次插值多项式F′E(x);
计算
Figure FDA0003188527170000049
恢复Vi
对于字段值Vi,计算三个点:
Figure FDA00031885271700000410
Figure FDA00031885271700000411
Figure FDA00031885271700000412
利用Shamir秘密共享,过点Q′i,1,Q′i,2,Q′i,3构造一个二次插值多项式f′i(u);
用户计算
Figure FDA00031885271700000413
恢复ui,1||ui,2||vi,1||vi,2
若f′i(ui,1)=vi,1,f′i(ui,2)=vi,2皆成立,则用户解密成功,输出字段Fieldi的字段值Vi;否则用户解密失败,输出⊥。
11.根据权利要求1所述的方法,还包括:
所述授权算法Auth(PP,C,SK,Fieldi)具体过程如下:
Auth(PP,C,SK,Fieldi)→tdi:用户根据私钥SE=(x,y)生成密文C=(C0,C1,C2)中字段Fieldi的授权陷门
Figure FDA00031885271700000414
其中,H4为公开的系统参数PP中的抗碰撞哈希函数
Figure FDA00031885271700000415
Figure FDA00031885271700000416
为阶为素数q的循环群,d为
Figure FDA00031885271700000417
中元素的比特长度。
12.根据权利要求1所述的方法,还包括:
所述相等性测试算法Test(PP,CA,tdA,i,CB,tdB,j)具体过程如下:
Test(PP,CA,tdA,i,CB,tdB,j)→{0,1}:
计算
Figure FDA0003188527170000051
Figure FDA0003188527170000052
使用Shamir秘密共享,经过三点(uA,i,1,vA,i,1),(uA,i,2,vA,i,2),(uB,j,1,vB,j,1)重构用户A的二次插值多项式fA,i(u)的秘密值
Figure FDA0003188527170000053
经过三点(uB,j,1,vB,j,1),(uB,j,2,vB,j,2),(uA,i,1,vA,i,1)重构用户B的二次插值多项式fB,j(u)的秘密值
Figure FDA0003188527170000054
即计算:
Figure FDA0003188527170000055
Figure FDA0003188527170000056
其中,q为公开的系统参数PP中的素数q;
检查
Figure FDA0003188527170000057
是否成立,若成立,则两者密文中用户A的字段Fieldi和用户B的字段Fieldj所对应的字段值相同,返回1;否则,两者密文中用户A的字段Fieldi和用户B的字段Fieldj所对应的字段值不同,返回0。
13.一种基于云服务平台进行相等性测试的结构化加密系统,所述系统包括:
初始单元,用于进行系统初始化,生成系统参数,并将所述系统参数公开;
生成单元,用于用户根据公开的所述系统参数生成自身密钥,所述密钥包括公钥和私钥;
加密单元,用于消息发送者利用所述系统参数和目标用户的公钥对结构化消息进行结构化加密,生成结构化消息的密文,将所述密文上传至云服务器;
授权单元,用于所述用户利用自身的私钥对所述密文中待测试的字段进行结构化授权,生成对密文中该字段的授权陷门,将所述授权陷门上传至云服务器;所述授权单元还用于:当需要对所述密文中某个字段的值同其它用户密文中相应字段的值做相等性测试时,用户通过运行授权算法Auth(PP,C,SK,Fieldi),输入所述系统参数PP、密文C、自身的私钥SK和待测试字段名Fieldi,生成对密文C中字段Fieldi的授权陷门tdi,并将所述授权陷门tdi发送给云服务器;
测试单元,用于所述云服务器收到来自不同用户的密文和授权陷门后,在不恢复明文信息的前提下,根据不同用户的所述授权陷门,提取用户密文中待测试字段所对应的消息进行相等性测试;所述测试单元还用于:云服务器收到来自不同用户的所述密文和所述授权陷门后,运行相等性测试算法Test(PP,CA,tdA,i,CB,tdB,j),输入所述系统参数PP、用户A的密文CA和字段Fieldi的授权陷门tdA,i以及用户B的密文CB和字段Fieldj的授权陷门tda,j;若两者所述密文中用户A的字段Fieldi和用户B的字段Fieldj所对应的字段值相同,测试算法返回1;否则返回0。
14.根据权利要求13所述的系统,还包括解密单元,用于所述用户利用自身的私钥对所述密文中待解密的字段进行解密,获取所述字段的明文信息且不泄露其它字段的信息。
15.根据权利要求13所述的系统,还包括
所述初始单元还用于:运行初始化算法Setup(λ),输入安全参数λ,生成公开的系统参数PP;
所述生成单元还用于:用户运行密钥生成算法KeyGen(PP),输入系统参数PP,生成自身的公私钥对(PK,SK),PK为用户的公钥,SK为用户的私钥。
16.根据权利要求15所述的系统,所述加密单元还用于:
消息发送者运行结构化加密算法Encrypt(PP,PK,M)对结构化消息进行结构化加密,输入所述系统参数PP、目标用户的公钥PK和结构化消息M=V1||V2||…||Vl,其中Vi(i=1,...,l)表示字段Fieldi对应的字段值,l为结构化消息M所含字段的个数;生成结构化消息的密文C后,将密文C上传至云服务器。
17.根据权利要求14所述的系统,所述解密单元还用于:
当需要解密所述密文中某个字段的值时,用户运行结构化解密算法Decrypt(PP,C,SK,Fieldi),输入所述系统参数PP、密文C、自身的私钥SK和待解密字段名Fieldi,解密得到所述密文中字段Fieldi的字段值Vi且不泄露其他字段的信息。
CN201910208122.2A 2019-03-19 2019-03-19 一种基于云服务平台进行相等性测试的结构化加密方法及系统 Active CN109902501B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910208122.2A CN109902501B (zh) 2019-03-19 2019-03-19 一种基于云服务平台进行相等性测试的结构化加密方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910208122.2A CN109902501B (zh) 2019-03-19 2019-03-19 一种基于云服务平台进行相等性测试的结构化加密方法及系统

Publications (2)

Publication Number Publication Date
CN109902501A CN109902501A (zh) 2019-06-18
CN109902501B true CN109902501B (zh) 2021-09-17

Family

ID=66952783

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910208122.2A Active CN109902501B (zh) 2019-03-19 2019-03-19 一种基于云服务平台进行相等性测试的结构化加密方法及系统

Country Status (1)

Country Link
CN (1) CN109902501B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110474764B (zh) * 2019-07-17 2021-03-26 华南农业大学 密文数据集交集计算方法、装置、系统、客户端、服务器及介质
CN112887089B (zh) * 2021-01-25 2022-08-12 华南农业大学 密文相似度计算方法、装置、系统及存储介质
CN113067702B (zh) * 2021-03-17 2022-03-22 西安电子科技大学 支持密文等值测试功能的身份基加密方法
CN114338025A (zh) * 2021-06-23 2022-04-12 河南科技大学 一种云环境下密文等值测试方法
CN116707798B (zh) * 2023-07-11 2024-05-17 西华大学 一种基于等值测试的密文审查方法、装置和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104021157A (zh) * 2014-05-22 2014-09-03 西安理工大学 云存储中基于双线性对的关键词可搜索加密方法
CN104023051A (zh) * 2014-05-22 2014-09-03 西安理工大学 云存储中多用户多个关键词可搜索的加密方法
CN105262843A (zh) * 2015-11-12 2016-01-20 武汉理工大学 一种针对云存储环境的数据防泄漏保护方法
CN106161428A (zh) * 2016-06-08 2016-11-23 电子科技大学 一种密文可相等比较的属性加密方案

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130085491A (ko) * 2011-12-09 2013-07-30 한국전자통신연구원 인덱스 검증과 추적이 가능한 다자간 환경에서의 검색 가능 암호 시스템 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104021157A (zh) * 2014-05-22 2014-09-03 西安理工大学 云存储中基于双线性对的关键词可搜索加密方法
CN104023051A (zh) * 2014-05-22 2014-09-03 西安理工大学 云存储中多用户多个关键词可搜索的加密方法
CN105262843A (zh) * 2015-11-12 2016-01-20 武汉理工大学 一种针对云存储环境的数据防泄漏保护方法
CN106161428A (zh) * 2016-06-08 2016-11-23 电子科技大学 一种密文可相等比较的属性加密方案

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Efficient Identity-Based Encryption Scheme with Equality Test in Smart City;Libing Wu et al.;《IEEE TRANSACTIONS ON SUSTAINABLE COMPUTING》;20180331;第44-55页 *
Semi-generic construction of public key encryption and identity-based encryption with equality test;Hyung Tae Lee et al.;《Information Sciences》;20161210;第419-440页 *
云计算中支持授权相等测试的基于身份加密方案;张琦等;《信息网络安全》;20180630;第52-60页 *

Also Published As

Publication number Publication date
CN109902501A (zh) 2019-06-18

Similar Documents

Publication Publication Date Title
CN109902501B (zh) 一种基于云服务平台进行相等性测试的结构化加密方法及系统
Qu et al. Certificateless public key encryption with equality test
Aslett et al. A review of homomorphic encryption and software tools for encrypted statistical machine learning
US11394525B2 (en) Cryptography device having secure provision of random number sequences
Lin et al. Public key encryption supporting equality test and flexible authorization without bilinear pairings
CN106230590A (zh) 一种多授权机构的密文策略属性基加密方法
JP2011130120A (ja) 量子公開鍵暗号システム、鍵生成装置、暗号化装置、復号装置、鍵生成方法、暗号化方法、及び復号方法
CN111431897B (zh) 用于云协助物联网的带追踪的多属性机构属性基加密方法
Bogos et al. Cryptanalysis of a homomorphic encryption scheme
US11212082B2 (en) Ciphertext based quorum cryptosystem
Akavia et al. Linear-regression on packed encrypted data in the two-server model
CN104320393A (zh) 重加密可控的高效属性基代理重加密方法
JPWO2014010202A1 (ja) 暗号化統計処理システム、復号システム、鍵生成装置、プロキシ装置、暗号化統計データ生成装置、暗号化統計処理方法、および、暗号化統計処理プログラム
Huang et al. Block-Level Message-Locked Encryption with Polynomial Commitment for IoT Data.
Aloufi et al. Computing blindfolded on data homomorphically encrypted under multiple keys: An extended survey
Liu et al. Multi-authority ciphertext policy attribute-based encryption scheme on ideal lattices
CN107465508B (zh) 一种软硬件结合构造真随机数的方法、系统和设备
Al-Kaabi Methods toward enhancing RSA algorithm: a survey
Saeed et al. Improved cloud storage security of using three layers cryptography algorithms
CN115550007A (zh) 一种基于异构系统的具有等值测试功能的签密方法及系统
Zhang et al. Quantum homomorphic encryption based on quantum obfuscation
Tang et al. A flexible and scalable malicious secure aggregation protocol for federated learning
Gjøsteen et al. Efficient mixing of arbitrary ballots with everlasting privacy: How to verifiably mix the PPATC scheme
Bakas et al. Feel the Quantum Functioning: Instantiating Generic Multi-Input Functional Encryption from Learning with Errors (extended version)?
Glet et al. Secret sharing scheme for creating multiple secure storage dimensions for mobile applications.

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant