一种面向移动端的数据完整性校验方法转让专利
申请号 : CN201711275694.X
文献号 : CN108123934B
文献日 : 2021-02-19
发明人 : 卢澄志 , 叶可江 , 须成忠
申请人 : 深圳先进技术研究院
摘要 :
权利要求 :
1.一种面向移动端的数据完整性校验方法,其特征在于,包括如下步骤:步骤S1、利用BLS短签名对移动端产生文件进行签名;
步骤S2、签名验证成功后,利用动态哈希表存储移动端产生的文件的更新信息和文件的验证优先度,根据验证优先度对移动端产生的文件进行有选择的验证;
在步骤S2内包括如下步骤:
步骤S21、利用动态哈希表存储用户上传的文件以及文件分块的信息;
步骤S22、利用动态哈希表存储用户更新文件以及文件分块的信息;
步骤S23、根据文件的更新信息重新计算文件验证优先度,文件验证优先度与文件块的版本号成正比,与更新时间成反比;
步骤S24、根据文件验证优先度对文件进行选取;
步骤S25、利用验证优先度对移动端产生的文件进行有选择的验证;
所述动态哈希表为根据关键码值而直接进行访问的数据结构;所述动态哈希表通过把所述关键码值映射到表中一个位置来访问记录,以加快查找的速度;映射函数为散列函数,存放记录的数组为散列表;给定表M,存在函数f(key),对给定的关键字值,代入函数后若能得到包含该关键字的记录在表中的地址,则表M为哈希表,函数f(key)为哈希函数。
2.根据权利要求1所述的一种面向移动端的数据完整性校验方法,其特征在于,还包括如下步骤:步骤S3、对经过处理的上传文件进行文件信息表的更新。
3.根据权利要求1或2所述的一种面向移动端的数据完整性校验方法,其特征在于,在步骤S1内包括如下步骤:步骤S11、利用BLS短签名对加密的文件分块进行签名;
步骤S12、利用BLS短签名对待验证文件分块进行签名验证;
步骤S13、利用BLS短签名对云服务提供商提供的证明进行验证。
4.根据权利要求2所述的一种面向移动端的数据完整性校验方法,其特征在于,在步骤S3内包括如下步骤:步骤S31、用户选择操作文件;
步骤S32、对文件进行分块加密;
步骤S33、构造更新信息,添加操作说明;
步骤S34、将文件发送给云服务提供商;
步骤S35、将更新信息发送给可信第三方;
步骤S36、可信第三方根据更新信息修改文件信息表;
步骤S37、返回插入成功,用户删除本地信息。
5.根据权利要求3所述的一种面向移动端的数据完整性校验方法,其特征在于,在步骤S11内包括如下步骤:步骤S111、用户登录;
步骤S112、用户生成密钥以及签名所用的参数。
6.根据权利要求5所述的一种面向移动端的数据完整性校验方法,其特征在于,在步骤S12内包括如下步骤:步骤S121、选择文件,生成加密文件分块、文件块标签同时生成文件块的更新信息。
7.根据权利要求6所述的一种面向移动端的数据完整性校验方法,其特征在于,在步骤S13内包括如下步骤:步骤S131、用户将加密文件分块、文件ID、文件块签名发送给云服务提供商;
步骤S132、用户将文件和文件块更新信息发送到可信第三方;
步骤S133、可信第三方将文件和文件块的更新信息插入到动态哈希表中;
步骤S134、可信第三方根据更新信息计算验证优先度;
步骤S135、返回发送成功信息。
8.根据权利要求1所述的一种面向移动端的数据完整性校验方法,其特征在于,在步骤S24内,还包括如下步骤:步骤S241、用户请求验证;
步骤S242、可信第三方读取文件信息表,根据验证优先度选取文件。
9.根据权利要求8所述的一种面向移动端的数据完整性校验方法,其特征在于,在步骤S25内,还包括如下步骤:步骤S251、可信第三方根据选取的文件构造验证挑战并将挑战发送给云服务提供商;
步骤S252、云服务提供商生成证明信息并返回给可信第三方;
步骤S253、可信第三方进行完整性验证;
步骤S254、可信第三方返回验证结果。
说明书 :
一种面向移动端的数据完整性校验方法
技术领域
背景技术
字等手段记录下来;而伴随着个人数据量的不断增大和人们生活节奏的加快,本地存储容
量不能满足人们的存储需求,同时人们希望能够将智能终端产生的数据共享到不同的平
台,所以人们选择将数据上传到云端。
中增加了用户数据泄露甚至损坏的可能,同时,云服务提供商提供的是完全透明的服务,造
成云服务提供商内部的问题如数据应用迁移问题、服务接口问题等用户无法得知,对云计
算安全带来了新的挑战,对于使用云服务提供商提供的云服务的用户来说,在本地没有数
据的备份的状况下,他们希望能够对云端数据执行周期性的高效验证,同时希望能够满足
验证地便携性。
发明内容
轻可信第三方在验证移动端数据完整性时的压力,同时降低可信第三方的计算、存储和通
信开销。
存储和通信开销。
附图说明
具体实施方式
不用于限定本发明。
本发明的限制。此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”
的含义是两个或两个以上。
在本发明中的具体含义。
息,增加了云服务提供商的存储开销,在更新文件时需要对整个哈希树进行重构,对可信第
三方带来严重的计算和通信开销,同时现有技术每次验证都对所有的移动端的文件进行验
证,会带来严重的通信开销。
存储和通信开销,还保证验证的可靠度。
置来访问记录,以加快查找的速度,这个映射函数叫做散列函数,存放记录的数组叫做散列
表,给定表M,存在函数 f(key),对任意给定的关键字值key,代入函数后若能得到包含该关
键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)为哈希(Hash) 函数。
行逆向运算的关系。
议,执行验证操作。
补的运算,一个用于签名,另一个用于验证。数字签名,就是只有信息的发送者才能产生的
别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个
有效证明。数字签名是非对称密钥加密技术与数字摘要技术的应用。
至是4096位密钥),它的签名长度缩短为160位,却具有相同的安全级别,因此,它又被称为
BLS短签名。
户生成加密文件用的密钥k。
信息,ti表示文件块的更新的时间戳,vi表示文件块的版本号,同时用户生成文件块签名值
。
更新信息时,在文件信息表中添加一条文件记录,包括编号、文件标识符ID、文件分块数、验
证优先度以及数据块的信息链表,其中数据块的信息链表的节点内容包括最近修改时间、
版本号以及随机数,验证优先度则是由数据块的更新信息计算所得,优先度越高,文件被选
中的概率越高,更新时间越早,验证的优先度越高(由于保存时间越长的文件损坏的概率越
高,所以这里更新时间早表示存储在云端的时间长),文件块版本号越小,验证优先度越高。
Var=yr,其中r是随机正整数,将挑战信息P发送给云服务提供商。
信息P发送给可信第三方进行验证。
是否等于Dr,如果相等,则数据完整性验证通过,否则完
整性验证失败。
OP,Φ*,i},其中,OP包括插入数据块、删除数据块和更改数据块。
后添加一个节点,如果OP是删除数据块,则将对应的节点删除,如果是更改操作,则修改节
点的更新信息,更新完毕后,重新计算验证优先度。
次对文件进行完整性校验的需求,用户按照图1的方法对这些关键的文件进行处理,过了一
阵子,用户想对自己上传的所有文件进行完整性验证,于是用户提交验证请求,按照图2的
流程进行完整性验证,之后用户如果想对文件进行修改,首先用户下载文件,解密修改后按
照图3将文件重新上传回云服务器,具体地讲,如图1所示,首先,用户根据乘法循环群G1生
成用户私钥SK=(a)以及公钥PK=(g,y,u)(在本方法中,为了保证数据的安全,所有的密钥
都是由用户生成,公钥公开发送给可信第三方,这里采用的是数字签名技术,密钥K用于对
a
文件进行加密,以防信息泄露),其中g,u∈G1,a是Zp群中取出的随机值,而y=g ,用户发布
公钥PK。同时用户生成加密文件用的密钥k;然后,加密文件分块ci=E(Mi,k),并对加密后
的文件分块进行签名(对文件先进行分块再进行加密),用户生成文件的信息x={ID,Φ},
其中ID表示文件标识符,Φ={vi,ti}表示文件分块的更新信息,ti表示文件块的更新的时
间戳,vi表示文件块的版本号,用户生成文件块签名值 ;再然
后,用户将文件C={ci},文件ID和签名值{σi}发送给云服务提供商,云服务提供商对数据
进行一定的处理,计算θi=e(σi,y);最后,将文件的更新信息x发送给可信第三方,可信第
三方在接收到用户发送的更新信息时,在文件信息表中添加一条文件记录,包括编号、文件
标识符ID、文件分块数、验证优先度以及数据块的信息链表,其中数据块的信息链表的节点
内容包括最近修改时间、版本号以及随机数,验证优先度则是由数据块的更新信息计算所
得;优先度越高,文件被选中的概率越高,更新时间越早,验证的优先度越高(由于保存时间
越长的文件损坏的概率越高,所以这里更新时间早表示存储在云端的时间长),文件块版本
号越小验证优先度越高。如图2所示,用户对自己的文件完整性进行验证(验证是由用户发
起的,主要是对上传到云端的文件进行选择性验证)的过程,首先,用户发送验证请求;然
后,可信第三方在接收到验证请求后,读取文件信息表,根据验证优先度对文件进行选择,
优先度越高,被选中的概率越高,生成验证文件集{{IDN};再然后,对于验证文件集中的每
一个文件ID,获取其文件分块数n,可信第三方构成挑战信息 P={F={IDN},Sm={si|0<i
<j,j∈[1,n]},R={Ri|i∈S},Var},其中Var=yr,其中r是随机正整数,将挑战信息P发送
给云服务提供商;再然后,云服务提供商根据P从用户的数据库中取出相应的数据构造挑战
证明P={D,M},其中 云服务提供商将证明
信息P 发送给可信第三方进行验证;最后,可信第三方对挑战证明进行验证,可信第三方根
据集合S从用户文件信息表中提取出vi,ti,计算 判断
r
是否等于D ,如果相等,则数据完整性验证通过,否则完
整性验证失败。如图3所示,描述了用户上传经过处理的文件的信息更新过程;首先,用户对
操作过的文件(这里主要指的是更新用户曾经上传的文件,例如一个数据表格,可能在上传
至云端之后发现数据出错,便从云端下载下来进行修改,修改完毕对文件执行图3的过程)
进行分块加密;然后,用户每个文件块重新构造其更新信息并添加文件操作说明,将重新生
成后的文件块与原来的文件块进行比对,生成新的文件更新信息x*={ID,OP,Φ*,i},OP包
括插入数据块、删除数据块、更改数据块等;再然后,用户将文件发送给云服务提供商;最
后,用户将文件更新信息发送到可信第三方,可信第三方根据OP对文件信息表进行修改,如
果OP是插入数据块,则在对应ID的文件记录的数据链表中第i个节点之后添加一个节点,如
果OP是删除数据块,则将对应的节点删除,如果是更改操作,则修改节点的更新信息,更新
完毕后,重新计算验证优先度。