CN112580083B - 一种基于双向可延展持有权证明的数据外包去重复方法 - Google Patents
一种基于双向可延展持有权证明的数据外包去重复方法 Download PDFInfo
- Publication number
- CN112580083B CN112580083B CN202011610370.9A CN202011610370A CN112580083B CN 112580083 B CN112580083 B CN 112580083B CN 202011610370 A CN202011610370 A CN 202011610370A CN 112580083 B CN112580083 B CN 112580083B
- Authority
- CN
- China
- Prior art keywords
- server
- metadata
- user
- user side
- protocol
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/4031—Coupling between buses using bus bridges with arbitration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于双向可延展持有权证明的数据外包去重复方法,包括以下步骤,设置***初始化,生成密钥,生成元数据,基于双向持有权证明的静态文件外包和去重复,基于可延展持有权的动态文件去重复,仲裁协议。本发明实现了跨用户端的去重复和动态修改,从而同时节省服务器和用户端的存储和网络开销,用户端在文件被外包以后,可以随时随地的检测文件的完整性,还可以对外包文件进行动态修改,本发明实现了一个仲裁协议,能够有效解决关于文件原始性的争议,本专利将双向、可延展持有权证明协议,还有仲裁协议容纳到一套方案里,实现了一体化的外包去重复解决方案,本发明技术具有多功能、多场景、公开、安全、透明等特点。
Description
技术领域
本发明属于纺纱控制领域,特别是涉及一种基于双向可延展持有权证明的数据外包去重复方法。
背景技术
纱云存储是云计算的典型应用,其允许用户将数据远程外包到云服务器端进行存储。而用户可以在完成外包操作后,可以随时随地的对文件进行访问。由于云存储规模化的运作和集群化的管理,其能够以低廉的价格为用户提供优质和低价的服务。随着近些年来数据的爆发式的增长,许多云存储服务商都采用了去重复技术来对减少存储开销。然而,处于安全的考虑,云服务商大多采用的是跨服务器的去重复,即只在用户完成数据外包的操作以后,再对服务器本地的数据进行比对和去重复。这样一来,用户无论如何都需要将数据上传,而由此产生的网络开销不可避免。跨用户的去重复(即在上传数据前检测该数据是否已经存在于云端)虽然能够解决这个问题,但是给去重复***带来了安全隐患:用户可以通过作弊来获取云文件的持有权,从而在不持有文件的完整信息的情况下获得该文件的访问权。收敛加密(Convergent Encryption)和文件持有权证明(Proof of Ownership)这两项技术的出现,有效的遏制了这一类去重复攻击。前者通过确定性和对称的加密技术对文件进行保密操作,后者通过对文件数据结构的认证来确保用户对文件的持有权。然而,后者所带来的计算开销较大。目前,这两项技术都是去重复研究的重要分支。随着时间的推移,收敛加密的安全问题以及文件持有权的效率问题都有所改善。
近些年,随着云计算研究与应用的不断深入,用户对云服务的要求不断提高,允许动态操作的数据库和云数据外包技术逐渐赢得用户的青睐。与静态数据库不同的是,动态存储环境下(如:动态数据库)的文件能够接受用户的任意修改,比如:文件块的增加、删除、修改等等。然而,动态修改会在一定程度上扰乱去重复***(采用去重复技术的云服务器)的执行。现有的云数据外包和去重复架构大多数是基于静态的数据库。在该环境下,文件在被外包上传到云端后,只会保留一个副本,而其他多余的副本将会被删除。这个唯一的文件将被多个用户共享,并且在此后只能接受“读”操作,而拒绝任何的“写”的操作。这是因为:任何的“写”操作都会导致其他用户无法正常访问该共享文件(由于在去重复环境下,文件具有唯一性,而覆写该文件将导致出现副本或者导致“脏读”,“脏写”等问题)。类似的,加密会将文件变成不可识别的密文,而且产生的密文具有随机性。因此,一个安全的加密算法(至少为语义安全级别)会影响去重复的完备性(无法识别相同明文对应的密文,去重复无法达成)和共享文件的唯一性。
数据编辑(Data Redaction)和变色龙哈希(Chameleon Hash)是两个重要的密码原语。数据编辑允许数据持有者将文件中的一部分隐私数据进行处理,并将处理后的非敏感数据文件用于公开发表(比如,去掉用户信息的医疗诊断记录、家庭电力使用情况、个人出行记录等等)。这些去掉敏感数据的应用数据,是非常有价值的(大)数据,可以用于驱动更加个性化和智能化的信息服务。变色龙哈希是一种特殊的哈希函数,其允许私钥的持有者高效的计算一个哈希值的碰撞,而任何未持有相应私钥的用户无法有效的找到哈希碰撞。
发明内容
针对现有去重复方案无法同时实现静态和动态去重复,同时去重复***面临文件持有权的恶意窃取等问题,本发明的目的在于提出一种基于双向可延展持有权证明的数据外包去重复方案,解决现有去重复技术功能性和安全性的问题。
本发明通过将数据编辑和变色龙哈希的概念进行结合,并应用到数据持有权协议的设计中,实现了一种双向和可延展的持有权证明协议。基于该协议的去重复方案允许云服务器随时随地的对用户的外包文件展开去重复以提高存储效率。与此同时,用户可以随时对文件进行动态修改。具体的,将数据的编辑权交由服务器,将数据的发布权交由用户,专利实现了数据编辑与数据外包去重复的设计与场景融合。与此同时,通过向外包文件的元数据计算中引入变色龙哈希的计算,成功赋予服务器(通过使用私钥)修改元数据和编辑数据的权利。由此一来,服务器可以在用户上传文件之前,对用户的文件持有权展开验证(该过程对应:双向持有权证明协议的情形1),用于实现跨用户去重复,从而同时节省存储和网络开销。用户也可以在文件被外包以后,随时随地的检测文件的完整性(该过程对应:双向持有权证明协议的情形2)或者修改文件(该过程对应:可延展持有权证明协议)。此外,对于文件的原始归属权的争议问题,本专利还实现了一个公开的仲裁协议。该协议允许任何用户通过公开的方式对问题文件发起仲裁请求,文件的原始持有者可以正确的回应并且赢得仲裁。整个仲裁过程是公开可验证的,任何用户均可以根据挑战和证明你给来验证仲裁结构,确保了仲裁协议的完备与公平性。
本发明提供一种基于双向可延展持有权证明的数据外包去重复方法,包括以下步骤:
S1.基于目标服务器,初始化所述目标服务器的***程序,获得安全参数和***公开参数;
S2.基于所述***公开参数,构建服务器公私钥对、用户端公私钥对、用户端公开参数,其中,所述服务器公私钥对包括服务器公钥和服务器私钥,所述用户端公私钥对包括用户端公钥和用户端私钥;
S3.基于所述用户端公开参数,构建用户端外包到所述目标服务器的用户端文件信息,获得元数据;
S4.所述目标服务器存储所述元数据,获得目标服务器元数据,基于所述用户端文件信息,对所述用户端的本地静态文件去重复工作,用于缓解所述用户端的本地存储压力。
优选地,所述S1包括以下步骤:
S1.1.基于所述安全参数,获得素数;
S1.2.基于所述素数,构建第一乘法循环群、第二乘法循环群;
S1.3.基于所述第一乘法循环群、第二乘法循环群,获得生成元;
S1.4.基于两个所述第一乘法循环群,通过一个所述第二乘法循环群,构建双线性对;
S1.5.基于哈希函数,通过所述素数、第一乘法循环群、第二乘法循环群、生成元、双线性对,构建所述***公开参数。
优选地,所述S2包括,基于所述***公开参数,选择随意整数作为所述服务器私钥,基于所述服务器私钥,获得所述服务器公钥;
基于所述***公开参数,选择所述随意整数作为用户端私钥,基于所述用户端私钥,获得所述用户端公钥;
所述用户端密钥对,为用于签名的密钥对。
优选地,所述S3包括以下步骤:
S3.1.基于所述用户端公开参数,构建初始文件,将所述初始文件分为若干初始子文件,得到初始子文件数据集;
S3.2.构建第一随机标识符,基于所述初始子文件数据集、服务器公钥,获得第一中间参数;
S3.3.基于所述初始子文件数据集、第一中间参数,构建第一随机参数模型、第一变色龙随机数模型,基于所述第一随机参数模型、第一变色龙随机数模型、第一中间参数,构建第一变色龙哈希值模型;
S3.4.基于所述第一变色龙哈希值模型,构建第一默克尔哈希树,获得所述第一默克尔哈希树的第一根节点模型,通过所述用户端私钥,基于秘钥算法,获得第一目标签名;
S3.5.基于所述第一默克尔哈希树,获得第一文件标签和第一离散对数证明;
S3.6.基于所述初始子数据集、第一文件标签、第一离散对数证明,构建所述元数据。
优选地,所述S4包括以下步骤:
S4.1.基于所述元数据,检索所述服务器的本地存储数据中是否具有所述元数据,如果具有所述元数据,执行S4.2,如果不具有所述元数据,将所述元数据存储到所述服务器;
S4.2.基于所述用户端公钥验证所述元数据的有效性,如果具有所述有效性,删除所述本地静态文件,如果不具有所述有效性,执行步骤4.3;
S4.3.所述服务器,对所述用户端发起挑战和验证,用于验证所述用户端是否持有所述元数据,如果所述用户端持有所述元数据,执行步骤S4.4,如果所述用户端不持有所述元数据,则退出协议;
S4.4.所述用户端对所述服务器发起挑战和验证,用于验证所述本地存储数据是否完整,如果所述本地存储数据不完整,所述服务器基于所述元数据,对所述本地存储数据进行替换,如果所述本地存储数据完整,则退出协议,删除所述元数据。
优选地,所述S4.3包括以下步骤:
S4.3.1.基于所述元数据的验证文件,通过所述验证文件的块标识符和文件数量,构建验证数据集合,基于所述验证数据集合,通过选择服务器随机标识符,构建第一挑战协议,发送到用户端***;
S4.3.2.所述用户端基于元数据,通过所述挑战协议,构建从所述元数据到所述挑战协议的第一安全路径,基于所述元数据和第一安全路径,构建用户端持有证明模型,将所述用户端持有证明模型发送到所述服务器;
S4.3.3.所述服务器,基于所述用户端持有证明模型,对所述元数据进行判断,如果所述元数据完整,进入S4.3.4,如果不完整,则退出协议;
S4.3.4.基于所述元数据和第一安全路径,构建第二默克尔哈希树,获得所述第二默克尔哈希树的第二根结点集合,基于所述第二根结点集合,通过所述元数据,判断所述用户端是否持有所述元数据,如果是,删除所述本地静态文件,如果否,则退出协议。
优选地,所述S4.4包括,所述用户端通过对所述服务器的挑战,用于证明所述服务器是否持有完整的所述元数据。
优选地,所述数据外包去重复方法还包括,对所述目标服务器元数据进行修改,包括以下步骤:
S5.1.基于修改元数据和所述元数据,构建初始修改数据集合,通过选择第二随机标识符,构建第二挑战协议,将所述第二挑战协议发送到所述服务器;
S5.2.所述服务器,基于所述第二挑战协议,通过比对所述目标服务器元数据并进行替换,获得第一新目标服务器元数据,获得所述第一新目标服务器元数据的第二中间参数,基于所述第二中间参数和服务器私钥,构建第二变色龙随机数模型,基于所述初始修改数据集合,构建第二安全路径,基于所述第二变色龙随机数模型、第二安全路径,构建验证模型,发送到所述用户端;
S5.3.所述用户端,通过所述验证模型,构建第三中间参数,基于所述修改元数据的第一文件块标识符,所述验证所述修改元数据是否完整,如果是,执行S5.4,如果不是,退出协议;
S5.4.基于所述第二安全路径和修改元数据,构建第三默克尔哈希树,获得所述第三根节点模型,基于所述第三根节点模型,判断替换是否成功,如果成功,退出协议,如果不成功,执行S5.1直至成功。
优选地,所述数据外包去重复方法,还包括,以下步骤:
S6.1.所述用户端包括若干用户,其中,所述用户包括第一用户,第二用户,所述第一用户,基于所述第二用户的第二用户服务器元数据,作为待仲裁文件,通过所述待仲裁文件的第二文件块标识符和待仲裁文件数量,构建待仲裁数据集合,通过选择第三随机标识符,基于所述待仲裁文件,构建仲裁协议,将所述仲裁协议在所述服务器进行广播;
S6.2.所述第二用户,提取所述第二用户服务器元数据,通过所述服务器私钥,构建第三变色龙随机数模型、第三变色龙哈希值模型,对所述第三变色龙随机数模型、第三变色龙哈希值模型进行聚合获得第一聚合模型,基于所述第二用户服务器元数据、聚合模型构建仲裁证明,所述第二用户,将所述仲裁证明在所述服务器进行广播或发送给第一用户;
S6.3.所述第一用户,基于所述仲裁协议和所述仲裁证明,判断所述仲裁证明是否等同于所述仲裁协议,如果相同,执行S6.4,如果不相同,则退出协议;
S6.4.基于所述第一聚合模型,对所述仲裁协议进行认证,如果认证成功,则表示所述仲裁协议和仲裁证明均属于第二用户,所述仲裁协议通过所述仲裁证明替换得来,如果认证失败,则退出协议。
优选地,所述第二用户服务器元数据为所述第二用户在所述服务器第一次存储的原始数据。
本发明的积极进步效果在于:
(1)采用双向的持有权证明协议,在同一套***和参数下,根据挑战方的不同(服务器或用户),可以分别实现文件持有权验证和完整性验证的功能,确保了去重复的安全性和文件的完整性;
(2)采用可延展的持有权证明协议,可以支持文件的动态修改,同时让文件的其他持有者也能访问被修改的文件,同时实现了对静态和动态文件的去重复;
(3)采用公开仲裁协议,能够有效解决关于文件原始性(归属性)的争议,确保对文件来源的实时可追溯性,由于协议是公开可验证的,确保了去重复***的透明性;
(4)通过将上述三种协议统一容纳到一套方案里,实现了一体化的外包去重复协议。本专利的去重复方案同时支持:静态文件的外包、持有权验证、修改和完整性验证,以及动态文件的外包、持有权验证、修改和完整性验证。因此,本专利技术具有多功能、多场景、安全、可仲裁等特点。
附图说明
图1本发明结构图;
图2本发明的数据外包去重复示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
本发明涉及一种基于双向可延展持有权证明的数据外包去重复方案,具体涉及针对云数据的去重复,可以同时满足对外包数据的动态修改和去重复,提高对云存储文件的可操作性和去重复率,属于网络安全领域。
如图1-2所示,本发明提供本发明提供一种基于双向可延展持有权证明的数据外包去重复方法,包括以下步骤:
S1.基于目标服务器,初始化所述目标服务器的***程序,获得安全参数和***公开参数;
S2.基于所述***公开参数,构建服务器公私钥对、用户端公私钥对、用户端公开参数,其中,所述服务器公私钥对包括服务器公钥和服务器私钥,所述用户端公私钥对包括用户端公钥和用户端私钥;
S3.基于所述用户端公开参数,构建用户端外包到所述目标服务器的用户端文件信息,获得元数据;
S4.所述目标服务器存储所述元数据,获得目标服务器元数据,基于所述用户端文件信息,对所述用户端的本地静态文件去重复工作,用于缓解所述用户端的本地存储压力。
所述S1包括以下步骤:
S1.1.基于所述安全参数,获得素数;
S1.2.基于所述素数,构建第一乘法循环群、第二乘法循环群;
S1.3.基于所述第一乘法循环群、第二乘法循环群,获得生成元;
S1.4.基于两个所述第一乘法循环群,通过一个所述第二乘法循环群,构建双线性对;
S1.5.基于哈希函数,通过所述素数、第一乘法循环群、第二乘法循环群、生成元、双线性对,构建所述***公开参数。
所述S2包括,基于所述***公开参数,选择随意整数作为所述服务器私钥,基于所述服务器私钥,获得所述服务器公钥;
基于所述***公开参数,选择所述随意整数作为用户端私钥,基于所述用户端私钥,获得所述用户端公钥;
所述用户端密钥对,为用于签名的密钥对。
所述S3包括以下步骤:
S3.1.基于所述用户端公开参数,构建初始文件,将所述初始文件分为若干初始子文件,得到初始子文件数据集;
S3.2.构建第一随机标识符,基于所述初始子文件数据集、服务器公钥,获得第一中间参数;
S3.3.基于所述初始子文件数据集、第一中间参数,构建第一随机参数模型、第一变色龙随机数模型,基于所述第一随机参数模型、第一变色龙随机数模型、第一中间参数,构建第一变色龙哈希值模型;
S3.4.基于所述第一变色龙哈希值模型,构建第一默克尔哈希树,获得所述第一默克尔哈希树的第一根节点模型,通过所述用户端私钥,基于秘钥算法,获得第一目标签名;
S3.5.基于所述第一默克尔哈希树,获得第一文件标签和第一离散对数证明;
S3.6.基于所述初始子数据集、第一文件标签、第一离散对数证明,构建所述元数据。
所述S4包括以下步骤:
S4.1.基于所述元数据,检索所述服务器的本地存储数据中是否具有所述元数据,如果具有所述元数据,执行S4.2,如果不具有所述元数据,将所述元数据存储到所述服务器;
S4.2.基于所述用户端公钥验证所述元数据的有效性,如果具有所述有效性,删除所述本地静态文件,如果不具有所述有效性,执行步骤4.3;
S4.3.所述服务器,对所述用户端发起挑战和验证,用于验证所述用户端是否持有所述元数据,如果所述用户端持有所述元数据,执行步骤S4.4,如果所述用户端不持有所述元数据,则退出协议;
S4.4.所述用户端对所述服务器发起挑战和验证,用于验证所述本地存储数据是否完整,如果所述本地存储数据不完整,所述服务器基于所述元数据,对所述本地存储数据进行替换,如果所述本地存储数据完整,则退出协议,删除所述元数据。
所述S4.3包括以下步骤:
S4.3.1.基于所述元数据的验证文件,通过所述验证文件的块标识符和文件数量,构建验证数据集合,基于所述验证数据集合,通过选择服务器随机标识符,构建第一挑战协议,发送到用户端***;
S4.3.2.所述用户端基于元数据,通过所述挑战协议,构建从所述元数据到所述挑战协议的第一安全路径,基于所述元数据和第一安全路径,构建用户端持有证明模型,将所述用户端持有证明模型发送到所述服务器;
S4.3.3.所述服务器,基于所述用户端持有证明模型,对所述元数据进行判断,如果所述元数据完整,进入S4.3.4,如果不完整,则退出协议;
S4.3.4.基于所述元数据和第一安全路径,构建第二默克尔哈希树,获得所述第二默克尔哈希树的第二根结点集合,基于所述第二根结点集合,通过所述元数据,判断所述用户端是否持有所述元数据,如果是,删除所述本地静态文件,如果否,则退出协议。
所述S4.4包括,所述用户端通过对所述服务器的挑战,用于证明所述服务器是否持有完整的所述元数据。
所述数据外包去重复方法还包括,对所述目标服务器元数据进行修改,包括以下步骤:
S5.1.基于修改元数据和所述元数据,构建初始修改数据集合,通过选择第二随机标识符,构建第二挑战协议,将所述第二挑战协议发送到所述服务器;
S5.2.所述服务器,基于所述第二挑战协议,通过比对所述目标服务器元数据并进行替换,获得第一新目标服务器元数据,获得所述第一新目标服务器元数据的第二中间参数,基于所述第二中间参数和服务器私钥,构建第二变色龙随机数模型,基于所述初始修改数据集合,构建第二安全路径,基于所述第二变色龙随机数模型、第二安全路径,构建验证模型,发送到所述用户端;
S5.3.所述用户端,通过所述验证模型,构建第三中间参数,基于所述修改元数据的第一文件块标识符,所述验证所述修改元数据是否完整,如果是,执行S5.4,如果不是,退出协议;
S5.4.基于所述第二安全路径和修改元数据,构建第三默克尔哈希树,获得所述第三根节点模型,基于所述第三根节点模型,判断替换是否成功,如果成功,退出协议,如果不成功,执行S5.1直至成功。
所述数据外包去重复方法,还包括,以下步骤:
S6.1.所述用户端包括若干用户,其中,所述用户包括第一用户,第二用户,所述第一用户,基于所述第二用户的第二用户服务器元数据,作为待仲裁文件,通过所述待仲裁文件的第二文件块标识符和待仲裁文件数量,构建待仲裁数据集合,通过选择第三随机标识符,基于所述待仲裁文件,构建仲裁协议,将所述仲裁协议在所述服务器进行广播;
S6.2.所述第二用户,提取所述第二用户服务器元数据,通过所述服务器私钥,构建第三变色龙随机数模型、第三变色龙哈希值模型,对所述第三变色龙随机数模型、第三变色龙哈希值模型进行聚合获得第一聚合模型,基于所述第二用户服务器元数据、聚合模型构建仲裁证明,所述第二用户,将所述仲裁证明在所述服务器进行广播或发送给第一用户;
S6.3.所述第一用户,基于所述仲裁协议和所述仲裁证明,判断所述仲裁证明是否等同于所述仲裁协议,如果相同,执行S6.4,如果不相同,则退出协议;
S6.4.基于所述第一聚合模型,对所述仲裁协议进行认证,如果认证成功,则表示所述仲裁协议和仲裁证明均属于第二用户,所述仲裁协议通过所述仲裁证明替换得来,如果认证失败,则退出协议。
所述第二用户服务器元数据为所述第二用户在所述服务器第一次存储的原始数据。
参照图1,本发明的具体实现如下:
***初始化
根据安全参数λ选择一个素数q,设G和GT为两个阶为q的乘法循环群,g是群G和GT的生成元。选取一个哈希函数H1,所述H1定义映射为:H1:{0,1}*→Zq,即H1将任意长度的0,1字符串映射到一个Zq上的元素,这里Zq指的是q阶整数群,即Zq={0,1,…,q-1},选择一个双线性对G×G→GT,即将群G上的两个元素映射到群GT的一个元素上。该步骤产生的公开参数为
生成密钥
根据安全参数λ选择一个素数q,设G和GT为两个阶为q的乘法循环群,g是群G和GT的生成元。选取一个哈希函数H1,所述H1定义映射为:H1:{0,1}*→Zq,即H1将任意长度的0,1字符串映射到一个Zq上的元素,这里Zq指的是q阶整数群,即Zq={0,1,...,q-1},选择一个双线性对即将群G上的两个元素映射到群GT的一个元素上。该步骤产生的公开参数为
生成元数据:
根据公开参数paramBM-PoW,用户选择并输入一个文件m∈{0,1}*(这里,指m是任意长度的0,1字符串,{0,1}*指的是一个任意长度的由0和1组成的字符串)。用户首先将文件划分为n个块(n≥1),从而得到划分后的文件接着,用户选择一个随机标识符CID∈{0,1}*(这里,{0,1}*指的是一个任意长度的由0和1组成的字符串)。用户使用上述信息以及服务器的公钥y来计算一个中间参数对于被划分的每一个文件块mi,计算一个随机参数αi=H1(mi)、变色龙随机数和变色龙哈希值紧接着,对于1≤i≤n,将每一个变色龙哈希值作为叶节点,构建一个默克尔哈希树T(一种用于文件的二叉树结构),计算默克尔哈希树的根节点R。使用用户的签名私钥ssk来计算一个签名σ=SIGNssk(R)(这里,SIGN()指的是一种任意的签名算法,比如BLS签名算法)。最后,计算文件标签和离散对数证明PoK(τ)(这里,离散对数证明是一种知识证明(Proof of Knowledge),简而言之,即在***露的情况下向外界证明其知道离散对数,即:该步骤输出即将外包到服务器的信息:其中为用户将要外包到服务器上进行存储的文件信息。
基于双向持有权证明的静态文件外包和去重复:
首先,服务器在本地的存储列表中检测是否存在相同的文件,即:τ是否已经存在(这里,τ代表文件标签)。如果τ已经存在,则使用用户的验证公钥spk来验证签名σ的有效性(这里,服务器可以执行SIGN算法对应的验证算法,比如BLS签名的验证算法)。如果验证成功,则继续;否则,退出并返回0代表失败。接下来,服务器和用户可以自行决定发起方(挑战方),并执行双向的数据持有权协议,如下:
双向持有权的挑战:挑战方随机选择一个由多个二元数组组成的集合Q={j,ij}1≤j≤c,这里ij∈[1,n]指的是需要验证的文件块标识符,c指的是需要验证的文件数量(通常,c可以被设定为460以达到高于99%的查错率)。此外,挑战方选择一个随机标识符CID∈{0,1}*。服务器将bchal={Q,CID}作为挑战发送给用户。
双向持有权的证明:证明方在收到bchal后,根据所持有的文件m进行如下计算:将m按照之前的方法进行划分以得到计算中间参数对于被划分的每一个文件块mi,计算一个随机参数αi=H1(mi)、变色龙随机数和变色龙哈希值最后,进行聚合得到: 紧接着,证明方将每一个变色龙哈希值作为叶节点构建一个默克尔哈希树T′。根据挑战集合Q,计算一个通往T′的根节点的安全路径这里,Ω指的是从挑战的叶节点出发,到达根节点所经历的其他兄弟节点以及相应的路径。用户将证明发送给挑战方用于验证。
如果上述等式均成立,则继续;否则,算法退出并输出0代表失败。然后,服务器使用Ω和挑战的叶节点构建一个默克尔哈希树T′,并计算根节点的值R′。当且仅当R′=R(这里R为存储在本地的根节点),验证法认为证明方确实持有文件m,算法输出1用于表示验证通过;否则,退出协议,算法输出0表示验证失败。
基于可延展持有权证明的动态文件去重复具体为:
当用户想对远程存储在服务器端的文件进行修改,同时又能够让自己和其他持有该文件所有权的用户正常访问该文件时(通过文件持有权验证),需要和服务器执行一个可延展的持有权证明协议,具体如下:
可延展持有权的挑战:用户随机选择一个由多个二元数组组成的集合W={j,ij}1≤j≤d,这里ij∈[1,n]指的是需要修改的文件块标识符,d指的是需要修改的文件块数量(通常,c可以被设定为460以达到高于99%的查错率)。此外,用户生成由需要修改的原文件块和新文件块组成的集合最后,用户选择一个随机标识符CID∈{0,1}*。服务器将作为挑战发送给服务器。
设此外,服务器根据挑战集合W,计算一个通往根节点的安全路径这里,指的是从某个修改后的叶节点(即)出发,到达根节点所经历的其他兄弟节点以及相应的路径。服务器将证明mprf={f′,Ω′}发送给服务器用于验证。
如果上述等式均成立,则继续;否则,算法退出并输出0,代表验证失败。紧接着,用户使用Ω′和挑战的叶节点构建一个默克尔哈希树T′,并计算根节点的值R′。当且仅当R′=R(这里R为存储在服务器本地的根节点值),用户认为服务器按照协商的内容正确更新了文件(即从m更新到m′),算法输出1用于表示验证通过;否则,退出协议,算法输出0表示验证失败。
文件原始性的仲裁协议:
当任意用户(假设为用户A)对远程外包存储在服务器端的文件的原始归属权(即该文件是否是最初的版本,而不是经过服务器二次修改后的版本(又称为副本)),用户A可以发起一个仲裁协议。这里,设发起仲裁的用户A为挑战者,回应挑战的用户为证明者(假设为原始文件的持有者用户B)。任何用户都可以根据仲裁挑战和证明来验证仲裁的结果。协议如下:
仲裁协议挑战:用户A随机选择一个由多个二元数组组成的集合Z={j,ij}1≤j≤k,这里ij∈[1,n]指的是需要仲裁的文件块标识符,k指的是需要仲裁的文件块数量。此外,用户A生成一个待仲裁的文件m*,选择一个随机标识符CID*∈{0,1}*。用户A将zchal={Z,CID*,m*}作为挑战以广播的形式发布出来。
仲裁协议证明:用户B在收到挑战zchal后,进行如下计算:用户B在内本地提取原始文件m**,然后计算相应的变色龙随机数和变色龙哈希值进一步聚合得到:这里,y为服务器的公钥(对应服务器的私钥x)。用户B将作为仲裁证明发送给用户A(或者进行广播)。
仲裁协议验证:根据用户A(或者任何用户)根据发出的挑战zchal和证明zprf,通过以下计算来验证仲裁的结果:首先,检查m*=m**是否成立,若成立,则继续;否则,算法输出0并退出,代表仲裁失败。接着,聚合变色龙哈希值和变色龙随机数紧接着,验证如下等式是否均成立:
如果上述等式均成立,则算法输出1代表仲裁成功,用户B确实为文件m*的原始持有者,即文件m*和m**均来自于用户B,而文件m*是服务器根据m**进行修改而得到的。否则,算法输出0,代表仲裁失败。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (8)
1.一种基于双向可延展持有权证明的数据外包去重复方法,其特征在于,包括以下步骤:
S1.基于目标服务器,初始化所述目标服务器的***程序,获得安全参数和***公开参数;
S2.基于所述***公开参数,构建服务器公私钥对、用户端公私钥对、用户端公开参数,其中,所述服务器公私钥对包括服务器公钥和服务器私钥,所述用户端公私钥对包括用户端公钥和用户端私钥;
S3.基于所述用户端公开参数,构建用户端外包到所述目标服务器的用户端文件信息,获得元数据;
S4.所述目标服务器存储所述元数据,获得目标服务器元数据,基于所述用户端文件信息,对所述用户端的本地静态文件去重复工作,用于缓解所述用户端的本地存储压力;
所述S4包括以下步骤:
S4.1.基于所述元数据,检索所述服务器的本地存储数据中是否具有所述元数据,如果具有所述元数据,执行S4.2,如果不具有所述元数据,将所述元数据存储到所述服务器;
S4.2.基于所述用户端公钥验证所述元数据的有效性,如果具有所述有效性,删除所述本地静态文件,如果不具有所述有效性,执行步骤4.3;
S4.3.所述服务器,对所述用户端发起挑战和验证,用于验证所述用户端是否持有所述元数据,如果所述用户端持有所述元数据,执行步骤S4.4,如果所述用户端不持有所述元数据,则退出协议;所述S4.3包括以下步骤:
S4.3.1.基于所述元数据的验证文件,通过所述验证文件的块标识符和文件数量,构建验证数据集合,基于所述验证数据集合,通过选择服务器随机标识符,构建第一挑战协议,发送到用户端***;
S4.3.2.所述用户端基于元数据,通过所述挑战协议,构建从所述元数据到所述挑战协议的第一安全路径,基于所述元数据和第一安全路径,构建用户端持有证明模型,将所述用户端持有证明模型发送到所述服务器;
S4.3.3.所述服务器,基于所述用户端持有证明模型,对所述元数据进行判断,如果所述元数据完整,进入S4.3.4,如果不完整,则退出协议;
S4.3.4.基于所述元数据和第一安全路径,构建第二默克尔哈希树,获得所述第二默克尔哈希树的第二根结点集合,基于所述第二根结点集合,通过所述元数据,判断所述用户端是否持有所述元数据,如果是,删除所述本地静态文件,如果否,则退出协议;
S4.4.所述用户端对所述服务器发起挑战和验证,用于验证所述本地存储数据是否完整,如果所述本地存储数据不完整,所述服务器基于所述元数据,对所述本地存储数据进行替换,如果所述本地存储数据完整,则退出协议,删除所述元数据。
2.如权利要求1所述一种基于双向可延展持有权证明的数据外包去重复方法,其特征在于,
所述S1包括以下步骤:
S1.1.基于所述安全参数,获得素数;
S1.2.基于所述素数,构建第一乘法循环群、第二乘法循环群;
S1.3.基于所述第一乘法循环群、第二乘法循环群,获得生成元;
S1.4.基于两个所述第一乘法循环群,通过一个所述第二乘法循环群,构建双线性对;
S1.5.基于哈希函数,通过所述素数、第一乘法循环群、第二乘法循环群、生成元、双线性对,构建所述***公开参数。
3.如权利要求1所述一种基于双向可延展持有权证明的数据外包去重复方法,其特征在于,
所述S2包括,基于所述***公开参数,选择随意整数作为所述服务器私钥,基于所述服务器私钥,获得所述服务器公钥;
基于所述***公开参数,选择所述随意整数作为用户端私钥,基于所述用户端私钥,获得所述用户端公钥;
所述用户端密钥对,为用于签名的密钥对。
4.如权利要求1所述一种基于双向可延展持有权证明的数据外包去重复方法,其特征在于,
所述S3包括以下步骤:
S3.1.基于所述用户端公开参数,构建初始文件,将所述初始文件分为若干初始子文件,得到初始子文件数据集;
S3.2.构建第一随机标识符,基于所述初始子文件数据集、服务器公钥,获得第一中间参数;
S3.3.基于所述初始子文件数据集、第一中间参数,构建第一随机参数模型、第一变色龙随机数模型,基于所述第一随机参数模型、第一变色龙随机数模型、第一中间参数,构建第一变色龙哈希值模型;
S3.4.基于所述第一变色龙哈希值模型,构建第一默克尔哈希树,获得所述第一默克尔哈希树的第一根节点模型,通过所述用户端私钥,基于秘钥算法,获得第一目标签名;
S3.5.基于所述第一默克尔哈希树,获得第一文件标签和第一离散对数证明;
S3.6.基于所述初始子文件数据集、第一文件标签、第一离散对数证明,构建所述元数据。
5.如权利要求1所述一种基于双向可延展持有权证明的数据外包去重复方法,其特征在于,
所述S4.4包括,所述用户端通过对所述服务器的挑战,用于证明所述服务器是否持有完整的所述元数据。
6.如权利要求1所述的一种基于双向可延展持有权证明的数据外包去重复方法,其特征在于,
所述数据外包去重复方法还包括,对所述目标服务器元数据进行修改,包括以下步骤:
S5.1.基于修改元数据和所述元数据,构建初始修改数据集合,通过选择第二随机标识符,构建第二挑战协议,将所述第二挑战协议发送到所述服务器;
S5.2.所述服务器,基于所述第二挑战协议,通过比对所述目标服务器元数据并进行替换,获得第一新目标服务器元数据,获得所述第一新目标服务器元数据的第二中间参数,基于所述第二中间参数和服务器私钥,构建第二变色龙随机数模型,基于所述初始修改数据集合,构建第二安全路径,基于所述第二变色龙随机数模型、第二安全路径,构建验证模型,发送到所述用户端;
S5.3.所述用户端,通过所述验证模型,构建第三中间参数,基于所述修改元数据的第一文件块标识符,所述验证所述修改元数据是否完整,如果是,执行S5.4,如果不是,退出协议;
S5.4.基于所述第二安全路径和修改元数据,构建第三默克尔哈希树,获得第三根节点模型,基于所述第三根节点模型,判断替换是否成功,如果成功,退出协议,如果不成功,执行S5.1直至成功。
7.如权利要求1所述一种基于双向可延展持有权证明的数据外包去重复方法,其特征在于,
所述数据外包去重复方法,还包括,以下步骤:
S6.1.所述用户端包括若干用户,其中,所述用户包括第一用户,第二用户,所述第一用户,基于所述第二用户的第二用户服务器元数据,作为待仲裁文件,通过所述待仲裁文件的第二文件块标识符和待仲裁文件数量,构建待仲裁数据集合,通过选择第三随机标识符,基于所述待仲裁文件,构建仲裁协议,将所述仲裁协议在所述服务器进行广播;
S6.2.所述第二用户,提取所述第二用户服务器元数据,通过所述服务器私钥,构建第三变色龙随机数模型、第三变色龙哈希值模型,对所述第三变色龙随机数模型、第三变色龙哈希值模型进行聚合获得第一聚合模型,基于所述第二用户服务器元数据、聚合模型构建仲裁证明,所述第二用户,将所述仲裁证明在所述服务器进行广播或发送给第一用户;
S6.3.所述第一用户,基于所述仲裁协议和所述仲裁证明,判断所述仲裁证明是否等同于所述仲裁协议,如果相同,执行S6.4,如果不相同,则退出协议;
S6.4.基于所述第一聚合模型,对所述仲裁协议进行认证,如果认证成功,则表示所述仲裁协议和仲裁证明均属于第二用户,所述仲裁协议通过所述仲裁证明替换得来,如果认证失败,则退出协议。
8.如权利要求7所述一种基于双向可延展持有权证明的数据外包去重复方法,其特征在于,
所述第二用户服务器元数据为所述第二用户在所述服务器第一次存储的原始数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011610370.9A CN112580083B (zh) | 2020-12-30 | 2020-12-30 | 一种基于双向可延展持有权证明的数据外包去重复方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011610370.9A CN112580083B (zh) | 2020-12-30 | 2020-12-30 | 一种基于双向可延展持有权证明的数据外包去重复方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112580083A CN112580083A (zh) | 2021-03-30 |
CN112580083B true CN112580083B (zh) | 2023-04-14 |
Family
ID=75144435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011610370.9A Active CN112580083B (zh) | 2020-12-30 | 2020-12-30 | 一种基于双向可延展持有权证明的数据外包去重复方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112580083B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107094075A (zh) * | 2017-07-05 | 2017-08-25 | 电子科技大学 | 一种基于收敛加密的数据块动态操作方法 |
CN108200172A (zh) * | 2018-01-03 | 2018-06-22 | 西安电子科技大学 | 一种支持安全数据去重与删除的云存储***及方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105141602A (zh) * | 2015-08-18 | 2015-12-09 | 西安电子科技大学 | 基于收敛加密的文件所有权证明方法 |
US10623443B2 (en) * | 2016-07-08 | 2020-04-14 | Ulrich Lang | Method and system for policy management, testing, simulation, decentralization and analysis |
CN108600263B (zh) * | 2018-05-09 | 2020-09-25 | 电子科技大学 | 一种基于拥有性证明的安全有效的客户端去重方法 |
CN110278076B (zh) * | 2019-05-29 | 2022-06-03 | 电子科技大学 | 一种基于区块链的透明化数据完整性审计和透明化加密数据去重方法 |
CN111355705B (zh) * | 2020-02-08 | 2021-10-15 | 西安电子科技大学 | 一种基于区块链的数据审计与安全去重云存储***、方法 |
-
2020
- 2020-12-30 CN CN202011610370.9A patent/CN112580083B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107094075A (zh) * | 2017-07-05 | 2017-08-25 | 电子科技大学 | 一种基于收敛加密的数据块动态操作方法 |
CN108200172A (zh) * | 2018-01-03 | 2018-06-22 | 西安电子科技大学 | 一种支持安全数据去重与删除的云存储***及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112580083A (zh) | 2021-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111914027B (zh) | 一种区块链交易关键字可搜索加密方法及*** | |
Papamanthou et al. | Authenticated hash tables | |
Wang et al. | Enabling public verifiability and data dynamics for storage security in cloud computing | |
KR102404284B1 (ko) | 디지털 마크를 생성하기 위한 시스템 및 방법 | |
CN110647503A (zh) | 一种分布式存储方法及装置 | |
Esiner et al. | Flexdpdp: Flexlist-based optimized dynamic provable data possession | |
CN106991148B (zh) | 一种支持全更新操作的数据库验证***及方法 | |
CN109088719B (zh) | 外包数据库多关键词可验证密文搜索方法、数据处理*** | |
CN112565264B (zh) | 一种基于区块链的云存储数据完整性检测方法 | |
CN108092766A (zh) | 一种密文搜索权限验证方法及其*** | |
CN109639436A (zh) | 基于盐值的数据持有性验证方法及终端设备 | |
CN110719172B (zh) | 区块链***中的签名方法、签名***以及相关设备 | |
CN113704357A (zh) | 一种基于区块链的智慧城市数据共享方法及*** | |
CN112699123A (zh) | 一种数据存储***中数据存在性和完整性校验方法及*** | |
CN115208628B (zh) | 基于区块链的数据完整性验证方法 | |
CN111859425B (zh) | 一种基于属性的通配符可搜索加密方法 | |
CN116108497B (zh) | 一种基于身份匿名的医疗数据轻量级云存储方法及装置 | |
CN112580083B (zh) | 一种基于双向可延展持有权证明的数据外包去重复方法 | |
Zou et al. | Dynamic provable data possession based on ranked Merkle hash tree | |
CN115964407A (zh) | 双副本电力网络安全审计方法、***、介质及设备 | |
CN109462581A (zh) | 能够抵御暴力字典敌手持续攻击的密文去重方法 | |
CN113139209A (zh) | 一种基于原子性签名的可验证凭据实现方法和*** | |
CN115310137A (zh) | 一种智能结算***的保密方法及相关装置 | |
CN112671712B (zh) | 一种支持高效动态更新的云数据完整性验证方法及*** | |
Junxiang et al. | Dynamic provable data possession with batch-update verifiability |
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 |