技术新讯 > 电子通信装置的制造及其应用技术 > 用于链路加密的自动密钥滚动的制作方法  >  正文

用于链路加密的自动密钥滚动的制作方法

  • 国知局
  • 2024-08-02 14:13:01

背景技术:

1、通过端点之间的链路传送的加密数据易受到针对加密引擎的被设计成确定用于加密和解密在端点之间传送的数据的密钥的“侧信道攻击”的影响。一般来讲,此类侧信道攻击会观察端点中的一个处的功率使用情况,并使用数学软件来确定功率使用与输入和输出值之间的相关性。当攻击者能够观察到足够的数据样本时,就可以利用该相关性来破译加密密钥。

技术实现思路

0、概述

1、一些常规系统试图通过将随机掩码应用于加密引擎所使用的输入和输出数据来防止侧信道攻击。一般来讲,此类掩码在加密操作之前被添加到数据中,然后在加密操作之后被移除。然而,以这种方式掩蔽数据需要呈掩蔽门形式的附加硬件以及附加逻辑门,这会增加设备的尺寸。例如,一些能抵抗侧信道攻击的aes核的尺寸可能是“未受保护”的aes核的三到四倍。此外,在经验丰富的测试团队在实际硬件上测试和测量诸如掩蔽门的对策之前,可能很难知道此类对策的有效性。

2、为了解决这些问题,描述了用于链路加密的自动密钥滚动。所描述的技术以定义的方式自动地执行密钥滚动,使得通信链路的两个端点都可以在滚动密钥的同时保持同步加密操作。根据所描述的技术,第一端点处的加密引擎和第二端点处的加密引擎使用匹配数据加密密钥来加密和解密通过通信链路传送的数据,例如第一端点处的加密引擎用来加密数据分组并形成加密数据分组以用于通过通信链路传送的密钥与第二端点处的加密引擎用来解密加密数据分组的密钥相同。

3、与常规系统不同,第一端点和第二端点处的加密引擎所使用的密钥(例如,匹配密钥)被“滚动”,以便提高由第一端点和第二端点处置并跨通信链路传送的数据的安全性。术语“密钥滚动”是指将正在使用(例如,用于执行加密和解密操作)的密钥替换为不同密钥的动作。密钥滚动系统确定性地生成用于数据加密的密钥并响应于密钥滚动系统在第一端点和第二端点处都已知的密钥滚动事件而自动地滚动到下一密钥。所谓“已知”,意味着事件是相互预先安排的(例如,以编程方式设置),使得响应于该事件的发生,第一端点处的密钥滚动系统和第二端点处的密钥滚动系统都检测到该事件并自动地将第一数据加密密钥(例如,正在使用的密钥)替换为第二数据加密密钥(例如,尚未使用的密钥)。在一个或多个具体实施中,例如,相互预先安排的事件对应于使用事件,诸如通过通信链路传送的加密数据分组的数量。在这种情形中,第一端点处的密钥滚动事件检测器和第二端点处的密钥滚动事件检测器两者均以编程方式被配置为检测所传送的数据分组的数量何时满足阈值数量并作为响应发起密钥滚动。

4、因此,与常规系统相比,本文所描述的自动密钥滚动技术通过防止被设计成确定用于加密和解密在第一端点与第二端点之间传送的数据的密钥的攻击(例如,“侧信道攻击”)或者以其他方式降低所述攻击的有效性来提高安全性。通过根据所描述的技术滚动密钥,可以防止此类攻击或者降低其有效性,因为所描述的密钥滚动在所述攻击可以收集到适当数量的样本来确定密钥之前替换了密钥。与常规密钥滚动技术相比,所描述的密钥滚动对处理资源的负担也显著减轻,并且也不需要硬件改变,在一些情况下,硬件改变会大幅增加用于通信和数据加密和/或解密的第一端点和第二端点的部件的实物理尺寸。

5、在一些方面中,本文所描述的技术涉及一种方法,该方法包括:使用第一数据加密密钥在通信链路的第一端点处加密数据分组;通过通信链路将加密数据分组传送到第二端点;在第一端点处检测第一端点和第二端点都已知的密钥滚动事件;以及响应于检测到密钥滚动事件,从第一数据加密密钥滚动到第二数据加密密钥。

6、在一些方面中,本文所描述的技术涉及一种方法,该方法还包括:在第一端点处接收第一密钥导出密钥;以及通过将密钥导出函数应用于第一密钥导出密钥在第一端点处生成第一数据加密密钥和第二密钥导出密钥。

7、在一些方面中,本文所描述的技术涉及一种方法,其中第二端点还接收第一密钥导出密钥并通过将密钥导出函数应用于第一密钥导出密钥来生成第一数据加密密钥和第二密钥导出密钥。

8、在一些方面中,本文所描述的技术涉及一种方法,该方法还包括:通过将密钥导出函数应用于第二密钥导出密钥在第一端点处生成第二数据加密密钥和第三密钥导出密钥。

9、在一些方面中,本文所描述的技术涉及一种方法,其中第二端点被配置为通过将密钥导出函数应用于第二密钥导出密钥来生成第二数据加密密钥和第三密钥导出密钥。

10、在一些方面中,本文所描述的技术涉及一种方法,其中响应于检测到密钥滚动事件而在第一端点和第二端点处生成第二数据加密密钥和第三密钥导出密钥。

11、在一些方面中,本文所描述的技术涉及一种方法,其中在检测到密钥滚动事件之前在第一端点和第二端点处生成第二数据加密密钥和第三密钥导出密钥。

12、在一些方面中,本文所描述的技术涉及一种方法,其中第二端点被配置为响应于密钥滚动事件而从第一数据加密密钥滚动到第二数据加密密钥。

13、在一些方面中,本文所描述的技术涉及一种方法,该方法还包括:使用第二数据加密密钥在第一端点处加密数据分组;以及通过通信链路将使用第二数据加密密钥加密的加密数据分组传送到第二端点。

14、在一些方面中,本文所描述的技术涉及一种方法,其中检测到密钥滚动事件包括检测到从第一端点传送到第二端点的数据分组的数量满足阈值数量。

15、在一些方面中,本文所描述的技术涉及一种方法,其中检测到密钥滚动事件包括检测到从第一端点传送到第二端点的加密数据分组的流控制单元的数量满足阈值数量。

16、在一些方面中,本文所描述的技术涉及一种系统,该系统包括:密钥生成器,用于生成数据加密密钥,以用于加密和解密数据分组以经由通信链路在第一端点与第二端点之间传送;密钥滚动事件检测器,用于检测密钥滚动事件;以及加密引擎,用于响应于密钥滚动事件检测器检测到密钥滚动事件而从由密钥生成器生成的当前数据加密密钥滚动到由密钥生成器生成的下一数据加密密钥。

17、在一些方面中,本文所描述的技术涉及一种系统,其中密钥生成器、密钥滚动事件检测器和加密引擎的实例在第一端点和第二端点中的每一者处实现。

18、在一些方面中,本文所描述的技术涉及一种系统,其中密钥滚动事件检测器在第一端点和第二端点处都已知密钥滚动事件。

19、在一些方面中,本文所描述的技术涉及一种系统,其中响应于密钥滚动事件检测器检测到密钥滚动事件:第一端点处的加密引擎使用下一数据加密密钥来加密数据分组以通过通信链路传送到第二端点;以及第二端点处的加密引擎使用下一数据加密密钥来解密从第一端点接收到的加密数据分组。

20、在一些方面中,本文所描述的技术涉及一种方法,该方法包括:在通信链路的第一端点和第二端点处接收第一密钥导出密钥;通过将密钥导出函数应用于第一密钥导出密钥在第一端点和第二端点处生成第一数据加密密钥和第二密钥导出密钥;以及通过将密钥导出函数应用于第二密钥导出密钥在第一端点和第二端点处生成第二数据加密密钥和第三密钥导出密钥,其中第一端点和第二端点被配置为响应于检测到第一端点和第二端点都已知的密钥滚动事件而从第一数据加密密钥滚动到第二数据加密密钥。

21、在一些方面中,本文所描述的技术涉及一种方法,其中第一端点和第二端点都已知的密钥滚动事件包括通过通信链路传送的数据分组的数量。

22、在一些方面中,本文所描述的技术涉及一种方法,该方法还包括:通过将密钥导出函数应用于第三密钥导出密钥在第一端点和第二端点处生成至少第三数据加密密钥,其中第一端点和第二端点被配置为响应于检测到第一端点和第二端点都已知的后续密钥滚动事件而从第二数据加密密钥滚动到第三数据加密密钥。

23、在一些方面中,本文所描述的技术涉及一种方法,其中第二数据加密密钥和第三密钥导出密钥由第一端点和第二端点响应于密钥滚动事件而生成。

24、在一些方面中,本文所描述的技术涉及一种方法,其中第二数据加密密钥和第三密钥导出密钥由第一端点和第二端点在密钥滚动事件之前生成。

25、图1是在端点之间具有通信链路的非限制性示例系统100的框图,所述端点生成用于数据加密的密钥并响应于两个端点已知的密钥滚动事件而滚动到下一密钥。特别地,系统100包括第一端点102和第二端点104。系统100还包括在第一端点102与第二端点104之间建立的通信链路106。

26、第一端点102和第二端点104对应于被配置为例如使用通信链路106彼此交互的设备。作为示例而非限制,这些设备的示例包括处理器(例如,图形处理单元和中央处理单元)、磁盘阵列控制器、硬盘驱动器主机适配器、存储卡、固态驱动器、无线通信硬件连接、以太网硬件连接、交换机、桥接器以及网络接口控制器。应当理解,在各种具体实施中,在不脱离所描述的技术的精神或范围的情况下,第一端点102和第二端点104被配置为刚在上面列出的那些设备中的任何一个或多个和/或各种其他设备。

27、根据所描述的技术,第一端点102和第二端点104通过通信链路106进行通信。在一个或多个具体实施中,通信链路106是双向的,使得第一端点102通过通信链路106传输由第二端点104接收的数据,并且使得第二端点104通过通信链路106传输由第一端点102接收的数据。

28、另选地,通信链路106促进单个方向上的数据传输,例如第一端点102通过通信链路106传输数据以供第二端点104接收,或者第二端点104通过通信链路106传输数据以供第一端点102接收。在通信链路106促进单个方向上的数据传输的一些变型中,系统100还包括第一端点102与第二端点104之间的一个或多个附加通信链路(未示出)。在通信链路106有助于从第一端点102传输数据以供第二端点104接收的至少一个情形中,例如,附加通信链路有助于从第二端点104传输数据以供第一端点102接收。

29、另选地或另外,通信链路106有助于对多个不同类型的数据分组的子集(例如,仅一个)进行单向数据传输,例如,第一端点102通过通信链路106传输第一类型的数据以供第二端点104接收,第一端点102通过通信链路106传输第二类型的数据以供第二端点104接收,第一端点102通过通信链路106传输第三类型的数据以供第二端点104接收,等等。

30、举例来说,在一个或多个具体实施中,使用外围部件高速互连(通常缩写为pcie)用于以接口连接第一端点102与第二端点104。在第一端点102和第二端点104使用在所述设备之间建立的pcie会话进行通信的一些变型中,至少一个pcie会话具有三个子会话,例如,每个子会话用于传送不同类型的数据。此外,那些子会话中的每一个具有传输链路和接收链路。由此可见,单个pcie会话的三个子会话中的第一子会话具有传输链路(例如,通信链路106),第一端点102经由该传输链路传输数据以供第二端点104接收,并且第一子会话还具有接收链路(例如,附加通信链路,未示出),第一端点102经由该接收链路接收由第二端点104传输的数据。用于连接第一端点102和第二端点104以通过通信链路106进行通信的接口的其他示例包括(例如但不限于)计算快速链路(cxl)、芯片间全局存储器互连(xgmi)和nvlink。应当理解,在一个或多个具体实施中,在不脱离所描述的技术的精神或范围的情况下,第一端点102和第二端点104使用与刚在上面提到的接口不同的接口进行通信。

31、根据所描述的技术,第一端点102和第二端点104包括加密引擎110。广泛地,加密引擎110使用一个或多个密钥来加密和解密数据以通过通信链路106传送。在一个或多个具体实施中,加密引擎110还对加密数据进行认证并检查该认证。在一个或多个实施方案中,加密引擎110根据用于加密和解密操作的高级加密标准(aes)来配置或者以其他方式包括利用该高级加密标准的一个或多个部件。

32、在第一端点102对应于传输设备并且第二端点104对应于接收设备的情形中,第一端点102接收数据108以用于传送到第二端点104。第一端点102处的加密引擎110加密数据108并对其进行认证。第一端点102(例如,第一端点102的传输机)传输加密数据分组112,所述加密数据分组是基于由加密引擎110输出的经过加密和认证的数据108而形成的。第二端点104接收加密数据分组112。第二端点104处的加密引擎110解密加密数据分组112并检查认证以形成解密数据114。值得注意的是,解密数据114与数据108相同。

33、在第二端点104对应于传输设备并且第一端点102对应于接收设备的情形中,数据的流动方向与如上所述的情形相反,例如,第二端点104接收数据108,第二端点102处的加密引擎110加密数据108并对其进行认证,该第二端点通过通信链路106将加密数据分组112传输到第一端点104,并且第一端点102处的加密引擎110解密加密数据分组112并检查认证以输出解密数据114。

34、如上所述,加密引擎110使用一个或多个数据密钥(例如,数据加密密钥)来加密和解密数据。根据所描述的技术,第一端点102处的加密引擎110和第二端点104处的加密引擎110使用匹配数据加密密钥来加密和解密通过通信链路106传送的数据,例如第一端点102处的加密引擎110用来加密数据108并形成加密数据分组112以用于通过通信链路106传送的密钥与第二端点104处的加密引擎110用来解密加密数据分组112的密钥相同。

35、如上文和下文所讨论,第一端点102和第二端点104处的加密引擎110所使用的密钥(例如,匹配密钥)被“滚动”,以便提高由第一端点102和第二端点104处置并跨通信链路106传送的数据的安全性。术语“密钥滚动”是指将正在使用(例如,用于执行加密和解密操作)的密钥替换为不同密钥的动作。密钥滚动通过防止或以其他方式降低旨在确定用于加密和解密在第一端点102与第二端点104之间传送的数据的密钥的攻击来提高安全性。通过根据所描述的技术滚动密钥,可以防止此类攻击或者降低其有效性,因为所描述的密钥滚动在所述攻击可以收集到适当数量的样本来确定密钥之前替换了密钥。与常规密钥滚动技术相比,所描述的密钥滚动对处理资源(包括在密钥滚动系统116外部的处理资源,诸如处理器)的负担也显著减少,并且也不需要硬件更改,在一些情况下硬件更改会大幅增加用于通信和数据加密和/或解密的第一端点102和第二端点104的部件的实际大小。

36、根据所描述的技术,第一端点102和第二端点104包括密钥滚动系统116。在一个或多个具体实施中,密钥滚动系统116包括密钥滚动事件检测器118、密钥生成器120和存储装置122。此外,密钥生成器120包括密钥导出函数124,并且存储装置122包括一个或多个数据加密密钥126和一个或多个密钥导出密钥128。尽管在所示系统100中密钥滚动系统116与加密引擎110分开示出,但在一个或多个具体实施中,密钥滚动系统116或该密钥滚动系统116的一个或多个部件被包括作为加密引擎110的一部分。另外或另选地,在不脱离所描述的技术的精神或范围的情况下,在一个或多个具体实施中,密钥滚动系统116包括更多、更少或不同的部件。

37、概括地说,密钥滚动系统116确定性地生成用于数据加密的密钥,并且响应于密钥滚动系统116在第一端点102和第二端点104处都已知的密钥滚动事件而自动滚动到下一密钥。所谓“已知”,意味着密钥滚动事件是相互预先安排的(例如,以编程方式设置),使得响应于该密钥滚动事件的发生,第一端点102处的密钥滚动系统116和第二端点104处的密钥滚动系统116都检测到该密钥滚动事件并自动地将第一数据加密密钥126(例如,正在使用的当前数据加密密钥)替换为第二数据加密密钥126(例如,尚未使用的下一数据加密密钥)。根据所描述的技术,数据加密密钥126是密码密钥,诸如由密码算法(例如,加密引擎110或该引擎的部件)用作秘密参数的二进制串。密码密钥的非限制性示例包括由密码算法指定的长度的随机二进制串和指定长度的伪随机二进制串。在一个或多个具体实施中,加密引擎110使用数据加密密钥126以及附加数据来加密数据108。用于加密的附加数据的示例例如包括初始化向量和/或初始计数值。

38、密钥滚动事件检测器118检测到此类密钥滚动事件以发起密钥滚动。应当理解,密钥滚动事件检测器118在各种具体实施中检测到不同的事件以发起密钥滚动。在一个或多个具体实施中,例如,相互预先安排的事件对应于使用事件,诸如通过通信链路106传送的加密数据分组112的数量。例如,密钥滚动事件检测器118检测所传送的加密数据分组的数量何时满足阈值数量并发起密钥滚动。在这种情形中,第一端点102处的密钥滚动事件检测器118和第二端点104处的密钥滚动事件检测器118两者均以编程方式被配置为检测所传送的数据分组的数量何时满足阈值数量并作为响应发起密钥滚动。在第一端点102是传输设备并且第二端点104是接收设备的情况下,例如,第一端点102处的分组的计数器在加密数据分组112时递增,并且第二端点104处的分组的计数器在解密数据分组112时递增。此外,第一端点102处的密钥滚动事件检测器118检测如由第一端点102处的数据分组计数器所指示的传输分组的数量何时满足阈值,并且第二端点104处的密钥滚动事件检测器118检测如由第二端点104处的数据分组计数器所指示的接收分组的数量何时满足阈值。

39、另外或另选地,能够由密钥滚动事件检测器118检测到的密钥滚动事件的实例包括(但不限于)所传送的加密数据的流控制单元(flit)的数量(例如,128个)、扇区的数量、消息认证码(mac)标签的数量、mac聚集边界、加密数据的位的值(例如,密钥改变或密钥滚动位)、接口特定事件(例如,pcie特定事件)或用数据加密密钥加密的块的数量(例如,如果数据分组的大小并非全部统一)。

40、响应于密钥滚动事件检测器118检测到密钥滚动事件,将加密引擎110所使用的数据加密密钥126替换为不同的数据加密密钥126。在一个或多个具体实施中,加密引擎110不重复使用数据加密密钥126。相反,加密引擎110从存储装置122获得新的数据加密密钥126(例如,如由密钥生成器120生成的)。

41、根据所描述的技术,密钥生成器120使用密钥导出函数124来生成数据加密密钥126。在一个或多个具体实施中,密钥导出函数124使用密钥导出密钥128中的一个或多个来生成数据加密密钥126。除了生成数据加密密钥126之外,密钥导出函数124还生成密钥导出密钥128。举例来说,密钥导出函数124接收密钥导出密钥128作为输入。密钥生成器120将密钥导出函数124应用于密钥导出密钥128以确定性地生成数据加密密钥126和新的密钥导出密钥128,该新的密钥导出密钥用于下一次密钥生成迭代中,以生成后续数据加密密钥126和密钥导出密钥128。因为密钥导出函数124在给定相同输入的情况下确定性地生成密钥,所以第一端点102处的密钥导出函数124和第二端点104处的密钥导出函数124生成匹配数据加密密钥126和匹配密钥导出密钥128。在一个或多个具体实施中,密钥导出密钥128不像数据加密密钥126那样频繁更新。例如,在一些具体实施中,密钥导出密钥126仅由设置初始密钥导出密钥的外部机制来更新。

42、为此,由第一端点102处的密钥导出函数124生成的第一数据加密密钥126和第二密钥导出密钥128与由第二端点104处的密钥导出函数124生成的第一数据加密密钥126和第二密钥导出密钥128相匹配,例如,当这些函数最初接收到相同输入(例如,第一密钥导出密钥)时。根据所描述的技术,第一端点102和第二端点104处的密钥导出函数124例如基于建立通信链路106来获得第一密钥导出密钥。在一些常规技术中,加密引擎110生成数据加密密钥,加密引擎110然后使用这些数据加密密钥来加密数据以通过通信链路106进行传送。与这些技术相反,密钥导出函数124改为使用传统的数据加密密钥作为密钥导出密钥。

43、在一个或多个具体实施中,密钥导出函数124使用伪随机函数来实施,并且提供至少第一密钥导出密钥(例如,基于建立通信链路106)或密钥导出密钥128(例如,由密钥导出函数124生成)的有序序列的下一密钥导出密钥128作为输入。如下所述,在各种具体实施中,为密钥导出函数124提供额外的和/或不同的输入。密钥导出函数124所使用的一个示例伪随机函数是国家标准与技术研究院(nist)特别出版物800-38b中指定的基于密码的消息认证码(cmac)算法。cmac可用于认证,并且提供加密数据分组112的真实性和完整性保证。另一示例伪随机函数是在联邦信息处理标准(fips)出版物198-1中指定的密钥散列消息认证码(hmac)算法。应当理解,在各种具体实施中,在不脱离所描述的技术的精神或范围的情况下,密钥导出函数124使用一个或多个确定性地生成密钥的函数。

44、在一个或多个具体实施中,密钥导出函数124多次调用伪随机函数来生成数据加密密钥126。在各种具体实施中,密钥导出函数124基于不同模式多次调用伪随机函数,这些模式的示例包括计数器模式、反馈模式和双流水线迭代模式。在一个示例中,并且如nist800-108中所定义,伪随机函数例如从密钥生成器120接收以下中的一者或多者作为输入:计数器值(例如,对应于密钥导出密钥128的4位值,其用作生成新数据加密密钥126的输入)、标签(例如,如由标准体定义以区别于其他标准)、分隔符(例如,具有0×00值的单个字节)、上下文(例如,流标识符、子密钥类型和附加信息)以及对从124导出的密钥材料的长度进行描述的长度(例如,12位值)。应当理解,在各种具体实施中,密钥导出函数124和密钥导出函数124所使用的伪随机函数接收不同的输入。

45、在至少一个具体实施中,密钥导出函数124输出所导出的密钥材料,该密钥材料能够分割成多个密钥,例如数据加密密钥126和密钥导出密钥128。例如,密钥生成器120将由密钥导出函数124输出的密钥材料转换成至少一对密码密钥,例如数据加密密钥126和密钥导出密钥128。另选地或另外,密钥导出函数124输出数据,包括但不限于新数据加密密钥126、新密钥导出密钥128、初始化向量和密钥导出密钥随机数。在一个或多个具体实施中,初始化向量被用作计数器以跟踪所传送的加密数据分组112的数量,或跟踪所加密的数据分组的数量。其中的一个或多个数据分组是从密钥导出函数124导出的密钥材料生成。在生成一系列有序的数据加密密钥126和密钥导出密钥128以使得第一端点102和第二端点104处的加密引擎110响应于检测到密钥滚动事件而滚动到匹配数据加密密钥126,并且使得第一端点102和第二端点104处的密钥导出函数124使用匹配密钥导出密钥128来生成新密钥的上下文中,考虑图2的以下讨论。

46、图2描绘了其中跨接口的第一端点和第二端点处的密钥导出函数接收相同的密钥导出密钥并生成匹配数据加密密钥和匹配密钥导出密钥的非限制性示例200。

47、示例200包括来自图1的第一端点102和第二端点104,如虚线所示。示例200还包括第一端点102和第二端点104处的密钥导出函数124。示例200在第一端点102和第二端点104中的每一者中多次描绘密钥导出函数124来表示生成密钥的多次迭代;在示例200中表示生成密钥的三次迭代。

48、第一端点102处的密钥导出函数124和第二端点104处的密钥导出函数124被描绘为接收第一密钥导出密钥202。在一个或多个具体实施中,第一密钥导出密钥202对应于由加密引擎110基于建立通信链路106而提供的密钥,例如,在常规技术中用于加密通过通信链路106传送的数据的密钥。另选地,第一密钥导出密钥202对应于由密钥导出函数124在示例200之前的时间点生成的密钥导出密钥128之一。

49、根据所描述的技术,第一端点102处的密钥导出函数124生成并输出第一数据加密密钥204和第二密钥导出密钥206,该函数基于第一密钥导出密钥202导出该第一数据加密密钥和该第二密钥导出密钥。类似地,第二端点104处的密钥导出函数124生成并输出第一数据加密密钥204和第二密钥导出密钥206,该函数基于第一密钥导出密钥202导出该第一数据加密密钥和该第二密钥导出密钥。根据所描述的技术,由第一端点102和第二端点104处的密钥导出函数124生成的第一数据加密密钥204彼此匹配。由第一端点102和第二端点104处的密钥导出函数124生成的第二密钥导出密钥206也彼此匹配。

50、随后,第一端点102和第二端点104处的密钥导出函数124生成并输出第二数据加密密钥208和第三密钥导出密钥210,该函数基于第二密钥导出密钥206导出该第二数据加密密钥和该第三密钥导出密钥。根据所描述的技术,由第一端点102和第二端点104处的密钥导出函数124生成的第二数据加密密钥208彼此匹配。由第一端点102和第二端点104处的密钥导出函数124生成的第三密钥导出密钥210也彼此匹配。在生成第二数据加密密钥208和第三密钥导出密钥210之后,第一端点102和第二端点104处的密钥导出函数124生成并输出第三数据加密密钥212和第四密钥导出密钥(未示出),该函数基于第三密钥导出密钥210导出该第三数据加密密钥和该第四密钥导出密钥。根据所描述的技术,由第一端点102和第二端点104处的密钥导出函数124生成的第三数据加密密钥212彼此匹配。由第一端点102和第二端点104处的密钥导出函数124生成的第四密钥导出密钥(未示出)也彼此匹配。应当理解,在操作中,密钥导出函数124的迭代次数比所描绘的更多或更少,以根据所描述的技术针对所建立的通信链路(例如,通信链路106)生成数据加密密钥和密钥导出密钥。

51、在一个或多个具体实施中,密钥导出函数124被配置为在加密引擎110使用一个或多个所述密钥集中的密钥之前导出各自包括数据加密密钥126及密钥导出密钥128的多个密钥集。在图2的上下文中,例如,在第一数据加密密钥204被加密引擎110使用,诸如以通过接收设备来加密数据108以形成加密数据分组112并解密经加密数据分组112之前,密钥导出函数124在第一端点102和第二端点104处生成至少全部的第一数据加密密钥204、第二密钥导出密钥206、第二数据加密密钥208、第三密钥导出密钥210、第三数据加密密钥212和第四密钥导出密钥(未示出)。另选地或另外,当第一数据加密密钥204被加密引擎110使用时,使用密钥导出函数124在第一端点102和第二端点104处生成至少第二数据加密密钥208、第三密钥导出密钥210、第三数据加密密钥212和第四密钥导出密钥(未示出),并且保持所生成的密钥(例如,保持在存储装置122中)以供将来使用,诸如在检测到密钥滚动事件时。在一个或多个具体实施中,端点102在与端点104不同的时间并使用不同的方法来生成密钥。

52、举例来说,密钥生成器120使用密钥导出函数124以基于经加密数据分组112的通信之间的可用计算资源(例如,可用处理循环)、在数据108未被加密引擎110加密的同时、在经加密数据分组112未被加密引擎110解密以得到经解密数据114的同时等等生成包括数据加密密钥126和密钥导出密钥128的密钥集。以这种方式,在相应密钥滚动事件之前,密钥生成器120使用密钥导出函数124在加密引擎110需要数据加密密钥126之前生成密钥。应当理解,在不脱离所描述技术的精神或范围的情况下,在使用那些密钥集中的任一者之前生成的密钥集的数量基于各种因素而变化,所述因素包括计算资源使用和系统的通信负载。还应理解,在一个或多个具体实施中,密钥生成器120使用密钥导出函数124以根据需要(例如,响应于密钥滚动事件检测器118检测到密钥滚动事件)生成数据加密密钥126和密钥导出密钥128。

53、根据所描述的技术,加密引擎110和密钥导出函数124按照生成密钥集的顺序来使用所述密钥集。在图2的上下文中,例如,加密引擎110获得第一数据加密密钥204、第二数据加密密钥208和第三数据加密密钥212,以按所述密钥的生成顺序使用。具体地,加密引擎110在第二数据加密密钥208之前获得第一数据加密密钥204以供使用,在第三数据加密密钥212之前获得第二数据加密密钥208以供使用,等等。以这种方式,第一端点102和第二端点104处的加密引擎110响应于每个密钥滚动事件而滚动使用匹配密钥。类似地,密钥生成器120将第二密钥导出密钥206、第三密钥导出密钥210和第四密钥导出密钥(未示出)按照所述密钥的生成顺序提供给密钥导出函数124。以这种方式,第一端点102和第二端点104处的密钥导出函数124使用匹配密钥来生成下一密钥集。在滚动到下一密钥的上下文中,按照密钥的有序序列考虑图3的以下讨论。

54、图3描绘了其中跨接口的第一端点和第二端点处的密钥滚动事件检测器检测事件并发起加密引擎对新的匹配数据加密密钥的使用的非限制性示例300。

55、示例300包括来自图1的第一端点102和第二端点104,如虚线所示。示例300还包括第一端点102和第二端点104处的加密引擎110和密钥滚动事件检测器118。示例300在第一端点102和第二端点104中的每一者中多次描绘加密引擎110和密钥滚动事件检测器118,以表示检测密钥滚动事件并获得新的数据加密密钥126(即,滚动到下一密钥)的多次迭代;在示例300中表示检测密钥滚动事件并获得新的数据加密密钥126的三次迭代)。

56、根据所描述的技术,第一端点102处的密钥滚动事件检测器118和第二端点104处的密钥滚动事件检测器118检测到第一事件302(第一密钥滚动事件)。上文更详细地讨论了密钥滚动事件的示例,例如,所传送的数据分组的数量。响应于检测到第一事件302,执行密钥滚动,使得加密引擎110获得第一数据加密密钥204以供使用。在加密引擎110已经使用先前的数据加密密钥的情形中,用第一数据加密密钥204替换该先前的密钥。在该替换之后,加密引擎110使用第一数据加密密钥204来加密或解密数据。在图1的上下文中,例如,第一端点102处的加密引擎110使用第一数据加密密钥204来加密数据以用于通过通信链路106传送,并且第二端点104处的加密引擎110使用第一数据加密密钥204来解密经由通信链路106接收到的数据并输出解密数据114。

57、在检测到第一事件302之后,第一端点102处的密钥滚动事件检测器118和第二端点104处的密钥滚动事件检测器118检测到第二事件304(第二密钥滚动事件)。响应于检测到第二事件304,执行密钥滚动,使得加密引擎110获得第二数据加密密钥208以供使用。加密引擎110将第一数据加密密钥204替换为第二数据加密密钥208。在该替换之后,加密引擎110使用第二数据加密密钥208来加密或解密数据。在图1的上下文中,例如,第一端点102处的加密引擎110使用第二数据加密密钥208来加密数据以用于通过通信链路106传送,并且第二端点104处的加密引擎110使用第二数据加密密钥208来解密经由通信链路106接收到的数据并输出解密数据114。

58、在检测到第二事件304之后,第一端点102处的密钥滚动事件检测器118和第二端点104处的密钥滚动事件检测器118检测到第三事件306(第三密钥滚动事件)。响应于检测到第三事件306,执行密钥滚动,使得加密引擎110获得第三数据加密密钥212以供使用。加密引擎110将第二数据加密密钥208替换为第三数据加密密钥212。在该替换之后,加密引擎110使用第三数据加密密钥212来加密或解密数据。在图1的上下文中,例如,第一端点102处的加密引擎110使用第三数据加密密钥212来加密数据以用于通过通信链路106传送,并且第二端点104处的加密引擎110使用第三数据加密密钥212来解密经由通信链路106接收到的数据并输出解密数据114。

59、图4描绘了响应于密钥滚动事件而从第一数据加密密钥滚动到第二数据加密密钥的示例具体实施中的过程400。

60、使用第一数据加密密钥在通信链路的第一端点处加密数据分组(框402)。举例来说,第一端点102接收数据108以传送到第二端点104。第一端点102处的加密引擎110加密数据108并对其进行认证。

61、通过通信链路将加密数据分组传送到第二端点(框404)。举例来说,第一端点102(例如,第一端点102的发射器)通过通信链路106将加密数据分组112传输到第二端点104。

62、在第一端点处检测到第一端点和第二端点都已知的密钥滚动事件(框406)。举例来说,密钥滚动事件检测器118检测到此类密钥滚动事件以发起密钥滚动。应当理解,密钥滚动事件检测器118在各种具体实施中检测到不同的事件以发起密钥滚动。在一个或多个具体实施中,例如,相互预先安排的事件对应于使用事件,诸如通过通信链路106传送的加密数据分组112的数量。例如,密钥滚动事件检测器118检测所传送的加密数据分组的数量何时满足(例如,等于或超过)阈值数量并发起密钥滚动。在这种情形中,第一端点102处的密钥滚动事件检测器118和第二端点104处的密钥滚动事件检测器118两者均以编程方式被配置为检测所传送的数据分组的数量何时满足阈值数量并作为响应发起密钥滚动。在第一端点102是传输设备并且第二端点104是接收设备的情况下,例如,第一端点102处的分组的计数器在传输加密数据分组112时递增,并且第二端点104处的分组的计数器在接收到加密数据分组112时递增。此外,第一端点102处的密钥滚动事件检测器118检测如由第一端点102处的数据分组计数器所指示的传输分组的数量何时满足阈值,并且第二端点104处的密钥滚动事件检测器118检测如由第二端点104处的数据分组计数器所指示的接收分组的数量何时满足阈值。

63、响应于密钥滚动事件,自动地将第一数据加密密钥滚动到第二数据加密密钥,以用于加密通过通信链路传送的数据分组(框408)。举例来说,响应于密钥滚动事件检测器118检测到密钥滚动事件,将加密引擎110所使用的数据加密密钥126替换为不同的数据加密密钥126。在一个或多个具体实施中,加密引擎110不重复使用数据加密密钥126。相反,加密引擎110从存储装置122获得新的数据加密密钥126(例如,如由密钥生成器120生成的)。

64、图5描绘了基于第一密钥导出密钥来确定性地生成数据加密密钥的示例具体实施中的过程500。

65、在通信链路的第一端点和第二端点处接收第一密钥导出密钥(框502)。举例来说,第一端点102处的密钥导出函数124和第二端点104处的密钥导出函数124接收第一密钥导出密钥202。在一个或多个具体实施中,第一密钥导出密钥202对应于由加密引擎110基于建立通信链路106而提供的密钥,例如,在常规技术中用于加密通过通信链路106传送的数据的密钥。

66、通过将密钥导出函数应用于第一密钥导出密钥在第一端点和第二端点处生成第一数据加密密钥和第二密钥导出密钥(框504)。举例来说,第一端点102处的密钥导出函数124生成并输出第一数据加密密钥204和第二密钥导出密钥206,该函数基于第一密钥导出密钥202导出该第一数据加密密钥和该第二密钥导出密钥。类似地,第二端点104处的密钥导出函数124生成并输出第一数据加密密钥204和第二密钥导出密钥206,该函数基于第一密钥导出密钥202导出该第一数据加密密钥和该第二密钥导出密钥。根据所描述的技术,由第一端点102和第二端点104处的密钥导出函数124生成的第一数据加密密钥204彼此匹配。由第一端点102和第二端点104处的密钥导出函数124生成的第二密钥导出密钥206也彼此匹配。

67、通过将密钥导出函数应用于第二密钥导出密钥在第一端点和第二端点处生成第二数据加密密钥和第三密钥导出密钥(框506)。根据本文所讨论的原理,第一端点和第二端点被配置为响应于检测到第一端点和第二端点都已知的密钥滚动事件而从第一数据加密密钥滚动到第二数据加密密钥。举例来说,第一端点102和第二端点104处的密钥导出函数124生成并输出第二数据加密密钥208和第三密钥导出密钥210,该函数基于第二密钥导出密钥206导出该第二数据加密密钥和该第三密钥导出密钥。根据所描述的技术,由第一端点102和第二端点104处的密钥导出函数124生成的第二数据加密密钥208彼此匹配。由第一端点102和第二端点104处的密钥导出函数124生成的第三密钥导出密钥210也彼此匹配。

68、应当理解,基于本文的公开内容,可能有许多变化。尽管上述特征和元素在特定组合中进行了描述,但每个特征或元素可以在没有其他特征和元素的情况下单独使用,或者在有或没有其他特征或元素的各种组合中使用。

69、附图中示出和/或本文中描述的各种功能单元(在适当时,包括第一端点102、第二端点104、通信链路106、加密引擎110和密钥滚动系统116)以各种不同方式中的任一种方式来实现,诸如硬件电路、在可编程处理器上执行的软件或固件、或者硬件、软件和固件中的两者或更多者的任何组合。所提供的方法在各种设备诸如通用计算机、处理器或处理器核中的任一种设备中实现。举例来说,合适的处理器包括通用处理器、专用处理器、常规处理器、数字信号处理器(dsp)、图形处理单元(gpu)、并行加速处理器、多个微处理器、与dsp核心相关联的一个或多个微处理器、控制器、微控制器、专用集成电路(asic)、现场可编程门阵列(fpga)电路、任何其他类型的集成电路(ic)和/或状态机。

70、在一个或多个具体实施中,本文提供的方法或过程在并入非暂态计算机可读存储介质中的计算机程序、软件或固件中实现,以供通用计算机或处理器执行。非暂态计算机可读存储介质的示例包括只读存储器(rom)、随机存取存储器(ram)、寄存器、高速缓存存储器、半导体存储器设备、磁性介质(诸如内部硬盘和可移动磁盘)、磁光介质和光学介质(诸如cd-rom磁盘)以及数字多功能磁盘(dvd)。

71、结论

72、尽管已经以特定于结构特征和/或方法动作的语言描述了系统和技术,但应当理解,在所附权利要求中定义的系统和技术不必限于所描述的特定特征或动作。这些具体特征和动作是作为实现所要求保护的主题的示例形式来公开的。

本文地址:https://www.jishuxx.com/zhuanli/20240801/242063.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。