CN108667595A - 一种大数据文件的压缩加密方法 - Google Patents

一种大数据文件的压缩加密方法 Download PDF

Info

Publication number
CN108667595A
CN108667595A CN201710189726.8A CN201710189726A CN108667595A CN 108667595 A CN108667595 A CN 108667595A CN 201710189726 A CN201710189726 A CN 201710189726A CN 108667595 A CN108667595 A CN 108667595A
Authority
CN
China
Prior art keywords
key
encryption
encrypted
data
information
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
CN201710189726.8A
Other languages
English (en)
Other versions
CN108667595B (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.)
Jilin Institute of Chemical Technology
Original Assignee
Jilin Institute of Chemical Technology
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 Jilin Institute of Chemical Technology filed Critical Jilin Institute of Chemical Technology
Priority to CN201710189726.8A priority Critical patent/CN108667595B/zh
Publication of CN108667595A publication Critical patent/CN108667595A/zh
Application granted granted Critical
Publication of CN108667595B publication Critical patent/CN108667595B/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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

本发明属于信息安全领域,涉及大数据文件加密的方法。由于大数据文件数据庞大,全部加密计算量太大而不易实现,所以进行选择性加密,为了减少数据的读写,特别是写入,本发明将原明文保存,对加密的部分明文进行覆盖,并且将压缩加密的密文另外存储。由于不同的加密方法有不同的优缺点,全同态加密也不能解决所有的委托计算委托,而且加密的代价大,有些需要采用具有误导功能的加密,有些只需要采用一般对称加密,因此根据需要采用分段选择合适的加密方法,通过规则或者选取,只加密部分数据.同时提出了减少密钥管理且保证安全的优选方案,可以只需要较少的密钥进行文件的加解密。同时加密前引入了压缩,以减少数据存储空间,减少加密的计算量,增强安全性。

Description

一种大数据文件的压缩加密方法
技术领域
本发明属信息安全领域,涉及一种对大数据文件进行选择性压缩和加密的方法。
背景技术
随着信息技术的发展,一些文件越来越大,信息化社会中大数据信息安全问题也是越来越重要,如何保证大型文件信息安全成为热点问题。例如Hadoop平台,具有代表性的Hadoop文件类型SequenceFile(以及与它相似的文件类型)是Hadoop API提供的一种二进制文件,其数据以<key,value>的形式序列化到文件中。利用Hadoop 的标准的Writable 接口为二进制数据文件实现序列化和反序列化。它在大数据环境下的文件格式中有一定代表性,与Hadoop API中的MapFile 是互相兼容的。一些大数据文件是实时储存的,比如语音,文件记录储存后,可能会在后面发现一些数据有保密的需要,需要进行加密,但是对大量的数据进行加密明显又是不现实的。根据云计算和大数据的加密有代理重加密和同态加密,每种加密都有一定局限性及对应的应用场合,比如同态加密效率低,冗余度大,工程应用有较大的局限性,由于计算量巨大,而且诸如同态加密往往会带来数据的扩展,代价大,重代理加密只适合于特定用户之间的密钥转换,现实中没有必要将所有的数据进行上述的加密,同态加密比较适用于需要计算的数据的加密,但是代价比较高。用传统的加密方法加密这些数据也存在计算量大等等问题。所以利用上述加密方法直接加密大规模数据文件并不适合。现实中,时常需要对于某些数据,加密后,密文可以被解密为有意义的错误密文,或者明文的关键内容被替换为其他误导意义的字、词、句子等等,以达到误导的效果,既要避免庞大的工作量,又要保护其中重要的数据,需要采取一定的灵活方法。采用压缩可以减少数据存储空间,减少加密的计算量,同时增强加密的安全性。我们考虑进行选择性的压缩和加密,但是一个大的文件往往只需要进行少量数据的加密,部分没有加密的数据没有必要重新写一次,而且大量数据的重写是有代价的,因此在本发明中考虑进行压缩加密,对被加密的明文覆盖,将密文存储下来,不加密的明文数据原样保存在原始明文中。
发明内容
考虑到减少写入,加密后的文件(或文件集合)包括之前没有加密的明文和被压缩加密后的密文,不加密的明文段(数据块)原样储存,被压缩加密的明文段(数据块)被随机数据覆写,压缩加密的密文段被追加在原文后面或者另外储存在新数据文件集、文件、表等中。其中加入压缩,以减少数据存储空间,减少加密的计算量,增强安全性。
方案1:对文件进行读取,对其数据或者内容进行分段加密,如果无需保密的不加密,如果需要加密的根据其需要采用不同的加密方法,最后保存为密文。加密的总体步骤如下:
1、读取文件,针对文件格式需要,获得相应内容,比如对于文本文件,可以是直接对数据进行加密,对于SequenceFile文件,分别获得<key,value>,根据需要对数据或者内容进行分块(分段),比如分块可以是Hadoop中的SequenceFile等文件(流式文件)中包含的一个文件(有时候称为记录record),或者是xml文件中的一个特性的值,表格中的一个数据项、一行、一列等,TextFile文件格式可以根据分隔符和行结束符分段。
2、根据需要选择是否对数据块进行加密,以及何种加密方式,这个判定可以是机器的,也可以是人工的,比如根据设定的规则进行机器判断或者用户的人工选择,判定大文件的每一个数据块(段)是否需要进行加密,以及采用什么样的方式进行加密。
3、选择已有密钥或者产生密钥,根据选择的方法对各个数据块中需要加密的内容首先压缩,减小文件大小,更保证其安全性,然后进行加密,加密可以针对于每一块的值,比如某些文件格式中有分隔符,有长度的记录,如果需要明文形式,可以不进行加密。
4、将每一个数据块先压缩,再加密后得到的密文,如果需要,进行必要的适应性的编码转换,比如通过一般加密得到的是字节数组,一般情况下需要转换为字符数组而产生实际写入的密文段(解密的时候需要进行相反的转换),并且对原明文段(数据块)进行覆盖。
5、将密文段进行存储,采用两种方式:a)当原文件格式可以追加数据的时候,可以在原文后面根据相应的数据文件格式要求追加密文数据,采用相应的格式保存最后的密文,如果是流式文件,根据流式文件的格式在后面追加数据作为一个记录进行存储,根据格式要求,附加文件结构中的长度信息。b)将所有密文段存放在一个新的文件中或者每个密文段存放在一个文件中。对于以上两种方式为了保证解密,均需要将每个数据块是否加密(如果可以根据确定的规则判定数据块是否加密的,这一信息可以忽略),如果压缩加密,则相应的解密解压缩所需要的信息和参数都要存储起来,比如原始数据块的位置信息(比如起始和结束位置或者起始位置和长度),对应密文块的位置信息,采用什么方式进行加密,加密的密钥(或获得密钥需要的信息)、压缩算法及参数和各种其他参数。为了方便,可以将这些信息存放在表中,这些信息包含有能唯一确定这个分段位置的信息A(比如xml文件中的一个特性,数据块在一个文件中的起始位置和结束位置,存储器中的位置等),获得对应的块密钥需要的信息,比如密钥K(这个密钥可能是加密的)或者密钥的存放信息B(比如,地址或者是在某个表格中的位置),加密的算法和其他解密所需信息(比如分组长度,初始向量,加密模式等),也可以包括其他需要备注的消息。加密算法也可能是公钥加密算法等,则需要存放相应的公钥信息。在判断是对称加密还是非对称加密的时候,以最后的加密算法为准,若原数据采用对称加密,后面又对对称的密钥采用了非对称的加密,则当做非对称的加密不需要进行后续的对称密钥的管理。
解密是一个相反的过程,对于每一块数据,首先判断其是否加密,如果已经加密,则需要解密,再解压缩,获取其密钥等信息。
本方案的的有益技术效果有:减少了对不需要加密文件读写,解决了现有技术不适用于大文件加密的缺陷,避免了完全加密不现实的问题。对于不同的块根据不同的需要采用不同的加密方法。
方案2:在前面方案1的基础上,由于同态加密一般只对数值有意义,在表中,易辨识某一列均需要进行同态加密的数据,xml文件中的数据一般也容易区分,但是在文本文件中,需要进行同态加密的数值可能夹杂在文本(文字)或者其他的数据中,在前面分段的基础上可以进一步将数值与文本等数据进行分开加密,同态加密数值,同态加密后的数值进行委托计算的时候可以很容易找到数据,而其它大量的数据可以不进行复杂且冗余度高的同态加密计算。分段后依然要保证对原来文件格式的适应性,保证解密的可逆性,例如对于SequenceFile文件,可以将每一个记录中的每一段数值和其他数据进行分割,成为不同的块进行压缩加密,同时,压缩加密后的密文依然连接起来,成为一个记录,并且依然根据流式文件的格式进行存储,在存储加密信息的时候,为了实现这类需要进行代理计算的数据密文和一般文本的密文的区分,每一个块的位置信息(比如起始位置和长度或起始位置和结束位置)和加密方式被记录下来,便于解密解压。也可以采用设置起始标记和结束标记的方法来分割这些块,这些起始和结束标记是密文中不会出现的符号,在密文前后增加起始标记和结束标记。
本方案的有益效果是充分利用同态加密对需要加密的数据进行压缩加密,便于后期调用计算,同时也较少同态加密的代价。
方案3:在方案1或者2的基础上,考虑诸如同态加密,包括全同态加密,它不能解决所有问题,并不能满足所有云计算背景下的委托计算需要,有些计算依然不能被全同态加密后处理,所以,也没有必要花如此大的代价全部采用同态加密。考虑到同态加密有时候既有需要,但是又代价比较高,在代价较大时,一般的数据则没必要采用同态加密,除了全同态加密,比全同态加密代价小的加法同态和乘法同态也有其适用范围,在加法和乘法同态加密数据环境中则不必采用全同态加密。优选地,在加密的时候进行加密方法的选择,根据数据需要进行计算的所有函数来判断涉及到的数据是否需要用到同态加密(只有一个函数需要用到同态加密,而其他函数都不需要同态,也视为需要用到同态加密,即满足所有可能函数的需要,下同),需要采用什么样的同态加密,当其他一般的加密和非全同态加密均不可行,必须用同态加密的时候,采用全同态加密,当可选择全同态加密和非全同态加密的时候,首选非全同态(半同态)加密方法,当普通加密可行的时候,优先选择普通的加密方法,即当多种方法都可以达到目的的时候,优先选用次序为,一般加密、半同态加密、全同态加密。本方案的优势是充分发挥加密的最大特点,避免劣势,在保证安全需要的同时也较少代价。
方案4:在前面方案1、2或者3的基础上,优选地,在加密中,非对称的加密,包括同态加密,还有重代理加密总是少数,因为他们的代价比较高,因此采用对称的加密较多,对称加密中,加密大量的数据采用相同加密参数加密是不安全的,所以需要较多的密钥。考虑到大文件的大量数据的对称加密需要用到大量的密钥,大量密钥的管理复杂,为了解决该问题,可采用单向的函数去产生密钥。单向函数可以正向计算,但是反过来求逆则困难。比如哈希函数,我们用大数据文件的数据块的位置信息(可以唯一确定这个分段的信息A),初始密钥或者是口令(统称为密码,初始密码)K产生,现实中,口令便于记忆,则无需保存口令,但是密钥则需要另外加密存储。单个分段的加密密钥由唯一确定这个分段(数据块)的位置信息A和K的不可逆的单向函数m(f(K,A))产生,比如哈希函数,即HASH(f(K,A))值,f为一个函数,简单地可以是将KA两个数据合并,截取加密数据块所采用对称加密算法的密钥长度相应的位数,注意,如果密钥的长度大于哈希函数的输出长度,可以将以上信息分别输入多个函数,HASH(F1(K,A)),HASH(F2(K,A)),也可以是多个不同单向函数(如hash函数)的值,作为所定位的数据块的加密密钥。采用单向性的函数就可以避免通过块的密钥去逆向推导初始密码,便捷安全的保护其他块密钥。当数据块可采用公钥加密方法,则不需要用到上述产生的密钥,只需要利用公钥和私钥加密解密即可;如果是对称加密,则需要用到上面产生的块加密密钥。在有些加密中,比如一些误导功能的加密,有时候还需要双重加密和较长的密钥,可以用产生的数据去产生一个伪随机序列,比如可以采用单向函数产生(可能需要截取)一个流密码的密钥,通过这个密钥以流密码算法产生密钥流,在密钥流中截取需要的误导加密的各层密钥。产生密钥后,根据方案1,2,3的方法进行加密。
理论上说,我们只需要存储好初始密码,并且记录每一块对应的初始密码就行了,但为了方便可选地也可以加密各个分段的加密密钥。可以采用多重加密,优选地可以用公钥加密分段加密密钥,并且将公钥加密后的分段加密密钥、分段信息、分段是否加密、分段的加密密钥对应的数据块的信息、解密分段所需的信息、明文数据的编码类型等等共同存放入加密信息表。本方案的优势效果是保证安全性前提下简化密钥的管理。
方案5:在前面方案4的基础上,可以让各个用户具有自己的初始密钥或者口令,即统一称为密码Ki,用户可以加密和解密自己负责的数据块,加密信息也存放在加密信息表中,如果采用多个初始密码,加密信息表中应该包含初始的密码Ki(可能是加密的Ki)或者Ki的信息(比如编号,存放位置等)。如果丢失单个块密钥,采用新的初始密码产生密钥去加密丢失密钥的块,并且更新加密信息表。本方案的有益效果是针对多用户和密钥丢失问题,采用多个密码优化了密钥的更新代价。
方案6:基于方案4或者5添加更新密钥功能,有时候密码可能存在泄漏,被盗的情形,如果是Ki丢失,需要更换所有的由它产生的数据块的块密钥,重新解密,再用新的密钥加密,如果是单个块密钥泄漏,一般情况下,根据密钥的产生规则也需要更换那个初始的密码Ki,由于采用多个初始密码,加密信息表中应该包含初始密码(可能是加密的)或者初始密码的信息。因此,我们提出两种方案:A)采用新的密码产生密钥去加密被盗密钥的块,并且更新加密信息表;B)计算块密钥的时候,增加一个信息更改密钥次数的信息,简单地可以是g(0),g(1),g(2),可唯一确定修改次数的信息即可,用单向的函数m(f(K,A,f(N)))产生块密钥,在密钥信息表中也必须同样对应更改密钥次数的信息,或者由于更改密钥的数据块总是少数,可以对有更改密钥的数据块的更改次数和对应的数据块信息在其他地方存储起来。
数据解密时候先判定数据是否加密,根据加密信息表的信息解密。也可以根据密码生成分段的块加密密钥用于解密。本方案的有益效果是在密钥泄漏的情况下可以进行自动的同步更新,而且安全性可以保障。
方案7:在前面方案4或者5的基础上,有时大数据流式文件中包含多个记录,相当于一个独立文件,这里还是称为数据块。在许多时候,不同的用户对大数据文件中的某一部分包含的数据块(比如记录)有不同的加密解密权限,高级别用户可以解密所有的加密数据块,而低一级的用户则只能解密一部分数据块,低级用户只可对具有的部分数据文件解密。例如实例,一个部门每个管理员都管理自己的文件,而馆长可以查阅该部门所有人的文件,处长可以查阅所有管辖部门的文件,以此类推。
目前大数据越来越大,而许多大数据是存放在一个大的流式文件中。这种大文件的记录可能属于不同权限的用户,需要用不同的密钥加密。在数据量大的时候,密钥量是比较大的,而且管理起来非常复杂。目前有许多密钥管理方案,如果只是对密钥进行加密存储,则密钥量比较大,管理起来复杂,而且对于这类提到的如同一棵树一样的加密密钥的管理权限不能很好控制。为了能够存储较少的密钥,而且对不同级别的用户赋予不同的权限,我们依然可以利用单向函数来产生密钥。
不同的用户管理大数据中的不同记录,加密的密钥也是不同的,安全级别不同,访问控制权限不同。本发明为加密保护大数据文件,设计一种利用单向函数的单向性质满足所需密钥生成的管理方法。
当有多级用户的时候,由最高级用户的初始密码Kr结合次级用户的某一唯一信息Bi(可以是公开的,也可以是只有最高级用户知道的,比如用户名称、姓名、代号、编号等,但是这个信息应该是唯一,不重名的)产生次级用户的初始密码,计算方法为m(f(Kr,Bi)),m()为单向函数,截取合适长度的数据作为次级用户的初始的密码;然后由次级用户初始的密码以相同的方式产生下一级用户的初始的密码,产生密码的单向函数为m(f(Kr,B),B为下一级用户的编号,Kr为上一级用户的初始密码;以此类推,直到产生最低级用户的初始的密码,最后由最低级用户的初始的密码产生数据块的加密密钥。
因此在大数据文件中,数据块(比如记录)的权限也往往复杂,可能是属于上面提到的多级用户的金字塔形的权限,则可以采用如下的加密方法:
1、基于以上说明,确定各级用户的权限,首先最高级用户产生一个初始密码K1,下一级用户的初始密码Kr+1产生单向的函数为m(f(Kr,B),B为用户的编号,依次类推逐级地产生多级用户的初始密码。
2、根据需要对选择性加密的大数据文件进行分块(分段),以Hadoop中的SequenceFile等大文件的一个记录。
3、根据设定的规则或者用户的选择,判定数据块(段)是否需要进行压缩加密,以及采用什么样的方式进行加密。如果数据块需要采用公钥加密方法,则不需要用到产生的密钥,只需要利用公钥和私钥加密解密即可,如果是对称加密,则需要在下一步产生块加密密钥。
4、根据数据块的位置信息(唯一确定这个分段的信息A)和最低级用户的初始密码Kl产生该用户管辖的数据块的加密密钥,利用初始密码产生。单个分段(块)的加密密钥由唯一确定这个分段(数据块)的信息A和对于这个分段有加解密权限的最低级用户的初始密码Kl的不可逆函数m(f(Kl,A))产生,比如哈希函数,即HASH(f(Kl,A))值,f为一个函数(简单地可以是将K、A两个数据合并),截取加密数据块所采用对称加密算法的密钥长度相应的位数。采用单向性的函数就可解决通过块的密钥去逆向推导初始密码,其他块的密钥的问题,操作有效且安全性好。
5、对需要加密的块,先压缩,再根据选择的方法对数据块进行加密,得到的数据,加密可以只针对于每一块的值,比如某些文件格式中有分隔符,有长度的记录,可以不进行加密,加密后长度有变化则做相应的修改。并且将数据是否加密,如果加密,则相应的解密所需要的信息和参数都要存储起来,比如采用什么方式进行加密,对应的密钥信息(可以获得密钥的信息,比如确定这个块属于某个最低级的用户,根据块密钥的产生规则就获得块密钥,另外也可以是块密钥的存放位置(比如,地址或者是在某个表格中的位置),或者加密的块密钥等等),压缩算法及相关参数和各种其他参数。为了方便,本例可以将这些信息存放在表中,这些信息包含有唯一确定这个分段的信息A----数据块的起始位置和结束位置,可以恢复块密钥的信息-加密的块密钥,加密的算法和其他信息(分组长度,初始向量,加密模式,填充模式等)。
6、利用密文文件存储连接在一起的每一个数据块加密的密文,其文件采用相应的格式保存,比如,如果是流式文件,根据流式文件的格式进行存储,对文件结构中的长度信息进行相应的调整。
本方案的优势在于减少需要存储的密码或密钥,而且可以控制多级的权限。
方案8:在前面方案7基础上增加密钥(密码)更新功能,有时候密钥(密码)可能存在被盗,丢失的情形,如果是各级的初始的密码丢失,由于密钥(密码)的产生规则,需要更换所有的初始的密码和由它们产生的块密钥,重新解密,再根据规则重新产生密钥(用户密码)用新的块密钥加密,如果是单个块密钥泄漏,一般情况下,也需要更换初始的密码,由于采用多个初始密码,加密信息表中应该包含初始密码(可能是加密的)或者初始密码的信息。这会带来较大的代价,因此,优选地,我们提出在加密信息中,增加一个信息更改密钥次数的信息,简单地可以是Null(空),1,2这样的形式,或者g(0),g(1),g(2),只有能够唯一确定修改次数的信息就行,下一级用户的初始密码Kr+1产生单向的函数为m(f(Kr,B,g(N))),B为下一级用户的编号,数据块的对称加密密钥采用m(f(Ks,A,g(N)))产生,A为文件的确定信息,比如位置信息,在密钥信息表中也必须同样对应更改密钥次数的信息,或者由于更改密钥的数据块总是少数,将N和对应的数据块信息在其他地方存储起来,g(N)初值为空,当初值为空的时候函数简化为m(f(Kr,B)),。表面上看,函数形式和前面的不一样,增加了N相关的内容,当我们限定g(N)初值为空,当初值为空的时候函数简化为m(f(Kr,B)),可以当做是原单向函数的进一步限定。
如果某一级用户A的初始密码泄漏,从用户A的上一级用户的初始密码产生用户A的新密码(密钥),即m(f(Kr,B,g(N+1))),其中N转换为N+1,这样可以保证密钥是新的,而且由于单向性,互相之间不能相互推导,不会泄密。
本方案的有益效果是在密钥丢失的时候可以直接更换新的密钥,重新加密数据块。一旦泄密,无需大面积更换密钥(密码)。注意由于现有的一些系统并没有提供关于流式文件的修改,所以需要开发相关支持软件。
具体实施方式
下面给出本发明的部分实施例,所举实例只用于解释本发明,并非用于限定本发明的范围。
实施例1为本加密方法的实施例,我们选取SequenceFile文件为例,加密步骤如下:
1、读取文件,即可分析每一个记录及其长度,以它的一个记录为数据块。以记录的起始位置和结束位置作为数据块的定位信息。
2、根据设定的关键词计算规则得出记录的敏感程度,达到一定阈值的记录判定需要加密,同时可以根据规则确定到底是对称加密,还是公钥加密(包括一些同态加密和代理重加密),如果是用户根据需要对不达阈值的记录要选择加密,则也加密该块。如果文件不属于以上两种情形,不加密。
3、对于需要加密的数据先进行压缩,然后分类进行加密:对于需要进行公钥加密的压缩数据,选择已有密钥,根据选择的压缩加密方法对各个数据块中需要加密的压缩内容进行加密,加密可以针对于每一块的值;对于需要对称加密的,先压缩,产生密钥,进行对称加密。
4、将每一个数据块加密得到的密文,进行必要的适应性的编码转换,产生将写入密文段,并且对原明文段进行覆盖。
5、将密文段进行存储,流式文件可追加记录,根据流式文件的格式,存储后面追加数据的记录,根据格式要求,附加文件结构中的长度信息。为了保证解密,判别每个数据块是否压缩加密(如果可以根据确定的规则判定数据块是否压缩加密,该信息可以忽略,解密的时候根据相同规则判定是否加解密解压),如果加密,则相应的解密所需要的信息和参数都要存储起来,比如原始数据块的位置信息,对应密文块的记录位置信息,采用的压缩算法及压缩参数,以什么方式进行加密,加密的密钥(或获得密钥需要的信息)和各种压缩等参数。将这些信息存放在表中。
本方案也可以改为将被加密的密文存放在一个新的文件中。这个文件可以是一个表,包含了对应的明文的位置信息和密文段。
解密是一个相反的过程,对于每一块数据,首先判断其是否加密,如果已经加密,则需要解密解压,获取其密钥等信息。对数据块进行解密,再解压缩。
实施例2为本加密方法的实施例1的进一步改进,在实施例1的基础上,考虑文件文本和数值往往混合在一起的情况,当数值和文本混合在一起的时候,分离文本和数值,对其分别采用对应的加密方法,比如对于最初的分段,根据需要进一步分段,对数值进行同态加密,其他数据采用一般的对称加密,所以对它们也分段以隔离。对于流式文件,可以不用增加记录数,某个记录中包含有需要进行同态加密的数据的时候,在这些数据的前后进行分段,数值采用同态加密,其他采用一般的加密,将一个记录中的多个分段的密文放在一起,但是记录最开始一段的起始位置和每一段的长度,将这些密文放在一起,按照流式文件的格式存储起来,另外在加密信息表中记录同态加密后数值对应的指标,符号、代号或者参数。这样便于委托计算的时候调取。
实施例3为本加密方法的实施例1的进一步改进,在实施例1的基础上,将需要同态加密的数值可能涉及到的计算函数进行分析,来判断涉及到的数据是否需要用到同态加密,需要采用什么样的同态加密,当进行某些委托计算时候,其他一般的加密和非全同态加密都不可直接计算,需要用到全同态加密的时候,采用全同态加密,当全同态加密和非全同态都可行加密的时候,采用非全同态(半同态)加密方法,当普通加密可行的时候,优先选择普通的加密方法,即当多种方法都可以达到目的的时候,优先选用次序为,一般加密、半同态加密、全同态加密。
实施例4:实施例4为本加密方法的实施例1的进一步改进,在实施例1的基础上,用大文件的数据块的起始和结束位置信息和密码K的单向函数产生块密钥。单个分段的加密密钥由唯一确定这个分段(数据块)的位置信息A和K的哈希函数HASH(K‖A)产生。加密算法中还包含一种具有误导功能的加密,它采用一个内层加密和外层加密,需要较长密钥,我们用hash产生的值,作为流密码的密钥,产生一个密钥流,截取最前面128bit作为外层加密的密钥,后面的部分依次截取8bit作为内层加密的每一个关键词的加密用密钥。产生密钥后,根据可以根据实施例1,2,3的方法进行加密。为了方便加密各个分段的加密密钥。用公钥加密分段加密密钥,并且将公钥加密后的分段加密密钥、分段信息、分段是否加密、分段的加密密钥对应的数据块的信息、解密分段所需的信息、明文数据的编码类型等等,存放在一起,比如用表格存储起来。
实施例5:在实施例4的基础上,大文件的不同的块属于不同的用户,各个用户有自己密码Ki,这样他可以加密和解密自己负责的数据块,加密信息也存放在加密信息表中,如果采用多个初始密码,加密信息表中除了包含实施例4中的信息,还应该包含初始的加密的Ki
实施例6:在实施例4、5的基础上,计算块密钥的时候,增加一个信息更改密钥次数的信息,第一次、遗失密钥后第二次、再次遗失密钥后第三次的时候,分别添加一个g(N)分别是Null(空),1,2这样的信息,用单向的函数HASH(K‖A‖g(N))产生块密钥,最初产生块密钥为HASH(K‖A),第一次更新密钥为HASH(K‖A‖1),以此类推,在密钥信息表中前面的基础上,也添加对应更改密钥次数的信息。
实施例7:在实施例5的基础上,考虑大数据中的不同记录往往属于不同的用户,需要用不同的密钥加密,有不同的安全级别,有不同的访问控制权限。
当有前面提到的树型的多级用户的权限时候,由最高级用户的初始密码Kr结合次高级用户的某一唯一编号Bi产生次高级用户的初始密码,计算方法为HASH(Kr‖Bi)),截取合适长度的数据作为次高级用户的初始的密码;进一步由次高级用户初始的密码以相同的方式产生再低一级用户的初始的密码;直到产生最低级用户的初始的密码,然后由最低级用户的初始的密码产生数据块的加密密钥。完整步骤如下:
1、基于上述方法,确定各级用户的权限,首先最高级用户产生一个初始密码K1,然后根据利用方法hash函数SHA512(K1‖B),‖表示简单的合并连接,逐级地产生多级用户的初始密码。如果数据块是对称加密,用最低级用户的初始密码去产生其权限内的数据块的块加密密钥,产生块加密密钥的方式和实施例5相同。
实施例8:在前面实施例7基础上增加密钥(密码)更新功能,为更改密钥次数,计算时增加一个信息,如次级用户密钥为HASH(Kl‖A‖g(N)),g(N)第一次产生密钥为Null(空),后面分别为1,2,下一级用户的初始密码Kr+1产生单向的函数为HASH(Kr‖B‖g(N)),B为用户的编号,数据块的对称加密密钥采用HASH(Ks‖A‖g(N))产生,A为文件的位置信息,同步更改密钥信息表中对应密钥次数的信息。
如果某一级用户A的初始密码丢失,从用户A的上一级用户的初始密码产生用户A的新密钥,第一次更新的密码为HASH(Kr‖B‖1),N转换为N+1,以此类推。
篇幅所限,不能一一举例,实施例也相对简化,以上实施例的限定条件和一些方法可以交叉组合,以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种大数据文件的压缩加密方法,其特征为采用如下步骤:
1)、读取文件,获得内容,对整个文件头文件和尾文件及数据内容进行分块;
2)、针对内容进行选择性加密,并选择加密方式;
3)、选择已有密钥或者产生密钥,根据选择的方法对各个数据块需加密内容进行加密;
4)、首先将每一个数据块压缩,再加密得到压缩密文,在必要情况下进行适应性编码转换操作,生成实际输入的密文段,并且对原明文段用随机数进行覆盖;
5)、将得到的压缩密文段进行存储,采用两种方式之一:a)当原文件格式可以追加数据的时候,在原文后面根据相应的文件格式要求追加密文数据,采用相应的格式保存最后的密文;b)将密文存放在一个新的文件中;以上两种加密方式均需将加密的数据块对应的明文段的位置信息,相应的解压缩,解密所需要的信息和参数记录存储。
2.如权利要求1所述的大数据文件压缩加密方法,其特征为:在前面分段的基础上进一步将需要进行委托计算的数值与不需要进行委托计算的非数值数据进行继续分段,并进行压缩,分段后文件依然要维持相应的格式,需要进行委托计算的数值压缩后加密的时候采用同态加密,其他数据压缩后采用非同态加密,并且记录分块的位置信息。
3.如权利要求1所述的大数据文件压缩加密方法,其特征为:在加密算法的选择上,根据数据需要进行计算的所有函数来判断需要的加密方法,在可以满足所有函数计算需要的前提下优先选用加密算法顺序为:一般加密、半同态加密、全同态加密。
4.如权利要求2所述的大数据文件压缩加密方法,其特征为:对称密码算法加密的密钥由单向函数生成,单个分段的对称加密密钥由唯一确定这个分段的位置信息A和初始密码K的单向函数m(f(K,A))产生,f为一个函数,m为单向函数,一些误导功能的加密,有时候还需要两层的加密,需要较长的密钥,则利用该函数m产生一个流密码的密钥,通过这个密钥产生密钥流,在密钥流中截取需要的误导加密的各层密钥。
5.如权利要求4所述的大数据文件压缩加密方法,其特征为:存在多个用户对应多个初始密码Ki,不同用户加密和解密自己负责的数据块,加密信息压缩后存放在加密信息表中,加密信息表中应该包含初始的密码Ki或者Ki的信息;若单个块密钥被窃取,采用新的初始密码产生密钥去加密被窃取密钥块,同时更新加密信息表中的密码信息。
6.如权利要求4所述的大数据文件压缩加密方法,其特征为:计算块密钥的时候,增加一个更改密钥次数的信息g(N),N为更改次数,通过单向的函数m(f(K,A,g(N)))产生块密钥,g(N)初值为空,m(f(K,A,g(N)))在初值为空的情况下,函数形式简化为m(f(K,A)),同步更改密钥信息表中的密钥次数信息。
7.如权利要求4所述的大数据文件压缩加密方法,其特征为:当有多级用户的时候,需确定各级用户的权限,由最高级用户产生一个初始密码K1,同时产生下一级用户的密码,下一级用户初始密码Kr+1的单向函数为m(f(Kr,B),B为下一级用户的编号,Kr为上一级用户的初始密码,依次类推逐级产生多级用户的初始密码,直至产生最低级用户密码,再利用最低级用户的密码产生该用户具有加解密权限的数据块的对称加密块加密密钥。
8.如权利要求7所述的大数据文件压缩加密方法,其特征为:计算用户密码和块密钥的时候,增加一个更改密钥次数的信息g(N),用单向的函数m(f(K,A,f(N)))产生块密钥,用单向的函数m(f(K,B,f(N)))产生下级用户密码,g(N)初值为空,m(f(K,A,g(N)))在初值为空的情况下,函数形式简化为m(f(K,A)),在密钥信息表中也必须同样对应更改密钥次数的信息,A为文件的确定信息,若某一级用户的初始密码被盗,新密码由此用户的上一级用户初始密码产生。
CN201710189726.8A 2017-03-28 2017-03-28 一种大数据文件的压缩加密方法 Expired - Fee Related CN108667595B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710189726.8A CN108667595B (zh) 2017-03-28 2017-03-28 一种大数据文件的压缩加密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710189726.8A CN108667595B (zh) 2017-03-28 2017-03-28 一种大数据文件的压缩加密方法

Publications (2)

Publication Number Publication Date
CN108667595A true CN108667595A (zh) 2018-10-16
CN108667595B CN108667595B (zh) 2021-05-14

Family

ID=63786341

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710189726.8A Expired - Fee Related CN108667595B (zh) 2017-03-28 2017-03-28 一种大数据文件的压缩加密方法

Country Status (1)

Country Link
CN (1) CN108667595B (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107154846A (zh) * 2017-05-07 2017-09-12 桂林电子科技大学 一种大数据的改进加密方法
CN109840425A (zh) * 2019-01-22 2019-06-04 北京数科网维技术有限责任公司 一种文件加密的方法和装置
CN110289945A (zh) * 2019-06-28 2019-09-27 深圳前海微众银行股份有限公司 一种数据加密方法、装置、设备及介质
CN110430060A (zh) * 2019-07-12 2019-11-08 东南大学 一种基于puf密钥的专用压缩系统
CN110851408A (zh) * 2019-10-31 2020-02-28 维沃移动通信有限公司 一种文件压缩方法、文件解压方法和电子设备
CN111835509A (zh) * 2020-05-20 2020-10-27 成都盛拓源科技有限公司 一种基于哈希函数和口令的抗丢失单向加密方法及装置
CN112506879A (zh) * 2020-12-18 2021-03-16 深圳智慧林网络科技有限公司 数据处理方法及相关设备
US10963429B2 (en) 2017-10-11 2021-03-30 Lognovations Holdings, Llc Method and system for content agnostic file indexing
CN112860646A (zh) * 2021-02-24 2021-05-28 上海泰宇信息技术股份有限公司 一种海量文件档案分布式聚合压缩与单一式抽取的策略
US11138152B2 (en) 2017-10-11 2021-10-05 Lognovations Holdings, Llc Method and system for content agnostic file indexing
CN113761543A (zh) * 2020-06-01 2021-12-07 菜鸟智能物流控股有限公司 基于联盟链的数据处理方法、装置、设备和机器可读介质
CN114065240A (zh) * 2021-11-10 2022-02-18 南京信易达计算技术有限公司 一种基于国产ai芯片架构的存储加密系统及控制方法
CN114329104A (zh) * 2021-12-23 2022-04-12 珠海市鸿瑞信息技术股份有限公司 一种基于电力配电的报文加密传输系统及方法
CN116414439A (zh) * 2023-01-05 2023-07-11 上海弘积信息科技有限公司 一种负载均衡设备中配置文件管理方法及系统
CN118075037A (zh) * 2024-04-25 2024-05-24 安徽华云安科技有限公司 数据加密方法、装置、设备以及存储介质
WO2024139926A1 (zh) * 2022-12-26 2024-07-04 卡斯柯信号有限公司 一种轨道交通数据的分级处理、加密和校验方法及系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101504668A (zh) * 2009-03-24 2009-08-12 北京理工大学 一种支持密文索引的数据库透明加密方法
CN102148833A (zh) * 2011-04-18 2011-08-10 中国工商银行股份有限公司 数据报表的传输方法、服务器、客户端以及系统
CN102402664A (zh) * 2011-12-28 2012-04-04 用友软件股份有限公司 数据访问控制装置和数据访问控制方法
US20140270159A1 (en) * 2013-03-18 2014-09-18 Electronics And Telecommunications Research Institute System and method for providing compressed encryption and decryption in homomorphic encryption based on integers
CN104063334A (zh) * 2014-07-11 2014-09-24 中国人民公安大学 一种基于数据属性的加密方法和系统
CN104660615A (zh) * 2015-03-17 2015-05-27 东南大学 一种高效数据压缩加密系统
CN105162583A (zh) * 2015-07-15 2015-12-16 北京江南天安科技有限公司 一种单个、单级和多级密钥对分散方法及其系统
CN105763333A (zh) * 2016-01-28 2016-07-13 北京江南天安科技有限公司 一种非对称密钥的协商方法及系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101504668A (zh) * 2009-03-24 2009-08-12 北京理工大学 一种支持密文索引的数据库透明加密方法
CN102148833A (zh) * 2011-04-18 2011-08-10 中国工商银行股份有限公司 数据报表的传输方法、服务器、客户端以及系统
CN102402664A (zh) * 2011-12-28 2012-04-04 用友软件股份有限公司 数据访问控制装置和数据访问控制方法
US20140270159A1 (en) * 2013-03-18 2014-09-18 Electronics And Telecommunications Research Institute System and method for providing compressed encryption and decryption in homomorphic encryption based on integers
CN104063334A (zh) * 2014-07-11 2014-09-24 中国人民公安大学 一种基于数据属性的加密方法和系统
CN104660615A (zh) * 2015-03-17 2015-05-27 东南大学 一种高效数据压缩加密系统
CN105162583A (zh) * 2015-07-15 2015-12-16 北京江南天安科技有限公司 一种单个、单级和多级密钥对分散方法及其系统
CN105763333A (zh) * 2016-01-28 2016-07-13 北京江南天安科技有限公司 一种非对称密钥的协商方法及系统

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
刘明坤: "基于密态数据库操作的秘密同态算法研究", 《中国优秀博硕士学位论文全文数据库(硕士) 信息科技辑》 *
卿昱主编: "《云计算安全技术》", 31 December 2016, 《国防工业出版社》 *
徐良: "基于同态加密和模糊查询的密文数据库研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
朱继峰: "支持密文索引的数据库透明加密方法", 《技术探讨》 *
杨慧慧: "嵌入式数据库安全和可靠性的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
杨昱昺: "一种通用数据库数据加密方案", 《计算机安全》 *

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107154846A (zh) * 2017-05-07 2017-09-12 桂林电子科技大学 一种大数据的改进加密方法
US10963429B2 (en) 2017-10-11 2021-03-30 Lognovations Holdings, Llc Method and system for content agnostic file indexing
US11138152B2 (en) 2017-10-11 2021-10-05 Lognovations Holdings, Llc Method and system for content agnostic file indexing
CN109840425A (zh) * 2019-01-22 2019-06-04 北京数科网维技术有限责任公司 一种文件加密的方法和装置
CN109840425B (zh) * 2019-01-22 2020-07-31 北京数科网维技术有限责任公司 一种文件加密的方法和装置
CN110289945A (zh) * 2019-06-28 2019-09-27 深圳前海微众银行股份有限公司 一种数据加密方法、装置、设备及介质
CN110289945B (zh) * 2019-06-28 2023-02-07 深圳前海微众银行股份有限公司 一种数据加密方法、装置、设备及介质
CN110430060A (zh) * 2019-07-12 2019-11-08 东南大学 一种基于puf密钥的专用压缩系统
WO2021083108A1 (zh) * 2019-10-31 2021-05-06 维沃移动通信有限公司 文件压缩方法、文件解压方法和电子设备
CN110851408A (zh) * 2019-10-31 2020-02-28 维沃移动通信有限公司 一种文件压缩方法、文件解压方法和电子设备
CN111835509A (zh) * 2020-05-20 2020-10-27 成都盛拓源科技有限公司 一种基于哈希函数和口令的抗丢失单向加密方法及装置
CN111835509B (zh) * 2020-05-20 2023-04-07 成都盛拓源科技有限公司 一种基于哈希函数和口令的抗丢失单向加密方法及装置
CN113761543A (zh) * 2020-06-01 2021-12-07 菜鸟智能物流控股有限公司 基于联盟链的数据处理方法、装置、设备和机器可读介质
CN113761543B (zh) * 2020-06-01 2024-04-02 菜鸟智能物流控股有限公司 基于联盟链的数据处理方法、装置、设备和机器可读介质
CN112506879A (zh) * 2020-12-18 2021-03-16 深圳智慧林网络科技有限公司 数据处理方法及相关设备
CN112860646A (zh) * 2021-02-24 2021-05-28 上海泰宇信息技术股份有限公司 一种海量文件档案分布式聚合压缩与单一式抽取的策略
CN112860646B (zh) * 2021-02-24 2022-12-02 上海泰宇信息技术股份有限公司 一种海量文件档案分布式聚合压缩与单一式抽取的方法
CN114065240A (zh) * 2021-11-10 2022-02-18 南京信易达计算技术有限公司 一种基于国产ai芯片架构的存储加密系统及控制方法
CN114329104A (zh) * 2021-12-23 2022-04-12 珠海市鸿瑞信息技术股份有限公司 一种基于电力配电的报文加密传输系统及方法
WO2024139926A1 (zh) * 2022-12-26 2024-07-04 卡斯柯信号有限公司 一种轨道交通数据的分级处理、加密和校验方法及系统
CN116414439A (zh) * 2023-01-05 2023-07-11 上海弘积信息科技有限公司 一种负载均衡设备中配置文件管理方法及系统
CN116414439B (zh) * 2023-01-05 2023-11-21 上海弘积信息科技有限公司 一种负载均衡设备中配置文件管理方法及系统
CN118075037A (zh) * 2024-04-25 2024-05-24 安徽华云安科技有限公司 数据加密方法、装置、设备以及存储介质

Also Published As

Publication number Publication date
CN108667595B (zh) 2021-05-14

Similar Documents

Publication Publication Date Title
CN108667595A (zh) 一种大数据文件的压缩加密方法
CN107135062A (zh) 一种改进的大文件的加密方法
US10447476B2 (en) Multi-key graphic cryptography for encrypting file system acceleration
Marwaha et al. Visual cryptographic steganography in images
CN104486315B (zh) 一种基于内容属性的可撤销密钥外包解密方法
CN109379182B (zh) 支持数据去重的高效数据重加密方法及系统、云存储系统
CN104363215B (zh) 一种基于属性的加密方法和系统
CN106685980A (zh) 一种大文件的加密方法
CN107070649A (zh) 一种减少写入的大文件选择性加密方法
CN102567688B (zh) 一种安卓操作系统上的文件保密系统及其保密方法
CN105933345B (zh) 一种基于线性秘密共享的可验证外包属性基加密方法
US20100054477A1 (en) Accelerated cryptography with an encryption attribute
CN103414682A (zh) 一种数据的云端存储方法及系统
CN106936820A (zh) 数据变长修改方法及其在大数据加密中的应用
CN104967693A (zh) 面向云存储的基于全同态密码技术的文档相似度计算方法
CN109614792A (zh) 一种分级文件密钥管理方法
CN103731423A (zh) 一种安全的重复数据删除方法
US20080098217A1 (en) Method for efficient and secure data migration between data processing systems
CN107181584A (zh) 非对称完全同态加密及其密钥置换和密文交割方法
Ahmad et al. Distributed text-to-image encryption algorithm
CN104794243B (zh) 基于文件名的第三方密文检索方法
CN116707804B (zh) 增强ff1格式保留加密安全性的方法及设备
CN111541652B (zh) 一种用于提高秘密信息保管及传递安全性的系统
KR20170103321A (ko) 보안성이 강화된 순서보존 암호화 방법 및 장치
Govinda et al. A generic image cryptography based on Rubik's cube

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for 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: 20210514

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