基于基因序列与基因功能的非数值字段的加密及解密方法

文档序号:1557892 发布日期:2020-01-21 浏览:23次 >En<

阅读说明:本技术 基于基因序列与基因功能的非数值字段的加密及解密方法 (Non-numerical field encryption and decryption method based on gene sequence and gene function ) 是由 张毅骏 谭翔 于 2019-09-10 设计创作,主要内容包括:本发明提供了一种基于基因序列与基因功能的非数值字段的加密及解密方法,其特征在于,包括以下步骤:建立马儿科夫-蒙托卡罗模型;对于数据库中每一个非数值字段,获得基因功能及基因序列训练马儿科夫-蒙托卡罗模型;利用训练后的马儿科夫-蒙托卡罗模型进行解密操作。(The invention provides an encryption and decryption method of non-numerical fields based on gene sequences and gene functions, which is characterized by comprising the following steps of: establishing a Mapedif-Monte Carlo model; for each non-numerical field in the database, obtaining gene functions and gene sequences to train a Mapedif-Monte Carlo model; and carrying out decryption operation by using the trained Mapedif-Monte Carlo model.)

基于基因序列与基因功能的非数值字段的加密及解密方法

技术领域

本发明涉及一种非数值字段的加密方法。

背景技术

现代社会是一个大数据信息时代,人们的衣食住行、生活与工作都离不开数据分析和大数据分析,故而数据越来越成为一种宝贵的财富。虽然,大数据信息时代提倡的是数据开放和数据共享,但是很多涉及比如商业核心利益、国家机密安全、个人隐私等等的敏感数据仍旧是公司、国家和个人不可被侵犯的宝贵资源。为了保证这类敏感数据的数据安全,防止敏感数据被恶意盗用,针对这些敏感数据,需要对相应的数据库进行加密。

数据库非数值字段加密的难点在于:

(1)字段的内容与字段的编码类型不受控制

与数值字段加密的加密内容(即明文)只是针对数字不同,对非数值字段加密的加密内容理论上是不受控制的,可以是各国文字、各种符号和数字的组合。

(2)使用固定的明文与密文的一一映射是不可行的

任何基于明文与密文之间的一一映射的加密算法都是比较弱的加密方法。对非数值字段的加密也不例外,应当避免这种加密方法。

发明内容

本发明的目的是:提供一种数据库非数值字段的加密方法。

为了达到上述目的,本发明的技术方案是提供了一种基于基因序列与基因功能的非数值字段的加密及解密方法,其特征在于,包括以下步骤:

步骤1、建立马儿科夫-蒙托卡罗模型;

步骤2、对于数据库中每一个非数值字段,取出非数值字段中所有不同的明文,对每一种不同的明文进行加密生成基因功能,每个基因功能生成Y个不同的密文,每个密文即一个基因序列;

步骤3、对每个基因序列,计算每个基因序列的长度len(seq(x)),seq(x)表示基因序列x,从基因序列数据集中筛选出长度为len(seq(x))的所有基因序列组成用于训练的基因序列集合,将基因序列集合输入步骤1建立的马儿科夫-蒙托卡罗模型,由马儿科夫-蒙托卡罗模型从基因序列的第一位至最后一位计算每个位置给定字母后,所有可能字母的条件概率分布,从而完成马儿科夫-蒙托卡罗模型的训练;

步骤4、获取待加密的非数值字段中的所有不同的明文,对每一种不同的明文进行加密生成基因功能,每一个基因功能生成Y个不同的密文,每个密文即一个基因序列,所有基因序列组成基因序列集;

步骤5、解密时,获得待比对的基因序列,计算待比对的基因序列的长度,从基因序列集中选出与该长度一样的所有基因序列组成基因序列子集;

步骤6、将基因序列子集与待比对的基因序列输入训练好的马儿科夫-蒙托卡罗模型进行比对,利用条件概率下的极大似然估计,从基因序列子集中匹配出k个相似度最高的基因序列,构成新的基因序列数据子集;

步骤7、根据上一步获得的新的基因序列数据子集,返回基因序列数据子集中所有基因序列所对应的基因功能,计算基因功能中占比最大的基因功能的占比,若该占比大于等于p,则该基因功能即为待比对的基因序列所对应的基因功能,否则返回步骤5。

优选地,步骤2及步骤4中,对每一种不同的明文进行base64的加密。

优选地,步骤6中,输入比对长度x,则进行比对时,按位置逐x个比对基因序列的内容。

优选地,步骤6中,所述k为外部输入的参数;步骤7中,所述p为外部输入的参数。

本发明的优点是:对所有的文本都可以进行加密;加密-解密的效率不会因为数据的增大而下降;明文与密文之间存在着一种无法用暴力破解的映射关系。

附图说明

图1为对每一个字段的训练流程图;

图2为上线后的局部流程图;

图3为本发明的模型训练阶段的流程图;

图4为本发明上线后的流程图。

具体实施方式

下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。

本发明提供的一种加密算法是基于“基因序列”与“基因功能”提出的:

生物学中的基因序列指的是代表例如DNA等的字母序列。而基因功能指的是基因序列(基因片段)所能发挥的功能,比如控制激素分泌等。不同的基因序列能够提供相似的甚至相同的基因功能,同一类基因功能可能对应着许多不同的基因序列。

在加密算法中,数据库非数值字段的明文都对应基因功能,而其密文都对应基因序列,这样一来,对于某个特定的明文,可以生成多个不同的密文对应。而当解密密文时,可以对应到设定的明文。

利用上述基因序列与基因功能实现数据库非数值字段的加密需要克服以下难点:

基于基因序列与基因功能的加密方法看似只是一种明文对应密文的一对多映射,然而,在现实中,由于数据库中的数据量较大,明文的种类内容丰富,从而导致了密文的种类多。例如,假设共有100万种明文,每一种明文都对应10种密文,则就有不同的1000万种密文,那么直接通过一对多的映射,在明文与密文转换时,可能会存在性能上的问题,可能会造成响应不及时。然而,在某些场景中,响应不及时是致命的。所以,需要利用算法对明文与密文转换进行加速。

基于基因序列与基因功能的加密方法可以通过直接求出基因序列中每个位置的对应字母的联合分布实现基因序列比对。然而在这种联合分布中各个维度的随机变量相互强关联的情况下,直接去求联合分布容易陷入局部极值(这也是为什么直接使用一对多映射方法进行匹配时性能不高的原因),若利用基于马尔科夫链蒙托卡罗计算框架的算法可以避免这种性能弱点。

本质上讲,基于马尔科夫链蒙托卡罗计算框架的算法是通过计算基因序列的条件概率分布,拟合出基因序列的联合分布,在序列匹配的场景下,这是一种非常高效的方法。

本发明的中记号命名如下表所示:

Figure BDA0002196880150000041

具体而言,本发明提供的一种基于基因序列与基因功能的非数值字段的加密及解密方法包括以下步骤:

步骤1、建立马儿科夫-蒙托卡罗模型;

步骤2、对于数据库中每一个非数值字段,取出非数值字段中所有不同的明文,对每一种不同的明文进行base64的加密生成基因功能,每个基因功能生成Y个不同的密文,每个密文即一个基因序列;

步骤3、对每个基因序列,计算每个基因序列的长度len(seq(x)),seq(x)表示基因序列x,从基因序列数据集中筛选出长度为len(seq(x))的所有基因序列组成用于训练的基因序列集合,将基因序列集合输入步骤1建立的马儿科夫-蒙托卡罗模型,由马儿科夫-蒙托卡罗模型从基因序列的第一位至最后一位计算每个位置给定字母后,所有可能字母的条件概率分布,从而完成马儿科夫-蒙托卡罗模型的训练;

步骤4、获取待加密的非数值字段中的所有不同的明文,对每一种不同的明文进行base64的加密生成基因功能,每一个基因功能生成Y个不同的密文,每个密文即一个基因序列,所有基因序列组成基因序列集;

步骤5、解密时,获得待比对的基因序列,计算待比对的基因序列的长度,从基因序列集中选出与该长度一样的所有基因序列组成基因序列子集;

步骤6、将基因序列子集与待比对的基因序列输入训练好的马儿科夫-蒙托卡罗模型进行比对,输入比对长度x,则进行比对时,按位置逐x个比对基因序列的内容,利用条件概率下的极大似然估计,从基因序列子集中匹配出k个相似度最高的基因序列,构成新的基因序列数据子集,k为外部输入的参数;

步骤7、根据上一步获得的新的基因序列数据子集,返回基因序列数据子集中所有基因序列所对应的基因功能,计算基因功能中占比最大的基因功能的占比,若该占比大于等于p,p为外部输入的参数,则该基因功能即为待比对的基因序列所对应的基因功能,否则返回步骤5。随着抽取的数据越来越多,似然度会越来越大,理论上可以达到1。

9页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种石脑油裂解制乙烯的裂解炉运行过程的监测模型的建模方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!