用零知识证明证实短认证数据的制作方法

文档序号:23068554发布日期:2020-11-25 17:56阅读:103来源:国知局
用零知识证明证实短认证数据的制作方法



背景技术:

计算机用户越来越频繁地被要求提供诸如(多个)密码、(多个)个人标识号(pin)的认证数据以将其身份建立为(多个)计算机事务的一部分。(多个)计算机事务可以包括金融事务、使用网站访问计算机资源等。



技术实现要素:

本文描述了一种用于证实短认证数据的系统,包括:处理系统,其包括处理器和存储器,该存储器具有被存储于其上的计算机可执行指令,计算机可执行指令在由处理器执行时使处理系统:由服务器从客户端设备接收与特定用户相关联的短认证数据;由服务器生成随机数;由服务器将所生成的随机数提供给客户端设备;通过使用短认证数据、所生成的随机数和仅服务器知道的秘密值来计算承诺(commitment)值,由服务器承诺短认证数据;以及由服务器存储与特定用户相关联的承诺值,其中服务器没有持久地存储短认证数据和所生成的随机数。

本文进一步描述了一种证实所呈现的短认证数据的方法,包括:由服务器结合计算机事务从客户端设备接收与特定用户相关联的所呈现的短认证数据和所存储的随机数;由服务器使用所呈现的短认证数据、随机数和仅服务器知道的秘密值来计算与所呈现的短认证数据相关联的值;由服务器取回与特定用户相关联的所存储的承诺值;确定与所呈现的短认证数据相关联的值是否等于所存储的承诺值;如果与所呈现的短认证数据相关联的值等于所存储的承诺值,则所呈现的短认证数据是有效的并且计算机事务被允许发生;以及如果与所呈现的短认证数据相关联的值不等于所存储的承诺值,则所呈现的短认证数据不是有效的并且计算机事务被阻止发生。

提供本发明内容是以简化形式介绍一些概念,这些概念将在下面的具体实施方式中被进一步描述。本发明内容既不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在被用来限制所要求保护的主题的范围。

附图说明

图1是图示了用于证实短认证数据的系统的功能性框图。

图2是图示了用于证实所呈现的短认证数据的系统的功能性框图。

图3是图示了证实短认证数据的方法的流程图。

图4和图5是图示了证实所呈现的短认证数据的方法的流程图。

图6是图示了示例性计算系统的功能性框图。

具体实施方式

现在参考附图描述与用零知识证明来证实短认证数据有关的各种技术,其中贯穿全文,相似的附图标记用于指代相似的元素。在下面的描述中,出于解释的目的,阐述了许多具体细节以提供对一个或多个方面的透彻理解。然而,显而易见的是,可以在没有这些具体细节的情况下实践这样的(多个)方面。在其他实例中,以框图形式示出了公知的结构和设备,以有助于描述一个或多个方面。此外,应当理解,被描述为由某些系统组件执行的功能性可以由多个组件执行。类似地,例如,组件可以被配置为执行被描述为由多个组件执行的功能性。

本公开内容支持执行或被配置为执行关于用零知识证明来证实短认证数据的各种动作的各种产品和过程。以下是一种或多种示例性的系统和方法。

本公开的各方面关于证实在处理(多个)计算机事务中使用的短认证数据的技术问题。与解决此问题相关联的技术特征涉及:由服务器从客户端设备接收与特定用户相关联的短认证数据;由服务器生成随机数;由服务器将所生成的随机数提供给客户端设备;通过使用短认证数据、所生成的随机数和仅服务器知道的秘密值来计算承诺值,由服务器承诺短认证数据;以及由服务器存储与特定用户相关联的承诺值,其中服务器没有持久地存储短认证数据和所生成的随机数。

技术特征还涉及后续地:通过由服务器结合计算机事务来接收所呈现的短认证数据和所存储的随机数,使用所存储的承诺值来证实所呈现的短认证数据;由服务器使用所呈现的短认证数据、随机数和仅服务器知道的秘密值来计算与所呈现的短认证数据相关联的值;由服务器取回所存储的承诺值;确定与所呈现的认证相关联的值是否等于所存储的承诺值;如果与所呈现的短认证数据相关联的值等于所存储的承诺值,则所呈现的短认证数据是有效的并且计算机事务被允许发生;以及如果与所呈现的短认证数据相关联的值不等于所存储的承诺值,则所呈现的短认证数据不是有效的并且计算机事务被阻止发生。因此,这些技术特征的各方面表现出更高效且有效地提供计算机事务安全性的技术效果。

此外,术语“或”旨在表示包括性的“或”而不是排他性的“或”。也就是说,除非另外指定或从上下文中清楚知道,否则短语“x采用a或b”旨在表示任何自然的包括性排列。也就是说,以下任何一种情况都满足短语“x使用a或b”:x采用a;x采用b;或者x采用a和b两者。此外,除非另外指定或从上下文中清楚知道是针对单数形式,否则本申请和所附权利要求书中使用的冠词“一”和“一个”通常应当被解释为是指“一个或多个”。

如本文所使用的,术语“组件”和“系统”及其各种形式(例如,组件、系统、子系统等)旨在指代与计算机有关的实体,不管是硬件、硬件和软件的组合、软件,还是执行中的软件。例如,组件可以是但不限于是在处理器上运行的进程、处理器、对象、实例、可执行文件、执行的线程、程序和/或计算机。作为说明,在计算机上运行的应用和计算机都可以是组件。一个或多个组件可以驻留在执行线程和/或进程中,并且组件可以位于一个计算机上和/或被分布在两个或更多个计算机之间。此外,如本文中所使用的,术语“示例性”旨在是指用作事物的说明或示例,而非旨在指示偏好。

在一些场景中,出于安全性目的,不允许验证器,例如服务器或服务,持久地存储敏感值,诸如密码、个人标识号(pin)和/或其他的短认证数据(例如,(多个)卡验证值(cvv))。在一些场景中,验证器在证实和/或验证期间临时地存储敏感值是可接受的;但是,这些敏感值不允许被持久地存储。

常规地,为了证实所呈现的敏感值,验证器可以利用外部证实系统。然而,由于每个证实可能具有相关联的费用(例如,每次证实),因此每次呈现敏感值时都利用外部证实系统在财务上是昂贵的。另外,每次呈现敏感值时都利用外部证实系统会导致处理与所呈现的敏感值相关联的计算机事务中的服务延时。

本文描述的是用于利用密码承诺来证实(多个)敏感值的知识而无需持久地存储(多个)敏感值的技术。在一些实施例中,一旦短认证已经(例如,使用外部证实系统)而被初始证实,(多个)后续事务就可以在不诉诸使用外部证实系统的情况下被证实,这在一些示例中可以节省成本和/或减少事务延时。

参考图1,图示了用于证实短认证数据的系统100。在一些实施例中,系统100是服务器的组件和/或作为基于云的服务而可用。在一些实施例中,系统100作为验证器在证实期间在存储器中保留(多个)敏感值,诸如下面讨论的短认证数据和/或随机数;但是,(多个)敏感值和/或诸如加密或散列的短认证数据的可恢复版本不会被持久地存储。在一些实施例中,一旦已经计算并存储了承诺值,就从系统100(作为验证器)的存储器中移除短认证数据和/或所生成的随机数。因此,作为验证器的系统100(持久地)具有短认证数据的“零知识”。

“短认证数据”包括(多个)密码(例如,字母数字的)、个人标识号等。在一些实施例中,短认证数据包括预定数量和/或类型的字符,例如,三个数字数位、四个数字数位等。在一些实施例中,短认证数据包括预定的最小数量和/或类型的(多个)字符,例如,密码必须包括至少三个字符,其中之一必须是符号。在一些实施例中,短认证数据包括预定的最大数量和/或类型的字符,例如,密码必须少于十个字符,其中每个字符是不同的。

系统100使用接收到的短认证数据来执行(多个)计算。在一些实施例中,对于包括数字数位的短认证数据,系统100可以利用接收到的短认证数据(例如,在不变换的情况下)。在一些实施例中,对于包括字母数字字符的短认证数据,系统100可以将短认证数据变换为整数表示。例如,每个字母数字字符以及可选地字母数字字符的位置可以被映射到一值,这些值被求和或以其他方式被用来得到整数表示,该整数表示然后被系统100利用。

系统100包括承诺组件130,承诺组件130从客户端设备120(例如,移动电话、台式机、笔记本计算机、平板计算机、手表、服务器、手持式、可编程消费或工业电子器件、机顶盒、游戏系统、计算节点等)接收与特定用户相关联的短认证数据。在一些实施例中,在第一证实、密码/pin变化、密码/pin到期期间,承诺组件110仅在特定用户已经由认证组件130认证之后才接收短认证数据。认证组件130可以涉及用于认证特定用户的一个或多个认证技术(例如,双因素认证、外部证实服务等)。在一些实施例中,认证组件130是系统100和/或服务器的组件。在一些实施例中,认证组件130在系统100和/或服务器的外部。

在一些实施例中,承诺组件110生成随机数并将所生成的随机数提供给客户端设备120(例如,由客户端设备130存储以用于在后续的证实尝试期间呈现的随机数140)。在一些实施例中,承诺组件110从客户端设备120接收也由客户端设备120存储的随机生成的数(例如,由客户端设备120响应于来自系统100的请求而生成)。

在一些实施例中,通过使用短认证数据(sad)、所生成的随机数和仅服务器知道的秘密值来计算承诺值,承诺组件110(例如,代表客户端设备120)承诺短认证数据。在一些实施例中,承诺值被计算如下。令g∈gq,h∈gq,其中q是大质数,gq是q阶群,并且g是gq的生成器。此外,令h=gx,其中x是仅服务器知道的秘密。服务器(代表客户端设备120)如下承诺k=sad:

r={0,1}*∈zq(式1)

c=gkhr(式2)

其中c是承诺,并且r是所生成的随机数。可以通过显露随机数r和k(sad)来公开承诺c。质数q应该足够大以确保离散对数问题在gq中是困难的。基本方案也被称为佩德森(pedersen)承诺,在一些实施例中,系统100采用该基本方案来证实sad而无需持久地存储sad。

在一些实施例中,通过使用短认证数据、所生成的随机数、以及由承诺组件110(基于仅服务器知道的秘密值)所提供的计算值(h)来计算式2的承诺值,客户端组件130(例如,代表客户端设备120)承诺短认证数据。客户端组件130可以向系统100提供承诺值,以用于在后续的(多个)证实期间进行存储和使用。

承诺组件110将与特定用户相关联的承诺值存储在承诺存储库150中。承诺组件110、系统100和/或服务器没有持久地存储短认证数据和/或所生成的随机数。因此,在一些实施例中,对于特定的存储的承诺值,k(sad)不是系统100可恢复的,因为如果没有r而只有固定的k,则系统100仅能计算gk·(gr)x,由于r未知,其仍然隐藏k(sad)。

在一些实施例中,可以基于与特定用户相关联的全局唯一标识符(guid)将(多个)承诺值存储在承诺存储库150中。在一些实施例中,特定用户可以具有被存储在存储库150中的针对各种账户的多个承诺值。可以基于与特定用户相关联的guid和账户标识符将承诺值存储在承诺存储库150中。

转到图2,图示了用于证实所呈现的短认证数据200的系统。利用系统200,上述承诺值一旦被存储,就可以被用来后续地使用所呈现的短认证数据对特定用户进行证实。在一些实施例中,所呈现的短认证数据可以与计算机事务结合使用,例如,短认证数据充当安全特征,在计算机事务被允许发生之前,该安全特征必须被证实(例如,所呈现的短认证数据被证明是正确的)。

在一些实施例中,系统200是服务器的组件和/或作为基于云的服务可用。在一些实施例中,在证实期间,系统200作为验证器在存储器中保留(多个)敏感值,诸如下面讨论的所呈现的短认证数据和/或随机数;然而,系统200没有持久地存储(多个)敏感值和/或诸如加密或散列的短认证数据的可恢复版本。在一些实施例中,一旦已经计算出承诺值并且所呈现的短认证数据被确定为有效或无效,则所呈现的短认证数据和/或所生成的随机数从系统200(作为验证器)的存储器中被移除并且不被持久地存储。

系统200使用所呈现的短认证数据来执行(多个)计算。在一些实施例中,对于包括数字数位的所呈现的短认证数据,系统200可以利用接收到的所呈现的短认证数据(例如,在不变换的情况下)。在一些实施例中,对于包括字母数字字符的短认证数据,系统200可以将短认证数据变换为整数表示。例如,通过将字符的八位位组不模糊地编码成字节的八位位组以形成多个八位位组长的整数值,每个字母数字字符以及可选地字母数字字符的位置可以被映射到一值,或者每个字母数字字符以及可选地字母数字字符的位置以其他方式被用来得到整数表示,该整数表示然后被系统200利用。将密码不模糊地转换成大整数的一个示例是以ascii或utf-8(rfc2279)对密码进行编码。

系统200包括证实组件210,证实组件210从客户端设备220(例如,移动电话、台式机、笔记本计算机、平板计算机、手表、服务器、手持式、可编程消费或工业电子器件、机顶盒、游戏系统、计算节点等)接收所呈现的短认证数据和随机数(例如,由承诺组件110提供和/或由客户端设备120生成并存储的所存储的随机数140)。证实组件210使用所呈现的短认证数据、所接收的随机数和仅服务器知道的秘密值(x)来计算与所呈现的短认证数据相关联的值。如上所述,令g∈gq,h∈gq,其中q是大质数,gq是q阶群,并且g是gq的生成器。此外,令h=gx,其中x是仅服务器知道的秘密。在一些实施例中,与所呈现的短认证数据相关联的值(y)被计算如下:

y=gk·hr(式3)

其中式3的k是所呈现的短认证数据,并且式3的r是接收到的随机数。

证实组件210从承诺存储库150取回与特定用户相关联的所存储的承诺值。然后,证实组件210确定与所呈现的短认证数据相关联的值是否等于所存储的承诺值。

如果与所呈现的短认证数据相关联的值等于所存储的承诺值,则所呈现的短认证数据是有效的。如果与所呈现的短认证数据相关联的值不等于所存储的承诺值,则所呈现的短认证数据不是有效的。

在一些实施例中,基于证实组件210确定所呈现的短认证数据是有效的,系统200允许计算机事务发生。在一些实施例中,基于证实组件210确定所呈现的短认证数据是无效的,系统200阻止计算机事务发生。

在一些实施例中,对于特定的所存储的承诺值,k(sad)是系统200不可恢复的,因为如果没有r而是固定的k,则系统100仅能计算gk·(gr)x,由于r未知,其仍然隐藏k(sad)。在一些实施例中,承诺值(c)由系统200存储,以防止除了特定用户之外的实体参与计算机事务。关于除了特定用户之外的其他实体(其知道sad和所生成的随机数(r))通常不能欺骗系统200接受不同的sad的证明如下:给定承诺c,实体(例如,恶意客户端)必须对c=gkhr求解出r和k。在一些实施例中,对k的搜索空间非常小;因此可以在对攻击方建模时将k视为常量。因此,问题在于对于固定的c和固定的k找到r′≠r,这简化为离散对数问题。由于实体(例如,恶意客户端)不知道x,因此在被写为c=gk+xr时,问题是相同的。

图3至图5图示了与证实短认证数据有关的示例性方法。虽然将方法示出并描述为按顺序被执行的一系列动作,但是应当理解和明白,该方法不受序列的次序限制。例如,一些动作可能以与本文所述的不同的次序发生。此外,一动作可以与另一动作同时发生。进一步地,在一些情况下,实现本文描述的方法可以不需要所有动作。

此外,本文描述的动作可以是计算机可执行指令,该计算机可执行指令可以由一个或多个处理器实现和/或被存储在一种或多种计算机可读介质上。计算机可执行指令可以包括例程、子例程、程序、执行线程等。更进一步地,方法的动作的结果可以被存储在计算机可读介质中,被显示在显示设备上等。

参考图3,图示了证实短认证数据300的方法。在一些实施例中,方法300由系统100执行。在310,服务器从客户端设备接收与特定用户相关联的短认证数据。在320,短认证数据和特定用户被认证。

在330,服务器生成随机数。在340,服务器将所生成的随机数提供给客户端设备。

在350,通过使用短认证数据、所生成的随机数和仅服务器知道的秘密值来计算承诺值,由服务器承诺短认证数据。在一些实施例中,服务器使用以上的式1和式2代表客户端设备承诺短认证数据。

在360,与特定用户相关联的承诺值由服务器存储。服务器不会持久地存储短认证数据和/或所生成的随机数。

参考图4和图5,图示了证实所呈现的短认证数据400的方法。在一些实施例中,方法400由系统200执行。在410,结合计算机事务,与特定用户相关联的所呈现的短认证和所存储的随机数由服务器从客户端设备接收。

在420,使用所呈现的短认证数据、所接收的随机数和仅服务器知道的秘密值,服务器计算与所呈现的短认证数据相关联的值。在一些实施例中,服务器使用以上的式3来计算与所呈现的短认证相关联的值。

在430,服务器取回与特定用户相关联的所存储的承诺值。在440,确定所存储的承诺值是否等于与所呈现的短认证数据相关联的值。如果在440,该确定为“是”,则在450,所呈现的短认证数据是有效的并且计算机事务被允许发生,并且处理在470继续。如果在440,该确定为“否”,则在460,所呈现的短认证数据是无效的并且计算机事务被阻止发生,并且处理在470继续。在470,服务器没有持久地存储所呈现的短认证数据和/或所接收的随机数。

本文描述的是一种用于证实短认证数据的系统,包括:处理系统,其包括处理器和其上存储有计算机可执行指令的存储器,计算机可执行指令在被处理器执行时使处理系统:由服务器从客户端设备接收与特定用户相关联的短认证数据;由服务器生成随机数;由服务器将所生成的随机数提供给客户端设备;由服务器通过使用短认证数据、所生成的随机数和仅服务器知道的秘密值来计算承诺值,承诺短认证数据;以及由服务器存储与特定用户相关联的承诺值,其中服务器没有持久地存储短认证数据和所生成的随机数。

该系统还可以包括:其中短认证数据与特定用户的特定账户相关联。该系统可以包括存储器,具有被存储于其上的另外的计算机可执行指令,另外的计算机可执行指令在由处理器执行时使处理系统:使用双因素认证或外部证实服务中的至少一项来认证特定用户。该系统还可以包括:其中短认证数据包括字母数字密码,该字母数字密码由系统变换为整数表示,该整数表示然后被系统利用来计算承诺值。

该系统还可以包括其中短认证数据仅包括预定数量的数字数位。该系统还可以包括其中使用以下等式来计算承诺值:

c=gkhr

其中c是承诺值,g是gq的生成器,q是质数,gq是q阶群,k是短认证数据,h=gx,x是仅服务器知道的秘密,并且r是所生成的随机数。

该系统还可以包括存储器,具有被存储于其上的另外的计算机可执行指令,另外的计算机可执行指令在由处理器执行时使处理系统:由服务器结合计算机事务来接收据称与特定用户相关联的所呈现的短认证数据和随机数;由服务器通过使用所呈现的短认证数据、随机数和仅服务器知道的秘密值,计算与所呈现的短认证数据相关联的值;由服务器取回与特定用户相关联的所存储的承诺值;确定与所呈现的短认证数据相关联的值是否等于所存储的承诺值;如果与所呈现的短认证数据相关联的值等于所存储的承诺值,则所呈现的短认证数据是有效的并且计算机事务被允许发生;以及如果与所呈现的短认证数据相关联的值不等于所存储的承诺值,则所呈现的短认证数据无效并且计算机事务被阻止发生。

本文描述了一种证实所呈现的短认证数据的方法,包括:由服务器结合计算机事务从客户端设备接收与特定用户相关联的所呈现的短认证数据和所存储的随机数;由服务器使用所呈现的短认证数据、随机数和仅服务器知道的秘密值来计算与所呈现的短认证数据相关联的值;由服务器取回与特定用户相关联的所存储的承诺值;确定与所呈现的短认证数据相关联的值是否等于所存储的承诺值;如果与所呈现的短认证数据相关联的值等于所存储的承诺值,则所呈现的短认证数据是有效的并且计算机事务被允许发生;以及如果与所呈现的短认证数据相关联的值不等于所存储的承诺值,则所呈现的短认证数据无效并且计算机事务被阻止发生。

该方法还可以包括其中短认证数据与特定用户的特定账户相关联。该方法还可以包括:其中所呈现的短认证数据包括字母数字密码,该字母数字密码被变换为整数表示,该整数表示然后被利用来计算与所呈现的短认证数据相关联的值。该方法还可以包括其中所呈现的短认证数据仅包括预定数量的数字数位。

该方法还可以包括其中使用以下等式来计算与所呈现的短认证数据相关联的值:

y=gk·hr

其中y是与所呈现的短认证数据相关联的值,g是gq的生成器,q是质数,gq是q阶群,k是所呈现的短认证数据,h=gx,x是仅服务器知道的秘密,并且r是所接收的随机数。

本文描述了一种存储计算机可读指令的计算机存储介质,该计算机可读指令在被执行时使计算设备:由服务器从客户端设备接收与特定用户相关联的短认证数据;由服务器生成随机数;由服务器将所生成的随机数提供给客户端设备;由服务器通过使用短认证数据、所生成的随机数和仅服务器知道的秘密值来计算承诺值,承诺短认证数据;以及由服务器存储与特定用户相关联的承诺值,其中服务器没有持久地存储短认证数据和所生成的随机数。

计算机存储介质还可以包括其中短认证数据与特定用户的特定账户相关联。计算机存储介质可以在其上存储另外的计算机可执行指令,该另外的计算机可执行指令在被执行时使计算设备:使用双因素认证或外部证实服务中的至少一项来认证特定用户。

计算机存储介质还可以包括:其中短认证数据包括字母数字密码,该字母数字密码被变换为整数表示,该整数表示然后被利用来计算承诺值。计算机存储介质还可以包括其中短认证数据仅包括预定数量的数字数位。

计算机存储介质还可以包括其中预定数量的数字数位是三个或四个。计算机存储介质还可以包括其中使用以下等式来计算承诺值:

c=gkhr

其中c是承诺值,g是gq的生成器,q是质数,gq是q阶群,k是短认证数据,h=gx,x是仅服务器知道的秘密,并且r是所生成的随机数。

计算机存储介质可以包括被存储于其上的另外的计算机可执行指令,该另外的计算机可执行指令在被执行时使计算设备:由服务器结合计算机事务从客户端设备接收据称与特定用户相关联的所呈现的短认证数据和随机数;由服务器通过使用所呈现的短认证数据、随机数和仅服务器知道的秘密值来计算与所呈现的短认证数据相关联的值;由服务器取回与特定用户相关联的所存储的承诺值;确定与所呈现的短认证数据相关联的值是否等于所存储的承诺值;如果与所呈现的短认证数据相关联的值等于所存储的承诺值,则所呈现的短认证数据是有效的并且计算机事务被允许发生;以及如果与所呈现的短认证数据相关联的值不等于所存储的承诺值,则所呈现的短认证数据不是有效的并且计算机事务被阻止发生。

参考图6,图示了示例通用处理系统、计算机或计算设备602(例如,移动电话、台式机、笔记本计算机、平板计算机、手表、服务器、手持式、可编程消费或工业电子器件、机顶盒、游戏系统、计算节点等)。例如,计算设备602可以在用于证实短认证数据的系统100和/或用于证实所呈现的短认证数据的系统200中被使用。

计算机602包括一个或多个处理器620、存储器630、系统总线640、(多个)大容量存储设备650以及一个或多个接口组件670。系统总线640通信地耦合至少上述系统组成部分。然而,应当理解,计算机602以其最简单的形式可以包括耦合到存储器630的一个或多个处理器620,一个或多个处理器620执行被存储在存储器630中的各种计算机可执行动作、指令和/或组件。例如,指令可以是用于实施被描述为由上述一个或多个组件执行的功能性的指令,或者是用于实施上述一个或多个方法的指令。

(多个)处理器620可以用通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其他可编程逻辑设备、离散的门或晶体管逻辑、离散的硬件组件、或被设计成执行本文所述的功能的其任何组合来实现。通用处理器可以是微处理器,但备选地,处理器可以是任何处理器、控制器、微控制器或状态机。(多个)处理器620还可以被实现为计算设备的组合,例如dsp和微处理器、多个微处理器、多核处理器、与dsp核结合的一个或多个微处理器、或任何其他这种配置的组合。在一个实施例中,(多个)处理器620可以是图形处理器。

计算机602可以包括各种各样的计算机可读介质或以其他方式与之交互,以促进计算机602的控制来实现所要求保护的主题的一个或多个方面。该计算机可读介质可以是能够由计算机602访问的任何可用介质,并且包括易失性和非易失性介质、以及可移除和不可移除介质。计算机可读介质可以包括两种不同且互斥的类型,即计算机存储介质和通信介质。

计算机存储介质包括在用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的任何方法或技术中实现的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括存储设备,诸如存储器设备(例如,随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)等)、磁存储设备(例如,硬盘、软盘、盒带、磁带等)、光盘(例如,光盘(cd)、数字多功能磁盘(dvd)等)和固态设备(例如,固态驱动器(ssd))、闪存驱动器(例如,卡、棒、钥匙驱动器等)、或任何其他类似的介质,这些类似的介质存储而不是传输或传送计算机602可访问的所期望的信息。因此,计算机存储介质不包括调制数据信号以及关于通信介质来描述的数据信号。

通信介质在诸如载波的调制数据信号或其他传输机制中体现计算机可读指令、数据结构、程序模块或其他数据,并且包括任何信息递送介质。术语“调制数据信号”是指以下信号:其具有以将信息编码在信号中的方式被设置或改变的一个或多个特性。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接的有线介质,以及诸如声学、rf、红外和其他无线介质的无线介质。

存储器630和(多个)大容量存储设备650是计算机可读存储介质的示例。取决于计算设备的确切配置和类型,存储器630可以是易失性的(例如,ram)、非易失性的(例如,rom、闪存等)或两者的某种组合。作为示例,基本输入/输出系统(bios),包括诸如在启动期间在计算机602内的元件之间传送信息的基本例程,可以被存储在非易失性存储器中,而易失性存储器可以充当外部高速缓存存储器以促进由(多个)处理器620进行的处理等。

(多个)大容量存储设备650包括可移除/不可移除、易失性/非易失性的计算机存储介质,以用于存储相对于存储器630的大量数据。例如,(多个)大容量存储设备650包括但不限于一个或多个设备,诸如磁盘或光盘驱动器、软盘驱动器、闪存、固态驱动器或记忆棒。

存储器630和(多个)大容量存储设备650可以包括或已经存储有操作系统660、一个或多个应用662、一个或多个程序模块664、以及数据666。操作系统660用于控制和分配计算机602的资源。应用662包括系统和应用软件之一或其两者,并且可以通过被存储在存储器630和/或(多个)大容量存储设备650中的程序模块664和数据666利用操作系统660对资源的管理来执行一个或多个动作。因此,应用662可以根据由此提供的逻辑将通用计算机602变成专用机器。

可以使用标准编程和/或工程技术来实现所要求保护的主题的全部或部分,以产生软件、固件、硬件或其任何组合来控制计算机实现所公开的功能性。作为示例而非限制,系统100或其部分可以是应用662或形成应用662的一部分,并且包括被存储在存储器和/或(多个)大容量存储设备650中的一个或多个模块664和数据666,其在由一个或多个处理器620执行时可以实现一个或多个模块664和数据666的功能性。

根据一个特定实施例,(多个)处理器620可以对应于片上系统(soc)或类似架构,包括硬件和软件,或者换言之,将硬件和软件两者集成在单个集成电路衬底上。在此,(多个)处理器620可以包括至少类似于(多个)处理器620和存储器630的一个或多个处理器以及存储器。常规处理器包括最少数量的硬件和软件,并且广泛依赖于外部硬件和软件。不同地,处理器的soc实现是更强大的,因为在其中嵌入了硬件和软件,从而可以在最低依赖或不依赖外部硬件和软件的情况下实现特定的功能性。例如,系统100和/或相关联的功能性可以被嵌入在soc架构中的硬件内。

计算机602还包括一个或多个接口组件670,一个或多个接口组件670通信地被耦合到系统总线640并且促进与计算机602的交互。作为示例,接口组件670可以是端口(例如,串行、并行、pcmcia、usb、firewire等)或接口卡(例如,声音、视频等)等。在一个示例实现中,接口组件670可以被实施为用户输入/输出接口,以使用户能够例如通过一个或多个手势或语音输入,通过一个或多个输入设备(例如,诸如鼠标的指向设备、轨迹球、手写笔、触摸板、键盘、麦克风、操纵杆、游戏板、碟形卫星天线、扫描仪、摄像头、其他计算机等)将命令和信息输入到计算机602中。在另一示例实现中,接口组件670可以被实施为输出外围接口,以将输出提供给显示器(例如,lcd、led、等离子体等)、扬声器、打印机和/或其他计算机等。更进一步,接口组件670可以被实施为网络接口,以使得能够例如通过有线或无线通信链路与其他计算设备(未示出)进行通信。

上面已经描述的内容包括所要求保护的主题的各方面的示例。当然,出于描述所要求保护的主题的目的,不可能描述组件或方法的每种可想象的组合,但是本领域的普通技术人员可以认识到,所公开的主题的许多进一步的组合和置换是可能的。因此,所公开的主题旨在涵盖落入所附权利要求的精神和范围内的所有这种变更、修改和变化。此外,就在具体实施方式或权利要求中使用术语“包括”的程度而言,这样的术语旨在以与术语“包含”在权利要求中被采用为过渡词时被解释的相似的方式而是包括性的。

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