通信系统中的终端身份保护方法与流程

文档序号:21411717发布日期:2020-07-07 14:47阅读:281来源:国知局
通信系统中的终端身份保护方法与流程

(优先权文件)

本申请要求于2018年8月28日提交的发明名称为“terminalidentityprotectionmethodinacommunicationsystem”的澳大利亚临时专利申请no.2017903469作为优先权,在此并入其全部内容作为参考。

本公开涉及通信系统。在特定形式中,本公开涉及用于安全地识别卫星通信系统中的终端的方法。



背景技术:

在许多通信系统中,终端被分配包含在每个消息中的唯一的终端标识符(或终端id)。但是,该终端id通常占用数十个位,并且,在一些卫星通信或低功率通信系统中,希望使包保持尽可能短。此外,终端标识符几乎总是未加密发送的。这允许接收器确定传送终端是否是有效的终端或系统用户(并且消息因此应作为真实的消息被接受并被处理)。在一些系统中,消息体被加密,并且清楚地发送终端id允许接收器选择正确的终端密钥以验证和解密消息的剩余部分。但是,这种方法的一个问题是,通过发送未加密的终端标识符,对手可以识别并潜在地跟踪终端。

可用于减少对手识别和跟踪的一种方法是将一组标识符(即标识符池)分配给终端或终端的集合,并使终端从该集合中选择终端标识符(其对于接收器是已知的)。但是,虽然这降低对手跟踪终端的能力,但是,这无法消除问题,特别是如果池小并且对手能够在扩展的基础上监视传输以确定池。另一种方法是使用公钥/私钥加密以导出“共享秘密”密钥。但是,这通常需要在消息体中发送额外的数据。又一种方法是终端加密和传送将在将来使用的一组终端id和/或密钥对。但是,这种方法导致同步问题,如同消息丢失则将来密钥的集合丢失。在不可能(或不提供)消息确认的单向通信信道中,这是特殊问题。进一步周期性地重新发送密钥池消耗额外的带宽。

因此,需要提供用于识别卫星通信系统中的终端的改进方法,或者至少为现有系统提供有用的替代方案。



技术实现要素:

根据第一方面,提供一种用于根据从通信系统中的终端接收的消息确定终端id的方法,该方法包括:

通过在包括多个接入节点、操作地连接到所述多个接入节点的认证代理和多个终端的通信系统中的接入节点接收从具有唯一终端标识符(id)的终端传送的消息和终端密钥,其中,接收的消息至少包括消息认证代码(mac)、n位哈希以及加密的消息文本,并且,其中,至少使用终端密钥和nonce以生成mac,并且在传送的消息中不包括终端id或终端密钥;

向认证代理至少提供接收的消息认证代码(mac)和n位哈希,其中,认证代理对于通信系统中的多个终端存储所有(终端id、终端密钥)对的集合;

将终端密钥集分割为至少两个分区,并且识别包括通过使用n位哈希传送所接收消息的终端的终端密钥的搜索分区;

在搜索分区中搜索认证mac的终端密钥;以及

通过使用认证mac的终端密钥识别终端id。

在一种形式中,nonce不被包含于接收的消息中,并且,终端和认证代理已知的预定义分割函数被用于从至少nonce和终端密钥生成n位哈希,并且所述方法还包括获得nonce的步骤,其中,nonce是通过使用认证代理已知或可估计的系统信息或者终端和认证代理均已知或可估计的公共信息获得的。

在另一种形式中,对终端密钥集进行分割包括通过使用获得的nonce和终端密钥作为预定义分割函数的输入对各终端生成n位测试值并且使用相同的n位哈希对终端进行分组,并且,识别搜索分区的步骤包括选择具有其n位测试值与接收的n位哈希匹配的终端的分区。在另一种形式中,预定义函数是(nonce),其中,k是相应的终端密钥。

在另一种形式中,通过分析终端的历史空间、时间或时空传送模式获得nonce。在另一种形式中,所述方法还包括估计从其接收传送的地理区域,并且,通过在预定义的时间窗口内对系统中的各终端使用最后已知位置执行选择nonce,并且,搜索分区包含其最后已知位置在估计的地理区域内的终端。在另一种形式中,通过使用系统中的传送终端的定时或频率模式执行获得nonce,并且,基于接收的传送的时间识别搜索分区。

在一种形式中,通过在相对于消息的传送时间确定的时间确定计数器的当前值获得nonce值,其中,计数器基于接收器和传送器已知的卫星轨道的参数,并且关于预定的参考时间和增量点被计数。在另一种形式中,计数器是传送消息时的多个卫星中的卫星的轨道计数,其中,参考时间是参考epoch,并且增量点是预定轨道参考点。在另一种形式中,轨道计数由卫星通信网络中的卫星的星历数据确定。在另一种形式中,多个接入节点包括多个卫星接入节点,并且计数器所基于的卫星是多个卫星接入节点中的一个。

在一种形式中,分区的数量为2,并且通过以下过程通过以下步骤迭代所有终端密钥集同时执行分割和搜索:

对于终端,计算通过将预定义的分割函数应用于终端密钥和nonce获得的n位测试值;

对于终端,确定n位测试值是否与接收的n位哈希匹配,并且,如果n位测试值与接收的n位哈希匹配,则确定终端密钥和nonce是否成功地对mac进行认证。

在一种形式中,nonce包含于接收的消息中,并且,终端和认证代理已知的预定义分割函数被用于通过使用nonce以从终端id选择n位生成n位哈希,并且对终端密钥集进行分割的步骤包括通过使用接收的nonce和终端标识符作为预定义分割函数的输入对各终端生成n位测试值以及用相同的n位哈希将终端分组,并且识别搜索分区包括选择具有其n位测试值与接收的n位哈希相匹配的终端的分区。在另一种形式中,nonce由终端从伪随机源生成。

在另一种形式中,预定义的分割函数通过以下方式从nonce和终端标识符生成n位测试值:

将终端标识符分割为m个n位非重叠部分;

根据2k≥m的要求,计算nonce的预定义k位部分的值j模m,并选择l位终端标识符的j模mn位部分。

在另一种形式中,nonce的预定义k位部分是nonce的第一个或最后一个k位部分。

在一种形式中,分割基于分析终端的历史空间、时间或时空传送模式。

在一种形式中,nonce被包含于接收的消息中,并且对终端密钥集进行分割包括在接收消息之前生成m个分割,并且,m个分割中的第j个分割通过以下方式获得:

对于每个j=1..m,选择各终端标识符的第j个n位部分,并且使用其终端标识符的相同第j个n位部分对终端进行分组,以形成2n个分区;以及

在接收消息时,根据2k≥m的要求,计算nonce的预定义k位部分的值j模m,并且,识别搜索分区包括在包含其终端标识符的n位部分与接收的n位哈希匹配的终端密钥的m个分割的第j个分割中选择分区。

在一种形式中,nonce是16位nonce值,并且n是7。在一种形式中,mac是30位。

在一种形式中,至少两个分区中的每一个具有相联的分区密钥,并且n位哈希包含从用于搜索分区的分区密钥生成的分区消息认证代码(pmac),并且,识别搜索分区包括搜索分区密钥集以寻找对接收的pmac进行认证的分区密钥。

在一种形式中,至少两个分区是被分组成树以形成多个层次分区层的多个分区,其中,各分区具有相关联的分区密钥,并且n位哈希是在从根节点到包含搜索分区的叶节点遍历树的搜索路径中从各层上的各分区密钥生成的各分区消息认证代码(pmac)的有序组合,并且识别搜索分区包括通过对认证与从有序组合确定的层相关的接收pmac的分区密钥在树的各层上搜索分区密钥集来遍历树,其中,其分区密钥对与叶节点层相关联的接收的pmac进行认真的叶节点是搜索分区。

在一种形式中,至少两个分区是分组成树以形成多个层次分区层的多个分区,这里,除叶节点分区的各分区具有相关联的分区密钥,并且叶节点分区分别包含单个终端密钥,并且n位哈希是在从根节点到叶节点遍历树的搜索路径中从各层上的各分区密钥生成的各分区消息认证代码(pmac)的有序组合,并且识别搜索分区包括通过对认证与从有序组合确定的层相关的接收pmac的分区密钥在树的各层上搜索分区密钥集遍历树直到获得叶节点的集合,并且搜索分区是终端密钥对终端的mac进行认证的叶节点分区。

在另一种形式中,有序组合是通过从根节点到叶节点遍历树获得的顺序,并且n位哈希是搜索路径中的各pmac到搜索分区的连接。

在一种形式中,终端标识符为128位,并且终端密钥为128位或256位。在一种形式中,分区的数量大于100。

在另一种形式中,多个预定义的分割函数被用于对终端密钥集进行分割,并且消息还包括被认证代理使用以确定要使用来自多个预定义分割函数的哪个预定义分割函数以对终端密钥集进行分割的至少1位指示符字段。

在一种形式中,通信系统是卫星通信系统,并且多个接入节点包括多个卫星接入节点。

根据第二方面,提供一种用于通过终端生成认证的消息以供在包括多个终端、多个接入节点和认证代理的卫星通信系统中向接入节点传送的方法,其中,各终端存储唯一的终端标识符(id)和终端密钥,并且认证代理存储多个终端中的每一个的(终端id,终端密钥)对的集合,该方法包括:

生成nonce值;

通过使用由终端存储的终端密钥和nonce值对用于传送的消息进行加密,以获得加密的消息文本或者获取用于传送的加密的消息文本;

由终端通过使用从至少终端密钥和nonce生成n位或者通过从终端id选择n位生成n位测试值的预定义的分割函数生成n位哈希,或者,n位包含从与包含终端密钥的分区相关联的分区密钥生成的一个或更多个分区消息认证代码(pmac);

通过至少使用nonce和终端密钥生成消息认证代码(mac);以及

由终端向多个接入节点中的接入节点传送包括至少n位哈希、mac和加密的消息文本的消息。

在一种形式中,通过使用终端和认证代理均已知或可估计的公共信息确定nonce值,并且不传送nonce,并且预定义的分割函数从至少终端密钥和nonce生成n位哈希。在另一种形式中,通过在相对于消息的传送时间确定的时间确定计数器的当前值获得nonce值,其中,计数器基于接收器和发射器已知的卫星轨道的参数,并且相对于预定的参考时间和增量点进行计数,并且nonce不被传送。在一种形式中,计数器是传送消息时的卫星的轨道计数,其中,参考时间是参考epoch,并且增量点是预定的轨道参考点。在一种形式中,通过使用(nonce)获得n位终端哈希,这里,k是对应的终端密钥。在一种形式中,n位终端哈希是来自csprng的输出哈希的第一个或最后的7位。

在一种形式中,nonce由伪随机源生成并在消息中传送,并且,预定义的分割函数通过从终端id中选择n位生成n位终端哈希。在另一种形式中,生成n位终端哈希包括:

选择nonce的预定义k位部分;

根据2k≥m将终端标识符分割为m个n位非重叠部分

计算nonce值的k位部分的值j模m;

选择终端标识符的第jn位部分作为n位终端哈希。

在一种形式中,分割函数进一步将多个分区分组为包含多个层次分区层的树,并且分区密钥与各分区相关联,并且n位哈希是在从根节点到包含终端密钥的叶节点遍历树的搜索路径中从各层上的各分区密钥生成的各分区消息认证代码(pmac)的有序组合。

在一种形式中,nonce从加密的消息文本生成,并且mac被用于将消息文本和n位哈希加密。在一种形式中,mac是30位并且n为7。

在以上的方法中,接入节点可以是卫星接入节点,并且通信系统可以是卫星通信系统。根据其它方面,提供一种包括处理器和包含配置处理器以实现第一方面的方法的指令的存储器的认证代理装置、一种包括天线、通信硬件、处理器和包含配置处理器以实现第二方面的方法的指令的存储器的终端装置以及一种包括多个终端、可以是多个卫星的多个接入节点以及认证代理装置的通信系统。根据另一方面,提供一种生成唯一终端标识符并且在网络中登记终端的方法。

附图说明

参考附图讨论本公开的实施例,其中:

图1是根据实施例的通信系统的示意图;

图2是示出根据实施例的终端密钥的分组的示意图;

图3a是根据实施例的消息的第一帧结构的示意图;

图3b是根据实施例的消息的第二帧结构的示意图;

图3c是根据实施例的注册消息的帧结构的示意图;

图4a是根据实施例nonce值的确定的示意图;

图4b是根据实施例的n位终端哈希的确定的示意图;

图5是根据实施例的nonce和n位终端哈希的确定的示意图;

图6a是使用eax-aes加密方案的加密的算法;

图6b是使用eax-aes加密方案的解密的算法;

图6c是使用eax-aes加密方案的消息m的加密的示意图;

图7a是根据实施例的用于生成签名消息的方法的流程图;

图7b是根据实施例的用于确定终端id的方法的流程图;

图7c是根据另一实施例的用于确定终端id的方法的流程图;

图7d是根据另一实施例的用于确定终端id的方法的流程图;以及

图8是示出根据实施例的分区的分层分组的示意图。

在以下的描述中,类似的附图标记在所有的附图中表示类似或相应的部分。

具体实施方式

现在参照图1,表示根据实施例的通信系统。在该通信系统中,由终端发送的消息包由终端使用终端密钥进行数字签名,以允许在接收器上检查消息的真实性(即,接收器验证接收到的消息由已知的终端发送或利用系统注册)。另外,为了提供改善的安全性,在传送的消息中省略(即不包括)终端标识符。这给接收器带来潜在的计算负担,因为它必须搜索完整的终端密钥集以识别对消息进行认证的终端密钥。因此,为了帮助接收器,对所有可能的终端密钥集进行分区,并且提供方法以允许接收器确定哪个分区包含发送传输的终端的终端密钥。然后,接收器只需要搜索该分区以发现对接收到的消息进行认证的密钥,从而减少认证步骤的计算成本(或负担)。现在讨论通信系统的该特征和其他特征。

图1所示的通信系统可以等效地被称为通信网络。在一些实施例中,通信系统是卫星通信系统。该系统或网络使用发布者-订阅者模型,并且包含以下系统(或网络)实体:

终端10:终端内的通信模块向接入节点提供核心网络连接。终端10可以附接有设备12和传感器14。它们可以物理地附接或集成,或者通过本地有线或本地无线链路操作地连接到终端。

设备12:这些实体接收其通过认证代理订阅的数据。

传感器14:这些实体在不知悉其他网络节点的情况下发布数据。传感器还可以接收短暂的控制数据、发布ack消息等。

接入节点20:多个接入节点提供与多个终端的无线通信。在一些实施例中,接入节点是卫星接入节点。在其他实施例中,接入节点是大部分卫星接入节点与一些地面基站的组合。在其它实施例中,接入节点是卫星、空中和地面接入节点的组合。在一些实施例中,接入节点是地面接入节点。接入节点提供对核心网络2的接入。

接入网关30:它们充当接入节点和认证代理之间的网关。网关可以与接入节点20(例如在卫星上)组合。

认证代理40:发布者和订阅者之间的代理。代理认证接收到的消息来自已注册的终端并确定终端id。

应用网关50:应用60和代理40之间的数据网关,实现数个接口。这可以是基于云的接口。接口包括转发到客户控制的端点或客户可接入的端点的消息队列遥测传输(mqtt)接口。

应用60:客户应用。这些应用通过有线和无线链接与应用网关通信,例如与基于云的应用网关通信。

网络包括多个终端10和多个接入节点20,诸如卫星接入节点。核心网络2包括接入节点(卫星和地面)、接入网关30、认证代理40和应用网关50。代理40可以经由应用网关50与应用60交换数据62,并且直接利用应用60控制信息64。核心网络2的组件可以是分布式的并且通过通信链路通信。一些组件可能基于云。系统特别适于其中大多数接入节点是卫星接入节点的卫星通信系统,但是,应当理解,各种实施例可用于其他通信系统,包括具有卫星接入节点、空中接入节点和地面接入节点(包括移动地面接入节点)的各种组合,或这三者的各种组合(包括纯空中或纯地面接入节点)的通信系统。

如上所述,为了保护终端的身份,终端在传送的消息中不包括终端标识符,并且用通过使用终端密钥和nonce值生成的消息认证代码(mac)对消息进行签名,并且输出mac被包括在传送的消息中。然后,mac被接收器(特别是认证代理)用来验证消息是由注册的或已知的终端发送。这要求接收器或认证代理均知道用于生成mac的终端密钥和nonce。系统实现用于对所有终端密钥集进行分割的方法以及用于确定包含发送了接收消息的终端的终端密钥的搜索分区的补充方法。密钥空间的这种分割减少尝试用每个可能的终端密钥认证所接收消息的计算成本,从而允许执行受限搜索,由此使该方法在计算上更有效。要搜索的分区在此可被称为搜索分区。基于它是包含发送传输的终端的终端密钥的分区,它也可以被称为源分区。搜索(或源)分区的确定在接收侧执行,并且可以由诸如接入节点20本身的接收器执行,或者可以由操作地连接到接收器/接入节点的认证代理40或者接收器/接入节点的下游的一些其它模块执行。正如下面将讨论的,为了在这个过程中帮助认证代理(或其他接收器实体),在消息中包含分区识别代码(或字段)。为了方便起见,我们将此分区识别代码称为n位哈希,并且它可以由加密哈希函数或一些其他函数或方法生成。分区识别代码(或n位哈希)通常是消息帧中的单个字段,但可以理解为可以分布在多个字段上。用于生成n位哈希的方法取决于nonce是否包含在传输的消息中。在接收器侧,n位哈希被用于确定接收消息的搜索分区,并且,用于生成n位哈希的方法也可以被用于对所有终端集进行分区(例如,允许分区的预计算)。在一个实施例中,从终端密钥和nonce值(以及可选的其他信息,诸如终端id)的函数获得n位哈希,并且nonce不包括在消息中。取而代之,通过使用接收器已知或可导/可估的系统信息,或者通过使用传送器和接收器均已知或可导/可估的公共信息,确定nonce,或者,消息可以包括帮助接收器识别搜索分区的信息。在其他实施例中,nonce由终端生成并包含在消息中,并且根据传送器和接收器均已知的方法从终端id生成n位哈希。例如,终端id可以分为m个部分,即nonce的用于确定终端id的m个部分中的哪个部分用作n位哈希的预定义部分(终端和认证代理都知道)。一旦获得nonce,认证代理就可以对搜索终端进行分区并且使用n位哈希以确定搜索分区。通常,终端密钥还将被用于加密在消息中发送的消息文本(被称为密文),因此,识别终端密钥然后允许对接收到的密文进行解密,以允许恢复原始消息文本。但是,在其他实施例中,可以通过使用终端密钥的不同密钥加密消息文本,在这种情况下,在成功认证了消息由已知终端发送的情况下,密文可以被传递到知道用于加密消息文本的密钥(并因此可以解密密文)的下游系统或终端用户实体或应用。

图2是示出根据实施例的终端密钥的分割(或分组)的示意图。系统包括多个终端,并且各终端10由唯一终端标识符(id)12识别,并且具有用于对消息进行数字签名和可选加密的相关终端密钥k14。终端密钥和nonce被用于生成可用于对消息进行认证的消息认证代码(mac)。在本实施例中,终端密钥还被用于加密消息文本以生成密文,并且密文和mac被包括在传送的消息中。接收器测试候选密钥以确定它是否认证mac。在一些实施例中,终端id与终端密钥一起用于消息的加密和认证中。例如,在使用eax认证方法的实施例中,终端id可以被用作输入标题。因此,在这种情况下,终端id和终端密钥均被用于加密文本和生成mac,因此对于所接收消息的认证和解密是必需的。但是,由于终端密钥与终端id配对,因此一个的识别允许两者的识别。因此,为了方便起见,我们通常提及识别或使用终端密钥,但应理解,由于已知配对,这等同于识别或使用终端密钥和终端id。

在一些实施例中,mac的认证(或验证)返回二进制结果(真/假)。如果相同的终端密钥被用于生成mac并加密消息文本,则认证mac的该终端密钥被用于解密密文。在一些实施例中,作为该相同操作的一部分执行认证和解密(如果候选密钥不验证mac,则要么不返回解密文本,要么丢弃任何“解密”文本,因为它不是对原始消息文本的真正解密)。在使用与用于生成mac的终端密钥不同的密钥对消息文本进行加密的情况下,接收到的密文被传递到下游实体,用于由知道用于加密消息文本的密钥的实体进行解密。在本实施例中,终端id是l位字符串,并且终端密钥是x位长。通常l和x是2的幂,并且可以为相同(或不同)的长度。例如,l可以是128位,x可以是128位或256位。但是,如果可以支持系统内的唯一性,则可以使用其他合适的长度。这些通常由终端制造商创建和分配(尽管网络控制器可以执行该功能)。它们一起形成由终端10存储的(终端id、终端密钥)对。当终端在网络中被注册时,认证代理40存储(或操作地连接到)用于在网络中注册的终端的所有(终端id、终端密钥)对200的数据库242。另选地,认证代理可以能够从网络已知的信息计算或确定所有(终端密钥、终端id)对的集合。所有终端密钥的该集合被用于认证消息签名,以验证所接收消息的真实性和完整性,并通过(终端id,终端密钥)对识别传送消息的终端。认证代理还包括可以被配置为实现本文所述方法的实施例的一个或更多个处理器244。在一些实施例中,直接在接入节点(例如,卫星上或接收设备的下游)内执行该任务或认证代理的所有功能。

图7a是根据实施例的用于生成签名消息的(传送侧)方法700的流程图,图7b是根据实施例的用于确定终端id的相应(接收侧)方法710的流程图。方法700大体上包括nonce值701的生成。这可以使用终端已知的信息生成,或者它可以从密码哈希函数的伪随机源生成。在步骤702中,生成n位终端哈希。根据nonce是如何生成的,这可以用nonce和终端密钥的加密哈希函数生成,并且任选地用终端id(例如使用eax方法或变量的omac3k(nonce)函数)生成,或者它可以从终端id的选择位生成。在任选的步骤703中,消息文本也可以使用nonce和终端密钥进行加密,以获得称为密文的加密的消息文本。在步骤704中,通过使用nonce和终端密钥生成消息认证代码(mac),并且在步骤705中,组成和传送消息,这里,消息至少包括n位终端哈希、密文和mac。可以包括诸如标题的附加信息,但是终端标识符被省略。根据该方法,nonce可以包括在传送的消息中,或者可以从传送的消息排除。可以单独或一起执行加密消息和生成mac的步骤。在一些实施例中,基于密文的加密生成mac,并且n位终端哈希未经认证。在其它实施例中,生成mac,使得其可以被用于认证n位哈希和密文。例如,加密步骤703可以加密n位终端哈希和消息的连接,并且生成可以被用于对密文和n位终端哈希进行签名和认证的mac。在一个实施例中,在消息中仅包括mac的z-最高有效位。

图7b示出认证消息并识别发送接收消息的终端的终端id的相应的接收侧方法。诸如卫星接入节点的接收器接收包含n位终端哈希、mac和密文的传送消息711。然后,任意地从该消息或通过独立地确定由终端使用的nonce获得该nonce712。然后,接收器(或者通常是接收器中的或连接到接收器的认证代理)确定包含通过使用n位哈希认证mac的终端密钥的搜索分区713,并且在步骤716中搜索该密钥的搜索分区。这通常涉及在搜索分区中测试示教终端密钥,以确定它是否认证mac。如果发现认证mac的终端密钥,那么在步骤717中,我们可以通过使用(终端密钥,终端id)配对的知识识别终端id。在一个实施例中,对搜索分区中的所有终端密钥进行测试,并且仅当发现单个密钥时才执行步骤717。如果发现对消息进行认证的多个密钥,则丢弃该消息。在任选的步骤718中,假设执行相应的加密步骤703,通过使用终端密钥和nonce解密密文。可以同时执行或作为单独的操作执行步骤717和718中的认证和解密。然后,可以将解密的消息(或者如果未执行步骤718,则为密文)提供给另一个系统实体以供进一步处理(例如网关,以及最终的应用60)。

图7c表示图7b所示的方法的变更例。在本实施例中,通过首先通过计算各终端的n位测试值对终端进行分割并然后将共享相同n位测试值的终端分组以形成多个分区714,执行通过使用n位哈希确定搜索分区的步骤713。可以在接收消息(预分割)之前完成该分割。例如,可以从nonce、终端密钥和终端id的密码哈希函数获得n位测试值,因此,如果接收器知道将要使用的nonce值,它可以在消息到达之前对终端进行分割。在步骤715中,选择搜索分区作为包含其n位测试值与接收到的消息711中的n位终端哈希匹配的终端的分区。终端密钥的该预分割如图2所示。所有终端密钥(或终端id,密钥对)200的集合被分割210到多个分区220中,这里,各分区222包括使用本文所述的分割方法的终端密钥的非重叠组或子集。可以用数字分区索引221标记各分区222。可以是映射函数或映射关系的预定义的分割函数210可以对于终端10和认证代理40都是已知的,或者仅仅对于认证代理40使用至少终端密钥和/或终端id以分割终端。分区中的密钥数(我们称之为分区大小)不必相同。

在一些实施例中,分割函数210将所有终端密钥200的集合分割为两个分区。这可以是分割为搜索分区224,该搜索分区224包含(或预期包含)发送接收到的消息的终端的终端密钥以及包含所有其它终端的第二分区。将终端划分为搜索分区224和第二(非候选)分区可以基于肯定地包含到基于一些标准或概率阈值被确定为具有可能传送的消息的终端的搜索分区中,或者,划分可以基于终端基于同样基于一些准则或概率阈值无望具有传送的消息的那些终端肯定地排除到第二分区中。例如,可以通过所有终端集合(或其他迭代搜索)执行循环,使得各终端被测试以确定它是否是候选终端,并且,如果是,则将其添加到搜索分区中。一旦循环完成,就通过搜索分区中的终端执行搜索,直到发现认证密钥。搜索可以是完整的搜索(即测试搜索分区中的所有密钥),以确保发现单个认证密钥。在其他实施例中,在通过使用两阶段测试方法通过所有终端集合迭代或循环的同时隐式地执行分割。所有终端的集合被迭代(例如循环)通过,并且第一候选测试确定终端是否可能是传送终端(即候选终端)。只有通过该测试,在该候选终端上执行的认证测试才是在计算上更昂贵的。另选地,第一候选测试可以确定终端是否绝对不是传送终端,在这种情况下,跳过第二认证测试并测试下一终端(即,该方法类似于bloom滤波器方法)。当第一候选测试阶段的计算成本(即时间和/或资源)小于第二认证测试阶段时,该方法是有效的。

图7d表示作为图7b的方法的变型例的识别终端id720的方法,在该图中,在对所有终端集合的搜索期间隐式地(即并发地或动态地)完成分割和认证测试。步骤721和722与步骤711和712相同,并且在步骤723中,通过选择所有终端集中的下一个终端执行穿过所有终端集的环路。对于各选择的终端,为终端724计算n位测试值,并且在步骤725中,将其与接收到的n位终端哈希进行比较。如果它们不匹配,则循环迭代回步骤723,并且选择下一个终端。但是,如果n位测试值与接收到的n位终端哈希匹配(是),则执行认证测试以确定终端密钥是否在接收到的消息726中认证mac。如果测试失败(密钥不认证mac),则循环迭代回步骤723,并且选择下一个终端。一旦认证mac的密钥被识别(是),就可以停止搜索(循环退出),并且与之前一样,通过查找与认证密钥配对或相关的终端id(例如从数据库242)识别终端id(727)。然后,密文可以被解密或提供给另一个系统实体以供进一步处理(例如网关,最终是应用60)。可选地,不是在发现第一认证密钥之后终止搜索,而是在步骤728中存储认证终端密钥,并且搜索继续通过剩余的终端(即回到步骤723),直到测试了所有可能的终端密钥。然后在步骤729中,执行测试以确定是否仅发现一个对mac进行认证的终端密钥。如果只发现一个密钥(是),则在步骤727中验证消息并发现终端id。但是,如果发现多个认证密钥(在步骤729中为否),则舍弃消息730。

在其他实施例中,不同分区的数目远远大于2,包括成百上千个分区。尽管在一些实施例中所有分区的大小可以相似或相同,但是分区的大小也不需要相同。优选地,选择分割方法以确保搜索分区的大小远小于总密钥池的大小,以使得能够在认证阶段执行有效的密钥搜索。例如,具有近似相等大小的分区并且假设所有终端密钥预先分割,则效率增益大致等于分区的数量(例如,100个相等大小的分区代表需要搜索的终端密钥的数目减少100倍,从而使搜索效率提高100倍)。在许多情况下,不同分区的数量是2的幂,或者略小于2的幂,以有利于二进制标记和计算处理。例如,在图2所示的实施例中,存在2n个分区(或组或子集),并且预定义映射函数220将各终端分配给2n个分区中的一个。例如,在这种情况下存在8个分区(n=3),并且传送终端10(id*,k*)被映射或分配到第p分区224,在这种情况下,该第p分区224是第4分区(二进制表示100)。该第p分区224是搜索分区,并且包括包含传送终端226的密钥的缩减的终端密钥集合。对该组224执行密钥搜索,其中,测试(即使用)各密钥以查看它是否认证所接收消息的mac并解密密文。一旦识别出认证mac的密钥k*,就可以停止搜索,并且通过查找与密钥配对(或关联)的终端id(例如数据库242中的配对226)识别终端idid*。另选地,对搜索分区中的所有终端密钥进行测试,以确保密钥k*是搜索分区中的认证mac的唯一密钥。

在一些实施例中,通过任意地使用认证代理已知或可估计(或可导出或可确定)的系统信息或传送器和认证代理已知或可导出或可估计的公共信息,执行获取nonce。例如,在一些实施例中,nonce被省略,但由终端和认证代理单独确定,并且预定义的分割函数使用nonce和终端密钥以生成n位哈希。例如,n位可由omac3k(nonce)获得。认证代理可以确定nonce并将预定义的分割函数应用于所有终端密钥以分割它们。然后,基于消息中的n位哈希识别搜索分区。系统信息可以是终端的历史传输模式,诸如空间、时间或空间-时间。在这种情况下,基于传送发源的时间或地理区域的接收到的传送的参数和/或诸如传送器位置或诸如传送器什么时候或者如何传送的配置参数的传送器参数,识别搜索分区。这些参数分割终端的历史传输模式,并且,任何给定传输的细节允许从多个分区识别搜索分区。如上所述,认证代理存储(终端id,终端密钥)对的数据库242。该信息可以由认证代理存储在数据库242中,或者它可以由另一实体存储,并且使得可用于认证代理进行分割。为了涵盖后一种情况,我们将使用对认证代理的广泛解释涵盖这种实体,即认证代理可以分布式实体并且使用与其他系统实体的共享物理资源或数据库。在一些实施例中,认证代理数据库242被配置为存储关于终端传输的附加信息,诸如一些时间帧中的最后传输或最后n个传输的记录,或者可选地存储各终端的一些配置参数,诸如对终端可以什么时候或者如何传送(或重传)的的任何限制。然后,认证代理可以使用该信息以对终端进行分割。可以通过使用隐式分区和搜索即遍历所有终端的集合迭代并且执行分区和搜索测试实现这些实施例,或者,分区的数量可以大于2,并且通常远大于2,诸如几100、几1000或甚至100000。大小取决于终端的数量和用于实现效率而不必搜索所有终端密钥的精确分割标准。

在一个实施例中,使用历史空间或时空模式以例如基于地理相关信息分割终端。例如,终端密钥可以基于终端在某个时间窗口上的最后已知地理位置被分割。例如,这可能是最近的传输(即时间窗口截止到当前时间),也可能是最近一周的传输,或者截止到某个参考时间点,诸如前一天的结束(0:00utc)。如果接收到传输的地理区域的估计可用,则搜索分区是包含其最后已知位置在估计地理区域内的终端的分区。在本实施例中,将整个系统地理足迹分割为多个地理分区,这里,各分区覆盖不同的(不重叠的)地理区域。整个系统的地理足迹可以是整个全球,或者是全球的某个区域,或者是支持通信系统的国家或一组国家。基于各终端在一些时间帧(最近24小时或一周内的最近传输)上的最后已知位置,或基于终端到截止(或阈值)时间点(0:00utc)的最后传输,将终端分配给这些地理分区。然后,接收器确定传输的地理位置以及哪个分区包含该地理区域,并对分配给该分区的终端执行密钥搜索。在一些实施例中,地理分区的尺寸(或边界或大小)基于终端的可能分布的估计和/或卫星足迹的大小或位置估计中的误差。优选地,每个地理分区包含相似数量的终端。

在另一个变更例中,不是将终端预先分配给预定义的地理分区,而是可以基于接收到的传输时间和期望在该传输时间包括传送器的区域的尺寸(边界)完成分割。在该方法中,记录传输时间,并对期望包含传送器的区域进行估计。如上所述,这可以是在传输时对卫星足迹的估计、或者基于接收信号的信号处理(例如基于到达角的估计)的足迹或者由估计位置上的误差界定义的区域。然后,所有终端的集合被分割为例如基于各终端在时间帧中或直到截止时间点的最后已知位置期望在区域中的那些终端以及不在区域中的那些(即搜索分区和第二或其他分区)。然后在期望处于区域(即在搜索分区中)的终端上执行终端密钥搜索。

在另一实施例中,可以基于终端的历史传输模式(诸如时间或时空模式)执行分割。例如,可以基于传输频率对终端进行分割,因此基于频率的分割确保首先搜索最频繁传输的终端,然后搜索频率较低的终端。在另一实施例中,可以对终端何时可以传送施加限制。例如,一些终端可以被配置为仅在一周中的某些天传送,因此,可以基于该已知信息对终端进行分割。在另一个实施例中,终端可被配置为将传输隔开,例如,使每个卫星通过或每天仅进行一次传输,或每整数次的通过或天数一次(每5个通过1次,或每5天1次)。在这种情况下,终端可以基于它们上次被传输的时间被分割。因此,可以将终端分割为可能传送的那些以及基于其先前传送的时间包含排除的终端的分区。在其他实施例中,终端可以使用概率阈值,这里,传送的概率随时间而增加。例如,可以通过将传送概率设置为零并然后随着时间增加传送概率p,防止终端在24小时内再次传送。例如,p=0.01*t-0.24,这里,t是自终端上次传输以来的时间(以小时为单位)。通过知道终端使用的传输函数的概率和自上次传输以来的时间,可以基于在传输时间(或传输时间的小时)的当前传输概率分割终端的集合。例如,分区可以对应于概率范围(例如=1、0.9~1、0.8~0.9等),并且搜索顺序通过最可能分区进展到最不可能分区。

另外,时间数据可以与空间数据组合。例如,终端的最后已知位置,与对终端何时可以传送的限制组合,可被用于基于位置和最后传送时间将终端分割为可以传送的终端和排除在传送之外的终端。另选地,可以按照可能性的顺序(即在地理区域中,首先是高传送概率)搜索分区。在其他实施例中,例如通过使用概率阈值以决定是否传送到特定卫星,终端还可以被限制为仅传送到星群中的特定卫星,或者被配置为优选传送到特定卫星。因此,可以基于哪个卫星接收传输分割终端,并且终端可能已经传送到接收卫星。

在另一实施例中,系统可以使用人工智能或机器学习系统以学习终端的集合的传送模式。例如,第三方终端制造商可以获得制造限于每天仅发送两条消息的终端的许可。第三方终端制造商可以将终端配置为每天始终在同一时间或者只在特定的时间窗口内传送这两条消息。可能不要求第三方终端制造商关于终端什么时候被配置为传送通知认证代理(或网络管理员),而是认证代理(或接收器侧系统)可以使用ai或机器学习系统以研究终端随时间的传送,并且确定传送模式(即哪些终端在某个时间帧内总是传送)。这些学习到的传送模式可以被用作用于分割终端的基础。

如上所述,在一些实施例中,消息包括帮助接收器识别搜索分区的信息,诸如分区识别代码。分区识别代码可以是纯文本或二进制标识符,也可以是可以被用于识别搜索分区的n位哈希。分区识别代码可以是所接收消息中的单个字段,或者通过组合所接收消息中的多个字段而形成。在一个实施例中,分区可以基于使用预定义地理分区的地理位置。在该实施例中,终端确定其近似位置并传送近似位置作为分区识别代码。这可能是使用传感器(gps接收器或类似设备)或使用附近实体的位置。如果该位置以高精度已知,则可将其截断或舍入到近似位置。使用近似位置减少了所需的消息大小(即要包含在消息中的位数),并且还避免识别终端的精确位置(减少潜在的被盗或损坏)。例如,近似位置可以精确到1km、10km或者甚至100km。精度可以基于系统参数和预期的终端分布和密度被确定。另选地,当地理分区被固定并且为终端所已知时,终端可以识别其所在的地理分区,并且传送该地理分区的分区标识符,然后接收器可以使用该分区标识符。这些实施例基于这样的假设,即终端是固定的,或者自其上次传送以来没有移动超过1个或2个地理分区。如果终端实际移动超过预期,或者终端无法确定其位置,那么终端可以传送指示大的移动或未知位置的特殊分区识别代码,该特殊分区识别代码将向接收器(或认证代理)传送指示需要完整的终端密钥搜索的信号。

在一些实施例中,终端和认证代理(或其他接收侧核心网络实体)均独立地确定不包括在传送中但终端和接收器可以独立地确定的nonce值。例如,nonce值可以基于接收卫星的标识符和当前轨道号。在另一个实施例中,少量附加的非识别数据包含于消息中,并且被用于识别分区,或者以其他方式减少认证各消息要搜索的终端密钥的数量。可以调整附加数据的大小以控制计算复杂度。另外,描述了允许制造商生成唯一(终端id、终端密钥)对并使这些终端安全地在网络中注册的方法。

现在参考图2~图7d描述用于从终端和接收器均确定nonce的传送消息确定终端id的方法的实施例。在本实施例中,消息包含诸如7位哈希的n位终端哈希的形式的信息,该信息被用于识别搜索分区并减少要搜索的终端密钥空间。预定义的分割函数210是预定义的映射函数,该映射函数允许基于终端哈希和nonce或从终端id的选择位获得n位测试值p。终端(在所有终端的集合中)基于n位值被分割为2n个组(或子集)。即,各分区222由具有相同n位值的终端组成,并且该值被用作分区标签221。在传送之前,终端使用预定义的分割函数(或映射关系)以计算n位终端哈希,并且与加密的消息文本(密文)和消息认证代码(mac)一起包括在传送中(例如在终端哈希字段301或311中)。因此,n位终端哈希充当分区识别代码。

卫星或接入节点接收传送的消息并且选择具有匹配的n位测试值p的分区(或组)224,从而减少终端密钥的搜索空间(即,如果分区大小相等,则为总搜索空间的1/2n)。对该组224执行密钥搜索,其中,使用(或测试)各密钥以查看其是否认证mac。一旦识别出认证mac的密钥226,就可以停止搜索,并且通过查找与该密钥相关联或与之配对的终端id(例如来自数据库242)识别终端id。另选地,继续搜索直到测试搜索分区中的所有密钥,以确保只有单个密钥验证mac。如果多于一个的密钥对mac进行认证,则可以舍弃消息。

在一些实施例中,aes-eax被用作底层加密/认证方案(bellarem.,rogawayp.,wagnerd.(2004)theeaxmodeofoperation.in:royb.,meierw.(eds)fastsoftwareencryption.fse2004.lecturenotesincomputerscience,vol3017.springer,berlin,heidelberg,完整版本见:http://www.cs.ucdavis.edu/~rogaway/papers/eax.html)。aes-eax使用aes-ctr进行加密,与cmac(构建于aes块密码上)一起用于认证。图6a和图6b是(分别)使用eax-aes加密方案的加密和解密算法,图6c是根据eax-aes加密方案使用noncen和消息标题h的消息m的加密的示意图。这生成称为密文ct(=c||t)的加密消息文本和消息认证代码mac。在这些图中,omac指的是一密钥mac算法或函数,ctr指的是计数器模式加密算法或函数。如图6c所示,aes-eax以消息标题h为输入,并且生成用于加密和认证方法中的加密标题。在一个实施例中,终端id被用作消息标题,因此,当被用于加密和认证消息时,终端id不被传送。在这种情况下,终端id也可以在接收器侧被用作验证和解密的一部分。但是,由于终端密钥和终端id是成对的,因此其中一个的知识意味着另一个的知识(即两者的知识)。但是,存在可以使用的许多替代性的方案,包括eax2、gcm或ccm。

即,该方法包括卫星(或接入节点)接收从终端传送的消息。所接收的消息包括n位终端哈希、消息认证代码(mac)和加密消息文本。包含于消息中的mac可以是由加密/认证方案生成的mac的z-最有效位。在一个实施例中,mac是eaxmac的30个最有效位。终端密钥k(或终端密钥和终端id)被用于加密消息文本并生成mac,但是终端id或终端密钥都不包括在所传送的消息中。消息或至少接收到的n位终端哈希、消息认证代码(mac)和加密消息文本被提供给认证代理。获得nonce值,并且认证代理(或相关联的网络组件)被配置为计算(例如使用配置的处理器244)终端的n位测试值。该值是通过将预定义的分割函数或映射关系应用于终端标识符(id)而获得的。对于给定的终端,代理然后确定n位测试值是否与接收到的n位终端哈希匹配。如果n位测试值与接收到的n位终端哈希匹配,则代理可以确定(或检查)终端密钥和nonce是否成功验证了mac。如果终端密钥成功地验证了mac,那么加密消息文本可以被解密(如果它是通过使用终端密钥被加密的)。然后,可以将终端id和解密的消息文本(或密文)提供给认证代理上游的系统实体。对多个终端中的每一个执行计算和确定步骤,直到发现终端具有成功认证所接收mac的终端密钥。

这些测试和确证操作可以被迭代执行(即,在识别各匹配终端时,测试它以查看它是否确证mac),或者可以作为单独的步骤执行它。即,首先对系统中的终端中的每一个执行计算步骤,使得形成2n个(测试)组。一旦获得这些,确定步骤就包括选择具有与接收到的n位终端哈希匹配的n位测试值的组以及对组中的各终端测试各密钥直到发现成功地认证接收到的mac的终端密钥。

现在描述两种方法,这两种方法基于用于加密消息的nonce值是包含在传送的消息中还是在传送的消息中被省略(不包含)而变化。在终端和认证代理都可以独立地确定(或获得)nonce的实施例中,通过使用诸如密码哈希函数的预定义的分割函数210从终端密钥和nonce(可能还有终端id)确定n位哈希。在从伪随机源或由终端以认证代理无法确定的方式生成nonce且nonce包含在消息中的实施例中,然后,根据终端和认证代理均知道的预定义的分配函数210,从终端标识符的选定位获得n位终端哈希。可以使用单个位指示符字段(302,312)以区分这两种方法以及认证代理应该使用哪种分割方法。例如,指示符字段对于方法a可以被设定为“0”并且对于方法b为“1”(反之亦然)。如果可以使用多个分割方法,则可以使指示符字段变宽(根据需要)。在包含指示符字段的系统中,消息代理可以使用该指示符字段的值以确定应使用多个预定义分割方法中的哪个预定义分割方法以分割终端密钥(即使用哪个认证方法)。在只使用其中一种方法的系统中,可以省略或从包中去除该指示符位(因为终端和代理均知道预定义的映射函数)。

在一种方法中,nonce由终端和接收器(例如使用量化的时间戳或轨道号)分别确定,并且从传送的消息中省略。在一个实施例中,通过在关于消息的传送时间确定的时间确定计数器的当前值,获得nonce。计数器关于预定的参考时间(即零时间)和可以由终端和代理独立地确定的增量周期或事件进行计数。例如,终端可以存储当前值,并且可以在组装消息包时查找该值,该组装通常在紧挨着传送时间之前。在另一实施例中,可以在预期的传送时间确定计数器的值。另选地,可以在规则的参考时间计算它(例如每10分钟)。

在一个实施例中,计数器基于在消息的估计传送时间计算的传送器10传送到的卫星(即接收卫星)的卫星轨道参数,其中,参考时间是参考epoch,并且增量点是预定的轨道参考点。在另一个实施例中,可以根据一些方案使用系统中的一些其他卫星,而不是使用传送器传送到的卫星的卫星轨道的参数来确定参数的值。例如,如果存在24颗卫星,那么与传送时的utc小时相对应的卫星id可以被用作使用轨道参数以确定计数器值的卫星。在一个实施例中,轨道参数是轨道计数,并且可以根据卫星通信网络中的卫星的星历数据换能确定。这在图4a中示出,图4a是在低地轨道上环绕地球404的卫星20的卫星轨道402的示意图,该卫星20在时刻t接收来自终端20的传送。在这种情况下是每次卫星越过赤道时的参考点410被用于使计数器306递增(在这种情况下,计数器为1001=第9轨道)。epoch时间可以被设定,诸如卫星的发射。其他参考点是地面站或经纬线。在轨道星历数据发布到终端且终端具有与网络时间同步的时间基准的情况下,可以使用该方法。例如,卫星可以广播可以由终端存储的星历数据。在许多情况下,同步可能相对粗糙。在本实施例中,nonce是卫星id和计数器(轨道号)306的连接。如果下行链路可用,则卫星可以选择并广播被发射终端使用的nonce。

在未传送nonce的本实施例中,预定义分割函数(或映射关系)包括计算nonce12的预定义哈希函数422和至少终端密钥以及然后选择nonce424的预定义哈希的预定义n位部分426作为终端哈希301。预定义哈希函数优选为被用于获得可从中选择预定义的n位部分426的输出哈希424的密码安全伪随机数生成器(csprng)。在一个实施例中,预定义的哈希函数是(nonce),这里,k是相应的终端密钥。在一个实施例中,预定义的n位部分是输出哈希的第一或最后7位。在图4b所示的实施例中,7位终端哈希301具有值1001011。在本实施例中,mac由eaxmac的30个最有效位给出,密码文本是由eax生成的aes-ctr加密块,nonce由传送器和接收器通过使用(noradid||orbit#)推导出,并且,终端哈希是通过诸如omac3k(nonce)的csprng生成的短暂终端哈希的最后7位。重放攻击可以在同一轨道内被执行,这只增加冗余(这是好事)。本实施例使终端id完全隐藏,并允许使用短消息以减少每条消息的标题开销。在本实施例中,n位终端哈希用作分区识别代码。

在另一个实施例中,nonce314包含于传送的消息中(参见图3b),使得它对接收器可用。可以通过终端从伪随机源生成nonce。在一个实施例中,nonce由先前传送的加密计数器或mac的丢弃位、当前消息的密文或mac、计数器或密码安全伪随机数生成器(csprng)生成。本实施例如图5所示。在本实施例中,对终端进行分割包括通过使用接收到的nonce和终端标识符作为预定义分割函数的输入计算各终端的n位测试值以及使用相同的n位哈希对终端进行分组,使得将具有相同测试值的终端放在同一分区中。识别搜索分区包括选择具有其n位测试值与接收到的n位哈希匹配的终端的分区。预定义的分割函数通过以下方式从nonce和终端标识符生成n位测试值:

将l位终端标识符12分割为m个n位非重叠部分502;

根据2k≥m的要求,计算nonce值314的预定义k位部分506的值j模m,并选择l位终端标识符的j模mn位部分

然后,终端可以被分配到包含共享相同n位测试值的终端的分区(即l位终端标识符12的j模mn位部分)。然后,可以通过选择包含其n位测试值与接收的n位终端哈希311匹配的终端的分区,识别搜索分区。然后可以测试搜索分区中的终端,以查看它们是否对消息进行认证。在通过遍历所有终端的集合同时执行分割和搜索的情况下,如上所述计算n位测试值,并且该方法通过以下过程进行:

确定n位测试值(终端标识符的第j个n位部分)是否与接收到的n位终端哈希311匹配。如果存在匹配,则测试密钥和nonce以查看它们是否对mac进行认证。

非重叠部分不需要相邻,也不需要有规则的间隔。在这种情况下,终端和代理中的每一个需要存储各部分的位置(例如起始位)。nonce314的最后k位506具有值j。2k≥m的要求确保可以使用所有可能的部分,并且,将模m应用于值j(j%m)确保返回的值范围从0到m。如果m是因子2,则可以省略模步骤。在本实施例中,nonce值的预定义k位部分是nonce的最后k位部分,但它可以是第一k位部分,或者是其他部分,前提是nonce值中的位置已知。在一个实施例中,nonce是16位nonce值,n是最后7位。如图5所示,值(或j%m)是第5部分,并且具有值100=4。终端标识符的n位宽第j部分的值范围为0到2n-1。因此,一旦知道要检查的标识符的部分(即第j部分),所有终端的集合可以被分割为2n个分区或组510,使得各分区(组)由具有相同第j部分值的终端构成,但各分区(组)具有不同的密钥。在这种情况下,终端标识符的第j个n位部分508具有与接收到的n位终端哈希311匹配的值p(100=值4)。然后,可以搜索第p组514以寻找认证mac消息的终端密钥516,从而可以确定传送消息的终端的终端标识符。但是,如果使用当前消息的加密消息(密文)以确定从n位哈希的终端id选择的位,则mac可以被用于对加密消息和n位哈希进行签名(例如,通过从加密消息和n位哈希的连接计算mac)。

在另一实施例中,可以在接收消息之前执行预分割步骤。在本实施例中,执行m个分割。通过选择各终端标识符的第j个n位部分并且使用其终端标识符的相同第j个n位部分对终端进行分组以形成2n个分区,获得m个分割的第j分割。对于j=1…m执行该操作。然后,在接收到消息时,我们可以计算nonce的预定义k位部分的j模m(同样要满足2k≥m的要求)。我们可以将搜索分区识别为m个分割的第j个分割中的分区,该分区由其终端标识符的n位部分与接收到的n位哈希匹配的终端密钥组成。

在本实施例中,预定义的分割函数使用传送的nonce的一部分以选择终端标识符的一部分,并且该部分的值被终端用作消息中的n位终端哈希。即,函数定义使用nonce的哪些位以确定使用终端标识符的哪些位以生成n位哈希。此外,终端标识符的该部分的值被用于将所有终端的集合分割为2n个搜索组。因此,本实施例使得能够减少搜索空间以允许在不传送完整终端id的情况下识别传送终端。虽然传送了终端标识符的一小部分,但是,即使当在给定的终端上重复时,也没有明显的方式将传送的nonce与终端哈希或终端(id,key)对相关联。因此,在本实施例中,具有nonce的n位终端哈希充当分区识别代码。在nonce包括于消息中并且n位哈希是终端id的n个选定位(使用一些映射函数210)的这些实施例中,仍然可以通过使用上面描述的分割方法(诸如使用历史空间(例如地理)、时间或空时模式)或者卫星的轨道计数/参数分割终端。

选择哈希的确切大小(位数)以获得可接受的计算开销以认证消息。可以减小nonce的大小,代价是增加给定终端密钥的nonce冲突率(即多个终端密钥认证同一消息的机会);例如,11位以每天4条消息的传送率提供1.4年的唯一nonce。mac的大小以受限于生日问题的性能确定伪造消息和检测phy错误的能力。在刚刚描述的实施例中,mac是30位mac。注意,认证冲突可能会发生,因为在代理中,多个密钥可能能够对给定的消息进行“认证”。如本文所述,在一些实施例中,对搜索分区中的所有密钥执行用于认证密钥的搜索,并且接收到的针对多个终端密钥进行认证的包将被拒绝,从而有效地提高包丢失率。在垃圾(如随机噪声)包可能被给定密钥“认证”的情况下,也可能发生假认证。伪造或错误解码的包可以针对给定的终端密钥进行认证。通过增加mac大小,发生此事件的可能性降低。因此,可以选择mac的大小以最小化假认证的概率。在伪造的情况下,敌对的参与者具有有效的mac,并且生成恰好具有相同mac的消息。通常,这被分析为“生日攻击”。同样,更大的mac将降低伪造成功的概率,并且,可以根据系统要求选择mac长度。

上述实施例使用加密方案(例如aes高级加密标准)以隐藏终端的数据和身份。因此,在不知道特定终端加密密钥的情况下,识别来自该终端的传送需要破坏加密协议(即破坏aes)。但是,上述方法可以增加计算复杂度。例如,当与不尝试掩盖终端识别的实现相比时,更多的位可能需要被专用于终端识别。在一些实施例中,消息的解密也需要使用分区中的每个终端的密钥进行解密,直到实现认证。当终端的数量增加到超过100万个左右时,这在计算上会变得令人望而却步。例如,在实现工业标准openssl库的2.50ghz下运行的英特尔核心i7-6500ucpu可以在约1微秒或每天约1011条消息下解密消息。如果存在t个终端,则每个消息平均需要执行t/2次解密尝试。如果各终端平均每天传送10条消息,那么平均每天将执行5t2次解密尝试。观察到计算复杂度随着终端数量的平方而增长。如果存在t=106个终端,则需要约5t2/d≈50个中程膝上型计算机。使用amazonwebservices(aws),这会每年花费约25k美元。如果存在十亿个终端(t=109),那么我们的系统将需要5t2/d≈50×106个中程膝上型计算机,每年花费约25b美元。

因此,描述可以降低计算复杂度、同时也增加安全性的进一步的方法。在该方法中,通过用共享加密密钥集对终端进行分割降低计算复杂度。在该方法中,终端集合如上面描述的那样被分割为p个分区,并且各分区都被分配加密密钥。即,各终端现在具有两个密钥:如上所述的它自己的唯一密钥和它所在分区的密钥。终端现在使用两个密钥进行加密,即,它们:

1.首先用它们的唯一密钥进行加密,从而生成比方说τ2位的mac;以及

2.用它们的分区密钥加密,从而生成比方说τ1位的另一mac(称为分区mac或pmac)。

两个mac连接在一起,使得mac位的总数为τ=τ1+τ2。我们进一步注意到,实际上不需要加密两次,通过只使用唯一密钥加密可以节省一些计算。只需要生成mac位τ1,但是不需要使用分区密钥进行实际加密。

要了解为什么以这种方式使用两个密钥有助于了解接收器如何解密和认证消息。接收器完成以下过程:

1.尝试用各分区密钥和mac的第一个τ1位进行认证;

2.舍弃未认证的分区中的终端;

3.尝试通过使用mac的剩余τ2位用所有剩余终端的唯一密钥进行认证;

4.如果单个终端密钥认证,则该终端被视为是传送器。

在不认证的分区被舍弃的步骤2中可以看到计算上的保存。这种方法的优点在于,分割是通过使用mac加密完成的。攻击者为了确定传送来自哪个分区需要破坏加密(即破坏aes)或获得分区密钥。

该方法描述了使用单层分区的简单情况(例如,如图2所示)。在该系统中,认证代理40知道所有分区密钥集,并且各终端知道其所在分区的分区密钥。在本实施例中,n位哈希是从搜索分区(即包含终端密钥的分区)的分区密钥生成的分区消息认证代码(pmac)。识别搜索分区包括对认证接收到的pmac的分区密钥搜索分区密钥集。因此,该消息包括如上面那样传送终端的mac以及传送pmac(作为n位哈希)。这因此降低计算复杂度,同时,由于n位哈希是从密码函数获得的pmac,因此也提供了更加安全的系统。

上述实施例可以被进一步扩展,以通过使用分区的层进一步降低计算复杂度。从概念上讲,对于各分区,我们再次进行某些次数的分割,以此类推,直到发现包含终端密钥的小集合的小分区。在一些实施例中,分割可以继续到分别包含单个唯一终端密钥的分区的集合。现在,各终端现在具有d个密钥的相关列表:d-1个分区密钥和1个唯一终端密钥。现在存在连接在一起(或以某种已知方式排序)以形成n位哈希的d-1个标记位τ1、τ2、…、τd-1(例如d-1个pmac)。从概念上讲,n位哈希和mac字段可以被组合,因此mac是d-1个pmac加上终端mac。

因此,在本实施例中,分区被分组为分层的分区层,例如树结构。即,各分区具有关联的分区密钥,并且n位哈希是在从根节点到叶节点遍历树的搜索路径中从各层上的各分区密钥生成的各分区消息认证代码(pmac)的有序组合。叶节点就是搜索分区(即包含终端密钥的分区)。识别搜索分区包括通过对认证与从有序组合确定的层相关的接收pmac的分区密钥在树的各层上搜索分区密钥集,遍历树。分区密钥认证与叶节点层相关联的接收pmac的叶节点是搜索分区。在另一个变更例中,除叶节点分区之外的各分区具有相关联的分区密钥,并且叶节点分区分别包含单个终端密钥。在本实施例中,识别搜索分区包括通过对认证与从有序组合确定的层相关联的接收pmac的分区密钥在树的各层上搜索分区密钥集遍历树,直到获得叶节点的集合。搜索分区从而是终端密钥认证终端的mac的叶节点分区。在这些实施例中,与形成n位哈希的分区密钥相对应的pmac位τ1、τ2、…、τd-1(如果各pmac是p个位,则n=p(d-1))。有序组合可以是通过从根节点到叶节点遍历树获得的顺序,并且n位哈希是搜索路径中的各pmac到搜索分区的连接。图7b概述了终端侧方法,其中步骤713包括遍历树以发现搜索分区。

图8是示出树结构840中的分区的分层分组的示意图。在本实施例中,树具有三个级841、842、843。注意,该树是二进制树,这里,各节点有两个子节点,但在其他实施例中,各节点可以有多于两个的子节点(或者甚至单个子节点)。在本实施例中,树是具有根节点800的二进制树,在第一级841上有两个节点801和802,在第二级842上有四个节点811、812、821和822,在第三级843上有八个叶节点831、832、833、834、835、836、837和838。第三级843上的各叶节点包括具有多个终端密钥的分区222(对应于图2中所示的分区222的单层)。节点中的每一个具有形成集合{[k1,k2]、[k11,k12,k121,k122,k211,k212,k212,k211,k212,k221,k221,k221,k221,k222]}的相关联的分区密钥854。该集合是认证代理40所知道的并且被存储在数据库242中,或者可以从存储在数据库242或类似存储实体中的信息导出。在一个实施例中,认证代理存储主密钥,并且,从使用主密钥作为种子的加密安全伪随机数生成器获得密钥集合。通过沿着路径844将各层的分区密钥851852853从根节点连接到作为搜索分区224的叶节点835(即包括终端密钥226的分区),形成n位哈希850。因此,n位哈希850是:(mac(k2)、mac(k21)、mac(k211)。因此,在pmac被连接并且各pmac是p位的实施例中,通过通过从n位哈希取得第一p位851获得第一pmac并且确定第一级分区密钥[k1,k2]中的哪一个认证pmac(在这种情况下是k2),执行搜索。然后,我们通过从n位哈希取得下一p位852并且确定第二级分区密钥(k11,k12,k21,k22)中的哪一个认证第二pmac(在这种情况下为k21),获得第二级pmac。此外,由于这是二进制树,因此我们实际上只需要测试右边的分支[k11、k12]。然后,我们通过从n位哈希取得最后的p位853并且确定第三级(叶节点)分区密钥[k111,k112,k121,k122,k211,k212,k221,k221,k221,k221,k222]中的哪一个认证第三级pmac(在这种情况下为k211),获得第三级pmac。此外,由于这是二进制树,因此我们实际上只需要在分支[k221,k212]上具有两个密钥。因此,我们发现了搜索分区224,并且可以针对认证mac的终端密钥226搜索它。

该树使得能够通过密钥集合进行概率搜索,使得期望次数的解密尝试具有顺序o(logt)、o(log2t)或o(tα),这里,α<1取决于树的构造方式和分配给终端认证和识别的位数。因此,可以使得单位时间(例如每天)执行的解密尝试次数随着终端数量的增加而增加,比如o(tlogt)、o(tlog2t)或o(tα+1)。从终端的角度来看,要加密消息,终端现在必须使用不同的密钥对经过认证的加密方案(例如aes)执行o(logt)迭代。因此,这要求各端存储o(logt)密钥。但是,在实际实施例中,这并不重要。例如,在一个实施例中,各终端存储20个密钥并且各密钥长16位,因此存储20个密钥只需要320位内存。另外,认证所需的位数通常较大。位数取决于构造的树。通常,导致较少计算操作的树需要更多的位。

我们可以正式评估计算复杂度。我们建造具有t片叶子的树,每个终端一片叶子。我们为树上的各边缘分配加密密钥。各终端沿着将其叶子连接到树的根节点的路径具有密钥。为了简单起见,我们假设这些路径长度是相同的,即,每个终端出现在相同深度d的叶进揶上,因此,各终端被精确地分配了d个密钥。在使用二进制叉树的简单情况下,我们将得到使k1,t,k2,t,...,kd,t是分配给第t终端的d个密钥,其中,k1,t被分配给连接到根节点的边在即树中的深度1中,k2,t分配给深度2,依此类推。终端将消息m加密到由以下递归定义的密文c0中:

ck-1=eax(kk,t,τk,ck),k=1,...,d

这里,cd=m,并且,τ1,...,τd是依赖于深度的标记位序列。该序列对于每个终端是相同的。注意,加密相当于使用不同的密钥和可能不同数量的标记位应用经过认证的加密方案d次。用于认证的标记位的总数是τ1=τ2=…=τd。在最简单的情况下,选择τ1=τ2=…=τd,但我们不会在下面的内容中假设这一点。

我们现在描述解密的过程。设k1为连接到树的根节点的密钥集,即分配给深度1的边缘的密钥集。对于深度为l的密钥k,用a(k)表示其祖先密钥即通过节点连接到深度为l+1的k的密钥集。密文c的候选解密消息的集合由decrypt(c,k1,1)给出,这里decrypt是由递归定义的集值函数:

decrypt(c,k,l)=∪k∈kdecrypt(deax(k,τl,c),a(k),l+1)(1)

并且,这里,为空集。实际上,该函数可以实现为通过密钥树的深度优先搜索。注意,递归迭代直到l=d,在该点上,出现在并集内的密钥k连接到树的叶子并且相应的祖先集合a(k)为空。因此,

当l>d时,

现在我们分析该深度优先搜索的计算复杂度。为了简化分析,我们进行以下假设:

1.该图是平衡的,即,对于小于d的每个密钥k,祖先数|a(k)|是相同的。我们将在下面用a表示祖先数。将我们的分析推广以在度|a(k)|界定在常数以下的更一般情况下界定复杂度是简单的。

2.计算复杂度由deax函数控制,因此对deax函数的调用次数进行计数就足够了,也就是说,计数解密尝试次数就足够了。

3.如果c不是密钥k的有效密文,则deax(k,τ,c)具有错误认证的概率2,否则将以概率1-2返回invalid。

这些假设中的最后一个对于各密钥k促成随机变量vk的定义,该随机变量vk等于1的概率为且等于0的概率为其中,l是密钥的深度。我们假设这些随机变量是独立的,因此,例如,对于密钥的每个子集s,期望在这些假设下,并且,对于随机输入密文c,即不一定是有效密文,作为(2)的结果,当l≤d时,bdecrypt(c,k,l)y所需要的对deax的调用次数可以表示为递归定义的随机变量:

并且,对于l>d,l(k,l)=0。我们关注期望的deax调用次数,

由于祖先数为a=|k|=|a(k)|,因此,

注意,l(a(k),l+1)不包含密钥k,因此l(a(k),l+1)与vk无关,并且,

期望值仅依赖于集合k的大小,即,仅依赖于祖先a的恒定数量,因此,我们可以降低对k的依赖性。这样,使期望的对deax的调用次数现在可以被表达为递归:

对于l<=d

以及

dl=0对于l>d

我们现在考虑标签位均相等的特殊情况,即,

τ=τ1=τ2=…=τd·

在这种情况下,递归可以被识别为几何数列乘以a,其解为:

当b=2a≠1时,以及当b=1时,dl=a(d+1+l)。从而,计算函数decrypt(c,k1,1)所需要的期望的deax调用次数为:

以及,当b=1时,d1=ad。

以上的方程将随机密文输入的情况下的调用次数模型化。在有效密文输入的情况下,一个路径上的所有密钥将认证。各有效认证从(1)导致对decrypt的另一调用,从而近似地导致对各l=1,2,...,d的附加dldeax调用。从而,对有效密文输入的期望调用次数d当b≠1时可以被近似为和值:

并且,当b=1时,

我们现在考虑deax调用次数如何与终端数量t有关。树的深度通过与终端数量有关。如果τ>log2a使得b=2a<1,则deax调用次数由在(3)中出现的项ad/(b-1)主导,因此,

d=o(logt),τ>log2a.

如果τ<log2a使得b=2a>1,则调用次数由在(3)中出现的项a(bd+1-b)/(b-1)2主导,因此,

这里,

注意,在这种情况下,α<1。最后,考虑b=2a=1时的情况。例如,在使用二进制树a=2的实际设定中,以及当对各标签τ=τ1=…τd=1使用单个位时,出现这一点。在这种情况下,期望的deax调用次数为:

d≈d2-d=o(log2t),τ=log2a.

因此,概括地说,在一个实施例中,该方法包括接收从至少包括消息认证代码(mac)、n位哈希和加密的消息文本的终端传送的消息,其中,mac是通过使用终端密钥和nonce生成的。在一些实施例中,nonce也可以包括在传送中。认证代理(或其他实体)可以确定如何将终端密钥分割为两个或更多个分区,并识别包含传送所接收消息的终端密钥的搜索分区。在一些实施例中,nonce由终端和认证确定并且不被传送,并且,通过使用终端和认证代理都知道的预定义分割函数获得n位哈希,该分割函数至少使用nonce和终端密钥作为输入。在将nonce包括在消息中的实施例中(例如,如果由终端使用伪随机源生成),则通过使用终端和认证代理都知道的预定义分割函数从终端密钥的n位选择n位哈希。在一些情况下,使用n位终端哈希和预定义的分区或映射函数将终端分割或分组为2n个分区(或组),使得搜索分区包含发送消息的终端的终端密钥。一旦识别出搜索分区,认证代理就可以在确定的搜索分区(组)中搜索认证mac和解密加密消息文本的终端密钥,并将与终端密钥相关联的终端id和解密消息文本提供给系统实体以供进一步处理。可以使用各种分割方法,例如使用历史空间(例如地理)、时间或时空模式,或者至少认证代理可以使用的其他参数以分割终端。在一些实施例中,分区被分组为分区的层次层,诸如树结构,这里,树的各节点具有分区密钥。由于从加密函数(分区层密钥的mac)获得n位,因此,这可以降低计算复杂度,并提供增强的安全性。

类似地,可以描述由终端生成经认证消息的方法。对于认证代理可以确定如何使用系统或公共已知信息对终端密钥进行分区的情况,则终端加密并对消息进行数字签名以进行传送,而不包括终端密钥或终端标识符。该方法包括生成nonce值。终端通过使用预定义的分割函数生成n位哈希。这可以至少使用nonce和终端密钥(以及可选的终端id),或者它可以从终端id选择位。也可以通过使用终端密钥和nonce生成加密的消息文本。还通过使用nonce值和终端密钥生成消息认证代码(mac)。最后,终端向卫星传送至少包含mac字段、n位终端哈希和密文的消息。在一些实施例中,如果认证代理不能估计nonce,则包括nonce。在一个实施例中,由在通向包含终端密钥的分区的树的搜索路径上对分区密钥的mac进行排序,形成n位哈希。即,分割函数进一步将多个分区分组成包含多个层次分区层的树(并且分区密钥与各分区相关联)。n位哈希是在从根节点到包含终端密钥的叶节点分区的树的搜索路径中从各层上的各分区密钥生成的各分区消息验证代码(pmac)的有序组合。

现在描述用于生成终端id和终端密钥以及用于在网络中注册终端(及其(id,密钥)对)的方法的实施例。在本实施例中,终端id12是128位,终端密钥是128位或256位,并且这些是由终端制造商创建和分配的。终端制造商由网络控制器分配供应商id(例如32位值)和供应商密钥(例如256位值):

给定的供应商id只能被用于生成128位或256位终端密钥,但不是两者,并且终端id和终端密钥在制造时被安装在终端中。这些是通过分配唯一(对供应商id)32位终端索引(例如计数器)生成的。终端id生成为:

hmac(vendorkey,“termid”||vendorid,terminalindex)。128位终端密钥生成为:

hmac(vendorkey,“termkey0”||vendorid,terminalindex)。另选地,256位终端密钥生成为:

hmac(vendorkey,“termkey1”||vendorid,terminalindex)||

hmac(vendorkey,“termkey2”||vendorid,terminalindex)

这里:

·||是连接运算符;

·“termid”、“termkey0”、“termkey1”、“termkey2”是字符串;以及

·hmac(key,iv,value)由rfc4868定义。

供应商id和终端索引仅被用于在通信网络中注册终端,并且不保密。当在空中注册或通过扫描or码注册时,供应商id和终端索引以明文形式被发送,但是通过使用终端密钥进行数字签名。附加的“供应商id掩码”可被用于控制给定供应商id可用的终端索引范围。这将以与ipv4子网掩码相同的方式工作。在注册消息中不需要包含供应商id掩码。

将为设备注册保留单个终端id/终端密钥值(例如0)。可以为匿名数据(例如温度)的传送保留数个额外的对,例如1到2^16-1,但是这种匿名数据不能被认证。

终端必须在能够接收包之前向网络“注册”(即认证代理40将拒绝和舍弃任何非来自注册终端的消息)。注册过程将终端、特别是(终端id,终端密钥)对添加到所搜索的终端id/密钥对集合中。例如,它们被添加到由认证代理40使用的数据库242中。

图3c是根据实施例的注册消息的帧结构320的示意图。这包括供应商id321(在这种情况下为32位)、终端索引322(在这种情况下为32位)和cmac323(在这种情况下为128位)。供应商id和终端索引如上所述,并且cmac使用终端密钥以对供应商id||终端索引进行数字签名。服务器(或接收器)侧供应商密钥和供应商id被用于生成终端id和终端密钥。一旦消息经过认证,终端id/密钥就被添加到终端搜索空间。

也可以通过or码进行注册。注册有效载荷被直接编码为qr码(或其他类似技术)。然后注册应用会将消息与附加元数据相关联。

在空中注册中,明文供应商id||终端索引可以与附加元数据连接。任何附加元数据都应该通过终端密钥和整个消息被加密,包括签名的加密元数据。附加信息可以包括客户id等。在包含附加元数据的情况下,还可能需要明文nonce以防止重放攻击。

该系统可被用于包括多个终端和多个接入节点的卫星通信系统中,特别是具有多个卫星接入节点的通信系统。一个这样的通信系统是例如在wo2014/043760和wo2016/090411中描述的由myriota开发的全球传感器网络。该系统被设计为通过开发高效的通信方法和体系结构以支持大量分布式和典型的低功耗终端(例如电池终端),实现远程物联网。本文所描述的方法特别适合在这种系统中使用。但是,应当理解,各种实施例可用于其他通信系统,包括具有卫星接入节点、空中接入节点和地面接入节点(包括移动地面接入节点)的各种组合的通信系统,或三者的各种组合,包括纯空中或纯地面接入节点。

描述了在通信网络内唯一地识别传送终端的方法的实施例,在该方法中,传送通过使用应用于包的数字签名(除了验证消息的真实性和有效性的一般角色之外)省略终端标识符。将所有终端密钥集分割为两个或多个分区,并且,识别包含发送传送的终端的终端密钥的搜索分区。总系统密钥空间的这种分割减少尝试用每种可能的终端密钥认证接收到的消息的计算成本,从而允许仅对搜索分区中的密钥执行受限搜索。可以通过使用接收器已知或可导/可估的系统信息或者使用传送器和接收器已知或可导/可估的公共信息,执行搜索,或者,消息可以包括帮助接收器识别搜索分区的信息。在一些实施例中,nonce值被使用并且可以独立地导出(即它不在消息中传送)并且由终端和认证代理(或核心网络实体)使用,并且在其他实施例中,nonce被传送并且与分割或映射功能一起使用以允许识别终端。省略nonce允许使用较小的标题并提供绝对的终端匿名性,但需要知道一些计算nonce的方式,诸如卫星轨道参数(例如接入定时参考和最新星历数据)。包含nonce消除了这些需求,但只部分混淆了终端id并且需要一些附加的标题信息。包含终端哈希和nonce作为分区识别代码。在一些实施例中,分区例如被分层地分组到节点被分配分区密钥的树结构中。然后,可以通过对分区密钥mac进行排序(例如通过连接)形成n位哈希。由于n位哈希是从加密函数(即分区密钥的mac)获得的,因此这具有提供更高的安全性的优点。除了标准的安全目标外,这些方法被设计为使在终端和基站之间传送所需的开销最小化,从而为实际数据留出更多的空间。还提供用于生成消息和终端注册的相关方法。

本领域技术人员应当理解,可以通过使用各种技术和技能中的任何一种表示信息和信号。例如,数据、指令、命令、信息、信号、位、符号和芯片可在整个上述描述中被引用,可由电压、电流、电磁波、磁场或粒子、光场或粒子或其任何组合表示。

本领域技术人员将进一步理解,结合这里公开的实施例描述的各种说明性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或指令,或两者的组合。为了清楚地说明硬件和软件的这种可互换性,以上一般地关于其功能性描述了各种说明性组件、块、模块、电路和步骤。这种功能是作为硬件还是软件实现,取决于对整个系统施加的特定应用程序和设计约束。熟练的技术人员可以针对各特定应用以不同的方式实现所描述的功能,但是这种实现决策不应被解释为导致偏离本发明的范围。

结合这里公开的实施例描述的方法或算法的步骤可以直接体现在硬件、由处理器执行的软件模块或两者的组合中。对于硬件实现,可以在一个或更多个应用特定集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑设备(pld)、现场可编程门阵列(fpgas)、处理器、控制器、微控制器、微处理器、被设计为执行这里描述的功能的其他电子单元,或其组合。也称为计算机程序、计算机代码或指令的软件模块可以包含若干源代码或目标代码段或指令,并且可驻留在诸如ram存储器、闪存、rom存储器、eprom存储器、寄存器、硬盘、可移动磁盘、cd-rom、dvd-rom、蓝光光盘或任何其他形式的计算机可读介质的任何计算机可读介质中。在一些方面,计算机可读介质可以包括非暂时性计算机可读介质(例如,有形介质)。此外,对于其它方面,计算机可读介质可以包括暂时性计算机可读介质(例如,信号)。以上的组合也应包括在计算机可读介质的范围内。在另一方面,计算机可读介质可以与处理器一体化。处理器和计算机可读介质可以驻留在asic或相关设备中。软件代码可以存储在存储器单元中,并且处理器可以被配置为执行它们。存储器单元可以在处理器内实现,也可以在处理器外部实现,在这种情况下,它可以通过本领域已知的各种方式通信地耦合到处理器。

此外,应当理解,用于执行这里描述的方法和技术的模块和/或其他适当手段可以被下载和/或通过计算设备以其他方式获得。例如,这种设备可以耦合到服务器以有利于用于执行这里描述的方法的手段的传送。另选地,可以经由存储手段(例如ram、rom、诸如光盘(cd)或软盘等的物理存储介质)提供这里描述的各种方法,使得计算设备可以在耦合到设备或者向其提供存储手段时获得各种方法。此外,可以利用用于向设备提供这里描述的方法和技术的任何其他合适技术。

在一种形式中,本发明可以包括用于执行这里描述的方法或动作的计算机程序产品。例如,这种计算机程序产品可以包括其上存储(和/或编码)指令的计算机(或处理器)可读介质,这些指令可以由一个或更多个处理器执行以执行这里描述的动作。

这里公开的方法包括用于实现所述方法的一个或更多个步骤或行动。方法步骤和/或行动可以彼此交换,而不脱离权利要求的范围。换言之,除非步骤或行动的特定顺序被指定,否则可以在不脱离权利要求的范围的情况下修改特定步骤和/或行动的顺序和/或使用。

如这里所使用的,术语“确定”包括各种各样的行动。例如,“确定”可以包括算出、计算、处理、推导、调查、查找(例如,在表、数据库或另一数据结构中查找)和确定等。此外,“确定”可以包括接收(例如,接收信息)和接入(例如,接入存储器中的数据)等。此外,“确定”可以包括解决、选择、选定和建立等。

系统的多个方面可以是通过使用包括一个或更多个处理器和存储器以及可选的输入设备(例如密钥盘、鼠标等)和输出设备(例如显示器)的计算设备或装置实现的计算机。它们可以集成在接收器和传送器装置中,或者与接收器和传送器装置通信,以例如代表接收器和传送器装置执行专门的计算。存储器可以包括导致处理器执行这里描述的方法的方面或步骤的指令。处理器和存储器可以包含于诸如服务器、台式计算机的标准计算设备、诸如膝上型计算机或平板电脑的便携式计算设备中,或者它们可以包含于定制设备或系统中。计算设备可以是单一计算或可编程设备,或者包括通过有线或无线连接操作地(或功能地)连接的几个组件的分布式设备。一个或更多个处理器可以包括包含输入/输出接口、算术和逻辑单元(alu)和控制单元的中央处理单元(cpu)以及通过输入/输出接口与输入和输出设备通信的程序计数器元件。输入/输出接口可以包括用于通过使用预定义的通信协议(例如蓝牙、zigbee、ieee802.15、ieee802.11、tcp/ip、udp等)与另一设备中的等效通信模块通信的网络接口和/或通信模块。还可以包括图形处理单元(gpu)。显示装置可以包括平板显示器(例如lcd、led、等离子、触摸屏等)、投影仪、crt等。计算设备可以包括单个cpu(核心)或多个cpu(多核心)或多个处理器。计算设备可以使用并行处理器、向量处理器或分布式计算设备。存储器可操作地耦合到处理器,并且可以包括ram和rom组件,并且可以被设置在设备内部或外部。存储器可以被用于存储操作系统和附加软件模块或指令。处理器可以被配置为加载和执行存储在存储器中的软件模块或指令。

除非上下文另有要求,否则在整个说明书和随后的权利要求中,词语“包含”和“包括”以及诸如“含有”和“具有”的变体将被理解为意味着包含陈述的特征或特征组,但不排除任何其他特征或特征组。

本说明书中对任何现有技术的引用不是、并且也不应被视为对任何形式的此类现有技术构成常识的一部分的建议的承认。

本领域技术人员将理解,本公开的用途不限于所描述的特定的一个或多个应用。本公开也不关于这里描述或描绘的特定要素和/或特征限制其优选实施例。应当理解,本公开不限于公开的一个或多个实施例,而是能够在不脱离由以下权利要求阐述和定义的范围的情况下进行各种重排、修改和替换。

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