CN107070649B - 一种减少写入的大文件选择性加密方法 - Google Patents

一种减少写入的大文件选择性加密方法 Download PDF

Info

Publication number
CN107070649B
CN107070649B CN201710121369.1A CN201710121369A CN107070649B CN 107070649 B CN107070649 B CN 107070649B CN 201710121369 A CN201710121369 A CN 201710121369A CN 107070649 B CN107070649 B CN 107070649B
Authority
CN
China
Prior art keywords
encryption
key
data
initial
encrypted
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.)
Active
Application number
CN201710121369.1A
Other languages
English (en)
Other versions
CN107070649A (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.)
Nanjing Zhitong Supply Chain Management Co ltd
Original Assignee
Guilin University of Electronic 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 Guilin University of Electronic Technology filed Critical Guilin University of Electronic Technology
Priority to CN201710121369.1A priority Critical patent/CN107070649B/zh
Publication of CN107070649A publication Critical patent/CN107070649A/zh
Application granted granted Critical
Publication of CN107070649B publication Critical patent/CN107070649B/zh
Active 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
    • H04L63/0464Network 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 using hop-by-hop encryption, i.e. wherein an intermediate entity decrypts the information and re-encrypts it before forwarding it
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/116Details of conversion of file system types or formats
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • 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/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • 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)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)

Abstract

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

Description

一种减少写入的大文件选择性加密方法
技术领域
本发明属信息安全领域,涉及一种对大文件进行选择性加密的方法。
背景技术
随着信息技术的发展,一些文件也越来越大。目前非常热门的大数据(big data,mega data)的一些文件也非常大,以Hadoop为例,Hadoop中的文件格式有多种,比较有代表性的是SequenceFile(以及与它相似的文件类型):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的基础上,优选地,在加密中,非对称的加密,包括同态加密,还有重代理加密总是少数,因为他们的代价比较高,因此更多会采用对称的加密,对称加密中采用相同的加密参数去加密大量的数据是不安全的,所以需要较多的密钥。考虑到大文件的大量数据的对称加密需要用到大量的密钥,大量密钥的管理复杂,为了避免这些缺陷,这里采用单向的函数去产生密钥。单向函数可以正向计算,但是反过来求逆则困难。比如hash函数就是这样的函数,我们用大文件的数据块的位置信息(可以唯一确定这个分段的信息A),初始密钥或者是口令(统称为密码,初始密码)K产生,现实中,人们往往很容易记住口令,这样无需保存口令,但是密钥则需要另外加密存储。单个分段的加密密钥由唯一确定这个分段(数据块)的位置信息A和K的不可逆的单向函数M(F(K,A))产生,比如哈希函数,即HASH(F(K,A))值,F为一个函数,简单地可以是将KA两个数据合并,截取加密数据块所采用对称加密算法的密钥长度相应的位数,注意,如果密钥的长度大于hash函数的输出长度,可以将以上信息分别输入多个函数,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)计算块密钥的时候,增加一个信息更改密钥次数的信息,简单地可以是Null(空),1,2这样的形式,或者f(0),f(1),f(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这样的形式,或者f(0),f(1),f(2),只有能够唯一确定修改次数的信息就行,下一级用户的初始密码Kr+1产生单向的函数为M(F(Kr,B,f(N))),B为下一级用户的编号,数据块的对称加密密钥采用M(F(Ks,A,f(N)))产生,A为文件的确定信息,比如位置信息,在密钥信息表中也必须同样对应更改密钥次数的信息,或者由于更改密钥的数据块总是少数,将N和对应的数据块信息在其他地方存储起来,f(N)初值为空,当初值为空的时候函数简化为M(F(Kr,B)),。表面上看,函数形式和前面的不一样,增加了N相关的内容,当我们限定f(N)初值为空,当初值为空的时候函数简化为M(F(Kr,B)),可以当做是原单向函数的进一步限定。
如果某一级用户A的初始密码泄漏,从用户A的上一级用户的初始密码产生用户A的新密码(密钥),注意其中N在原来的基础上加1,即M(F(Kr,B,f(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的基础上,计算块密钥的时候,增加一个信息更改密钥次数的信息,第一次、遗失密钥后第二次、再次遗失密钥后第三次的时候,分别添加一个f(N)分别是Null(空),1,2这样的信息,用单向的函数HASH(K||A||f(N))产生块密钥,最初产生块密钥为HASH(K||A),第一次更新密钥为HASH(K||A||1),以此类推,在密钥信息表中前面的基础上,也添加对应更改密钥次数的信息。
实施例7:在实施例5的基础上,考虑大数据中的不同记录往往属于不同的用户,需要用不同的密钥加密,有不同的安全级别,有不同的访问控制权限。
当有前面提到的树型的多级用户的权限时候,由最高级用户的初始密码Kr结合次高级用户的某一唯一编号Bi产生次高级用户的初始密码,计算方法为HASH(Kr||Bi)),截取合适长度的数据作为次高级用户的初始的密码;进一步由次高级用户初始的密码以相同的方式产生再低一级用户的初始的密码;直到产生最低级用户的初始的密码,然后由最低级用户的初始的密码产生数据块的加密密钥。完整步骤如下:
1、确定好各级用户的权限,根据上述的方法,首先最高级用户产生一个初始密码K1,然后根据利用方法hash函数SHA256(K1||B),||表示简单的合并连接,逐级地产生多级用户的初始密码。如果数据块是对称加密,用最低级用户的初始密码去产生他所管理的数据块的块加密密钥,产生块加密密钥的方式和实施例5相同。
实施例8:在前面实施例7基础上增加密钥(密码)更新功能,在计算的时候增加一个信息更改密钥次数的信息,如次高级用户密钥为HASH(Kl||A||f(N)),f(N)第一次产生密钥为Null(空),后面分别为1,2,下一级用户的初始密码Kr+1产生单向的函数为HASH(Kr||B||f(N)),B为用户的编号,数据块的对称加密密钥采用HASH(Ks||A||f(N))产生,A为文件的位置信息,在密钥信息表中也必须同样对应更改密钥次数的信息。
如果某一级用户A的初始密码泄漏,从用户A的上一级用户的初始密码产生用户A的新密码(密钥),注意其中N在原来的基础上加1,第一次更新的密码为HASH(Kr||B||1),以此类推。
篇幅所限,不能一一举例,实施例也相对简化,以上实施例的限定条件和一些方法可以交叉组合,以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (4)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710121369.1A CN107070649B (zh) 2017-03-02 2017-03-02 一种减少写入的大文件选择性加密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710121369.1A CN107070649B (zh) 2017-03-02 2017-03-02 一种减少写入的大文件选择性加密方法

Publications (2)

Publication Number Publication Date
CN107070649A CN107070649A (zh) 2017-08-18
CN107070649B true CN107070649B (zh) 2021-08-31

Family

ID=59621817

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710121369.1A Active CN107070649B (zh) 2017-03-02 2017-03-02 一种减少写入的大文件选择性加密方法

Country Status (1)

Country Link
CN (1) CN107070649B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107864129B (zh) * 2017-10-31 2021-04-16 北信源系统集成有限公司 一种保证网络数据安全的方法和装置
CN110446105B (zh) * 2019-09-20 2021-11-16 网易(杭州)网络有限公司 视频加密、解密的方法及装置
CN110572604B (zh) * 2019-09-27 2023-04-07 上海依图网络科技有限公司 摄像系统以及视频处理方法
CN110620891B (zh) * 2019-09-27 2023-04-07 上海依图网络科技有限公司 摄像系统以及视频处理方法
CN111917720A (zh) * 2020-06-28 2020-11-10 中科物缘科技(杭州)有限公司 基于区块链的文件碎片化加密存储方法、获取方法及系统
KR20230063170A (ko) * 2021-11-01 2023-05-09 삼성전자주식회사 스토리지 컨트롤러를 포함하는 스토리지 장치 및 이의 동작 방법

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101247506A (zh) * 2007-02-14 2008-08-20 中国科学院声学研究所 在数字媒体播放系统中的文件加密方法及加密文件结构
CN101582109A (zh) * 2009-06-10 2009-11-18 成都市华为赛门铁克科技有限公司 数据加密方法及装置、数据解密方法及装置、固态硬盘
CN102236766B (zh) * 2011-05-10 2014-04-09 桂林电子科技大学 安全的数据项级数据库加密方法
US9274864B2 (en) * 2011-10-04 2016-03-01 International Business Machines Corporation Accessing large amounts of data in a dispersed storage network
CN102402664B (zh) * 2011-12-28 2014-12-10 用友软件股份有限公司 数据访问控制装置和数据访问控制方法
CN102404111B (zh) * 2011-12-28 2016-07-06 桂林电子科技大学 一种采用不确定加密算法的分段加密方法
TWI559168B (zh) * 2013-03-07 2016-11-21 國立成功大學 資料加密系統及方法
CN104063334A (zh) * 2014-07-11 2014-09-24 中国人民公安大学 一种基于数据属性的加密方法和系统
CN104486307B (zh) * 2014-12-03 2017-08-15 中国电子科技集团公司第三十研究所 一种基于同态加密的分权密钥管理方法
CN105162583B (zh) * 2015-07-15 2018-10-26 北京江南天安科技有限公司 一种单个、单级和多级密钥对分散方法及其系统
CN105763333B (zh) * 2016-01-28 2019-05-24 北京江南天安科技有限公司 一种非对称密钥的协商方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
一个较快速的整数上的全同态加密方案;汤殿华 等;《计算机工程与应用》;20141231;第48卷(第28期);第117-122页 *
一类整数上有效的全同态加密方案;谢学说;《中国优秀硕士学位论文全文数据库 信息科技辑》;20141015(第10期);第Ⅱ页 *
同态加密算法适用范围和效率的改进及应用;杨淏玮 等;《计算机工程与设计》;20170228;第38卷(第2期);第318-322页 *

Also Published As

Publication number Publication date
CN107070649A (zh) 2017-08-18

Similar Documents

Publication Publication Date Title
CN108667595B (zh) 一种大数据文件的压缩加密方法
CN107135062B (zh) 一种改进的大文件的加密方法
CN106685980B (zh) 一种大文件的加密方法
CN107070649B (zh) 一种减少写入的大文件选择性加密方法
CN106936820B (zh) 数据变长修改方法及其在大数据加密中的应用
US10447476B2 (en) Multi-key graphic cryptography for encrypting file system acceleration
CN103329184B (zh) 数据处理装置以及数据保管装置
CN101340279B (zh) 数据加密及解密方法、系统及设备
US8880879B2 (en) Accelerated cryptography with an encryption attribute
CN103345609B (zh) 一种文本加解密方法和加解密设备
CN107609418A (zh) 文本数据的脱敏方法、装置、存储设备以及计算机设备
US9602273B2 (en) Implementing key scheduling for white-box DES implementation
CN106888081B (zh) 白盒实施方案内中间值的宽编码
CN106888080A (zh) 保护白盒feistel网络实施方案以防错误攻击
US9654279B2 (en) Security module for secure function execution on untrusted platform
CN107273724B (zh) 为白盒实施方案的输入和输出加水印
Geetha et al. Tamilian cryptography: an efficient hybrid symmetric key encryption algorithm
CN106209346B (zh) 白盒密码技术交错查找表
CN105978680B (zh) 一种加密钥的加密运算方法
CN110768797A (zh) 一种基于身份格式保留加密的数据脱敏方法
EP2960891B1 (en) Method for introducing dependence of white-box implementationon a set of strings
CN116389137A (zh) 一种基于网络信息安全的数据加密方法及系统
Awais et al. A novel searchable encryption scheme to reduce the access pattern leakage
US10412054B2 (en) Method for introducing dependence of white-box implementation on a set of strings
CN114430321A (zh) 基于dfa自适应安全的黑盒可追踪密钥属性加密方法及装置

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20221128

Address after: 541004 Station No. 2-1 and 2-2, Room 3205 and 3206, Building 3, Science Park, Guilin University of Electronic Science and Technology, No. 123, Liuhe Road, Qixing District, Guilin, Guangxi Zhuang Autonomous Region

Patentee after: Guilin Fourier Electronic Technology Co.,Ltd.

Address before: 541004 1 Jinji Road, Qixing District, Guilin, the Guangxi Zhuang Autonomous Region

Patentee before: GUILIN University OF ELECTRONIC TECHNOLOGY

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231214

Address after: No. 2-15, 2nd Floor, Innovation and Entrepreneurship Service Center, Guilin Economic and Technological Development Zone, Guilin City, Guangxi Zhuang Autonomous Region, 541100 (Standard Factory Building No. 6, Yangtang Industrial Park, Feihu Road, Lingui District)

Patentee after: GUANGXI XINKAI ZHIQUAN TECHNOLOGY Co.,Ltd.

Address before: 541004 Station No. 2-1 and 2-2, Room 3205 and 3206, Building 3, Science Park, Guilin University of Electronic Science and Technology, No. 123, Liuhe Road, Qixing District, Guilin, Guangxi Zhuang Autonomous Region

Patentee before: Guilin Fourier Electronic Technology Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240319

Address after: 210000 8 Huyue East Road, Longchi street, Liuhe District, Nanjing City, Jiangsu Province

Patentee after: Nanjing Zhitong Supply Chain Management Co.,Ltd.

Country or region after: Zhong Guo

Address before: No. 2-15, 2nd Floor, Innovation and Entrepreneurship Service Center, Guilin Economic and Technological Development Zone, Guilin City, Guangxi Zhuang Autonomous Region, 541100 (Standard Factory Building No. 6, Yangtang Industrial Park, Feihu Road, Lingui District)

Patentee before: GUANGXI XINKAI ZHIQUAN TECHNOLOGY Co.,Ltd.

Country or region before: Zhong Guo