矢量保密等同性测试的制作方法

文档序号:8003634阅读:160来源:国知局
矢量保密等同性测试的制作方法
【专利摘要】一种用于等同性测试的系统,该系统包含包括第一保密数据单元的第一客户端设备、包括第二保密数据单元的第二客户端设备、和服务器。该服务器从第一客户端设备接收与第一保密数据单元相对应的第一混乱数据单元,和从第二客户端设备接收与第二保密数据单元相对应的第二混乱数据单元。该服务器基于第一和第二混乱数据单元进行矢量计算以生成第一和第二混乱数据单元的组合。该服务器将该组合发送给第一客户端设备。该第一客户端设备被配置成基于该组合确定第一保密数据单元是否等于第二保密数据单元。
【专利说明】矢量保密等同性测试
[0001]对相关申请的交叉引用
[0002]本申请要求2012年8月6日提交的美国临时专利申请第61/680,208号以及2013年5月31日提交的美国专利申请第N0.13/907,783号的优先权,其全部内容通过引用合并于此。
【技术领域】
[0003]本发明的实施例一般涉及相等性测试(equivalence testing),具体涉及使用矢量的相等性测试。
【背景技术】
[0004]相等性测试有许多有用的应用。例如,相等性测试在基于地点的服务中用于确定接近度。为了保护地点隐私,等同性(equality)测试协议利用像公共密钥加密、同态加密(homomorphic encryption),或密码学原语(cryptographic primitives)那样的昂贵加密方案。

【发明内容】

[0005]—个实施例提供了一种用于等同性测试(equality testing)的系统,该系统包含包括第一保密(private)数据单元的第一客户端设备、包括第二保密数据单元的第二客户端设备、和服务器。该服务器从第一客户端设备接收与第一保密数据单元相对应的第一混舌L(Obfuscated)数据单元,和从第二客户端设备接收与第二保密数据单元相对应的第二混乱数据单元。该服务器根据第一和第二混乱数据单元进行矢量计算以生成第一和第二混乱数据单元的组合。该服务器将该组合发送给第一客户端设备。该第一客户端设备被配置成根据该组合确定第一保密数据单元是否等于第二保密数据单元。
[0006]每个混乱数据单元可以包含矢量单元,并且该组合包含第一和第二混乱数据单元的点积。
[0007]每个客户端设备可以被进一步配置成生成与所述客户端设备的保密数据单元相对应的保密矢量单元,并打乱(obfuscate)所述保密矢量单元以便生成与所述客户端设备的保密数据单元相对应的混乱数据单元。
[0008]该第一客户端设备可以被进一步配置成当第一保密数据单元等于第二保密数据单元时,确定第二客户端设备在第一客户端设备的附近,而当第一保密数据单元不等于第二保密数据单元时,确定第二客户端设备不在第一客户端设备的附近。
[0009]该第一客户端设备和该第二客户端设备可以共享加密密钥。
[0010]该第一客户端设备可以通过生成与所述保密矢量单元垂直的随机矢量单元并将随机矢量单元旋转随机转角以生成经旋转的矢量单元,来打乱与第一保密数据单元相对应的保密矢量单元,其中将所述经旋转的矢量单元发送给服务器。
[0011]该第二客户端设备可以通过将所述保密矢量单元旋转随机转角以生成经旋转的矢量单元,将所述经旋转的矢量单元按随机值缩放以生成经缩放的矢量单元,并使所述经缩放的矢量单元增加随机矢量单元以生成增加后的(incremented)矢量单元,来打乱与第二保密数据单元相对应的保密矢量单元,其中将所述增加后的矢量单元发送给服务器。
[0012]该第一客户端设备可以被进一步配置成基于所述经旋转的矢量单元和随机矢量单元进行矢量计算以生成所述经旋转的矢量单元和该随机矢量单元的点积,并且确定所述经旋转的矢量单元和该随机矢量单元的点积是否等于从服务器接收的组合。
[0013]该第一保密数据单元可以对服务器和第二客户端设备保密,并且该第二保密数据单元可以对服务器和第一客户端设备保密。
[0014]对于每个客户端设备,与所述客户端设备的保密数据单元相对应的保密矢量单元可以是实数值矢量。
[0015]对于每个客户端设备,与所述客户端设备的保密数据单元相对应的保密矢量单元可以是整数值矢量。
[0016]一个实施例提供了一种用于等同性测试的方法,该方法包含从第一客户端设备接收第一混乱数据单元,以及从第二客户端设备接收第二混乱数据单元。该第一混乱数据单元对应于第一客户端设备的第一保密数据单元。该第二混乱数据单元对应于第二客户端设备的第二保密数据单元。服务器基于第一和第二混乱数据单元进行矢量计算以生成第一和第二混乱数据单元的组合。该服务器将该组合发送给第一客户端设备。该第一客户端设备基于该组合确定第一保密数据单元是否等于第二保密数据单元。
[0017]一个实施例提供了一种用于等同性测试的设备,该设备包含配置成生成与该设备的第一保密数据单元相对应的第一混乱数据单元的计算单元。该设备进一步包含配置成向服务器发送第一混乱数据单元,和从服务器接收第一混乱数据单元和与不同设备的第二保密数据单元相对应的第二混乱数据单元的组合的通信单元。该计算单元被进一步配置成基于接收到的该组合确定第一保密数据单元是否等于第二保密数据单元。
[0018]一个实施例提供了一种等同性测试的计算机程序产品。该计算机程序产品包含具有随之具体化的程序代码的计算机可读存储介质,该程序代码可被计算机运行,以便生成与第一客户端设备的第一保密数据单元相对应的第一混乱数据单元,向服务器发送第一混乱数据单元,从服务器接收第一混乱数据单元和与第二客户端设备的第二保密数据单元相对应的第二混乱数据单元的组合,以及基于接收到的该组合确定第一保密数据单元是否等于第二保密数据单元。
[0019]本发明的这些和其他方面将从如下的详细描述中显而易见,如下的详细描述结合附图通过举例图示本发明的原理。
【专利附图】

【附图说明】
[0020]为了更全面理解本发明的本质和优点,以及优选的使用方式,应该参考如下结合附图理解的详细描述,在附图中:
[0021]图1例示了依照本发明实施例的用于矢量保密等同性测试(vectorial privateequality testing)的系统的框图;
[0022]图2例示了依照本发明实施例的客户端侧矢量保密等同性测试应用模块的框图;
[0023]图3例示了依照本发明实施例的服务器侧矢量保密等同性测试应用模块的框图;[0024]图4例示了依照本发明实施例的映射操作;
[0025]图5A例示了依照本发明实施例的实数值矢量化操作;
[0026]图5B例示了依照本发明实施例的整数值矢量化操作;
[0027]图6A例示了依照本发明实施例的代表矢量保密等同性测试协议的流程图;
[0028]图6B例示了依照本发明实施例的图6A中的示范性第一客户端的实数值矢量化操作;
[0029]图6C例示了依照本发明实施例的图6A中的第一和第二客户端的示范性伪随机矢量和示范性随机转角;
[0030]图7例示了依照本发明实施例的图6A中的第一客户端的示范性流程图;
[0031]图8例示了依照本发明实施例的图6A中的第二客户端的示范性流程图;
[0032]图9例示了依照本发明实施例的图6A中的服务器的示范性流程图;以及
[0033]图10是示出包含实现本发明的实施例的计算系统的信息处理系统的高级框图。
【具体实施方式】
[0034]下面的描述是为了例示本发明的一般原理的目的而作出的,并不意图限制本文要求保护的发明构思。此外,本文所述的具体特征可以与所描述的其他特征以各种可能的组合和排列中的每一种组合和排列结合在一起使用。除非本文另有具体规定,对所有术语给出它们最宽泛的可能解释,包括本说明书中隐含的含义,以及本领域的普通技术人员所理解的和/或如字典、专著等中所定义的含义。
[0035]一个实施例提供了一种用于等同性测试的系统,该系统包含包括第一保密数据单元的第一客户端设备、包括第二保密数据单元的第二客户端设备、和服务器。该服务器从第一客户端设备接收与第一保密数据单元相对应的第一混乱数据单元,以及从第二客户端设备接收与第二保密数据单元相对应的第二混乱数据单元。该服务器基于第一和第二混乱数据单元进行矢量计算以生成第一和第二混乱数据单元的组合。该服务器将该组合发送给第一客户端设备。该第一客户端设备被配置成基于该组合确定第一保密数据单元是否等于第二保密数据单元。
[0036]一个实施例提供了一种用于等同性测试的方法,该方法包含从第一客户端设备接收第一混乱数据单元,以及从第二客户端设备接收第二混乱数据单元。该第一混乱数据单元对应于第一客户端设备的第一保密数据单元。该第二混乱数据单元对应于第二客户端设备的第二保密数据单元。服务器基于第一和第二混乱数据单元进行矢量计算以生成第一和第二混乱数据单元的组合。该服务器将该组合发送给第一客户端设备。该第一客户端设备基于该组合确定第一保密数据单元是否等于第二保密数据单元。
[0037]—个实施例提供了一种用于等同性测试的设备,该设备包含配置成生成与该设备的第一保密数据单元相对应的第一混乱数据单元的计算单元。该设备还包含配置成向服务器发送第一混乱数据单元,以及从服务器接收第一混乱数据单元和与不同设备的第二保密数据单元相对应的第二混乱数据单元的组合的通信单元。该计算单元还被配置成基于接收到的该组合确定第一保密数据单元是否等于第二保密数据单元。
[0038]一个实施例提供了一种用于等同性测试的计算机程序产品。该计算机程序产品包含具有随之具体化的程序代码的计算机可读存储介质,该程序代码可被计算机运行,以便生成与第一客户端设备的第一保密数据单元相对应的第一混乱数据单元,向服务器发送第一混乱数据单元,从服务器接收第一混乱数据单元和与第二客户端设备的第二保密数据单元相对应的第二混乱数据单元的组合,以及基于接收到的该组合确定第一保密数据单元是否等于第二保密数据单元。
[0039]图1例示了依照本发明实施例的矢量保密等同性测试的系统100的框图。
[0040]在一个实施例中,系统100包含像第一客户端(“客户端A”)和第二客户端(“客户端B”)那样的多个客户端120。客户端120代表通信方的电子设备。该电子设备可以是家用电器、个人计算机(PC)、像智能电视那样的电视(TV)、或移动设备(例如,像智能电话那样的移动电话、膝上型电脑)。
[0041]每个客户端120被配置成与服务器200建立连接50。连接50可以是无线连接、有线连接、或这两者的组合。
[0042]服务器200包含配置成便利多个客户端120之间的保密等同性测试(privateequality testing)的服务器侧矢量保密等同性测试(vectorial private equalitytesting, VPET)应用模块300。每个客户端120包含配置成与服务器200通信的客户端侧VPET应用模块200。
[0043]图2例示了依照本发明实施例的客户端侧矢量保密等同性测试(VPET)应用模块250的框图。在一个实施例中,客户端设备120的客户端侧VPET应用模块250包含通信单元251、存储单元252、伪随机生成(pseudo random generation, PRG)单元253、矢量化单元254和计算单元255。
[0044]通信单元251被配置成从像服务器200或另一个客户端120那样的另一个实体接收信息,并向其发送信息。存储单元252被配置成保存像客户端120的相应保密值(保密信息单元)V那样的信息。例如,客户端A的存储单元252保存相应保密值vA,而客户端B的存储单元252保存相应保密值vB。客户端120的相应保密值V可以代表像客户端120的地点、客户端120的财富(wealth)、客户端120的分数(例如,考试分数)等那样的、与客户端120相联系的信息单元。
[0045]如下文详细描述的,PRG单元252被配置成生成用于保密等同性测试的伪随机数。矢量化单元254被配置成将客户端120的相应保密值V表示成d维矢量w(S卩,保密矢量单元)。矢量w是像代表客户端120的地点的纬度和经度的二维矢量那样的多维矢量。如下文详细描述的,客户端A的矢量化单元254将保密值vA表示成矢量wA,而客户端B的矢量化单元254将保密值vB表示成矢量wB。
[0046]图3例示了依照本发明实施例的服务器侧矢量保密等同性测试(VPET)应用模块300的框图。在一个实施例中,服务器60的服务器侧VPET应用模块300包含通信单元301、存储单元302、和计算单元303。
[0047]通信单元301被配置成从像服务器200或另一个客户端120那样的另一个实体接收信息,并向其发送信息。存储单元302被配置成保存像从客户端120接收的每个消息那样的信息。
[0048]如下文详细描述的,计算单元303被配置成进行点积运算(即,内积运算)。
[0049]图4例示了依照本发明实施例的映射操作。系统100生成每个客户端120的每个保密值V的唯一矢量W。在一个实施例中,每个矢量W是实数值矢量。在另一个实施例中,每个矢量W是整数值矢量。
[0050]在本说明书中,设S表示系统100中保密值V的全集,并且设N表示集合S中保密值V的总数。在一个实施例中,如果N不是4的倍数,则将附加保密值V加入该集合S中直到N变成4的倍数为止。
[0051]将系统100中的每个保密值V映射到半开区间(0,N]的自然数。半开区间(0,N]被表示成图4中的线段400。线段400的第一端100A代表数字O,线段400的第二端100B
代表数字N。
[0052]将系统100中的每个保密值V映射到半开区间(0,N]的自然数。具体地说,每个客户端120的矢量化单元254将相应保密值V赋给半开区间(0,N]的自然数。例如,如图4所示,客户端A的矢量化单元254将相应保密值vA映射到数字2,而客户端B的矢量化单元254将相应保密值vB映射到数字I。
[0053]图5A例示了依照本发明实施例的实数值矢量化操作。在一个实施例中,对于保密值V的有限集S,将半开区间(0,N]的每个自然数映射到半圆410上的点。例如,将线段400的第一端400A (B卩,数字O)和第二端400B (B卩,数字N)弯曲成中心在原点O上的半圆410。
[0054]可以将映射到半圆410上的点的每个自然数表示成从原点O开始并且在半圆410上的点上结束的矢量420。图5A例示了分别代表保密值vA和vB的矢量wA和wB。
[0055]在一个实施例中,两个相邻矢量420 (例如,矢量wA和wB)之间的角度α等于Π/N弧度。
[0056]图5Β例示了依照本发明实施例的整数值矢量化操作。在一个实施例中,对于保密值V的有限集S,将半开区间(0,N]的每个自然数映射到R2中的长方形框415上的点。可以将映射到长方形框415上的点的每个自然数表示成从原点O开始并且在长方形方框415上的点上结束的矢量420。图5Β例示了分别表示保密值νΑ和νΒ的矢量wA和Wbo
[0057]在一个实施例中,系统100利用配置成将矢量420旋转随机转角Θ的保角映射函数R。映射函数R只定义在矢量420和它们相对于X轴的对称矢量上。矢量420的总数是2Ν,并且随机转角Θ是半开区间(0,2Ν]中的整数值。
[0058]图6Α例示了依照本发明实施例的代表VPET协议的流程图450。如上所述,客户端A的矢量化单元254将客户端A的保密值νΑ表示成矢量wA,而客户端B的矢量化单元254将客户端B的保密值vB表示成矢量wB。
[0059]在一个实施例中,客户端A和客户端B将计数ctr用于同步。在一种示范性实现方案中,将计数ctr初始化成零。每当保密值vA发生变化(例如,客户端A的地点发生变化),客户端A就将计数ctr增加一。类似地,每当保密值vB发生变化(例如,客户端B的地点发生变化),客户端B就将计数ctr增加一。
[0060]如上所述,服务器200的服务器侧VPET应用模块300便利客户端A和客户端B之间的保密等同性测试。在一个实施例中,服务器200的存储单元302保存计数ctr的最新值。每个客户端A、客户端B的通信单元251向服务器200询问计数ctr的最新值。
[0061]在一个实施例中,客户端A和客户端B共享加密密钥k,其中加密密钥k只有客户端A和客户端B知道。每个客户端A、客户端B的PRG单元253实现配置成基于加密密钥k和计数ctr生成伪随机值的伪随机函数E (例如,高级加密标准(AES))。在一个实施例中,每个客户端A、客户端B的存储单元252保存加密密钥k。
[0062]在一个实施例中,客户端B在与服务器200通信之前将计数ctr增加一。客户端A在与服务器200通信之前向服务器200询问计数ctr的最新值。服务器200的通信单元301在受到询问时传送计数ctr的最新值。
[0063]每个客户端A、客户端B被配置成使用伪随机函数E、加密密钥k和计数ctr生成伪随机矢量s和随机转角Θ。在一个实施例中,每个客户端A、客户端B的PRG单元253使用如下关系式(I)生成伪随机矢量s和随机转角Θ:
[0064]Cs, Θ) =Ek(Ctr) (I)
[0065]其中Ek(Ctr)是使用加密密钥k求伪随机函数E在等于计数ctr的点上的值所得到的伪随机值。在一个实施例中,每个客户端A、客户端B的客户端VPET应用模块250解析伪随机值Ek(Ctr),以获得/提取伪随机矢量s和随机转角Θ。
[0066]在一个实施例中,每个客户端A、客户端B的客户端侧VPET应用模块250向服务器200发送包括混乱/盲(obfuscated/blind)矢量(即,混乱的数据单元)的消息。向服务器200发送混乱/盲矢量去除了对加密发送给服务器200的消息的需要(即,服务器200无需与客户端A或客户端B共享加密密钥)。进一步,替代发送加密的消息而发送混乱/盲矢量,保证了服务器200不知道分别用于客户端A和客户端B的矢量Wk和wB。[0067]具体地说,客户端B的计算单元255使用如下关系式(2)生成矢量Wb的混乱/盲矢量b:
[0068]b=rR(wB, θ ) +s (2)
[0069]其中R(wb, θ )是表示将矢量Wb旋转随机转角Θ的矢量,以及其中r表示用于按比例缩放矢量R(wB,Θ )的随机值。在一个实施例中,客户端B的PRG单元253生成随机值r0客户端B的计算单元255实现映射函数R以及将矢量wB旋转随机转角Θ以生成矢量R(wb, Θ)。客户端B的计算单元255然后按照随机值r来缩放矢量R(wb,Θ)以生成矢量rR(wB, Θ ),并将伪随机矢量s与矢量rR(wB,Θ )相加以生成混乱/盲矢量b。在一个实施例中,客户端B的通信单元251将包括混乱/盲矢量b和计数ctr的消息传送给服务器200。
[0070]在一个实施例中,客户端A的PRG单元253被进一步配置成生成具有伪随机项U1,U2, , Ud^1的随机基矢量U。随机基矢量U与矢量Wa垂直。由于随机基矢量U与矢量Wa垂直,所以矢量Wa与随机基矢量U之间的点积(即,内积)(即,<WA, U?等于零。
[0071]客户端A的计算单元255使用如下关系式(3)生成随机基矢量u的混乱/盲矢量a:
[0072]a=R(u, θ ) (3)
[0073]其中R(u, θ )是表示将随机基矢量u旋转随机转角Θ的矢量。客户端A的计算单元255实现映射函数R以及将随机基矢量u旋转随机转角Θ以便生成混乱/盲矢量a。在一个实施例中,客户端A的通信单元251将包括混乱/盲矢量a和计数ctr的消息传送给服务器200。
[0074]服务器200确定包括在来自客户端A的消息中的计数ctr的值是否与包括在来自客户端B的消息中的计数ctr的值匹配。如果来自客户端A和客户端B的消息中的计数ctr的值相同,则服务器200的计算单元302计算混乱/盲矢量a和b的点积(即,内积)。在本说明书中,设m表示混乱/盲矢量a和b的点积(B卩,内积)(B卩,<a,b>)。服务器200的通信单元301将该点积(S卩,内积)m传送给客户端A。
[0075]客户端A的计算单元251进一步计算表示混乱/盲矢量a和伪随机矢量s的点积〈a, s> (即,内积)。一旦从服务器200接收到点积m,计算单元251就确定点积〈a, s>是否等于点积m。如果点积〈a, s>等于点积m,则客户端A就作出矢量wA和wB相同(即,保密值vA和vB相同)的结论。如果点积〈a, s>不等于点积m,则客户端A就作出矢量wA和wB不同(即,保密值Va和Vb不同)的结论。因此,只有当保密值Vb等于保密值VA时,客户端A才会导出保密值Vb的值。当保密值Vb不同于保密值Va时,客户端A和服务器200都不能导出保密值Vb的值。
[0076]使用如下关系式(4)提供点积m的展开形式:
[0077]m=<a, b>=<R(u, θ ), rR(wB, θ ) +s>=r<R(u, θ ), R(wB, θ ) >+<R(u, θ ), s> (4)
[0078]如果矢量wA和wB相同(SM呆密值vA和vB相同),则矢量R (wB,Θ)与矢量R(u,Θ)垂直。当矢量R(wb,θ)与矢量R(u,Θ )垂直时,点积<R (u,0),R(wb, θ)>等于零。当点积<R(u, Θ ), R (wB, θ )>等于零时,点积m等于矢量<R(u, 0),s>。如上所述,矢量R (u, Θ)表示混乱/盲矢量a。因此,当矢量wA和wB相同时,服务器200将点积<a,s>传送给客户端A0
[0079]图6B例示了依照本发明实施例的图6A中的第一客户端(例如,客户端A)的示范性实数值矢量化操作。在一个例子中,客户端A的保密值vA是70,其中每个保密值V表示数学考试的考试分数。客户端A想要确定客户端B在数学考试方面是否具有与客户端A相同的考试分数。设S表示数学考试的考试分数的有限集,其中S=[37,100]。设N表示离散考试分数的总数,其中N=64。
[0080]在一个实施例中,将考试分数的集合S映射到半圆410导致逐级增量(gradeincrement)等于Π/64弧度(B卩,两个相邻矢量420之间的角度α等于Π/64弧度)。如图6Β所示,表示客户端A的保密值νΑ的矢量wA是(咖(34Π/64),sin (34Π/64))。
[0081]图6C例示了依照本发明实施例的图6A中的第一和第二客户端(例如,客户端A和客户端B)的示范性伪随机矢量s和示范性随机转角Θ。在一个实施例中,客户端A和客户端B两者将高级加密标准(AES)实现为伪随机函数E。客户端A和客户端B共享加密密钥k和计数ctr。每个客户端A、客户端B使用如下关系式(5)生成伪随机矢量s和随机转角Θ:
[0082](s, Θ ) =AESk(Ctr)=CCD819AB9A623189E540EEEE9006A1B1 (5)
[0083]其中k=D301E0908128C3B254BDEA4F2C504844,以及其中 ctr=3。
[0084]在一个实施例中,将AESk(Ctr)的19个最低有效位用于设置随机矢量s和随机转角Θ。如图6C所示,AESk(ctr)的19个最低有效位是表示二进制序列1101010000110110001的十六进制序列6A1B1。将随机转角Θ设置成二进制序列的一部分,将随机矢量s的X分量和y分量设置成二进制序列的其余部分。例如,随机转角θ=49,随机矢量S= (x, y) = (-21, 3),其中X和y的每一个由6位的带符号的幅值(6_bit sign-magnitude)来表示。
[0085]如果客户端B的保密值vB也等于70,则表示客户端B的保密值vB的矢量wB是(cos(34n/64),sin(34n/64))。客户端 B 使用如下关系式(6)计算 R(wB,Θ ):
[0086]R(wb, Θ ) = (cos ((34+49) Π/64), sin((34+49) Π/64)) (6)[0087]= (cos (83 Π/64), sin (83 Π/64))
[0088]^ (-0.5956,_0.8032)
[0089]如果将用于按比例缩放矢量R(wb,Θ )的随机值r设置成7,则客户端B使用如下关系式(7)生成矢量wB的混乱/盲矢量b:
[0090]b=rR(wB, θ ) +s (7)
[0091]=7(-0.5956,-0.8032) + (-3, 21)
[0092]^ (-7.1698,15.3775)
[0093]客户端A通过将Π/2与wA相加来计算与矢量wA垂直的随机基矢量U。具体地说,客户端A使用如下关系式(8)计算随机基矢量u:
[0094]U= (cos ((34+32) Π/64), sin((34+32) Π/64)) (8)
[0095]= (cos (66 Π/64), sin (66 Π/64))
[0096]客户端A使用如下关系式(9)生成矢量wA的混乱/盲矢量a:
[0097]a=R(u, θ ) (9)
[0098]= (cos ((66+49) Π/64),sin((66+49) Π/64))
[0099]=(cos(115n/64), sin(115n/64))
[0100]^ (0.8032, -0.5956)`
[0101]服务器200使用如下关系式(10)计算点积m:
[0102]m=<a, b> (10)
[0103]=< (0.8032,-0.5956),(_7.1698,15.3775) >
[0104]=-7.1698 (0.8032) +15.3775 (-0.5956)
[0105]=-14.9191
[0106]客户端使用如下关系式(11)计算点积〈a, s>
[0107]〈a, s>=〈(0.8032,-0.5956),(-3,21)> (11)
[0108]=-3 (0.8032)+21(-0.5956)
[0109]=-14.9191
[0110]由于点积<a,s>等于点积m,所以客户端A确定保密值vB等于保密值vA。
[0111]图7例示了依照本发明实施例的图6A中的第一客户端(例如,客户端A)的示范性流程图600。在处理方块601中,将第一保密值表不成第一矢量。在处理方块602中,生成与第一矢量垂直的随机基矢量。在处理方块603中,使用伪随机函数、共享加密密钥、和共享计数生成伪随机矢量和随机转角。在处理方块604中,使用旋转映射函数和随机转角生成随机基矢量的盲矢量。在处理方块605中,将盲矢量和共享计数发送给服务器以便利第一客户端与第二客户端之间的保密等同性测试。在处理方块606中,从服务器接收内积(即,点积)。在处理方块607中,确定盲矢量和伪随机矢量的内积(即,点积)是否等于接收到的内积。
[0112]图8例示了依照本发明实施例的图6A中的第二客户端(即,客户端B)的示范性流程图650,其中第二客户端生成第二客户端的第二保密值的盲矢量。在处理方块651中,将第二保密值表示成第二矢量。在处理方块652中,使用伪随机函数、共享加密密钥、和共享计数生成伪随机矢量和随机转角。在处理方块653中,使用旋转映射函数、随机转角、随机值、和伪随机矢量生成第二矢量的盲矢量。在处理方块654中,将盲矢量和共享计数发送给服务器以便利第一客户端与第二客户端之间的保密等同性测试。
[0113]图9例示了依照本发明实施例的图6A中的服务器的示范性流程图700。在处理方块701中,从第二客户端接收第一盲矢量和共享计数。在处理方块702中,将共享计数发送给第一客户端。在处理方块703中,从第一客户端接收第二盲矢量和共享计数。在处理方块704中,计算第一盲矢量和第二盲矢量的内积(即,点积)。在处理方块705中,将内积发送给第一客户端。
[0114]图10是示出包含实现本发明的实施例的计算系统500的信息处理系统的高级框图。系统500包括一个或多个处理器511 (例如,ASIC、CPU等),并且可以进一步包括电子显示设备512 (用于显示图形、文本、和其他数据)、主存储器513 (例如,随机访问存储器(RAM))、存储设备514 (例如,硬盘驱动器)、移动存储设备515 (例如,移动存储驱动器、移动存储模块、磁带驱动器、光盘驱动器、其中存储着计算机软件和/或数据的计算机可读介质)、用户接口设备516(例如,键盘、触摸屏、小键盘、定点设备)、和通信接口 517(例如,调制解调器、无线收发器(比如WiF1、蜂窝)、网络接口(比如以太网卡)、通信端口、或PCMCIA插槽和卡)。通信接口 517允许软件和数据在该计算机系统与像互联网550、移动电子设备551、服务器552、和网络553那样的外部设备和/或网络之间传送。系统500进一步包括上述设备511到517连接到的通信基础设施518 (例如,通信总线、纵横交叉条、或网络)。
[0115]经由通信接口 517传送的信息可以具有像能够经由携带信号并且可以使用电线或电缆、光纤、电话线、蜂窝式电话链路、射频(RF)链路、和/或其他通信信道实现的通信链路,通过通信接口 517接收的电、电磁、光、或其他信号那样的信号形式。
[0116]系统500可以进一步包括像丽S模块521、SMS模块522、电子邮件模块523、社交网络接口(SNI)模块524、音频/视频(AV)播放器525、网络浏览器526、图像捕获模块527等那样的应用模块。
[0117]系统500进一步包括按照本发明的实施例,如本文所述的用于保密等同性测试的保密等同性测试模块530。在一个实施例中,保密等同性测试模块530可以与操作系统529一起被实现成驻留在系统500的存储器中的可执行代码。在另一个实施例中,保密等同性测试模块530可以与操作系统529 —起用固件实现。
[0118]如本领域技术人员所知,上述示范性基础设施按照所述基础设施可以以像供处理器执行的程序指令、软件模块、微码、计算机可读介质上的计算机程序产品、模拟/逻辑电路、专用集成电路、固件、消费性电子设备、AV设备、无线/有线发送器、无线/有线接收器、网络、多介质设备等那样的许多方式实现。进一步,所述基础设施的实施例可以采取完全硬件实施例、完全软件实施例或包含硬件和软件元素两者的实施例的形式。
[0119]上面参考按照本发明实施例的方法、装置(系统)和计算机程序产品的流程例示图和/或框图对本发明的实施例作了描述。这样例示图/图形的每个方块,或它们的组合可以通过计算机程序指令来实现。该计算机程序指令当被提供给处理器时产生这样的机器,其使得经由处理器执行的指令生成用于实现规定在流程图和/或框图中的功能/操作的手段。流程图和/或框图中的每个方块可以代表实现本发明实施例的硬件和/或软件模块或逻辑。在可替代实现方案中,标注在方块中的功能可以不按标注在图形中的次序出现,或同时出现、等等。
[0120]术语“计算机程序介质”、“计算机可用介质”、“计算机可读介质”、和“计算机程序产品”用于一般性地指代像主存储器、辅助存储器、移动存储驱动器、安装在硬盘驱动器中的硬盘那样的介质。这些计算机程序产品是用于向计算机系统提供软件的手段。计算机可用介质允许计算机系统从计算机可读介质中读取数据、指令、消息或消息分组、和其他计算机可读信息。计算机可用介质可以包括,例如,像软盘、ROM、闪速存储器、盘驱动存储器、CD-ROM、和其他永久性存储器件那样的非易失性存储器。例如,其可用于在计算机系统之间传送像数据和计算机指令那样的信息。计算机程序指令可以存储在计算机可读介质中,其可以指示计算机、其他可编程数据处理装置、或其他设备以特定方式起作用,因此这样的指令存储在计算机可读介质中形成包括实现规定在流程图和或/框图的一个或几个方块中的功能/动作的指令的制造物品。
[0121]代表本文的框图和/或流程图的计算机程序指令可以装载到计算机、可编程数据处理装置、或处理设备中,使在上面执行的一系列操作产生计算机实现的过程。计算机程序(即,计算机控制逻辑)被存储在主存储器和/或辅助存储器中。计算机程序也可以通过通信接口来接收。这样的计算机程序当被执行时,使计算机系统能够实现如本文所讨论的本发明的特征。具体来说,该计算机程序当被执行时,使处理器和/或多核处理器能够实现计算机系统的特征。这样的计算机程序代表计算机系统的控制器。计算机程序产品包含计算机系统可读并且存储供计算机系统运行以便执行本发明的方法的指令的有形存储介质。
[0122]尽管上面参考本发明的某些版本对本发明作出了描述,但是,其他版本也是可以的。因此,所附权利要求书的精神和范围不应该局限于包含在本文中的优选版本的描述。
【权利要求】
1.一种用于等同性测试的系统,该系统包含: 包括第一保密数据单元的第一客户端设备; 包括第二保密数据单元的第二客户端设备;以及 服务器,其被配置成: 从第一客户端设备接收与第一保密数据单元相对应的第一混乱数据单元; 从第二客户端设备接收与第二保密数据单元相对应的第二混乱数据单元; 基于第一和第二混乱数据单元进行矢量计算以生成第一和第二混乱数据单元的组合;以及 将所述组合发送给第一客户端设备,其中第一客户端设备被配置成基于所述组合确定第一保密数据单元是否等于第二保密数据单元。
2.如权利要求1所述的系统,其中: 每个混乱数据单元包含矢量单元;以及 所述组合包含第一和第二混乱数据单元的点积。
3.如权利要求1所述的系统,其中: 第一客户端设备被进一步配置成: 当第一保密数据单元等于第二保密数据单元时,确定第二客户端设备在第一客户端设备的附近;以及` 当第一保密数据单元不等于第二保密数据单元时,确定第二客户端设备不在第一客户端设备的附近。
4.如权利要求1所述的系统,其中: 第一客户端设备和该第二客户端设备共享加密密钥。
5.如权利要求1所述的系统,其中: 第一保密数据单元对服务器和第二客户端设备保密;以及 第二保密数据单元对服务器和第一客户端设备保密。
6.一种用于等同性测试的方法,该方法包含: 从第一客户端设备接收第一混乱数据单元,其中第一混乱数据单元对应于第一客户端设备的第一保密数据单元; 从第二客户端设备接收第二混乱数据单元,其中第二混乱数据单元对应于第二客户端设备的第二保密数据单元; 基于第一和第二混乱数据单元进行矢量计算以生成第一和第二混乱数据单元的组合;以及 将所述组合发送给第一客户端设备,其中第一客户端设备基于所述组合确定第一保密数据单元是否等于第二保密数据单元。
7.如权利要求6所述的方法,其中: 每个混乱数据单元包含矢量单元;以及 所述组合包含第一和第二混乱数据单元的点积。
8.如权利要求6所述的方法,进一步包含: 在第一客户端设备与第二客户端设备之间共享加密密钥。
9.如权利要求6所述的方法,其中:第一保密数据单元对服务器和第二客户端设备保密;以及 第二保密数据单元对服务器和第一客户端设备保密。
10.一种用于等同性测试的设备,该设备包含: 计算单元,配置成生成与该设备的第一保密数据单元相对应的第一混乱数据单元;以及 通信单元,其被配置成: 向服务器发送第一混乱数据单元;以及 从服务器接收第一混乱数据单元和与不同设备的第二保密数据单元 相对应的第二混乱数据单元的组合; 其中该计算单元被进一步配置成基于接收到的组合确定第一保密数据单元是否等于第二保密数据单元。
11.如权利要求10所述的设备,该设备进一步包含: 矢量化单元,配置成生成与第一保密数据单元相对应的保密矢量单元; 其中该计算单元打乱所述保密矢量单元以便生成第一混乱数据单元;以及 其中所述组合包含第一和第二混乱数据单元的点积。
12.如权利要求10所述的设备,进一步包含: 伪随机生成单元,其被配置成: 生成随机矢量单元;以及 生成随机转角; 其中该计算单元至少部分地基于该随机矢量单元和该随机转角打乱所述保密矢量单J Li ο
13.如权利要求10所述的设备,其中: 所述保密矢量单元是整数值矢量。
14.一种用于等同性测试的计算机程序产品,该计算机程序产品包含含有随之具体化的程序代码的计算机可读存储介质,该程序代码可被计算机执行以便: 生成与第一客户端设备的第一保密数据单元相对应的第一混乱数据单元; 向服务器发送第一混乱数据单元; 从服务器接收第一混乱数据单元和与第二客户端设备的第二保密数据单元相对应的第二混乱数据单元的组合;以及 基于接收到的该组合确定第一保密数据单元是否等于第二保密数据单元。
15.如权利要求14所述的程序代码,可进一步被计算机执行以便: 生成与第一保密数据单元相对应的保密矢量单元; 生成随机矢量单元; 生成随机转角;以及 至少部分地基于随机矢量单元和随机转角打乱所述保密矢量单元以生成第一混乱数据单元; 其中所述组合包含第一和第二混乱数据单元的点积。
【文档编号】H04L9/00GK103634162SQ201310338564
【公开日】2014年3月12日 申请日期:2013年8月6日 优先权日:2012年8月6日
【发明者】G.萨尔达姆里, R.周, H.金, B.科尼嫩伯格 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1