掌桥专利:专业的专利平台
掌桥专利
首页

一种半结构化数据的加密方法及系统

文献发布时间:2023-06-19 09:54:18



技术领域

本发明属于计算机数据安全保护技术领域,涉及数据加密领域,特别涉及一种半结构化数 据的加密方法及系统。

背景技术

随着后互联网时代中社交网络、物联网和人工智能技术的发展,传统结构化数据和非结构 化数据已经远远不能满足层出不穷的新型网络应用。当前,在大数据存储、处理和应用中,半 结构化数据占有越来越重要的地位。半结构化数据多采用树状、列表和图状数据结构组织细粒 度的数据项,从组织形式上摆脱了结构化数据库操作的局限,增加了操作的灵活性。相比传统 数据类型,半结构化数据应用差异性大,操作类型多样化,用于保护半结构化数据的标准方法 非常少。

对于半结构化数据的加密保护,其安全性和灵活性是两个相互矛盾的方面,因此设计安全 加密方法时,必须平衡需求,在两个方面兼顾考虑。在已有的保护方法上,一般将半结构化数 据块视为某一维度上独立完整的张量,将其中的数据项作为该张量的一个分量或属性参与运算; 例如,XML数据采用树状结构组织,树的深度即为该数据的维度;JSON数据采用松散的列 表形式组织每个数据,其维度一般为2或3。加密的目的就是保护最高维度上的数据项安全, 同时保持半结构化数据的全部或部分维度关系。在具体应用场景中,如社交网络数据,需要将 参与者的个人信息加密保护,同时将发表言论、感情倾向等数据项与他人共享。在已有的加密 方法中,基于属性加密方法和差分隐私保护方法在一定程度上能够满足上述两个方面的需求, 但系统开销方面并不能适用于在大数据量应用场景中使用,实用性能较差。

综上,亟需一种新的半结构化数据的加密方法及系统。

发明内容

本发明的目的在于提供一种半结构化数据的加密方法及系统,以解决上述存在的一个或多 个技术问题。本发明提出一种基于神经网络结构的半结构化数据加密方法,该方法充分考虑了 半结构化数据对密码算法的需求,将数据加密、数据结构保持和操作效率相结合,确保了半结 构化数据加密方法的可行性和实用性。

为达到上述目的,本发明采用以下技术方案:

本发明的一种半结构化数据加密方法,包括:

所述加密方法的加解密过程基于全连接的多层神经网络结构;其中,使用全连接的多层神 经网络结构处理半结构化数据块中各个结构化要素;在多层神经网络结构中的各个神经网络层 使数据经过权重向量和激活函数的作用,得到下一层的输入;半结构化数据流经全连接的多层 神经网络后,完成加密或解密操作。

本发明的进一步改进在于,在基于全连接的多层神经网络进行加解密过程中,利用半结构 化数据向量化并行操作作为结构保持方法;使用可选加密强度的密钥加密数据,对不同敏感程 度的半结构化数据进行细粒度的加密或解密操作。

本发明的一种半结构化数据加密方法,包括以下步骤:

步骤1,对待加密的半结构化数据进行预处理,获得向量化的半结构化数据;

步骤2,构造获得全连接的神经网络结构,并设置安全参数;

步骤3,产生加密密钥;

步骤4,实现加密操作和解密操作;其中,所述加密操作包括:从全连接的神经网络结构 的第0层输入待加密的向量化的半结构化数据,在激活函数和加密密钥的控制下,对流经各层 神经网络的数据与各组参数做运算,输出加密后的数据;所述解密操作包括:从全连接的神经 网络结构的第0层输入待解密的向量,在激活函数和加密密钥的的控制下,对流经各层神经网 络的数据进行逆向的运算,输出解密后的数据。

本发明的进一步改进在于,步骤1具体包括:将采集的半结构化明文数据向量化得到 M=(m

本发明的进一步改进在于,所述步骤2具体包括以下步骤:

(2.1)随机构造一个全连接的神经网络NN(V,E,n,d,|x|,|y|);其中,V是该有向图的神经 元集合,E为连接的集合,n为神经元最大连接数,d为神经网络最大深度,|x|为用作输入的 维度,|y|为用作输出的维度;

(2.2)选择一个用于控制结构的神经元激活函数σ和全局运算的单位g,g作为数域GF(g) 的生成元,初始状态中每个神经元的权重ω随机取自GF(g)上的元素,输入数据赋值给向量x, 从y中读取加密后的结果数据。

本发明的进一步改进在于,所述步骤2的步骤(2.1)中,|y|≥|x|,令|V|=nd。

本发明的进一步改进在于,所述步骤4的加密操作具体包括以下步骤:

(4.1)在神经网络的第0层,计算:

(4.2)第p层,0<p≤n层,计算:

I

(4.3)在第p=n层,令该层深度d=1,ω

v=σ(ω

最后一层的计算结果:y=(o

式中,加密密钥ω

本发明的进一步改进在于,所述步骤4的解密操作具体包括以下步骤:

(1)令ω

(2)在第0层,令y={y

I

σ(y

(3)在第p层,0<p≤n,分别计算:

I

最后一层神经元计算结果为:x=o

输出解密结果:M=x。

本发明的一种半结构化数据的加密系统,其特征在于,包括:

数据预处理模块,用于采集并预处理半结构化明文数据,获得向量化的半结构化数据;

神经网络获取模块,用于构造获得全连接的神经网络结构,并设置安全参数;

密钥获取模块,用于产生加密密钥;

加密解密模块,用于实现加密操作和解密操作;其中,所述加密操作包括:从全连接的神 经网络结构的第0层输入待加密的向量化的半结构化数据,在激活函数和加密密钥的控制下, 对流经各层神经网络的数据与各组参数做运算,输出加密后的数据;所述解密操作包括:从全 连接的神经网络结构的第0层输入待解密的向量,在激活函数和加密密钥的的控制下,对流经 各层神经网络的数据进行逆向的运算,输出解密后的数据。

与现有技术相比,本发明具有以下有益效果:

本发明针对xml文件、html文件等半结构化文件的数据保护问题,提出了基于神经网络 结构的半结构化数据加密方法,支持对数据加密粒度的控制和部分数据结构的保持;该基于神 经网络结构的半结构化数据加密方法不仅为用户的敏感数据提供了加密保护的功能,同时保持 了数据的结构可操作性;本发明的方法在系统吞吐量和系统资源开销方面有小幅提高,但在粒 度控制和数据类型支持等功能测试中表现出明显优势。具体的,本发明采用向量化的数据块组 织结构,可以方便的将各个数据块的加密部分和非加密部分区分出来,利用神经网络中的权重 取值来传递三种不同的加密操作(明文传递copy,密文传递pass和明文截断cut),实现了明 文到密文的加密和结构化保持操作;同时支持结构化数据和非结构化数据的加密操作功能;通 过生成包含数据特征的字段,产生专门用于数据特征挖掘的密文,支持半结构化数据的密文搜 索功能。

具体实施方式

本发明实施例的一种半结构化数据加密方法,使用神经网络结构并行化处理数据块中各个 结构化要素;在各个神经网络层使数据经过权重向量和激活函数的作用,得到下一层的输入; 当数据流经整个神经网络后,加密或解密的操作完成,且加密的安全强度和数据结构的保持程 度由激活函数的结构控制。

本发明实施例的一种半结构化数据加密方法,采用基于全连接的多层神经网络结构设计, 利用半结构化数据向量化并行操作作为结构保持方法;使用了可选加密强度的密钥加密数据, 对不同敏感程度的半结构化数据进行细粒度的加密操作,具体步骤包括:

步骤1,采集并预处理半结构化明文数据,包括:将半结构化文件向量化M=(m

步骤2,构造一个全连接的神经网络结构,并设置安全参数,包括:该神经网络的各层神 经元V及其连接关系E、各层权重ω、神经元激活函数σ等变量,以及神经网络宽度n和深度 d等安全参数;

步骤3,产生加密密钥ω

步骤4,加密操作:从第0层输入待加密的向量M,在激活函数σ和ω

步骤5,解密操作:从第0层输入待解密的向量C,在激活函数σ和ω

本发明实施例的方法中,所述步骤2具体包括以下步骤:

(1)随机构造一个全连接的多层神经网络NN(V,E,n,d,|x|,|y|);其中,V是该神经网络的神经元集合,E为连接的集合,n为神经元最大连接数,d为神经网络最大深度,即两神经元最大跳数,|x|为用作输入数据的维度,|y|为用作输出数据的维度;其中,为了在加 密过程中不丢失信息,取|y|≥|x|,令|V|=nd,则该神经网络作为具有n层深度的神经网络 连接关系;

(2)选择一个用于控制结构的神经元激活函数σ和全局运算的单位g,g作为数域GF(g) 的生成元,初始状态中每个神经元的权重ω随机取自GF(g)上的元素,输入数据赋值给向量x, 从y中读取加密后的结果数据。

本发明实施例的方法中,为了使算法兼容不同的应用场景,在加密时,令|y|>|x|,在计算 哈希值时,令|y|<|x|。

本发明实施例的方法中,所述步骤4具体包括以下步骤:

(1)在神经网络的第0层,输入经过向量化预处理的数据,在密钥ω

(2)第p(0<p≤n)层,上一层的输出O

I

(3)在第p=n层,令该层深度d=1,ω

v=σ(ω

最后一层输出为:y=(o

则输出加密结果为:C=y

本发明实施例的方法中,步骤5具体包括:

(1)令ω

(2)在第0层,以o

I

σ(y

(3)在第p层,0<p≤n,以o

I

最后输出:x=o

本发明实施例的方法中,步骤2中通过设计合理的算法用于生成安全强度高,满足系统效 率的神经网络结构,在保证处理效率的基础上,提高加密算法的安全性。其中,一种方法是通 过借鉴标准对称加密算法的S盒结构,对应生成具有相同随机数值的连接关系,从而在神经网 络生成过程中实现最优化的连接关系。

本发明实施例的方法的有益效果在于:针对xml、html等半结构化文件,该基于神经网络 结构的半结构化数据加密算法不仅为用户的数据提供了加密保护的功能,同时保持了数据的结 构可操作性。采用向量化的数据块组织结构,可以方便的将各个数据块的加密部分和非加密部 分区分出来,利用神经网络中的权重取值来传递三种不同的加密操作(明文传递copy,密文 传递pass和明文截断cut),实现了明文到密文的加密和结构化保持操作;同时传统的支持结 构化数据和非结构化数据的加密操作功能;通过生成包含数据特征的字段,产生专门用于数据 特征挖掘的密文,支持半结构化数据的密文搜索功能。

本发明实施例的方法中,所述步骤1具体包括:

(1)使用全连接的神经网络NN(V,E,n,d,|x|,|y|)构建加密函数和解密函数的主体,其中V 神经元的总数,E是神经元连接的总数,n是神经网络每一层的宽度,d是神经网络的最大深 度,x,y分别为输入和输出的半结构化数据。

(2)根据半结构化数据加密处理的不同需求,选择恰当的激活函数σ:

当σ=I时,加密函数层为非激活变换;

当σ=0时,加密函数层为截断状态;

当σ=sigmoid(I)时,加密函数为非线性归一化变换;

当σ=relu(I)时,加密函数为选择性线性变换,

其中,I是每一层的输入数据。

本发明实施例的技术方案为了保证半结构化数据操作灵活性的同时,保护其关键数据项, 本加密方法以不同类型的半结构化数据为对象,设计了一种满足半结构化数据安全需求的加密 方法。具体分析如下,互联网上最有价值的数据一般在SQL格式或非结构格式的数据库文件 中存储。长期以来,在文件层加密是提供数据安全的主要途径。例如,在SQL-server、Oracle 和MySQL等主流数据库管理系统中均采用基于AES的对称加密方法对所有表和字段进行加 密,这样在文件级别和数据表级别进行加密的方法可以很好的保护数据,但同时限制了数据的 细粒度操作。随着众多互联网在线应用的出现,数据的结构类型不再局限于传统的SQL数据 库格式。XML和JSON等灵活的半结构化数据存储方式成为最广泛使用的数据格式。XML是 基于内容管理语言的树状结构存储形式,使用标签和属性来描述数据元素的状态。在W3C标 准中,有三种保护XML文件内容的方式:XML文件直接加密,非对称加密和X.509证书加 密。第一种加密是一种简单加密方式,需要在传输XML文件之前产生一个会话密钥;第二种 使用公钥密码对对称加密的密钥进行管理,完成会话密钥的保护,使用对称密钥加密XML文 件的标签和属性;第三种方法与第二种类似,区别在于公钥密码的密钥由权威机构颁发的X.509 证书产生。JSON文件格式是基于数据交换语言管理的在线数据交换和存储格式,在众多在线 服务中被广泛应用。目前,JSON文件主要通过两种方式保护数据:第一种采用直接对文件加 密的方式,例如,在Javascript脚本中直接调用JSON的AES_cipher或3DES_cipher完成加密; 第二种方式采用编码隐藏的方式保护数据,例如,在浏览器传输的JSON字段可以通过 json_encode,urlencode或Base64实现数据的临时保护。本发明属于计算机数据安全保护领域, 具体涉及一种计算机存储系统中采用基于神经网络结构对半结构化数据加密的方法 (Cpsd-NN),包括以下步骤:1、初始化加密系统神经网络结构和安全参数;2、产生加密密 钥,作用于神经网络的权重参数;3、加密,对流经各层神经网络的数据与各组参数做运算;4、 解密,对流经各层神经网络的数据进行逆向的运算。同时满足了数据机密性、结构保持性和高 效处理性。采用神经网络结构对半结构化数据进行快速加密,可以方便的利用各个神经元的并 行化处理,保护数据的主要结构信息,很好地保证了数据加密后对其结构操作的兼容性;可以 实现对半结构化数据进行选择性部分加密,实现加密流程中对加密操作的灵活控制;充分考虑 了不同类型的半结构化数据文件存储需求的多样性,抽象化了数据交互的接口,使方法具有较 好的普适性。

本发明所述的一种半结构化数据加密方法,目的在于针对半结构化数据提出一种基于神经 网络结构的新型加密方法,该方法充分考虑了半结构化数据对密码算法的需求,将数据加密、 数据结构保持和操作效率相结合,确保了半结构化数据加密方法的可行性和实用性。通过调整 参数,该加密方法兼容对其它数据类型的加密。

本发明实施例的一种半结构化数据的加密系统,包括:

数据预处理模块,用于采集并预处理半结构化明文数据,获得向量化的半结构化数据;

神经网络获取模块,用于构造获得全连接的神经网络结构,并设置安全参数;

密钥获取模块,用于产生加密密钥;

加密解密模块,用于实现加密操作和解密操作;其中,所述加密操作包括:从全连接的神 经网络结构的第0层输入待加密的向量化的半结构化数据,在激活函数和加密密钥的控制下, 对流经各层神经网络的数据与各组参数做运算,输出加密后的数据;所述解密操作包括:从全 连接的神经网络结构的第0层输入待解密的向量,在激活函数和加密密钥的的控制下,对流经 各层神经网络的数据进行逆向的运算,输出解密后的数据。

考察加密算法性能的一般指标主要包括系统吞吐量和系统资源开销;针对本发明加密算法 的功能设计了相应的粒度控制和数据类型支持等功能测试。本发明的方法在系统吞吐量和系统 资源开销方面有小幅提高,但在粒度控制和数据类型支持等功能测试中表现出明显优势。本发 明的采用Python语言编制,软件环境为Jupyter-notebook;硬件环境为Inspur NF5280M4服务 器,主要硬件配置为Xeon E5@2.1GHz,64GB DDR4 RAM,1T存储空间和1Gbit/s本地网络 连接。

第一组测试是针对本加密算法的功能设计了相应的粒度控制和数据类型支持等功能测试, 检测本加密算法对不同性能的支持情况,包括弹性粒度控制、算法效率(计算量)、数据结构 的泄露情况和数据类型支持情况。本方法(Cpsd-NN)在各个功能上分别与3DES、AES、Kp-ABE 等三种加密方法做了对比,结果如表1所示。结果显示,本发明方法和Kp-ABE具备弹性粒度 控制功能,同时本发明方法具备较理想的算法效率。本发明方法可以支持任意向量化数据的加 密,同时为了支持对数据挖掘、搜索等功能的支持,在密文中会主动暴露数据的结构信息,而 敏感的结构可以通过合并相邻加密元素进行保护。

表1.加密算法的功能比较

第二组测试针对常见不同类型的半结构化数据,做了系统吞吐量、密文扩展率和系统资源 开销的平均水平测试。数据类型包括XML文件、JSON文件、Excel数据库文件和CSV文件, 每个测试文件包含10000条长度为10K字节的数据记录,结果如表2所示。结果显示,针对 XML、JSON、CSV等半结构化数据,在密文扩展率和系统存储资源消耗方面具有一定优势, 而在处理系统吞吐量方面,结构化数据效率更高。因此,本方法在系统性能方面具备优势,但 吞吐量方面,由于不同结构的文件,其向量化的复杂程度不同,因此导致吞吐量的波动较大。

表2不同数据类型的加密性能比较

本发明实施例的方法中,符号解释对照如表3所示。

表3.符号对照表

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。 因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形 式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质 (包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进 行了详细的说明,所属领域的普通技术人员依然可以对本发明的具体实施方式进行修改或者等 同替换,这些未脱离本发明精神和范围的任何修改或者等同替换,均在申请待批的本发明的权 利要求保护范围之内。

相关技术
  • 一种半结构化数据的加密方法及系统
  • 一种分布式NewSQL数据库系统和半结构化数据储存方法
技术分类

06120112344042