CN110008723A - 一种基于词嵌入技术的加密算法 - Google Patents
一种基于词嵌入技术的加密算法 Download PDFInfo
- Publication number
- CN110008723A CN110008723A CN201910238958.7A CN201910238958A CN110008723A CN 110008723 A CN110008723 A CN 110008723A CN 201910238958 A CN201910238958 A CN 201910238958A CN 110008723 A CN110008723 A CN 110008723A
- Authority
- CN
- China
- Prior art keywords
- corpus
- time
- key
- word
- source
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- Storage Device Security (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明是一种基于词嵌入技术的加密算法,利用深度学习结果的难解释性和训练时间长的特点来辅助加密。该算法利用公开语料库,密钥中的内容指示收发双方对语料库的具体修改操作,得到合成语料库。双方同时基于此语料库采用词嵌入模型进行训练并根据密钥指示构建词向量表,同时密钥中的内容还指示了对词向量表的修正操作。发送方将待发送的信息根据修正后的词向量表进行替换,并将向量拼接发送给接收方,接收方则根据密钥指示对信息进行接收,根据修正后的词向量表恢复原信息。不同于传统密码本以及一次性密码本,该算法提出了自更新密码本的概念,即不需要更换密钥,收发双方也能进行同步的更新。
Description
技术领域
本发明涉及人工智能与密码学交叉技术领域,特别是涉及一种基于词嵌入技术的加密算法。
背景技术
密码学是保障信息安全的核心技术,有很多优秀的加密算法,如对称加密算法AES和非对称加密算法RSA,ECC等。然而,量子计算机能以高速度解决某些特定的问题。目前人们找到的高速度的量子算法大体有两类,一类是解决隐含子群问题的,比如因子分解问题、离散对数问题等,量子计算机在这些问题上有指数级的加速;另一类是量子随机游走相关的,比如Grover算法(在时间内搜索大小为n的数据库)等,量子计算机在这些问题上有多项式级的加速。对于AES等对称加密算法,Grover算法能进行不小的加速;而对于非对称密码,无论是基于因子分解问题的RSA,还是基于椭圆曲线上离散对数的ElGamal,都可以用量子计算机在很短的时间内破解。研究能够抵抗量子计算机的攻击的加密方法是必要的。
在加密算法的发展过程中,有很多算法都已经被破解或被证明不够安全,唯有一种加密算法一直存在了93年。这种算法叫做一次性密码本(one-time pad)。信息理论之父Claude Shannon曾经通过数学方法,证明这种一次性密码本如果使用得当,是无法被破解的。一次性密码本加密方式有时候非常不方便,因此现在很少有人在用这种加密方式。而正是由于这种不便性,应用更多的是如AES等理论上有些弱的加密方式。一次性的密码本的不便性在于:
一、用以加密的文本,也就是一次性密码本,必须确实是随机产生的。
二、它至少必须和被加密的文件等长。
三、用以加密的文本只能用一次,且必须对非关系人小心保密,不再使用时,用以加密的文本应当要销毁,以防重复使用。若密码本被使用多次,很容易通过多组明文/密文对破解密钥。
若能解决一次性密码本使用的不便性,或者对一次性密码本加以改进产生新的算法,那么就可能是安全级别更高的加密算法。
深度学习是近年来人工智能的热点研究领域,可自动地学习到从海量数据的表示(representation)到数据的标记(label)的映射,而这种映射关系是由深度学习模型中超大规模的参数所捕捉到的。目前尚无理论可对这些参数进行合理的解释,即这些参数具有不可解释性。而且,深度学习的训练时间耗时极长,每调一个超参数就意味着大量时间的流逝。因此,能否利用深度学习的这两个特点来辅助加密是值得研究的。
发明内容
针对以上问题,本发明通过对一次性密钥进行改进,利用深度学习结果的难解释性和训练时间长的特点来辅助加密,创造性地提出了自更新密码本的概念及其构建方法,有利于降低密钥分配频率乃至解决密钥分配的问题。本发明所构建的加密密钥长度短,并且有良好的拓展性,可以与经典加密算法的兼容,为达此目的,本发明提供一种基于词嵌入技术的加密算法,该方法包括以下部分:
1)利用公开语料库:针对文本数据,尽量选用词汇完备的语料库;对于一般的二进制数据,尽量选用字符完备的语料库,随后可将该语料库作为原始语料库公开;
2)可拓展的密钥设计:密钥位数;
X=X1+X2+X3+X4+X5+X6+Xextend
其中,X表示密钥的总位数,其它符号的具体含义如下:
X1:该X1位二进制数指示对原始语料库的操作,用于形成森林型数据结构或树型结构存储语料源,称为语料源森林或语料源树,当X1=32时,使该X1位二进制数表示一个IP地址,对该IP地址进行反向域名解析,得到起始网页集合S={r1,r2,...,rn},其中n是反向域名解析得到的域名个数,ri代表第i个域名对应的网页,每个网页下又包含若干链接,对于ri,则其包含的链接对应的网页的集合为其中ni表示网页ri中包含的链接个数,rij表示ri中第j个链接对应的网页,以此类推,整个层次结构构成网页森林,ri为第i棵网页树的根,每个结点对应一个网页;
X2:该X2位二进制数N2表示初始语料源树的深度;
X3:该X3位二进制数N3表示待训练的词向量的维度;
X4:该X4位二进制数N4指示对词向量表的处理,例如用N4来指示词向量中各维度的实数值保留数字的位数;
X5、X6:该X5位二进制数N5和X6位二进制数N6共同指示双方均拿到密钥后经过延迟时间timedelay后开始进行首轮语料获取和训练;
Xextend,表示可拓展密钥位,用于拓展加密方式,可与其他流行的安全加密方式相结合,提高安全性;
3)基于词嵌入技术的加密过程设计:发送方根据密钥中的内容X1位和X2位构建源森林或语料源树,若根结点只有1个,则构建的是语料源树;若根节点大于1个,则构建的是语料源森林,为表述方便,下面统一称作语料源森林,语料源森林中每个结点rij包含两个部分,一个部分是该结点包含的文本内容,另外一个部分是该结点下所有子节点的地址或链接,通过父结点与子结点的链接形成树的结构,爬取每个结点中的文本内容,将获取到的信息或文本内容进行预处理后依次加入到原始的公开语料库中,即构建完合成语料库或保密,之后,发送方根据密钥中X3位对合成语料库进行词嵌入模型的训练,生成词嵌入/词向量表,再根据密钥中的X4位对词向量表进行处理,在表中索引以词为键的向量,并将向量拼接发送给接收方;
4)基于词嵌入模型的解密过程设计:与加密过程类似,接收方也需要根据密钥指示对语料源森林中的各个结点的内容进行爬取,预处理后加入到原始语料库构建合成语料库,并进行词嵌入模型训练,得到词向量表并根据密钥进行处理,在表中查找向量对应的词,从而完成接收,不同于传统密码本以及一次性密码本,该算法提出了自更新密码本的概念,即不需要更换密钥,收发双方也能进行同步的更新;
5)自更新密码本的构建:自更新密码本是不需要更换密钥,能够定时实现自动更新的密码本,处理后的词向量表即为密码本,而密码本是由合成语料库经过一系列步骤后得到的,因此,密码本的更新实质上就是合成语料库的更新。
作为本发明算法进一步改进,所述加密算法做出如下合理假设;
(1)发送方向接收方发送密钥后,接收方能够立即接收到,接收时间可以忽略不计;
(2)从开始构建语料源森林,到完成合成语料库的更新,期间语料源森林中结点的内容,即将要新添入的语料是不变的;
(3)发送方自开始构建语料源森林至完成密码本更新,期间不再发送新的信息;接收方自开始构建语料源森林至完成密码本更新,期间不再解密新的信息,密码本更新后才允许解密,双方完成密码本更新的时刻不必同步;
定义或重述相关变量如下:
timeinterval:在算法层面约定的语料库定期更新的时间;timenow:当前时刻;timestart:发送双方均掌握密钥的时刻;timedelay:从双方均掌握密钥到开始第一次构建语料源森林的延迟时间;time0,time1,...:语料源森林开始构建的时刻,即合成语料库的启动更新的时刻;time0′,time1′,...:发送方完成密码本更新的时刻;time0″,time1″,...:接收方完成密码本更新的时刻。在timei时刻前所用的原始语料库;timei时刻后更新的合成语料库,其中:
time0=timestart+timedelay
timei=timei-1+timeinterval,i=1,2,...
注意,除原始语料库可公开外,其他阶段的原始语料库实质上是上一阶段的合成语料库,因此不能公开;
当timenow=time0,双方即开始构造语料源森林,获取语料源森林的结点内容,将其添加到原始语料库,形成合成语料库后各自进行词嵌入模型训练,双方由原始语料库得到的合成语料库是相同的,进而可得到相同的词向量表。当timenow=time1时, 可进一步更新为更新方式有如下两种:
(1)按照N2拓展语料源森林中每棵树的深度,从新构建的语料源森林中获取更多语料源结点的内容,并添加进语料库;
(2)由于发送与接收之间本身有信息传递,当传递的数据量足够大时,可以将其加入Corpussource,从而得到Corpustarge来进行词嵌入模型的训练,更新方式的选择可以在算法层面上约定,
注意,在这两种方案中,密钥内容均不用发生改变,即可实现密码本的更新,避免了一次性密码本中每次发送完后需要更换密钥所带来的缺陷。更新为后,可训练出新的词向量表,双方可基于新的词向量表进行信息传递,以此类推,理论上在密钥不发生改变的情况下,也可以实现无限轮的语料库更新。
作为本发明算法进一步改进,所述步骤3)中的爬虫过程,要采取各种措施,如采用代理IP、降低爬取速度、模拟浏览器相关措施使爬虫更健壮,爬取过程不必追求速度,即使完全模拟浏览器的操作也是可以接受的,以防止爬取失败,影响随后的解密过程,而且要消除爬虫过程中其他的随机性,要禁止采用多线程多进程爬取,防止对于特定的密钥爬取到不同的新语料,影响收发双方合成语料库的一致性,当待获取的内容不允许爬虫或不适宜爬虫操作时,可采用人工添加语料源的方式,为方便讨论,一下统一用“爬取”一词。
作为本发明算法进一步改进,所述步骤3)中的预处理,按照如下预处理的方式进行:新加入的语料库不要求和原始语料库语言相同,但都要经过调整编码、分词、去标点。
作为本发明算法进一步改进,所述步骤3)中生成的词向量表为字典形式,其索引键是词汇,对应值是N3维的实数向量,设由原始语料库Corpussource训练得到的词向量表表示为Tsource,由合成语料库Corpustarget训练得到的词向量表表示为Ttarget,对于相同的词键word,在不同的词向量表中对应的词向量值分别为Vs-wor和Vt-word
Vs-wo=Tsource[word]
Vt-word=Ttarqet[word]
要满足Vs-word和Vt-word之间的相似度小于一定的阈值,否则容易导致破解,经过实验验证,新增语料库内容与原始语料库内容的比值大于阈值limit,limit为大于0.01%的常数,一般可以达到要求,limit越大,要求的新增语料库与原始语料库内容比值就越大,Vt-wor和Vs-word的相似度就会越低。
作为本发明算法进一步改进,所述步骤3)中的待爬取的语料源数量的确定,采取自适应的原则,如果爬取N2层后,爬取到的语料内容与原始语料库内容不满足上述要求,则将语料源森林再向下加深N2层,形成每棵树有2N2层的语料源森林,将每棵树中N2+1层到2N2层的结点内容加入到合成语料库中,若还不满足要求,以此类推。
作为本发明算法进一步改进,所述步骤3)中根据密钥中的X4位对词向量表进行处理时,N4指示实数词向量中每个分量保留数字的位数,词向量的每一维的值用科学计数法表示,删除小数点,删除符号,之后的处理方式包括以下三种:(1)删除幂数,只保留尾数前N4位;(2)尾数保留前N4-1位,幂数移至第1位;(3)尾数保留前N4-1位,幂数移至第N4位。
处理方式如何选择有以下三种策略:(1)发送方与接收方在算法层面约定,注意,算法是公开的;(2)将方式的选择加入到密钥当中;
其中,策略(2)有利于增加攻击者的破解难度,但是增加了密钥位数。
作为本发明算法进一步改进,所述步骤5)中,每更新一次语料库,如果不做部分删除的操作,语料库将越来越庞大,要满足上述第4点提到的阈值要求,需要新加入的语料就更多。因此,可在算法层面约定每更新x次,得到对应的词向量表并用其加密后,下一次更新所用的原始语料库应还原为步骤5)中更新方式的选择,是根据实际传递信息的特点,在算法层面上确定的。不同的应用场景下,所传递的信息的规模具有规律性。既然算法是公开的,那么更新方式的选择即被公开,但不影响其安全性。
有益效果:本发明与现有技术相比,具有以下优点:
本发明方法提出了一种新型的改进一次性密码本便利性的加密思路,是目前唯一利用深度学习参数的不可解释性以及长训练耗时来进行加密的方法。与传统的加密算法相比,不是基于难解的数学问题,不是基于长密钥的难破解性,而是基于深度学习参数的不可解释性以及由于深度学习训练长耗时带来的暴力破解困难性。与最难破解的一次性密码本对比,更加具有便利性。一次性密码本每用一次,就要更换密钥,而本发明方法不需要更换密钥,即可实现密码本的更新。且密钥长度完全不需要与待加密文本等长,可以用有限的密钥长度传递大量任意长的信息。此外,考虑到密钥决定的是新添加的语料部分,形成合成语料库后,发送的内容也未必是在新添加语料部分的词汇,即使攻击者知晓了若干明文密文对,也无法推出密钥。
本发明提出的用深度学习辅助的新型加密方法还具有较好的通用性和可拓展性,不仅限于文本的加密,也可以用于二进制串的加密。密钥中的可拓展密钥位可以直接用于结合其他流行的对称加密算法,如AES等。本发明具有较好的应用前景和推广范围。
附图说明
图1为本发明方法的加解密过程逻辑流程图。
图2为本发明密码本自更新逻辑流程图。
图3为本发明语料源森林(树)示意图。
具体实施方式
下面结合附图与具体实施方式对本发明作进一步详细描述:
本发明通过对一次性密钥进行改进,利用深度学习结果的难解释性和训练时间长的特点来辅助加密,创造性地提出了自更新密码本的概念及其构建方法,降低密钥分配频率乃至解决密钥分配问题。本发明所构建的加密密钥长度短,并且有良好的拓展性,可以与经典加密算法的兼容。
本发明的基于词嵌入的新型加密方法,包括步骤为:
1)公开语料库的选择:针对文本数据,尽量选用词汇完备的语料库;对于一般的二进制数据,尽量选用字符完备的语料库。例如选择维基百科中文语料库。随后可将该语料库作为原始语料库公开。
2)密钥的确定:密钥内容由如下公式确定;
X=X1+X2+X3+X4+X5+X6+Xexte
其中,X表示密钥的总位数,其他符号的具体含义如下:
X1=32,表示一个IP地址,对该IP地址进行反向域名解析,得到起始网页集合S={r1,r2,...,rn},其中n是反向域名解析得到的域名个数,ri代表第i个域名对应的网页,每个网页下又包含若干链接。对于ri,则其包含的链接的集合为其中ni表示网页ri中包含的链接个数,rij表示ri中第j个链接对应的网页,以此类推。整个层次结构构成网页森林,ri为第i棵网页树的根,每个结点对应一个网页。
X2=2,该X2位二进制数N2表示初始网页树的深度,范围
X3=6,该X3位二进制数N3表示待训练的词向量的维度,目前低维的稠密词向量的维度一般是25~1000,考虑到加密的膨胀性不宜过大,取步进长度为step=23=8,初值start=50+N3min×step=50,终值end=50+N3max×step=554。则可训练出的词向量维度N3∈{50+k×step|k∈[N3min,N3ma],k∈N}。
X4=2,该X4位二进制数N4指示词向量中每个分量保留数字的位数,设定有效数字取值范围
X5=5、X6=1,该X5位二进制数N5和X6位二进制数N6共同指示双方均拿到密钥后经过延迟时间timedelay后开始进行首轮语料爬取和训练。timedelay由下式确定:
Xextend,表示可拓展密钥位,用于结合其他对称加密算法(如DES,AES等)对加密完成得到的词向量进行进一步加密。
3)基于Word Embedding的加密过程:
①合成语料库的构建
发送方根据密钥中的内容(X1位和X2位)构建语料源森林(树)。若根结点只有1个,则构建的是语料源树;若根节点大于1个,则构建的是语料源森林。为表述方便,下面统一称作语料源森林。语料源森林中每个结点rij包含两个部分,一个部分是该结点包含的文本内容,另外一个部分是该结点下所有子节点的地址(链接)。通过父结点与子结点的链接形成树的结构,爬取每个结点中的文本内容,将获取到的信息(文本内容)进行预处理后依次加入到原始的公开语料库中,即构建完合成语料库(保密)。
对于X1位二进制数表示IP地址的情况,语料源森林即为网页森林,根节点是对IP反向解析得到的若干网页。每个根网页中又包含若干链接,这些链接指向的网页,即为父网页的子网页。每个网页中都有一定的文本内容,将其爬取下来加入到原始语料库中,即形成合成语料库。
其中,爬虫过程要符合法律法规,还要采取各种措施,如采用代理IP、降低爬取速度、模拟浏览器等使爬虫更健壮。爬取过程不必追求速度,即使完全模拟浏览器的操作也是可以接受的,以防止爬取失败,影响随后的解密过程。而且要消除爬虫过程中其他的随机性,要禁止采用多线程多进程爬取,防止对于特定的密钥爬取到不同的新语料,影响收发双方合成语料库的一致性。必要时可以采用人工获取信息的方式。新加入的语料信息不要求和原始语料库语言相同,但都要经过调整编码、分词、去标点。
②词向量表的构建和调整
发送方根据密钥中X3位对合成语料库进行词嵌入模型训练,生成词嵌入/词向量表,再根据密钥中的X4位对词向量表进行处理,在表中索引以词为键的向量,并将向量拼接发送给接收方。
在词嵌入训练算法中有很多随机因素,这些因素的存在,使得在相同的密钥、相同的合成语料库等相同条件的约束下会训练出截然不同的词向量表。例如随机种子的设定、训练过程中运用多线程多进程带来的扰动等等。在加密端与解密端需要消除这些随机因素的影响。此外,实验证实,对于词word,在没有随机因素影响的情况下对应的词向量为Vword,在有随机因素影响的情况下对应的词向量为Vword′,Vword与Vword′的相似度极低,即不存在用多进程加速训练的词向量和单进程训练的词向量相似的情况,如果攻击者选择暴力破解,只能使用单线程单进程。也不存在用随机负采样方式训练的词向量和不采用负采样训练的词向量相似的情况,如果攻击者选择暴力破解,只能抛弃负采样这样的加速方式。此外,训练的迭代次数也会影响词向量的结果,可以将迭代次数的设定也添加到密钥内容中,在本例中默认训练的迭代次数为2。
对于生成的词向量表,其索引键是词汇,对应值是N3维的实数向量。设由原始语料库Corpussource训练得到的词向量表表示为Tsource,由合成语料库Corpustarget训练得到的词向量表表示为Ttarget,对于相同的词键word,在不同的词向量表中对应的词向量值分别为Vs-wor和Vt-wor
Vs-w=Tsource[word]
Vt-word=Ttarget[word]
Vs-word和Vt-word均为行向量。要满足Vs-wor和Vt-word之间的相似度小于一定的阈值,否则容易导致破解。其中,相似度的计算可以采用向量的余弦相似度方式,定义为:
similarityword=cos(Vs-word·Vt-word T)
经过实验验证,新增语料库内容与原始语料库内容的比值大于阈值limit,limit为大于0.01%的常数,一般可以达到要求。limit越大,要求的新增语料库与原始语料库内容比值就越大,Vt-word和Vs-word的相似度就会越低。经过实验验证,在含有32万余篇文章的中文维基百科语料库中,随着新添加语料中文章数的增加,Vs-word和Vt-word之间的相似度呈下降趋势。30余篇的文章的加入,足以让大部分词汇的Vs-word和Vt-wor不足50%。
为满足以上新添语料数量的要求,待爬取的网页数量的确定要采取自适应的原则。如果爬取N2层后,爬取到的语料内容与原始语料库内容不满足上述要求,则将网页森林再向下加深N2层,形成每棵树有2N2层的网页森林。将每棵树中N2+1层到2N2层的结点内容加入到合成语料库中,若还不满足要求,以此类推。
根据密钥中的X4位对词向量表进行处理时,N4指示实数词向量中每个分量保留数字的位数。词向量的每一维的值用科学计数法表示,删除小数点,删除符号。之后的处理方式包括但不限于以下三种:(1)删除幂数,只保留尾数前N4位;(2)尾数保留前N4-1位,幂数移至第1位;(3)尾数保留前N4-1位,幂数移至第N4位。
处理方式如何选择有以下三种策略:(1)发送方与接收方在算法层面约定,注意,算法是公开的;(2)将方式的选择加入到密钥当中。
其中,策略(2)有利于增加攻击者的破解难度,但是增加了密钥位数。
4)基于词嵌入的解密过程:与加密过程类似,接收方也需要根据密钥指示对网页森林中的各个结点的内容进行爬取,预处理后加入到原始语料库构建合成语料库,并进行词嵌入模型训练,得到词向量表并根据密钥进行处理,在表中查找向量对应的词,从而完成接收。
5)密码本的更新:自更新密码本是不需要更换密钥,能够定时实现自动更新的密码本。本发明中,处理后的词向量表即为密码本。而密码本是由合成语料库经过一系列步骤后得到的,因此,密码本的更新实质上就是合成语料库的更新。
本方法做出如下合理假设:
(1)发送方向接收方发送密钥后,接收方能够立即接收到,接收时间可以忽略不计。(2)从开始构建语料源森林,到完成合成语料库的更新,期间语料源森林中结点的内容(将要新添入的语料)是不变的。(3)发送方自开始构建语料源森林至完成密码本更新,期间不再发送新的信息;接收方自开始构建语料源森林至完成密码本更新,期间不再解密新的信息,密码本更新后才允许解密。双方完成密码本更新的时刻不必同步。
定义或重述相关变量如下:
timeinterval:在算法层面约定的语料库定期更新的时间;timenow:当前时刻;timestart:发送双方均掌握密钥的时刻;timedelay:从双方均掌握密钥到开始第一次构建语料源森林的延迟时间;time0,time1,...:语料源森林开始构建的时刻,即合成语料库的启动更新的时刻;time0′,time1′,...:发送方完成密码本更新的时刻;time0″,time1″,...:接收方完成密码本更新的时刻。在timei时刻前所用的原始语料库;timei时刻后更新的合成语料库。其中:
time0=timestart+timedelay
timei=timei-1+timeinterval,i=1,2,...
注意,除原始语料库可公开外,其他阶段的原始语料库由于实质上是上一阶段的合成语料库因此不能公开。
当timenow=time0,双方即开始构造语料源森林,获取语料源森林的结点内容,将其添加到原始语料库,形成合成语料库后各自进行词嵌入模型训练。双方由原始语料库得到的合成语料库是相同的,进而可得到相同的词向量表。当timenow=time1时, 可进一步更新为更新方式有如下两种:(1)按照N2拓展语料源森林中每棵树的深度,从新构建的语料源森林中获取更多语料源结点的内容,并添加进语料库。(2)由于发送与接收之间本身有信息传递,当传递的数据量足够大时,可以将其加入Corpussource,从而得到Corpustarge来进行词嵌入模型的训练。更新方式的选择可以在算法层面上约定。
注意,在这两种方案中,密钥内容均不用发生改变,即可实现密码本的更新,避免了一次性密码本(one-time pad)中每次发送完后需要更换密钥所带来的缺陷。更新为后,可训练出新的词向量表,双方可基于新的词向量表进行信息传递。以此类推,理论上在密钥不发生改变的情况下,也可以实现无限轮的语料库更新。
在采用更新方式二,将前一次传递的信息添加到原始语料库中生成合成语料库,相当于用“信息”加密“信息”,这里引出一个问题:
假设A是原始语料库中的词,同时也是新语料源中的词;B是原始语料库中的词,但不是新语料源中的词。用合成语料库训练得到词向量表后,是否存在明显的规律,即得到的VA′与VA的相似度,比VB′与VB的相似度一定小,或者一定大?通过实验可知,VA′与VA的相似度,和VB′与VB的相似度相比,没有发现明显规律,这正好也从局部表明了词向量本身及其各个维度的不可解释性。
此外,每更新一次语料库,如果不做部分删除的操作,语料库将越来越庞大,要满足上述第4点提到的阈值要求,需要新加入的语料就更多。因此,可在算法层面约定每更新x次,也可以将更新次数的设定添加到密钥内容当中。得到对应的词向量表并用其加密后,下一次更新所用的原始语料库应还原为
关于密钥中语料源森林(树)生成指示,还有其他方式。例如,可以使用论文的唯一ID作为密钥中的一部分,该论文的参考文献作为该论文结点的子节点们,由此可形成语料源树。
以上所述,仅是本发明的较佳实施例而已,并非是对本发明作任何其他形式的限制,而依据本发明的技术实质所作的任何修改或等同变化,仍属于本发明所要求保护的范围。
Claims (8)
1.一种基于词嵌入技术的加密算法,其特征在于:该方法包括以下部分:
1)利用公开语料库:针对文本数据,尽量选用词汇完备的语料库;对于一般的二进制数据,尽量选用字符完备的语料库,随后可将该语料库作为原始语料库公开;
2)可拓展的密钥设计:密钥位数;
X=X1+X2+X3+X4+X5+X6+Xextend
其中,X表示密钥的总位数,其它符号的具体含义如下:
X1:该X1位二进制数指示对原始语料库的操作,用于形成森林型数据结构或树型结构存储语料源,称为语料源森林或语料源树,当X1=32时,使该X1位二进制数表示一个IP地址,对该IP地址进行反向域名解析,得到起始网页集合S={r1,r2,...,rn},其中n是反向域名解析得到的域名个数,ri代表第i个域名对应的网页,每个网页下又包含若干链接,对于ri,则其包含的链接对应的网页的集合为其中ni表示网页ri中包含的链接个数,rij表示ri中第j个链接对应的网页,以此类推,整个层次结构构成网页森林,ri为第i棵网页树的根,每个结点对应一个网页;
X2:该X2位二进制数N2表示初始语料源树的深度;
X3:该X3位二进制数N3表示待训练的词向量的维度;
X4:该X4位二进制数N4指示对词向量表的处理,例如用N4来指示词向量中各维度的实数值保留数字的位数;
X5、X6:该x5位二进制数N5和X6位二进制数N6共同指示双方均拿到密钥后经过延迟时间timedelay后开始进行首轮语料获取和训练;
Xexten,表示可拓展密钥位,用于拓展加密方式,可与其他流行的安全加密方式相结合,提高安全性;
3)基于词嵌入技术的加密过程设计:发送方根据密钥中的内容X1位和X2位构建源森林或语料源树,若根结点只有1个,则构建的是语料源树;若根节点大于1个,则构建的是语料源森林,为表述方便,下面统一称作语料源森林,语料源森林中每个结点rij包含两个部分,一个部分是该结点包含的文本内容,另外一个部分是该结点下所有子节点的地址,通过父结点与子结点的链接形成树的结构,爬取每个结点中的文本内容,将获取到的文本内容进行预处理后依次加入到原始的公开语料库中,即构建完合成语料库,之后,发送方根据密钥中X3位对合成语料库进行词嵌入模型的训练,生成词嵌入/词向量表,再根据密钥中的X4位对词向量表进行处理,在表中索引以词为键的向量,并将向量拼接发送给接收方;
4)基于词嵌入模型的解密过程设计:与加密过程类似,接收方也需要根据密钥指示对语料源森林中的各个结点的内容进行爬取,预处理后加入到原始语料库构建合成语料库,并进行词嵌入模型训练,得到词向量表并根据密钥进行处理,在表中查找向量对应的词,从而完成接收,不同于传统密码本以及一次性密码本,该算法提出了自更新密码本的概念,即不需要更换密钥,收发双方也能进行同步的更新;
5)自更新密码本的构建:自更新密码本是不需要更换密钥,能够定时实现自动更新的密码本,处理后的词向量表即为密码本,而密码本是由合成语料库经过一系列步骤后得到的,因此,密码本的更新实质上就是合成语料库的更新。
2.根据权利要求1所述的一种基于词嵌入技术的加密算法,其特征在于:所述加密算法做出如下合理假设;
(1)发送方向接收方发送密钥后,接收方能够立即接收到,接收时间可以忽略不计;
(2)从开始构建语料源森林,到完成合成语料库的更新,期间语料源森林中结点的内容,即将要新添入的语料是不变的;
(3)发送方自开始构建语料源森林至完成密码本更新,期间不再发送新的信息;接收方自开始构建语料源森林至完成密码本更新,期间不再解密新的信息,密码本更新后才允许解密,双方完成密码本更新的时刻不必同步;
定义或重述相关变量如下:
timeinterval:在算法层面约定的语料库定期更新的时间;timenow:当前时刻;timestart:发送双方均掌握密钥的时刻;timedelay:从双方均掌握密钥到开始第一次构建语料源森林的延迟时间;time0,time1,...:语料源森林开始构建的时刻,即合成语料库的启动更新的时刻;time0′,time1′,...:发送方完成密码本更新的时刻;time0″,time1″,...:接收方完成密码本更新的时刻。在timei时刻前所用的原始语料库;timei时刻后更新的合成语料库,其中:
time0=timestart+timedelay
timei=timei-1+timeinterval,i=1,2,...
注意,除原始语料库可公开外,其他阶段的原始语料库实质上是上一阶段的合成语料库,因此不能公开;
当timenow=time0,双方即开始构造语料源森林,获取语料源森林的结点内容,将其添加到原始语料库,形成合成语料库后各自进行词嵌入模型训练,双方由原始语料库得到的合成语料库是相同的,进而可得到相同的词向量表。当timenow=time1时, 可进一步更新为更新方式有如下两种:
(1)按照N2拓展语料源森林中每棵树的深度,从新构建的语料源森林中获取更多语料源结点的内容,并添加进语料库;
(2)由于发送与接收之间本身有信息传递,当传递的数据量足够大时,可以将其加入Corpussource,从而得到Corpustar来进行词嵌入模型的训练,更新方式的选择可以在算法层面上约定,
注意,在这两种方案中,密钥内容均不用发生改变,即可实现密码本的更新,避免了一次性密码本中每次发送完后需要更换密钥所带来的缺陷。更新为后,可训练出新的词向量表,双方可基于新的词向量表进行信息传递,以此类推,理论上在密钥不发生改变的情况下,也可以实现无限轮的语料库更新。
3.根据权利要求1所述的一种基于词嵌入技术的加密算法,其特征在于:所述步骤3)中的爬虫过程,要采取各种措施,如采用代理IP、降低爬取速度、模拟浏览器相关措施使爬虫更健壮,爬取过程不必追求速度,即使完全模拟浏览器的操作也是可以接受的,以防止爬取失败,影响随后的解密过程,而且要消除爬虫过程中其他的随机性,要禁止采用多线程多进程爬取,防止对于特定的密钥爬取到不同的新语料,影响收发双方合成语料库的一致性,当待获取的内容不允许爬虫或不适宜爬虫操作时,可采用人工添加语料源的方式,为方便讨论,一下统一用“爬取”一词。
4.根据权利要求1所述的一种基于词嵌入技术的加密算法,其特征在于:所述步骤3)中的预处理,按照如下预处理的方式进行:新加入的语料库不要求和原始语料库语言相同,但都要经过调整编码、分词、去标点。
5.根据权利要求1所述的一种基于词嵌入技术的加密算法,其特征在于:所述步骤3)中生成的词向量表为字典形式,其索引键是词汇,对应值是N3维的实数向量,设由原始语料库Corpussource训练得到的词向量表表示为Tsource,由合成语料库Corpustarget训练得到的词向量表表示为Ttarget,对于相同的词键word,在不同的词向量表中对应的词向量值分别为Vs-word和Vt-wo
Vs-word=Tsource[word]
Vt-word=Ttarget[word]
要满足Vs-wor和Vt-wor之间的相似度小于一定的阈值,否则容易导致破解,经过实验验证,新增语料库内容与原始语料库内容的比值大于阈值limit,limit为大于0.01%的常数,一般可以达到要求,limit越大,要求的新增语料库与原始语料库内容比值就越大,Vt-wor和Vs-word的相似度就会越低。
6.根据权利要求1所述的一种基于词嵌入技术的加密算法,其特征在于:所述步骤3)中的待爬取的语料源数量的确定,采取自适应的原则,如果爬取N2层后,爬取到的语料内容与原始语料库内容不满足上述要求,则将语料源森林再向下加深N2层,形成每棵树有2N2层的语料源森林,将每棵树中N2+1层到2N2层的结点内容加入到合成语料库中,若还不满足要求,以此类推。
7.根据权利要求1所述的一种基于词嵌入技术的加密算法,其特征在于:所述步骤3)中根据密钥中的X4位对词向量表进行处理时,N4指示实数词向量中每个分量保留数字的位数,词向量的每一维的值用科学计数法表示,删除小数点,删除符号,之后的处理方式包括以下三种:(1)删除幂数,只保留尾数前N4位;(2)尾数保留前N4-1位,幂数移至第1位;(3)尾数保留前N4-1位,幂数移至第N4位。
处理方式如何选择有以下三种策略:(1)发送方与接收方在算法层面约定,注意,算法是公开的;(2)将方式的选择加入到密钥当中;
其中,策略(2)有利于增加攻击者的破解难度,但是增加了密钥位数。
8.根据权利要求1所述的一种基于词嵌入技术的加密算法,其特征在于:所述步骤5)中,每更新一次语料库,如果不做部分删除的操作,语料库将越来越庞大,要满足上述第4点提到的阈值要求,需要新加入的语料就更多。因此,可在算法层面约定每更新x次,得到对应的词向量表并用其加密后,下一次更新所用的原始语料库应还原为
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910238958.7A CN110008723B (zh) | 2019-03-27 | 2019-03-27 | 一种基于词嵌入技术的加解密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910238958.7A CN110008723B (zh) | 2019-03-27 | 2019-03-27 | 一种基于词嵌入技术的加解密方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110008723A true CN110008723A (zh) | 2019-07-12 |
CN110008723B CN110008723B (zh) | 2022-11-15 |
Family
ID=67168449
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910238958.7A Active CN110008723B (zh) | 2019-03-27 | 2019-03-27 | 一种基于词嵌入技术的加解密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110008723B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110378486A (zh) * | 2019-07-15 | 2019-10-25 | 出门问问信息科技有限公司 | 网络嵌入方法、装置、电子设备和存储介质 |
CN110401536A (zh) * | 2019-08-19 | 2019-11-01 | 东南大学 | 一种基于深度学习的通用加密算法 |
CN112464068A (zh) * | 2021-01-27 | 2021-03-09 | 北京创业光荣信息科技有限责任公司 | 数据处理方法、装置及电子设备 |
CN113434895A (zh) * | 2021-08-27 | 2021-09-24 | 平安科技(深圳)有限公司 | 文本解密方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020041684A1 (en) * | 1999-01-29 | 2002-04-11 | Mototsugu Nishioka | Public-key encryption and key-sharing methods |
CN107491444A (zh) * | 2017-08-18 | 2017-12-19 | 南京大学 | 基于双语词嵌入技术的并行化词对齐方法 |
CN109213995A (zh) * | 2018-08-02 | 2019-01-15 | 哈尔滨工程大学 | 一种基于双语词嵌入的跨语言文本相似度评估技术 |
-
2019
- 2019-03-27 CN CN201910238958.7A patent/CN110008723B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020041684A1 (en) * | 1999-01-29 | 2002-04-11 | Mototsugu Nishioka | Public-key encryption and key-sharing methods |
CN107491444A (zh) * | 2017-08-18 | 2017-12-19 | 南京大学 | 基于双语词嵌入技术的并行化词对齐方法 |
CN109213995A (zh) * | 2018-08-02 | 2019-01-15 | 哈尔滨工程大学 | 一种基于双语词嵌入的跨语言文本相似度评估技术 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110378486A (zh) * | 2019-07-15 | 2019-10-25 | 出门问问信息科技有限公司 | 网络嵌入方法、装置、电子设备和存储介质 |
CN110378486B (zh) * | 2019-07-15 | 2021-12-03 | 出门问问信息科技有限公司 | 网络嵌入方法、装置、电子设备和存储介质 |
CN110401536A (zh) * | 2019-08-19 | 2019-11-01 | 东南大学 | 一种基于深度学习的通用加密算法 |
CN110401536B (zh) * | 2019-08-19 | 2022-09-09 | 东南大学 | 一种基于深度学习的通用加密算法 |
CN112464068A (zh) * | 2021-01-27 | 2021-03-09 | 北京创业光荣信息科技有限责任公司 | 数据处理方法、装置及电子设备 |
CN113434895A (zh) * | 2021-08-27 | 2021-09-24 | 平安科技(深圳)有限公司 | 文本解密方法、装置、设备及存储介质 |
CN113434895B (zh) * | 2021-08-27 | 2021-11-23 | 平安科技(深圳)有限公司 | 文本解密方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110008723B (zh) | 2022-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110008723A (zh) | 一种基于词嵌入技术的加密算法 | |
US11709948B1 (en) | Systems and methods for generation of secure indexes for cryptographically-secure queries | |
CN110110163B (zh) | 安全子字符串搜索以过滤加密数据 | |
US8345876B1 (en) | Encryption/decryption system and method | |
Bethencourt et al. | New techniques for private stream searching | |
US20170300713A1 (en) | Method and System for Verifiable Searchable Symmetric Encryption | |
CN108334612A (zh) | 一种针对密文域的形近汉字全文模糊检索方法 | |
Wei et al. | FSSE: Forward secure searchable encryption with keyed-block chains | |
Pulls et al. | Balloon: A forward-secure append-only persistent authenticated data structure | |
CN108599934B (zh) | 一种用于量子密钥分发的可验安全保密增强方法 | |
CN107168998A (zh) | 一种基于保留格式的数据库透明加密方法 | |
Limbong et al. | Testing the classic caesar cipher cryptography using of matlab | |
US20230291585A1 (en) | Method of generating a public key | |
CN110401536A (zh) | 一种基于深度学习的通用加密算法 | |
CN107612969B (zh) | 基于B-Tree布隆过滤器的云存储数据完整性审计方法 | |
US20230134619A1 (en) | Method of generating a hash-based message authentication code | |
Tang et al. | Design and implementation of information hiding system based on RGB | |
Panchal | Differential privacy and natural language processing to generate contextually similar decoy messages in honey encryption scheme | |
Saini | A survey on watermarking web contents for protecting copyright | |
KR101232385B1 (ko) | 대칭키 기반의 암호 생성 및 검색 방법과 그 시스템 | |
Yang et al. | Effective error-tolerant keyword search for secure cloud computing | |
AL-Shakarchy et al. | Cryptographic system based on Unicode | |
CN108924380B (zh) | 一种基于Visio网络拓扑结构图自生成的隐写方法 | |
Alpatskiy et al. | New Approach in the Rainbow Tables Method for Human-Like Passwords | |
CN113626485B (zh) | 一种适用于数据库管理系统的可搜索加密方法及系统 |
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 |