一种支持备份服务器同步密文比较的方法与流程

文档序号:16672484发布日期:2019-01-18 23:40阅读:221来源:国知局
一种支持备份服务器同步密文比较的方法与流程

本发明涉及信息安全密码领域,具体涉及一种支持备份服务器同步密文比较的方法。



背景技术:

随着信息技术的快速发展,人们日常工作及生活中产生的数据量日益庞大,为减少本地存储大规模数据的负担,越来越多的用户采用云存储等远程数据存放方式。借助于云服务器提供的服务,用户可以随时随地访问其数据,并易于实现多用户之间的数据共享。然而,用户在享用云存储服务提供便利的同时,用户数据完全由云服务器控制,难免对其数据的隐私及安全产生担忧。

考虑到云服务器的软硬件配置以及复杂的网络环境,如若软硬件出现故障,则无法实时为用户提供服务;如若遭到网络攻击,则不但可能使云服务器在一定时间内无法向用户提供服务,而且很可能造成用户数据的泄露。近年来,云存储用户数据泄露和丢失的案例不断被报导,因此,急需设计和部署相应的云数据安全保护措施,以确保用户数据的隐私性、安全性和可用性。

为保障用户数据在云服务器的安全性和可用性,引入适用于双服务器的加密技术,将用户的密文数据同时存放在主服务器和备份服务器之上,当主服务器出现故障或遭到攻击时,立即使用备份服务器向用户提供服务,完成无缝的服务器切换,不影响用户的使用体验。这要求在任一时刻,主服务器和备份服务器必须存放相同的用户数据、可获得相同的授权,且任一服务器的工作不需要另一服务器配合完成。

考虑到多用户环境下,用户数据往往有不止一个接收者和使用者,如用户的一份密文数据不但自己可以解密和使用,其所在的领导机构也应具有访问和使用权限。在此情形下,双接收者加密技术(dual-receiverencryption,dre)可以用来解决该问题。利用dre技术,发送者在加密数据时,可以指定两个预期的密文数据接收者,使得他们均可解密该密文,且在解密过程中无需交互。

由于云服务器不但具有强大的存储能力,而且具有较强的计算能力,因此用户可能希望在不影响用户数据隐私的前提下,可将部分计算任务授权给云服务器执行。考虑云服务器受托对用户密文数据进行等值比较操作(equalitytestonciphertexts,etc),以判断用户的密文是否加密了相同的明文数据。密文等值比较技术具有广泛的应用场景,如密文数据表连接和密文数据去重等。

由于用户的授权在传输过程中可能会被窃听,因此需要对授权信息进行加密,使得只有合法的云服务器可以解密获得授权。结合前述的双服务器模型及双接收者应用场景,显然要求任一密文数据接收者在授权服务器时,必须能够同时授权两台服务器执行密文比较,以确保主服务器和备份服务器同时具备为用户提供相同服务的能力。因此,授权的加密过程也需要使用dre技术加以解决。

目前已提出了部分dre技术和etc技术,取得了很成功的研究成果:设计在适应性选择密文攻击条件下的可证明安全(ind-cca2)密码学方案;构造在标准模型下可证明安全的密码学方案;构造基于身份环境下的可证明安全的密码学方案;设计通用和半通用的密码学方案构造技术等。尽管上述研究成果在某一方面具有良好性能或性质,但现有dre技术和etc技术之间无法有效的融合以满足前述需求。



技术实现要素:

鉴于以上所述现有技术的缺点,本发明的目的在于提供一种支持备份服务器同步密文比较的方法。

为实现上述目的及其他相关目的,本发明提供一种支持备份服务器同步密文比较的方法,该方法包括以下步骤:

可信任权威机构ta选取安全参数和抗碰撞哈希函数,生成公开参数;

每个用户根据所述公开参数生成各自的公钥及私钥,所述用户包括数据解密者;

主服务器和备份服务器分别根据所述公开参数生成各自的公钥及私钥;

数据加密者根据两个数据解密者的公钥执行加密算法并生成对应的密文,所述对应的密文被发送到主服务器和备份服务器;

数据解密者从主服务器或备份服务器下载所述对应的密文,然后利用各自的私钥对密文进行解密;

数据解密者通过一次授权过程,生成授权令牌ctk,同时授权主服务器和备份服务器对其密文进行等值比较;

主服务器或备份服务器对收到的授权令牌ctk进行解密,以得到授权令牌tk;

主服务器或备份服务器利用授权令牌tk,对存储的用户密文数据进行比较,以判断被比较的用户密文是否加密了相同的明文消息。

可选地,所述公开参数para具体为:para=(g,gt,g,e,q,h1(·),h2(·)),其中,g和gt为两个阶数为素数q的群,e表示双线性映射运算e:g×g→gt,h1(·)和h2(·)分别表示抗碰撞哈希函数。

可选地,所述每个用户根据所述公开参数生成各自的公钥及私钥具体包括:

用户ui随机选择zq域中的两个非0元素xi,1,xi,2,并计算群g上的两个幂运算xi,1和xi,2,其中表示域zq的非零元素子集{1,2,..,q-1},i=1,2,

用户ui得到公钥rpki=(xi,1,xi,2)以及私钥rski=(xi,1,xi,2)。

可选地,所述主服务器和备份服务器分别根据所述公开参数生成各自的公钥及私钥具体包括:

服务器si随机选择域zq中的两个非0元素yi,1,yi,2,并计算群g上的两个幂运算yi,1和yi,2,其中

服务器si得到公钥tpki=(yi,1,yi,2)以及私钥tski=(yi,1,yi,2)。

可选地,所述数据加密者根据两个数据解密者的公钥执行加密算法并生成对应的密文具体包括:

数据加密者随机选择域zq中的两个非0元素α1,α2,并计算数据m的密文c,其中c=(c1,c2,c3,c4),||表示字符串连接,表示二进制异或运算,t1和t2分别表示群gt上的两个幂运算,

可选地,所述数据解密者从主服务器或备份服务器下载所述对应的密文,然后利用各自的私钥对密文进行解密具体包括:

数据解密者ui计算群gt上的幂运算t'2和m||α1,

数据解密者ui计算群gt上的幂运算t1',并验证是否成立;如果成立,解密者ui得到明文消息m,否则解密失败。

可选地,所述数据解密者通过一次授权过程,生成授权令牌ctk,同时授权主服务器和备份服务器对其密文进行等值比较具体包括:

数据解密者ui随机选择域zq中的一个非0元素β,计算v1,v2和v3;其中,r1,r2分别表示群gt上的两个幂运算,r1=e(y1,1,y2,1)β,r2=e(y1,2,y2,2)β,v1=gβ

数据解密者ui将加密的授权令牌ctk=(v1,v2,v3)发送给主服务器s1和备份服务器s2。

可选地,所述主服务器或备份服务器对收到的授权令牌ctk进行解密,以得到授权令牌tk具体包括:

服务器si计算群gt上的幂运算r'1、r'2以及授权令牌tk,其中tk=v2/h1(r'1);

验证h2(v1||v2||tk||r'2)=v3是否成立;如果成立,服务器si得到正确的授权令牌tk,否则失败。

可选地,所述主服务器或备份服务器利用授权令牌tk,对存储的用户密文数据进行比较,以判断被比较的用户密文是否加密了相同的明文消息具体包括:

服务器si验证是否成立;如果成立,则密文c和密文c'加密了相同的明文消息,否则密文c和密文c'加密了不同的明文消息。

为实现上述目的及其他相关目的,一种支持备份服务器同步密文比较的装置,该装置包括:

初始化模块,适用于根据可信任权威机构ta选取安全参数和抗碰撞哈希函数,生成公开参数;

用户密钥生成模块,适用于每个用户根据所述公开参数生成各自的公钥及私钥,所述用户包括数据加密者和数据解密者;

服务器密钥生成模块,适用于主服务器和备份服务器分别根据所述公开参数生成各自的公钥及私钥;

数据加密模块,适用于数据加密者根据两个数据解密者的公钥执行加密算法并生成对应的密文,所述对应的密文被发送到主服务器和备份服务器;

数据解密模块,适用于数据解密者从主服务器或备份服务器下载所述对应的密文,然后利用各自的私钥对密文进行解密;

授权生成模块,适用于数据解密者通过一次授权过程,生成授权令牌ctk,同时授权主服务器和备份服务器对其密文进行等值比较;

授权解密模块,适用于主服务器或备份服务器对收到的授权令牌ctk进行解密,以得到授权令牌tk;

密文比较模块,适用于主服务器或备份服务器利用授权令牌tk,对存储的用户密文数据进行比较,以判断被比较的用户密文是否加密了相同的明文消息。

如上所述,本发明的一种支持备份服务器同步密文比较的方法,具有以下有益效果:

本发明提供一种支持备份服务器同步密文比较的方法,在云存储环境下使用该方法对数据加密、解密、同步存储于双服务器、并对用户授权加密和解密,能保障用户数据在不完全可信的双服务器模型下的隐私和可用性。通过使用主服务器和备份服务器同时存放用户数据,以及同时获得用户的授权,当主服务器功能失效时,备份服务器可以无缝的实现功能替代;通过密文的双解密者技术,数据加密者可以指定两个预期的数据接收者或使用者,加密者只需对数据加密一次,从而降低了加密的计算开销。

附图说明

为了进一步阐述本发明所描述的内容,下面结合附图对本发明的具体实施方式作进一步详细的说明。应当理解,这些附图仅作为典型示例,而不应看作是对本发明的范围的限定。

图1为本发明所述方法的系统架构图。

图2为本发明所述方法的流程框图。

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。

需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。

为了使本领域技术人员对本发明的技术方案更加清晰的理解,先对本发明中的一些技术术语进行说明。

(1)可信任权威机构(trustedauthority,ta):受各实体信任,负责系统公开参数的生成并维护所有用户的公钥信息。

(2)数据加密者(dataencryptor,de):也称数据发送者,根据系统公开参数计算自己的一对公私钥,将公钥发送给ta维护,在执行数据加密算法时可选择两个预期的数据接收者,并将加密所得的密文数据上传到主服务器和备份服务器。

(3)数据解密者(datadecryptor,dd):也称数据接收者,共两个,根据系统公开参数计算自己的一对公私钥,将公钥发送给ta维护,能够从主服务器和备份服务器上读取相应的密文数据执行解密算法,生成密文形式的授权发送给主服务器和备份服务器。

(4)主服务器(masterserver,ms):根据系统公开参数计算自己的一对公私钥,将公钥发送给ta维护,能为用户提供数据存储服务,可解密用户的密文授权进而执行密文等值比较。

(5)备份服务器(backupserver,bs):根据系统公开参数计算自己的一对公私钥,将公钥发送给ta维护,能为用户提供数据存储服务,可解密用户的密文授权进而执行密文等值比较,当主服务器功能失效时可立即为用户提供服务。

本发明所设计的密码体制使用了双线性映射相关的数学知识,特在此作相关定义说明。

定义一个函数映射e:g×g→gt将循环群g中的元素映射到循环群gt中,其中g和gt均是两个阶为素数q的循环群。双线性映射e需满足如下特性:

(1)双线性特性:对于任意u,v∈g,任意a,b∈zq,均有e(ua,vb)=e(u,v)ab成立,其中zq={0,1,2,...,q-1};

(2)非退化特性:群g中至少存在一个元素g,使得e(g,g)为群gt的生成元;

(3)高效性:存在有效的算法,使得对于任意u,v∈g,可以有效计算出e(u,v)的值。

本发明中使用的哈希函数具备两个基本特性:单向性和抗碰撞性;单向性是指从哈希函数的输入推导出输出是高效的,而无法从哈希函数的输出计算出其输入;抗碰撞性是指无法找到两个不同的输入使其具有相同的哈希函数值。

如图1所示,本发明提供一种支持备份服务器同步密文比较的方法,该方法包括以下步骤:

步骤1.可信任权威机构ta选取安全参数和抗碰撞哈希函数,生成公开参数。

具体地,该步骤1具体包括以下子步骤:

步骤11:可信任权威机构ta输入系统安全参数λ,运行初始化算法γ(1λ),输出两个阶为素数q的群g和gt以及一个双线性映射运算e:g×g→gt;

其中,所述的初始化算法γ(1λ),其运行方法如下:可信任权威机构ta输入系统安全参数λ,系统根据λ的大小,选择相应的椭圆曲线:y2=x3+ax+b(a和b为系数),用椭圆曲线上的点构成两个素数q阶的群g、gt,选择一种映射函数e,将群g中的元素映射到群gt中;一般,安全参数λ数值越大,所选取的椭圆曲线上的点也越多,群也越大。

步骤12:可信任权威机构ta运行随机数生成算法,随机选择群g中的一个生成元g;

其中,所述的随机数生成算法,其方法如下:根据步骤11所选取的椭圆曲线y2=x3+ax+b,随机选择自变量x的一个值x1,计算对应因变量y的值y1;若点(x1,y1)在所要映射的群中,则成功生成了随机元素;若点(x1,y1)不在群中,则继续重新选择x的值,直到找到出现在群中的点。

步骤13:可信任权威机构ta选择两种抗碰撞哈希函数h1(·)和h2(·),抗碰撞哈希函数h1(·)和h2(·)均满足抗碰撞哈希函数的所有特性。其中所述的抗碰撞哈希函数h1(·)和h2(·)能从pairing-basedcryptosystems库函数中调用运行。抗碰撞哈希函数h1(·)的输入为群gt中的元素,输出为群g中的元素,h2(·)的输入包含群g中的三个元素以及群gt中的一个元素,输出为长度为log2(q)+log2|g|,|g|表示群g中元素的长度。

最后,系统公开参数表示为para=(g,gt,g,e,q,h1(·),h2(·))。

步骤2.每个用户根据所述公开参数生成各自的公钥及私钥,所述用户包括数据解密者。

具体地,数据解密者ui随机选择zq域中的两个非0元素并计算数据解密者ui得到公钥rpki=(xi,1,xi,2)以及私钥rski=(xi,1,xi,2);xi,1和xi,2分别表示群g上的两个幂运算。

其中,表示域zq的非零元素子集{1,2,..,q-1},随机选择中元素的函数能从pairing-basedcryptosystems库函数中调用运行。

步骤3.主服务器s1和备份服务器s2分别根据所述公开参数生成各自的公钥及私钥。

具体地,服务器si(i=1,2)随机选择域zq中的两个非0元素并计算服务器si得到公钥tpki=(yi,1,yi,2)以及私钥tski=(yi,1,yi,2);yi,1和yi,2分别表示群g上的两个幂运算。

步骤4.数据加密者根据两个数据解密者的公钥执行加密算法并生成对应的密文,所述对应的密文被发送到主服务器和备份服务器。

具体地,数据加密者随机选择域zq中的两个非0元素并计算其中||表示字符串连接,表示二进制异或运算,t1和t2分别表示群gt上的两个幂运算。

数据加密者得到数据m的密文c=(c1,c2,c3,c4),存储在主服务器s1和备份服务器s2之上。

其中,生成的密文c,可同时被数据解密者u1和u2解密,且数据解密者u1和u2之间无需交互;密文c被同时存在主服务器s1和备份服务器s2之上,确保两台服务器存放相同的数据,当主服务器s1发生故障、无法向用户提供服务时,可实时切换到同步的备份服务器s2。

步骤5.数据解密者ui(i=1,2)从主服务器s1或备份服务器s2下载所述对应的密文c,然后利用各自的私钥对密文c进行解密。

具体地,步骤5具体包括以下子步骤:

步骤51:数据解密者ui(i=1,2)计算

步骤52:数据解密者ui(i=1,2)计算验证

是否成立;如果验证通过,解密者ui(i=1,2)得到明文消息m,否则解密失败;

步骤6.数据解密者ui(i=1,2)通过一次授权过程,生成授权令牌ctk,同时授权主服务器s1和备份服务器s2对其密文进行等值比较。

具体地,所述步骤6具体包括以下子步骤:

步骤61.数据解密者ui(i=1,2)随机选择域zq中的一个非0元素计算v1=gβ,r1=e(y1,1,y2,1)β,r2=e(y1,2,y2,2)β

步骤62.数据解密者ui(i=1,2)将加密的授权令牌ctk=(v1,v2,v3)发送给主服务器s1和备份服务器s2。

其中,数据解密者u1和u2均可执行步骤6,以生成密文形式的授权令牌ctk,且ctk可同时被主服务器s1和备份服务器s2解密恢复授权令牌tk,只要ctk未被破坏,主服务器s1和备份服务器s2必定可解密获得tk,在解密过程中主服务器s1和备份服务器s2无需交互,这样可确保主服务器s1和备份服务器s2能向用户提供相同的服务。

步骤7.主服务器或/和备份服务器对收到的授权令牌ctk进行解密,以得到授权令牌tk。

服务器si(i=1为主服务器s1,i=2为备份服务器s2)均可对收到的密文授权令牌ctk进行解密,以得到授权令牌tk。

具体地,所述步骤7具体包括以下子步骤:

步骤71.服务器si计算以及tk=v2/h1(r'1);

步骤72.服务器si计算验证h2(v1||v2||tk||r'2)=v3是否成立;如果验证通过,服务器si(i=1,2)得到正确的授权令牌tk,否则失败。

步骤8.主服务器或备份服务器利用授权令牌tk,对存储的用户密文数据进行比较,以判断被比较的用户密文是否加密了相同的明文消息。

服务器si(i=1为主服务器s1,i=2为备份服务器s2)均可利用授权令牌tk,对存储的用户密文数据(如c和c’)进行比较,以判断密文c和c’是否加密了相同的明文消息;其中,密文c’和c的计算方式一致。

具体地,所述步骤8具体包括:

服务器si(i=1,2)验证是否成立;如果成立,输出“1”,表明密文c和c’加密了相同的明文消息,否则输出“0”,表示c和c’加密了不同的明文消息;

其中,主服务器s1和备份服务器s2均可利用所获得的授权令牌tk,对向其颁发授权的用户的密文数据进行比较,意味着主服务器s1和备份服务器s2能向该用户提供相同的服务;此外,步骤8也支持主服务器s1和备份服务器s2对不同来源的密文数据进行等值比较,只要获得这些用户颁发的合法授权即可,如,若密文c和c’对应的授权令牌分别为tk1和tk2,服务器si(i=1,2)验证如果成立,则密文c和c’加密了相同的明文消息,否则c和c’加密了不同的明文消息。

综上所述,本发明提出的一种支持备份服务器同步密文比较的方法。首先,在云存储环境下,数据发送者可以针对待加密的数据指定两个接收者,然后将密文数据存储到云端,只有指定的接收者可以获得数据的明文内容,充分确保了用户数据的隐私;其次,用户在将密文数据发送到云端时,需同时存放到主服务器和备份服务器,使得当主服务器出现故障或遭到攻击而无法为用户提供服务时,可立即切换到备份服务器,从而提升用户数据的可用性;再次,数据的两个接收者均可同时授权主服务器和备份服务器对其密文数据在不解密的前提下进行比较,不但最大限度的保障了用户数据的隐私,而且保证了主服务器和备份服务器的状态一致性;最后,数据接收者的授权以密文形式发送给主服务器和备份服务器,保证了授权在传输过程中的隐私。

于另一实施例中,本发明还提供一种支持备份服务器同步密文比较的装置,该装置包括:

初始化模块,适用于根据可信任权威机构ta选取安全参数和抗碰撞哈希函数,生成公开参数;

用户密钥生成模块,适用于每个用户根据所述公开参数生成各自的公钥及私钥,所述用户包括数据加密者和数据解密者;

服务器密钥生成模块,适用于主服务器和备份服务器分别根据所述公开参数生成各自的公钥及私钥;

数据加密模块,适用于数据加密者根据两个数据解密者的公钥执行加密算法并生成对应的密文,所述对应的密文被发送到主服务器和备份服务器;

数据解密模块,适用于数据解密者从主服务器或备份服务器下载所述对应的密文,然后利用各自的私钥对密文进行解密;

授权生成模块,适用于数据解密者通过一次授权过程,生成授权令牌ctk,同时授权主服务器和备份服务器对其密文进行等值比较;

授权解密模块,适用于主服务器或备份服务器对收到的授权令牌ctk进行解密,以得到授权令牌tk;

密文比较模块,适用于主服务器或备份服务器利用授权令牌tk,对存储的用户密文数据进行比较,以判断被比较的用户密文是否加密了相同的明文消息。

在本实施例中,所述的初始化模块、用户密钥生成模块、服务器密钥生成模块、数据加密模块、数据解密模块、授权生成模块、授权解密模块、密文比较模块的构成或作用或实现方法都可以在另一实施例中实现,本实施例就不再赘述。

本发明所述的一种支持备份服务器同步密文比较的装置保障了云存储用户数据的隐私性和可用性,降低了发送者加密数据的计算开销,实现了多用户之间的安全数据分享,利用云服务器的计算资源降低了用户的计算成本。

综上所述本发明在云存储环境下使用该方法对数据加密、解密、同步存储于双服务器、并对用户授权加密和解密,能保障用户数据在不完全可信的双服务器模型下的隐私和可用性。通过使用主服务器和备份服务器同时存放用户数据,以及同时获得用户的授权,当主服务器功能失效时,备份服务器可以无缝的实现功能替代;通过密文的双解密者技术,数据加密者可以指定两个预期的数据接收者或使用者,加密者只需对数据加密一次,从而降低了加密的计算开销。该方法的优点和功效是:

1)本发明方法使用主服务器和备份服务器同时存放用户数据并同时获得用户授权,实现了两台服务器状态的同步,当主服务器由于软硬件配置故障或遭到网络攻击而无法提供服务时,系统可立即切换到备份服务器,从而不影响用户使用云存储服务的体验。主服务器和备份服务器不但存放用户的密文数据,而且在获得用户的合法授权之后,可以针对用户的密文数据执行等值比较操作,在不解密的前提下实现对密文数据集合的划分,从而减轻了用户的计算负担。

2)本发明方法允许数据发送者指定两个数据接收者,通过一次加密过程生成的密文数据可以同时由这两个接收者解密,而无需重复执行两次加密过程并分别发送给两个接收者,减轻了数据加密者的计算负担。由于密文数据被存储在云服务器之上,因此实现了数据在发送者和两个接收者之间的安全分享。任一接收者从云服务器获得密文数据之后,仅需利用严密保管的解密私钥执行解密算法,即可得到对应的明文数据。

3)本发明方法考虑了用户密文数据比较授权的安全性,用户在向主服务器和备份服务器颁发授权时,先对其加密,然后将密文形式的授权发送给两台服务器,使得在传输过程中不会泄露授权内容。当主服务器和备份服务器分别获得密文形式的授权后,仅需利用严密保管的解密私钥执行授权解密算法,即可得到合法的用户授权。在获得用户的合法授权之前,主服务器和备份服务器均无法针对用户的密文数据进行等值比较,进一步保障了用户数据在云端存储的安全性。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1