CN104915609A - 一种基于Lagrange插值法和多云的数据隐藏方法 - Google Patents

一种基于Lagrange插值法和多云的数据隐藏方法 Download PDF

Info

Publication number
CN104915609A
CN104915609A CN201510287907.5A CN201510287907A CN104915609A CN 104915609 A CN104915609 A CN 104915609A CN 201510287907 A CN201510287907 A CN 201510287907A CN 104915609 A CN104915609 A CN 104915609A
Authority
CN
China
Prior art keywords
data
file
interpolation
block
matrix
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.)
Granted
Application number
CN201510287907.5A
Other languages
English (en)
Other versions
CN104915609B (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.)
Wuhan University of Science and Engineering WUSE
Original Assignee
Wuhan University of Science and Engineering WUSE
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 Wuhan University of Science and Engineering WUSE filed Critical Wuhan University of Science and Engineering WUSE
Priority to CN201510287907.5A priority Critical patent/CN104915609B/zh
Publication of CN104915609A publication Critical patent/CN104915609A/zh
Application granted granted Critical
Publication of CN104915609B publication Critical patent/CN104915609B/zh
Expired - Fee Related 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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Landscapes

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

Abstract

本发明公开了一种基于Lagrange插值法和多云的数据隐藏方法,应用在多云环境下的系统中,系统包括四个部分:用户、客户端、数据上传层、数据下载层和云端;数据上传前在客户端用Reed Solomon纠删码的信息分割算法对用户数据进行分割,然后用Lagrange插值方法对每块分割后的数据进行信息隐藏,最后把每块数据存储到不同的云存储中。数据下载时只需要从部分云存储获取数据,先使用Lagrange插值方法对下载得到的每块数据进行隐藏信息的恢复,然后使用Reed Solomon中的恢复算法对数据块进行合并恢复得到原始数据。本发明解决了服务可用性和单个云存储的限制;Reed Solomon算法的使用可以在减少存储空间的同时,容忍部分云存储出错;Lagrange插值方法的使用解决了数据机密性,保护用户数据的隐私。

Description

一种基于Lagrange插值法和多云的数据隐藏方法
技术领域
本发明属于多云存储和信息隐藏技术领域,涉及一种多云环境下的数据隐藏方法,具体涉及一种基于Lagrange插值法和多云的数据隐藏方法。
背景技术
云存储是基于云计算的兴起而应运而生的,近年来,数字化、信息化日益明显,人们对于存储的需求也增长快速。随着云存储服务提供商的增多,越来越多的公司选择在处理重要数据时使用云存储来满足他们的存储需求。比如医疗记录数据库,大型系统的历史信息和金融数据等。然而云存储在给用户存储带来灵活性和高扩展性的同时,也面临着安全挑战。首先由于云存储的不可信,会导致用户隐私的泄露;另外由于云存储服务的中断,导致服务不可用;第三,由于云存储提供商之间竞争激烈,价格会因此浮动,用户更换云存储提供商时会造成较大的花费;最后,由于云存储可能会丢失或者损坏用户数据,数据完整性受到威胁。
当前对于云存储数据安全性的研究分为单个云的研究和多个云的研究。本发明的方案是基于多云环境的,目前有关多云存储的研究,国内的研究比较少,国外的学者研究比较多,且提出很多独特的想法。
Cachin等人表示单个云服务仍然受到停机的影响,首先提出了多云存储的概念。Abu-Libdeh等提出了一个RACS协议,将常用于磁盘和文件系统中的独立磁盘阵列的技术应用于云存储。该协议主要关注于云存储提供商锁定的问题。通过将用户的数据分割到多个云存储提供商,使得用户避免云存储提供商的锁定,降低更换云存储提供商的成本,更好的容忍云存储提供商的停机或发生故障,分散了存储的负载。D.Bowers等提出了HAIL协议,该协议是一个分布式加密系统,允许一组服务器确认客户端的数据是完整的和可恢复的。它提供了一个软件层来满足存储于多个云中的数据的可用性和完整性。Bessani等提出了一个虚拟化存储系统Depsky,Depsky系统中提出了两个协议Depsky-A和Depsky-CA。Depsky-A没有对数据做任何处理把数据复制在不同的云存储中,Depsky-CA解决了Depsky-A的限制,借鉴Krawczyk提出的改进的秘密共享方案,先使用对称密钥对数据加密,然后用Shamir的秘密共享方法管理密钥,同时用纠删码对加密后数据进行编码,最后把数据块和秘密共享后的密钥存到对应的云存储中。提高了存储在云上数据的可用性、完整性、机密性。
从现有研究成果可以看出,RACS解决了云存储提供商的锁定,但它没有解决数据机密性问题,HAIL解决了云存储中数据完整性和可用性,但没有解决机密性问题,Depsky-CA相对比较完善,提高了存储在云上数据的可用性、完整性、机密性。然而Depsky-CA使用Shamir秘密共享去分割密钥,密钥大小会增加n倍(n个存储云),相对于理论上的最优情况,仍旧会增加存储空间,虽然通常来说密钥本身的大小并不大。但是密钥的引入在一些每天需要经常更新的应用中,所增加的存储空间同样也是不可忽视的。
发明内容
针对现有技术存在的问题,本发明提供了一种基于Lagrange插值法和多云的数据隐藏方法,与RACS相比解决了数据机密性的问题,与Depsky-CA相比解决由于密钥存储所带来的存储空间增加的问题。
本发明所采用的技术方案是:一种基于Lagrange插值法和多云的数据隐藏方法,应用在多云环境下的系统中,系统包括四个部分:用户、客户端、数据上传层、数据下载层和云端;其特征在于,包括以下步骤:
步骤1:用户注册;系统在客户端启动后,用户进入注册界面,输入用户名与密码进行注册,注册成功后,转到步骤2;
步骤2:用户登录;用户进入登录界面,输入用户名密码进行登录,登录成功后,转到步骤3;
步骤3:选择上传文件;用户进入系统主界面,点击上传按钮,从本地选择任意一个文件进行上传,选择完成后,转到步骤4;
步骤4:此时客户端首先用Reed Solomon纠删码的信息分割算法将文件分成相同大小的m块,然后编码产生k块,其中k≤m,共产生n个数据块,n=m+k,编码成功后转到步骤5;
步骤5:然后用Lagrange插值法对分割后的每个数据块进行信息隐藏,隐藏成功后转到步骤6;
步骤6:文件上传;把处理后的每块数据及每块数据对应的序列值上传到相应的云存储中,文件上传成功后,系统主界面显示了已成功上传的n块数据,根据云存储各自的状况,用户根据自身需求选择其中的m块进行下载,选择完成后转到步骤7;
步骤7:文件下载;选择完成后点击下载按钮,则从相应的云存储中下载存储的数据及其对应的序列值,m块数据下载下来后,转到步骤8;
步骤8:在客户端对下载下来的每块数据用Lagrange插值法对隐藏的信息进行恢复,恢复成功后,转到步骤9;
步骤9:对用Lagrange插值法对隐藏的信息进行恢复后的m块数据用ReedSolomon纠删码的信息恢复算法对其进行恢复,恢复成为原始的文件,结束。
作为优选,步骤4的具体实现包括以下子步骤:
步骤4.1:首先定义上传文件为D,将文件D分为大小相同的m块,则文件D视为向量:D=(D1,D2…Dm);
步骤4.2:定义分块编码后的文件为向量:(D1,D2…Dm,C1…Ck),k为编码产生的冗余块数量;
步骤4.3:定义编码矩阵B,编码矩阵是由单位矩阵和范德蒙德矩阵构成,其中单位矩阵是m行m列矩阵,范德蒙德矩阵为k行m列矩阵;
B = 1 0 ... 0 0 1 ... 0 ... ... ... ... 0 0 ... 1 1 1 ... 1 1 2 ... m ... ... ... ... 1 2 k - 1 ... m k - 1 ;
步骤4.4:编码矩阵与文件向量相乘生成(D1,D2…Dm,C1…Ck),
1 0 ... 0 0 1 ... 0 ... ... ... ... 0 0 ... 1 1 1 ... 1 1 2 ... m ... ... ... ... 1 2 k - 1 ... m k - 1 × D 1 D 2 . . . D m = D 1 D 2 . . . D m C 1 . . . C k .
作为优选,步骤5的具体实现包括以下子步骤:
步骤5.1:定义分割编码后的数据块(D1,D2…Dm,C1…Ck)为:(D1 D2 … Dn),令i=1,转到步骤5.2;
步骤5.2:如果i<=n,转到步骤5.3,否则转到步骤5.8;
步骤5.3:将数据块Di分成t个更小单位数据,Di=(di1,di2…dit),转到步骤5.4;
步骤5.4:定义数对:(x1,di1),(x2,di2)…(xt,dit),其中x1…xt选取任意整数,在t个点上面利用拉格朗日插值公式生成k-1阶多项式L(x);
L ( x ) = &Sigma; j = 1 t d i j l j ( x ) ;
其中lj(x)为插值基函数:
l j ( x ) = &Pi; z = 1 , z ! = j t x - x z x j - x z = ( x - x 1 ) ( x j - x 1 ) ... ( x - x j - 1 ) ( x j - x j - 1 ) ( x - x j + 1 ) ( x j - x j + 1 ) ... ( x - x t ) ( x j - x t ) ;
步骤5.5:得到多项式L(x)后,选取区别于x1…xt的另外t个点,α12…αt代入多项式计算相应的函数值,得到β12…βt,令Di=(β12…βt);
步骤5.6:隐藏信息后的数据块Di=(β12…βt),以及α12…αt在步骤6中将会存储到相应的云存储中;
步骤5.7:i=i+1,回转执行所述的步骤5.2;
步骤5.8:将文件的存储信息写入客户端,所述的存储信息包括文件名、文件大小、恢复文件块m、以及原始的序列x1…xt;其中对于同一个文件每块数据块的原始的序列x1…xt是一样的,Lagrange插值法信息隐藏结束。
作为优选,步骤8的具体实现包括以下子步骤:
步骤8.1:从云存储端下载下来的m块数据(D2…Dm,C1),用序列(D1,D2…Dm)来表示,令i=1,转到步骤8.2;
步骤8.2:如果i<=m,转到步骤8.3,否则转到步骤8.5;
步骤8.3:对于下载得到数据块Di=(β12…βt)与α12…αt,根据步骤5.4,用(α11),(α22)…(αtt),构造多项式函数L(x),在客户端查找相关存储信息,得到该下载文件的原始的序列x1…xt,代入多项式函数计算出原始的数据值Di=(di1,di2…dit),转到步骤8.4;
步骤8.4:i=i+1,转到步骤8.2;
步骤8.5:用Lagrange插值法对隐藏的信息进行恢复后得到编码后的原始数据块(D1,D2…Dm),即(D2…Dm,C1),隐藏信息恢复结束。
作为优选,步骤9的具体实现包括以下子步骤:
步骤9.1:根据步骤8.5得到的数据序列(D2…Dm,C1),对步骤4.3中所定义的编码矩阵删除数据块D1,C2…Ck所对应的行,得到矩阵B';
B &prime; = 0 1 ... 0 ... ... ... ... 0 0 0 1 1 1 1 1 ;
步骤9.2:将矩阵B'的逆矩阵与步骤8.5中得到的数据块(D2…Dm,C1)相乘,得到用户原始的文件;
0 1 ... 0 ... ... ... ... 0 0 0 1 1 1 1 1 - 1 &times; D 2 . . . D m C 1 = D 1 D 2 . . . D m ;
步骤9.3:得到文件D=(D1,D2…Dm),Reed Solomon纠删码的信息恢复算法结束。
本发明可以获得以下的有益效果:通过采用多个云存储服务器来存储数据,解决了服务的可用性问题,解决了单云环境下的云提供商锁定问题;通过ReedSolomon纠删码的使用,在保持冗余度的同时减少了存储空间,可以容忍部分云存储出错;通过Lagrange插值法的使用,解决了数据机密性的问题,攻击者在不知道原始序列的情况下即使得到了云存储中的数据也无法进行恢复。通过实施本发明的技术方案,可为多云环境下的数据存储提供一种信息隐藏方案,实现用户隐私的保护。
附图说明
图1:为本发明实施例的整体流程图;
图2:为本发明实施例的Reed Solomon算法中数据分割阶段的细化流程图;
图3:为本发明实施例的Lagrange插值法中信息隐藏阶段的细化流程图;
图4:为本发明实施例的Lagrange插值法中隐藏信息恢复阶段的细化流程图;
图5:为本发明实施例的Reed Solomon算法中数据恢复阶段的细化流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明提供的一种基于Lagrange插值法和多云的数据隐藏方法,应用在多云环境下的系统中,请见图1,系统包括四个部分:用户、客户端、数据上传层、数据下载层和云端;其中客户端负责Reed Solomon纠删码和Lagrange插值法的执行,向云存储服务器发出上传与下载请求;用户负责从本地选择要上传的文件,下载文件时根据需求选择相应的云存储服务器;云端或云存储服务器负责响应客户端的请求,只存储数据,不执行任何代码;文件为用户需要上传至云端的数据;Reed Solomon纠删码的信息分割算法和Lagrange插值法的信息隐藏在文件上传前执行,Lagrange插值法的隐藏信息恢复和Reed Solomon纠删码的信息恢复算法在文件下载后执行,均由客户端进行计算。
在本实施例中,用户选择上传的文件为D.txt,文件大小为L=150kb。本实例中我们采用4个云存储服务器,文件分为3块编码产生一个冗余块,可以容忍一个云存储出错,只需从3个云存储下载数据就可以恢复原文件。
本发明提供的一种基于Lagrange插值法和多云的数据隐藏方法,包括以下步骤:
步骤1:用户注册:系统在客户端启动后,用户进入注册界面,输入用户名与密码进行注册,注册成功后,转到步骤2;
步骤2:用户登录:用户进入登录界面,输入用户名密码进行登录,登录成功后,转到步骤3;
步骤3:选择上传文件:用户进入系统主界面,点击上传按钮,从本地选择任意一个文件进行上传,选择完成后,转到步骤4;
步骤4:Reed Solomon算法中数据分割:此时客户端首先用Reed Solomon纠删码的信息分割算法将文件分成相同大小的m块,然后编码产生k块(k≤m),共产生n个数据块(n=m+k),如图2所示,本步骤具体包括以下子步骤:
步骤4.1、首先定义上传文件为D,将文件D分为大小相同的m块。则文件D视为向量:D=(D1,D2…Dm),转到步骤4.2;
在本实施例中,上传文件为D.txt,m为3,文件D=(D1,D2,D3),若文件大小无法被3整除,则前两个文件的大小为L/3+1,最后一个文件不够L/3+1的部分用第二块文件的相应部分替代,在最终下载还原得到原文件的时候要删除添加的这一部分;
步骤4.2、定义分块编码后的文件为向量:(D1,D2…Dm,C1…Ck),k为编码产生的冗余块数量,转到步骤4.3;
在本实施例中,编码后的文件为向量为,(D1,D2,D3,C1),k为1;
步骤4.3、定义编码矩阵B,编码矩阵是由单位矩阵和范德蒙德矩阵构成,其中单位矩阵是m行m列矩阵,范德蒙德矩阵为k行m列矩阵,转到步骤4.4;
B = 1 0 ... 0 0 1 ... 0 ... ... ... ... 0 0 ... 1 1 1 ... 1 1 2 ... m ... ... ... ... 1 2 k - 1 ... m k - 1 ;
在本实施例中,编码矩阵B是有一个3行3列的单位矩阵和一个1行1列的范德蒙德矩阵构成;
B = 1 0 0 0 1 0 0 0 1 1 1 1 ;
步骤4.4、编码矩阵与文件向量相乘生成(D1,D2…Dm,C1…Ck),结束;
1 0 ... 0 0 1 ... 0 ... ... ... ... 0 0 ... 1 1 1 ... 1 1 2 ... m ... ... ... ... 1 2 k - 1 ... m k - 1 &times; D 1 D 2 . . . D m = D 1 D 2 . . . D m C 1 . . . C k ;
在本实施例中,编码矩阵与文件向量相乘生成(D1,D2,D3,C1);
1 0 0 0 1 0 0 0 1 1 1 1 &times; D 1 D 2 D 3 = D 1 D 2 D 3 C 1 ;
步骤5:Lagrange插值法中信息隐藏:然后用Lagrange插值法对分割后的每个数据块进行信息隐藏;如图3所示,本步骤具体包括以下子步骤:
步骤5.1、为表示方便,定义分割编码后的数据块(D1,D2…Dm,C1…Ck)为:(D1 D2 … Dn),令i=1,转到步骤5.2;
在本实施例中,定义分割编码后的数据块(D1,D2,D3,C1)为:(D1,D2,D3,D4);
步骤5.2、如果i<=n,转到步骤5.3,否则转到步骤5.8;
在本实施例中,如果i<=4,转到步骤5.3,否则转到步骤5.8;
步骤5.3、将数据块Di分成t个更小单位数据,Di=(di1,di2…dit),转到步骤5.4;
在本实施例中,令t=4,Di=(di1,di2,di3,di4);
步骤5.4、定义数对:(x1,di1),(x2,di2)…(xt,dit),其中x1…xt可选取任意整数,在t个点上面利用拉格朗日插值公式生成k-1阶多项式L(x),转到步骤5.5;
L ( x ) = &Sigma; j = 1 t d i j l j ( x ) ;
其中lj(x)为插值基函数:
l j ( x ) = &Pi; z = 1 , z ! = j t x - x z x j - x z = ( x - x 1 ) ( x j - x 1 ) ... ( x - x j - 1 ) ( x j - x j - 1 ) ( x - x j + 1 ) ( x j - x j + 1 ) ... ( x - x t ) ( x j - x t ) ;
在本实施例中,数对为(x1,di1),(x2,di2),(x3,di3)(x4,di4),在这4个点上面利用拉格朗日插值公式生成3阶多项式L(x);
L ( x ) = &Sigma; j = 1 4 d i j l j ( x ) ;
其中lj(x)为插值基函数:
l 1 ( x ) = ( x - x 2 ) ( x 1 - x 2 ) ( x - x 3 ) ( x 1 - x 3 ) ( x - x 4 ) ( x 1 - x 4 ) ;
l 2 ( x ) = ( x - x 1 ) ( x 2 - x 1 ) ( x - x 3 ) ( x 2 - x 3 ) ( x - x 4 ) ( x 2 - x 4 ) ;
l 3 ( x ) = ( x - x 1 ) ( x 3 - x 1 ) ( x - x 2 ) ( x 3 - x 2 ) ( x - x 4 ) ( x 3 - x 4 ) ;
l 4 ( x ) = ( x - x 1 ) ( x 4 - x 1 ) ( x - x 3 ) ( x 4 - x 3 ) ( x - x 2 ) ( x 4 - x 2 ) ;
步骤5.5、得到多项式L(x)后,选取区别于x1…xt的另外t个点,α12…αt代入多项式计算相应的函数值,得到β12…βt,令Di=(β12…βt),转到步骤5.6;
在本实施例中,选取区别于x1,x2,x3,x4的另外4个点,α1234代入多项式计算相应的函数值,得到β1234,令Di=(β1234);
步骤5.6、隐藏信息后的数据块Di=(β12…βt),以及α12…αt在步骤6中将会存储到相应的云存储中,转到步骤5.7;
在本实施例中,Di=(β1234),α1234在步骤6中将会存储到相应的云存储中;
在步骤5.6中,虽然每个云存储中除了存储数据块还存储了相应的α12…αt序列值,但是一般t值取的比较小所以序列值相比密钥来说还是小很多,占用的存储空间并不多;
步骤5.7、i=i+1,转到步骤5.2;
步骤5.8、将文件的存储信息:文件名,文件大小,恢复文件块m,以及原始的序列x1…xt写入客户端,Lagrange插值法信息隐藏结束;
在本实施例中,文件名D.txt,文件大小:150kb,m为3,原始序列x1,x2,x3,x4
在本发明方案中,同一文件每块数据的原始序列取值相同。
步骤6:文件上传:把处理后的每块数据及每块数据对应的序列值上传到相应的云存储中,文件上传成功后,系统主界面显示了已成功上传的n块数据,根据云存储各自的状况,用户根据自身需求选择其中的m块进行下载,选择完成后转到步骤7;
在本实施例中,将通过步骤5得到的数据块(D1,D2,D3,C1)以及每块数据对应的序列值α1234分别存储到4个云存储中,用户下载时根据需求从4块数据中选择3块下载;
步骤7、文件下载:选择完成后点击下载按钮,则从相应的云存储中下载存储的数据及其对应的序列值。m块数据下载下来后,转到步骤8;
在本实施例中,从相应的云存储中下载数据以及所对应的序列值α1234,m为3;
步骤8、Lagrange插值法—隐藏信息恢复:在客户端对下载下来的每块数据用Lagrange插值法对隐藏的信息进行恢复,如图4所示,本步骤具体包括以下子步骤:
步骤8.1、从云存储端下载下来的m块数据,以(D2…Dm,C1)为例,为论述方便(D2…Dm,C1)用序列(D1,D2…Dm)来表示,令i=1,转到步骤8.2;
在本实施例中,用户选择进行下载的3个数据块是(D2,D3,C1),用序列(D1,D2,D3)来表示;
步骤8.2、如果i<=m,转到步骤8.3,否则转到步骤8.5;
在本实施例中,如果i<=3,转到步骤8.3,否则转到步骤8.5;
步骤8.3、对于下载得到数据块Di=(β12…βt)与α12…αt,根据步骤5.4,用(α11),(α22)…(αtt),构造多项式函数L(x),在客户端查找相关存储信息,得到该下载文件的原始的序列x1…xt,代入多项式函数计算出原始的数据值Di=(di1,di2…dit),转到步骤8.4;
在本实施例中,下载得到数据块Di=(β1234)与α1234,根据步骤5.4,用(α11),(α22),(α33),(α44),构造多项式函数L(x),在客户端查找相关存储信息,得到该下载文件的原始的序列x1,x2,x3,x4,代入多项式函数L(x)计算出原始的数据值Di=(di1,di2,di3,di4);
步骤8.4、i=i+1,转到步骤8.2;
步骤8.5、用Lagrange插值法对隐藏的信息进行恢复后得到编码后的原始数据块(D1,D2…Dm)即(D2…Dm,C1),隐藏信息恢复结束;
在本实施例中,用Lagrange插值法对隐藏的信息进行恢复后得到编码后的原始数据块(D2,D3,C1);
步骤9、Reed Solomon算法—数据恢复:对用Lagrange插值法对隐藏的信息进行恢复后的m块数据用Reed Solomon纠删码的信息恢复算法对其进行恢复,恢复成为原始的文件,如图5所示,本步骤具体包括以下子步骤:
步骤9.1、根据步骤8.5得到的数据序列(D2…Dm,C1),对步骤4.3中所定义的编码矩阵删除数据块D1,C2…Ck所对应的行,得到矩阵B',转到步骤9.2;
B &prime; = 0 1 ... 0 ... ... ... ... 0 0 0 1 1 1 1 1 ;
在本实施例中,根据步骤8.5得到的数据序列(D2,D3,C1),对步骤4.3中所定义的编码矩阵删除数据块D1对应的行,得到矩阵B';
B &prime; = 0 1 0 0 0 1 1 1 1 ;
步骤9.2、将矩阵B'的逆矩阵与步骤8.5中得到的数据块(D2…Dm,C1)相乘,得到用户原始的文件,转到步骤9.3;
0 1 ... 0 ... ... ... ... 0 0 0 1 1 1 1 1 - 1 &times; D 2 . . . D m C 1 = D 1 D 2 . . . D m ;
在本实施例中,将矩阵B'的逆矩阵与步骤8.5中得到的数据块(D2,D3,C1)相乘;
0 1 0 0 0 1 1 1 1 - 1 &times; D 2 D 3 C 1 = D 1 D 2 D 3 ;
步骤9.3、得到文件D=(D1,D2…Dm)Reed Solomon纠删码的信息恢复算法结束。
在本实施例中,得到文件D=(D1,D2,D3),Reed Solomon纠删码的信息恢复算法结束,整个方案结束。
应当理解的是,本说明书未详细阐述的部分均属于现有技术。
应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。

Claims (5)

1.一种基于Lagrange插值法和多云的数据隐藏方法,应用在多云环境下的系统中,系统包括四个部分:用户、客户端、数据上传层、数据下载层和云端;其特征在于,包括以下步骤:
步骤1:用户注册;系统在客户端启动后,用户进入注册界面,输入用户名与密码进行注册,注册成功后,转到步骤2;
步骤2:用户登录;用户进入登录界面,输入用户名密码进行登录,登录成功后,转到步骤3;
步骤3:选择上传文件;用户进入系统主界面,点击上传按钮,从本地选择任意一个文件进行上传,选择完成后,转到步骤4;
步骤4:此时客户端首先用Reed Solomon纠删码的信息分割算法将文件分成相同大小的m块,然后编码产生k块,其中k≤m,共产生n个数据块,n=m+k,编码成功后转到步骤5;
步骤5:然后用Lagrange插值法对分割后的每个数据块进行信息隐藏,隐藏成功后转到步骤6;
步骤6:文件上传;把处理后的每块数据及每块数据对应的序列值上传到相应的云存储中,文件上传成功后,系统主界面显示了已成功上传的n块数据,根据云存储各自的状况,用户根据自身需求选择其中的m块进行下载,选择完成后转到步骤7;
步骤7:文件下载;选择完成后点击下载按钮,则从相应的云存储中下载存储的数据及其对应的序列值,m块数据下载下来后,转到步骤8;
步骤8:在客户端对下载下来的每块数据用Lagrange插值法对隐藏的信息进行恢复,恢复成功后,转到步骤9;
步骤9:对用Lagrange插值法对隐藏的信息进行恢复后的m块数据用ReedSolomon纠删码的信息恢复算法对其进行恢复,恢复成为原始的文件,结束。
2.根据权利要求1所述的基于Lagrange插值法和多云的数据隐藏方法,其特征在于,步骤4的具体实现包括以下子步骤:
步骤4.1:首先定义上传文件为D,将文件D分为大小相同的m块,则文件D视为向量:D=(D1,D2…Dm);
步骤4.2:定义分块编码后的文件为向量:(D1,D2…Dm,C1…Ck),k为编码产生的冗余块数量;
步骤4.3:定义编码矩阵B,编码矩阵是由单位矩阵和范德蒙德矩阵构成,其中单位矩阵是m行m列矩阵,范德蒙德矩阵为k行m列矩阵;
B = 1 0 ... 0 0 1 ... 0 ... ... ... ... 0 0 ... 1 1 1 ... 1 1 2 ... m ... ... ... ... 1 2 k - 1 ... m k - 1 ;
步骤4.4:编码矩阵与文件向量相乘生成(D1,D2…Dm,C1…Ck),
1 0 ... 0 0 1 ... 0 ... ... ... ... 0 0 ... 1 1 1 ... 1 1 2 ... m ... ... ... ... 1 2 k - 1 ... m k - 1 &times; D 1 D 2 . . . D m = D 1 D 2 . . . D m C 1 . . . C k
3.根据权利要求2所述的基于Lagrange插值法和多云的数据隐藏方法,其特征在于,步骤5的具体实现包括以下子步骤:
步骤5.1:定义分割编码后的数据块(D1,D2…Dm,C1…Ck)为:(D1 D2 … Dn),令i=1,转到步骤5.2;
步骤5.2:如果i<=n,转到步骤5.3,否则转到步骤5.8;
步骤5.3:将数据块Di分成t个更小单位数据,Di=(di1,di2…dit),转到步骤5.4;
步骤5.4:定义数对:(x1,di1),(x2,di2)…(xt,dit),其中x1…xt选取任意整数,在t个点上面利用拉格朗日插值公式生成k-1阶多项式L(x);
L ( x ) = &Sigma; j = 1 t d i j l j ( x ) ;
其中lj(x)为插值基函数:
l j ( x ) = &Pi; z = 1 , z ! = j t x - x z x j - x z = ( x - x 1 ) ( x j - x 1 ) ... ( x - x j - 1 ) ( x j - x j - 1 ) ( x - x j + 1 ) ( x j - x j + 1 ) ... ( x - x t ) ( x j - x t ) ;
步骤5.5:得到多项式L(x)后,选取区别于x1…xt的另外t个点,α12…αt代入多项式计算相应的函数值,得到β12…βt,令Di=(β12…βt);
步骤5.6:隐藏信息后的数据块Di=(β12…βt),以及α12…αt在步骤6中将会存储到相应的云存储中;
步骤5.7:i=i+1,回转执行所述的步骤5.2;
步骤5.8:将文件的存储信息写入客户端,所述的存储信息包括文件名、文件大小、恢复文件块m、以及原始的序列x1…xt;其中对于同一个文件每块数据块的原始的序列x1…xt是一样的,Lagrange插值法信息隐藏结束。
4.根据权利要求3所述的基于Lagrange插值法和多云的数据隐藏方法,其特征在于,步骤8的具体实现包括以下子步骤:
步骤8.1:从云存储端下载下来的m块数据(D2…Dm,C1),用序列(D1,D2…Dm)来表示,令i=1,转到步骤8.2;
步骤8.2:如果i<=m,转到步骤8.3,否则转到步骤8.5;
步骤8.3:对于下载得到数据块Di=(β12…βt)与α12…αt,根据步骤5.4,用(α11),(α22)…(αtt),构造多项式函数L(x),在客户端查找相关存储信息,得到该下载文件的原始的序列x1…xt,代入多项式函数计算出原始的数据值Di=(di1,di2…dit),转到步骤8.4;
步骤8.4:i=i+1,转到步骤8.2;
步骤8.5:用Lagrange插值法对隐藏的信息进行恢复后得到编码后的原始数据块(D1,D2…Dm),即(D2…Dm,C1),隐藏信息恢复结束。
5.根据权利要求4所述的基于Lagrange插值法和多云的数据隐藏方法,其特征在于,步骤9的具体实现包括以下子步骤:
步骤9.1:根据步骤8.5得到的数据序列(D2…Dm,C1),对步骤4.3中所定义的编码矩阵删除数据块D1,C2…Ck所对应的行,得到矩阵B';
B &prime; = 0 1 ... 0 ... ... ... ... 0 0 0 1 1 1 1 1 ;
步骤9.2:将矩阵B'的逆矩阵与步骤8.5中得到的数据块(D2…Dm,C1)相乘,得到用户原始的文件;
0 1 ... 0 ... ... ... ... 0 0 0 1 1 1 1 1 - 1 &times; D 2 . . . D m C 1 D 1 D 2 . . . D m ;
步骤9.3:得到文件D=(D1,D2…Dm),Reed Solomon纠删码的信息恢复算法结束。
CN201510287907.5A 2015-05-28 2015-05-28 一种基于Lagrange插值法和多云的数据隐藏方法 Expired - Fee Related CN104915609B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510287907.5A CN104915609B (zh) 2015-05-28 2015-05-28 一种基于Lagrange插值法和多云的数据隐藏方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510287907.5A CN104915609B (zh) 2015-05-28 2015-05-28 一种基于Lagrange插值法和多云的数据隐藏方法

Publications (2)

Publication Number Publication Date
CN104915609A true CN104915609A (zh) 2015-09-16
CN104915609B CN104915609B (zh) 2017-12-08

Family

ID=54084669

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510287907.5A Expired - Fee Related CN104915609B (zh) 2015-05-28 2015-05-28 一种基于Lagrange插值法和多云的数据隐藏方法

Country Status (1)

Country Link
CN (1) CN104915609B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106657266A (zh) * 2016-11-10 2017-05-10 南京云创大数据科技股份有限公司 一种基于公有云的安全可靠的公有云存储系统的架构及方法
CN109491591A (zh) * 2018-09-17 2019-03-19 广东工业大学 一种适于多云存储系统的信息扩散方法
CN109816590A (zh) * 2018-12-26 2019-05-28 呈像科技(北京)有限公司 图像外插处理方法
CN109951443A (zh) * 2019-01-28 2019-06-28 湖北工业大学 一种云环境下隐私保护的集合交集计算方法及系统
CN110610105A (zh) * 2019-09-25 2019-12-24 郑州轻工业学院 一种云环境下基于秘密共享的三维模型文件的认证方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102523086A (zh) * 2011-12-07 2012-06-27 上海交通大学 一种隐私保护云存储系统中的密钥恢复方法
CN103312707A (zh) * 2013-06-06 2013-09-18 南京邮电大学 属性基签名的云服务器辅助验证方法
CN104009981A (zh) * 2014-05-14 2014-08-27 国家电网公司 一种基于对称加密的实时大数据隐私保护方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102523086A (zh) * 2011-12-07 2012-06-27 上海交通大学 一种隐私保护云存储系统中的密钥恢复方法
CN103312707A (zh) * 2013-06-06 2013-09-18 南京邮电大学 属性基签名的云服务器辅助验证方法
CN104009981A (zh) * 2014-05-14 2014-08-27 国家电网公司 一种基于对称加密的实时大数据隐私保护方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
张建龙等: "一种基于双域拉格朗日插值的视频错误隐藏方法", 《电子学报》 *
高立军: "拉格朗日插值方法在数值信息隐藏与分析中的应用", 《科技通报》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106657266A (zh) * 2016-11-10 2017-05-10 南京云创大数据科技股份有限公司 一种基于公有云的安全可靠的公有云存储系统的架构及方法
CN109491591A (zh) * 2018-09-17 2019-03-19 广东工业大学 一种适于多云存储系统的信息扩散方法
CN109816590A (zh) * 2018-12-26 2019-05-28 呈像科技(北京)有限公司 图像外插处理方法
CN109816590B (zh) * 2018-12-26 2023-03-14 呈像科技(北京)有限公司 图像外插处理方法
CN109951443A (zh) * 2019-01-28 2019-06-28 湖北工业大学 一种云环境下隐私保护的集合交集计算方法及系统
CN110610105A (zh) * 2019-09-25 2019-12-24 郑州轻工业学院 一种云环境下基于秘密共享的三维模型文件的认证方法
CN110610105B (zh) * 2019-09-25 2020-07-24 郑州轻工业学院 一种云环境下基于秘密共享的三维模型文件的认证方法

Also Published As

Publication number Publication date
CN104915609B (zh) 2017-12-08

Similar Documents

Publication Publication Date Title
US11182247B2 (en) Encoding and storage node repairing method for minimum storage regenerating codes for distributed storage systems
US20220368457A1 (en) Distributed Storage System Data Management And Security
US10540514B1 (en) Distributed network for storing a redundant array of independent blockchain blocks
JP5957120B1 (ja) 秘密分散方法、秘密分散システム、分散装置、およびプログラム
Oggier et al. Self-repairing homomorphic codes for distributed storage systems
CN104915609A (zh) 一种基于Lagrange插值法和多云的数据隐藏方法
US11307927B2 (en) Indexing and recovering encoded blockchain data
CN103336785A (zh) 一种基于网络编码的分布式存储方法及其装置
CN105760781A (zh) 有序可推演大数据文件的存储方法、恢复方法和操作方法
CN107689983B (zh) 基于低修复带宽的云存储系统及方法
CN109101360B (zh) 一种基于布隆过滤器和交叉编码的数据完整性保护方法
CN106612171A (zh) 云存储中一种数据软恢复方法
Sipos et al. Adaptive network coded clouds: High speed downloads and cost-effective version control
Xu et al. Reliable and secure distributed cloud data storage using reed-Solomon codes
Chan et al. Fault-tolerant and secure networked storage
Rashid et al. Proof of retrieval and ownership protocols for enterprise-level data deduplication
Oggier et al. Homomorphic self-repairing codes for agile maintenance of distributed storage systems
CN111966638B (zh) 一种适用于工业云上的ida数据恢复的动态更新方法
Xu et al. A Reliable and Secure Cloud Storage Schema Using Multiple Service Providers.
US20230367886A1 (en) Fragment and shuffle erasure coding technique
Xie et al. AONT-NZZD: A Secure and Efficient Dispersal Scheme in Distributed Storage Systems
Vins et al. A survey on regenerating codes
Jaikar et al. Verifying Data Integrity in Cloud
Chennamsetty et al. LT-Hitchhiker's XOR framework for cloud storage systems
CN110401703A (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
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20171208

Termination date: 20180528

CF01 Termination of patent right due to non-payment of annual fee