数据变长修改方法及其在大数据加密中的应用技术

技术编号:15794910 阅读:223 留言:0更新日期:2017-07-10 10:24
本发明专利技术属于信息处理领域,涉及数据的修改方法,特别是大数据的修改方法,及其在加密中的应用。数据修改的时候往往长度会发生改变,这会带来许多问题,比如相邻数据会发生移动,文件的结构会发生一些变化而导致存储空间上的数据被大量修改、覆盖,在一些文件格式中,文件或者文件的记录的长度已经事先被记录下来,但是往往数据会需要修改,特别是当发生某一部分数据比较敏感的时候,需要进行加密,但是许多加密会带来数据的扩张,在本发明专利技术中,将数据的变长部分写入新的位置,此外本发明专利技术还考虑到大文件的数据庞大,不适合于全部加密,采用选择性加密方法。本发明专利技术还针对大数据加密提出了几种优选方案,以方便密钥管理和减少一些加密带来的代价。

【技术实现步骤摘要】
数据变长修改方法及其在大数据加密中的应用
本专利技术属于信息处理领域,涉及数据的修改方法,特别是大数据的修改方法,及其在加密中的应用。
技术介绍
数据修改的时候往往长度会发生改变,这种改变会带来许多问题,比如相邻数据会发生移动,文件的结构会发生一些变化而导致存储空间上的数据被大量修改、覆盖,特别是大数据更会带来一系列连锁反应,有些文件格式由于定义了文件长度或者记录长度,这样就不能进行变长的修改,比如,大数据的某些文件格式,比如SequenceFile就不支持数据的修改。但是,在大数据的许多场合,由于实时性比较强,往往一开始需要很快就把明文数据记录存储下来,放在SequenceFile之类的文件中,但是,事后往往会发觉,需要进行修改以实现匿名,隐私保护或者其他安全的需要,比如需要进行加密,嵌入签名。许多加密会带来数据的扩张,比如,分组密码会需要进行填充处理,往往会变长,具有误导功能加密,同态加密,或者一些签名的嵌入,都会增加数据长度。在本专利技术中,将数据的变长部分写入新的位置,比如写入原文件的新记录或者新的文件中。此外针对云计算和大数据的加密方面,目前有代理重加密和同态加密,这些加密都有一定的应用场合,而且有局限性,比如同态加密效率低,冗余度大,现实中应用有较大的局限性,上述的加密方法直接用于加密大规模的数据是不现实的,因为计算量庞大,而且诸如同态加密往往会带来数据的扩展,代价大,重代理加密只适合于特定用户之间的密钥转换,现实中也没有必要将所有的数据进行上述的加密。同态加密比较适用于需要委托计算(代理计算)的数据的加密,但是代价比较高。用传统的加密方法加密这些数据也存在计算量大等等问题。而且现实中,我们还希望对于某些数据,加密后,密文可以被解密为有意义的错误密文,或者明文的关键内容被替换为其他误导意义的字、词、句子等等,以达到误导的效果,既要避免庞大的工作量,又要保护其中重要的数据,需要采取一定的灵活方法。本专利技术考虑对大数据进行选择性的加密的必要性,以及密钥管理的困难,设计了多种方案。
技术实现思路
由于变长的修改会带来许多问题,比如如果中间位置的修改不是等长的,后面的数据就全部要移动,有些文件结构中包含了长度信息的文件的结构和数据可能都需要大幅度的调整和移动,这也导致一些文件不支持已有记录的修改,特别是对于大数据而言,数据移动的代价更大。比如SequenceFile文件就不支持修改,只支持追加记录。本专利技术保持数据位置尽量少移动,没有修改的数据位置不移动。方案1为初始方案:为了减少数据位置的移动和结构的变化,本专利技术中,将会对不需要修改的数据将存放在原位置不变,对于修改的部分,将新写入的数据存放在被修改原数据的位置,即覆盖原始数据,并且记录必要的信息,比如长度变化的信息、原数据(文件)位置和增加数据位置的对应关系、关于修改方法的一些信息(比如,这里是修改的目的是为了保密而做了加密,则必要的加密解密信息需要保存下来)等,针对修改后的长度与修改前的长度关系的三种情形进行分别处理:(1)如果长度相同,修改后存放在在原位置,刚好覆盖原数据,并且记录等长的信息,(2)如果长度变长,则将原始数据覆盖后,将超出原始长度的数据存放在另外的位置,另外的位置可以是可以是在原(数据)文件后追加数据,比如SequenceFile文件后面追加一条记录,存放在文件的末尾,也可以存放在新的文件中,可以每次(每段)修改对应存放一个文件,也可以集中存放一个文件中,比如,可以将信息存放在表中,(3)如果长度比原数据短,则进行覆盖修改后记录长度变化信息,取修改以后的长度或者原数据与修改后数据的长度之差。对于原数据超出部分的数据,如果没有安全需要,可以不改变,如果有保密需要,可以采用随机数据覆盖还没有被修改的那一段原始数据。为了方便,增加的数据(如果没有增加,比如减少或者长度不变,可以当作为空),以及(前面记录的)长度变化的信息、原文件和增加数据的对应关系、关于修改方法的一些信息(比如,这里是修改的目的是为了保密而做了加密,则必要的加密解密信息需要保存下来)等必须的信息,应该储存在文件中,为了方便,可以存放在1个或者多个表中。比如,可以将上述所有的信息存放在一个表中,也可以采用两个表,将增加的数据和原文对应关系存放在一个表中,将长度变化的信息、原数据(文件)和增加数据的对应关系、关于修改方法的一些信息存放在另一个表中。方案2:在方案1的基础上,可以先对数据进行压缩再进行修改,比如先压缩再加密。这样可以减少数据冗余,减少需要占用的额外的存储空间。可以在一定程度上减少处理后的数据长度超过原来的长度的情形。方案3:由于在许多情况下,需要将部分数据进行加密,本方案3利用方案1或者2的方法对数据进行加密,由于加密可以看成是对明文的修改,对于大数据,不适合全部进行加密,所以这里采用选择性加密,大数据的不同部分的安全需求不一样,可能会采用不同的加密方法,其中某些方法可能会带来数据长度的改变,特别是可能会增加数据量,因此可以对文件进行读取,对其数据或者内容进行分段,如果数据是包含许多文件,可以以文件为单位进行分段,如果数据都存放在一个文件中,也可以对文件的不同部分进行分段,如果分段无需保密的不加密,如果分段需要加密的根据其需要采用不同的加密方法,最后保存为密文。加密的总体步骤如下:1、读取数据(文件),针对数据格式(文件格式)需要,获得相应内容,比如对于文本文件,可以是直接对数据进行加密,对于SequenceFile文件,分别获得<key,value>,根据需要对数据或者内容进行分块(分段),比如分块可以是一个文件为一段,或者Hadoop中的SequenceFile等文件(流式文件)中包含的一个文件(有时候称为记录record),或者是xml文件中的一个特性的值,表格中的一个数据项、一行、一列等,TextFile文件格式可以根据分隔符和行结束符分段。2、根据需要选择是否对数据块进行加密,以及何种加密方式,这个判定可以是机器的,也可以是人工的,比如根据设定的规则进行机器判断或者用户的人工选择,判定大文件的每一个数据块(段)是否需要进行加密,以及采用什么样的方式进行加密。3、选择已有密钥或者产生密钥,根据选择的方法对各个数据块中需要加密的内容进行加密,加密可以针对于每一块的值,比如某些文件格式中有分隔符,有长度的记录,如果需要明文形式,可以不进行加密。4、将每一个数据块加密得到的密文,如果需要,进行必要的适应性的编码转换,比如通过一般加密得到的是字节数组,一般情况下需要转换为字符数组而产生实际写入的密文段(解密的时候需要进行相反的转换),并且用对应的密文对原明文段(数据块)进行覆盖,由于存在长度变化,所以采用方案1或者2的方法进行修改,将超出长度的数据存储好。将长度变化的信息、原文件和增加数据的对应关系、关于修改方法的一些信息也存放起来。在方案1中的关于修改方法的一些信息在本方案中应该包括每个数据块是否加密(如果可以根据确定的规则判定数据块是否加密的,这一信息可以忽略),如果加密,则相应的解密所需要的信息和参数都要存储起来,比如原始数据块的位置信息(比如起始和结束位置或者起始位置和长度),对应密文块的位置信息,采用什么方式进行加密,加密的密钥(或获本文档来自技高网
...

【技术保护点】
一种数据变长修改方法,其特征为采用如下步骤:1)首先针对修改后的长度与修改前的长度关系的三种情形进行分别处理:(1)如果长度相同,修改后存放在在原位置,刚好覆盖原数据,并且记录等长的信息,(2)如果长度变长,则将原始数据覆盖后,将超出原始长度的数据存放在另外的位置,(3)如果长度比原数据短,则进行覆盖修改后记录长度变化信息,取修改以后的长度或者原数据与修改后数据的长度之差,2)将增加的数据,以及长度变化的信息、原数据和增加数据的对应关系、关于修改方法的一些信息等必须的信息,应该储存在文件中。

【技术特征摘要】
1.一种数据变长修改方法,其特征为采用如下步骤:1)首先针对修改后的长度与修改前的长度关系的三种情形进行分别处理:(1)如果长度相同,修改后存放在在原位置,刚好覆盖原数据,并且记录等长的信息,(2)如果长度变长,则将原始数据覆盖后,将超出原始长度的数据存放在另外的位置,(3)如果长度比原数据短,则进行覆盖修改后记录长度变化信息,取修改以后的长度或者原数据与修改后数据的长度之差,2)将增加的数据,以及长度变化的信息、原数据和增加数据的对应关系、关于修改方法的一些信息等必须的信息,应该储存在文件中。2.如权利要求1所述的数据变长修改方法,其特征为:在进行修改前,先对需要修改的数据进行压缩。3.如权利要求1所述的数据选择性加密方法,其特征为加密的总体步骤如下:1)、读取数据,针对数据格式需要,获得相应内容,根据需要对数据或者内容进行分块,2)、根据需要选择是否对数据块进行加密,以及何种加密方式,3)、选择已有密钥或者产生密钥,根据选择的方法对各个数据块中需要加密的内容进行加密,4)、将每一个数据块加密得到的密文,对原明文段进行覆盖,加密视为修改,采用权利要求1的方法进行修改,将长度变化的信息、原文件块和增加数据的对应关系、关于修改方法的一些信息也存放起来,关于修改方法的一些信息包括每个数据块是否加密,如果加密,则相应的解密所需要的信息和参数都要存储起来。4.如权利要求3所述的数据选择性加密方法,其特征为在前面分段的基础上进一步将需要进行委托计算的数据与不需要进行委托计算的数据进行继续分段,分段后依然要维持相应的格式,需要进行委托计算的数据加密的时候采用同态加密,其他数据采用非同态加密,并且记录分块的位置信息。5.如权利要求3所述的数据选择性加密方法,其特征为在加密算法的选择上,根据数据需要进行计算的所有函数来判断需要的加密方法,在可以满足所有函数计算需要的前提下优先选用加密算法顺序为:一般加密、半同态加密、全同态加密。6.如权利要求4所述的数据选择性加密方法,其特征为对称密码算法加密的密钥由单向函数生成,单个分段的对称加密密钥由唯一确定这个分段的位置信...

【专利技术属性】
技术研发人员:王勇
申请(专利权)人:桂林电子科技大学
类型:发明
国别省市:广西,45

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1