CN105282171B - 一种安全可靠的分布式云存储方法 - Google Patents

一种安全可靠的分布式云存储方法 Download PDF

Info

Publication number
CN105282171B
CN105282171B CN201510753361.8A CN201510753361A CN105282171B CN 105282171 B CN105282171 B CN 105282171B CN 201510753361 A CN201510753361 A CN 201510753361A CN 105282171 B CN105282171 B CN 105282171B
Authority
CN
China
Prior art keywords
key
data block
data
cloud server
user terminal
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.)
Expired - Fee Related
Application number
CN201510753361.8A
Other languages
English (en)
Other versions
CN105282171A (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.)
Peking University Shenzhen Graduate School
Original Assignee
Peking University Shenzhen Graduate School
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 Peking University Shenzhen Graduate School filed Critical Peking University Shenzhen Graduate School
Priority to CN201510753361.8A priority Critical patent/CN105282171B/zh
Publication of CN105282171A publication Critical patent/CN105282171A/zh
Application granted granted Critical
Publication of CN105282171B publication Critical patent/CN105282171B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供一种安全可靠的分布式云存储方法,包括以下步骤:步骤S1,通过密钥对原始数据进行加密或变换处理;步骤S2,对密钥和加密后的密文进行分拆,进而得到密钥数据块和文件密文数据块,其中,所述密钥数据块的数量多于所述文件密文数据块的数量;步骤S3,将密钥数据块和文件密文数据块一对一拼装成数据块存放在云端服务器,剩余的密钥数据块存放于用户端;其中,所述步骤S1、步骤S2和步骤S3均工作在用户端。本发明一方面能够充分利用云端服务器大容量低成本存储的特点,另一方面在用户端掌握一小部分但却及其重要的数据;进而保证了对云端数据的安全掌控,避免将数据安全性完全依赖于云端服务器而导致的不可控的数据泄露等弊端。

Description

一种安全可靠的分布式云存储方法
技术领域
本发明涉及一种云存储方法,尤其涉及一种安全可靠的分布式云存储方法。
背景技术
分布式云存储系统是一种网络环境下的文件存储方法。该系统包括多个供多用户访问的云端服务器,这些服务器通过网络互连,对外作为一个整体提供存储服务。具体来说,该系统可以扩展到任意多个服务器,众多的节点组成一个存储网络,各个节点可以分布在不同的地点,通过网络进行节点间的通信和数据传输,用户在使用分布式文件系统时,无需关心数据是存储在哪个节点上或者是从哪个节点获取数据,而只需要像使用本地文件系统一样管理和存储文件系统中的数据。相比于传统文件系统,该系统能充分利用云端存储资源,大大降低客户端的数据存储量,同时具有更好的可扩展性和高性能特点。
然而随着分布式云存储系统推广应用,如何将数据分布到多台服务器保证数据高可用性和分布的均衡性、如何确保存储在云端数据的安全性、如何充分利用云服务器节省用户存储空间等技术受越多人关注。由于文件被存储在云端服务器,在某些情况下,比如服务器宕机,会导致上传的文件无法恢复的问题,更严重的是云端数据块被窃取会造成信息泄露,因此一般都会采用身份验证、权限控制以及数据加密等方式来提高用户数据的安全性。我们既想减少客户端维持数据安全所需的验证信息以及加密密钥的存储量,也需要保证数据可恢复,减少服务器宕机带来的破坏性影响并且存储的高安全可靠性,因此需要采用有效的处理手段来解决这一问题。
目前针对数据可用性这一问题的数据存储方法主要有两种,一种是采用副本方法,将需要上传数据块产生多个副本保存在多个服务器,增加数据冗余来减少服务器宕机带来的数据不可读问题的影响。但是,这样一来使得存储效率降低,数据一致性问题处理复杂同时浪费大量的空间。第二种方式是将用户要上传的文件通过比如纠删码、再生码或其他的方式编码后产生多个远小于原始文件的数据块,再分发给各个服务器与用户,编码的方式使得满足门限个数据块即可以恢复出原文件,避免了副本存储的大量冗余,另外损坏的数据块也能够恢复,保证了数据可靠性。此方法的缺点就是数据读写时计算量较大。
针对数据安全的主要手段是采用数据加密的方法。虽然目前常用的加密算法强度很高,但在实用中该方法的有效性更多的取决于密钥的生成机制和管理方法。比如随机性不足的密钥大大降低了暴力破解的难度,而在管理上密钥如果做不到一次一个密钥和定期更换,也留下了被攻击的短肋。从这个角度讲,在前面的副本方案中攻击者只要获取任一副本即可得到完整数据,而编码方案中则需要获得足够数量的数据块,难度则要高得多,特别是当某些数据块不放到云端而是由用户自行掌握的时候。
现有技术中,也针对分布式云存储系统提出过一种提高信息可用性的文件分发方法。用户在将编辑好的文件保存到云端服务器时,为了避免一台服务器宕机导致用户无法读取服务器数据、文件无法恢复等问题,系统将该文件复制多份,然后分发到各个服务器。同时考虑到云存储的数据安全性,避免信息原文存储带来的信息泄露的危害,用户在上传文件之前,采用某种加密算法用密钥对要上传的文件加密,在任何时候用户需要读取服务器数据时,当少数几台台服务器宕机对用户无影响,用户在可从任意其他服务器,下载一个完整的文件副本进行读取编辑,文件下载到本地之后,用户通过手中密钥解密获取源文件。同时,为了在减少客户端数据存储量的前提下,保证数据安全,用户端只保存加密密钥,因此,保存在服务器的数据泄露或者丢失,由于没有密钥因此泄露的数据依旧无效,该方法同时可以保证数据的安全性存储。
该技术是最常用的云分布式存储系统中通过增加冗余提高文件可用性的方法。该方法虽然增加数据可读取率,减少服务器宕机的严重后果,但是副本冗余导致云端存储利用率很低;另外,如果用户端的数据丢失,则情况更加复杂:比如用户端保存的密钥如果丢失,则用户无法再恢复文件;若用户的密钥文件被窃取,则再读取任意服务器数据就造成信息泄露。
这种现有技术的缺点在于:通过增加冗余副本降低数据不可用风险,并由用户实现加密密钥管理,防止由于云端数据失窃导致的数据泄露情况,虽然提高了云存储服务的信息安全性,但该方法显然增加了云端数据存储量,大大降低了存储利用率,并且用户数据丢失则造成无法挽回的后果。
另一种现有的技术中,采用了一种信息编码技术来保存密钥和文件的云分布式系统,该系统不是单纯将文件的副本作为冗余存储在服务器,而是将加密后的密文与密钥共同通过信息编码的方式拆分为多份数据块,再平均分发给云端服务器;运用该技术的云分布式存储系统,采用对文件加密后与密钥共同编码分拆的方法将编码数据块分发到各个服务器,提高文件可利用率;而部分服务器上的数据块泄露并不会导致原文件信息泄露,具有一定的安全性。但在该系统中,用户在恢复原文件时需要访问的服务器数量较多,增加了用户读取数据时间。更大的问题在于安全性:由于用户的数据及密钥均编码保存于云端,如果攻击者能够攻破(或共谋)多台服务器并窃取超过门限的多份数据块则会造成信息泄露,忽略了用户在系统中安全性的保护作用,这个问题在拆分数据块份数不多然后门限值不高的时候更为明显。当然如果用户先对数据加密,将密钥自行掌握,只是将密文编码拆分上传到多台云端服务器,攻击者则只能获取密文,但规范可靠的密钥生成和管理对用户要求很高,而且如果发生密钥丢失的情况则将面临与技术一类似的问题。
这种现有技术的缺点在于:通过将密文和密钥共同编码实现冗余存储来增加数据可靠性,并且充分利用云存储空间增加存储效率。但是该方法将密文和密钥全部存放在云端,一方面增加了用户读取云文件的解码代价和时间,另一方面相比于副本文件系统虽然一定程度上增加了存储安全性,因为需同时获得多个数据块而不是一个副本即可,但当超过一定数量的服务器数据泄露情况发生时,可以在用户不知情的情况下恢复原数据,系统安全性仍旧面临挑战。
发明内容
本发明所要解决的技术问题是需要提供一种安全可靠的分布式云存储方法,一方面能够充分利用云端服务器大容量低成本存储的特点,将尽可能多的数据体量存储在云端服务器中,另一方面用户端只需掌握一小部分但却及其重要的数据;进而保证了其对云端存储数据的安全掌控,避免将数据安全性完全依赖于云端服务器而导致的不可控的数据泄露等弊端。
对此,本发明提供一种安全可靠的分布式云存储方法,包括以下步骤:
步骤S1,通过密钥对原始数据进行加密或变换处理;
步骤S2,对密钥和加密后的密文进行分拆,进而得到密钥数据块和文件密文数据块,其中,所述密钥数据块的数量多于所述文件密文数据块的数量;
步骤S3,将密钥数据块和文件密文数据块一对一拼装成数据块存放在云端服务器,剩余的密钥数据块存放于用户端;
其中,所述步骤S1、步骤S2和步骤S3均工作在用户端。
本发明的进一步改进在于,所述步骤S1中,通过随机密钥、原始数据的一部分或原始数据的特定变换中的任意一种作为密钥对原始数据进行加密或变换处理。
本发明的进一步改进在于,所述步骤S2中,通过秘密共享算法分拆所述密钥,通过编码拆分算法分拆所述加密后的密文,然后在所述步骤S3将秘密共享算法所得到的密钥数据块和编码拆分算法所得到的文件密文数据块进行一对一拼装,得到部署于云端的数据块进而存放在至少一台云端服务器中。
本发明的进一步改进在于,所述步骤S2中,对于加密后的密文,设置了编码门限q,进而得到拆分后的n个文件密文数据块。
本发明的进一步改进在于,还包括步骤S4,在丢失用户端的密钥数据块时,通过预先设置的门限值t和密钥数据块进而恢复密钥和原始数据,其中t>q。
本发明的进一步改进在于,在恢复密钥时,在获得的密钥数据块的权重值达到或者超过门限值t时,恢复密钥;其中,所述获得的密钥数据块的权重值为通过用户端和云端服务器所获取的密钥数据块的权重之和,一台云端服务器所得到的密钥数据块的权重为1,用户端所存储的密钥数据块的权重w大于1。
本发明的进一步改进在于,当丢失用户端的密钥数据块时,需要获取全部云端服务器中所存储的密钥数据块来实现密钥的恢复,因此设定t=n;当读取到用户端的密钥数据块时,实现密钥的恢复需要获取的存储于云端服务器的密钥数据块的数量为所述编码门限q,所述编码门限q=(t-w)。
本发明的进一步改进在于,在用户访问文件时,包括以下步骤:
步骤A,访问云文件,并检测用户端是否存在该原始数据的一份密钥数据块,如果没有则跳转至步骤B,如果有则跳转至步骤C;
步骤B,读取全部的云端服务器的数据进行恢复,并检测所获得存储于云端服务器的数据块的数目是否满足大于或等于t,若小于t则不能恢复密钥,进而无法恢复原文件;若大于或等于t则恢复密钥和密文,通过密钥对密文解密后得到原始数据;
步骤C,获得所述用户端所存储的密钥数据块的权重w,并读取q=(t-w)台云端服务器所存储的数据块,若读取的云端服务器的数据块数量没有达到编码门限q,则密钥和密文的数据不可恢复;若读取的云端服务器的数据块数量达到编码门限q,则恢复密钥和密文,通过密钥对密文解密后得到原始数据。
本发明的进一步改进在于,所述步骤C中,在恢复密钥和密文前,自动检测云端服务器端是否有丢失的数据块,若有则重新实现编码和拆分后将对应的数据块分发给缺失的云端服务器;然后在用户端根据获取的密文与密钥恢复原始数据;若后续对该密文进行修改更新上传,则返回步骤S1对原始数据重新进行加密、编码和分拆,最后保存在各个云端服务器与用户端。
本发明的进一步改进在于,当上传数据块到云端服务器时,获取密钥对原始数据进行加密或变化;然后检查云端服务器是否存在同一文件名的数据块,若存在则说明该密文可能是对云端服务器已有文件的更新版本,此时通过用户端实现数据块覆盖或数据块重命名操作。
与现有技术相比:本发明的有益效果在于:对密钥和加密后的密文进行分拆,进而得到密钥数据块和文件密文数据块,其中,所述密钥数据块的数量多于所述文件密文数据块的数量;然后将密钥数据块和文件密文数据块一对一拼装成数据块存放在云端服务器,剩余的密钥数据块存放于用户端,这样一方面能够避免副本存储的高冗余和低保密性,另一方面能够将尽可能多的文件数据存储在云端,而用户只掌握小部分却极其重要的密钥数据块,从而在保证用户对数据安全掌控的前提下降低用户的存储和使用代价。
本发明中,用户只需获得足够的密钥数据块即可恢复密钥和密文,但如果没有用户端的关键的密钥数据块而仅仅在云端服务器获取部分密钥数据块是无法恢复密钥和密文的,进而保证了数据的安全性;另外,为避免用户端丢失了关键数据导致其自己也无法恢复数据的情况,本发明在满足特定苛刻条件时可以在满足门限值的云端服务器的密钥数据块之后恢复数据,因此,该方法在保证系统安全性同时减少用户数据存储量,同时解决服务器宕机或者用户端关键数据丢失带来的后果,从而提高数据可用性。
附图说明
图1是本发明一种实施例的工作流程示意图;
图2是本发明一种实施例的访问文件的工作流程示意图;
图3是本发明一种实施例的上传文件的工作流程示意图;
图4是本发明一种实施例的恢复文件的工作流程示意图。
具体实施方式
下面结合附图,对本发明的较优的实施例作进一步的详细说明:
如图1所示,本例提供一种安全可靠的分布式云存储方法,包括以下步骤:
步骤S1,通过密钥对原始数据进行加密或变换处理;
步骤S2,对密钥和加密后的密文进行分拆,进而得到密钥数据块和文件密文数据块,其中,所述密钥数据块的数量多于所述文件密文数据块的数量;
步骤S3,将密钥数据块和文件密文数据块一对一拼装成数据块存放在云端服务器,剩余的密钥数据块存放于用户端;
其中,所述步骤S1、步骤S2和步骤S3均工作在用户端。
本例所述步骤S1中,通过随机密钥、原始数据的一部分或原始数据的特定变换中的任意一种作为密钥对原始数据进行加密或变换处理;所述步骤S2中,通过秘密共享算法分拆所述密钥,通过编码拆分算法分拆所述加密后的密文,然后在所述步骤S3将秘密共享算法所得到的密钥数据块和编码拆分算法所得到的文件密文数据块进行一对一拼装,得到部署于云端的数据块进而存放在至少一台云端服务器中。
本例所述步骤S2中,对于加密后的密文,设置了编码门限q,进而得到拆分后的n个文件密文数据块;本例还包括步骤S4,在丢失用户端的密钥数据块时,通过预先设置的门限值t和密钥数据块进而恢复密钥和原始数据,其中,t>q;在恢复密钥时,在获得的密钥数据块的权重值达到或者超过门限值t时,恢复密钥;其中,所述获得的密钥数据块的权重值为通过用户端和云端服务器所获取的密钥数据块的权重之和,一台云端服务器所得到的密钥数据块的权重为1,用户端所存储的密钥数据块的权重w大于1。
本例当丢失用户端的密钥数据块时,需要获取全部云端服务器中所存储的密钥数据块来实现密钥的恢复,因此,设定t=n;当读取到用户端的密钥数据块时,实现密钥的恢复需要获取的存储于云端服务器的密钥数据块的数量为所述编码门限q,所述编码门限q=(t-w);因为在实际运行情况中,n是很直观的,而t是系统内部参数,也可以通过q=(n-w)来计算编码门限。
本例综合采用具有门限性质的秘密共享算法和编码拆分算法来处理用户数据,所述编码拆分算法如纠删码拆分算法。本例首先使用随机密钥或使用原始数据的一部分或原始数据的特定变换作为密钥对原始数据进行加密,所述特定变换可以是用户自定义的变换方式,只要在用户端预定好就可以;然后使用秘密共享算法分拆该密钥,使用编码拆分算法分拆加密后的密文,最后将这两个算法得到的密钥数据块和文件密文数据块一对一拼装成实际部署的数据块存放到云端服务器,所述云端服务器也可以是云端数据中心;其中秘密共享算法得到的密钥数据块的数量会比编码拆分算法得到的文件密文数据块的数量多,多出的部分由用户端掌握。
值得一提的是,由于所述步骤S1、步骤S2和步骤S3均工作在用户端,即,本例是由用户端而不是云端服务器提供商来编码和分发数据块,数据块的存放位置也是用户端所掌握的,可以分布到不同服务商,或同一个服务商的不同数据中心或云端服务器中,攻击者首先必须首先获得这些数据块的分布情况才可能进行攻击,因此分散存储可以再获得多一层的随机性来加强对数据的安全保护;这时,用户所持有的关键数据起到了密钥的作用,但比密钥强大可靠,因为这些关键数据的生成机制可以保证一次一个密钥,随机性强,而且可恢复;所述关键数据即为存放于用户端的密钥数据块。
当用户端持有的关键数据丢失,即丢失了存放于用户端的密钥数据块时,为保障其不会导致无法恢复数据的灾难性后果,可以在算法设计时构造以下数据恢复条件:那就是需要读取所有数据块而不仅仅是门限数据块才能在没有用户关键信息参与的情况下恢复原始数据,即当丢失用户端的密钥数据块时,需要获取全部云端服务器中所存储的密钥数据块来实现密钥的恢复。攻击者在用户不知情的情况下攻破所有数据块所在的云端服务器的难度要比副本情况下只需攻破一台云端服务器的情况大得多,因此,由于需要所有数据块的参与,当用户感觉到数据有泄露危险时可以通过立即删除某一台云端服务器的数据块的方式将数据销毁。
为达到上述目的,本例首先对要存储的原始数据进行密钥加密或者变换,并对密钥与加密后得到密文分别编码拆分存储在云端服务器与用户端,因此避免了明文存储的信息不安全保存隐患。对于密文,在门限编码后,可得到拆分后的n个文件密文数据块。其中任意q或者q以上的密钥数据块都可以恢复密文,q被称为该编码的编码门限,而少于门限数目的数据片则无法恢复原文。本例的密钥拆分采用一种带有权重的门限编码方式,每个被拆分的数据块都有一个权重值,在恢复密钥时,只有在获得的数据块权重值达到或者超过门限值t时,才可以恢复出密钥,其中各个云端服务器得到的密钥数据块权重为1,用户端所存储的密钥数据块的权重w>1,所述w的数目可以根据实际情况进行自定义设置,原则在于:尽量做到在不增加用户需要存储的数据量前提下提高用户端所存储的密钥数据块的权重w。该权重设计使得用户端与少量云端服务器数据块合并即可以获得完整密钥,增加了用户参与恢复原文时的云端服务器数据块冗余度,并且减少恢复原文件时读取云端服务器所花费时间;本例做到了数据片冗余存储防止云端服务器宕机带来的损失却又避免副本存储所带来的低存储效率问题。
然后,把对密钥进行拆分后得到的密钥数据块与密文拆分的文件密文数据块分发到各个云端服务器与用户端。由于用户端存储数据量尽可能的少,因此只保存密钥拆分的密文数据块,文件密文数据块全部保存在云端,用户端不保存文件密文数据块,这样既充分利用云存储特点,同时不破坏数据存储的安全性,使得用户端掌握尽可能小的但又及其重要的数据;在恢复原文时候,只有当同时恢复密钥与密文才可以获取源文件,即获取原始数据。
本例在密钥权重门限设计上,优选取门限值t为云端服务器的数目n,因此保证即使用户数据片丢失,云端服务器通过全部密钥数据块也可恢复出完整的源文件及用户丢失的数据片,但缺少任意一份云端服务器的数据块均不可以恢复出完整密钥。
由于同时获取全部云端服务器的数据块这一条件比较苛刻,即使泄露了多块数据块也可以保证存储在云端的信息安全性。在密文的门限设计上,编码门限q=n-w,比如当用户恢复原文时,与(n-w)台云端服务器合并即可恢复源文件,(n-w)台云端服务器的密文数据块的数量达到门限值t可恢复出密文,而与此同时用户与云端服务器的密钥数据块权重之和为n便可以恢复出密钥,进而解密可恢复出原文件。在用户端没有丢失关键数据的时候,由于用户可以与少数几台数据保存完整的云端服务器完成恢复过程,此条件比较容易满足因此用户更方便获得源文件。由于该方法中密钥门限大于密文门限,而如果是(n-w)台云端服务器合成数据时,满足密文合成门限,但未满足密钥合成门限,依旧不可以完成恢复数据过程。
值得一提的是,本例中,用户端所存储的密钥数据块的权重w越大,参与恢复源文件时需要的云端服务器的数据块越少,但是因此云端服务器数据冗余越多。因此,本例还优选设置用户端所存储的密钥数据块的权重w不超过云端服务器的数目,在这一条件下,用户可以根据自己需求进行设定,非常灵活,适应各种情况。另外,不同用户对云端服务器文件也可以添加数据访问控制,增加数据的安全机制。
如图2所示,本例在用户访问文件时,包括以下步骤:
步骤A,访问云文件,并检测用户端是否存在该原始数据的一份密钥数据块,如果没有则跳转至步骤B,如果有则跳转至步骤C;
步骤B,读取全部的云端服务器的数据进行恢复,并检测所获得存储于云端服务器的数据块的数目是否满足大于或等于t,若小于t则不能恢复密钥,进而无法恢复原文件;若大于或等于t则恢复密钥和密文,通过密钥对密文解密后得到原始数据;
步骤C,获得所述用户端所存储的密钥数据块的权重w,并读取q=(t-w)台云端服务器所存储的数据块,若读取的云端服务器的数据块数量没有达到编码门限q,则密钥和密文的数据不可恢复;若读取的云端服务器的数据块数量达到编码门限q,则恢复密钥和密文,通过密钥对密文解密后得到原始数据。
本例所述步骤C中,在恢复密钥和密文前,自动检测云端服务器端是否有丢失的数据块,若有则重新实现编码和拆分后将对应的数据块分发给缺失的云端服务器;然后在用户端根据获取的密文与密钥恢复原始数据;若后续对该密文进行修改更新上传,则返回步骤S1对原始数据重新进行加密、编码和分拆,最后保存在各个云端服务器与用户端。
即用户访问文件时,首先检测用户是否存在该文件的一份密钥数据块,如果没有则表示用户的管理的数据丢失,需要读取全部的云端服务器数据进行恢复。然后检测所获得云端服务器密钥数据块数目是否满足门限要求,若小于门限则不能恢复密钥,进而无法恢复原文件。若满足门限则恢复密钥和密文,通过密钥对密文解密后得到原文。由于密文门限小于密钥门限,因此在进行用户数据恢复时,密钥若可以恢复则密文也可以恢复。
若用户端存在该文件的密钥数据块,获得该数据的权重w,并读取(n-w)台云端服务器数据,此时同时达到密钥与密文的门限,可以恢复出数据。若读取的云端服务器数量没有达到门限,数据不可恢复。最后,系统检测云端服务器端是否有丢失的数据块,若有则重新编码拆分后将对应的数据块分发给缺失的云端服务器。最后在客户端根据获取的密文与密钥恢复源文件。
若后续涉及到对文件的修改更新上传,需要对文件重新进行编码,保存在各个云端服务器与客户端。
假设本例有5台云端服务器,w为2。在编码中,密文采用纠删码的方式编码存储,使其具有更高容错率与存储效率。具体采用柯西RS编码,将密文数据列向量与柯西生成矩阵乘积获得5个数据块与冗余块,在重构密文时,其中任意3块都可以利用获取的信息列向量与信息对应的参与生成矩阵的逆矩阵相乘来恢复密文数据。而与文件进行变换或者加密的密钥采用秘密共享的方式进行拆分,具体方法为一种基于中国剩余定理的(t,n)门限权重秘密共享算法,通过将密钥对多个素数分别取余获得n个密钥数据片,并且限定模数的范围使得在不增加数据块大小的前提下调整数据片的权重,在恢复密钥时只有当参与密钥合成的数据片权重值超过门限,才可以通过中国余数定理求解获得原密钥。
在本例中分发的密钥数据块的数量为6,权重的门限值t为5,保证在用户数据丢失后,需要获取全部5台云端服务器的完整数据可以对用户数据修复。对密钥拆分后,权重为2的密钥数据块保留在用户端,而拆分获得云端服务器的密钥数据片权重为1,与之前分拆得到的密文数据块分发到5台服务器。由于w为2,因此在恢复数据时用户与3台云端服务器的密钥数据块相结合即可恢复所述密钥,降低了某台云端服务器宕机带来的对文件可能性破坏。
如图3所示,本例当上传数据块到云端服务器时,获取密钥对原始数据进行加密或变化;然后检查云端服务器是否存在同一文件名的数据块,若存在则说明该密文可能是对云端服务器已有文件的更新版本,此时通过用户端实现数据块覆盖或数据块重命名操作。即检查云端服务器是否曾经上传过同一源文件的数据块,若存在则说明该文件可能是对服务器文件的更新版本,此时用户判断是删除云端服务器的数据块,或是需要对该上传文件重新命名。不管文件是不是第一次被写入,后面的步骤相同,进行文件拆分,把文件的密文通过纠删码拆分为5个数据块,密钥通过秘密共享方法拆分为一个w为2的密钥数据块保留在客户端,5份权重为1的密钥数据块与文件密文数据块一起分发到5台云端服务器中。
如图4所示,当恢复文件时,首先获取数据块,数据块可能来自用户端或者云端服务器,若用户是访问的云端服务器数据,则需要检查用户访问权限。然后判断收集到的数据片的密钥权重和是否达到门限,若达到门限,则说明可以恢复出完整的数据,若没达到门限,则表示权限不够,无法恢复数据。最后,将获取的文件密文数据块与对应的编码柯西矩阵逆矩阵相乘获得密文,密钥通过中国剩余定理恢复,将密钥与密文通过逆变换解密得到原文。
本例通过密文与密钥编码拆分的方式将文件数据块及冗余块保存在各个云端服务器与用户端,同时用户端只保存占空间小而权重份额大的密钥数据块,权重分配以及编码使得用户拥有小部分却极其重要的关键数据。一方面,用户获取少量的云端服务器的数据块,即在部分云端服务器宕机的情况下,用户也可以通过其余完整的存储于云端的密钥数据块恢复出源文件,提高了文件高可用性;另一方面,由于用户访问的云端服务器数量减少,降低用户恢复文件时数据读取时间。
本例在门限设计上保证在用户数据丢失的情况下,获取全部云端服务器保存的数据可恢复丢失的数据。一方面,由于获取全部的云端服务器的完整的数据块的条件比较严格,只要一台服务器数据保护成功则文件不会泄露,因此一定程度保证了数据的安全性;另一方面,用户数据丢失也有恢复的可能性,进一步提高数据可利用性。
由于本例的上述方法对源文件来讲仅仅涉及到其上传时的加密和编码,源文件的数据结构和访问管理等都不受影响,用户在上传文件到云端服务器时具体操作无需关心,因此适应性广。
本例能够以极小的操作代价下实现一个高存储利用率、高数据安全性以及低服务器宕机带来的影响的安全可靠的分布式云存储方法,无文件结构限制,只需要完成加密和编码即可,工作额外开销小。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

Claims (7)

1.一种安全可靠的分布式云存储方法,其特征在于,包括以下步骤:
步骤S1,通过密钥对原始数据进行包括了加密的变换处理;
步骤S2,对密钥和加密后的密文进行分拆,进而得到密钥数据块和文件密文数据块,其中,所述密钥数据块的数量多于所述文件密文数据块的数量;
步骤S3,将密钥数据块和文件密文数据块一对一拼装成数据块存放在云端服务器,剩余的密钥数据块存放于用户端;
步骤S4,在丢失用户端的密钥数据块时,通过预先设置的门限值t和密钥数据块进而恢复密钥和原始数据,其中,t>q;
其中,所述步骤S1、步骤S2和步骤S3均工作在用户端;
所述步骤S2中,对于加密后的密文,设置了编码门限q,进而得到拆分后的n个文件密文数据块;
在恢复密钥时,在获得的密钥数据块的权重值达到或者超过门限值t时,恢复密钥;其中,所述获得的密钥数据块的权重值为通过用户端和云端服务器所获取的密钥数据块的权重之和,一台云端服务器所得到的密钥数据块的权重为1,用户端所存储的密钥数据块的权重w大于1。
2.根据权利要求1所述的安全可靠的分布式云存储方法,其特征在于,所述步骤S1中,通过随机密钥、原始数据的一部分或原始数据的特定变换中的任意一种作为密钥对原始数据进行包括了加密的变换处理。
3.根据权利要求2所述的安全可靠的分布式云存储方法,其特征在于,所述步骤S2中,通过秘密共享算法分拆所述密钥,通过编码拆分算法分拆所述加密后的密文,然后在所述步骤S3将秘密共享算法所得到的密钥数据块和编码拆分算法所得到的文件密文数据块进行一对一拼装,得到部署于云端的数据块进而存放在至少一台云端服务器中;所述编码拆分算法包括纠删码拆分算法。
4.根据权利要求1所述的安全可靠的分布式云存储方法,其特征在于,当丢失用户端的密钥数据块时,需要获取全部云端服务器中所存储的密钥数据块来实现密钥的恢复,设定t=n;当读取到用户端的密钥数据块时,实现密钥的恢复需要获取的存储于云端服务器的密钥数据块的数量为所述编码门限q,所述编码门限q=(t-w)。
5.根据权利要求4所述的安全可靠的分布式云存储方法,其特征在于,在用户访问文件时,包括以下步骤:
步骤A,访问云文件,并检测用户端是否存在该原始数据的一份密钥数据块,如果没有则跳转至步骤B,如果有则跳转至步骤C;
步骤B,读取全部的云端服务器的数据进行恢复,并检测所获得存储于云端服务器的数据块的数目是否满足大于或等于t,若小于t则不能恢复密钥,进而无法恢复原文件;若大于或等于t则恢复密钥和密文,通过密钥对密文解密后得到原始数据;
步骤C,获得所述用户端所存储的密钥数据块的权重w,并读取q=(t-w)台云端服务器所存储的数据块,若读取的云端服务器的数据块数量没有达到编码门限q,则密钥和密文的数据不可恢复;若读取的云端服务器的数据块数量达到编码门限q,则恢复密钥和密文,通过密钥对密文解密后得到原始数据。
6.根据权利要求5所述的安全可靠的分布式云存储方法,其特征在于,所述步骤C中,在恢复密钥和密文前,自动检测云端服务器端是否有丢失的数据块,若有则重新实现编码和拆分后将对应的数据块分发给缺失的云端服务器;然后在用户端根据获取的密文与密钥恢复原始数据;若后续对该密文进行修改更新上传,则返回步骤S1对原始数据重新进行加密、编码和分拆,最后保存在各个云端服务器与用户端。
7.根据权利要求4所述的安全可靠的分布式云存储方法,其特征在于,当上传数据块到云端服务器时,获取密钥对原始数据进行包括了加密的变换处理;然后检查云端服务器是否存在同一文件名的数据块,若存在则说明该密文可能是对云端服务器已有文件的更新版本,此时通过用户端实现数据块覆盖或数据块重命名操作。
CN201510753361.8A 2015-11-06 2015-11-06 一种安全可靠的分布式云存储方法 Expired - Fee Related CN105282171B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510753361.8A CN105282171B (zh) 2015-11-06 2015-11-06 一种安全可靠的分布式云存储方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510753361.8A CN105282171B (zh) 2015-11-06 2015-11-06 一种安全可靠的分布式云存储方法

Publications (2)

Publication Number Publication Date
CN105282171A CN105282171A (zh) 2016-01-27
CN105282171B true CN105282171B (zh) 2018-04-27

Family

ID=55150497

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510753361.8A Expired - Fee Related CN105282171B (zh) 2015-11-06 2015-11-06 一种安全可靠的分布式云存储方法

Country Status (1)

Country Link
CN (1) CN105282171B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022051194A1 (en) * 2020-09-03 2022-03-10 Google Llc Distributing encryption keys securely and efficiently

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105721146B (zh) * 2016-03-03 2018-12-21 江苏大学 一种面向云存储基于smc的大数据共享方法
CN106096435A (zh) * 2016-05-31 2016-11-09 北京联合大学 基于好友互助方式的智能手机敏感数据保护系统和方法
CN107944255B (zh) * 2016-10-13 2020-08-04 深圳市图灵奇点智能科技有限公司 一种面向区块链的密钥管理方法
CN106685647B (zh) * 2016-11-29 2020-08-25 北京奇艺世纪科技有限公司 一种数字证书密钥确定方法及装置
CN106685646B (zh) * 2016-11-29 2020-08-18 北京奇艺世纪科技有限公司 一种数字证书密钥管理方法及管理服务器
CN107086902A (zh) * 2017-03-22 2017-08-22 北京理工大学 一种基于动态门限密码支持三方审核与文件去重的云存储系统
CN107566374A (zh) * 2017-09-07 2018-01-09 山东超越数控电子有限公司 一种基于用户隔离存储的云存储数据保护方法及系统
CN109861944A (zh) * 2017-11-22 2019-06-07 浙江智贝信息科技有限公司 一种分布式信息安全处理及交互方法及其交互系统
CN108259169B (zh) * 2018-01-09 2021-07-20 北京大学深圳研究生院 一种基于区块链云存储的文件安全分享方法及系统
CN108769036B (zh) * 2018-06-04 2021-11-23 浙江十进制网络有限公司 基于云系统的数据处理系统和处理方法
CN108846297B (zh) * 2018-07-16 2019-11-01 广州追溯信息科技有限公司 一种在具有对等节点的区块链网络上分发和检索数据的方法
US10936406B2 (en) 2018-10-09 2021-03-02 EMC IP Holding Company LLC Multi cloud transactional storage for availability and security
CN110149198A (zh) * 2019-04-29 2019-08-20 成都信息工程大学 一种自主可控地对数据进行安全保护与存储的系统和方法
CN110493201B (zh) * 2019-07-29 2022-03-18 北京多思安全芯片科技有限公司 一种数据的处理方法、装置和系统
CN110851080B (zh) * 2019-11-04 2023-07-04 紫光云技术有限公司 多云盘平台的分布式存储管理系统
CN111200602B (zh) * 2019-12-30 2021-07-13 北京深思数盾科技股份有限公司 一种分权管理方法、加密卡、管理员锁和密码机
CN113708918B (zh) * 2020-05-21 2024-06-07 深圳华芯集成电路设计有限公司 用于分布式网络的多方通信方法及分布式网络
CN111709040A (zh) * 2020-06-04 2020-09-25 江苏智先生信息科技有限公司 一种面向敏感数据的安全离散存储方法
CN111679939B (zh) * 2020-06-16 2024-02-02 江苏超流信息技术有限公司 数据备份方法及系统
CN112187757A (zh) * 2020-09-21 2021-01-05 上海同态信息科技有限责任公司 多链路隐私数据流转系统及方法
CN112084525B (zh) * 2020-10-23 2024-06-14 北京东方通科技股份有限公司 一种分布式密钥加密方法、装置、电子设备和存储介质
CN114647539B (zh) * 2022-03-17 2022-10-18 北京涵鑫盛科技有限公司 一种分布式存储系统的数据自动恢复方法
CN115865461B (zh) * 2022-11-25 2024-04-19 贵州电网有限责任公司 一种高性能计算集群中分发数据的方法和系统
CN116260577B (zh) * 2022-12-19 2023-12-08 佛山赛思禅科技有限公司 基于再生码的门限秘密共享方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010057191A2 (en) * 2008-11-17 2010-05-20 Unisys Corporation Storage security using cryptographic splitting
CN102546181A (zh) * 2012-01-09 2012-07-04 西安电子科技大学 基于密钥池的云存储加解密方法
CN102609640A (zh) * 2004-10-25 2012-07-25 安全第一公司 安全数据分析方法和系统
CN103581196A (zh) * 2013-11-13 2014-02-12 上海众人网络安全技术有限公司 分布式文件透明加密方法及透明解密方法
CN103595793A (zh) * 2013-11-13 2014-02-19 华中科技大学 一种无需可信第三方支持的云端数据安全删除系统与方法
CN104852949A (zh) * 2014-02-14 2015-08-19 航天信息股份有限公司 基于混合加密机制的云存储数据管理方法和系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609640A (zh) * 2004-10-25 2012-07-25 安全第一公司 安全数据分析方法和系统
WO2010057191A2 (en) * 2008-11-17 2010-05-20 Unisys Corporation Storage security using cryptographic splitting
CN102546181A (zh) * 2012-01-09 2012-07-04 西安电子科技大学 基于密钥池的云存储加解密方法
CN103581196A (zh) * 2013-11-13 2014-02-12 上海众人网络安全技术有限公司 分布式文件透明加密方法及透明解密方法
CN103595793A (zh) * 2013-11-13 2014-02-19 华中科技大学 一种无需可信第三方支持的云端数据安全删除系统与方法
CN104852949A (zh) * 2014-02-14 2015-08-19 航天信息股份有限公司 基于混合加密机制的云存储数据管理方法和系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022051194A1 (en) * 2020-09-03 2022-03-10 Google Llc Distributing encryption keys securely and efficiently

Also Published As

Publication number Publication date
CN105282171A (zh) 2016-01-27

Similar Documents

Publication Publication Date Title
CN105282171B (zh) 一种安全可靠的分布式云存储方法
AU2015243877B2 (en) Secure storage and accelerated transmission of information over communication networks
US9245148B2 (en) Secure storage and accelerated transmission of information over communication networks
CN103609059B (zh) 用于安全数据共享的系统和方法
CN103039057B (zh) 对移动中数据进行保护的系统和方法
US20160275294A1 (en) Data system and method
CN108810063A (zh) 一种多云存储环境下数据的安全分发和修复方法、系统及介质
Tse et al. Emerging issues in cloud storage security: encryption, key management, data redundancy, trust mechanism
Memmi et al. Data protection: Combining fragmentation, encryption, and dispersion
Meena et al. Survey on various data integrity attacks in cloud environment and the solutions
Yuvaraj et al. Secure de-duplication over wireless sensing data using convergent encryption
Hu Study of file encryption and decryption system using security key
Sharma et al. Seed block algorithm: a remote smart data back-up technique for cloud computing
Bini et al. Secure image deduplication using SPIHT compression
Kamboj et al. Multi-layer data security in cloud computing
Bian et al. The Jigsaw secure distributed file system
Pavithra et al. A New Approach for Security in Cloud Data Storage for IOT Applications Using Hybrid Cryptography Technique
Alsufaian et al. Secure File Storage On Cloud Using Hybrid Cryptography
Schnitzer et al. Secured storage using secureParser™
Rawat et al. Hyper-Space: Blockchain-based Decentralized Cloud Storage System
US20230275759A1 (en) Method and system of encoding data over distributed networks and method of assuring integrity of data transmission between sender and receiver in a communication system
Aspnes et al. Towards a theory of data entanglement
Zhao et al. A Video Security Verification Method Based on Blockchain
Liu et al. Research Article Security Analysis and Improvements on a Remote Integrity Checking Scheme for Regenerating-Coding-Based Distributed Storage
Zhenghang et al. A Video Security Verification Method Based on Blockchain

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180427