通过低能量无线通信协议提供安全可靠通信的系统和方法与流程

专利2024-04-12  94


通过低能量无线通信协议提供安全可靠通信的系统和方法
1.相关申请的交叉引用
2.本技术要求于2020年2月6日提交的美国非临时申请第16/783,539号的权益,美国非临时申请的内容通过引用并入本文。
技术领域
3.本公开总体上涉及用于通过非安全的低能量无线通信协议提供安全和可靠通信的系统和方法。


背景技术:

4.蓝牙广告是一种利用蓝牙低能量(bluetooth low energy,ble)技术将内容传送到无线设备的移动营销方法。通常,内容可以由信标从一个位置通过非安全信道传输,并由配备有ble扫描仪的无线设备接收。这样的ble信标也可以被描述为不可连接的广告包。
5.同时,由ble协议执行的信标传输受到各种网络威胁,因为通信未加密。此类威胁的一个示例是未经授权的追踪,其中,任何附近的接收器都可以读取信标广播身份(identity,id)。在这种情况下,攻击者或黑客可以监听和分析非安全信标。这种网络威胁的另一个示例是伪造,其中,攻击者或黑客可以伪造任何广播一致id的信标的广告数据包。也称为欺骗,或将来自未知来源的通信伪装成来自已知的、受信任的来源的行为,欺骗可用于访问目标的个人信息,通过受感染的链接或附件传播恶意软件,绕过网络访问控制,或重新分配流量以进行拒绝服务攻击。
6.另一个网络威胁包括展厅销售,其中,ble信标通常用于识别微位置。有了这一信息,攻击者或黑客可以使用所有者的信标信息向位于该位置的其他人提供竞争服务。另一个网络威胁是捎带确认追踪,其中,窃听者可能使用广泛部署的移动应用程序来收集标识符及其位置,并在获知信标id后使用收集到的信息来推断信标的历史位置。
7.保护ble信标的一种安全机制涉及媒体访问控制(media access control,mac)地址的随机生成。当设备连接到新的ble网络时,此机制随机生成分配给无线设备的mac地址。每次连接尝试使用不同的随机mac地址。安全机制可能潜在阻止人们使用mac地址来建立设备活动的历史,从而增加用户隐私。然而,这样的安全机制为用户提供匿名性,而不是针对用户信息的未授权访问提供安全性。在许多情况下,仅广播应用程序需要针对数据有效载荷的额外的应用程序级安全性。
8.用于保护ble信标的另一种安全解决方案包括广告。旋转标识符是使用密码方法生成的,并且只能由授权用户将旋转标识符连接回信标或与信标相关的信息。因此,信标的所有者可以识别旋转标识符,而对于其他设备,旋转标识符将看起来像随机id。在这里,信标的所有者可以使用基于云的全局解析器注册信标,这使得授权的非所有者能够识别信标。然而,使用这种方法,有效载荷数据是不安全的,而只有标识符是安全的。
9.鉴于上述讨论,需要一种将能够克服上述缺陷的安全解决方案。


技术实现要素:

10.以下是本公开的几个示例实施例的概述。为了方便读者,提供该概述以提供对此类实施例的基本理解,并且该概述并不完全限定本公开的范围。该概述不是对所有考虑到的实施例的广泛概况,并且既不旨在识别所有实施例的关键或关键元素,也不旨在描绘任何或所有方面的范围。该概述的唯一目的是以简化形式呈现一个或更多个实施例的一些概念,作为稍后呈现的更详细描述的前奏。为方便起见,本文可使用术语“一些实施例”或“某些实施例”来指代本公开的单个实施例或多个实施例。
11.本文公开的某些实施例包括一种用于加密低功率通信协议的数据帧的方法。方法包括:提供输入数据帧,输入数据帧包括随机数、唯一标识符和有效载荷数据;加密有效载荷数据;生成消息完整性代码(message integrity code,mic);通过加密唯一标识符来生成旋转标识符;以及基于所生成的旋转标识符、所生成的mic和所加密的有效载荷数据来生成输出帧。
12.本文公开的某些实施例还包括用于加密低功率通信协议的数据帧的无电池物联网(internet of things,iot)设备。无电池iot设备包括微控制器和存储器,存储器包含指令,当由微控制器执行时,指令将物联网设备配置为:提供输入数据帧,输入数据帧包括随机数、唯一标识符和有效载荷数据;加密有效载荷数据;生成消息完整性代码(mic);通过加密唯一标识符来生成旋转标识符;以及基于所生成的旋转标识符、所生成的mic和所加密的有效载荷数据来生成输出帧。
13.本文公开的某些实施例还包括用于加密低功率通信协议的数据帧的无线设备。无线设备包括处理器和存储器,存储器包含指令,指令在由微控制器执行时,将处理器配置为:提供输入数据帧,输入数据帧包括随机数、唯一标识符和有效载荷数据;加密有效载荷数据;生成消息完整性代码(mic);通过加密唯一标识符生成旋转标识符;以及基于所生成的旋转标识符、所生成的mic和所加密的有效载荷数据生成输出帧。
附图说明
14.本文公开的主题在说明书结尾处的权利要求中特别指出和明确要求保护。根据以下结合附图的详细描述,所公开的实施例的上述和其他目的、特征和优点将变得显而易见。
15.图1是根据实施例的安全低能量通信系统的示意图。
16.图2是根据实施例的信标包格式的示意图。
17.图3是根据实施例的安全协议数据加密流程的功能图。
18.图4是根据实施例的加密低能量信标的方法的流程图。
19.图5是根据实施例的对加密的低能量信标进行解密的示意图。
20.图6是根据实施例的示例性接收器的框图。
21.图7示出了根据实施例设计的体现为iot标签的示例性ble设备的示意图。
具体实施方式
22.重要的是要注意,本文公开的实施例仅是本文创新教导的许多有利用途的示例。一般而言,在本技术的说明书中所作的陈述并非必须限制各种要求保护的实施例中的任意一种。此外,某些陈述可能适用于某些创造性特征,但不适用于其他特征。一般来说,除非另
有说明,否则单数元件可以是复数形式,反之亦然,而不失一般性。在附图中,相同的附图标记在多个视图中指代相同的零件。
23.各种公开的实施例包括用于实现安全广播认证方案并提供允许用户匿名和数据安全的安全信标包的方法和系统。在示例实施例中,系统被配置为提供匿名化和隐私。也就是说,传输的数据是匿名和加密的,以保护所有者的隐私。特别是,信标的唯一身份是匿名的。为此,将认证和完整性保护字段添加到信标数据包中。这使接收器能够将认证和完整性保护方法应用到帧。在实施例中,重放保护数据也被插入到信标包中,以使接收器能够将重放检测方法应用于信标包。
24.图1是用于描述各种实施例的安全低能量通信系统100的示例示意图。系统100包括无线设备110、接收器120和云计算平台130。无线设备110和接收器120之间的通信可以使用低功率通信协议来执行。云计算平台130和接收器120之间的通信是通过例如互联网进行的。
25.在示例实施例中,低能量通信协议包括蓝牙低功耗(ble)协议,蓝牙低功耗协议是在大约2.40到2.485mhz的范围内工作的短波长无线电波,并且通常在便携式无线设备中使用。云计算平台130可以包括公共云、私有云、混合云或它们的组合。
26.接收器120可以是但不限于网关,网关具体体现为例如个人计算机、笔记本电脑、平板计算机、智能手机、可穿戴计算设备或能够接收和显示通知的任意其他设备。接收器120还可以与网络(除了ble网络)通信,这样的网络包括局域网(例如,wi-fi)、互联网等。
27.接收器120还包括本地解析器125。本地解析器125被配置为处理以解析从无线设备110接收到的信标包。如下文将描述的,这至少包括解析无线设备111的唯一id和组id以及解密有效载荷数据。在实施例中,本地解析器125还可以被配置为基于包含在每个接收到的包中的唯一id来检测回复攻击。在一个实施例中,本地解析器125可以被实现为安装在接收器120中的软件代理。图6中提供了接收器120的示例框图。
28.包含在云计算平台130中的全局解析器135可以执行与本地解析器125相同的功能。当全局解析器135解析包时,加密的包通过互联网(通过接收器120)发送到云计算平台130。因此,在这种配置中,本地解析器125不解析加密的包。
29.在实施例中,本地解析器125和全局解析器135可以在接收器120处本地存储包的身份(加密)密钥,或在云计算平台130上的云上存储包的身份(加密)密钥。加密密钥可以是任意类型的密码密钥,并且通常在制造过程中生成。在实施例中,本地解析器125存储包的加密密钥。
30.在实施例中,无线设备110是仅发送型的能量采集设备。在可以是无状态的无线设备110内,加密密钥可以存储在设备110中的非易失性存储器(未示出)中。因此,由无线设备110发送的每个包可以独立于所有其他包被加密、认证和完整性保护。也就是说,可以使用认证和完整性保护字段,如参考图2进一步讨论的。
31.在操作中,无线设备110被配置为对使用所公开的实施例加密的信标包进行加密和广播。在ble中,信标包作为标准广告包(以下称为“信标包”或简称为“包”)通过定义为ble协议的一部分的广告信道37、38和39进行广播。在实施例中,信标包具有如图2所示的特定格式,并且每个信标包的一部分由无线设备110加密。在另一个实施例中,在信标包中发送的数据可以是制造商数据类型,制造商数据类型是有效的广告数据类型。应当注意的是,
无线设备110只加密信标包。还需注意的是,信标包的格式符合ble标准。
32.图2示出了信标包200的示例图,信标包200包括报头210和广告信道有效载荷(也称为协议数据单元(protocol data unit,pdu)220)。报头210包括以下字段:用于内部协议管理的前导码211;为信标包提供访问的访问地址212;以及包含pdu类型和长度的pdu报头213。信标包200还包括具有在pdu 220的内容上计算的循环冗余校验(cyclic redundancy check,crc)代码的循环冗余校验(crc)字段240。
33.根据所公开的实施例构造pdu 220并且pdu 220将被称为数据帧230。数据帧230是信标包200被加密或以其他方式被操纵的部分。数据帧230包括以下字段:包含为每个帧生成的随机数的广告(advertisement,adv)地址231;供应商报头,其包括包含数据帧230的长度的广告(adv)长度和由ble协议计算的制造商数据233,并且供应商报头是广告数据(advertisement data,ad)类型;包含由无线设备110的制造定义的编号的制造id 234;包含唯一id值的唯一标识符(id)235;组id 236;包含随机生成的数的被使用一次的非重复的随机数值(number used once,nonce)237;和有效载荷数据239。
34.根据所公开的实施例,唯一id 235被随机化或以其他方式加密,而组id 236作为未加密的原始数据被发送。唯一id 235可以是六个字节长,并且标识特定无线设备110,并且对于每个无线设备110都是唯一的。此外,组id 236表示无线设备110的组id,并且用于本地过滤和id解析。通过加密唯一id 235,攻击者不能追踪无线设备110的活动或伪造广告信标包200。
35.nonce 237是随机数或非重复数,nonce 237包含在由协议交换的数据帧230中并且在密码通信中仅使用一次。nonce 237用于通过保证传输实时数据而不是重放数据来提供重放保护。也就是说,在实施例中,nonce 237防止旧通信的重用,并且进一步允许检测和防止重放攻击。例如,nonce 237可以是四个字节长。
36.此外,有效载荷数据239字段的内容被加密。通过加密有效载荷数据239,实现了匿名化和隐私。应当注意的是数据帧230的结构,因此信标包200在加密相关字段后保持不变,而数据帧230的内容改变。下面更详细地讨论加密过程。
37.在另一实施例中,基于nonce 237检测重放攻击。为此,本地解析器125(或全局解析器135)比较在连续接收的信标包200中指定的nonce数。如果一个或更多个这样的nonce数237匹配,则检测到重放攻击。由于所有nonce数237均已标准化,因此预计不会有两个nonce数237相似。丢弃具有重复nonce数237的数据帧230。重放攻击的检测可以由本地解析器125或全局解析器135执行。
38.图3是根据实施例的安全协议数据加密流程的示例功能图300。输入数据帧310正在被加密。如图2所示,将输入数据帧310格式化。输入数据帧310至少包括以下字段:包含为每个帧生成的随机数的广告(adv)地址231;广告(adv)长度232;制造商数据233;制造id 234;唯一标识符(id)235;组id 236;nonce 237;和有效载荷数据239。
39.与输入帧310相比,输出帧330由加密产生,并且至少包括:adv地址231;广告(adv)长度232;制造商数据233;制造商id 234;旋转id 235';组id 236;随机生成的nonce 237;消息完整性代码(mic)238,消息完整性代码(mic)238是在数据帧230(不包括mic)中的所有字段上计算的代码;以及加密的有效载荷数据239'。
40.如图3所示,输出帧330具有与输入数据帧310相似的一般结构,并且包括:相同的
连续排列的adv地址231、广告(adv)长度232、制造商数据233、制造商id 234、组id 236和nonce 237。但是,加密的旋转唯一id 235'和加密的有效载荷数据239'在唯一id 235和有效载荷数据239原来所在的位置中生成。此外,mic被生成并插入在nonce 237和加密的有效载荷数据239'之间。
41.在实施例中,使用通常存储在无线设备(例如,设备110)中的非易失性存储器(图3中未示出)中的加密密钥来执行加密。这些密钥可以包括身份(组)密钥322和数据加密密钥324。这些密钥可以进一步用于导出身份加密密钥326(也可以被称为第一对称块加密算法(enc1))以及完整性密钥328(也可以被称为第二对称块加密算法(enc2))。
42.身份密钥322由具有同一组id 236的所有无线设备110共享,并用于唯一id 235的加密。身份密钥322通过验证无线设备110来确保加密的包完整性和保护。默认情况下,身份密钥322可以包括128位高级加密标准(advanced encryption standard,aes)密钥。
43.与身份密钥322相比,数据加密密钥324对于每个无线设备110是唯一的,并且用于加密有效载荷数据239。作为示例,128位高级加密标准(aes)密钥可用于数据加密。可以通过本地解析器125或全局解析器135存储身份密钥322和数据加密密钥324的副本,以解析接收到的加密包。
44.此外,安全协议使用密码原语。密码原语包括:密钥导出函数(key derivation function,kdf)323、具有密码块链接-消息验证代码模式(cipher block chaining-message authentication code mode,ccm)325和密码块链接-消息验证代码(cipherblock chaining-message authentication code,cbcmac)327的计数器。
45.现在将描述数据帧230的加密。
46.数据加密
47.为了加密有效载荷数据239,使用数据加密密钥324和nonce 237来导出完整性密钥328。然后将有效载荷数据239与完整性密钥328组合并加密为加密式有效载荷数据239'或密文。
48.完整性保护
49.此外,为了保护数据帧230的完整性,使用ccm模式325在包的所有字段上(不包括mic 340本身)生成mic 340。也就是说,mic 320是唯一id 235、nonce 237、组id 236、加密的有效载荷数据239'和完整性密钥328上的消息认证代码(mac)。
50.首先,对nonce 237、包括adv长度232、制造商数据233和制造id 234的供应商报头、唯一id 235、组id 236和加密的有效载荷数据239'进行格式化。此外,还对包括nonce 237的计数器块(未示出)进行格式化。
51.此外,从身份(组)密钥322和nonce 237获得密钥导出函数(key derivation function,kdf)323,该kdf从秘密值(诸如主密钥)导出一个或更多个秘密密钥。然后可以以两种方式应用所获得的kdf 323。首先,kdf 323与计数器(未显示)提供的另一个nonce 237一起使用,以在ccm 325内导出身份加密密钥326。其次,kdf 323还与格式化的nonce 237、供应商报头233、唯一id 235和加密式有效载荷数据239'一起使用以导出cbcmac 327。然后将导出的cbcmac 327与身份加密密钥326组合以导出mic 340。
52.身份加密
53.除了有效载荷数据239的加密和mic 340的导出之外,数据帧230的唯一id 235也
被加密。这可以通过以下来执行:应用从nonce 237和身份(组)密钥322获得的kdf 323,然后从所获得的kdf 323导出身份加密密钥326并且导出从计数器块获得的格式化的nonce 237。接下来,唯一id 235然后与身份加密密钥326组合以导出加密的旋转id 235'。
54.利用加密的有效载荷数据239'、导出的mic 340和加密的旋转id 235',构建输出帧330,输出帧330至少包括:顺次排列的adv地址231、包括adv长度232、制造商数据233和制造id 234的供应商报头、旋转id 235'、组id 236、随机生成的nonce 237、消息完整性检查(mic)238和加密的有效载荷数据239'。
55.如上所述,身份加密密钥(enc1)326和完整性密钥(enc2)328是认证加密,用于分别加密无线设备110的唯一id 235和有效载荷数据239,并保护整个信标包200的完整性和真实性。
56.在操作中,数据帧230作为输入帧310被输入并且基于上述协议被加密。生成输出帧330。数据帧230现在被加密并准备好由无线设备110发送。
57.在接收器(例如,图1的接收器120)侧,当本地解析器125从无线设备110接收到加密的信标包200时,根据需要生成额外的多个nonce 237。如果组id 236被本地解析器125识别,则检索身份密钥322。替代地,可以向云计算平台130询问身份密钥322。然后使用ccm 225完整性保护来计算mic 340'。如果计算出的mic 340'与从无线设备110接收的mic 340匹配,则旋转id 235'被解密。
58.在旋转id 235'的解密期间,基于上述唯一id 235加密技术构建数据帧230。然后用身份密钥322解密旋转id 235'以恢复唯一id 215。这里,描述独立于mic 340'计算,并且在验证mic 340之前该过程不输出解密的块以防止向攻击者泄露机密信息。之后,解密的信标包200被发送到具有唯一id 235的云计算平台130。
59.作为替代方案,如果全局解析器135用于解密信标包200,则在全局解析器135侧接收信标包200和唯一id 215。作为一种选择,可以重新验证mic 340,并且如果mic 340未经验证,则可以丢弃信标包200。之后,唯一id 235用于检索数据加密密钥324。如果没有找到唯一id 215,则丢弃信标包200。
60.此后,根据本文公开的加密技术构造输出数据帧330。然后,输出帧330用数据加密密钥324解密,并与加密的有效载荷数据239'进行异或“xor”运算以恢复原始有效载荷数据239。
61.应当注意,所公开的实施例导致安全的、广播的、加密的ble通信。在一个示例中,假设来自同一组的两个信标使用同一身份密钥和同一nonce,那么拦截这两个数据包的攻击者将识别出这些数据包是由不同的信标发送的。通常,如果攻击者知道通过同一密钥加密两个包,则攻击者可能能够检测到信标的唯一id之间的位差异(位异或“xor”运算的结果)。然而,当使用所公开的加密技术时,唯一id是随机的,不会向攻击者提供任何有关唯一id或正在使用的加密密钥的信息。
62.图4是根据实施例的加密ble信标包的方法400的示例流程图。将参考参考图3讨论的各种元素来描述该方法。
63.在s410,提供输入帧310。为了加密的目的,使用了多个加密密钥。这些加密密钥至少包括:身份密钥(322)和数据加密密钥(324)。
64.然后,在s420,基于随机数(或nonce)(237)和数据加密密钥(324)生成完整性密钥
(328)。
65.在s430,有效载荷数据(239)被加密作为所生成的完整性密钥并且被用于加密有效载荷数据(239)。
66.然后,在s440,生成mic(340)。这里,对输入帧的随机数(237)、包括adv长度(232)的供应商报头、制造商数据(233)、制造id(234)、组id(236)、唯一id(235)和加密的有效载荷数据(239')格式化。此外,也对包括随机数237的计数器块(未示出)格式化。
67.接下来,基于身份(组)密钥(322)和随机数(237)获得kdf(323)。之后,基于获得的kdf(323)和格式化的计数器块(未显示)导出cbcmac(327)。然后基于包括随机数(237)的格式化的计数器块(未示出)生成身份加密密钥(326),并且将生成的身份加密密钥(326)和cbcmac(327)组合以导出mic(340)。
68.在s450,通过将生成的身份加密密钥(326)应用于唯一id(235)来生成旋转id(235')。然后,在s460,基于生成的旋转标识符(235')、生成的mic(340)、加密的有效载荷数据(239')构建输出帧(330),并将输出帧(330)发送到接收器120.
69.以上公开的方法提供了无线设备通过低能量通信协议安全传输信标包。
70.图5是根据实施例的用于对加密的信标包200进行解密的方法的示例流程图500。将参考参考图3讨论的各种元素来描述该方法。
71.在s510,接收到加密的信标包。包在解析器(例如上面讨论的本地或全局解析器)处被接收。在s520,通过计算mic(340’)并与从无线设备接收的mic(340)进行比较来验证加密的信标包的完整性。此外,通过本地解析器(125)的识别来解析组id(236),并检索身份密钥(322)。
72.如果加密的包信标被验证,则在s530,使用包括身份密钥(322)和数据加密密钥324的各种密钥来解密旋转id(235’)和加密的有效载荷数据(239’)。
73.在s540,解密的信标包被传输以供进一步处理。这种处理包括数据校准和包括存储、分析和通知的虚拟设备服务,以及接收器120的控制。
74.图6是根据实施例的示例性接收器120的示例详细框图。如图6所示,接收器120包括ble通信卡650和网络接口卡(network interface card,nic)620。ble卡650通过ble网络(未示出)与无线设备110通信,而nic 620允许通过互联网(未示出)或其他类型的网络与服务器通信。
75.在实施例中,接收器120可以安装有应用程序(未示出),当由硬件(诸如处理器670)执行时,应用程序可以允许处理器670控制与无线设备(例如,设备110)和基于云的平台130的通信,并执行如图5中描述的解密方法。可以包括本地解析器125的应用程序可以存储在存储器680中。也就是说,如上文关于图5所讨论的,本地解析器125接收、解密和处理来自无线设备110的数据包,并且还可以将包的身份密钥存储在存储器680中。
76.应当注意,处理器670可以实现为一个或更多个硬件逻辑部件和电路。例如,但不限于,可以使用的示例性硬件逻辑部件类型包括现场可编程门阵列(field programmable gate array,fpga)、专用集成电路(application-specific integrated circuit,asic)、专用标准产品(application-specific standard product,assp)、系统级芯片系统(system-on-a-chip,soc)、通用微处理器、微控制器、数字信号处理器(digital signal processor,dsp)等,或可以执行计算或其他信息操作的任意其他的硬件逻辑部件。
77.存储器680可以是易失性的(例如随机存取存储器(random access memory,ram)等)、非易失性的(例如只读存储器(read-only memory,rom)、闪存等)、或它们的组合。存储器680可以存储加密密钥。可以包括本地解析器125的应用程序以软件实现。软件应广义地解释为任意类型的指令,无论是指软件、固件、中间件、微代码、硬件描述语言或其他。指令可以包括代码(例如,源代码格式、二进制代码格式、可执行代码格式或任何其他合适的代码格式)。当由处理器670执行时,指令导致本地解析器125在接收器120上的执行,以执行上面关于图5所描述的方法。
78.图7示出了根据一个实施例的可以用作无线设备110的无线物联网(iot)标签700的示例示意图。在这样的配置中,无线设备的形状因数,因此iot标签700是无片上封装的。
79.如图7中示意性展示的,iot标签700包括:耦接到片上电容器702和外部无源电容器702'的能量采集器701、功率管理单元(power management unit,pmu)703、微控制器704、片上系统(system on chip,soc)705和保持存储器706。iot标签700还可以包括例如胶合到基板720的至少一个天线710。在另一个实施例中,天线710可以印刷在基板上或蚀刻到基板。在另一个实施例中,无源外部电容器730可以代替天线710。
80.在实施例中,基板720由低成本材料制成,例如但不限于聚乙烯(polyethylene,pet)、聚酰亚胺(polyimide,pi)和聚苯乙烯(polystyrene,ps)。在另一个实施例中,基板720的图案(布局)可以是铝、铜或银中的任何一种。用于胶合到片和/或天线710的胶可以包括诸如各向异性导电膜(anisotropic conductive film,acp)、任何类型的导电胶、焊膏等的材料。
81.在图7所示的实施例中,天线710耦合到采集器701并且可以用于能量采集以及无线通信。在一些实施例中,可以利用多个天线来采集多个频带的能量。其他实施例可以包括用于能量采集的一个或更多个天线和用于在ble频带接收/发送无线信号的天线。
82.soc 705包括实现为模拟电路、数字电路或两者的多个执行功能。下面提供了此类执行功能的示例。soc 705还被配置为独立执行进程或在微控制器704的控制下执行进程。soc 705执行的每个进程也具有状态,进程可以通过进程间通信(inter-process communication,ipc)协议与其他进程通信。在图7所示的配置中,soc 705和/或微控制器704加载进程的上下文并从保持存储器706读取数据。
83.在实施例中,soc 705被划分为多个电源域。每个电源域是由同一电源和接地电源供电的门的集合。为了降低功耗,执行过程中只开启一个电源域。
84.在优选实施例中,soc 705包括振荡器校准电路(oscillator calibration circuit,occ)705-a。occ 705-a包括至少一个频率锁定电路(frequency locking circuit,flc),每个flc都耦接到振荡器(两者都未示出)。flc使用空中(over-the-air)参考信号校准振荡器的频率。在实施例中,在数据传输会话之前立即执行各个振荡器的校准,并且各个振荡器的校准在数据传输会话期间保持自由运行。flc可以使用锁频环(frequency locked loop,fll)、锁相环(phased locked loop,pll)和锁延迟环(delay locked loop,dll)来实现。
85.根据所公开的实施例,能量采集器701、电容器702、pmu 703、微控制器704、soc 705和保持存储器707集成在片730中。片730粘合到基板720。无线设备110不包括任何外部直流(direct current,dc)电源(例如电池)。
86.在实施例中,微控制器704实现执行允许使用低能量通信协议进行通信的各种功能的电子电路(例如,存储器、逻辑、射频(radio frequency,rf)等)。在优选实施例中,微控制器704使用蓝牙低功耗(ble)通信协议进行操作。在一些实施例中,微控制器704与无线传感器(未示出)集成以完成iot设备功能。
87.采集器701被配置为向微控制器704提供多个电压电平,同时保持低负载dc耗散值。在示例实现中,能量采集器701可以包括耦接到天线710的电压倍增器。电压倍增器可以是迪克森(dickson)倍增器,而天线是微控制器704的710接收/发送天线。也就是说,在这样的配置中,天线主要设计为根据低能量无线设备110的相应通信协议接收和/或发送无线信号(例如,用于ble通信的2.400-2.4835ghz信号)。
88.应当注意,天线710也可以被设计用于能量采集并且可以在与在相应通信协议的标准中定义的频带、方向或两者不同的频带、方向或两者上操作。无论配置如何,都可以从空中接收的任何无线信号中采集能量。替代地,可以从任何其他来源(例如太阳能、压电信号等)采集能量。
89.采集的能量存储在片上电容器702和/或外部电容器702'中。
90.pmu 703耦接到电容器702并且被配置为调节微控制器704和soc 705的功率。具体地,由于电容器702的电容非常有限,因此应该小心地维持功耗。执行该维持以避免电容器702的耗尽,从而重置微控制器704。pmu 703可以使用在预定阈值(vref)(例如,vref=0.85v)上操作的施密特(schmitt)触发器来实现。
91.在另一个实施例中,pmu 703可以进一步被配置为向微控制器704提供多电平电压电平指示。这样的指示允许微控制器704在电容器702充电或放电的任何给定时刻确定电压源的状态。根据该实施例,pmu 703可以包括由控制器控制的检测电路。检测电路包括不同的电压参考阈值检测器,其中,只有这些检测器的子集在给定时间启用以执行检测。
92.无线设备110不包括任何提供参考时钟信号的晶体振荡器。根据实施例,使用从天线710接收的空中信号生成参考时钟信号。如上所述,在典型的部署中,自由运行振荡器通过锁相环(pll)被锁定到源自晶体振荡器的时钟。根据公开的实施例,occ 705-a使用空中参考信号校准振荡器的频率。在iot标签700中实现的振荡器是片上振荡器并且可以实现为数控振荡器(digitally controlled oscillator,dco)。
93.保持存储器706是通信系统100中持续供电的集中区域。在低功率状态期间要保持的数据位于保持存储器740中。在实施例中,将保持区域优化为亚阈值或接近阈值电压,例如0.3v-0.4v。这允许减少保持电池(cell)的泄漏。
94.本文公开的各种实施例可以实现为硬件、固件、软件或它们的任何组合。此外,该软件优选地被实现为有形地体现在由部分或某些设备和/或设备的组合组成的程序存储单元或计算机可读介质上。应用程序可以被上传到包括任何合适架构的机器并由其执行。优选地,机器在具有诸如一个或更多个中央处理单元(“central processing unit,cpu”)、存储器和输入/输出接口之类的硬件的计算机平台上实现。计算机平台还可以包括操作系统和微指令代码。本文描述的各种过程和功能可以是微指令代码的一部分或应用程序的一部分,或者它们的任何组合,它们可以由cpu执行,而不管这种计算机或处理器是否被明确地示出。此外,各种其他外围单元可以连接到计算机平台,例如附加数据存储单元和打印单元。此外,非瞬态计算机可读介质是除了瞬态传播信号之外的任何计算机可读介质。
95.本文中引用的所有示例和条件语言旨在用于教学目的,以帮助读者理解所公开的实施例的原理和发明人对促进本领域做出贡献的概念,并且将被解释为不限于此类具体列举的示例和条件。此外,本文中引用所公开实施例的原理、方面和实施例及其具体示例的所有陈述旨在涵盖其结构和功能等效物。此外,此类等效物旨在包括当前已知的等效物以及未来开发的等效物(即,无论结构如何,开发的执行相同功能的任何元件)。
96.应当理解,本文中使用诸如“第一”、“第二”等名称对元素的任何引用通常不限制那些元素的数量或顺序。相反,这些名称通常在本文中用作区分两个或更多个元素或一个元素的实例的方便方法。因此,对第一和第二元素的引用并不意味着在那里仅可以使用两个元素或者第一元素必须以某种方式在第二元素之前。此外,除非另有说明,否则元素集包括一个或更多个元素。
97.如本文所用,短语“至少一个”后跟项目列表意味着可以单独使用任何列出的项目,或者可以使用两个或更多个所列项目的任何组合。例如,如果系统被描述为包括“a、b和c中的至少一个”,则该系统可以包括单独的a;单独的b;单独的c;2a;2b;2c;3a;a和b的组合;b和c的组合;a和c的组合;a、b和c的组合;2a和c的组合;a、3b和2c的组合等。

技术特征:
1.一种用于加密低功率通信协议的数据帧的方法,包括:提供输入数据帧,所述输入数据帧包括随机数、唯一标识符和有效载荷数据;加密所述有效载荷数据;生成消息完整性代码mic,通过加密所述唯一标识符来生成旋转标识符;以及基于所生成的旋转标识符、所生成的mic和所加密的有效载荷数据来生成输出帧。2.根据权利要求1所述的方法,其中,所述输入数据帧还包括供应商报头和组标识符。3.根据权利要求1所述的方法,还包括:基于所述随机数和数据加密密钥生成完整性密钥,其中,基于所生成的完整性密钥和所述有效载荷数据对所述有效载荷数据进行加密。4.根据权利要求3所述的方法,其中,所述生成mic还包括:格式化所述输入数据帧的随机数、供应商报头、组标识符、唯一标识符和所加密的有效载荷数据,其中,所述供应商报头和所述组标识符是所述输入数据帧的一部分;格式化计数器块,所述计数器块包括所述随机数;基于身份密钥和所述随机数获得密钥导出函数kdf;基于所获得的kdf和所格式化的计数器块,推导出具有密码块链接消息认证代码cbcmac的计数器;基于包含所述随机数的所格式化的计数器块生成身份加密密钥;以及将所生成的身份加密密钥和所述cbcmac组合。5.根据权利要求4所述的方法,其中,所述生成旋转标识符还包括:将所生成的身份加密密钥应用于所述唯一标识符。6.根据权利要求1所述的方法,其中,所述低功率通信协议是ble协议。7.根据权利要求1所述的方法,其中,所述方法由无线设备执行,其中,所述无线设备至少是无电池iot标签。8.一种用于加密低功率通信协议的数据帧的无电池iot设备,包括:微控制器;以及存储器,所述存储器包含指令,当由所述微控制器执行时,所述指令将所述iot设备配置为:提供输入数据帧,所述输入数据帧包括随机数、唯一标识符和有效载荷数据;加密所述有效载荷数据;生成消息完整性代码mic,通过加密所述唯一标识符来生成旋转标识符;以及基于所生成的旋转标识符、所生成的mic和所加密的有效载荷数据来生成输出帧。9.根据权利要求8所述的无电池iot设备,其中,所述输入数据帧还包括供应商报头和组标识符。10.根据权利要求8所述的无电池iot设备,其中,所述iot设备还被配置为:基于所述随机数和数据加密密钥生成完整性密钥,其中,基于所生成的完整性密钥和所述有效载荷数据对所述有效载荷数据进行加密。11.根据权利要求10所述的无电池iot设备,其中,所述生成mic还包括:
格式化所述输入数据帧的随机数、供应商报头、组标识符、唯一标识符和所加密的有效载荷数据,其中,所述供应商报头和所述组标识符是所述输入数据帧的一部分;格式化计数器块,所述计数器块包括所述随机数;基于身份密钥和所述随机数获得密钥导出函数kdf;基于所获得的kdf和所格式化的计数器块,推导出具有密码块链接消息认证代码cbcmac的计数器;基于包含所述随机数的所格式化的计数器块来生成身份加密密钥;以及将所生成的身份加密密钥和所述cbcmac组合。12.根据权利要求11所述的无电池iot设备,其中,所述生成旋转标识符还包括:将所生成的身份加密密钥应用于所述唯一标识符。13.根据权利要求8所述的无电池iot设备,其中,所述低功率通信协议是ble协议。14.根据权利要求10所述的无电池iot设备,还包括:能量采集器,所述能量采集器耦接到电容器和天线;以及功率管理单元pmu,所述功率管理单元pmu耦接到所述能量采集器、所述微控制器和片上系统soc,其中所述soc包括振荡器校准电路occ,以及所述存储器耦接到所述微控制器和所述soc。15.一种用于加密低功率通信协议的数据帧的无线设备,包括:处理器;以及存储器,所述存储器包含指令,所述指令在由微控制器执行时,将所述处理器配置为:提供输入数据帧,所述输入数据帧包括随机数、唯一标识符和有效载荷数据;加密所述有效载荷数据;生成消息完整性代码mic通过加密所述唯一标识符生成旋转标识符;以及基于所生成的旋转标识符、所生成的mic和所加密的有效载荷数据生成输出帧。

技术总结
一种用于对具有低功率通信协议的数据帧进行加密的系统和方法。方法包括:提供输入数据帧,输入数据帧包括随机数、唯一标识符和有效载荷数据;加密有效载荷数据;生成消息完整性代码(MessageIntegrityCode,MIC);通过加密唯一标识符来生成旋转标识符;以及基于所生成的旋转标识符、所生成的MIC和所加密的有效载荷数据来生成输出帧。荷数据来生成输出帧。荷数据来生成输出帧。


技术研发人员:多坦
受保护的技术使用者:威利奥特有限公司
技术研发日:2021.02.03
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-7726.html

最新回复(0)