用于具有多个步长的密钥棘轮移动的技术的制作方法

文档序号:19187638发布日期:2019-11-20 01:40阅读:191来源:国知局
用于具有多个步长的密钥棘轮移动的技术的制作方法

相关申请

本申请根据35u.s.c.§119(e)要求2017年7月14日提交的代理人案号为1360f0184的标题为“techniquesforkeyratchetingwithmultiplestepsizes”的美国专利申请号15/649,929、2017年2月17日提交的代理人案号为1360f0184z的标题为“techniquesforkeyratchetingwithmultiplestepsizes”的美国专利临时申请号62/460,128的优先权利益,这些专利申请特此通过引用被全部并入。

背景

用户可以在消息传送系统中与彼此交互,在两个或更多个用户之间的基于文本的对话中向彼此来回发送消息。用户可以在消息传送系统中具有与他们相关联的用户帐户,该用户帐户为用户提供在线身份、指向用户的消息的目的地,并且通常协调用户对消息传送系统的访问和使用。用户可以从各种端点(包括移动设备(例如,手机)、台式计算机、网页浏览器(webbrowser)、专用消息传送客户端等)访问消息传送系统。

概述

下面提出了简化的概述,以便提供对本文描述的一些新实施例的基本理解。该概述不是广泛综述,且并不意欲识别关键/重要元素或描绘其范围。一些概念以简化形式呈现,作为稍后呈现的更详细描述的序言。

各种实施例通常针对用于具有多个步长的密钥棘轮移动(keyratcheting)的技术。一些实施例特别针对用于多维棘轮移动的具有多个步长的密钥棘轮移动的技术。在一个实施例中,例如一种装置可以包括:消息传送部件,其操作来接收加密消息,该加密消息根据多维棘轮移动加密方案被加密;确定对于加密消息的消息迭代计数;以及通过基于解密密钥对加密消息解密来生成解密消息;以及密钥管理部件,其在处理器电路上操作来将消息迭代计数分解成多个消息链密钥迭代计数;以及基于多个消息链密钥迭代计数来确定解密密钥。描述并主张其他实施例。

为了实现前述和相关目的,在本文关于下面的描述和附图描述了某些说明性方面。这些方面指示本文公开的原理可以被实践的各种方式,并且其所有方面和等同物都被规定为在所要求保护的主题的范围内。当结合附图考虑时,从下面的详细描述中,其他优点和新颖特征将变得明显。

根据本发明的实施例特别是在针对方法、存储介质、装置和计算机程序产品的所附权利要求中被公开,其中在一个权利要求类别(例如方法)中提到的任何特征也可以在另一个权利要求类别(例如系统)中被要求保护。在所附权利要求中的从属性或反向引用仅为了形式原因而被选择。然而,也可以要求保护由对任何前面的权利要求(特别是多个从属性)的有意反向引用产生的任何主题,使得权利要求及其特征的任何组合被公开并可被要求保护,而不考虑在所附权利要求中选择的从属性。可以被要求保护的主题不仅包括如在所附权利要求中阐述的特征的组合,而且还包括在权利要求中的特征的任何其他组合,其中,在权利要求中提到的每个特征可以与在权利要求中的任何其他特征或其他特征的组合相结合。此外,本文描述或描绘的实施例和特征中的任一个可以在单独的权利要求中和/或以与本文描述或描绘的任何实施例或特征的任何组合或以与所附权利要求的任何特征的任何组合被要求保护。

附图简述

图1示出了加密消息系统的实施例。

图2示出了消息传送系统的实施例。

图3示出了由加密消息系统进行的消息发送和解密的实施例。

图4示出了对于图1的系统的逻辑流程的实施例。

图5示出了对于图1的系统的集中式系统的实施例。

图6示出了对于图1的系统的分布式系统的实施例。

图7示出了计算架构的实施例。

图8示出了通信架构的实施例。

图9示出了无线电设备架构的实施例。

详细描述

当在设备之间发送的消息在设备之间被转移时,它可能被加密。消息可以根据加密密钥被加密,并根据解密密钥被解密,加密和解密密钥可以是相同的密钥。用于对消息加密和解密的一个或更多个密钥可以在设备之间被同步以根据正确的解密密钥来准许对加密消息的解密。

设备可以使用密钥棘轮移动来使用于对连续消息加密和解密的一个或更多个密钥迭代地前进(advance)。在一系列密钥可以被产生的情况下,可以使用棘轮函数,从而允许对每个消息使用不同的密钥,使得由攻击者对密钥的恢复不能用于利用在一系列解密密钥中用于对一系列消息解密的先前解密密钥来对消息进行解密。

使加密密钥前进可以是一系列在计算上密集的操作。它可以至少在计算上是足够昂贵的,如果可能的话,避免大量棘轮前进将是有益的。因此,如果连续消息序列将被丢弃,则这将是有益的:禁止生成与被丢弃的消息相关联的解密密钥并替代地跳到(skipahead)生成针对将被解密而不是将被丢弃的下一个消息的解密密钥。通过这样做,设备可以免于必须穿过一些或所有丢弃的解密密钥,节省时间并从而增加设备的响应性和功率,尤其是在移动设备上。

在其中丢弃大量密钥可能是有益的情形以是其中传入的加密消息包含频繁地被更新的实时信息,并且其中只有实时信息的最新迭代是相关的。例如,在群组消息线程中的参与者可以向彼此发送实时位置信息,该实时位置信息被频繁地更新以准许每个用户的当前位置的准确显示。因为实时位置特征是关于共享和了解用户的最新位置的,因此只有对于特定用户的最新实时位置更新才是相关的。因此,更新如果通过最近更新变得不相关则可能是过时的并且被安全地丢弃。

在设备在一段时间期间是离线的场合,实时位置特征可能导致设备接收大量过时更新。该设备可以受益于丢弃这些过时更新和跳过(skippingover)生成对这些过时更新的解密密钥的至少一部分,替代地跳到更有效地生成对于最新更新的解密密钥。因此,实施例可以针对用户提高消息传送系统的效率和响应性。

现在参考附图,其中相似的参考数字始终用于指相似的元件。在下面的描述中,为了解释的目的,阐述了许多具体细节,以便提供其透彻理解。然而可能明显的是,可以在没有这些具体细节的情况下实施新的实施例。在其他实例中,以框图形式示出众所周知的结构和设备,以便便于其描述。意图是覆盖与所要求保护的主题一致的所有修改、等同物和备选方案。

值得注意的是,如在本文使用的“a”、“b”和“c”以及类似的指示符被规定为表示任何正整数的变量。因此,例如,如果一个实现设置a=5的值,那么被示为部件122-1至122-a的完整的一组部件122可以包括部件122-1、122-2、122-3、122-4和122-5。实施例在这个上下文中并不被限制。

图1示出了对于加密消息系统100的框图。在一个实施例中,加密消息系统100可以包括具有包括一个或更多个部件的软件应用的计算机实现的系统。尽管图1所示的加密消息系统100在某一拓扑中具有有限数量的元件,但是可以认识到,加密消息系统100可以在替代拓扑中包括更多或更少的元件,如对给定实现所需的。

消息传送服务器110可以包括由消息传送平台操作的一个或更多个消息传送服务器,作为消息传送系统的一部分。消息传送服务器可以包括互联网可访问的服务器,其中网络120连接至少部分包括互联网的消息传送系统的各种设备。消息传送系统可以使用消息传送服务器110来支持针对各种用户客户端设备的消息传送。

用户可以拥有并操作智能手机设备150。智能手机设备150可以包括设备、设备、设备或符合智能手机形式的任何其他移动计算设备。智能手机设备150可以是能够使用蜂窝信号135经由蜂窝系统130连接到网络120的蜂窝设备。在一些实施例中并且在一些情况下,智能手机设备150可以另外或可选地使用wi-fi或其他联网技术来连接到网络120。智能手机设备150可以执行消息传送客户端、网页浏览器或其他本地应用以访问消息传送服务器110。

同一用户可以拥有和操作平板设备160。平板设备150可以包括设备、平板设备、kindle设备或符合平板形式的任何其他移动计算设备。平板设备160可以是能够使用wi-fi信号145经由wi-fi接入点140连接到网络120的wi-fi设备。在一些实施例中并且在一些情况下,平板设备160可以另外或可选地使用蜂窝或其他联网技术来连接到网络120。平板设备160可以执行消息传送客户端、网页浏览器或其他本地应用以访问消息传送服务器110。

同一用户可以拥有并操作个人计算机设备180。个人计算机设备180可以包括mac设备、设备、设备或运行另一操作系统的其他计算机设备。个人计算机设备180可以是能够经由以太网连接来连接到网络120的以太网设备。在一些实施例中且在一些情况下,个人计算机设备180可以另外或可选地对网络120使用蜂窝、wi-fi或其他联网技术。个人计算机设备180可以执行消息传送客户端、网页浏览器170或其他本地应用以访问消息传送服务器110。

消息传送客户端可以是专用消息传送客户端。专用消息传送客户端可以特别地与管理包括消息传送服务器110的消息传送平台的消息传送提供商相关联。专用消息传送客户端可以是操作来与多个不同的消息传送提供商(包括管理包括消息传送服务器110的消息传送平台的消息传送提供商)一起工作的通用客户端。

消息传送客户端可以是提供附加功能的应用的部件。例如,社交联网服务可以提供用于在移动设备上使用的社交联网应用,用于访问和使用社交联网服务。社交联网服务可以包括例如可以由消息传送服务器110提供的消息传送功能。将认识到,消息传送服务器110可以是用于社交联网服务的计算设备的一个部件,其中计算设备提供社交联网服务的附加功能。类似地,社交联网应用可以提供消息传送功能和附加的社交联网功能。

在一些情况下,消息传送端点可以保持在用户会话之间的状态,且在一些情况下消息传送端点可以放弃在用户会话之间的状态。消息传送端点可以使用本地储存器来保持消息收件箱的当前状态。该本地存储器可以被保存在永久储存装置中,使得状态可以在一个会话和下一个会话之间被取回,包括例如本地应用被退出或以其他方式从存储器中移除或者设备被断电并再次通电的情况。可选地,消息传送端点可以使用存储器高速缓存来保持消息收件箱的当前状态,但是禁止将消息收件箱的状态提交给永久储存装置。

保持消息收件箱的状态的消息传送端点可以包括专用消息传送应用或集成到另一个本地应用(例如社交联网应用)中的消息传送实用程序。放弃消息收件箱的状态的消息传送端点可以包括在网页浏览器内实现的消息传送访问。在一个实施例中,网页浏览器(例如在个人计算机设备180上执行的网页浏览器170)可以执行与消息传送服务器相互作用的html5代码,以向用户呈现消息传送功能。

用户可以从多个设备(包括智能手机设备150、平板设备160和个人计算机设备180)发送和接收消息。用户可以使用在智能手机设备150上的第一消息传送应用、在平板设备160上的第二消息传送应用以及在个人计算机设备180上的网页浏览器170。第一和第二消息传送应用可以包括在两个设备上的同一应用的安装。第一和第二消息传送应用可以包括常见应用的智能手机特定版本和平板电脑特定版本。第一和第二消息传送应用可以包括不同的应用。

用户可以受益于使他们的消息收件箱在他们的设备之间保持一致。用户可以在远离他们的家时在蜂窝系统130上使用他们的智能手机设备150,经由蜂窝系统130发送和接收消息。用户可以顺便去咖啡店或提供wi-fi的其他地方,并将他们的平板设备160连接到wi-fi接入点140。平板设备160可以检索消息收件箱的它的现有已知状态,并接收自从平板设备160访问网络时的上一时刻以来发生的更新,包括由智能手机设备150发送的并且可以由用户在操作智能手机设备150时接收到的任何消息。然后,用户可以返回家并使用在个人计算机设备180上的网页浏览器170来访问他们的消息收件箱。网页浏览器170可以由于它不维持或否则不访问消息收件箱的现有状态而从消息传送服务器110接收消息收件箱的当前状态的快照。网页浏览器170然后可以检索对消息收件箱的状态的任何新变化的增量更新,只要它保持与消息传送服务器110的用户会话,在会话结束时(例如当网页浏览器170被用户关闭时)丢弃它对于消息收件箱的已知状态。没有限制地,更新可以对应于消息到邮箱的添加、消息从邮箱的删除以及阅读回执。

消息传送系统可以通过将消息传送收件箱定义为包括多个消息来操作,其中每个消息是在两个或更多个参与者之间的通信的单独事务。邮件服务器可以通过维持消息传送收件箱的消息索引来操作。邮件服务器可以接收消息并将消息存储在邮件归档中,消息可以通过对消息索引的引用从邮件归档中检索。邮件客户端可以连接到邮件服务器,并检索自从它们的上次更新以来添加到它们的邮件归档的消息。邮件客户端可以从邮件归档中接收指示什么消息存储在邮件归档中的邮件索引。邮件客户端可以将邮件归档与他们的当前收件箱进行比较,以便确定它们遗漏了什么消息,它们然后向邮件归档请求这些消息。邮件客户端可以对它们的收件箱做出改变,这导致邮件收件箱指令被传输到邮件归档,邮件收件箱指令指示邮件归档对在邮件归档中的它们的邮件收件箱的表示做出修改。

由消息传送系统协调的消息传送交互可以被组织到被称为消息线程的共享空间中。消息线程可以一起收集在特定组的用户之间共享的消息。在一对用户之间单独发送的消息可以被收集到与在该对用户之间的私有消息传送唯一地相关联的一对一消息线程中。在一组三个或更多个用户之间发送的消息可能不由他们的成员资格来唯一地定义,而是替代地在一些实施例中由唯一地标识组线程的标识符来唯一地定义。在一些实施例中,在组线程中的成员资格可以随时间的过去而变化,添加和/或失去成员。

消息传送交互可以使用在客户端设备之间的端到端加密通信。发送客户端设备可以使用确定下列情况之一的安全技术来加密输出消息:仅接收设备能够对输出消息解密(例如,通过使用公用密钥密码术),或者仅发送和接收设备能够对输出消息解密(例如,通过使用共享密钥密码术)。在这些实施例中,可以防止消息传送系统的服务器对在客户端之间发送的消息解密。然而,在其他实施例中,虽然可以在客户端设备和服务器设备之间使用加密通信,但是消息传送服务器设备可以被准许检查用户消息的内容。这种检查可用于向消息传送系统的用户提供服务。在一些实施例中,用户可以被准许选择特定消息线程是使用端对端加密(并从而接收消息传送服务器被阻止检查消息的内容的附加隐私)还是不使用端对端加密(并从而接收消息传送系统能够以编程方式检查消息并向用户提供相关服务的好处)。

消息传送系统可以使用从在用户之间的交互生成的知识。消息传送系统可以包括社交联网系统的部件,并且可以使用从社交联网系统的更广泛的交互中生成的知识。因此,为了保护消息传送系统和更大的社交联网系统的用户的隐私,消息传送系统可以包括授权服务器(或其他合适的部件),该授权服务器允许用户例如通过设置适当的隐私设置来选择赞同或选择撤消让他们的行动由消息传送系统记录或与其他系统(例如,第三方系统)共享。用户的隐私设置可以确定可以记录与用户相关联的什么信息、可以如何记录与用户相关联的信息、何时可以记录与用户相关联的信息、谁可以记录与用户相关联的信息、可以与谁共享与用户相关联的信息以及与用户相关联的信息可以为了什么目的而被记录或共享。授权服务器或其他授权部件可用于通过封锁、数据散列、匿名化或其他适当的技术来实施消息传送系统和社交联网系统的其他元件的用户的一个或更多个隐私设置。

图2示出了实现消息传送系统200的各种功能的多个服务器的实施例。将认识到,在消息传送系统200的各种实施例中可以使用工作和功能的不同分布。消息传送系统200可以包括加密消息系统100,其中加密消息系统100的操作包括消息传送系统200的整体操作的一部分。消息传送系统200的所示实施例可以特别地对应于参考图1描述的消息传送服务器110的一部分,其包括向消息传送系统200的用户提供消息传送服务的一个或更多个服务器设备。

消息传送系统200可以包括域名前端210。域名前端210可以被分配与在域名系统(dns)中的消息传送系统200相关联的一个或更多个域名。域名前端210可以接收传入的连接,并将这些连接分配到提供各种消息传送服务的服务器。

消息传送系统200可以包括一个或更多个聊天服务器215。聊天服务器215可以包括用于接收和发送用户对用户消息传送更新(例如聊天消息)的前端服务器。传入的连接可以由域名前端210基于工作负载平衡来分配给聊天服务器215。

消息传送系统200可以包括后端服务器230。后端服务器230可以执行支持前端聊天服务器215的聊天操作的专门任务。可以使用多种不同类型的后端服务器230。将认识到,在不同的实施例中,任务类型到不同后端服务器230的分配可以改变。在一些实施例中,由专用服务器提供的一些后端服务可以被组合到单个服务器或一组服务器上,在本文描述的实施例中,每个服务器执行在不同服务器之间划分的多个任务。类似地,在一些实施例中,本文描述的一些专用后端服务器的任务可以在不同服务器组的不同服务器之间被划分。

消息传送系统200可以包括一个或更多个离线储存服务器231。一个或更多个离线储存服务器231可以存储对于当前离线的消息传送端点的消息传送内容,持续到当消息传送端点重新连接时。

消息传送系统200可以包括一个或更多个会话服务器232。一个或更多个会话服务器232可以维持所连接的消息传送端点的会话状态。

消息传送系统200可以包括一个或更多个存在服务器233。一个或更多个存在服务器233可以维持对于消息传送系统200的存在信息。存在信息可以对应于用户特定的信息,其指示给定用户是否具有在线消息传送端点且有空聊天、具有在线消息传送端点但是当前远离它、没有在线消息传送端点以及任何其他存在状态。

消息传送系统200可以包括一个或更多个推送储存服务器234。一个或更多个推送储存服务器234可以缓存推送请求并将推送请求传输到消息传送端点。推送请求可用于唤醒消息传送端点,通知消息传送端点消息传送更新是可用的,以及以其他方式执行服务器侧驱动的与消息传送端点的交互。

消息传送系统200可以包括一个或更多个聊天活动监控服务器235。一个或更多个聊天活动监控服务器235可以监控用户的聊天以确定由消息传送系统200的用户进行的未授权或被劝阻的行为。一个或更多个聊天活动监控服务器235可以与垃圾邮件日志服务器239和阻止列表服务器236协作来工作,其中一个或更多个聊天活动监控服务器235识别垃圾邮件或其他被劝阻的行为,并且向垃圾邮件日志服务器239提供垃圾邮件信息且在适当的情况下向阻止列表服务器236提供阻止信息。

消息传送系统200可以包括一个或更多个阻止列表服务器236。一个或更多个阻止列表服务器236可以维持用户特定的阻止列表,用户特定的输入阻止列表为每个用户指示被禁止向该用户传输消息的一个或更多个其他用户。可选地或此外,一个或更多个阻止列表服务器236可以维持用户特定的输出阻止列表,其为每个用户指示该用户被禁止向其传输消息的一个或更多个其他用户。将认识到,输入阻止列表和输出阻止列表可以组合地存储在例如数据库中,其中输入阻止列表和输出阻止列表表示阻止信息的同一存储库的不同视图。

消息传送系统200可以包括一个或更多个最后看到的信息服务器237。一个或更多个最后看到的信息服务器237可以接收、存储和维持指示最后被看到的位置、状态、消息传送端点以及用户最后看到的与消息传送系统200的连接的其他元素的信息。

消息传送系统200可以包括一个或更多个简档照片服务器238。一个或更多个简档照片服务器238可以存储对于消息传送系统200的多个用户的简档照片并且可供检索该简档照片。

消息传送系统200可以包括一个或更多个垃圾邮件日志服务器239。一个或更多个垃圾邮件日志服务器239可以记录已知的且可疑的垃圾邮件(例如,不想要的消息,尤其是具有促销性质的消息)。一个或更多个垃圾邮件日志服务器239可以操作来分析消息以确定它们是否是垃圾邮件,并在一些实施例中执行对抗可疑垃圾邮件制作者(发送垃圾邮件消息的用户)的惩罚性措施。

消息传送系统200可以包括一个或更多个统计服务器240。一个或更多个统计服务器可以编译和存储与消息传送系统200的操作和消息传送系统200的用户的行为相关的统计信息。

消息传送系统200可以包括一个或更多个同步服务器241。一个或更多个同步服务器241可以使消息传送系统240与来自消息传送端点的联系人信息(例如在移动电话上的地址簿)同步,以在消息传送系统200中确定用户的联系人。

消息传送系统200可以包括一个或更多个网络服务器(webservers)242。一个或更多个网络服务器242可以参与与网页浏览器的超文本传输协议(http)和超文本传输协议安全(https)连接。在一些实施例中,一个或更多个网络服务器242可以托管远程网络服务器350,作为加密消息系统100的操作的一部分。

消息传送系统200可以包括一个或更多个密钥服务器243。一个或更多个密钥服务器243可以托管用于公共/私有密钥加密通信的公共密钥。

消息传送系统200可以包括一个或更多个群组服务器244。一个或更多个群组服务器244可以维持群组的列表,将用户添加到群组,从群组中移除用户,以及执行群组聊天消息的接收、缓存和转发。

消息传送系统200可以包括一个或更多个多媒体数据库(mmd)服务器245。mmd服务器245可以存储消息传送系统200已知的媒体对象的数据库,其可以是分布式数据库。在一些实施例中,只有在消息传送系统200内当前存储或否则在运送中的媒体对象可以由mmd服务器245跟踪。在其他实施例中,mmd服务器245可以维持不再在运送中的媒体对象的记录,例如可以用于跟踪流行度或其他数据收集目的。

mmd服务器245可以在媒体对象被消息传送系统200存储在例如多媒体服务器246上时确定该媒体对象的储存位置。mmd服务器245可以在媒体对象将由消息传送系统200传输时确定该媒体对象的现有储存位置,例如多个多媒体服务器236中的哪一个存储特定的媒体对象。mmd服务器245可以生成统一资源定位符(url)以用于由消息传送客户端使用来请求和取回媒体对象。mmd服务器245可以跟踪媒体对象何时被损坏或以其他方式失去并且应该被重新获取。

消息传送系统200可以包括一个或更多个多媒体服务器246。一个或更多个多媒体服务器可以存储在消息传送端点之间在运送中的多媒体(例如,图像、视频、音频)、为离线端点缓存的多媒体,并且可以执行多媒体的代码转换。

消息传送系统200可以包括一个或更多个支付服务器247。一个或更多个支付服务器247可以处理来自用户的支付。一个或更多个支付服务器247可以连接到外部第三方服务器用于执行支付。

消息传送系统200可以包括一个或更多个注册服务器248。一个或更多个注册服务器248可以注册消息传送系统200的新用户。

消息传送系统200可以包括一个或更多个语音中继服务器249。一个或更多个语音中继服务器249可以分程传递(relay)在消息传送端点之间的互联网语音协议(voip)语音通信用于执行voip呼叫。

图3示出了由加密消息系统100进行的消息发送和解密的实施例。

发送客户端设备310和接收客户端设备360可以是使用消息传送系统进行通信并实现加密消息系统100的多个客户端设备中的两个。将设备指定为发送客户端设备310和接收客户端设备360可以对应于在图3中描述的特定交互,并且可以不反映在客户端设备310、360之间的能力的任何特定划分。在由消息传送系统支持的每个客户端设备上的每个消息传送客户端320可以支持发送和接收消息和媒体项目。客户端设备310、360中的每一个都执行消息传送客户端320。在每个设备上的消息传送客户端320包括多个部件。多个部件可以包括软件部件。消息传送客户端320的部件可以包括除本文描述的部件之外的附加部件,并且在不同实施例中消息传送客户端320的操作可以在不同配置中的部件之间被划分。

消息传送客户端320可以包括消息传送部件340。消息传送部件340通常可以被布置成执行在消息传送客户端320和消息传送服务器110之间的交互。消息传送部件340可以向消息传送系统的消息传送服务器110发送网络通信并从消息传送服务器110接收网络通信。消息传送部件340可以经由包括对消息线程的状态的更新的消息包的交换来发送和接收消息,例如加密消息350。

消息传送客户端320可以包括用户界面部件330。用户界面部件330通常可以被布置为向客户端设备的用户呈现信息,并从客户端设备的用户接收用户命令。用户界面部件330可以显示视觉信息、输出音频信息,或以其他方式向用户呈现信息。用户界面部件330可以接收触摸命令、文本命令、语音命令以及用于消息传送客户端320的操作的任何其他类型的命令。

消息传送客户端320可以包括密钥管理部件360。密钥管理部件360可以维持用于对作为加密消息系统100的一部分发送的消息加密和/或解密的密钥。密钥管理部件360可以向消息传送部件340提供加密和解密密钥,用于消息的加密和解密。

特定序列的消息例如可以与消息线程或消息系统特征相关联,可以根据基于密钥棘轮移动而生成的特定序列的密钥来被关联以用于加密和解密。例如,来自特定用户的实时位置更新可以与特定序列的棘轮移动密钥相关联。

在发送客户端设备310上的消息传送部件340接收将被发送到接收客户端设备360的未加密消息335。在一些情况下,可以从用户界面部件330接收未加密消息335,例如其中未加密消息335是文本消息或用户生成的其他消息。在其他情况下,可以从不同的部件接收未加密消息335,例如从操作来为发送客户端设备310确定和提供位置信息的地理定位部件接收的实时位置更新。

在发送客户端设备上的消息传送部件340根据加密密钥365来对未加密消息335加密以生成加密消息350。加密密钥365由密钥管理部件360根据多维棘轮移动加密方案来确定。发送客户端设备310对多维棘轮移动加密方案的使用准许接收客户端设备360跳过将用于对由发送客户端设备310发送的一个或更多个消息解密的特定密钥的生成。

在发送客户端设备310上的消息传送部件340向接收客户端设备360发送加密消息350。在一些实施例中,消息传送部件340可以经由消息传送系统的消息传送服务器110来发送加密消息350。在其他实施例中,消息传送部件340可以使用对等通信来发送加密消息350。在接收客户端设备360上的消息传送部件340由此接收加密消息350,加密消息350根据多维棘轮移动加密方案被加密。在消息传送服务器110被使用的情况下,在接收客户端设备360上的消息传送部件340从消息传送服务器设备接收加密消息。

消息传送部件340确定对于加密消息350的消息迭代计数。消息迭代计数标记对于消息的排序和序列信息,用于至少部分地在对加密消息350解密时使用。消息迭代计数可以是对于加密消息350的未加密封装器的组成部分,例如未加密报头的一部分,其中在加密消息350的加密有效载荷中有加密消息350的秘密、私有或以其他方式被保护的信息。加密消息350和未加密的封装器可以经由消息传送服务器110被发送作为消息包的一部分。消息传送部件340可以通过从加密消息350的未加密封装器中提取消息迭代计数来确定该消息迭代计数。

消息传送部件340向密钥管理部件370提供消息迭代计数,用于在确定用于在对加密消息350解密时使用(例如用于在对加密消息350的加密有效载荷解密时使用)的解密密钥380时使用。消息传送部件340可以提供附加信息,例如识别用于对加密消息350解密时使用的特定一组客户端链密钥的信息。密钥管理部件370向消息传送部件340提供解密密钥380。解密密钥380可以与加密密钥365(其中对称加密被使用)相同,或者可以是不同的密钥(其中非对称加密被使用)。消息传送部件340通过基于解密密钥380对加密消息350解密来生成解密消息355。解密消息355对应于在发送客户端设备310上的未加密消息335。消息传送部件340将解密消息355传递给用户界面部件330。用户界面部件330然后可以在接收客户端设备360上显示解密消息355。

在发送客户端设备310上的密钥管理部件360每当它使用棘轮函数发送消息时改变密钥。它还使相应的消息迭代计数递增,给出棘轮移动被应用来使密钥前进的次数。然后,接收机使用该消息迭代计数来将密钥的副本棘轮移动到适当的计数,以对加密消息350解密。

在多维棘轮移动加密方案中,多个消息链密钥由密钥管理部件360维护。在发送客户端设备310和接收客户端设备360之间的密钥交换期间,这多个消息链密钥被初始化为一个组。当多维棘轮移动加密方案的使用增加了在使用中的密钥的数量时,该方案的使用增加了在客户端设备310、360之间建立密钥的网络和存储成本,作为对降低使多个密钥向前前进的计算成本的折衷。

在根据加密密钥365来对未加密消息335加密以生成加密消息350之后,多个链密钥向前棘轮移动一个步长。链密钥中的每一个都使用不同的棘轮函数。多个棘轮函数可以各自是能够采用多个输入的通用加密函数的实例,使得输入之一针对多维棘轮移动加密方案的每个维度被分配不同值,从而区分用于链密钥中每一个的棘轮函数并生成与多个链密钥的每个相关联的多个棘轮函数。

检查最高维链密钥以确定它是应该前进还是重新生成。链密钥中每一个都与指示该链密钥自从它被生成以来已经被棘轮移动了多少次的迭代计数相关联。当这个迭代计数达到最大链密钥迭代值时,链密钥基于下一个较低维链密钥被重新生成,然后下一个较低维链密钥本身被棘轮移动,并且迭代计数被重置。如果迭代计数尚未达到最大链密钥迭代值,则使链密钥根据最高维棘轮函数前进一个步长。该技术用于任何维度的链密钥,在被允许的情况下前进,当最大迭代值被达到时从较低维链密钥重新生成。如果低维链密钥达到最大迭代值,则全新的一组链密钥被生成并在设备310、360之间被共享。

为了确定要使用哪些链密钥,密钥管理部件370将消息迭代计数分解成多个消息链密钥迭代计数。密钥管理部件370基于多个消息链密钥迭代计数通过向前棘轮移动它的当前客户端链密钥(如果需要的话)来确定解密密钥380。

解密密钥380基于多个客户端链密钥。多个客户端链密钥对应于多维棘轮移动加密方案的多个维度。这多个维度的使用准许多个客户端链密钥的可变步长前进。多个客户端链密钥的可变步长前进对应于丢弃一个或更多个加密消息,因为如果与跳过的客户端链密钥相关联的加密消息被丢弃,该跳过的客户端链密钥不是有用的。

密钥管理部件370取回多个客户端链密钥,其中该多个客户端链密钥对应于多维棘轮移动加密方案的多个维度。多个客户端链密钥还对应于多个客户端链密钥迭代计数,其指示自从链密钥中的每一个基于较低维链密钥被生成以来它被棘轮移动了多少次。

如果密钥管理部件370确定多个客户端链密钥迭代计数等于多个消息链密钥迭代计数,这意味着接收到的加密消息350的链密钥前进如预期的是在行中的下一个,则所取回的客户端链密钥不需要被棘轮移动,以便生成解密密钥380。替代地,密钥管理部件370将解密密钥380确定为多个客户端链密钥中的最高维客户端链密钥。

密钥管理部件370响应于对加密消息350解密来使链密钥迭代计数向前前进一个步长。密钥管理部件370然后在被最大迭代值允许的情况下使最高维客户端链密钥前进,并且当对于该链密钥的计数已经达到最大迭代值时重新生成它。在对应于最高维客户端链密钥的最高维客户端链密钥迭代计数小于最大链密钥迭代值的情况下,密钥管理部件370响应于对加密消息350解密来使最高维客户端链密钥向前前进一个步长。

在对应于最高维客户端链密钥的最高维客户端链密钥迭代计数等于最大链密钥迭代值的情况下,密钥管理部件370响应于对加密消息350解密而使多个客户端链密钥中的两个或更多个客户端链密钥前进。基于次最低链密钥例如通过使用次最低链密钥作为对最高维棘轮函数的输入来生成替代最高维客户端链密钥。然后,次最低链密钥被棘轮移动,或者前进一个步长或者由较低维链密钥递归地生成,如果对于较低维链密钥的链密钥迭代计数达到最大链密钥迭代值,则递归可以通过另外的较低维链密钥继续。因此,如果所有非最低维链密钥都被重新生成,则递归可以继续到最低维链密钥。

密钥管理部件370可以基于消息迭代计数来确定一个或更多个消息将被丢弃。消息传送部件340可以基于一个或更多个消息是过时的来确定该一个或更多个消息将被丢弃,并且针对在跳过的要被解密的消息之后的第一消息提供消息迭代计数。密钥管理部件370然后可以跳过针对至少一些跳过的消息生成解密密钥。

密钥管理部件370可以确定客户端迭代计数小于消息迭代计数。客户端迭代计数对应于多个客户端链密钥迭代计数的合成,其中多个客户端链密钥迭代计数因此是客户端迭代计数的分解。密钥管理部件370然后通过使多个客户端链密钥基于在客户端迭代计数和消息迭代计数之间的迭代距离前进来生成多个棘轮移动的客户端链密钥。

密钥管理部件370确定在将客户端链密钥向前棘轮移动到适当的消息链密钥迭代计数的过程中该客户端链密钥是否将从较低维客户端链密钥重新生成。如果是,则客户端链密钥实际上不需要向前棘轮移动到它的最大迭代值,而是可以重新生成,同时避免向前棘轮移动到最大迭代值。从最低维向最高维考虑每个客户端链密钥,并且向前棘轮移动将该客户端链密钥的相关联客户端链密钥迭代计数增加到接收到的消息链密钥迭代计数所需的次数,产生棘轮移动的客户端链密钥。因此,只有在任何较低维客户端链密钥向前棘轮移动到它们在使客户端迭代计数前进到消息迭代计数时将处于的任何程度之后,较高维客户端链密钥才向前棘轮移动。因此,使多个客户端链密钥前进可以包括基于使较低维客户端链密钥前进来重新生成较高维客户端链密钥,其中重新生成较高维客户端链密钥跳过较高维客户端链密钥的一个或更多个被允许的迭代计数。密钥管理部件370然后将解密密钥确定为多个棘轮移动的客户端链密钥中的最高维棘轮移动的客户端链密钥。

本文包括表示用于执行所公开的架构的新颖方面的示例性方法的一组流程图。尽管为了解释的简单的目的,本文中示出的一个或更多个方法例如以流程图或流程图表的形式被示出且描述为一系列行动,但是应当理解和认识到,这些方法不受行动的顺序的限制,因为一些行动可以按照其以与在本文中示出和描述的顺序不同的顺序和/或与其他行动同时出现。例如,本领域中的技术人员将理解和认识到,方法可以例如在状态图中可选地被表示为一系列相关的状态或事件。此外,不是在方法中示出的所有行动对于新颖的实现都可能是需要的。

图4示出了逻辑流程400的一个实施例。逻辑流程400可以表示由本文描述的一个或更多个实施例执行的一些或所有操作。

在图4所示的实施例中,在块402处,逻辑流程400可以接收加密消息,该加密消息根据多维棘轮移动加密方案被加密。

在块404处,逻辑流程400可以确定对于加密消息的消息迭代计数。

在块406处,逻辑流程400可以将消息迭代计数分解成多个消息链密钥迭代计数。

在块408处,逻辑流程400可以基于多个消息链密钥迭代计数来确定解密密钥。

在块410处,逻辑流程400可以通过基于解密密钥对加密消息解密来生成解密消息。

实施例不限于这个示例。

图5示出了集中式系统500的框图。集中式系统500可以在单个计算实体中例如完全在单个集中式服务器设备520内实现对于加密消息系统100的一些或全部结构和/或操作。

集中式服务器设备520可以包括能够接收、处理和发送对于加密消息系统100的信息的任何电子设备。电子设备的示例可以没有限制地包括超移动设备、移动设备、个人数字助理(pda)、移动计算设备、智能电话、电话、数字电话、蜂窝电话、电子书阅读器、头戴式耳机、单向寻呼机、双向寻呼机、消息传送设备、计算机、个人计算机(pc)、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、手持计算机、平板计算机、服务器、服务器阵列或服务器农场、网络(web)服务器、网络(network)服务器、互联网服务器、工作站、微型计算机、主计算机、超级计算机、网络(network)电器、网络(web)电器、分布式计算系统、多处理器系统、基于处理器的系统、消费电子设备、可编程消费电子设备、游戏设备、电视机、数字电视机、机顶盒、无线接入点、基站、用户站、移动用户中心、无线网络控制器、路由器、集线器、网关、网桥、交换机、机器或其组合。实施例在这个上下文中并不被限制。

集中式服务器设备520可以使用处理部件530来执行对于加密消息系统100的处理操作或逻辑。处理部件530可以包括各种硬件元件、软件元件或两者的组合。硬件元件的示例可以包括设备、逻辑设备、部件、处理器、微处理器、电路、处理器电路、电路元件(例如晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(asic)、可编程逻辑设备(pld)、数字信号处理器(dsp)、现场可编程门阵列(fpga)、存储器单元、逻辑门、寄存器、半导体设备、芯片、微芯片、芯片组等。软件元件的示例可以包括软件部件、程序、应用、计算机程序、应用程序、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子程序、功能、方法、过程、软件接口、应用程序接口(api)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。确定实施例是否使用硬件元件和/或软件元件来实现可以根据任何数量的因素(例如,期望计算速率、功率电平、耐热性、处理循环预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其他设计或性能约束)而变化,如对给定实现所需的。

集中式服务器设备520可以使用通信部件540来执行对于加密消息系统100的通信操作或逻辑。通信部件540可以实现任何公知的通信技术和协议,例如适合于用在分组交换网络(例如,公共网络例如互联网、专用网络例如企业内联网等)、电路交换网络(例如,公共交换电话网络)或分组交换网络和电路交换网络的组合(具有合适的网关和译码器)上的技术。通信部件540可以包括各种类型的标准通信元件,例如一个或更多个通信接口、网络接口、网络接口卡(nic)、无线电装置、无线发射机/接收机(收发机)、有线和/或无线通信介质、物理连接器等。作为示例而非限制,通信介质512包括有线通信介质和无线通信介质。有线通信介质的示例可以包括电线、电缆、金属引线、印刷电路板(pcb)、背板、交换机结构、半导体材料、双绞线、同轴电缆、光纤、传播信号等。无线通信介质的示例可以包括声学、射频(rf)频谱、红外和其他无线介质。

集中式服务器设备520可以经由通信部件540使用通信信号514通过通信介质512与其他设备通信。设备可以在集中式服务器设备520的内部或外部,如对给定实现所需的。

集中式服务器设备520可以执行消息传送服务器550。消息传送服务器550可以包括对于消息传送系统110的消息传送服务器。消息传送服务器550可以为多个客户端设备510提供消息传送操作,在客户端设备510之间接收和发送消息。客户端设备510可以对应于智能手机设备150、平板设备160、个人计算机设备170和/或任何其他客户端设备中的一个或更多个。

图6示出了分布式系统600的框图。分布式系统600可以跨越多个计算实体分配对于加密消息系统100的结构和/或操作的部分。分布式系统600的示例可以没有限制地包括客户端-服务器架构、3层架构、n层架构、紧密耦合或聚集的架构、对等架构、主-从设备架构、共享数据库架构以及其他类型的分布式系统。实施例在这个上下文中并不被限制。

分布式系统600可以包括多个分布式服务器设备620。一般来说,分布式服务器设备620可以与如参考图6描述的集中式服务器设备620相同或相似。例如,分布式服务器设备620可以每个包括分别与处理部件730和通信部件740相同或相似的处理部件630和通信部件640,如参考图5所述的。在另一示例中,分布式服务器设备620可以经由通信部件640使用通信信号614通过通信介质612来进行通信。

分布式服务器设备620可以包括或采用操作来根据所描述的实施例执行各种方法的一个或更多个服务器程序。例如,在一个实施例中,分布式服务器设备620可以每个执行多个消息传送服务器650中的一个。消息传送服务器650可以包括对于消息传送系统110的消息传送服务器。消息传送服务器650可以为多个客户端设备610提供消息传送操作,在客户端设备610之间接收和发送消息。客户端设备610可以对应于智能手机设备150、平板设备160、个人计算机设备180和/或任何其他客户端设备中的一个或更多个。

图7示出了适合于实现如前所述的各种实施例的示例性计算架构700的实施例。在一个实施例中,计算架构700可以包括电子设备或者被实现为电子设备的一部分。电子设备的示例可以尤其包括参考图8描述的那些电子设备。实施例在这个上下文中并不被限制。

如在本申请中使用的,术语“系统”和“部件”意欲指计算机相关实体,或者是硬件、硬件和软件的组合、软件、或者是在执行中的软件,其示例由示例性计算架构700提供。例如,部件可以但不限于是在处理器上运行的进程、处理器、硬盘驱动器、(光和/或磁储存介质的)多个储存驱动器、对象、可执行文件、执行线程、程序和/或计算机。作为例证,在服务器上运行的应用和服务器都可以是部件。一个或更多个部件可以驻留在执行的进程和/或线程中,并且部件可以位于一台计算机上和/或分布在两台或更多台计算机之间。此外,部件可以通过各种类型的通信介质通信地彼此耦合以协调操作。协调可以涉及信息的单向或双向交换。例如,部件可以以通过通信介质传递的信号的形式来传递信息。该信息可以被实现为分配给各种信号线的信号。在这样的分配中,每个消息都是一个信号。然而,另外的实施例可以可选地使用数据消息。这种数据消息可以跨越各种连接被发送。示例性连接包括并行接口、串行接口和总线接口。

计算架构700包括各种常见的计算元件,例如一个或更多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、外围设备、接口、振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(i/o)部件、电源等。然而,实施例不限于由计算架构700实现。

如图7所示,计算架构700包括处理单元704、系统存储器706和系统总线708。处理单元704可以是各种市场上可买到的处理器中的任何一种,没有限制地包括处理器;应用、嵌入式和安全处理器;处理器;ibm和处理器;core(2)处理器;以及类似的处理器。双微处理器、多核处理器和其他多处理器架构也可以用作处理单元704。

系统总线708针对包括但不限于系统存储器706的系统部件提供到处理单元704的接口。系统总线708可以是几种类型的总线结构中的任何一种,这些总线结构可以使用各种市场上可买到的总线架构中的任何一种进一步互连到存储器总线(有或没有存储器控制器)、外围总线和本地总线。接口适配器可以经由插槽架构连接到系统总线708。示例插槽架构可以没有限制地包括加速图形端口(agp)、卡总线、(扩展)工业标准架构((e)isa)、微通道架构(mca)、nubus、外围部件互连(扩展)(pci(x))、pciexpress、个人计算机存储卡国际协会(pcmcia)和诸如此类。

计算架构700可以包括或实现各种制造物品。制造物品可以包括计算机可读储存介质以储存逻辑。计算机可读储存介质的示例可以包括能够存储电子数据的任何有形介质,包括易失性存储器或非易失性存储器、可移动或不可移动存储器、可擦除或不可擦除存储器、可写或可重写存储器等。逻辑的示例可以包括使用任何合适类型的代码实现的可执行计算机程序指令,例如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、面向对象的代码、视觉代码和诸如此类。实施例还可以至少部分地被实现为在非暂时性计算机可读介质中或上包含的指令,其可以由一个或更多个处理器读取和执行以使本文描述的操作的执行成为可能。

系统存储器706可以包括以一个或更多个较高速度存储器单元的形式的各种类型的计算机可读储存介质,例如只读存储器(rom)、随机存取存储器(ram)、动态ram(dram)、双数据速率dram(ddram)、同步dram(sdram)、静态ram(sram)、可编程rom(prom)、可擦除可编程rom(eprom)、电可擦除可编程rom(eeprom)、闪存、聚合物存储器(例如铁电聚合物存储器)、双向(ovonic)存储器、相变或铁电存储器、硅-氧化物-氮化物-氧化物-硅(sonos)存储器、磁卡或光卡、设备的阵列(例如,独立磁盘冗余阵列(raid))驱动器、固态存储器设备(例如,usb存储器、固态驱动器(ssd))和适合于存储信息的任何其他类型的储存介质。在图7所示的实施例中,系统存储器706可以包括非易失性存储器710和/或易失性存储器712。基本输入/输出系统(bios)可以存储在非易失性存储器710中。

计算机702可以包括以一个或更多个较低速度存储器单元的形式的各种类型的计算机可读储存介质,包括内部(或外部)硬盘驱动器(hdd)714、从可移动磁盘718读取或向可移动磁盘718写入的磁性软盘驱动器(fdd)716以及从可移动光盘722(例如,cd-rom或dvd)读取或向可移动光盘722写入的光盘驱动器720。hdd714、fdd716和光盘驱动器720可以分别通过hdd接口724、fdd接口726和光学驱动器接口728连接到系统总线708。用于外部驱动器实现的hdd接口724可以包括通用串行总线(usb)和ieee1394接口技术中的至少一种或两种。

驱动器和相关联的计算机可读介质提供数据、数据结构、计算机可执行指令等的易失性和/或非易失性储存。例如,多个程序模块(包括操作系统730、一个或更多个应用程序732、其他程序模块734和程序数据736)可以存储在驱动器和存储器单元710、712中。在一个实施例中,一个或更多个应用程序732、其他程序模块734和程序数据736可以包括例如加密消息系统100的各种应用和/或部件。

用户可以通过一个或更多个有线/无线输入设备(例如键盘738)和指向设备(例如鼠标740)来将命令和信息输入到计算机702内。其他输入设备可以包括麦克风、红外(ir)遥控器、射频(rf)遥控器、游戏板、手写笔、读卡器、软件狗、指纹读取器、手套、图形平板计算机、操纵杆、键盘、视网膜读取器、触摸屏(例如电容性、电阻性的等)、轨迹球、跟踪板、传感器、触控笔和诸如此类。这些和其他输入设备常常通过耦合到系统总线708的输入设备接口742连接到处理单元704,但也可以通过其他接口(例如并行端口、ieee1394串行端口、游戏端口、usb端口、ir接口等)来连接。

监控器744或其他类型的显示设备也通过接口(例如视频适配器746)连接到系统总线708。监控器744可以在计算机702的内部或外部。除了监控器744之外,计算机通常还包括其他外围输出设备,例如扬声器、打印机等。

计算机702可以使用经由有线和/或无线通信到一个或更多个远程计算机(例如远程计算机748)的逻辑连接来在联网环境中操作。远程计算机748可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐电器、对等设备或其他公共网络节点,并且通常包括关于计算机702描述的许多或所有元件,尽管为了简洁的目的,只有存储器/储存设备750被示出。所描绘的逻辑连接包括到局域网(lan)752和/或更大的网络(例如广域网(wan)754)的有线/无线连接。这种lan和wan联网环境在办公室和公司中是普通的,并且便于全企业计算机网络,例如内联网,所有这些网络都可以连接到全球通信网络,例如互联网。

当在lan联网环境中被使用时,计算机702通过有线和/或无线通信网络接口或适配器756连接到lan752。适配器756可以便于到lan752的有线和/或无线通信,lan752还可以包括布置在其上用于与适配器756的无线功能通信的无线接入点。

当在wan联网环境中被使用时,计算机702可以包括调制解调器758,或者连接到在wan754上的通信服务器,或者具有用于通过wan754例如借助于互联网建立通信的其他装置。可以是内部的或外部的并且是有线和/或无线设备的调制解调器758经由输入设备接口742连接到系统总线708。在联网环境中,关于计算机702描绘的程序模块或其部分可以存储在远程存储器/储存设备750中。将认识到,所示的网络连接是示例性的,并且在计算机之间建立通信链路的其他手段可以被使用。

计算机702可操作来使用ieee802系列的标准来与有线和无线设备或实体(例如操作地设置在无线通信中的无线设备(例如,ieee802.11空中调制技术))通信。这至少尤其包括wi-fi(或无线保真)、wimax和bluetoothtm无线技术。因此,通信可以是如同传统网络一样的预定义结构,或者仅仅是在至少两个设备之间的自适应通信。wi-fi网络使用被称为ieee802.11x(a、b、g、n等)的无线电技术来提供安全、可靠、快速的无线连接。wi-fi网络可用于将计算机彼此连接、连接到互联网和有线网络(其使用ieee802.3-相关的媒体和功能)。

图8示出了适合于实现如前所述的各种实施例的示例性通信架构800的框图。通信架构800包括各种常见的通信元件,例如发射机、接收机、收发机、无线电装置、网络接口、基带处理器、天线、放大器、滤波器、电源等。然而,实施例不限于由通信架构800实现。

如图8所示,通信架构800包括一个或更多个客户端802和服务器804。客户端802可以对应于所描述的客户端和客户端设备。服务器804可以对应于所描述的服务器和服务器设备。客户端802和服务器804操作地连接到可用于存储对相应的客户端802和服务器804是本地的信息(例如cookies和/或相关联的上下文信息)的一个或更多个相应的客户端数据储存器808和服务器数据储存器810。

客户端802和服务器804可以使用通信框架806在彼此之间传递信息。通信框架806可以实现任何众所周知的通信技术和协议。通信框架806可以被实现为分组交换网络(例如,公共网络例如互联网、私有网络例如企业内联网等)、电路交换网络(例如,公共交换电话网络)或者分组交换网络和电路交换网络的组合(具有合适的网关和译码器)。

通信框架806可以实现被布置成接受、通信和连接到通信网络的各种网络接口。网络接口可以被视为一种专用形式的输入输出接口。网络接口可以采用连接协议,没有限制地包括直接连接、以太网(例如,厚、薄、双绞线10/100/1000baset和诸如此类)、令牌环、无线网络接口、蜂窝网络接口、ieee802.11a-x网络接口、ieee802.16网络接口、ieee802.20网络接口和诸如此类。此外,多个网络接口可以用于与各种通信网络类型接合。例如,可以采用多个网络接口来允许通过广播、多播和单播网络进行通信。如果处理要求规定更大的速度和容量,分布式网络控制器架构可以类似地用于合并(pool)、负载平衡或以其他方式增加客户端802和服务器804所需的通信带宽。通信网络可以是有线和/或无线网络中的任何一个和组合,没有限制地包括直接互连、安全定制连接、专用网络(例如企业内联网)、公共网络(例如互联网)、个人区域网(pan)、局域网(lan)、城域网(man)、作为在互联网上的节点的操作任务(omni)、广域网(wan)、无线网络、蜂窝网络和其他通信网络。

图9示出了在多载波ofdm系统(例如加密消息系统100)中使用的设备900的实施例。设备900可以实现例如如参考加密消息系统100和/或逻辑电路935描述的软件部件960。逻辑电路935可以包括物理电路以执行针对加密消息系统100描述的操作。如图9所示,设备900可以包括无线电接口910、基带电路920和计算平台930,尽管实施例不限于这个配置。

设备900可以在单个计算实体中例如完全在单个设备内实现对于加密消息系统100和/或逻辑电路935的一些或全部结构和/或操作。可选地,设备900可以使用分布式系统架构(例如,客户端-服务器架构、3层架构、n层架构、紧密耦合或聚集的架构、对等架构、主-从设备架构、共享数据库架构和其他类型的分布式系统)来跨越多个计算实体分配对于加密消息系统100和/或逻辑电路935的结构和/或操作的部分。实施例在这个上下文中并不被限制。

在一个实施例中,无线电接口910可以包括适于发送和/或接收单载波或多载波调制信号(例如,包括互补码键控(cck)和/或正交频分复用(ofdm)符号)的部件或部件的组合,尽管实施例不限于任何特定的空中接口或调制方案。无线电接口910可以包括例如接收机912、发射机916和/或频率合成器914。无线电接口910可以包括偏置控制器、晶体振荡器和/或一个或更多个天线918。在另一个实施例中,无线电接口910可以如所需的使用外部电压控制振荡器(vco)、表面声波滤波器、中频(if)滤波器和/或rf滤波器。由于潜在rf接口设计的多样性,其扩展性描述被省略。

基带电路920可以与无线电接口910通信以处理、接收和/或发送信号,并且可以包括例如用于下变频所接收的信号的模数转换器922、用于上变频信号以用于传输的数模转换器924。此外,基带电路920可以包括基带或物理层(phy)处理电路956,用于相应接收/发送信号的phy链路层处理。基带电路920可以包括例如用于媒体访问控制(mac)/数据链路层处理的处理电路928。基带电路920可以包括用于例如通过一个或更多个接口934与处理电路928和/或计算平台930通信的存储器控制器932。

在一些实施例中,phy处理电路926可以包括结合诸如缓冲存储器的附加电路来构造和/或解构通信帧(例如无线电帧)的帧构造和/或检测模块。可选地或此外,mac处理电路928可以共享对这些功能中的某些功能的处理,或者独立于phy处理电路926而执行这些过程。在一些实施例中,mac和phy处理可以集成到单个电路中。

计算平台930可以为设备900提供计算功能。如所示,计算平台930可以包括处理部件940。除了基带电路920之外或者作为基带电路920的替代,设备900可以使用处理部件940来执行对于加密消息系统100和逻辑电路935的处理操作或逻辑。处理部件940(和/或phy926和/或mac928)可以包括各种硬件元件、软件元件或两者的组合。硬件元件的示例可以包括设备、逻辑设备、部件、处理器、微处理器、电路、处理器电路、电路元件(例如晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(asic)、可编程逻辑设备(pld)、数字信号处理器(dsp)、现场可编程门阵列(fpga)、存储器单元、逻辑门、寄存器、半导体设备、芯片、微芯片、芯片组等。软件元件的示例可以包括软件部件、程序、应用、计算机程序、应用程序、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子程序、功能、方法、过程、软件接口、应用程序接口(api)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。确定实施例是否使用硬件元件和/或软件元件来实现可以根据任何数量的因素(例如期望计算速率、功率电平、耐热性、处理循环预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其他设计或性能约束)而变化,如对给定实现所需的。

计算平台930还可以包括其他平台部件950。其他平台部件950包括公共计算元件,例如一个或更多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、外围设备、接口、振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(i/o)部件(例如数字显示器)、电源等。存储器单元的示例可以没有限制地包括以一个或更多个较高速度存储器单元的形式的各种类型的计算机可读和机器存储介质,例如只读存储器(rom)、随机存取存储器(ram)、动态ram(dram)、双数据速率dram(ddram)、同步dram(sdram)、静态ram(sram)、可编程rom(prom)、可擦除可编程rom(eprom)、电可擦除可编程rom(eeprom)、闪存、聚合物存储器(例如铁电聚合物存储器)、双向存储器、相变或铁电存储器、硅-氧化物-氮化物-氧化物-硅(sonos)、磁卡或光卡、设备的阵列(例如独立磁盘冗余阵列(raid))驱动器、固态存储器设备(例如,usb存储器、固态驱动器(ssd))和适合于存储信息的任何其他类型的储存介质。

设备900可以是例如超移动设备、移动设备、固定设备、机器对机器(m2m)设备、个人数字助理(pda)、移动计算设备、智能电话、电话、数字电话、蜂窝电话、用户设备、电子书阅读器、头戴式耳机、单向寻呼机、双向寻呼机、消息传送设备、计算机、个人计算机(pc)、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、手持计算机、平板计算机、服务器、服务器阵列或服务器农场、网络服务器、网络服务器、互联网服务器、工作站、微型计算机、主计算机、超级计算机、网络电器、网络电器、分布式计算系统、多处理器系统、基于处理器的系统、消费电子设备、可编程消费电子设备、游戏设备、电视机、数字电视机、机顶盒、无线接入点、基站、节点b、演进节点b(enb)、用户站、移动用户中心、无线网络控制器、路由器、集线器、网关、网桥、交换机、机器或其组合。因此,可以在设备900的各种实施例中包括或省略本文描述的设备900的功能和/或特定配置,如适当地所需的。在一些实施例中,设备900可以被配置为与和本文引用的wman和/或其他宽带无线网络的3gpplte规范和/或ieee902.16标准中的一个或更多个相关联的协议和频率兼容,尽管实施例在这个方面中并不被限制。

可以使用单输入单输出(siso)架构来实现设备900的实施例。然而,某些实现可以包括多个天线(例如,天线918),用于使用用于波束成形或空分多址接入(sdma)的自适应天线技术和/或使用mimo通信技术来进行发送和/或接收。

可以使用分立电路、专用集成电路(asic)、逻辑门和/或单芯片架构的任何组合来实现设备900的部件和特征。此外,在适当的情况下,可以使用微控制器、可编程逻辑阵列和/或微处理器或前述项的任何组合来实现设备900的特征。注意,硬件、固件和/或软件元件在本文可以被共同或单独地称为“逻辑”或“电路”。

应当认识到,在图9的框图中所示的示例性设备900可以代表许多潜在实现的一个在功能上描述性的示例。因此,在附图中描绘的块功能的划分、省略或包括并不推断出用于实现这些功能的硬件部件、电路、软件和/或元件将必须在实施例中被划分、省略或包括。

一种计算机实现的方法可以包括接收加密消息,该加密消息根据多维棘轮移动加密方案被加密;确定对于加密消息的消息迭代计数;将消息迭代计数分解成多个消息链密钥迭代计数;基于多个消息链密钥迭代计数来确定解密密钥;以及通过基于解密密钥对加密消息解密来生成解密消息。

一种计算机实现的方法还可以包括在客户端设备处从消息传送服务器设备接收加密消息;以及在客户端设备上显示解密消息。

一种计算机实现的方法还可以包括解密密钥基于多个客户端链密钥,多个客户端链密钥对应于多维棘轮移动加密方案的多个维度,其中多个维度准许多个客户端链密钥的可变步长前进。

一种计算机实现的方法还可以包括,其中多个客户端链密钥的可变步长前进对应于丢弃一个或更多个加密消息。

一种计算机实现的方法还可以包括响应于对加密消息解密来使链密钥迭代计数前进一个步长。

一种计算机实现的方法还可以包括取回多个客户端链密钥,该多个客户端链密钥对应于多维棘轮移动加密方案的多个维度,该多个客户端链密钥对应于多个客户端链密钥迭代计数;确定多个客户端链密钥迭代计数等于多个消息链密钥迭代计数;以及将解密密钥确定为多个客户端链密钥中的最高维客户端链密钥。

一种计算机实现的方法还可以包括,在对应于最高维客户端链密钥的最高维客户端链密钥迭代计数小于最大链密钥迭代值的情况下,响应于对加密消息解密而使最高维客户端链密钥前进一个步长。

一种计算机实现的方法还可以包括,在对应于最高维客户端链密钥的最高维客户端链密钥迭代计数等于最大链密钥迭代值的情况下,响应于对加密消息解密而使多个客户端链密钥中的两个或更多个客户端链密钥前进。

一种计算机实现的方法还可以包括取回多个客户端链密钥,多个客户端链密钥对应于多维棘轮移动加密方案的多个维度,多个客户端链密钥对应于多个客户端链密钥迭代计数;确定客户端迭代计数小于消息迭代计数,客户端迭代计数对应于多个客户端链密钥迭代计数的合成;通过使多个客户端链密钥基于在客户端迭代计数和消息迭代计数之间的迭代距离前进来生成多个棘轮移动的客户端链密钥;以及将解密密钥确定为多个棘轮移动的客户端链密钥中的最高维棘轮移动的客户端链密钥。

一种计算机实现的方法还可以包括,其中使多个客户端链密钥前进包括基于使较低维客户端链密钥前进来重新生成较高维客户端链密钥,其中重新生成较高维客户端链密钥跳过较高维客户端链密钥的一个或更多个被允许的迭代计数。

一种装置可以包括:消息传送部件,其操作来接收加密消息,该加密消息根据多维棘轮移动加密方案被加密;确定对于加密消息的消息迭代计数;以及通过基于解密密钥对加密消息解密来生成解密消息;以及密钥管理部件,其在处理器电路上操作来将消息迭代计数分解成多个消息链密钥迭代计数;以及基于多个消息链密钥迭代计数来确定解密密钥。该装置可以操作来实现本文描述的任何计算机实现的方法。

至少一个计算机可读储存介质可以包括指令,指令当被执行时使系统执行本文描述的任何计算机实现的方法。

一种计算机实现的方法可以包括:接收加密消息,该加密消息根据多维棘轮移动加密方案被加密;确定对于加密消息的消息迭代计数;将消息迭代计数分解成多个消息链密钥迭代计数;基于多个消息链密钥迭代计数来确定解密密钥;以及通过基于解密密钥对加密消息解密来生成解密消息。

一种计算机实现的方法还可以包括解密密钥基于多个客户端链密钥,多个客户端链密钥对应于多维棘轮移动加密方案的多个维度,其中多个维度准许多个客户端链密钥的可变步长前进,多个客户端链密钥的可变步长前进可选地对应于丢弃一个或更多个加密消息。

一种计算机实现的方法还可以包括取回多个客户端链密钥,该多个客户端链密钥对应于多维棘轮移动加密方案的多个维度,该多个客户端链密钥对应于多个客户端链密钥迭代计数;确定多个客户端链密钥迭代计数等于多个消息链密钥迭代计数;以及将解密密钥确定为多个客户端链密钥中的最高维客户端链密钥;以及可选地,在对应于最高维客户端链密钥的最高维客户端链密钥迭代计数等于最大链密钥迭代值的情况下,响应于对加密消息解密而使多个客户端链密钥中的两个或更多个客户端链密钥前进,或者可选地,在对应于最高维客户端链密钥的最高维客户端链密钥迭代计数小于最大链密钥迭代值的情况下,响应于对加密消息解密而使最高维客户端链密钥前进一个步长。

一种计算机实现的方法还可以包括取回多个客户端链密钥,该多个客户端链密钥对应于多维棘轮移动加密方案的多个维度,多个客户端链密钥对应于多个客户端链密钥迭代计数;确定客户端迭代计数小于消息迭代计数,客户端迭代计数对应于多个客户端链密钥迭代计数的合成;通过使多个客户端链密钥基于客户端迭代计数和消息迭代计数之间的迭代距离前进来生成多个棘轮移动的客户端链密钥;以及将解密密钥确定为多个棘轮移动的客户端链密钥中的最高维棘轮移动的客户端链密钥;其中使多个客户端链密钥前进可选地包括基于使较低维客户端链密钥前进来重新生成较高维客户端链密钥,其中重新生成较高维客户端链密钥跳过较高维客户端链密钥的一个或更多个被允许的迭代计数。

一种计算机实现的方法还可以包括,其中消息迭代计数标记用于消息的排序和序列信息,以用于至少部分地在对加密消息解密时使用,消息迭代计数可选地是对于加密消息的未加密封装器的组成部分,特别是未加密报头,其中加密消息的秘密、私有或以其他方式受保护信息在加密消息的加密有效载荷中,其中加密消息和未加密封装器可选地作为消息包的一部分经由消息传送服务器被发送,并且由消息传送部件通过从对于加密消息的未加密封装器中提取消息迭代计数来确定该消息迭代计数。

一种装置可以包括:消息传送部件,其操作来接收加密消息,该加密消息根据多维棘轮移动加密方案被加密;确定对于加密消息的消息迭代计数;以及通过基于解密密钥对加密消息解密来生成解密消息;以及密钥管理部件,其在处理器电路上操作来将消息迭代计数分解成多个消息链密钥迭代计数;以及基于多个消息链密钥迭代计数来确定解密密钥。

一种装置还可以包括基于多个客户端链密钥的解密密钥,多个客户端链密钥对应于多维棘轮移动加密方案的多个维度,其中多个维度准许多个客户端链密钥的可变步长前进,多个客户端链密钥的可变步长前进可选地对应于丢弃一个或更多个加密消息。

一种装置还可以包括密钥管理部件,其操作来取回多个客户端链密钥,该多个客户端链密钥对应于多维棘轮移动加密方案的多个维度,该多个客户端链密钥对应于多个客户端链密钥迭代计数;确定多个客户端链密钥迭代计数等于多个消息链密钥迭代计数;将解密密钥确定为多个客户端链密钥中的最高维客户端链密钥;以及,在对应于最高维客户端链密钥的最高维客户端链密钥迭代计数等于最大链密钥迭代值的情况下,响应于对加密消息解密而使多个客户端链密钥中的两个或更多个客户端链密钥前进。

一种装置还可以包括密钥管理部件,其操作来取回多个客户端链密钥,该多个客户端链密钥对应于多维棘轮移动加密方案的多个维度,该多个客户端链密钥对应于多个客户端链密钥迭代计数;确定客户端迭代计数小于消息迭代计数,客户端迭代计数对应于多个客户端链密钥迭代计数的合成;通过使多个客户端链密钥基于在客户端迭代计数和消息迭代计数之间的迭代距离前进来生成多个棘轮移动的客户端链密钥;以及将解密密钥确定为多个棘轮移动的客户端链密钥中的最高维棘轮移动的客户端链密钥;使多个客户端链密钥前进可选地包括基于使较低维客户端链密钥前进来重新生成较高维客户端链密钥,其中重新生成较高维客户端链密钥跳过较高维客户端链密钥的一个或更多个被允许的迭代计数。

一种装置还可以包括,其中消息迭代计数标记用于消息的排序和序列信息,以用于至少部分地在对加密消息解密时使用,消息迭代计数可选地是对于加密消息的未加密封装器的组成部分,特别是未加密报头,其中加密消息的秘密、私有或以其他方式受保护信息在加密消息的加密有效载荷中,其中加密消息和未加密封装器可选地作为消息包的一部分经由消息传送服务器被发送,并且其中消息传送部件可操作为通过从对于加密消息的未加密封装器中提取消息迭代计数来确定该消息迭代计数。

至少一个计算机可读储存介质可以包括指令,指令当被执行时使系统、特别是根据权利要求26至30中的任一项的装置执行根据权利要求21至25中的至少一项的方法的所有步骤。

可以使用表达“一个实施例”或“实施例”连同它们的派生词来描述一些实施例。这些术语意味着关于该实施例描述的特定特征、结构或特性被包括在至少一个实施例中。短语“在一个实施例中”在说明书中的不同地方中的出现不一定都指同一实施例。此外,可以使用表达“耦合”和“连接”连同它们的派生词来描述一些实施例。这些术语不一定被预期为彼此的同义词。例如,可以使用术语“连接”和/或“耦合”来描述一些实施例,以指示两个或更多个元件与彼此直接物理或电接触。然而,术语“耦合”也可以意味着两个或更多个元件与彼此不直接接触,但是仍然与彼此相互合作或相互作用。

一般参考本文使用的符号和术语,本文的详细描述可以从在计算机或计算机网络上执行的程序过程方面来呈现。这些过程描述和表示由本领域中的技术人员使用来最有效地向本领域中的其他技术人员传达他们的工作的实质。

过程在这里,且通常被构想为导致期望结果的操作的前后一致的序列。这些操作是需要物理量的物理操纵的操作。通常,尽管不是必须的,这些量采取能够被存储、传输、组合、比较和以其他方式操纵的电、磁或光信号的形式。主要是由于共同使用的原因,将这些信号称为比特、值、元素、符号、字符、项、数字和诸如此类有时被证明是方便的。然而应该注意,所有这些和类似的术语都与适当的物理量相关联,并且仅仅是应用于这些量的方便标签。

此外,所执行的操纵通常被称为诸如添加或比较的术语,这些术语通常与由操作人员所执行的心理操作相关联。在本文描述的形成一个或更多个实施例的一部分的任何操作中,没有操作人员的这种能力是必需的或者在大多数情况下是合意的。更确切地,操作是机器操作。用于执行各种实施例的操作的有用机器包括通用数字计算机或类似设备。

各种实施例还涉及用于执行这些操作的装置或系统。该装置可以为所需目的专门构造,或者它可以包括如由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。本文提出的过程并不固有地与特定的计算机或其他装置相关。各种通用机器可以与根据本文的教导编写的程序一起使用,或者构建更专用的装置以执行所需的方法步骤可以证明是方便的。对于各种这些机器的所需的结构将从所给出的描述中出现。

需要强调,提供本公开的摘要以允许读者快速确定技术公开的性质。它在它将不用于解释或限制权利要求的范围或含义的理解的情况下被提交。此外,在前面的详细描述中,可以看到,为了简单化本公开的目的,各种特征在单个实施例中被分组在一起。公开的这个方法不应被解释为反映所要求保护的实施例需要比在每个权利要求中明确陈述的更多的特征的意图。更确切地,如所附的权利要求所反映的,创造性主题不在于少于单个所公开的实施例的全部特征。因此,所附的权利要求被特此合并到详细描述中,其中每个权利要求独立地作为单独的实施例。在所附权利要求中,术语“包括(including)”和“其中(inwhich)”分别用作相应术语“包括(comprising)”和“其中(wherein)”的简明英语等效形式。此外,术语“第一”、“第二”、“第三”等仅用作标签,且并不意欲将数字要求强加在它们的对象上。

上面已经描述的内容包括所公开的架构的示例。当然,不可能描述部件和/或方法的每一个可能的组合,但是本领域中的普通技术人员可以认识到许多另外的组合和置换是可能的。因此,新颖的架构意欲包含落在所附权利要求的精神和范围内的所有这样的变更、修改和变化。

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