CN112883398B - 基于同态加密的数据完整性验证方法 - Google Patents

基于同态加密的数据完整性验证方法 Download PDF

Info

Publication number
CN112883398B
CN112883398B CN202110237036.1A CN202110237036A CN112883398B CN 112883398 B CN112883398 B CN 112883398B CN 202110237036 A CN202110237036 A CN 202110237036A CN 112883398 B CN112883398 B CN 112883398B
Authority
CN
China
Prior art keywords
verification
file
data
cloud server
data block
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
CN202110237036.1A
Other languages
English (en)
Other versions
CN112883398A (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.)
Xidian University
Original Assignee
Xidian University
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 Xidian University filed Critical Xidian University
Priority to CN202110237036.1A priority Critical patent/CN112883398B/zh
Publication of CN112883398A publication Critical patent/CN112883398A/zh
Application granted granted Critical
Publication of CN112883398B publication Critical patent/CN112883398B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于同态加密的数据完整性验证方法,主要解决现有技术动态更新后验证效率下降和无法抵御重放攻击的问题。其实现方案是:1)将文件进行分块、对文件分块进行加密并上传到云服务器;2)生成验证数据块编号和辅助验证信息,打包上传到云服务器;3)云服务器根据验证数据块编号和辅助验证信息计算数据完整性签名;4)用户在本地计算明文验证签名;5)用户对比数据完整性签名和明文验证签名进行完整性判决;6)用户对存储在云服务器的文件进行动态更新,循环执行2)到5)。本发明避免了树形结构频繁更新后的不平衡问题,并通过在每次验证过程中引入随机信息,提高了抵御重放攻击的能力,可用于云存储服务协议。

Description

基于同态加密的数据完整性验证方法
技术领域:
本发明属于计算机技术领域,尤其涉及一种数据完整性验证方法,可用于云存储服务协议。
背景技术:
目前,云计算技术迅速发展,能够有效地帮助用户节约计算资源、减少成本,因此大量的数据文件都被用户上传到云端,这意味着用户失去了对云端数据的控制权,而且存储在云服务器上的数据很容易由于各种原因丢失或被非法篡改,因此对存储在云服务器上的数据进行周期性数据完整性验证是非常必要的。
同时,在上传到云端的数据文件全生命周期中,用户可能会基于自身需要对存储在云端上的文件进行增、删、改、查,数据完整性验证系统需要能够对更新后的文件仍然具备良好的验证性能。
现有技术中,大部分数据完整性验证方法不能够有效地支持云端文件的各种动态操作,文献“Provable Data Possession at Untrusted Stores”首先对数据完整性验证方案进行了形式化定义,并基于RSA同态签名设计了两个不同验证策略的PDP方案,但是该方案没有考虑云端文件动态更新后的验证策略。文献“Dynamic Provable Data Possession”基于跳表和RSA树设计了支持动态操作的动态PDP方案,但是该方案引入了树形辅助数据结构进行管理并且云服务器的存储成本和计算成本均比较高。除此之外,基于树形结构的动态完整性验证方法的劣势在于经过一系列更新操作之后,树形结构可能变得不平衡,影响验证的执行效率。
发明内容:
本发明的目的在于针对上述现有技术的不足,提出一种基于同态加密的数据完整性验证方法,通过支持对文件的动态操作,省去辅助数据结构,提高验证效率,降低存储和计算成本,同时通过在每次验证过程中引入随机信息实现抵御重放攻击。
为实现上述目的,本发明的技术方案,包括以下步骤:
(1)用户将要上传的文件分为n块,并将分割的文件块加密为文件密文数据块Ci,i∈{1,2,...,n},上传到云服务器;
(2)用户选择k个数据块作为验证数据块,再随机生成辅助验证信息Fw,并将该辅助验证信息加密,生成辅助验证信息密文Cw,将验证数据块编号和辅助验证信息密文Cw上传到云服务器;
(3)云服务器根据验证数据块编号选择对应的文件密文数据块
Figure BDA0002960641130000021
计算数据完整性签名L:
Figure BDA0002960641130000022
其中,vj
Figure BDA0002960641130000023
对应的验证数据块编号,J为Paillier算法模数;
(4)云服务器将计算出的数据完整性签名L返回给用户,用户解密云服务器返回的数据完整性签名得到L',并根据验证数据块编号将对应的明文数据块和辅助验证信息计算明文验证签名Ver:
Figure BDA0002960641130000024
其中,
Figure BDA0002960641130000025
为验证数据块编号对应的明文数据块;
(5)将明文验证签名Ver与解密后的数据完整性签名L'进行对比:
若Ver=L',则判定存储在云服务器上的数据是完整的;
若Ver≠L',则判定存储在云服务器上的数据是不完整的;
(6)用户对存储在云服务器上的文件进行动态更新,重复(2)至(5)。
与现有技术相比,本发明具有如下效果:
第一,本发明由于在传统的数据完整性验证方法的基础上去除了辅助数据结构,利用Paillier加密算法密文进行同态运算获取数据完整性签名,通过对比数据完整性签名和本地明文生成的明文验证签名判断存储在云端上的文件的完整性,避免了因用户对云端文件进行频繁更新而导致的树形辅助结构不平衡的问题,且数据完整性验证过程的执行效率不受系统状态更新的影响,使得验证过程更加高效稳定。
第二,本发明由于在验证过程中设置了随机生成的辅助验证信息,利用辅助验证信息参与数据完整性签名的计算,能够抵御云服务器的重放攻击,提高了安全性。
附图说明
图1为本发明的实现总流程图。
具体实施方式:
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
参照图1,本发明的实现步骤如下:
步骤1,用户分割文件F,将文件块进行加密并上传到云服务器。
1.1)根据要上传到云服务器上的文件F的总长度lF,确定分块的长度l,计算文件分块数量
Figure BDA0002960641130000031
将文件F分割为n个长度为l的块,并编号为:F={F1,F2,...,Fi,...,Fn},其中Fi表示第i个分块,1≤i≤n,如果Fn的长度不足,则在其末尾补0延长至长度l;
1.2)用户运行Paillier算法计算出公钥和私钥,然后使用公钥将每个分割后的明文数据块加密为文件密文数据块Ci,i∈{1,2,...,n},并按照对应的明文数据块进行编号;
1.3)用户将加密后的文件密文数据块上传给云服务器。
步骤2,用户选择验证数据块编号、生成辅助验证信息并打包上传到云服务器。
2.1)用户选择本次要验证的数据块数量k,要求1≤k≤n,随后在1到n中随机选择k个编号作为验证数据块{v1,v2,...,vk};
2.2)用户设置一个长度为l的空白序列,并调用随机数发生器生成l个随机比特{0,1}l,再将{0,1}l填充进空白序列中作为随机生成的辅助验证信息Fw,使用公钥将辅助验证信息Fw加密为密文格式Cw
2.3)用户将验证数据块编号{v1,v2,...,vk}和辅助验证信息密文Cw进行打包,并上传给云服务器。
步骤3,云服务器计算数据完整性签名。
3.1)云服务器根据收到的验证块编号{v1,v2,...,vk}查找存储在云服务器上的密文数据块Ci,i∈{v1,v2,...,vk};
3.2)云服务器根据查找到的密文数据块Ci和辅助验证信息密文Cw计算数据完整性签名L:
Figure BDA0002960641130000041
其中,J为Paillier算法模数。
步骤4,云服务器将数据完整性签名L返回给用户,用户计算明文验证签名。
4.1)云服务器将计算出的数据完整性签名L返回给用户;
4.2)用户查找本次验证过程对应的验证数据块Fi,i∈{v1,v2,...,vk},并根据本地保存的辅助验证信息Fw计算明文验证签名Ver:
Ver=(Fw+∑Fi)mod J。
步骤5,用户对云端数据的完整性进行判决。
5.1)用户使用私钥解密接收到的数据完整性签名L,得到明文完整性签名L';
5.2)将明文完整性签名L'与明文验证签名Ver进行逐比特对比:
若Ver=L',则判定存储在云服务器上的文件F是完整的,执行步骤6;
若Ver≠L',则判定存储在云服务器上的数据是不完整的,用户可以再次发起验证或重新上传文件以恢复数据的完整性,执行步骤6。
步骤6,用户对存储在云端的数据进行更新,重复步骤2至步骤5。
6.1)用户根据自身需求对存储在云端的文件进行更新,该更新有以下三种操作:
第一种是插入操作,即用户决定在编号为a的数据块后插入一个新的数据块,其具体实现是使用公钥将要插入的明文数据块Fb加密为密文数据块Cb,将密文数据块Cb和插入位置编号a打包为插入数据申请Insert={a,Cb}并发送给云服务器,云服务器接受到插入数据申请Insert={a,Cb}后将所有序号大于a的数据块编号加1并将Cb存储在Ca之后的位置;
第二种是删除操作,即用户决定将编号为a的密文数据块在云存储服务器中删除,其具体实现是将删除数据块编号a作为删除数据申请Delete={a}发送给云服务器,云服务器接收到删除数据申请Delete={a}后查找编号为a的密文数据块Ca并将其在服务器中删除;
第三种是替换操作,即用户决定将编号为a的文件加密数据块替换为新的数据块Ca',其具体实现是使用公钥将要更新的明文数据块Fa'加密为密文数据块Ca',将密文数据块Ca'和替换数据块编号a打包为替换数据申请Update={a,Ca'}并发送给云服务器,云服务器接收到替换数据申请Update={a,Ca'}后查找编号为a的密文数据块Ca并将Ca替换为Ca';
本实例选用但不限于第三种替换操作;
6.2)对更新后的文件重复步骤2至步骤5,完成对用户文件的数据完整性验证。
以上描述仅是本发明的一个具体实例,并未构成对本发明的任何限制,显然对于本领域的专业人员来说,在了解了本发明内容和原理后,都可能在不背离本发明原理、结构的情况下,进行形式和细节上的各种修改和改变,但是这些基于本发明思想的修正和改变仍在本发明的权利要求范围之内。

Claims (7)

1.一种基于同态加密的数据完整性验证方法,其特征在于,包括如下:
(1)用户将要上传的文件分为n块,并将分割的文件块加密为文件密文数据块Ci,i∈{1,2,...,n},上传到云服务器;
(2)用户选择k个数据块作为验证数据块,再随机生成辅助验证信息Fw,并将该辅助验证信息加密,生成辅助验证信息密文Cw,将验证数据块编号和辅助验证信息密文Cw上传到云服务器;
(3)云服务器根据验证数据块编号选择对应的文件密文数据块
Figure FDA0003879646310000011
计算数据完整性签名L:
Figure FDA0003879646310000012
其中,vj
Figure FDA0003879646310000013
对应的验证数据块编号,J为Paillier算法模数;
(4)云服务器将计算出的数据完整性签名L返回给用户,用户解密云服务器返回的数据完整性签名得到L',并根据验证数据块编号将对应的明文数据块和辅助验证信息计算明文验证签名Ver:
Figure FDA0003879646310000014
其中,
Figure FDA0003879646310000015
为验证数据块编号对应的明文数据块;
(5)将明文验证签名Ver与解密后的数据完整性签名L'进行对比:
若Ver=L',则判定存储在云服务器上的数据是完整的,执行(6);
若Ver≠L',则判定存储在云服务器上的数据是不完整的,用户再次发起验证或重新上传文件,执行(6);
(6)用户对存储在云服务器上的文件进行动态更新,重复(2)至(5)。
2.根据权利要求1所述的方法,其特征在于,(1)中所述的用户将要上传的文件分为n块,是将要上传的文件F分为固定大小为l的n个数据块,即F={F1,F2,...,Fi,...,Fn},其中,Fi为第i个大小为l的文件数据块,若最后一个文件数据块Fn长度不足l,则在Fn的末尾补0,将其延长至规定的长度l。
3.根据权利要求1所述的方法,其特征在于,所述(2)中随机生成辅助验证信息Fw,实现如下:
(2a)设置一个与分割后的文件数据块长度l等长的空白序列w,再调用随机数发生器生成随机比特;
(2b)将生成的随机比特填充至序列w中,得到辅助验证信息Fw
4.根据权利要求1所述的方法,其特征在于,所述(6)中用户对存储在云服务器上的文件进行动态更新,采用插入操作或删除操作或替换操作进行。
5.根据权利要求4所述的方法,其特征在于,所述插入操作,是先在文件密文数据块Ca后插入新的文件密文数据块Cb,再对后续文件密文数据块Ci编号依次加1,其中a∈{1,2,...,n},b=a+1,a<i≤n。
6.根据权利要求4所述的方法,其特征在于,所述删除操作,是先将文件密文数据块Ca删除,再对后续文件密文数据块Ci编号依次减1,其中a∈{1,2,...,n},a<i≤n。
7.根据权利要求4所述的方法,其特征在于,所述替换操作,是将文件密文数据块Ca更新为新的文件密文数据块Ca',其中a∈{1,2,...,n}。
CN202110237036.1A 2021-03-03 2021-03-03 基于同态加密的数据完整性验证方法 Active CN112883398B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110237036.1A CN112883398B (zh) 2021-03-03 2021-03-03 基于同态加密的数据完整性验证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110237036.1A CN112883398B (zh) 2021-03-03 2021-03-03 基于同态加密的数据完整性验证方法

Publications (2)

Publication Number Publication Date
CN112883398A CN112883398A (zh) 2021-06-01
CN112883398B true CN112883398B (zh) 2022-12-02

Family

ID=76055304

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110237036.1A Active CN112883398B (zh) 2021-03-03 2021-03-03 基于同态加密的数据完整性验证方法

Country Status (1)

Country Link
CN (1) CN112883398B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117134918B (zh) * 2023-07-20 2024-09-24 威艾特科技(深圳)有限公司 一种分布式数据签名校验方法及装置
CN117851423A (zh) * 2023-12-01 2024-04-09 中国民航信息网络股份有限公司 一种数据动态更新方法、装置及设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102710757A (zh) * 2012-05-21 2012-10-03 北京航空航天大学 一种分布式云存储数据完整性保护方法
CN105491069A (zh) * 2016-01-14 2016-04-13 西安电子科技大学 云存储中基于抵抗主动攻击的完整性验证方法
CN106899406A (zh) * 2016-12-15 2017-06-27 中国电子科技集团公司第三十研究所 一种云端数据存储完整性的证明方法
CN109951296A (zh) * 2019-03-05 2019-06-28 北京邮电大学 一种基于短签名的远程数据完整性验证方法
CN111783148A (zh) * 2020-06-30 2020-10-16 中国工商银行股份有限公司 一种支持公正的轻量级多副本数据云审计方法及装置
CN112182662A (zh) * 2020-09-09 2021-01-05 北京科技大学 一种面向敏捷开发云平台的数据完整性验证方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8694467B2 (en) * 2010-03-31 2014-04-08 Xerox Corporation Random number based data integrity verification method and system for distributed cloud storage

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102710757A (zh) * 2012-05-21 2012-10-03 北京航空航天大学 一种分布式云存储数据完整性保护方法
CN105491069A (zh) * 2016-01-14 2016-04-13 西安电子科技大学 云存储中基于抵抗主动攻击的完整性验证方法
CN106899406A (zh) * 2016-12-15 2017-06-27 中国电子科技集团公司第三十研究所 一种云端数据存储完整性的证明方法
CN109951296A (zh) * 2019-03-05 2019-06-28 北京邮电大学 一种基于短签名的远程数据完整性验证方法
CN111783148A (zh) * 2020-06-30 2020-10-16 中国工商银行股份有限公司 一种支持公正的轻量级多副本数据云审计方法及装置
CN112182662A (zh) * 2020-09-09 2021-01-05 北京科技大学 一种面向敏捷开发云平台的数据完整性验证方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Fragile speech watermarking for content integrity verification;Chung-Ping Wu 等;《2002 IEEE International Symposium on Circuits and Systems (ISCAS)》;20020807;第II-436至II-439页 *
云存储中数据安全关键技术研究;姜涛;《中国博士学位论文全文数据库 信息科技辑》;20181215(第12期);第I137-8页 *

Also Published As

Publication number Publication date
CN112883398A (zh) 2021-06-01

Similar Documents

Publication Publication Date Title
CN109951296B (zh) 一种基于短签名的远程数据完整性验证方法
CN110213042B (zh) 一种基于无证书代理重加密的云数据去重方法
CN110334526B (zh) 一种支持验证的前向安全可搜索加密存储系统及方法
US9537657B1 (en) Multipart authenticated encryption
Wang et al. Enabling public verifiability and data dynamics for storage security in cloud computing
CN109379182B (zh) 支持数据去重的高效数据重加密方法及系统、云存储系统
CN108200172B (zh) 一种支持安全数据去重与删除的云存储系统及方法
GB2596763A (en) Cryptography using a cryptographic state
CN112883398B (zh) 基于同态加密的数据完整性验证方法
CN111654511A (zh) 一种链式数据加密方法、链式数据解密方法及相应的系统
CN108599934B (zh) 一种用于量子密钥分发的可验安全保密增强方法
CN112182630B (zh) 一种对称可搜索加密方法、装置、设备及介质
Xie et al. Fast collision attack on MD5
CN108182367B (zh) 一种支持数据更新的加密数据块客户端去重方法
CN105162583B (zh) 一种单个、单级和多级密钥对分散方法及其系统
CN108123934B (zh) 一种面向移动端的数据完整性校验方法
JP2003535377A (ja) 疑似乱数発生器
CN110351297B (zh) 一种应用于区块链的验证方法及装置
JP2022540857A (ja) ハッシュベースのデジタル署名スキームにおける暗号ハッシュ木のノードの管理
EP3304800A1 (en) Method for providing a space puzzle
CN110933044A (zh) 一种分布式存储系统中可公开审计的数据持有性证明方法
CN113268542A (zh) 一种基于多方授权的区块链重写方法及系统
EP3163789A1 (en) Forward-secure crash-resilient logging device
Bellare et al. Deterring certificate subversion: efficient double-authentication-preventing signatures
CN105491069B (zh) 云存储中基于抵抗主动攻击的完整性验证方法

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