一种大文件的加密方法技术

技术编号:15395193 阅读:123 留言:0更新日期:2017-05-19 06:45
本发明专利技术属于信息安全领域,涉及大文件加密的方法。该方法考虑到大文件的数据庞大,不适合于全部加密,而且不同的加密方法有不同的优缺点,全同态加密也不能解决所有的委托计算委托,而且加密的代价大,有些需要采用具有误导功能的加密,有些只需要采用一般对称加密,因此根据需要采用分段选择合适的加密方法,通过规则或者选取,只加密部分数据。同时提出了减少密钥管理且保证安全的优选方案,可以只需要较少的密钥进行文件的加解密。

An encryption method for large files

The invention belongs to the field of information security, and relates to the method of large file encryption. This method takes into account a large file of huge data, is not suitable for all the encryption, and different encryption methods have different advantages and disadvantages, fully homomorphic encryption cannot solve all of the principal and the cost of computing authorization, encryption, some need to use misleading function of encryption, it only needs to use some general symmetric encryption, so according to the subsection select encryption method appropriate, by rules or selection, only part of the data encryption. At the same time, the optimal scheme of reducing key management and ensuring security is proposed. It can only decrypt and decrypt files with fewer keys.

【技术实现步骤摘要】
一种大文件的加密方法
本专利技术属信息安全领域,涉及一种对大文件进行加密的方法。
技术介绍
随着信息技术的发展,许多服务也趋向于信息化,数字化,人们越来越依赖数据,数据量也越来越大。相应地,一些文件也越来越大。目前非常热门的大数据(bigdata,megadata)的一些文件也非常大,有些以流式文件的形式存储。显然这些文件中往往有安全需求,需要进行加密保护,但是对大量的数据进行加密明显又是不现实的。因为大数据中有些数据的价值比较低,无需进行保密。但是由于其复杂多样性,有些数据的价值可能非常高,需要进行不同程度的保护,针对云计算和大数据的加密方面,目前有代理重加密和同态加密,其中代理重加密是密文间的一种密钥转换机制,在这个过程中,代理人得不到数据的明文信息,从而降低了数据泄露风险。而这两个密文所对应的明文是一样的,实现了数据共享。同态加密的目的是为了让存储在服务器上的密文数据依然能够进行计算。同态加密效率低,冗余度大,现实中应用有较大的局限性,上述的加密方法直接用于加密大规模的数据是不现实的,因为计算量庞大,而且诸如同态加密往往会带来数据的扩展,代价大,重代理加密只适合于特定用户之间的密钥转换,现实中也没有必要将所有的数据进行上述的加密。同态加密比较适用于需要计算的数据的加密,但是代价比较高。用传统的加密方法加密这些数据也存在计算量大等等问题。而且现实中,我们还希望对于某些数据,加密后,密文可以被解密为有意义的错误密文,或者明文的关键内容被替换为其他误导意义的字、词、句子等等,以达到误导的效果,既要避免庞大的工作量,又要保护其中重要的数据,需要采取一定的灵活方法。在本专利技术中考虑对重要数据进行加密,而不重要数据不做处理。
技术实现思路
考虑到不同数据的不同需求,本专利技术设计了一种针对于大文件的选择性加密方法。方案1:对文件进行读取,对其数据或者内容进行分段加密,如果无需保密的不加密,如果需要加密的根据其需要采用不同的加密方法,最后保存为密文。加密的总体步骤如下:1、读取文件,获得内容,对于文本文件,可以是直接对数据进行加密,对于word之类的文件,可以对其包含的文本进行加密,根据需要对数据或者内容进行分块(分段),比如分块可以是Hadoop中的SequenceFile等文件(流式文件)中包含的一个文件,或者是xml文件中的一个特性的值,或者是word文件的一个段落、句子等单元,表格中的一个数据项、一行、一列等。2、根据需要选择是否加密,以及何种加密方式,这个可以是机器的,也可以是人工的,比如根据设定的规则进行机器判断或者用户的人工选择,判定大文件的每一个数据块(段)是否需要进行加密,以及采用什么样的方式进行加密。3、选择已有密钥或者产生密钥,根据选择的方法对各个数据块进行加密,加密可以针对于每一块的值,比如某些文件格式中有分隔符,有长度的记录,如果需要明文形式,可以不进行加密。4、将每一个数据块加密得到的密文,如果需要,进行必要的适应性的编码转换,比如通过一般加密得到的是字节数组,一般情况下需要转换为字符数组再写入文件(解密的时候需要进行相反的转换),并且根据相应的文件格式要求连接为一个密文文件,采用相应的格式保存最后的密文,比如,如果是word文档,针对其文本内容加密,则将加密的密文转换为字符形式的编码连接起来作为文本,放入word文档,然后保存word文档,如果是流式文件,根据流式文件的格式进行存储,加密中如果引起长度的变化,则需要在最终存储的文件中进行修改长度值,对文件结构中的长度信息进行相应的调整。即进行必要的处理让数据符合保存的格式,将这些密文数据保存在密文文件中,并且将数据是否加密,如果加密,则相应的解密所需要的信息和参数都要存储起来,比如数据块的位置信息(比如起始和结束位置或者起始位置和长度)采用什么方式进行加密,加密的密钥(或获得密钥需要的信息)和各种参数,这一块密文乃至于明文的长度存放起来。为了方便,可以将这些信息存放在表中,这些信息包含有能唯一确定这个分段的信息A(比如xml文件中的一个特性,块在一个文件中的起始位置和结束位置,存储器中的位置等),获得对应的块密钥需要的信息,比如密钥K(这个密钥可能是加密的)或者密钥的存放信息B(比如,地址或者是在某个表格中的位置),加密的算法和其他解密所需信息(比如分组长度,初始向量,加密模式等),也可以包括其他需要备注的消息。加密算法也可能是公钥加密算法等,则需要存放相应的公钥信息。解密是一个相反的过程,对于每一块数据,首先判断其是否加密,如果已经加密,则需要解密,获取其密钥等信息。对数据块进行解密。本方案的的有益技术效果有:解决了现有技术不适用于大文件加密的缺陷,避免了完全加密不现实的问题。对于不同的块根据不同的需要采用不同的加密方法。方案2:在前面方案1的基础上,考虑到同态加密一般只对数值有意义,在表中,可能某一列都是需要进行同态加密的数据,很容易进行区分,xml文件中的数据一般也容易区分,但是在文本文件和word中,需要进行同态加密的数值可能夹杂在文本(文字)或者其他的数据中,在前面分段的基础上可以进一步将数值与文本等数据进行分开加密,数值加密的时候在采用同态加密,这样需要将同态加密后的数值进行委托计算的时候可以很容易找到数据,而且大量的数据可以不进行复杂,而且冗余度高的同态加密计算。分段后依然要保证对原来文件格式的适应性,保证解密的可逆性,比如如果对于word文件,分段的时候进一步将这些数值和其他数据进行分块即可,如果是SequenceFile文件,可以采用两种方法:A)类似于上面的,如果一个记录中包含有数值和其他数据,则进一步将每一段数值和其他数据进行分割,成为不同的块进行加密,同时,根据SequenceFile文件的格式,将这些块也设置为对应的一个记录,原来的一个记录被分割为多个记录;B)每一个记录中的每一段数值和其他数据进行分割,成为不同的块进行加密,同时,加密后的密文依然连接起来,成为一个记录,并且依然根据流式文件的格式进行存储,在存储加密信息的时候,为了实现这类需要进行代理计算的数据密文和一般文本的密文的区分,每一个块的位置信息(比如起始位置和长度或起始位置和结束位置)和加密方式被记录下来,便于解密。也可以采用设置起始标记和结束标记的方法来分割这些块,这些起始和结束标记是密文中不会出现的符号,在密文前后增加起始标记和结束标记。方案3:在方案1或者2的基础上,考虑诸如同态加密,包括全同态加密,并不能满足所有云计算背景下的委托计算的需要,有些计算依然不能被全同态加密后处理,所以,它不能解决所有问题,也没有必要花如此大的代价全部采用同态加密。考虑到同态加密有时候既有需要,但是又代价比较高,对于一般的数据如果用代价太大的同态加密就显得大材小用,吃力不讨好,除了全同态加密,比全同态加密代价小的加法同态和乘法同态也有其适用范围,如果能够用加法同态加密的数据采用全同态加密同样显得吃力不讨好。优选地,在加密的时候进行加密方法的选择,根据数据需要进行计算的所有函数来判断涉及到的数据是否需要用到同态加密(只有一个函数需要用到同态加密,而其他函数都不需要同态,也视为需要用到同态加密,即满足所有可能函数的需要,下同),需要采用什么样的同态加密,当其他本文档来自技高网
...

【技术保护点】
一种大文件的加密方法,其特征为采用如下步骤:1)、读取文件,获得内容,根据需要对数据或者内容进行分块;2)、根据需要选择是否加密,以及何种加密方式;3)、选择已有密钥或者产生密钥,根据选择的方法对各个数据块需加密内容进行加密;4)、将每一个数据块加密得到的密文,如果需要,进行必要的适应性的编码转换,并且根据相应的文件格式要求连接为一个密文文件,进行必要的处理让数据符合保存的格式,采用相应的格式保存在最后的密文文件中,并且将数据是否加密,如果加密,则对相应的解密所需要的信息和参数进行存储。

【技术特征摘要】
1.一种大文件的加密方法,其特征为采用如下步骤:1)、读取文件,获得内容,根据需要对数据或者内容进行分块;2)、根据需要选择是否加密,以及何种加密方式;3)、选择已有密钥或者产生密钥,根据选择的方法对各个数据块需加密内容进行加密;4)、将每一个数据块加密得到的密文,如果需要,进行必要的适应性的编码转换,并且根据相应的文件格式要求连接为一个密文文件,进行必要的处理让数据符合保存的格式,采用相应的格式保存在最后的密文文件中,并且将数据是否加密,如果加密,则对相应的解密所需要的信息和参数进行存储。2.如权利要求1所述的大文件的加密方法,其特征为:在前面分段的基础上进一步将需要进行委托计算的数值与非数值的数据进行继续分段,分段后依然要维持相应的格式,数值加密的时候在采用同态加密,其他数据采用非同态加密,并且记录分块的位置信息。3.如权利要求1所述的大文件的加密方法,其特征为:在加密算法的选择上,根据数据需要进行计算的所有函数来判断需要的加密方法,在可以满足所有函数计算需要的前提下优先选用加密算法顺序为:一般加密、半同态加密、全同态加密。4.如权利要求2所述的大文件的加密方法,其特征为:对称密码算法加密的密钥由单向函数生成,单个分段的对称加密密钥由唯一确定这个分段的位置信息A和初始密码K的不可逆函数M(F(K,A))产生,F为一个函数,一些误导功能的加密,有时候还需要两层的加密,需要较长的密钥,该函数产生一个流密码的密钥,通过这个密钥产生密钥流,在密钥流中截取需要的误导加密的各层密钥。5.如权利要求4所述的大文件的加密方法,其特征为:存在多个用户对应多个初始密码Ki,不同...

【专利技术属性】
技术研发人员:王勇付莉刘永宏林震陈冬梅黄雄华唐红武于凤姣杜诚吴思文
申请(专利权)人:桂林电子科技大学
类型:发明
国别省市:广西,45

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

1