CN112685753B - 一种用于加密数据存储的方法及设备 - Google Patents

一种用于加密数据存储的方法及设备 Download PDF

Info

Publication number
CN112685753B
CN112685753B CN202011567499.6A CN202011567499A CN112685753B CN 112685753 B CN112685753 B CN 112685753B CN 202011567499 A CN202011567499 A CN 202011567499A CN 112685753 B CN112685753 B CN 112685753B
Authority
CN
China
Prior art keywords
encrypted
file
data
encryption
authentication metadata
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
CN202011567499.6A
Other languages
English (en)
Other versions
CN112685753A (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.)
Shanghai Kunyao Network Technology Co ltd
Original Assignee
Shanghai Kunyao Network Technology Co ltd
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 Shanghai Kunyao Network Technology Co ltd filed Critical Shanghai Kunyao Network Technology Co ltd
Priority to CN202011567499.6A priority Critical patent/CN112685753B/zh
Publication of CN112685753A publication Critical patent/CN112685753A/zh
Priority to US17/540,195 priority patent/US20220209945A1/en
Priority to EP21216301.8A priority patent/EP4020265A1/en
Priority to JP2021208092A priority patent/JP2022103117A/ja
Priority to KR1020210187519A priority patent/KR20220092811A/ko
Application granted granted Critical
Publication of CN112685753B publication Critical patent/CN112685753B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/10Integrity

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Power Engineering (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本申请的目的是提供一种用于加密数据存储的方法、系统及设备,本申请通过获取待加密的原始数据,使用第一散列函数对所述待加密的原始数据进行散列处理,生成加密密钥;使用第二散列函数对所述待加密的原始数据进行散列计算,得到第一认证元数据;基于所述加密密钥对用于存储原始数据的原始文件进行加密,生成加密文件,基于所述第二散列函数对所述加密文件进行散列计算,得到第二认证元数据;基于所述第一散列函数、第一认证元数据、第二认证元数据生成内容描述符;将所述加密文件、第一认证元数据和第二认证元数据存储在以所述内容描述符作为标识信息的文件中,得到加密存储文件。从而实现重复加密数据删除与搜索,兼具后向兼容性和私密性。

Description

一种用于加密数据存储的方法及设备
技术领域
本申请涉及计算机领域,尤其涉及一种用于加密数据存储的方法及设备。
背景技术
隐私数据往往需要通过加密存储,而加密存储的密钥往往由每一个用户单独掌握,因此即使原始数据相同,加密后的数据完全不同,这使得加密后的重复数据删除成为不可能。同时,加密算法在不断演进,随着技术的发展和硬件的不断迭代,有些加密算法和散列算法的安全性可能受到威胁,那么用户加密的算法可能会发生变化,在加密算法演进的情况下,如何识别和同时对加密重复数据删除,仍然是一个问题。
在重复数据删除的场景下实现数据的加密和密文搜索是云存储安全领域的一个研究热点。为了在用户数据加密的条件下仍然能实现重复数据删除,云存储系统往往采用收敛加密技术或引入额外独立服务器。然而,这些机制存在离线暴力攻击威胁和成本限制等问题。
进一步地,提出了基于口令认证的密钥交换(Passwordauthenticatedkeyexchange,PAKE)协议的服务器端重复数据删除方案。其中,用户相互比较私密信息并共享密钥,并且该方案不需要额外服务器即可实现跨用户的重复数据删除,其优势在于不仅允许用户在本地客户端加密数据,而且可防御恶意用户或服务器发起的暴力攻击。另一方面,Belare等为了抵御暴力攻击,在服务器端的重复数据删除方案中引入密钥管理服务器。Puzio等设计了云存储系统下的数据块级重复数据删除方案,在收敛加密的基础上引入了额外的加密操作和接入控制机制以抵御字典攻击。但是,这些方法存在的普遍问题是针对特定场景下的实现,需要专门的管理服务器,并不通用,也缺乏文件系统的原生支持。另外,数据的安全和隐私保护越来越被业界重视,用户端上传加密数据已经成为常态。就目前的实现而言,加密通常由用户设定密钥,来实现隐私保护。这样一来,即使原始数据相同,加密后的数据也截然不同。重复数据删除成为一个难题。
另一个方面,加密学在不断发展,加密技术不断进步,业界需要一种可扩展的通用加密结构。学术界针对数据加密的机制主要分为两类:基于身份的加密机制、基于属性的加密机制。基于身份的加密机制是指任意两个用户不需要交换私钥或公钥,即可实现安全通信和身份认证。基于属性的加密机制采用由用户属性集合决定的用户身份来产生密钥,使属性相同的用户均可解密密文。基于属性的加密机制存在的问题是用户权限控制复杂和身份隐私泄露,因此导致加密数据的分享粒度过粗,导致其需要经常将密钥上传至第三方,因而难以适用于数据外包的环境。
密文搜索则是与数据加密对应的一项关键技术。基于明文关键词的搜索需要用户将其存储的数据直接解密或下载后解密,容易导致恶意用户或服务提供商窃取用户的隐私信息,不适用于加密存储系统。目前的研究进展是在单关键词或布尔关键词密文搜索的基础上建立多关键词排名密文搜索机制。其中,数据所有者将加密文件及其加密可检索的索引上传至存储服务器,而数据用户通过搜索控制机制来获得对应其多个关键词的检索陷门,然后将该信息发给存储服务器。服务器收到请求后,进行检索排序,最后返回检索结果。在搜索中,文件和查询关键词之间的相关度采用基于内积相似度的K近邻算法(K-nearestneighbor,kNN)技术来计算,而且在请求矢量中添加了随机变量,在文件数据的二进制矢量中增加了一个假关键词。因此,只获取密文数据的服务器在接收到检索陷门时,分析其相关度的难度增大。但是,如果已知两个检索陷门之间的相关性等背景知识,云服务器可以通过规模分析来获得关键词等隐私信息。因此,在数据的二进制矢量中增加多个假关键词,可保护搜索文件时所用关键词的隐私性。在关键词词典中添加一些空白词,即对应数据的二进制矢量中置0,用以支持添加、修改和删除文件等动态操作。
和密文搜索相关的一个领域是内容寻址,比如IPFS(星际文件系统)存储网络,通过对每个数据块计算散列(hash)值,并比较散列值来查看是否内容已经存储,如果已经存储,则可以直接使用和检索已有数据。目前未见基于加密数据内容相关的内容寻址研究。
综上所述,现有的许多存储系统中都已经实现了重复数据删除和内容寻址(搜索),但这些系统都没有处理好以下几个问题:
1.这种重复数据删除和内容寻址(搜索)只能针对未加密的数据进行,同样内容的数据,经过加密,密文不同,则不能实行重复数据删除和内容寻址。
2.这种重复数据删除和加密方式必然比较用户内容,多数情况下,内容属于不同的用户,存储系统必然需要根据不同用户的内容进行计算,对用户的隐私保护是一个破坏。
3.已有的加密系统和加密应用都是定制化的专用系统,没有以协议的机制解决,缺乏扩展性和后向兼容性。
发明内容
本申请的一个目的是提供一种用于加密数据存储的方法及设备,解决现有技术中无法识别和删除加密重复数据、现有的系统缺乏扩展性和后向兼容的问题。
根据本申请的一个方面,提供了一种用于加密数据存储的方法,该方法包括:
获取待加密的原始数据,使用第一散列函数对所述待加密的原始数据进行散列处理,生成加密密钥;
使用第二散列函数对所述待加密的原始数据进行散列计算,得到第一认证元数据;
基于所述加密密钥对用于存储原始数据的原始文件进行加密,生成加密文件,基于所述第二散列函数对所述加密文件进行散列计算,得到第二认证元数据;
基于所述第一散列函数、所述第一认证元数据、所述第二认证元数据生成内容描述符;
将所述加密文件、所述第一认证元数据和所述第二认证元数据存储在以所述内容描述符作为标识信息的文件中,得到加密存储文件。
可选地,基于所述加密密钥对用于存储原始数据的原始文件加密,生成加密文件,包括:
基于所述加密密钥及指定加密函数对用于存储原始数据的原始文件进行加密,生成指定加密后的加密文件。
可选地,基于所述第二散列函数对所述加密文件进行散列计算,得到第二认证元数据,包括:
基于所述第二散列函数对所述指定加密后的加密文件进行散列计算,得到第二认证元数据;
其中,基于所述第一散列函数、所述第一认证元数据、所述第二认证元数据生成内容描述符,包括:
基于所述第一散列函数、所述第一认证元数据、所述第二认证元数据以及所述指定加密函数生成内容描述符。
可选地,基于所述第一散列函数、所述第一认证元数据、所述第二认证元数据生成内容描述符,包括:
基于所述第一散列函数、所述第二散列函数、所述第一认证元数据、所述第二认证元数据以及所述指定加密函数生成内容描述符。
可选地,所述方法包括:
将所述内容描述符发送至用户,获取所述用户基于所述内容描述符检索所述加密存储文件后的检索结果。
可选地,获取所述用户基于所述内容描述符检索所述加密存储文件后的检索结果之后,包括:
当所述检索结果为检索到所述加密存储文件,则对所述加密存储文件进行解压,得到加密文件和第二认证元数据;
根据所述第二认证元数据以及所述内容描述符中的第二散列函数验证所述加密文件,得到验证结果;
基于所述验证结果使用所述加密密钥以及所述内容描述符中的指定加密函数对验证通过的加密文件进行解密,得到原始文件;
根据所述内容描述符中的第一散列函数和第一认证元数据验证所述原始文件,将验证通过的原始文件反馈至用户。
根据本申请的另一个方面,还提供了一种用于加密数据存储的系统,其中,所述系统包括数据获取模块、数据处理模块、数据加密模块、数据标识模块和数据存储模块,其中,
所述数据获取模块用于获取待加密的原始数据,使用第一散列函数对所述待加密的原始数据进行散列处理,生成加密密钥;
所述数据处理模块用于使用第二散列函数对所述待加密的原始数据进行散列计算,得到第一认证元数据;
所述数据加密模块用于基于所述加密密钥对用于存储原始数据的原始文件进行加密,生成加密文件,基于所述第二散列函数对所述加密文件进行散列计算,得到第二认证元数据;
所述数据标识模块用于基于所述第一散列函数、所述第一认证元数据、所述第二认证元数据生成内容描述符;
所述数据存储模块用于将所述加密文件、所述第一认证元数据和所述第二认证元数据存储在以所述内容描述符作为标识信息的文件中,得到加密存储文件。
根据本申请的再一个方面,还提供了一种计算机可读介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现如前述任一项所述的方法。
根据本申请的又一个方面,还提供了一种用于加密数据存储的设备,其中,所述设备包括:
一个或多个处理器;以及
存储有计算机可读指令的存储器,所述计算机可读指令在被执行时使所述处理器执行如前述任一项所述方法的操作。
与现有技术相比,本申请通过获取待加密的原始数据,使用第一散列函数对所述待加密的原始数据进行散列处理,生成加密密钥;使用第二散列函数对所述待加密的原始数据进行散列计算,得到第一认证元数据;基于所述加密密钥对用于存储原始数据的原始文件进行加密,生成加密文件,基于所述第二散列函数对所述加密文件进行散列计算,得到第二认证元数据;基于所述第一散列函数、所述第一认证元数据、所述第二认证元数据生成内容描述符;将所述加密文件、所述第一认证元数据和所述第二认证元数据存储在以所述内容描述符作为标识信息的文件中,得到加密存储文件。从而可以针对加密数据进行重复数据删除与搜索,并且无需比较用户的文件内容,保护了用户的隐私信息,并且提升了扩展性和后向兼容性,可以应用于不同的系统。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出根据本申请的一个方面提供的一种用于加密数据存储的方法流程示意图;
图2示出本申请一优选实施例中的一种指定格式的加密存储文件示意图;
图3示出了本申请一优选实施例中的一种内容描述符的获取方法流程示意图;
图4示出了本申请一优选实施例中的一种加密存储文件的加密存储与检索应用场景示意图;
图5示出了根据本申请另一方面提供的一种用于加密数据存储的系统框架结构示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
图1示出根据本申请的一个方面提供的一种用于加密数据存储的方法流程示意图,该方法包括:S100,获取待加密的原始数据,使用第一散列函数对所述待加密的原始数据进行散列处理,生成加密密钥;S200,使用第二散列函数对所述待加密的原始数据进行散列计算,得到第一认证元数据;S300,基于所述加密密钥对用于存储原始数据的原始文件进行加密,生成加密文件,基于所述第二散列函数对所述加密文件进行散列计算,得到第二认证元数据;S400,基于所述第一散列函数、所述第一认证元数据、所述第二认证元数据生成内容描述符;S500,将所述加密文件、所述第一认证元数据和所述第二认证元数据存储在以所述内容描述符作为标识信息的文件中,得到加密存储文件。从而可以针对加密数据进行重复数据删除与搜索,并且无需比较用户的文件内容,保护了用户的隐私信息,并且提升了扩展性和后向兼容性,可以应用于不同的系统。
具体地,在S100中,获取待加密的原始数据,使用第一散列函数对所述待加密的原始数据进行散列处理,生成加密密钥。在此,所述待加密的原始数据使用第一散列函数进行计算,得到的散列数据为加密密钥。从而,待加密的原始数据相同且散列函数相同时,得到的加密密钥是相同的。用原始数据本身通过特定散列算法生成内容作为加密密钥。这是在实现数据加密的同时,实现重复数据删除的关键。
在S200中,使用第二散列函数对所述待加密的原始数据进行散列计算,得到第一认证元数据。在此,所述待加密的原始数据使用第二散列函数进行计算得到的散列数据为第一认证元数据,其中,所述第一认证元数据用于检测解密后得到的解密数据与待加密的原始数据是否一致。
在S300中,基于所述加密密钥对用于存储原始数据的原始文件进行加密,生成加密文件,基于所述第二散列函数对所述加密文件进行散列计算,得到第二认证元数据。在此,所述加密可以使用指定加密方式来得到加密文件,在得到第二认证元数据之后,可以根据指定加密方式和第二认证元数据来验证加密后数据的一致性。
在S400中,基于所述第一散列函数、所述第一认证元数据、所述第二认证元数据生成内容描述符。在此,所述第一散列函数只需要将其对应的类型信息编码入内容描述符即可,对于任何原始数据,如果采用的第一散列函数、第二散列函数、第二认证元数据相同,则相同的原始数据经过同样的加密方式将得到相同的加密结果,但是,只有在知道原始数据的情况下,才可能知道加密密钥。基于内容描述符,公众可以获知本申请中的第一散列函数名称、第二散列函数名称、第一认证元数据和第二认证元数据,通过这样的内容描述符即可在无需解析原始数据中的用户隐私的情况下,直接对加密后的文件数据进行对应检索,并便于识别重复的加密数据,可以实现对重复加密数据的删除和检索,提升了扩展性和后向兼容性,可以应用于不同的系统中。
在S500中,将所述加密文件、所述第一认证元数据和所述第二认证元数据存储在以所述内容描述符作为标识信息的文件中,得到加密存储文件。在此,所述加密存储文件可以为指定格式储存文件,所述指定格式储存文件中包含所述加密文件、所述第一认证元数据和所述第二认证元数据,将所述第一认证元数据和所述第二认证元数据记入所述内容描述符中,使用所述内容描述符作为标识信息标识所述加密文件,得到指定格式存储后的加密存储文件。
图2示出本申请一优选实施例中的一种指定格式的加密存储文件示意图,该指定格式的加密存储文件由原始数据和原始数据的散列信息组成。认证元数据的作用是对原始数据的一致性和完整性进行验证。并且引入文件内容描述符(Cid)来作为文件加密前和加密后的唯一标识,Cid信息中会包含认证元数据。
在本申请一优选实施例中,在S300中,基于所述加密密钥及指定加密函数对用于存储原始数据的原始文件进行加密,生成指定加密后的加密文件。在此,所述指定加密方式可以为对称数据加密方式,基于所述加密密钥及对称数据加密函数对用于存储原始数据的原始文件进行加密,生成对称加密后的加密文件。
在本申请一优选实施例中,在S300中,基于所述第二散列函数对所述指定加密后的加密文件进行散列计算,得到第二认证元数据;基于所述第一散列函数、所述第一认证元数据、所述第二认证元数据以及所述指定加密函数生成内容描述符。在此,所述指定加密函数可以仅仅将其对应的加密函数类型编码入内容描述符中,进一步精简内容描述符内容。在本申请中,使用的加密方式、散列函数均为可供大众获取得到的数据,但仅在获知待加密的原始数据的情况下,才可以对加密后的数据文件进行解密。
在本申请一优选实施例中,在S300中,基于所述第一散列函数、所述第二散列函数、所述第一认证元数据、所述第二认证元数据以及所述指定加密函数生成内容描述符。在此,可以将所述第一散列函数的类型信息、所述第二散列函数的类型信息、所述第一认证元数据、所述第二认证元数据以及所述指定加密函数对应的加密函数类型编码入内容描述符中,通过这样的内容描述符即可在无需解析原始数据中的用户隐私的情况下,直接对加密后的文件数据进行对应检索,并便于识别重复的加密数据,可以实现对重复加密数据的删除和检索,提升了扩展性和后向兼容性,可以应用于不同的系统中。
图3示出了本申请一优选实施例中的一种内容描述符的获取方法流程示意图,第一散列函数标识为散列算法H1,第二散列函数标识为散列算法H2,第一认证元数据标识为认证元数据Id,第二认证元数据标识为EncID。基于文件原始数据D使用第一散列函数计算后得到文件加密密钥(key),使用对称加密算法Enc和文件加密密钥将所述文件原始数据D加密,得到文件加密数据G。对所述文件原始数据D使用散列算法H2计算后得到认证元数据Id,将所述认证元数据Id编码后得到D’Id,写入文件内容描述符(Cid)中,接着,将散列算法H1的算法类型信息ID(H1)写入包含有D’Id的内容描述符中,将对称加密算法类型Enc编码后得到的ID(Enc)写入包含有ID(H1)和D’Id的内容描述符中,将散列算法H2算法类型信息ID(H2)写入包含有ID(Enc)、ID(H1)和D’Id的内容描述符中,最终得到的Cid=ID(H2)||ID(Enc)||ID(H1)||D’Id。需要说明的是,本实施例中的ID为常量定义,支持扩展,用来定义不同的算法。各个环节中的散列算法都是可替换的,有效实现了后向兼容。
在本申请一优选实施例中,将所述内容描述符发送至用户,获取所述用户基于所述内容描述符检索所述加密存储文件后的检索结果。在此,用户可以获取到内容描述符后对加密文件进行检索。
在本申请一优选实施例中,获取所述用户基于所述内容描述符检索所述加密存储文件后的检索结果之后,当所述检索结果为检索到所述加密存储文件,则对所述加密存储文件进行解压,得到加密文件和第二认证元数据;根据所述第二认证元数据以及所述内容描述符中的第二散列函数验证所述加密文件,得到验证结果;基于所述验证结果使用所述加密密钥以及所述内容描述符中的指定加密函数对验证通过的加密文件进行解密,得到原始文件;根据所述内容描述符中的第一散列函数和第一认证元数据验证所述原始文件,将验证通过的原始文件反馈至用户。在此,基于内容描述符可以实现用户对加密文件的检索与解密,便于识别重复的加密数据,可以实现对重复加密数据的删除和检索,提升了扩展性和后向兼容性,可以应用于不同的系统中。
图4示出了本申请一优选实施例中的一种加密存储文件的加密存储与检索应用场景示意图,其中,所述第一散列函数优选为密钥生成算法H1,所述第二散列函数优选为数据指纹算法H2,用户获取原始数据D后,根据密钥生成算法H1、数据指纹算法H2以及数据加密算法Enc对原始数据D进行加密存储处理,首先根据原始数据D和数据指纹算法H2生成指纹信息Id,使用H1算法计算原始数据D生成密钥Key,使用Enc和key对要上传的文件D加密成文件G,使用散列算法H2计算文件G的EncID,用作文件G的一致性验证,基于H1、H2、Enc和指纹信息Id生成文件内容描述符(Cid),此时判断Cid是否存在,若是,则把文件G和EncID存储为自认证存储格式的文件H并存入对应的存储位置,例如硬盘;若否,则重新生成Cid。
接上述实施例,用户使用Cid检索文件后,当存在对应的文件对象时,即可根据上述Cid获取文件H,将文件H解压后,获得文件G和自认证信息EncID,根据EncID、Cid中的散列算法H2验证文件G的完整性,使用密钥Key、Cid中的加密算法Enc解密文件G,获得文件D,根据Cid中的Id验证文件D的完整性,当验证通过时,向用户返回文件D。
本申请实施例还提供了一种计算机可读介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现前述一种用于加密数据存储的方法。
与上文所述的方法相对应的,本申请还提供一种终端,其包括能够执行上述图1或图2或图3或图4或各个实施例所述的方法步骤的模块或单元,这些模块或单元可以通过硬件、软件或软硬结合的方式来实现,本申请并不限定。例如,在本申请一实施例中,还提供了一种用于加密数据存储的设备,其中,所述设备包括:
一个或多个处理器;以及
存储有计算机可读指令的存储器,所述计算机可读指令在被执行时使所述处理器执行前述所述一种用于加密数据存储的方法的操作。
例如,计算机可读指令在被执行时使所述一个或多个处理器:获取待加密的原始数据,使用第一散列函数对所述待加密的原始数据进行散列处理,生成加密密钥;使用第二散列函数对所述待加密的原始数据进行散列计算,得到第一认证元数据;基于所述加密密钥对用于存储原始数据的原始文件进行加密,生成加密文件,基于所述第二散列函数对所述加密文件进行散列计算,得到第二认证元数据;基于所述第一散列函数、所述第一认证元数据、所述第二认证元数据生成内容描述符;将所述加密文件、所述第一认证元数据和所述第二认证元数据存储在以所述内容描述符作为标识信息的文件中,得到加密存储文件。
图5示出了根据本申请另一方面提供的一种用于加密数据存储的系统框架结构示意图,其中,所述系统包括数据获取模块100、数据处理模块200、数据加密模块300、数据标识模块400和数据存储模块500,其中,所述数据获取模块100用于获取待加密的原始数据,使用第一散列函数对所述待加密的原始数据进行散列处理,生成加密密钥;所述数据处理模块200用于使用第二散列函数对所述待加密的原始数据进行散列计算,得到第一认证元数据;所述数据加密模块300用于基于所述加密密钥对用于存储原始数据的原始文件进行加密,生成加密文件,基于所述第二散列函数对所述加密文件进行散列计算,得到第二认证元数据;所述数据标识模块400用于基于所述第一散列函数、所述第一认证元数据、所述第二认证元数据生成内容描述符;所述数据存储模块500用于将所述加密文件、所述第一认证元数据和所述第二认证元数据存储在以所述内容描述符作为标识信息的文件中,得到加密存储文件。从而可以针对加密数据进行重复数据删除与搜索,并且无需比较用户的文件内容,保护了用户的隐私信息,并且提升了扩展性和后向兼容性,可以应用于不同的系统。
需要说明的是,所述数据获取模块100、所述数据处理模块200、所述数据加密模块300、所述数据标识模块400和所述数据存储模块500执行的内容分别与上述步骤S100、S200、S300和S400中的内容相同或相应相同,为简明起见,在此不再赘述。
在本申请一优选实施例中,所述数据存储模块500还用于将所述内容描述符发送至用户,获取所述用户基于所述内容描述符检索所述加密存储文件后的检索结果。
在本申请一优选实施例中,所述数据处理模块200还用于当所述检索结果为检索到所述加密存储文件,则对所述加密存储文件进行解压,得到加密文件和第二认证元数据;根据所述第二认证元数据以及所述内容描述符中的第二散列函数验证所述加密文件,得到验证结果;基于所述验证结果使用所述加密密钥以及所述内容描述符中的指定加密函数对验证通过的加密文件进行解密,得到原始文件;根据所述内容描述符中的第一散列函数和第一认证元数据验证所述原始文件,将验证通过的原始文件反馈至用户。
需要说明的是,所述所述数据处理模块200和所述数据存储模块500执行的内容分别与上述方法实施例中对应的执行内容相同或相应相同,为简明起见,在此不再赘述。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

Claims (6)

1.一种用于加密数据存储的方法,其中,所述方法包括:
获取待加密的原始数据,使用第一散列函数对所述待加密的原始数据进行散列处理,生成加密密钥,其中,所述第一散列函数为密钥生成算法;
使用第二散列函数对所述待加密的原始数据进行散列计算,得到第一认证元数据,其中,所述第二散列函数为数据指纹算法;
基于所述加密密钥对用于存储原始数据的原始文件进行加密,生成加密文件,基于所述第二散列函数对所述加密文件进行散列计算,得到第二认证元数据;
基于所述第一散列函数、所述第二散列函数、所述第一认证元数据、所述第二认证元数据以及指定加密函数生成内容描述符,其中,所述内容描述符作为标识信息标识文件,所述指定加密函数将指定加密函数对应的加密函数类型编码入内容描述符中,所述指定加密函数为对称数据加密函数;
将所述第一认证元数据和所述第二认证元数据记入所述内容描述符中,使用所述内容描述符作为标识信息标识所述加密文件,得到加密存储文件;
将所述内容描述符发送至用户,获取所述用户基于所述内容描述符检索所述加密存储文件后的检索结果;
当所述检索结果为检索到所述加密存储文件,则对所述加密存储文件进行解压,得到加密文件和第二认证元数据;
根据所述第二认证元数据以及所述内容描述符中的第二散列函数验证所述加密文件,得到验证结果;
基于所述验证结果使用所述加密密钥以及所述内容描述符中的指定加密函数对验证通过的加密文件进行解密,得到原始文件;
根据所述内容描述符中的第一散列函数和第一认证元数据验证所述原始文件,将验证通过的原始文件反馈至用户。
2.根据权利要求1所述的方法,其中,基于所述加密密钥对用于存储原始数据的原始文件加密,生成加密文件,包括:
基于所述加密密钥及指定加密函数对用于存储原始数据的原始文件进行加密,生成指定加密后的加密文件。
3.根据权利要求2所述的方法,其中,基于所述第二散列函数对所述加密文件进行散列计算,得到第二认证元数据,包括:
基于所述第二散列函数对所述指定加密后的加密文件进行散列计算,得到第二认证元数据。
4.一种用于加密数据存储的系统,其中,所述系统包括数据获取模块、数据处理模块、数据加密模块、数据标识模块、数据存储模块和搜索模块,其中,
所述数据获取模块用于获取待加密的原始数据,使用第一散列函数对所述待加密的原始数据进行散列处理,生成加密密钥,其中,所述第一散列函数为密钥生成算法;
所述数据处理模块用于使用第二散列函数对所述待加密的原始数据进行散列计算,得到第一认证元数据,其中,所述第二散列函数为数据指纹算法;
所述数据加密模块用于基于所述加密密钥对用于存储原始数据的原始文件进行加密,生成加密文件,基于所述第二散列函数对所述加密文件进行散列计算,得到第二认证元数据;
所述数据标识模块用于基于所述第一散列函数、所述第二散列函数、所述第一认证元数据、所述第二认证元数据以及指定加密函数生成内容描述符,其中,所述内容描述符作为标识信息标识文件,所述指定加密函数将指定加密函数对应的加密函数类型编码入内容描述符中,所述指定加密函数为对称数据加密函数;
所述数据存储模块用于将所述第一认证元数据和所述第二认证元数据记入所述内容描述符中,使用所述内容描述符作为标识信息标识所述加密文件,得到加密存储文件;
所述搜索模块用于将所述内容描述符发送至用户,获取所述用户基于所述内容描述符检索所述加密存储文件后的检索结果,当所述检索结果为检索到所述加密存储文件,则对所述加密存储文件进行解压,得到加密文件和第二认证元数据,根据所述第二认证元数据以及所述内容描述符中的第二散列函数验证所述加密文件,得到验证结果,基于所述验证结果使用所述加密密钥以及所述内容描述符中的指定加密函数对验证通过的加密文件进行解密,得到原始文件,根据所述内容描述符中的第一散列函数和第一认证元数据验证所述原始文件,将验证通过的原始文件反馈至用户。
5.一种计算机可读介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现如权利要求1至3中任一项所述的方法。
6.一种用于加密数据存储的设备,其中,所述设备包括:
一个或多个处理器;以及
存储有计算机可读指令的存储器,所述计算机可读指令在被执行时使所述处理器执行如权利要求1至3中任一项所述方法的操作。
CN202011567499.6A 2020-12-25 2020-12-25 一种用于加密数据存储的方法及设备 Active CN112685753B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN202011567499.6A CN112685753B (zh) 2020-12-25 2020-12-25 一种用于加密数据存储的方法及设备
US17/540,195 US20220209945A1 (en) 2020-12-25 2021-12-01 Method and device for storing encrypted data
EP21216301.8A EP4020265A1 (en) 2020-12-25 2021-12-21 Method and device for storing encrypted data
JP2021208092A JP2022103117A (ja) 2020-12-25 2021-12-22 暗号化データを保存するための方法及び設備
KR1020210187519A KR20220092811A (ko) 2020-12-25 2021-12-24 암호화 데이터를 저장하는 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011567499.6A CN112685753B (zh) 2020-12-25 2020-12-25 一种用于加密数据存储的方法及设备

Publications (2)

Publication Number Publication Date
CN112685753A CN112685753A (zh) 2021-04-20
CN112685753B true CN112685753B (zh) 2023-11-28

Family

ID=75453417

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011567499.6A Active CN112685753B (zh) 2020-12-25 2020-12-25 一种用于加密数据存储的方法及设备

Country Status (5)

Country Link
US (1) US20220209945A1 (zh)
EP (1) EP4020265A1 (zh)
JP (1) JP2022103117A (zh)
KR (1) KR20220092811A (zh)
CN (1) CN112685753B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11595190B2 (en) * 2021-01-27 2023-02-28 Dell Products L.P. Encrypted data storage system
KR102657163B1 (ko) * 2023-06-09 2024-04-15 인스피언 주식회사 데이터 관리 장치, 데이터 관리 방법 및 데이터 관리 프로그램을 저장하는 컴퓨터로 판독 가능한 저장 매체
CN117763593B (zh) * 2024-02-21 2024-05-07 电子科技大学 隐藏模式的多关键词对称可搜索加密方法、终端及服务器

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101118773A (zh) * 2006-08-02 2008-02-06 索尼株式会社 存储设备和存储方法、及信息处理设备和信息处理方法
CN104580487A (zh) * 2015-01-20 2015-04-29 成都信升斯科技有限公司 一种海量数据存储系统及处理方法
CN104601579A (zh) * 2015-01-20 2015-05-06 成都市酷岳科技有限公司 一种保障信息安全的计算机系统及其方法
CN106127043A (zh) * 2010-05-21 2016-11-16 英特尔公司 从远程服务器对数据存储设备进行安全扫描的方法和装置
CN106612172A (zh) * 2016-07-15 2017-05-03 四川用联信息技术有限公司 云存储中一种可验证还原数据真实性的数据篡改恢复算法
CN106611128A (zh) * 2016-07-19 2017-05-03 四川用联信息技术有限公司 云存储中基于二次加密的数据验证和数据恢复算法
CN107294937A (zh) * 2016-04-11 2017-10-24 平安科技(深圳)有限公司 基于网络通信的数据传输方法、客户端及服务器
CN107707600A (zh) * 2017-05-26 2018-02-16 贵州白山云科技有限公司 一种数据存储方法及装置
CN107888591A (zh) * 2017-11-10 2018-04-06 国信嘉宁数据技术有限公司 一种电子数据保全的方法及系统
CN109905351A (zh) * 2017-12-08 2019-06-18 北京京东尚科信息技术有限公司 用于存储数据的方法和装置
CN111435913A (zh) * 2019-01-14 2020-07-21 海信集团有限公司 一种物联网终端的身份认证方法、装置和存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8041641B1 (en) * 2006-12-19 2011-10-18 Symantec Operating Corporation Backup service and appliance with single-instance storage of encrypted data
WO2012093216A1 (fr) * 2011-01-07 2012-07-12 Thomson Licensing Dispositif et procède de stockage en ligne, dispositif et procède d'émission, dispositif et procède de réception
US9037856B2 (en) * 2012-07-18 2015-05-19 Nexenta Systems, Inc. System and method for distributed deduplication of encrypted chunks
US9372998B2 (en) * 2014-10-07 2016-06-21 Storagecraft Technology Corporation Client-side encryption in a deduplication backup system
KR102450295B1 (ko) * 2016-01-04 2022-10-04 한국전자통신연구원 암호 데이터의 중복 제거 방법 및 장치

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101118773A (zh) * 2006-08-02 2008-02-06 索尼株式会社 存储设备和存储方法、及信息处理设备和信息处理方法
CN106127043A (zh) * 2010-05-21 2016-11-16 英特尔公司 从远程服务器对数据存储设备进行安全扫描的方法和装置
CN104580487A (zh) * 2015-01-20 2015-04-29 成都信升斯科技有限公司 一种海量数据存储系统及处理方法
CN104601579A (zh) * 2015-01-20 2015-05-06 成都市酷岳科技有限公司 一种保障信息安全的计算机系统及其方法
CN107294937A (zh) * 2016-04-11 2017-10-24 平安科技(深圳)有限公司 基于网络通信的数据传输方法、客户端及服务器
CN106612172A (zh) * 2016-07-15 2017-05-03 四川用联信息技术有限公司 云存储中一种可验证还原数据真实性的数据篡改恢复算法
CN106611128A (zh) * 2016-07-19 2017-05-03 四川用联信息技术有限公司 云存储中基于二次加密的数据验证和数据恢复算法
CN107707600A (zh) * 2017-05-26 2018-02-16 贵州白山云科技有限公司 一种数据存储方法及装置
CN107888591A (zh) * 2017-11-10 2018-04-06 国信嘉宁数据技术有限公司 一种电子数据保全的方法及系统
CN109905351A (zh) * 2017-12-08 2019-06-18 北京京东尚科信息技术有限公司 用于存储数据的方法和装置
CN111435913A (zh) * 2019-01-14 2020-07-21 海信集团有限公司 一种物联网终端的身份认证方法、装置和存储介质

Also Published As

Publication number Publication date
CN112685753A (zh) 2021-04-20
EP4020265A1 (en) 2022-06-29
JP2022103117A (ja) 2022-07-07
US20220209945A1 (en) 2022-06-30
KR20220092811A (ko) 2022-07-04

Similar Documents

Publication Publication Date Title
CN112685753B (zh) 一种用于加密数据存储的方法及设备
Salam et al. Implementation of searchable symmetric encryption for privacy-preserving keyword search on cloud storage
Kaaniche et al. A secure client side deduplication scheme in cloud storage environments
JP6180177B2 (ja) プライバシーを保護することができる暗号化データの問い合わせ方法及びシステム
JP4958246B2 (ja) 高速検索可能な暗号化のための方法、装置およびシステム
CN108400970B (zh) 云环境中相似数据消息锁定加密去重方法、云存储系统
US9602280B2 (en) System and method for content encryption in a key/value store
US20160112413A1 (en) Method for controlling security of cloud storage
US20140019765A1 (en) Device and method for online storage, transmission device and method, and receiving device and method
KR101979267B1 (ko) 클라우드 저장 기반 암호화 시스템 및 방법
EP2999159A1 (en) Safety control method for cloud storage
US11947492B2 (en) Information processing device, terminal device, and search method
CN112532650A (zh) 一种基于区块链的多备份安全删除方法、系统
CN115225409A (zh) 基于多备份联合验证的云数据安全去重方法
Yan et al. Secure and efficient big data deduplication in fog computing
CN108920968B (zh) 一种基于连接关键词的文件可搜索加密方法
CN113779597B (zh) 加密文档的存储和相似检索方法、装置、设备及介质
US11595190B2 (en) Encrypted data storage system
CN115459967A (zh) 一种基于可搜索加密的密文数据库查询方法及系统
CN114995949A (zh) 容器镜像构建方法及装置
Pronika et al. An analysis and comparative study of data deduplication scheme in cloud storage
Khan et al. Secure and efficient retrieval of video file using bloom filter and hybrid encryption algorithms
US9560022B1 (en) Avoiding collection of biometric data without consent
Zhao et al. Comparison of Ciphertext Features for Data Deduplication
Kutty et al. Quad-Sec: Preserving Privacy of Data in Cloud

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