用于在AES计数器模式加密中对用拟群运算加密的整数进行相加和比较的系统和方法与流程

文档序号:29206185发布日期:2022-03-12 01:05阅读:270来源:国知局
用于在AES计数器模式加密中对用拟群运算加密的整数进行相加和比较的系统和方法与流程
用于在aes计数器模式加密中对用拟群运算加密的整数进行相加和比较的系统和方法
技术领域
1.本公开总地涉及密码学,并且更特别地,涉及用于计算机数据隐私的密码学。


背景技术:

2.当利用当前的nist标准aes计数器模式(ctr-xor)对称密钥加密方案对数据进行加密时,可以对加密数据执行的唯一运算是解密。特别是,在不首先解密两个密文的情况下,不可能对两个加密整数进行相加或比较(针对小于)。由于标准ctr-xor加密禁止对加密数据进行诸如相加(add)和小于(less than)运算之类的有用的运算,因此合期望的是提供一种加密技术,其提供数据安全性,但准许对加密数据进行有用的运算。
3.上述问题在公共云中的私有计算的上下文中尤为尖锐,但在其他领域中也存在。迄今为止,针对上述问题存在四种解决方案,每种解决方案都有限制和/或缺点。目前的解决方案是:a. 安全硬件扩展,诸如英特尔软件保护扩展(sgx)。b. 完全同态加密(fhe)方案,诸如来自微软的简单加密算术库(seal)。c. 安全多方计算(smpc)方案,诸如来自cybernetica的sharemind。d. 先前在密码学研究中提出了qgroup,用于生成ad hoc流密码、非对称密钥密码系统和消息摘要。
4.硬件扩展解决方案(诸如sgx)具有出色的性能,但它们需要使用来自英特尔的专门化硬件和软件认证基础架构。
5.此外,sgx特别容易受到可能损害机密性的诸如spectre、meltdown和foreshadow之类的旁路攻击,因此正在针对更新的处理器积极开发缓解技术。
6.fhe技术保证了极大的安全性,但是慢得不切实际。例如,与硬件中aes的数纳秒相比,最先进的fhe实现花费数秒钟来评估单个aes加密运算。当前的研究正在探索用于加速这些计算的方法,但是该研究目前还没有为上述问题提供商业上实际的解决方案。
7.已知的smpc技术在性能和安全性之间具有良好的平衡。然而,当前的解决方案(诸如sharemind)太慢,因为它们使用更复杂的协议来用于更严格的安全保证。
8.使用qgroup构造的ad hoc流密码是快速的,但是它们解决加密大型消息的不同问题。基于qgroup的公钥密码系统和消息摘要也针对不同的问题,而不是上面阐述的问题。
9.因此,合期望的是提供一种加密系统和方法,其解决公共云中的私有计算并提供执行加密数据的运算的能力,并且本公开正是针对该目的。
附图说明
10.图1图示了执行加密并促进对加密数据的运算的系统的示例实施例;图2图示了可以使用图1中的系统执行的加密过程;图3图示了可以使用图1中的系统执行的加密运算过程;
图4图示了可以使用图1中的系统执行的解密过程;图5图示了图2中所示的加密过程的另外细节;图6图示了图4中所示的解密过程的另外细节;图7图示了可以使用图1中的系统执行的加密加法过程的加密过程;图8图示了可以使用图1中的系统执行的加密加法过程;图9图示了加密加法过程的解密过程;图10图示了可以使用图1中的系统执行的加密小于过程的加密过程;和图11图示了使用图1中的系统可以执行的加密小于过程。
具体实施方式
11.本公开特别地适用于将私有计算外包给公共云的系统,使得在对公共云中的数据的运算期间维持数据的机密性,并且将在这种上下文中描述本公开。然而,应当领会,该系统和方法具有更大的实用性,因为它可以用于如下所述的任何系统/与如下所述的任何系统一起使用:在所述系统中,合期望的是为了安全性提供加密,同时还允许对加密数据执行运算。该系统和方法利用拟群(缩写为qgroup)运算代替常规ctr-xor的xor(异或)函数,以使得能够实现不用解密就可以执行的计算,从而在公共云中维持机密性。该系统和方法还可以利用smpc系统。
12.图1图示了执行加密和促进对加密数据的运算的系统100的示例实施例。在示例实施例中,示出了彼此通信的客户端102和服务器104,但是该系统可以利用彼此通信的多个客户端和多个服务器来实现。每个客户端102可以是具有处理器、存储器、i/o设备和显示器的计算设备,并且可以执行多行指令/计算机代码(应用、代码段、移动应用等),所述多行指令/计算机代码请求对加密数据执行一个或多个运算,诸如加法运算或小于运算。例如,每个客户端102的计算设备可以是个人计算机、膝上型计算机、平板计算机、终端等。每个服务器104可以是具有处理器、存储器、i/o设备和显示器的计算机,并且可以执行多行指令/计算机代码(应用、代码段、移动应用等),所述多行指令/计算机代码管理客户端请求的一个或多个运算,并且促进对加密数据的运算。例如,每个服务器104的计算机可以是服务器计算机、一个或多个云计算资源、一个或多个虚拟计算机资源、一个或多个刀片服务器等。
13.系统100可以进一步包括:qgroup加密/解密部分106,其连接在每个客户端与每个服务器之间,并且管理如下所述的加密和解密运算。qgroup加密/解密部分106可以实现为一个或多个计算机系统,所述一个或多个计算机系统具有至少一个处理器、存储器、i/o设备,并且可以执行多行指令/计算机代码(一个或多个应用、代码段、移动应用等),所述多行指令/计算机代码在每个客户端102与服务器104之间执行如下所述的加密和解密运算。
14.该系统可以进一步包括连接到服务器104的已知安全多方计算(smpc)集群108,其有助于对加密数据执行所请求的运算,如下面更详细描述的。smpc集群108可以被实现为一个或多个计算机系统,所述一个或多个计算机系统具有至少一个处理器、存储器、i/o设备,并且可以执行多行指令/计算机代码(一个或多个应用、代码段、移动应用等),所述多行指令/计算机代码有助于对加密数据执行所请求的运算,如下面更详细描述的。qgroup加密/解密部分106和smpc集群108每个可以在彼此相同或不同的计算机上实现。更详细地,qgroup加密部分106可以在与客户端102相同的系统上实现、或者在单独的系统上实现,但
是它从不在与服务器104相同的系统上实现,因为这将使加密密钥在服务器104上可获得。此外,qgroup加密/解密部分106和smpc集群108中的每一个可以在与服务器104相同或不同的计算机上实现。如图1中所示,加密密钥110可以被不时地提供给qgroup加密/解密部分106和smpc集群108中的每一个,以对加密数据执行加密/解密以及运算。每个客户端可以对加密数据生成一个或多个运算112,并且服务器104将向客户端返回那些(一个或多个)运算的结果114,如下所述。
15.图2图示了加密过程200,图3图示了加密运算过程300,并且图4图示了可以使用图1中的系统执行的解密过程400。这些过程中的每一个可以使用图1中所示的系统元件100-110中的一个或多个来执行过程。对于smpc集群108协议,客户端102生成明文数据项,并且服务器104存储密码数据项(加密数据),如图2中所示。使用例如图1中的系统对加密数据执行运算的整个运算可以包括三个阶段:加密200、加密运算300和解密400。
16.第一阶段200使用秘密密钥(先前使用加密方案生成的或者在使用加密方案(诸如qgroup加密方案)加密时生成的)与qgroup运算单元106一起来加密来自客户端的明文数据,该明文数据然后被加密存储在服务器104中。第二阶段300执行由客户端102使用在服务器104与smpc 108机器集群之间的smpc协议而启动的运算112,所述smpc 108机器集群可以访问用于加密客户端数据的同一秘密密钥。smpc 108协议在服务器104与集群108中的其他计算机之间交换密码数据和其他信息,使得即使攻击者观察到服务器或集群中的任何一个计算机上的网络流量、存储器和内部计算状态,数据的机密性也不会受到损害。尽管smpc集群108中的一些计算机可以访问秘密密钥,但是smpc协议确保即使保存秘密密钥的计算机之一被攻击者观察到,只要该攻击者不同时攻击服务器104,机密性就不会受到损害。第三阶段400从服务器104取得密码数据,并使用qgroup解密运算106利用相同的秘密密钥对其进行解密,以产生客户端102的明文数据。
17.图5图示了图2中所示的加密过程200的另外细节,并且图6图示了图4中所示的解密过程400的另外细节。图1中的系统可以使用qgroup encrypt 500和qgroup decrypt 600运算作为加密方案。两个运算的第一步骤502、602使用伪随机函数(prf)——其是诸如aes加密或hmac-sha消息摘要之类的暗码函数——来生成伪随机填充,然后在第二步骤中使用qgroup add运算504或lsub运算604将该伪随机填充与数据组合以产生结果(图5中的密码数据或图6中的明文数据)。
18.更详细地,第一步骤502、602采用:新鲜值(nonce)n,其是仅使用一次的随机数;长度l,其是数据中的位数;以及由prf使用的秘密密钥k。nist标准aes计数器模式(ctr-xor)使用aes加密函数作为prf,并且使用xor函数作为qgroup运算。nist标准描述了ctr-xor加密如何采用长度为l位的明文数据m、新鲜值n和秘密密钥k来首先生成128位的m = ceiling(l/128)个输入块集合,每个输入块从n,n+1,...,n+m-1导出,然后利用密钥k使用aes加密对每个输入块进行加密以生成m个输出块,并且最终将所有m个输出块级联,以生成长度为l位的伪随机填充p。在ctr-xor加密的第二步骤中,伪随机填充p与明文数据m进行xor(异或),以产生具有l位的密码数据c,然后该密码数据c连同新鲜值n一起被存储为密文(n,c)。该系统和公开的过程将在ctr-xor的第一步骤中使用的已知prf函数推广为任何暗码伪随机函数,并且其将ctr-xor的第二步骤中的xor运算推广为任何qgroup运算504。
19.qgroup g由包含所有长度为l的二进制字符串的集合g.s连同三种运算组成,这三
种运算为g.add、g.lsub和g.rsub。g.add运算从集合g.s中取得任何两个元素a和b,并且在集合g.s中产生另一个元素c。g.lsub运算从集合g.s中取得任何两个元素a和c,并且从该集合中产生唯一元素b,使得g.add(a, b) = c。g.rsub运算从集合g.s中取得任何两个元素b和c,并且在该集合中产生唯一元素a,使得g.add(a, b) = c。g.lsub运算称为g.add运算的左逆,并且g.rsub运算称为g.add运算的右逆。
20.图5和图6中所示的ctr-qgroup方案选择qgroup,并且然后利用用于加密的qgroup add 504和用于解密的qgroup lsub 506代替nist标准ctr-xor的xor运算,如所示的。如果选择的qgroup是g,则通过使用密钥k加密新鲜值n产生的中间密码块是伪随机填充p = prf(k, n, l),并且由qgroup encrypt针对明文数据m产生的密码数据是密码数据c = g.add(p, m)。密码数据c的qgroup decrypt函数使用相同的伪随机填充p = prf(k, n, l)作为到g.lsub函数的输入,来对密码数据c进行解密,从而产生明文数据m = g.lsub(p, c)。
21.nist标准ctr-xor可以看作是qgroup方案的具体例示,其中xor.add、xor.lsub和xor.rsub函数都是xor,如下所示。。
22.标准ctr-xor的微小变型是引入长度为l位的常数h,并执行输入与常数h的xor,如下所示:。
23.例如,使用全部1位的常数h产生ctr-xnor加密方案。ctr-xnor方案不同于标准ctr-xor,但它并没有提供优于ctr-xor的任何显著益处。
24.下面描述的过程可以用于解决将私有计算外包给公共云的问题,并提供一种技术解决方案,该技术解决方案利用加密提供数据安全性,但准许对加密数据的运算(而不牺牲安全性),现在描述那些运算的示例。
25.图5和6中所示的第一qgroup加密可以使用模2
l
加法和减法来生成ctr-add对称加密方案,如下:。
26.第二qgroup使用模2
l
加法和减法来生成ctr-sub,如下:。
27.ctr-sub优于ctr-add的益处是sub.add和sub.lsub函数在结构上是等同的,因此加密和解密这两者均使用相同的函数实现。
28.许多其他qgroup运算可以用于加密,因为安全证明,所述安全证明利用任何qgroup add运算代替xor产生如nist标准aes ctr-xor加密一样安全的对称密钥加密方案。具有n个元素的集合上的qgroup由其add函数定义,所述add函数由2维cayley表来表示,所述cayley表包含索引为0到n-1的n行和n列,其中每个条目是add(row_index, column_index)的结果。qgroup的add表是拉丁方,因为lsub函数要求列中的条目都不重复,并且rsub函数要求任何行中的条目都不重复。因此,add函数的可能性数量至少为n!(n-1)!...2!1!,并且大量的安全加密方案是可能的。
29.在所有可能的qgroup加密方案中,所公开的系统和过程可以使用qgroup g,其具有包含2
l
个长度为l的二进制字符串元素的集合g.s,以及以下形式的g.add函数:其中+指示模2
l
加法,*指示模2
l
乘法,d和e均是来自集合g.s的与2
l
互质的常数,并且h是来自集合g.s的另一个常数。
30.在定义g.add时选取d = 1,e = 1,h = 0给予我们ctr-add加密方案的qgroup,而选取d = 1,e =-1,h = 0给予我们ctr-sub加密方案的qgroup。
31.使用模2
l
算术的代数性质,对定义g.add = (d * p + e * m + h) mod 2
l 稍加重排揭示出这样的qgroup g满足如下约束:对于所有p和所有m,我们有:g.add(p, m) = (g.add(p, 0) + e * m) mod 2
l
,其中0是l个0位的字符串。该约束进而暗示:对于形式 f(x, y) = (a * x + b * y + q) mod 2
l
的任何函数f,我们有模2
l
等式f(g.add(p1, m1), g.add(p2, m2)) = f(g.add(p1, 0), g.add(p2, 0)) + e * f(m1, m2)。因此,对明文e * f(m1, m2)的运算结果可以通过将服务器104上的密文 f(c1, c2) 的函数结果与smpc 108集群计算机1上的填充f(add(p1, 0), add(p2, 0))的函数结果相组合来获得。
32.在等式f(x, y) = (a * x + b * y + q) mod 2
l
中选取a = 1,b= 1,q= 0,得到f(x, y) = x + y,并给出e * (m1 + m2)的表达式,该表达式然后与约束g.add(p, m) = g.add(p, 0) + e * m 相组合,其中p = p3并且m = e * (m1 + m2) ,产生在如图8中所示的用于在加法smpc协议/过程中计算c3和s的表达式。在定义f(x, y) = (a * x + b * y + q) mod 2
l
时选取a =-1,b= 1,q = r,得到f(x, y) =y
ꢀ‑ꢀ
x + r ,并给出在图10和11中所示的小于协议/过程中计算v和x的表达式。
33.加密加法运算图7-9图示了用于加密加法过程的加密过程、加密加法过程以及用于加密加法过程的解密过程。ctr-add和ctr-sub优于ctr-xor的益处是,通过图7-9中所示的用于对两个密码数据进行相加的以下smpc协议/过程,可以对利用这些qgroup加密方案中的任何一种加密的数据进行相加,如所示出的那样。
34.加密加法过程可以包括以下过程:a. 客户端102执行这些步骤:i. 使用具有新鲜值n1的qgroup 106来加密明文数据m1,以产生用于存储在服务器104上的密文 (n1, c1),ii. 使用具有新鲜值n2的qgroup 106来加密明文数据m2,以产生用于存储在服务器104上的密文(n2, c2),以及iii. 在服务器104上启动两个密文的加法运算。
b. 服务器104向smpc集群108计算机1发送(n1, n2)。c. smpc集群108计算机1执行这些步骤:i. 从服务器104接收(n1, n2),ii. 生成新的新鲜值n3,iii. 利用对于i = 1、2和3的填充 pi = prf(k, ni, l)和明文数据mi = 0,计算,其简化为s = (prf(k, n3, l)
ꢀ‑ꢀ
prf(k, n1, l)
ꢀ‑ꢀ
prf(k, n2, l)) mod 2
l
,以及iv. 将(n3, s) 发送回服务器104。d. 服务器104利用这些步骤继续其处理:i. 从smpc集群108计算机1接收 (n3, s),ii. 计算c3 = (c1 + c2 + s) mod 2
l
,以及iii. 向客户端102发送(n3, c3)作为总和的密文。e. 客户端102使用lsub对密文(n3, c3)进行解密以恢复加法m1 + m2的明文数据,如图9中所示。
35.以这种方式,所公开的系统和方法提供了在私有计算正在公共云中被执行的情形中对加密数据进行相加同时维持安全性(这是正在解决的技术问题)的技术解决方案。作为示例,假设公共云中的数据库包含名为payroll的表,其中每一行包含一个人的名字和针对salary的加密数字。在没有加密密钥的情况下,数据库处的攻击者将无法解密任何工资信息。然而,该数据库和表的所有者(客户端)可以使用上述加法运算,通过发出sql查询(诸如select sum(salary) from payroll)来计算部门的总支出。
36.加法运算将使用smpc协议来计算加密总和,该加密总和然后将需要由具有适当加密密钥的qgroup进行解密。
37.加密小于运算图10图示了用于加密小于过程的加密过程,并且图11图示了加密小于过程。由ctr-add和ctr-sub加密方案产生的密文可以通过以下协议/过程针对小于过程进行比较。
38.在小于过程中,该系统具有smpc 108,但使用smpc集群中的两个计算机,即smpc计算机1 108a和smpc计算机2 108b(如图11中所示),其运算在下面被描述。该过程部分依赖于揭序加密(ore)方案,诸如nathan chenette等人在2016年教导的“practical order-revealing encryption with limited leakage”。ore方案使用在服务器104与smpc集群108a计算机1之间共享的附加秘密密钥k2来使用函数oreencrypt加密运算数。秘密密钥k2在smpc集群计算机2 108b上不可用,但是smpc集群计算机2 108b执行函数orecmp来针对小于比较两个运算数,同时仅泄露运算数之间差异的最高有效位。
39.加密小于过程可以包括以下过程:a. 客户端102执行这些步骤:i. 利用具有新鲜值n1的qgroup加密来加密明文数据m1,以产生用于存储在服务器上的密文 (n1, c1),ii. 利用具有新鲜值n2的qgroup加密来加密明文数据m2,以产生用于存储在服务器上的密文(n2, c2),以及iii. 在服务器104上启动两个密文的小于运算。
b. 服务器104执行这些步骤:i. 生成小于l的随机整数r,ii. 计算v = (c2
ꢀ‑ꢀ
c1) +r,iii. 计算w = oreencrypt(k2, v),iv. 将(n1, n2, r)发送到smpc集群计算机1 108a,以及v. 将w发送到smpc集群计算机2 108b。c. smpc集群计算机1 108a执行这些步骤:i. 从服务器104接收(n1, n2, r),ii. 利用对于i = 1和2的填充 pi = prf(k, ni, l)和明文数据mi = 0,计算 ,其简化为,iii. 计算y = oreencrypt(k2, x)iv. 将y发送到smpc集群计算机2 108b。d. smpc集群计算机2 108b执行这些步骤:i. 从服务器104接收w,ii. 从smpc集群计算机1 108a接收y,iii. 计算z = orecompare(w, y),iv. 将取决于z的最高有效非零位的结果l发送到服务器104。e. 服务器104接收确定是否m1《 m2的结果l,该结果l可以传递回客户端102。“l”是小于协议的结果。如果ml 《 m2,则l被设置为1,并且如果ml 》= m2,则l被设置为0。
40.例如,假设公共云中的数据库包含名为people的表,该表包含保存了人的名字的加密的加密列lastname和保存了出生日期的加密(加密出生日期的密文)的加密列birthdate。在没有正确密钥的情况下,数据库处的攻击者将无法解密任何加密的birthdate值。然而,客户端将能够使用加密小于运算来回答诸如如下的查询:。
41.在没有解密密钥的情况下,数据库处的攻击者将无法看到正在查询的出生日期。攻击者将能够看到为匹配过滤器而选择的结果的数量,但是在没有解密密钥的情况下将无法看到姓氏。具有适当密钥的qgroup解密运算将能够解密查询结果集合中的姓氏。
42.结果概述基于该加密的qgroup加密方法和smpc协议具有可证明的安全性和良好的性能。尽管没有诸如英特尔sgx的硬件解决方案那样快,但所公开的过程不取决于具体硬件,并且不容易受到如上背景技术中所述的旁路攻击。所公开的smpc 小于协议比先前公布的协议(诸如在sharemind系统中)更快得多,因为它将服务器与smpc集群计算机之间的多轮通信减少到一轮。使用qgroup构造的ad hoc流密码通过使qgroup运算保密来维持密文的机密性,并且所公开的系统和方法使用经验证的方法,其公布了qgroup以及加密函数,但是只使密钥保密。所公开的系统和方法的结果和功效已经在针对商业数据库(诸如,在诸如亚马逊web服务和微软azure之类的公共云中部署的cassandra、mysql、mariadb、postgres、mongodb、oracle和微软sql服务器)实现时被示出。
43.出于解释的目的,已经参考具体实施例描述了前述描述。然而,上面的说明性讨论
并不意图是穷举的、或将本公开限制成所公开的精确形式。鉴于上述教导,许多修改和变型是可能的。选取和描述实施例以便于最好地解释本公开的原理及其实践应用,由此使得本领域的其他技术人员能够最好地利用本公开和具有适合于设想的特定用途的各种修改的各种实施例。
44.本文中公开的系统和方法可以经由一个或多个组件、系统、服务器、装置、其他子组件实现,或者分布在这样的元件之间。当实现为系统时,这样的系统可以包括和/或尤其涉及在通用计算机中发现的诸如软件模块、通用cpu、ram等的组件。在创新驻留在服务器上的实现中,这样的服务器可以包括或涉及诸如cpu、ram等的组件,诸如在通用计算机中发现的那些。
45.附加地,本文中的系统和方法可以超出上面阐述的实现经由利用不相干的或完全不同的软件、硬件和/或固件组件的实现来实现。关于这样的其他组件(例如,软件、处理组件等)和/或与本发明相关联或体现本发明的计算机可读介质,例如,本文中的创新的各方面可以与众多通用或专用计算系统或配置一致地实现。可以适用于本文中的创新的各种示例性计算系统、环境和/或配置可以包括但不限于:个人计算机内或体现在个人计算机上的软件或其他组件、诸如路由/连接组件之类的服务器或服务器计算设备、手持设备或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、消费电子设备、网络pc、其他现有计算机平台、包括上述系统或设备中的一个或多个的分布式计算环境等。
46.在一些实例中,例如,系统和方法的各方面可以经由包括程序模块的逻辑指令和/或逻辑来实现或由其执行、与这样的组件或电路相关联地执行。一般而言,程序模块可以包括例程、程序、对象、组件、数据结构等,它们执行特定任务或实现本文中的特定指令。本发明也可以在分布式软件、计算机或电路设置的上下文中实践,其中电路经由通信总线、电路系统或链路连接。在分布式设置中,控制/指令可以从包括存储器存储设备的本地和远程计算机存储介质这两者发生。
47.本文中的软件、电路系统和组件还可以包括和/或利用一种或多种类型的计算机可读介质。计算机可读介质可以是驻留在这样的电路和/或计算组件上、与这样的电路和/或计算组件相关联、或者能够被这样的电路和/或计算组件访问的任何可用介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于ram、rom、eeprom、闪速存储器或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光存储装置、磁带、磁盘存储装置或其他磁存储装置,或者是可以用于存储所需信息并可以由计算组件访问的任何其他介质。通信介质可以包括计算机可读指令、数据结构、程序模块和/或其他组件。此外,通信介质可以包括有线介质,诸如有线网络或直接有线连接,然而本文中的任何这种类型的介质都不包括暂时性介质。任何上述内容的组合也包括在计算机可读介质的范围内。
48.在本说明书中,术语组件、模块、设备等可以指代可以以各种各样的方式实现的任何类型的逻辑或功能软件元件、电路、块和/或过程。例如,各种电路和/或块的功能可以彼此组合成任何其他数量的模块。每个模块甚至可以实现为存储在有形存储器(例如,随机存取存储器、只读存储器、cd-rom存储器、硬盘驱动器等)上的软件程序,该软件程序要由中央
处理单元读取以实现本文中的创新的功能。或者,模块可以包括经由传输载波传输到通用计算机或处理/图形硬件的编程指令。而且,模块可以被实现为硬件逻辑电路系统,其实现了本文中的创新所涵盖的功能。最后,模块可以使用专用指令(simd指令)、现场可编程逻辑阵列或提供了期望的性能和成本水平的其任何组合来实现。
49.如本文中所公开的,与本公开一致的特征可以经由计算机硬件、软件和/或固件实现。例如,本文中公开的系统和方法可以以各种形式体现,所述形式包括例如数据处理器,诸如还包括数据库、数字电子电路、固件、软件或它们的组合的计算机。此外,虽然一些公开的实现描述了特定的硬件组件,但是与本文中的创新一致的系统和方法可以以硬件、软件和/或固件的任何组合来实现。此外,本文中的创新的上述特征和其他方面和原理可以在各种环境中实现。这样的环境和相关应用可以被专门构造用于执行根据本发明的各种例程、过程和/或运算,或者它们可以包括由代码选择性激活或重新配置以提供必要功能的通用计算机或计算平台。本文中公开的过程并不固有地与任何特定的计算机、网络、架构、环境或其他装置相关,并且可以通过硬件、软件和/或固件的适当组合来实现。例如,各种通用机器可以与根据本发明的教导编写的程序一起使用,或者构造专用装置或系统来执行所需的方法和技术可以更方便。
50.本文中描述的方法和系统的各方面(诸如逻辑)也可以被实现为被编程到各种各样的电路中的任何电路中的功能,所述电路包括诸如现场可编程门阵列(“fpga”)之类的可编程逻辑器件(“pld”)、可编程阵列逻辑(“pal”)器件、电可编程逻辑和存储器器件以及基于标准单元的器件,以及专用集成电路。实现各方面的一些其他可能性包括:存储器设备、具有存储器的微控制器(诸如eeprom)、嵌入式微处理器、固件、软件等。此外,各方面可以体现在以下微处理器中,所述微处理器具有基于软件的电路仿真、离散逻辑(顺序和组合)、自定义器件、模糊(神经)逻辑、量子器件以及任何上述器件类型的混合。底层器件技术可以以各种各样的组件类型的形式提供,例如,比如互补金属氧化物半导体(“cmos”)的金属氧化物半导体场效应晶体管(“mosfet”)技术、比如发射极耦合逻辑(“ecl”)的双极技术、聚合物技术(例如,硅共轭聚合物和金属共轭聚合物金属结构)、混合模拟和数字等等。
51.还应当注意,本文中公开的各种逻辑和/或功能可以使用硬件、固件的任何数量的组合来使得能够实现,和/或根据它们的行为、寄存器传递、逻辑组件和/或其他特性,作为体现在各种机器可读或计算机可读介质中的数据和/或指令来使得能够实现。其中可以体现这样的格式化数据和/或指令的计算机可读介质包括但不限于采用各种形式的非易失性存储介质(例如,光、磁或半导体存储介质),但是同样不包括暂时性介质。除非上下文另行明确要求,否则贯穿于描述,词语“包括”、“包含”等要在包含性的意义上来解释,而不是在排他性的或穷尽性的意义上来解释;也就是说,在“包括,但不限于”的意义上。使用单数或复数的词语也分别包括复数或单数。附加地,词语“在本文中”、“以下”、“上面”、“下面”以及类似含义的词语指代本技术的整体,而不是指代本技术的任何特定部分。当词语“或者”用于指代具有两个或更多个项的列表时,该词语覆盖该词语的所有以下解释:列表中的任一项、列表中的所有项、以及列表中的项的任何组合。
52.尽管本文中已经具体描述了本发明的某些当前优选的实现,但是对于本发明所属领域的技术人员而言,应当清楚的是,在不脱离本发明的精神和范围的情况下,可以对本文中示出和描述的各种实现做出变化和修改。因此,旨在使本发明仅限于适用法律规则所要
求的范围。
53.尽管前面已经参考了本公开的具体实施例,本领域技术人员应当领会到,在不脱离本公开的原理和精神的情况下,可以对该实施例做出改变,本公开的范围由所附权利要求限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1