用于同态加密的多值打包方案的系统和方法与流程

文档序号:11455398阅读:377来源:国知局
用于同态加密的多值打包方案的系统和方法与流程

本文所述的主题通常涉及数据处理,更具体而言涉及使用多值打包(packing)方案的同态加密的系统和方法。



背景技术:

在相关技术中,可以执行数据库、数据库即服务(databaseasaservice)、或云数据库操作。更具体而言,数据库服务器可以保持用户的数据(例如,用户传输数据),并且用户可以在该数据上执行操作(例如查询)。该用户可能具有敏感的、他或她不希望服务器(例如云所有者)知道的数据。

同态密码学,诸如paillier密码学包括许多性质。例如,给定两个值v1和v2(被称为明文),e(v1)=c1(即,加密v1得到密文c1)和e(v2)=c2。同态密码学的一个性质为两个密文c1和c2的积将解密成它们对应的明文v1和v2的和。

随着日益增加的数据量和在服务器侧处理的事务量,需要减少必须被传输以实现同态密码学的字节数。



技术实现要素:

本主题包括一种计算机实现的方法,用于执行同态加密以生成总和,所述方法包括:在客户端处,接收多个加密有效载荷,所述加密有效载荷分别具有多个数据值;以及将所述加密有效载荷中的一个加密有效载荷的一个或多个数据值与一个或多个其他加密有效载荷的一个或多个其他数据值相乘以生成积,所述积表示与所相乘的、所述加密有效载荷中的所述一个加密有效载荷的一个或多个数据值与所述一个或多个其他加密有效载荷的所述一个或多个其他数据值相对应的数据值的总和。

本主题还包括一种计算机实现的方法,用于执行同态加密以生成总和,所述方法包括:在服务器处,生成多个加密有效载荷,所述加密有效载荷均具有多个数据值,其中,所述加密有效载荷中的每一个的数据值位于所述加密有效载荷中的每一个的下半部,并且所述加密有效载荷中的每一个的上半部为空。

此外,本主题包括一种计算机实现的方法,用于执行同态加密以生成总和,该方法包括:在服务器处,生成多个加密有效载荷,所述加密有效载荷均具有多个数据值;以及在客户端处,接收具有所述多个数据值的所述加密有效载荷中的每一个;以及将所述加密有效载荷中的一个加密有效载荷的一个或多个数据值与一个或多个其他加密有效载荷的一个或多个其他数据值相乘,以生成积,所述积表示与所相乘的、所述加密有效载荷的一个或多个数据值与所述一个或多个其他加密有效载荷的一个或多个其他数据值相对应的数据值的总和。

使用一个或多个计算设备和/或系统实现所述方法。所述方法可以存储在计算机可读介质中。

附图说明

图1示出打包的相关技术途径。

图2示出拆包的相关技术途径。

图3示出根据示例性实施方式的,打包工具和拆包工具的架构。

图4示出根据示例实施方式的打包过程。

图5示出根据示例实施方式的拆包过程。

图6示出与示例实施方式相关联的系统过程。

图7示出与示例实施方式相关联的服务器过程。

图8示出与示例实施方式相关联的客户端过程。

图9示出适合于一些示例实施方式的示例环境。

图10a和10b示出适合于在一些示例实施方式中使用的具有相应示例计算设备的示例计算环境。

具体实施方式

通过示例性实施方式教导本文所述的主题。为了清楚和避免模糊本主题起见,省略诸多细节。下文所示的示例涉及用于实现与用于同态加密的多值打包方案相关联的系统和方法的结构和功能。

图1图示采用paillier加密(例如,密文相乘、明文相加)的同态加密100的相关技术途径。提供客户端101和服务器103。在105处,客户端101使用利用密钥f的交换加密来执行多个idx1…xn…的加密。在105处执行的加密的结果由客户端101发送到服务器103。例如,交换加密可以是利用秘密指数对大质数取模来取幂。

在107处,服务器103从客户端101接收加密的idf(x1)…f(xn)…,并且利用密钥g来执行加密操作,并且将g(x1)…g(xn)发送到客户端101。此外,服务器103利用密钥g加密idy1…ym,并且将g(y1)…g(ym)连同利用paillier同态加密e加密的值(例如花费(spend))si一起发送到客户端101。数字的加密值被提供给客户端101以作为每一数字(例如花费值)的个体的、单独的有效载荷。

在111处,在客户端101,利用密钥f进一步加密服务器idg(x1)…g(xn)来生成fg(y1)…fg(ym)。在113处,客户端101执行检验操作来确定gf(xi)和fg(yj)之间是否存在匹配或交集。这样的匹配或交集会指示xi等于yj。

在115处,对于该交集,客户端101将作为sj的加密值的所有值e(sj)相乘以生成积,其与sj的净值(clearvalue)的和的加密相同。客户端101可以请求服务器103解密该积并且返回该和。为避免在返回过程期间泄露该和,客户端101可以执行盲化操作(blindingoperation),即,将该积乘以e(r)以返回随机数r。

在117处,服务器103paillier解密并且将结果返回给客户端101。为获得净和(clearsum),客户端101从由服务器103发送至客户端101的结果减去随机数r。

图2图示如上所述操作109的相关技术途径200。为了清楚起见,省略对与上文参考图1所述的相同附图标记的进一步说明。更具体而言,在操作109,服务器103发送加密的id和关联的paillier加密的花费值(例如g(yi)连同e(si))。

图3图示示例架构300。提供客户端侧模块303,其生成客户端的id,并且经由互联网305将加密的id发送到例如服务器侧模块307。服务器侧模块307可以加密从客户端侧模块303接收的数据,诸如客户端加密的id。该服务器侧模块还控制服务器打包工具309。

服务器打包工具309包括打包工具操作员311,其控制服务器打包工具309。例如,在打包工具操作员311的命令下可以将多个数据值打包成单个有效载荷,使得服务器打包工具309将多个这种加密的有效载荷提供给服务器侧模块307。服务器侧模块307将加密的有效载荷提供给客户端侧模块303。在下文中,将参考图4,论述加密的有效载荷的进一步细节。

客户端拆包(unpacking)工具301接收加密的单个有效载荷。更具体而言,拆包工具操作员313在来自客户端侧模块303的单个有效载荷中的每一个上执行一系列左移位运算,,其进而从服务器侧模块307接收。左移位运算使用幂来移位在单个有效载荷内的值,使得所需值处于指定位置。当完成左移位运算时,在客户端拆包工具301处获得加密的数据值的积,其与明文值的和相关联。可选地,客户端侧模块303可以盲化该积,并且请求服务器侧模块303解密并且将经盲化和返回客户端侧模块,其去盲该经盲化和以获得表示该值(例如花费值)的明文和。

图4示出根据示例实施方式的与打包操作相关联的过程实施方式的示例。如图4所示,提供客户端401以与服务器403通信。在客户端401处,如上参考图1和2的元素105中所指出,客户端101使用利用密钥f的交换加密来执行对多个idx1…xn…的加密。由客户端101在105处执行的加密的结果被发送到服务器103。例如,但不作为限制,交换加密可以是利用秘密指数对大质数取模的幂。

在服务器403处,在407中,服务器403从客户端401接收加密的idf(x1)…f(xn)…,并且利用密钥g执行加密操作,并且可选地将g(x1)…g(xn)发送到客户端401。此外,在409处,服务器403将利用paillier同态加密e加密的值(例如花费)si发送到服务器401。可选地,服务器403利用密钥g加密idy1…ym,并且将g(y1)…g(ym)发送到客户端401。

根据此示例实施方式,在409处,服务器403将多个值(例如,四个花费值s1…s4)包括(例如打包)到单个paillier有效载荷中,其然后被加密并且发送到客户端401。在多个单个有效载荷中的每一个内,通过32位防护使该值中的每一个相互分离。换言之,在s1和s2之间提供32位间隔。该间隔的目的是允许进位(carryover)而不侵入相邻的数字。由此,例如但不作为限制,可以使用128位来表示每一数字,假定数字为64位整数(例如int64),其具有96位表示以及作为相邻数字之间的防护或分隔符的32位零。因此,可以使用多达2^32可能值而没有进位问题。

尽管在此示例实施方式中使用int64,但本发明构思不限于此,并且本领域的技术人员能理解,可以使用其他大小的整数、有效载荷和间隔,而不背离本发明构思的范围。例如但不作为限制,可以基于应用来确定这些值。

此外,该值仅覆盖加密的有效载荷中的每一个的后半部分。最高有效的(例如上)半部保持为空。如下参考图5所述,在用于移位过程的拆包操作中,可以采用上半部。

因此,多个花费值被服务器403打包成单个有效载荷中的每一个,并且被加密和发送到客户端401。因此,需要传输的字节数可以减少1/n,其中,n为单个有效载荷中的每一个的值的数目。在本示例中,需要传输的字节数会减少1/4(即,四分之一)。

在411处,在客户端401处,利用密钥f进一步加密服务器idg(x1)…g(xn)来生成fg(y1)…fg(ym)。在413处,客户端401执行检验操作来确定gf(xi)和fg(yj)之间是否存在匹配或交集。这样的匹配或交集会指示xi等于yj。如下文参考图5更详细所述,执行包含移位操作的拆包操作。

在415处,对于该交集,客户端401将作为sj的加密值的所有值e(sj)相乘以生成积,其与sj的净值的和的加密相同。客户端401可以请求服务器403解密该积并且返回该和。为避免在返回过程期间泄露该和,客户端401可以执行盲化操作,即,将该积乘以e(r)以返回随机数r。

在417处,服务器403paillier解密并且将结果返回客户端403。为获得净和,客户端401从由服务器403发送至客户端401的结果减去随机数r。

图5图示根据示例性实施方式的拆包操作。如图5所示,服务器503将有效载荷505提供给客户端501。如上参考图4讨论有效载荷505,并且为清楚起见省略进一步细节。

在图5的示例性实施方式中,客户端501需要将e(s3)、e(s1)、e(s8)和e(s6)的加密值相乘。因此,这些加密值必须位于有效载荷中的指定位置。例如,在图5中,e(s3)、e(s1)、e(s8)和e(s6)的加密值位于第四位置507。因此,将忽略所有其他位置中的加密值。

因此,e(s3)、e(s1)、e(s8)和e(s6)的加密值必须被移位到第四位置507以执行这些加密值的相乘。为实现移位,paillier加密的密文取2次幂,使对应的明文值向左移1位。

例如,为使e(s3)移动到第四位置,并且使明文s3移位128位,有必要对密文取128x1值次幂。在第二有效载荷中,为使e(s1)向左移位3个位置,由此使e(s1)处于有效载荷的第四位置,对密文取128x3次幂以使其向左移位3个位置。关于e(s8),其已经处于第四位置并且不需要移位。接着,关于e(s6),其处于第2位置并且需要移动到第四位置,并且由此需要取128x2次幂以便移位到明文的第四位置。

因此,产生的加密数据值的密文积表示与密文的数据值的和相关联的明文的和。因此,在上述示例实施方式中,使移位的密文相乘以产生密文,其基础明文为s3+s1+s8+s6的和。

在客户端501处,进一步利用密钥f加密服务器idg(x1)…g(xn)来生成fg(y1)…fg(ym)。客户端501由此执行检验操作来确定gf(xi)和fg(yj)之间是否匹配或交集。这样的匹配或交集会指示xi等于yj。

对于该交集,客户端501将作为sj的加密值、与多个单个有效载荷中的每一个相关联的所有e(sj)的值相乘以生成积,其与sj的净值的和的加密相同。客户端501可以请求服务器503解密该积并且返回该和。为避免在返回过程期间泄露该和,客户端501可以执行盲化操作,即,将该积乘以e(r)以返回随机数r。

然后,服务器503paillier解密并且将结果返回客户端501。为获得净和,客户端501从由服务器503发送给客户端501的结果减去随机数r。

在上述示例实施方式中,当客户端501从服务器503接收解密时,客户端501可以忽略除指定位置507外的位置中的数字。由此,客户端501仅需要提取指定位置(例如图5的元素507中的第四位置)的值。此外,因为与每一加密数据值相邻的32个防护位,向相邻加密数据值添加不会进位到其他位置。

尽管上述示例性实施方式指代利用64位整数打包,对其可以用其他值替代。例如,但不作为限制,能将十个(10)数字打包成加密的有效载荷中的每一个,这会将所需带宽减少1/10。例如当最大的值不大于1,000,000(例如花费值不大于1百万美元)时,可以采用这样的途径。

作为上述示例实施方式的替选方案,可以采用paillier加密的damgard版本。例如但不作为限制,可以采用比有效载荷大(s+1)/s倍的密文。在直接paillier加密的情况下,s具有值1,并且存在展开式(1+1)/1=2。另一方面,如果使用具有值3的s,则会得出(3+1)/2=4/3展开式。由此,得出4096位(例如512字节)密文和3072位有效载荷,使得能将30个数字容纳到有效载荷中。因此,由于较大数字,每一加密具有较大关联成本,但要求较少加密。

图6-8图示与上述示例实施方式相关联的示例过程。在一些示例中,过程600-800可以用不同的、更少、或更多框来实现。过程600-800可以实现为能存储在介质上、加载到一个或多个计算设备的一个或多个处理器上、并且执行为计算机实现的方法的计算机可执行指令。

图6图示根据一个或多个上述示例实施方式的示例过程600。在605处,客户端加密多个值x1…xn。例如但不作为限制,可以使用paillier加密方案来加密值x1…xn。然后,将对应的加密值f(x1)…f(xn)提供给服务器。

在610,服务器接收加密值f(x1)…f(xn)并且在这些值上执行加密操作。由服务器加密(例如paillier加密)的得出值作为gf(x1)…gf(xn)提供给客户端。同时在610处,服务器加密(例如paillier加密)g(y1)…g(ym)并且将其发送到客户端。此外,在610处,生成多个单个有效载荷e[(s1)…(sn)],每一个包括多个值(例如花费值)。单个有效载荷e[(s1)…(sn)]均将最高有效位(例如上半部)维持为空,并且在下半部中提供加密数据值。如上所述,在有效载荷e[(s1)…(sn)]中的每一个中,加密数据值以保护位来间隔。

如下更详细所述,可选地,在610处,可以在服务器处对加密数据值进行操作,其中,加密数据值e[(s1)…(sn)]表示多个位置处的一个或多个数据值的向量。根据该操作,可以执行以下操作中的至少一个:在有效载荷中,将加密的有效载荷e[(s1)…(sn)]乘以常数值的加密,以及乘以加密的有效载荷e[(s1)…(sn)]来移位与向量相关联的数据值的位置。

在615和620处,执行基于由客户端和服务器提供的id之间的匹配来确定交集的操作。在615处,客户端加密g(y1)…g(ym)来获得fg(y1)…fg(ym)。然而,在620处,客户端检验fg(yj)和上述gf(xi)之间的匹配。基于615和620的操作,确定交集。

在625处,如上参考图4和5所述,执行移位操作。例如但不作为限制,对于关于上文导出的交集的e(sj)的值,执行如上所述的移位和幂过程。因此,对于加密的有效载荷e[(s1)…(sn)]中的每一个,使由位于适当左移位置处的e(sj)表示的加密数据值相乘。由此,生成与明文值的和相关联的、单个有效载荷e[(s1)…(sn)]中的每一个中的加密数据值的积。

可选地,作为客户端处的625的乘法运算的一部分,并且如上所述,加密的有效载荷e[(s1)…(sn)]中的一个的一个或多个数据值可以位于向量中的第一位置(i)处,并且可以乘以可以位于第二向量中的第二位置(j)处的其他加密有效载荷e[(r1)…(rn)]中的一个或多个中的一个或多个其他数据值,以生成上述积,其表示与作为所得加密向量e[(u1)…(un)]中的(si+rj)的加密值的加密有效载荷中的一个的相乘的一个或多个数据值相对应的数据值的总和。即,第三位置(k)是这样的以使得得出的加密向量中uk=si+rj。

可选地,可以执行操作630和635。例如但不作为限制,在操作630处,客户端通过加密随机数r来在该积上执行加密操作以将随机数r的加密值生成为e(r),其与该积相乘。向服务器发送解密经盲化积的请求。由此,服务器解密该经盲化积,并且将经盲化和返回客户端。在操作635处,客户端接收该经盲化和并且减去r以生成明文和。

图7图示根据与本发明构思的示例服务器侧操作相关联的示例实施方式的过程700。为了清楚和简明起见,此处不重复先前参考图6所述的一些方面。

可选地,在操作705处,服务器从例如客户端接收f(x1)…f(xn),其是客户端idx1…xn的加密值。服务器执行f(x1)…f(xn)的加密以生成gf(x1)…gf(xn)并且将其发送到客户端。进一步地,服务器生成和加密idy1…ym,并且由此将g(y1)…g(ym)发送到客户端。

在操作710处,数据值s1…sn位于单个有效载荷e[(s1)…(sn)]中并且在数据值上执行加密操作,以生成加密数据值e(s1)…e(sn),其如上所述彼此间隔防护位。如上所述,加密数据值e(s1)…e(sn)位于有效载荷中的每一个的下半部中,使得保持有效载荷的上半部(例如最高有效位)为空。

如下更详细所述,可选地,在710处,可以在服务器处对加密数据值执行操作,其中,加密数据值e[(s1)…(sn)]表示多个位置处的数据值中的一个或多个的向量。根据该操作,可以执行以下操作中的至少一个:在有效载荷中,将加密的有效载荷e[(s1)…(sn)]乘以加密常数值,以及乘以加密的有效载荷e[(s1)…(sn)]来移位与向量相关联的数据值的位置。

在操作715处,服务器可选地接收解密e(sj)的经盲化积的请求。例如,如上图6中所述,服务器可以接收该经盲化请求。在操作720处,解密该经盲化积并且将其提供给客户端。

图8图示根据与本发明构思的示例客户端侧操作相关联的示例实施方式的过程800。为了清楚和简洁起见,此处不重复先前参考图6所述的一些方面。

在805处,客户端将idx1…xn…加密为f(x1)…f(xn),并且将加密值发送到服务器。在810处,客户端接收作为gf(x1)…gf(xn)的客户端idx1…xn…的服务器加密值和作为g(y1)…g(ym)的服务器idy1…ym的加密id。此外,客户端接收多个打包的有效载荷,每一个包括作为上半部为空且下半部由数据值占用的单个有效载荷的e[(s1)…(sn)],如上参考图6所述。

在815和820处,执行操作以基于由客户端和服务器提供的id之间的匹配来确定交集。在815处,客户端加密g(y1)…g(ym)以获得fg(y1)…fg(ym)。然后,在820处,客户端检验fg(yj)和上述gf(xi)之间的匹配。基于操作815和820,确定交集。

在825处,如上参考图4和5所述,执行移位操作。例如但不作为限制,对于多个单个有效载荷e[(s1)…(sn)]的e(sj)的值,关于上述交集,执行如上所述的移位和幂过程。因此,使由适当左移位置处的e(sj)表示的加密数据值相乘。由此,生成与明文值的和相关联的加密数据值的积。

可选地,作为客户端处的825的乘法运算的一部分,并且如上所述,加密有效载荷e[(s1)…(sn)]中的一个的一个或多个数据值可以位于向量中的第一位置(i)处,并且可以乘以可以位于第二向量中的第二位置(j)处的其他加密有效载荷e[(r1)…(rn)]中的一个或多个中的一个或多个其他数据值,以生成上述积,其表示与作为所得的加密向量e[(u1)…(un)]中的(si+rj)的加密值的加密有效载荷中的一个的相乘的一个或多个数据值相对应的数据值的总和。即,第三位置(k)这样的以使得得出的加密向量中,uk=si+rj。

可选地,可以执行操作830和835。例如但不作为限制,在操作830处,客户端通过加密随机数r来在该积上执行加密操作以将随机数r的加密值生成为e(r),其与该积相乘。向服务器发送解密经盲化积的请求。由此,服务器解密该经盲化积,并且将经盲化和返回客户端。在操作835处,客户端接收该经盲化和并且减去r来生成明文和。

除上述示例实施方式外,可以提供其他示例实施方式。例如但不作为限制,有效载荷中的多个元素可以是向量,如下所述。

相对于比密文总体更短的明文数据元素,公钥加密的密文可以是大的。此外,明文的和比密文的大小总体更短。因此,在该替选示例实施方式中,加密有效载荷可以表示多个或经定位的多个(向量)元素值,并且由此节省相当大的空间。

根据该替选示例实施方式,乘以加密的有效载荷将有效载荷元素添加在每位置的向量中,并且可以简化第一向量加密处的位置i与在第二向量加密处的位置j元素的相加,其中,j不同于i。

由此,本示例实施方式提供允许跨位置来执行同态操作的方法。因此,得出的加密向量在一些位置k处具有第一加密有效载荷密文的初始向量位置i元素与第二加密向量有效载荷的位置j元素中的元素的结果(例如和)。

因此,可以在同一有效载荷中加密的元素上提供同态操作的扩展的灵活性,使得无论位置如何,都能在加密下的数据元素(例如密文有效载荷)上执行操作,而不必解密该有效载荷和在明文元素上执行这样的操作。示例实施方式总是使元素维持加密,同时允许元素上的灵活操作(例如使向量元素相加,而不管其在向量内的位置如何)。

图9示出适合于一些示例实施方式的示例环境。环境900包括设备905-945,并且均经由例如网络960(例如通过有线和/或无线连接)来与至少一个其他设备通信连接。一些设备可以通信地连接到一个或多个存储设备930和945。

一个或多个设备905-945的示例可以是下面在图10a和10b中所述的计算设备1005。设备905-945可以包括但不限于计算机905(例如手提计算设备)、移动设备910(例如智能电话或平板计算机)、电视915、与车辆920相关联的设备、服务器计算机925、计算设备930-940、存储设备930和945。

在一些实施方式中,设备905-920可以被视为用户设备(例如由用户使用来访问服务和/或发出请求的设备,诸如在社交网络上)。设备925-945可以是与服务提供者相关联的设备(例如由服务提供者使用来提供服务和/或存储数据,诸如网页、文本、文本部分、图像、图像部分、音频、音频段、视频、视频段、和/或与其有关的信息)。

例如,客户端可以执行与诸如上面图8的上述示例实施方式相关联的操作,包括在由一个或多个设备925-940支持的网络上使用设备905或910的示例实施方式的拆包操作。服务器可以执行与诸如上面图7的上述示例实施方式相关联的操作,包括经由网络950使用设备945的示例实施方式的打包操作。

图10a-10b示出具有适合于在一些示例性实施方式中使用的示例计算设备的示例计算环境。为了清楚和简洁起见,一起论述图10a和10b的公共元件。

计算环境1000中的计算设备1005能包括一个或多个处理单元、内核、或处理器1010、存储器1015(例如ram和/或rom等)、内部存储1020(例如磁、光、固态存储、和/或有机)、和/或i/o接口1025,上述中的任何一个能耦合在用于传送信息的通信机构或总线1030上或嵌入在计算设备1005中。

计算设备1005能够通信地耦合至输入/用户接口1035和输出设备/接口1040。输入/用户接口1035和输出设备/接口1040中的任何一个或两者能是有线或无线接口,并且能够是可拆卸的。输入/用户接口1035可以包括能被用来提供输入的、物理或虚拟的任何设备、组件、传感器、或接口(例如按钮、触摸屏接口、键盘、指示/光标控制、麦克风、相机、盲文、运动传感器、和/或光学阅读器等)。输出设备/接口1040可以包括显示器、电视、监控器、打印机、扬声器、盲文等。在一些示例实施方式中,输入/用户接口1035和输出设备/接口1040能嵌入到计算设备1005或与之物理耦合。在其他示例实施方式中,其他计算设备可以充当计算设备1005的输入/用户接口1035和输出设备/接口1040或提供其功能。

计算设备1005的示例可以包括但不限于高度移动的设备(例如智能电话、车辆和其他机器中的设备、由人或动物携带的设备等)、移动设备(例如平板计算机、笔记本计算机、膝上型计算机、个人计算机、便携式电视、无线电等),以及不针对移动性设计的设备(例如台式计算机、其他计算机、信息亭、具有嵌入其中和/或耦合至其的一个或多个处理器的电视、无线电等)。

计算设备1005能够通信地耦合(例如经由i/o接口1025)到外部储存1045以及网络1050,以用于与任何数目的联网组件、装置、和系统通信,所述联网组件、装置、和系统通信包括配置相同或不同的一个或多个计算装置。计算装置1005或者任何连接的计算装置可以充当服务器、客户端、瘦服务器、通用机器、专用机器、或其他标签,或者提供它们的服务,或者被称为服务器、客户端、瘦服务器、通用机器、专用机器、或其他标签。

i/o接口1025可以包括促进通过语音和/或通过数据网络的无线通信的无线通信组件(未示出)。无线通信组件可以包括具有一个或多个天线、无线电系统、基带系统、或其任何组合的天线系统。可以在无线电系统的管理下,通过天线系统在空中发射和接收射频(rf)信号。

i/o接口1025可包括但不限于使用任何通信或i/o协议或标准(例如以太网、802.11x、通用系统总线、wimax、调制解调器、蜂窝网络协议等等)的有线和/或无线接口,其用于向至少计算环境1000中所连接的组件、设备、以及网络传输信息和/或从其传输信息。网络1050可以是任何网络或网络的组合(例如互联网、局域网、广域网、电话网络、蜂窝网络、卫星网络等等)。

计算装置1005可以使用计算机可用介质或计算机可读介质和/或使用计算机可用或计算机可读介质来通信,所述计算机可用或计算机可读介质包括暂时性介质和非暂时性介质。暂时性介质包括传输介质(例如金属电缆、光纤)、信号、载波等等。非暂时性介质包括磁介质(例如磁盘和磁带)、光介质(例如cdrom、数字视频盘、蓝光盘)、固态介质(例如ram、rom、闪存、固态存储)、以及其他非易失性存储或存储器。

计算装置1005可用于在一些示例计算环境中实现技术、方法、应用、过程、或计算机可执行指令。计算机可执行指令可以从暂时性介质检索,并存储在非暂时性介质上,以及从非暂时性介质检索。可执行指令可源自于任何编程语言、脚本语言、以及机器语言中的一个或多个(例如c、c++、c#、java、visualbasic、python、perl、javascript以及其他)。

如图10a所示,在原生或虚拟环境中,处理器1010可以在任何操作系统(os)(未示出)下执行。可以部署一个或多个应用,其包括逻辑单元1060、应用程序编程接口(api)单元1065、输入单元1070、输出单元1075、多值拆包引擎1080、密码引擎1085、第三方接口1090、和用于不同单元相互通信、与os通信、以及与其他应用(未示出)通信的单元间通信机构1095。例如,多值拆包引擎1080、密码引擎1085、和第三方接口1090可以实现图6和8中所示的一个或多个过程。所述单元和元件可以在设计、功能、配置、或实施方式方面不同,并且不限于所提供的描述。

在一些示例实施方式中,当由api单元1065接收信息或执行指令时,其被传送到一个或多个其他单元(例如,逻辑单元1060、输入单元1070、输出单元1075、多值拆包引擎1080、密码引擎1085、和第三方接口1090)。例如,多值拆包引擎1080可以执行左移位(例如拆包)和乘法,如上参考图6和8所述。密码引擎1085可以加密客户端的id,或执行上面参考图6和8所述的操作所需的其他值。第三方接口1090可以准许第三方——诸如用户、操作员或管理员与计算环境相接口。在输入单元1070检测到请求后,输入单元1070可以使用api单元1065将请求传送到多值拆包引擎1080。多值拆包引擎1080可以经由api单元1065与密码引擎1085交互来检测和处理请求。使用api单元1065,多值拆包引擎1080可以与第三方接口1090交互来准许第三方在客户端侧查看或管理操作。

在一些实例中,在上述的一些示例实施方式中,逻辑单元1060可以被配置成控制单元当中的信息流并且指引由api单元1065、输入单元1070、输出单元1075、多值拆包引擎1080、密码引擎1085、和第三方接口1090提供的服务。例如,可以仅由逻辑单元1060或结合api单元1065来控制一个或多个过程或实施方式的流程。

如图10b所示,处理器1010能在原生或虚拟环境中,在任何操作系统(os)(未示出)下执行。能部署一个或多个应用,其包括逻辑单元1060、应用编程接口(api)单元1065、输入单元1070、输出单元1075、多值打包引擎1082、服务器侧加密单元1087、第三方接口1092、和用于不同单元相互通信、与os通信、和与其他应用(未示出)通信的单元间通信机构1095。例如,多值打包引擎1082、服务器侧加密单元1087、和第三方接口1092可以实现图7和8中所示的一个或多个过程。所述单元和元件可以在设计、功能、配置、或实施方式方面不同,并且不限于所提供的描述。

在一些实施方式中,当由api单元1065接收信息或执行指令时,其可以被传送到一个或多个其他单元(例如,逻辑单元1060、输入单元1070、输出单元1075、多值打包引擎1082、服务器侧加密单元1087和第三方接口1092)。例如,多值打包引擎1082可以执行生成每一单个有效载荷并且加密单个有效载荷中的每一个中的数据值(例如打包),如上参考图7和8所述。服务器侧加密单元1087可以加密服务器的id,或执行上面参考图7和8所述的操作所需的其他值。第三方接口1092可以准许第三方——诸如用户、操作员或管理员与来自服务器侧的计算环境相接口。在输入单元1070检测到请求后,输入单元1070可以使用api单元1065来将请求传送到多值打包引擎1082。多值打包引擎1082可以经由api单元1065与服务器侧加密单元1087交互以检测和处理请求。使用api单元1065,多值打包引擎1082可以与第三方接口1092交互来准许第三方在服务器侧查看或管理操作。

在一些实例中,在上述的一些示例实施方式中,逻辑单元1060可以被配置成控制单元当中的信息流并且指引由api单元1065、输入单元1070、输出单元1075、多值打包引擎1082、服务器侧加密单元1087、第三方接口1092提供的服务。例如,可以仅由逻辑单元1060或结合api单元1065来控制一个或多个过程或实施方式的流程。

本文所述的任何一个软件组件可以采取各种形式。例如,组件可以是独立软件包,或可以是包含在较大软件产品中的“工具”的软件包。其可以作为独立产品或作为安装在现有软件应用中的插件包而可从网络——例如网站下载以。其还可以用作客户端-服务器软件应用、支持web的软件应用和/或移动应用。

在本文所述的实施方式收集有关用户的个人信息,或可以利用个人信息的情形或示例中,可以为用户提供机会来控制程序或特征是否收集用户信息(例如有关用户的社交网络的信息、社会行为或活动、职业、用户偏好、或用户的当前位置,或者控制是否和/或如何从与用户更相关的内容服务器接收内容。此外,某些数据在其被存储或使用前,可以以一种或多种方式处理,使得去除个人可识别信息。

虽然示出和描述了一些示例实施方式,但是这些示例实施方式被提供来向熟悉本领域的人员传达本文所述主题内容。应当理解,本文所述主题内容可以以多种形式实施,而不限于所述的示例实施方式。本文所述主题在没有这些特别限定或描述的内容的情况下也可以实践,也可利用其他或不同的元件或者没有描述的内容来实践。本领域技术人员应当理解,在不脱离所附权利要求书及其等同物所限定的本文所述主题内容的情况下,在这些示例实施方式中可以进行改变。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1