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

一种用于自然语言处理的深度学习模型的同态加密方法

文献发布时间:2023-06-19 19:30:30


一种用于自然语言处理的深度学习模型的同态加密方法

技术领域

本发明涉及到计算机数据安全和密码学领域,尤其涉及一种用于自然语言处理的深度学习模型的同态加密方法。

背景技术

基于深度学习的自然语言处理提供的服务已经越来越普遍,基于自然语言、大数据的推荐、识别等服务给用户带来了更大的便利。与此同时,用户提交的数据的过程可能会导致用户牺牲了自己的隐私信息。为了在保护用户隐私的前提下保持服务商提供服务的能力,在隐私计算的研究领域内已有一些处于研究之中的技术。需要说明的是,隐私计算不是一个单一的技术,相反,是一门融合了密码学、人工智能、计算机科学乃至安全硬件的跨学科交叉领域。目前被广泛研究的技术方向包括:多方安全计算、联邦学习和可信执行环境技术、差分隐私和同态加密。

其一是以多方安全计算(SMPC或MPC:Secure Multi-Party computation)技术为代表的纯基于密码学的技术;其二是以联邦学习(Federated Learning)为代表的人工智能和密码学融合的技术;第三类是以可信执行环境(TEE:Trusted Execution Environment)为基础的基于可信硬件的技术。同时,除了罗列的三大技术方向,诸如同态加密、差分隐私等技术也被广泛采用,或融入上述方向中作为方案的一部分,或被独立来用。值得一提的是,这几类技术并不互斥,在实现业务目标时往往根据场景特定,按需使用,甚至协同使用。隐私计算技术主要对比如下。

多方安全计算和全同态加密算法对安全性有较高的保障,但是相对应的需要巨大的工程改造,而且在计算和存储性能方面也会造成非常显著的下降,导致在实用中难以落地。可信执行环境通常需要使用特有的硬件系统来实现,虽然安全性和计算性能都比较优越,但是使用的场景受到较大限制。差分隐私技术和联邦学习技术在安全性和计算性能上做了一定的折中妥协,但总体而言,计算速度性能和准确度仍然有一定下降。

总体而言,这些算法有的虽然对安全性有较高的保障,但是会造成存储的巨大膨胀,也会造成计算性能的显著下降。有的虽然在计算速度方面仍然有竞争力,但是需要巨大的工程改造,对传输和深度学习计算过程进行全面重开发,而深度学习的准确率也会下降。

发明内容

针对现有技术的不足,本发明提供一种用于自然语言处理的深度学习模型的同态加密方法,该加密方法在计算性能上十分优越,可以完成毫秒级别的加密和解密,也不会影响基于深度学习模型的速度。

一种用于自然语言处理的深度学习模型的同态加密方法,包含以下步骤:

步骤一:密钥生成;

根据需要加密的数据或者需要使用的深度学习模型获得原始符号表;根据所述原始符号表生成一份不包含重复符号的随机符号表,所述随机符号表的大小不小于所述原始符号表,且所述原始符号表中的符号与所述随机符号表中的符号形成一对一或一对多的映射关系;所述随机符号表作为密钥K;

步骤二:数据加密;

步骤(2.1):通过分词算法将一份明文数据分成符号串;

步骤(2.2):将所述符号串中的符号按照所述密钥K,从原符号映射成新符号;其中,如果映射关系是一对一的映射,则直接映射到新符号;如果映射关系是一对多的,则从原符号映射到的多个符号中,随机选取一个符号作为新符号;

步骤(2.3):将所述新符号串联,生成利用密钥K加密后的密文m。

进一步地,根据所述原始符号表生成一份不包含重复符号的随机符号表,具体包括:

将所述将原始符号表随机打乱顺序,生成一份随机符号表;此时,所述原始符号表中的符号与随机符号表中的符号形成一对一的映射关系;

或者,选取一份大小不小于所述原始符号表的全新的符号表,随机打乱顺序,生成一份随机符号表。

进一步地,将所述将原始符号表随机打乱顺序,生成一份随机符号表,具体包括:

选取原始符号表中的部分符号打乱顺序,剩余的保持原样,生成随机符号表;

或者,将整个原始符号表打乱顺序,生成一份随机符号表。

进一步地,选取的新符号表的大小大于原始符号表时,形成一对多的映射;此时,统计语料中符号出现的频率,中高频的符号优先映射成多个新符号,使得最终的映射结果中各个符号出现的频率相对平均,无法出现频率分析攻击。

进一步地,当新符号表大于原符号表,形成一对多的映射时,在每次加密的过程中加入随机种子数s,从而使一对多映射的过程都由哈希函数h(s)决定,从而使得加密结果的完整性由s得到验证。

进一步地,在获得原始符号表时,若希望将加密后的密文m应用在已训练好的深度学习模型上时,则获取已有的深度学习模型的词汇表,并去除分词算法自动添加的符号后,生成所述原始符号表;若希望将加密后的密文m应用在未训练的深度学习模型上,则直接利用加密数据的全量词汇表生成所述原始符号表。

进一步地,所述分词算法选用基于字的分词算法。

进一步地,所述分词算法选用基于单词的分词算法。

一种由加密方法生成的密文在深度学习模型训练中的应用,包括:

(1)将深度学习模型的符号编码表中的每个符号按照密钥k的映射规则映射成加密的符号;

(2)利用所述密文m对所述深度学习模型进行训练或预测。

进一步地,将所述深度学习模型的符号编码表中的每个符号按照密钥k的映射规则映射成加密的符号后,在符号查找表中对向量进行扰动,提高密文的安全性。

本发明的有益效果如下:

(1)本发明的加密算法不需要更改深度学习模型的结构和计算逻辑,因此,没有额外计算开销,也不会损失模型精度。

(2)本发明的加密算法简介明了,易于实现,不受开发语言和开发框架的限制,适用性强。

(3)本发明的加密算法的数据加密效率高,能达到0.3毫秒量级,更易于部署于线上环境。

(4)当映射关系为一对多时,本发明还提供了增加随机性和加密校验的选择,可以验证加密文本的完整性,同时可以应对频率分析类的攻击。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1为本发明的用于自然语言处理的深度学习模型的同态加密方法的密钥生成流程图。

图2为本发明的加密过程流程图。

图3为本发明的解密过程流程图。

图4为原符号频率和一对多映射到的符号数量示意图。

具体实施方式

下面根据附图和优选实施例详细描述本发明,本发明的目的和效果将变得更加明白,应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

本发明的用于自然语言处理的深度学习模型的同态加密方法,包括密钥生成和数据加密两个步骤。

步骤一:密钥生成

如图1所示,根据需要加密的数据或者需要使用的深度学习模型获得原始符号表;根据所述原始符号表生成一份不包含重复符号的随机符号表,所述随机符号表的大小不小于所述原始符号表,且所述原始符号表中的符号与所述随机符号表中的符号形成一对一或一对多的映射关系;所述随机符号表作为密钥K。

一般来说,用于深度学习所用的符号表中可能包含起始、结束、未知、填充等特殊符号,这些符号是本来不存在于明文中,是符号解码系统自动加在文本上的,这些特殊符号原样映射,无需随机映射到其他符号。即,在获得原始符号表时,若希望将加密后的密文m应用在已训练好的深度学习模型上时,则获取已有的深度学习模型的词汇表,并去除分词算法自动添加的符号后,生成所述原始符号表;若希望将加密后的密文m应用在未训练的深度学习模型上,则直接利用加密数据的全量词汇表生成所述原始符号表。

密钥可以是原符号表全部打乱顺序,生成一份随机符号表;或者,部分符号打乱顺序,剩余的保持原样,生成随机符号表;此时,原始符号表中的符号与随机符号表中的符号形成一对一的映射关系。密钥也可以是选取一份大小不小于所述原始符号表的全新的符号表,随机打乱顺序,生成一份随机符号表。但是务必保证符号没有重复,从而保证映射表是一对一或者一对多的映射而不会出现多对一的情况。这样的一份映射整体就是一个对称密钥,可以用来解密和加密。

选取的新符号表的大小大于原始符号表时,形成一对多的映射;此时,统计语料中符号出现的频率,中高频的符号优先映射成多个新符号,使得最终的映射结果中各个符号出现的频率相对平均,无法出现频率分析攻击。

当新符号表大于原符号表,形成一对多的映射时,在每次加密的过程中加入随机种子数s,从而使一对多映射的过程都由哈希函数h(s)决定,从而使得加密结果的完整性由s得到验证。最终将新符号串联后,将s一并保存作为密文的校验位。如此,该密文还实现了可以校验完整性的功能。即,攻击者无法将两个不同的密文片段拼凑在一起伪装成新的密文,因为不同的密文的随机种子数很可能是不同的s

推荐使用一对多的映射,可以规避一对一映射带来的频率分析等攻击方法。具体映射方式如下:

在生成一对多映射的时候,记原符号表为V,新符号表为W,|W|表示W的大小,且满足|W|>|V|。

建立海量文本数据库,统计该文本库中V中符号出现的次数,记为(f

该数值表示的是预估映射到的符号数量。但具体该符号对应新符号表中的符号个数应当是一个整数而非小数,因此取整的方法如下:

其中,如果w

定义r=|W|-∑z

就是符号i被映射到新符号表的数量。

可以验证,

另一方面,如果输入一串文本,该文本和原文本库中的符号频率分布大致相同,那么通过这样的一对多映射之后,频率最大的符号出现的频率比例为

步骤二:数据加密。

步骤(2.1):通过分词算法将明文数据分成符号串;分词算法可以选用基于单词的分词算法或者基于字的分词算法。

步骤(2.2):将所述符号串中的符号按照所述密钥K,从原符号映射成新符号;其中,如果映射关系是一对一的映射,则直接映射到新符号;如果映射关系是一对多的,则从原符号映射到的多个符号中,随机选取一个符号作为新符号;

步骤(2.3):将所述新符号串联,生成利用密钥K加密后的密文m。如图2所示。

采用本发明的方法加密后的文本,可以实现在自然语言处理的深度学习模型中的同态计算。也就是说,使用加密文本训练模型,可以达到用原文本训练模型一样的效果以及计算效率。

采用一对多的映射策略的安全性分析如下:

对于通常的替换密码,存在一种攻击手段,即通过统计原文本中字符的出现频率,和密文中各个新符号的出现频率进行对比。采用本法的方法,并选用一对多的符号映射,对于频率较高的符号,将其随机映射到多个符号之一,这样就稀释了新符号出现的频率。而具体新符号表数量和安全性之间的关系分析如下:

在海量文本中,统计符号w

不失一般性,不妨用2n-1来近似|W|。此时,对于第i个符号,将其映射到

个新符号。换句话说,新符号表的大小是原符号表的n倍,也就是log

/>

由于

如图3所示,采用一对多的映射策略的完整性校验如下:

当存在一对多映射的时候,假设是需要映射到{w

当加密一个信息的时候,事先抽样选择一个s。加密过程中的所有一对多映射都采用这个s来计算哈希函数,根据哈希函数的值来选定输出的新符号。最终的密文结果中将s作为校验位一并输出,类似于当下的SHA或者md5值。这样一来,当信息解密的时候,解密方可以比对解密结果的每一个符号是否可以用s加密得到密文,以此来判定这个信息是否由同一个消息加密而成,而不是由多个密文剪切拼凑而成。

一般而言,深度学习模型对文本的处理通常分为符号编码成ID、ID转换成嵌入向量这两个过程。因此首先,迁移的过程需要将符号编码表按照密钥的映射表的映射规则,将每个符号都映射成加密的符号。

具体而言,可以分为两种情况:

第一种情况,直接从海量文本训练随机初始化的模型。在这种情况况下,需要对海量文本全部进行加密,再用加密后的文本进行训练,其训练方式和用普通非加密文本进行训练是一致的。

第二种情况,已经有一个用大量语料训练好的预训练模型,需要将这个模型迁移到可以读密文的模型。此时,只需要迁移其符号编码算法和模型输入层的符号嵌入层逻辑,就可以迁移至加密模型。修改符号查找表(lookup table)中的符号,将其对应映射成为密文。如果是一对一的映射,则直接映射过去就可以了。如果是一对多的映射,如将一个符号映射成N个符号,则需要将原表中的数据重复N次,保证每个新映射的符号都会在查找表中对应原符号的向量。

映射完毕后,加密模型可以继续使用加密数据进行精调训练,或者直接执行预测任务。

本领域普通技术人员可以理解,以上所述仅为发明的优选实例而已,并不用于限制发明,尽管参照前述实例对发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在发明的精神和原则之内,所做的修改、等同替换等均应包含在发明的保护范围之内。

技术分类

06120115929914