一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

满足语义安全的无可信第三方云存储密文去重方法与系统与流程

2021-11-18 01:43:00 来源:中国专利 TAG:


1.本发明属于云数据密文去重技术领域,尤其涉及一种满足语义安全的无可信第三方云存储密文去重方法与系统。


背景技术:

2.本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
3.去重技术被云服务提供商广泛采用,保证相同的数据副本只在云服务器存储一次,若有相同副本出现,则云服务器为上传者创建访问该数据副本的链接,以降低存储成本。然而,目前云存储用户常通过上传加密数据来保证数据机密性,由于使用语义安全的加密算法在不同密钥下对消息进行加密会形成不同的密文,因此传统的明文去重方法无法应用于云中密文数据。发明人发现现有技术中存在以下技术问题:
4.(1)现有的基于收敛加密或消息锁加密的密文去重方法与系统无法保证密文数据的语义安全性,安全等级较低,容易受到离线暴力攻击,存在安全隐患。
5.(2)已有的满足语义安全性的密文去重方法与系统大多需要一个可信第三方负责分发数据加密密钥或者需要部分其他之前上传过相同数据的用户在线与新的数据上传者执行会话密钥交换协议来安全的分发数据加密密钥,这些要求在现实的云存储环境中并不容易满足,导致方法的实用性较差。
6.(3)已有的无需可信第三方在线或者无需其他之前上传过相同数据的用户在线的满足语义安全性的密文去重方法与系统需要预先限定一个用户群,并由一个可信中心为用户群中的用户预先生成一些辅助信息,导致云存储服务器可以与用户群中的其他用户合谋,获得数据上传者的数据加密密钥。


技术实现要素:

7.为了解决上述背景技术中存在的技术问题,本发明提供一种满足语义安全的无可信第三方云存储密文去重方法及系统,其利用智能合约与上传数据的用户执行数据完整性证明协议,根据完整性验证结果将原始数据加密密钥发送给后续上传用户,无需可信第三方,支持客户端利用语义安全加密算法加密数据,可以提供更强的安全性和实用性。
8.为了实现上述目的,本发明采用如下技术方案:
9.本发明的第一个方面提供一种满足语义安全的无可信第三方云存储密文去重方法,其包括:
10.数据上传者将数据的短哈希值发送给云存储服务器;
11.云存储服务器利用该短哈希值进行匹配,判断数据是否可能已经存在云存储中;
12.其中,所述数据上传者包括数据首次上传者和数据后续上传者;数据首次上传者利用外包数据完整性远程审计方案的密钥生成算法和安全参数生成用于数据完整性校验的公私钥对,以实现数据首次上传过程;数据后续上传者利用公钥加密算法的密钥生成算
法生成用于公钥加解密的公私钥对,再基于数据完整性校验,利用公私钥对来解密数据加密密钥的密文或执行数据首次上传过程。
13.若不匹配,即数据肯定不存在云存储中,则数据首次上传者生成上传数据明文的完整性认证集合,将密文数据上传给云存储服务器,将加密密钥和完整性校验代码写入可保护数据机密性的智能合约t0,将数据的完整性认证集合以及自己的公钥写入智能合约t1,完成数据首次上传过程。
14.若匹配,即数据可能已存在云存储中,则数据后续上传者激活智能合约t1获取挑战/认证信息,激活智能合约t0,首先校验数据完整性,若数据完整性校验通过,即说明待传数据确实存在云存储中,则t0利用数据后续上传者公钥对数据加密密钥进行加密,并将密文发给数据后续上传者,利用数据后续上传者的私钥来解密数据加密密钥的密文,获得数据加密密钥;若数据完整性校验未通过,即说明待传数据并未存在云存储中,则执行数据首次上传过程。
15.本发明的第二个方面提供一种满足语义安全的无可信第三方云存储密文去重系统,其具体包括数据上传者和云存储服务器;
16.所述数据上传者,用于将数据的短哈希值发送给云存储服务器;
17.所述数据上传者包括数据首次上传者和数据后续上传者;
18.其中,数据首次上传者利用外包数据完整性远程审计方案的密钥生成算法和安全参数生成用于数据完整性校验的公私钥对,以实现数据首次上传过程;数据后续上传者利用公钥加密算法的密钥生成算法生成用于公钥加解密的公私钥对,再基于数据完整性校验,利用公私钥对来解密数据加密密钥的密文或执行数据首次上传过程;
19.云存储服务器,其用于利用该短哈希值进行匹配,判断数据是否可能已经存在云存储中。
20.若不匹配,即数据肯定不存在云存储中,则数据首次上传者,用于生成上传数据明文的完整性认证集合,将密文数据上传给云存储服务器,将加密密钥和完整性校验代码写入可保护数据机密性的智能合约t0,将数据的完整性认证集合以及自己的公钥写入智能合约t1,完成数据首次上传过程。
21.若匹配,即数据可能已存在云存储中,则数据后续上传者,用于激活智能合约t1获取挑战/认证信息,激活智能合约t0,首先校验数据完整性,若数据完整性校验通过,即说明待传数据确实存在云存储中,则t0利用数据后续上传者公钥对数据加密密钥进行加密,并将密文发给数据后续上传者,利用数据后续上传者的私钥来解密数据加密密钥的密文,获得数据加密密钥;若数据完整性校验未通过,即说明待传数据并未存在云存储中,则执行数据首次上传过程。
22.与现有技术相比,本发明的有益效果是:
23.(1)本发明的该方法支持客户端利用安全性更高的语义安全的加密算法对数据进行加密,可以避免敌手通过离线暴力攻击猜测数据明文,保证数据的机密性。该方法具有更强的安全性。
24.(2)本发明的该方法不依赖可信第三方进行数据加密密钥的分发,也不要求其他之前上传过相同数据的用户在线与新的数据上传者执行会话密钥交换协议来安全地分发数据加密密钥,而是采用智能合约解决数据加密密钥的安全分发问题,具有更高的实用性。
由于无需限定用户集,不需要可信中心为用户集合中的用户预先生成用于分发加密密钥的辅助信息,因此可以避免云存储服务器与其他用户合谋的问题。
25.本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
26.构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
27.图1是本发明实施例的满足语义安全的无可信第三方云存储密文去重方法流程图;
28.图2是本发明实施例的短哈希值和数据密文以及相应的拥有者/智能合约地址的索引;
29.图3是本发明实施例的智能合约t0功能示意图;
30.图4是本发明实施例的智能合约t1功能示意图;
31.图5是本发明实施例的满足语义安全的无可信第三方云存储密文去重系统结构示意图。
具体实施方式
32.下面结合附图与实施例对本发明作进一步说明。
33.应该指出,以下详细说明都是示例性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
34.需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
35.实施例一
36.如图1所示,本实施例的满足语义安全的无可信第三方云存储密文去重方法,其具体包括如下步骤:
37.数据上传者将数据的短哈希值发送给云存储服务器;
38.云存储服务器利用该短哈希值判断数据是否已经存在云存储中;
39.所述数据上传者包括数据首次上传者和数据后续上传者;其中,数据首次上传者利用外包数据完整性远程审计方案audit的密钥生成算法和安全参数生成用于数据完整性校验的公私钥对;数据后续上传者利用公钥加密算法pke的密钥生成算法生成用于公钥加解密的公私钥对。
40.具体地,数据上传者将数据的短哈希值发送给云存储服务器,云存储服务器在已有数据短哈希值表中搜索该短哈希值,若能匹配到该短哈希值,则说明数据可能已经存在云存储中,否则说明数据尚未存储在云存储中。
41.若该短哈希值不存在,则数据首次上传者生成上传数据明文的完整性认证集合,
将密文数据上传给云存储服务器,将加密密钥和完整性校验代码写入可保护数据机密性的智能合约t0,将数据的完整性认证集合以及自己的公钥写入智能合约t1,完成数据上传过程。
42.数据首次上传者利用外包数据完整性远程审计方案audit的密钥生成算法生成的私钥,使用外包数据完整性远程审计方案audit的认证集合生成算法来生成待上传数据的完整性认证信息。
43.其中,所使用的外包数据完整性远程审计方案audit包括如下算法:
44.密钥生成:用户生成用于对自己的数据进行远程完整性校验的公私钥对;
45.认证集合生成:对数据文件f分块,f={m1,
……
,m
n
},生成数据f的认证集合φ;
46.完整性验证协议,包含如下两个算法:
47.i)完整性证明生成:设数据f的认证集合为φ,挑战chal={(s
i
,v
i
)}
i∈{1,..,c}
,其中s
i
∈{1,

,n},j=1,

,c。则根据φ、chal以及数据f={m1,
……
,m
n
}生成数据f的完整性证明p;
48.ii)完整性校验:利用用户公钥和挑战chal对完整性证明p进行校验,如果校验通过则说明外包数据被云存储完整的保存,否则说明外包数据已被破坏。
49.所使用的公钥加密算法pke包括如下算法:
50.密钥生成:用户生成用于对公钥加解密的公私钥对;
51.加密:利用用户公钥对数据进行加密,生成数据密文;
52.解密:利用用户私钥对数据密文进行解密,得到数据明文。
53.作为一个或多个实施例,所述方法中所使用的数字签名算法包括如下算法:
54.密钥生成:生成用于数字签名和验证的公私钥对;
55.签名:利用私钥对数据进行签名,生成数字签名;
56.验证签名:利用公钥对数据和数字签名进行验证,验证通过则输出“true”,否则输出“false”。
57.在具体实施中,可以使用任意的安全的外包数据完整性远程审计方案audit的密钥生成算法来生成用于完整性校验的公私钥对,可以使用任意的安全的公钥加密算法pke的密钥生成算法来生成用于公钥加密的公私钥对;
58.需要说明的是,可以使用任意的满足语义安全的对称加密算法;可以使用任意的安全的数字签名算法;可保护数据机密性的智能合约可由zkay编写并编译为solidity智能合约在以太坊上执行,也可以采用hyperledger fabric的数据隐私保护机制在hyperledger fabric执行。
59.智能合约t0的功能如图3所示,输入挑战chal以及t1对chal的签名sig、智能合约t1所使用的签名公钥pk、数据完整性证明p,t0首先校验签名sig,如果签名sig是t1对chal的签名,则验证数据完整性证明p,如果证明p验证通过,则利用上传者公钥对数据加密密钥进行加密并输出密文。
60.智能合约t1的功能如图4所示,选择1到n中的一个整数c,根据当前状态state和伪随机函数pfunc生成挑战数据块索引{s
i
}
i=1,

,c
,利用当前状态state、数据块索引和哈希函数hfunc生成数据块权重系数{v1,

,v
c
},构造挑战chal={(s
i
,v
i
)}
i∈{1,

c}
,根据chal从数据的完整性认证集合找到对应的认证auth,使用数字签名方案得到对chal和auth的签名
sig,输出chal、auth以及签名sig。
61.其中,生成挑战chal的过程如下:
62.利用当前状态state以及伪随机函数pfunc生成数据块索引i={s1,

,s
c
},即,s
i
=pfunc(state||i),利用当前状态state、数据块索引和哈希函数hfunc生成数据块权重系数{v1,

,v
c
},即,v
i
=hfunc(state||s
i
),挑战chal={(s
i
,v
i
)}
i∈{1,

c}

63.数据的首次上传者选择加密密钥,利用满足语义安全的对称加密算法对待上传数据进行加密;
64.数据上传者首先利用判断待上传数据是否已存在云存储服务器上,如果不存在,则上传者执行如下步骤:
65.步骤1.1:生成上传数据的完整性认证集合;
66.步骤1.2:选择加密密钥k并对上传数据进行加密;
67.步骤1.3:将数据密文上传给云存储服务器;
68.步骤1.4:将加密密钥k、生成的公钥和audit方案中的完整性校验算法代码写入可保护数据机密性的智能合约t0,将数据的完整性认证集合写入智能合约t1;
69.步骤1.5:云存储服务器建立短哈希值和数据密文以及相应的拥有者/智能合约地址的索引,索引如图2所示,完成数据上传过程。
70.在一个或多个实施例中,数据上传者在完成上传步骤后,删除本地存储的外包数据文件。
71.如果该短哈希值存在,则数据可能已经被其他用户上传过,云存储服务器按照索引将该短哈希值对应的智能合约(t0,t1)的地址发给上传者,上传者执行如下步骤:
72.步骤2.1:生成用于公钥加解密的公私钥对,对所有智能合约(t0,t1)执行如下步骤;
73.步骤2.2:激活智能合约t1,t1根据当前状态生成挑战chal并根据chal从数据的完整性认证集合找到对应的认证auth,t1使用数字签名方案对chal和auth进行签名,将chal、auth以及签名输出给上传者;
74.步骤2.3:上传者验证智能合约t1对chal和auth的签名,签名验证通过后再利用自己的文件数据和chal/auth并使用audit方案中的完整性证明生成算法生成数据的完整性证明p,将上传者公钥、证明p、chal以及t1对chal的签名作为输入激活智能合约t0;
75.步骤2.4:智能合约t0首先验证chal的签名,若签名验证通过则利用完整性校验代码验证p,若校验通过,则说明上传者确实拥有该智能合约对应的完整的数据文件,t0利用上传者公钥对数据加密密钥进行加密,并将密文发给上传者,完成上传过程,跳到步骤2.5;若完整性校验不通过,则说明上传者并不拥有该智能合约对应的完整的数据文件,跳到步骤2.2,执行下一对智能合约;若对该短哈希值对应的所有智能合约,完整性校验均未通过,则说明上传者本次要上传的数据之前并未被其他用户上传,只是短哈希值与之前的某些数据文件相同,跳到步骤1.1,执行数据上传,不再执行步骤2.5。
76.步骤2.5:上传者利用自己的私钥解密数据加密密钥的密文,可以获得数据加密密钥。数据的后续上传者无需真正上传数据。
77.实施例二
78.如图5所示,本实施例提供了一种满足语义安全的无可信第三方云存储密文去重
系统,其具体包括:数据上传者和云存储服务器;
79.所述数据上传者,用于将数据的短哈希值发送给云存储服务器;所述数据上传者包括数据首次上传者和数据后续上传者;其中,数据首次上传者利用外包数据完整性远程审计方案audit的密钥生成算法和安全参数生成用于数据完整性校验的公私钥对;数据后续上传者利用公钥加密算法pke的密钥生成算法生成用于公钥加解密的公私钥对。
80.云存储服务器,其用于利用该短哈希值进行匹配,判断数据是否可能已经存在云存储中。
81.若不匹配,即数据肯定不存在云存储中,则数据首次上传者生成上传数据明文的完整性认证集合,将密文数据上传给云存储服务器,将加密密钥和完整性校验代码写入可保护数据机密性的智能合约t0,将数据的完整性认证集合以及自己的外包数据完整性远程审计方案audit的公钥写入智能合约t1,完成数据首次上传过程;
82.若匹配,即数据可能已存在云存储中,则数据后续上传者,激活智能合约t1获取挑战/认证信息,激活智能合约t0,首先校验数据完整性,若数据完整性校验通过,即说明待传数据确实存在云存储中,则t0利用数据后续上传者公钥对数据加密密钥进行加密,并将密文发给数据后续上传者,利用数据后续上传者的私钥来解密数据加密密钥的密文,获得数据加密密钥;若数据完整性校验未通过,即说明待传数据并未存在云存储中,则执行数据首次上传过程。
83.以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献