首页 / 专利库 / 商业 / 硬币接受器 / 基于安全多方下的时间序列异常检测方法及系统

基于安全多方下的时间序列异常检测方法及系统

阅读:504发布:2020-05-11

专利汇可以提供基于安全多方下的时间序列异常检测方法及系统专利检索,专利查询,专利分析的服务。并且本 发明 提出了一种基于安全多方下的时间序列 异常检测 系统及方法,所述系统包括服务端和用户端,其中,服务端至少有两个 服务器 :服务器C和服务器S;所述服务端分布式存储着形成一个完备的数据集的时间序列;服务器C是为用户端提供服务的服务器,服务器S与服务器C之间基于BCP加密系统进行时间序列的多方共享,服务器S是半诚实的,拥有可用于解密的主密钥mk,在所有S参与的运算中都加入扰动,防止S获得有关用户的相关信息;服务器C和服务器S初始化BCP加密系统;服务器C将存储于其上的时间序列加密后提供给服务器S;服务器S在安全协议下进行时间序列的异常检测。本发明提出的基于安全多方下的时间序列异常检测是具有很大的实用价值的。,下面是基于安全多方下的时间序列异常检测方法及系统专利的具体信息内容。

1.一种基于安全多方下的时间序列异常检测系统,其特征在于,所述系统包括服务端和客户端,其中,服务端至少有两个服务器:服务器C和服务器S;所述服务端分布式存储着形成一个完备的数据集的时间序列;服务器C是为客户端提供服务的服务器,服务器S与服务器C之间基于BCP加密系统进行时间序列的多方共享,服务器S是半诚实的,拥有可用于解密的主密钥mk,在所有S参与的运算中都加入扰动,防止S获得有关用户的相关信息;服务器C和服务器S初始化BCP加密系统;所述BCP加密系统基于同态加密:对经过同态加密的数据进行处理得到一个输出,将这一输出进行解密,其结果与用同一方法处理未加密的原始数据得到的输出结果是一样的;服务器S将生成的公共参数广播出去;客户端接收到公共参数之后生成公钥和私钥,每个客户端都广播公钥,保留私钥;客户端再将自身的时间序列数据通过私钥加密后上传到服务器C上存储;当有运算请求的时候,服务器C和服务器S对时间序列进行协同运算出异常序列的结果,并将结果返回请求客户端,客户端利用自己的私钥解密得到明文结果;所述时间序列的异常检测采用欧式距离进行相似性度测量,主要涉及的运算有加法、乘法和比较运算;其中,
所述加法运算采用安全多方加法协议SAP实现,具体为:给定两个在不同公钥下加密的密文 服务器C想要知道这两个数的和[x+y]Prod.pk,Prod.pk是所有公钥的乘积,同样在BCP中可以用mk去解密Prod.pk下加密的密文,
(1)首先选择两个随机数 服务器C计算:
(2)将X和Y发送到服务器S,S用主密钥mk解密,然后计算Z=x+ra+y+rb,将Z加密成[Z]Prod.pk再发送到服务器C;
(3)服务器C接收到了[Z]Prod.pk,计算R=ra+rb,将R加密成[R]Prod.pk再计算[Z]Prod.pk·([R]Prod.pk)N-1=[Z-R]Prod.pk=[x+y]Prod.pk。
2.根据权利要求1所述的系统,其特征在于:所述乘法运算采用安全多方乘法协议SMP实现,具体为:给定两个在不同公钥下加密的密文 服务器C想要知道这两个数的乘积[x*y]Prod.pk,
(1)首先选择两个随机数 服务器C计算:
(2)将X和Y发送到服务器S,S用主密钥mk解密,然后计算Z=(x+ra)*(y+rb),将Z加密成[Z]Prod.pk再发送到服务器C;
(3)服务器C接收到了[Z]Prod.pk,计算
[Z-rb·x-ra·y-ra·rb]Prod.pk=[x·y]Prod.pk。
3.根据权利要求2所述的系统,其特征在于:所述比较运算采用安全多方比较协议SMIN实现,具体为:给定两个在不同公钥下加密的密文 服务器C想要知道这两个数的大小[min(x,y)]Prod.pk,
(1)服务器C和服务器S共同计算以下公式:
(2)一旦获得了[u*]Prod.pk,服务器C计算
[min(x,y)]Prod.pk=[y]Prod.pk·([Y]Prod.pk)N-1·[X]Prod.pk=[(1-u*)y+u*x]Prod.pk,其中,安全小于协议SLT即给定两个在不同公钥下加密的密文 期望获
得[u*]Prod.pk,u*是表达x与y之间的大小关系,
(1)首先服务器C计算
服务器C抛掷一枚硬币,如果是正面,计算
如果是反面,计算
(2)服务器C选择一个随机数r, 其中 表示u的二进制长度;计算
[l1]Prod.pk=([l]Prod.pk)r,将[l1]Prod.pk发送到服务器S;
(3)服务器S解密[l1]Prod.pk得到l1,u*=1当 否则u*=0,然后将u*加密成[u*]Prod.pk发送到服务器C;
*
(4)服务器C接收到[u]Prod.pk,如果刚刚抛掷的硬币是正面朝上,则不处理,否则计算[u*]Prod.pk=[1]Prod.pk·([u*]Prod.pk)N-1=[1-u*]Prod.pk
(5)如果u*=0,表示x≥y,如果u*=1,表示x<y。
4.一种基于安全多方下的时间序列异常检测方法,所述方法基于根据权利要求1-3任一项所述的检测系统,其特征在于,所述方法具体包括如下步骤:
步骤1、服务器C和服务器S初始化BCP加密系统,服务器S将生成的公共参数广播出去;
步骤2、客户端接受到公共参数之后生成公钥和私钥,每个客户端都广播公钥,保留私钥;客户端再将自身的时间序列数据通过公钥加密后上传到服务器C上存储;
步骤3、当有运算请求的时候,服务器C和服务器S按照协议要求对时间序列进行协同运算出异常序列的结果,并将结果返回请求客户端,客户端利用自己的私钥解密得到明文结果。

说明书全文

基于安全多方下的时间序列异常检测方法及系统

技术领域

[0001] 本发明涉及异常检测技术领域,特别涉及一种基于安全多方下的时间序列异常检测方法及系统。

背景技术

[0002] 在实际生活中,各个领域都包含大量的时间序列数据,例如病人的心电图数据、脑电图数据、发电厂大量传感器的参数数据以及网络流数据等等。而时间序列的异常子序列(模式)检测是一个十分重要的领域,含异常模式的时间序列大部分数据表现为正常形态,异常模式出现频率极少,但极少出现的异常模式却包含相当重要的信息。异常的心电数据意味着病人可能患有某种类型的心脏疾病,异常的脑电数据可能是由癫痫等脑科疾病引起,及时发现病人的异常心电或者脑电数据可以对后续的治疗起到指导作用;而工厂传感器数据异常可能意味着系统某个部分出现了故障,及时发现异常并对系统故障进行修护能减少损失。因此,时间序列数据的异常子序列检测研究极具现实意义。
[0003] 关于时间序列异常检测的研究国内外相关学者已经做过了大量的工作。Dasgupta提出将免疫学中的思想运用到时间序列异常模式检测当中。该方法利用自身免疫系统能够区分自身细胞、分子和外部细胞、分子的特点,将时间序列进行编码处理后利用负向选择原理区别自身及外部细胞或分子,从而进行时间序列异常模式检测。Junshui Ma提出利用One-Class SVM进行时间序列的异常模式检测,其思想源于One-Class SVM能够检测向量数据集中的异常点,通过将时间序列数据转化到相空间之后,利用正类训练数据训练出模型,最后使用训练出来的模型对时间序列进行检测看是否偏离模型,这样就能进行时间序列的异常模式检测。Keogh提出了HOT SAX方法来发现时间序列中的异常子序列,该方法将时间序列转化为SAX表示方法,利用启发式方法来改进时间序列子序列的检测顺序,从而极大提高了时间序列异常子序列检测效率。Izakian提出利用模糊C均值聚类的方法来进行时间序列异常子序列检测,其思想为将时间序列子序列利用模糊C均值聚类方法进行聚类,聚类簇中心反映了时间序列的模式结构,对原始子序列用聚类中心来进行重新构建,正常的子序列模式结构能够通过聚类簇中心较好的重构,而异常子序列难以通过聚类中心重构,通过比较利用聚类簇中心重构之后的子序列与原子序列差异性,来寻找异常子序列。Sivaraks提出利用主题发现的方法来检测出心电数据中的异常心跳,此种思想也可以运用到其它时间序列的异常子序列检测当中。该方法通过分析心电数据特点并提取出重复出现的模式,并通过比较序列中候选子序列模式与主题之间的相似性,来确定模式是否为异常心电模式,该方法相比其余异常子序列检测算法无需设置异常子序列长度,且结合了心电数据领域知识,检测准确率很高。国内也进行了相关的研究。最先进行研究的是上海复旦大学的肖辉,其将线段作为模式,检测的基本原理是将时间序列转化为多个线段模式,并通过基于模式密度定义的异常度来衡量模式的异常程度,并将异常程度高的模式作为异常。詹艳艳也提出了在时间序列线性表示模式的基础上进行异常模式检测的方法,该算法的思想是如果模式为异常模式,那么该模式出现的频率必然很低,所以对于出现频率低的模式赋予较高的异常值,而对于出现频率较高的模式赋予较低的异常值,异常值高的模式则为异常模式。杜洪波提出利用局部线性映射来检测时间序列中异常模式,其思想为针对时间序列中每个模式,将其通过邻域内的模式进行重构,比较重构后的模式与原模式之间的差异性,重构误差越大的子序列越可能是异常模式。汪斐将时间序列异常子序列检测方法HOTSAX用于在线时间序列数据的异常检测当中,从而实现时间序列数据的动态增量式异常检测。李桂玲提出时间序列的PAA变化模式表示,并利用其聚类结果来寻找时间序列异常,即利用聚类结果启发序列的搜索顺序,从而检测时间序列异常子序列。
[0004] 在计算技术日益发展的今天,越来越多的人会选择把自己的数据放到云上去存储或是运算,运用云计算技术可以使时间序列异常检测的效率会大大提高,但是云计算的安全性一直令人担忧。如何保证数据在云服务器的端的安全性(包括存储的安全性和运算的安全性)也是一个重要的研究领域。在已有的时间序列的研究中对云端安全性的研究还是相对匮乏。

发明内容

[0005] 为了克服现有技术的不足,本发明的目的在于提供一种基于安全多方下的时间序列异常检测方法及系统。
[0006] 本发明的目的通过以下技术方案实现:一种基于安全多方下的时间序列异常检测系统,所述系统包括服务端和用户端,其中,服务端至少有两个服务器:服务器C和服务器S;所述服务端分布式存储着形成一个完备的数据集的时间序列;服务器C是为用户端提供服务的服务器,服务器S与服务器C之间基于BCP加密系统进行时间序列的多方共享,服务器S是半诚实的,拥有可用于解密的主密钥mk,在所有S参与的运算中都加入扰动,防止S获得有关用户的相关信息;服务器S运行BCP初始化程序,将生成的公共参数广播出去,客户端接收到公共参数之后生成公钥和私钥,每个客户端都广播公钥,保留私钥;客户端再将自身的时间序列数据通过公钥加密后上传到服务器C上存储;当有运算请求的时候,服务器C和服务器S按照协议要求协同运算出结果返回请求客户端。
[0007] 另一方面,一种基于安全多方下的时间序列异常检测方法,所述方法基于本发明的异常检测系统,具体包括如下步骤:
[0008] 步骤1、服务器C和服务器S初始化BCP加密系统;
[0009] 步骤2、服务器C将存储于其上的时间序列加密后提供给服务器S;
[0010] 步骤3、服务器S在安全协议下进行时间序列的异常检测。
[0011] 与现有技术相比,本发明具有以下优点和技术效果:本发明使得在单方下异常检测出现的问题在多方中都很好的得到了解决,而且本发明设计的安全协议又解决了多方下的隐私问题。因此,本发明提出的基于安全多方下的时间序列异常检测是具有很大的实用价值的。附图说明
[0012] 图1是分属于A和B两家医院的同一患者的心电图(ECG)数据;
[0013] 图2是本发明的基于安全多方下的时间序列异常检测系统示意图;
[0014] 图3是三种安全运算在数据长度N=1024时的性能;
[0015] 图4是三种安全运算在不同数据长度下的性能。具体实施方案
[0016] 下面通过具体实施方式结合附图对本发明作进一步详细说明,但本发明的实施方式不限于此。
[0017] 现有技术中都是认为时间序列数据是集中的,所采取的算法也都是认为当前的数据集是完备的。而在实际应用中,数据分布往往是分散的,例如患者的心电数据,可能在某一个地区的A、B、C三家医院都保存某一个患者的心电数据。因此当分析该患者的心电数据时,就需要将A、B、C三家的数据整合在一起形成一个完备的数据集,在完备的数据及上进行数据挖掘
[0018] 如附图1所示,时间序列A和时间序列B是分别属于A和B两家医院的同一患者的心电图(ECG)数据。B医院现在想在时间序列B上发现异常,如果B医院只考虑时间序列B的情况,那么按照时间序列异常的定义子序列x1是有最大异常度的序列,会判定x1为异常子序列,可实际上时间序列B中x1以后的数据都是不正常的,反而x1作为正常的数据在不正常的数据中间显得“不正常”。但是当考虑时间序列A时,由于A中的数据都是正常的,和x1的模式都很相似,结合之后发现x2拥有最大的异常度,因此,算法判定x2是异常子序列。所以,引入多方参与之后,可以解决在单方下无法解决的问题。
[0019] 但同时应该注意到,数据作为一个重要的资源,对于拥有者来说往往是很具有价值的,尤其是医院患者的信息,是一种典型的高度隐私数据。需要A、B、C三家的数据来做数据挖掘,但是A、B、C中的任何一个都不希望另外两家知道自己的隐私数据,在这样的一个条件下,依然想得到从完备数据集中分析得出的结果,因此这就涉及到一个安全多方计算的问题。
[0020] 本发明将时间序列异常的定义扩展到适用于多方参与的情况下,设计了安全检测算法检测时间序列异常,采取的安全加密算法允许输入的数据在不同的公钥加密,并能对不同公钥加密的数据进行运算。另外,本发明提出的算法都是可并行的,无论是在多核和分布式系统中都能够并行处理。
[0021] 本发明参考引用以下文献:
[0022] 非专利文献1:Bresson E,Catalano D,Pointcheval D.A Simple Public-Key Cryptosystem with a Double Trapdoor Decryption Mechanism and Its Applications[C]//Advances in Cryptology-ASIACRYPT 2003,International Conference on the Theory and Application of Cryptology and Information Security,Taipei,Taiwan,November 30-December 4,2003,Proceedings.DBLP,2003:37-54.
[0023] 非专利文献2:Peter A,Tews E,Katzenbeisser S.Efficiently Outsourcing Multiparty Computation Under Multiple Keys[J].IEEE Transactions  on Information Forensics&Security,2013,8(12):2046-2058.
[0024] 非专利文献3:Liu X,Deng R H,Choo K K R,et al.An Efficient Privacy-Preserving Outsourced Calculation Toolkit With Multiple Keys[J].IEEE Transactions on Information Forensics&Security,2016,11(11):2401-2414.[0025] 本发明使用的加密算法是基于同态加密的BCP加密系统(参考非专利文献1-3),同态加密就是指加密算法具有同态性。对经过同态加密的数据进行处理得到一个输出,将这一输出进行解密,其结果与用同一方法处理未加密的原始数据得到的输出结果是一样的。用公式表示为:
[0026] Dsk([m1]pk·[m2]pk)=m1+m2
[0027] 其中,pk表示公钥,sk表示私钥,[m1]pk表示m1用pk加密,Dsk([m1]pk)表示用sk解密。
[0028] 而BCP加密系统是一种特殊的同态加密算法,BCP有一个很重要的特点就是它有两套解密服务。在前面的描述中,解密用的是私钥sk,但在BCP中还有一种称之为主密钥的参数可以解密加密数据,主密钥用mk表示。
[0029] 本发明的系统模型如附图2所示,首先,在服务器端使用两个服务器:服务器C和服务器S,其中服务器S是半诚实的,拥有可以解密的主密钥mk。意味着服务器S会按照协议的规定执行每一个步骤,但是可能会试图通过协议执行过程中得到的中间信息分析并推断其他参与方的相关输入输出信息。因此,在所有S参与的运算中,都要加入扰动,防止S获得有关用户的相关信息。
[0030] 服务器C和S对于加法的协同运算过程简述如下:
[0031] 由于同态加的算法要求两个密文必须是同一个公钥加密的情况下才能运算,即:
[0032] ([m1]pk·[m2]pk)=[m1+m2]pk
[0033] 如果两个密文是不同公钥加密的,那么则无法直接运算,[m1]pk1·[m2]pk2无法直接运算。但是在多方计算中各方的公钥都是不同的,因此涉及到多方下密文的运算就需要服务器C和服务器S协同运算。首先每个客户端的公钥是所有参与方都知道的,因此服务器C将这两个密文都加入扰动,通过计算:
[0034] [m1]pk1·[r1]pk1=[m1+r1]pk1
[0035] [m2]pk2·[r2]pk2=[m2+r2]pk2
[0036] 将[m1+r1]pk1和[m2+r2]pk2都发送给服务器S,S有主密钥可以解密这两个密文,得到明文后再将这两个明文数据相加,得到m1+r1+m2+r2,将m1+r1+m2+r2用某个客户端的公钥加密后发送到服务器C,服务器C知道扰动r1,和r2的值,将扰动去掉后就得到[m1+m2]pk。这时将此密文数据发送到客户端,客户端利用自己的私钥解密得到明文结果。
[0037] 本发明的系统主要是检测时间序列的异常,而用到最多的运算就是时间序列的相似性的计算,采用的相似性度量是欧式距离,而欧式距离的定义是子序列A=(a1,a2,...,an)和子序列B=(b1,b2,...,bn)之间的欧式距离 欧式距离的运算主要用到了加法和乘法,开方运算可以省略,因为开方运算只是影响了结果的最终取值,没有改变相对大小,即开方前最大大的数开方后也一定最大。另外在异常检测的过程中,还用到了异常度的比较,异常度最大的子序列为异常子序列,而异常度的定义是子序列到其最近邻的距离,因此涉及到比较的运算。所以综上考虑,本发明的安全多方下的时间序列异常检测主要涉及的运算有加法、乘法和比较运算。
[0038] 针对以上所需要的加法、乘法和比较运算,本发明设计了三种协议去实现在安全多方下实现加法(SAP)、乘法(SMP)、和比较运算(SMIN)。
[0039] SAP:给定两个在不同公钥下加密的密文 服务器C想要知道这两个数的和,SAP算法的目标就是得到[x+y]Prod.pk。Prod.pk是所有公钥的乘积,同样在BCP中可以用mk去解密Prod.pk下加密的密文。
[0040] 1、首先选择两个随机数ra, 服务器C计算:
[0041]
[0042] 2、将X和Y发送到服务器S,S用主密钥mk解密,然后计算Z=x+ra+y+rb,将Z加密成[Z]Prod.pk再发送到服务器C
[0043] 3、服务器C接收到了[Z]Prod.pk,计算R=ra+rb,将R加密成[R]Prod.pk再计算[0044] [Z]Prod.pk·[R]Prod.pkN-1=[Z-R]Prod.pk=[x+y]Prod.pk
[0045] 这样SAP算法就完成了,整个过程满足了先前所讨论的所有要求,因此可以认定是安全的。(在BCP加密算法中,[m]pkN-1=[-m]pk,详细证明过程参见参考非专利文献1、2。)[0046] SMP:给定两个在不同公钥下加密的密文 服务器C想要知道这两个数的乘积,SMP算法的目标就是得到[x*y]Prod.pk。
[0047] 1、首先选择两个随机数ra, 服务器C计算:
[0048]
[0049] 2、将X和Y发送到服务器S,S用主密钥mk解密,然后计算Z=(x+ra)*(y+rb),将Z加密成[Z]Prod.pk再发送到服务器C;
[0050] 3、服务器C接收到了[Z]Prod.pk,计算
[0051] [Z-rb·x-ra·y-ra·rb]Prod.pk=[x·y]Prod.pk。
[0052] 在介绍SMIN之前,先介绍一个前导协议——安全小于协议SLT,即给定两个在不同公钥下加密的密文 SLT协议就是期望获得[u*]Prod.pk,其中u*是表达x与y之间的大小关系。
[0053] 1、首先服务器C计算
[0054]
[0055]
[0056] 服务器C抛掷一枚硬币,如果是正面,计算(这里的l只是一个中间变量)[0057]
[0058] 如果是反面,计算
[0059]
[0060] 2、服务器C选择一个随机数r, 其中 表示u的二进制长度。计算[l1]Prod.pk=([l]Prod.pk)r,将[l1]Prod.pk发送到服务器S;
[0061] 3、服务器S解密[l1]Prod.pk得到l1,令u*=1当 否则u*=0.然后将u*加密成[u*]Prod.pk发送到服务器C;
[0062] 4、服务器C接收到[u*]Prod.pk,如果刚刚抛掷的硬币是正面朝上,则不处理,否则计算
[0063] [u*]Prod.pk=[1]Prod.pk·([u*]Prod.pk)N-1=[1-u*]Prod.pk
[0064] 5、如果u*=0,表示x≥y,如果u*=1,表示x<y.
[0065] SMIN:给定两个在不同公钥下加密的密文 SMIN协议就是获得[min(x,y)]Prod.pk·
[0066] 1、服务器C和服务器S共同计算以下公式:
[0067]
[0068]
[0069]
[0070]
[0071] 2、一旦获得了[u*]Prod.pk,服务器C计算
[0072]
[0073] 首先,本发明测试了三种安全协议的效率,如附图2所示,采用的BCP加密算法中,N的大小是1024比特,附图2中所有的时间均采用了一千次运算求均值的方法防止其他原因影响结果。
[0074] 表1三种安全运算的性能
[0075]
[0076] 在BCP加密算法中,N的长度很重要,公钥、私钥、主密钥的生成以及明文的长度都和N有着密切的关联。表1中只考虑了N的长度是1024比特时的情景,改变N的值后会有什么样的情况呢?如附图3所示,同样的对于每一个数据,都是运算1000次求它的平均值。
[0077] 从附图3可以看出,随着N的长度的不断增加,算法开销有着明显的增长,这就意味着N越大,需要运算的时间就越多。
[0078] 上面的试验中所采用的明文长度都是一样的,在BCP加密算法中,对明文的要求是那么明文大小的改变会影响BCP加密算法的效率么?
[0079] 从附图4可以看出,随着明文长度的变化,各个协议所耗费的时间几乎不变,这就说明明文的大小对于BCP加密算法来说没有影响。这也是可以解释的,因为在BCP加密算法中,无论明文的大小多大,只要明文满足 BCP加密算法都会将明文加密成N的这个大小,所以在基于密文的运算上,只要N保持不变,无论明文的大小多大,所耗费的时间是差不多的。
[0080] 本发明使得在单方下异常检测出现的问题在多方中都很好的得到了解决,而且本发明设计的安全协议又解决了多方下的隐私问题。因此,本发明提出的基于安全多方下的时间序列异常检测是具有很大的实用价值的。
[0081] 以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈