CN103699854B - 数据存储方法、数据访问方法及存储设备 - Google Patents

数据存储方法、数据访问方法及存储设备 Download PDF

Info

Publication number
CN103699854B
CN103699854B CN201310753261.6A CN201310753261A CN103699854B CN 103699854 B CN103699854 B CN 103699854B CN 201310753261 A CN201310753261 A CN 201310753261A CN 103699854 B CN103699854 B CN 103699854B
Authority
CN
China
Prior art keywords
data
user
ciphertext
storage address
described data
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
CN201310753261.6A
Other languages
English (en)
Other versions
CN103699854A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201310753261.6A priority Critical patent/CN103699854B/zh
Publication of CN103699854A publication Critical patent/CN103699854A/zh
Application granted granted Critical
Publication of CN103699854B publication Critical patent/CN103699854B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • 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)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了数据存储方法、数据访问方法及存储设备,该方法包括:对待存储数据进行哈希HASH计算;利用计算出的HASH值对所述待存储数据进行加密得到第一密文;根据所述HASH值判断所述存储设备中是否已经存储有所述数据;如果所述存储设备中没有存储所述数据,则保存所述第一密文并记录所述数据的存储地址,所述数据的存储地址中包含有所述第一密文的存储地址。本发明实施例提供的数据存储方法、数据访问方法及存储设备,通过待存储数据的HASH值对该待存储数据进行加密,存储加密后的密文,能够提高数据重删的安全性。

Description

数据存储方法、数据访问方法及存储设备
技术领域
本发明涉及存储技术领域,尤其涉及数据存储方法、数据访问方法及存储设备。
背景技术
随着近几年数据量的爆炸式增长,对存储产品的性能、容量需求越来越高,特别是在数据备份时,为了节省成本,提高后端存储空间的利用率,进行数据备份时往往会利用重复数据删除技术。
现有技术中,在进行数据存储时,计算出待存储数据的哈希(HASH)值,根据HASH值与存储设备中已有的HASH进行比对,如果存储设备中已有相同的HASH值,则不存储该待存储数据,如果存储设备中没有相同的HASH值,则存储该待存储数据。
由以上描述可以看出,在现有技术中,对数据的重删无法保证数据的安全性。
发明内容
本发明实施例提供了数据存储方法、数据访问方法及存储设备,以提高数据重删的安全性。
为了解决上述技术问题,本发明实施例公开了如下技术方案:
第一方面,本发明提供了一种数据存储方法,所述方法应用于存储设备中,包括:
对待存储数据进行哈希HASH计算;
利用计算出的HASH值对所述待存储数据进行加密得到第一密文;
根据所述HASH值判断所述存储设备中是否已经存储有所述数据;
如果所述存储设备中没有存储所述数据,则保存所述第一密文并记录所述数据的存储地址,所述数据的存储地址中包含有所述第一密文的存储地址。
在第一方面的第一种可能的实现方式中,所述数据的存储地址中还包括所述用户的ID,所述方法还包括:
在所述用户的哈希表中记录所述HASH值与所述数据的存储地址的对应关系;
利用所述用户的私钥对所述用户的哈希表进行加密,获得第二密文;
存储所述第二密文,并记录所述第二密文与所述用户的ID的对应关系。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,还包括:
如果所述存储设备中存储有所述数据,则记录所述数据的存储地址,所述数据的存储地址中包含有所述第一密文的存储地址以及存储所述数据的其他用户的ID。
第二方面,本发明提供了一种数据访问方法,所述方法应用于存储设备中,包括:
接收数据访问请求,所述数据访问请求中包含有待访问数据的存储地址,所述数据的存储地址中包含有第一密文的存储地址,所述第一密文为根据所述数据的哈希HASH值对所述数据进行加密后获得的密文;
根据所述第一密文的存储地址获得所述第一密文;
根据所述数据的存储地址获取所述数据的HASH值;
通过所述数据的HASH值对所述第一密文进行解密,以获得所述待访问数据。
在第二方面的第一种可能的实现方式中,所述根据所述数据的存储地址获取所述数据的HASH值包括:
根据所述数据的存储地址以及预设的哈希表获得所述待访问数据的HASH值,所述哈希表中记录有所述HASH值与所述数据的存储地址的对应关系。
在第二方面的第二种可能的实现方式中,所述数据的存储地址中还包含有存储所述数据的用户的标识ID,所述根据所述数据的存储地址获取所述数据的HASH值包括:
根据所述数据的存储地址中的用户的ID以及预设的所述用户的ID与第二密文的对应关系获得所述第二密文,所述第二密文根据所述用户的私钥对所述用户的哈希表进行加密获得;
根据所述用户的ID以及预先设置的用户的ID与公钥的对应关系获得所述用户的公钥;
采用所述用户的公钥对所述第二密文进行解密,获得所述用户的哈希表,所述用户的哈希表中记录有所述待访问数据的HASH值与所述待访问的数据的存储地址的对应关系;
根据所述待访问数据的存储地址查找所述用户的哈希表,获得所述待访问数据的HASH值。
第三方面,本发明提供了一种存储设备,所述存储设备包括:
计算模块,用于对待存储数据进行哈希HASH计算;
加密模块,用于利用所述计算模块计算出的HASH值对所述待存储数据进行加密得到第一密文;
判断模块,用于根据所述HASH值判断所述存储设备中是否已经存储有所述数据;
存储模块,用于当判断模块的的判断结果为所述存储设备中没有存储所述数据时,保存所述加密单元得到的第一密文并记录所述数据的存储地址,所述数据的存储地址中包含有所述第一密文的存储地址。
在第三方面的第一种可能的实现方式中,所述数据的存储地址中还包括所述用户的ID,
所述存储模块,还用于在所述用户的哈希表中记录所述HASH值与所述数据的存储地址的对应关系;
所述加密模块,还用于利用所述用户的私钥对所述用户的哈希表进行加密,获得第二密文;
所述存储模块,还用于存储所述加密单元获得的第二密文,并记录所述第二密文与所述用户的ID的对应关系。
结合第三方面或第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述存储模块,还用于当判断模块的判断结果为所述存储设备中已经存储有所述数据时,记录所述数据的存储地址,所述数据的存储地址中包含有所述第一密文的存储地址以及存储所述数据的其他用户的ID。
第四方面,本发明提供了一种存储设备,所述存储设备包括:
接收模块,用于接收数据访问请求,所述数据访问请求中包含有待访问的数据的存储地址,所述数据的存储地址中包含有第一密文的存储地址,所述第一密文为根据所述数据的哈希HASH值对所述数据进行加密后获得的密文;
获取模块,用于根据所述第一密文的存储地址获得所述第一密文;
所述获取模块,还用于根据所述数据的存储地址获取所述数据的HASH值;
解密模块,用于通过所述数据的HASH值对所述获取单元获得的第一密文进行解密,以获得所述待访问数据。
在第四方面的第一种可能的实现方式中,所述获取模块,具体用于根据所述数据的存储地址以及预设的哈希表获得所述待访问数据的HASH值,所述哈希表中记录有所述HASH值与所述数据的存储地址的对应关系。
在第四方面的第二种可能的实现方式中,所述数据的存储地址中还包含有存储所述数据的用户的标识ID,所述获取模块,包括:
获取子模块,用于根据所述数据的存储地址中的用户的ID以及预设的所述用户的ID与第二密文的对应关系获得所述第二密文;并根据所述用户的ID以及预先设置的用户的ID与公钥的对应关系获得所述用户的公钥,其中,所述第二密文根据所述用户的私钥对所述用户的哈希表进行加密获得;
解码子模块,用于采用所述获取子模块获取的用户的公钥对所述获取子模块获取的第二密文进行解密,获得所述用户的哈希表,其中,所述用户的哈希表中记录有所述待访问数据的HASH值与所述待访问的数据的存储地址的对应关系;
查找子模块,用于根据所述待访问数据的存储地址查找所述用户的哈希表,获得所述待访问数据的HASH值。
本发明实施例提供的数据存储方法、数据访问方法及存储设备,通过待存储数据的HASH值对该待存储数据进行加密,存储加密后的密文,能够提高数据重删的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例1中一种数据存储方法流程图;
图2是本发明实施例1中另一种数据存储方法流程图;
图3是本发明实施例2中一种数据访问方法流程图;
图4是本发明实施例2中另一种数据访问方法流程图;
图5是本发明实施例3中存储设备与用户配合完成数据存储及访问的流程图;
图6是本发明实施例4中一种存储设备的结构示意图;
图7是本发明实施例5中一种存储设备的结构示意图;
图8是本发明实施例6中一种存储设备的结构示意图;
图9是本发明实施例7中一种存储设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1:
本发明实施例1提出了一种数据存储方法,参见图1,该方法包括以下步骤:
步骤101:对待存储数据进行HASH计算;
具体地,计算HASH值的方法多样,比如可以利用以下中的任意一种HASH算法计算对应的HASH值:SHA1算法、SHA128算法、SHA256算法、SHA512算法、MD5算法或者SM3算法。
步骤102:利用计算出的HASH值对该待存储数据进行加密得到第一密文;
具体地,采用对称加密算法对该待存储数据进行加密,在对称加密算法中,有且仅有一个密钥,密钥由所述进行加密的用户保管。本实施例中采用的密钥是待存储数据的HASH值。
步骤103:根据该HASH值判断存储设备中是否已经存储有该数据;
具体地,在存储设备中存储有哈希表,哈希表中记录了存储设备中存储的数据的HASH值与数据的存储地址的对应关系,要判断存储设备中是否有所述待存储数据,可以通过查找存储设备中的哈希表中是否有该HASH值来实现。
步骤104:如果存储设备中没有存储该数据,则保存第一密文并记录该数据的存储地址,其中,该数据的存储地址中包含有第一密文的存储地址。
具体地,如果存储设备中没有存储该数据,则将所述第一密文保存到存储设备中,并将该数据的存储地址与所述待存储数据的HASH值的对应关系记录在HASH表中。其中,该数据的存储地址中包含有第一密文的存储地址,还可以包含存储该待存储数据的用户的ID。
具体地,在步骤104中,保存所述第一密文并记录所述数据的存储地址之后,进一步包括:更新HASH值与存储地址的对应关系。
另外,在步骤103之后,如果所述存储设备中存储有所述数据,则记录所述数据的存储地址,所述数据的存储地址中包含有所述第一密文的存储地址,还可以包含存储所述数据的其他用户的ID。
另外,本发明实施例中的用户的哈希表可以通过以下方式实现:方式一:在存储设备中保存有一个哈希表,每个用户对应该哈希表中的一部分;方式二:在存储设备中每个用户对应一个哈希表。
另外,本实施例中在存储所述待存储数据之前,对待存储的文件进行分段处理,得到分段数据块,该分段数据块即为所述待存储数据,而整个待存储的文件对应一个数据地址结构,该数据地址结构中包括该待存储文件的所有待存储数据的存储地址,其中,该数据的存储地址包括:所述第一密文的存储地址,还可以包括存储所述待存储数据的用户的ID。
其中,分段处理的方法多样,比如可以利用定长分段的方法进行分段,也可以利用如下算法进行变长分段处理:如利用Adler32的滑动窗口算法或tttd算法进行变长分段处理。
通过本发明实施例提供的一种数据存储方法,通过待存储数据的HASH值对该待存储数据进行加密,存储加密后的密文,能够提高数据重删的安全性。
本发明实施例提供了另一种数据存储方法,在本发明实施例中,数据的存储地址中还包括所述用户的ID,并对待存储数据的HASH值进行了加密,参见图2,该方法包括:
步骤201:对待存储数据进行HASH计算;
步骤202:利用计算出的HASH值对该待存储数据进行加密得到第一密文;
步骤203:根据该HASH值判断存储设备中是否已经存储有该数据;
步骤204:如果存储设备中没有存储该数据,则保存第一密文并记录该数据的存储地址;
步骤205:在所述用户的哈希表中记录所述HASH值与所述数据的存储地址的对应关系;
步骤206:利用所述用户的私钥对所述用户的哈希表进行加密,获得第二密文;
具体地,存储设备中存有所述用户的公钥与所述用户的ID的对应关系,所述用户的公钥与所述私钥相对应。其中,本步骤中,采用非对称加密算法对所述哈希表进行加密,在非对称加密算法中,有一个公钥和一个私钥,私钥由用户自行保管,而公钥可以对外发布,使用私钥加密的数据只能使用对应的公钥进行解密,相反,使用公钥加密的数据只能使用对应的私钥才能解密。利用所述用户的私钥对所述用户的哈希表进行加密,可以通过以下非对称加密算法实现:RSA1024算法、RSA2048算法或SM2算法。
步骤207:存储所述第二密文,并记录所述第二密文与所述用户的ID的对应关系。
在本发明实施例中,数据的存储地址中还包括所述用户的ID,具体可以通过将所述用户的ID作为所述第一密文的存储地址的后缀来实现。而用户的ID可以通过以下方式获得:根据所述用户发来的用户身份信息,对该用户身份信息进行HASH计算,得到用户的ID。
另外,步骤203之后,如果所述存储设备中存储有所述数据,则记录所述数据的存储地址,所述数据的存储地址中包含有所述第一密文的存储地址以及存储所述数据的其他用户的ID。
另外,本发明实施例中的用户的哈希表可以通过以下方式实现:方式一:在存储设备中保存有一个哈希表,每个用户对应该哈希表中的一部分;方式二:在存储设备中每个用户对应一个哈希表。
另外,本实施例中在存储所述待存储数据之前,对待存储的文件进行分段处理,得到分段数据块,该分段数据块即为所述待存储数据,而整个待存储的文件对应一个数据地址结构,该数据地址结构中包括该待存储文件的所有待存储数据的存储地址,其中,该数据的存储地址包括:所述第一密文的存储地址,以及存储所述待存储数据的用户的ID。
其中,分段处理的方法多样,比如可以利用定长分段的方法进行分段,也可以利用如下算法进行变长分段处理:如利用Adler32的滑动窗口算法或tttd算法进行变长分段处理。
通过本发明实施例提供的方法,向存储设备存储数据的用户利用该用户的私钥对待存储数据的HASH值进行加密,当有用户要访问存储设备中的数据时,要先获得存储该数据的用户的公钥对该HASH值进行解密,增加了存储设备中存储的数据的安全性。
为保证后续用户不需要传递私钥,即可完成对存储设备中数据的访问,保存用户的ID与公钥的对应关系,在需用对存储设备中的数据进行访问时,可以通过存储该数据的用户的ID获得对应的公钥,即使不同用户使用不同私钥对该用户的哈希表进行加密,也能保证后续用户顺利找到对应公钥对数据进行解密。
实施例2:
本实施例提出了一种数据访问方法,参见图3,该方法包括以下步骤:
步骤301:接收数据访问请求,所述数据访问请求中包含有待访问数据的存储地址,所述数据的存储地址中包含有第一密文的存储地址,所述第一密文为根据所述数据的HASH值对所述数据进行加密后获得的密文;
步骤302:根据所述第一密文的存储地址获得所述第一密文;
步骤303:根据所述数据的存储地址获取所述数据的HASH值;
具体地,根据所述数据的存储地址以及预设的哈希表获得所述待访问数据的HASH值,所述哈希表中记录有所述HASH值与所述数据的存储地址的对应关系。
步骤304:通过所述数据的HASH值对所述第一密文进行解密,以获得所述待访问数据。
本发明是实施例提供的数据访问方法,需要先获得待访问数据加密后的第一密文和该第一密文的密钥,即该待访问数据的HASH值,通过该HASH值对第一密文进行解密,以获得待访问数据。
本发明实施例提供了另一种数据访问方法,在本发明实施例中,用户在存储数据时,为了保证存储数据的安全性,通过该用户的私钥对该用户存储的数据的HASH值进行加密,所述数据的存储地址中还包含有存储所述数据的用户的ID,参见图4,具体步骤包括:
步骤401:接收数据访问请求;
其中,所述数据访问请求中包含有待访问数据的存储地址,所述数据的存储地址中包含有第一密文的存储地址以及存储所述数据的用户的ID,所述第一密文为根据所述数据的HASH值对所述数据进行加密后获得的密文。
步骤402:根据所述第一密文的存储地址获得所述第一密文;
步骤403:根据所述数据的存储地址中的用户的ID以及预设的所述用户的ID与第二密文的对应关系获得所述第二密文;
其中,所述第二密文根据所述用户的私钥对所述用户的哈希表进行加密获得。
步骤404:根据所述用户的ID以及预先设置的用户的ID与公钥的对应关系获得所述用户的公钥;
具体地,所述用户具有对应的一个公钥和一个私钥,私钥为用户保管,公钥由授权系统负责保管,使用私钥加密的数据只能使用对应的公钥进行加密。
步骤405:采用所述用户的公钥对所述第二密文进行解密,获得所述用户的哈希表;
步骤406:根据所述待访问数据的存储地址查找所述用户的哈希表,获得所述待访问数据的HASH值。
其中,所述用户的哈希表中记录有所述待访问数据的HASH值与所述待访问的数据的存储地址的对应关系。
步骤407:通过所述数据的HASH值对所述第一密文进行解密,以获得所述待访问数据。
本发明实施例提供的数据访问方法,要访问存储设备中的数据需要先获得存储该数据的用户的公钥,根据该公钥解密第二密文,获得该数据的HASH值,进而解密出要访问的数据。
需要说明的是:用户要访问存储设备中存储的文件时,用户向存储设备发送文件访问请求,该文件访问请求中包含用户的ID、待访问的文件名,根据待访问的文件名获得待访问文件的数据地址结构,该数据地址结构中包括该待访问文件的所有分段数据块的存储地址,该分段数据块即为所述待访问数据,对于其中每一个待访问数据,采用本发明实施例的方法进行获取。
本实施例2与上述实施例1相对应。在采用了实施例1所示的方法进行数据存储后,则可以采用实施例2所示的方法进行数据访问。
另外,在本实施例中,为保证业务的安全性,可以只针对认证成功的用户允许其进行数据访问,此时,可选地,步骤301之前,进一步包括:所述用户终端发送认证请求,并接收到认证成功消息之后,才能执行图3所示数据访问过程。
实施例3:
本实施例提出了一种数据存储及访问的方法,在该方法中,利用上述任意一种数据存储方法进行数据存储;然后,利用上述任意一种数据访问方法进行数据访问。
为了更加便于理解本发明实施例的实现方式,下面结合一个完整的实现流程进行说明。图3是本发明实施例3中存储设备与用户配合完成数据存储及访问的一种实现方式流程图。参见图5,该过程包括以下步骤:
步骤501:存储设备对用户A发来的待存储数据进行HASH计算。
其中,在数据与该数据的HASH值是一一对应的,不同的数据的HASH值也不相同,可以通过比较数据的HASH值来判断数据是否相同。
步骤502:存储设备利用计算出的HASH值对该待存储数据进行加密得到第一密文;
在实际的业务实现中,如果待存储数据相同,则计算出的HASH值也是唯一的,根据这一特性,本步骤中并不采用用户提供的私有的加密密钥对待存储数据进行加密,而是将待存储数据计算出的HASH值作为对应待存储数据的密钥进行加密。这样就保证了任何用户输入的数据,只要数据相同,就能得到相同的加密密文,达到重删的目的。
步骤503:根据该HASH值判断存储设备中是否已经存储有该数据,如果是,执行步骤504,如果否,执行步骤505。
这里,如果判断对应的HASH值已经存在于哈希表,则表示之前已经存储过相同的数据的密文,因此,执行步骤504中的处理,无需重复存储;如果判断对应的HASH值不存在于哈希表,则表示之前未存储过相同数据的密文,因此,执行步骤505中的处理,需要存储所述待存储数据对应的密文。
步骤504:记录所述数据的存储地址,所述数据的存储地址中包含有所述第一密文的存储地址以及存储所述数据的其他用户的ID。
步骤505:保存第一密文并记录该数据的存储地址,执行步骤506。
其中,该数据的存储地址中包含有第一密文的存储地址以及存储所述数据的用户A的ID。
步骤506:利用所述用户A的私钥对所述用户A的哈希表进行加密,获得第二密文。
步骤507:存储所述第二密文,并记录所述第二密文与所述用户A的ID的对应关系。
执行到本步骤,则完成了对数据进行存储的过程。
步骤508:存储设备接收用户B发来的数据访问请求;
具体地,用户B要访问存储设备中的数据,需要向存储设备发送数据访问请求,其中,所述数据访问请求中包含有待访问数据的存储地址,所述数据的存储地址中包含有第一密文的存储地址以及存储所述待访问数据的用户A的ID,所述第一密文为根据所述数据的HASH值对所述数据进行加密后获得的密文。
步骤509:根据所述数据的存储地址中的用户的ID以及预设的所述用户A的ID与第二密文的对应关系获得所述第二密文;
其中,所述第二密文根据所述用户A的私钥对所述用户A的哈希表进行加密获得。
步骤510:根据所述用户A的ID以及预先设置的用户的ID与公钥的对应关系获得所述用户的公钥;
步骤511:采用所述用户A的公钥对所述第二密文进行解密,获得所述用户A的哈希表;
其中,所述用户的哈希表中记录有所述待访问数据的HASH值与所述待访问的数据的存储地址的对应关系。
步骤512:根据所述待访问数据的存储地址查找所述用户A的哈希表,获得所述待访问数据的HASH值。
具体地,哈希表中记录有所述待访问数据的HASH值与所述待访问的数据的存储地址的对应关系,根据该对应关系获得所述待访问数据的存储地址对应的HASH值,即所述待访问数据的HASH值。
步骤513:通过所述数据的HASH值对所述第一密文进行解密,以获得所述待访问数据。
通过本发明实施例提供的方法,由于对待存储数据进行加密使用的密钥是该待存储数据对应的HASH值,因此,考虑到整个业务过程的安全性,将该HASH值进行加密存储,后续用户需要访问数据时,不需要像现有技术中获取用户的私有的密钥,避免了私有密钥的传输,用户只需要从系统获取公钥,利用公钥即可解密HASH值,进而利用HASH值解密数据。因此,大大增加了业务实现的安全性。
实施例4:
本实施例提出了一种存储设备,参见图6,包括:
计算模块601,用于对待存储数据进行哈希HASH计算;
加密模块602,用于利用所述计算模块601计算出的HASH值对所述待存储数据进行加密得到第一密文;
判断模块603,用于根据所述HASH值判断所述存储设备中是否已经存储有所述数据;
存储模块604,用于当判断模块603的的判断结果为所述存储设备中没有存储所述数据时,保存所述加密单元602得到的第一密文并记录所述数据的存储地址,所述数据的存储地址中包含有所述第一密文的存储地址。
可选地,所述数据的存储地址中还包括所述用户的ID,
所述存储模块604,还用于在所述用户的哈希表中记录所述HASH值与所述数据的存储地址的对应关系;
所述加密模块602,还用于利用所述用户的私钥对所述用户的哈希表进行加密,获得第二密文;
所述存储模块604,还用于存储所述加密单元602获得的第二密文,并记录所述第二密文与所述用户的ID的对应关系。
可选地,所述存储模块604,还用于当判断模块603的判断结果为所述存储设备中已经存储有所述数据时,记录所述数据的存储地址,所述数据的存储地址中包含有所述第一密文的存储地址以及存储所述数据的其他用户的ID。
上述设备内的各模块、子模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
实施例5:
本实施例提出了一种存储设备,参见图7,包括:
接收模块701,用于接收数据访问请求,所述数据访问请求中包含有待访问的数据的存储地址,所述数据的存储地址中包含有第一密文的存储地址,所述第一密文为根据所述数据的HASH值对所述数据进行加密后获得的密文;
获取模块702,用于根据所述第一密文的存储地址获得所述第一密文;
所述获取模块702,还用于根据所述数据的存储地址获取所述数据的HASH值;
解密模块703,用于通过所述数据的HASH值对所述获取单元702获得的第一密文进行解密,以获得所述待访问数据。
可选地,所述获取模块702,具体用于根据所述数据的存储地址以及预设的哈希表获得所述待访问数据的HASH值,所述哈希表中记录有所述HASH值与所述数据的存储地址的对应关系。
可选地,所述数据的存储地址中还包含有存储所述数据的用户的标识ID,所述获取模块702,包括:
获取子模块,用于根据所述数据的存储地址中的用户的ID以及预设的所述用户的ID与第二密文的对应关系获得所述第二密文;并根据所述用户的ID以及预先设置的用户的ID与公钥的对应关系获得所述用户的公钥,其中,所述第二密文根据所述用户的私钥对所述用户的哈希表进行加密获得;
解码子模块,用于采用所述获取子模块获取的用户的公钥对所述获取子模块获取的第二密文进行解密,获得所述用户的哈希表,其中,所述用户的哈希表中记录有所述待访问数据的HASH值与所述待访问的数据的存储地址的对应关系;
查找子模块,用于根据所述待访问数据的存储地址查找所述用户的哈希表,获得所述待访问数据的HASH值。
上述设备内的各模块、子模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
实施例6:
本实施例提出了一种存储设备,参见图8,采用通用计算机系统结构,计算机系统可具体是基于处理器的计算机。如图8所示,所述存储设备包括至少一个处理器801,通信总线802,存储器803以及至少一个通信接口804。
处理器801可以是一个CPU,微处理器,特定应用集成电路ASIC,或一个或多个用于控制本发明方案程序执行的集成电路。
其中,所述通信总线802可包括一通路,在上述组件之间传送信息。所述通信接口804,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,RAN,WLAN等。
计算机系统包括一个或多个存储器,可以是只读存储器ROM或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器RAM或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器EEPROM、只读光盘CD-ROM或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。这些存储器通过总线与处理器相连接。
其中,存储器803用于存储执行本发明方案的应用程序代码,执行本发明方案的应用程序代码保存在存储器中,并由处理器801来控制执行。所述处理器801用于执行所述存储器803中存储的应用程序。
在一种可能的实施方式中,当上述应用程序被处理器801执行时,实现如下功能:
对待存储数据进行哈希HASH计算;
利用计算出的HASH值对所述待存储数据进行加密得到第一密文;
根据所述HASH值判断所述存储设备中是否已经存储有所述数据;
如果所述存储设备中没有存储所述数据,则保存所述第一密文并记录所述数据的存储地址,所述数据的存储地址中包含有所述第一密文的存储地址。
可选地,所述数据的存储地址中还包括所述用户的ID,则
在所述用户的哈希表中记录所述HASH值与所述数据的存储地址的对应关系;
利用所述用户的私钥对所述用户的哈希表进行加密,获得第二密文;
存储所述第二密文,并记录所述第二密文与所述用户的ID的对应关系。
可选地,如果所述存储设备中存储有所述数据,则记录所述数据的存储地址,所述数据的存储地址中包含有所述第一密文的存储地址以及存储所述数据的其他用户的ID。
上述设备内的各模块、子模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
实施例7:
本实施例提出了一种存储设备,参见图9,采用通用计算机系统结构,计算机系统可具体是基于处理器的计算机。如图9所示,所述存储设备包括至少一个处理器901,通信总线902,存储器903以及至少一个通信接口904。
处理器901可以是一个CPU,微处理器,特定应用集成电路ASIC,或一个或多个用于控制本发明方案程序执行的集成电路。
其中,所述通信总线902可包括一通路,在上述组件之间传送信息。所述通信接口904,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,RAN,WLAN等。
计算机系统包括一个或多个存储器,可以是只读存储器ROM或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器RAM或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器EEPROM、只读光盘CD-ROM或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。这些存储器通过总线与处理器相连接。
其中,存储器903用于存储执行本发明方案的应用程序代码,执行本发明方案的应用程序代码保存在存储器中,并由处理器901来控制执行。所述处理器901用于执行所述存储器903中存储的应用程序。
在一种可能的实施方式中,当上述应用程序被处理器901执行时,实现如下功能:
接收数据访问请求,所述数据访问请求中包含有待访问数据的存储地址,所述数据的存储地址中包含有第一密文的存储地址,所述第一密文为根据所述数据的哈希HASH值对所述数据进行加密后获得的密文;
根据所述第一密文的存储地址获得所述第一密文;
根据所述数据的存储地址获取所述数据的HASH值;
通过所述数据的HASH值对所述第一密文进行解密,以获得所述待访问数据。
可选地,所述根据所述数据的存储地址获取所述数据的HASH值包括:
根据所述数据的存储地址以及预设的哈希表获得所述待访问数据的HASH值,所述哈希表中记录有所述HASH值与所述数据的存储地址的对应关系。
可选地,所述数据的存储地址中还包含有存储所述数据的用户的标识ID,所述根据所述数据的存储地址获取所述数据的HASH值包括:
根据所述数据的存储地址中的用户的ID以及预设的所述用户的ID与第二密文的对应关系获得所述第二密文,所述第二密文根据所述用户的私钥对所述用户的哈希表进行加密获得;
根据所述用户的ID以及预先设置的用户的ID与公钥的对应关系获得所述用户的公钥;
采用所述用户的公钥对所述第二密文进行解密,获得所述用户的哈希表,所述用户的哈希表中记录有所述待访问数据的HASH值与所述待访问的数据的存储地址的对应关系;
根据所述待访问数据的存储地址查找所述用户的哈希表,获得所述待访问数据的HASH值。
上述设备内的各模块、子模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本领域普通技术人员将会理解,本发明的各个方面、或各个方面的可能实现方式可以被具体实施为系统、方法或者计算机程序产品。因此,本发明的各方面、或各个方面的可能实现方式可以采用完全硬件实施例、完全软件实施例(包括固件、驻留软件等等),或者组合软件和硬件方面的实施例的形式,在这里都统称为“电路”、“模块”或者“系统”。此外,本发明的各方面、或各个方面的可能实现方式可以采用计算机程序产品的形式,计算机程序产品是指存储在计算机可读介质中的计算机可读程序代码。
计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质包含但不限于电子、磁性、光学、电磁、红外或半导体系统、设备或者装置,或者前述的任意适当组合,如随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或者快闪存储器)、光纤、便携式只读存储器(CD-ROM)。
计算机中的处理器读取存储在计算机可读介质中的计算机可读程序代码,使得处理器能够执行在流程图中每个步骤、或各步骤的组合中规定的功能动作;生成实施在框图的每一块、或各块的组合中规定的功能动作的装置。
计算机可读程序代码可以完全在用户的计算机上执行、部分在用户的计算机上执行、作为单独的软件包、部分在用户的计算机上并且部分在远程计算机上,或者完全在远程计算机或者服务器上执行。也应该注意,在某些替代实施方案中,在流程图中各步骤、或框图中各块所注明的功能可能不按图中注明的顺序发生。例如,依赖于所涉及的功能,接连示出的两个步骤、或两个块实际上可能被大致同时执行,或者这些块有时候可能被以相反顺序执行。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (8)

1.一种数据存储方法,所述方法应用于存储设备中,其特征在于,
对待存储数据进行哈希HASH计算;
利用计算出的HASH值对所述待存储数据进行加密得到第一密文;
根据所述HASH值判断所述存储设备中是否已经存储有所述数据;
如果所述存储设备中没有存储所述数据,则保存所述第一密文并记录所述数据的存储地址,所述数据的存储地址中包含有所述第一密文的存储地址;
所述数据的存储地址中还包括用户的ID,所述方法还包括:
在所述用户的哈希表中记录所述HASH值与所述数据的存储地址的对应关系;
利用所述用户的私钥对所述用户的哈希表进行加密,获得第二密文;
存储所述第二密文,并记录所述第二密文与所述用户的ID的对应关系;
其中,在所述存储设备中保存有一个哈希表,每个用户对应该哈希表中的一部分;或在所述存储设备中每个用户对应一个哈希表。
2.根据权利要求1所述的数据存储方法,其特征在于,还包括:
如果所述存储设备中存储有所述数据,则记录所述数据的存储地址,所述数据的存储地址中包含有所述第一密文的存储地址以及存储所述数据的其他用户的ID。
3.一种数据访问方法,所述方法应用于存储设备中,其特征在于,包括:
接收数据访问请求,所述数据访问请求中包含有待访问数据的存储地址,所述数据的存储地址中包含有第一密文的存储地址,所述第一密文为根据所述数据的哈希HASH值对所述数据进行加密后获得的密文;
根据所述第一密文的存储地址获得所述第一密文;
根据所述数据的存储地址获取所述数据的HASH值;
通过所述数据的HASH值对所述第一密文进行解密,以获得所述待访问数据;
所述数据的存储地址中还包含有存储所述数据的用户的标识ID,所述根据所述数据的存储地址获取所述数据的HASH值包括:
根据所述数据的存储地址中的用户的ID以及预设的所述用户的ID与第二密文的对应关系获得所述第二密文,所述第二密文根据所述用户的私钥对所述用户的哈希表进行加密获得;
根据所述用户的ID以及预先设置的用户的ID与公钥的对应关系获得所述用户的公钥;
采用所述用户的公钥对所述第二密文进行解密,获得所述用户的哈希表,所述用户的哈希表中记录有所述待访问数据的HASH值与所述待访问的数据的存储地址的对应关系;
根据所述待访问数据的存储地址查找所述用户的哈希表,获得所述待访问数据的HASH值;
其中,在所述存储设备中保存有一个哈希表,每个用户对应该哈希表中的一部分;或在所述存储设备中每个用户对应一个哈希表。
4.根据权利要求3所述的数据访问方法,其特征在于,所述根据所述数据的存储地址获取所述数据的HASH值包括:
根据所述数据的存储地址以及预设的哈希表获得所述待访问数据的HASH值,所述哈希表中记录有所述HASH值与所述数据的存储地址的对应关系。
5.一种存储设备,其特征在于,所述存储设备包括:
计算模块,用于对待存储数据进行哈希HASH计算;
加密模块,用于利用所述计算模块计算出的HASH值对所述待存储数据进行加密得到第一密文;
判断模块,用于根据所述HASH值判断所述存储设备中是否已经存储有所述数据;
存储模块,用于当判断模块的的判断结果为所述存储设备中没有存储所述数据时,保存所述加密单元得到的第一密文并记录所述数据的存储地址,所述数据的存储地址中包含有所述第一密文的存储地址;
所述数据的存储地址中还包括用户的ID,
所述存储模块,还用于在所述用户的哈希表中记录所述HASH值与所述数据的存储地址的对应关系;
所述加密模块,还用于利用所述用户的私钥对所述用户的哈希表进行加密,获得第二密文;
所述存储模块,还用于存储所述加密单元获得的第二密文,并记录所述第二密文与所述用户的ID的对应关系;
其中,在所述存储设备中保存有一个哈希表,每个用户对应该哈希表中的一部分;或在所述存储设备中每个用户对应一个哈希表。
6.根据权利要求5所述的存储设备,其特征在于,
所述存储模块,还用于当判断模块的判断结果为所述存储设备中已经存储有所述数据时,记录所述数据的存储地址,所述数据的存储地址中包含有所述第一密文的存储地址以及存储所述数据的其他用户的ID。
7.一种存储设备,其特征在于,所述存储设备包括:
接收模块,用于接收数据访问请求,所述数据访问请求中包含有待访问的数据的存储地址,所述数据的存储地址中包含有第一密文的存储地址,所述第一密文为根据所述数据的哈希HASH值对所述数据进行加密后获得的密文;
获取模块,用于根据所述第一密文的存储地址获得所述第一密文;
所述获取模块,还用于根据所述数据的存储地址获取所述数据的HASH值;
解密模块,用于通过所述数据的HASH值对所述获取单元获得的第一密文进行解密,以获得所述待访问数据;
所述数据的存储地址中还包含有存储所述数据的用户的标识ID,所述获取模块,包括:
获取子模块,用于根据所述数据的存储地址中的用户的ID以及预设的所述用户的ID与第二密文的对应关系获得所述第二密文;并根据所述用户的ID以及预先设置的用户的ID与公钥的对应关系获得所述用户的公钥,其中,所述第二密文根据所述用户的私钥对所述用户的哈希表进行加密获得;
解码子模块,用于采用所述获取子模块获取的用户的公钥对所述获取子模块获取的第二密文进行解密,获得所述用户的哈希表,其中,所述用户的哈希表中记录有所述待访问数据的HASH值与所述待访问的数据的存储地址的对应关系;
查找子模块,用于根据所述待访问数据的存储地址查找所述用户的哈希表,获得所述待访问数据的HASH值;
其中,在所述存储设备中保存有一个哈希表,每个用户对应该哈希表中的一部分;或在所述存储设备中每个用户对应一个哈希表。
8.根据权利要求7所述的存储设备,其特征在于:
所述获取模块,具体用于根据所述数据的存储地址以及预设的哈希表获得所述待访问数据的HASH值,所述哈希表中记录有所述HASH值与所述数据的存储地址的对应关系。
CN201310753261.6A 2013-12-31 2013-12-31 数据存储方法、数据访问方法及存储设备 Active CN103699854B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310753261.6A CN103699854B (zh) 2013-12-31 2013-12-31 数据存储方法、数据访问方法及存储设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310753261.6A CN103699854B (zh) 2013-12-31 2013-12-31 数据存储方法、数据访问方法及存储设备

Publications (2)

Publication Number Publication Date
CN103699854A CN103699854A (zh) 2014-04-02
CN103699854B true CN103699854B (zh) 2017-02-22

Family

ID=50361378

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310753261.6A Active CN103699854B (zh) 2013-12-31 2013-12-31 数据存储方法、数据访问方法及存储设备

Country Status (1)

Country Link
CN (1) CN103699854B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10333705B2 (en) * 2016-04-30 2019-06-25 Civic Technologies, Inc. Methods and apparatus for providing attestation of information using a centralized or distributed ledger
CN106161444B (zh) * 2016-07-07 2019-11-15 北京仁信证科技有限公司 数据安全存储方法及用户设备
CN107066591A (zh) * 2017-04-18 2017-08-18 北京思特奇信息技术股份有限公司 一种对业务进行处理的方法及装置
CN108009025A (zh) * 2017-12-13 2018-05-08 北京小米移动软件有限公司 数据存储方法及装置
CN109858255A (zh) * 2018-12-19 2019-06-07 杭州安恒信息技术股份有限公司 数据加密存储方法、装置及实现装置
CN110300158A (zh) * 2019-06-05 2019-10-01 黄疆 基于ad域映射访问nas的方法和系统
CN112637153B (zh) * 2020-12-14 2024-02-20 航天壹进制(江苏)信息科技有限公司 一种存储加密去重的方法和系统
CN113055155A (zh) * 2021-02-21 2021-06-29 上海帕科信息科技有限公司 一种基于大数据平台的数据安全存储方法
CN116166693B (zh) * 2023-04-21 2023-07-25 支付宝(杭州)信息技术有限公司 一种基于密态范围索引的数据查询方法、装置以及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1940922A (zh) * 2005-09-30 2007-04-04 腾讯科技(深圳)有限公司 一种提高搜索信息速度的方法及系统
US7814337B2 (en) * 2000-01-06 2010-10-12 Super Talent Electronics, Inc. Secure flash-memory card reader with host-encrypted data on a flash-controller-mastered bus parallel to a local CPU bus carrying encrypted hashed password and user ID
CN102231727A (zh) * 2011-03-18 2011-11-02 杭州奕锐电子有限公司 基于加密增量传输的异地共享备份恢复方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7814337B2 (en) * 2000-01-06 2010-10-12 Super Talent Electronics, Inc. Secure flash-memory card reader with host-encrypted data on a flash-controller-mastered bus parallel to a local CPU bus carrying encrypted hashed password and user ID
CN1940922A (zh) * 2005-09-30 2007-04-04 腾讯科技(深圳)有限公司 一种提高搜索信息速度的方法及系统
CN102231727A (zh) * 2011-03-18 2011-11-02 杭州奕锐电子有限公司 基于加密增量传输的异地共享备份恢复方法

Also Published As

Publication number Publication date
CN103699854A (zh) 2014-04-02

Similar Documents

Publication Publication Date Title
CN103699854B (zh) 数据存储方法、数据访问方法及存储设备
US20220021534A1 (en) Location aware cryptography
CN107959567B (zh) 数据存储方法、数据获取方法、装置及系统
CN104852925B (zh) 移动智能终端数据防泄漏安全存储、备份方法
CN105245328B (zh) 一种基于第三方的用户及文件的密钥产生管理方法
US9379891B2 (en) Method and system for ID-based encryption and decryption
US9767299B2 (en) Secure cloud data sharing
US8509449B2 (en) Key protector for a storage volume using multiple keys
US10951595B2 (en) Method, system and apparatus for storing website private key plaintext
US10447669B2 (en) System and method for key exchange based on authentication information
JP6404481B2 (ja) クラウドコンピューティングにおける異種混合データ記憶管理方法および装置
CN107483383A (zh) 一种数据处理方法、终端及后台服务器
TW201330577A (zh) 基於雲儲存的資料安全保護系統及方法
CN103812927A (zh) 一种存储方法
EP2475194A1 (en) Service access method, system and device based on wlan access authentication
CN109525388B (zh) 一种密钥分离的组合加密方法及系统
CN102891898A (zh) 一种基于云存储的网络招投标系统
CN104967693A (zh) 面向云存储的基于全同态密码技术的文档相似度计算方法
CN102571321A (zh) 一种数据加密传输的方法和设备
CN110032874A (zh) 一种数据存储方法、装置及设备
CN101998407A (zh) 基于wlan接入认证的业务访问方法
CN102594779A (zh) 一种用户数据处理方法及其设备
CN109787747B (zh) 基于多个非对称密钥池的抗量子计算多重加密云存储方法和系统
CN105553661B (zh) 密钥管理方法和装置
CN106257858A (zh) 一种远端存储设备的数据加密方法、装置及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant